ここでは、SIPサーブレット・アプリケーションのアプリケーション・サーバーへのデプロイについて説明します。
SIPアプリケーションは、サーブレット、クラス・ファイル、静的なリソースとコンテンツ、およびこれらの要素を統合する記述的なメタ情報によって構成できます。JSR-116で指定されているように、SIPサーブレット・アプリケーションは、ディレクトリの構造化された階層です。複合アプリケーション(HTTPとSIPの両方で構成されるアプリケーション)の場合、階層のルートは、Webサーバーから公開されるファイルのドキュメント・ルートとして機能します。脚注1 SIPサーブレット・アプリケーションの階層内で、WEB-INFディレクトリには、sip.xml
デプロイメント・ディスクリプタ・ファイルを含むディレクトリ(/WEB-INF/sip.xml
)、アプリケーション・ローダー・クラスが利用できるユーティリティ・クラスを含むディレクトリ(/WEB-INF/classes
)およびJARファイル、サーブレット、Bean、Webアプリケーションに役立つユーティリティ・クラスを含むディレクトリ(/WEB-INF/lib
)が格納されます。
デプロイメント・ディスクリプタ・ファイル
SIPアプリケーションのデプロイメント・ディスクリプタ・ファイルsip.xml
は、次の要素で構成されます。
<sip-app> <context-param>...</context param> <display-name>...</display-name> <distributable>...</distributable> <session-config>...</session-config> <servlet>...</servlet> <servlet mappings>...</servlet mappings> <listener>...</listener> <security-constraint>...</security-constraint> </sip-app>
アプリケーションの共通パラメータは、<context-param>
要素内で設定されます。<session-config>
要素は、アプリケーションのセッションを定義します。<servlet>
要素は、子要素<servlet-name>
と<servlet-class>
でコンテナのサーブレットを定義します。<servlet mappings>
要素は、アプリケーションのサーブレットがリクエストに応答する方法を定義します。アプリケーションのライフサイクル・リスナー・クラスとエラー処理は、<listener>
要素で定義されます。セキュリティは、<security-constraint>
要素を使用してサーブレットごとに宣言されます。sip.xml
ファイルの要素の詳細は、『Oracle Communication and Mobility Server開発者ガイド』を参照してください。
開発からデプロイへ
SIPサーブレット・アプリケーションの開発からデプロイまでのサイクルは次のようになります。
javax.servlet.sip.SipServlet
を拡張し、特定のサービスに必要なメソッドをオーバーライドして、SIPサーブレットを作成します。
SIPサーブレット・アプリケーションの初期化パラメータ(サーブレット定義)と起動ルール(サーブレット・マッピング)を定義します。
デプロイメント・ディスクリプタ・ファイル(sip.xml
)とweb.xmlファイルを作成します。
アプリケーション・ファイルとsip.xml
ファイルをビルドし、Web Archive形式ファイル(WARファイル)にパッケージングします。
WARファイルをEnterprise Archive(EAR)ファイルにパッケージングします。
EARファイルをOC4Jにデプロイします。
SIPサーブレット・アプリケーションのデプロイとOC4Jでの起動が成功したら、ログ・ファイルを確認し、Oracle Communicatorクライアントなどのソフトフォン・クライアントを使用してテストします。
OCMSは、EAR(Enterprise Archive)ファイルとWAR(Web Application Archive)ファイルは受け付けますが、SARファイルは受け付けません。したがって、SIPアプリケーションをOC4Jにデプロイできるようにするには、WARファイルをEARファイルとしてパッケージングする必要があります。
次に示すように、EARファイルには、SARファイル、JARファイル、WAR(Web Application Archive)およびEJBモジュールを含めることができます。
J2EEAppName.ear META-INF/ application.xml orion-application.xml (optional) WebModuleName.war static HTML files, such as index.html JSP pages images WEB-INF/ web.xml (Standard J2EE descriptor) orion-web.xml (optional OC4J Web descriptor) classes/ servlet classes, according to package lib/ JAR files for dependency classes SIPApplicationName.sar WEB-INF/ sip.xml (deployment descriptor) web.xml (for converged applications) classes/ servlet classes, according to package lib/*.JAR JAR files for dependency classes
デプロイおよびEARアプリケーションの構造の詳細は、『Oracle Containers for J2EE開発者ガイド』を参照してください。
Application Server Controlでは、JSR 88ベースのデプロイ・ウィザードが提供されています。このウィザードには、「アプリケーション」ページの「デプロイ」ボタンをクリックしてアクセスします。このウィザードを使用すると、J2EEアプリケーションのデプロイおよび再デプロイを行うことができます。また、デプロイ時に共通のデプロイメント・ディスクリプタの割当てとマッピングを行うためのタスク指向のデプロイ・プラン・エディタと、すべてのデプロイメント・ディスクリプタにアクセスして詳細な構成を行うことができる汎用デプロイ・プラン・エディタの両方が含まれています。アプリケーションのアンデプロイと再デプロイの詳細は、Application Server Controlを使用したSIPアプリケーションのデプロイ、アンデプロイおよび再デプロイに関する項を参照してください。
注意: Application Server Controlを使用して、デプロイ・プランを変更することはできますが、sip.xml デプロイメント・ディスクリプタ・ファイルを変更することはできません。デプロイ・プランについては、『Oracle Containers for J2EEデプロイメント・ガイド』を参照してください。 |
アプリケーションの下にデプロイされたエンタープライズ・アプリケーションは、セキュリティ・インフラストラクチャおよび認証関連のEJB(Enterprise JavaBeans)を継承します。OCMS JAASセキュリティ・プロバイダに対する認証をサポートするには、このインフラストラクチャが必要です。
注意: アプリケーションをアンデプロイすると、MBeanもアンデプロイされます。 |
OC4J SIPサーバー・インスタンスにアプリケーションをデプロイすると、次のコマンドを実行し、admin_client.jar
ユーティリティを使用してアプリケーションを起動または停止できます。
java -jar admin_client.jar uri adminId adminPwd -start|-stop appName
Oracle Application Serverの場合、URIパラメータには次の形式があります。
deployer:oc4j:opmn://host.example.com:6003/ocms
OC4Jスタンドアロンの場合、URIパラメータには次の形式があります。
deployer:oc4j:localhost:23791
ここでは、これらの方法の概要を説明します。
詳細は、『Oracle Containers for J2EEデプロイメント・ガイド』を参照してください。
Application Sever Controlコンソールでは、SIPアプリケーションをデプロイ、アンデプロイおよび再デプロイできるウィザードが提供されています。
ヒント: すべてのアプリケーションが完全にデプロイされ、サーバーが再起動するまで、ファイアウォールを使用してすべての着信SIPトラフィックを遮断してください。次に示すLinuxスクリプト #!/bin/bash if [ $# != 1 ] then echo "blockport.sh <port>" exit fi iptables -A INPUT -p tcp -m tcp --dport $1 -j DROP iptables -A INPUT -p udp -m udp --dport $1 -j DROP service iptables save echo "Port "$1" blocked." サーバーが稼働し、すべてのアプリケーションが完全にデプロイされると、同じようにシェル・スクリプトを使用して、SIPトラフィックのフローを有効にできます。次のLinuxスクリプト #!/bin/bash if [ $# != 1 ] then echo "unblockport.sh <port>" exit fi iptables -D INPUT -p tcp -m tcp --dport $1 -j DROP iptables -D INPUT -p udp -m udp --dport $1 -j DROP service iptables save echo "Port "$1" unblocked." |
詳細は、『Oracle Containers for J2EEデプロイメント・ガイド』のApplication Server Controlコンソールを使用したデプロイに関する項を参照してください。
「アプリケーション」ページの「デプロイ」ボタンをクリックすると起動されるデプロイ・ウィザードの誘導に従って、デプロイ・プロセスを実行できます。
「アーカイブの選択」ページ(図13-1)が、ウィザードの最初のページです。このページでは、OC4Jに対して、SIPアプリケーションを含むEAR(Enterprise Archive)ファイルの場所を指定します。また、このページでは、デプロイ・プランの作成または適用を選択できます。デプロイ・プランは、OC4Jにアーカイブをデプロイするために必要なすべての構成データをクライアント側で集約したものです。既存のデプロイ・プランを使用する場合は、その場所を入力します。新しいデプロイ・プランを作成する場合は、「新規デプロイ・プランを自動的に作成します。」オプションを選択します。EARファイルの構造およびデプロイ用にSIPアプリケーションをパッケージングする方法については、「アプリケーションのデプロイ」を参照してください。
ヒント: 既存のプランの場所を入力しないと、ウィザードは自動的に新しいデプロイ・プランを作成します。 |
「次へ」をクリックすると、「アプリケーション属性」ページ(図13-2)が表示されます。このページでは、アプリケーション名を入力し、親アプリケーションを選択できます。アプリケーション名にはスペースを含めることはできません。
認証を必要とするOCMSアプリケーションの場合は、親アプリケーションとしてSubscriber Data Servicesを選択します。
注意: 親アプリケーションを指定しないと、SIPアプリケーションはデフォルト・アプリケーションの子になります。 |
「アプリケーション属性」ページでは、Webサイトを定義するname-web-site.xml
構成ファイルの名前部分を指定することで、WebサイトへのWebアプリケーションのバインディングを設定することもできます。J2EEアプリケーションの一部としてデプロイされるWebアプリケーションは、アクセスで使用するWebサイトにバインドする必要があります。
Webブラウザでアプリケーションにアクセスするときに使用するURLに付加されるWebモジュールのコンテキスト・ルートも、Webアクセスを可能にするプロセスの一部として設定されます。この値は、通常、アプリケーションとともにパッケージングされるapplication.xml
デプロイメント・ディスクリプタから読み込まれます。
「デプロイ設定」ページ(図13-3)では、デプロイ・プランを編集できます。
必要に応じてデプロイ・タスクを完成させた後に、「デプロイ」をクリックします。確認ページが表示されます(図13-4)。
注意: 着信リクエストに対してOCMS SIPサーブレット・コンテナに適切に応答させるには、リクエストを処理するデプロイ対象アプリケーションをApplication RouterのSIPUriList属性に追加する必要があります。この属性を構成すると、OCMS以外(すなわち、OCMS Communicator以外)のSIPクライアントからの着信リクエストINVITE 、MESSAGE 、PUBLISH 、REGISTER 、またはSUBSCRIBE のROUTEヘッダーにアプリケーションが追加されます。Proxy Registrarは常に、SIPUriList属性でリストされる最終項目になるようにしてください。 |
アプリケーションを選択してから「アンデプロイ」ボタンをクリックすることで、アプリケーションを削除(アンデプロイ)できます。アプリケーションをアンデプロイすると、アプリケーションに登録されているMBeanもアンデプロイされます。
同様に、親アプリケーションをアンデプロイすると、子アプリケーションもアンデプロイされます。したがって、親アプリケーションとそれに関連するすべてのアプリケーションを再デプロイする必要があります。アプリケーションをアンデプロイするときのOC4Jの再起動については、『Oracle Containers for J2EEデプロイメント・ガイド』を参照してください。
「再デプロイ」ボタンを使用すると、OC4Jを再起動しないでアプリケーションをアンデプロイできます。EARファイルにパッケージングされているSIPアプリケーションを再デプロイすると、OC4Jに対して以前のインスタンスをアンデプロイするよう指示されますが、アプリケーションを選択して「アンデプロイ」をクリックする必要はありません。
アプリケーションのデプロイと同様に、ウィザードで示される3つの手順のプロセスに従って、アプリケーションを再デプロイします。OC4Jに対してEARファイルを指示し、デプロイ・プランを選択または作成し、親アプリケーションとWebバインディングを選択し、デプロイメント・ディスクリプタの構成作業を行います。
Oracle Application Serverクラスタ環境およびスタンドアロンOC4JサーバーのアクティブなOC4Jインスタンスでデプロイ関連の操作を実行するには、admin_client.jar
コマンドライン・ユーティリティを使用します。
admin_client.jarユーティリティは、OC4JインスタンスのORACLE_HOME/j2ee/homeにデフォルトでインストールされます。このユーティリティを使用するには、先にOC4Jを起動する必要があります。
EARをデプロイするには、次に示すように、EAR固有のコンテキストで-deploy
コマンドを使用します。
java -jar admin_client.jar uri adminId adminPassword -deploy -file path/filename -deploymentName appName [-bindAllWebApps [webSiteName]] [-targetPath path] [-parent appName] [-deploymentDirectory path] -enableIIOP [-iiopClientJar path/filename]
アプリケーションをアンデプロイするには、次のようにします。
java -jar admin_client.jar uri adminId adminPassword -undeploy appName
以前にデプロイしたアーカイブを再デプロイするには、-redeploy
コマンドと次の構文を使用します。
java -jar admin_client.jar uri adminId adminPassword -redeploy -file path/filename -deploymentName appName [-keepSettings] [-sequential]
-redeploy
コマンドのサブスイッチの詳細は、『Oracle Containers for J2EEデプロイメント・ガイド』のadmin_client.jarユーティリティを使用したデプロイに関する項を参照してください。
次に示すように、admin_client.jar
ユーティリティを使用して、コマンドラインからEARファイルをデプロイできます。
java -jar admin_client.jar uri adminId adminPassword -deploy -file path/filename-deploymentName appName [-bindAllWebApps [webSiteName]] [-targetPath path] [-parent appName] [-deploymentDirectory path] -enableIIOP [-iiopClientJar path/filename][-deploymentPlan path/filename]
admin_client.jar
ユーティリティを使用したアプリケーションのアンデプロイおよび再デプロイの詳細は、admin_client.jarユーティリティを使用したアプリケーションのデプロイ、アンデプロイおよび再デプロイに関する項を参照してください。また、『Oracle Containers for J2EE構成および管理ガイド』と『Oracle Containers for J2EEデプロイメント・ガイド』も参照してください。
注意: admin_client.jar ユーティリティは、OC4JインスタンスのORACLE_HOME/j2ee/homeにデフォルトでインストールされます。このユーティリティを使用するには、先にOC4Jを起動する必要があります。 |
脚注
脚注1: SIPサーブレットAPI、バージョン1.0