各サービスには、サービス実装、基本アクセス詳細、およびコントラクトが含まれています。
サービス実装 は中心となるビジネス・ロジックであり、任意のプログラミング言語で作成できます。「サービス」および「サービス実装」という用語は、相互に言い換えられることがよくあります。「サービス実装」という用語は、ビジネス・ロジックの詳細に重点を置く場合に使用されます。
基本アクセス詳細 には、サービス実装のアドレスとバインディングが含まれます。バインディングは、送信開始時にメッセージをフォーマットし、送信終了時にメッセージをフォーマット解除するプロトコルです。Web サービスの場合、プロトコルは Hypertext Transfer Protocol (HTTP) です。リクエスターから呼び出しメッセージが送信されるときに、フォーマットが行われます。メッセージがサービス・ロケーションに到達すると、フォーマットが解除されます。フォーマットは、サービスから応答が出される場合にも行われます。この場合、フォーマット解除は応答がリクエスターに到達した時点で行われます。
コントラクト は意図されているサービスの振る舞いを記述するものであり、実装の詳細からは独立しています。コントラクトは、サービス・インターフェースと Quality of Service の 2 つの要素からなります。
サービス・インターフェース には、リクエスターとサービスの間で受け渡しできるデータの記述と、サービスが提供する各操作の詳細が含まれています。インターフェースにはメッセージに関する情報が含まれており、質問 (「メッセージのフォーマットは?」、「コンテンツに対する制限は?」) に対する回答を提供します。インターフェースには、リクエスターとサービスの相互作用を示すメッセージ交換パターンに関する詳細も含まれています。 インターフェースは、サービスが常にリクエスターに応答するかどうかを示します。
サービス・インターフェースの一部の側面は、サービス・インターフェースで暗黙的に実装されます。例えば、サービスが株価情報を提供するが、送信された銘柄記号が無効な場合にはエラー・メッセージを返すことがあります。
インターフェースは、サービスの側面である上に、サービスの全体的な設計の側面でもあります。一般に、インターフェースは実装よりも前の段階であり、インターフェースを実装するといわれています。
上記の情報には、「Enterprise Web 2.0 with EGL」(MC Press, 2009; http://www.mc-store.com/5107.html) からの抜粋が含まれます。