BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース サービスの規模はどの程度にすべきか?

サービスの規模はどの程度にすべきか?

SOA の運用においてサービスの規模はどの程度にすべきかといった議論を耳にする機会は多いが、ほかのもっと慣習的なアーキテクチャ手法においても、大まかなサービスにすべきか、それともきめ細かいサービスにすべきかといった議論は、長年に渡って激しく交わされてきた。このような議論は SOAに限ったものではないようである。これは、1つの規模ですべてを満たすことはできないことを示す例でもあるのだが、規模が非常に重要になるケースもある。最近発表されたレポートによって、この頻繁に交わされている激しい議論がいっそう激しさを増している。
サービスとは、規格をベースとした API で露出される単なるオブジェクトではありません。また、単にオブジェクト指向のプログラミングを「大規模に」行なうためのもう1 つの方法でもありません。実際に、オブジェクト指向によって別のレベルの抽象化や、手続きプログラミングの概念が実現するのとまったく同じ理屈で、サービス指向によって別のレベルの抽象化やオブジェクト指向の開発概念が実現します。
レポートは、以下のように続く。
実際に、サービス指向が進展することと、テクノロジーが進展することとはまったく別のことです。サービス指向が進展することは、業務指向が進展することです。つまり、抽象化とはまさに自社の変化し続ける要素や常に異質な要素を企業が、どのようにとらえるかに関係する抽象化であり、疎結合した方法でそれらを構成することによって変更にかかわるコストを均一化したり、予想できるようにしたりすることに関する抽象化であるということです。つまり、新しいインターフェースやミドルウェアを使って、単に同一の資産を同じ方法で露出させるのではなく、IT 機能にアプローチする方法を再考する必要があるということです。
このトピックに関連する過去数年のほかの議論と同様、レポートではサービスのきめ細かさに関連する問題点に焦点を当てており、「比較的小さい単位の機能に対応したり、少量のデータを交換したりすることができる」サービスをきめ細かいサービス、単一のやりとりにおいて大きな機能を抽出するサービスを、大まか なサービスと定義している。サービスのきめ細かさを決定することは、疎結合サービスの構成可能性や個々のサービスの再利用性に影響を与えるため、サービスのライフサイクルという点できわめて重要なポイントであることを示しているレポートもある

また、このレポートでは、サービスの展開に対するトップダウン方式のアプローチやボトムアップ方式のアプローチについても論じている(どちらもある程度は必要だが)。
・・・ ビジネスプロセスまたはビジネスモデルから開始し、それをサブプロセスやサブモデルに繰り返し分解して、それ以上分解できないような状態にします。または、すでに実装されている ITシステムから設計を開始し、サービスのインターフェースをAPIと既存のアクセスポイントから露出させて、これらのインターフェースの上にサービス契約を作成したあと、それらを組み立ててビジネスプロセスの用件が満たされるようにします。
開発の対象が複合サービスであるか、それとも小さなサービスであるかもサービスのきめ細かさに影響を与える。
一見、小さなサービスがきめ細かく、複合サービスが大まかに思えるかもしれませんが、必ずしもそうとは言えません。きめ細かさはやりとりやビジネスの適切性の基準となるものであり、アトミシティ(最小単位)はプロセス分解の基準となるものであるため、大まかなアトミックサービスやきめ細かい複合サービスといったこともありえます。
最後に、このレポートでは、サービスのきめ細かさとアトミシティのトレードオフを示すきめ細かさの一覧表を記載している。結論は、何年もサービスの開発に取り組んできた人であれば、ほとんどの人が知っているであろう。
・・・ 適正なサービス指向の分析や設計手法では、サービスの再利用性、効率、処理性、消耗性、可視性といった5つのキーポイントに関して、きめ細かさとアトミシティを別個のものとしてとらえています。最初は、再利用性の観点から複合サービスであると思われていたも のが、実際は処理性の観点からアトミックサービスにする必要がある場合もあります。同様に、可視性や監査性といった目的できめ細かいサービスと思われていたものが、効率の観点から大まかなサービスになる場合もあります。実際に、サービスのきめ細かさの一覧表は、効果的な企業アーキテクトの分野におけるもう1つのツールの役割を果たします。
それでも規模は重要だろうか?確かに規模は重要だが、大きいことが必ずしも最善であるとは言えない。また、ある大まかなサービスがある環境でうまく機能しているからといって、それがほかの環境でも最良であるとは限らない。サービスは、それを利用するアプリケーションとともに進化するのである。

この記事に星をつける

おすすめ度
スタイル

BT