前編 シンプルな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全記事一覧 |
- 実運用の障害対応時間比較に見る、ログ管理基盤の効果 (2017/5/9)
ログ基盤の構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。今回は、実案件を事例とし、ログ管理基盤の有用性を、障害対応時間比較も交えて紹介 - Chatwork、LINE、Netflixが進めるリアクティブシステムとは何か (2017/4/27)
「リアクティブ」に関連する幾つかの用語について解説し、リアクティブシステムを実現するためのライブラリを紹介します - Fluentd+Elasticsearch+Kibanaで作るログ基盤の概要と構築方法 (2017/4/6)
ログ基盤を実現するFluentd+Elasticsearch+Kibanaについて、構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。初回は、ログ基盤の構築、利用方法について - プログラミングとビルド、Androidアプリ開発、Javaの基礎知識 (2017/4/3)
初心者が、Java言語を使ったAndroidのスマホアプリ開発を通じてプログラミングとは何かを学ぶ連載。初回は、プログラミングとビルド、Androidアプリ開発、Javaに関する基礎知識を解説する。
|
|