Main

SOA Archives

2006年08月31日

Eclipse STP(SOA Tools Platform Project)のアップデート

SearchWebServices.comのWeb Services Newsの中でアイオナのCTOのEric NewcomerがEclipse STP(SOA Tools Platform Project)の状況をインタビューに答えている記事がありますので、ご紹介します。なお、記事は2つのパートに分かれていて、後半はこちらです。

STPは、2005年12月にアイオナの提案を承認して、Eclipseで9つ目のトッププロジェクトとなりました。SOAに関するツールの機能(サービス生成、設計、コンフィグレーション、組み立て、デプロイ、監視、管理)を実現するためのフレームワークを開発するもので、各社がバラバラに異なるインタフェースでバラバラなSOAツールを提供するようなことを避けるために、このフレームワークをベンダー各社が利用して各社のツールを開発することを見込んでいます。

SCA(Service Component Architecture)は、2005年11月にIBMを中心に8社が参加して、SOAでのサービスのInvokeのAPIを標準として規定しようというコミュニティで、2006年7月にアップデートがあり、合計で17社が参加して、バージョン1.0の仕様を策定中です。SCAはSDO(Service Data Objects)といっしょになって、Open Service Oriented Architecture(OSOA)として、コミュニティを作っています。アイオナが、SCA(現在のOSOA)に参加したきっかけはSTPであり、現在のSTPのコアはSCAの仕様をサポートすることを一番の優先度で作業中です。

STPについては、来週行われるEclipseWorldでセッションを行う予定ですが、現状はEclipseの各プロジェクトからのパーツをインテグレーションしている段階です。Eclipseには、Web Tools Project、Data Tools ProjectやTest and Performance Tools Platform Projectなどが進行しており、それらのプロジェクトの成果を流用するものです。

上記のようにSCAをサポートすることに注力しており、まずはJAX-WSベースで実装しています。これは、最初のプラットフォームのサポートであり、今後、各種プラットフォームをサポートして行く予定です。現在のソースコードのコントリビュータはIBM、Sybaseとアイオナですが、BEA、IntalioとObjectWebからもプロジェクトに参加しています。

STPはサブプロジェクトに分かれており、コア・フレームワーク・サブプロジェクトはSCAのコンポーネント型をサポートします。SOAシステム・サブプロジェクトは、サービスの組み立て、パッケージングと配置を行います。また、サービス生成サブプロジェクトがサービスの生成を担当します。

2007年のEclipseのメジャーなリリースがSTPのリリースの目標ですが、今年の末には途中経過のリリースを予定しています。

江川

2006年09月01日

テレコム業界でのSOA標準-MTOSI

テレコム業界向けのシステムは、OSS(Operation Support System)と呼ばれる電話やブロードバンドなどのテレコムの各種サービスを提供するためにネットワークを運営するのに必要なシステムやBSS(Business Support System)と呼ばれるビジネス寄りの受注や課金といった機能のシステムで構成されています。

また、テレコムのネットワークは物理的なネットワークを構成するNE(Network Element)と呼ばれる交換機や伝送装置とそれらを管理するEMS(Element Management System)と呼ばれるレイヤー、さらに、その上位で回線などのエンドとエンドを構成するNMS(Network Management System)のレイヤーがあります。また、IP電話やビデオ、ブロードバンドによるデータサービスなどのサービスを管理するためにSMS(Service Management System)のレイヤーがあります。つまり、物理的なネットワークから上位レイヤーへ向けて抽象化度を上げながらシステムを構成し、マーケットへテレコムのサービスを提供していくのが、全体の構図です。

NEについても、いろいろなベンダーがいろいろな装置を提供しますし、その上で作られるEMSやNMSも各社が独自に開発すればそれぞれがまったく異なる考え方に基づいていたりします。さらに、パッケージ製品として、たとえば、NEをベースとするネットワーク上のリソースを管理するインベントリ・システム(ネットワーク要素の在庫管理)やネットワーク上の障害の情報を収集して分析する障害監視システムなどの機能をもつ製品は、それぞれに独自のデータベース構造で設計されています。

これらの異機種混合の複雑なシステムをインテグレーションしなければ効率の高いサービスは構築することができません。さらに、このインテグレーションした基盤の上に、新しいサービスを提供するための機能を迅速に開発し、運用しなければなりません。これは、まさに、SOAが目指すシステムの在り様です。しかし、これだけ、多くのソリューション・プロバイダーが密接に絡む場合には標準化が絶対的に必要です。テレコムではNEをはじめ、古くから標準化が進められており、OSSのインテグレーションでもCORBAを大々的に利用していきました。

システム・インテグレーションの標準ひとつがTMF(Telemanagement Forum)が規定して、最近、ITU-TへサブミットされたMTNM(Multi-Technology Network Management)と呼ばれるTMF814ドキュメントを中心としたインタフェースです。このインタフェースは、NMSのレイヤーで適用されるCORBAベースのインタフェースになります。一方、商用パッケージ製品のように、すでに、システムと完成しているOS(Operations System)を連携するには、MTNMはFine Grainすぎます。より抽象化された疎結合のインタフェースが必要となります。これに対して登場するのがMTOSI(Multi-Technology Operations System Interface)です。MTOSIはWebサービス(SOAP)をベースとしたインタフェースを規定しています。

MTOSIは、その考え方と実装ともにSOAに基づいていると言えます。インタフェースとしてサービスを規定し、Webサービスの疎結合のインタフェースで実装することで、従来は難しいとされたOS間の連携を現在から将来へかけて効率化していくものとなります。

アイオナでは、TMFのCatalystの活動の中でMTOSIへの適用を実証しており、商用でも、適用事例があります。また、アイオナのArtixはCORBAをネイティブに連携しますので、テレコムのシステムの中でもっとも広まっていると言われているMTNMを完全にサポートし、さらに、MTOSIによるインテグレーションにシームレスに展開することができます。さらに、これらのインテグレーションを実践するデモシステムとして、MTOSI Tool KitIONA Microsoft Telecom Tool Kitを公開しています。

江川

Continue reading "テレコム業界でのSOA標準-MTOSI" »

2006年09月18日

Open SOA(OSOA)でサポーターを募集中!

Open SOA(OSOA)のサイトはご存知でしょうか?

2005年11月30日にIBM、BEA、IONA、Oracle、SAP、SYBASEなどが共同で発表したSCA(Service Component Architecture)と、その以前から活動のあったSDO(Service Data Objects)のコミュニティのサイトが、OSOAです。当初はバージョン0.9の仕様が公開されましたが、現在は、バージョン0.95へアップデートされています。おそらく、今年の末くらいまでには、バージョン1.0となり、標準化団体への標準化の提案をすることになると思います。

同じくOSOAは、2006年7月に、SUN、TIBCO、Progress Software(ソニックソフトウェア)、RedHat、CapeClearなどが参加して、合計で17社が参加するコミュニティとなりました。日本でも、2005年11月の発表を受けて、コラボレーション・チームというのを作っています。今年の8月に勉強会を開催した以外は特に活動はしていませんが、本家の方の活動でイベントがあれば日本でも対応するかもしれません。

このOSOAでサポーター・プログラムが発表されています。SCAの仕様検討は、Assembly Model、Policy&Binding、Client Implementationの3つのワーキンググループで進んでいますが、このような仕様検討には参加せずに、サポーターは、OSAOのメンバーサイトにアクセスでき、メイリングリストに参加し、詳細な情報を入手できる立場となります。その換わりに、仕様に対する市場からのフィードバックをコミュニティへ返して欲しいというものです。

サポータープログラムには、こちらからメイルを送信していただき、ロゴやURLを登録することが必要なようです。特に負担はないと思いますので、日本の国産ベンダーさんにも参加していただければと考えております。

江川

2006年09月25日

ハブ・アンド・スポークからの変化 - 航空機市場

2006年9月24日の日経新聞に「航空機市場の拡大」という記事が載っていました。ここで、CORBAがボーイング社のシステムで使われているということをお話したいわけではありません。中小型機の売り上げが伸びているという話題です。

航空機の大手2社(米ボーイング社と欧州エアバス社)の2005年の受注数は、2004年の3倍となっています。その中で、中小型機で、たとえば、ボーイングのB787やB737の受注が伸びており、一方、大型機の需要が伸び悩んでいます。この状況のひとつ目の理由は、格安航空会社の伸びです。コストを削減するために小型の同一機種を大量に運行させること、需要に柔軟に対応できるからです。二つ目の理由を引用すると次のようになります。

航空会社のニーズの変化があります。従来は大規模な空港を拠点(ハブ)とし、ハブ空港を経由して他の都市に向かう「ハブ・アンド・スポーク」の運航が中心でした。しかし、最近利便性を求める顧客の声を受けて、できるだけ多くの都市間を直行便で結ぼうとする動きが広がっています。
経済発展に伴って途上国間を移動する旅客数が急速に増大していますが、これまでのように先進国のハブ空港経由では時間がかかりすぎ、客を逃してしまいます。特にインドと中国で旅客需要が急増していまっす。こうしたことが中型機B787の人気を高める要因となっています。
非常に似た状況が、ITのインテグレーションの現場でも起きています。従来のEAI(Enterprise Application Integration)の製品は、「ハブ・アンド・スポーク」アーキテクチャで企業内のすべてのインテグレーションの需要をまかなうとしてきましたが、それが不可能であることがわかってきています。ハブがボトルネックとなり、性能だけでなく、開発や維持のためのコストの増加の問題や変化へ対応するためのオーバヘッドの大きさのために企業は「ハブ・アンド・スポーク」のアーキテクチャを維持することに負担を感じています。

インテグレーションの需要は、トップダウンで発生するものではなく、ボトムアップでエンドポイントから発生します。つまり、ハブではインテグレーションの市場を制御することはできないということです。エンドポイントの重要性を再認識し、いかに、エンドポイント同士を有効に連携するかを決めるのが、ESB(Enterprise Service Bus)のアーキテクチャです。

江川

2006年09月26日

Java EEはSOAの世界には通用しない?

少し以前(2006年7月10日付け)のSearchWebService.comの記事ですが、原題は、

Analysts see Java EE dying in an SOA world
です。詳しくは原文を参照していただければよろしいかと思いますが、アナリストは、Burton GroupとZapThinkの2名で、それぞれが、Java EE(Java Platform, Enterprise Edition)のSOAへの適合性についてコメントをしています。

記事の概要は次のようになります。(正確には原文をご覧ください)
JEE5になって益々複雑さを益して、エンタープライズでの開発プラットフォームとして適合できなくなってきている。CORBAと同じ運命をたどる。ただし、Java言語自体は今後も使われていくだろう。
JavaEEも、これまでバージョンを重ねてきて、その度に複雑さを益し、自身の重みに耐えられなくなってきている。
JavaEEは、基本的にSOA環境のために開発されたものではない。現在、SOA環境の実装の多くはJ2EEベースであるが、Javaには、オブジェクト指向、VMベースやn-Tierアーキテクチャ指向などの特徴があり、これらは理想的にはSOAプラットフォームには適さない。
VMはコードのポータビリティのための仕組みであり、SOAがコントラクトによるメッセージング交換を主体としているのに対して、分散環境でのVMアーキテクチャはリモート・プロシジャー・コールを前提としている。
JavaEEの主要な利点はプログラミングモデルの共通化であるが、コミュニケーションでデータを交換するSOAではプログラミングモデルの共通化は最重要の課題ではない。
JavaEEは、スケーラブルなn-Tierアーキテクチャであり、プラットフォームに依存するサービスの開発には適するが、サービスを公開する抽象化Layerを必要とするエンタープライズ向けのSOAプラットフォームには適さない。

すべてを、そのまま受け取ることもできないのですが、私の意見としては、ひとつは、JavaEEはアプリケーションを開発するためのプラットフォームであり、エンタープライズ全体のインフラを支える基盤としては重過ぎるということと二つ目は、SOAは抽象化度を上げていくのが、アーキテクチャの目標となるべき課題であり、抽象化度を上げるためにはLayered構造になっていることが必然であるとするとMVCモデルのようなTiered構造ではアプローチとして無理があるということです。ただし、SCA(Service Component Architecture)などの動向を見極める必要はあります。

江川

2006年09月29日

ユーザーはITプロフェッショナルであるべきか

日経ITproの記事で、ユーザーがSIerやITベンダーに過度に依存せずに自らITを理解して、ITプロフェショナルとして、情報システムを進化させていかなければならないのではないかという内容です。結論はユーザーがITプロフェショナルであるべきであるというものですが、詳しい内容はITproを参照してみてください。

この記事の中では、経営とITの融合、ビジネスとITの融合とユーザーという言葉は使っていませんが、ユーザー側がいかにITと意味のある関係を作るかということでは、ユーザーがITプロフェショナルであるべきかという課題と同じ筋の問題だと思います。経営とITの融合では、KIU研究会(経営のKとITのIと融合のU)という集まりがあり、ITメディアのアジャイル・エンタープライズというサイトで、結構、いろいろなところから人を集めてBPM(ビジネス・プロセス・マネージメント)について議論をしています。このKIU研究会に関連する団体として、日本BPM協会があります。

ここではBPMを媒体としたユーザー側とITの融合ということではなく、もっと、本質的なユーザーがITにどれくらい関心をもち、そのような戦略で投資するかという問題です。記事の中で欧米のユーザー企業は数千人のIT要員を抱えているということが記載されています。それとは直接関係はありませんが、あるヨーロッパの企業の情報システム関係の要素は次のようになります。

40Mラインのコアシステム
150以上のC/Sアプリケーション
150以上の同時進行のプロジェクト
25,000台のワークステーション
2,000台のサーバ
1日に1800万のIMSトランザクション
2,000MIPS以上のメインフレーム
500TBディスク
99%以上の可用性
約3,000名の要員

要員とはEmployeeという表現ですので従業員のことになります。ITが要となる業種ですので力の入り具合が違うということはありますが、自らの懐の中にこれだけの要員を抱える必要性があると思っているわけです。

世の中には多様なユーザーの要件があり、それらを、そのまま、すべて、ITの力でカバーすることはできません。その結果としてユーザーは常にITの結果に満足することができすに欲求不満のままとなります。経営とITの融合でも、ツールやインタフェースの進歩が必要ですが、本質的には経営(ユーザー)がITを理解して歩み寄らないとうまく行かないと思います。

江川

2006年10月02日

SOAをたとえて言うと?-SOAでないもの?

ヘッドラインを見ていたらIBMのSOAポータルに「SOAをたとえて言うと、SOAの類似、SOAをなじみの表現で」というPDFファイルがありました。ゴルフのクラブ、洋服ダンス、サッカーチームの戦略、コンポーネントステレオなどの組み合わせに関する示唆です。内容についてコメントは避けておきます。(いろいろな表現の仕方があるものだと感心したことは確かです。)

SOAを何とか理解するために、いろいろな説明をしなければならないのですが、一貫性ということも重要なポイントではないかと思います。SOAのたとえとは観点も言い方も違いますが、「What SOA isn't ?(SOAでないもの?)」というタイトルで、2004年の夏ごろ(だったと思います)にアイオナのSteve Vinoskiが表現した言い方があります。「SOAをたとえて…」を見て思い出したのでご紹介します。


What SOA isn't

Summon Our Architecture : SOAは貧弱な設計のシステムを魔法を使って簡単に生き返らせるようなものではない。

State Of the Art : SOAはなにも目新しい考え方ではない。ただ、今のサービス指向はメッセージングに焦点を当てていることが重要である。

Same On All, or Scrap Old Applications : SOAはこれまでの独自開発のシステムをなんでも連携しなければならないということではない。しかし、企業の中の異機種混合状態の改善をサポートする。

Services On Appservers : サービスはメッセージを中心に考えるべきものであり、実装方法やバックエンドの構築の議論からはじめるべきではない。

SOAP-Only Applications : SOAPはサービス指向を促進してきたし、中心的な技術にはなっているが、さらに、WSDLはマルチ・プロトコル上のサービスの抽象化を定義できる。これによってレガシーシステムと連携が可能となる。

Stateless and Only Asynchronous : ステートレスな非同期サービスのスケーラビリティは期待できるが、ステートフルな同期サービスも多くのケースで必要となる。

Standards Of Age : サービス指向の標準化は進んでいないが、幸いにもWS-* に関わるベンダはたくさんいる。

Service-Oriented Architecture : 厳密に言えば、そこにはアーキテクチャは存在しない。いわば、サービス指向アプローチである。


最後の一行は皮肉がだいぶ入っていますが、示唆に富んだ表現と思います。SOAについてはビジネスとITの融合という観点もあり、Vinoskiの言うSOAは、SOAを支える基盤に焦点を当てています。これがSOAだと言っていないところが、2年前の苦しい状況を表していると思います。「これがSOAだ!」は今後明らかにしていきたいと思います;-)

江川

2006年10月20日

Toward Intergation - Enterprise Integration with Ruby

アイオナの本社にSteve Vinoskiというプリンシパル・エンジニアというような肩書きの人がいて、昔からIEEE Computing(IEEEの情報誌)にコラムを書いています。彼は、Michi Henningといっしょに名著と言われる”Advanced CORBA Programming with C++”を書いた人です。彼のコラムを翻訳してThinkITに掲載していますが、今回は、Maik Schmidtの書いた”Enterprise Integration with Ruby”の評価を5月にIEEE Computingに掲載したものを翻訳しました。

Rubyは、流行ではありますが、Steveはインテグレーションについてはかなりの経験がありますので、多少、含蓄ある内容っとなっています。ご関心のある方はご覧いただければ幸いです。ThinkITの記事はこちらです。なお、原文はこちらです。

江川

2006年10月23日

SOAバブルの必要性(2)

IONA MOTIONというメルマガを出しているのですが、今年の7月に「SOAバブルが必要」というようなことを書きました。SIerも含めて業界の中に、SOAに興味はあるけど懐疑的であると思われているような印象がどうしてもぬぐえなかったので、乱暴ではありますが、ある程度、盲目的にSOAにアプローチするようなSOAバブルが必要ではないかということを書きました。ITバブルの崩壊の後、その結果として新たなイノベーションの可能性は見え隠れするようにはなってきたし、株価もそれを反映しているわけですから、これはバブルの賜物ではないかと思ったからです。

少し前になりますが、ITコーディネータ協会のセミナーで経済学者の伊藤元重氏の「日本経済とIT経営」という講演を聴きました。氏はテレビのニュース番組にも出演されるような有名な方ですが、この講演の前半の中にバブルのお話があり興味深く拝聴しました。

PER(Price Earnings Ratio)は株価と企業の収益力を比較することによって株式の投資価値を判断する際に利用される尺度であり、”PER=株価/一株あたりの利益”で計算されます。つまり、株価が高くなれば値は大きくなり、収益が落ちても値は大きくなります。これが、バブルを表す指標といえます。アメリカの株式市場のPERの推移の中で2回のピークがあります。1回目が1929年の世界大恐慌の直前のバブルで自動車バブルと呼ばれたそうです。一世帯に一台の車が利用されて自動車が社内を変えるという期待があったのでしょう。

2回目が、2001年のITバブルです。自動車バブルよりこちらのピークの方が高くなっています。収益の実績もないのに株価ばかりが高騰したときです。ITバブルの崩壊後、ITのイノベーションは着実に進んでいるのかもしれません。その中にあるのがSOAではないかと思うのですが。

人々がイノベーションを期待してバブルが発生します。産業革命後に真のイノベーションを生んだのは鉄道であると言われています。19世紀には鉄道バブルがあり、20世紀のはじめには放送が社会を変えると期待した放送バブルがあったそうです。そして、自動車バブルとITバブルです。バブルの際には、その後のイノベーションの素になる投資が行われたことになるのですが、バブル崩壊後にイノベーションの結果が見えてくるには時間がかかりました。

SOAはサービス化した資産を継続的に利用するアプローチであり、求めるべき究極の結果が現れるまでに時間がかかります。ビジネスの変化に強い、生産性の高い基盤が充実するときに、その上でイノベーションが起きると考えています。つまり、この結果を導くには、歴史的にSOAバブルが必要なのです。

伊藤元重氏のお話の内容は、こんなところにありましたので、ご参照ください。

江川

2006年11月07日

SOAを物語で理解する?

日経コンピュータが創刊25周年となったそうです。私の業界年齢も27歳(これからこの歳を言うことにしましょうか)なので、日経コンピュータとともにあったかもしれません。実際には、最初の5年くらいは読み続けていました。この日経コンピュータの25周年記念のセミナーが「ITがもたらすビジネス・イノベーション」と称して行われました。基調講演は、大前研一さんで、お話しのポイントのひとつは右脳でした。大前さんのお話しの背景は、最近、翻訳されたダニエル・ピンクの「ハイコンセプト」という本で、実際は、この本の宣伝もかねていたようです。

MBA取得するようなロジカルな人は左脳を酷使してきましたが、ロジカルな思考は、部分的とは言え、コンピュータに置き換えることができます。あるいは、ロジカルな思考をベースにしたサービスで、定型的であったり、複雑ではない場合は、世界のフラット化によってBRICsにとって代わられるというのが、先進国の懸念です。そこで、「ハイコンセプト」で言われているのが、直感、デザインのセンス、従来と違う発想などの右脳によるアプトプットの新しい価値が普遍的なものとして築かれてきているということです。

確かに、最近は、優秀なロジックを持ってしても、すぐ先のビジネスの結果を予想することが難しくなっています。「予想できない世の中」とか言われますが、このようなときには、直感による判断が不可欠であす。実際に、なんらかの決断をする際にも熟慮の末に直感で決めることも多いかと思います。また、同様に、難しいことを理解する上でも、直感が必要であると言っています。「ハイコンセプト」では、”物語”によって物事を理解したり、覚えていたりすることが有効であると指摘しています。実際に、イソップ物語やギリシャ神話、日本昔話でも、物語にすることで物事の本質を理解することが行われてきました。

やっと、SOAに結びつきますが、「ハイコンセプト」にしたがって、SOAやESBを理解する上で物語も有効なのではないかと考えて、物語”風”にシチュエーションを作ってみました。これで、なにを理解していただけるかは、自信はないですが、今後、もっと、直感的に理解できる物語を考えていきたいと思います。


物語 - いつもの風景

Sinario1-1.gif

上司:BPRもできたし、BPMツールも導入したから私たちでもビジネス・プロセスを設計できるようになるんだよね。
部下:ええ。でも、そんなに今まで違わないように思うのですが?


Sinario1-2.gif

上司:なんだ、すべてのタスクに人が介在しなければならないのか?これでは効率化にならないではないか!
部下:タスクが自動的に既存のアプリケーションと連携してプロセスを進めないといけないんです。


Senario2-1.gif

上司:何で連携の仕方がバラバラなんだ。それに、まだ、コストのかかるEAIなんかを使っているのだ?
部下:部門毎にシステムの設計が違うのです。
上司:違うのはいいとしても、安く早く確実に連携できるのか?
部下:だぶん、ベンダに聞いてみないとわからないのではないでしょうか。


Senario2-2.gif

上司:いちいちシステム毎に検討会議が必要のか?いつになったらできるんだ?
部下:まだ、見積もりが出ていないですから予算内にできるかどうかもわかりません。
上司:なんだ、この見積もりは、既存のアプリケーションを呼び出すだけで1億もかかるのか?
部下:いままでと変わりませんが…


Senario3-1.gif

部下:SOAを導入しましょう。
上司:えっ!まだ、検討中じゃないか?全体最適化はまだできないぞ。
部下:製品によっては安くスモールスタートができるんです。しかも、そのまま全体へ拡張できます。
上司:確かにビジネス・プロセスを自動するためには部門を超えた共通の連携の仕組みがないとBPMなんぞはやってられないな!
部下:その前にアプリケーションを抽出してラッピングしてサービス化する必要があります。
上司:そうだな。SOA導入に向けて統一した検討と運用の体制を作ろう。
部下:それと、まだ、人が判断しなければならない問題が多くあるのですが、ルール化を考えたいのですが?
上司:サービス化にルール化か!?


Senario4-1.gif

上司:SOAの小さいのができたじゃないか。
部下:しかも、既存のミドルウェアの資産を活かして新しい技術で連携できるので、余計なミドルウェアを導入しなくて済むんです。
上司:BPMにビジネス・ルールの判断のできる仕組みを埋め込んだのか?
部下:いままで人が判断していた商品の提案をBRMSで自動的に決定できます。ルールはサービスとしても作れますのでBPM以外からも利用できます。
上司:そうか。ということはSOAを考える上では、ビジネス・ルールのシステム化も同時に進められるのだな。


ちょっと、やらせっぽいので、今後は改善します。

江川


2006年12月25日

もの・こと分析とSOA

今年、富士通さんが、SOA基盤のミドルウェアとしてInterstageでESBを発表されたときに、「もの・こと分析」によるSOAの構築のコンサルテーションを提唱されていました。物事の本質を見極めるという興味深い考え方ですが、12月22日(金)に同じく富士通さんの「10年使える業務アプリケーション基盤」というセミナーがあったので、関連するかと思い参加しました。しかし、こちらは製品のバージョンの上位互換を保ったアプリケーションの移行に関する違うものでした。

もの・こと分析をよくお話しになっていたのはKDDIのCIOの繁野氏ですが、概念モデルの構築というなかなか難しいお話です。もの・こと分析を提唱されている中村善太郎氏の著書で「もの・こと分析で成功するシンプルな仕事の構想法」(日刊工業新聞社)には少し具体的な例があります。私は分かりやすかったのは、トイレットペーパーの交換に例です。

ロール紙をペーパーホルダーに入れ替えるには、ペーパーホルダを外して、古いロール紙の芯を取り除いて、新しいロール紙をペーパーホルダに取り付けます。ペーパーホルダに芯を合わせなければなりません。

monokoto1.gif

これが、もの・こと分析で、本質を考えた場合は、ペーパーホルダが、支えの部分が前後に動く形でロール紙を確保するもので、ロール紙の入れ替えは2アクションで済むことになります。


monokoto2.gif


言い換えれば物事の本質は限られた部分にあり、その本質を有効に利用することで、現実的で、著しい効果があるということを言っていると思っています。これが、SOAの考え方にも反映できます。たとえば、ヨーロッパの金融サービス会社のCredit Suisseでは、SOA1.0 とも呼ばれるCORBAによるSOA基盤を構築していますが、コングロマリットである同社のM&Aに際して、勘定系などの基幹システムを統合するためにSOAを適用しています。

イメージ的にはCORBAのバスを境に、下層に基幹DBとして変化の少ないレガシーなメインフレームを統合して配置し、上層はJ2EEなどの新しくてオープンな技術で、オンラインバンキングなどのビジネス価値を追求するような変化の大きなシステム群を時間をかけずに構築していることがわかります。

つまり、ESBを境に下層を変化の少ないもの、上層を変化の大きいものとして、下層の機能をサービス化し、上層で利用するという2層化したシステム構築とも考えられます。マルチチャネルなども同様です。下層にコンテンツがあるとサービスを介して、携帯、PC、インターネット、B2B、パートナリングなどの多様なチャネルに対応できるような構造を作ることができます。

monokoto3.gif

SOAはレイヤ化のアーキテクチャに親和性があります。ESBを境にして、レイヤを2つに分けるという発想はシステムを設計する上で共通に配慮すべきことかもしれません。

江川

2007年01月01日

Ruby Extension - テクノロジーとブレークスルー

Steve VinoskiのIEEE Internet Computingのコラムを翻訳して、ThinkITに掲載されました。前回のRubyをエンタープライズで使うにはどうしたらいいかという話題に引き続き、Rubyをレガシーが技術と連携する場合のケーススタディをテーマとしています。

1993年に生まれたRubyも10年以上、経過しています。その間に多くの拡張が加えられて、現在のような話題の中心にあるのですが、”銀の弾丸”にはならないにしても、ブレークスルーを起こすには、既成の考え方の枠を超える必要があります。Rubyはエンタープライズでは使えないという意見もあると思いますが、Steveはアグレッシブに取り組んでいます。もちろん、Steveは、生粋のエンジニアですので、現実と現実でないことの見分けをつけることができます。

できて当たり前のことができてもお金をいただくことはできません。ソフトウェアの業界は、どんどん、そんな方向へ向うと思います。オープンソースやSaaSなどの流れでしょうか。テクノロジーは、正しかろうが、間違っていようが、選択と積み重ねです。まずは、選択することが重要だと思います。

江川

2007年05月04日

AMQPの概要

2006年6月にAMQP(Advanced Message Queuing Protocol)の標準化のグループの発表がありました。その際に内容を発表していますが、AMQPのサイトに概要の説明がありましたので、翻訳をしました。もちろん、正式な翻訳ではありません。内容については原文を確認してください。AMQPは非常にユニークなアプローチだと思います。また、アイオナでは、AMQPを実装したオプションをCeltix Advanced Messagingとして発表しています。


AMQPとは?

AMQPはメッセージング・ミドルウェアのオーブンな標準です。
ミドルウェアとは、他のソフトウェアに接続するためのソフトウェアです。また、企業内と企業の外部のシステムの両方に対して、システム化された孤島同士を連携するものです。
AMQPの標準に従えば、異なるプラットフォームの異なる言語で書かれたミドルウェア製品は、その他のミドルウェア製品との間でメッセージを送ることができなければなりません。AMQPは、企業内、および、企業間でメッセージとビジネス上の価値を迅速に転送しなければならないという要件に対応するものです。


どうして注目に値するのでしょうか?

メッセージングとインテグレーションはすべての企業システムの一部として必要なものです。



ITによるシステム化の著しい努力には、すべて、メッセージングとインテグレーションを伴います。(プロジェクト費用の10%から30%)
ベンダー独自のミドルウェア製品は、ミドルウェアの選択上の品質とコストの両面の競争を阻害するロックインの根本原因となります。
相互運用性は必要です。しかし、簡単には実現できません。

通常のオープンなビジネス標準は理論的にはベンダー独自のテクノロジーを基にしないで、オープンな情報とビジネスのプロセスモデルとオープンなメッセージのフォーマットを利用しています。しかし、メッセージングのための適切なオープン・テクノロジーは実際には存在しません。

AMQPは、メッセージング・ミドルウェアのデファクトとなるオープン標準になることを目指しています。


AMQPはどのように他のミドルウェアの標準と異なるのでしょうか?

AMQPが他のミドルウェアの標準と異なる点は:





単純明快で、かつ、完成度の高いビジネス・メッセージングのソリューション
完全にオープン
ユーザとベンダーなどの技術担当者の共同作業の結果
現実の要件に対応
ひとつの仕様で、1対1のメッセージ転送とパブリッシュ/サブスクライブの型の両方を規定


AMQPは、ビジネス・アプリケーションが共有することのできる基本的なメッセージング・ミドルウェアを規定することを目指します。


どのようなAMQPの仕様が規定されていますか?

メッセージング・ミドルウェアの完全な相互運用を実現するために、AMQPではネットワーク・プロトコルとブローカーのサービスの動作の両方を規定しています。
AMQPは次のように構成されます。


“AMQPモデル”と呼ばれるメッセージング機能を定義。AMQPモデルは、ブローカーのサービス内のメッセージのルーティングや蓄積についての詳細な仕様で定義されたコンポーネントから構成されており、コンポーネント同士を結びつけるシンプルなルールを規定
ネットワークのワイヤーレベルのフォーマットによりクライントがブローカーと接続し、AMQPモデルにしたがった実装との通信が可能

これは、AMQP仕様によってサーバのセマンティクスの一部をそのまま実現することができることを意味しています。ただし、実際には明示的に実装することでプロトコルの理解を進めることができます。


なぜ、AMQPは開発されたのでしょうか?

ほとんどのネットワーク・プロトコルの方式では対応が可能とされていますが、メッセージを保証することが可能な共通に利用できるミドルウェアを考えると現実との隔たりがあります。ミドルウェアは利用価値の高いユーティリティです。中堅企業や大企業でのミッションクリティカルなITシステムをサポートし、ビジネスプロセスの自動化を支えるキーとなる役割を果たしています。

しかし、現在、JMSは解決策として一部しか対応していません。Javaの信頼性に制約があり、ワイヤーレベルの相互運用を規定することができません。どのようなソリューションが、この問題に対応するとしても、プラットフォームや言語に囚われずにオープンな方針の下で実現できることが重要です。

Advanced Message Queuing Protocol(AMQP)は、既存のシステムとのインテグレーションを行う新たな製品の基盤となり、さらに、JMSなどのAPIの相互運用を改善していくために利用できます。

AMQPは、JMS、SOAP、WS-Security、WS-Transactionなどのほとんどの既存のメッセージングやWebサービスの仕様を補完しながらいっしょに利用することができます。AMQPは、ネットワークを最適な状態で使えるため、あるいは、グリッド型の配置を可能とするためにマルチキャストによる双方向のルーティング機能を提供します。


AMQPモデル

相互運用のためには同じセマンティクスが必要であるので、AMQPモデルは、サーバのセマンティクスを明示的に定義します。また、コンポーネントのモジュールを特定し、これらのコンポーネントへの接続のための標準的なルールを規定します。

このモデルは次のような3つの主要なコンポーネントのタイプがあります。これらのコンポーネントは必要な機能を提供するプロセスの連鎖に組み込まれます。



“exchange”はパブリッシャであるアプリケーションからのメッセージを受信し、メッセージのプロパティや内容そのものから得られる排他制御の設定にしたがって、それらのメッセージを“message queue”へ転送します。
“message queue”は、利用者側のクライアント・アプリケーション(あるいは、複数のアプリケーション)が確実に処理できるまでメッセージを蓄積しています。
“binding”はmessage queueとexchangeとの間の関係を定義し、メッセージをルーティングする基準を規定します。

このモデルでは、ストアード/フォワード・キューやトピック購読の従来のミドルウェアの概念をエミュレートします。また、コンテンツ・ベース・ルーティング、メッセージ・キューの生成、随時利用のメッセージ・キューなどのちょっとした概念についても指定します。

大雑把な言い方をするとAMQPサーバはメイルサーバに類似しています。つまり、exchangeはメッセージ転送エイジェント(MTA)に、メッセージ・キューはメイルボックスということになります。bingingは転送エイジェントの中にルーティング・テーブルを定義します。パブリッシャは、それぞれの転送エイジェントにメッセージを転送し、メッセージはメイルボックスへルーティングされます。利用者はメッセージをメイルボックスから取り出します。これによって、強力で柔軟なモデルをシンプルに定義できます。


AMQPワイヤー・フォーマット

AMQPのワイヤー・フォーマットは、最新の特徴を備えたバイナリによるフレームです。これは、マルチ・チャネル対応可能、すでに協議済み、非同期対応、セキュリティ対応、移植可能、中立であり、効率的であるなどの特徴を備えています。

AMQPワイヤー・フォーマットは二つのレイヤに分かれます。機能レイヤとトランスポート・レイヤです。機能レイヤは、アプリケーションに代わって、その役目を果たすコマンド(各機能を論理的なクラスにグループ化したもの)の組み合わせとして定義されます。トランスポート・レイヤは、このようなメソッドをアプリケーションからサーバへ双方向で転送し、多重なチャネルの制御、フレームの構成、内容のエンコード、ハートビート、データ表示やエラーハンドリングなど行います。トランスポート・レイヤと機能レイヤの両方とも、プラグイン構成でプラグインによるカスタマイズが可能です。これによってプロトコルの刷新や新たなテクノロジーの適応に対応できます。


AMQP仕様のダウンロード

仕様はAMQPユーザのページからダウンロードできます。


AMQP製品の検索

AMQP製品のページをご参照ください。

AMQPのFAQ

2006年6月にAMQP(Advanced Message Queuing Protocol)の標準化のグループの発表がありました。その際に内容を発表していますが、AMQPのサイトにFAQがありましたので、翻訳をしました。もちろん、正式な翻訳ではありません。内容については原文を確認してください。


Q:AMQPとは、どのようなことをやられているのでしょうか?

トランザクションの自動化のために各企業ではオープンな標準を規定しようとしますが、時として、プロトコルスタックの中のメッセージング・レイヤでの独自のソリューションとの連携が必要となり、そのような努力が妨げられてしまうということがあります。このような機能不全やオープンなトランスポートがないことは、標準化への意欲を崩してしまい、Eコマース、分散化システム、電子マーケットプレースや究極には自由な取引自身にも不必要な障害を負わなければならないものとなります。

未だに統一された標準メッセージング・ミドルウェアの提供に成功していない市場の中でもメッセージング・ミドルウェアは、多くのアプリケーションのコンポーネントの中で重要な位置に居続けています。

この問題を解決するソリューションを開発しようとワーキンググループのメンバーは、ビジネス上のメッセージングへの共通の要件に対応しようとするどのようなソースからの実装でも可能なようにAMQPをラインセスフリーなプロトコルの仕様として設計することを決めました。


Q:AMQPはどのようにラインセスされていますでしょうか?

AMQPワーキンググループは、正式にリリースするバージョンの仕様を効率的に利用し、実装してもらうために、ただちに、そして、無条件に、使用許可を出します。AMQPは、関連する権利関係は一切発生しません。詳しくはラインセスについての記述をご覧ください。

最初のバージョン(0.8)は、公開仕様としてグループからリリースされました。2006年12月には、V0-9を公開仕様としてリリースしました。(注:このバージョンは0-9のようにダッシュを伴っていますので、次のリリースは0-10となります。)

ラインセス項目にしたがって、このグループから許可をもらわなくても、誰でも自由にソフトウェアやハードウェアの公開仕様バージョンを実装することができます。ただし、その実装がどのバージョンをサポートしているかを明示しなければなりません。

AMQPバージョン1-0の前にも、更改を続けますが、バージョン間の互換性は保証しません。ただし、互換性をあっさり諦めることがないようにすることも目標のひとつとしてあります。

注意:仕様が変更作業中で、実装の間に重大な非互換の問題を発生させるような未熟な実装には未完成のドラフトの仕様のラインセスを供与しません。


Q:どのアプリケーションのユースケースをAMQPはサポートしますか?

ストアード/フォワード・トランザクションのメッセージングと高性能なパブリッシュ/サブスクライブによるイベント通知、バッチによるファイル転送型のメッセージングの基本的な機能と利用方法を統合しました。

標準的なユースケースは次のとおりです。



価値の高いメッセージを転送する高い信頼性(fire and forgetではなく、一旦、トランスポートでACKを受信したら確実にメッセージが転送されていると完全に信頼することができます)
規模の大きなコミュニティでの高い性能の状態イベントの通知(パブリシュ/サブスクライブ・イベント通知)
ファイル転送(セキュアで、割り込みが可能で、ファイアウォールに親和性が高く、そして、安心して使える)

多くのビジネス・アプリケーションは、次のような特徴に大きく依存しています。AMQPは、それらをひとつにして提供します。AMQPベースのミドルウェア・ソリューションについては、典型的なエンタープライズ・ビジネス・システムでのメッセージングだけのミドルウェアをイメージされるかもしれません。





i)グローバルなネットワークを通じて、価格や在庫の情報を数百のクライアントへ配信
ii)これらのクライアントやプロセスからの要求を冗長化したトランザクション処理エンジンを通じて受付
iii)内部の台帳、刷り合わせなどのためにバッチファイルを作成し、転送
iv)バックオフィース処理で必要な情報を転送するためにインターネットを通じて取引先のパートナと接続
v)監査にパスするように、これらのすべての機能はセキュアに実行、運用者がシステムをモニタし、制御し、さらに、既存のバックアップ体制との統合を実施
vi)ビジネス活動のリアルタイムな状況を表示するためにアプリケーション・トラヒックをモニタ

AMQPのソリューションは、高性能なクラスタリングやグリッド・コンピューティングの課題に対応することができます。ただし、AMQPの本来のゴールはビジネスプロセスでのコミュニケーションの実現にあります。


Q:“ワイヤーレベル”のプロトコルはなんでしょうか?

ワイヤーレベルのプロトコルは、あるAPIを補完するものと考えられます。機能を定義して、ライブラリを作る代わりに、何かを起こすためにネットワーク上を転送するバイトのシーケンスを定義します。

ワイヤーレベルのプロトコルが定義され、公開されると、ほとんどのテクノロジーでそれらを利用することが可能であり、また、ときには、これらを利用することが要件となります。この方法とAPIと比べるとプラットフォームを特定した実際の実装が明らかになります。

JMSはAPIです。HTTPはプロトコルです。AMQPはHTTPに相当するミドルウェアを提供しますが、別の実装を適用することも可能です。


Q:“標準プロトコル”とはどのような意味でしょうか?

AMQPを正式な標準化団体によって準拠できる標準とするようにしたいと考えています。

これについては、AMQPワーキンググループが実際の作業を通じてAMQPを開発することで対応していきます。たとえば、IETF RFCでは、相互運用可能であると実証されている仕様に基づいて最低2つの独立した実装が検証のために必要となります。

ワーキンググループの多くのメンバーが、AMQPの実装に参加しており、このグループの方針として仕様を標準化団体へ委譲することを目標としています。


Q:Java Messaging Service(JMS)とはどのように違うのでしょうか?

JMSはJavaにおけるストアード/フォワードとパブリッシュ/サブスクライブのデファクトAPIの標準です。

JMSは、実装やワイヤーレベルのプロトコルを規定していません。JMSは、テクノロジー中立ではなく、ラインセスの規定によってJavaプラットフォームのみをサポートするのが正規のものです。

AMQPは、JMSを実装するための必要な要件のスーパーセットであり、Linux、Solaris、Windows、Z/OSなどの上のC、C++、Python、C#、あるいは、他の言語のAPIも提供可能です。


Q:APIも規定されますか?

AMQPワーキンググループは、基本的にはAMQPの実装のためのAPIを標準化することは考えていません。

プログラミング環境が、スムースに適合できるようなAMQPのAPIを作り出すことが自然なことです。Java用のAPIはJMSのようになりますが、PythonやCOBOLは、まったく違うものになります。

異なるAPIを定義することにもまして、AMQPに従った実装はシームレスに相互運用可能となります。たとえば、Javaのプログラムは、異なるAPIを使っている.NETプログラムと通信するのにAMQP準拠のJMSを使うことができます。これが、ワイヤーレベル・プロトコルの利点です。


Q:IBM MQSerieseやTibco Rendezvousとはどのような関係になりますか?

MQSeriesやTibco Rendezvousは、その独自のプロトコルと機能で商用のミドルウェア製品をリードしています。しかし、MQSeriesとRVは、お互いに、あるいは、他のミドルウェアとの間でネイティブに相互運用することはできません。

AMQPは、異なるインテグレーション・ブローカの実装の間でも相互運用が可能な仕様です(製品ではありません)。AMQPは、もっとも一般的に使われるミドルウェアの機能を完全に仕様化したプロトコルであり、公平な仕様です。

AMQPベースのソリューションによって、うまく運用されているその他のテクノロジーの利用を止めてしまうことは期待していません。しかし、企業の皆さんが、AMQPを、高い可能性を持つミドルウェアの戦略であると捉えていただきたいと思っています。

どのベンダーでも、もし、そのようにしたければ、それぞれのテクノロジーで自由にAMQP互換の実装を行うことができます。詳しくはラインセス関する記述をご覧ください。


Q:Webサービスとはどのように関係していくのでしょうか?

AMQPは、Webサービスの到達保証のあるトランスポートとして利用できます。AMQPは、ペイロードを定義せずにトランスポート・レイヤーを定義します。つまり、SOAP、WS-Security、WS-Transactions、WS-MetaData Exchangeなど、それ以降の仕様も、すべて、JMSで利用するのと同様にAMQPで実装することが可能です。ただし、AMQPは、トランスポート・リンクの最下位のレベルのベンダー中立な相互運用性を提供します。


Q:AMQPの実装はどこで参照できますか?

AMQPは、製品ではなく仕様です。製品は、ワーキンググループのメンバーか、メンバーでなくても3rdパーティがどこかで開発します。

AMQP製品の記述をご参照ください。


Q:AMQPは実証されていますか?AMQPの利用事例はありますか?

異なるプログラミング言語、複数のプラットフォーム、さらに、仕様が最初にリリースされる以前からある既存のシステムとの相互運用可能な実装を開発するためにプロトコルを規定することはワーキンググループが意識している目的です。

異なる関係者がいっしょに検討を行いながら実際の要件に対して仕様をテストし、改訂していくことだけが、仕様を迅速に成熟させていきます。AMQPは、いくつかの企業の多くの人々からインプットをいただきながら2年間以上開発を続けてきました。

JPMorganでは、ワーキンググループのほかのメンバーと緊密な関係を保つことで、AMQPの異なる実装を利用してアプリケーションを構築することができています。

ひとつは、Javaと.NETクライアントで実現しています。もうひとつは、C/C++クライアントとメッセージ・ブローカー機能をLinux、SolarisとWindows上に実現しています。JPMorganのアプリケーションは、世界の3つの地域データセンターに配置したクラスター化したAMQPブローカーを通じて、数百の同時利用ユーザが情報の参照とトランザクション処理のために利用します。

このAMQPの実装は、移行をスムーズにするために、いくつかのレガシーな独自のミドルウェア製品とのブリッジ機能を提供しています。

注意:JPMorganは、AMQPを実装しているどの製品の性能についてもクレームを表明していません。詳しくは、ラインセス同意規定をご参照ください。


Q:AMQPを自社でどのように適用すればいいでしょうか?

既存の稼動中のミドルウェアをビジネス上の判断もなしにAMQPベースのソリューションへ移行するということは期待していません。仮にビジネス上の判断に反しないとしても満足の行くものとはなりません。

標準ベースのミドルウェアへ移行するという熟慮の末の戦略の一部として機会があるたびに、ビジネス上の通常の手順として、自然な方法で企業がAMQPを適用することを期待しています。このアプローチでは、競合力のある価格やオープンソースの利点を享受することができ、それらを実現する共通の規約や製品の経験を積むことができます。2から3年の経過とともに多くの要求は、このようなアプローチからAMQPとして実現していきます。また、既存のミドルウェアの供給元がAMQPを実装することも可能であり、標準ベースのモデルへの移行することができます。結果的にAMQPがネットワーク・インフラの中核となるサービスとなることを希望します。

一方、企業がサービス指向アーキテクチャ(あるいは、バス・ベース・アーキテクチャ)へ投資するならば、SOAのバックボーンとしてAMQPを一括して配置することを勧めます。そのようにするとAMQP互換のミドルウェアのサプライヤー同士の競争から利点を得ることができるでしょう。そのために、適切なサプライヤーから要件にあったサポートのレベルやサービスの品質を達成することができるかもしれません。AMQPの適用によって、企業のSOAで重要なバス・コンポーネントへの長期投資に対するベンダー・ロックインやサプライヤーの倒産などの心配事に対応することができます。同様のことが、インターネットや専用線を介した取引パートナとの間で適用しているeビジネスのオープンなプロトコルについても当てはまります。

注意:AMQPワーキンググループは、AMQPを実装しているどの製品の性能についてもクレームを表明しません。詳しくは、ラインセス同意規定をご参照ください。


Q:どのプラットフォームがサポートされますか?

このプロトコルは、プラットフォームとプロトコルに中立であるように設計されています。

ワーキンググループのいくつかの企業が、様々なプラットフォーム上にAMQPベースの製品をリリースすることを期待しています。


Q:某社はなぜAMQPのワーキンググループに参加していないのでしょうか?

ほとんどのミドルウェア・サプライヤーはAMQPプロジェクトを意識しています。さらに、いくつかは、この活動に参加していただいています。しかし、すべての関係者にアプローチすることができません。そして、すべての企業が今参加する必要があると思えるわけでもありません。

もし、あなたが、ベンダーの方であり、この活動に参加したいと思われるのであれば、ご連絡を御願いします。さらに、ミドルウェアのエンドユーザの方で、もっとも、気に入っている製品がAMQPをサポートしてほしいのであれば、そのサプライヤーに要求をあげてください。


Q:マルチキャストはAMQPでどのように扱われますか?

クラスタやグリッドで分散化したサブネットの最適化のためにマルチキャストを仕様化する作業を進めています。

AMQPは、サブネット間の信頼性の高いマルチキャスト・メッセージ転送の明確な方法を定義しています。PGMのようなトランスポートでは、サブネット内のパブ/サブのAMQPメッセージの最適化を実現するでしょう。

検討の完成を目指して作業中ですが、できれば、PGMからAMQPへ、および、AMQPからPGMへの双方向で適正な相互運用性が得られることを期待している。


Q:AMQPはメイルとどのように違いますか?

裸の王様の話のように考えるとミドルウェアとメイルは同じことです。

AMQPはメイルに似ていますが、サービス品質(QoS)の実現を明示的に制御します。

メイルでは不明確なこともAMQPは定義します。たとえば、メッセージのサイズ、信頼性、セキュリティ、廃棄するためのポリシー、TTL、高速なグループ配信、1対Nの配信など。

重要なのは、メイルにはない、メッセージを転送する先のAMQPシステムの認証を行うことです。それによって、ビジネス上のメッセージングで重要な迷惑メッセージを無くすことができます。


Q:Spread、ICE、Elvin、TAO、Muscleなどとはどう違うのでしょうか?

多くのミドルウェア・ソフトウェア・パッケージがあり、それぞれ、異なる用件に対応しています。

しかし、AMQPはソフトウェア製品ではありません。メッセージング・ミドルウェアのための文書化したプロトコルの定義です。

プロトコルとしてのAMQPは、このFAQの中にもあるように、ビジネス上の信頼性の高いメッセージングに必要なメッセージ交換機能に重点的にフォーカスした大変ユニークなものです。


Q:CORBA/IIOP、DCEやONC RPCとはどのように違いますか?

CORBA/IIOPは、リモートのオブジェクトを引用するワイヤーレベルのプロトコルです。オブジェクトを操作して、メソッドを呼び出します。これは、“インタフェース”(繊細な)を操作するDCOMやプロセスを操作するONC/RPC、DCEとも異なります。

すべてがネットワーク上の呼び出しで同期されて、メッセージの保証やキューイングの考え方はありませんが、QoSについて若干考慮しています。このようなプロトコルは、それぞれの位置づけをもっていますが、完成はしていません。IIOPも、実際のアプリケーションのシナリオで問題となっているファイアウォールへの対応はよくありません。

AMQPは、概念的にはCORBA Notification ServiceとCORBA Event Serviceと似ています。しかし、実際には仕様の複雑さや完全なORBが必要となることからNotificationとEvent Serviceの部分的な実装でも多くは存在しません。このような複雑さによって適用を広げる際に敏感に反応することができなくなります。

結局、メッセージングは、オブジェクトのトランスポートレイヤーの上ではなく下に組み込まなければなりません。つまり、メッセージングは、オブジェクト・メソッドの呼び出しより一般的な位置づけです。


Q:仕様(あるいは、メイリングリストのアーカイブ)はどこにありますか?

開発のためのアーカイブや開発者のメイリングリストへのリンクは、まもなく公開されます。

2007年08月16日

どん引きのプレゼン

思い起こせば5月の連休からブログを書いていないので、なんとサボっていたことか。このブログを持っておられる方も、そうそうは居られないと思うので、一度サボってしまうとどうにも戻れないのは、修行が足りないというところですか…

このブログも本来は仕事の一環なので、結果的には仕事をサボっていることになるので、評価は一段と落ちるというのが、落ちでしょうか。それも仕方がないかもしれません。

このような状態なのでいろいろとアップデートしなければならないのですが、気持ちが入っていませんが、少し、ねじを巻かないといけないと思うようになったので、エントリします。


IDG主催のITアーキテクト・サミット 2007 Summerでセッションをひとつやってきました。相変わらずSOAをテーマにしているので、工夫が必要なのですが…工夫というか、結果的には奇をてらうということになってしまったかもしれません。

SOAのインフラについてもっと考えましょうというのが、率直なテーマです。アイオナとしては至極当然のことでインフラ(ここでいうインフラとはミドルウェアのレベルのこと)を充実していただかないと商売にならなりません。まったく、当たり前に考えても”基礎”が大事であることに何の異論もないと思います。

しかし、市場は、これに関心がない。上水道などのいわゆる社会インフラとITインフラをかけて説明したりもするのですが、社会インフラは、どちらかというと公共性の高い資源であり、公共団体が投資をしていることを思うと一般の企業にITインフラに投資を考えて欲しいといっても、投資の対象に対する意識に無理があるのかもしれません。インフラは国がやってくれることと自分の責任範囲外と思うのでしょうか。

それでも、インフラが必要であるという本質は変わらないわけで、では、その本質とはなんであろうかということになります。SOAの話を考えているとビジネスの変化に対応するというITにとってもっとも本質的な課題にぶつかります。簡単なことではありません。それでもIT側の立場としても主題となっています。

考えてみればある固定したものの上でなにかを変化させること自体が難しいです。柔軟なアーキテクチャや良く考えられた設計というものが変化を許容できるかもしれませんが、限界があります。経験的に言えば、工学的な方法論も十分でない中でそのような設計は期待しない方いいということではないでしょうか。となると結果的には固定できるものはないということになります。

友人で、人生でいろいろなことがあるときに、心安らかに、あらゆる物事を受け入れるために仏様の教えに従うという考えを持った人がいます。私なんかより、とても深くて真面目な考えで仏教の本質を捉えようとしているのですが、その友人の話を参考にすると世の中はすべて無常、つまり、諸行無常でなにも決まったものはないのではないかと思い当たりました。

でも、そうなるといったい何が私たちの実際の生活を律しているのかが理解できませんでしたが、それには縁起という説があるのが、Wikipediaを見ていてわかりました。縁起が悪いの縁起とは少々違うそうなのですが、難しい内容はとても理解できず、ただ、理解できたのは、現象(物と心)の関係を決めるルールがあって、それが縁起というもので、仏説の本質的な課題であるということでした。

これを無理やり、ITインフラにリンクさせたのが、次のスライドです。友人にプレゼンで諸行無常に縁起を使うと言ったら、そんなプレゼンには聞いている人は”どん引き”だと言われました。どんな絵を付けてたらいいかわからなくて、友人に聞いたのですが、教えてくれませんでした。天国の絵でもつけるかと思ったのですが、結局、ありきたりのものになりました。

SOAInfrastructure.gif

実際には”どん引き”ではなかったようですが、皆さんがどう思われたかはわかりません。システム要件はもちろんのこと、テクノロジーも、アーキテクチャさえも、変化しなければならないのであり、それらを律するルールは、ビジネスデシジョンのルールでもあり、セキュリティポリシーのような決まりでもあり、ガバナンスの中で決めたルールやシステム開発のプロセスでもあるわけです。

これらのルールが使いまわすことができ、ブラッシュアップされていくことで、あらゆる変化に対しても対応できるシステム構築のアプローチができるようになると思っているのですが、”どん引き”でしょうか。ここのルールを構成するのがインフラです。どのような形なのか、まだ、はっきりとはわかりませんが、SOAの本質も、このようなところにあると思います。SOAスイート製品は本質ではないですね。

今の日本の豊かは社会インフラもすべての人と法人が税金を払ったからできたものであって、ITインフラに投資をしなくてもいいということにはならないと思います。

2007年08月24日

テクノロジーも格差の時代

Javaテクノロジーに関する話題として、IDGのITアーキテクトサミット 2007 Summerのセッションの中で出してしまったのですが、ArtixはVersion5をリリースして、Javaインタフェースの作り方が大幅に変わりました。

Artixは、C++をベースに製造されており、JavaのAPIからC++で作られたコアの機能を利用することになります。以前であればJava自体が重くて遅いので、このJavaとC++の間のオーバヘッドも気にならなかったのですが、Javaのコンパイラの技術やCPU自体が向上することでJavaの性能が上がってきて、オーバヘッドが目立つようになってきました。

以下の図にあるようにArtix5_jaxwsは、Artix5であらたにCXFをベースにして、JAX_WS(JSR224)でのアノテーションを利用したAPIに替わったのですが、その変化のひとつの要因が性能です。下図のArix5_JNIは従来のJava APIであるJAX_RPC(JSR101)をサポートし、HTTPやSOAPなどのエンジンはC++側の機能を呼び出すためにJNI(Java Native Interface)を経由して実現しているものです。

ご覧のように性能上の違いは明らかであり、PureなJavaで実現するようにJAX_WSへ移行したものです。もちろん、従来のJAX_RPCのAPIも互換性を提供するために残りますが、コアの製造が、JavaとC++に分かれていくことは明らかになったことになります。

java_cpp_jni.gif

これは”テクノロジーの格差”を意味しています。以前のエントリにあるようにJavaのテクノロジーは決してSOAインフラを構築するにも適した技術ではないにも関わらずアプリケーション開発のプラットフォームとして広まってきたというだけでマジョリティとなり、そこにメガベンダーの思惑が重なってJava技術へ偏重していると思います。

JVMの上と外とでは世界がまったく異なってしまいます。JVMの上ではネイティブなC++のWebサービスさえも提供できないのです。このテクノロジーの格差をなんとか平準化する必要があります。Artix5は従来のC++で構築したアーキテクチャを踏襲してJavaによるコンテナを同時に実現することで利用者に対しては正しいインフラの姿を提供することができる製品です。

2007年09月02日

やはり、どん引き

IDG主催のITアーキテクトのセミナでの講演がどん引きではないかと心配したエントリでは、大丈夫ではないかと思ったのですが、やはり結果は最悪でした。本人は本質的な問題だと思っているのですが、マーケットの皆さんは違うことに関心がおありのようです。

セミナの後のアンケートの集計の結果が悪かったので、当分、セミナーの講師はやらなくても済みそうです。それはそれでもいいのですが、細かいテクノロジーの議論をいくらやっても大きな違いはないと思うのも間違いではないと思います。重要なのは”何をしたいか”ではなく、”何をしなければならない”かです。

使いやすい機能やきれいなGUIがITの目的ではないということです。SOAのインフラとは何であるべきかということを問いたかったのですが、マーケットは本当に反応しないです。多くのユーザは大きなベンダーのスウィート製品を導入することに魅力を感じています。アプリケーションプラットフォームとBPMを合わせて使えるときにESBがおまけで付いてくるという感覚です。現実的に複数のベンダーの製品を組み合わせるようなベスト・オブ・ブリードの考え方に反して、自らの選択肢を狭めることで安心感を得る