GroovyでXML:はじめに
Posted by nobusue on 9 月 23rd, 2008. Other posts by nobusue
REST形式のサービスではレスポンスをXMLで返すものが多く、サーバーサイドマッシュアップを行う際にはXMLの解析が不可避です。
Javaと比べ、GroovyはXMLの取り扱いが容易なのが特徴です。
Javaでは、XMLをパースするだけでも
DocumentBuilderFactory fac = DocumentBuilderFactory.newInstance()
DocumentBuilder builder = fac.newDocumentBuilder()
Document doc = builder.parse(new FileInputStream(’hoge.xml’))
のような手順を踏む必要があります。(parse()メソッドの入力がInputStreamなのも微妙に不便なところです。)さらにXMLからデータを取り出すためには、DOMのAPIを利用した煩雑なコーディングが必要です。
Groovyでは、XMLのパースは、
def hoge = new XmlParser().parse(new File(’hoge.xml’))
のように、たった1行で終了です。さらに、ここからデータを取り出す処理も、
def element = hoge.fuga
def elementName = hoge.fuga.name()
def attribute = hoge.fuga.’@attr’
のように、通常のオブジェクトツリーをたどるのと同様にコーディングできます。
GroovyによるXML処理のコツについては、引き続きこのBlogでご紹介していくつもりですが、今すぐ詳細を知りたい方はこちらをご参照下さい。
Web:Groovy ドキュメント
http://groovy.codehaus.org/Processing+XML
書籍:「Groovy イン・アクション」
http://www.amazon.co.jp/Groovy%E3%82%A4%E3%83%B3%E3%83%BB%E3%82%A2%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3-Dierk-Konig/dp/4839927278
New Forum Launched - WebSphere sMash JP ヘルプとフィードバック
Posted by hirot on 9 月 19th, 2008. Other posts by hirot
これまでprojectzero.orgでは4つの英語版フォーラムが提供されてきましたが、この度新たに日本語フォーラム”WebSphere sMash JP ヘルプとフィードバック”が新たに開設されました。
このフォーラムは、日本語による、WebSphere sMashやWebSphere sMashの情報交換の場としてご利用いただくことを目的としています。日本人技術者、また日本語が堪能な全世界の技術者の皆さんの参加をお待ちしています。
なお、このフォーラムはIBMの公式なサポート・チャネルではありません。このフォーラムで交換されるいかなる情報もIBMの公式な見解ではありませんし、その内容やそれを適用した結果についてIBMは保証いたしません。IBMによる公式サポートが必要な際には、IBM 営業員にご相談ください。
We have the new forum, WebSphere sMash JP.
This forum is the place for questions and discussion in Japanese, mainly to WebSphere sMash and the stable runtime portion of WebSphere sMash DE. This is NOT the official IBM support channel for making problem reports and getting fixes, but in the [...]
WebSphere sMashアナウンスメント・ワークショップ資料が公開されました。
Posted by hirot on 8 月 13th, 2008. Other posts by hirot
WebSphere sMashアナウンスメント・ワークショップ資料が、こちらのサイトで公開されました。現時点で、技術的に一番充実した日本語資料です。是非ダウンロードして参考にしてください。
9月29日~30日、WebSphere sMash ハンズオン・ワークショップを開催します
Posted by hirot on 8 月 11th, 2008. Other posts by hirot
WebSphere sMashテクニカル・サポート・チームと私が中心になって、首題の研修を実施します。実機を使ったハンズオンを通してWebSphere sMashアプリケーションの開発と配置手順を学習いただきます。お客様、開発者の皆さんも無料で受講いただけますの で、是非この機会にWebSphere sMashに触れてみてください。詳細は下記の申込サイトをご覧ください。
WebSphere sMashハンズオン・ワークショップ申し込みサイト
Silverstone Milestone 1ドライバーがリリースされました
Posted by hirot on 8 月 11th, 2008. Other posts by hirot
8月4日Silverstone のMilestone 1がリリースされました。
SilverstoneとはWebSphere sMashの次期リリースのコード・ネームです。Silverstoneは日々、機能拡張したり、Fixを取り込みながら、頻繁にビルドを繰り返しているのですが、この変更をフリーズして、比較的安定したバージョンをMilestone 1として提供したのです。Milestoneとは所謂バージョンのようなもので、しばしばM n(例えばMilestone 1はM1)と略されます。
Milestone1のダウンロードはこちら、そしてドキュメンテーションはこちらにあります。
Milestone1リリースに関するオリジナルの情報は、フォーラムのこちらのスレッドです。
さてMilestone1のWhat’s newを以下で簡単に説明しましょう。オリジナル文書はこちらです。
管理機能
Admin Consoleの追加。AppBuilderベースでグラフィカルにランタイムの管理が可能。
Apache mod_proxyの自動構成機能の追加。CLIコマンドによりApache mod_proxyを自動的に構成し、バックエンドに配置するsMashアプリケーションにワークロード・バランスすることが出来る。
プライベートなsMashリポジトリ作成機能。CLIコマンドで、簡単にsMashリポジトリを作成し、アプリケーションや拡張モジュールの共有が可能になる。
データ・アクセス機能
SQLステートメントの外部化。SQLステートメントを構成ファイルに外だしにし、それらを使って1アプリケーションから複数のDBにアクセスすることが出来る。
SQL Server 2005のサポート。Data Access APIとZRMで使用可能。
ZRMのPHPサポート。製品版では、Groovyからしか利用できなかったZRMがPHPからも利用可能になった。
インテグレーション
iWidgetサポート。IBM Mashup Centerとより緊密に連携するアプリケーションが構築可能。
プログラミング・モデル
テスト・ハーネス・パッケージ。sMashアプリケーションのテストを容易に。
XOXOマイクロ・ドキュメントの作成と操作のためのAPIを追加。
Groovy 1.5.6のサポート。
PHP
コンパイラーのサポート。パフォーマンスの向上が期待できる。
PHP関数サポートの拡充。array, mail, ネットワーク関連、imap, string, cURL等。
アセンブル
メタ・データの拡張。
フロー・エディターの改善。
コネクティビティ
FTPプロトコルの追加。
コネクションAPIによるカスタム・プロトコルURI登録のサポート。構成ファイルにおけるデスティネーション定義は不要。
コネクション・ハンドラの拡張。リクエスト処理をバイパスし、レスポンス処理を開始できる。レスポンスのキャッシュなどに有効。
メッセージング
自動クァイアス機能。
ブローカ管理のためのCLIコマンドの追加。
メッセージング・キッカーのポーリングの最適化。
プールされたJMSコネクションのプロアクティブな満了。
Groovyのインストールと実行
Posted by nobusue on 7 月 30th, 2008. Other posts by nobusue
WebSphere sMashの特徴の一つとして、スクリプト言語で手軽にアプリケーションが開発できることがあります。
サポートされているスクリプト言語はGroovyとPHPですが、Groovyの文法はほぼJavaと同じですので、Javaの経験者であればGroovyの方がとっつきやすいと思います。とはいえ、Groovy自体はまだ日本語の情報が少なく、具体的なコーディングに取り掛かってみると「xxをするにはどうコーディングしたらいいのだろうか?」と悩むことが多いと思います。そこで、このBlogでは「Groovyでいこう」カテゴリーで、Groovyに関する情報をご紹介しようと思います。
まず手始めとして、Groovyスクリプトを実行できる環境を構築しておきましょう。GroovyのランタイムはWebSphere sMash(ProjectZero)にも含まれていますが、コマンドラインからスクリプトの動作確認を行ったりするためには、単体のGroovyを別途導入しておくと便利です。
Groovyはオープンソースソフトウェアであり、プロジェクトのWebサイトは http://groovy.codehaus.org/です。
インストール手順は以下のようになります:
JDK1.5以上を導入しておく。GroovyはJavaベースで動作しますので、JDKの稼動環境が必要です。
http://groovy.codehaus.org/Download から、 Binary Releaseをダウンロードする。2008/7/30時点での最新の安定版はGroovy-1.5.6です。
ダウンロードしたアーカイブを適当なディレクトリに展開する。私は、c:\groovy\groovy-1.5.6 のように、<Groovy全体のホーム>/<Groovyバージョン別のホーム>というディレクトリ構造にしています。
環境変数 GROOVY_HOME に、Groovyのルートディレクトリを設定する。OSによって設定方法は異なりますが、WindowsXPであれば「マイコンピュータ右クリック」-「プロパティ」-「詳細設定」-「環境変数」から、システム環境変数を新規作成します。先ほどの例では、GROOVY_HOME=c:\groovy\groovy-1.5.6 となります。
環境変数 PATH に、%GROOVY_HOME%\bin を追加する
以上で、インストールは完了です。
では早速、Groovyを実行してみましょう。コマンドプロンプト(シェル)を起動して、”groovy -v”を実行してみて下さい。”Groovy Version: 1.5.6″のようにバージョンが表示されれば、インストールは成功です。うまく動作しない場合は、JAVA_HOMEやPATH、GROOVY_HOMEなどの設定が正しいかどうか確認してみてください。
次に、Groovyスクリプト を試すのに便利な「Groovy Console」をご紹介します。Groovy Consoleは、GroovyのSwingBuilderを利用して作られた対話型シェルです。コマンドプロンプト(シェル)から、”groovyConsole”を実行してみてください。次のようなアプリケーションが起動します。
コード入力ペイン(上半分)にGroovyコードを入力し、メニューから「Script->Run」、ないしはCtrl+Rキーでコードを実行できます。実行結果は結果ペイン(下半分)に出力されます。
この例では、Groovyのリストリテラル利用してStringのリストを定義し、リストのsort()メソッドでソートを実行しています。Groovyスクリプトでは、最後の式の評価結果がスクリプトのリターン値になるため、ここではResultとしてソート済みのリストが得られています。
Groovyスクリプトを実行する方法としては、Groovy Console以外にも、groovyコマンドやgroovyshコマンドなども利用可能です。sMashでのGroovyコーディングに悩んだら、まずGroovyスクリプト単体で期待通りに動作するかどうかをこまめに確認することをお勧めします。
Assemble Flow Editor起動方法:App Builder編
Posted by hirot on 7 月 15th, 2008. Other posts by hirot
7月7日の七夕の日に、Assemble Flow Editor起動方法:Eclipse編をポストしました。そこで紹介した内容は次のとおりです。
つまり、SilverstoneビルドのEclipseプラグインを導入したEclipseで、WebSphere sMashアプリケーションを稼働させ、その中でアセンブル・フローのエディター・ランタイムを動かしました。そしてそのWebSphere sMashアプリケーションにブラウザーでアクセスすることで、アセンブル・フローのビジュアル・エディタを、Webブラウザに表示させたわけです。
ところで、Silverstoneは、WebSphere sMashのインキュベータProject Zeroの最新安定板であり、製品版と同等の機能を持つWebSphere sMash Developer Edition (DE)とは異なります。そこで、今回はDEを使用した場合に、アセンブル・フロー・エディターを起動させる方法をご紹介します。
DEでアセンブル・フロー・エディターを起動させるには、必ずApp Builderを使用しなければなりません。何故ならば、現行のDE 1.0.xのEclipseプラグインには、アセンブル・フロー・エディタのランタイムを提供する拡張モジュールzero.assemble.toolingが含まれていないからです。
ですから、開発用ビルドとしてDEを使用する場合、アセンブル・フローをビジュアル開発するには必ずApp Builderを使わなければなりません。ただし、アセンブル・フローのビジュアル開発以外の用途に、Eclipseをお使いいただくのは可能です。
では、App Builderでアセンブル・フローを起動する手順をご紹介しましょう。
コマンド・プロンプトで次のコマンドを実行する。
startAppBuilder
Firefoxが起動していない場合は、起動し、ブラウザ中でApp Builderがオープンする。もしFirefoxが起動しない、あるいはApp Builderがオープンしないならば、手動でFirefoxを起動し、http://localhost:8070/にアクセスする。
左側のActionsメニュー上のNew Applicationをクリックする。
New Application ダイアログ・ボックスのNameフィールドに任意のアプリケーションの名前(これがアプリケーションのルート・ディレクトリ名となる)、Root Directoryフィールドにアプリケーションが作成されるベースのディレクトリ名(この直下にアプリケーションのルート・ディレクトリが作成される)を指定する。
左側のペインにあるメニューを New File > Flow (in /public/) の順でクリックする。
File Create ダイアログ・ボックスのテキスト・フィールドに、アセンブル・フローの定義ファイルの格納場所の相対パスを入力し、Createボタンを押す。
定義ファイルの拡張子として.flowを付けなければなりません。.flowを付けない場合には、アセンブル・フローは起動しません。
定義ファイル名をindex.flowとした場合、アセンブル・フローの呼び出しURIに定義ファイル名を含める必要はありません。例えば、テキスト・フィールドに/public/flow/index.flowと入力した場合、このアセンブル・フローを呼び出すためのURIは、/flow/になります。publicディレクトリは所謂ドキュメント・ルートに相当するので、URIに含める必要はありません。
依存性解決を促すダイアログ・ボックスが表示されるのでAddをクリックする。自動的に必要な、拡張モジュールがダウンロードされます。場合によってはManagementコンポーネントのダウンロードを問われることもあるが、必要に応じてAddボタンをクリックする。
アセンブル・フロー・エディターが表示されます。
以上の手順で、App Builderを使ってアセンブル・フロー・エディタを起動することができます。この手順はDEビルドでも、Silverstoneビルドでも使用することが可能です。ただしSilverstoneビルドでは、App Builderの操作コマンドが次のように変更になっています。
AppBuilder start
App Builderの起動。
AppBuilder open
App Builderが起動していなかったら起動し、加えてWebブラウザを起動してApp BuilderのGUIを表示する。
AppBuilder stop
AppBuilderを遮断する。
Assemble Flow Editor起動方法:Eclipse編
Posted by hirot on 7 月 7th, 2008. Other posts by hirot
WebSphere sMashの特徴として、アセンブル・フローがあります。これはいわゆるWebベースのワークフローです。sMashは、Webブラウザ上で稼動するワークフローをビジュアルに作成するエディター(Assemble Flow Editor)と、ワークフローのランタイムを提供します。
開発環境としてEclipseを使用している場合に、Assemble Flow Editorを起動する方法を紹介しましょう。
Silverstoneビルドを使用している場合は、次の手順でAssemble Flow Editorを起動し、ワークフローを作成することが出来ます。
ivy.xmlにzero.assemble.toolingを追加します。次のいずれかの方法で追加できます。
XMLファイルのdependencies要素に直接<dependency name=”zero.assemble.tooling” org=”zero” rev=”[1.1.0.0, 1.2.0.0[”/>を追記する。
ivy.xmlのビジュアル・エディタ(Zeroパッケージ情報と表示されているエディタ)で追加ボタンを押し、「依存関係の選択画面」でzero:zero.assemble.tooling([1.1.0.0, 1.2.0.0[)を選び、OKボタンを押す。
Eclipse上で、WebSpere sMashアプリケーション・プロジェクトを起動する。
Webブラウザで、http://localhost:8080/tooling/にアクセスする。
WebブラウザにWebSphere sMash - アセンブリーのホームページが表示される。
Create a flowボタンを押し、作成するフローを呼び出すためのURIを入力し、作成ボタンを押す。
WebSphere sMash Developer Edition (DE) のEclipseプラグインを導入する
Posted by hirot on 7 月 7th, 2008. Other posts by hirot
DEのCommand Line Interfaceの導入方法に引き続き、今回はDEのEclipseプラグインの導入方法をご紹介します。WebSphere sMashのアプリケーションは、ブラウザで稼動するWeb IDE (App Builder)という統合開発環境で開発することも出来ますが、やはり使い慣れたEclipseで開発したい、という方も多いと思います。WebSphere sMashのEclipseプラグインを導入すれば、アプリケーションの開発、デバッグ、テスト稼動が可能になります。まず、Eclipse 3.2以上を導入してください。次にWebSphere sMashのEclipseプラグインの導入ですが、以下の通りです。私は日本語化パッチをあてていないので、メニュー・タイトルは英語のまま表記します。
1. Eclipseのメニューを Help > Software Updates > Search for new features to installの順で選択します。
2. Install画面で右側のNew Remote Siteボタンを押します。
3. Edit Remote Site ダイアログ・ボックスが現れます。Nameフィールドに任意の文字列、URLフィールドにと入力し、OKボタンを押します。
4. Install画面で下にあるFinishボタンを押します。
5. Updates画面が現れます。全てにチェックを入れて、下にあるNextボタンを押します。
6. Install画面が現れます。ライセンス情報をよく読み、同意できる場合には、ラジオ・ボタンのI accept the terms in the license agreementsを選びます。下にあるNextボタンを押します。
7. Verification画面が現れます。下にあるInstall Allボタンを押します。
8. Install/Updateボタンが現れて、Eclipseプラグインを有効化するため再起動を促します。Yesボタンを押します。
Eclipseプラグインの導入は以上の通りで、導入後すぐにWebSphere sMashアプリを開発を開始することが出来ます。ただし一つ意識しておくべきことがあります。それは、開発にあたってWebSphere sMashのどのバージョンを使うか?ということです。
本日現在のWebSphere sMash Eclipseプラグインはデフォルトでは、WebSphere sMash最新実装のコミュニティ版であるSilverstoneというビルドを使用します。つまり、導入後そのままだと、EclipseプラグインはDEとは異なるビルドを使ってしまうということになります。
もしSilverstoneではなくDE環境に合わせて開発したいなら、Eclipse プラグインがDEと同じビルドを使うように構成しましょう。手順は次の通りです。
1. Eclipseのメニューを Window > [...]
Project Zero/WebSphere sMashのフォーラム
Posted by hirot on 7 月 4th, 2008. Other posts by hirot
p0.orgには従来次の3つのフォーラムがありました。
Help and Feedback - Q&Aフォーラム
Developer Alerts - 主にProject Zeroのコアや拡張モジュールの開発者に向けた、設計や実装変更の掲示板
Zero Development - Project Zeroのコアや拡張モジュールの設計や実装についての議論の場
これらのフォーラムは元々インキュベータ・プロジェクトであるProject Zeroの意見交換の目的に作られています。もちらん、Project ZeroはWebSphere sMashのインキュベータで、同一のチームが開発していますので、ここでWebSphere sMashの意見交換をしても良いのですが、読み手の側からすると混乱してしまう可能性もあります。例えばIvyのトピックがあったとしても、それがSilverstoneでの話しなのか、あるいはWebSphere sMash DE 1.0の話なのか、ちょっと眺めただけでは、わからないかもしれません。
そこで、新たにsMash 1.0.X Usersフォーラムが開設されています。このフォーラムは、製品版WebSphere sMashや、コミュニティ版WebSphere sMash DE 1.0の質問や意見交換、フィードバックに利用するものです。
英語ですし、まだ一件しかポストがありませんが、頑張って利用していきましょう。
ちなみに、公式なIBMのサポートが必要な場合は、日本では日本アイ・ビー・エムの営業担当者にコンタクトしてください。
