Akka Frameworkチュートリアルの次

Akka Documentationの左メニューを辿って、他にどんな機能があるか、ざざっとみていきます。

Akka Documentation

チュートリアルとの差分で、Core Featuresには他にどんな機能があるか、メモ程度に書き出しておきます。詳しくは原文をっ

Actors

割愛。新しい情報としては、次の2つあたり。

・メッセージ送信時にFutureを取得する方法
・Actorの内部ロジックを動的に変更するHotSwap

Typed Actors

普通のActorの書き方

 class MyActor extends Actor {
  def receive = {
   case event: ChatMessage => ()
   case _ => ()
  }
 }

ではなく、POJO的なインターフェースを定義してActorを生成・実行する方法。

 trait SomeService{
  def post(event:ChatMessage):Unit
 }
 class SomeServiceImpl extends TypedActor
  with SomeService{
 }

内部ではAspectWerkzによるAOPを使っている。
たしかにActorの記述方式では、仕様が大きくなるとスパゲッティー化してしまう恐れがあるので、各メッセージングをドキュメント(ScalaDocや設計書)化したい場合などに便利そうです。

ActorRegistry

Actorのレジストリオブジェクト。各Actor参照の取得や一括管理ができる。
Actorの起動・停止時に自動的にActorRegistryの内容が更新されるが、明示的に登録・削除もできる。また、レジストリの内容変更をListen(Observe)することもできる。

Agents

Clojureからいただいた機能で、内部に可変領域を持つ特殊なActor。可変領域の更新は関数(Action)をsendすることによって行う。

Software Transactional Memory(STM)

共有メモリ(Java Heap)上でトランザクション(begin/commit/rollback)を行うしくみ。

Transactors

ActorとSTMの機能を統合したAPI

Remote Actors

リモートActorの作り方、呼び出し方、API詳細。
リモートに渡すメッセージのシリアライゼーションの仕方にもいろいろある。> Scala JSON/Protobuf/SBinary

Fault-tolerance

Supervisorと監視対象Actorの作り方、API詳細。

Dispatchers

スレッド生成を調整してパフォーマンスを最適化するためのAPI。
Actor毎に、キューサイズやスレッドプール数などを変更できる。

Serialization

Actorやメッセージをシリアライゼーションする方法いろいろ。

Routing

■Dispatcher
  メッセージによって他のActorに処理を振り分けるActor
  (※上記のスレッド調整Dispatcherとは別物)
■LoadBalancer
  順番に複数Actorに処理を振り分けるActor
などがある。


他に、Add-On Modules、External Sample Projectsあたりに情報・サンプルコードがたくさん。GitHubで"akka"を検索してもいいですね。

Play!FrameworkのAkkaモジュールも良さそうです。
http://implicit.ly/akka-module-for-the-play-framework


以上、ざっとAkkaで何できそうかの調査終わり、ちょっと飽きた!
あとは何かモノ作ってみてですねー。


同じカテゴリのエントリ
1.Lift再入門 / 8.javascriptからsubmitできない / 7.Ajax Form / 6.Radio、Checkboxについて / 5.行列型の編集FORM / 4.サーバーサイドバリデーションとサーバサイド関数 / 3.ログインFORM - S.param使ったら負け / 2.Snippetメソッドとして許される型 / sbt0.12.xで依存jar抽出タスク / scala2.10+lift2.5+NetBeans7.2 / Scalaで入門関数プログラミング / reactive-webを試してみました / Lift2.2M1のテンプレート機能 / Scala Compiler Plugin / View Bound/Context Bound / ScalaZa01参加してきました / Akka Frameworkチュートリアルの次 / Akka Frameworkチュートリアルその2 / Akka Frameworkチュートリアル / LiftでJCaptcha / Url Rewrite Filter / sbt-android-plugin / Android SDK for Scala / 祝Lift2.0リリース / Liftの携帯対応まとめ / Scala2.8への移行 / Lift 2.0-scala280-SNAPSHOT/sbt0.7.1 / Scalaお絵かき環境 - Kojo / Lift+Quartzでバッチ / Scala&Liftを採用した理由 / Liftでdate_select系ヘルパーを作る / LiftでAjax / LiftのSubmitかしこい / lift-mapperのpaginateを使う / snippetをspecする / Lift Mapperを拡張する / LiftのDBをMySQLに / Liftプロジェクト環境を整える / Scala本読み比べてみました / NetBeans6.7&scala / じつはScalaはライトな言語 / Scalaバザ~ル / lift1.0所感 / specsを読む / implicit def / ScalaならNetBeansがサイコー / scala勉強会@東北がスタート / それでも俺はLiftをやるってのか / Scala&Liftセットアップ / ブログリニューアル /
コメント

コメントしてください

closed.