Frage

Ich habe für meine Kunden die Aufgabe der Schaffung der Grund einer SOA gegeben. Ziel ist es, verschiedene Prozesse in einer End-Client-unabhängigen Art und Weise und auch zu machen Daten offline verfügbar zum Beispiel zu eröffnen für Wiederholungen zu besuchen Kunden.

Ich habe zu tun umfangreiche Erfahrung mit J2EE (Websphere) und Web-Services, aber ich würde schätzen Ratschläge, wie man eine solche SOA aufzubauen.

Wo sind die Gefahren? Was ist Sicherheit? Wie fein granuliert ist Dienste? etc.

Links zu Tutorials und Buchempfehlungen würden auch nützlich sein.

Danke!

War es hilfreich?

Lösung

Pitfalls

  • Versioning / Rückwärtskompatibilität: es wird wirklich schwer, einen Vertrag zu ändern, wenn Sie Lasten der Kunden. Ich habe durch die Einführung der Version in der URL viele Websites Version der APIs gesehen

Granularität

  • sollte Jeder Dienst sein reasonly in sich geschlossene (nicht erwarten, dass Menschen drei Anrufe tun, bevor sie bekommen, was sie brauchen)

Plattformunabhängigkeit

  • Versuchen Sie mehr als einen Weg, um Ihre APIs für den Zugriff (WS, JSON, REST ...)
  • geben

Andere Tipps

Die Menschen können sich nicht einigen, was SOA eigentlich bedeutet.

http://martinfowler.com/bliki/ServiceOrientedAmbiguity.html

(obwohl Konsens da, dass gewachsen kann geschrieben wurde)

Ich schlage vor, quizzing Ihren Kunden genau herauszufinden, was sie bedeuten - wenn überhaupt. dann geben sie etwas, das tatsächlich Mehrwert liefert, während alle SOA-Boxen tickt, die mit diesem Aufwand zusammenfallen könnte.

Rufen Sie mich an einem SOA-Skeptiker. Fowler jammern scheint immer noch nach rechts auf.

würde ich auf das allgemeinere Problem konzentrieren: Ihr Kunde hat 2 oder mehr Anwendungen, die gemeinsam zusammenarbeiten müssen. Schauen Sie sich alte Schule Integrationsmuster.


(Quelle: amazon.com )

Sie haben diese IBM Redbook (# sg246303 ), die auf den Grundlagen von SOA durchaus eine gute Einführung ist.

Wie Alan sagte, beginne ich würde das Lesen der Enterprise Integration Patterns Buch . Es gibt eine Reihe von Möglichkeiten, um sie entweder über ein Messaging-System direkt wie JMS oder mit Open-Source-Projekten wie Apache zu implementieren Camel , zum Beispiel finden Sie in der Musterkatalog rel="nofollow.

Ich würde auch zu verstehen suchen, wie gut RESTful Dienste bauen mit JAX-RS mit Jersey als eine einfache Möglichkeit, leicht Ressourcen für Ihre Systeme für jeden im Web von jeder Sprache / Plattform zu belichten, ohne in die SOAP / WS- * death:)

Machen Sie sich ein ESB (Enterprise Service Bus): MuleSource ist eine gute Wahl (Opensource, Ältere, noch bleeding edge). Sobald Sie es verstehen, werden Sie SOA verstehen.

  

Das Ziel ist, zu öffnen, verschiedene   Prozesse in einem End-Client-unabhängig   Art und Weise und auch Daten zur Verfügung zu stellen   offline z.B. für Wiederholungen Besuch   Kunden.

Die zweite Hälfte das ist nicht wirklich ein SOA-Thema, es ist mehr eine Replikation auf mobile Geräte Problem. Ich würde weit, weit weg bleiben von dem Versuch, ein Buzzword implementieren und konzentrieren sich auf die Probleme, die Sie besagt. Web Services sind eine gute Möglichkeit, Prozess auf Client-unabhängige Wege zu öffnen.

Bisher das beste Buch, ich fand, ist SOA Compass auch auf Amazon

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