11. ISE 吉野 美喜男 WebSphere sMash アナウンスメント © 2008 IBM & ISE Corporation
by user
Comments
Transcript
11. ISE 吉野 美喜男 WebSphere sMash アナウンスメント © 2008 IBM & ISE Corporation
WebSphere sMash アナウンスメント 11. アプリケーション開発 ISE 吉野 美喜男 © 2008 IBM & ISE Corporation WebSphere sMash アナウンスメント Agenda WebSphere sMash アプリケーション開発環境 – CLI (コマンド・ライン・インターフェース) – アプリケーション・ビルダー (App Builder) – Eclipse • Groovy & Java • PHP Web ツール デバッグとテスト 2 © 2008 IBM Corporation WebSphere sMash アナウンスメント WebSphere sMash アプリケーション開発環境 開発環境(開発ツール)のストラテジー概要 – スモール・フットプリント – 初期導入の最小化 – 必要に応じてモジュールをダウンロード – 直感的で修得が容易 “intuitive and easy to learn” • 自分に適した開発環境(開発ツール)を選択可能 WebSphere sMash の開発環境(開発ツール) – CLI (コマンド・ライン・インターフェース) – アプリケーション・ビルダー (App Builder) – Eclipse: WebSphere sMash が Eclipse プラグインを提供 – Groovy および Java 用 – PHP 用 Web ツール – アプリケーション開発で役立つユーティリティー機能群を提供 3 © 2008 IBM Corporation WebSphere sMash アナウンスメント 開発環境(開発ツール)概要 CLI (コマンド・ライン・インターフェース) – コマンド・ベース(non GUI)の作業環境 アプリケーション・ビルダー (App Builder) – sMash アプリケーションとして実装された Web ベースの IDE • sMash DE に含まれ、Project Zero コミュニティーでサポート – Web ブラウザー・ベースの完全な開発環境で、以下の機能も提供 • アセンブル・フロー・エディター • Dojo 対応のページ・エディター Eclipse – WebSphere sMash がプラグインを提供 • Groovy およびJava • PHP – アセンブル・フロー・エディターも使用可 – 現状では、Project Zero コミュニティーでサポート 4 © 2008 IBM Corporation WebSphere sMash アナウンスメント 開発環境(開発ツール)比較 アプリケーション・ビルダー GUI による操作 言語対応のエディター ページ・エディター (Dojo対応) CLI モジュール(アプリケーション)の作成・起動・停止 モジュールの管理 (依存性解決・更新、パッケージ化、・・・) モジュール・グループの管理 アセンブル・ フロー・エディター ・・・ GUI による操作 言語対応のエディター、HTMLエディター デバッガーによるデバッグ 他の Plug-in による機能拡張 Eclipse 5 © 2008 IBM Corporation WebSphere sMash アナウンスメント CLI (コマンド・ライン・インターフェース) 6 © 2008 IBM Corporation WebSphere sMash アナウンスメント CLI の概要 コマンド・ベース(non GUI)の作業環境で、 アプリケーション開発とアプリケーション実行用の基本機能を提供 CLI タスクのカテゴリー – 依存性管理 – モジュール・クラスパス – モジュール・タスク – モジュール・グループ・タスク – リポジトリー・タスク 独自の CLI タスクを作成することも可能 Command line interface tasks http://publib.boulder.ibm.com/infocenter/wsmashin/v1r0/topic/com.ibm.websphere.sMash.doc/core/zero.cl i.tasks/docs/en/CliTasks.html 7 © 2008 IBM Corporation WebSphere sMash アナウンスメント CLI の使用準備 前提 – sMash または sMash DE 準備 • PATH に JDK と sMash のパスを設定 • sMash の製品版の場合は、以下のディレクトリーを PATH に設定 – <sMash導入先>jre¥bin – <sMash導入先> 8 (JDK) (sMash) © 2008 IBM Corporation WebSphere sMash アナウンスメント CLI の使用 zero コマンド: タスク compile create encode help info modulegroup package publish recycle repository resolve restdoc rollback runsql search start stats status stop switch update user version 9 > zero [main-opts] <task> [task-args] 説明 モジュールの /java ディレクトリーにあるすべての Java ソース・ファイルをコンパイルします。 現行ディレクトリーに新規モジュールを作成します。 パスワードなどのストリングを構成ファイル内で使用するためにエンコードします。 指定したコマンドに関する文書を出力します。 ベース URL などの、アプリケーションに関する基本情報を返します。 モジュール・グループを管理します。 モジュールを zip ファイルとしてパッケージ化します。 モジュールをローカル・リポジトリーに公開します。 アプリケーションを再利用します。 リポジトリーを管理します。 モジュールの依存関係を判別します。 →モジュールの依存関係を解決します。 This command runs the RESTdoc tool and generates HTML documentation for the application's REST APIs. 前回実行した resolve または update の結果を元に戻します。 データベースに対して SQL ファイルを実行します リポジトリー内の一致するすべてのモジュールを検出し、出力します。 アプリケーションを開始します。 アプリケーションについて収集された現在の統計情報を返します。 アプリケーションのステータスを返します。 青文字のタスクは、アプリケーション・ルー アプリケーションを停止します。 ト・ディレクトリーでのみ実行可能です。 モジュール・グループを切り替えます。 モジュールを最新の依存関係に解決します。 restdoc タスクは、zero.restdoc を追加する ユーザーを作成および編集します。 と表示されます。 バージョン情報を表示します。 © 2008 IBM Corporation WebSphere sMash アナウンスメント CLI を使用した PHP サポートの追加 PHP サポートをアプリケーションに追加する場合の手順 – PHP への依存性をアプリケーションに追加 • config/ivy.xml を編集し、以下のエントリーを dependencies エレメントに追加 – <dependency name="zero.php" org="zero" rev="[1.0.0.0,2.0.0.0["/> • アプリケーションを停止し、依存性を解決 – zero stop – zero resolve – 必要に応じて、PHP 構成ファイル(config/php.ini)の設定を変更 – PHP スクリプトをアプリケーションの public ディレクトリーに追加(作成) – アプリケーションを起動 – zero start – ブラウザーから PHP スクリプトを実行 • 例: http://localhost:8080/<スクリプト名>.php 10 © 2008 IBM Corporation WebSphere sMash アナウンスメント CLI の使用例: 単純な REST サービスの作成 11 © 2008 IBM Corporation WebSphere sMash アナウンスメント CLI の使用例(1) 新しいアプリケーションの作成 > cd (アプリケーション・ルート・ディレクトリーの親ディレクトリー) > zero create zero.sample.helloworld C:¥> cd demo C:¥demo> dir /b C:¥demo> zero create zero.sample.helloworld CWPZT0511I: zero:zero.application.template: を解決しています CWPZT0840I: モジュール zero.sample.helloworld が正常に作成されました C:¥demo> dir /b zero.sample.helloworld 12 © 2008 IBM Corporation WebSphere sMash アナウンスメント CLI の使用例(2) 依存性の追加 – zero.resource への 依存性を追加 • config/ivy.xml <?xml version="1.0" encoding="UTF-8"?> <ivy-module version="1.3"> ・・・ <dependencies> <dependency org="zero" name="zero.core" rev="[1.0.0.0, 2.0.0.0["/> <dependency name="zero.resource" org="zero" rev="[1.0.0.0, 2.0.0.0["/> </dependencies> </ivy-module> 依存性の解決 > cd (アプリケーション・ルート・ディレクトリー) > zero resolve C:¥demo> cd zero.sample.helloworld C:¥demo¥zero.sample.helloworld> zero resolve CWPZT0600I: コマンド resolve は正常に完了しました 13 © 2008 IBM Corporation WebSphere sMash アナウンスメント CLI の使用例(3) { リソース・モデルの定義 – "greetings" というリソース・モデルを定義 • app/models/greetings.json – リソース・モデルは DB のテーブルにマッ プされる 初期データの記述 – JSON ファイルに初期データを記述 • app/models/fixtures/initial_data.json リソース・モデルと初期データは後続のステッ プで DB にポピュレートする 14 "fields": { "language": { "type": "string", "max_length": 20 }, "message": { "type": "string", "max_length": 128 } } [ } {"type": "greetings", "fields": { "language": "English", "message": "Hello!!!" } }, { "type": "greetings", "fields": { "language": "Spanish", "message": "Hola!!" } }, {"type": "greetings", "fields": { "language": "Greek", "message": "Yassou!" } } ] © 2008 IBM Corporation WebSphere sMash アナウンスメント CLI の使用例(4) リソース・モデルと初期データを DB にポピュレート > cd (アプリケーション・ルート・ディレクトリー) > zero model sync 再度ポピュレートを行う場合は、 zero model reset を実行 C:¥demo¥zero.sample.helloworld> zero model sync CWPZC9225I: デフォルトの Derby データベース構成を使用しています。 アプリケーション・ルートの db/resource にあります。 CWPZC9223I: 1 モデル・タイプが見つかりました CWPZC9212I: SQL -> CREATE TABLE greetings ( language VARCHAR(20), message VARCHAR(128), id INTEGER PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY (START WITH 100, INCREMENT BY 1) NOT NULL, updated TIMESTAMP NOT NULL ) を使用してタイプ -> greetings で作成されたテーブル -> GREETINGS 15 File -> C:¥WebSphere¥sMash¥zero.sample.helloworld¥app¥models¥fixtures¥initial_data.json CWPZC9214I: メンバーが作成されました タイプ -> greetings データ -> {message=Hello!!!, language=English} ・・・・ CWPZT0600I: コマンド model sync は正常に完了しました © 2008 IBM Corporation WebSphere sMash アナウンスメント CLI の使用例(5) リソースへの REST によるアクセスを ZRM に委譲 – "ZRM.delegate()" の1行を Groovy スクリプトに記述 • app/resources/greetings.groovy ZRM.delegate() アプリケーションの始動 > cd (アプリケーション・ルート・ディレクトリー) > zero start C:¥demo¥zero.sample.helloworld> zero satart アプリケーションが始動して、http://localhost:8080/ で要求を処理しています CWPZT0600I: コマンド start は正常に完了しました 16 © 2008 IBM Corporation WebSphere sMash アナウンスメント CLI の使用例(6) アプリケーションの始動を確認 – デフォルト・インデックス・ページを表示 http://localhost:8080/ 17 © 2008 IBM Corporation WebSphere sMash アナウンスメント CLI の使用例(7) アプリケーションのテスト – Web ブラザーを使用してリソースの GET 要求を送信 http://localhost:8080/resources/greetings 18 © 2008 IBM Corporation WebSphere sMash アナウンスメント CLI の使用例(8) アプリケーションの停止 > cd (アプリケーション・ルート・ディレクトリー) > zero stop C:¥demo¥zero.sample.helloworld> zero stop アプリケーションの状況は、STOPPED です WPZT0600I: コマンド stop は正常に完了しました 19 © 2008 IBM Corporation WebSphere sMash アナウンスメント アプリケーション・ビルダー (App Builder) 20 © 2008 IBM Corporation WebSphere sMash アナウンスメント アプリケーション・ビルダーの概要 ブラウザー・ベースのIDE – Web 上で直接アプリケーションを構築 可能 sMash アプリケーションとして実装 開発ライフサイクル全体をカバー – 作成、修正、テスト アセンブル・フロー・エディター – アセンブル・フロー作成用のビジュアル・ エディターを提供 Web ページ作成用のビジュアル・エディ ターを提供 – Dojo 対応のページ・エディターを含む sMash DE でのみ使用可能 21 © 2008 IBM Corporation WebSphere sMash アナウンスメント アプリケーション・ビルダーの使用 前提 – sMash DE – Mozilla Firefox ver. 2 起動 – sMash DE のインストール先ディレクトリーで startAppBuilder を実行 • 最初の起動時に、モジュールのダウンロードが行われる • インターネットに接続できる状態で初期起動する > startAppBuilder アプリケーションが始動して、http://localhost:8070/ で要求を処理しています CWPZT0600I: コマンド start は正常に完了しました 使用 – ブラウザーで http://localhost:8070 にアクセス 補足: Silverstone ビルドでは、起動・停止コマンドが以下のように変更されています。 起動: AppBuilder start 停止: AppBuilder stop 22 © 2008 IBM Corporation WebSphere sMash アナウンスメント 初期画面 23 © 2008 IBM Corporation WebSphere sMash アナウンスメント ページ・エディター 24 © 2008 IBM Corporation WebSphere sMash アナウンスメント アセンブル・フロー・エディター 25 © 2008 IBM Corporation WebSphere sMash アナウンスメント アプリケーション・ビルダーの更新 アプリケーション・ビルダーは改良が続けられている 最新のアプリケーション・ビルダーに更新する場合は – アプリケーション・ビルダーを停止 • stopAppBuilder (Silverstone ビルドの場合は、AppBuilder stop) – アプリケーション・ビルダーのディレクトリーに移動 • <sMashDE導入ディレクトリー>¥appbuilder – 以下の CLI コマンドを実行 • zero modulegroup update • zero update App Builder http://www.projectzero.org/zero/silverstone/latest/docs/zero.gettingstarted.doc/zero.gettingstarted.doc/Ap pBuilder.html 26 © 2008 IBM Corporation WebSphere sMash アナウンスメント アプリケーション・ビルダーの使用例: 単純な REST サービスの作成 27 © 2008 IBM Corporation WebSphere sMash アナウンスメント アプリケーション・ビルダーの使用例(1) 新しいアプリケーションの作成 – 「My Applications -> New Application」を選択 – アプリケーションの名前と作成先のディレクトリーを指定 28 © 2008 IBM Corporation WebSphere sMash アナウンスメント アプリケーション・ビルダーの使用例(2) 新しいアプリケーションの作成 – 作成完了 29 © 2008 IBM Corporation WebSphere sMash アナウンスメント アプリケーション・ビルダーの使用例(3) アプリケーションの変更を開始 – 作成したアプリケーション zero.sample.helloworld2 を選択 30 © 2008 IBM Corporation WebSphere sMash アナウンスメント アプリケーション・ビルダーの使用例(4) リソース・モデルの作成 – 「File Editor」タブを選択した状態で 「New File -> Model」を選択 – 名前 /app/models/greetings.json を 指定 依存性の追加 – 依存性の欠落が検出され、自動的に 追加が促される – 「Add」を選択 – これにより、依存性の追加と解決が行 われる 31 © 2008 IBM Corporation WebSphere sMash アナウンスメント アプリケーション・ビルダーの使用例(5) リソース・モデルを定義 – 作成したファイルにリソース・モデ ルを定義 初期データを記述 – 同様の手順で以下のファイルを 作成 • /app/models/ fixtures/initial_data.json – 初期データを記述 32 © 2008 IBM Corporation WebSphere sMash アナウンスメント アプリケーション・ビルダーの使用例(6) リソース・モデルと初期データを DB にポピュレート – 「Consle」タブに切り替え、「Command Prompt」を選択 – "zero model sync" を実行 再度ポピュレートを行う場合は、 – 実行結果を確認 33 zero model reset を実行 © 2008 IBM Corporation WebSphere sMash アナウンスメント アプリケーション・ビルダーの使用例(7) Groovy スクリプトの作成 – 「File Editor」タブに切り替え、 「New File -> Resource」を選択 – 以下の名前を指定 • /app/resources/greetings.groovy – リソースへの REST によるアクセス を ZRM に委譲 • "ZRM.delegate()" の1行を Groovy スクリプトに記述 34 © 2008 IBM Corporation WebSphere sMash アナウンスメント アプリケーション・ビルダーの使用例(8) アプリケーションの始動 – 右上に表示されている Run ボタンをクリック • 補足:「My Applications」に表示される Run ボタンでも始動できます。 35 © 2008 IBM Corporation WebSphere sMash アナウンスメント アプリケーション・ビルダーの使用例(9) アプリケーションのテスト – Web ブラザーを使用してリソースの GET 要求を送信 http://localhost:8080/resources/greetings 36 © 2008 IBM Corporation WebSphere sMash アナウンスメント アプリケーション・ビルダーの使用例(10) ページ・エディターを使用した RIA クライアントの作成 (1) – ファイル public/greetingsClient.html を作成 – ZRMストアを追加し、プロパティーを設定 • 「Variable Name」に greetingsDataStore を設定 • 「Resource Collection」に greetings を設定 37 © 2008 IBM Corporation WebSphere sMash アナウンスメント アプリケーション・ビルダーの使用例(11) ページ・エディターを使用した RIA クライアントの作成 (2) – zero.resource.DataStore用データ・グリッドを追加(Drag&Drop) Drag&Drop 38 © 2008 IBM Corporation WebSphere sMash アナウンスメント アプリケーション・ビルダーの使用例(12) ページ・エディターを使用した RIA クライアントの作成 (3) – 追加したデータ・グリッドのプロパティーを変更 • 「Data Store」に greetingsDataStore を指定 • 「Read Only」を false に変更 39 © 2008 IBM Corporation WebSphere sMash アナウンスメント アプリケーション・ビルダーの使用例(13) ページ・エディターを使用した RIA クライアントの作成 (4) – 完成 – 「Source」に切り替えて内容を確認 ・・・ <body class="soria"> <span dojoType="zero.resource.DataStore" jsId="greetingsDataStore" resourceCollection="greetings"></span> <div dojoType="zero.grid.DataGrid" name="DataGrid" store="greetingsDataStore" style="width: 500px; height: 300px; position: absolute; left: 10px; top: 10px;"></div> </body> 40 © 2008 IBM Corporation WebSphere sMash アナウンスメント アプリケーション・ビルダーの使用例(14) RIA クライアントのテスト http://localhost:8080/greetingsClient.html 41 © 2008 IBM Corporation WebSphere sMash アナウンスメント アプリケーション・ビルダーの使用例(15) アプリケーションの停止 – 右上に表示されている Stop ボタンをクリック • 補足:「My Applications」に表示される Stop ボタンでも始動できます。 42 © 2008 IBM Corporation WebSphere sMash アナウンスメント Eclipse (Groovy と PHP 用の Eclipse プラグイン) 43 © 2008 IBM Corporation WebSphere sMash アナウンスメント Eclipse − Java と Groovy 用のプラグイン 前提環境 – Windows, Linux または Mac – Java SE Development Kit (JDK) 5.0 または 6.0 – Eclipse IDE for Java Developers 3.2.2 以降 Java と Groovy 用のプラグインをインストール – WebSphere sMash Update Site からプラグインをインストール • http://www.projectzero.org/zero/silverstone/latest/update/zero.eclipse –最新の前提環境などは、下記 URL を参照 44 Project Zero Downloads > Project Zero Eclipse Plug-in for Java and Groovy http://www.projectzero.org/download/eclipse_java.php Installing and configuring: Eclipse for Java and Groovy http://www.projectzero.org/zero/silverstone/latest/docs/zero.gettingstarted.doc/zero.gettingstarted.doc/Eclipse.html © 2008 IBM Corporation WebSphere sMash アナウンスメント Eclipse − PHP 用のプラグイン 前提環境 – Windows, Linux または Mac – Java SE Development Kit (JDK) 5.0 または 6.0 – Eclipse PHP Development Tools (PDT) 1.0.3 PHP 用のプラグインをインストール – WebSphere sMash Update Site からプラグインをインストール • http://www.projectzero.org/zero/silverstone/latest/update/zero.eclipse.php –最新の前提環境などは、下記 URL を参照 45 Project Zero Downloads > Project Zero Eclipse Plug-in for PHP http://www.projectzero.org/download/eclipse_php.php Installing and configuring: Eclipse for PHP http://www.projectzero.org/zero/silverstone/latest/docs/zero.gettingstarted.doc/zero.gettingstarted.doc/EclipsePHP.html © 2008 IBM Corporation WebSphere sMash アナウンスメント Eclipse − アセンブル・フロー・エディターの使用 準備 – アプリケーションに以下の依存性を追加 • <dependency name=”zero.assemble.tooling” org=”zero” rev=”[1.1.0.0, 1.2.0.0[”/> – 依存性を解決 使用 – アプリケーションを起動 – Webブラウザで、以下の URL にアクセス http://localhost:8080/tooling/ –依存性の追加と解決、アプリケーションの 起動方法は、以下の使用例を参照 Project Zero ブログ >> Blog Archive >> Assemble Flow Editor起動方法:Eclipse編 http://www.projectzero.org/jblog/index.php/2008/07/07/assemble-floweditor%e8%b5%b7%e5%8b%95%e6%96%b9%e6%b3%95%ef%bc%9aeclipse%e7%b7%a8/ 46 © 2008 IBM Corporation WebSphere sMash アナウンスメント Eclipse − モジュール・グループに関して モジュール・グループは experimental のみ – sMash DE と異なり、デフォルトではモジュール・グループ stable のモジュー ルを使用できない sMash DE と同様に stable のモジュール を利用したい場合は、Preferences 画面 で以下の設定を変更 – ローカル・リポジトリー・ホーム • 別ディレクトリーを指定 – リモート・リポジトリー・チェーン https://www.projectzero.org/sMash/1.0.x/repo/base/ https://www.projectzero.org/sMash/1.0.x/repo/rte/ https://www.projectzero.org/sMash/1.0.x/repo/samples/ 47 Project Zero ブログ >> Blog Archive >>WebSphere sMash Developer Edition (DE) のEclipseプラグインを導入する http://www.projectzero.org/jblog/index.php/2008/07/07/websphere-smash-developer-edition-de%e3%81%aeeclipse%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3%e3%82%92%e5%b0%8e%e5 %85%a5%e3%81%99%e3%82%8b/ © 2008 IBM Corporation WebSphere sMash アナウンスメント Eclipse − Groovy サポートの有効化 Groovy サポート – デバッガーによる Groovy スクリプトのデバッグ • デバッガーでは、sMash のグローバル・コンテキス トの内容も確認可 – コード・アシスト機能 Groovy サポートを有効にする – プロジェクトのポップアップ・メニューで「Add Groovy Nature」を選択 – Groovy スクリプトがコンパイルされ、bin-groovy ディレクトリー内にクラス・ファイルが作成され、 ブレークポイントが設定できるようになる 48 © 2008 IBM Corporation WebSphere sMash アナウンスメント Eclipse の使用例: 単純な REST サービスの作成 49 © 2008 IBM Corporation WebSphere sMash アナウンスメント Eclipse の使用例(1) 新しいアプリケーションの作成 – メニューから「File -> New -> Other…」を選択 – 「WebSphere sMash Application」を選択し、 アプリケーションの名前を指定 50 © 2008 IBM Corporation WebSphere sMash アナウンスメント Eclipse の使用例(2) 依存性の追加 – zero.resource への依存性を追加するために、config/ivy.xml を開き(ダブ ルクリック)、「追加」ボタンを選択 – 「依存関係の選択」に zero.resource が表示されない場合は、 「リポジトリーの管理」ボタンを選択 51 © 2008 IBM Corporation WebSphere sMash アナウンスメント Eclipse の使用例(3) 依存性の追加 (続き) – リモート・リポジトリーを検索し、zero.resource をダウンロード 52 © 2008 IBM Corporation WebSphere sMash アナウンスメント Eclipse の使用例(4) 依存性の追加 (続き) – zero.resource への依存性を追加 – config/ivy.xml を保存 保存 53 © 2008 IBM Corporation WebSphere sMash アナウンスメント Eclipse の使用例(5) デフォルトで自動解決が有効になっているので、 この操作は省略できます。 依存性の解決 – アプリケーションのポップアップから「WebSphere sMash Tools -> Resolve」を選択 – 解決結果は、「Package Explore」の「Zero 解決ライブラ リー」で確認可能 54 © 2008 IBM Corporation WebSphere sMash アナウンスメント Eclipse の使用例(6) リソース・モデルの定義 • app/models/greetings.json –ファイル内に記述する内容は、 –CLI や App Builder の使用例を参照 初期データの記述 • app/models/fixtures/initial_data.json Groovy スクリプトの作成 • app/resources/greetings.groovy • Groovy スクリプトを作成する際に、Groovy サポート の追加が促されるので、Yes を選択 自動的に有効にならない場合は、 プロジェクトのポップアップ・メニューから「Add Groovy Nature」を選択 55 © 2008 IBM Corporation WebSphere sMash アナウンスメント Eclipse の使用例(7) リソース・モデルと初期データを DB にポピュレートする作業を行うために、 Run Configuration を作成 • ここでは一旦アプリケーションを始動し停止することで Run Configuration を自動 生成します Run Configuration を作成するために、一旦アプリケーションを始動 – アプリケーション(プロジェクト)のポップアップから 「Run As -> WebSphere sMash Application」を選択 56 © 2008 IBM Corporation WebSphere sMash アナウンスメント Eclipse の使用例(8) Run Configuration が作成されたので、アプリケーションを停止 – 「Console」の Terminate ボタンで停止 57 © 2008 IBM Corporation WebSphere sMash アナウンスメント Eclipse の使用例(9) リソース・モデルと初期データを DB にポピュレート – 作成された Run Configuration を開き、Program Arguments を run から model sync に修正 再度ポピュレートを行う場合は、model reset を指定 – 「Apply」ボタン、 「Run」ボタンを選択し ポピュレートを実行 58 © 2008 IBM Corporation WebSphere sMash アナウンスメント Eclipse の使用例(10) ポピュレートの結果をコンソールで確認 59 © 2008 IBM Corporation WebSphere sMash アナウンスメント Eclipse の使用例(11) アプリケーションの始動 – Run Configuration を開き、Program Arguments を run に復元 – 「Apply」ボタン、「Run」ボタンを選択し、アプリケーションを始動 60 © 2008 IBM Corporation WebSphere sMash アナウンスメント Eclipse の使用例(12) アプリケーションのテスト – Web ブラザーを使用してリソースの GET 要求を送信 http://localhost:8080/resources/greetings 61 © 2008 IBM Corporation WebSphere sMash アナウンスメント Eclipse の使用例(13) アプリケーションの停止 – 「Console」の Terminate ボタンで停止 62 © 2008 IBM Corporation WebSphere sMash アナウンスメント Web ツール 63 © 2008 IBM Corporation WebSphere sMash アナウンスメント Web ツール概要 zero.core.webtools – アプリケーション開発時に役立つユーティリティーを提供 – 本番用のアプリケーションではセキュリティーなどの観点から使用しない • config/ivy.xml から zero.core.webtools の依存定義を除去 提供する機能 – アプリケーションのデフォルト・インデックス・ページ (Web ツール用) – リクエスト・データ・ ビューアー – ユーザー・サービス・アプリケーション • ファイル・ベースのユーザー・レジストリーの、Web ベースの管理機能 – 仮想ディレクトリー・ブラウザー – 開発者向けのデフォルト・エラー・ページ – Groovy コンパイル・エラー用のエラー・ページ 64 (zero.core の機能) (zero.core の機能) © 2008 IBM Corporation WebSphere sMash アナウンスメント Web ツール(1) アプリケーションのデフォルト・イン デックス・ページ – Web ツール提供のもの – 独自のインデックス・ページを作 成すると、このデフォルト・ペー ジの表示が抑止される – http://localhost:8080/ リクエスト・データ・ ビューアー – ヘッダー、クッキー、パラメー ターなどのリクエスト情報を表示 – http://localhost:8080/zero/web tools/snoop.gt 65 © 2008 IBM Corporation WebSphere sMash アナウンスメント Web ツール(2) ユーザー・サービス・アプリケーション – ファイル・ベースのユーザー・レジスト リーの、Web ベースの管理機能 – http://localhost:8080/zero/webtools/u ser 仮想ディレクトリー・ブラウザー – 仮想ディレクトリー内のファイル一覧と、 選択したファイルの内容を表示 – 集積したファイルの一覧を表示 • ファイル一覧には、ファイルの提供元 モジュールの名前も表示 – App Builder の「Explorer」タブも同様の 機能を提供 – http://localhost:8080/zero/webtools/br owser.gt 66 © 2008 IBM Corporation WebSphere sMash アナウンスメント 補足: zero.core の機能 稼動モードに応じたデフォルトのエ ラー・ページを提供 "development" モード – デフォルト・エラー・ページ • スタック・トレースを含むエラー・ ページ – Groovy コンパイル・エラー用の エラー・ページ • Groovy コンパイル・エラー用の特 別なエラー・ページ • コンパイル・エラーとソース・コード を表示 "production" モード – スタック・トレースなどを含まない シンプルなエラー・ページ – Groovy コンパイル・エラーの場合 も同様 z 67 z ドキュメントでは Web ツールの機能となっていますが、稼動確認した範囲では zero.core の機能でした config/zero.config 内の /config/runtime/mode の指定によりデフォルトのエラー・ページが変わります © 2008 IBM Corporation WebSphere sMash アナウンスメント restdoc Web ツール zero.restdoc.webtools – restdoc が生成したドキュ メントを公開 – RESTリソースのテスト機 能を提供 – http://localhost:8080/res ources/restdoc zero.restdoc と zero.restdoc.webtools の モジュール・グループは "experimental" です。 68 RESTdoc (zero.restdoc.webtools) http://www.projectzero.org/zero/silverstone/latest/docs/zero.gettingstarted.doc/zero.restdoc/RESTdoc.html © 2008 IBM Corporation WebSphere sMash アナウンスメント デバッグとテスト 69 © 2008 IBM Corporation WebSphere sMash アナウンスメント デバッグ:ログ出力によるデバッグ アプリケーション内にデバッグ用のログ出力を埋め込む – logger.<出力レベル> { "メッセージ" } – 例:logger.FINEST { "Hello world." } ログ出力設定のカスタマイズ – 以下のディレクトリー内の logging.properties を、アプリの config 内にコピー • <sMash導入Dir>¥zero-repository¥stable¥expanded¥zero.kernel-<VerRev>¥config – ログ出力レベルのカスタマイズ(指定) • .level=??? (sMashを含む、全体に対する指定) • aaa.bbb.level=??? (特定のパッケージ&スクリプトに対する指定) – ログ出力レベル • SEVERE > WARNING > INFO > CONFIG > FINE > FINER > FINEST 出力先 – logs ディレクトリー内の trace-0.0.log – 注:error-0.0.log には、logging.properties 内の指定(デフォルト)により、INFO 以上 のメッセージしか出力されない 70 Logging from a Groovy Script http://publib.boulder.ibm.com/infocenter/wsmashin/v1r0/topic/com.ibm.websphere.sMash.doc/core/zero.core © 2008 IBM Corporation /docs/en/GroovyHandlers.html#Logging_from_a_Groovy_Script WebSphere sMash アナウンスメント デバッグ:アクセス・ログの出力 HTTP 通信に関連した動作の解析で使用 sMash アクセス・ログの出力方法 – config/zero.config に /config/accessLogging=true を追加 ログの出力先 – logs ディレクトリー内の access-log 71 © 2008 IBM Corporation WebSphere sMash アナウンスメント デバッグ:デバッガーの使用 (Eclipse) デバッガーによるデバッグ – ブレーク・ポイント – ステップ実行 – 変数値の表示 – グローバル・コンテキス トの表示 アプリケーション・ロジックの 詳細なデバッグ向き 72 © 2008 IBM Corporation WebSphere sMash アナウンスメント デバッグ:AJAX / Dojoクライアント (1) Firebug によるデバッグ (Firefox のみ) – Firebug: http://getfirebug.com/ – 以下の機能を持つ強力なデバッグ・ツール • • • • コンソール出力 HTML の表示/編集 スクリプト、CSSの表示/編集 ブレーク・ポイントの設定によるデバッグ、変数値の表示 Firebug Lite (Dojo同梱)によるデバッグ – コンソール出力機能とコマンドによる変数値の表示機能などを提供 – Dojo の djConfig に "isDebug: true" を指定 ログ出力によるデバッグ – Java Script 内にデバッグ用のログ出力を埋め込む • console.<出力レベル>( "メッセージ" ) • 例: console.debug( "Hello world." ) – 出力先 • Firebug または Firebug Lite のコンソール 73 © 2008 IBM Corporation WebSphere sMash アナウンスメント デバッグ:AJAX / Dojoクライアント (2) Dojo に関連した問題解析のヒント – dojo.js の代わりに dojo.uncompressed.js をロード • dojo.js は実行時のパフォーマンスを向上させるために "圧縮" されている • コードが読みにくいため、解析作業には不向き – dojo. require() でロードしている箇所を <script> タグによるロードに変更 • dojo. require() でロードした Java Script には、Firebug でブレーク・ポイントを設定できない ・・・ <script type="text/javascript"> var djConfig = { parseOnLoad: true, isDebug: true }; </script> <script type="text/javascript" src="dojo/dojo.js.uncompressed.js"> </script> <script type="text/javascript" src="dojo/dnd/Container.js"></script> <script type="text/javascript" src="dojo/dnd/Selector.js"></script> <script type="text/javascript" src="dojo/dnd/Source.js"></script> <script type="text/javascript" src="dojo/dnd/Avatar.js"></script> <script type="text/javascript" src="dojo/dnd/Manager.js"></script> ・・・ 74 © 2008 IBM Corporation WebSphere sMash アナウンスメント まとめ WebSphere sMash アプリケーション開発環境 – CLI (コマンド・ライン・インターフェース) – アプリケーション・ビルダー (App Builder) – Eclipse • Groovy & Java • PHP Web ツール デバッグとテスト 75 © 2008 IBM Corporation