Frage

Wir bauen Produkt, das von anderen Systemen verwendet werden kann. Wie wir SOA haben, entwickeln wir nur einen Dienst (WCF). Wir hatten mehrere kontroverse Diskussionen darüber, wie eine Schnittstelle dieses Dienstes zu entwerfen. Wir sind für den Einsatz zwischen Verfahrens- und OO-Design wählen.

Wie unser Service von .NET und Java einige sagen, verwendet werden, dass es schwierig ist, mit Service zu integrieren, wenn es OO Design. Andere denken, dass Dienste Mast nicht OO Ansatz. Einige sagen, dass OO völlig in Ordnung ist. Als Ergebnis ist, dass wir es keine klare Depression auf sich.

WCF bieten einen einfachen Weg, um beide Entwürfe zu verwenden, aber was ist die beste?

War es hilfreich?

Lösung

Ich gehe davon aus, die Definition von „Object Oriented“ Sie verwenden, ist das Konzept des Programms Verwaltung „Objekte“, und diese einzelnen Objekte verwalten ihren internen Zustand und setzt Funktionen aufgerufen werden.

Der nächste WCF parralel dazu ist Session-basierte Dienste, wo die Lebensdauer jeder Dienstinstanz durch den Client gesteuert wird.

Wenn Sie diesen Service wünschen von Java aufgerufen werden Sie müßten Basichttpbinding verwenden, da diese Anwendungen das klassische Web-Service-Protokoll.

Diese Bindung bietet keine Unterstützung für sitzungsbasierte Dienste, so dass Sie buchstäblich nicht sitzungsbasierten Dienste nutzen können.

Sie können daher nicht für das „objektorientierte“ Paradigma in Bezug auf den Dienst selbst.

Andere Tipps

Sie Ihre ursprüngliche Frage klären, indem er sagt: „Meine Frage ist, über die Methoden des Dienstes sollten sie komplexe Typen anstelle von skalaren Parameter erhalten?“

Sie sollten sich die folgende Frage stellen:

a) Gibt es eine Chance, dass der Dienst von Nicht-OO-Clients verwendet werden kann? Keine Ahnung, ein COBOL Batch? Selbst wenn Ihr Unternehmen auf OO Tech standardisiert (Java / .NET) ist es eine Chance, dass diese spezielle Dienstleistung durch eine externe Einheit in Zukunft verwendet werden kann (Kunde, PHP-Website, was auch immer)

b) Haben Sie bereits viele solcher Dienst in der Vergangenheit erstellt (so dass Sie vollkommen sicher sind, gibt es keine Rangierung ist / Serialisierung / Deserialisierung Probleme mit komplexen Typen, oder zumindest bewusst, was Sie können sicher verwenden)?

Wenn Sie zuversichtlich über beiden Punkte sind, dann fühlen sich frei, einen „OO“ Ansatz zu verwenden, in beide Ein- und Ausgänge für Ihren Dienst zu entwerfen. Andernfalls gehen Sie für die sicherste (wenn primitiveren) Ansatz und zersetzen die „Objekte“ in Gruppen von Skalaren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top