前編 シンプルなSIPアプリケーションの構築

高山義泉
2005/12/8

 「JAIN SIP」は、通話制御プロトコルの1つであるSIPを扱うためのJava APIで、JavaでVoIPアプリケーションを作成するJavaテクノロジーとして期待されています。一方、「JSLEE」は、SIPアプリケーションを実装するためのミドルウェアであり実行環境です。ともに次世代コミュニケーションシステムをJavaで構築するための標準としてJCPで策定されており、その実装が登場しています。

 本稿では、Open Cloud社が提供するフリーのJSLEE環境を使い、JavaベースのSIPアプリケーションを実際に構築してみます。

SIPを身近なものにするJAIN SIP

 最近、SIPというキーワードがJava業界からも聞こえるようになってきました。SIPは、VoIPの普及とともに、その一端を担う技術として進化を続けてきましたが、ここに来てようやくさまざまな製品の中に組み入れられるようになってきました。皆さんも「SIPフォン」という言葉を聞く機会が増えたのではないでしょうか。

■JAIN SIP実装製品が登場している

 例えば、日本BEAシステムズは、2005年10月、通信業界に向けた同社のIPマルチメディア・アプリケーションサーバ・ソフトウェアの新バージョン、「BEA WebLogic SIP Server 2.1」を発表しています。同社はこの製品をJ2EE、SIP(Session Initiation Protocol)、IMS(IP Multimedia Subsystem)を統合的に提供する業界初のアプリケーションサーバと説明し、IP電話からマルチメディアのチャット、ビデオ会議、プッシュトーク、ネットワークゲームなど、さまざまなSIPによるアプリケーションを携帯電話やPDA、PCなどに提供していきたいといっています。

 このように、これまで非常にプロプラエタリな技術で実現されることが多かったコミュニケーションアプリケーションが、VoIP、SIPの普及やそのプロトコルを扱うJAIN SIPの充実、実装製品のリリースによってJava開発者にとって身近なものになってきました。

■JAIN SIPの概要

 JAIN SIPは、JSR32として策定されたSIPメッセージの送受信やメッセージの生成などをJavaで行うためのAPIです。ほかにも、SIPアプリケーションをServletライクに構築するためのSIP Servlet(JSR116)、携帯端末でJ2MEとともにSIPメッセージを扱うためのSIP for J2ME(JSR180)などがあります。Java開発者はこれらを用いることで、容易にSIPアプリケーションを構築することができます。

 なお、SIPそのものについては「DNS Tips:SIPとは何ですか?」(Master of IP Network)を参照してください。

JSLEE製品の試行も始まる

 一方、JSLEEは、SIPアプリケーションをはじめとするビジネスロジックを実装するためのAPI群であり、実行環境です。JSLEEは、JAINSLEE.ORGに紹介されているように、ヨーロッパを中心にトライアルが数多く行われ、その優位性が立証されています。

 JSLEEはSIP環境だけにとどまらず、公衆回線網や無線網上のプロトコル、アプリケーションを吸収できる環境であり、今後さまざまなコミュニケーションアプリケーションが横断的に統合するためには欠かせない環境として期待されています。実は前述のSIP Servletも、JSLEEとともにアプリケーションの開発、実行環境です。これらのどちらを選択するかは、構築するアプリケーションに依存します(SIP ServletとJSLEEの詳細については、「次世代コミュニケーションを担うJAIN」を参照してください)。

 日本での取り組みの現状は、いくつかのキャリアでトライアルが行われているようです。例えば、NTTデータが2005年6月にサンフランシスコで開催されたJavaOneにおいてJSLEEをベース(Open Cloud社 Rhinoを使用)としたアプリケーションのデモを行いました。その詳細は同社のニュースリリース「Open Cloud社との共同研究を実施」に詳しく紹介されています。

 このようにJSLEEやJAIN SIP、SIP Servletは、OpenCloud(JSLEE)やBEA(SIP Servlet)をはじめとする企業が実装製品をリリースし、世界各地でトライアルが行われ、いよいよ実サービス基盤として使われつつあります。そこで本稿では、JSLEE(JSR22、JSR240)の仕様策定リーダーでもあり、実装製品を提供するOpen Cloud社のフリーダウンロード試用版を用い、コミュニケーションアプリケーションを実際に構築してみましょう。

本稿のシナリオ

 本稿では、JSLEEとJAIN SIPを用い、TV電話アプリケーションを作成してみます。使用するソフトウェアは、フリーウェアや製品評価版ですので、誰でも手軽に試していただくことが可能です。なお、この環境を構築するには、SIP Communicatorを動作させるマシンが2台以上必要になります。

 JSLEEとJAIN SIPを使うために、今回はOpen Cloud社のRhino SDK(JSLEE Server)およびNIST SIP Communicatorを用います。前編と後編に分けて、次の2つの環境を構築します。

前編 SIP Communicatorを用いたP2Pコミュニケーションアプリケーションの構築
JAIN SIPとJMF(Java Media Framework)を用いて構築されたSIP Communicatorを用い、音声、映像通信を行います
後編 SLEE Server、SIP Communicatorを用いたコンテキストアウェアマルチメディアコミュニケーションアプリケーションの構築
前編で構築した環境に、SIPレジストリサーバ、SIPプロキシサーバを配置し、そこでユーザーの位置情報や状態を管理します

 今回の前編で、SIPアプリケーションの構築を試み、SIPの役割を理解します。次回の後編で、JSLEEサーバを加えたアプリケーションに拡張することで、どのような価値が生み出せるかを明確にします。

1/2

 INDEX

Javaで音声チャットアプリを作ろう(前編)
Page1
SIPを身近なものにするJAIN SIP
JSLEE製品の試行も始まる
本稿のシナリオ
  Page2
最もシンプルなSIPアプリケーションの構築
JAIN SIPクライアントの構築
SIPアプリケーションの実行





Java Solution全記事一覧



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

注目のテーマ

Java Agile 記事ランキング

本日 月間