Jeder Service verfügt über eine Serviceimplementierung, elementare Zugriffsdetails und einen Vertrag.
Eine Serviceimplementierung ist die zentrale Geschäftslogik, die Sie in einer beliebigen anderen Programmiersprache schreiben können. Die Begriffe 'Service' und 'Serviceimplementierung' werden häufig synonym verwendet. Der Begriff 'Serviceimplementierung' wird verwendet, wenn der Fokus auf den Details der Geschäftslogik liegt.
Zu den elementaren Zugriffsdetails gehören die Adresse der Serviceimplementierung und das Binding. Das Binding gibt das Protokoll an, das eine Nachricht zu Beginn einer Übertragung formatiert und die Formatierung am Ende der Übertragung wieder aufhebt. Bei Web-Services wird HTTP (Hypertext Transfer Protocol) verwendet. Die Formatierung erfolgt, wenn die Aufrufnachricht beim Anforderer ausgelöst wird. Die Aufhebung der Formatierung erfolgt, wenn die Nachricht bei der Serviceposition ankommt. Die Formatierung findet ebenfalls statt, wenn der Service eine Antwort ausgibt. In diesem Fall erfolgt die Aufhebung der Formatierung, wenn die Antwort beim Anforderer ankommt.
Ein Vertrag beschreibt das gewünschte Verhalten eines Service und ist unabhängig von den Implementierungsdetails. Ein Vertrag besteht aus zwei Elementen: einer Serviceschnittstelle und einer Servicequalität.
Die Serviceschnittstelle enthält eine Beschreibung der Daten, die zwischen einem Anforderer und einem Service ausgetauscht werden können, sowie die Details zu jeder vom Service bereitgestellten Operation. Die Schnittstelle enthält Informationen zu den Nachrichten und beantwortet Fragen wie 'Welches Format hat eine Nachricht?' oder 'Welche Einschränkungen gelten bezüglich des Inhalts?' Ferner enthält die Schnittstelle Details zum Nachrichtenaustauschmuster, das die Art der Interaktion zwischen Anforderer und Service beschreibt. Die Schnittstelle gibt an, ob der Service stets auf den Anforderer antwortet.
Einige Aspekte der Serviceschnittstelle sind in der Serviceschnittstelle implizit. Ein Service könnte beispielsweise eine Börsennotierung enthalten, aber eine Fehlernachricht zurückgeben, wenn das übergebene Börsenkürzel ungültig ist.
Eine Schnittstelle ist nicht nur ein Aspekt eines Service, sondern auch des übergeordneten Servicedesigns. Die Schnittstelle geht normalerweise der für die Schnittstelle bestimmten Implementierung voraus.
Ein Teil des oben aufgeführten Materials stammt aus Enterprise Web 2.0 with EGL (MC Press, 2009; http://www.mc-store.com/5107.html).