Posts tagged ‘SailFin’
セミナーで使用したSailFinのサンプルアプリケーションの公開(クリック2ダイアル)
先日のホットトピックセミナーで発表した際に
使用したSailFinのデモアプリケーションを、
当日参加して頂いた皆様からのご要望にお応えして
ソースコード付きで公開することにしました。
アプリケーションとソースコードを下記のURLに置きました。
アプリケーションの動作方法も以降で紹介しますので、
御興味のある方は是非入手頂き遊んでみてください。
●ソースコード付きサンプル(NetBeans 6.1プロジェクト)
Click2Dial-Source.jar:ソースコード付きアーカイブ
Click2Dial.zip: ZIP版ソースコード付きアーカイブ
●発表資料
発表資料の入手はこちらから
実行前の事前準備(必要なファイルの取得):
●SIP Servletコンテナ : SailFin
SailFinの最新ビルドであるMileStone 4を下記のより
入手して、インストールしてください。
https://sailfin.dev.java.net/downloads/v1-MS4.html
●ソースコード付きサンプル(NetBeans 6.1プロジェクト)
Click2Dial-Source.jar
●SIP Client (SIP対応のソフトウェアフォン)
サンプルアプリケーションを動作させる為には
SIP Clientが必要になります。
フリーのSIP Clientとして下記のようなソフトウェアが
ありますので、それぞれ事前に入手しインストールしておいてください。
1. X-Lite(お勧め)
2. SIP Communicator
SailFinのインストールとJavaDB,SailFinの起動方法の紹介
SailFinのインストール方法
|
SailFinに付属するJavaDBの起動
|
SailFinの起動
|
アプリケーションの動作
1. ソースコード付きサンプルの展開
入手したClick2Dial-Source.jarを展開します。
展開するとNetBeansのプロジェクトのディレクトリが
作成されます。
|
2. アプリケーションの配備
まず、アプリケーションを配備する前に、
アプリケーションサーバ上にJDBCのリソースを作成します。
※注意: JDBCのリソースを事前に作成しないと正常に動作しません。
|
次に、Click2Dial-Source.jarを展開すると展開したディレクトリ配下に、
distディレクトリが存在し、この中にClick2Dial.warファイルが存在しますので
確認してください。
|
このファイルをコピーしてアプリケーションを配備します。
ドメインディレクトリ配下の「autodeploy」ディレクトリの下に
ファイルをコピーしてください。
※ ご安心ください。アプリケーション配備時にデータベースの
テーブルを自動的に作成するようにしていますので、これだけで
動くようになります。
アプリケーションの配備
|
ファイルをコピーした時のサーバログ(ファイルコピーによる自動配備機能)
|
3. Webアプリケーションの実行とユーザ作成
ブラウザよりSailFinが稼働するサーバに対して接続してください。
http://sailfin.japan.sun.com:8080/Click2Dial/
すると下記のような画面が表示されます。

ここで「新規ユーザ」のハイパーリンクを押下し、
すくなくとも2人のユーザを作成してください。


4. SIP Clientの実行(X-Liteの場合)
X-Liteをインストールした後起動してください。
まず始めにSIP Accountsの設定を行います。
「Add…」ボタンを押下してSIPの
アカウントの設定を行ってください。

アカウントの設定では下記のように情報を登録してください。
注意点としては「Domain Proxy」では「proxy」を選択し、
「Address」欄にSailFinが稼働するサーバ名
(もしくはIPアドレス)を入力します。

設定後「OK」ボタンを押下すると下記の画面が表示されます。

最後に「Close」ボタンを押下します。
ボタンを押下すると下記のように表示されれば
正常にFOOさんでREGISTERに成功しています。

5. クリックしてダイアルの実行
再度Webのアプリケーションに移動して
「社員名選択画面」にて電話を掛ける人
(X-Liteで設定したアカウント)でログイン
してください。
今回は「BAR」さんでログインします。
「BAR」さん=電話を掛ける人

ログインユーザ以外の人が登録をしている場合、
「接続可能ユーザ一覧」に名前と「接続先SIPアドレス」が
表示されます。
ここでは「FOO」さんが接続可能ですので、
「FOO」さんのリンクを押下してください。
すると接続相手(FOOさん)に電話が掛かる
ようになります。

6. ソースコードについて
作成したプログラムは、NetBeans 6.1(Mac OS X)で作成しています。
展開したアーカイブをNetBeansのプロジェクトとして読み込むと
リソースへの参照先が異なるためワーニングが一部出力されるかと思います。
その場合は、適宜御使用の環境に併せて参照先を変更してください。
※「ssa-api.jar」ファイルへの参照先はSailFinのインストールディレクトリ
配下の「lib」ディレクトリ下にあります。
ssa-api.jarファイルはSIPServletのライブラリを含むアーカイブです。
※ 作成したプログラムは2008/06月のホットトピックセミナーで
デモ用に作成した簡易プログラムです。
プログラムはデモ用に早くつくることに主をおいていたため、
かなり手抜きをしています。(特にJPAまわり)
本プログラムをどのように扱うかは御自身の判断で御使用ください。
サンプルですのでご自由にお使い頂いて結構です。
また、本プログラムを使用して発生した如何なる問題に対して
私の方で責任を負うことはできませんので、ご理解頂いた上で
ご使用ください。
(問題は起きないと思いますが、間違っても本番環境で、
そのまま使わないで下さいねってことです。)
SailFin情報
今日は、GlassFishではなく、SailFinについてご紹介したいと思います。
先日、日本エリクソンさんのイベントでも発表したのですが、
ちょっとした概要を説明します。
2007年5月にSunとEricssonはオープンソースの「GlassFishコミュニティ」上で、
「Communications Application Server」を構築するプロジェクト「SailFin」を
発表しました。
「プレスリリース」
http://www.sun.com/aboutsun/pr/2007-05/sunflash.20070508.5.xml
http://www.ericsson.com/ericsson/press/releases/20070508-1125135.shtml
Ericssonは元々IMS製品を出荷しており、その製品の中でJSR-116に準拠した
SIP(Session Initiation Protocol)Servlet Containerを彼らの製品中に
実装していました。そして、今回の発表によりそのSIP Servlet Containerの実装を
GlassFishコミュニティに寄贈していただく事になりました。
その後も、引き続きSunとEricssonで協力して
次世代の「Communications Application Server」を共同で構築中です。
現在では、SailFinの開発に対して、Sunのエンジニアの他、エリクソンのエンジニアも
約15名程フルタイムで、この新しいアプリケーションサーバの構築プロジェクトに
参加し日々開発を続けている状況です。
このSIP Servlet Containerを含むアプリケーションサーバは、
現在、プロモーションビルドとして下記より御試し頂く事ができます。
https://sailfin.dev.java.net/
そして、来月(2008年3月)にはベータ版がリリースされる予定です。
また、製品版は2008年6月頃にリリースされる予定です。
ここで、ちょっとプロモーションビルドをダウンロードして動作させてみました。
すると、下記のような管理画面が出力されます。
注意深くみてみて下さい!!(英語版ですが。)
なんと管理画面は、ほぼGlassFishの管理画面と同じではありませんか!!
SIP Container等の追加項目がありますが、Enterprise Application , Web Application,
Resources等はGlassFishと全く同じです。
そうなのです。SailFinはGlassFishを拡張しSIP Servlet Containerを統合した
アプリケーションサーバなのです。
つまり、GlassFishにできる事は、SailFinでもできます。
GlassFishの持つ機能の内の負荷分散や高可用性も当然実現できます。
それ以外の機能も御使用頂く事ができます。
また、内部的な話を少しすると、SIPのハンドリングはGrizzly上で実装されています。
下記の、Jean-Francoisのブログにも記載されているのですが、
たった2つのクラスを実装しただけで、Grizzly上でSIPを対応できるように
なったという事です。当然、Grizzly上に実装する事により、SIPメッセージを
TLSで暗号化して通信できるようになったりもします。
#ここでもGrizzlyフレームワークの素晴らしさが実証されてますね。
#いやぁ、改めてGrizzlyはすごいなぁ!!
http://weblogs.java.net/blog/jfarcand/archive/2007/11/supporting_the.html
Grizzly上で実装されたSIPプロトコル、御想像の通り非常にハイパフォーマンスに
なる事が予想されます。実際、開発者の中でもパフォーマンスに重点をおいて開発が進められて
いるようです。
さらに、NetBeans上でSIPサーブレットを作成できるようモジュールも
既に提供されております。これを使うとSIPサーブレットクラスの雛形が
簡単にできるようになりますし、NetBeansを使用するとConvergedな
アプリケーション(HTTP Servlet , SIP Servlet , EJB ,JDBCリソース、
JMSリソース、各種リソースを併用した)もかんたんに構築できるようになるかと思います。
まだ、製品リリースまでは若干時間がありますが、どのような製品に仕上がっているか、
是非試してみてください。