Posts tagged ‘SailFin’
SIP コンテナの設定項目一覧
SailFin (Sun GlassFish Communications Server) の設定項目について調べ、
この情報は SailFin をご利用の方には有用な情報になるかと思い、本ブログでも
公開します。
下記は、SailFin の中で特に SIP コンテナに関連した設定項目の一覧になります。
もちろん、下記の設定項目以外に GlassFish で提供される設定項目も設定変更が
可能ですが、ここでは特に SIP コンテナ、SIP リスナーに関する項目だけを抜粋しています。
また、下記の設定項目は GUI の管理コンソールからも設定変更ができますので
必要に応じて、GUI 管理コンソールをご使用ください。
パラメータ名 | 意味 | デフォルト値 |
server.log-service.module-log-levels.property.sip | 各サーバーモジュールのログレベルを指定 します。 FINEST: 最大の詳細度 FINER: 中間の詳細度 FINE: 最小の詳細度 CONFIG: サーバー設定に関連するメッセージ INFO: サーバー設定、またはエラーを除くサーバーの状態に関連するメッセージ WARNING: 例外を含む警告 SEVERE: 正常なプログラム実行の妨げになるイベント |
INFO |
server.monitoring-service.module-monitoring-levels.property.sip-service | SIP サービスの監視を有効 「LOW」または「HIGH」を選択します |
OFF |
server.sip-container.external-address | コールバッククライアントがレスポンスを 返信する際に使用する外部からアクセス可能な アドレスを指定します。 |
N/A |
server.sip-container.external-sip-port | コールバッククライアントがレスポンスを 返信する際に使用する外部からアクセス可能な SIP用のポート番号を指定します。 |
5060 |
server.sip-container.external-sips-port | コールバッククライアントがレスポンスを 返信する際に使用する外部からアクセス可能な SIPS用のポート番号を指定します。 |
5061 |
server.sip-container.session-config.session-manager.manager-properties.max-sessions | 最大セッション数 | N/A |
server.sip-container.session-config.session-manager.manager-properties.reap-interval-in-seconds | 取得間隔 アクティブでないセッションデータが削除 されるまでの秒数 |
N/A |
server.sip-container.session-config.session-manager.manager-properties.session-file-name | セッションファイル名: セッションデータを含むファイル。 |
N/A |
server.sip-container.session-config.session-manager.manager-properties.session-id-generator-classname | セッション ID ジェネレータクラス名: セッション ID を生成するためのカスタムクラス |
N/A |
server.sip-container.session-config.session-manager.store-properties.directory = | セッション情報をファイルに保存する際 ファイルの保存先のディレクトリを指定 (テスト環境においてのみ利用可能、 テスト時セッション情報の内容を確認する ために利用) |
N/A |
server.sip-container.session-config.session-manager.store-properties.reap-interval-in-seconds | 取得間隔: アクティブでないセッションデータが削除 されるまでの秒数 |
N/A |
server.sip-container.session-config.session-properties.timeout-in-seconds | セッションタイムアウトの時間(秒) | N/A |
server.sip-service.property.accesslog | アクセスログの保存先 | ${com.sun.aas.instanceRoot} /logs/sipaccess |
server.sip-service.access-log.format | SIPサービスのアクセスログのフォーマット を指定 SIP ヘッダーの client.name、auth-user-name、 datetime、request、status、response.length、 max.forwards、from、cseq、contact、to、 content.type、via、call.id を指定可能 |
%client.name% %auth-user-name% %datetime% %request% %status% %response.length% |
server.sip-service.access-log.rotation-enabled | アクセスログのローテーションを有効 | TRUE |
server.sip-service.access-log.rotation-interval-in-minutes | ローテーション間隔を指定 | 15 |
server.sip-service.access-log.rotation-policy | ローテーションのポリシーを指定 デフォルトの time 以外選択肢は無い |
time |
server.sip-service.access-log.rotation-suffix | ローテーションサフィックス: ローテーション後にアクセスログファイル名に 追加されるファイル名のサフィックス |
yyyy-MM-dd |
server.sip-service.connection-pool.max-pending-count | 最大保留カウント: LISTENソケットの保留の最大数 |
4096 |
server.sip-service.connection-pool.queue-size-in-bytes | キューサイズ: 接続キューのバイト単位のサイズ. -1 は、プロパティーが無効 |
-1 |
server.sip-service.connection-pool.receive-buffer-size-in-bytes | 受信バッファーサイズ: ソケットが使用する受信バッファのサイズ. -1 は、プロパティーが無効 |
-1 |
server.sip-service.connection-pool.send-buffer-size-in-bytes | 送信バッファーサイズ: ソケットが使用する送信バッファのサイズ |
8192 |
server.sip-service.keep-alive.max-connections | 最大接続数: キープアライブモードにある接続の最大数 |
256 |
server.sip-service.keep-alive.thread-count | スレッド数: システム内のキープアライブスレッドの数 |
1 |
server.sip-service.keep-alive.timeout-in-seconds | タイムアウト: 接続がアイドルと見なされ、キープアライブ 状態で維持される最大時間。 -1 はタイムアウトが無効 |
-1 |
server.sip-service.request-processing.header-buffer-length-in-bytes | SIP ヘッダーのバッファー長: リクエスト処理スレッドがリクエストデータ の読み込みに使用するヘッダーバッファのサイズ |
8192 |
server.sip-service.request-processing.initial-thread-count | 初期スレッド数: SIP サービス開始時のリクエスト処理スレッド の数 |
10 |
server.sip-service.request-processing.request-timeout-in-seconds | リクエストタイムアウト: SIPリクエストがタイムアウトされるまでの秒数 |
30 |
server.sip-service.request-processing.thread-count | リクエストスレッド数: リクエスト処理スレッドの最大数 |
10 |
server.sip-service.request-processing.thread-increment | スレッドの増分: リクエスト数が初期スレッド数に達した時点で 追加されるスレッド数 |
1 |
server.sip-service.sip-listener.sip-listener-*.address | ネットワークアドレス: ドットで区切られたペアまたは IPv6 形式で 指定可能。 複数のIPアドレスでリクエスト受け付けたい場合、 0.0.0.0、any (または ANY)、または INADDR_ANY (すべて IP アドレス)を指定 |
0.0.0.0 |
server.sip-service.sip-listener.sip-listener-*.enabled | SIP リスナーの有効/無効を設定 | TRUE |
server.sip-service.sip-listener.sip-listener-*.external-sip-address | 外部向け SIPアドレス: この値を指定した場合は、SIP コンテナの設定 よりも優先されます |
N/A |
server.sip-service.sip-listener.sip-listener-*.external-sip-port | 外部向け SIPポート番号: この値を指定した場合は、SIP コンテナの設定 よりも優先されます |
N/A |
server.sip-service.sip-listener.sip-listener-*.id | SIPリスナーの識別名 | sip-listener-1/ Sip-listener-2 |
server.sip-service.sip-listener.sip-listener-*.port | SIPポート番号 | 5060/5061 |
server.sip-service.sip-listener.sip-listener-*.ssl.cert-nickname | SIPS用のサーバ証明書のニックネームを設定 | s1as |
server.sip-service.sip-listener.sip-listener-*.ssl.client-auth-enabled | SIPS用クライアント認証の有効/無効設定 | FALSE |
server.sip-service.sip-listener.sip-listener-*.ssl.ssl2-ciphers | SIPS用 SSLv2の暗号化方式の指定 | N/A |
server.sip-service.sip-listener.sip-listener-*.ssl.ssl2-enabled | SIPS用 SSLv2の有効/無効設定 | FALSE |
server.sip-service.sip-listener.sip-listener-*.ssl.ssl3-enabled | SIPS用 SSLv3の有効/無効設定 | FALSE |
server.sip-service.sip-listener.sip-listener-*.ssl.ssl3-tls-ciphers | SIPS用 SSLv3/TLSの暗号化方式の指定 | N/A |
server.sip-service.sip-listener.sip-listener-*.ssl.tls-enabled | SIPS用 TLSの有効/無効設定 | TRUE |
server.sip-service.sip-listener.sip-listener-*.ssl.tls-rollback-enabled | SIPS用のTLSロールバックの有効/無効設定 | TRUE |
server.sip-service.sip-listener.sip-listener-*.transport | SIPリスナーの転送プロトコル | TCP/UDP or tls |
server.sip-service.sip-listener.sip-listener-*.type | SIPリスナーの種類 タイプにはデフォルト、外部、または内部を 指定できます。内部リスナーは、clb により プロキシの目的でのみ使用されます。 外部リスナーは、clb ではなく UA によってのみ 使用されます。デフォルトのタイプは両方利用 可能です。 |
default |
server.sip-service.sip-protocol.default-tcp-transport | デフォルトトランスポート: contact および record-route ヘッダーの URI で “transport=tcp” の挿入を有効/無効にします。 |
FALSE |
server.sip-service.sip-protocol.error-response-enabled | エラー応答: 不正な要求に対するエラー応答の送信を有効/ 無効にします。 |
FALSE |
server.sip-service.sip-protocol.sip-link.connection-alive-timeout-in-seconds | 接続生存状態のタイムアウト: 接続を終了するまでに、SIP リンクがアクティブ でない状態を許可される最大時間。 デフォルトは 120 秒。 |
120 |
server.sip-service.sip-protocol.sip-link.max-queue-length | キューの最大長: 1 つのリンク上で書き込みを待機できる、 同時書き込み要求、または接続要求の最大数、 またはその両方の最大数。 デフォルトの要求数は 50 |
50 |
server.sip-service.sip-protocol.sip-link.write-timeout-in-millis | 書き込みタイムアウト: SIP リンクの 1 回の書き込み操作の最大時間 範囲は 1 から 50 ミリ秒 デフォルトは 10 ミリ秒 |
10 |
server.sip-service.sip-protocol.sip-link.write-timeout-retries | 書き込みタイムアウトの再試行回数: SIP リンクの単一の書き込み操作を再試行する 最大回数。範囲は 1 から 25 デフォルトは 25 です。 |
25 |
server.sip-service.sip-protocol.sip-timers.t1-in-millis | SIP タイマー タイマー T1: T1 は、クライアントとサーバーの トランザクション間の推定往復時間 デフォルト値は 500 ミリ秒 |
500 |
server.sip-service.sip-protocol.sip-timers.t2-in-millis | タイマー T2: 非 INVITE 要求と INVITE 応答の最大の再送信 間隔 デフォルト値は 4000 ミリ秒 |
4000 |
server.sip-service.sip-protocol.sip-timers.t4-in-millis | タイマー T4: メッセージがネットワークに存続する最大時間 デフォルト値は 5000 ミリ秒 |
5000 |
server.overload-protection-service.enabled | 過負荷保護サービス機能の有効/無効設定 | FALSE |
server.overload-protection-service.cpu-overload-protection | CPU 過負荷保護の有効/無効設定 | FALSE |
server.overload-protection-service.cpu-http-threshold | HTTP リクエストに対するアクセス拒否を行う CPU の閾値を設定 (0% から 100%) 閾値を超えるとHTTP 503 エラーを返す |
70 |
server.overload-protection-service.cpu-ir-threshold | SIP 初期リクエストに対するアクセス拒否を行う CPU の閾値を設定 (0% から 100%) 閾値を超えるとHTTP 503 エラーを返す |
70 |
server.overload-protection-service.cpu-sr-threshold | SIP 初期リクエスト以降のリクエストに対する アクセス拒否を行うCPU の閾値を設定 (0% から 100%) 閾値を超えるとHTTP 503 エラーを返す |
90 |
server.overload-protection-service.cpu-mm-threshold | HTTP/SIP の両リクエストに対するアクセス 拒否を行うCPU の閾値を設定 (0% から 100%) 閾値を超えるとHTTP 503 エラーを返す |
99 |
server.overload-protection-service.cpu-overload-activation-algorithm | CPU 過負荷によるアクセス拒否 有効化アルゴリズムの選択: CPU の過負荷保護を有効にするかどうかを 決定するアルゴリズムを指定します。 CONSECUTIVE もしくは MEDIAN を指定 |
MEDIAN |
server.overload-protection-service.cpu-overload-deactivation-algorithm | CPU 過負荷によるアクセス拒否 無効化アルゴリズムの選択: CPU の過負荷保護を無効にするかどうかを 決定するアルゴリズムを指定します。 CONSECUTIVE もしくは MEDIAN を指定 |
CONSECUTIVE |
server.overload-protection-service.mm-threshold-http-wait-time | CPU 過負荷時 スレッドプールに戻されるまでにスレッドが 保持される期間を設定。 デフォルト2秒 |
2 |
server.overload-protection-service.number-of-samples | CPU 過負荷の計測において 過負荷と判断されるまでに必要なサンプルの数を 設定 設定可能な最小サンプリングレートは 2 |
5 |
server.overload-protection-service.retry-after-interval | CPU 過負荷を計測する間隔 503 エラーレスポンスの retry-after ヘッダに ここで設定した値が書き加えられる |
10 |
server.overload-protection-service.sample-rate | CPU 過負荷の計測における計測間隔を設定 正の値を指定可能 |
2 |
server.overload-protection-service.memory-overload-protection | メモリ過負荷保護の有効/無効設定 | FALSE |
server.overload-protection-service.mem-http-threshold | HTTP リクエストに対するアクセス拒否を行う メモリの閾値を設定 (0% から 100%) 閾値を超えるとHTTP 503 エラーを返す |
85 |
server.overload-protection-service.mem-ir-threshold | SIP 初期リクエストに対するアクセス拒否を行う メモリの閾値を設定 (0% から 100%) 閾値を超えるとHTTP 503 エラーを返す |
85 |
server.overload-protection-service.mem-sr-threshold | SIP 初期リクエスト以降のリクエストに対する アクセス拒否を行うメモリの閾値を設定 (0% から 100%) 閾値を超えるとHTTP 503 エラーを返す |
85 |
server.overload-protection-service.mem-mm-threshold | HTTP/SIP の両リクエストに対するアクセス 拒否を行うメモリの閾値を設定 (0% から 100%) 閾値を超えるとHTTP 503 エラーを返す |
99 |
server.overload-protection-service.mem-overload-activation-algorithm | メモリ過負荷によるアクセス拒否 有効化アルゴリズムの選択: メモリの過負荷保護を有効にするかどうかを 決定するアルゴリズムを指定します。 CONSECUTIVE もしくは MEDIAN を指定 |
MEDIAN |
server.overload-protection-service.mem-overload-deactivation-algorithm | メモリ過負荷によるアクセス拒否 無効化アルゴリズムの選択: メモリの過負荷保護を無効にするかどうかを 決定するアルゴリズムを指定します。 CONSECUTIVE もしくは MEDIAN を指定 |
CONSECUTIVE |
SailFin v2.0 の技術情報
先日もご案内したように、SailFin v2.0が
リリースされました。これに伴い、SailFin の
開発者が使い方などのノウハウを
ブログにアップしています。
SailFin 関連のエントリ
SailFin v2.0 から課金、認証、承認を行うことが
できるように、Diameter プロトコルを利用できる
ようになったのですが、この Diameter の利用は、
Sun GlassFish Communications Server v2.0 の
ライセンスをご購入いただいたお客様だけが
利用できる(SunSolve から Patch を入手)ように
なるようです。
この Diameter の設定方法については、下記に
エントリが登録されておりますので、どうぞ
ご参照ください。
http://blogs.sun.com/naman/entry/setup_and_configure_diameter_on
是非、SailFin/GlassFish Communications Server を
お試しください。
GlassFish v2.1.1 and SailFin v2.0 Released
昨晩、GlassFish v2.1.1とSailFin v2.0 (Sun GlassFish Communications Server)の
リリースが発表されました。(プレスリリース(英語版))
GlassFish v2.1.1 は SailFin v2.0 に対応したものなので、バグフィックスは
含まれますが、特に大きな変更はありません。IBM JDK 6 で AIX 6.1が
サポートされたくらいでしょうか。AIX ユーザの皆様、Geronimo の変わりに
是非 GlassFish をお試しください。
一方、SailFin v2.0も同様にAIX 6.1をサポートしましたが、それ以外に
多くの機能がアップデートされています。たとえば課金処理が可能な
Diameter をサポートしたり、Ericsson による実際の経験に基づく、
機能追加/変更要求等が数多く取り込まれています。
以前のバージョンより安定したバージョンと位置づけられるかと思います。
SailFin v1.5(Sun GlassFish Communications Server v1.5)をご利用の方は
是非、この機会に SailFin v2.0 にご変更ください。
SaiFin v1.5の機能, SailFin v2.0 の新機能、現時点での製品ロードマップを
ご確認されたい方は下記に製品紹介の最新の資料をアップ致しましたので、
是非、御確認頂ければと思います。
Project SailFin and Sun GlassFish Communications Server 製品紹介
SailFin Cafe (SIP Application Framework)
SIP アプリケーションのサーバ側のフレームワークである、
SailFin Cafe が公開されました。
これは JSR 289 の SIP アプリケーション(SIP Servlet 1.1.) を
かんたんに構築するためのフレームワークです。
SIP アプリケーションの開発をかんたんにする
SailFin のサブプロジェクトの一つである、SailFin Cafe を
是非お試しください。
https://sailfin-cafe.dev.java.net/
SailFinに関するオンラインセミナー開催
今週末SailFinに関するオンラインセミナーが開催されます。
SailFinはオープンソースのSIP Servletコンテナを含む
アプリケーションサーバですが、製品名としては正式には
Sun GlassFish(TM) Communications Server 1.5として出荷します。
昨年私がホットトピックセミナーで説明した際は、昨年の秋頃に出荷予定と
説明させて頂きましたが、SIP Servlet 1.1の仕様のFIX等が遅れたため、
かなり時間を経過してしまいましたが、やっと待望の出荷開始となります。
今回のセミナーはJavaOne 2008でもSailFinについて説明を行った、
Binodさん, Sreeramさんが説明を行います。
SailFinのセミナーの紹介:
http://wikis.sun.com/display/TheAquarium/SailFin
UStream:
Ustream The Aquarium
アメリカで金曜日の夕方17:30分から開始で、
日本時間になおすと土曜の夜中2時30分開始になりますので、
日本の皆様にはかなりきつい時間となりますが、もしご興味のある方が
いらっしゃいましたら、ぜひご参加ください。
もちろん、UStreamで録画されていますので後から確認して
頂く事も可能です。
ご参考:SailFinに関して記述した過去のブログ
●
SailFin情報
● SailFinに関するJavaホットトピックセミナー
● ホットトピックセミナーで使用した発表資料
● セミナーで使用したSailFinのサンプルアプリケーションの公開
ちなみに、バージョン名が異なっていてとても分かり辛いのですが、
SailFin 1.0 = Sun GlassFish(TM) Communications Server 1.5
になります。
GlassFish v2.1 and SailFin 1.0 リリース
アクエリウムでアナウンスされておりますが、
GlassFish v2.1とSailFinがリリースされました。
http://www.sun.com/software/products/appsrvr/
http://www.sun.com/sip
上記の製品は、今すぐダウンロードしてご使用いただけますが、
価格の詳細等を含むプレスリリースは2月に発表される予定です。
また、Grizzlyのメーリングリストで私も初めて知ったのですが、
SailFinではGrizzlyの実装が2つ含まれるようです。
HTTPのコンテナとしてはGrizzly 1.0.22が使用され、
SIP ServletコンテナとしてはGrizzly 1.8.6が使用されているようです。
PS.
GlassFish v3になると、(修正:Java NIO 2で実装されるため、
修正理由は:本エントリのコメント欄をご参照 )
Java SE 6以上が必須となる予定です。(GlassFish v3はJava SE 5で使用できないようです。)
SIP Servlet(JSR-289) Specification Final Release
JSR 289のSIP Servlet v1.1のファイナルの仕様が
ダウンロードできるようになりました。
JSR 289: SIP Servlet v1.1のステータス確認
http://jcp.org/en/jsr/detail?id=289
SIP Servlet v1.1ファイナルの入手先:
http://jcp.org/aboutJava/communityprocess/final/jsr289/index.html
このSIP Servlet v1.1に対応したアプリケーションサーバである
SailFin(Sun GlassFish Communications Server)は、予定では
今年の冬(12月中旬)にリリースされる予定ですので、
今暫くお待ちください。
セミナーで使用した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リソース、各種リソースを併用した)もかんたんに構築できるようになるかと思います。
まだ、製品リリースまでは若干時間がありますが、どのような製品に仕上がっているか、
是非試してみてください。