Avitek Medical Record 開発チュートリアル

     前  次    新しいウィンドウで目次を開く     
ここから内容の開始

 


ドメインおよびサーバのコンフィグレーション

 


チュートリアル 3 : Administration Console での WebLogic Server リソースのコンフィグレーション

このチュートリアルでは、MedRec アプリケーションを MedRec サーバにデプロイして実行するために必要な WebLogic Server リソースをコンフィグレーションする方法を説明します。以下のリソースがあります。

このチュートリアルは、以下の節で構成されています。

 


前提条件

このチュートリアルを始める前に、以下のことを行ってください。

 


手順

次の手順に従って、MedRec サーバの WebLogic Server リソースをコンフィグレーションします。

手順 1 : ブラウザで MedRec サーバの Administration Console を起動する

Administration Console を使用して、MedRec アプリケーション スイートで使用する WebLogic Server リソースを作成します。

  1. ブラウザで以下を指定して Administration Console を開きます。
  2. http://host:7101/console

    hostMedRecServer が実行されているコンピュータを指します。ブラウザが MedRecServer と同じコンピュータにある場合は、http://localhost:7101/console という URL を使用できます。

  3. ユーザ名とパスワードの両方に weblogic を指定して、[ログイン] をクリックします。

Administration Console は、Windows の [スタート] メニューから起動することもできます。

  [スタート|すべてのプログラム|BEA Products|User Projects|MedRecDomain|Admin Server Console]

手順 2 : スタンドアロンの JDBC データ ソースを作成する

WebLogic Server でデータベース接続をコンフィグレーションするには、JDBC データ ソースを WebLogic ドメインに追加します。データ ソースは、Java EE においてデータベース接続をコンフィグレーションするための標準的な手法です。データ ソースは、スタンドアロン モジュールとしてデプロイすることも、エンタープライズ アプリケーションの一部として、パッケージ化されたモジュールでデプロイすることもできます。

各 WebLogic データ ソースは、データベース接続のプールを保有しています。各アプリケーションは、JNDI ツリーまたはローカル アプリケーション コンテキストでデータ ソースをルックアップし、getConnection メソッドを使用してデータベース接続を予約します。データ ソースおよびその接続プールは、システムの安定稼働を維持するための接続管理プロセスを備えています。

この手順では 2 つのスタンドアロンの JDBC データ ソースを作成する方法について説明します。最初のデータ ソースは XA JDBC ドライバを使用し、もう 1 つは使用しません。通常、データ ソースを作成するときに、必ず XA JDBC ドライバを使用します。ただし、JMS JDBC ストアが XA リソース ドライバをサポートしていないので (WebLogic JMS はそれ独自の XA リソースを実装する)、2 つ目の非 XA データ ソースが必要となります。後の方の手順で、非 XA データ ソースを JMS JDBC ストアに関連付ける方法を示します。

  1. Administration Console の左上の [チェンジ センタ] ウィンドウにある [ロックして編集] をクリックします。
  2. 左の [ドメイン構造] ウィンドウで、[MedRecDomain|サービス|JDBC] を展開します。
  3. [データ ソース] をクリックします。
  4. 右ペインで、[新規作成] をクリックします。
  5. [JDBC データ ソースのプロパティ] ページで次の項目を入力します。
    • [名前] フィールドに MedRecGlobalDataSource と入力します。
    • [JNDI 名] テキスト ボックスに jdbc/MedRecGlobalDataSource と入力します。
    • [データベースの種類] として [PointBase] を選択します。
    • [データベース ドライバ] として [PointBase's Driver (Type 4) Versions:4.X 5.X] を選択します。
  6. [次へ] をクリックします。
  7. [トランザクション オプション] ページで、[グローバル トランザクションのサポート] のチェックをはずします。
  8. この JDBC データ ソースは JDBC ストアの作成に使用されます。データ ソースがグローバル トランザクションをサポートしないことが求められます。

  9. [次へ] をクリックします。
  10. [接続プロパティ] ページで、次の手順に従います。
    • [データベース名] フィールドに demo と入力します。
    • [ホスト名] フィールドに localhost と入力します (デフォルト値)。
    • [ポート] フィールドに 9092 と入力します (デフォルト値)。
    • [データベース ユーザ名] フィールドに medrec と入力します。
    • [パスワード] および [パスワードの確認] フィールドに medrec と入力します。
  11. [次へ] をクリックします。
  12. [データベース接続のテスト] ページで、PointBase データベースへの接続をテストするための情報が正しいことを確認します。
  13. テキスト フィールドの値は、指定した情報と PointBase のデフォルト値 (PointBase ドライバ クラス名の com.pointbase.jdbc.jdbcUniversalDriver など) に基づいています。

    [コンフィグレーションのテスト] をクリックして接続をテストします。データ ソースを適切にコンフィグレーションしている場合は、[メッセージ] ペインに「接続テストが成功しました。」というメッセージが表示されます。

    注意 : 必ず PointBase を起動しておきます。起動していないと、ドライバ コンフィグレーションのテストは失敗します。詳細については、「チュートリアル 2 : PointBase 開発データベースの起動」を参照してください。
  14. [次へ] をクリックします。
  15. 対象として MedRecServer を選択します。
  16. [完了] をクリックします。
  17. 新しいデータ ソースが [データ ソース] テーブルに表示されます。

  18. [JDBC データ ソースの概要] ページで [新規作成] をクリックします。
  19. [JDBC データ ソースのプロパティ] ページで次の項目を入力します。
    • [名前] フィールドに MedRecGlobalDataSourceXA と入力します。
    • [JNDI 名] テキスト ボックスに jdbc/MedRecGlobalDataSourceXA と入力します。
    • [データベースの種類] として [PointBase] を選択します。
    • [データベース ドライバ] として [PointBase's Driver (Type 4XA) Versions:4.X 5.X] を選択します。
  20. [次へ] をクリックします。
  21. [トランザクション オプション] ページで、[次へ] をクリックします。
  22. [接続プロパティ] ページで、次の手順に従います。
    • [データベース名] フィールドに demo と入力します。
    • [ホスト名] フィールドに localhost と入力します (デフォルト値)。
    • [ポート] フィールドに 9092 と入力します (デフォルト値)。
    • [データベース ユーザ名] フィールドに medrec と入力します。
    • [パスワード] および [パスワードの確認] フィールドに medrec と入力します。
  23. [次へ] をクリックします。
  24. [データベース接続のテスト] ページで、PointBase データベースへの接続をテストするための情報が正しいことを確認します。
  25. テキスト フィールドの値は、指定した情報と PointBase のデフォルト値 (PointBase ドライバ クラス名の com.pointbase.xa.xaDataSource など) に基づいています。

    [コンフィグレーションのテスト] をクリックして接続をテストします。データ ソースを適切にコンフィグレーションしている場合は、[メッセージ] ペインに「接続テストが成功しました。」というメッセージが表示されます。

    注意 : 必ず PointBase を起動しておきます。起動していないと、ドライバ コンフィグレーションのテストは失敗します。詳細については、「チュートリアル 2 : PointBase 開発データベースの起動」を参照してください。
  26. [次へ] をクリックします。
  27. 対象として MedRecServer を選択します。
  28. [完了] をクリックします。
  29. 新しいデータ ソースが [データ ソース] テーブルに表示されます。

  30. [チェンジ センタ] で、[変更のアクティブ化] をクリックして MedRec サーバ コンフィグレーションを更新します。

手順 3 : Web サービスの信頼性のあるメッセージングで使用されるファイル ストアを作成する

Web サービスの信頼性のあるメッセージング機能では、永続ストアを使用してメッセージを格納します。MedRec チュートリアルでは、ファイル ストアを使用してメッセージを格納する方法について説明します。次の手順で説明するように、JDBC ストアを使用することもできます。

注意 : WebLogic Web サービスの信頼性のあるメッセージングはサービス間の機能です。つまり、あるクライアント Web サービスが別の Web サービスを確実に呼び出します。通常、各 Web サービスは 2 つの異なる WebLogic Server インスタンスにデプロイされていて、各サーバ インスタンスには独自のストア アンド フォワード (SAF) エージェントと永続ストアがあります。ただし、このチュートリアルでは開発しやすいように単一サーバ ドメインを前提としているため、両方の Web サービスは同じサーバにデプロイされ、同じ SAF エージェントと永続ストアを使用します。
  1. まだ行っていない場合は、Administration Console の左上の [チェンジ センタ] ウィンドウにある [ロックして編集] をクリックします。
  2. 左の [ドメイン構造] ウィンドウで、[MedRecDomain|サービス] を展開します。
  3. [永続ストア] をクリックします。
  4. 右ペインで、[新規作成] をクリックして、[ファイル ストアの作成] オプションを選択します。
  5. [名前] フィールドに MedRecWseeFileStore と入力します。
  6. [対象] ドロップダウン リストで [MedRecServer] を選択します。
  7. [ディレクトリ] フィールドに medrecWseeFileStore と入力します。
  8. [完了] をクリックします。
  9. [チェンジ センタ] で、[変更のアクティブ化] をクリックして MedRec サーバ コンフィグレーションを更新します。

手順 4 : JMS JDBC ストアを作成する

永続ストアは、永続メッセージを格納するために使用します。この JMS JDBC ストアは、「手順 2 : スタンドアロンの JDBC データ ソースを作成する」で作成した非 XA データ ソースを使用します。

  1. まだ行っていない場合は、Administration Console の左上の [チェンジ センタ] ウィンドウにある [ロックして編集] をクリックします。
  2. 左の [ドメイン構造] ウィンドウで、[MedRecDomain|サービス] を展開します。
  3. [永続ストア] をクリックします。
  4. 右ペインで、[新規作成] をクリックして、[JDBC ストアの作成] オプションを選択します。
  5. [名前] フィールドに MedRecJMSJDBCStore と入力します。
  6. [対象] ドロップダウン リストで [MedRecServer] を選択します。
  7. [データ ソース] ドロップダウン リストで [MedRecGlobalDataSource] を選択します。
  8. [プレフィックス名] フィールドに MedRec と入力します。
  9. [完了] をクリックします。
  10. [チェンジ センタ] で、[変更のアクティブ化] をクリックして MedRec サーバ コンフィグレーションを更新します。

手順 5 : JMS サーバを作成する

JMS サーバは、JMS クライアントで使用されるキューおよびトピック送り先のホストです。メッセージを送り先に永続的に格納するには、JMS サーバで JMS ストアをコンフィグレーションする必要があります。

  1. まだ行っていない場合は、Administration Console の左上の [チェンジ センタ] ウィンドウにある [ロックして編集] をクリックします。
  2. 左の [ドメイン構造] ウィンドウで、[MedRecDomain|サービス|メッセージング] を展開します。
  3. [JMS サーバ] をクリックします。
  4. 右ペインで、[新規作成] をクリックします。
  5. [名前] フィールドに MedRecJMSServer と入力します。
  6. [永続ストア] ドロップダウン リストで [MedRecJMSJDBCStore] を選択します。
  7. [次へ] をクリックします。
  8. [対象] ドロップダウン リストで [MedRecServer] を選択します。
  9. [完了] をクリックします。
  10. [JMS サーバの概要] ページで [新規作成] をクリックします。
  11. [名前] フィールドに MedRecWseeJMSServer と入力します。
  12. [永続ストア] ドロップダウン リストで [MedRecWseeFileStore] を選択します。
  13. [次へ] をクリックします。
  14. [対象] ドロップダウン リストで [MedRecServer] を選択します。
  15. [完了] をクリックします。
  16. [JMS サーバ] テーブルで、[MedRecWseeJMSServer] をクリックします。
  17. [コンフィグレーション|一般] タブをクリックします。
  18. [一時的な送り先をホスト] のチェックをはずします。
  19. 画面下方向にスクロールし、[詳細] リンクをクリックします。
  20. [永続ダウングレードを許可] をチェックします。
  21. [保存] をクリックします。
  22. [チェンジ センタ] で、[変更のアクティブ化] をクリックして MedRec サーバ コンフィグレーションを更新します。

手順 6 : スタンドアロンの JMS モジュールとキューを作成する

JMS キューは、1 つの宛先にメッセージを配信することができるポイント ツー ポイント (PTP) メッセージング モデルに基づきます。キュー センダ (プロデューサ) では、特定のキューに対してメッセージを送信します。キュー レシーバ (コンシューマ) では、特定のキューからメッセージを受信します。

JMS キューをコンフィグレーションするには、以下の手順に示すように、最初にスタンドアロンの JMS モジュールを作成し、そのモジュールで JMS キューをコンフィグレーションします。

スタンドアロン JMS モジュールの一部であるキューに加えて、medrecEar アプリケーションは、パッケージ化された JMS モジュールの一部としてコンフィグレーションされている以下の JMS キューを使用します。

これらのアプリケーション スコープの JMS キューは、最初に medrecEar アプリケーションの weblogic-application.xml デプロイメント記述子に登録され、その後で各 XML ファイルに記述されます。

  1. まだ行っていない場合は、Administration Console の左上の [チェンジ センタ] ウィンドウにある [ロックして編集] をクリックします。
  2. 左の [ドメイン構造] ウィンドウで、[MedRecDomain|サービス|メッセージング] を展開します。
  3. [JMS モジュール] をクリックします。
  4. 右ペインで、[新規作成] をクリックします。
  5. [JMS システム モジュールの作成] ページで、次の手順に従います。
    • [名前] フィールドに MedRec-jms と入力します。
    • [記述子ファイル名] フィールドに MedRec-jms.xml と入力します。
    • 便宜上、省略可能な [ドメイン内の場所] フィールドは空白にしておきます。
  6. [次へ] をクリックします。
  7. [対象] ボックスで [MedRecServer] を選択します。
  8. [次へ] をクリックします。
  9. [この JMS システム モジュールにリソースを追加しますか?] チェック ボックスをチェックします。
  10. [完了] をクリックします。
  11. [コンフィグレーション] タブの下部で、[リソースの概要] テーブルの上または下にある [新規作成] をクリックします。
  12. [キュー] オプションを選択します。
  13. [次へ] をクリックします。
  14. [JMS 送り先のプロパティ] ページで、次の手順に従います。
    • [名前] フィールドに weblogic.wsee.reliability.wseeMedRecDestinationQueue と入力します。
    • [JNDI 名] フィールドに weblogic.wsee.DefaultQueue と入力します。
    • [テンプレート] ドロップダウン リストは [None] のままにしておきます。
  15. [次へ] をクリックします。
  16. [サブデプロイメント] ドロップダウン リストの右にある [新しいサブデプロイメントの作成] をクリックします。
  17. [サブデプロイメント名] フィールドに MedRecWseeJMSServer と入力します。
  18. [OK] をクリックします。
  19. [対象] ボックスで [MedRecWseeJMSServer] を選択します。
  20. [完了] をクリックします。
  21. [チェンジ センタ] で、[変更のアクティブ化] をクリックして MedRec サーバ コンフィグレーションを更新します。

手順 7 : ストア アンド フォワード (SAF) エージェントを作成する

ストア アンド フォワード (SAF) サービスを使用すると、WebLogic Server では、複数の WebLogic Server インスタンスに分散されているアプリケーション間でメッセージを確実に配信することができます。MedRec アプリケーションでは、SAF サービスは、信頼性のあるメッセージングがコンフィグレーションされている Web サービスによって、内部的に使用されます。

注意 : WebLogic Web サービスの信頼性のあるメッセージングはサービス間の機能です。つまり、あるクライアント Web サービスが別の Web サービスを確実に呼び出します。通常、各 Web サービスは 2 つの異なる WebLogic Server インスタンスにデプロイされていて、各サーバ インスタンスには独自の SAF エージェントと永続ストアがあります。ただし、このチュートリアルでは開発しやすいように単一サーバ ドメインを前提としているため、両方の Web サービスは同じサーバにデプロイされ、同じ SAF エージェントを使用します。
  1. まだ行っていない場合は、Administration Console の左上の [チェンジ センタ] ウィンドウにある [ロックして編集] をクリックします。
  2. 左の [ドメイン構造] ウィンドウで、[MedRecDomain|サービス|メッセージング] を展開します。
  3. [ストア アンド フォワード エージェント] をクリックします。
  4. 右ペインで、[新規作成] をクリックします。
  5. [ストア アンド フォワード エージェントのプロパティ] ページで、次の手順に従います。
    • [名前] フィールドに MedRecSAFAgent と入力します。
    • [永続ストア] ドロップダウン リストで [MedRecWseeFileStore] を選択します。
    • [エージェントの種類] ドロップダウン リストで [両方] を選択します。
  6. [次へ] をクリックします。
  7. [サーバ] ボックスで [MedRecServer] を選択します。
  8. [完了] をクリックします。
  9. [チェンジ センタ] で、[変更のアクティブ化] をクリックして MedRec サーバ コンフィグレーションを更新します。

手順 8 : MedRec アプリケーションに電子メール機能を追加する

WebLogic Server には Sun Microsystems の JavaMail API バージョン 1.3 参照実装が含まれています。JavaMail API を使用すると、WebLogic Server アプリケーションに電子メール機能を追加できます。WebLogic Server で使用するために JavaMail をコンフィグレーションするには、WebLogic Server Administration Console でメール セッションを作成します。メール セッションを作成することで、あらかじめコンフィグレーションしておくセッション プロパティを使用して、サーバサイド コンポーネントとアプリケーションで JNDI を用いて JavaMail サービスにアクセスできるようになります。

  1. まだ行っていない場合は、Administration Console の左上の [チェンジ センタ] ウィンドウにある [ロックして編集] をクリックします。
  2. 左の [ドメイン構造] ウィンドウで、[MedRecDomain|サービス] を展開します。
  3. [メール セッション] をクリックします。
  4. 右ペインで、[新規作成] をクリックします。
  5. [名前] フィールドに mail/MedRecMailSession と入力します。
  6. [OK] をクリックします。
  7. [メール セッション] のテーブルで、[mail/MedRecMailSession] をクリックします。
  8. [コンフィグレーション] タブを選択し、次の手順に従います。
    • [JNDI 名] フィールドに mail/MedRecMailSession と入力します。
    • [JavaMail プロパティ] テキスト ボックスに、mail.user プロパティと mail.host プロパティの値を入力します。
    • たとえば、MedRec アプリケーションで生成された電子メールを joe@mail.mycompany.com という電子メール アドレスで受信するには、次のように入力します。

      mail.user=joe;mail.host=mail.mycompany.com
  9. [保存] をクリックします。
  10. [対象] タブを選択します。
  11. [サーバ] ボックスで [MedRecServer] を選択します。
  12. [保存] をクリックします。
  13. [チェンジ センタ] で、[変更のアクティブ化] をクリックして MedRec サーバ コンフィグレーションを更新します。

手順 9 : MedRec カスタム DBMS 認証プロバイダをコンフィグレーションする

MedRec カスタム DBMS 認証プロバイダは、コンフィグレーション済みの PointBase RDBMS から、指定されたユーザ名のログイン資格を取得します。このプロバイダ内でパスワードが検証され、正しければそのユーザのグループの関連付けが取得されます。

  1. まだ行っていない場合は、Administration Console の左上の [チェンジ センタ] ウィンドウにある [ロックして編集] をクリックします。
  2. 左の [ドメイン構造] ウィンドウで、[MedRecDomain|セキュリティ レルム] を展開します。
  3. 右ペインで、[レルム] テーブルの myrealm エントリをクリックします。
  4. [プロバイダ|認証] タブをクリックします。
  5. [新規作成] をクリックします。
  6. [新しい認証プロバイダの作成] ページで、次の手順に従います。
    • [名前] フィールドに MedRecSampleAuthenticator と入力します。
    • [種類] ドロップダウン リストで [CustomDBMSAuthenticator] を選択します。
  7. [OK] をクリックします。
  8. [認証プロバイダ] テーブルで、[MedRecSampleAuthenticator] をクリックします。
  9. [コンフィグレーション|一般] タブをクリックします。
  10. [制御フラグ] ドロップダウン リストで [SUFFICIENT] を選択します。
  11. SUFFICIENT 制御フラグは LoginModule が成功する必要がないことを示します。成功した場合は、アプリケーションに制御が戻されます。ただし、成功しなかった場合、サーバは他のコンフィグレーション済み認証プロバイダを試します。

  12. [保存] をクリックします。
  13. [コンフィグレーション|プロバイダ固有] タブをクリックします。
  14. [データ ソース名] フィールドに MedRecGlobalDataSourceXA と入力します。
  15. [プラグイン クラス名] フィールドに com.bea.medrec.security.MedRecDBMSPlugin と入力します。
  16. プラグイン クラスは物理的には、「チュートリアル 1 : 開発用の WebLogic ドメインおよびサーバ インスタンスの作成」で WebLogic Server の CLASSPATH に追加した MedRecDBMSPlugin.jar ファイルにあります。

  17. [保存] をクリックします。
  18. 左の [ドメイン構造] ウィンドウで、[MedRecDomain|セキュリティ レルム] を展開します。
  19. 右ペインで、[レルム] テーブルの myrealm エントリをクリックします。
  20. [プロバイダ|認証] タブをクリックします。
  21. [認証プロバイダ] テーブルで、[DefaultAuthenticator] をクリックします。
  22. [制御フラグ] ドロップダウン リストで [SUFFICIENT] を選択します。
  23. [保存] をクリックします。
  24. 左の [ドメイン構造] ウィンドウで、[MedRecDomain|セキュリティ レルム] を展開します。
  25. 右ペインで、[レルム] テーブルの myrealm エントリをクリックします。
  26. [プロバイダ|認証] タブをクリックします。
  27. [並べ替え] をクリックします。
  28. WebLogic Server は使用可能な認証プロバイダを巡回するため、ログインが試行されるたび (たとえば、後続のチュートリアルで Administration Console にログインするたび) に PointBase データベースへの問い合わせが行われないように、この手順でプロバイダ リストを並べ替えます。

  29. [認証プロバイダ] リストの矢印を使用して、認証プロバイダの順序を次のように定義します。
    1. DefaultAuthenticator
    2. MedRecSamplesAuthenticator
    3. DefaultIdentityAsserter
  30. [OK] をクリックします。
  31. [チェンジ センタ] で、[変更のアクティブ化] をクリックして MedRec サーバ コンフィグレーションを更新します。

これらの変更を完全に有効にするには、MedRecServer を再起動する必要があります。詳細については、次のチュートリアル「チュートリアル 4 : WebLogic Server 開発モードの使用」を参照してください。

 


ベスト プラクティス

 


全体像

MedRec アプリケーションでは、JMS を使用して新しい患者レコードを作成します。JMS は非同期の性質を持つため、ユーザが別のタスクを行っている間はタスクをキューに置き、別のタスクが完了した後でそのタスクを実行することができます。

新しい患者を登録するためにユーザが Web ページで [作成] をクリックすると、JMS メッセージが作成されて、アプリケーション スコープの REGISTRATION_MDB_QUEUE JMS キューに置かれます。RegistrationEJB メッセージ駆動型 Bean は、キューからメッセージを取り出し、PatientEJB エンティティ Bean のインスタンスを使用して、新しい患者データをデータベースに永続化します。PatientEJB エンティティ Bean は、JDBC データ ソースを使用して PointBase データベースに接続します。

MedRec アプリケーションは、他のエンティティ Bean を使用して、データベースに追加のデータを永続化します。詳細については、「患者、医師、および管理者のデータ」を参照してください。

MedRec アプリケーションでは永続的な JMS メッセージングを使用するため、キューに置かれた新しい患者の JMS メッセージは PointBase データベースにも格納されます。これにより、サーバのクラッシュなどの問題が発生した場合もメッセージを取得できるため、メッセージ駆動型 Bean によるメッセージ処理が可能です。PointBase データベースに接続して JMS テーブルを更新する場合は JMS JDBC ストアが使用されます。

medrecEar アプリケーションには、physicianEar アプリケーションが呼び出す 2 種類の Web サービス (信頼性のある Web サービスと信頼性のない Web サービス) があります。信頼性のある Web サービスはストア アンド フォワード エージェントとファイルストアを使用して、メッセージが確実に配信されることを内部的に保証しています。

WebLogic Server セキュリティ フレームワークは、患者の認証中に 3 つのコンフィグレーション済みプロバイダ (DefaultAuthenticatorMedRecSamplesAuthenticator、および DefaultIdentityAsserter) を巡回します。

 


関連情報


ページの先頭       前  次