[特別企画]
次世代コミュニケーションサービスを担うJAIN
(前編)
マルチメディアを操るためのJava API登場

高山義泉
2003/12/25


INDEX
次世代コミュニケーションサービスを担う「JAIN」
セッションの確立「JAIN SIP」
SIPモビリティの役割
SIPを操るためのAPI
JAIN SLEEとは

 Javaは1995年に発表されて以来、インターネットとともに進化を遂げました。現在では単なる「コンピュータ言語」と表現されるにとどまらず、「Java=マーケット」であると表現できる地位を確立したといえるでしょう。

 ところで、Javaはネットワーク環境におけるサービスを実現するためのテクノロジともいえますが、このネットワーク上のサービスを実現するための仕様として「JAIN」の策定が進められてきました。JAINはまだ広く知られていませんが、今後注目されるテクノロジです。すでに、いくつものAPI仕様が策定されていて、それに準じた製品があります。

  次世代コミュニケーションサービスを担うJAIN

 1985年ごろ、それまでハードウェアで制御されていた公衆電話回線網にコンピュータとソフトウェアが導入され、いままでにないサービスが実現可能になりました。それが、例えば、いま私たちが当然のように使用しているフリーダイヤルであり、VPN、ダイヤルQ2サービスです。

 このようにコンピュータを導入し高度なサービスを実現している公衆電話回線網を、IN(インテリジェント・ネットワーク)といいます。その後INは進化を続け、公衆電話回線網によるサービスはますますリッチになり、さらにそれを実現するためのソフトウェアもサービスプロバイダにとって拡張性が高く、メンテナンスの行いやすいものへと変わってきました。

 さらにいま、VoIP(Voice over IP)技術が注目され、いままでの電話網の常識が変わりつつあります。@IT Master of IP Network「第10回 読者調査結果」のデータからも分かるように、VoIPは非常に注目されているテクノロジです。そして、VoIPを実現するネットワークとして、インターネット網が期待されています。ネットワークサービスプロバイダのいくつかは、サービスの品質を高めるためにVoIPサービス用の専用網を構築しサービスを開始しているところもあります。このようにインターネット網に期待する背景には、なんといってもコストメリットがあるのでしょう。

 既存の公衆電話回線網とインターネット網の使用コストを考えると、その差は一目瞭然でインターネット網を利用する方が圧倒的にコストダウンできます。もちろん、既存の公衆電話回線網システムをすべて取り替えるとすると、新規システムへの初期投資コストや運用管理技術面で検討すべき項目は多くありますが、長期的視野に立ってこれらの課題をクリアした企業が、すでに導入を行っています。

 また、@ITのアンケート結果から分かるように、VoIPを検討する多くの方が期待しているサービスは、いわゆる「既存の電話サービス」のみではありません。コストの削減のみならず、テレビ会議やeラーニング、業務アプリケーションなどのこれまでインターネット網上で提供されているサービスとの統合です。

 ネットワークには図1のようにインターネット網や既存の公衆電話回線網、ケータイ電話網にCATV網などさまざまなものがあります。これらのネットワーク上では多くのサービスが提供されており、私たちはそれぞれのアクセス手段でいろいろなサービスを利用しています。

図1 現在のネットワーク構成

 それを図2に示すように共通のネットワーク上に、あらゆるサービスを実現することで、ユーザーはPCや固定電話、ケータイ電話、FAX、冷蔵庫やテレビなどのデバイスからさまざまなサービスを使うことができ、またサービス同士が連携することで新たなサービスが生まれます。これを次世代コミュニケーションサービスといいます。そして、この新しいサービスの実装を担うJava APIがJAINなのです。

図2 次世代のネットワーク像

 JAINは、次世代のコミュニケーションサービスをサポートするためのAPI群です。以下のような多くのAPIで構成されています。

Final Release/Maintenance
 JSR 011 − JAIN TCAP 1.1
 JSR 018 − JAIN OAM
 JSR 021 − Java Call Control 1.1
 JSR 023 − JAIN MGCP
 JSR 032 − JAIN SIP 1.1
 JSR 035 − JAIN INAP
 JSR 116 − SIP Servlets
Proposed Final Draft
 JSR 029 − JAIN MAP
 JSR 022 − JAIN SLEE
 JSR 079 − JAIN MEGACO
 JSR 180 − SIP for J2ME
Public Review
 JSR 125 − JAIN SIP Lite
 JSR 141 − JAIN SDP
 JSR 122 − JAIN CAT (JCAT)
 JSR 123 − JAIN PAM
 JSR 165 − JAIN SIMPLE Instant
            Messaging
 JSR 164 − JAIN SIMPLE Presence
Community Review
 JSR 100 − JAIN SCE (XML)
 JSR 161 − JAIN ENUM
 JSR 186 − JAIN Presence
 JSR 187 − JAIN Instant Messaging
In Expert Group
 JSR 103 − JAIN UI
 JSR 136 − JTSP
 JSR 182 − Java Payment (JPAY)
 JSR 192 − JAIN SCE (Java)

 本稿では、この中でも現在最も注目されているJAIN SIPとJAIN SLEEを取り上げましょう。

  セッションの確立「JAIN SIP」

 JAIN SIPについて触れる前に、SIP(Session Initiation Protocol)について簡単に解説します。SIPの詳細は@IT Mastar of IP Nework「【トレンド解説】マイクロソフトがIP電話を面白くする!? 〜いま注目を集める「SIP」の最新トレンドと概要〜」 で触れているので参考にしてください。ここではJAIN SIPを理解するために必要な付加情報を説明しましょう。

 SIPは、マルチメディアセッションの確立や終了をつかさどるアプリケーション層のシグナリングプロトコルです。SIPはIETF(Internet Engineering Task Force)のワーキンググループで提案され、現在はRFC3261で標準化されています。SIPがカバーする範囲は、セッションの確立、変更、終了のみで、セッション確立後のアプリケーションの動作には一切関与しません。そのため、既存のアプリケーションを含むさまざまなアプリケーションと柔軟に組み合わせることができます。

 それではSIPの動作を見てみましょう。図3のようにTomがBobと会話をするとします。そのときに、Tom(200.0.0.1)はBob(00.1.1.5)に対して呼び出しを行います。下図で表現すると、「お〜い、いますか?」になります。ここでBobが応答可能であれば下図のように「うん、いるよ!」と返答します。これで、実際にアプリケーションを動作させるためのセッションは確立されます。SIPの役割はここまでになります。

図3 SIPの動作

 この後、実際のアプリケーションの動作は、アプリケーションがそれぞれのプロトコルを用いてやりとりを行います。

 しかし次世代コミュニケーションサービスを考慮した場合、先の例のように相手のIPアドレスが分かっているというケースは少ないでしょう。セッションを確立したい相手のほとんどは人間ですので、当然移動します。クライアントツールも自宅のPCであったり電車の中で使用しているPDAであったり、さまざまです。さらには、オフィス内でもDHCP(Dynamic Host Configuration Protocol)を使用している場合もあります。セッションを確立したい相手のIPアドレスがその時々で変わるということは多くあるはずです。このような場合に備えて、SIPは「SIPモビリティ」という機能を提供しています。

  SIPモビリティの役割

 それでは、図4を用いてSIPモビリティの動作を見てみましょう。まずBobは、自分のマシンをIPネットワークに接続したときに、自身のIPアドレスをレジストラサーバに登録します。TomはBobとセッションを確立する場合、BobのIPアドレスは分からないため、直接IPアドレスを用いるのではなく、SIPアドレスを用い、ロケーションサーバに問い合わせます。そうして取得したBobのIPアドレスを用い、Bobにセッションを確立するよう要求します。このようにSIPでは、SIPアドレスを用いることで柔軟にセッションを確立できる環境を提供しています。

図4 SIPモビリティの動作

 さらに、SIPの拡張機能では次のような機能を提供しています。

  • プレゼンス
    相手のSIPアドレスが分かっていれば、相手の現在の在席状態を常に把握する機能
  • ショートメッセージ
    簡単なテキスト文書の送受信機能

 このようにSIPを用いることで、SIPの本質でもある「セッションの確立」に加えて、インスタントメッセージ(チャット)を実現することも可能です。

  SIPを操るためのAPI

 すなわちJAIN SIPは、SIPをJavaで操るためのAPIです。JAIN SIP(JSR032)は、NISTおよびサン・マイクロシステムズが中心となって仕様策定が進められ、現在JAIN SIP Ver1.1がリリースされています。JAIN SIP 1.1は、API、RI(Reference Imprementation:参考実装)、インターフェイス、ドキュメンテーション、テストキットからなります。RIは現在NISTからリリースされており、「https://jain-sip.dev.java.net/」からダウンロードすることができます。

図5 JAIN SIP (クリックすると拡大します)

 前述したとおりSIPはセッションの確立や終了をつかさどるプロトコルであり、アプリケーションには一切依存しません。もちろん、OSやハードウェアに依存することなく動作します。よって、その柔軟性に加え、いまやケータイ電話から家電、PC、基幹系のサーバまで、どこでも動く「Java」と連携することで、次世代コミュニケーションサービスに期待される多機種間での、それもユーザーモビリティを実現するセッションの確立を容易に実現することが可能になります。

  JAIN SLEEとは

 冒頭でINの登場について触れましたが、そのソフトウェアサービスを実現するアプリケーションの実行環境、それがSLEE(Service Logic Execution Environment)です。これは図6に示すように青枠で囲った部分で必要とされるものです。SIPユーザーモビリティでは、BobがレジストラサーバにIPアドレスを登録するためのサービスや、TomがSIPアドレスからBobのIPアドレスを取得するためのサービスが必要になります。

図6 JAIN SLEEが必要とされる場所

 現在のIN上で提供されている、フリーダイヤルやダイヤルQ2で使用される番号変換サービス、課金サービスなどを実現するソフトウェアの実行環境がSLEEです(SLEEとは論理的概念であり、SIPのように標準化団体で仕様が決められているものではありません)。

 SLEEとは前述したようにサービスを実行するための環境=アプリケーションサーバであり、JAIN SLEEは、JavaでSLEEの実行環境を提供するものと定義付けすることができます。

 JAIN SLEEの仕様(JSR022)は、Open Cloudおよびサン・マイクロシステムズが中心になり策定を行っています。現在、JAIN SLEEはProposed Final Draftの段階で、API、テストキット、ドキュメントが提供されており、アプリケーションサーバRIは2004年初めにOpen Cloudから提供される予定です。また、Open Cloudでは、すでに実装製品を提供しており、JAIN SLEEを取り囲む状況は完全に整備されたといえます。

 JAIN SLEE仕様では、アプリケーションのデザイン定義を行っています。一方で外部インターフェイスに関する仕様定義は行っておらず、さまざまなデバイスやプロトコルにも対応できる柔軟なアプリケーションを構築することができ、次世代コミュニケーションサービスの実行環境として最適な環境といえるでしょう。

 JAIN SLEEの仕様策定に至った経緯は、J2EEのそれと非常に似ており、INの進化とともに高度なサービスが要求されたとき、それとともにサービスの拡張性や保守性、およびアプリケーション開発の容易性(=APIの充実、開発者コミュニティの拡大、開発ツールの用意、再利用性)が必要とされたためです。それでは、なぜこの分野にもJ2EEアプリケーションサーバを適用しなかったのでしょう? それはJ2EEアプリケーションを実行するために要求される環境とテレコミュニケーションの分野で要求されるアプリケーションを実行するための環境があまりにも違うことにあります。

 もちろん、サービスの拡張性や保守性、アプリケーション開発の容易性は、Java、J2EEで培われたものをそのまま有効に活用でき、実際にそれを行っています(すでにJAIN SLEEの開発ツールは、J2EE開発環境であるNetBeansのプラグインとしてOpen Cloudから提供されています)。

 今回は、JAIN SIPとJAIN SLEEの概要に触れました。次回は、それぞれの仕様の詳細に踏み込み、どのような機能が提供されているのかを説明します。

INDEX
特別企画:次世代コミュニケーションサービスを担うJAIN
前編 マルチメディアを操るためのJava API登場
  後編 JAIN SLEEの役割を理解する


Java Solution全記事一覧




Java Agile フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Java Agile 記事ランキング

本日 月間