SOAプラットフォームはやっぱりインターフェースが重要
最近、「SOA」って言葉をそんなに耳にすることがなくなった。実際のSOAの意味を理解していないで製品やコンサルティングサービスを販売しようとした会社が多かったため、言葉の威力がなくなってしまったのだ。
夕べ、Steve Yeggeのコメントに付いて述べたが、日本でこのようなことを考えている人はどれだけいるのでしょうか?プラットフォームを設計する場合はまずインターフェースを考える必要があるのに、内部で使う部品に付いての議論はよく耳にするが、どのようなインターフェースを持たせるかに付いての議論は少ない。
サービスの設計、プロセスの定義などよりも、プラットフォームのインターフェースが一番重要です。Steve Yeggeも挙げているように、Facebookの魅力はFacebook社が提供しているソフトウエアのサービスよりも、ユーザが自分でFacebookを拡張してコミュニティを作成できることのある。
JasperReportやLiferayのような今のオープンソースもユーザが機能を拡張できるようになっています。標準のJasperReportですべての機能を提供するよりも、ユーザが必要とする機能を追加するように設計されている。
残念なことに、まだ多くのプラットフォームがSOA時代よりも古い概念で設計されている。新しいオープンソースを使っているから最新のプラットフォームだと勘違いをされている技術者がまだいるが、実際にはプラットフォームとしてはもう時代遅れなので使い道がない。
SOAはシステム連携である。システムをより上位レベルで連携させるには、データ層での連携のようにデータAPIよりも、機能を拡張/追加できるインターフェースが必要である。SOAのためのいプラットフォームは簡単にWeb Service用のインターフェースを作成できるようにすることよりも、簡単に業務で必要とする機能を容易に追加できるインターフェースをもつことである。それができるプラットフォームの多くはオープンソースである。
最後になりますが、プラットフォームがSOAに対応して柔軟であっても、それを使いこなせなければそんなに意味がありません。技術者は最低でもプラットフォームを拡張できる技術を身につけるべきだと思う。