SOA - Architektur, was ist das?
WNietzsche
- webserver
0 Delfried0 Rouven0 FraFu0 FraFu
0 Daniel Thoma7 Sven Rautenberg
Hallo,
ich muss für die Vorlesung "Verteilte Systeme" verstehen was Service orientierte Architektur ist, tue mir da etwas schwer. Von daher hab ich mal das in meinen Worten aufgeschrieben. Könnte das jemand bitte verifizieren?
VIELEN DANK schon mal im Voraus!!!
SOA ist zunächst ein Paradigma, ein Konzept für dienstorientierte Architekturen in Netzwerken. Dabei werden Dienste von Dienstanbietern (Service Provider) zunächst in einem Verzeichnis (Registry Server) registriert. Clients (Service Consumer) können nach einer bestimmten Dienstleistung in diesen Verzeichnissen suchen, worauf sie einen Service Provider erhalten. Von diesem Service Provider können die Clients den benötigten Dienst beziehen.
SOA ist wie erwähnt lediglich ein Konzept, dessen Implementierung offen ist (ähnlich dem Interface-Konzept). Grundlegende Schritte sind jedoch:
Dienste können sich aus unterschiedlichen anderen Diensten zusammen setzen. Durch die offenen Schnittstellen können Teile ausgetauscht werden, was dem Benutzer jedoch verborgen bleibt.
So, dass ist mal meine Definition in eigenen Worten. Hätte mir vielleicht jemand ein Real Life Beispiel, eine Internetseite vielleicht wo man sich sowas mal anschauen könnte.
Grüße
Tag,
bin zwar erst in der Kollegstufe... habe also noch net studiert oder so.
Aber das klingt für mich wie zum Beispiel: www.monster.de (War zwar noch nie auf der Seite, aber das dürfte sowas sein).
1. Ein Arbeitgeber meldet sich bei Monster.de an und schreibt rein, welche Stellen er anzubieten hat.
2. Nun kommt ein Client (der Arbeitslose Hugo Egon) und kann nun nach einem Beruf suchen. Hugo sucht nun nach "Affenkäfigreiniger" und findet einen Eintrag.
3. Er kann sich nun auf Monster.de näher über diese Stelle informieren.
Ich hoffe ich habe mich net verlesen, aber so stell ich mir das ganze vor.
Habe aber deinen Eintrag bloß überflogen. Vllt. lieg ich auch völlig falsch.
Gruß, Delfried
Hi!
Aber das klingt für mich wie zum Beispiel: www.monster.de
Nomen est omen ...
(War zwar noch nie auf der Seite, aber das dürfte sowas sein).
Ich habe zwar noch kein Buch über Quantenmechanik gelesen, aber das dürfte eine Anleitung für die Anfertigung von Fußbekleidung sein.
Vllt. lieg ich auch völlig falsch.
Naja ...
off:PP
(War zwar noch nie auf der Seite, aber das dürfte sowas sein).
Ich habe zwar noch kein Buch über Quantenmechanik gelesen, aber das dürfte eine Anleitung für die Anfertigung von Fußbekleidung sein.
1. Ich wollte helfen und das soweit ich es verstanden habe.
2. Wir unterhalten uns hier nicht über Quantenphysik, und er hat ja beschrieben um was es geht.
3. Ich war zwar noch net auf der Seite, aber ich weiß, dank der bildenden Werbung, um was es auf ihr geht.
Gruß, Delfried
Hi!
- Ich wollte helfen und das soweit ich es verstanden habe.
Hey: ich wollte dir nichts böses - wie hier ja schon mal jemand geschrieben hat: "Hautpsache man hilft";)
- Wir unterhalten uns hier nicht über Quantenphysik, und er hat ja beschrieben um was es geht.
Eben.
- Ich war zwar noch net auf der Seite, aber ich weiß, dank der bildenden Werbung, um was es auf ihr geht.
Wenn du glaubst, dass Werbung einen Bildungsauftrag erfüllt, hast Du Werbung und / oder Bildung nicht verstanden;)
peace, please!
off:PP
Das mit der "bildenden" Werbung war auch eher sarkastisch gedacht ;)
War eben das einzige Beispiel was mir spontan en den Kopf gekommen ist, dass ich zufällig vor ner Weile mal ne recht lustige Werbung von denen gesehen habe... ;) und nein ich beziehe meine Bildung nicht aus dem Fernsehen oder der Bild. :D
Gruß, Delfried
Hi!
und nein ich beziehe meine Bildung nicht aus dem Fernsehen oder der Bild. :D
Ach du bist das! ;)
off:PP
Hello,
So, dass ist mal meine Definition in eigenen Worten. Hätte mir vielleicht jemand ein Real Life Beispiel, eine Internetseite vielleicht wo man sich sowas mal anschauen könnte.
ein grundsätzliches Problem hast du selbst erwähnt. SOA ist zunächst ein Paradigma, inwiefern du auf Anhieb ein Paradebeispiel findest ist fragwürdig. Insbesondere ist mir persönlich noch keine SOA untergekommen, die wirklich von der Registry Gebrauch machen würde. Was du relativ häufig findest sind Architekturen, bei denen Consumer und Provider direkt miteinander verbunden sind. Der Unterschied zu "traditionellen" Ansätzen ist dabei die Nutzung der offenen Schnittstelle (XML-Dialekte), wodurch in der Theorie der Austausch leichter möglich werden soll.
Eine relativ bekannte Implementierung von SOA sind sogenannte Webservices, hierfür gibt es in der Tat zahlreiche Implementierungen, z.B. Amazon Web Services.
Vielleicht findest du neben der Wikipedia bei IBM developerWorks noch ein paar Inspirationen.
MfG
Rouven
Bisher her danke für alle Antworten! Denke ich hab's soweit verstanden, im Laufe der Vorlesung wird sich das Wissen dann noch weiter vertiefen.
Gruß
Hallo!
So, dass ist mal meine Definition in eigenen Worten.
Fürs Archiv: diese Definition ist definitv falsch.
mfg
frafu
Hallo!
Keine Ahnung wie das als Antwort aufs Root Posting gekommen ist. Eigentlich wollte ich auf dieses Posting antworten.
mfg
frafu
Hallo WNietzsche,
SOA ist meiner Meinung nach mehr, als nur ein Konzept für Softwarearchitektur. Es ist vor allem auch ein Konzept, die IT eines Unternehmens zu organisieren.
Es geht nicht um eine Architektur für ein einzelnes System, sondern um eine Architektur für ein ganzes Unternehmen um einzelne Systeme zusammenarbeiten zu lassen.
Beispiele für Dienste wären dann sowas wie: Lagerhaltung, Einkaufs-, Vertriebssysteme, Lohnbuchhaltung etc. Solche Dienste haben bei SOA plattformunabhängige Schnittstellen (eben meist XML per HTTP, aka Webservices).
Das ermöglicht dann, sehr einfach systemübergreifende Arbeitsabläufe zu automatisieren. SOA-Leute nennen das dann auch "Orchestrierung".
Das passiert dann meistens über Regelsysteme, Spezielle Programmiersprachen (z.B. BPEL).
Wichtig ist, dass das eben keine reine Softwaresache ist. Es reicht nicht, irgendwo ein bisschen XML hin- und her zu schicken und teure Software von IBM zu kaufen. Die gesamte IT-Architektur und wahrscheinlich auch die Organisation des Unternehmens selbst muss auch darauf ausgerichtet sein.
Ein (zentrales) Repository für Dienste muss es meines Erachtens übrigens nicht geben. Vermutlich gibt es sowas auch meist nicht, weil die Unternehmen dazu zu chaotisch organisiert sind ;-)
Grüße
Daniel
Moin!
ich muss für die Vorlesung "Verteilte Systeme" verstehen was Service orientierte Architektur ist, tue mir da etwas schwer. Von daher hab ich mal das in meinen Worten aufgeschrieben. Könnte das jemand bitte verifizieren?
Die Recherche nach SOA bringt einen selbstverständlich erstmal zur Wikipedia: http://de.wikipedia.org/wiki/Serviceorientierte_Architektur
Allerdings: Wenn man sich den Artikel laut vorlesen lassen würde, würde man man mit Sicherheit jedes Bullshit-Bingo gewinnen. Das mache ich vor allem daran fest, dass es für SOA offenbar nur sehr schwammige Definitionen gibt - und dass im Wikipedia-Artikel als Beispiel und Erklärhilfe Realwelt-Beispiele verwendet werden, die mir schon bei der Erklärung der OOP nicht sehr gefallen. Realwelt-Beispiele wie "Ein Auto-Objekt hat eine Eigenschaft AnzahlReifen und eine Methode MotorStarten" greifen einfach zu kurz, um deutlicher zu machen, worum es bei der Abstraktion der OOP geht. Man hantiert, selbst in einer Applikation für Autohändler, nicht mit solchen Realwelt-Objekten, sondern verläßt die Ebene der elektronischen Daten eben gerade nicht.
Dasselbe Problem hat IMO die Erklärung von SOA in der Wikipedia. Aber wenigstens gibts dort weiterführende Links, und die Nummer 2 scheint mir deutlich brauchbarer, auch deshalb, weil sie von Anfang an viel selbstkritischer ist:
"Was ist SOA? (zurück)
Eine breit akzeptierte Antwort auf diese Frage gibt es nicht. Je nachdem, ob eine technische oder eine wirtschaftliche Sicht im Vordergrund steht, finden sich unterschiedliche Definitionen."
Dort im Blog trifft man auch auf Artikel wie diesen: Platzt die SOA-Blase?. Dem Blogartikel und auch den Kommentaren ist eindeutig zu entnehmen, dass das Schlagwort SOA eindeutig eine sehr hohe Hype-Komponente hat.
Wie schön, dass es auch dazu Erklärungsmodelle bzw. übergreifende Beobachtungen gibt: Den Hype-Zyklus (schöne Grafiken hier). Wenn ich sowohl die Erklärungsversuche, was SOA sein soll, als auch den Blasenartikel, zusammenfasse, dann dürfte SOA sich vermutlich gerade aus dem Tal der Enttäuschung herausarbeiten. Was wiederum bedeutet, dass sich aus der Vergangenheit eine überquellende Vielzahl von Erwartungen, Hoffnungen und sogar unrealistischen Phantasien angesammelt hat, was SOA denn alles sein soll und können kann, die zum heutigen Zeitpunkt noch nicht alle durchsortiert und auf Realismus geprüft wurden.
Soll heißen: Es gibt sicherlich realistische, durch die ersten enttäuschten Erfahrungen geläuterte Erkenntnisse, was SOA ist - aber genauso gibt es vor allem aus älteren Quellen noch ganz viel, was rückblickend einfach nur als Unsinn bezeichnet werden muss.
Sollte ich es definieren, würde ich es so versuchen:
Service-orientierte Architektur ist eine Herangehensweise zur Lösung von unternehmensweiten Softwareproblemen, die auf zwei Ebenen ansetzt:
1. Die globale Sicht: SOA erfordert das Isolieren und Unabhängigmachen von einzelnen Geschäftsprozessen. Damit das erfolgen kann, müssen alle Organisationseinheiten des Unternehmens, die Nutzer und/oder Anbieter solcher Services sein wollen, ihre Denkweise auf diese Struktur umstellen, nämlich dass ein erfolgreiches Unternehmen nur durch erfolgreiche Abwicklung von Geschäftsprozessen entsteht, diese Geschäftsprozesse sich aus erfolgreicher Abwicklung von jeweiligen Einzelschritten zusammensetzen, und dass die einzelnen Organisationseinheiten für ihren Teil dieser Einzelschritte verantwortlich sind, dies aber nur dann erfolgreich funktioniert, wenn über die gemeinsam definierte Schnittstelle der SOA eine erfolgreiche Zusammenarbeit mit anderen Organisationseinheiten erfolgt.
Es ist also eine unternehmensweite Umstellung der Denkweise erforderlich, damit SOA überhaupt funktionieren kann.
2. Die Implementierungssicht: Die technische Umsetzung von SOA zielt natürlich darauf, dass einheitliche Schnittstellen im Netz publiziert und genutzt werden, und dass ggf. auch Services intern komplett umgebaut werden können, weil sich die dahinter liegende Struktur ändern soll - dies aber keine Auswirkungen auf die Nutzung bzw. das Interface hat. Darüber hinaus ist SOA allerdings höchst schwammig definiert, wie das bei Paradigmen nun mal so ist: Implementierungsdetails werden dem Leser als Übungsaufgabe überlassen.
Im Prinzip könnte man auf dieser technischen Ebene SOA auch als "OOP via Netzwerkkommunikation" definieren. Und vermutlich läuft es bei der konkreten Realisierung auch genau darauf hinaus, dass man sich mit OOP das Serviceinterface und die dahinterliegende Logik zusammenbastelt, und eventuell seinerseits als SOA-Nutzer andere Services nutzt - genauso wie man in OOP eine Klasse schreiben würde, die ein Interface anbietet, und intern auch wieder andere Klassen eingebunden sind, die von woanders her stammen. Der Vorteil von SOA zu OOP wäre halt, dass durch das Service-Interface eine zusätzliche Abstraktion bzw. Trennung hinzukommt, die es ermöglicht, Services räumlich, zeitlich und implementierungsmäßig zu trennen. Nicht jeder Service muss in der gleichen Sprache geschrieben sein und auf dem gleichen Server bzw. am gleichen Standort stehen, und eventuell auch nicht sofort reagieren.
Ich erwarte selbstverständlich Widerspruch für meine obigen Ausführungen, denn ich gebe gerne zu, dass ich von der Materie, außer durch Lektüre der verlinkten Artikel, eigentlich keine Ahnung habe - noch nicht. :)
- Sven Rautenberg
Immer wieder ein Vergnügen deine Beiträge zu lesen :-) Danke + Gruß