川久保 智晴 [著] 2009/12/18 14:00

サンプルコード 19.30 KB

 SOAは混沌とした段階から、JBI準拠製品、SCA準拠製品が開発されるに至り、エンタープライズレベルまで進化してきました。この連載では、 オープンソースのSCA準拠製品である「Tuscany」を使ったSOAの開発について説明していきます。第7回目の今回は、買い物かごの合計金額と送料を計算するコンポーネント「CalcCharge」の実装をJavaからJRubyに書き換えます。

1 2 →

はじめに

 この連載では、「オープンソースApache Tuscanyで楽しむSOA」として、オープンソースのSCA準拠製品である「Apache Tuscany」を取り上げ、SOA(サービス指向アーキテクチャ)の開発について説明していきたいと思います。第7回目の今回は、サービスの実装に他の言語を使用する方法を説明します。

これまでの連載

Rubyを簡単にサービス化

 前回まではJSONRPC、Atom、Webサービスなど通信プロトコルがサービスの実装から独立していること(プロトコル中立)を説明してきました。これだけでも非常にインパクトのあることです。今回はサービスの実装に他の言語を使用する方法を説明します。

 TuscanyはJRuby、Jython、Groovyなどのスクリプト言語をはじめ、XSLTやXQueryも使用可能です(言語中立)。JRuby以外は趣味でプログラミングの経験があり、ある程度は知っているのですが、今回は言語の紹介が目的ではないため、あえて何も知らないJRubyで挑戦したいと考えています。目標は、CalcChargeImpl以外のインターフェースや実装には一切手を加えず、CalcChargeImplをJavaからJRubyに切り替えることです。

 個人的な希望ですが、Scalaこそコンポーネントを作成するのに向いている言語なのではと考えています。早くScalaがTuscanyでサポートされることを願っています。もしくはどなたかTuscanyで言語をサポートする仕方を教えていただければ、私自身でScalaをTuscanyでサポートしたいとも考えています。他人に頼るなという声も聞こえてきそうなので、言語のサポートの仕方を調査し、いずれ報告できればと思います。

戻り値だけは要注意

 JRubyでサービスを実装すると言っても、前回までで説明したとおりコードの中にプロトコルに関する実装を記述する必要がないのと同様、Tuscanyのための実装やプロトコルに関する実装を記述する必要はありません。従って、Javaの代りにJRubyで記述するという違いだけです。ただし、インターフェースをJavaで記述する場合、JRubyはインターフェースの戻り値と同じになるよう注意する必要があります。

 第1回「Apache Tuscanyの紹介」では依存性注入で他の言語を使用すると記述しましたが、Tuscanyの1.5ではその必要さえありません(内部では使用しているのかもしれませんが、開発者には意識させないようになりました)。CalcChargeを呼び出すBasketImplでReferenceアノテーションを使うだけでCalcChargeを実装したコンポーネントを呼び出すことができます。以前のバージョンでは、依存性注入でJRubyやGroovyを呼び出さなくてはならなかったことを考えると非常にシンプルになりました。最初はCalcChargeのsetterメソッドをBasketImplに追加して動作させていたのですが、これでは当初の目標を達成できません。試しに、前回のコードに戻したところ、正常にCalcChargeを呼び出すことができました。これで、呼び出される言語(JRuby)に応じて呼び出し側の実装(Java)に手を加えなくても大丈夫になったわけです。


1 2
→
INDEX
オープンソースApache Tuscanyで楽しむSOA 第7回「JRubyをサービス化しましょう」
Page1
はじめに
Rubyを簡単にサービス化
JavaからJRubyへの置き換え手順
プロフィール
川久保 智晴 カワクボ トモハル

COBOLで13年、Javaを中心としたWeb開発で11年。2つしか言語知らないのかというとそうでもなく、sed/awk、Perl、Pythonなども一時期は業務で使えるレベルまで達したと思っています(自己申告)。

最近はプロジェクトマネージャやソフトウェアアーキテクトという一見相容れない仕事を繰り返してきましたが、実は両者の技術は密接に絡んでいるというのが最近考えていることです。プロジェクトマネージャがあまりにも技術に疎かったり、ソフトウェアアーキテクトがあまりにもコストに鈍感であったりするのを見るにつけ思いが深まっています。

そういう会社員生活も2010年10月でピリオドを打ち、長年構想中のビジネスモデルをシステム化するために独立。2年後のビジネス化を目指しています。それまでの2年間はJavaを含めたプログラミング教室(http://www.programclass.com)で食いつなぐつもりです。2010年末時点で20名のJava教室の生徒さんがいます。Skypeを使っているので全国から問い合わせがあります。まだまだ募集していますので、気軽にメールを頂ければと思います。

以前はお酒が大好きでいろんなところに出没していましたが、今はおとなしく家飲みに徹しています。土日は20キロ近くジョギングしたりして爽やかなIT起業家となり雇用の創出に貢献できればと思っています。


記事へのコメント・トラックバック機能は2011年6月に廃止させていただきました。記事に対する反響はTwitterやFacebook、ソーシャルブックマークサービスのコメントなどでぜひお寄せください。

スポンサーサイト