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のインストール方法





# java -Xmx256m -jar sailfin-installer-v1-b24d-darwin.jar -console
…. (中略)
….. (ライセンスの同意確認)
or based on this library.? If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so.? If you do not wish to do so, delete this
exception statement from your version.
Accept or Decline? [A,D,a,d] A
…. (中略)
sailfin/updatecenter/LICENSE.txt
sailfin/updatecenter/README
sailfin/updatecenter/registry/SYSTEM/local.xml
installation complete
# chmod 755 sailfin/lib/ant/bin/*
# cd sailfin
# ./lib/ant/bin/ant -f setup.xml
…. (中略)
[exec] Admin login information for host [localhost] and port
[4848] is being overwritten with credentials provided. This is
because the –savelogin option was used during create-domain
command.
[exec] Login information relevant to admin user name [admin]
for this domain [domain1] stored at [/SAILFIN-INSTALL/.asadminpass]
successfully.
[exec] Make sure that this file remains protected. Information
stored in this file will be used by asadmin commands to manage
this domain.
[delete] Deleting: /Applications/NetBeans/sailfin/passfile
BUILD SUCCESSFUL
Total time: 26 seconds





SailFinに付属するJavaDBの起動





# asadmin start-database
Database started in Network Server mode on host 0.0.0.0 and port 1527.
…. (中略)
Starting database in the background.
Log redirected to /Applications/NetBeans/sailfin/databases/derby.log.
Command start-database executed successfully.





SailFinの起動




# asadmin start-domain domain1
Starting Domain domain1, please wait.
…. (中略)
Domain listens on at least following ports for connections:
[8080 8181 4848 3700 3820 3920 8686 ].
Domain does not support application server clusters and other
standalone instances.









アプリケーションの動作



1. ソースコード付きサンプルの展開

  入手したClick2Dial-Source.jarを展開します。

  展開するとNetBeansのプロジェクトのディレクトリが

  作成されます。





# jar xvf Click2Dial-Source.jar
0 Thu Jun 19 19:49:02 JST 2008 META-INF/
60 Thu Jun 19 19:49:02 JST 2008 META-INF/MANIFEST.MF
0 Thu Jun 12 12:29:06 JST 2008 Click2Dial/
0 Thu Jun 12 12:29:04 JST 2008 Click2Dial/build/
0 Thu Jun 19 18:28:52 JST 2008 Click2Dial/build/web/
2106 Thu Jun 19 18:28:52 JST 2008 Click2Dial/build/web/Login.jsp
0 Thu Jun 12 12:29:04 JST 2008 Click2Dial/build/web/manage/
…….(中略)
0 Thu Jun 12 12:29:06 JST 2008 Click2Dial/dist/
7097035 Thu Jun 19 18:28:54 JST 2008 Click2Dial/dist/Click2Dial.war
…….(後略)





2. アプリケーションの配備



まず、アプリケーションを配備する前に、

アプリケーションサーバ上にJDBCのリソースを作成します。


※注意: JDBCのリソースを事前に作成しないと正常に動作しません。





# asadmin create-jdbc-resource –connectionpoolid DerbyPool jdbc/APP_ApacheDerby
Command create-jdbc-resource executed successfully.





次に、Click2Dial-Source.jarを展開すると展開したディレクトリ配下に、

distディレクトリが存在し、この中にClick2Dial.warファイルが存在しますので

確認してください。





# pwd
/NetBeansProjects/Click2Dial/dist
# ls
Click2Dial.war





このファイルをコピーしてアプリケーションを配備します。

ドメインディレクトリ配下の「autodeploy」ディレクトリの下に

ファイルをコピーしてください。



※ ご安心ください。アプリケーション配備時にデータベースの

  テーブルを自動的に作成するようにしていますので、これだけで

  動くようになります。


アプリケーションの配備




# cp Click2Dial.war /SAILFIN_INSTALL/sailfin/domains/domain1/autodeploy/



ファイルをコピーした時のサーバログ(ファイルコピーによる自動配備機能)




[#|2008-06-19T21:58:52.212+0900|INFO|sun-comms-appserver1.0|
javax.enterprise.system.container.web|_ThreadID=19;_ThreadName=
Timer-5;|contextConfig.available /Click2Dial|#]
[#|2008-06-19T21:58:52.635+0900|INFO|sun-comms-appserver1.0|
javax.enterprise.resource.webcontainer.jsf.config|_ThreadID=19;_Thread
Name=Timer-5;/Click2Dial;|Initializing Sun’s JavaServer Faces implemen
tation (1.2_04-b20-p03) for context ‘/Click2Dial’|#]
[#|2008-06-19T21:58:54.053+0900|INFO|sun-comms-appserver1.0|
javax.enterprise.system.container.sip|_ThreadID=19;_ThreadName=
Timer-5;|Enabling the application Click to Dial application|#]
[#|2008-06-19T21:58:54.093+0900|INFO|sun-comms-appserver1.0|
javax.enterprise.system.tools.deployment|_ThreadID=19;_ThreadName
=Timer-5;|[AutoDeploy] Successfully autodeployed : SAILFIN_INSTALL
/sailfin/domains/domain1/autodeploy/Click2Dial.war.|#]





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まわり)

 本プログラムをどのように扱うかは御自身の判断で御使用ください。

 サンプルですのでご自由にお使い頂いて結構です。



 また、本プログラムを使用して発生した如何なる問題に対して

 私の方で責任を負うことはできませんので、ご理解頂いた上で

 ご使用ください。

 (問題は起きないと思いますが、間違っても本番環境で、

  そのまま使わないで下さいねってことです。)


2008年6月19日 at 8:05 AM 2件のコメント

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リソース、各種リソースを併用した)もかんたんに構築できるようになるかと思います。













まだ、製品リリースまでは若干時間がありますが、どのような製品に仕上がっているか、

是非試してみてください。




2008年2月7日 at 2:00 AM

新しい投稿


Java Champion & Evangelist

Translate

ご注意

このエントリは個人の見解であり、所属する会社の公式見解ではありません

カレンダー

2019年12月
« 7月    
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

カテゴリー

Twitter

clustermap

ブログ統計情報

  • 1,165,887 hits

RSSフィード