Model-Driven & Service-Oriented Architectures (MDA + SOA)
Posts 1-6 of 6
-
Mohammed Unewisse Premium MemberThe company name is only visible to registered members.SOA, oder Orchester sind besser als Stereoanlagen….
Als erstes ein Hinweis an die Musikfreunde, in diesem Beitrag geht es nicht um Musik, außer vielleicht bei den klingenden Kassen der SOA-Stakeholder.
Inspiriert durch einen Artikel über die Orchestrierung von WebServices sind mir doch einige Vergleiche zum Wortstamm ‚Orchester’ in den Sinn gekommen. Stellen Sie sich vor…
Uwe Unternehmer ist begeisterter Musikfreund, deswegen hat er sich vor einigen Jahren einen richtig guten CD-Player (ERP-Basis A) gekauft. Dazu hat er sich seine bevorzugten und wichtigsten Symphonien(Geschäftsprozesse) auf CD besorgt. Über die vielfältigen Knöpfe der Fernbedienung(Konfigurationsschalter) kann er das Musikerlebnis in einem gewissen Rahmen auf seine Bedürfnisse(Customizing) anpassen.
Im Laufe der Zeit langweilt sich UWE dabei, die Symphonien immer wieder sehr ähnlich anhören zu müssen (Änderung der GP). Er malt sich aus, dass das dritte Stück von Symphonie A doch sehr gut in die Symphonie B passen würde (Mischen von Prozessen), oder aber ein ganz bestimmter Bereich sich mit einer rockigen E-Gitarre statt einer klassischen viel besser anhören würde (integrieren anderer Prozesse). Als er dann in die Bedienungsanleitung seines CD-Players schaut, sieht er dass das eine nur mit sehr großen Aufwand, CD Wechsler kaufen, und das andere gar nicht möglich ist. Schon nicht mehr ganz so begeistert von seinem CD-Player, trifft er Lars Lieferant, der ihm von einer ganz seltenen Symphonie von Beethoven erzählt. Teile dieser Symphonie wollte Uwe schon immer haben, also fragt er Lars ob er ihm die CD zur Verfügung stellen kann. „Moment mal“, sagt Lars „wer hat was von CD erzählt, ich habe doch noch einen Schallplattenspieler!!!“ (Integration von Fremdprodukten bzw. proprietärer Software). Also kann es Uwe auch hier vergessen, ganz gemütlich von zu Hause aus die Musik zu genießen, er muss zu Lars fahren. Komischerweise trifft ihn das gleiche Schicksal mit Karla Kunde, da sie nur ein Kassettenabspielgerät hat.
Enttäuscht darüber, dass er seine ganz speziellen Musikbedürfnisse mittels des CD-Players nicht abdecken kann, schaut er sich nach Alternativen um.
Da er der Mensch ist, der den Lotto-Jackpot geknackt hat, spielt Geld für ihn keine Rolle(hier hinkt der Vergleich ein wenig, man kann nicht alles haben;-). Und er entscheidet sich für die Radikallösung: Individuelle Musikproduktion (SOA). Als Basis kauft er sich ein Tonstudio mit Notfalls Platz für ein ganzes Symphonie-Orchester (SOA-Plattform). Der Verkäufer versprach ihm, dass jetzt jeder noch so ausgefallene Musikwunsch realisiert werden kann, einfach in dem er sich Musiker(Service) sucht und diese orchestriert. Und noch besser, die müssen gar nicht alle am gleichen Ort sein (WebService), sondern die Musiker könnten doch die Musik auf Tonband aufnehmen und ihm zusenden, diese Tonbänder müsse er dann nur noch in sein Gesamtwerk einmischen.
Und auch das ganze drum herum wäre ganz einfach, es gibt eine Partitur (BPML), die jedem Musiker seinen Platz und seine Aufgaben im Stück vorschreiben. Es gibt eine Agentur, über die man die richtigen Musiker bekommt, die Union der Dirigenten und Instrumentenspieler (UDDI) in dem alle Musiker ein Profil(WSDL) eingetragen haben, das beschreibt welches Instrument und welche Musikrichtung sie spielen können.
Also schnell unterschrieben, um schnell ein erstes Musikerlebnis zu haben sucht er sich die Musiker anhand dessen Profil zusammen und sendet ihnen die Partitur mit der bitte, ihm doch die eigene Aufnahme (Servie-Ergebnis) auf Tonband (SOAP) zu zusenden.
Was denken sie was passiert? (s. nächstes Posting)
- 16 Dec 2004, 10:23 am
-
Mohammed Unewisse Premium MemberThe company name is only visible to registered members.Re: ….aber wesentlich schwerer zu Bedienen!!!!
Als erstes dauert das Rücksenden der Tonbänder wesentlich länger als geplant, da die Musiker im Profil nicht angeben mussten, wann sie im Urlaub oder krank sind (QoS – Quality of Service) und so viele gar nicht auf die Aufforderung reagiert haben.
Irgendwann sind aber dann alle Tonbänder eingetroffen. Beim ersten Versuch mischt Uwe die einzelnen Tonbänder ohne viel Aufwand zusammen, legt sich entspannt zurück drückt die ‚Abspielen’ Taste und es trifft in ein Schlag. Auch wenn alle Musiker nach derselben Partitur spielen, heißt das noch lange nicht, dass am Ende eine harmonische Melodie herauskommt. Nur die Triangel hört sich einwandfrei an (einfacher Standard-Service wie Börsenkurse).
Uwe denkt sich, dass dieses alles ja nur daran liegt, dass die Musiker auf der Welt verteilt sind und ich nicht genügend Informationen über sie habe (WebService), also fängt er an sich ein eigenes Orchester zusammen zustellen. Jetzt sollte es ja wohl einfach klappen, alle Musiker sind vor Ort. Da kommt plötzlich heraus, dass Musiker A eine ganz große Abneigung gegen Musiker B hat und die sich überhaupt nicht verstehen und eigentlich nie miteinander spielen werden können. Uwe stellt schnell fest, dass sich eine Gruppe Musiker wie eine Horde Bienen verhält. Sie entwickeln sich unterschiedlich schnell, der eine Musiker spielt schon richtig gut auch die ausgefallensten Stücke, der andere Musiker hat von den neuesten Kniffen auf seinem Instrument noch nichts gehört. Da Musiker Künstler sind, sind sie auch sehr Anspruchsvoll was die Pflege angeht(Wartung), sie werden Krank (Support) u.s.w.
Und auch wenn die neuen Partituren (BPML) komplette Individualentwicklungen sind, was viel Arbeit und Zeit gekostet hat, stellt sich am Ende häufig heraus, dass es doch nicht ganz so das ist was Uwe gerne hören wollte. Langsam würde Uwe sich freuen, seinen CD-Player nicht so schnell aus dem Fenster geworfen zu haben um wenigsten die aller wichtigsten und besten Stücke noch auf CD zu haben.
Kann man es Uwe denn gar nicht recht machen?
Wie wäre es, wenn er ein fertig ausgebildetes Orchester bekommt, das die wichtigsten Symphonien schon so oft gespielt hat, aber ziemlich freundlich zu Musikern ist, die neu hinzukommen oder gerne mal eine JAM-Session zusammen spielen wollen?
…. So zurück in der Wirklichkeit
Was wollte ich jetzt eigentlich damit ausdrücken? Ich glaube das SOA ein viel versprechender Ansatz ist, aber dass Services mal ebenso en passant orchestriert werden können und das man dieses sogar noch weltweit verteilt machen kann, fehlt mir ein wenig der Glauben. Um aber ein wenig Werbung für meinen Arbeitgeber zu machen, diese letzte Lösung, wie man es Uwe recht machen könnte, entspricht wohl am ehesten der ESA-Strategie, wie ich sie von SAP verstanden habe. Neben einer Service orientierten Plattform (Netweaver) werden, sind wesentliche Services im ERP schon enthalten.
So, jetzt ist Mittagszeit und meine Kreativität hat Pause,
Viele Grüße aus Walldorf
Mohammed Unewisse
- 16 Dec 2004, 10:25 am
-
Post visible to registered members
-
Post visible to registered members
-
Post visible to registered members
-
Marcel Donges Premium MemberThe company name is only visible to registered members.Re^2: SOA, oder Orchester sind besser als Stereoanlagen….
Ein Thread über SOA, in dem Einigkeit der Grundtonus ist, ist selten. Es hat mich gefreut Ihren reifen Bildern zu folgen.
Auch das Bild der Anker und Bojen hat mir gefallen.
Ich liebe es ein Thema aufzugreifen, nicht nur stehen zu lassen, sondern weiterzudenken und zu einem Ergebnis zu kommen, dass vorher keinem (auch mir nicht) klar war und so Fortschritt zu erzielen. Das geht nur mit Bildern und klaren Definitionen...
Anker := DatenService
:=
1. eine Entität := eine Daten-abstraktion eines Gegenstandes der realen Welt
aus Attributen (Daten mit Format)
und Referenzen
auf Entitäten und Mengen von Entitäten unterschiedlicher Datenstrukturen (z.B. Set, List, Map,Tree,...)
2. mit einer Schnittstelle (:= Menge von Signaturen := name,eingabeparameter,rückgabewert)
3. mit vorgegebener CRUD-Semantik (Semantik := Sinn (bezogen auf die Signatur)
C := Create Instances of the Entity, (erstellt Identität und hülle)
R := Retrieve (Lesende Zugriffe wie findAll, findBy..., findById, getDetailsByFetchGroup, getReferencedEntity)
U := Update Schreibt Attribute oder Referenzen der Instanz der Entität
D := Delete Löscht die Instanz der Entität und ihre Id
Die Implementierungen der Schnittstellen folgen den ACID Principien ( := spar ich mir jetzt hier ;-)
(
Leinen zwischen Anker und Bojen := DataIntegrityServices
gewährleisten die Datenintegrität für eine Menge von Entitäten bezogen auf eine Menge von Anwendungsfällen durch die Benutzung von DatenServices
)
Bojen := realisierte Anwendungsfälle
„transaktionale Skripte“ (s. Martin Fowler)
1. im einfachsten Fall: eine Liste von Aufrufen von DatenServices, die einen Anwendungsfall des Geschäftsprozesses (z.B. Kunde zieht um) durch Manipulation der DatenServices realisieren
2. im komplexesten Fall: eine Liste von Aufrufen von Bojen, DataIntegrityServices und DatenServices.
(z.B. Kunde ziekt um => a = person.getAddress(); a.set…,…,VersicherungsProzess.bojeÄndereVersichertenRisikodaten(person,a); VersicherungsProzess.validiereVertragsDaten(person))
:= Service := Vertrag
:= Signatur (Ergebnisdatengraph bojenName(Eingabedatenteilgraph, Eingabedatenteilgraph,...) mit definiertem Zusatndsübergang
Anker und Bojen bilden eine „lineare Algebra“, sogar eine Touring Maschine (hat übrigens nichts mit BMW zu tun ;-), vielleicht sogar eine sehr komfortable (aus Entitäten und Anwendungsfällen)?
Die Menge der Bojen ist die Menge der Services die zur Verfügung stehen um einen Geschäftsprozess zu beschreiben, der den Zustand eines Unternehmens (Der Zustand seiner Entitäten) modifiziert?
Über das Web bin ich in der Lage Bojen anderer Couleur (anderer Unternehmen) einzubinden.
Interoperabilität:
Wie schicke ich den Ergebnisdatengraph: SDO?, CORBA Object by Value?, Java POJO Graph über RMI (over IIOP? ups ist ja das gleiche wie CORBA OBV)? Oder Proprietär damit Sicher(nichtinteroperabel) ;-)
Weiß ich eigentlich, dass es hier globale proven standards gibt? Hab ich sie verstanden? Setzt sie eigentlich überhaupt jemand ein?
Macht es eigentlich noch Sinn Deutsch oder Französisch zu reden, seit es English gibt ;-)
Wo ist der verdammte Babelfisch… ah im EAI JCA Adapter…hoffentlich…
Und was mach ich am liebsten? Java! Dann also POJOs und gut is!
Und wie rufe ich die Bojen auf?
CORBA, WebServices, GIOP, RMI, SOAP, RPC, TCP/IP, Sockets, IIOP,…? Weiß ich eigentlich was das ist? Warum ist CORBA so tot wie TCP/IP? Was sind eigentlich Abstraktionslayer und was haben Stummel an Skeletten verloren? I mean Stubs and Skeletons, n’es pas!
Die Globalisierte Businesswelt hat sich auf English geeinigt; wer nicht mitmacht kann nicht verhandeln…bitte jetzt nicht danach fragen ob es gut oder schlecht ist, aber die Englisch reden und internationale Geschäfte machen verdienen auch globale Umsätze. Ist es eine Auszeichnung in einer globalen Welt auf einer einsamen Insel zu leben und zu hoffen dass alle es so machen wie ich es immer schon gemacht habe?
CORBA, WebServices, GIOP, RMI, SOAP, RPC, TCP/IP, Sockets, IIOP,…?
Was ist eigentlich wofür?
Kann man mit Wörten und Sätzen genau so gut rechnen wie mit Zahlen und Zeichen?
Was ist das Beste wofür?
Bin ich mündig genug in so einer Welt mitzureden? Hab ich wenigstens jemanden Angestellt, der mitreden kann und bin ich sein guter Freund?
Interoperabilität ist Infrastruktursache, das Interoperable Produkt überlebt
(zumindest beim DVD Player oder ist der Markt doch dümmer als die Hersteller ;-)
(Wer ist jetzt der Dumme? Der Player Hersteller oder der Rohlinghersteller oder doch der Kunde ;-)
Ist der Early Bird wirklich immer der mit dem Wurm?
Wird es nicht Zeit ein paar passendere Sprichwörter zu wied-er-finden?
Auf meiner Insel hab ich Prozesshoheit und bestimme wie die Boje von innen aussieht!
Auf meiner Insel spreche ich meine Sprache! Diplomatie ist was anderes!
Meine Anker sieht eh keiner.
Doch was mache ich, wenn ich globalisierte Bojen unter meine Prozesshoheit bringen will?
Was ist eine lose gekoppelte Boje unter Prozesshoheit eigentlich?
Mein Prozess ist transaktional! Deiner auch? Und wenn nicht? Dann will ich immer noch Prozesshoheit mit Transaktionalität und das wirst du auch nicht ändern! Tarnsaktionalität ist für Konsistenz und inkonsistent will ich nicht!
Ich weiß du kannst vorwärts, dann kannst du auch rückwärts!
Du kannst wirklich nicht rückwärts? Mach ich Geschäfte ohne Garantie? Nee, mit dir nicht!
Du kannst jetzt auch Rückwärts, ok, und transaktional?
Immer noch nicht?
Na ja, aber ich! Wenn du rückwärts kannst.
(Kann das sonst noch jemand außer Xcalia out of the Box?)
Lass uns Geschäfte machen! Gib sie her die Boje ;-)
Was liefert deine Boje jetzt eigentlich? Nein nicht technisch, sondern was sind das für Daten in deinem Ergebnisgraph?
Was bedeuten sie?
Was interessiert mich dein verrosteter mit Modder behangener Anker?
Ok, auf eins müssen wir uns wohl doch einigen: Business English, CNN English oder Black Englisch oder Street English
Was bedeuten deine Entitäten? Und ihre Attribute?
Unternehmensübergreifende Datensemantik (nicht Formate) sonst habe ich einen Aktienkurs und weis dann doch nicht ob Tageshoch oder –tief oder aktuell? Und soll ich nun kaufen?
Was ist das für ein Parameter?
Oh, denn kann ich nicht liefern…ok, den bekomme ich also von der anderen Boje von dir… und was braucht die für Parameter? Und wo bekomme ich die her? Aha da von der Boje und ….
Momentmoment, kannst du mir mal sagen welche Bojen überhaupt alle dir gehören?
Ich glaub ich hab’s: Boje3;Boje2;Boje4; Boje1; Boje5…
In dieser Reihenfolge, dann müsste es gehen…
Und schon ist sie dahin meine Prozesshoheit! Geht dass nicht auch noch anders? Verflixt wie soll ich dass jetzt rauskriegen?
Hast du mal ein Navigationssystem über deine Bojen?
Dass wäre mal ‚ne lose transaktionale Kopplung.
Ich sag dir was ich für Daten im Ergebnisgraph will und du sagst mir alle Folgen von Bojen die ich dazu nutzen kann!
Dann gibst du mir noch die Kosten (€, Ausführungszeit, QoS) deiner Angebote und ich nehm’ einen!
Kann das auch noch ein anderer außer Xcalia?
Und wenn was bei dir schief geht, fahr ich die Bojen halt rückwärts ab…
Wo fangen wir zusammen an, wie machen wir weiter?
Just my 2 cents
MfG
Marcel Donges
- 13 Oct 2006, 6:59 pm
