レッスン 4
exteNd Directorは上質で独自性あるWebアプリケーションを速やかに納品、および容易に保守できるようにした相互ポータルサーバです。exteNd Directorは、ユーザがポータルを介してアクセスする、最先端でインタラクティブなアプリケーションを開発するための総合的な開発環境を提供します。
このレッスンでは、ユーザにユーザIDの入力を即すフォームを提示して展開したWebサービス(Composer ViewUserInfo)を呼び出す簡単なアプリケーションを作成します。 アプリケーションは、ユーザデータかメッセージのどちらかが返されたかによって、2つあるフォームの内1つを選び、その結果を表示します。 アプリケーションは、ポータルアプリケーションのパーソナルページにあるポートレットとして実行します。 アプリケーションを完成させた後は、そのアプリケーションをテストする機会があります。
このエクササイズでは、exteNd Directorウィザードを使ってページフローを作成します。ページフローは、exteNd Director生成物でプレゼンテーションとデータバインド用の各XFormをWebサービスを実行するために結びつけます。 ウィザードは、Webサービスのスキーマに応じてXFormを作成し、それらのフォームをWebサービスの実施のため1つにまとめます。 コードを記述する必要なく、これらのすべてを行なうことができます。
ユーザインタフェースを作成するWSDLドキュメントを選択します。 選択する方法は2通りあります。
[参照]ボタンをクリックして使いたいファイルを探すと、現在プロジェクトの一部となっていないファイルを選択することができます。
[リソースセット]ボタンをクリックして、プロジェクトに保存されているWSDL、たとえばこのレッスンで使うexteNd Composerサービス用のWSDLなどを選択できます。
[リソースセット]ボタンをクリックして、exteNd ComposerプロジェクトのWDSLが保存されている場所まで移動します。 [ファイルの選択]ダイアログボックスで、「ViewUserInfo.wsdl」ファイルが見つかるまでフォルダを展開します。 「ViewUserInfo.wsdl」ファイルを選択します。 [OK]をクリックします。
デフォルトでチェックがオンになっている[CSSレイアウトの使用]と[デフォルトのWSRP CSSクラスを使用する]は、そのままにしておきます。
このWSDLではたった一つの操作しか行いませんので、[Webサービスメソッドの選択]ダイアログボックス内で、デフォルト値はすべてそのままにし、[次へ]をクリックします。
exteNd Directorプロジェクトにはリソースセットが1つしかありませんので、[リソースセット]ダイアログボックスでは[次へ]をクリックします。
[パーセント]ドロップダウンリスト
を使用して、エディタ内のページフロー図のサイズを調節します。 大きさと読みやすさの両方を考えると、100%が適切なサイズになります。
exteNd Directorリソースセットは、exteNd Directorサブシステムが使用する記述子および他のファイルをまとめ、開発中に動的なロードを提供し、頻繁な再配備を防いでテストを高速化します。 それぞれのカスタムWebアプリケーションには、リソースセットを含めることができます。
リソースセットは、アプリケーション定義のリソースとクラスを保持します。 これらのリソースのいくつかは、ルールや、XForm、ページフロー、またはポートレット記述子など、サブシステムの機能を使用するためのテンプレートまたは定義です。 その他は、ルールとユーザ間のバインドなど、サブシステムがともに機能する方法を指定します。 リソースは通常XMLファイルで、Javaクラスを伴うものもあります。
リソースセットは、アプリケーションのリソースを既知のディレクトリ構造に沿って整理し、そしてプロジェクトの様々な生成物をナビゲーションペインの[リソース]タブを使って見つけることができるよう、exteNd Director 内で整理します。 たとえば、前回のエクササイズで作成したファイルをすべて検索する場合は、次を実行します。
[エディタタイトル]タブをクリックして、開いているエディタを終了し、「UserInfoStuff.xml」ファイルを閉じます。
ドロップダウンリストで[UserInfoStuff]を見つけたら、それを選択します。
フォルダを展開すると、今までに作成した様々な生成物を表示できます。表示された生成物のうちどれかをダブルクリックすると、その生成物とともにそれに適したエディタが開きます。
詳細については、『Developing exteNd Director Applications』のexteNd Directorアプリケーションでのリソースセットの使用に関する章を参照してください。
Webサービスページフローウィザードで作成されたページフローとXFormは、リソースセット内に保存されています。アプリケーションはすでに展開されているため、作成されたデフォルトのポートレットはすぐにテストすることができます。 これは、デフォルトでexteNd Directorプロジェクトが動的にリソースセット生成物をロードするよう、開発の際に設定されたためです。
URLに「http://localhost/RequestUserInfo/portal/portlet/LoginPortlet」と入力します。
たった今作成したアカウントを使ってログインします。 [ログイン]をクリックするか、<Enter>キーを押します。
いくつかのポートレットとともにデフォルトのポータルシェアページが表示されます。 パーソナルページを作成し、そこに作成したページフローのポートレットを保存します。 このページは、後にこのレッスンで変更をテストおよび確認するために使用します。
[使用できるポートレット]リストを、[UserInformationPageflow]が見つかるまでスクロールし、それを選択して[追加]をクリックします。
ページ上部の[ポータルホーム]をクリックするか、またはパーソナルページの[User Info Test]をクリックして、先ほど作成したページフローポートレットを表示します。
「このポートレットは時間通りに応答しませんでした」というメッセージが表示されたら、
リンクをクリックするか、[ポータルホーム]またはパーソナルページの[User Info Test]をクリックして、このページを更新します。
UserInformationInputポートレットページの[ユーザID]テキストボックスに「SSpade」と入力し、[要求の送信]ボタンをクリックします。
exteNd Application Serverコンソールを覗いてみると、exteNd Composerサービスからのログ出力でアプリケーションへ返されたデータが表示されているのを確認できます。
ウィザードで作成されたフォームとページフローでは、無効な結果がでた場合に使うフォームを考慮に入れていなかったので、ぺージフローを変更する必要があります。 ページフローにどのフォームを表示するかを状況判断するプロセスを加えます。その決定は実行されたWebサービスから返されたデータに基づいて行ないます。 これが、このレッスンでの残りのタスクとなります。
無効な要求があった場合にWebサービスから返されたメッセージを表示するフォームは既に作成されています。 このフォームを見直し、若干の変更を加えます。 次のエクササイズでは、Web Service Pageflowウィザードを使い、先ほど作成したページフローにこのフォームを挿入します。
ナビゲーションペインの[リソース]ビューで[表示]タブを選択し、ドロップダウンリストから先ほど作成した[UserInfoStuff ]を選択します。
[UserInformationResponse_Message.xhtml]をダブルクリックし、XFormsエディタ内でフォームを開きます。
[入力メッセージ]テキストボックスから(表示のみの) [出力]テキストボックスへ変更することで、このフォームの外観を変更します。
インスタンスデータペインで、Messageエレメントが見つかるまで
アイコンをクリックします。(スクロールする必要があるかもしれません。)
Messageエレメントをクリックし、マウスをクリックしたまま、そのエレメントをフォームペインの[出力]テキストボックスへドラッグします。
プロパティインスペクタの[出力(ラベル)]タブを選択して上部までスクロールし、ラベルの表示を「メッセージ:」に変更します。
XFormsエディタのフォームレイアウトとインスタンスプロパティ部分を分けているディバイダをクリックし、フォームレイアウトセクションの[ツール]タブにあるすべてのアイテムが表示されるよう、フォームレイアウトを拡大します。
ヒント: これが上手くいかない場合は、タブ上のXFormツールすべてが表示されるよ うになるまで、クリックしたままの状態でディバイダを右へドラッグします。
フォームレイアウト内をクリックして、フォームにコントロールを追加します。
このエクササイズでは、メッセージ表示ページを既存のページフローへ追加し、アプリケーションフローの一部として含まれるよう、このページのリンクを変更します。 リンクの中には、情報ページあるいはメッセージページのどちらを表示すべきかを決定するため、Webサービスからどんな結果を受け取ったかチェックするリンクがあります。 目的は、現在のアプリケーションのフローを、次に示したフローからそのすぐ下に示すフローへ変更することです。
元のページフロー

目標とするページフロー

exteNd Director編集ペインで、[UserInformationPageflow.xml]ファイルを選択します。 UserInformationPageflow.xmlが、ページフローモデラー内で開きます。
ページフローダイアグラムのHelp HTMLアクティビティの右側へマウスポインタを移動しマウスをクリックしてフォームを追加します。
ダイアグラムに配置したフォームアクティビティの下に追加されたラベルをクリックして、ラベルの表示を「メッセージ」に変更します。
ダイアグラムに加えた[フォームアクティビティ]をダブルクリックして、このアクティビティのプロパティインスペクタを開きます。
ダイアグラムや表示が必要な他のエディタ部分を隠さないよう、このウィンドウはデスクトップ上のもっと使いやすい位置に移動してもかまいません。
[スコープXPathの選択]ダイアログで、ドロップダウンリストから[リソースセット]を選択し、[参照]ボタンをクリックします。
XPathナビゲータで、
ボタンをクリックして、リソースセットとフォームリストを開き、[UserInformationResponse_Message.xhtml]ファイルを選択します。
[スコープXPath]ドロップダウンリストをクリックし、[/Flow/document/RESPONSE]を選択します。
通常のアプリケーションフローの一部として新規フォームを加えるため、リンクを変更します。 Webサービスは、どちらのフォームを選ぶかを決定するため、リンクに付け加えられた条件と共に両方のフォームへ到達します。 新規メッセージフォームは、アプリケーションのループ条件を終了して、入力フォームにリンクします。
[メッセージフォーム]アクティビティをクリックし、[入力フォーム]アクティビティの方へドラッグします。そしてクリックをして、この2つのアクティビティ間にリンクを作成します。
[Webサービス]アクティビティをクリックし、[メッセージフォーム]アクティビティの方へドラッグします。そしてクリックをして、この2つのアクティビティ間にリンクを作成します。
[式]ダイアログの[Scoped Path]テキストボックスで、(句読点と大文字小文字に気をつけながら、)次の式を入力します。
/Flow/document/RESPONSE/*[local-name()=\qUserInfoResponse\q]/*[local-name()=\qMessage\q]
[演算子]ドロップダウンリストで、[はnullです]を選択し、[Not]チェックボックスをオンにして[追加]ボタンをクリックします。
新しく作成したページをページフローに加えるよう変更したので、次はアプリケーションサーバでこの修正されたページフローをテストします。 exteNd Directorには動的ロード機能があるため、修正したフォームとページフローはすでに自動的にアプリケーションへロードされています。変更箇所のテストに必要なのは、ブラウザを開いてポータルアプリケーションへログインすることだけです。
URLに「http://localhost/RequestUserInfo/portal/portlet/LoginPortlet」と入力し、<Enter>キーを押します。
UserInfomationInputページの[ユーザID]テキストボックスに、「SSpade」と入力して[Submit Request]ボタンをクリックします。
以上で作業は完了です。 『ガイドツアー』の内容はすべて終了しました。
『ガイドツアー』の中で、exteNd 5 Suiteの開発機能を利用し次のことを行いました。
exteNd Composerを使用し、LDAPから情報を取り出すサービスを作成しました。
ここで、レガシーシステムをXMLで利用できる形式に変換し、これらのシステムに保存された情報を使用して新しいサービスを提供するためにはexteNd Composerをどのように利用すればよいかを紹介しました。
exteNd Directorを使って、ユーザの入力を受け付け、その結果を表示することによりサービスを利用するブラウザベースインタフェースを作成しました。
要するに、Webサービスの作成からWebサービスの利用まで、すべてを1つの統合ツールセットによって達成したわけです。 アプリケーション全体は、堅牢なJ2EEアプリケーションサーバにより提供されています。 しかもJavaコードをいっさい記述することなく、Java技術の利用を可能にしています。
このWebサービスアプリケーションを今後も開発しつづけるとすれば、次のステップは、照会のみを行なうのアプリケーションから、保守と照会を行なうアプリケーションへと進むことでしょう。 しかしこの課題については、別の機会に取り組むことにしましょう。
さらに詳しく知るには Novell exteNdについての詳細は、このヘルプシステムにある『Novell exteNdへようこそ』の「学習リソース」ページを参照してください。
Copyright © 2004 Novell, Inc. All rights reserved. Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003 SilverStream Software, LLC. All rights reserved. more ...