Typesafeは、Typesafe Stack 2.0をリリースした。これはJavaとScalaでスケーラブルなアプリケーションを開発するためのオープンソースのプラットフォームである。 Typesafe Stackは、Scalaプログラミング言語、 Akka 2.0イベント駆動ミドルウェア、 Play 2.0 webフレームワーク、様々な開発ツールが含まれており、既存のJava環境にシームレスに統合する。
Akka 2.0
Akkaは、オープンソースのイベント駆動ミドルウェアフレームワークで、高パフォーマンス、信頼性のある、分散アプリケーションをJavaとScalaで開発するのに向いている。Akkaは、スレッド、ロック、非ブロッキングIOなどのような低レベルなメカニズムからビジネスロジックを切り離す。ScalaやJavaコードは、Actorオブジェクトに存在し、メッセージを送ったり、受け取ったりする。一方、Akkaが同期、ロードバランス、フォールトトレランス、弾力性を担当する。Akka 2.0 のフィーチャには、スケーラビリティの改善(最高で1GBメモリー当たり270万アクター)とクラウドや仮想化されたデータセンター環境における分散アプリケーション作成の容易化がある。新しい他のフィーチャとしては、1) ロケーション透明性、これで全くのコード変更なしに、アクターがローカルでもリモートでも存在できる。2) 設定ベースのデプロイ、これによって実行時にトポロジーを指定できる。3) 管理と監視、あらゆるAkkaコンポーネントが失敗や終了していないか監視できる。4) イベントバス、 簡単にアクターのグループにメッセージを送れる(publish/subscribe) 。Akka 2.0 は次期Scala 2.10 標準ライブラリのFuture実装も使っているので、開発者は"scala.concurrent.future"を使うことができる。
更なる詳細は Akka 2.0の紹介 を読んで欲しい。
Play 2.0
Playは、軽量で、ステートレスなアーキテクチャをベースにしたweb フレームワークでJavaとScalaの両方をネイティブにサポートする。「設定より規約」の哲学を採用し、編集-テストの開発サイクルが速い。Play 2.0 では主にScalaで書かれている。元々のPlayフレームワークはJavaで実装されていた。デフォルトにGroovyでなく、Scalaベースのテンプレートエンジンを使っている。またビルドとデプロイに標準化されたアプローチとして、Scala用に人気のあるビルドツール、sbtを使っている。Play 2.0 はAkkaを使って、イベント処理をし、非同期処理を行なっており、Play webアプリケーションを更にスケーラブルで、フォールトトレラントなものにしている。更にモジュール化したアーキテクチャになっているので、簡単にプラグインを追加、削除でき、webフレームワークではなく、ライブラリとして使うことさえできる。Play 2.0は、Iteratee IO 実装を使っているので、追加設定無しでWebSockets やCometからファイルストリーミングなどの、多くの高度なプッシュベース/ストリーミング技術をサポートしている。ルート(URLマッピング)、テンプレート、アセットがコンパイルされ、開発プロセスの早期にエラーを検知できる。他の新フィーチャには、 Anorm SQL API、フォームバリデーション、webサービスアクセス用の統合されたJSONとXML処理、そしてHTTPクライアントAPIがある。
更なる詳細は Play 2.0の紹介 を読んで欲しい。
Typesafe Console
Typesafeサブスクリプションは、オープンソースの Typesafe Stackに対する有償のサポートと管理ツールを提供する。Typesafeサブスクリプションは、Scala, Akka, Playをカバーし、 Typesafe Stack上に作成されたアプリケーションをトレースし、監視するための、 Typesafe Consoleも追加する。 Typesafe Consoleは、イベント駆動Akkaベースシステムの使用量トレンドやパフォーマンス特性のより深い分析をしてくれる。Consoleは、アプリケーションイベントを捉え、アクターやリモートのノードを跨いで、そのイベントをトレースフローにリンクし、ブラウザーないしRESTと JMX APIを使って、この情報を活用できるようにする。 Typesafe Consoleのデモ を見ることができる。
Typesafe Stackには、開発ツールのセットが含まれている。 Scala IDE for Eclipseは、開発環境にシンタックス強調、コード補完、統合デバッグを提供してくれる。Simple Build Tool (sbt) がコンパイルと依存性管理を自動化する。 Typesafe Stackは、またデバッガーやプロファイラーのようなサードパーティのJavaツールとも連動する。
Typesafe Stackは Mac OS X, Linux, Windowsで使うことができ、JRE 1.6以上が必要である。 Akka 2.0 とPlay 2.0は、Apache 2ライセンスの下でリリースされる。始めるには、 Typesafe Stackの Getting Started ページに行き、インストールやサンプル(テンプレート)プロジェクトの作成を一通りやる、ことだ。更に知りたければ、公式の Typesafe Stack ページに行き、Typesafe Stack 2.0 Whitepaperをダウンロードすると良い。InfoQのインタビュー記事、Martin OderskyがTypesafe Stack 2.0 と Scalaを語る を読みたくなるだろう。