Ungeachtet solcher Zwänge wird der Umfang eines Vertrags einfach durch den Zusammenhalt seiner Mitgliedselemente bestimmt. Ein Vertrag kann viele Elemente enthalten und einen breiten Umfang haben oder sich nur auf wenige beschränken, solange er eine gewisse Geschäftsfunktionsfähigkeit zum Ausdruck bringt. Die Definition von Vertrag ist hier etwas weiter gefasst als die, die wir normalerweise anbieten könnten, wenn wir über Dienstleistungen sprechen, aber aus Sicht der Service-Evolution abstrahiert sie sinnvollerweise die signifikanten Kräfte, die sich auf unsere Problemdomäne auswirken. Allerdings ist die Definition nicht erschöpfend in Bezug auf die Arten von Elementen, die ein Anbietervertrag enthalten könnte: Sie bezieht sich einfach auf einen logischen Satz exportierbarer Business Function-Elemente, die kandidaten, um in eine Service-Entwicklungsstrategie einzubeziehen. Aus logischer Sicht ist dieser Satz von Kandidatenelementen offen, aber in der Praxis können interne oder externe Faktoren wie Interoperabilitätsanforderungen oder Plattformeinschränkungen die Art der Elemente einschränken, die ein Vertrag enthalten kann. Beispielsweise enthält ein Vertrag, der zu einem Dienst gehört, der dem WS-Basic-Profil entspricht, wahrscheinlich keine Richtlinienelemente. Das Einschränken des Zugriffs ist ein gängiges Muster für Verträge. Beachten Sie, dass Sie niemals verhindern können, dass ein Mensch oder Computer den Inhalt Ihrer Transaktionen oder den Zustand Ihres Vertrags liest. Sie können es ein bisschen schwieriger machen, indem Sie Verschlüsselung verwenden, aber wenn Ihr Vertrag die Daten lesen soll, werden es auch alle anderen tun. Das folgende ist ein Beispiel für das Rückzugsmuster in der Praxis in einem Vertrag, wo das Ziel ist, das meiste Geld an den Vertrag zu senden, um der “reichste” zu werden, inspiriert von König von der Ether.

Wir haben möglichkeiten diskutiert, wie verbraucher- und verbraucherorientierte Verträge den geschäftlichen Wert ausdrücken. Aber wir sollten klarstellen, dass wir solche Verträge nicht als Index oder Maß für den Geschäftswert betrachten – sie sind keine Geschäftsmetrik = und trotz einiger oberflächlicher Ähnlichkeiten mit Spezifikationen wie WS-Agreement und WSLA sind sie nicht dazu bestimmt, Service Level Agreements auszudrücken. Die zugrunde liegende Annahme ist, dass Dienstleistungen für sich allein für das Unternehmen keinen Wert haben; ihr Wert ist es, verbraucht zu werden. Durch die Festlegung von Dienstleistungen, die näher an dem Ort liegen, an dem sie genutzt werden – von den Verbrauchern – wollen wir den Geschäftlichen Wert in einer schlanken Just-in-Time-Manier nutzen. Verträge können auf verschiedene Weise ausgedrückt und strukturiert werden. In ihrer einfachsten Form können Verbrauchererwartungen in einer Kalkulationstabelle oder einem ähnlichen Dokument erfasst und während der Entwurfs-, Entwicklungs- und Testphasen einer Anbieteranwendung implementiert werden. Indem wir ein wenig weiter gehen und Komponententests einführen, die jede Erwartung bestätigen, können wir sicherstellen, dass Verträge mit jedem Build in einer wiederholbaren, automatisierten Weise beschrieben und durchgesetzt werden. In komplexeren Implementierungen können Erwartungen als Schematron- oder WS-Policy-ähnliche Assertionen ausgedrückt werden, die zur Laufzeit in den Ein- und Ausgabepipelines eines Dienstendpunkts ausgewertet werden.

Der unstrukturierte Speicherproxymechanismus schützt nicht vor dieser Situation. Es liegt am Benutzer, dass neue Versionen eines Logikvertrags frühere Versionen erweitern oder auf andere Weise garantieren, dass die Speicherhierarchie immer angehängt, aber nicht geändert wird. OpenZeppelin Upgrades erkennt solche Kollisionen jedoch und warnt den Entwickler entsprechend. Schließlich sollten wir darauf hinweisen, dass die Gefahr besteht, dass die Zulassung von Verbraucherverträgen, die die Spezifikation eines Dienstanbieters vorantreiben, die konzeptionelle Integrität dieses Anbieters untergraben könnte. Dienstleistungen kapseln diskrete, identifizierbare, wiederverwendbare Geschäftsfunktionen, deren Integrität nicht durch unangemessene Anforderungen beeinträchtigt werden sollte, die außerhalb ihres Mandats liegen.