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

.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

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

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

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

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

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

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

Ü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

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

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

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

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

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

Hauptseminar Internetdienste Prof. F. Schweiggert Sommersemester 2004 Universität Ulm. Web Services. Boto Bako

Hauptseminar Internetdienste Prof. F. Schweiggert Sommersemester 2004 Universität Ulm. Web Services. Boto Bako Hauptseminar Internetdienste Prof. F. Schweiggert Sommersemester 2004 Universität Ulm Web Services Boto Bako Inhaltsverzeichnis 1.Einführung und Motivation...3 2.Verwendete Standards...4 2.1.SOAP...5 2.2.WSDL...6

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

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

.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

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

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

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

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

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

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

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

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

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

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

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

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

KompaSbilität zu Standards (WS- I) Contracts. Interfaces und Generics Umfangreiche AXribuSerung. Mehr Spielraum auf Transportebene

KompaSbilität zu Standards (WS- I) Contracts. Interfaces und Generics Umfangreiche AXribuSerung. Mehr Spielraum auf Transportebene Komponenten WCF (.NET Framework) WCF Verfeinerung und Reifung der ursprünglichen Version Geringere Unterschiede zu ASMX 2.0 (.NET 2.0) + WSE 3.0 Schwerpunkte KompaSbilität zu Standards (WS- I) Contracts

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

Grundlagen des Grid Computing

Grundlagen des Grid Computing Grundlagen des Grid Computing Webservices und Grid Computing Globus Toolkit 4 - Grundlagen ICA Joh.. Kepler Universität t Linz Eine Typische Grid-Applikation (Beispiel) VO Management Service Resource Discovery

Mehr

Modul Software Komponenten 10 Komponentenarchitektur

Modul Software Komponenten 10 Komponentenarchitektur Modul Software Komponenten 10 Komponentenarchitektur Teil 3 Peter Sollberger Eine erste CORBA Anwendung Inhalt Dienstag, 4. November Object Request Broker CORBA Architektur und Komponenten (Teil 1) Übung:

Mehr

Basistechnologien: Web-Services

Basistechnologien: Web-Services Alexander Rudolf Cloud-Computing Seminar Hochschule Mannheim WS0910 1/29 Basistechnologien: Web-Services Alexander Rudolf Hochschule Mannheim Fakultät für Informatik alexander.rudolf@stud.hs-mannheim.de

Mehr

XML-RPC & SOAP. Sven Heß & Fabio Caprera Systemprogrammierung SS 08

XML-RPC & SOAP. Sven Heß & Fabio Caprera Systemprogrammierung SS 08 XML-RPC & SOAP & Fabio Caprera Systemprogrammierung SS 08 Inhalt XML-RPC Überblick Entstehung Konzept Fehlerbehandlung Vor- und Nachteile SOAP Überblick Entstehung Konzept Fehlerbehandlung Vor- und Nachteile

Mehr

SOA, Webservices und SOAP für Schnelleinsteiger

SOA, Webservices und SOAP für Schnelleinsteiger SOA, Webservices und SOAP für Schnelleinsteiger (C)opyright 2005 by Jochen Vajda Inhalt Einführung I. Was ist SOA? II. Webservices, SOAP und WSDL SOAP mit PHP5 I. Benötigte Komponenten II. Client ohne

Mehr

XML-RPC, SOAP und Web Services. Jörn Clausen joern@techfak.uni-bielefeld.de

XML-RPC, SOAP und Web Services. Jörn Clausen joern@techfak.uni-bielefeld.de XML-RPC, SOAP und Web Services Jörn Clausen joern@techfak.uni-bielefeld.de Übersicht Was ist RPC? Was hat XML mit RPC zu tun? Was sind XML-RPC und SOAP? Was sind Web Services? Wird das die Welt retten?

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

VS12 Slide 1. Verteilte Systeme. Vorlesung 12 Sebastian Iwanowski FH Wedel

VS12 Slide 1. Verteilte Systeme. Vorlesung 12 Sebastian Iwanowski FH Wedel VS12 Slide 1 Verteilte Systeme Vorlesung 12 Sebastian Iwanowski FH Wedel Mögliche Plattformen für Web Services VS12 Slide 2 VS12 Slide 3 Java-Software für verteilte Systeme J2EE: Java 2 Enterprise Edition

Mehr

Mircosoft DotNot. Verteilte Anwendungen the microsoft (cc) way. Verteilte Anwendungen (04/05) T.S. (JD)

Mircosoft DotNot. Verteilte Anwendungen the microsoft (cc) way. Verteilte Anwendungen (04/05) T.S. (JD) Mircosoft DotNot Verteilte Anwendungen the microsoft (cc) way 1 Die DotNet-Plattform Microsofts zukünftige Plattform für die Erstellung (verteilter) Anwendungen Zusammenfassung bestehender und zukünftiger

Mehr

ESB. Open Source ESB: Mule Flightreservation. Res Gilgen Hochschule Luzern [Wählen Sie das Datum aus]

ESB. Open Source ESB: Mule Flightreservation. Res Gilgen Hochschule Luzern [Wählen Sie das Datum aus] ESB Open Source ESB: Mule Flightreservation Res Gilgen Hochschule Luzern [Wählen Sie das Datum aus] Inhalt 1. Open Source ESB: Mule... 2 1.1. Überblick... 2 1.1.1. Das Beispiel Zeigt:... 2 1.2. Installationsanleitung...

Mehr

SemTalk Services. SemTalk UserMeeting 29.10.2010

SemTalk Services. SemTalk UserMeeting 29.10.2010 SemTalk Services SemTalk UserMeeting 29.10.2010 Problemstellung Immer mehr Anwender nutzen SemTalk in Verbindung mit SharePoint Mehr Visio Dokumente Viele Dokumente mit jeweils wenigen Seiten, aber starker

Mehr

Remote Communications

Remote Communications HELP.BCFESDEI Release 4.6C SAP AG Copyright Copyright 2001 SAP AG. Alle Rechte vorbehalten. Weitergabe und Vervielfältigung dieser Publikation oder von Teilen daraus sind, zu welchem Zweck und in welcher

Mehr

Inhalt. ! Einführung. ! Model/Architektur und Protokoll-Stack. ! Begriffe XML-RPC, SOAP, WSDL und UDDI. ! Web Services Ablauf (Anhand eines Beispiels)

Inhalt. ! Einführung. ! Model/Architektur und Protokoll-Stack. ! Begriffe XML-RPC, SOAP, WSDL und UDDI. ! Web Services Ablauf (Anhand eines Beispiels) Webtechnologien - webt Web Services webt web services zeman, feisthammel, marti, burkert 04/2004 1 webt web services zeman, feisthammel, marti, burkert 04/2004 2 Verteilte Software-Systeme Ziel Protokolle,

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

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

COI-BUSINESSFLOW SOAP-SERVER MODUL INFORMATION

COI-BUSINESSFLOW SOAP-SERVER MODUL INFORMATION COI-BUSINESSFLOW SOAP-SERVER MODUL INFORMATION Präambel Die COI GmbH entwickelt seit 1988 moderne, prozessorientierte Lösungen rund um die Themen Archivierung, Dokumentenmanagement und Workflow. Als kompetenter

Mehr

-Testen verteilter Anwendungen

-Testen verteilter Anwendungen -Testen verteilter Anwendungen Seminar Simulation und Bildanalyse mit Java im SS04 Konstantin Tjo, Urs Pricking Testen verteilter Anwendungen 1 Übersicht Einführung in verteilte Anwendungen RMI (Remote

Mehr

.NET-Objekte einfach speichern Michael Braam, Senior Sales Engineer InterSystems GmbH

.NET-Objekte einfach speichern Michael Braam, Senior Sales Engineer InterSystems GmbH Make Applications Faster.NET-Objekte einfach speichern Michael Braam, Senior Sales Engineer InterSystems GmbH Agenda Vorstellung InterSystems Überblick Caché Live Demo InterSystems auf einen Blick 100.000

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

Mehr

Theorie und Praxis einer JSON-RPC-basierten Web-API

Theorie und Praxis einer JSON-RPC-basierten Web-API Theorie und Praxis einer JSON-RPC-basierten Web-API Christian Krause Christian.Krause@raritan.com Raritan Deutschland GmbH Chemnitzer LinuxTage 2015 Gliederung 1 2 Remote Procedure Call Interface Definition

Mehr

Anwendung eines Enterprise Java Beans

Anwendung eines Enterprise Java Beans Anwendung eines Enterprise Java Beans EJB Server EJB Container Remote Interface Home Interface EJB Object Der EJB Container kümmert sich um die Kommunikation des Beans mit anderen Komponenten, wobei er

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

Netzprogrammierung Web-Dienste

Netzprogrammierung Web-Dienste Netzprogrammierung Web-Dienste Robert Tolksdorf und Mitarbeiter und Peter Löhr Überblick 1. Was sind Web-Dienste? 3 2. WSDL 13 3. Axis 20 4. SOAP 23 5. SOAP und HTTP 30 6. Zusammenfassung 36 Robert Tolksdorf

Mehr

Termin 4: Web Services Computing

Termin 4: Web Services Computing Arbeitsgruppe Übung Netzbasierte Informationssysteme Termin 4: Web Services Computing Prof. Dr. Adrian Paschke Arbeitsgruppe Corporate Semantic Web (AG-CSW) Institut für Informatik, Freie Universität Berlin

Mehr

Hello World from CORBA

Hello World from CORBA Hello World from CORBA ein erster Überblick Aufruf einer Objekt-Methode Client gettemperature() Thermometer Objekt- Implementation Thermometer th = new Thermometer(); double t = th.gettemperature(); th

Mehr

Arten von Broker Architekturen

Arten von Broker Architekturen Arten von Broker Architekturen Common Object Request Broker Architecture (CORBA) Entworfen von Object Management Group (OMG) Für Datenaustausch und Kommunikation zwischen Komponenten verschiedener Programmiersprachen

Mehr

DBUS Interprozess-Kommunikation für Embedded-Plattformen

DBUS Interprozess-Kommunikation für Embedded-Plattformen DBUS Interprozess-Kommunikation für Embedded-Plattformen Andreas Schwarz Neratec Solutions AG Firmenprofil Neratec Solutions AG Produkt-Entwicklungen für kundenspezifische elektronische Produkte Produkte

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

Grundlagen verteilter Systeme

Grundlagen verteilter Systeme Universität Augsburg Insitut für Informatik Prof. Dr. Bernhard Bauer Wolf Fischer Christian Saad Wintersemester 08/09 Übungsblatt 2 05.11.08 Grundlagen verteilter Systeme Lösungsvorschlag Aufgabe 1: Das

Mehr

WebService-Architekturen

WebService-Architekturen WebService-Architekturen W12 Mario Jeckle mario.jeckle jeckle@daimlerchrysler.comcom DaimlerChrysler Forschungszentrum Ulm Inhaltsübersicht WebService was ist das? Dienstanbieter (Service Provider) Dienstnachfrager

Mehr

Microsoft SQL Server 2005 - Konfigurierung, Administration, Programmierung

Microsoft SQL Server 2005 - Konfigurierung, Administration, Programmierung Ruprecht Droge, Markus Raatz Microsoft SQL Server 2005 - Konfigurierung, Administration, Programmierung Microsoft Press Vorwort XI 1 Einführung in SQL Server 2005 1 Geschichte des SQL Servers 1 Wichtige

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

Client/Server-Programmierung. CORBA: Schritt-für-Schritt Anleitung (Mini HOWTO)

Client/Server-Programmierung. CORBA: Schritt-für-Schritt Anleitung (Mini HOWTO) Client/Server-Programmierung WS 2007/08 CORBA: Schritt-für-Schritt Anleitung (Mini HOWTO) Version 1.2, 28.11.07 Schritt 1: Erstellung der IDL Zuerst muß eine IDL (Interface Definition Language)-Datei erstellt

Mehr

Erweitern Sie ihren Tomcat um das AXIS-Framework und machen Sie ihn damit bereit für den Einsatz von Web Services:

Erweitern Sie ihren Tomcat um das AXIS-Framework und machen Sie ihn damit bereit für den Einsatz von Web Services: 0BBA Karlsruhe, Vorlesung Programmieren, Web Services 1BAufgabe 1 Tomcat um das AXIS-Framework erweitern : Erweitern Sie ihren Tomcat um das AXIS-Framework und machen Sie ihn damit bereit für den Einsatz

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

Die SharePoint-Welt für den erfahrenen.net-entwickler. Fabian Moritz MVP Office SharePoint Server ITaCS GmbH

Die SharePoint-Welt für den erfahrenen.net-entwickler. Fabian Moritz MVP Office SharePoint Server ITaCS GmbH Die SharePoint-Welt für den erfahrenen.net-entwickler Fabian Moritz MVP Office SharePoint Server ITaCS GmbH SharePoint Object Model IFilter Webpart Connections Webparts Web Server Controls Custom Field

Mehr

Quo vadis, OPC? - von Data Access bis Unified Architecture - Dipl.-Ing. (BA) Erik Hennig Dresden, 25.10.2007

Quo vadis, OPC? - von Data Access bis Unified Architecture - Dipl.-Ing. (BA) Erik Hennig Dresden, 25.10.2007 Informatik» Angewandte Informatik» Technische Informationssysteme Quo vadis, OPC? - von Data Access bis Unified Architecture - Dipl.-Ing. (BA) Erik Hennig Dresden, 25.10.2007 Gliederung Einführung Was

Mehr

KompaRbilität zu Standards (WS- I) Contracts. Interfaces und Generics Umfangreiche AWribuRerung. Mehr Spielraum auf Transportebene

KompaRbilität zu Standards (WS- I) Contracts. Interfaces und Generics Umfangreiche AWribuRerung. Mehr Spielraum auf Transportebene Komponenten WCF (.NET Framework) WCF Verfeinerung und Reifung der ursprünglichen Version Geringere Unterschiede zu ASMX 2.0 (.NET 2.0) + WSE 3.0 Schwerpunkte KompaRbilität zu Standards (WS- I) Contracts

Mehr

Business Process Execution Language. Christian Vollmer Oliver Garbe

Business Process Execution Language. Christian Vollmer <christian.vollmer@udo.edu> Oliver Garbe <oliver.garbe@udo.edu> Business Process Execution Language Christian Vollmer Oliver Garbe Aufbau Was ist BPEL? Wofür ist BPEL gut? Wie funktioniert BPEL? Wie sieht BPEL aus?

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

Mehr

Client/Server-Systeme

Client/Server-Systeme Client/Server-Systeme Prof. Dr.-Ing. Wilhelm G. Spruth SS 2005 Teil 16 RMI, DCOM, Webservices cs 1100 ww6 sch 05-97 Remote Method Invocation (RMI) JVM JVM Client Server Stub Java Remote Skeleton Method

Mehr

14.3 WebServices mit.net

14.3 WebServices mit.net Die Ausführungen zu ASP.NET können an dieser Stelle nicht vertieft werden, da dieses Thema derartig komplex ist, dass es den Rahmen dieses Buches sprengen würde. Statt dessen sei auf das sehr eindrucksvolle

Mehr

1. Wie können Forms und SOA integriert werden?

1. Wie können Forms und SOA integriert werden? Forms goes SOA Jüssen, Stefan Senior Consultant 03.02.2011 Jede Änderung im Geschäftsprozess muss umgehend in der unterstützenden Software abgebildet werden können. Professionelle Systementwicklung basiert

Mehr

Inhalt. 1. Motivation. 2. COM Architektur. 3. COM Implementierung. 4. Zusammenhang zu ATL. 5. Beispiel COM Client/ Server. 6..

Inhalt. 1. Motivation. 2. COM Architektur. 3. COM Implementierung. 4. Zusammenhang zu ATL. 5. Beispiel COM Client/ Server. 6.. Inhalt 1. Motivation 2. COM Architektur IUnkown 3. COM Implementierung 4. Zusammenhang zu ATL 5. Beispiel COM Client/ Server 6..NET/ COM Interop ISum IMultiply Calculator IClassFactory 7. Beispiel.NET

Mehr

Software Engineering II (IB) Serviceorientierte Architektur

Software Engineering II (IB) Serviceorientierte Architektur Serviceorientierte Architektur Prof. Dr. Oliver Braun Fakultät für Informatik und Mathematik Hochschule München SS 2015 Webservices Ziel: flexible programmatische Zusammenarbeit zwischen Servern Bereitstellung

Mehr

AKWi: SOA SOA-Technologiebenchmark Java RMI vs. Microsoft WCF

AKWi: SOA SOA-Technologiebenchmark Java RMI vs. Microsoft WCF AKWi: SOA SOA-Technologiebenchmark Java RMI vs. Microsoft WCF Mathias Slawik, SS 2009 Agenda Technologien Java RMI (Remote Method Invocation) Microsoft WCF (Windows Communication Foundation) Benchmark

Mehr

COMMON OBJECT REQUEST BROKER ARCHITECTURE. Dmytro Pyvovar Otto-von-Guericke Universität Magdeburg

COMMON OBJECT REQUEST BROKER ARCHITECTURE. Dmytro Pyvovar Otto-von-Guericke Universität Magdeburg COMMON OBJECT REQUEST BROKER ARCHITECTURE Dmytro Pyvovar Otto-von-Guericke Universität Magdeburg Gliederung Motivation Was ist CORBA? Object Management Architecture (OMA ) Interface Definition Language

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

CORBA. Beispiel einer Middleware-Plattform. Christian Fass WS 2013/14 Software Engineering: Basistechnologien

CORBA. Beispiel einer Middleware-Plattform. Christian Fass WS 2013/14 Software Engineering: Basistechnologien CORBA Beispiel einer Middleware-Plattform Christian Fass WS 2013/14 Software Engineering: Basistechnologien Allgemeines Common Object Request Broker Architecture Middleware: Vermittelt zwischen Obekten/Prozessen

Mehr

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java Präsentation zur Diplomarbeit von Übersicht Java 2 Enterprise Edition Java Servlets JavaServer Pages Enterprise JavaBeans Framework

Mehr

VIVIT TQA Treffen in Köln am 18. 04. 2013. API- Programmierung und Nutzung bei HP Quality Center / ALM. Michael Oestereich IT Consultant QA

VIVIT TQA Treffen in Köln am 18. 04. 2013. API- Programmierung und Nutzung bei HP Quality Center / ALM. Michael Oestereich IT Consultant QA VIVIT TQA Treffen in Köln am 18. 04. 2013 API- Programmierung und Nutzung bei HP Quality Center / ALM Michael Oestereich IT Consultant QA Agenda Vorstellung der API- Versionen OTA- API SA- API REST- API

Mehr

XML Vorlesung ETHZ SS 2006 27.6.2006. 27.6.2006 XML Vorlesung ETHZ SS 2006 2. 27.6.2006 XML Vorlesung ETHZ SS 2006 4

XML Vorlesung ETHZ SS 2006 27.6.2006. 27.6.2006 XML Vorlesung ETHZ SS 2006 2. 27.6.2006 XML Vorlesung ETHZ SS 2006 4 XML Vorlesung ETHZ, Sommersemester 2006 Web Services Erik Wilde 27.6.2006 http://dret.net/lectures/xml-ss06/ Übersicht XML als Präsentationsschicht Vergleich mit dem OSI Referenzmodell Abstract Syntax

Mehr

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Das Build Tool Ant. Sebastian Mancke, mancke@mancke-software.de

Das Build Tool Ant. Sebastian Mancke, mancke@mancke-software.de Das Build Tool Ant Sebastian Mancke, mancke@mancke-software.de Grundlagen Motivation Bei der Übersetzung und Pflege von Software treten viele, gleich bleibende Arbeitsschritte auf. Übersetzen des Codes

Mehr

MS SharePoint Server 2007. Justus Storch

MS SharePoint Server 2007. Justus Storch MS SharePoint Server 2007 Justus Storch MS SharePoint Server 2007 SharePoint Vorraussetzungen des SharePoint Server 2007 Architektur des SharePoint Server 2007 Zusammmenarbeit mit ASP.Net Anwendungsgebiete

Mehr

Hinweise der MTS-K zur Nutzung des MDM und zur Meldung von Grund- und Preisdaten sowie Beschwerden (Stand: 28. Juni 2013)

Hinweise der MTS-K zur Nutzung des MDM und zur Meldung von Grund- und Preisdaten sowie Beschwerden (Stand: 28. Juni 2013) Hinweise der MTS-K zur Nutzung des MDM und zur Meldung von Grund- und Preisdaten sowie Beschwerden (Stand: 28. Juni 2013) Für die Übermittlung der Grund- und Preisdaten sowie der Beschwerden arbeitet die

Mehr

Service Oriented Architecture. Hanno Wunderlich SWT-Projekt WS07/08

Service Oriented Architecture. Hanno Wunderlich SWT-Projekt WS07/08 Service Oriented Architecture Hanno Wunderlich SWT-Projekt WS07/08 1 Agenda Einführung SOA / Webservices Standards und Technologien hinter SOA/Webservices Beispiel für SOA SOA in unserem Projekt 2 Einführung

Mehr

FuE-Bereich IuK-Systeme im Gesundheitswesen

FuE-Bereich IuK-Systeme im Gesundheitswesen FuE-Bereich IuK-Systeme im Gesundheitswesen IG XML und Web Services Dipl.-Inform. Axel Schwolow IG Kommunikation im Web Entwicklung früher ausschließlich Kommunikation über Browser heute zunehmend direkt

Mehr

Configuration Manager Hardware Inventory Erweiterungen. 22.05.2014 trueit TechEvent 2014 1

Configuration Manager Hardware Inventory Erweiterungen. 22.05.2014 trueit TechEvent 2014 1 Configuration Manager Hardware Inventory Erweiterungen It s all about WMI 22.05.2014 trueit TechEvent 2014 1 Agenda Grundlagen Inventory Arten Welche Daten können inventarisiert werden Anpassungen an Default

Mehr

Java Forum Stuttgart 2008

Java Forum Stuttgart 2008 Professionelle Open Source SOA in 45 Minuten! Java Forum Stuttgart 2008 Dr. Halil-Cem Gürsoy, CDI AG Der Referent Insgesamt ca. 10 Jahre Beratung, davor Forschung Senior Consultant - JEE Evangelist Hauptsächlich

Mehr

Android Processes & Services

Android Processes & Services Android Processes & Services Jürg Luthiger University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems Ziele heute Arbeitsblatt 4 besprechen (inkl. Repetition)

Mehr

POIS-Praktikum 2007. Prozessimplementierung, RosettaNet PIPs 3A

POIS-Praktikum 2007. Prozessimplementierung, RosettaNet PIPs 3A POIS-Praktikum 2007 Prozessimplementierung, RosettaNet PIPs 3A Manuel Blechschmidt, David Foerster, Michael Leben, Mike Nagora, Jonas Rogge, Paul Römer Gliederung 2 Einleitung Was war unsere Aufgabe? Was

Mehr

Verteilte Systeme. Verteilte Objektorientierte Systeme II. Prof. Dr. Oliver Haase

Verteilte Systeme. Verteilte Objektorientierte Systeme II. Prof. Dr. Oliver Haase Verteilte Systeme Verteilte Objektorientierte Systeme II Prof. Dr. Oliver Haase 1 Überblick Verteilte Objektorientierte Systeme 1 RPC verteilte objektorientierte Architekturen Java RMI Verteilte Objektorientierte

Mehr

Web Services Monitoring

Web Services Monitoring Web Services Monitoring Foliensatz zum Vortrag von der OIO Hauskonferenz am 17. Dezember 2009 predic8 GmbH Moltkestr. 40 53173 Bonn www.predic8.de info@predic8.de Ihr Sprecher Thomas Bayer Trainer, Berater,

Mehr

Software Engineering II

Software Engineering II Software Engineering II Codegenerierung für den SmartIO Editor mit der Modeling Workflow Engine Wintersemester 10/111 Fachgebiet Software Engineering Albert Zündorf / Wiederholung Bisher im Laufe des Semesters

Mehr

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014)

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014) Anleitung Ein einfaches RMI-Beispiel (ab Java.0) c Y. Pfeifer (Juni 014) 1 Ein einfaches RMI-Beispiel Vorgehensweise: 1. Java Projekt anlegen. Zwei Packages server & client erstellen Auf der Server-Seite

Mehr