D i p l o m a r b e i t

Größe: px
Ab Seite anzeigen:

Download "D i p l o m a r b e i t"

Transkript

1 Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Institut für Theoretische und Technische Informatik Fachgebiet Rechnerarchitektur D i p l o m a r b e i t zur Erlangung des akademischen Grades Diplominformatiker vorgelegt der Fakultät für Informatik und Automatisierung der Technischen Universität Ilmenau "Konzeption und Realisierung einer Nutzerschnittstelle unter Einbeziehung von Web-Services für die Verwaltung von Nutzerkonten" Bearbeiter: Verantwortlicher Hochschullehrer: Wissenschaftlicher Betreuer: Dirk Behrendt Prof. Dr.-Ing. habil. W. Fengler Dr. Ing. J. Nützel Datum der Ausgabe des Themas: Datum der Abgabe des Themas: Inventarisierungsnummer: I

2 Danksagung An dieser Stelle möchte ich mich bei allen bedanken, die zum Gelingen dieser Arbeit beigetragen haben. Mein besonderer Dank geht an meinen Betreuer Herrn Dr. Ing. Jürgen Nützel, welcher mir die Möglichkeit gab, diese Diplomarbeit anzufertigen und stets beratend zur Seite stand. Ebenso danke ich den verantwortlichen Hochschullehrer Prof. Dr.-Ing. habil. W. Fengler. meine Eltern, die mir mein Studium finanziert und immer die notwendige Unterstützung gegeben haben. meine Freundin Susann, die mir all die Jahre die Kraft gegeben hat, die universitären Anforderungen zu meistern. Eidesstattliche Erklärung Hiermit versichere ich, die vorliegende Diplomarbeit selbstständig und nur unter Verwendung der angegebenen Hilfsmittel geschrieben zu haben. Ilmenau, Dirk Behrendt II

3 Thesen (1) Mit Web-Services wurde eine Technologie geschaffen, mit welcher eine plattformunabhängige Interaktion zwischen Systemen durch die Verwendung offener Standards wie HTTP, XML, SOAP, WSDL und UDDI realisierbar ist. (2) Mit WS-Security werden sicherheitsrelevante Funktionalitäten bereitgestellt, welche bislang in der Web-Service Welt vermisst wurden. Somit ist es möglich, Daten auch über mehrere Zwischenstationen verschlüsselt zu übertragen bzw. eine partielle Verschlüsselung für einzelne Empfänger vornehmen zu können. (3) Die gegenwärtig verfügbaren Web-Service Toolkits und Entwicklungsumgebungen bieten den Entwicklern umfangreiche Unterstützung bei der Erstellung und der Nutzung von Web- Services. Für kleinere und mittlere Projekte ist die Verwendung von kostenfreien Toolkits wie Apache Axis völlig ausreichend. (4) Mit dem.net Framework entwickelte Anwendungen sind plattformübergreifend ausführbar. Dazu muss auf dem Zielrechner die.net Laufzeitumgebung installiert sein. (5) Software-Entwickler können in ihrer bevorzugten Programmiersprache Funktionalitäten eines Web-Service nutzen, denn es existieren gegenwärtig für die gängigen Programmiersprachen SOAP-Implementierungen, die für eine Web-Service Nutzung notwendig sind. (6) Viele Menschen empfinden es nicht als Unrecht Kopien von Musik, Software oder Filmen anzufertigen und weiter zu verbreiten. Die Software- und Unterhaltungsindustrie versucht diesen Trend mittels Kopierschutz und Kontrollmechanismen entgegen zuwirken, wodurch jedoch die Verwendung der Produkte stark eingeschränkt wird. Der daraus resultierende Interessenkonflikt zwischen der Software- und Unterhaltungsindustrie und deren Kunden wird durch das Potato-System aufgehoben. III

4 (7) Die konsequente Anwendung des Model-View-Controller Konzeptes (MVC) bei der Softwareentwicklung erhöht die Wartbarkeit und Erweiterbarkeit einer Anwendung. (8) Das MVC-Framework Struts genießt eine hohe Akzeptanz bei den Softwareentwicklern und unterliegt einer ständigen Weiterentwicklung und Verbesserung. Mit dessen Hilfe lassen sich MVC 2-basierte Web-Applikationen entwickeln. (9) Die Nutzung von Testwerkzeugen garantiert die Korrektheit der Implementierung und die Konformität gegenüber den Nutzer-Anforderungen. Ilmenau, Dirk Behrendt IV

5 Inhaltsverzeichnis Abbildungsverzeichnis...VII Tabellenverzeichnis...VII Listingverzeichnis...VIII 1 Einleitung Grundlagen von Web-Services Begriffsklärung Der Stack der Web-Service-Techniken Basistechnologien HTTP (HyperText Transfer Protocol) XML (Extensible Markup Language) SOAP (Simple Object Access Protocol) WSDL (Web Service Description Language) UDDI (Universal Description, Discovery and Integration) Sicherheit und Transaktionalität Sicherheit bei Web-Services mit WS-Security Transaktionalität von Web-Services Anwendungsszenarien Ein Blick in die Zukunft Entwicklungsmöglichkeiten von Web-Services Entwicklung mit Apache Axis Architektur Entwicklung von Web-Services mit Apache Axis Web Service Toolkit (WSTK) von IBM Java Web Services Developer Pack (JWSDP) von Sun Vergleich von WSTK und JWSDP Das.NET Framework Architektur Unterstützte Sprachen ADO.NET (ActiveX Data Objects) Erstellung von Web-Services mit dem.net Framework Sun ONE (Sun Open Net Environment) Zusammenfassung Zugriffsmöglichkeiten auf Web-Services Der Google Web-Service Bereitgestellte Funktionalitäten Clientseitiger Zugriff auf den Google Web-Service C#.NET VB.NET (Visual Basic) Java Serverseitiger Zugriff auf den Google Web-Service JSP (JavaServer Pages) ASP.NET (Active Server Page) PHP (Hypertext Preprocessor) Generierte SOAP-Nachrichten Bewertung des Aufwands und Ausblick SOAP-Implementierungen für Sprachen V

6 5 Das Potato-System Ideen und Konzepte Waren- und Geldkreislauf Architektur Konzeption Zielsetzung und Analyse Das Model-View-Controller-Muster Das klassische MVC-Muster Das MVC 1-Muster Das MVC 2-Muster MVC-Frameworks Ereignisgesteuerte Frameworks Aktionsgesteuerte Frameworks Zusammenfassende Bewertung Das MVC-Framework Struts Die Konfigurationsdateien Der Struts-Controller Internationalisierung Die Struts Tag-Libraries Layout mit Struts-Tiles Der Struts-Validator Alternative Techniken in der View Umgesetzte Funktionalitäten des Jackets Vorgehen beim Erstellen von benutzerdefinierten Actions Verwendung des Validator-Frameworks Verarbeitung eines eingehenden Requests Testwerkzeuge StrutsTestCase Zusammenfassung Implementierung Login in das Potato-System Quellcode der Login Action-Klasse Web-Service Aufruf Layout mit Struts-Tiles Testen mit dem StrutsTestCase-Framework Zusammenfassung Zusammenfassung und Ausblick Anhang Vergleich von JWSDP und WSTK Programmiersprachen für das.net Framework Format der Suchanfragen an den Google Web-Service Format des Suchergebnisses des Google Web-Services Die WSDL-Datei des Google Web-Services Schema für die Erzeugung von Java-Klassen aus WSDL SOAP-Implementierungen für Sprachen Funktionalitäten des Potato-Systems (Web-Service) Screenshot der Login-Seite Testszenarien für die Struts-Applikation (Jacket) Abkürzungen Quellenverzeichnis VI

7 Abbildungsverzeichnis Abbildung 2.1: Service Orientierte Architektur (SOA) [W3Ca02]... 5 Abbildung 2.2: Der Web-Service-Stack [Web02]... 6 Abbildung 2.3: Die SOAP-Nachrichtenstruktur [Sne02] Abbildung 2.4: Komplexer Web-Service Reiseorganisation [Sta02] Abbildung 3.1: Axis im Web-Container [Bay03] Abbildung 3.2: Die Komponenten von JAX-RPC [Wan03] Abbildung 3.3: Bestandteile des JWSDP [Hol02] Abbildung 3.4: Die Architektur des.net Frameworks [NET2] Abbildung 3.5: Die Sun ONE Plattform [SunONE] Abbildung 4.1: C#.NET Zugriff auf den Google Web-Service Abbildung 4.2: JSP-Zugriff auf den Google Web-Service (1) Abbildung 4.3: JSP-Zugriff auf den Google Web-Service (2) Abbildung 5.1: Ablaufende Prozesse beim Dateikauf [NueB03] Abbildung 5.2: Zugrunde liegendes Preismodell [Potato] Abbildung 5.3: Die Architektur des Potato-Systems in Anlehnung an [Fri03] Abbildung 6.1: Das Wasserfallmodell [Balz00] Abbildung 6.2: Das klassische MVC-Muster [Gam96] Abbildung 6.3: Das MVC 1-Muster in Anlehnung an [Cav02] Abbildung 6.4: Das MVC 2-Muster in Anlehnung an [Cav02] Abbildung 6.5: Die wichtigsten Klassen des Action-Packages in Anlehnung an [Garn] Abbildung 6.6: Die Aufgaben der Konfigurationsdatei struts-config.xml Abbildung 6.7: Layout mit dem Tiles-Framework [HaiA03] Abbildung 6.8: Sequenzdiagramm für die Verarbeitung eines eingehenden Requests in Anlehnung an [Garn] Abbildung 6.9: Das StrutsTestCase Framework Abbildung 9.1: Screenshot der Login-Seite Tabellenverzeichnis Tabelle 6.1: Einordnung der Struts Action-Klassen Tabelle 9.1: Vergleich von JWSDP und WSTK (Featurematrix) [Hais02] Tabelle 9.2: Vergleich von JWSDP und WSTK (Entwicklungsprozess) [Hais02] Tabelle 9.3: Programmiersprachen für das.net Framework (1) [NET3] Tabelle 9.4: Programmiersprachen für das.net Framework (2) [NET3] Tabelle 9.5: Format der Suchanfragen an den Google Web-Service [Google] Tabelle 9.6: Format des Suchergebnisses des Google Web-Service [Google] Tabelle 9.7: Schema für die Erzeugung von Java-Klassen aus WSDL [Axis] Tabelle 9.8: SOAP-Implementierungen für Sprachen (1) [Xmethods] Tabelle 9.9: SOAP-Implementierungen für Sprachen (2) [Xmethods] Tabelle 9.10: Funktionalitäten des Potato-Systems (Web-Service) [Fri03] VII

8 Listingverzeichnis Listing 2.1: Kunden XML-Dokument... 7 Listing 2.2: DTD zum Kunden XML-Dokument... 8 Listing 2.3: XML-Schema zum Kunden XML-Dokument... 9 Listing 2.4: Eine SOAP-Nachricht Listing 2.5: Datenverschlüsselung mit XML Encryption Listing 3.1: Bereitzustellendes Java-Interface Listing 3.2: Struktur einer.asmx -Datei Listing 4.1: Codefragment für den Zugriff auf den Google Web-Service mit C#.NET Listing 4.2: Codefragment für den Zugriff auf den Google Web-Service mit VB.NET Listing 4.3: Codefragment für den Zugriff auf den Google Web-Service mit Java Listing 4.4: Codefragment für den Zugriff auf den Google Web-Service mit JSP Listing 4.5: Codefragment für den Zugriff auf den Google Web-Service mit ASP.NET Listing 4.6: Codefragment den Zugriff auf den Google Web-Service mit PHP Listing 4.7: SOAP-Request (Rechtschreibeanfrage) des Clients an den Google Web-Service Listing 4.8: SOAP-Response des Google Web-Service auf die Rechtschreibenfrage des Clients. 47 Listing 6.1: Struktur einer Action-Klasse Listing 6.2: Ausschnitt aus der Konfigurationsdatei struts-config.xml Listing 6.3: Ausschnitt aus der Datei validation.xml Listing 7.1: Implementierung der Login Action-Klasse Listing 7.2: Vorbereitung des Web-Service Aufrufs Listing 7.3: Web-Service Aufruf für das Login in das Potato-System Listing 7.4: Fragment der Datei tilesdefinitions.xml Listing 7.5: Anwendung der HTML Tag-Library in der Datei login_body.jsp Listing 9.1: Die WSDL-Datei des Google Web-Services VIII

9 1 Einleitung Immer mehr Menschen nutzen das Internet, um digitale Güter wie MP3, Software oder Filme untereinander zu tauschen. Dabei empfinden es viele Nutzer nicht als Unrecht, Kopien von diesen digitalen Gütern anzufertigen und weiter zu verbreiten. Dadurch entstehen der Software- und Unterhaltungsindustrie große Verluste. Kopierschutz und Kontrollmechanismen sollen die illegale Verbreitung von digitalen Gütern erschweren, wodurch jedoch die Verwendung der Produkte stark eingeschränkt wird. Industrie und Kunden stehen sich also mit entgegengesetzten Interessen gegenüber. Diese beiden Interessengruppen werden durch das Potato-System wieder zusammengeführt. Das Potato-System ist ein Handelsplatz für digitale Güter, insbesondere MP3-Dateien. Die Nutzer werden am Umsatz beteiligt, indem sie zu Vertriebspartnern werden. Die Funktionalitäten des Potato-Systems werden als Web-Service bereitgestellt, wobei sich so genannte Jackets dieser bedienen. Das können zum Beispiel Web-Applikationen sein. Ziel dieser Diplomarbeit ist die Konzeption und Realisierung einer Nutzerschnittstelle unter Einbeziehung des Web-Services, welcher vom Potato-System bereitgestellt wird. Es ist eine Web-Applikation zu entwickeln, welche die Funktionalitäten des angesprochenen Web- Services nutzt. Über kein anderes Konzept wurde in den letzten Monaten in Fachzeitschriften mehr diskutiert als über Web-Services. Dabei erhält man oftmals den Eindruck, dass das Web-Service Konzept die Softwareentwicklung revolutionieren würde. Aber was genau steckt hinter der Web-Service Technologie? Wie kann man Web-Services erstellen? Wie kann man Funktionalitäten eines Web-Services in seinen Anwendungen nutzen und welche Möglichkeiten gibt es, den Entwickler bei der Erstellung und Nutzung von Web-Services zu unterstützen? Auf diese Fragen soll im theoretischen Teil dieser Diplomarbeit eine Antwort gegeben werden, um die daraus gewonnenen Erkenntnisse im praktischen Teil anzuwenden. Im Kapitel 2 werden die Grundlagen von Web-Services besprochen. Dies beinhaltet eine Begriffsdefinition, die Einführung in das Architekturkonzept und die Vorstellung der zugrunde liegenden Basistechnologien. In diesem Zusammenhang wird ebenfalls besprochen werden, wie man die Sicherheit bei Web-Services gewährleisten kann. Mögliche Anwendungsbereiche für Web-Services runden dieses Kapitel ab. 1

10 Kapitel 1 / Einleitung Das Kapitel 3 beschäftigt sich mit den Entwicklungsmöglichkeiten von Web-Services. Es werden Toolkits und Entwicklungsumgebungen vorgestellt, welche die Arbeit mit Web- Services erleichtern. Im Fokus dieser Diplomarbeit steht zwar die Nutzung von Web- Services, dennoch soll in diesem Kapitel beleuchtet werden, wie man Web-Services erstellt und welche Unterstützung die vorgestellten Toolkits und Entwicklungsumgebungen hierfür bieten. Kapitel 4 untersucht die Zugriffsmöglichkeiten auf Web-Services. Es wird dargelegt, wie man die Funktionalitäten eines Web-Services in Client- und Serverseitigen Anwendungen nutzen kann und welche Schritte dafür notwendig sind. Dies wird am Beispiel des Google Web- Service getan werden. Die Ideen und Konzepte sowie die Architektur des Potato-Systems werden in Kapitel 5 vorgestellt. Kapitel 6 beschreibt den konzeptionellen Teil dieser Diplomarbeit. Ziel ist die Entwicklung einer Web-Applikation, welche den Web-Service des Potao-Systems in Anspruch nimmt. Es werden die Anforderungen an die Nutzerschnittstelle erläutert und Möglichkeiten aufgezeigt, wie diese Anforderungen erfüllt werden können. Abschließend werden die Konzepte und Strategien dargelegt, welche für die Umsetzung der Anforderungen notwendig sind. Das 7. Kapitel demonstriert beispielhaft, wie eine konkrete Funktionalität der Nutzerschnittstelle unter Verwendung der in Kapitel 6 erarbeiteten Konzepte implementiert wurde. Den Abschluss dieser Diplomarbeit bildet eine Zusammenfassung und Ausblick im Kapitel 8. 2

11 2 Grundlagen von Web-Services In diesem Kapitel sollen die Grundlagen von Web-Services besprochen werden. Nach einer Begriffsklärung wird in die zugrunde liegende Schichten-Architektur eingeführt, um in Anschluss daran die verwendeten Basisarchitekturen zu erläutern. Sicherheitsfragen und Anwendungsmöglichkeiten werden ebenso erörtert. 2.1 Begriffsklärung Der Begriff Web-Service ist zum Schlagwort in den letzten Jahren geworden. Allerdings fällt auf, dass keine einheitliche Definition dieses Begriffs und des mit ihm verbundenen Paradigmas existiert. [Sne02] vermittelt eine kurze Beschreibung: Ein Web-Service ist eine über ein Netzwerk zugängliche Schnittstelle zu Anwendungsfunktionen, die mit Hilfe von Standardtechniken des Internets realisiert wird. Wenn also eine Anwendung mit Hilfe einer Kombination von standardisierten Protokollen wie HTTP (HyperText Transfer Protocol), XML (Extensible Markup Language), SMTP (Simple Mail Transfer Protocol) oder Jabber über ein Netzwerk angesprochen werden kann, handelt es sich um einen Web-Service. Folgende Definition nimmt das W3C (World Wide Web Consortium) [W3Ca02] vor: A Web service is a software system identified by a URI (Uniform Resource Identifier), whose public interfaces and bindings are defined and described using XML. Its definition can be discovered by other software systems. These systems may then interact with the Web service in a manner prescribed by its definition, using XML based messages conveyed by internet protocols. Diese Eigenschaften sind nichts Neues, sondern stellen eher eine Weiterentwicklung von Prinzipien dar, an welchen sich das Internet seit Jahren orientiert hat. Betrachtet man einen Web-Service als ein Programm im Internet, das mit standardisierten Protokollen aufzurufen ist, so zeigt sich, dass ähnliche Verfahren schon lange existieren. Während sich durch CORBA (Common Object Request Broker Architecture), RMI (Remote Method Invocation) oder (D)COM ((Distributed) Component Object Model) verteilte Applikationen erstellen lassen, behandeln sie häufig nur Teilaspekte der Kommunikation. Plattformunabhängigkeit kann durch RMI erreicht werden, jedoch benötigt man eine Java-Implementation. Der 3

12 Kapitel 2 / Grundlagen von Web-Services Standard CORBA ist unabhängig von einer Programmiersprache, setzt jedoch die Existenz eines speziellen Moduls voraus. Der ORB (Object Request Broker) kann nicht von jeder Plattform bereitgestellt werden. COM ist an Windows-Umgebungen gebunden. Bisherige Verteilungstechnologien gewährleisten also nicht in allen Fällen eine vollständige Unabhängigkeit von Plattform oder Programmiersprache. Dieser Unzulänglichkeit soll die Web-Service-Technologie entgegenwirken. Das Web-Service-Modell beruht auf der Interaktion dreier Rollen. - Dienstanbieter (service provider) - Dienstbenutzer (service requestor) - Dienstverzeichnis (service registry) Ein Dienstanbieter stellt eine Plattform zur Verfügung, welche über ein Netzwerk Zugriff auf den Dienst ermöglicht. Der Dienstbenutzer sucht und ruft den durch den Dienstanbieter angebotenen Dienst auf. Diese Rolle kann sowohl von einem Browser und dem dahinter stehenden Nutzer, als auch von einem Programm, wie zum Beispiel einem weiteren Web-Service übernommen werden. Das Dienstverzeichnis ist eine über das Internet durchsuchbare Datenbank, in welcher der Dienstanbieter Dienstbeschreibungen für seinen Web-Service bereitstellt. Das Durchsuchen der Datenbank kann zur Laufzeit (dynamic binding) oder zur Entwicklungszeit des Dienstbenutzers (static binding) erfolgen. Beim static binding ist das Dienstverzeichnis nicht zwingend notwendig, denn der Dienstanbieter kann die Dienstbeschreibung dem Dienstbenutzer direkt zugänglich machen (z. B. per FTP (File Transfer Protocol), ). Die dynamische Integration von Diensten bezeichnet man auch als Just-in-time-Integration. Die Interaktion der Rollen kann durch drei Operationen beschrieben werden. - interagieren (interact) - finden (find) - veröffentlichen (publish) Damit auf einen Web-Service zugegriffen werden kann, muss seine Beschreibung veröffentlicht werden. Der Dienstbenutzer sucht (und findet) einen Web-Service und erhält dessen Beschreibung. 4

13 Kapitel 2 / Grundlagen von Web-Services Der Dienstbenutzer ruft einen Dienst auf und interagiert mit diesen. Die beschriebenen Zusammenhänge sind in der Abbildung 2.1 nachzuvollziehen. Die zugrunde liegende Basisarchitektur bezeichnet man auch als Service orientierte Architektur (SOA - Service Oriented Architecture). Dienstverzeichnis Dienstbeschreibung veröffentlichen finden Dienst Dienstanbieter Dienstbeschreibung Dienstbenutzer interagieren binden Abbildung 2.1: Service Orientierte Architektur (SOA) [W3Ca02] 2.2 Der Stack der Web-Service-Techniken Die unterste Schicht des Web-Service-Stacks nimmt die Netzwerkschicht ein. Web-Services müssen in einem Netzwerk verfügbar sein, um von anderen Programmen aufgerufen werden zu können. Web-Services, die über das Internet zugreifbar sein sollen, müssen Standard Internet-Protokolle verwenden. Als Transportprotokoll wird meist HTTP eingesetzt. Aber auch jedes andere Transportprotokoll wie FTP oder SMTP ist je nach Anwendungsgebiet einsetzbar. Die zweite Schicht des Web-Service-Stacks ist die Nachrichtenschicht. In ihr findet der XML-basierte Nachrichtenaustausch statt. SOAP definiert einen auf XML basierenden Umschlag (envelope), in welchem jede Art von Daten übertragen werden können. Zusätzlich dazu sind RPC-Aufrufe (Remote Procedure Call) übermittelbar. Damit ist der Aufruf eines Web-Services über standardisierte XML-Nachrichten möglich. 5

14 Kapitel 2 / Grundlagen von Web-Services Die Dienstbeschreibungsschicht bildet die dritte Schicht des Stacks. Sie besteht aus einer Sammlung von Dokumenten, die den Web-Service beschreiben. Standardmäßig wird dafür WSDL als XML-basierte Dienstbeschreibungssprache verwendet. Ein WSDL-Dokument beschreibt das Interface und die Implementierung eines Web-Service und enthält alle nötigen Informationen für dessen Benutzung. Die vierte Schicht setzt auf den Kern-Stack (Netzwerkschicht, Nachrichtenschicht Dienstbeschreibungsschicht) auf, welcher jeder Web-Service implementieren muss und wird als Service-Registrierungsschicht bezeichnet. In ihr sind die Prozesse Veröffentlichung (Service-Publication) und Entdeckung (Service-Discovery) von Bedeutung. Die einfachste Form der Veröffentlichung ist ohne Verwendung einer Service-Registry. Hierbei werden die WSDL-Dokumente direkt vom Dienstanbieter an den Dienstbenutzer gesendet. Die Entdeckung besteht dann einfach aus dem Laden der WSDL-Datei. Eine andere Möglichkeit bietet UDDI (Universal Description, Discovery and Integration) als Service-Registry. Darin werden typischerweise nicht nur die WSDL-Dokumente abgespeichert, sondern weiterhin ausführliche Beschreibungen des Dienstanbieters. Die Säulen Management, Quality of Service (QoS) und Sicherheit bezeichnen Anforderungen, welche in jeder horizontalen Schicht gefordert sind. Abbildung 2.2 gibt eine zusammenfassende Darstellung über den Stack der Web-Service- Techniken. UDDI Service-Registrierungsschicht WSDL XML, SOAP Dientsbeschreibungsschicht Nachrichtenschicht Management Quality of Service Sicherheit HTTP, SSL, FTP, SMTP, etc. Netzwerkschicht Abbildung 2.2: Der Web-Service-Stack [Web02] 6

15 Kapitel 2 / Grundlagen von Web-Services 2.3 Basistechnologien HTTP (HyperText Transfer Protocol) Das HTTP-Protokoll wurde ursprünglich zur Übermittlung von HTML-Seiten (HyperText Markup Language) entwickelt und basiert auf dem Client-Server-Prinzip. Es werden eine Reihe von Methoden (z. B. GET oder POST) für die Übertragung von Daten spezifiziert. Weiterhin stehen Status-Codes zum Anzeigen von Fehlern oder Warnmeldungen zur Verfügung. Eine HTTP-Verbindung ist zustandslos, der Server führt also keine Aufrufhistorie. HTTP-Nachrichten sind durch die Kodierung im ASCII-Format (American Standard Code for Information Interchange) für den Menschen lesbar. Weitere Informationen sind unter [HTTP] abrufbar XML (Extensible Markup Language) XML ist ein Projekt des W3C-Konsortiums [W3C], welches seit 1996 entwickelt wird und stellt eine universelle Sprache zum Austausch, zum Retrieval und zur Verwaltung von Daten dar. Ein XML-Element besteht aus einem Anfangs-Tag und einem End-Tag, den so genannten semantischen Tags. Tags sind eine Art Marke und sagen etwas über die Bedeutung der Zeichenkette aus, die von ihnen eingeschlossen wird. Ein XML-Dokument ist ein XML-Element, das verschachtelte XML-Elemente enthalten kann. In Listing 2.1 ist ein einfaches Kunden XML-Dokument abgebildet. <Kunden> <Kunde id="12345"> <Name>Mustermann, Karl</Name> <Firma>Mustermann GmbH</Firma> <Telefon> </Telefon> <Fax> </Fax> <Kreditkartennummer> </Kreditkartennummer> <Adresse> <Strasse>Musterstrasse 1</Strasse> <Stadt>Ilmenau</Stadt> <PLZ>98693</PLZ> <Land>BRD</Land> </Adresse> </Kunde>... </Kunden> Listing 2.1: Kunden XML-Dokument 7

16 Kapitel 2 / Grundlagen von Web-Services Eine Dokumententyp-Definition (DTD) enthält Normen für den Inhalt und Aufbau von XML- Dokumenten. In ihr wird also festgelegt, wie ein Dokument auszusehen hat. In Listing 2.2 ist die zum Kunden XML-Dokument gehörige DTD. <?xml version="1.0"?> <!DOCTYPE Kunden [ <!ELEMENT Kunde (Kunde)* > <!-- XML-Dokument beginnt mit einem Kunde Element (beliebig viele) --> <!ELEMENT Kunde (Name, Firma, Telefon+, Fax*, Adresse)> <!-- "*" heißt beliebig oft, "+" heißt mind. einmal --> <!ELEMENT Name (#PCDATA)> <!ELEMENT Firma (#PCDATA)> <!ELEMENT Telefon (#PCDATA)> <!ELEMENT Fax (#PCDATA)> <!ELEMENT Adresse (Strasse, Stadt, PLZ, Land)> <!ELEMENT Strasse (#PCDATA)> <!ELEMENT Stadt (#PCDATA)> <!ELEMENT PLZ (#PCDATA)> <!ELEMENT Land (#PCDATA)> <!ATTLIST Kunde id CDATA #REQUIRED> <!-- unbedingte Angabe --> ]> Listing 2.2: DTD zum Kunden XML-Dokument Eine weitere Möglichkeit die Struktur eines XML-Dokumentes zu definieren, bietet sich mit dem XML-Schema, welches die DTDs mittelfristig ablösen wird. Die Gründe für diesen Wechsel sind in den folgenden Punkten aufgezeigt. Nachteile von DTDs: - Datentypen sind begrenzt (keine Möglichkeit Datum, Währung,... genau darzustellen) - verwenden keine XML-Syntax - besitzen komplexen Erweiterungsmechanismus - unterstützen keine Namensräume Vorteile von XML-Schema: - mehr Datentypen (Datum, Integer...) - Nutzung selbst erstellter Datentypen - Vererbung deklarierter Objekte - Verwendung von Namensräumen DTDs sind zwar nicht so mächtig wie das XML-Schema, jedoch einfacher zu erlernen. Es wurden bereits viele Erfahrungen damit gesammelt und werden auch weiterhin zum Einsatz 8

17 Kapitel 2 / Grundlagen von Web-Services kommen. Im folgenden Listing 2.3 ist das zum Kunden XML-Dokument zugehörige XML- Schema. <schema xmlns=" <element name="kunden" type="kundentyp"/> <complextype name="kundentyp"> <element name="kunde" type= "KundeTyp" maxoccurs="*"/> </complextype> <complextype name="kundetyp"> <element name="name" type="string"/> <element name="firma" type="string"/> <element name="telefon" type="string" maxoccurs="*"/> <element name="fax" type="string" minoccurs="0"/> <element name="adresse" type="adressetyp"/> <attribute name="id" type="string" minoccurs="1"/> </complextype> <complextype name="adressetype"> <element name="strasse" type="string"/> <element name="stadt" type="string"/> <element name="plz" type="string"/> <element name="land" type="landtyp"/> </complextype> <simpletype name="landtyp" base="string"> <enumeration value="brd"/> <enumeration value="usa"/> <enumeration value="nl"/> <!-- Weitere Staaten hier eintragen --> </simpletype> </schema> Listing 2.3: XML-Schema zum Kunden XML-Dokument Falls ein Dokument im Sinne der DTD bzw. des XML-Schemas korrekt ausgezeichnet wurde, so ist es gültig oder valid. Ein XML-Dokument kann auch ohne DTD bzw. XML-Schema auskommen und wohlgeformt sein, wenn es definierten syntaktischen Anforderungen genügt SOAP (Simple Object Access Protocol) SOAP ist eine Anwendung der XML-Spezifikation. Eine sehr flexible Möglichkeit zur Kommunikation zwischen Anwendungen stellt der XML-Nachrichtenaustausch dar, welcher die Grundlage für SOAP bildet. Da XML an keine spezielle Anwendung, Betriebsystemumgebung oder Programmiersprache gebunden ist, können XML-Nachrichten in allen Umgebungen verwendet werden. RPC (Remote Procedure Call) ist die Grundlage für verteiltes Rechnen und EDI (Electronic Document Interchange) findet bei automatisierten geschäftlichen Transaktionen Anwendung. RPC, also der Aufruf einer Methode eines Programms und EDI sind mit SOAP verwandt. 9

18 Kapitel 2 / Grundlagen von Web-Services Eine SOAP-Nachricht besteht aus einem Umschlag (envelope), welcher optional einen Header und danach zwingend einen Body enthält. Der Header enthält Informationsblöcke, welche sich auf die Nachrichtenverarbeitung beziehen. Diese beinhalten Angaben zum Routing und zur Auslieferung, Aussagen über die Authentifizierung oder Autorisierung und Transaktionskontexte. Der Body enthält die eigentliche Nachricht für die Auslieferung und Verarbeitung. Die XML-Syntax für die Formulierung einer SOAP-Nachricht stützt sich auf den Namensraum Dieser Bezeichner weist auf ein XML-Schema, welches die Struktur einer SOAP-Nachricht definiert. In Abbildung 2.3 ist die SOAP-Nachrichtensstruktur verdeutlicht. SOAP-Umschlag SOAP-Header Headerblock Headerblock SOAP-Body Nachrichten-Body Abbildung 2.3: Die SOAP-Nachrichtenstruktur [Sne02] Das folgende Listing 2.4 beinhaltet alle Kernkomponenten eines SOAP-Umschlages. Zu sehen ist eine Nachricht im RPC-Stil. Man stelle sich vor, dass eine Anwendung eine Funktion anbietet, die einen Aktienkurs liefert. 10

19 Kapitel 2 / Grundlagen von Web-Services <soapenv:envelope xmlns:soapenv=" <soapenv:header> <tr:transaction xmlns:tr="soap-transaction" soapenv:mustunderstand="true"> <transactionid>1234<transactionid> </tr:transaction> </soapenv:header> <soapenv:body> <q:getquote xmlns:q="urn:quoteservice" soapenv:encodingstyle=" <symbol xsi:type="xsd:string">ibm</symbol> </q:getquote> </soapenv:body> </soapenv:envelope> Listing 2.4: Eine SOAP-Nachricht Der oberste Container <soapenv:envelope> enthält die SOAP-Nachricht. Der optionale Header <soapenv:header> beinhaltet zusätzliche Informationsblöcke, hier eine Transaktions-ID und das Attribut mustunderstand. Wenn das Flag mustunderstand = true in einen bestimmten Block (hier der Header) gesetzt ist, muss die gesamte Nachricht vom Empfänger zurückgewiesen werden, falls dieser den Block nicht versteht und zwar unabhängig davon, ob der Rest der Nachricht (hier der Body) verarbeitet werden kann oder nicht. Dadurch wird sichergestellt, dass der Empfänger Transaktionen versteht. Jedes Envelope-Element muss genau ein Body-Element enthalten. Das Body-Element kann so viele Kind-Knoten beinhalten, wie benötigt werden. Darüber hinaus kann es jeden gültigen, wohlgeformten XML-Code aufnehmen, der durch einen Namensraum qualifiziert ist und keinerlei Verarbeitungsanweisungen und Verweise auf DTDs enthält. Die gleichen Restriktionen sind für das Header-Element einzuhalten, welches nur einmal vorkommen darf und mehrere Headerblöcke enthalten kann. Der Codierungsstil für eine bestimmte Menge von XML-Elementen wird durch die Angabe des Attributes encodingstyle festgelegt. Es kann an jeder Stelle des Dokumentes auftreten und gilt für alle untergeordneten Kinder des Elements. Der Codierungsstil legt fest, wie Anwendungen auf verschiedenen Plattformen Informationen miteinander austauschen. Treten Fehler bei der Verarbeitung von SOAP-Nachrichten auf, so wird ein besonderer Nachrichtentyp generiert, so genannte SOAP-Faults, welche den aufgetretenen Fehler näher spezifizieren. 11

20 Kapitel 2 / Grundlagen von Web-Services WSDL (Web Service Description Language) Der Standard für die Beschreibung von Web-Services ist WSDL. Dadurch kann ein Web- Service darüber informieren, welche Funktionalitäten er anbietet und wie diese zu nutzen sind. Die Struktur eines WSDL-Dokuments entspricht der Syntax des XML-Schemas (siehe Kapitel 2.3.2). Mehr Informationen über den Aufbau und Funktionsweise einer WSDL- Beschreibung können aus der Diplomarbeit von Gabriele Frings [Fri03] entnommen werden UDDI (Universal Description, Discovery and Integration) WSDL stellt den Dienstbenutzer Informationen zur Verfügung (ähnlich den Gelben Seiten), welche für die Interaktion mit dem Web-Service notwendig sind. Das UDDI-Projekt ist eine Initiative der Industrie, ein durchsuchbares Register von Diensten und ihren Beschreibungen zu definieren. Somit ist es Konsumenten möglich, Dienste entdecken zu können. UDDI ist nicht die einzigste Möglichkeit Dienste zu entdecken. IBM [IBM] und Microsoft [Microsoft] haben WS-Inspection (Web-Service Inspection Language) vorgeschlagen, eine auf XML basierende Sprache, welche ein Verzeichnis aller Web-Services unter einer bestimmten URL (Uniform Resource Locator) bereitstellt. Für tiefergreifende Informationen soll wiederum auf [Fri03] verwiesen werden. 2.4 Sicherheit und Transaktionalität Die Entwicklung der Web-Service Technologie schreitet rasch voran, dennoch blieb das Thema Sicherheit für lange Zeit ungeklärt. Fehlende Sicherheitsstandards wurden in der Vergangenheit immer wieder als Aufschiebegrund für den Beginn von Web-Service Projekten genannt. Folgende Fragen müssen betrachtet werden: [Pop02] - Wie können Sicherheit, Erreichbarkeit von Diensten und Performance gewährleistet werden? - Wie verhalten sich (kooperierende) Dienste? - Welche Sicherheitsrisiken werden bei Aufruf eines Web-Services eingegangen? 12

21 Kapitel 2 / Grundlagen von Web-Services Sicherheit bei Web-Services mit WS-Security Beim Einsatz von Web-Services entstehen neue Anforderungen, die mit gewöhnlichen Firewalls nicht erfüllbar sind. Die Zugriffsbeschränkung auf gewisse Operationen ist mit einer Firewall auf Netzwerkebene nicht erreichbar. Alle vom Web-Service bereitgestellten Methoden sind für jedermann zugänglich. Die XML- bzw. SOAP-Fähigkeit von Firewall- Produkten könnte dieses Problem lösen, denn es wäre eine Filterung eingehender SOAP- Requests möglich. Weit verbreiteter ist jedoch die Problemlösung auf Anwendungsebene. Neben der reinen Zugriffsbeschränkung, muss die Vertraulichkeit von SOAP-Nachrichten durch Verschlüsselung garantiert werden können. Die Sicherstellung der Datenintegrität, also die Gewährleistung, dass eine Nachricht auf dem Weg vom Sender zum Empfänger nicht verändert wird, ist ebenso eine wichtige Anforderung. WS-Security [WSSecurity] definiert einige Erweiterungen des SOAP-Protokolls, mit deren Hilfe die Standards XML-Encryption [XMLEncryption] und XML-Signature [XMLSignature] im Zusammenspiel mit SOAP-Nachrichten genutzt werden können. Um diese Technologien verstehen zu können, ist ein Grundwissen über kryptographische Verfahren erforderlich. Dieses soll im Folgenden aufgefrischt werden. Bei der Verschlüsselung von Daten unterscheidet man zwischen symmetrischen und asymmetrischen Verfahren. Symmetrischer Verfahren Absender und Empfänger einer Nachricht verwenden denselben Schlüssel, um die Nachricht ver- bzw. entschlüsseln zu können. Der Vorteil liegt in der Geschwindigkeit und Effizienz. Der gemeinsame Schlüssel muss jedoch zunächst auf einem sicheren Weg vereinbart bzw. übermittelt werden. Ebenso muss für jeweils zwei Kommunikationspartner ein solcher Schlüssel existieren. Bei 15 Kommunikationspartnern wären dies bereits 105 Schlüssel. Asymmetrische Verfahren Jeder Kommunikationspartner besitzt einen öffentlichen (public key) und einen privaten Schlüssel (private key). Der private Schlüssel wird geheim gehalten, während der öffentliche Schlüssel allen Kommunikationspartnern gezielt zugeführt wird. Somit sind für 15 solcher Kommunikationspartner nur 30 Schlüssel notwendig. Eine Nachricht, die mit einem öffentlichen Schlüssel einer Person chiffriert wurde, kann nur mit dem zugehörigen privaten Schlüssel wieder zurückverwandelt werden und umgekehrt. 13

22 Kapitel 2 / Grundlagen von Web-Services Die Herleitung des einen Schlüssels aus dem anderen ist mit unrealistischem Aufwand an Hardware und Rechenleistung verbunden. Ein erfolgreicher Angriff würde viel Zeit in Anspruch nehmen. Digitale Zertifikate wie X.509 betätigen die Zugehörigkeit eines öffentlichen Schlüssels zu einer Person. Somit kann die Erzeugung von gefälschten Schlüsselpaaren und das in Umlauf bringen von ungültigen öffentlichen Schlüsseln unter falschem Namen verhindert werden. Häufig werden asymmetrische Verfahren auch dazu verwendet, um auf sichere Art und Weise einen symmetrischen Schlüssel für die weitere Kommunikation zu übertragen. (z. B. SSL (Secure Socket Layer)). Die Verwaltung öffentlicher Schlüssel kann mit hohem Aufwand verbunden sein. Digitale Signaturen sind ein bekanntes Einsatzgebiet von asymmetrischen Verfahren. Damit kann die Datenintegrität und die Authentizität der Kommunikationspartner garantiert werden. Diese erhöhte Sicherheit resultiert in einer schlechten Performance, da die zu signierenden Nachrichten beliebig groß werden können. Deshalb wird in der Regel nur ein so genanntes Message Digest signiert. Dies ist eine Art Checksumme, welche mittels einer Hash-Funktion aus der zu signierenden Nachricht berechnet wird. Das Fälschen eines Message Digest ist nur extrem schwer möglich, denn kleinste Änderungen an einer bestehenden Nachricht bewirken deutliche Abweichungen in der Checksumme. Die Identität von Clients nimmt eine Schlüsselrolle in Web-Service-Anwendungen ein, vor allem bei der Verknüpfung mehrerer Web-Services zu komplexen Workflows. Einfache Web- Services realisieren eine Autorisierung meist über Benutzername und Passwort. Diese Vorgehensweise ist jedoch untragbar beim Zusammenspiel mehrerer Web-Services unterschiedlicher Anbieter. Daher existieren bereits Ansätze wie Microsofts Passport oder das Liberty Alliance Projekt, um den Single Sign-on zu etablieren (siehe auch [Fri03]). XML-Encryption Grundsätzlich kann eine Verschlüsselung auf der Transportschicht oder auf der Anwendungsschicht vorgenommen werden. Wenn eine SOAP-Nachricht nicht einen einzigen Web-Service als Empfänger hat, sondern die Nachricht erst über mehrere Zwischenstationen zum endgültigen Empfänger gelangt, so liegt in der Verschlüsselung auf der Transportschicht (meist SSL/HTTPs (HTTP secure)) ein Sicherheitsrisiko. Denn es kann unter Umständen möglich sein, dass Teile einer Nachricht für einzelne Zwischenstationen nicht sichtbar sein dürfen. Um eine partielle Verschlüsselung erreichen zu können, muss auf der Anwendungsschicht eingegriffen werden. Mit XML-Encryption kann eine granulare 14

23 Kapitel 2 / Grundlagen von Web-Services Verschlüsselung vorgenommen werden. So kann zum Beispiel das komplette XML- Dokument, einzelne Elemente oder nur die Inhalte eines Elements verschlüsselt werden. Das XML-Dokument in Listing 2.5 verschlüsselt die Kreditkartennummer des Kunden XML- Dokumentes (siehe Listing 2.1). Ein mit XML-Encryption verschlüsseltes Element enthält anstelle der verschlüsselten Anteile ein Element namens <EncryptedData>. Dessen Attribute beinhalten Informationen über den Namensraum sowie über die Granularität der Verschlüsselung. Darin verschachtelt befinden sich die Elemente <EncryptionMethod>, welche den Verschlüsselungsalgorithmus spezifiziert und <CipherData>, welches die verschlüsselten Daten enthält. Verschlüsselt man ein komplettes XML-Dokument, so geht dessen Struktur verloren. Verschlüsselt man hingegen nur einzelne Elemente eines Dokumentes, könnte die Sicherheit darunter leiden. Der Einsatz von XML-Encryption bedeutet immer eine Erhöhung der Komplexität und ein Performanceverlust. <Kunden> <Kunde id="12345"> <Name>Mustermann, Karl</Name> <Firma>Mustermann GmbH</Firma> <Telefon> </Telefon> <Fax> </Fax> <EncryptedData xmlns=" type=" <EncryptionMethod algorithm=" <CipherData> <CipherValue>A84H8D38PC</CipherValue> </CipherData> </EncryptedData> <Adresse> <Strasse>Musterstrasse 1</Strasse> <Stadt>Ilmenau</Stadt> <PLZ>98693</PLZ> <Land>BRD</Land> </Adresse> </Kunde>... </Kunden> Listing 2.5: Datenverschlüsselung mit XML Encryption 15

24 Kapitel 2 / Grundlagen von Web-Services XML-Signature Da die Reihenfolge von Elementen in einem XML-Dokument beliebig sein kann und Parser häufig Formatierungen vornehmen, gibt es für eine und dasselbe XML-Dokument unendlich viele Repräsentationen. Die Errechnung des Message Digest würde für jede Repräsentation zu einem anderen Ergebnis führen. Eine Lösung dieses Problem bietet Canonical-XML [CanXML]. Mit diesem Standard werden XML-Dokumente in eine kanonische Darstellung überführt. Weitere Spezifikationen sind vorgesehen. Mit Hilfe von WS-Policy [WSPolicy] können in Kopplung mit WS-Trust [WSTrust] Vertrauensverhältnisse bezüglich Authentifizierung und Autorisierung zwischen mehreren Kommunikationspartnern definiert und verwendet werden. WS-Privacy erlaubt es Sendern und Empfängern zu spezifizieren, welche Anforderungen sie an ihre Kommunikationspartner stellen und welche sie selbst erfüllen. Mit WS-Security [WSSecurity] werden sicherheitsrelevante Funktionalitäten bereitgestellt, welche bislang in der Web-Service Welt vermisst wurden. Somit ist es möglich, Daten auch über mehrere Zwischenstationen verschlüsselt zu übertragen bzw. eine partielle Verschlüsselung für einzelne Empfänger vornehmen zu können. Eine Datenintegrität kann mit Hilfe von digitalen Signaturen gewährleistet werden Transaktionalität von Web-Services Einen wichtigen Aspekt bei der Gewährleistung von Transaktionalität, bildet die Verfolgbarkeit und Definierbarkeit des Zustandes eines Requests. Einen wichtigen Ansatz hierfür bildet der Standard XAML (Transaction Authority Markup Language), welcher von namhaften Firmen initiiert wurde. Es werden eine Reihe von XML-Nachrichtenformaten und Interaktionsmodellen definiert, mit denen bekannte Transaktionsoperationen (commit, undo, retry, ) realisierbar sind. Ziel ist die Bereitstellung von TP-Monitoren (Transaction Processing Monitors), um Transaktionalität bei Web-Services umzusetzen. Aufrufern von Diensten werden Transactions-IDs zugewiesen, woraufhin die bekannten Transaktionsoperationen benutzt werden können. Die Gewährleistung der Transaktionalität nach dem XAML-Prinzip, kann in drei Phasen vorgenommen werden. (1) Prüfung der Verfügbarkeit eines Dienstes (2) Nutzung des (verfügbaren Dienstes) und Zuweisung einer Transaktionskennung (SessionID) (3) Ausführung von Transaktionsoperationen 16

25 Kapitel 2 / Grundlagen von Web-Services 2.5 Anwendungsszenarien Bei der EAI (Enterprise Application Integration) werden mehrere Geschäftsanwendungen innerhalb eines Intranets mittels einer zentralen Komponente miteinander verbunden. Für die Kommunikation der zentralen Komponente kann eine Web-Service-Schnittstelle verwendet werden. Weiterhin kann das EAI-System die bereits integrierten Anwendungen nach außen hin wiederum über eine Web-Service-Schnittstelle zugänglich machen. B2B (Business to Business) fördert die Integration von firmeninternen Anwendungen mit denen von Partnerunternehmen. Die Kommunikation mit fremden Anwendungen stellt hohe Anforderungen an Sicherheit und Kontrolle. Ein Beispiel für ein B2B-Szenario ist in Abbildung 2.4 zu sehen. Der Web-Service Reiseorganisation bedient sich zahlreicher anderer Web-Services. Web-Service Hotelbuchung Web-Service Mietwagen UDDI & SOAP UDDI, WSDL & SOAP Client (Browser) Web-Service Wetterbericht SOAP Web-Service Reiseorganisation SOAP SOAP Web-Service Veranstaltungskalender Abbildung 2.4: Komplexer Web-Service Reiseorganisation [Sta02] Das B2C (Business to Customer) Szenario zeichnet sich durch die Nutzung von Web-Services durch Anwendungen von Kunden aus. Ein populäres Beispiel ist die Nutzung des Google Web-Service. Im Kapitel 4 wird demonstriert, wie man Funktionalitäten dieses Web-Services in seiner Anwendung nutzen kann. 17

26 Kapitel 2 / Grundlagen von Web-Services 2.6 Ein Blick in die Zukunft Die Web-Service Technologie erfüllt die hohe Anforderung der Interoperabilität. Somit ist eine plattform- und programmiersprachenunabhängige Interaktion von Systemen möglich geworden. Eine Eigenschaft, welche herkömmliche Verteilungstechnologien nicht erfüllen konnte. Die Popularität und Bekanntheit von Web-Services steigt ständig. Jedoch werden Web-Services bestehende Infrastrukturen nicht ersetzen. Vielmehr helfen sie, bestehende Techniken zu integrieren. Immer mehr Firmen bedienen sich an diesem Konzept. Web- Services sind für die Kommunikation zwischen Unternehmen interessant, die ansonsten aufgrund inkompatibler Systeme am Geschäft gehindert würden. Deshalb existiert ein sehr großes Potenzial für Web-Services im B2B Umfeld. Die Standardisierung schreitet immer weiter voran. Innerhalb des letzten Jahres hat sich sehr viel auf diesem Gebiet getan. Web- Services sind unverzichtbar in der modernen Softwareentwicklung geworden. 18

27 Kapitel 3 / Entwicklungsmöglichkeiten von Web-Services 3 Entwicklungsmöglichkeiten von Web-Services In diesem Kapitel sollen Toolkits und Entwicklungsumgebungen vorgestellt werden, welche die Erstellung von Web-Services unterstützen. Es kann dabei nur ein kleiner Ausschnitt existierender Umgebungen und Toolkits beleuchtet werden. Toolkits dienen der automatischen Unterstützung von Methoden und Verfahren zum Zwecke der Softwareerstellung. [Balz00] Unter einer Software-Entwicklungsumgebung versteht man die Gesamtheit von aufeinander abgestimmten, untereinander kompatiblen, gemeinsam zu benutzenden und wesentliche Teile des Entwicklungsprozesses abdeckenden Methoden und Werkzeugen zur Software-Entwicklung. [GI] Besondere Aufmerksamkeit soll dem Toolkit Axis (Apache extensible Interaction System) [Axis] gewidmet werden. Beispielhaft werden die Schritte erläutert, welche zur Entwicklung eines Web-Service notwendig sind. Ebenso wird das.net Framework einen größeren Umfang in diesem Kapitel einnehmen, da Microsoft [Microsoft] mit dieser Technologie völlig neue Wege beschreitet. Auch für das.net Framework [NET] soll dargelegt werden, wie Web-Services zu erstellen sind. 3.1 Entwicklung mit Apache Axis Architektur Axis ist ein Nachfolgeprojekt der Apache SOAP-Implementierung, die aus dem IBM [IBM] Projekt SOAP4J [SOAP4J] hervorging. Es stellt eine typische Webanwendung dar, welche in einem Servlet-konformen Web-Container wie zum Beispiel Tomcat [Tomcat] installiert werden kann. Sie beinhaltet drei Servlets für die Laufzeit, die Administration und für das Verfolgen von SOAP-Aufrufen (siehe Abbildung 3.1). Module gliedern Axis in Teilsysteme, welche verschiedene Aufgaben übernehmen, wie zum Beispiel den Transport von Nachrichten, die Administration oder den Aufruf von Service-Implementierungen. Die Aufteilungen der Aufgaben in Module in Verbindung mit Konfigurationsdateien, ermöglicht eine Erweiterung ohne Änderungen an Axis vornehmen zu müssen. Nachrichten durchlaufen in Form eines MessageContext einzelne Subsysteme. Der MessageContext ist eine Struktur, die Referenzen auf die Request- und Response-Nachricht sowie auf eine Reihe von Attributen beinhaltet. Der Zugriff auf den Request, die Response und weitere Eigenschaften erfolgt in den Handlern über den MessageContext. Mehrere Handler können in einer Kette zusammengefasst werden. Die Verarbeitung von Anfragen erfolgt über Filterketten, die sich 19

28 Kapitel 3 / Entwicklungsmöglichkeiten von Web-Services aus Handlern zusammensetzen. Bei der alltäglichen Anwendungsentwicklung ist es nicht notwendig selbst Handler zu erstellen. Web-Container Internet Axis Web Anwendung Action Servlet Web-Service Web-Service Web-Service Admin Servlet SOAP Monitor Servlet Abbildung 3.1: Axis im Web-Container [Bay03] Die Kommunikation mit Web-Services erfolgt über den Austausch von XML-Nachrichten. Das Ziel von JAX-RPC (Java API for XML-based Remote Procedure Call) [JAXRPC] ist es, die Komplexität des XML-Nachrichtenaustausches zu kapseln und ein für viele Entwickler vertrautes RPC-Paradigma anzubieten. Axis bedient sich dieser Technologie. Aus einem WSDL-Dokument kann automatisch ein Stub generiert werden, welcher einen Java-Aufruf zu einem SOAP-Request umwandelt. Dieser wird mittels der JAX-RPC-Laufzeitumgebung über HTTP an den Server gesendet. Aus dem SOAP-Umschlag (siehe Kapitel 2.3.3) werden wiederum die Java-Objekte rekonstruiert, die dann als Parameter an die Implementierungs- Klasse übergeben werden. Das Ergebnis des Aufrufs nimmt denselben Weg in umgekehrter Richtung zum Client. Dieser Ablauf ist in Abbildung 3.2 veranschaulicht. 20

29 Kapitel 3 / Entwicklungsmöglichkeiten von Web-Services Client Server JAX-RPC Stub JAX-RPC-Skeleton JAX-RPC-Rintime JAX-RPC-Runtime Transport Transport Abbildung 3.2: Die Komponenten von JAX-RPC [Wan03] Ein wichtiger Bestandteil der JAX-RPC-Spezifikation ist die Definition der Mapping-Regeln zwischen WSDL und Java, damit die Umwandlung von Java-Objekten in XML und umgekehrt erfolgen kann. Die Einhaltung dieser Mapping-Regeln ist für die Sicherstellung der Interoperabilität von Web-Services unverzichtbar. WSDL verwendet als Typsystem XML-Schema, welches eine Menge von einfachen Datentypen vordefiniert. Es hat also ein Mapping von Java-Datentypen auf die XML-Schema Datentypen zu erfolgen. Auch komplexe Datentypen sind mit dem XML-Schema definierbar. Eine Auflistung der Mappings einfacher Datentypen nimmt [Wan03] vor Entwicklung von Web-Services mit Apache Axis Bei der Entwicklung von Web-Services kann zwischen zwei Vorgehensweisen unterschieden werden. Bei der WSDL-zentrierten (top down) Vorgehensweise wird zuerst das WSDL- Dokument erstellt. Aufgrund der damit verbundenen Komplexität und des Aufwands, ist dies jedoch nicht zu empfehlen. Bei der Java-zentrierten (bottom up) Vorgehensweise wird die Schnittstelle zuerst in Java implementiert. Im Folgenden wird aufgezeigt, wie man mit Hilfe von Apache Axis Web-Services implementieren und veröffentlichen kann. (1) Bereitstellung eines Java-Interfaces Es ist ein Interface zu implementieren, welches von der Klasse java.rmi.remote zu erben hat. Darin werden Methodenrümpfe bereitgestellt, die RemoteExceptions zu erzeugen haben. In Listing 3.1 ist das entsprechende Interface zu sehen. 21

30 Kapitel 3 / Entwicklungsmöglichkeiten von Web-Services import java.rmi.remote; import java.rmi.remoteexception; public interface YourInterface extends Remote { } public void yourmethod() throws RemoteException; Listing 3.1: Bereitzustellendes Java-Interface (2) Erzeugung von WSDL Mit Hilfe der programmierten Interface-Klasse kann ein WSDL-Dokument erzeugt werden, welches die Schnittstelleninformationen enthält. Dazu dient das in Axis integrierte Tool java2wsdl. In Ergebnis des folgenden Aufrufs erhält man eine WSDL-Datei. java org.apache.axis.wsdl.java2wsdl -o YourFile.wsdl -l" -n "urn:yourservice" p "yourservice" "urn:yourservice" YourInterface es werden folgende Parameter übergeben: -o spezifiziert den Namen der WSDL- Datei -l spezifiziert die URL, unter welcher der Web-Service erreichbar sein soll -n bezeichnet den Ziel-Namensraum der WSDL-Datei -p bezeichnet das Mapping eines Packages auf einen Namensraum das implementierte Interface (3) Erzeugung von Hilfslassen aus der WSDL-Datei Mittels des folgenden Aufrufs werden Klassen und Dateien erzeugt, welche zum Teil auf Clientseite für einen erfolgreichen Aufruf des Web-Service benötigt werden. Ebenso müssen diese zum Teil dem Webserver bekannt gemacht werden, auf dem der Web-Service veröffentlicht werden soll. java org.apache.axis.wsdl.wsdl2java -o./out -s -S true YourFile.wsdl es werden folgende Parameter übergeben: -o das Ausgabeverzeichnis -s Erzeugung serverseitiger Bestandteile -S Verwendung serverseitiger Anteile in der Datei deploy.wsdd 22

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

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

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

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

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

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

Themen. Web Services und SOA. Stefan Szalowski Daten- und Online-Kommunikation Web Services

Themen. Web Services und SOA. Stefan Szalowski Daten- und Online-Kommunikation Web Services Themen Web Services und SOA Wer kennt den Begriff Web Services? Was verstehen Sie unter Web Services? Die Idee von Web Services Ausgangspunkt ist eine (evtl. schon bestehende) Software Anwendung oder Anwendungskomponente

Mehr

Implementierung von Web Services: Teil I: Einleitung / SOAP

Implementierung von Web Services: Teil I: Einleitung / SOAP Implementierung von Web Services: Teil I: Einleitung / SOAP Prof. Dr. Kanne - FSS 2007 Carl-Christian Kanne, February 25, 2007 Web Services - p. 1/12 Web Services: Allgemein XML Datenaustauschformat plattformunabhängig

Mehr

Thema: Web Services. Was ist ein Web Service?

Thema: Web Services. Was ist ein Web Service? Willkommen zum Component Ware Seminar Thema: Achim Grimm & Fabian Unterschütz Folie 1 Was ist ein Web Service? Web Services sind selbstbeschreibende, modulare Softwarekomponenten im Internet, die sich

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

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

Containerformat Spezifikation

Containerformat Spezifikation Containerformat Spezifikation Version 1.0-09.05.2011 Inhaltsverzeichnis 0 Einführung... 4 0.1 Referenzierte Dokumente... 4 0.2 Abkürzungen... 4 1 Containerformat... 5 1.1 Aufbau des Container-Headers...

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

Containerformat Spezifikation

Containerformat Spezifikation Containerformat Spezifikation Version 1.1-21.02.2014 Inhaltsverzeichnis 0 Einführung... 4 0.1 Referenzierte Dokumente... 4 0.2 Abkürzungen... 4 1 Containerformat... 5 1.1 Aufbau des Container-Headers...

Mehr

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente Autorisierung Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente Dokumentation zum Referat von Matthias Warnicke und Joachim Schröder Modul: Komponenten basierte Softwareentwickelung

Mehr

Entwicklung eines interoperablen, multimedialen Teaching-File-Service: Web-Service unterstützter Wissenstransfer in der Radiologie

Entwicklung eines interoperablen, multimedialen Teaching-File-Service: Web-Service unterstützter Wissenstransfer in der Radiologie Aus dem Universitätsklinikum Benjamin Franklin der Freien Universität Berlin Institut für Medizinische Informatik, Biometrie und Epidemiologie Geschäftsführender Direktor: Prof. Dr. Thomas Tolxdorff Entwicklung

Mehr

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen Open Source professionell einsetzen 1 Mein Background Ich bin überzeugt von Open Source. Ich verwende fast nur Open Source privat und beruflich. Ich arbeite seit mehr als 10 Jahren mit Linux und Open Source.

Mehr

Beschreibung und Bedienungsanleitung. Inhaltsverzeichnis: Abbildungsverzeichnis: Werkzeug für verschlüsselte bpks. Dipl.-Ing.

Beschreibung und Bedienungsanleitung. Inhaltsverzeichnis: Abbildungsverzeichnis: Werkzeug für verschlüsselte bpks. Dipl.-Ing. www.egiz.gv.at E-Mail: post@egiz.gv.at Telefon: ++43 (316) 873 5514 Fax: ++43 (316) 873 5520 Inffeldgasse 16a / 8010 Graz / Austria Beschreibung und Bedienungsanleitung Werkzeug für verschlüsselte bpks

Mehr

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele: 2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Configuring Terminal Services o Configure Windows Server 2008 Terminal Services RemoteApp (TS RemoteApp) o Configure Terminal Services Gateway

Mehr

XML und SOAP Einführung und Grundlagen

XML und SOAP Einführung und Grundlagen XML und SOAP Einführung und Grundlagen Matthias Böhmer 16.12.2005 Agenda 1. XML 2. SOAP 3. Seife im Buchladen?! E-Commerce :: XML und SOAP Matthias Böhmer 16.12.2005 2 XML :: Einführung (1) extensible

Mehr

Senden von strukturierten Berichten über das SFTP Häufig gestellte Fragen

Senden von strukturierten Berichten über das SFTP Häufig gestellte Fragen Senden von strukturierten Berichten über das SFTP Häufig gestellte Fragen 1 Allgemeines Was versteht man unter SFTP? Die Abkürzung SFTP steht für SSH File Transfer Protocol oder Secure File Transfer Protocol.

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

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008 Konzeption und Implementierung einer automatisierten Testumgebung, 10. Dezember 2008 1 Gliederung Einleitung Softwaretests Beispiel Konzeption Zusammenfassung 2 Einleitung Komplexität von Softwaresystemen

Mehr

OP-LOG www.op-log.de

OP-LOG www.op-log.de Verwendung von Microsoft SQL Server, Seite 1/18 OP-LOG www.op-log.de Anleitung: Verwendung von Microsoft SQL Server 2005 Stand Mai 2010 1 Ich-lese-keine-Anleitungen 'Verwendung von Microsoft SQL Server

Mehr

A361 Web-Server. IKT-Standard. Ausgabedatum: 2015-01-27. Version: 1.03. Ersetzt: 1.02. Genehmigt durch: Informatiksteuerungsorgan Bund, am 2004-09-07

A361 Web-Server. IKT-Standard. Ausgabedatum: 2015-01-27. Version: 1.03. Ersetzt: 1.02. Genehmigt durch: Informatiksteuerungsorgan Bund, am 2004-09-07 Eidgenössisches Finanzdepartement EFD Informatiksteuerungsorgan des Bundes ISB A361 Web-Server Klassifizierung: Typ: Nicht klassifiziert IKT-Standard Ausgabedatum: 2015-01-27 Version: 1.03 Status: Genehmigt

Mehr

Übung: Verwendung von Java-Threads

Übung: Verwendung von Java-Threads Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum

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

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

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage .htaccess HOWTO zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage Stand: 21.06.2015 Inhaltsverzeichnis 1. Vorwort...3 2. Verwendung...4 2.1 Allgemeines...4 2.1 Das Aussehen der.htaccess

Mehr

crm-now/ps Webforms Webdesigner Handbuch Erste Ausgabe

crm-now/ps Webforms Webdesigner Handbuch Erste Ausgabe crm-now/ps Webforms Webdesigner Handbuch Erste Ausgabe crm-now/ps Webforms: Webdesigner Handbuch Copyright 2006 crm-now Versionsgeschichte Version 01 2006-08-21 Release Version crm-now c/o im-netz Neue

Mehr

COMPUTER MULTIMEDIA SERVICE

COMPUTER MULTIMEDIA SERVICE Umgang mit Web-Zertifikaten Was ist ein Web-Zertifikat? Alle Webseiten, welche mit https (statt http) beginnen, benötigen zwingend ein Zertifikat, welches vom Internet-Browser eingelesen wird. Ein Web

Mehr

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter 2 Inhaltsverzeichnis 1 Web-Kürzel 4 1.1 Einführung.......................................... 4 1.2 Web-Kürzel.........................................

Mehr

WS-Security. Thies Rubarth. Sicherheitskonzepte in global verteilten Anwendungen. 21. Sep 2007 ACM/GI Localgroup #216

WS-Security. Thies Rubarth. Sicherheitskonzepte in global verteilten Anwendungen. 21. Sep 2007 ACM/GI Localgroup #216 WS-Security Sicherheitskonzepte in global verteilten Anwendungen Thies Rubarth 21. Sep 2007 ACM/GI Localgroup #216 Thies Rubarth, M.Sc. (Informatik) IT Berater Jahrgang 1979 Anwendungsentwicklung seit

Mehr

Man liest sich: POP3/IMAP

Man liest sich: POP3/IMAP Man liest sich: POP3/IMAP Gliederung 1. Einführung 1.1 Allgemeiner Nachrichtenfluss beim Versenden von E-Mails 1.2 Client und Server 1.2.1 Client 1.2.2 Server 2. POP3 2.1 Definition 2.2 Geschichte und

Mehr

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche etutor Benutzerhandbuch Benutzerhandbuch XQuery Georg Nitsche Version 1.0 Stand März 2006 Versionsverlauf: Version Autor Datum Änderungen 1.0 gn 06.03.2006 Fertigstellung der ersten Version Inhaltsverzeichnis:

Mehr

INHALTSVERZEICHNIS Allgemeine Beschreibung... 3 Verwendung der Webseite... 4 Abbildungsverzeichnis... 12

INHALTSVERZEICHNIS Allgemeine Beschreibung... 3 Verwendung der Webseite... 4 Abbildungsverzeichnis... 12 ONLINE-HILFE INHALTSVERZEICHNIS 1 Allgemeine Beschreibung... 3 2... 4 2.1 Angemeldeter Benutzer... 4 2.2 Gast... 10 Abbildungsverzeichnis... 12 1 ALLGEMEINE BESCHREIBUNG Die Webseite "" ist eine Informationsplattform

Mehr

... MathML XHTML RDF

... MathML XHTML RDF RDF in wissenschaftlichen Bibliotheken (LQI KUXQJLQ;0/ Die extensible Markup Language [XML] ist eine Metasprache für die Definition von Markup Sprachen. Sie unterscheidet sich durch ihre Fähigkeit, Markup

Mehr

PHP - Projekt Personalverwaltung. Erstellt von James Schüpbach

PHP - Projekt Personalverwaltung. Erstellt von James Schüpbach - Projekt Personalverwaltung Erstellt von Inhaltsverzeichnis 1Planung...3 1.1Datenbankstruktur...3 1.2Klassenkonzept...4 2Realisierung...5 2.1Verwendete Techniken...5 2.2Vorgehensweise...5 2.3Probleme...6

Mehr

Step by Step Webserver unter Windows Server 2003. von Christian Bartl

Step by Step Webserver unter Windows Server 2003. von Christian Bartl Step by Step Webserver unter Windows Server 2003 von Webserver unter Windows Server 2003 Um den WWW-Server-Dienst IIS (Internet Information Service) zu nutzen muss dieser zunächst installiert werden (wird

Mehr

Inhalt I. Blick zurück II. Was sind WebServices? III. Rahmenwerk für edienstleistungen IV. Verwendete WebServices

Inhalt I. Blick zurück II. Was sind WebServices? III. Rahmenwerk für edienstleistungen IV. Verwendete WebServices WebServices Applikationen und Services Ralf Günther Consultant HP Services April, 2003 Ralf.Guenther@hp.com DECUS Symposium 2003, Vortrag 2L06 9.04.2003 Inhalt I. Blick zurück II. Was sind WebServices?

Mehr

Kundeninformationen zur Sicheren E-Mail

Kundeninformationen zur Sicheren E-Mail S Sparkasse der Stadt Iserlohn Kundeninformationen zur Sicheren E-Mail Informationen zur Sicheren E-Mail erhalten Sie bei Ihrem Berater, oder bei den Mitarbeiter aus dem Team ElectronicBanking unter der

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

Comtarsia SignOn Familie

Comtarsia SignOn Familie Comtarsia SignOn Familie Handbuch zur RSA Verschlüsselung September 2005 Comtarsia SignOn Agent for Linux 2003 Seite 1/10 Inhaltsverzeichnis 1. RSA Verschlüsselung... 3 1.1 Einführung... 3 1.2 RSA in Verbindung

Mehr

Sparkasse Vogtland. Secure E-Mail Datensicherheit im Internet. Kundenleitfaden. Sparkasse Vogtland. Kundeninformation Secure E-Mail 1

Sparkasse Vogtland. Secure E-Mail Datensicherheit im Internet. Kundenleitfaden. Sparkasse Vogtland. Kundeninformation Secure E-Mail 1 Secure E-Mail Datensicherheit im Internet Sparkasse Kundenleitfaden Sparkasse Kundeninformation Secure E-Mail 1 Willkommen bei Secure E-Mail In unserem elektronischen Zeitalter ersetzen E-Mails zunehmend

Mehr

Themen. Web Service - Clients. Kommunikation zw. Web Services

Themen. Web Service - Clients. Kommunikation zw. Web Services Themen Web Service - Clients Kommunikation zw. Web Services Bisher: Implementierung einer Java Anwendung und Bereitstellung durch Apache Axis unter Apache Tomcat Java2WSDL Erzeugen einer WSDL-Datei zur

Mehr

WEBSEITEN ENTWICKELN MIT ASP.NET

WEBSEITEN ENTWICKELN MIT ASP.NET jamal BAYDAOUI WEBSEITEN ENTWICKELN MIT ASP.NET EINE EINFÜHRUNG MIT UMFANGREICHEM BEISPIELPROJEKT ALLE CODES IN VISUAL BASIC UND C# 3.2 Installation 11 Bild 3.2 Der Webplattform-Installer Bild 3.3 IDE-Startbildschirm

Mehr

arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek

arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek Speaker Andreas Holubek VP Engineering andreas.holubek@arlanis.com arlanis Software AG, D-14467 Potsdam 2009, arlanis

Mehr

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert:

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert: Firewall für Lexware professional konfigurieren Inhaltsverzeichnis: 1. Allgemein... 1 2. Einstellungen... 1 3. Windows XP SP2 und Windows 2003 Server SP1 Firewall...1 4. Bitdefender 9... 5 5. Norton Personal

Mehr

Grundlagen der Web-Entwicklung INF3172

Grundlagen der Web-Entwicklung INF3172 Grundlagen der Web-Entwicklung INF3172 Web-Services Thomas Walter 16.01.2014 Version 1.0 aktuelles 2 Webservice weitere grundlegende Architektur im Web: Webservice (Web-Dienst) Zusammenarbeit verschiedener

Mehr

STARFACE SugarCRM Connector

STARFACE SugarCRM Connector STARFACE SugarCRM Connector Information 1: Dieses Dokument enthält Informationen für den STARFACE- und SugarCRM-Administrator zur Inbetriebnahme des STARFACE SugarCRM Connectors. Inhalt 1 Inbetriebnahme...

Mehr

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Suche schlecht beschriftete Bilder mit Eigenen Abfragen Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere

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

Installation des edu- sharing Plug- Ins für Moodle

Installation des edu- sharing Plug- Ins für Moodle Installation des edu- sharing Plug- Ins für Moodle [edu-sharing Team] [Dieses Dokument beschreibt die Installation und Konfiguration des edu-sharing Plug-Ins für das LMS Moodle.] edu- sharing / metaventis

Mehr

Multicast Security Group Key Management Architecture (MSEC GKMArch)

Multicast Security Group Key Management Architecture (MSEC GKMArch) Multicast Security Group Key Management Architecture (MSEC GKMArch) draft-ietf-msec-gkmarch-07.txt Internet Security Tobias Engelbrecht Einführung Bei diversen Internetanwendungen, wie zum Beispiel Telefonkonferenzen

Mehr

ANYWHERE Zugriff von externen Arbeitsplätzen

ANYWHERE Zugriff von externen Arbeitsplätzen ANYWHERE Zugriff von externen Arbeitsplätzen Inhaltsverzeichnis 1 Leistungsbeschreibung... 3 2 Integration Agenda ANYWHERE... 4 3 Highlights... 5 3.1 Sofort einsatzbereit ohne Installationsaufwand... 5

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

Übungen zur Softwaretechnik

Übungen zur Softwaretechnik Technische Universität München Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering Markus Pister, Dr. Bernhard Rumpe WS 2002/2003 Lösungsblatt 9 17. Dezember 2002 www4.in.tum.de/~rumpe/se

Mehr

Sparkasse Duisburg. E-Mail versenden aber sicher! Sichere E-Mail. Anwendungsleitfaden für Kunden

Sparkasse Duisburg. E-Mail versenden aber sicher! Sichere E-Mail. Anwendungsleitfaden für Kunden Sparkasse Duisburg E-Mail versenden aber sicher! Sichere E-Mail Anwendungsleitfaden für Kunden ,,Digitale Raubzüge und Spionageangriffe gehören aktuell zu den Wachstumsbranchen der organisierten Kriminalität.

Mehr

Informatik für Ökonomen II HS 09

Informatik für Ökonomen II HS 09 Informatik für Ökonomen II HS 09 Übung 5 Ausgabe: 03. Dezember 2009 Abgabe: 10. Dezember 2009 Die Lösungen zu den Aufgabe sind direkt auf das Blatt zu schreiben. Bitte verwenden Sie keinen Bleistift und

Mehr

Leitfaden zur Nutzung von binder CryptShare

Leitfaden zur Nutzung von binder CryptShare Leitfaden zur Nutzung von binder CryptShare Franz Binder GmbH & Co. Elektrische Bauelemente KG Rötelstraße 27 74172 Neckarsulm Telefon +49 (0) 71 32-325-0 Telefax +49 (0) 71 32-325-150 Email info@binder-connector

Mehr

Testplan. Hochschule Luzern Technik & Architektur. Software Komponenten FS13. Gruppe 03 Horw, 16.04.2013

Testplan. Hochschule Luzern Technik & Architektur. Software Komponenten FS13. Gruppe 03 Horw, 16.04.2013 Software Komponenten FS13 Gruppe 03 Horw, 16.04.2013 Bontekoe Christian Estermann Michael Moor Simon Rohrer Felix Autoren Bontekoe Christian Studiengang Informatiker (Berufsbegleitend) Estermann Michael

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

PayPal API Zugang aktivieren und nutzen Version / Datum V 1.5 / 15.09.2014. a) Aktivierung auf der PayPal Internetseite. 1 von 7

PayPal API Zugang aktivieren und nutzen Version / Datum V 1.5 / 15.09.2014. a) Aktivierung auf der PayPal Internetseite. 1 von 7 Software WISO Mein Geld Thema PayPal API Zugang aktivieren und nutzen Version / Datum V 1.5 / 15.09.2014 Das vorliegende Dokument, zeigt wie der API Zugang von PayPal auf der Internetseite aktiviert und

Mehr

ARCHITEKTUR VON INFORMATIONSSYSTEMEN

ARCHITEKTUR VON INFORMATIONSSYSTEMEN ARCHITEKTUR VON INFORMATIONSSYSTEMEN File Transfer Protocol Einleitung Das World Wide Web war ja ursprünglich als verteiltes Dokumentenverwaltungssystem für die akademische Welt gedacht. Das Protokoll

Mehr

Seminar DWMX 2004. DW Session 015

Seminar DWMX 2004. DW Session 015 Seminar DWMX 2004 DW Session 015 Veröffentlichen der lokalen Website Bis jetzt sind die Daten immer lokal in Dreamweaver bearbeitet und über die interne Vorschau mit F12/Strg.+F12 im Browser betrachtet

Mehr

VVA Webservice Online Lieferbarkeits-Abfrage

VVA Webservice Online Lieferbarkeits-Abfrage Version 1.0 Dateiname VVA_OLA_Schnittstellenbeschreibung_2012.docx Erstellt am 30.05.2010 Seitenanzahl 5 arvato media GmbH Historie der Dokumentversionen Version Datum Autor Änderungsgrund / Bemerkungen

Mehr

Motivation. Inhalt. URI-Schemata (1) URI-Schemata (2)

Motivation. Inhalt. URI-Schemata (1) URI-Schemata (2) 14. URIs Uniform Resource Identifier 14-1 14. URIs Uniform Resource Identifier 14-2 Motivation Das WWW ist ein Hypermedia System. Es enthält: Resourcen (Multimedia Dokumente) Verweise (Links) zwischen

Mehr

FTP-Leitfaden RZ. Benutzerleitfaden

FTP-Leitfaden RZ. Benutzerleitfaden FTP-Leitfaden RZ Benutzerleitfaden Version 1.4 Stand 08.03.2012 Inhaltsverzeichnis 1 Einleitung... 3 1.1 Zeitaufwand... 3 2 Beschaffung der Software... 3 3 Installation... 3 4 Auswahl des Verbindungstyps...

Mehr

HTML5. Wie funktioniert HTML5? Tags: Attribute:

HTML5. Wie funktioniert HTML5? Tags: Attribute: HTML5 HTML bedeutet Hypertext Markup Language und liegt aktuell in der fünften Fassung, also HTML5 vor. HTML5 ist eine Auszeichnungssprache mit der Webseiten geschrieben werden. In HTML5 wird festgelegt,

Mehr

Barrierefreie Webseiten erstellen mit TYPO3

Barrierefreie Webseiten erstellen mit TYPO3 Barrierefreie Webseiten erstellen mit TYPO3 Alternativtexte Für jedes Nicht-Text-Element ist ein äquivalenter Text bereitzustellen. Dies gilt insbesondere für Bilder. In der Liste der HTML 4-Attribute

Mehr

Öffnen Sie den Internet-Browser Ihrer Wahl. Unabhängig von der eingestellten Startseite erscheint die folgende Seite in Ihrem Browserfenster:

Öffnen Sie den Internet-Browser Ihrer Wahl. Unabhängig von der eingestellten Startseite erscheint die folgende Seite in Ihrem Browserfenster: Schritt 1: Verbinden Sie Ihr wireless-fähiges Gerät (Notebook, Smartphone, ipad u. ä.) mit dem Wireless-Netzwerk WiFree_1. Die meisten Geräte zeigen Wireless-Netzwerke, die in Reichweite sind, automatisch

Mehr

Erstellen einer digitalen Signatur für Adobe-Formulare

Erstellen einer digitalen Signatur für Adobe-Formulare Erstellen einer digitalen Signatur für Adobe-Formulare (Hubert Straub 24.07.13) Die beiden Probleme beim Versenden digitaler Dokumente sind einmal die Prüfung der Authentizität des Absenders (was meist

Mehr

Speicher in der Cloud

Speicher in der Cloud Speicher in der Cloud Kostenbremse, Sicherheitsrisiko oder Basis für die unternehmensweite Kollaboration? von Cornelius Höchel-Winter 2013 ComConsult Research GmbH, Aachen 3 SYNCHRONISATION TEUFELSZEUG

Mehr

Beschreibung des MAP-Tools

Beschreibung des MAP-Tools 1. Funktionen des MAP-Tool 2. Aufbau des MAP-Tools 3. Arbeiten mit dem MAP-Tool Beschreibung MAP-Tool.doc Erstellt von Thomas Paral 1 Funktionen des MAP-Tool Die Hauptfunktion des MAP-Tools besteht darin,

Mehr

Datenempfang von crossinx

Datenempfang von crossinx Datenempfang von crossinx Datenempfang.doc Seite 1 von 6 Inhaltsverzeichnis 1 Einführung... 3 2 AS2... 3 3 SFTP... 3 4 FTP (via VPN)... 4 5 FTPS... 4 6 Email (ggf. verschlüsselt)... 5 7 Portalzugang über

Mehr

Standards und Standardisierungsgremien

Standards und Standardisierungsgremien Standards und Standardisierungsgremien Begriffe Norm und Standard synonym Organisationen z.b. ISO: International Standards Organization DIN: Deutsches Institut für Normung e.v. ANSI: American National

Mehr

SDD System Design Document

SDD System Design Document SDD Software Konstruktion WS01/02 Gruppe 4 1. Einleitung Das vorliegende Dokument richtet sich vor allem an die Entwickler, aber auch an den Kunden, der das enstehende System verwenden wird. Es soll einen

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

Online-Publishing mit HTML und CSS für Einsteigerinnen

Online-Publishing mit HTML und CSS für Einsteigerinnen mit HTML und CSS für Einsteigerinnen Dipl.-Math. Eva Dyllong Universität Duisburg Dipl.-Math. Maria Oelinger spirito GmbH IF MYT 07-2002 Grundlagen Frau erfahrt, wie das Internet aufgebaut ist, aus welchen

Mehr

Anleitung zur Webservice Entwicklung unter Eclipse

Anleitung zur Webservice Entwicklung unter Eclipse Entwicklungsumgebung installieren Sofern Sie nicht an einem Praktikumsrechner arbeiten, müssen Sie ihre Eclipse-Umgebung Webservice-fähig machen. Dazu benötigen Sie die Entwicklungsumgebung Eclipse for

Mehr

Programmiertechnik II

Programmiertechnik II X.509: Eine Einführung X.509 ITU-T-Standard: Information Technology Open Systems Interconnection The Directory: Public Key and attribute certificate frameworks Teil des OSI Directory Service (X.500) parallel

Mehr

Online-Publishing mit HTML und CSS für Einsteigerinnen

Online-Publishing mit HTML und CSS für Einsteigerinnen mit HTML und CSS für Einsteigerinnen Dipl.-Math. Eva Dyllong Universität Duisburg Dipl.-Math. Maria Oelinger spirito GmbH IF MYT 07-2002 Web-Technologien Überblick HTML und CSS, XML und DTD, JavaScript

Mehr

Powermanager Server- Client- Installation

Powermanager Server- Client- Installation Client A Server Client B Die Server- Client- Funktion ermöglicht es ein zentrales Powermanager Projekt von verschiedenen Client Rechnern aus zu bedienen. 1.0 Benötigte Voraussetzungen 1.1 Sowohl am Server

Mehr

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Vermeiden Sie es sich bei einer deutlich erfahreneren Person dranzuhängen, Sie sind persönlich verantwortlich für Ihren Lernerfolg. 1 2 3 4 Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg. Gerade beim Einstig in der Programmierung muss kontinuierlich

Mehr

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am 14.08.08

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am 14.08.08 Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements von Stephanie Wilke am 14.08.08 Überblick Einleitung Was ist ITIL? Gegenüberstellung der Prozesse Neuer

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

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

2. Kommunikation und Synchronisation von Prozessen 2.2 Kommunikation zwischen Prozessen

2. Kommunikation und Synchronisation von Prozessen 2.2 Kommunikation zwischen Prozessen 2. Kommunikation und Synchronisation von Prozessen 2.2 Kommunikation zwischen Prozessen Dienste des Internets Das Internet bietet als riesiges Rechnernetz viele Nutzungsmöglichkeiten, wie etwa das World

Mehr

Lokale Installation von DotNetNuke 4 ohne IIS

Lokale Installation von DotNetNuke 4 ohne IIS Lokale Installation von DotNetNuke 4 ohne IIS ITM GmbH Wankelstr. 14 70563 Stuttgart http://www.itm-consulting.de Benjamin Hermann hermann@itm-consulting.de 12.12.2006 Agenda Benötigte Komponenten Installation

Mehr

smis_secure mail in der srg / pflichtenheft /

smis_secure mail in der srg / pflichtenheft / smis_secure mail in der srg / pflichtenheft / Dok.-Nr: Version: 1.1 PH.002 Status: Klassifizierung: Autor: Verteiler: Draft Erik Mulder, Thanh Diep Erik Mulder, Thanh Diep Pflichtenheft, Seite 2 / 2 Änderungskontrolle

Mehr

White Paper. Installation und Konfiguration der PVP Integration

White Paper. Installation und Konfiguration der PVP Integration Copyright Fabasoft R&D GmbH, A-4020 Linz, 2010. Alle Rechte vorbehalten. Alle verwendeten Hard- und Softwarenamen sind Handelsnamen und/oder Marken der jeweiligen Hersteller. Diese Unterlagen sind streng

Mehr

Anleitung Thunderbird Email Verschlu sselung

Anleitung Thunderbird Email Verschlu sselung Anleitung Thunderbird Email Verschlu sselung Christoph Weinandt, Darmstadt Vorbemerkung Diese Anleitung beschreibt die Einrichtung des AddOn s Enigmail für den Mailclient Thunderbird. Diese Anleitung gilt

Mehr

4 Installation und Verwaltung

4 Installation und Verwaltung Installation und Verwaltung 4 Installation und Verwaltung 4.1 Installation der Microsoft Internet Information Services 8.0 IIS 8.0 ist Bestandteil von Windows 8 und Windows Server 2012. Windows 8 Professional

Mehr

Workflow Systeme mit der Windows Workflow Foundation

Workflow Systeme mit der Windows Workflow Foundation Studiengang Electronic Business (EB) Diplomarbeit (280000) Workflow Systeme mit der Windows Workflow Foundation externe Betreuung durch Christoph Müller vorgelegt bei Prof. Dr. Michael Gröschel von Hans-Martin

Mehr

KURZANLEITUNG CYBERDUCK MIT CLOUD OBJECT STORAGE

KURZANLEITUNG CYBERDUCK MIT CLOUD OBJECT STORAGE KURZANLEITUNG CYBERDUCK MIT CLOUD OBJECT STORAGE Version 1.12 01.07.2014 SEITE _ 2 INHALTSVERZEICHNIS 1. Einleitung...Seite 03 2. Zugriff auf Cloud Object Storage mit Cyberduck...Seite 04 3. Neuen Container

Mehr

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten In dem Virtuellen Seminarordner werden für die Teilnehmerinnen und Teilnehmer des Seminars alle für das Seminar wichtigen Informationen,

Mehr

Web Services. Web Services in the News. Vision: Web of Services. Learning for Results. DECUS Symposium 2002, Vortrag 1K07,

Web Services. Web Services in the News. Vision: Web of Services. Learning for Results. DECUS Symposium 2002, Vortrag 1K07, Web Services Vision: Web of Services Applikationen und Services Ralf Günther Compaq Computer GmbH, Köln Ralf.Guenther@compaq.com DECUS Symposium 2002, Vortrag 1K07, 16.04.2002 Web Services in the News

Mehr

Sichere E-Mails. Kundeninformation zur Verschlüsselung von E-Mails in der L-Bank

Sichere E-Mails. Kundeninformation zur Verschlüsselung von E-Mails in der L-Bank Sichere E-Mails Kundeninformation zur Verschlüsselung von E-Mails in der L-Bank Version: 2.1 Stand: 18.07.2014 Inhaltsverzeichnis II Inhaltsverzeichnis 1 Einleitung... 1 1.1 Überblick... 1 1.2 Allgemeine

Mehr

Federated Identity Management

Federated Identity Management Federated Identity Management Verwendung von SAML, Liberty und XACML in einem Inter Campus Szenario d.marinescu@gmx.de 1 Fachbereich Informatik Inhalt Grundlagen Analyse Design Implementierung Demo Zusammenfassung

Mehr

D i e n s t e D r i t t e r a u f We b s i t e s

D i e n s t e D r i t t e r a u f We b s i t e s M erkblatt D i e n s t e D r i t t e r a u f We b s i t e s 1 Einleitung Öffentliche Organe integrieren oftmals im Internet angebotene Dienste und Anwendungen in ihre eigenen Websites. Beispiele: Eine

Mehr