XML Basis von SOA



  • Hallo,

    ich muss eine Hausarbeit machen und darf mir das Thema selbst aussuchen.
    Der Bereich XML interessier mit.Evtl einen XML-Parser in C++ bauen.
    Ausserdem als weitere neue Technologie SOA und das Ganze nun gut mixen (nicht schütteln 😉 )

    Mein Problem: wie bringe ich SOA XML und C++ in Verbindung.
    Okay SOA und C++ vielleicht in der Form von serviceorientierg against objektorientierung. Wie mische ich jetzt aber noch das mit XML rein. Schwerpunkt sollte eigetnlich auf XML liegen.

    Da mir bezüglich SOA das Wissen fehlt, kannn ich keine echte Verknüpfg herstellen.

    Für Input bin ich sehr sehr dankbar.

    LG, eure diva



  • Sicher, dass du SOA richtig verstanden hast? SOA steht jedenfalls mit XML sehr eng in Verbindung, siehe "Implementierung einer SOA", was z.B. auf Webservices verweist, deren Kommunikation auf XML basiert. Soweit ich weiß, ist XML Quasi-Standard zur Kommunikation von Internet-Komponenten und Service-orientierte Architekturen zielen ja genau auf diese verteilten, miteinander kommunizierenden Anwendungen ab.



  • leider kenne ich mich mit SOA nicht wirklich aus. Also wozu es gut sein soll, kann man zwar nachlesen, aber wie genau es umgesetzt wird?
    Könnte ich SOA als Thematik in mein Projekt XML-Parser bauen irgendwie "aktiv" reinbringen, oder ist SOA eher bzgl. webservice angebracht.

    Für Tips wre ich sehr dankbar

    LG, diva



  • Ich finde, es beißt sich etwas. Serviceorientierte Architekturen sind recht abstrakt während eine Xml-Parser-Implementation hart "on the ground" ist. Als Hausarbeit an sich finde ich das Thema Xml+SOA aber gut.
    Da du deinen Fokus ja auf XML legen willst, böten sich statt SOA ein paar Sachen rund um XML herum an, also z.B. Xml-Schemata oder DTDs.



  • Hallo Badestrand,

    vielen Dank für deine Antwort.
    Endlich bekomme ich eine Frage auf meine Antwort. Da es sich beißt, habe ich wahrscheinlich auf in google nichts entsprechendes gefunden.
    SOA + XML kam immer in serviceorientierten Architekturen vor.

    Also habe ich mir folgende "Umformulierung" ausgedacht:

    "XML und SOA zwei neue Technologien im Zusammenspiel mit C++"

    Ich könnte auf XML und SOA an sich eingehen, dann XML mit C++(den Parser) und SOA mit C++(serviceorientiert gegen objektorientiert).
    Ganz rund ist es aber irgendwie trotzdem nicht.
    C++ nehme ich nur mit rein, weil ich den Parser während meines Praktikums schon fast fertig programmiert habe.Und SOA will der Prof in jedem Thema eingebaut haben.

    Vielleicht siehst du einen roten Faden? Also was meine Motivation was mein Ziel sein soll mit dieser Arbeit? Evtl. sowas. Modernes in Kombination mit etwas "ansässigem" wie C++?
    Mein Problem ist, dass ich SOA+XML+C++ nicht in Einklang bringe. Aber wie vorhin beschrieben XML mit C++ und SOA mit C++.

    Was meinst du?

    LG, Kirsten



  • Endlich bekomme ich eine Frage auf meine Antwort

    Ich meinte natürlich, dass ich endlich eine Antwort auf meine Frage bekommen habe 😃



  • SOA + XML kam immer in serviceorientierten Architekturen vor

    .
    Ich meinte natürlich was anderes. SOA und XML kommen zusammen in webservice Bereich vor.



  • diva schrieb:

    Also habe ich mir folgende "Umformulierung" ausgedacht:

    "XML und SOA zwei neue Technologien im Zusammenspiel mit C++"

    Ich könnte auf XML und SOA an sich eingehen, dann XML mit C++(den Parser) und SOA mit C++(serviceorientiert gegen objektorientiert).
    Ganz rund ist es aber irgendwie trotzdem nicht.

    Das klingt doch schon ganz gut, bis auf das "SOA mit C++" 😉 Irgendwie hakt's da jedenfalls bei mir, wahrscheinlich weil SOA (mindestens) zwei Seiten hat, Dienste und Dienstnehmer; du meinst Dienstnutzer in C++, oder? Also wie die Software strukturiert ist, wenn sie Services benutzt? Ich weiß nicht, was man da groß schreiben könnte, Dienste in Anspruch zu nehmen ist im besten Fall nicht mehr als ein Funktionsaufruf, aber wenn du da Ideen hast, ist das sicherlich nicht schlecht.
    Was mir noch einfallen würde, wäre z.B. welche Rolle C++ generell in der SOA-Welt hat oder auch noch, wie die Unterstützung von z.B. Webservices in C++ aussieht, also ob/wieviele Bibliotheken es so gibt oder Ähnliches..

    diva schrieb:

    Vielleicht siehst du einen roten Faden? Also was meine Motivation was mein Ziel sein soll mit dieser Arbeit? Evtl. sowas. Modernes in Kombination mit etwas "ansässigem" wie C++?

    Das mit dem roten Faden ist schwierig, da hast du Recht. Je nachdem, wie umfangreich die Hausarbeit werden soll, könntest du evtl erst einmal entscheiden, welche Themen du tiefer reinnehmen willst, um das klar abzugrenzen und welche du kurz anreißen, also mit wenigen Worten vorstellen, willst.
    Zu XML gibt's ja natürlich XML an sich, DTDs, Schemas, die Rolle von XML im Web und auf dem Desktop. SOA mit Webservices, Verbreitung derselben, übliche Praxis (ich kenne es z.B. so, dass in der Praxis Webservices fast immer in Java implementiert sind). Und dann halt C++ mit Xml-Parser und Webservices in C++. Evtl kannst du C++ an Performance aufhängen, da stark benutzte Webdienste schnell den Server zusammenbrechen lassen - schnelle Xml-Parser und direkte Kommunikation unter den Dienst-Komponenten kann da einiges rausholen.

    Übrigens: Ich bin aber weder SOA- noch XML- oder Hausarbeiten-Experte, deshalb sei lieber vorsichtig mit mir, nicht dass ich dir irgendwelche Ideen in den Kopf setze, die nachher doch nicht in die Hausarbeit passen 🙂



  • Hallo Badestrand,

    vielen Dank für deine Infos. Ich habe das jetzt mal so gesammelt und an den Prof ne mail geschickt. Mal sehen, was er antwortet.

    Da waren jedenfalls echt gute Ideen dabei. Danke 🙂

    Du bist ein Schatz.

    VG, Kirsten



  • SOA ist keine Technologie, sondern ein Architekturstil. Und letztendlich ist eine SOA auch nichts anderes als eine Schichtenarchitektur, nur mit klar definierten Zuständigkeiten. Ist aber blöd das hier im Forum zu erklären, da gibts zahlreiche Artikel, Bücher usw. dazu, die das ganze auch schön anhand netten Bildchen veranschaulichen.

    Du bringst hier also einige Dinge böse durcheinander.
    XML ist eine sog. Auszeichnungssprache, mit der man Daten in Form von Textdateien hierarchisch strukturieren und darstellen kann (da es normaler ASCII-Text ist, kann eben jeder bzw. jedes Programm, solche XML-Dateien lesen bzw. parsen).
    C++ ist eine Programmiersprache, mit der du Programme bzw. Programmbibliotheken usw. entwickeln kannst.

    Der grobe Grundgedanke einer SOA ist eben der, dass du eine Schicht hast, in der sich deine reinen Anwendungskomponenten befinden, die in irgendeiner Programmiersprache (eben z.B. C++) realisiert sind. In dieser Schicht ist aber wie gesagt ausschließlich die pure Anwendungslogik enthalten, irgendwelche Kommunikationsspezifischen Dinge (z.B. wie man aus dem Netzwerk heraus diese Anwendung(en) benutzen kann) ist hier nicht drin. Das kommt in die sog. Service-Schicht drüber, welche eben diese Logik so nach außen zur Verfügung stellt, dass man es mit jeder x-beliebigen Programmiersprache von jeder x-beliebigen Plattform nutzen kann. D.h. ein Dienstenutzer (auch ein Programm, z.B. ein Java-Programm) kann dann über diese Services, deine C++ Anwendung beliebig benutzen und evtl. auch mit anderen Services von anderen Anwendungen kombinieren. Diese Service-Schicht wird dann eben typischerweise mit WebServices realisiert, welche dann eben über das SOAP-Protokoll Nachrichten austauschen. Und SOAP-Nachrichten sind via XML kodiert. So gesehen benutzt jede SOA XML. Aber es ist kein Muss. Man könnte sich hier auch ganz andere Kommunikationstechnologien vorstellen, unabhängig von WebServies und XML. Aber das wird normalerweise immer benutzt.

    Aber wie gesagt: Google mal ein bisschen, da wirst du eine Fülle an Infos zu dem Thema finden, wo das ganze viel besser (präziser) und verständlicher erklärt ist.



  • Hallo nep,

    mein Problem ist, dass mir das Verständnis für SOA in der Umsetzung fehlt.
    Es fehlt einfach.
    Wie bereits erwähnt habe ich mit XML gearbeitet und programmiere in C++ diesen XML - Parser.
    So wie du das schilderst, könnte es reichen, wenn ich- nachdem der Parser fertig ist- aufzeige: wie das unter SOA umzusetzen wäre? Z.B. auch in einer webanwendung.

    Ich hatte in einem Inhaltverzeichnis (ein Buch bei amazon.de) etwas mit dem Kapitel SOA gegen Objektorientiert gelesen. Also gibt es da parallelen?



  • Nochmal: Die Entwicklung eines XML Parsers in C++ hat mit SOA nichts zu tun. Du vergleichst hier Äpfel mit Birnen.

    OOP hat eigentlich auch nichts mit SOA zu tun. OOP ist ein Programmierparadigma, was bedeutet, dass du Computerprogramme mit Hilfe von Objekten umsetzt, im Gegensatz z.B. zur prozeduralen Programmierung. Mithilfe einer SOA kannst du der Außenwelt jedoch die Funktionalitäten von Anwendungen die mit beiden Paradigmen entwickelt wurden zugänglich machen. Eben über Services. Da die meisten heutigen verwendeten Programmiersprachen aber objektorientiert sind, werden diese Services im Prinzip auch meistens "objektorientiert erstellt" bzw. mithilfe von Objekten genutzt. Services sind ansonsten aber im Prinzip wieder eine Ebene über der OOP anzusiedeln wenn man so will.

    Kannst dir ja auch mal ein paar WebService-Tutorials durchlesen, vielleicht verstehst du dann besser was das mit SOA auf sich hat...


Anmelden zum Antworten