Thilo Frotscher, Dapeng Wang, Marc Teufel. Java Web Services mit Apache Axis2

Größe: px
Ab Seite anzeigen:

Download "Thilo Frotscher, Dapeng Wang, Marc Teufel. Java Web Services mit Apache Axis2"

Transkript

1

2 Thilo Frotscher, Dapeng Wang, Marc Teufel Java Web Services mit Apache Axis2

3 Thilo Frotscher, Dapeng Wang, Marc Teufel: Java Web Services mit Apache Axis2 ISBN: entwickler.press Ein Imprint der Software & Support Media GmbH Bibliografische Information der Deutschen Nationalbibliothek Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über abrufbar. Ihr Kontakt zum Verlag und Lektorat: Software & Support Media GmbH entwickler.press Geleitsstraße Frankfurt am Main Tel: +49(0) Fax: +49(0) Projektleitung: Sebastian Burkart Lektorat und Korrektorat: Frauke Pesch Layout: SatzWERK, Andreas Franke, Siegen ( Umschlaggestaltung: Maria Rudi Belichtung, Druck & Bindung: M.P. Media-Print Informationstechnologie GmbH, Paderborn Alle Rechte, auch für Übersetzungen, sind vorbehalten. Reproduktion jeglicher Art (Fotokopie, Nachdruck, Mikrofilm, Erfassung auf elektronischen Datenträgern oder andere Verfahren) nur mit schriftlicher Genehmigung des Verlags. Jegliche Haftung für die Richtigkeit des gesamten Werks kann, trotz sorgfältiger Prüfung durch Autor und Verlag, nicht übernommen werden. Die im Buch genannten Produkte, Warenzeichen und Firmennamen sind in der Regel durch deren Inhaber geschützt.

4 Inhaltsverzeichnis Vorwort 15 1 Einleitung Entstehung Unterstützte Standards Was beinhaltet Axis2? Warum Axis2 einsetzen? Bessere Performance durch StAX und AXIOM Flexiblere Kommunikationsinfrastruktur Einfacheres Deployment von Services Bessere Unterstützung während der Entwicklung Erweitertes Handler-Konzept Bessere Unterstützung von aktuellen Standards Die Zukunft von Axis Web-Service-Grundlagen SOAP Nachrichtenformat Verarbeitungsmodell SOAP-Fault Nachrichtenaustausch Protokoll-Binding SOAP 1.2 vs. SOAP WSDL MEPs Message Exchange Patterns WSDL WSDL Code First vs. Contract First Der Code-First-Ansatz Der Contract-First-Ansatz Einsatz von Contract First bei bereits bestehendem Code 66 Java Web Services mit Apache Axis2 5

5 Inhaltsverzeichnis 3 Erste Schritte Axis2-Distributionen Installation von Axis Die Axis2-Webanwendung Standarddistribution Zentrale Konzepte von Axis AXIOM Servicearchive Message Receiver Repository Implementierung einfacher Web Services mit POJOs Deployment von Services in einem Standalone-Server Einsatz der Axis2-Webanwendung Deployment von Web Services Serviceadministration Entwicklung eines Clients für den SimpleHotelService Direkte Verwendung des Client-API von Axis Entwicklung von Clients mithilfe von Codegenerierung Geruhsame Nächte mit Axis Hotels 95 4 Entwicklung mit Axis Eclipse als Entwicklungsumgebung verwenden Projekteinrichtung Eclipse Web Tools Platform Axis2 Eclipse Plug-ins Codegenerator-Wizard Service Archiver Wizard Debugging Axis2-Quellcode erforschen Den Axis2-Quelltext sichten und browsen Quellcode erforschen Beispiel Werkzeuge für den Umgang mit SOAP-Nachrichten Apache TCPMon SOAP erforschen und lernen mit TCPMon SOAPMonitor 113 6

6 Inhaltsverzeichnis 5 AXIOM Einführung StAX Push vs. Pull Parsing StAX-API XML parsen mit StAX AXIOM AXIOM-Architektur AXIOM-API Caching Web-Service-Implementierung mit AXIOM Client-API ServiceClient Aufrufmuster Request-Response mit blockierendem API Request-Response mit nichtblockierendem API über eine Verbindung Request-Response mit nichtblockierendem API über zwei Verbindungen Einwegaufruf Zuverlässiger Einwegaufruf Clientseitige Konfiguration JavaBean Properties Generische Properties HTTP-Parameter OperationClient Contract First mit Axis Codegenerierung Aufruf von WSDL2Java von der Kommandozeile Axis2-Codegenerator-Wizard für Eclipse Ant Task Implementierung und Deployment von Services Der Ordner resources Generierter Code und Implementierung des Service Paketierung und Deployment 205 Java Web Services mit Apache Axis2 7

7 Inhaltsverzeichnis 7.3 Implementierung von ServiceClients Einwegkommunikation Weiterführende Aspekte der Entwicklung Fehlerbehandlung Definition von Fehlern in XML Schema und WSDL Codegenerierung Lebenszyklus von Services Sessionverwaltung Request-Session-Scope SOAP-Session-Scope Transport-Session-Scope Application Scope Sessionverwaltung mit Clientanwendungen Codebeispiel Architektur und Konfiguration Interne Verarbeitung von Nachrichten Flows Phasen Dispatch-Mechanismus Interne Datenstrukturen: Description und Context Description-Hierarchie Context-Hierarchie Beziehung zwischen Context- und Description-Hierarchien Laden von Konfigurationen Globale Konfiguration Parameter Message Receiver Transporte Global aktivierte Module und Modulkonfigurationen Standardmäßige Modulversion Phasen Target Resolver Listeners/Observers Deployer Message Builder und Message Formatter Data Locators 274 8

8 Inhaltsverzeichnis SOAP Role Transaktionen Konfiguration von Services Services und Servicegruppen Bestimmung der Namen von Services und Servicegruppen WSDL-Dokumente und automatische WSDL-Generierung Elemente der Datei services.xml Serviceparameter Deployment von Services Axis2-Webanwendung Standalone-Server Zugriff eines Service auf Context und Konfiguration Zugriff auf Ressourcen im Servicearchiv Start von Axis2 mit entferntem Repository Handler und Module Handler Die Schnittstelle Handler Implementierung von Handlern Konfiguration von Handlern Module Die Schnittstelle Module Konfiguration von Modulen Paketierung und Deployment Engagement Dynamisches Engagement zur Laufzeit Mitgelieferte Module Data Binding Grundlagen des XML Data Binding Codegenerator-Framework ADB Axis Data Binding ADB-Schema-Compiler ADB Integration in Axis Codegenerierung Wrapped vs. Unwrapped 346 Java Web Services mit Apache Axis2 9

9 Inhaltsverzeichnis 11.4 XMLBeans JiBX JAXB RI Zusammenfassung Message Receiver und ServiceObjectSupplier Einführung Blick zurück: Provider in Axis 1.x Blick in die Gegenwart: Reise durch die Axis2 Engine Nachrichtenempfänger Contract First Message Receiver von innen Axis2 und Groovy Message Receiver und WSDL Enterprise JavaBeans und Axis Einführung Möglichkeiten zur Integration von EJBs Der Bankleitzahlenservice als EJB Die Realisierung von EJBMessageReceiver EJB als Web Service bereitstellen ServiceObjectSupplier Spring Framework Einführung Axis2 und das Spring Framework Der Bankleitzahlenservice als Spring Bean SpringServletContextObjectSupplier Erforderliche Spring-Bibliotheken SpringAppContextAwareObjectSupplier Die EJBUtil-Implementierung MTOM & SwA Base64 & SwA Base SwA

10 Inhaltsverzeichnis 13.2 XOP & MTOM XOP MTOM SwA vs. MTOM MTOM in Axis OMText MTOM Web Service mit AXIOM-API MTOM mit Data Binding SwA in Axis Attachment Caching Transportprotokolle Transportmechanismus TransportListener TransportSender Aktivierung von Transportprotokollen auf Serviceebene HTTP Transport Receiver für Standalone-Modus SimpleHttpServer in eigene Applikationen einbetten CommonsHTTPTransportSender JMS Installation von ActiveMQ Services mit JMS-Kommunikation Clientanwendungen mit JMS-Kommunikation TCP JAX-WS JAX-WS-Programmiermodell Code-First-Entwicklung Contract-First-Entwicklung Servicecliententwicklung mit JAX-WS Synchroner Serviceclient Asynchroner Serviceclient 499 Java Web Services mit Apache Axis2 11

11 Inhaltsverzeichnis 15.3 Weiterführende Themen Low-Level-API MTOM Handler JAX-WS-Implementierung Alternative Nachrichtenformate Message Formatter und Message Builder JSON Badgerfish- und Mapped-Konvention JSON in Axis Fast Infoset Konzept Performance Fast Infoset in Axis WS-*-Standards mit Axis WS-Addressing Grundlagen WS-Addressing mit Axis WS-Policy Grundlagen Apache Neethi: WS-Policy mit Axis WS-Security Grundlagen Rampart: WS-Security mit Axis Konfiguration mit WS-Policy WS-ReliableMessaging Grundlagen Sandesha2: WS-ReliableMessaging mit Axis2 608 A XML Schema und WSDL von Axis Hotels 623 B WSDL2Java 631 B.1 Kommandozeile 631 B.2 Ant-Task 631 B.3 Maven-Plug-in

12 Inhaltsverzeichnis C Java2WSDL 635 C.1 Kommandozeile 635 C.2 Maven-Plug-in 636 D Maven 2 AAR Plug-in 639 E Maven 2 MAR Plug-in 641 Stichwortverzeichnis 643 Über die Autoren 649 Java Web Services mit Apache Axis2 13

13

14 Vorwort Vorwort zur ersten Ausgabe (2007) Seit der Veröffentlichung unseres ersten Buches, damals zu Apache Axis 1.x, sind drei Jahre vergangen. Eine lange Zeit, insbesondere in der IT-Branche. Zum damaligen Zeitpunkt war die Web-Service-Technologie noch relativ am Anfang und die zweite Generation von Web-Service-Frameworks war gerade im Begriff, die erste abzulösen. Viele Entwickler und Experten stimmten überein, dass die der Technologie zugrunde liegenden Konzepte ausgesprochen hilfreich und weiterbringend waren, wenn heterogene Anwendungen integriert werden sollten. Potenzielle Einsatzgebiete waren reichlich vorhanden, dennoch setzten sich Web Services insgesamt etwas langsamer durch als angesichts des zwischenzeitlichen Hypes um das Thema zu erwarten war. Dies hatte eine Reihe verschiedener Gründe. Zu den wichtigsten zählte sicherlich, dass einige Grundanforderungen für geschäftskritische Anwendungen, wie beispielsweise Sicherheit, zum damaligen Zeitpunkt noch nicht befriedigend gelöst waren. Zwar existierten bereits verschiedene Spezifikationen für entsprechende Erweiterungen der Web-Service-Welt, die verfügbaren Implementierungen waren jedoch noch nicht ausgereift und immer wieder Auslöser von Interoperabilitätsproblemen. Generell war es um die Interoperabilität der meisten Frameworks nicht ums Beste bestellt. Eine groteske Situation, sollte die Web-Service-Technologie doch gerade solche Probleme lösen, anstatt neue zu verursachen. In der Zwischenzeit hat sich die Situation deutlich gewandelt: Web Services sind aus der Software-Entwicklung praktisch nicht mehr wegzudenken sie leisten in vielen Einsatzgebieten und unterschiedlichsten Branchen gute Dienste. Und auch wenn für viele Kommunikationsanforderungen weiterhin mächtigere und vor allem effizientere Lösungen zur Verfügung stehen, so lösen Web Services inzwischen das ursprüngliche Versprechen ein, heterogene Systeme auf relativ einfache Weise miteinander zu integrieren. Dabei stehen sicherlich weniger Web Services öffentlich und für jedermann zur Verfügung als anfänglich vermutet wurde. Doch in der Kommunikation zwischen Unternehmen und Geschäftspartnern sowie im Inneren von Unternehmensarchitekturen finden Web Services heutzutage sehr weite Verbreitung. Seien es internationale Hotelreservierungssysteme mit einer Vielzahl angebundener Hotelketten und Vertriebspartner, Systeme im Finanzdienstleistungsbereich, in der Logistikbranche oder verschiedenste Stellen im öffentlichen Sektor (Behörden, Ministerien usw.) die Einsatzgebiete sind ausgesprochen vielfältig. Java Web Services mit Apache Axis2 15

15 Vorwort Einen wichtigen Beitrag dazu, dass die Web-Service-Technologie so breite Verwendung finden konnte, leistete die Web Services Interoperability Organisation (WS-I). Sie veröffentlicht Richtliniendokumente wie das Basic Profile, die beschreiben, wie die einzelnen Technologien (SOAP, WSDL etc) verwendet werden sollten, um eine höchstmögliche Interoperabilität zu gewährleisten. Kein Framework und keine Implementierung in diesem Bereich kann es sich heute mehr ernsthaft leisten, nicht das Basic Profile zu befolgen. Mit diesem kompatibel zu sein darf dagegen als Gütesiegel gelten, das anzeigt, dass die gängigsten Interoperabilitätsprobleme von dem jeweiligen Werkzeug sicher umschifft werden. Im gleichen Maße, wie die Web-Service-Technologie erwachsen wurde, ist Axis 1.x in die Jahre gekommen. Bei dessen Implementierung wurden einige Annahmen gemacht, die seinerzeit sicherlich ausreichend waren, sich heute aber eher behindernd auswirken. Zudem haben sich die Anforderungen an Web-Service-Technologien weiterentwickelt. Die Technologie wird in immer komplexer werdenden Szenarien eingesetzt, und die Anforderungen moderner Web-Service-Anwendungen lassen sich mit Axis 1.x entweder gar nicht oder nur sehr schwierig umsetzen. So wurde eine neue Architektur für Axis notwendig, die flexibler und mächtiger ist. Axis2 ist daher nicht einfach nur eine neue Version von Axis 1.x, sondern in vielerlei Hinsicht ein ganz neues Framework. Dieses wurde auf Basis der Erfahrungen vergangener Jahre implementiert, wobei sich viele bewährte Konzepte und Ideen in aufgefrischter Form wiederfinden lassen. Wie bei vielen Open-Source-Projekten stoßen Entwickler auch beim Einsatz von Axis2 recht schnell an die Grenzen der offiziellen Dokumentation. Hier setzt dieses Buch an und bietet mehrere hundert Seiten an detaillierten Informationen zum Einsatz des Frameworks. Viele der in diesem Buch enthaltenen Informationen werden erstmals dokumentiert und wurden durch zeitaufwändige Analyse des Sourcecodes von Axis2 entdeckt. 16

16 Vorwort Vorwort zur zweiten Ausgabe Erneut sind drei Jahre vergangen, dieses Mal zwischen der ersten und der zweiten Ausgabe dieses Buches. Die Web-Service-Technologie hat sich noch weiter verbreitet und darf inzwischen zu den Standardwerkzeugen eines Softwareentwicklers gezählt werden. Dabei hat sich gezeigt, dass insbesondere im Bereich der unternehmensinternen Integrationsaufgaben kaum mehr ein Weg an der Technologie vorbei geht. Gleichzeitig hat sich jedoch auch der REST-Ansatz etabliert und gilt dank verbesserter Unterstützung durch APIs und Frameworks inzwischen als ernsthafte Alternative. Nach langen, teils sehr leidenschaftlich geführten Debatten in der Fachwelt, welcher Ansatz wohl der bessere sei, scheint sich nun langsam herauszukristallisieren, dass dieses Duell keinen Sieger haben wird. Ein Hauptgrund hierfür liegt vermutlich darin, dass die Entscheidung für oder gegen einen der beiden Ansätze in vielen Entwicklerteams letztlich nicht auf Basis technologischer Vorlieben getroffen wird. Viel häufiger sind es dagegen äußere Umstände, wie unternehmensweite Richtlinien oder Branchenstandards, die den einen oder anderen Ansatz vorgeben. Somit werden auch langfristig wohl beide Ansätze Verwendung finden. Die Web-Service-Technologie hat sich erneut weiterentwickelt. Weiterführende Spezifikationen, wie WS-Policy, WS-Trust oder WS-SecureConversation wurden inzwischen standardisiert und erlauben den Einsatz von Web Services in immer anspruchsvolleren Szenarien. Auch im Axis2-Framework hat sich einiges getan. Die erste Ausgabe dieses Buches basierte noch auf Axis2 1.1, die zweite basiert nun auf Axis Neben unzähligen kleinen Verbesserungen und Bugfixes wurden eine Reihe spannender neuer Features entwickelt. Es war also höchste Zeit, auch den Inhalt dieses Buches auf den aktuellen Stand zu bringen. So wurden alle Kapitel von Grund auf überarbeitet und aktualisiert. Außerdem kamen einige neue Kapitel und Abschnitte hinzu, die sich mit den Features des Frameworks befassen, welche erst nach Erscheinen der ersten Ausgabe implementiert wurden. Der überwältigende Erfolg der ersten Ausgabe hat uns überrascht, und gemeinsam mit der starken Nachfrage nach einer Überarbeitung motiviert, eine zweite Ausgabe zu veröffentlichen. Wir hoffen, dass unsere Leser auch an dieser neuen Ausgabe viel Freude haben werden. Java Web Services mit Apache Axis2 17

17 Vorwort Wer sollte dieses Buch lesen? Dieses ist ein Buch von Entwicklern für Entwickler, die bereits über Vorkenntnisse in den wichtigsten Web-Service-Technologien verfügen und nun Anwendungen mit Axis2 erstellen wollen. Die Basistechnologien SOAP und WSDL werden in Kapitel 2 zwar einführend vorgestellt, es dient jedoch eher zum Nachschlagen oder Auffrischen bestehender Kenntnisse. Seine Lektüre ist dagegen nicht erschöpfend genug, um Einsteigern in die Web-Service-Welt ausreichende Kenntnisse über diese Technologie zu vermitteln. Hierbei helfen zahlreiche andere Bücher, die am Markt erhältlich sind. Ähnlich verhält es sich mit weiterführenden Web Service-Spezifikationen wie WS-Security, WS-Addressing oder WS-Policy, deren Einsatz mit Axis2 in Kapitel 15 erläutert wird. Auch hier gilt, dass diese zwar einführend vorgestellt werden, für den ernsthaften Einsatz im Projekt sollten jedoch tiefergehende Kenntnisse erworben werden. Dieses Buch konzentriert sich dagegen voll auf Axis2. Es enthält hunderte Seiten mit Informationen und Anregungen, wie das Framework eingesetzt und konfiguriert werden kann. Hinzu kommen zahlreiche Einschätzungen und Empfehlungen auf Basis unserer jahrelangen internationalen Projekterfahrung mit Web-Service-Technologie. Aufbau Das Buch besteht aus drei Teilen. Im ersten Teil werden nach einem einführenden Kapitel wichtige Grundlagen vermittelt, die ein notwendiges Fundament für den weiteren Verlauf des Buches legen. Kapitel 2 beschreibt hierzu als Erstes die beiden wichtigsten technologischen Fundamente von Web Services, nämlich SOAP und WSDL. Im Anschluss daran werden die beiden wichtigsten Ansätze zur Entwicklung von Web-Service- Anwendungen gegenübergestellt (Code First und Contract First). Jeder Entwickler sollte den Unterschied kennen und sich über die Vor- und Nachteile beider Ansätze bewusst sein, bevor mit der Entwicklung von Web-Service-Anwendungen begonnnen wird. Kapitel 3 begleitet den Leser dann bei den ersten Schritten mit Axis2 und zeigt auf, wie einfache Services auf Basis von POJOs (Plain Old Java Objects) erstellt und entsprechende Clients entwickelt werden können. Darüber hinaus werden hier zentrale Konzepte von Axis2 erläutert. Der zweite Teil des Buches beschäftigt sich detailliert mit Themen der täglichen Entwicklungsarbeit beim Einsatz von Axis2. So stellt Kapitel 4 hilfreiche Werkzeuge für Entwicklung und Tests vor, und Kapitel 5 befasst sich mit AXIOM, einem neuen Objektmodell für die Arbeit mit XML, auf dem das gesamte Axis2-Framework aufbaut. Im Anschluss beschreibt Kapitel 6 das neue Client-API. Die Entwicklung von Web-Service-Anwendungen mit dem Contract-First-Ansatz und unter Verwendung des Codegenerators von Axis2 ist Inhalt von Kapitel 7. Weiterführende Aspekte der Anwendungsentwicklung wie Sessionverwaltung, Fehlerbehandlung oder der Lebenszyklus von Serviceinstanzen werden in Kapitel 8 behandelt und runden diesen Teil des Buches ab. Bis hierhin empfiehlt es sich, alle Kapitel in ihrer vorgegebenen Reihenfolge zu lesen. 18

18 Vorwort Im dritten und letzten Teil des Buches werden fortgeschrittene Themen aufgegriffen. So beschreibt Kapitel 9 die interne Architektur von Axis2 und zeigt auf, wie Nachrichten durch das Framework fließen und welche Komponenten an deren Verarbeitung beteiligt sind. Im Anschluss daran folgt eine vollständige Auflistung sämtlicher Konfigurationsoptionen. Eine besondere Stärke von Axis2 ist seine Erweiterbarkeit durch Handler und Module. Kapitel 10 erläutert, wie Entwickler eigene Erweiterungen erstellen und Axis2 auf diese Weise an eigene Anforderungen anpassen können. Auch das XML Data Binding ist ein wichtiger Aspekt von Web-Service-Anwendungen. Axis2 bietet Unterstützung für mehrere verschiedene Data Binding Frameworks, die in Kapitel 11 vorgestellt und miteinander verglichen werden. Eine der zentralsten Komponenten des Axis2-Frameworks sind die Message Receiver. Sie sind serverseitig dafür verantwortlich, den Inhalt eingehender Nachrichten in Aufrufe an die zuständige Serviceimplementierung umzuwandeln und das Kommunikationsmuster der jeweiligen Operation umzusetzen. Message Receiver können unter anderem dazu verwendet werden, auf einfache Weise auch EJBs, Skriptcode oder sonstige alternative Implementierungsformen als Web Service bereitzustellen. Kapitel 12 beschreibt, wie man dies bewerkstelligen kann. Im Anschluss daran folgen Informationen über den Versand von Attachments mit MTOM oder SwA in Kapitel 13 sowie über den Einsatz der verschiedenen unterstützten Transportprotokolle (wie HTTP und JMS) in Kapitel 14. Die folgenden beiden Kapitel beschäftigen sich mit Features, die seit der ersten Ausgabe dieses Buches neu hinzukommen sind. So beschreibt Kapitel 15, wie Axis2 den JAX-WS-Standard unterstützt. Kapitel 16 zeigt auf, wie Axis2 dazu verwendet werden kann, statt SOAP auch alternative Nachrichtenformate wie JSON oder Fast Infoset für die Kommunikation einzusetzen. Im letzten Kapitel dreht sich schließlich alles um weiterführende Web-Service-Spezifikationen wie WS-Addressing, WS-Policy, WS-Security und WS-ReliableMessaging. Das Kapitel beschreibt, inwieweit diese durch Axis2 oder zusätzlich erhältliche Erweiterungsmodule unterstützt werden und im weiteren Verlauf, wie sie verwendet und konfiguriert werden. Java Web Services mit Apache Axis2 19

19 Vorwort Wichtiger Hinweis zu den Listings Viele der Listings in diesem Buch wurden umformatiert, um die Lesbarkeit zu verbessern. Insbesondere XML-Dokumente wie SOAP-Nachrichten und Konfigurationsdateien haben häufig deutlich längere Zeilen, als auf eine Buchseite passen. Bei Konfigurationsdateien ist jedoch darauf zu achten, dass öffnende und schließende Element-Tags sowie die dazwischen befindlichen Elementinhalte in der gleichen Zeile stehen sollten. Wurde ein XML-Element über mehrere Zeilen formatiert, z. B. <elementmitbesonderslangemnamen> Elementinhalt </elementmitbesonderslangemnamen> so sollte dieses in der Regel stattdessen wie folgt verwendet werden: <elementmitbesonderslangemnamen>elementinhalt</elementmitbesonderslangemnamen> Feedback Wir sind sehr daran interessiert zu erfahren, wie Ihnen unser Buch gefällt. Was finden Sie gelungen, in welchen Bereichen hätten Sie Verbesserungsvorschläge? Fehlen Ihnen Inhalte, die Sie vergeblich in diesem Buch gesucht haben? Oder haben Sie vielleicht sogar einen Fehler entdeckt? Bitte schreiben Sie uns, wir freuen uns auf Ihr Feedback. Nur wenn Sie uns sagen, was Ihnen gut oder weniger gut gefällt, können wir beim nächsten Buch alles noch viel besser machen. In Abhängigkeit von der Menge der Leser, die uns Feedback schicken, werden wir jedoch unter Umständen nicht alle s beantworten können. Wir bitten hier um Verständnis. Der Verlag hat eine -Adresse eingerichtet, unter der Sie uns erreichen können: Alternativ können Sie die Autoren auch direkt kontaktieren. Thilo Frotscher: Dapeng Wang: Marc Teufel: 20

20 Vorwort Danksagung An der Entstehung eines Buches sind viele Personen beteiligt, nicht nur die Autoren. Ohne ihre Mithilfe kann ein Buch wie dieses nicht entstehen. An dieser Stelle möchten wir daher unseren Dank an folgende Personen aussprechen: Thilo Als wir mit den Arbeiten an der ersten Ausgabe für dieses Buch begannen, war Apache Axis2 noch ein recht neues Framework. Dementsprechend war nur sehr wenig Dokumentation erhältlich und das Schreiben gestaltete sich außerordentlich zeitaufwändig, da die meisten Informationen durch Analyse der Quelltexte erarbeitet werden mussten. Wer die offizielle Dokumentation von Axis2 mit dem Umfang dieses Buches vergleicht, kann vielleicht erahnen, wie viel Arbeit das war. Für die zweite Ausgabe sah die Situation nicht viel besser aus. Wir hatten zwar inzwischen sehr detaillierte Kenntnisse über das Framework, und man findet heute auch deutlich mehr Dokumentation, Artikel und sonstige Informationen zu Axis2. Letztlich war es aber erneut notwendig, vor allem durch Quelltextanalyse herauszufinden, was genau sich alles geändert hat. Aus diesem Grund ist ein solches Buchprojekt nur im Team zu bewältigen. Ich bin deshalb sehr froh, dass Dapeng und Marc wieder mit dabei waren. Vielen Dank Euch beiden für die freundschaftliche Zusammenarbeit. Es war mal wieder harte Arbeit, aber es hat sehr viel Spaß gemacht. Vom Verlag danke ich insbesondere unserem Lektor Sebastian Burkart, der sehr viel Geduld aufbrachte, wenn wir den Zeitplan mal wieder ändern mussten. Darüber hinaus geht ein großer Dank an Sebastian Meyen für seine Unterstützung bei der Umsetzung der Idee, ein Buch über Axis2 zu schreiben. Auch dem Entwicklerteam von Axis2, dem ich zahlreiche Bugs gemeldet und Fragen gestellt habe, möchte ich meinen Dank aussprechen. Auf beides reagierte das Team stets mit sehr prompter Hilfe. In diesem Zusammenhang habe ich die große Bitte an alle Leser, eventuellen Bugs oder fehlender Dokumentation nicht mit Unmut zu begegnen. Axis2 ist ein Open-Source-Projekt, und jeder kann mithelfen, es noch besser zu machen. Nur so kann Open Source funktionieren. Mein besonderer Dank geht an Steffi, die in der schwersten Zeit meines Lebens an meiner Seite war und auch dann noch sehr viel Verständnis zeigte, als ich zahlreiche Abende, Nächte und Wochenenden damit verbrachte, während der Arbeit an dieser zweiten Auflage in den Tiefen des Axis2-Frameworks zu forschen. Dapeng Ich möchte mich zuerst bei allen Leuten bedanken, die aktiv an diesem Buch zusammengearbeitet haben. Besonders zu erwähnen ist unser Lektor Herr Sebastian Burkart von entwickler.press, der über den langen Zeitraum der Entstehung dieses Buchs sehr viel Geduld und Einsicht aufgebracht hat. Java Web Services mit Apache Axis2 21

21 Vorwort Ein solches Buchprojekt kann nicht alleine bewältigt werden. Dafür danke ich meinen beiden Mitautoren, die mit mir diesen Weg gemeinsam bestritten haben. Ich finde, dass wir mittlerweile bei unserem dritten Buchprojekt schon ein eingespieltes Team sind und alles sehr gut gemeistert haben. Umso mehr freue ich mich auf die nächste gemeinsame Herausforderung mit Euch. Es hätte das Buch sicherlich nicht gegeben, wenn nicht die Entwickler von Apache und WSO2 Axis2 überhaupt ins Leben gerufen hätten. Für Ihre hervorragende Arbeit bedanke ich mich. Mein ganz besonderer Dank gilt meiner Frau Lan Zhang, die mich stets bei dem Buchprojekt unterstützt und meinen Rücken freigehalten hat, sodass ich mich voll und ganz dem Buchprojekt widmen konnte. Sie hat zwar nicht jedes Mal, jedoch meistens Verständnis dafür gezeigt, als ich mich abends, nachts oder am Wochenende wieder einmal in den Sourcecode von Axis2 eintauchte oder fleißig meine Erkenntnisse in Word eintippte. Auch meinem Sohn Edison Tianyi Wang muss an dieser Stelle gedankt werden. Er zeigte genauso viele Rücksicht wie beim ersten Buchprojekt (damals kam er erst dann auf die Welt, nachdem ich das Buchprojekt abschließen konnte), indem er sich während des Projekts auch mit weniger gemeinsamer Spielzeit zufrieden gab. Ich hoffe, dass ich dies mit noch mehr Schachpartien und Badmintonübungen nach dem Buchprojekt entschädigen kann. Nicht zuletzt möchte ich meinen Eltern danken, die mich über die Jahre motiviert und mit weisen Ratschlägen zur Seite gestanden haben. Marc Thilo und Dapeng, Euch beiden danke ich für die jahrelange, fruchtbare, freundschaftliche und immer wieder gute Zusammenarbeit. Es ist immer wieder schön, mit Euch an Publikationen wie diesen zu arbeiten. Unserem Lektor Sebastian Burkart gilt mein Dank für die Organisation dieser neuen Auflage. Dem Software & Support Verlag danke ich allgemein dafür, dass er mir eine Plattform gibt, auf der ich über meine Erfahrungen berichten und mein Wissen an andere weitergeben kann. Ich hoffe auf eine weiterhin so gute Zusammenarbeit wie in all den Jahren zuvor. Während der Produktion dieser neuen Auflage ist mein Vater nach kurzer, schwerer Krankheit verstorben. Aus diesem Grund widme ich (m)einen Teil von diesem Buch speziell ihm. Dani, Timo und Tom, ihr seid mein Antrieb! Im Juni 2010 Thilo Frotscher Dapeng Wang Marc Teufel 22

22 Vorwort Grußwort zur ersten Ausgabe Far from its humble beginnings, Web services are gaining popularity in B2B environments. The many additions and updates to various WS-*specifications are providing users with a multitude of features. Applications have reached a level of maturity where people now expect high performance too when using Web services. The Axis2 platform from the Apache Web services project is ideally placed to fill in the growing demand of requirements of users. Apache being the pioneer in open source Web services stacks designed Axis2 from the ground up and also introduced several new concepts including a more flexible pipeline architecture to the handler chain model, hot deployment and real asynchronous web service invocations. Another driving force for Axis2 is the move away from RPC-oriented Web services towards more document-oriented, message style asynchronous service interactions. It is centered on a new representation for SOAP messages called AXIOM (AXIs Object Model). This book, which is a first of its kind, aims to provide insights to these concepts and gives an overview of using the rich set of features Axis2 provides. Marc, Thilo and Dapeng, all experienced campaigners in the Web services arena, start by introducing the architecture and basics of Axis2 and slowly move on to more advanced concepts like attachment handling. They have managed to cover everything you need to know, all in one book! I am very proud to be part of this effort and congratulate Marc, Thilo and Dapeng for a job well done. Eran Chinthaka Apache Axis2-Project Team from Indiana University, USA Java Web Services mit Apache Axis2 23

23

24 1 Einleitung Apache Axis2 ist eines der am meisten eingesetzten Web-Service-Frameworks für Java. Wie sein Vorgänger Axis 1.x handelt es sich um ein auf Open Source basierendes Framework zur Implementierung von Web-Service-Anwendungen auf Basis von SOAP unter der Lizenz der Apache Software Foundation. Aufbauend auf den Erfahrungen mit Axis 1.x entschieden sich die Entwickler bereits vor einigen Jahren zu einem kompletten Redesign des Frameworks, sodass Axis2 von Grund auf neu implementiert wurde. Das Ergebnis war ein sehr viel performanteres Framework, welches sehr viel stärker XML-basiert ist als sein Vorgänger. Durch die Tatsache, dass von Anfang darauf geachtet wurde, das System durch so genannte Module erweitern zu können, sind im Laufe der Jahre viele zusätzliche Erweiterungen entstanden. So stehen inzwischen wichtige Zusatzmodule wie das Security-Framework Apache Rampart zum Download bereit. Auch im Axis2-Framework selbst finden sich einige Erweiterungsmodule, wie etwa Unterstützung für WS-Addressing oder für das SOAP-Monitoring. Axis2 bietet die folgenden Highlights: Open-Source-Lizenz der Apache Software Foundation Hohe Performanz Flexible Konfiguration und Erweiterbarkeit durch Module Verbessertes, auf XML aufbauendes Client-API mit voller Unterstützung für WSDL und WS-Policy, sowie synchrone und asynchrone Web-Service-Aufrufe Unterstützung für beliebige Kommunikationsmuster (MEPs) POJO-Unterstützung Spring-Integration Deployment-Mechanismus für Services und Module, basierend auf Archiven Hot Deployment und Hot Update Unabhängiges Framework für diverse Transportprotokolle (HTTP wird mitgeliefert, TCP, SMTP, JMS und SMS können separat heruntergeladen und eingebunden werden) Unterstützung für verschiedene XML Data Binding Frameworks Java Web Services mit Apache Axis2 25

25 1 Einleitung 1.1 Entstehung Das Apache-Axis-Projekt hat eine bewegte Geschichte hinter sich. Seinen Ursprung hat Axis, wie viele andere bekannte Projekte auch, bei IBM. Um den Jahrtausendwechsel hatte man sich dort nicht ganz uneigennützig dazu entschlossen, eine SOAP-Implementierung zu entwickeln. Unter dem Namen SOAP4J wurde bald die erste Version veröffentlicht, die SOAP 1.1 umsetzte und schnell weite Verbreitung fand. Schließlich wurde das Projekt der Apache Foundation übergeben und dort weiterentwickelt. Dabei bekam das Projekt einen neuen Namen: Apache SOAP. Apache SOAP war beliebt, hatte aber auch seine Schwächen. Ein Schwachpunkt war die schlechte Performance, deren Ursache in der Verwendung eines DOM-Parsers zur Verarbeitung der XML-Nachrichten lag. Aber auch die Tatsache, dass die damals brandneue Web-Service-Spezifikation JAX-RPC noch nicht unterstützt wurde, führte zu Überlegungen, mit der Version 3.0 Apache SOAP auf ein gänzlich neues Fundament zu stellen. Daher wurde damit begonnen, die Architektur völlig zu überarbeiten und diverse Spezifikationen umzusetzen, darunter SOAP 1.1 und bereits Teile von 1.2, WSDL 1.1, SAAJ 1.1 und natürlich JAX-RPC in seiner ersten Version. Das Performanceproblem ging man an, indem man auf den DOM-Parser verzichtete und stattdessen auf SAX-Parsing setzte. Zum Release der neuen Version wusste man nicht, ob das Projekt wirklich unter der Bezeichnung Apache SOAP 3.0 veröffentlicht werden sollte. Damals herrschte beim W3C noch Unsicherheit über die Bezeichnungen der Web- Service-Technologie, vor allem über den Begriff SOAP wurde heftig diskutiert. Schließlich entschied man sich bei Apache für eine erneute Umbenennung des Projekts. Der Begriff SOAP wurde aus dem Projektnamen gestrichen und durch Axis ersetzt ein Akronym, das für Apache extensible Interaction System steht. Ironischerweise hat sich der Begriff SOAP später doch halten können, wenngleich als Name und nicht mehr als Akronym. Mit der Umbenennung in Apache Axis setzte man auch den Versionszähler zurück. Das war auch sinnvoll, da es sich bei Apache Axis quasi um eine Neuentwicklung handelte. Apache Axis 1.x wurde in den Jahren 2003 und 2004 sehr populär und war vielleicht sogar das beliebteste Web-Service-Framework seiner Zeit. Die Welt der Web Services stand seitdem jedoch natürlich nicht still, sondern war stetiger Fortentwicklung und ständigem Wandel unterworfen. Und so war es unvermeidbar, dass auch Axis 1.x in die Jahre kam. Neue Ideen im Bereich der XML-Verarbeitung begannen sich durchzusetzen, zum Beispiel die Entwicklung von StAX-Parsing durch BEA. Immer neue WS-Spezifikationen betraten die Bühne, und auch bei der Entwicklung von Web-Service-Anwendungen setzte ein Umdenken ein. Viele Entwickler erkannten, dass es noch weitere Kommunikationsmuster neben dem damals beliebten Request-Response-basierten Verfahren gab. Außerdem versuchte man sich langsam aus der Interoperabilitätsfalle zu befreien, indem man sich stärker an Richtlinien wie dem Basic Profile orientierte. Dokumentenbasierte Web Services setzten sich mehr und mehr durch, und auch die schnittstellengetriebene Web-Services-Entwicklung (Stichwort Contract First) fand immer mehr Anhänger. Axis 1.x war diesen Anforderungen nur schlecht gewachsen, zu stark war der Kern noch auf Request-Response ausgelegt, und mit seinem SAX-Parser war es dem modernen StAX-Verfahren deutlich unterlegen. Als wäre es nicht genug, dass man den alternativen Web-Service-Frameworks wie bei- 26

26 Entstehung spielsweise Celtix oder XFire (die heute im Projekt Apache CXF vereinigt sind) hinterzuhinken begann, zeichnete sich am Horizont mit JAX-WS zu allem Überfluss auch schon der Nachfolger von JAX-RPC ab. Achsenbruch? Im September 2003 statteten ein paar findige Studenten aus Sri Lanka das Axis-Framework mit einem StAX-Parser aus und erreichten eine nahezu 10-fache Performancesteigerung. Der Quelltext wurde unter der Bezeichnung Axis-Mora an die Apache Foundation übergeben. In der Axis-Maillingliste gab es unterdessen heftige Diskussionen über die Zukunft von Axis, die durch Mora neuen Zündstoff fanden. Erste Ideen und Konzepte bildeten sich heraus. Als die Lanka Software Foundation, der die Studenten, die Mora entwickelt haben, angehörten, eine ordentliche Finanzspritze erhielt, konnten vier bis fünf Entwickler Vollzeit an der Umsetzung der neuen Konzepte arbeiten. So wiederholte sich das Schicksal von Axis zum zweiten Mal, denn wieder entschied man sich für ein komplettes Redesign des Frameworks. Da viele Softwareprojekte Axis 1.x bis heute noch verwenden, wird diese Version zwar immer noch gepflegt, aber nicht mehr mit neuer Funktionalität ausgestattet. Mit den ersten Versionen der neuen Axis-Generation kristallisierte sich dann heraus, dass mit dem Entwicklungszweig Axis2 im Prinzip ein komplett neues Web-Service-Framework entstehen würde und dieses hatte es in sich. Zunächst konzentrierten sich die Entwickler auf die interne Verarbeitung der XML- Nachrichten. Man wendete sich vom DOM- und SAX-Parsing ab und setzte zeitgemäß auf StAX. Darauf aufbauend wurde zudem ein leichtgewichtiges Objektmodell (AXIOM) entwickelt, das effizienten Zugriff auf einzelne Nachrichteninhalte bietet und dennoch einen dem DOM-Modell ähnlichen Zugriff ermöglicht. Allein der Umstieg auf AXIOM brachte deutliche Verbesserungen hinsichtlich der Geschwindigkeit gegenüber Axis 1.x, was sich in Benchmarks und Performancetests gut zeigen ließ. Weiterhin widmeten sich die Entwickler sich der bereits angesprochenen Problematik, dass die Axis-Engine zu stark auf Request-Response ausgelegt war. Um das Problem zu lösen, teilte man den Nachrichtenfluss in zwei eigenständige Abschnitte: eingehende Nachrichten (IN-Flow) und ausgehendende Nachrichten (OUT-Flow). Damit war nun endlich auch der Weg für andere Kommunikationsmuster frei. Die Ideen rund um asynchrone Web Services wurden in ihrer ganzen Tiefe umgesetzt (Blocking und Non-Blocking APIs mit ein oder zwei Verbindungen). Einen weiteren Schwerpunkt setzte man auf das Deployment von Web Services. So wurde zunächst ein neues Konzept eingeführt, nach dem ein Service samt aller seiner Ressourcen und einer Konfigurationsdatei in einem JAR-Archiv mit spezieller Verzeichnisstruktur untergebracht werden kann. Dieses so genannte Axis-Archiv ist anschließend durch einfaches Kopieren in eine laufende Axis2-Instanz abzulegen und schon ist der Service installiert. In späteren Axis2-Versionen wurde dieses Verfahren noch erweitert und Schnittstellen bereitgestellt, mit denen sogar eigene, individuelle Deployment-Verfahren implementiert werden können. Ein Beispiel hierfür ist der POJO-Deployer, mit dem es möglich ist, eine Klassendatei oder ein JAR in Betrieb zu nehmen und Teile daraus direkt als Web Service bereitzustellen. Der Deployment-Deskriptor, der in Axis bisher immer ein wesentliches Deployment-Artefakt war, wird dabei weitgehend durch Annotations ersetzt. Java Web Services mit Apache Axis2 27

27 1 Einleitung Von Anfang an propagierte Axis2 den Contract-First-Ansatz bei der Entwicklung von Web-Service-Anwendungen. Hierzu werden mächtige Kommandozeilenwerkzeuge für die Codegenerierung und auch für diverse IDEs (Eclipse, IntelliJ) angeboten. Wie Axis 1.x enthält auch Axis2 mit ADB ein eigenes XML Data Binding Framework. Allerdings wurde auch für diesen Zweck eine offene Schnittstelle geschaffen, sodass auch alternative Lösungen mit Axis2 integriert werden können. Bereits seit Längerem enthält Axis2 Unterstützung für XMLBeans und JiBX. In aktuelleren Versionen wird nun auch die Umsetzung von JAXB 2.x weiter vorangetrieben, was im Übrigen eine wesentliche Voraussetzung zur vollständigen Unterstützung von JAX-WS darstellt. JAX-WS als Nachfolger von JAX-RPC von Anfang an zu unterstützen war jedoch nicht das erklärte Ziel der Axis2-Entwickler, was unter anderem daran lag, dass JAX-WS noch gar nicht abschließend spezifiziert war, als die Arbeit an Axis2 begann. Vielmehr konzentrierten sich die Entwickler darauf, eine flexible, modulare und offene Architektur zu entwickeln, auf deren Grundlage dann erst die Umsetzung von JAX-WS erfolgen sollte. In der aktuellen Version von Axis2 wird JAX-WS nun auch weitgehend unterstützt. Weitgehend deshalb, weil die JAXB-Unterstützung derzeit immer noch in einem so genannten Experimental -Status vorliegt, was letztlich bedeutet, dass hier noch an einer der wesentlichen Grundvoraussetzungen für JAX-WS gearbeitet wird. 1.2 Unterstützte Standards Die Unterstützung der Kernstandards SOAP und WSDL ist für ein Web Service-Framework natürlich selbstverständlich. Axis2 unterstützt jedoch noch eine Reihe weiterer Standards. In der zum Veröffentlichungszeitpunkt dieses Buches aktuellen Version sind dies: SOAP 1.1 und 1.2 WSDL 1.1 (inklusive SOAP- und HTTP-Bindings) und WSDL 2.0 MTOM (Message Transmission Optimization Mechanism), XOP (XML Optimized Packaging) und SwA (SOAP with Attachments) WS-Addressing WS-Policy SAAJ 1.1 Darüber hinaus sind Zusatzmodule erhältlich, welche Axis2 um Unterstützung für die folgenden Web-Service-Standards erweitern: WS-Security WS-SecureConversation WS-Trust WS-Reliable Messaging 28

28 Was beinhaltet Axis2? Im Gegensatz zu Frameworks wie Axis 1.x oder beispielsweise CXF kann Axis2 in der aktuellen Version immer noch nicht mit einer vollständigen Unterstützung des standardisierten Java-Web-Services-API JAX-RPC bzw. dessen Nachfolger JAX-WS (Java API for XML-based Web Services) aufwarten. Die Entwicklung von JAX-WS 2.0 ist jedoch bereits weit vorangeschritten, sodass man zwar Web Services gemäß JAX-WS 2.0 mit Axis2 programmieren kann, die Implementierung jedoch vor allem aufgrund des noch nicht vollständig umgesetzten, aber erforderlichen JAXB weiterhin in einer als experimentiellen bezeichneten Fassung vorliegt. Axis2 bietet dafür jedoch mit dem auf StAX aufbauenden AXIOM ein sehr schnelles und einfach zu programmierendes API. Ferner sind zusätzliche Erweiterungsmodule für Web-Service-Standards bereits in der Entwicklung. Diese werden Unterstützung für WS- Eventing und WS-Transactions enthalten. 1.3 Was beinhaltet Axis2? Axis2 besteht aus einer Reihe verschiedener Komponenten, die entweder alle gemeinsam oder getrennt voneinander eingesetzt werden können. Zudem sind verschiedene Distributionen erhältlich. Je nachdem, für welche man sich entscheidet, enthalten sie unterschiedliche Mengen der folgenden Bestandteile: eine Laufzeitumgebung (bzw. ein Container) für Web Services, entweder in Form einer Java-Webanwendung und/oder verschiedener Standalone-Server eine API für die Erstellung von Web Service-Clients umfangreiche Web-Oberfläche zur Administration der Axis2-Web Anwendung ein SOAP-Monitor-Modul zum Mitverfolgen von SOAP-Nachrichten Tools für die automatische Generierung von Code und WSDL-Dokumenten Plug-ins für Eclipse und IntelliJ IDEA, die das Deployment eigener Services und die Codegenerierung vereinfachen Unabhängiges Transportprotokoll-Framework mit Transportprotokollimplementierungen für TCP, JMS, SMTP und SMS 1.4 Warum Axis2 einsetzen? Dies ist eine berechtigte Frage, zumal Axis 1.x in seiner aktuellen Version 1.4 noch immer sehr populär und aufgrund der langen Entwicklungszeit mittlerweile auch sehr stabil ist. Zudem kann Axis 1.4 nun auch mit einer verbesserten Unterstützung für das Nachrichtenformat Document/Literal aufwarten, so wie es vom Basic Profile gefordert wird. Für den Umstieg auf Axis2 gibt es dennoch mehrere gute Gründe, die nachfolgend erläutert werden. Java Web Services mit Apache Axis2 29

29 1 Einleitung Bessere Performance durch StAX und AXIOM Ein zentraler Aspekt von SOAP-Frameworks ist die interne Verarbeitung der XMLbasierten Nachrichten. Axis2 wendet sich hier vom bewährten DOM (Document Object Modell) ab, bei dem für alle eingehenden Nachrichten zunächst ein Objektbaum im Speicher erzeugt wird, der den Inhalt der eingegangenen Nachricht repräsentiert. An Stelle von DOM wird in Axis2 ein StAX-basiertes XML-Parsing eingesetzt, welches SOAP- Nachrichten immer nur so weit parst, wie es zu einem gegebenen Zeitpunkt während der Verarbeitung notwendig ist. Durch dieses verschobene Parsing wird beispielsweise verhindert, dass ein SOAP Body unnötigerweise gelesen wird, obwohl die Nachricht bereits aufgrund ihres Headers abgelehnt wird. Aufbauend auf StAX wurde für Axis2 ein leichtgewichtiges Objektmodell namens AXIOM (Axis Object Model) entwickelt, welches effizienten Zugriff auf die einzelnen Nachrichteninhalte bietet. Da AXIOM kein standardisiertes API darstellt, gibt es darauf aufbauend eine Adapterschicht, die zu JAX-WS 2.0 (früher JAX-RPC) konform ist. Allein der Umstieg auf AXIOM bringt deutliche Verbesserungen hinsichtlich Geschwindigkeit und Speicherverbrauch gegenüber Axis 1.x, die mithilfe von Benchmarks und Performancetests nachgewiesen wurden Flexiblere Kommunikationsinfrastruktur Axis2 unterstützt prinzipiell beliebige Kommunikationsmuster und ist nicht auf Request-Response oder Einwegkommunikation beschränkt. Auch asynchrone Kommunikation wird in vollem Umfang unterstützt Einfacheres Deployment von Services Das Deployment eigener Web Services ist mit Axis2 sehr viel einfacher geworden. Services werden in Axis2 zusammen mit einer Konfigurationsdatei zu einem Archiv zusammengefasst und mithilfe der gegenüber Axis 1.x deutlich erweiterten webasierten Administrationsoberfläche in Betrieb genommen und verwaltet. Ferner ist mithilfe so genannter Custom Deployer die Programmierung eigener Deployment-Strategien einfach möglich. Als Beispiel wird auch gleich der so genannte POJO Deployer mitgeliefert, mit dem sich (annotierte) Java-Klassen in JAR-Dateien ganz ohne Konfigurationsdatei recht einfach deployen lassen Bessere Unterstützung während der Entwicklung Für Anwendungsentwickler stehen nach wie vor Codegeneratoren zur Verfügung, mit deren Hilfe man ausgehend von WSDL-Beschreibungen Grundgerüste für Serviceimplementierungen und Proxy-Klassen für Clientanwendungen erzeugen kann. Um die Arbeit mit Axis2 noch weiter zu vereinfachen, bietet Axis2 zudem Plug-ins für Eclipse und IntelliJ IDEA, die Entwickler bei der Codegenerierung und bei der Paketierung von Web Services unterstützen. 30

30 Die Zukunft von Axis Erweitertes Handler-Konzept Mithilfe des Konzepts von Handlern war es bereits in Axis 1.x möglich, in die Verarbeitung von SOAP-Nachrichten einzugreifen und das Framework damit auf eigene Bedürfnisse abzustimmen bzw. um benötigte Funktionalitäten zu erweitern. In Axis2 wurde das Konzept um so genannte Phasen erweitert, die unterschiedliche Abschnitte der Nachrichtenverarbeitung darstellen. In diesem Zusammenhang können Regeln definiert werden, die beschreiben, welcher Phase ein Handler angehören soll und an welcher Position. Beispielsweise könnte man definieren, dass ein Handler immer an erster oder an letzter Stelle innerhalb einer Phase aktiviert werden soll. Ein oder mehrere Handler werden gemeinsam mit einer Konfigurationsdatei zu Erweiterungsmodulen zusammengefasst, die auf einfache Weise installiert und mit einzelnen oder mehreren Services verknüpft werden Bessere Unterstützung von aktuellen Standards In Bezug auf die zahlreichen neuen Web-Service-Spezifikationen ist Axis2 weitestgehend auf dem neuesten Stand. Neben SOAP 1.2, WSDL 1.1/2.0 und MTOM werden insbesondere auch die wichtigen SOAP-Erweiterungen WS-Addressing, WS-Security, WS- Reliable Messaging und WS-Policy unterstützt, mit deren Hilfe Web Services auch in komplexeren Szenarien eingesetzt werden können. Die Unterstützung dieser Standards ist überdies wichtig für die Interoperabilität mit Microsofts.NET und dessen Kommunikationskomponente WCF (Windows Communication Foundation). Das XML Data Binding wurde für Axis2 völlig neu entwickelt und heißt jetzt ADB (Axis Data Binding). Die Schnittstelle für Data Bindings wurde jedoch offen realisiert, sodass man ADB bei Bedarf durch andere Lösungen wie zum Beispiel XML Beans oder JiBX ersetzen kann. Die Unterstützung von JAXB 2.x befindet sich nach wie vor in Entwicklung, ist nahezu abgeschlossen, wird aber immer noch als experimentielles Feature bezeichnet. Gleiches gilt, wie bereits erwähnt, für JAX-WS 2.0 (JSR 224) und Web Services Metadata (JSR 181). Für Axis 1.x sind dagegen keine neuen Features mehr geplant, sodass man allein aus diesem Grund über einen Umstieg auf Axis2 nachdenken sollte. 1.5 Die Zukunft von Axis2 Axis2 ist ein modernes, stabiles und sehr ausgereiftes Web-Service-Framework, das uneingeschränkt zur Verwendung empfohlen werden kann. Auch eine Migration von auf Axis 1.x basierenden Web Services auf Axis2 ist sinnvoll. Und obwohl Axis2 technologisch auf dem Stand der Zeit ist, gibt es schon Pläne für zukünftige Versionen. Zunächst sei erwähnt, dass derzeit keine erneute Neuimplementierung von Axis, so wie es bereits zweimal der Fall war, vorgesehen ist. Die hohe Flexibilität, Modularität und Offenheit der aktuellen Fassung spielt ihre Stärken beim Einsatz von Axis und bei seiner eigenen Weiterentwicklung voll aus und ist ein gutes Beispiel für eine gelungene Softwarearchitektur. JAX-WS ist auch für die Zukunftsentwicklung ein wichtiges Thema. Derzeit unterstützt Axis2 JAX-WS in der Version 2.0 weitgehend. Mittlerweile liegt JAX- WS jedoch schon in der Version 2.1 vor. Axis2 wird diese Version vermutlich in seiner nächsten Fassungen unterstützen, wahrscheinlich zusammen mit einer dann stabilen Integration des JAXB-Standards, der für JAX-WS von essenzieller Bedeutung ist. Java Web Services mit Apache Axis2 31

Java Web Services mit Apache Axis2 Entwickler

Java Web Services mit Apache Axis2 Entwickler Thilo Frotscher, Dapeng Wang, Marc Teufel Java Web Services mit Apache Axis2 Entwickler Vorwort 15 1 Einleitung 25 1.1 Entstehung 26 1.2 Unterstützte Standards 28 1.3 Was beinhaltet Axis2? 29 1.4 Warum

Mehr

Java Web Services mit Apache Axis2

Java Web Services mit Apache Axis2 Thilo Frotscher, Marc Teufel, Dapeng Wang Java Web Services mit Apache Axis2 ntwickier Vorwort 13 Wer sollte dieses Buch lesen? 14 Aufbau 14 Wichtiger Hinweis zu den Listings 16 Feedback 16 Danksagung

Mehr

Java Web Services mit Apache Axis2

Java Web Services mit Apache Axis2 Thilo Frotscher, Marc Teufel, Dapeng Wang Java Web Services mit Apache Axis2 jntwickier.press Vorwort 13 Wer sollte dieses Buch lesen? 14 Aufbau 14 Wichtiger Hinweis zu den Listings 16 Feedback 16 Danksagung

Mehr

Axis2, CXF und JAX-WS RI im Vergleich

Axis2, CXF und JAX-WS RI im Vergleich Axis2, CXF und JAX-WS RI im Vergleich predic8 GmbH Moltkestr. 40 53173 Bonn Tel: (0228)5552576-0 www.predic8.de info@predic8.de Inhalt Einführung Die Standards: JAXB, JWS, JAX-WS Axis2 CXF JAX-WS RI /

Mehr

Gradle. Ein kompakter Einstieg in modernes Build-Management. Joachim Baumann. Joachim Baumann, Gradle, dpunkt.verlag, ISBN

Gradle. Ein kompakter Einstieg in modernes Build-Management. Joachim Baumann. Joachim Baumann, Gradle, dpunkt.verlag, ISBN D3kjd3Di38lk323nnm Joachim Baumann Gradle Ein kompakter Einstieg in modernes Build-Management Joachim Baumann joachim.baumann@codecentric.de Lektorat: René Schönfeldt Copy Editing: Sandra Gottmann, Münster-Nienberge

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

Spring Dynamic Modules for OSGi Service Platforms

Spring Dynamic Modules for OSGi Service Platforms Gerd Wütherich freiberuflicher Softwarearchitekt Spring Dynamic Modules for OSGi Service Platforms Server Anwendungen mit Spring und Eclipse Equinox Agenda OSGi Technologie: OSGi Technologie im Überblick

Mehr

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

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

Mehr

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

Friedrich. Kiltz. Java Webservices

Friedrich. Kiltz. Java Webservices Friedrich Kiltz Java Webservices Symbole.NET 379 @Action 279, 423 @Addressing 372 @BindingType 416 @Consumes 87 @Context 82, 88 @CookieParam 82, 88 @DefaultValue 82, 88 @DELETE 87 @Encoded 82, 88 @Endpoint

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

Softwareentwicklung mit Enterprise JAVA Beans

Softwareentwicklung mit Enterprise JAVA Beans Softwareentwicklung mit Enterprise JAVA Beans Java Enterprise Edition - Überblick Was ist J2EE Java EE? Zunächst mal: Eine Menge von Spezifikationen und Regeln. April 1997: SUN initiiert die Entwicklung

Mehr

Entwicklung von Web-Anwendungen auf JAVA EE Basis

Entwicklung von Web-Anwendungen auf JAVA EE Basis Entwicklung von Web-Anwendungen auf JAVA EE Basis Java Enterprise Edition - Überblick Prof. Dr. Bernhard Schiefer Inhalt der Veranstaltung Überblick Java EE JDBC, JPA, JNDI Servlets, Java Server Pages

Mehr

Spring Dynamic Modules for OSGi Service Platforms

Spring Dynamic Modules for OSGi Service Platforms Gerd Wütherich freiberuflicher Softwarearchitekt Spring Dynamic Modules for OSGi Service Platforms Server Anwendungen mit Spring und Eclipse Equinox Agenda OSGi Technologie: OSGi Technologie im Überblick

Mehr

Java Web Services. Seminarunterlage. Version 4.03 vom

Java Web Services. Seminarunterlage. Version 4.03 vom Seminarunterlage Version: 4.03 Version 4.03 vom 2. Januar 2017 Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen sind Warenzeichen

Mehr

Kapitel WT:VI (Fortsetzung)

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

Mehr

Jochen Bartlau. List & Label. schnell + kompakt

Jochen Bartlau. List & Label. schnell + kompakt Jochen Bartlau List & Label Jochen Bartlau List & Label ISBN 978-3-939084-68-6 2007 entwickler.press, ein Imprint der Software & Support Verlag GmbH 1. Auflage, 2007 http://www.entwickler-press.de http://www.software-support.biz

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

6 Zusammenschaltung von Web-Services

6 Zusammenschaltung von Web-Services 6 Zusammenschaltung von Web-Services Komposition von Web-Services zu neuen Web-Services abstrakte Beschreibung der internen Struktur Workflow-Konzept abstrakte Beschreibung der Zusammenhänge und Interaktionen

Mehr

JAX-RS 2.0 REST mit Java EE 7

JAX-RS 2.0 REST mit Java EE 7 Enterprise Java, Web Services und XML JAX-RS 2.0 REST mit Java EE 7 Java User Group Darmstadt 13. Juni 2013 http://www.frotscher.com thilo@frotscher.com Vorstellung Freiberuflicher Softwarearchitekt und

Mehr

Apache AXIS Architektur

Apache AXIS Architektur In diesem Kapitel Um was geht s? Axis Architektur Eine Übersicht Subsysteme Message Flow Handlers und Chains (Handler Ketten) Message Contexts Adminstratives Subsystem SOAP Message Modell Subsystem Message

Mehr

Erfahrungen und Erkenntnisse. Klaus Richarz, HBT GmbH

Erfahrungen und Erkenntnisse. Klaus Richarz, HBT GmbH Erfahrungen und Erkenntnisse Klaus Richarz, HBT GmbH Java Enterprise Edition 5.0 JBoss Seam Konsequenzen für Realisierung Qualitätssicherung Build & Deployment Fazit & Empfehlungen JBoss Seam in Projekten,

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

Tobias Hauser. XML-Standards. schnell+kompakt

Tobias Hauser. XML-Standards. schnell+kompakt Tobias Hauser XML-Standards schnell+kompakt Tobias Hauser XML-Standards schnell+kompakt ISBN: 978-3-86802-236-0 2010 entwickler.press ein Imprint der Software & Support Media GmbH 2. vollständig aktualisierte

Mehr

Enterprise JavaBeans Überblick

Enterprise JavaBeans Überblick Enterprise JavaBeans Überblick 1. Überblick Java EE 5 und Komponententechnologien 3. Enterprise JavaBeans Architektur 4. Ressourcen Management und Primäre Services 5. Java Persistence: Entity Manager 6.

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

Dipl.-Inform. Arno Becker Dipl.-Inform. Marcus Pant

Dipl.-Inform. Arno Becker Dipl.-Inform. Marcus Pant Dipl.-Inform. Arno Becker ist bei der visionera GmbH verantwortlich für den Bereich»Mobile Lösungen«. Nach langjähriger Erfahrung mit Java ME beschäftigte er sich von Beginn an intensiv mit Android. Als

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

NetBeans Rich Client Platform. Anton Epple Göttingen, Source Talk Tage

NetBeans Rich Client Platform. Anton Epple Göttingen, Source Talk Tage NetBeans RCP Anton Epple Göttingen, 25.9.2008 Source Talk Tage Was ist eine Rich Client Platform? Framework zur Entwicklung von Desktop Applikationen Besteht aus: Anwendungslaufzeitumgebung ~ Vergleichbar

Mehr

Linux-Treiber entwickeln

Linux-Treiber entwickeln Linux-Treiber entwickeln Eine systematische Einführung in Gerätetreiber für den Kernel 2.6 von Jürgen Quade, Eva K Kunst überarbeitet Linux-Treiber entwickeln Quade / Kunst schnell und portofrei erhältlich

Mehr

Java Frameworks im Vergleich - ADF vs. Grails vs. Spring

Java Frameworks im Vergleich - ADF vs. Grails vs. Spring Java Frameworks im Vergleich - ADF vs. Grails vs. Spring Frank Szilinski esentri software GmbH Karlsruhe Schlüsselworte: ADF, Java, JEE, JSF, Grails, Spring, Open Source, Rapid Application Development

Mehr

CENIT SERVICEMANAGER Pluscard, Saarbrücken 26.11.2014. Dirk Günther, Produktmanager ECM R&D

CENIT SERVICEMANAGER Pluscard, Saarbrücken 26.11.2014. Dirk Günther, Produktmanager ECM R&D CENIT SERVICEMANAGER Pluscard, Saarbrücken 26.11.2014 Dirk Günther, Produktmanager ECM R&D Agenda Überblick Was ist neu Anwendungsfälle Migration Schulung Zusammenfassung 02.12.2014 2 Überblick Was ist

Mehr

Ein Vergleich zwischen SCA,JBI und WCF. Marcello Volpi

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

Mehr

Webinar: Einführung in ICEfaces

Webinar: Einführung in ICEfaces Webinar: Einführung in ICEfaces präsentiert von VOIP-Audio ist standardmässig aktiviert Alternatives Einwählen: +41 (0) 415 0008 65 ICESOFT TECHNOLOGIES INC ICESOFT Donnerstag, TECHNOLOGIES 26. März 2009

Mehr

Oracle Enterprise Scheduler (ESS) Unleashed Carsten Wiesbaum esentri AG Ettlingen Schlüsselworte Einleitung Oracle Enterprise Scheduler (ESS)

Oracle Enterprise Scheduler (ESS) Unleashed Carsten Wiesbaum esentri AG Ettlingen Schlüsselworte Einleitung Oracle Enterprise Scheduler (ESS) Oracle Enterprise Scheduler (ESS) Unleashed Carsten Wiesbaum esentri AG Ettlingen Schlüsselworte Automatisierung, Betrieb, Middleware Einleitung Der Oracle Fusion Middleware Stack beinhaltet eine leistungsstarke

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

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

Abb. 1: Schematische Architektur WebLogic-Server

Abb. 1: Schematische Architektur WebLogic-Server Forms 11g im Weblogic-Server Vertrautes in neuem Gewand Stephan La Rocca TEAM GmbH Paderborn Schlüsselworte: Oracle Weblogic Server, Forms 11g, Administration, Konfiguration, New Features. Einleitung Mit

Mehr

Architecture Blueprints

Architecture Blueprints Architecture Blueprints Daniel Liebhart, Peter Welkenbach, Perry Pakull, Mischa Kölliker, Michael Könings, Markus Heinisch, Guido Schmutz Ein Leitfaden zur Konstruktion von Softwaresystemen mit Java Spring,.NET,

Mehr

Reporting Lösungen für APEX wähle Deine Waffen weise

Reporting Lösungen für APEX wähle Deine Waffen weise Reporting Lösungen für APEX wähle Deine Waffen weise Dietmar Aust Opal-Consulting Köln Schlüsselworte: Oracle APEX, Reporting, JasperReports, PL/PDF, BI Publisher, OPAL:XP, Doxxy, Oracle Rest Data Services

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

Das Interceptor Muster

Das Interceptor Muster Das Interceptor Muster Implementierung des Interceptor Musters basierend auf OSGi and Friends Benjamin Friedrich Hochschule für Technik und Wirtschaft des Saarlandes Praktische Informatik - Entwurfsmuster

Mehr

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

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

Mehr

Webentwicklung mit Vaadin 7. Theoretische und praktische Einführung in Vaadin 7. Christian Dresen, Michael Gerdes, Sergej Schumilo

Webentwicklung mit Vaadin 7. Theoretische und praktische Einführung in Vaadin 7. Christian Dresen, Michael Gerdes, Sergej Schumilo Webentwicklung mit Vaadin 7 Theoretische und praktische Einführung in Vaadin 7 Christian Dresen, Michael Gerdes, Sergej Schumilo Agenda Allgemeines Architektur Client-Side Server-Side Vaadin UI Components

Mehr

Norm 230 Übertragung von Dateien

Norm 230 Übertragung von Dateien 1 Norm 230 Übertragung von Dateien 2 3 Release und Version Release 1, Version 1, vom 30. Juli 2007 4 5 Status Potentielle Konvention (PN) 6 7 Editor Sören Chittka, VOLKSWOHL BUND (soeren.chittka@volkswohl-bund.de)

Mehr

Java Web Services. Seminarunterlage. Version 4.02 vom

Java Web Services. Seminarunterlage. Version 4.02 vom Seminarunterlage Version: 4.02 Version 4.02 vom 4. September 2015 Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen sind Warenzeichen

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

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

JBoss AS 7. Installation, Konfiguration und Betrieb. Alexander Pacnik Karlsruhe, 13.12.2013

JBoss AS 7. Installation, Konfiguration und Betrieb. Alexander Pacnik Karlsruhe, 13.12.2013 JBoss AS 7 Installation, Konfiguration und Betrieb Alexander Pacnik Karlsruhe, 13.12.2013 Jboss 7 AS... worum es in diesem Vortrag geht. Einführung Installation Konfiguration Management Deployment Betrieb

Mehr

Komponentenorientierte Software-Entwicklung. Seite 1 / 42

Komponentenorientierte Software-Entwicklung. Seite 1 / 42 Seite 1 / 42 Wiederholung Messaging Java Messaging Service (JMS) Pub/Sub P2P Messaging Middleware XMPP-Protokoll Java API for XML-Processing (JAXP) Java API for XML-Binding Webservices / SOA Simple Object

Mehr

Ein Ausblick auf die neuen Features

Ein Ausblick auf die neuen Features Ein Ausblick auf die neuen Features Nutzerbeirat Formular-Management-System Bonn, den 20. Februar 2008 Henning Meinhardt CTO Entwicklung der Lucom Interaction Platform Basis ist FormsForWeb 2.5 Ausbau

Mehr

Java und XML/XML und Java. Mario Jeckle DaimlerChrysler Forschungszentrum Ulm mario.jeckle@daimlerchrysler.com mario@jeckle.de www.jeckle.

Java und XML/XML und Java. Mario Jeckle DaimlerChrysler Forschungszentrum Ulm mario.jeckle@daimlerchrysler.com mario@jeckle.de www.jeckle. Java und XML/XML und Java Mario Jeckle DaimlerChrysler Forschungszentrum Ulm mario.jeckle@daimlerchrysler.com mario@jeckle.de www.jeckle.de XML und Programmiersprachen... Java ist... Programmiersprache

Mehr

Release Notes SAPERION Version 7.1 SP 5

Release Notes SAPERION Version 7.1 SP 5 Release Notes SAPERION Version 7.1 SP 5 Copyright 016 Lexmark. All rights reserved. Lexmark is a trademark of Lexmark International, Inc., registered in the U.S. and/or other countries. All other trademarks

Mehr

Übersicht. Eclipse Foundation. Eclipse Plugins & Projects. Eclipse Ganymede Simultaneous Release. Web Tools Platform Projekt. WSDL Editor.

Übersicht. Eclipse Foundation. Eclipse Plugins & Projects. Eclipse Ganymede Simultaneous Release. Web Tools Platform Projekt. WSDL Editor. Eclipse WSDL-Editor Übersicht Eclipse Foundation Eclipse Plugins & Projects Eclipse Ganymede Simultaneous Release Web Tools Platform Projekt WSDL Editor Bug #237918 Eclipse Foundation Was ist Eclipse?

Mehr

5. Programmierschnittstellen für XML

5. Programmierschnittstellen für XML 5. Programmierschnittstellen für für Medientechnologen Dr. E. Schön Wintersemester 2015/16 Seite 146 Notwendigkeit: Programmierschnittstelle Zugriff auf -Daten durch Applikationen wiederverwendbare Schnittstellen

Mehr

Masterkurs Client/Server-Programmierung mit Java

Masterkurs Client/Server-Programmierung mit Java Masterkurs Client/Server-Programmierung mit Java Dietmar Abts Masterkurs Client/Server- Programmierung mit Java Anwendungen entwickeln mit Standard-Technologien 4. Auflage Dietmar Abts FB Wirtschaftswissenschaften

Mehr

Erfolgreicher Ums9eg auf Git

Erfolgreicher Ums9eg auf Git CONCEPT PEOPLE IT- TALK Ein Erfahrungsbericht Erfolgreicher Ums9eg auf Git René Preißel (etosquare) Nils Hartmann (Techniker Krankenkasse) VORSTELLUNG René Preißel Freiberuflicher SoGwarearchitekt, Entwickler

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

Eclipse und Java Einheit 06: Building Eclipse Projete mit Ant

Eclipse und Java Einheit 06: Building Eclipse Projete mit Ant Eclipse und Java Einheit 06: Building Eclipse Projete mit Ant Laith Raed Ludwig-Maximilians-Universität München Institut für Informatik: Programmierung und Softwaretechnik Prof.Wirsing Inhaltsverzeichnis

Mehr

Remote Eclipse RCP Management

Remote Eclipse RCP Management Remote Eclipse RCP Management Diplomarbeit Durchgeführt in Zusammenarbeit mit Deutsches Elektronen-Synchrotron DESY 1. Betreuer: Prof. Dr. Züllighoven 2. Betreuer: Prof. Dr. Lamersdorf Eugen Reiswich 09.12.2008

Mehr

Eclipse und EclipseLink

Eclipse und EclipseLink Eclipse und EclipseLink Johannes Michler Johannes.Michler@promatis.de PROMATIS, Ettlingen Zugriff auf Oracle Datenbanken aus Eclipse RCP Anwendungen via EclipseLink 18.09.2009 1 Gliederung Eclipse als

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

OO Programmiersprache vs relationales Model. DBIS/Dr. Karsten Tolle

OO Programmiersprache vs relationales Model. DBIS/Dr. Karsten Tolle OO Programmiersprache vs relationales Model Vorgehen bisher Erstellen eines ER-Diagramms Übersetzen in das relationale Datenmodell Zugriff auf das relationale Datenmodell aus z.b. Java ER rel. Modell OO

Mehr

5. Programmierschnittstellen für XML

5. Programmierschnittstellen für XML 5. Programmierschnittstellen für Grundlagen Dr. E. Schön FH Erfurt Sommersemester 2015 Seite 135 Programmierschnittstelle Notwendigkeit: Zugriff auf -Daten durch Applikationen wiederverwendbare Schnittstellen

Mehr

Web Services Security

Web Services Security Web Services Security Dokumentation zu den Beispielen Vortrag vom 11.12.02 Svetoslav Draganov Einrichtung der Entwicklungsumgebung unter Windows NT/2000/XP 1. Herunterladen aller Packages - VeriSign Trust

Mehr

SOAP und WSDL in der Praxis. Wie wird SOAP/WSDL verwendet? Heutige Vorlesung. .net. und Apache Axis

SOAP und WSDL in der Praxis. Wie wird SOAP/WSDL verwendet? Heutige Vorlesung. .net. und Apache Axis Heutige Vorlesung SOAP und WSDL in der Praxis Aufbau von WSDL-Beschreibungen Protokoll-Bindungen in WSDL Google-WSDL lesen und erweitern können Vor- und Nachteile von WSDL heute Wie wird SOAP/WSDL verwendet?.net,

Mehr

E-Business Architekturen

E-Business Architekturen E-Business Architekturen Übung 3b Entwicklung eigener Service-Angebote 01.03.2015 Prof. Dr. Andreas Schmietendorf 1 Ziele der Übung Möglichkeiten zur Serviceimplementierung (ggf. auch Cloud) Umgang mit

Mehr

Etablierung serviceorientierter Architekturen mit Web Services

Etablierung serviceorientierter Architekturen mit Web Services Etablierung serviceorientierter Architekturen mit Web Services Vorlesung im (Entwicklung von Serviceangeboten) 1 Agenda Einsatzbereiche von Web Service basierten Angeboten Übersicht zur Java-System Application

Mehr

Erste Erfahrungen mit NSASJ anhand der OmnivoBase Portierung. September 2013

Erste Erfahrungen mit NSASJ anhand der OmnivoBase Portierung. September 2013 GTUG Java Arbeitskreis Erste Erfahrungen mit NSASJ anhand der OmnivoBase Portierung September 2013 Jürgen Depping CommitWork GmbH Seite 1 Info@CommitWork.de www.commitwork.de Agenda Was ist OmnivoBase?

Mehr

Java 2, Enterprise Edition Einführung und Überblick

Java 2, Enterprise Edition Einführung und Überblick Universität aiserslautern AG Datenbanken und Informationssysteme Seminar Datenbank-Aspekte des E-Commerce Java 2, Enterprise Edition Einführung und Überblick m_husema@informatik.uni-kl.de Vortragsinhalte

Mehr

Open Source. Hendrik Ebbers 2015

Open Source. Hendrik Ebbers 2015 Open Source Hendrik Ebbers 2015 Open Source About me Hendrik Ebbers Lead of JUG Dortmund Java Architect @ Canoo Engineering AG JavaOne Rockstar, Java Expert Group Member Speaker, blogger & author Engineering

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

HP Service Manager 7 mit ITSM Implementation Accelerator (IIA) ITIL V3 out of the box?

HP Service Manager 7 mit ITSM Implementation Accelerator (IIA) ITIL V3 out of the box? HP Service Manager 7 mit ITSM Implementation Accelerator (IIA) ITIL V3 out of the box? 04. November 2008 ITC GmbH 2008 Agenda Was bringt der HP Service Manager 7? Überblick SM7 Module Neue / zusätzliche

Mehr

informatik ag IT mit klarer Linie S i e b e l O p e n U I

informatik ag IT mit klarer Linie S i e b e l O p e n U I informatik ag IT mit klarer Linie S i e b e l O p e n U I und Siebel auf mobilen Geräten www.ilume.de Siebel Open UI und Siebel auf mobilen Geräten Die Anforderungen an unternehmensweite Softwarelösungen

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

Vom lokalen Build zum Deployment

Vom lokalen Build zum Deployment Vom lokalen Build zum Deployment International PHP Conference Manuel Pichler 12.10.2011 Vom lokalen Build zum Deployment 1 / 36 Über mich Diplominformatiker Mehr als 10 Jahre Erfahrung im PHP-Umfeld Autor

Mehr

ENTWICKLUNGS- UND LAUFZEITUMGEBUNG DER CSE: ECLIPSE UND JBOSS. Piotr Kasprzak

ENTWICKLUNGS- UND LAUFZEITUMGEBUNG DER CSE: ECLIPSE UND JBOSS. Piotr Kasprzak ENTWICKLUNGS- UND LAUFZEITUMGEBUNG DER CSE: ECLIPSE UND JBOSS Piotr Kasprzak Agenda Laufzeitumgebung Java EE (J2EE) Motivation APIs / Technologien JBoss Entwicklungsumgebung Eclipse Ausblick Java EE -

Mehr

WebServices -reloaded-

WebServices -reloaded- WebServices -reloaded- Jan Krüger Bielefeld Bioinformatics Service Institute of Bioinformatics CeBiTec Bielefeld University jkrueger@techfak.uni-bielefeld.de 3 Juli 2007 Übersicht Motivation Was sind WebServices?

Mehr

Christoph Mathas. SOA intern. » Praxiswissen zu Service-orientierten IT-Systemen HANSER

Christoph Mathas. SOA intern. » Praxiswissen zu Service-orientierten IT-Systemen HANSER Christoph Mathas SOA intern» Praxiswissen zu Service-orientierten IT-Systemen HANSER Inhalt Vorwort XI 1 Einleitung 1 1.1 Wem nützt dieses Buch? 2 1.2 Weshalb dieses Buch? 3 1.3 Die Kapitelstruktur 4 1.4

Mehr

Zwischenbericht Diplomarbeit Entwicklung einer Laufzeitumgebung für Komponenten mit Ressourcenanforderungen

Zwischenbericht Diplomarbeit Entwicklung einer Laufzeitumgebung für Komponenten mit Ressourcenanforderungen Zwischenbericht Diplomarbeit Entwicklung einer Laufzeitumgebung für Komponenten mit Ressourcenanforderungen Brit Engel Überblick Beschreibung Aufgabenstellung Entwurf der Komponenten Verwaltung Funktionsbereiche

Mehr

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

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

Mehr

Masterkurs Verteilte betriebliche Informationssysteme

Masterkurs Verteilte betriebliche Informationssysteme Peter Man dl Masterkurs Verteilte betriebliche Informationssysteme Prinzipien, Architekturen und Technologien Mit 196 Abbildungen STUDIUM VIEWEG+ TEUBNER 1 Einführung in verteilte Systeme 1 1.1 Definitionen

Mehr

Version 1.2.0. smart.finder SDI. What's New?

Version 1.2.0. smart.finder SDI. What's New? Version 1.2.0 smart.finder SDI What's New? 1 Neue Funktionen in Version 1.2.0 3 2 Neue Funktionen in Version 1.1 3 Neue Funktionen in Version 1.2.0 Neue Funktionen Unterstützung von Java 8 Die aktuelle

Mehr

JAXB 2.0. Ein Programmiertutorial für die Java Architecture for XML Binding. von Samuel Michaelis, Wolfgang Schmiesing. 1. Auflage

JAXB 2.0. Ein Programmiertutorial für die Java Architecture for XML Binding. von Samuel Michaelis, Wolfgang Schmiesing. 1. Auflage JAXB 2.0 Ein Programmiertutorial für die Java Architecture for XML Binding von Samuel Michaelis, Wolfgang Schmiesing 1. Auflage JAXB 2.0 Michaelis / Schmiesing schnell und portofrei erhältlich bei beck-shop.de

Mehr

Team Foundation Server & Ranorex Workshop

Team Foundation Server & Ranorex Workshop Tag 1: Testing Fundamentals Der Kurs (Tag) zeigt wie Software Tests in einem "best practice" Ansatz gestaltet werden können. Referenzierend auf den ISTQB gibt es ein "Best off" aus der Gestaltung, Abwicklung,

Mehr

ARTS Server 3.5. Produktbeschreibung. Uptime Services AG

ARTS Server 3.5. Produktbeschreibung. Uptime Services AG Uptime Services AG Brauerstrasse 4 CH-8004 Zürich Tel. +41 44 560 76 00 Fax +41 44 560 76 01 www.uptime.ch ARTS Server 3.5 Produktbeschreibung Uptime Services AG Inhaltsverzeichnis 1 Einleitung... 2 2

Mehr

OSGi-basierte Webapplikationen Ein Erfahrungsbericht

OSGi-basierte Webapplikationen Ein Erfahrungsbericht OSGi-basierte Webapplikationen Ein Erfahrungsbericht Zürich, 18. März 2009 Pascal Nüesch, Software Engineer 1 www.namics.com Zu meiner Person» Lehre als Elektroniker mit Schwerpunkt SW-Entwicklung» Java

Mehr

Open Source IDE - eclipse ETIS SS04

Open Source IDE - eclipse ETIS SS04 Open Source IDE - eclipse ETIS SS04 Gliederung Motivation Geschichte Architektur Platform Runtime Eclipse Platform Java Development Tools (JDE) Plugin Development Environment (PDE) Zusammenfassung 2 Motivation

Mehr

Programmierung von Client/Server- Anwendungen

Programmierung von Client/Server- Anwendungen Programmierung von Client/Server- Anwendungen Komponenten des Web-Containers (Java EE) SoSe2015 Prof. Dr. Andreas Schmietendorf 1 Übersicht zur Vorlesung Entwicklung der Java Enterprise Edition Servlets,

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

OSS/J als Basis für Enterprise Application Integration

OSS/J als Basis für Enterprise Application Integration OSS/J als Basis für Enterprise Application Integration Geschäftsprozessgesteuerte EAI im Telekommunikationsbereich r A business of PwC Agenda OSS-Architekturen als Integrationsherausforderung OSS/J als

Mehr

MO 27. Aug. 2007, 17:00 UHR JAVA FRAMEWORKS TIPPS VON PROFI-GÄRTNERN GEGEN WILDWUCHS

MO 27. Aug. 2007, 17:00 UHR JAVA FRAMEWORKS TIPPS VON PROFI-GÄRTNERN GEGEN WILDWUCHS 072 MO 27. Aug. 2007, 17:00 UHR JAVA FRAMEWORKS TIPPS VON PROFI-GÄRTNERN GEGEN WILDWUCHS Die Flut von Open Source Frameworks ist vergleichbar mit dem Markt von kommerziellen Produkten Es gibt eine Vielzahl

Mehr

Überblick über die Roblet -Technik

Überblick über die Roblet -Technik Überblick über die Roblet -Technik Hagen Stanek gefördert durch Agenda Teil 1: Motivation, Einführung Teil 2: Beispiel-Vorführung Teil 3: Anwendungen, Zusammenfassung 2 Teil 1 Motivation, Einführung 3

Mehr

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

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

Mehr

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

Universal Mobile Gateway V4

Universal Mobile Gateway V4 PV-Electronic, Lyss Universal Mobile Gateway V4 Autor: P.Groner Inhaltsverzeichnis Allgemeine Informationen... 3 Copyrightvermerk... 3 Support Informationen... 3 Produkte Support... 3 Allgemein... 4 Definition

Mehr

Isabel Arnold CICS Technical Sales Germany Isabel.arnold@de.ibm.com. z/os Explorer. 2014 IBM Corporation

Isabel Arnold CICS Technical Sales Germany Isabel.arnold@de.ibm.com. z/os Explorer. 2014 IBM Corporation Isabel Arnold CICS Technical Sales Germany Isabel.arnold@de.ibm.com z/os Explorer Agenda Introduction and Background Why do you want z/os Explorer? What does z/os Explorer do? z/os Resource Management

Mehr

Nashville (V7) Peter Waschk. März 1999. Director Technology SAS Institute

Nashville (V7) Peter Waschk. März 1999. Director Technology SAS Institute Nashville (V7) März 1999 Peter Waschk Director Technology SAS Institute Agenda Status V7 weitere Vorgehensweise Technologie im Überblick Nashville Skalierbarkeit Offenheit Das Nashville Projekt Nashville

Mehr

Oracle Weblogic Administration Grundlagen

Oracle Weblogic Administration Grundlagen Oracle Weblogic Administration Grundlagen Seminarunterlage Version: 1.07 Version 1.07 vom 14. September 2015 Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen

Mehr