Distributed Programming in.net

Größe: px
Ab Seite anzeigen:

Download "Distributed Programming in.net"

Transkript

1 Distributed Programming in.net Master Seminar Advanced Software Engineering Topics Prof. Jacques Pasquier-Rocha University of Fribourg, Switzerland Department of Informatics Software Engineering Group Author: Robert Feldmann Supervisor: Patrik Fuhrer May 8, 2003

2 Inhaltsverzeichnis 1. Einführung NET Remoting Konzept Beispiel Das Server-Objekt (remotable type) Die Host-Applikation Der Klient Ausführung Web-Services Konzept Ein einfacher Web-Service Ein einfacher.net-client SOAP Lebenszyklus eines Web-Services Web Services Description Language Web Service Discovery Static Dynamic UDDI Das Beispiel "Book Paradise" Vergleich.NET Remoting und Web-Services Schlussfolgerung Referenzen

3 1. Einführung Man spricht von Distributed Programming (verteiltem Programmieren), wenn mehrere verschiedene physische Komponenten zusammen als ein einziges System arbeiten. Eine verteilte Applikation verstreut die Arbeit auf mehrere Prozessoren. Für die Verteilung der Arbeit muss sie speziell entwickelt sein. Neben der schwierigen Koordination der Zusammenarbeit, muss die Applikation auch in Aufgaben (tasks) zerlegt werden, die überhaupt verteilt werden können. Eine kurze Einführung in das verteilte Programmieren ist in [Barnaby 2002] zu finden. Von COM zu.net COM ist eine Technologie, welche die Zusammenarbeit zwischen unabhängigen Komponenten ermöglicht. COM-Komponenten können in irgend einer Programmiersprache geschrieben werden. Die einzige Bedingung ist, dass die Sprache binäre Abbilder (images) erstellen kann, welche der COM Spezifikation genügen. DCOM bietet die notwendige Infrastruktur an, um COM-Komponenten über ein Netzwerk zu verwenden, als ob sie sich auf einer einzigen Maschine befänden. Mit dem Aufkommen der Web- Technologie ActiveX, welche auf COM basiert, auf den Markt. Die COM-Technologie kam unter Beschuss, da unter anderem die Versionierung und Registrierung der Komponenten sehr kompliziert ist. Nach 9 Jahren Herrschaft war klar, dass COM ersetzt werden muss, und.net wurde geboren. Vergleicht man COM und.net kann eher von einer Evolution, denn einer Revolution gesprochen werden: beide verfolgen die gleichen Ziele, wobei.net einfach besser ist: Sprachenunabhängigkeit, Komponenteninteroperabilität, Location Transparency, robuste Versionierung. So werden zum Beispiel.NET Komponenten nicht im Systemregister registriert und die Lebensdauer eines Objektes wird durch Garbage Collection bestimmt, anstatt durch Zählen der Referenzen. 3

4 2..NET Remoting 2.1. Konzept.NET Remoting ermöglicht die Kommunikation zwischen Objekten aus verschiedenen Applikationsgebieten oder Prozessen und dies unabhängig von Transportprotokollen, Serialisierungsformaten, Lebensdauer und Erstellungsart der Objekte. Fürs Remoting werden eine Implementation eines Remotable Type (Server-Objekt), eine Host-Applikation, ein Klient und ein Transportmechanismus, der die Aufrufe von einem Ende ans andere leitet, benötigt. Das Remoting System muss so konfiguriert sein, dass das Server-Objekt aus der Ferne aktiviert werden kann (remote activation). Die Adressen von Server-Methoden sind logisch und funktionieren in einem Prozess sauber, funktionieren aber nicht, wenn sie in Prozessen von Klienten laufen. Um dieses Problem zu umgehen, kann ein Klient eine Kopie eines Server-Objektes machen und auf diese im eigenen Prozess direkt zugreifen. Viele Objekte hingegen können oder sollten nicht kopiert und in einem anderen Prozess direkt ausgeführt werden (z.b. extrem grosse Objekte oder Kopien, die nicht richtig interpretiert werden können). In diesen Situationen sollte das Server-Objekt per Referenz übergeben werden. Klienten können diese Referenz benützen, um Methoden des Server-Objektes aufzurufen. Diese Aufrufe werden nicht im Prozess des Klienten ausgeführt. Das entfernte System sammelt alle Informationen über den Aufruf. Schickt sie an den Server-Prozess, wo sie ausgewertet werden, das richtige Server- Objekt lokalisiert und der gewünschte Aufruf getätigt wird. Das Resultat wird dann zum Prozess des Klienten zurück geschickt und dem Klienten übergeben. Das Benutzen von Objekt-Referenzen ist das Herzstück von Remoting. Die Remoting Architektur (siehe Abb. 1) ist sehr einfach. Bei der Konfiguration des Klienten reicht es ein neues Objekt des gewünschten Typen zu kreieren (z.b. mit new). Der Klient erhält eine Referenz auf das Server-Objekt, wessen Methoden aufgerufen werden können, als würde das Objekt sich auf der gleichen Maschine befinden. Das Remoting System verwendet Proxy Objekte, um die Aufrufe des Klienten an das Server-Objekt weiterzuleiten. Remoting System Remoting System Channel Proxy Adder Client Abb. 1: Die Remoting Architektur des Beispiels. Auf entfernte Objekte wird über Kanäle (channels) zugegriffen. Kanäle transportieren die Nachrichten physikalisch von und zu entfernten Objekten. Es existieren zwei verschiedene Kanäle: TcpChannel und HttpChannel. Eine Möglichkeit.NET Remoting Komponenten zu veröffentlichen, ist über den Internet Information Server (IIS). Dies ermöglicht dem Objekt, bidirektional durch den HTTP Transportkanal unter Verwendung eines SOAP oder binären Formatierers zu kommunizieren. Server-aktivierte Objekte können vom Typ Singleton oder SingleCall sein. Für Singleton Objekte wird nur eine Instanz aktiviert, um Klientenanfragen zu bedienen. Für SingleCall Objekte kreiert das Remoting System eine neue Instanz für jede aufgerufene Methode. 4

5 2.2. Beispiel Das Server-Objekt (remotable type) Der folgende Code definiert ein Server-Objekt (Adder), das zwei Zahlen addiert und befindet sich in der Datei Adder.cs. Die Klasse Adder muss die Klasse MarshalByRefObject erweitern. using System; public class Adder : MarshalByRefObject { public int add(int num1, int num2) { return num1+num2; Die Host-Applikation Die Datei Listener.cs enthält den Code der Host-Applikation. Diese stellt das Server-Objekt bereit und wartet auf Anfragen. using System; using System.Runtime.Remoting; public class Listener{ public static void Main(){ RemotingConfiguration.Configure("Listener.exe.config"); Console.WriteLine("Listening for requests. Press Enter to exit..."); Console.ReadLine(); Die Remoting Konfiguration befindet sich in der Datei Listener.exe.config und sieht folgendermassen aus. <configuration> <system.runtime.remoting> <application> <service> <wellknown mode="singleton" type="adder, Adder" objecturi="adder.rem" /> </service> <channels> <channel ref="http" port="8989"/> </channels> </application> </system.runtime.remoting> </configuration> Die Konfiguration könnte auch ohne separate Datei direkt in den Code der Host-Applikaction integriert werden. Dies würde so aussehen: HttpChannel channel = new HttpChannel(8989); ChannelServices.registerChannel(channel); RemotingConfiguration.RegisterWellKnownServiceType(typeof(Adder),"Adder",We llknownobjectmode.singleton); Der Vorteil der separaten Konfigurationsdatei ist, dass man sie nach der Kompilation des Applikation noch ändern kann. 5

6 Der Klient Die Datei Client.cs enthält den Code des Klienten, der die Methode add() des entfernten Objektes aufruft. using System; using System.Runtime.Remoting; public class Client { public static void Main(string[] args) { RemotingConfiguration.Configure("Client.exe.config"); Adder remoteobject = new Adder(); Console.WriteLine(remoteObject.add(Convert.ToInt32(args[0]),Convert.ToInt32 (args[1]))); Auch der Klient verwendet eine separate Konfigurationsdatei (Client.exe.config), welche direkt in den Client.cs eingefügt werden könnte. <configuration> <system.runtime.remoting> <application> <client> <wellknown type="adder, Adder" url="http://localhost:8989/adder.rem" /> </client> </application> </system.runtime.remoting> </configuration> Ausführung Damit die Klassen kompiliert werden können, muss das Framework von.net auf dem Computer installiert sein. Es ist unter [.NET-SDK] zu finden. Mit den folgenden Befehlen werden die Klassen kompiliert. csc /noconfig /t:library Adder.cs csc /noconfig /r:adder.dll Listener.cs csc /noconfig /r:adder.dll Client.cs Die Option /noconfig bedeutet, dass für die Compilation die Datei csc.rsp, die sich im gleichen Verzeichnis wie die csc.exe-datei befindet, nicht benutzen werden soll. Die Option /t:library bedeutet das Zielobjekt eine DLL-Bibliothek ist, die Option /r bezeichnet die zu benutzenden Referenzen. Die Applikation wird durch Ausführen von server und client in zwei verschiedenen Konsolen gestartet. 6

7 3. Web-Services 3.1. Konzept Web-Services vereinigen diverse Technologien für den Zugriff auf Dienste verschiedener Anbieter in verteilten Systemen. Charakteristiken: - Können z.b. auch unter Java verwendet werden. - Heterogene, verteilte Dienste. - Transport von Daten per HTTP, SMTP, Webserver. - Beschreibung der transportierten Daten in XML. - Unabhängig von Betriebssystem, Programmiersprache, binärem Übertragungsprotokoll. - Die konkrete Implementation ist zustandslos und befindet sich häufig in einem Web-Service- Container (z.b. IIS). Der Container leitet Aufrufe weiter, aktiviert und deaktiviert die Objekte (Services). - Haben keine Kenntnisse über aufrufenden Klienten. - Die Web Services Description Language (WSDL) beschreibt, was der Web Service anbietet. Ähnlich wie die Interface Definition Language (IDL), die für DCOM oder CORBA verwendet wird. - Unterstützt drei Protokolle: HTTP GET, HTTP POST, SOAP 3.2. Ein einfacher Web-Service Da Web-Services zu oberst auf HTTP laufen, muss es auf der Maschine, wo die Dienste laufen irgend eine Art von Web Server haben, der das HTTP Protokoll unterstützt. Im vorliegenden Fall wird der Internet Information Services (IIS) benutzt, der eine built-in Komponente von Windows2000 ist. Er kann über die Systemsteuerung mit add/remove programs, windows components installiert werden. Web-Services werden in 3 Schritten erstellt: 1) Eine neue *.asmx-datei für den Web Service erstellen. Sie muss die <%webservice %>- Direktive und die Klasse, die die Implementation bereitstellt enthalten. Die asmx-datei ist für die Klienten der Eingangspunkt zum Web-Service. 2) Die Klasse WebService vom System.Web.Services-Namensraum muss erweitert werden. Dies ermöglicht den Zugriff auf ASP Objekte, als würde man eine ASP-basierte Applikation entwickeln. Bevor der Dienst veröffentlicht wird, sollte unbedingt ein eigener Namensraum definiert werden, damit der Dienst eindeutig identifiziert werden kann. Dies ist durch Benützen des per Definition gegebenen Namensraumes nicht gewährleistet. 3) Alle Methoden, die übers Web veröffentlicht werden sollen, müssen mit dem WebMethod- Attribut versehen werden. Dieses Attribut wird für die Generierung der WSDL verwendet. Wir implementieren unseren Web-Service in der Datei Example.asmx, die wir im physischen Verzeichnis (C:\Inetpub\wwwroot\example) ablegen. In der Datei Example.asmx implementieren wir nun eine Klasse Example, die eine Methode inc(value) und eine Methode inc(value,incvalue) enthält. WebService Language="C#" Class="Example" %> using System.Web.Services; [WebService(Namespace="http://hpnotexy/webservices/")] public class Example: WebService { [WebMethod(MessageName="Normal incrementation", Description="Increments the value by one")] public int inc(int value) { return value+1; [WebMethod(MessageName="Incrementation by incvalue", Description="Increments the value by incvalue")] public int inc(int value, int incvalue) { return value+incvalue; 7

8 Der IIS übersetzt den Web-Service beim ersten Aufruf einer Methode automatisch und erzeugt ein Objekt. Das Objekt berechnet die Anfrage und das Resultat wird zurück zum Klienten geschickt. Der Web-Service Example ist unter der Adresse zu finden. Beim eintippen dieser URI in einem Browser erhalten wir eine automatisch generierte Beschreibung des Dienstes (siehe Abb. 2). Abb. 2: Beschreibung des Web-Service Example. Der Link Service Description verweist auf die WSDL des Dienstes, die man auch unter erhält (siehe Abb. 7). Ein Klick Incrementation by incvalue führt zur Detailbeschreibung diese Web-Service Methode (siehe Abb. 3), welche automatische generiert wird. Sie enthält Informationen wie die Methode über verschiedene Protokolle aufgerufen werden kann (siehe Abb. 5 und 6 für SOAP) und eine Funktion zum Testen. Die Testfunktion (siehe oberer Abschnitt der Abb. 3) ist nur auf der lokalen Maschine verfügbar. 8

9 Abb. 3: Die Detailbeschreibung der Methode Incrementation by incvalue Ein einfacher.net-client Die Datei NetClient.cs enthält den Code des Klienten. using System; using ExampleClient; //Namespace des erzeugten Proxies public class NetClient { public static void Main(string[] args) { Example proxy = new Example(); if (args.length<2 ) { Console.WriteLine("Die Inkrementation von " + args[0] + " ergibt "); Console.WriteLine(proxy.inc(Convert.ToInt32(args[0]))); else { Console.WriteLine("Die Inkrementation von " + args[0] + " um " + args[1] + " ergibt "); Console.WriteLine(proxy.inc(Convert.ToInt32(args[0]),Convert.ToInt32( args[1]))); Die Abb. 4 zeigt, welche Schritte benötigt werden, um ausgehend von einer Beschreibung eines Web- Service ein Klient erstellt werden kann. Um den Example-Dienst benutzen zu können, wird ein Proxy benötigt. Den Proxy können wir mit Hilfe des Werkzeuges wsdl.exe aus dem [.NET-SDK] generieren: wsdl /namespace:exampleclient /out:exampleproxy.cs 9

10 Web-Service IIS wsdl.exe Klient ExampleProxy.cs csc.exe ExampleProxy.dll /r:exampleproxy.dll NetClient.exe Abb. 4: Die notwendigen Schritte, um von einer WSDL einen Klient zu erstellen. Den Proxy-Sourcecode können wir in eine DLL umwandeln, damit der Proxy von überall her zugänglich ist: csc /t:library /r:system.web.services.dll ExampleProxy.cs Zuletzt muss der Klient kompiliert werden: csc NetClient.cs /r:exampleproxy.dll 3.3. SOAP SOAP ist ein XML-basiertes Protokoll, mit dem Daten verpackt und über ein Transportprotokoll (wie HTTP) verschickt werden können. Es ist ein asynchrones einweg Protokoll. Ein SOAP-Aufruf ist im Prinzip nur eine Textdatei, die zwischen Klienten und Server versendet wird. Nachrichtenformate geben an, wie die Daten serialisiert und codiert werden. In der WSDL eines Web- Services werden für SOAP-Aufrufe prinzipiell zwei Nachrichtenformate festgelegt: document und rpc. Document: die Daten und Methodenaufrufe werden als XML-Dokument verschickt. SOAP legt keine Regeln fest, wie der Inhalt aussehen soll. Wird vor allem für grosse Datenmengen eingesetzt. Rpc: die Struktur der <Body>-Unterelemente wird nach SOAP-Regeln festgelegt. Für die Serialisierung der Daten können grundsätzlich beliebige Codierungsarten verwendet werden. Die Abb. 5 und 6 zeigen das Beispiel einer SOAP Anfrage bzw. Antwort des im Abschnitt 3.2 erarbeiteten Web-Service. Die Platzhalter müssten durch die wirklichen Werten ersetzt werden. POST /example/example.asmx HTTP/1.1 Host: localhost Content-Type: text/xml; charset=utf-8 Content-Length: length SOAPAction: "http://hpnotexy/webservices/incrementation by incvalue" <?xml version="1.0" encoding="utf-8"?> <soap:envelope xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:body> <Incrementation_x0020_by_x0020_incValue xmlns="http://hpnotexy/webservices/"> <value>int</value> <incvalue>int</incvalue> </Incrementation_x0020_by_x0020_incValue> </soap:body> Abb. 5: Eine SOAP Anfrage. HTTP/ OK Content-Type: text/xml; charset=utf-8 10

11 Content-Length: length <?xml version="1.0" encoding="utf-8"?> <soap:envelope xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:body> <Incrementation_x0020_by_x0020_incValueResponse xmlns="http://hpnotexy/webservices/"> <Incrementation_x0020_by_x0020_incValueResult>int</Incrementation_x002 0_by_x0020_incValueResult> </Incrementation_x0020_by_x0020_incValueResponse> </soap:body> Abb. 6: Eine SOAP Antwort Lebenszyklus eines Web-Services Web-Service-Objekte sind zustandslos. Sie werden bei einem Aufruf erzeugt und danach wieder zerstört. Will man die Daten über mehrere Methodenaufrufe hinweg beibehalten, so müssen sie im Zustand der aktuellen Sitzung oder Applikation gespeichert werden, indem man auf die Properties Session oder Application zugreift Web Services Description Language Die Beschreibung eines Web-Services muss selten per Hand erstellt werden, da viele Web-Service- aufgerufen werden können, Container diese automatisch generieren. Für die Integration verschiedener Web-Services ist es aber nützlich die Struktur der WSDL zu kennen. Die WSDL beschreibt: - welche Services welche Methoden anbieten, - über welche Ports, Protokolle und Nachrichten die Methoden - welche Namen und welche Parameter eine Nachricht hat, - wie die verwendeten Datentypen einer Nachricht aussehen. D ie Ab b. 7 zeigt die WSDL des in Abschnitt 3.2 erstellten Web-Service Example.asmx. <?xml version="1.0" encoding="utf-8"?> - <definitions xmlns:http="http://schemas. xmlsoap.org/wsdl/http/" targetnamespace="http://hpnotexy/webservices/" xmlns="http://schemas.xmlsoap.org/wsdl/"> - <types> - <s:schema elementformdefault="qualified" targetnamespace="http://hpnotexy/webservices/"> - <s:element name="incrementation_x0020_by_x0020_incvalue"> - <s:complextype> - <s:sequence> <s:element minoccurs="1" maxoccurs="1" name="value" type="s:int" /> <s:element minoccurs="1" maxoccurs="1" name="incvalue" type="s:int" /> </s:sequence> </s:complextype> </s:element> - <s:element name="incrementation_x0020_by_x0020_incvalueresponse"> - <s:complextype> - <s:sequence> 11

12 <s:element minoccurs="1" maxoccurs="1" name="incrementation_x0020_by_x0020_incval ueresult" type="s:int" /> </s:sequence> </s:complextype> </s:element> </s:schema> </types> - <message name="incrementation_x0020_by_x0020_incvaluesoapin"> <part name="parameters" element="s0:incrementation_x0020_by_x0020_incvalue" /> </message> - <message name="incrementation_x0020_by_x0020_incvaluesoapout"> <part name="parameters" element="s0:incrementation_x0020_by_x0020_incvalueresponse " /> </message> - <porttype name="examplesoap"> - <operation name="inc"> <documentation>increments the value by incvalue</documentation> <input name="incrementation_x0020_by_x0020_incvalue" message="s0:incrementation_x0020_by_x0020_incvaluesoap In" /> <output name="incrementation_x0020_by_x0020_incvalue" message="s0:incrementation_x0020_by_x0020_incvaluesoap Out" /> </operation> </porttype> - <binding name="examplesoap" type="s0:examplesoap"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" /> - <operation name="inc"> <soap:operation soapaction="http://hpnotexy/webservices/incrementation by incvalue" style="document" /> - <input name="incrementation_x0020_by_x0020_incvalue"> <soap:body use="literal" /> </input> - <output name="incrementation_x0020_by_x0020_incvalue"> <soap:body use="literal" /> </output> </operation> </binding> - <service name="example"> - <port name="examplesoap" binding="s0:examplesoap"> <soap:address location="http://hpnotexy/example/example.asmx" /> </port> </service> </definitions> Abb. 7: Die WSDL des Web-Services Example.asmx Web Service Discovery Web-Service können privat oder öffentlich sein. Es macht Sinn, dass einzelne Web-Services nicht für die Öffentlichkeit bestimmt ist. Um die Web-Services bekannt zu machen, stellen die Autoren Discovery Dateien ins Internet. Potentielle Klienten können so herausfinden, wo sich gewünschte Dienste befinden, und wie sie benutzt werden (WSDL). Die Dienste können auf zwei Arten bekannt gemacht werden: statisch oder dynamisch. In beiden Fällen übermittelt XML den Standort der Dienste. 12

13 Static Um den Web-Service bekannt zu machen muss explizit eine *.disco-datei erstellt werden, die auf die WSDL zeigt. <?xml version="1.0" encoding="utf-8"?> - <discovery xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns="http://schemas.xmlsoap.org/disco/"> <contractref ref="http://hpnotexy/example/example.asmx?wsdl" docref="http://hpnotexy/example/example.asmx" xmlns="http://schemas.xmlsoap.org/disco/scl/" /> <soap address="http://hpnotexy/example/example.asmx" xmlns:q1="http://hpnotexy/webservices/" binding="q1:examplesoap" xmlns="http://schemas.xmlsoap.org/disco/soap/" /> </discovery> Abb. 8: Die Discovery Datei des Example.asmx-Web-Services Dynamic Anstatt jeden Dienst einzeln aufzuführen, ist es möglich unter einer spezifizierten URL alle vorhandenen Dienste dynamisch aufzulisten. Die Dienste können auch in verschiedene Verzeichnisse verteilt werden. <?xml version="1.0" encoding="utf-8"?> <dynamicdiscovery xmlns="urn://schemas-dynamic:disco "> <exlude path="_vti_log" /> <exlude path="_vti_txt" /> <exlude path="web References" /> </dynamicdiscovery> Abb. 9: Beispiel einer dynamischen Discovery Datei UDDI Die Suche nach einem Web-Service kann auch mit Hilfe eines UDDI (Universal Description, Discovery und Integration) erfolgen. Firmen wie Microsoft, IBM oder Ariba hatten das gemeinsame Ziel einen Suchdienst zu entwickeln, der das Suchen von Web-Services nach bestimmten Kriterien ermöglicht. Daraus entstand UDDI. Neben der Registrierung von URIs der Web-Services können auch Informationen wie Firmenanschriften oder die URI der Firmenwebseite abgespeichert werden Das Beispiel "Book Paradise" Die Stärke von Web-Services liegt in der Integration von verschiedenen Systemen. Dies soll anhand des Beispiels "Book Paradise" [Beer et al. 2003:419f] verdeutlicht werden: "Ein Web-Marktplatz für Bücher namens "Book Paradise" möchte die Produkte beliebiger Verlage in einer einheitlichen Web-Oberfläche integrieren. Besucher von Book Paradise können nach Büchern suchen, die Preise vergleichen und sogar Bücher bestellen. Verlag A und Verlag B bieten je einen Web-Service zur Abfrage ihres Produktkataloges an. Diese beiden Web-Services (kurz Web-Service A und Web-Service B genannt) besitzen zudem das gleiche Web-Service-"Interface", d.h., sie haben die gleiche WSDL-Beschreibung. Web-Service A und Web-Service B registrieren sich bei einer UDDI- Datenbank. Wenn ein Benutzer bei Book Paradise ein Buch sucht und bestellen will, so führt Book Paradise folgende Schritte durch (siehe auch Abb.10): 1. Vorbedingung: Die Verlagshäuser mit ihren Web-Services sind bei einer UDDI-Datenbank registriert. 2. Book Paradise kontaktiert eine UDDI-Datenbank und sucht nach Web-Services, welche den Service "Produktkatalog" für Bücher implementieren. UDDI liefert die URIs für Web-Service A und B. 3. Book Paradise stellt eine Verbindung zu Web-Service A und B her. 13

14 4. Book Paradise benutzt die beiden Web-Services und formatiert das Ergebnis in einer hübschen Webseite, welche dem Benutzer angezeigt wird. 5. Der Benutzer von Book Paradise entschliesst sich, ein Buch von Verlag A zu kaufen. Book Paradise sucht nun nach dem Service "Bestellung" von Verlag A, um eine elektronische Bestellung für den Benutzer durchzuführen. 6. Book Paradise konnte kein Web-Services namens "Bestellung" in der UDDI-Datenbank finden, dafür die Adresse und eine Telefonnummer für Faxbestellungen von Verlag A. Daraufhin sucht Book Paradise einen anderen Web-Service namens "Fax", um Faxmitteilungen verschicken zu können. Book Paradise zeigt dem Kunden ein generiertes Bestellfax und die Postanschrift von Verlag A an. Der Benutzer akzeptiert die Bestellung und Book Paradise schickt das Bestellfax an den Web-Service "Fax" der Firma FaxWorld, der das Fax an Verlag A schickt." [Beer et al. 2003:419f] 2. Suchen UDDI 1. Registrieren Book Paradise 3. Verbinden 4. Benutzen Web- Service A Web- Service B Abb. 10: UDDI und Web-Service-Szenario. [Beer et al. 2003:419] 14

15 4. Vergleich.NET Remoting und Web-Services -.NET Remoting ist schneller als Web-Services. - Auf ASP.NET basierten Web-Services kann nur über HTTP zugegriffen werden. Für.NET Remoting kann irgend ein Protokoll verwendet werden. - Web-Services arbeiten in einer zustandslosen Umgebung, wobei jede Anfrage in der Kreation eines neuen Objektes resultiert, das die Anfrage bedient..net Remoting unterstützt Zustandsmanagement, Callbacks und kann mehrere Aufrufe desselben Klienten korrelieren. - Web Services kann nur Objekte behandeln, die vollständig in XML ausgedrückt werden können..net Remoting baut darauf auf, dass die Common Language Runtime Informationen über Datentypen enthält. Dadurch sind die Informationen, die über ein Objekt übergeben werden müssen, begrenzt. Dies erlaubt, dass die Objekte by value oder by reference übergeben werden können. - Web-Services unterstützen die Interoperabilität über verschiedene Plattformen und sind gut für heterogene Umgebungen..NET Remoting erfordern, dass die Klienten durch Benützen von.net erstellt werden, oder einem anderen Framework, welches.net Remoting unterstützt, das heisst homogene Umgebungen. Die Tabelle 1 enthält weitere Vergleiche zwischen den Technologien Web-Services und Remoting. Capability Web services Remoting Invoke single method on a stateless object Yes Yes Invoke multiple methods on a stateful object No Yes Have all clients invoke methods on the same server-side object No Yes Pass through firewalls Yes Yes Uses HTTP for communication Yes Yes Uses raw TCP socket for communication No Yes Use IIS as host Yes Yes Allow custom host No Yes Uses SOAP-compliant formatting of data Yes Yes Uses smaller binary formatting of data No Yes Retrieve partial copy of data from complex object Yes Yes Retrieve complete copy of complex object No Yes Tabelle 1: Vergleich zwischen Web-Services und Remoting. [Rockford 2001] 15

16 5. Schlussfolgerung Die beiden Technologien Web-Services und Remoting, die von der.net-infrastruktur für die verteilte Programmierung vorgesehen sind, können im Vergleich mit COM als Revolution bezeichnet werden. Verteilte Komponenten sind nun viel einfacher zu erstellen, und es gibt auch viel mehr Möglichkeiten. Welche der beiden Technologien vor allem eingesetzt werden soll, ist schwer zu sagen. Beide haben ihre Vor- und Nachteile. Schlussendlich muss der Entwickler abwägen, ob ihm die Web-Services oder die.net Remoting Komponenten den grösseren Nutzen bringen. 16

17 6. Referenzen [Barnaby 2002] Barnaby T.: Distributed.NET Programming in VB.NET. Published: Sep Chapter 1. (letzter Zugriff: ) [Beer et al. 2003] Beer W.,Birngruber D., Mössenböck H., Wöss A.: Die.NET-Technologie. dpunkt.verlag, Heidelberg [.NET-SDK].NET Framework SDK. (letzter Zugriff: ) [Rockford 2001] Rockford, Lhotka: Remoting and XML Web Services in Visual Basic.NET. Magenic Technologies, October 23, (letzter Zugriff: ). Rammer, Ingo: Advandced.NET Remoting. (letzter Zugriff: ). Strawmayr, Mark:.NET Remoting. (letzter Zugriff: ) Holloway, Randy: Compare.NET Remoting to Web Services. In Visual Studio Magazine (letzter Zugriff: ) MSDN Library:.NET Remoting Architecture. (letzter Zugriff: ). MSDN Library: Microsoft.NET Remoting: A technical Overview (letzter Zugriff: ) MSDN Library: Building a Basic.NET Remoting Application (letzter Zugriff: ). MSDN Library: Building XML Web Services Using ASP.NET (letzter Zugriff: ). Development Center for Web Services (letzter Zugriff: ). 17

Ein einfacher Server. .NET Remoting. Klassentypen

Ein einfacher Server. .NET Remoting. Klassentypen Einführung - eine Klienten-Applikation kann mit einer Komponente interagieren die hinter einer Grenze liegt - Remoting ermöglicht eine Kommunikation von Komponenten Kontext-, Applikationsdomänen- (leichtgewichtiger

Mehr

Übersicht. Angewandte Informatik 2 - Tutorium 6. Teile einer WSDL-Datei. Was ist WSDL. Besprechung: Übungsblatt 5

Übersicht. Angewandte Informatik 2 - Tutorium 6. Teile einer WSDL-Datei. Was ist WSDL. Besprechung: Übungsblatt 5 Übersicht Angewandte Informatik 2 - Tutorium 6 Besprechung: Übungsblatt 5 Götz Bürkle (goetz@buerkle.org) Übungsblatt 5: Aufgabe 4 - Webservices Institut für Angewandte Informatik und Formale Beschreibungsverfahren

Mehr

.NET-Networking 2 Windows Communication Foundation

.NET-Networking 2 Windows Communication Foundation .NET-Networking 2 Windows Communication Foundation Proseminar Objektorientiertes Programmieren mit.net und C# Fabian Raab Institut für Informatik Software & Systems Engineering Agenda Grundproblem Bestandteile

Mehr

SOAP Integrationstechnologie für verteilte Middlewarearchitekturen?

SOAP Integrationstechnologie für verteilte Middlewarearchitekturen? SOAP Integrationstechnologie für verteilte Middlewarearchitekturen? Großer Beleg Christian Wurbs Zwischenbericht http://www.inf.tu-dresden.de/~cw6 cw6@inf.tu-dresden.de Überblick 2 Aufgabenstellung CORBA

Mehr

Webservices. 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung. Hauptseminar Internet Dienste

Webservices. 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung. Hauptseminar Internet Dienste Hauptseminar Internet Dienste Sommersemester 2004 Boto Bako Webservices 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung Was sind Web Services? Web Services sind angebotene

Mehr

Wiederholung: Beginn

Wiederholung: Beginn B) Webserivces W3C Web Services Architecture Group: "Ein Web Service ist eine durch einen URI eindeutige identifizierte Softwareanwendung, deren Schnittstellen als XML Artefakte definiert, beschrieben

Mehr

Seminar E-Services WS 02/03 WSDL. Web Services Description Language. Moritz Kleine SES 02 - WSDL

Seminar E-Services WS 02/03 WSDL. Web Services Description Language. Moritz Kleine SES 02 - WSDL Seminar E-Services WS 02/03 WSDL Web Services Description Language SES 02 - WSDL Zum Ablauf Einleitung Webservices und WSDL Grundlagen (XML - Schema und Namespaces) WSDL Syntax Beispiel Zusammenfassung

Mehr

Web-Sevices : WSDL Entwicklung von Web-Anwendungen

Web-Sevices : WSDL Entwicklung von Web-Anwendungen Web-Sevices : WSDL Entwicklung von Web-Anwendungen Axel Reusch : ar047 MIB page 1 : 50 Agenda! Allgemeines! Prinzip! Anwendung! Details! WSDL und SOAP! Beispiel mit Java! Erweiterungen! Vorteile! Nachteile!

Mehr

WSDL. Web Services Description Language. André Vorbach. André Vorbach

WSDL. Web Services Description Language. André Vorbach. André Vorbach André Vorbach WSDL Web Services Description Language André Vorbach Übersicht Was ist WSDL? Dokumentenstruktur Elemente Definitions Types Messages porttype Binding Service SOAP-Bindings Beispiel Was ist

Mehr

SOA. Prof. Dr. Eduard Heindl Hochschule Furtwangen Wirtschaftsinformatik

SOA. Prof. Dr. Eduard Heindl Hochschule Furtwangen Wirtschaftsinformatik SOA Prof. Dr. Eduard Heindl Hochschule Furtwangen Wirtschaftsinformatik Laderampen müssen passen Modularisieren Softwarearchitektur Modul A Modul B Modul C Modul D Große Anwendung im Unternehmen Modul

Mehr

Verteilte Systeme: Übung 4

Verteilte Systeme: Übung 4 Verteilte Systeme: Übung 4 WSDL und SOAP Oliver Kleine Institut für Telematik https://www.itm.uni-luebeck.de/people/kleine SOAP Nachrichten Serialisierung in XML Root-Element einer SOAP Nachricht ist

Mehr

Webservices Ein Vortrag von:

Webservices Ein Vortrag von: Webservices Ein Vortrag von: Andreas Münstermann Michael Reiher Markus Buschky Gliederung Einführung in Webservices Technische Grundlagen SOAP UDDI WSDL Sicherheitskonzepte Blick in die Zukunft Einführung

Mehr

Erstellen sicherer ASP.NET- Anwendungen

Erstellen sicherer ASP.NET- Anwendungen Erstellen sicherer ASP.NET- Anwendungen Authentifizierung, Autorisierung und sichere Kommunikation Auf der Orientierungsseite finden Sie einen Ausgangspunkt und eine vollständige Übersicht zum Erstellen

Mehr

Microsoft.NET und SunONE

Microsoft.NET und SunONE Microsoft.NET und SunONE, Plattformen und Application Service Providing Agenda Einordnung.NET und SunONE Kurzvorstellung Gegenüberstellung Zusammenfassung ASP (Application( Service Providing) ) und Ausblick

Mehr

Software Reuse Sommer 2004

Software Reuse Sommer 2004 8. Web Services Peter Sturm Universität Trier Ausgangspunkt Client/Server-Systeme Traditioneller RPC OO-Pendant RMI (CORBA) Probleme Installationbedarf auf Clientseite Aufwendige Installation auf Serverseite

Mehr

Gliederung Einleitung Die Interprozess Kommunikation Zusammenfassung Fragen. .NET Remoting. André Frimberger

Gliederung Einleitung Die Interprozess Kommunikation Zusammenfassung Fragen. .NET Remoting. André Frimberger .NET Remoting André Frimberger 30.11.2004 André Frimberger.NET Remoting 1 Gliederung 1 Einleitung Was ist.net Remoting? 2 Die Interprozess Kommunikation Grundkonzept der Datenkanal Parameterübergabe Instanziierung

Mehr

Zustandsgebundene Webservices

Zustandsgebundene Webservices Zustandsgebundene Webservices Präsentation ausgewählter Problemstellungen der Informatik Markus Oertel oer@uni-paderborn.de Universität Paderborn 25. September 2005 Zustandsgebundene Webservices Seite

Mehr

Softwareentwicklung in verteilten Umgebungen Middleware Case Studies (Coulouris et al., Kapitel 5 und 19) Dieter Schmalstieg Jens Grubert

Softwareentwicklung in verteilten Umgebungen Middleware Case Studies (Coulouris et al., Kapitel 5 und 19) Dieter Schmalstieg Jens Grubert Softwareentwicklung in verteilten Umgebungen Middleware Case Studies (Coulouris et al., Kapitel 5 und 19) Dieter Schmalstieg Jens Grubert Partly based on material by Victor García Barrios and Paul Krzyzanowski

Mehr

Konzepte von Betriebssystem-Komponenten Middleware:.NET Remoting

Konzepte von Betriebssystem-Komponenten Middleware:.NET Remoting Konzepte von Betriebssystem-Komponenten Middleware:.NET Remoting André Frimberger 16.11.2004 1 Was ist.net Remoting?.NET Remoting ist ein Framework aus.net, welches die Interprozesskommunikation zwischen

Mehr

Einführung in Web Services

Einführung in Web Services Einführung in Web Services Seminar Web Services am 18.05.2004 von Can Okutan und Sascha Schnaufer Betreuer: Andreas Kamper Agenda Einführung Aufbau von Mehrbenutzer-Anwendungen RMI Corba Warum Webservices?

Mehr

E.1 Objekt-Serialisierung

E.1 Objekt-Serialisierung E Überblick über die 13. Übung E Überblick über die 13. Übung E.1 Serialisierung (2) Objekt-Serialisierung Wie soll ein Objekt serialisiert werden? serveraktivierte Objekte IFormatter Schnittstelle stellt

Mehr

Wissenschaftliche Vertiefung Web Services. Esslingen, 22. Januar 2016 Simon Schneider

Wissenschaftliche Vertiefung Web Services. Esslingen, 22. Januar 2016 Simon Schneider Wissenschaftliche Vertiefung Web Services Esslingen, 22. Januar 2016 Agenda 1. Einführung 2. Serviceorientierte Architektur 3. SOAP Web Service 4. Standards und Protokolle von SOAP Web Services 5. Bewertung

Mehr

Kapitel 5 Web-Services

Kapitel 5 Web-Services Kapitel 5: Web-Services 1 Kapitel 5 Web-Services 5.1 Web-Services Verwendung/Aufruf (Service Invocation) SOAP Beschreibung (Service Description) WSDL Repository/Verzeichnis (Service Discovery) UDDI 5.2

Mehr

WebServices Zwischen Buzzword und Nutzen

WebServices Zwischen Buzzword und Nutzen WebServices Zwischen Buzzword und Nutzen Tobias Koenig Übersicht Webservices Allgemein WSDL Anwendungsbeispiele Programmierung Perl Python C++/KDE Zusammenfassung LUG Dresden 2005 p.1 Webservices Trennung

Mehr

Enterprise Application Integration Erfahrungen aus der Praxis

Enterprise Application Integration Erfahrungen aus der Praxis Enterprise Application Integration Erfahrungen aus der Praxis Teil 4: EAI und.net, EAI und J2EE Tutorial NODs 2002, Wolfgang Keller and Generali 2001, 2002, all rights reserved 1 Überblick EAI und....net

Mehr

Java RMI Remote Method Invocation

Java RMI Remote Method Invocation Java RMI Remote Method Invocation Ziel: Aufruf von Instanzmethoden entfernter Objekte basierend auf Java. Paket: java.rmi und Unterpakete Topologie: RMI Registry RMI Server RMI Client Der Server registriert

Mehr

SRH Hochschule Heidelberg

SRH Hochschule Heidelberg SRH Hochschule Heidelberg Fachbereich Informatik Vertriebssysteme / CRM Johannes Dipl. Inf. (FH) Hoppe Johannes Hoppe MSP WCF Vorlesung 25.03.2009 90 Minuten, 8 Teilnehmer Dipl. Inf. (FH) Johannes Hoppe

Mehr

Asynchrone Webservices mit Axis 1.x in Java

Asynchrone Webservices mit Axis 1.x in Java Asynchrone Webservices mit Axis 1.x in Java 1. Übersicht Architektur Da Webservices nach relativ kurzen Timeouts Anfragen abgearbeitet haben müsse, sind komplexe Anfragen wie sie in der Bioinformatik üblich

Mehr

Seminarbericht Rechnernetze XML Web Services Schnittstelle zwischen den Welten.NET und Java

Seminarbericht Rechnernetze XML Web Services Schnittstelle zwischen den Welten.NET und Java Seminarbericht Rechnernetze XML Web Services Schnittstelle zwischen den Welten.NET und Java von Christian Brand Kennnummer: 09376 November 2005 Abkürzungen Abkürzungen API - Application Programming Interface

Mehr

.NET Framework. 3. Das.NET Framework

.NET Framework. 3. Das.NET Framework 3. Das.NET Framework.NET Framework 3.1 Übersicht - 2002 von Microsoft bereitgestellt - Ziel: Entwicklung von Anwendungen (Windows, Web, Embedded,..) bequemer und sicherer zu machen und bestehenden Code

Mehr

Definition Web Service

Definition Web Service Gliederung Einführung Definition Web Service Drei Schhichtenmodell Architectural Model System Model Web Service Standards SOAP WSDL UDDI Types of Web Services Programmatic Web Services Interactive Web

Mehr

Praktikum aus Softwareentwicklung 2. Web Services. Java Praktikum SS 2010 Gerald.Ehmayer@borland.com

Praktikum aus Softwareentwicklung 2. Web Services. Java Praktikum SS 2010 Gerald.Ehmayer@borland.com Web Services Java Praktikum SS 2010 Gerald.Ehmayer@borland.com 1 Web Services Einführung Definition, Eigenschaften, Anwendungen... JAX-RPC Überblick, Architektur... JAX Übersicht, Architektur Java Praktikum

Mehr

Netzprogrammierung: Microsoft.NET Remoting

Netzprogrammierung: Microsoft.NET Remoting Netzprogrammierung: Microsoft.NET Remoting Robert Tolksdorf und Peter Löhr Überblick 1. Fernaufrufbare Objekte 2. Parameterübergabe 3. Konfigurationsdateien http://msdn.microsoft.com/en-us/library/72x4h507(vs.85).aspx

Mehr

Architektur von SOAP basierten Web Services

Architektur von SOAP basierten Web Services Architektur von SOAP basierten Web Services André Homeyer 28.11.2005 Worst-Case einer verteilten Anwendung TravelTime Client Benutzerinterface WackyWing Server Flüge suchen TravelTime Server Flüge suchen

Mehr

Microsoft.NET XML-Webdienste Schritt für Schritt

Microsoft.NET XML-Webdienste Schritt für Schritt Adam Freeman Allen Jones Microsoft.NET XML-Webdienste Schritt für Schritt Microsoft Press Teil A Kapitel 1 Einführung Warum haben wir dieses Buch geschrieben? Wer sollte dieses Buch lesen? Der Aufbau dieses

Mehr

Workflow, Business Process Management, 4.Teil

Workflow, Business Process Management, 4.Teil Workflow, Business Process Management, 4.Teil 24. Januar 2004 Der vorliegende Text darf für Zwecke der Vorlesung Workflow, Business Process Management des Autors vervielfältigt werden. Eine weitere Nutzung

Mehr

Enterprise Applikation Integration und Service-orientierte Architekturen. 09 Simple Object Access Protocol (SOAP)

Enterprise Applikation Integration und Service-orientierte Architekturen. 09 Simple Object Access Protocol (SOAP) Enterprise Applikation Integration und Service-orientierte Architekturen 09 Simple Object Access Protocol (SOAP) Anwendungsintegration ein Beispiel Messages Warenwirtschaftssystem Auktionssystem thats

Mehr

Motivation. Web Services in der Bioinformatik. Web Services. Motivation (2) Definition

Motivation. Web Services in der Bioinformatik. Web Services. Motivation (2) Definition Web Services in der Bioinformatik 1. Motivation 2. Web Services - Definition - Funktionsweise - Umsetzung (WSDL, SOAP, UDDI) 3. Beispiele - XEMBL - OpenBQS - OmniGene 4. Zusammenfassung Situation: Viele

Mehr

3-schichtige Informationssystem-Architektur

3-schichtige Informationssystem-Architektur 3-schichtige Informationssystem-Architektur plattformunabhängig beliebige Endgeräte Client als Applikation & Applet XML über SOAP Standard plattformunabhängig objektorientierte Architektur multiuserfähig

Mehr

Übersicht. Projekt DB-basierte, mobile Systeme. Übersicht. Was sind Web Services? Web Service - Kompakt. Warum das Rad neu erfinden?!

Übersicht. Projekt DB-basierte, mobile Systeme. Übersicht. Was sind Web Services? Web Service - Kompakt. Warum das Rad neu erfinden?! Übersicht HTML Projekt DB-basierte, mobile Systeme JAX-RPC via SOAP Aufgabenblatt 4 Web Services Übersicht Was sind Web Services? "A web service is any service that is available over the Internet, uses

Mehr

5. Web-Services. Kommunikation zwischen Client und Server über XML-Format SOAP

5. Web-Services. Kommunikation zwischen Client und Server über XML-Format SOAP 1 5. Web-Services Kommunikation zwischen Client und Server über XML-Format SOAP Client SOAP Server Beschreibung von Webservices in WSDL (Web Services Description Language) Web Service Protokollstapel Suche

Mehr

Starthilfe für C# Inhaltsverzeichnis. Medien- und Kommunikationsinformatik (B.Sc.) Alexander Paharukov. Informatik 3 Praktikum

Starthilfe für C# Inhaltsverzeichnis. Medien- und Kommunikationsinformatik (B.Sc.) Alexander Paharukov. Informatik 3 Praktikum Starthilfe für C# Inhaltsverzeichnis Allgemeines... 2 Bezugsquellen... 2 SharpDevelop... 2.NET Runtime... 2.NET SDK... 2 Installation... 2 Reihenfolge... 2 Vorschlag für eine Ordnerstruktur... 3 Arbeit

Mehr

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen 9 3 Web Services 3.1 Überblick Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen mit Hilfe von XML über das Internet ermöglicht (siehe Abb.

Mehr

Java und XML 2. Java und XML

Java und XML 2. Java und XML Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Institut für Praktische Informatik und Medieninformatik Fachgebiet Telematik Java und XML Hauptseminar Telematik WS 2002/2003

Mehr

Mobile und Verteilte Datenbanken

Mobile und Verteilte Datenbanken Mobile und Verteilte Datenbanken Java RMI Vorlesung Wintersemester 2013/2014 groppe@ifis.uni-luebeck.de Institut für Informationssysteme Universität zu Lübeck Kommunikations-Middleware Bietet höhere Kommunikations-Dienste

Mehr

SOAP Simple Object Access Protocol

SOAP Simple Object Access Protocol Informatikseminar Tobias Briel Überblick 1. Einführung - was ist? 2. Middlewaretechnologie 3. Aufbau von Nachrichten 4. Vergleiche 5. Beispielanwendung 6. Zusammenfassung 1 Einführung was ist Soap? neue

Mehr

Übungen zu Softwaretechnik

Übungen zu Softwaretechnik Prof. Dr. Dr. h.c. M. Broy Lösungsblatt 11 Dr. H. Ehler, S. Wagner 23. Januar 2004 Übungen zu Softwaretechnik Aufgabe 16 Qualitätseigenschaften Broker-Pattern Beurteilen Sie das in Aufgabe 15 benutzte

Mehr

Gliederung. 1. Einleitung (1) 1. Einleitung (3) 1. Einleitung (2)

Gliederung. 1. Einleitung (1) 1. Einleitung (3) 1. Einleitung (2) Referat im Rahmen des Proseminars Internettechnologie WS 2007/2008 Thema: Web Services und serviceorientierte Architekturen (SOA) vorgelegt von: Intelligente Web Services sind für das Informationszeitalter,

Mehr

Autor: Peter Seemann Seminar: Softwarearchitekturen Betreuer: Benedikt Meurer

Autor: Peter Seemann Seminar: Softwarearchitekturen Betreuer: Benedikt Meurer Autor: Peter Seemann Seminar: Softwarearchitekturen Betreuer: Benedikt Meurer *Was sind Web Services? *Beispiele für Web Services *Web Service Architektur *Web Services Technologien *Fazit 2 *Übertragungsstandard

Mehr

Microsoft.NET. InfoPoint 8. Juni 2005 Stefan Bühler

Microsoft.NET. InfoPoint 8. Juni 2005 Stefan Bühler Microsoft.NET InfoPoint 8. Juni 2005 Stefan Bühler Inhalt Was ist.net Was steckt dahinter Warum ist.net so wie es ist Die Säulen von.net.net Framework 2.0 / VisualStudio 2005 Beispiel Referenzen & Links

Mehr

unterschiedlichen Sprachen

unterschiedlichen Sprachen 8.1.6.NET Remoting.Net ( dotnet ) : von Microsoft eingeführte Plattform für verteilte Anwendungen, virtuelle Maschine für die verteilte Ausführung von Programmen in unterschiedlichen Sprachen C# ( Csharp

Mehr

CORBA. Systemprogrammierung WS 2006-2007

CORBA. Systemprogrammierung WS 2006-2007 CORBA Systemprogrammierung WS 2006-2007 Teilnehmer: Bahareh Akherattalab Babak Akherattalab Inhaltsverzeichnis: Verteilte Systeme Vergleich zwischen lokale und verteilte Systeme Verteilte Anwendungen CORBA

Mehr

Einführung in COM. 04.04.2006 Seite 1

Einführung in COM. 04.04.2006 Seite 1 Einführung in COM 04.04.2006 Seite 1 Ziele Sie kennen die Funktion der Registry für COM Sie können die Struktur eines COM-Objekts erklären Sie können erklären, wie ein remote-server gestartet wird 04.04.2006

Mehr

5. Übung zur Vorlesung Service-orientierte Architekturen

5. Übung zur Vorlesung Service-orientierte Architekturen 5. Übung zur Vorlesung Service-orientierte Architekturen Webservices und WSDL SoSe 2011 Anmerkung Hausaufgabe 03 BPMN Auch hier gilt: Layout! Zu Unterschieden zw. BPMN und eepk Relative Aussagen sind geschickter

Mehr

0. Inhaltsverzeichnis

0. Inhaltsverzeichnis 0. Inhaltsverzeichnis 0. Inhaltsverzeichnis...1 1. Kurze Einführung WebService Architektur...2 1.1 Synchrones Modell:...2 1.2 Asynchrones Modell:...2 1.3 Vorteile:...3 1.4 Voraussetzungen...3 2. Testseite

Mehr

Ein Vergleich zwischen SCA,JBI und WCF. Marcello Volpi

Ein Vergleich zwischen SCA,JBI und WCF. Marcello Volpi Service Component Architecture Ein Vergleich zwischen SCA,JBI und WCF Marcello Volpi Agenda Einführung Service Component Architecture (SCA) Java Business Integration (JBI) Windows Communication Foundation

Mehr

WCF Services in InfoPath 2010 nutzen

WCF Services in InfoPath 2010 nutzen WCF Services in InfoPath 2010 nutzen Abstract Gerade wenn man schreibend von InfoPath aus auf eine SQL-Server Datenbank zugreifen will, kommt man quasi um einen Web Service nicht herum. In diesem Post

Mehr

.NET Remoting. Softwareentwicklung mit MS.NET und C# Lokaler Proxy. Proxy. Remoting. .NET Remoting

.NET Remoting. Softwareentwicklung mit MS.NET und C# Lokaler Proxy. Proxy. Remoting. .NET Remoting Softwareentwicklung mit MS.NET und C# Lokaler Transparent Real.NET Remoting IMessage Ingo Rammer http://www.dotnetremoting.cc rammer@sycom.at Stack Builder Objekt Remoting Remoting ist der Zugriff auf

Mehr

SOAP, WSDL, UDDI. Martin Grimmer. Proseminar: Die Zukunft der Softwareentwicklung: Komponentensysteme/Web Services Vortrag 1 am 21.06.

SOAP, WSDL, UDDI. Martin Grimmer. Proseminar: Die Zukunft der Softwareentwicklung: Komponentensysteme/Web Services Vortrag 1 am 21.06. Proseminar: Die Zukunft der Softwareentwicklung: Komponentensysteme/Web Services Vortrag 1 am 21.06.2006 Betreuer: Dipl.-Inform. Andreas Both Lehrstuhl Softwaretechnik und Programmiersprachen, Institut

Mehr

Web-Applications mit SOAP und RSS. Vortrag 8, Jonas Mitschang, 15.6.2005

Web-Applications mit SOAP und RSS. Vortrag 8, Jonas Mitschang, 15.6.2005 Web-Applications mit SOAP und RSS Vortrag 8, Jonas Mitschang, 15.6.2005 Inhalt Motivation Web Applications / Web Services SOAP - Simple Object Access Protocol RSS - Really Simple Syndication Bewertung

Mehr

Affiliate SOAP-Schnittstelle

Affiliate SOAP-Schnittstelle Affiliate SOAP-Schnittstelle Inhalt: SOAP-Statistik - Schnittstellenbeschreibung - URI - Methode - Authentifizierung - Detaillierte Beschreibung des Soap-Service - Suchen von Transaktionsdaten - Statistiken

Mehr

Client/Server-Systeme

Client/Server-Systeme Frühjahrsemester 2011 CS104 Programmieren II / CS108 Programmier-Projekt Java-Projekt Kapitel 3: /Server-Architekturen H. Schuldt /Server-Systeme Ein zweischichtiges /Server-System ist die einfachste Variante

Mehr

Softwareschnittstellen

Softwareschnittstellen P4.1. Gliederung Rechnerpraktikum zu Kapitel 4 Softwareschnittstellen Einleitung, Component Object Model (COM) Zugriff auf Microsoft Excel Zugriff auf MATLAB Zugriff auf CATIA Folie 1 P4.2. Einleitung

Mehr

5. Web-Services. Kommunikation zwischen Client und Server über XML-Format SOAP

5. Web-Services. Kommunikation zwischen Client und Server über XML-Format SOAP 1 5. Web-Services Kommunikation zwischen Client und Server über XML-Format SOAP Client SOAP Server Beschreibung von Webservices in WSDL (Web Services Description Language) Web Service Protokollstapel Suche

Mehr

Web Services: Inhalt

Web Services: Inhalt Web Services Fachseminar Verteilte Systeme 8. April 2002 - Marco Steiner Assistent: Thomas Schoch Professor: Dr. F. Mattern Web Services: Inhalt Bedeutung Gegenwart Architektur SOAP WSDL UDDI Vergleich

Mehr

Microsoft.NET Framework

Microsoft.NET Framework Microsoft.NET Framework Anita Sosnecki Universität Bonn Institut für Informatik Seminar Softwaretechnologie WS 2003 Übersicht Einleitung Was ist.net?.net Framework.NET Komponenten Assemblies Deployment

Mehr

Web-Services Implementierung mit Java

Web-Services Implementierung mit Java Web-Services Implementierung mit Java J. Heinzelreiter WS 2004/05 Java-APIs für Web-Services (1) Anwendungs-Code JAXR JAXM JAX-RPC SAAJ SOAP/SwA JWSDL WSDL XML/XML-Schema Web-Services/Java - 2 Java-APIs

Mehr

Web 2.0 Software-Architekturen

Web 2.0 Software-Architekturen Web 2.0 Software-Architekturen Servlets als Controller einer MVC Web Architektur Prof. Dr. Nikolaus Wulff HTTP und HTML Das HyperText TransferProtokoll (HTTP) beschreibt eine einfache verbindungslose Kommunikation,

Mehr

.NET und wieder eine Middleware Architektur?

.NET und wieder eine Middleware Architektur? .NET und wieder eine Middleware Architektur? Volker Birk CCC ERFA Ulm vb@ebios.de Volker Birk, vb@ebios.de 1 .NET na und?.net soll die Architektur im Internet werden meint Microsoft. Genau so wie Windows?.NET

Mehr

XML-WebServices. Steffen Forkmann. 15. Juli 2004

XML-WebServices. Steffen Forkmann. 15. Juli 2004 XML-WebServices Steffen Forkmann 15. Juli 2004 Inhaltsverzeichnis 1 Was sind WebServices? 2 1.1 Einleitung...................................... 2 1.2 Einsatzmöglichkeiten................................

Mehr

Systemprogrammierung. Projekt: Java RMI. Wintersemester 2006 / 2007

Systemprogrammierung. Projekt: Java RMI. Wintersemester 2006 / 2007 Systemprogrammierung Projekt: Java RMI Wintersemester 2006 / 2007 Systemprogrammierung 1. Einleitung 2. Einführung in RPC 3. RMI 4. Code Beispiele 5. Live Vorstellung 6. Ausblick 7. Fazit 2 1. Einleitung

Mehr

CORBA-Konzept. Ziele. Common Object Request Broker Architecture CORBA. Plattformunabhängige Kommunikation Transparente Verteilung von Objekten

CORBA-Konzept. Ziele. Common Object Request Broker Architecture CORBA. Plattformunabhängige Kommunikation Transparente Verteilung von Objekten CORBA-Konzept Ziele Common Object Request Broker Architecture CORBA Plattformunabhängige Kommunikation Transparente Verteilung von Objekten CORBA-Konzept Object Management Group Spezifiziert den CORBA-Standard

Mehr

ObjectBridge Java Edition

ObjectBridge Java Edition ObjectBridge Java Edition Als Bestandteil von SCORE Integration Suite stellt ObjectBridge Java Edition eine Verbindung von einem objektorientierten Java-Client zu einer fast beliebigen Server-Komponente

Mehr

8a. Exkurs.NET. 8a.1.NET Architektur

8a. Exkurs.NET. 8a.1.NET Architektur 8a. Exkurs.NET Inhalt: 8a.1.NET Architektur 8a.2 Kooperation von Anwendungen über ADO -.NET 8a.3 Unterschiede gegenüber gewöhnlicher WIN32- Programmierung 1 8a.1.NET Architektur Bislang wurden die C/C++

Mehr

Mainframe Internet Integration. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013. WebSphere Application Server Teil 4

Mainframe Internet Integration. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013. WebSphere Application Server Teil 4 UNIVERSITÄT LEIPZIG Mainframe Internet Integration Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013 WebSphere Application Server Teil 4 Leistungsverhalten el0100 copyright W. G. Spruth,

Mehr

E-Services mit der Web-Service-Architektur

E-Services mit der Web-Service-Architektur E-Services mit der Web-Service-Architektur im Seminar Neue Konzepte anwendungsorientierter Middleware - Stefan Kürten - Literatur A. Tsalgatidou and T. Pilioura, An Overview of Standards and Related Rechnology

Mehr

DCOM und.net. B. Sc. Tobias Buchloh. Seminar Software-Entwurf Fachgebiet Software Engineering, Institut für Angewandte Informatik Universität Hannover

DCOM und.net. B. Sc. Tobias Buchloh. Seminar Software-Entwurf Fachgebiet Software Engineering, Institut für Angewandte Informatik Universität Hannover DCOM und.net B. Sc. Tobias Buchloh Seminar Software-Entwurf Fachgebiet Software Engineering, Institut für Angewandte Informatik Universität Hannover 2004-12-21 Gliederung Motivation Einordnung (D)COM.NET

Mehr

Kapitel WT:VI (Fortsetzung)

Kapitel WT:VI (Fortsetzung) Kapitel WT:VI (Fortsetzung) VI. Architekturen und Middleware-Technologien Client--Architekturen Ajax REST RPC, XML-RPC, Java RMI, DCOM Web-Services CORBA Message-oriented-Middleware MOM Enterprise Application

Mehr

Installation und Benutzung AD.NAV.ZipTools

Installation und Benutzung AD.NAV.ZipTools Installation und Benutzung AD.NAV.ZipTools Version 1.0.0.0 ALTENBRAND Datentechnik GmbH Am Gelicht 5 35279 Neustadt (Hessen) Tel: 06692/202 290 Fax: 06692/204 741 email: support@altenbrand.de Die Komponente

Mehr

Auszug aus Axis2 Schulung

Auszug aus Axis2 Schulung Auszug aus Axis2 Schulung Dieses Dokument ist ein Auszug aus unserem Skript zur Axis2- Schulung. Es dient lediglich als Beispiel für unsere Kursunterlagen. Thomas Bayer Hauptstraße 33 75050 Gemmingen Mehr

Mehr

Web Services. XML, WSDL, SOAP und UDDI Einblicke und Ausblicke. 31.03.2003 J.M.Joller 1

Web Services. XML, WSDL, SOAP und UDDI Einblicke und Ausblicke. 31.03.2003 J.M.Joller 1 Web Services XML, WSDL, SOAP und UDDI Einblicke und Ausblicke 31.03.2003 J.M.Joller 1 Inhalt Architekturen Main Stream.NET J2EE und Applikations-Server Sicht der Anbieter Java J2EE J2EE versus.net Web

Mehr

Programmieren II. WebServices. www.kit.edu. Institut für Angewandte Informatik

Programmieren II. WebServices. www.kit.edu. Institut für Angewandte Informatik Programmieren II WebServices KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Service-orientierte Architektur (SOA) Architekturkonzept,

Mehr

IUG DRESDEN ERSTELLUNG VON ROBUSTEN NATURAL SERVICES Software AG. All rights reserved. For internal use only

IUG DRESDEN ERSTELLUNG VON ROBUSTEN NATURAL SERVICES Software AG. All rights reserved. For internal use only IUG DRESDEN ERSTELLUNG VON ROBUSTEN NATURAL SERVICES 2016 Software AG. All rights reserved. For internal use only DIGITAL BUSINESS APPLICATIONS DRIVE THE DIGITAL BUSINESS Partner Lieferanten Kunden SaaS

Mehr

GeoShop Netzwerkhandbuch

GeoShop Netzwerkhandbuch Technoparkstrasse 1 8005 Zürich Tel.: 044 / 350 10 10 Fax.: 044 / 350 10 19 GeoShop Netzwerkhandbuch Zusammenfassung Diese Dokumentation beschreibt die Einbindung des GeoShop in bestehende Netzwerkumgebungen.

Mehr

Dataport IT Bildungs- und Beratungszentrum. HTML- Grundlagen und CSS... 2. XML Programmierung - Grundlagen... 3. PHP Programmierung - Grundlagen...

Dataport IT Bildungs- und Beratungszentrum. HTML- Grundlagen und CSS... 2. XML Programmierung - Grundlagen... 3. PHP Programmierung - Grundlagen... Inhalt HTML- Grundlagen und CSS... 2 XML Programmierung - Grundlagen... 3 PHP Programmierung - Grundlagen... 4 Java - Grundlagen... 5 Java Aufbau... 6 ASP.NET Programmierung - Grundlagen... 7 1 HTML- Grundlagen

Mehr

8.1.6.NET Remoting. C# ( Csharp, Cis ) : Referenzsprache für.net,

8.1.6.NET Remoting. C# ( Csharp, Cis ) : Referenzsprache für.net, 8.1.6.NET Remoting.Net ( dotnet ) : von Microsoft eingeführte Plattform für verteilte Anwendungen, virtuelle Maschine für die verteilte Ausführung von Programmen in unterschiedlichen Sprachen C# ( Csharp,

Mehr

stoll professional software GmbH >> good ideas!

stoll professional software GmbH >> good ideas! stoll professional software GmbH >> good ideas! Release Notes LivingDetector Version 3.2.5 1. Einführung Anhand der aufgetretenen Exceptions und der ausgeführten Benutzeraktionen ermöglicht ihnen LivingDetector

Mehr

4. Objektorientierte Programmierung mit C++

4. Objektorientierte Programmierung mit C++ 4. Objektorientierte Programmierung mit C++ Einführung C++ / Entwicklung/ Sprachfamilie Nicht objektorientierte Erweiterungen von C Grundlagen des Typkonzepts von C++ Ziele der Objektorientierung Objekt

Mehr

Netzwerk Technologien in LabVIEW

Netzwerk Technologien in LabVIEW Netzwerk Technologien in LabVIEW von Dirk Wieprecht NI Germany Hier sind wir: Agenda Agenda Bedeutung des Ethernet für die Messtechnik Ethernet-basierende Technologien in LabVIEW Low Level- TCP/IP Objekt

Mehr

Auszug aus JAX-WS Folien

Auszug aus JAX-WS Folien Auszug aus JAXWS Folien Dieses Dokument ist ein Auszug aus unserem Skript zur Java Web Services Schulung. Es dient lediglich als Beispiel für unsere Kursunterlagen. Thomas Bayer Hauptstraße 33 75050 Gemmingen

Mehr

Application Note. Anbindung von Kunden-Software an SpiderControl Web Visualisierung

Application Note. Anbindung von Kunden-Software an SpiderControl Web Visualisierung 2015-02-25 1 of 6 Application Note Anbindung von Kunden-Software an SpiderControl Web Visualisierung Version ApplicationNote_AnbindungFremdsoftware /Version Seite 1 / 6 Version Datum Kommentar Autor 0.1

Mehr

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/2013. WebSphere MQ Teil 3

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/2013. WebSphere MQ Teil 3 UNIVERSITÄT LEIPZIG Enterprise Computing Einführung in das Betriebssystem z/os Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/2013 WebSphere MQ Teil 3 Trigger el0100 Copyright W. G. Spruth,

Mehr

Web-Konzepte für das Internet der Dinge Ein Überblick

Web-Konzepte für das Internet der Dinge Ein Überblick Web-Konzepte für das Internet der Dinge Ein Überblick Samuel Wieland sawielan@student.ethz.ch ETH Zürich Seminar Das Internet der Dinge Historisches Tim Berners-Lee Erster Web-Server Bildquelle: Wikimedia

Mehr

Client/Server-Systeme

Client/Server-Systeme Fachbereich Informatik Projektgruppe KOSI Kooperative Spiele im Internet Client/Server-Systeme Vortragender Jan-Ole Janssen 26. November 2000 Übersicht Teil 1 Das Client/Server-Konzept Teil 2 Client/Server-Architekturen

Mehr

VS11 Slide 1. Verteilte Systeme. Vorlesung 11 Sebastian Iwanowski FH Wedel

VS11 Slide 1. Verteilte Systeme. Vorlesung 11 Sebastian Iwanowski FH Wedel VS11 Slide 1 Verteilte Systeme Vorlesung 11 Sebastian Iwanowski FH Wedel VS11 Slide 2 Verteilte Systeme 1. Innovative Beispiele aus der Praxis 2. Allgemeine Anforderungen und Techniken verteilter Systeme

Mehr

7 Assemblies. Anwendungen (.exe) bzw. Anwendungskomponenten (.dll) für.net Portable Execution (PE) Files

7 Assemblies. Anwendungen (.exe) bzw. Anwendungskomponenten (.dll) für.net Portable Execution (PE) Files 7 Assemblies 8 Virtual Execution System VES Anwendungen (.exe) bzw. Anwendungskomponenten (.dll) für.net Portable Execution (PE) Files Teil der CLR Class Loader Metadaten (Manifest) zur Selbstbeschreibung

Mehr

TCP/IP Programmierung. C# TimeServer Java6 TimeClient

TCP/IP Programmierung. C# TimeServer Java6 TimeClient TCP/IP Programmierung C# TimeServer Java6 TimeClient Stand 19.10.11 21:24:32 Seite 1 von 16 Inhaltsverzeichnis Erläuterung...3 Software...3 C#TimeServer...4 Klasse ServerThread...6 Starten und Beenden...7

Mehr

Web Services. Dr. Wolfgang Süß

Web Services. Dr. Wolfgang Süß Service-orientierte Architektur (SOA) Architekturkonzept, da sich aus Diensten zusammensetzt. 3 Komponenten: Konnektoren: register Registrierung eines Dienstes bei einer Registry find Suchanfrage eines

Mehr

Web Service Entwicklung mit Java. Sven Lindow

Web Service Entwicklung mit Java. Sven Lindow Web Service Entwicklung mit Java Sven Lindow 22.11.2006 Agenda Einleitung SOAP, REST, WSDL, UDDI Web Services mit Java JWSDP JAX-RPC, JAX-WS 2.0 AXIS, AXIS2 Web Services nutzen Google, Ebay Web Services

Mehr

Integration von Web Services in J EE Anwendungen mit XFire. 1/26 André Janus - Integration von Web Services in J EE Anwendungen mit XFire

Integration von Web Services in J EE Anwendungen mit XFire. 1/26 André Janus - Integration von Web Services in J EE Anwendungen mit XFire Integration von Web Services in J EE Anwendungen mit XFire 1/26 André Janus - Integration von Web Services in J EE Anwendungen mit XFire univativ : = Umsetzung durch Studenten und Young Professionals.

Mehr