SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

オープンソースApache Tuscanyで楽しむSOA

オープンソースApache Tuscanyで楽しむSOA
第3回「Web2.0から始めましょう(JSONRPC編)」

トスカーナワインはいかが?


  • X ポスト
  • このエントリーをはてなブックマークに追加

コンポーネントを組み合わせる

 サーバ側のコンポーネントとクライアント側のコンポーネントができあがりました。後はコンポーネント同士を組み合わせるだけです。組み合わせるにはコンポジットファイルというXMLファイルを使用します。図18が今回のコンポジットファイルです。コンポジットファイルはcomposite要素がルート要素です。component要素がその子要素で、今回は2つの要素「WineShop」と「WineCatalog」があります。WineShopコンポーネントからWineCatalogコンポーネントのサービスを呼び出すには、WineShopコンポーネントの子要素であるreference要素で指定します。name属性が「wineCatalog」、target属性が「WineCatalog」がそれに相当します。name属性の値が、JavaScriptでtuscany.sca.Referenceでインスタンス化した時の引数となります。target属性はサービスとなるコンポーネントのname属性の値を指定します。この場合は「WineCatalog」となります。コンポーネントに2つ以上のサービスを持つ場合は指定の仕方が少し複雑です。次回説明します。

 今回注意してほしいのはbinding要素です。WebブラウザとWineShopはhttpで、WineShopとWineCatalogはjsonrpcで結合しています。この指定によりコンポーネントを結合する方法が決定するのです。先述のとおり、WineCatalogをWebサービスで結合することも可能です。コンポーネントがこれだけの指定で結合できることに驚かざるをえません。JSONプログラミングの複雑さを思うと、本当にクライアントとサーバの間でJSONフォーマットのテキストデータがやりとりされているとは想像できません。

図19:wineshop.composite
図19:wineshop.composite

ワインリストの表示

 最後にドメイン内でコンポジットをインスタンス化するプログラム(図20)を作成して、Eclipseで「Javaアプリケーションの実行」を選択すると、勝手にmainメソッドを探してくれ、実行してくれます。ブラウザでURLに「http://localhost:8080/wineshop/WineShop.html」を指定すると、図21のようにワインリストが表示されます。まだ物足りませんが次回から徐々にできあがります。

 ちなみに、今回のプロジェクト構成は図22のようになります。

図20:Launch.java
図20:Launch.java
図21:トスカーナワイン店のワインリスト表示
図21:トスカーナワイン店のワインリスト表示
図22:今回のプロジェクト構成
図22:今回のプロジェクト構成

 今回はサンプルプログラムのネットショップを構築しながら、JSONRPCがTuscanyの中でどのように使われているかということを説明しました。次回は、AtomがTuscanyの中でどう使われているかを説明していきます。(プログラムについてはAtomを実装したものを含め次回ダウンロードできるよう用意します)

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
オープンソースApache Tuscanyで楽しむSOA連載記事一覧

もっと読む

この記事の著者

川久保 智晴(カワクボ トモハル)

haruプログラミング教室(https://haru-idea.jp/)主宰。COBOL、FORTRANで13年、Javaを中心としたWeb開発で11年。3つしか言語知らないのかというとそうでもなく、sed/awk、Perl、Python, PHP,  C#, JavaScriptなども一時期は業...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/4329 2009/11/25 14:07

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング