サービスの設計におけるコントラクト(契約)

"溶けたチーズの影響" に取り組む: コントラクト
SOAという概念が登場する前から、分散システムにおいてはコントラクトの概念は重要なものだった思う。
Eiffelにおいてはオブジェクト指向のクラス間の関係を確かな物にするためコントラクトの概念を実装できるようにし、これがJavaやC#のようなコンポーネント指向言語にinterfaceの概念と実装という形で大きな影響を与えているし、RPCやDCOM、CORBAにおいてはIDLによりコントラクトを実装上明確にすることが要求されるというように、分散ソフトウェアシステムにおいてコントラクトが常に中心的な関心事であったことは間違いない。
SOA、Web Serviceと言った方が良いかもしれないが、これにおけるコントラクトはWSDLにより定義される。したがって、Web Serviceによって分散ソフトウェアシステムを構築しようとした場合には、WSDLの記述が関心の中心毎になるのは間違いない。分散システムの中心的な関心事は常にコントラクトである。
しかもSOAにおけるコントラクトは今までのコントラクトが記述していた、プロシージャー、オブジェクト、コンポーネントよりも大きな粒度であるサービスを扱う。このサービスは今までのコントラクトが記述していた物よりより重要で、価値の高い物であり、その重要性はより増していることになる。
上の文書はこのWeb Serviceでのコントラクトについて扱い、そのコントラクトの設計について記述している。

コメントを残す