Frage

Service Oriented Architecture mehr und mehr von einem heißen Zitat zu sein scheint in diesen Tagen, aber rund um das Büro nach fragen Ich habe festgestellt, dass ich viele verschiedene Definitionen dafür zu bekommen scheinen. Wie würden Sie Jungs SOA definieren? Was würden Sie die offizielle Definition in Betracht ziehen?

War es hilfreich?

Lösung

Wie Martin Fowler sagt, es bedeutet, verschiedene Dinge für verschiedene Menschen. Sein Artikel über das Thema ist ziemlich gut, obwohl es nicht ganz eine Definition ist.

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

Es mag erklären, die Schwierigkeit, mit einer konkreten Definition kommen.

Andere Tipps

Wikipedia: „. Eine SOA eine Software-Architektur ist, die lose gekoppelte Software-Service nutzt die Anforderungen der Geschäftsprozesse und Software-Nutzer-Support-Ressourcen in einem Netzwerk in einer SOA-Umgebung werden als unabhängige Dienstleistungen zur Verfügung gestellt, die ohne Wissen zugegriffen werden können ihre zugrunde liegende Plattform-Implementierung. "

SOA ist nicht neu, aber es hat das Potenzial, einige erstaunliche Dinge zu erreichen. Aber die Organisation hat dafür bereit zu sein: Das Unternehmen hat in Prozessen zu denken und das ist das große Problem

Ich würde gehen mit:

  

Definieren einer Reihe von staatenlos, Client   Agnostiker Geschäftstätigkeit erstellt   werden in mehreren Leveraged   Anwendungen.

Eine SOA Design umfasst Komponenten (das heißt, Dienste ), die unabhängig von der Implementierung von Code verwendet werden können (das heißt, jedes Betriebssystem oder Langauge). Eine einzige Instanz eines Dienstes auch von mehreren Anwendungen verwendet werden können, während beispielsweise eine DLL für jede App dupliziert werden müssen und benötigen die gleiche Implementierung Technologie wie die Verknüpfung Anwendung.

Dienste in einem SOA-Design sind in der Regel als interoperable Web Services implementiert.

Es gibt keine offizielle Definition als Ryan eariler erwähnt. Allerdings finde ich Thomas Erl Ansicht der gesamten Serviceorientierung recht gut strukturiert und relevant. Hier ist die Definition von SOA aus seinem SOA Glossar ( mehr ):

  

Service-orientierte Architektur stellt ein Architekturmodell, das die Agilität und Wirtschaftlichkeit eines Unternehmens verbessern soll, während die Gesamtbelastung der IT auf eine Organisation zu reduzieren.

Thomas Erl ist der Autor vieler SOA-Titel die meisten von ihnen empfangen Billigung von SOA-Anbieter wie IBM, Oracle und Microsoft. Das Schöne an seine Bücher ist, dass sie als SOA-Anbieter unabhängig wie möglich sind. Es bedeutet, dass Sie mehr über die Serviceorientierung lernen selbst und weniger über einige Middleware des Herstellers, die SOA unterstützt.

ich mit all den Menschen stimmen darin überein, dass Sie Fowler zu diesem Punkt. Im Grunde läuft es so: Service-orientierte Architektur einen Ruf als gut aufgestellt, so alles, was Menschen mit guter Verbindung gebracht werden wollen sie SOA nennen. In Wirklichkeit hat es viele Nachteile und kann eine Service Oriented Gridlock oder Dependency Oriented Architecture erstellen.

Hier ist mein gehen auf eine Definition: Service Oriented Architecture ist eine Systemintegration und die Wiederverwendung von Code Ansatz, bei den Anwendungen auf Dienste Verbinden von anderen laufenden Anwendungen über das Netzwerk bereitgestellt abhängig sind. Dies unterscheidet sich von Komponentenarchitekturen, in denen Softwarekomponenten statisch zwischen Anwendungen in Form von Bibliotheken oder SDKs gemeinsam genutzt werden, zum Beispiel.

Eine Klarstellung hier - „Service Oriented Architecture ist eine Systemintegration und die Wiederverwendung von Code Ansatz, bei den Anwendungen abhängig sind Anschluss an Dienstleistungen, die von anderen laufenden Anwendungen über das Netzwerk zur Verfügung gestellt . "

Ich habe ein Szenario, in dem zwei J2EE-Anwendungen integriert wurden ereignisgesteuerte Messaging. Hier wird die oben Sätze von Systemintegration und Anschluss an Dienstleistungen, die von anderen laufenden Anwendungen über das Netzwerk zur Verfügung gestellt halten gut. Kann ich diese SOA nennen?

Die folgenden Grundsätze gut halten würde hier 1) Zustandslosigkeit 2) -Nachricht orientiert - lose gekoppelten infact entkoppelten 3) erweiterbar.

Allerdings sind die folgenden nicht gelten 1) Plattformunabhängigkeit - weder die Anwendungen integriert wird entwickelt, um in einer anderen Plattform zu arbeiten. 2) Die Anwendungen sind reine J2EE-Anwendungen, die nicht mit allen soa Konzepte entwickelt haben.

Ich habe versucht, SOA zu definieren, in einer meiner Blog-Beiträge . Hier ist ein Auszug ...

  

Seit Jahren ist es gängige Praxis, um getrennte Funktionen in Funktionen, Klassen gewesen, und Module. Die Idee ist immer, dass diese kleineren, hochspezialisierte Komponenten sind leichter zu teilen und warten als monolithische Blöcke von Code.

     

Funktionell ist SOA nicht viel anders. Die Ziele sind die gleichen - Wiederverwertbarkeit und einfache Wartung. Der größte Unterschied - im Fall eines SOA Webservice - ist, dass die gemeinsam genutzte Bibliothek, die in Ihrer Anwendung mit einem HTTP-Aufruf ersetzt wird.

Hier ist eine Definition für Sie:

SOA - Software über Architected. Die Einbeziehung von sinnlos, über aufgebläht, funktionale Schnittstelle Rahmen genannt, eine Architektur in einer hübschen Webseite mit einem 3D-Grafik-Ordner von einer Seite zur anderen fliegen, wo „dir / s> a.txt | ftp -s: upload.ftp“ hat seinen Zweck erfüllt.

Software-Komponenten sind nicht Steine, nicht durch gemeinsame Funktionsmuster und Architektur verallgemeinern entsteht im Unternehmen von den guten Praxis, nicht gutes Design. Die Software ist nicht architected, es entwickelt.

SCRUM ON!

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