サービス指向アーキテクチャはコンビニ

こんにちは

サービス指向アーキテクチャは、たとえばコンビニだと言える。従来の個人商店は、米は米屋、酒や飲み物は酒屋、雑誌は本屋、弁当は弁当屋、おかずは総菜屋で、お菓子はお菓子屋、と、販売している場所がばらばらである。
個々の商店は最適化しており、融通も利くし、注文も細かいところまで対応してもらえるなどの利点がある。

一方、お客は必要なものをそれぞれのお店に行って買う必要がある。それはお客にとっては、便利ではない。それぞれ場所はばらばらにあり、それぞれのお店で何が売られているか把握せねばならず、買い方もばらばらだ。酒は瓶、箱、ケース、または何升で、米は何㎏で、おかずは何㌘で、お菓子は何個というように扱う単位も異なり、買い方も、かごに入れたり、透明のケースに自分で盛ったり、店員にメニューを見て注文したり、と異なる。個人店とチェーン店でも仕組みが違うだろう。

それに対して、コンビニはそれらの商品が全て小さな店舗に1カ所にまとまっている。そしてかごに入れて、まとめてレジに持って行き、1個いくらで買えばよい。コンビニは近所や駅近くにあり、行きやすい。営業時間が長く、朝早くても夜遅くても買うことができる。コンビニは日本中にあり、コンビニの運営する会社や商品はバリエーションは実に多様だが、どこで買うにもシステムはほとんど同じだ。お客にとってはとても便利なのである。コンビニはお客の視点で利便性を考えて作られている。コンビニはサービス指向であるといえる。

さて、コンビニにも問題点はある。種類が豊富でないとか、㌘単位で買えないため、買い方にバリエーションがなく柔軟性がないとか。だが、多くのお客はそこにあまりこだわっていないし、コンビニに求めていない。コンビニの利便性やアクセスのしやすさを重視しているのである。

サービス指向とはコンビニのようなものであると私は考える。様々なプラットフォーム、さまざまなテクノロジー様々なメーカー、プロトコルアーキテクチャが混在していても、サービス(=コンビニ)の中にすべて収まっており、種類が限られていてや柔軟性に欠けるとしても、たいていのユーザが日々使いたいある程度十分な機能が豊富に備わっている。
商品をカゴに入れて、レジに行けば手に入れて使うことが出来るようにん、サービスを利用するのには、そのサービスのクラスオブジェクトを生成すればよい。サービスを使うための環境としては、どんなOSのPCでもよく、インストールが必要なブラウザだけでよいとか、通信はインターネットでWebが見れればよい、というようにシンプルにアクセスできる仕組みなのである。

もちろん、ブラウザやWebだからサービスというわけではなく、ライアントは、Excelなどのありふれたものであり、プロトコルはCOMのようなものであってもよい。要は、限られた何番ポートで独特のプロトコルであまり使われていないような専門のクライアントやハードウェアを積んだマシンがないと使えないというようなことがないということである。

さて、コンビニは、何かあたらしい商品を作ったのではなく、単純に言えば、流通や販売の仕組みを変えただけである。
サービス指向アーキテクチャも同様で、新しいテクノロジーというより、従来のテクノロジーや商品のインターフェースやパッケージの仕方を変えただけなのだ。

だから、サービス指向アーキテクチャを始めるのに、何も難しい本を読んだり、頭をひねる必要はない。
すでに知っている知識や技術をどうアセンブルしていくか、ということが大事であり、単に今までと考え方自体を少し変えるだけでできるようなことなのだ。ばらばらに点在していた個人商店をコンビニに変えてみるということである。つまり、テクノロジー(技術者・メーカーの視点)でなく、サービス(利用する側のお客の視点)で考えるということである。

ではまた