JAIN(Java APIs for Integrated Networks)は,そもそもは通信のオープン化を指向したコミュニティ。Javaを使った通信サービスのAPI(application programming interface)仕様群を策定した。その一つであるJSLEEはネットワークやプロトコルを問わない開発環境を提供する。

 約10年前,それまでの通信サービス開発構造に一つの疑問を投げかける動きがあった。「なぜ通信サービスは限られた企業や人々にしか開発できないのか?」,「なぜ通信機器ベンダーの独自仕様に縛られなければならないのか?」,「なぜ一度作ったものを他のベンダーの機器や他のネットワーク上で再利用できないのか?」──。これらの課題に悠然と立ち向かうため,米サン・マイクロシステムズ社が立ち上げたコミュニティ活動がJAINである。

 JAINコミュニティは当時のネットワーク環境を,「個々に設備を構築したネットワークがそれぞれ進化した結果,横の連携が極めて乏しい“煙突”と化している」ととらえていた(図1)。この状況を「よし」とはしなかったJAINコミュニティは,単なるオープンなAPI仕様の策定やサービスのポータビリティ実現にとどまらず,ネットワーク層から独立したサービス・レイヤーの実現や,固定網/移動網/IP網といったネットワークの種類に依存しない共通的なサービス・レイヤーの実現,通信サービスのコンポーネント化とコンポーネントの再利用性の実現へと目標を広げていった(図2)。最盛期にはJAINコミュニティに70社以上の企業が参加していた。

図1●伝統的な垂直型ネットワーク
図1●伝統的な垂直型ネットワーク
JAINコミュニティは当初から移動/固定通信や情報処理,エンターテインメントというように,サービスとネットワークが強固に結びついた縦割り構造に疑問を投げかけていた。
[画像のクリックで拡大表示]

図2●ネットワーク横断型アーキテクチャ
図2●ネットワーク横断型アーキテクチャ
JAINは1990年代後期には,水平方向でのインフラ統合,共通サービス基盤実現を視野に入れていた。

 現在までの成果として,JAINが定めたAPIが大手通信事業者の商用サービスで使われるケースがあった。とは言うものの,縦割りのネットワークを作り替えたり,各種ネットワークを横断した共通サービス・プラットフォームを実現するだけの原動力を持ち得たとは残念ながら言い難い。それらの理想は,奇しくもNGN(次世代ネットワーク)の登場によって,ようやく実現に近付くことになった。

 これまでNGNとJAINの関連性が語られることはほとんどなかったかもしれない。しかし,両者の間にはいくつもの共通的な理想や目標を見い出せる。両者の関連から同時に,JAINの新しい可能性も見いだせるはずだ。

実像はオープンなJavaAPIの仕様群

 JAINによる成果は,前述の目標に基づいて策定された「通信サービスを実装するためのオープンなJavaAPIの仕様群」である。システム間のインタフェースや特定のサービス実現のためのアーキテクチャを規定するものではなく,「通信サービスの実装技術,インプリメンテーションのための手段」である。つまりJAINは,IT技術者になじみ深いサーブレットEJBなどと同列に並ぶもので,Parlay/OSAParlay Xが規定するものとは,範囲やそもそもの目的,そして成果物の性質が全く異なっている。共存こそすれども競合するものではない。

 API仕様の完成後はスペックやTCK(technology compatibility kit),RI(reference implementation;参考実装)の3点が原則すべて「無償」で公開されている。この点でもJAINは,ほかの一般的なJavaAPIと同様である。

 JAINコミュニティは定期的に会合を開催しており,世界中からの参加者がそれぞれの標準化活動の状況や成果を共有し,活発な意見交換を行っていた。パーレイ・グループが考えたとの間で積極的な協調を推進した時期もあった。

 コミュニティとしての活動は,2004年夏の会合を最後にその役目を終了した。その後は各APIのエキスパート・グループによる標準化作業が続行され,いくつものAPIが完成している。

 「SIPサーブレット」や「JSLEE」(JAIN service logic execution environment)など,JAINの活動から生まれた規格に準拠した製品の開発は,コミュニティ活動終了後の今でも,多くのベンダーによって続けられている。つまり2004年以降,JAINは「コンセプトから実用へ」という新たなステップを歩んでいるととらえられる。

 JAIN APIのうちこれまでに完成したものや,現在も策定作業中のものの一覧を表1に示す。

表1●3種類に分類できるJAINの成果物
(1)プロトコル・レベルのAPI,(2)メッセージング/プレゼンスAPI,(3)アプリケーション・コンテナ規格に大別される。
[画像のクリックで拡大表示]
表1●3種類に分類できるJAINの成果物