« SOAから学ぶアプリケーションレイヤーの統合 | メイン | パターン化は世界を狭くし、そして爆発的に広げる »

アジャイル・エンタープライズ・アーキテクチャ

 アジャイルというと方法論や組織論の話が主題です。ですが、本当にアジャイルを実現するためにはアジャイルなアプリケーション・アーキテクチャというのも求められるはずです。「アジャイル・エンタープライズ・アーキテクチャ」というのは、ビジネスの要求に応じて俊敏に変化することを目的としたアーキテクチャです。エンタープライズ・アーキテクチャというぐらいなので、企業における業務アプリケーションを対象とします。


 このメインストリームはSOAです。しかし、SOAは驚くほど普及していません。これは"SOA的発想"というのがエンジニアに根付いていないからだと考えています。ご存知のとおりSOAはEDIの発展系です。そのため重量級のイメージが強く、ただのデータ連携という発想から抜け出せていません。データ連携とコンポーネント・コンポジションには巨大なキャズムがあるという印象です。

 そこで、僕としては手元(アプリケーション)の内部からSOA的発想を入れ込んで行き、少しずつスタディするのが当面の目標になります。具体的には先日のSOAから学ぶアプリケーションレイヤーの統合で書いたESBをアプリケーション内で利用していくところから手をつけます。

 ESB製品としてはServiceMixを考えています。ServiceMixについては1年ぐらい前に使いました(まとめページはこちら)。
 ServiceMixはSpringと統合されており柔軟に導入が可能です。クライアントから呼び出されるコンポーネントのうち、いくつかをESB越しで処理させればよいでしょう。すぐに思いつくのは複数のデータ検索処理です。それらを非同期で実行することでトータルの処理時間を高速化させることができるはずです。

 ちなみに非同期処理実行はAjaxで積極的に利用されている手法です。エンタープライズよりのアプリよりも、よっぽどAjaxのほうが非同期処理をうまく使っているのではないでしょうか。非同期処理を勉強したいならAjaxをオススメします。


 僕の中ではスクリプト言語とSOAは一直線につながっています。企業システムの基本は、1.情報をメッセージ化し、2.メッセージを流通させ、3.加工する(と、その逆の流れ)ことです。こう解けば、それぞれは1.コンポーネント(Java)、2.SOA、3.スクリプト言語が得意とする領域です。いわゆるマルチレイヤー(プレゼンテーション、ビジネスロジック、パーシステンスとか)とは異なりますが、ユーザー機能ではなく、情報からみた機能という点ではアリなのかなと思います。

 あ、難しいこと言っているように聞こえます?でも、これってAjaxのマッシュアップと同じことだと思います。1.WebAPI、2.XHR、3.JavaScriptですね。しかも非同期処理まで実現されています。なかなか凄いことではないですかね。Ajaxをリッチクライアントと考えるのではなく、アーキテクチャとしてみることで多くのことを学ぶことができます。


 また、ハードウェア、ミドルウェアについても積極的に利用していこうと思います。並列処理性能という点では、チップ、OS、Apache、データベースなどはかなりのレベルにあります。これらを使い倒すことでアプリケーション性能に大きな効果を挙げられるものと思っています。


 このブログでも少しずつ書いてきますし、雑誌や講演の機会があれば紹介していきたいと思います。

トラックバック

このエントリーのトラックバックURL:
http://www.arclamp.jp/mt33/mt-tracback.cgi/1929

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2007年03月28日 17:02に投稿されたエントリーのページです。

ひとつ前の投稿は「SOAから学ぶアプリケーションレイヤーの統合」です。

次の投稿は「パターン化は世界を狭くし、そして爆発的に広げる」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Creative Commons License
このブログは、次のライセンスで保護されています。 クリエイティブ・コモンズ・ライセンス.
Powered by
Movable Type