SHOEISHA iD

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

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

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

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

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


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

 SOAは混沌とした段階から、JBI準拠製品、SCA準拠製品が開発されるに至り、エンタープライズレベルまで進化してきました。この連載では、オープンソースのSCA準拠製品である「Tuscany」を使ったSOAの開発について説明していきます。第3回目の今回は、サンプルプログラムを用いて、JSONRPCがTuscanyの中でどのように使われているか説明します。

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

はじめに

 この連載では、「オープンソースApache Tuscanyで楽しむSOA」として、オープンソースのSCA準拠製品である「Apache Tuscany」を取り上げ、SOA(サービス指向アーキテクチャ)の開発について説明していきたいと思います。第3回目の今回はサンプルプログラムを用いて、JSONRPCがTuscanyの中でどのように使われているかを紹介していきます。

これまでの連載

Web 2.0をも取り込んだTuscany

 JSONやAtomといったものをご存じではない方も、Web 2.0という言葉はどこかで聞いたことがあるのではないでしょうか? ウィキペディア(Wikipedia)で調べても、定義は明らかではありません。しかし、TuscanyにJSONやAtomのバインディングが存在することに対し「Tuscany meets Web 2.0」などと言われていた時期があるのです。例えば、IBMのサイトに掲載されている「Web 2.0 meets SOA with Apache Tuscany SCA」(PDF)なる文書などが端的にそのことを現しています。この文書の中では具体的な例として、AtomRSSJSONRPCを例に挙げています。

 当連載でも、まずは目で確かめられるものから紹介した方がよりTuscanyに親しめるのではないかと考え、サンプルプログラムを用意し、今回はJSONRPC、次回はAtomがTuscanyの中でどのように使われているかを説明したいと考えています。非常に安易ではありますが、Tuscany(トスカーナ)という言葉を使いたいという想いから、「トスカーナワイン店」という架空のネットショップを構築してゆきながら、Tuscanyに触れていただこうと予定しています。

 「トスカーナワイン店」もフルスクラッチでの構築は大変なので、Tuscanyが提供しているサンプル「store」を流用しつつ構築していきます。「store」では非同期な動作が分かりづらいところがあります。そのあたりが分かるような作りに変えてみましょう。

トスカーナワイン店の概要から

 まずはイメージを抱いてもらうために、実際の画面イメージ(図1)をご覧ください。

図1:作成する「トスカーナワイン店」のイメージ図
図1:作成する「トスカーナワイン店」のイメージ図

仕様

  • ワインリストのチェックボックスを[ON]にすると、自動的に買い物かごに追加される
  • ワインリストのチェックボックスを[OFF]にすると、自動的に買い物かごから削除される
  • 買い物かごの[本数]部分を変更すると、明細合計・送料・合計金額が自動的に表示される
  • [買い物かごを空にする]ボタンをクリックすると、買い物かごは空になる

 実際のシステムを構築する際は、左側にワインリスト、右側に買い物かごを配置すると使いやすくなると思います。

JSONやAtomをどこで使用しているか

図2:「トスカーナワイン店」の実装技術対応
図2:「トスカーナワイン店」の実装技術対応

 ワインリストは非常にシンプルなデータ構造をしています。このような場合、クライアントとサーバ間で受け渡すのはXMLでなくJSONが一般的に向いています。今回もJSONを使用します。

 買い物かごは、ワインを追加したり、削除したり、本数を変更したりすること、また特に複雑な処理ではないことを考えるとAtomを利用したRESTを利用した方が無難だと考えられます。皆さんが利用されているAtomとは少し違った使い方をしています。この方法については次回紹介します。

 送料と合計金額は、買い物かごのデータを使用して計算します。この計算は買い物かごのデータを使用した方が簡単に思われます。次々回では、再度JSONを使用して、これを実装します。ただし、プロパティをコンポーネントの外部から取り込みタイムセールスなどの値を入れ、計算した結果をWebサービスとして公開するように変更します。しかも、そのコンポーネントを別のマシンで実行させるよう変更することがいかに簡単であるかを説明します。

次のページ
トスカーナワイン店着工

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

  • 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」など、さまざまなカンファレンスを企画・運営しています。

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

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

メールバックナンバー

アクセスランキング

アクセスランキング