Lesson 2

exteNd Composerプロジェクトの作成

 
Top of page

このレッスンの内容

 
Top of section

exteNd Composerとは

Novell exteNd Composerは、アプリケーションへのWebサービスとXMLの実装を迅速に設計開発するための開発(およびランタイム)環境です。このようなアプリケーションは様々なバックエンド(レガシー)システムやデータソースとの接続が可能になります。exteNd Composerは、柔軟で直感的なポイントアンドクリック方式のグラフィカルユーザインタフェース(GUI)になっており、わずかな時間で堅牢なXML統合をできる強力なツールをビジネスアナリストやアプリケーションデベロッパーの方へ提供します。

 
Top of section

目的

このプロジェクトでは、LDAPディレクトリから情報を取得するexteNd Composerコンポーネントを使用します。 このコンポーネントでは、LDAP接続を使い、氏名、電話番号、および肩書きなどの基本情報を提供します。 このレッスンで、後にWebサービスとして展開するexteNd Composerサービスを完成させることにより、アプリケーションを完成します。 WebサービスはユーザIDの付いた要求を受け取り、コンポーネントによって供給された情報を提供します。

 
Top of section

実行する内容

  1. exteNd Composerを起動し、プロジェクトを開く

  2. LDAPコンポーネントを学ぶ

  3. サイドバー : exteNd Composerコンポーネントエディタレイアウト

  4. LDAPコンポーネントの入力および出力ドキュメントの表示

  5. LDAP接続リソースの表示

  6. アクションモデルを学ぶ

  7. コンポーネントのテスト

  8. サービス用のアクションモデルを完成させる

  9. WSDL(Web Services Definition Language)の作成

 
Top of section

エクササイズ 2-1: exteNd Composerを起動し、プロジェクトを開く

  1. スタート]>[プログラム]>[Novell exteNd 5.0]>[Composer] メニューの順に移動し、[Composer Designer]を選択してexteNd Composerを起動します。

    StartPrograms ComposerDesigner

    時間を省くため、必要な生成物がすでにいくつか追加されているテンプレートプロジェクトを使用します。 ここでは生成物のいくつかを検討し、アプリケーションのこの部分を完成させるのに必要な手順を完了します。

  2. ファイル]>[プロジェクトを開く]の順に選択してプロジェクトを開きます。

    ComposerOpenProjectDialog

  3. 参照]ボタンをクリックして、プロジェクトフォルダまで移動します。 次がプロジェクトフォルダになります。 D:\GuidedTour\template\RequestUserInfoProject\UserInfoProject

    ComposerSelectProjectFileDialog

  4. UserInfo.spf]プロジェクトファイルを選択して、[OK]をクリックします。

  5. OK]をクリックします。

 
Top of section

エクササイズ 2-2: LDAPコンポーネントを学ぶ

この練習では、exteNd LDAPサーバから情報を取り出すコンポーネントについて学びます。 コンポーネントは次を使用して作成されています。exteNd Composer LDAP Connect

  1. ナビゲーションペインのカテゴリペインで、[コンポーネント]を選択した後、[LDAP]を選択します。

    ComposerLDAP ComponentCategory

  2. ナビゲーションペインの詳細ペインで、[RequestUserInfo]をダブルクリックします。 エディタペインでコンポーネントが開きます。

    LDAP ComponentOpenInEditorPanel

 
Top of section

エクササイズ 2-3: サイドバー : exteNd Composerコンポーネントエディタレイアウト

レガシーデータソースへアクセスする方法を構築およびテストできるexteNd Composerの機能について見ていきます。

前回のエクササイズのStep 2では、エディタペインでexteNd Composer Designer をLDAPコンポーネントと共に開きました。 エディタペインは次の3つのサブペインに分かれています。

 
Top of section

エクササイズ 2-4: LDAPコンポーネントの入力および出力ドキュメントの表示

入力XMLドキュメントはXMLテンプレートで、ユーザ情報の要求に必要なサンプルデータを含んでいます。 このテンプレートをアクションモデルを作成および実行する際のガイドとして使用します。

Composer XML InputSample

出力XMLドキュメントもまたXMLテンプレートです。 これには、要求を満たすために提供されるサンプルデータが含まれています。

Composer XML OutputSample

出力XMLのサンプルは、正常にコンポーネントがディレクトリへ接続し要求されたユーザ情報を見つけた場合に送信されます。 ユーザが存在しない場合、エラーメッセージが送信されます。 サンプルデータと出力XMLドキュメントのXML構造を表示します。

  1. コンポーネントエディタの出力XMLドキュメント内で、マウスを右クリックをしてコンテキストメニューを開きます。

    Composer XML DOM ContextMenu

  2. XMLサンプルのロード]を選択します。

  3. サンプル]ドロップダウンリストをクリックし、[UserInfoResponse_message.xml]を選択します。

    ComposerLoad XML SampleDialog

  4. OK]をクリックします。

    Composer XML OutputSample Message

 
Top of section

エクササイズ 2-5: LDAP接続リソースの表示

LDAPコンポーネントには、LDAPサーバへ接続するための接続リソースが必要です。 接続リソースは、exteNd LDAPディレクトリサーバへの接続を確立するのに必要な特定の情報を提供します。 このコンポーネントで使用されるリソースを表示します。

  1. メニューバーから、[ファイル]>[プロパティ]の順に選択します。

  2. 接続情報]タブを選択します。

    ComposerConnectionTab

    [Connection Info]タブは、読み込み専用モードで使用される接続リソースの情報を提供します。 [テスト]ボタンをクリックすると、exteNd LDAPサーバへの接続が確立することを確認できます。 いくつかのフィールド値の隣にあるアイコンに留意してください。 これは、必要な値を作成するのにECMAScript式が使われていることを示しています。 実際の値はプロジェクト内でプロジェクト変数として保存されており、これらの値は一つの場所で簡単に変更でき、またコンポーネントを実行する前に動的に変更できます。

  3. OK]をクリックして、ダイアログボックスを閉じます。

 
Top of section

エクササイズ 2-6: アクションモデルを学ぶ

アクションモデルは、入力値を処理し出力するために順に実行される命令の集まりです。 このエクササイズでは、Webサービスによって実行される、LDAPコンポーネントの重要なアクションのいくつかを学びます。

ComposerEditor ActionModel Panel

ログアクション

1番、3番、および5番目のアクションは「ログ」アクションで、デバッグレベル情報の報告に使用されます。 ログ機能はexteNd ComposerのDesignerまたはサーバログのしきい値を設定することで使用できるようにします。 アプリケーションへの展開後は、これらのログアクションが、展開したアプリケーションに伴う問題を特定するのに役立ちます。 率先してコードにログアクションを加えることは、良い開発習慣とされています。 このプロジェクトのデバッグログアクションの結果を確認する場合は、[初期設定]で[Log Threshold]を4またはそれ以下に設定する必要があります。

LogAction

DSML検索要求の作成アクション

2番目のアクションは、「DSML検索要求の作成」アクションで、DSML XMLドキュメントとしてのLDAP要求を作成するために使用されます。 このアクションは、クエリの詳細部分(where節)を作成し、返される属性を判断します。

CreateDSML Action

このアクションを選択すると、ネイティブ環境ペインで検索要求の詳細を確認および編集できます。 入力XMLドキュメントのユーザIDは、ディレクトリのuid属性を問い合わせるために使用します。

DSML ActionNativePanel

このアクションを実行した後の結果は、XMLドキュメントとなり、一時XML DOMに保存されます。

XMLドキュメントパネルでこのドキュメントを表示します。

  1. XML ドキュメントパネル内でマウスを右クリックをし、[追加して表示]サブメニューを選択してから、[ldapRequest]を選択します。 これは、「DSMLの作成」アクションで作られたXMLを保存している一時XML DOMです。

    DSML Request XML empty

  2. アクションモデル内で、「DSML検索の作成」アクションを選択します。

    CreateDSML Action selected

  3. ツールバーの[現在のアクションを実行]アイコンExecuteActionIconをクリックします。 アクションが実行され、XMLドキュメントパネルに、要求によって作成されたXMLが表示されます。

    DSML Request XML full

  4. ツールバーの[すべてを実行]アイコンExecuteAllIconをクリックします。 コンポーネント全体が実行され、成功したクエリの結果が表示されます。

  5. [実行が完了しました]メッセージダイアログで、[OK]をクリックします。

DSML要求の実行アクション

4番目のアクションは、「DSML要求の実行」アクションです。 このアクションは、DSML検索要求の作成アクションによって作成され、要求を実行するためにサーバへ接続します。 この結果は、別の一時XMLドキュメントである「ldapResponse」に保存されます。

ExecuteDSML Action

このアクションを選択、実行した場合に、ネイティブ環境ペインがどのようになるかは次のとおりです。

DSML ActionNativePanel Execute

次がldapResponse XMLドキュメントです。

DSML Response XML full

決定アクション

6番目のアクションは、「決定」(IF)アクションです。 このアクションは、要求が成功したかどうかをチェックします。 要求が成功であれば、アクションのTRUEの部分が実行されます。 この一連のアクションは、先ほどの出力XMLドキュメントで見た、所要の出力結果を生成するのに使用されます。

最初、XMLドキュメントは、XMLドキュメントの構造がスキーマに合っているかを確認するため、データがない状態で作成されます。exteNd Composerは常に適格なXMLを作成しますが、XMLスキーマやDTDが特定された場合にXMLが有効かどうかを確認するのは、各自の責任において行なってください。

ActionModel SuccessBuild XML

次の手順では、結果として返された各属性を扱い、データをXMLドキュメントへ配置します。 DSMLresponseには、ディレクトリ内で要求され、特定のエントリに利用できる属性の反復エレメントが含まれています。 アクションモデルはこれらの反復エレメントを巡回し、属性名をチェックし、出力XMLドキュメント内の適切なエレメントに値を入れます。

ActionModel CheckAttributeAddValue

決定アクションのFALSE部分は、失敗の際に使われるメッセージ構造を作成する「マップ」 アクションを含んでおり、「ログ」アクションはLDAP要求の失敗を記録するために使用されます。

ActionModel FalseBlocks

ネームスペースの適用アクション

最後のアクションは、「ネームスペースの適用」アクションで、これはこのドキュメントの認証に使用するXMLスキーマネームスペースへの参照を追加します。

ActionModel NamespaceAction

 
Top of section

エクササイズ 2-7: コンポーネントのテスト

exteNd Composer Designerでは、J2EEアプリケーションサーバへ展開せずにコンポーネントを実行してテストすることができます。 これからコンポーネントをテストします。まず有効なユーザIDを使い、次に無効なユーザIDを使います。

  1. 有効なユーザIDはデフォルトのXML入力サンプルで提供されています。 ツールバーの[すべてを実行]アイコンExecuteAllIconをクリックします。

  2. [実行が完了しました]メッセージダイアログの[OK]をクリックします。

  3. 出力XMLドキュメントを確認します。

    OutputValidUser

  4. 無効なユーザIDを入力するには、入力サンプルを変更します。 [SSpade]という値をダブルクリックします。

    ChangeInputData

  5. xxx」と入力して、SSpadeを取り替えます。

  6. OK]をクリックします。

  7. ツールバーの[すべてを実行]アイコンExecuteAllIconをクリックします。

  8. [実行が完了しました]メッセージダイアログの[OK]をクリックします。

  9. 出力XMLドキュメントを確認します。

    OutputInvalidUser

    これでLDAPコンポーネントの学習は終了です。 LDAPコンポーネントを終了するには、次を実行します。

  10. エディタの[閉じる]アイコンをクリックしてコンポーネントを終了します。

    CloseDocumentFrameIcon

  11. 変更を保存するようにメッセージが表示されたら、[いいえ]をクリックします。

 
Top of section

エクササイズ 2-8: サービス用のアクションモデルを完成させる

exteNd Composerでは、外界へのインタフェースとしての役割を果たすため、サービスが必要になります。 LDAPコンポーネントを使用するアプリケーションは、そのコンポーネントや場合によっては他のコンポーネントを実行するサービストリガ(詳細は後述) を通じてサービスを呼び出す必要があります。 サービスは、それ自身のアクションモデルを持っています。 このエクササイズでは、要求されたユーザIDを受け取り、RequestUserInfoコンポーネントから提供された情報を返すサービスを完成させます。

  1. ナビゲーションペインのカテゴリペインで、[サービス]を選択した後、[Webサービス]を選択します。

    ComposerServiceCategory

    選択したサービスがWebサービスとして分類されたとしても、必ずしもこれがWSDLやSOAPのバインドを持っているということにはなりません。 そういった意味での「Webサービス」とは、通常Webアプリケーションの一部として呼び出され、HTTPプロトコルと共に利用される、要求および応答モデルに応答するものを指します。

    サービスを呼び出すためのサービストリガ(またはトリガ)は、Novell exteNd Application ServerのようなJ2EEアプリケーションサーバに展開される時に作成されます。 使用できる展開オプションの一つに、WSDLバインドやSOAPバインドと共にWebサービスを使用するというオプションがあります。

  2. ナビゲーションペインの詳細ペインで、[ViewUserInfo]をダブルクリックします。 エディタペインで次のサービスが開きます。

    ComposerEditor Service

    このサービスで使われるXML出力サンプルは、メッセージ応答であることに留意してください。 サービスは通常LDAPコンポーネントによって生成された出力結果を受け取り、それ自身の出力結果とするため、メッセージ応答がデフォルトとして設定されています。 しかし、なんらかの理由でコンポーネントの実行が失敗した場合は、サービスはメッセージで応答します。

    ComposerServiceOutputMessage

    このサービスのアクションモデルは一部完成しています。 「障害時の試行」アクションは、コンポーネントの実行用のラッパーです。失敗するとFault部分が実行され、ログアクションがシステム出力にログメッセージを送ります。 RequestUserInfoコンポーネントを実行するアクション、およびエラーの際にXML出力を作成するマップアクションを追加します。

    ComposerServiceActionModel start

  3. TRYアクションの[EXECUTE]を選択します。

  4. マウスを右クリックして、コンテキストメニューを表示します。 [新規アクション]>[コンポーネント]の順に選択します。

  5. [コンポーネント]ダイアログボックスで、次を入力します。

    ComposerServiceActionModel AddComponentAction

  6. OK]をクリックします。

    ComposerServiceActionModel step1

  7. 障害時の試行アクションの[All other Faults]を選択します。

  8. マウスを右クリックして、コンテキストメニューを表示します。 [新規アクション]>[マップ]の順に選択します。(または<Ctrl>+<M>キーを押してキーボードショートカットを使用します。)

    ComposerServiceActionModel AddMapAction

  9. [ソース]エリアの、[]ラジオボタンをクリックし、次に[ECMA式]アイコンExpressionEditor expression iconをクリックして式エディタを開きます。

    ExpressionEditor expression

  10. 次を入力します(二重引用符も含めます)。

      "Error in component " + _SystemFault.XPath("FaultInfo/ComponentName") + " at " + _SystemFault.XPath("FaultInfo/DateTime") + " with MainCode " + _SystemFault.XPath("FaultInfo/MainCode") + ", SubCode " + _SystemFault.XPath("FaultInfo/SubCode") + ", and with a message of " + _SystemFault.XPath("FaultInfo/Message") + "." 
    

    _SystemFaultはComposer DOM変数で、システムエラーが発生した際にXMLドキュメントを保存します。 サービスの実行中に、exteNd LDAPサーバを停止するなどしてエラーを起こさせると、式エディタ内でこのドキュメントの構造を表示することができます。 ドキュメント構造の表示は、_SystemFaultの隣にあるアイコンをクリックして行ないます。

    _SystemFaultなどのDOM変数にあるXMLエレメントをダブルクリックすると、たとえば次のように式エディタが適切なECMAScript式を書き込みます。_SystemFault.XPath("FaultInfo/DateTime")

  11. OK]をクリックします。

  12. [ターゲット]テキストボックスに、「UserInfoResponse/Message」と入力します。(またはアイコンをクリックして式エディタを使用します。

    ComposerServiceActionModel step2

  13. OK]をクリックします。

  14. コメントアクションの後にマップアクションを追加するには、ドラッグアンドドロップで追加します。 [マップアクション]をクリックしたまま、[コメントアクション]へドラッグします。 マウスボタンを放します。

    ComposerServiceActionModel final

  15. ツールバーの[すべてを実行]アイコンExecuteAllIconをクリックします。

  16. [実行が完了しました]メッセージダイアログの[OK]をクリックします。

  17. 出力XMLドキュメントを確認します。

    OutputValidUser

  18. エディタの[閉じる]アイコンをクリックしてサービスを終了します。

    CloseDocumentFrameIcon

  19. 変更を保存するようにメッセージが表示されたら、[はい]をクリックします。

 
Top of section

エクササイズ 2-9: WSDL(Web Services Definition Language)の作成

サービスを完成させテストを終えたので、次はサービス用のWSDLを作成します。 この作業は、Webサービスとしてこのサービスを展開するため必須であり、WSDLは生成されるサービストリガにとって必要になります。 WSDLはレッスン4でアプリケーションのユーザインタフェースを作成する際にも使用されます。

  1. ナビゲーションペインのカテゴリペインで、[リソース]を選択した後、[WSDL]を選択します。

    ComposerResourceCategory

  2. マウスを右クリックして、[新規]を選択します。

    CreateNewWSDL forServiceResourceDialog 1

  3. Composerエディタを使用して作成する]ラジオボタンを選択します。

  4. [名前]テキストボックスに「ViewUserInfo」 と入力します。

  5. [説明]テキストボックスに「LDAPユーザ情報要求サービス用のWebサービス記述子を記述」と入力します。

    CreateNewWSDL forServiceResourceDialog 2

  6. 次へ]をクリックします。

    CreateNewWSDL forServiceResourceDialog 3

  7. [サービス]ドロップダウンリストから、[ViewUserInfo]を選択します。

  8. Generate SOAP Binding]チェックボックスを選択します。

  9. [URL]テキストボックスに「http://localhost:80/RequestUserInfo/viewOnly」と入力します。

    CreateNewWSDL forServiceResourceDialog 4

  10. 完了]をクリックします。

  11. メッセージダイアログが表示されたら、[OK]をクリックします。

  12. [ドキュメントフレームを閉じます]アイコンをクリックしてWSDLを終了します。

    CloseDocumentFrameIcon

これでexteNd Composer Webサービスの作成が終了しました。

次のレッスン   次のレッスンでは、サービス用のサービストリガを作成し、サービスを展開およびテストします。



Copyright © 2004 Novell, Inc. All rights reserved. Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003 SilverStream Software, LLC. All rights reserved.  more ...