Javaデータグリッド仕様「JSR-347」のリンク集
この記事は Java Advent Calendar 2012 の12日目です! 11日目は@kokuzawaさんでした。13日目は@zephiransasさんです。
そういえば、今日は12年12月12日ですね。皆さんは、12時12分12秒に何をしていましたか? 私はというと、、、普通に定食屋でお昼を食べてました。。。
早速ですが、JSR-347ってご存知ですか?数字で言われても、分かる訳ないですよね?
JSR-347は「Data Grids for the Java Platform」というJSRのことです。。。って名前を聞いても、普通は何を言っているのか分かりませんよね?
まず、Data Gridとは何なのか、JSR-347とは何なのか、簡単に説明します。
Javaデータグリッド仕様「JSR-347」って何?
そもそも、JSR-347以前にはJSR-107「JCACHE - Java Temporary Caching API」というものがあり、JavaのキャッシュAPIが議論されていました。ここでは、keyやvalueにJavaオブジェクトを指定して保持できるキャッシュについて議論されていました。
世の中的にはビッグデータの流れもあり、単なるキャッシュではなく、分散実行等の機能を持ったものを「Data Grid」と呼び、JavaのData Gridの仕様を決めよう。。。というのが、JSR-347です。単刀直入に言うと、メモリに乗るデータは、分散環境でメモリに乗せて実行すれば高速に処理できるよね!ということ。
さて、実際にJSR-347のGitHubにあるProposed featuresを見てみると、以下のようなものが挙げられています(もっと具体的な内容については、このポストの最後にリンク集を付けたので、そこにあるスライドをご参照ください)。
- Async API (Future based)
- Distributed code execution
- Group API
- CDI (Contexts and Dependency Injection) integration
- Transactions (JTA) integration
- Operation Mode
- Eventually Consistent API
- Configuration
- Drop-In Replacement for JSR-107 Compliant Caches
そして、これらを実際に実装しているOSSが、RedHat社を中心に開発しているInfinispanです。
InfinispanはJava(とScala)で実装されており、超簡単に言うと、In-Memoryでクラスタ環境で動作するKVS(KVSというと狭すぎますが)です。keyとvalueにはJavaオブジェクトを利用することができます。商用製品ですと、Oracle社のCoherenceが同様の機能を持っています。
そんな訳で、JavaのData Grid仕様に関する情報や、その実装であるInfinispanの情報をまとめてみました。興味が湧いた方は是非この先のリンクをご覧ください。
JSR-347関連リンク
- JSR 347: Data Grids for the Java Platform JCPのサイトにあるJSR-347のページです。このJSRの要求やSpec Leadが誰で、とか書いてあります。
- JSR 347 discussions Googleグループにある、JSR-347のフォーラムです。
- datagrids JSR-347のGitHubです。
- @JSR347 (Twitterアカウント) たまにTweetされているようですが、さびしいですね。。。
- Javaのデータグリッドの仕様:JSR-347 JSR-347のSpec Leadであり、InfinispanのLead CommiterであるManik Surtaniさんへのインタビュー記事。JSR-347やInfinispanのイメージを短時間で知りたい人が読むのにお勧めです。
- JSR-107 and a JSR on data grids Manik Surtaniさんが書いたブログ記事。JSR-107とJSR-347の違いを簡潔に書いてあります。
Infinispan関連リンク
- Infinispanのプロジェクトページ Infinispanの公式ページです。ドキュメントを見たり、ダウンロードしたりできます。
- The JBoss Data Grid or, Enterprise-grade Infinispan 先日、Manik Surtaniさんが来日した時の発表資料です。
- Infinispan Open Source Data Grid RedHatのエンジニアであるnekopさんのスライド。Infinispanが持つ機能の概要を説明しています。
- 単なるキャッシュじゃないよ!?infinispanの紹介 Infinispanの特徴や使いどころについて解説しているスライド。MapReduceの図も載っています。
- データグリッド/キャッシュサーバのInfinispanって何ができるの? Infinispanのインストールから簡単な使い方を紹介しているページ。とりあえず、動かしたい方は御一読ください。