BiPRO und PHP Marcel Maaß

Ähnliche Dokumente
Definition Web Service

Java und XML 2. Java und XML

Wiederholung: Beginn

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

Grundlagen der Web-Entwicklung INF3172

Norm 225 Service Definition mit WSDL

Auszug aus JAX-WS Folien

Architektur von SOAP basierten Web Services

Prozessbaukasten der BiPRO

Norm 240 Versionierung

SOA, Webservices und SOAP für Schnelleinsteiger

Angewandte Softwareentwicklung Serialisierung

Schneller, höher, weiter Die erweiterten Amt24-Schnittstellen. Klaus-Peter Geyer (T-Systems)

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

Unified-E Standard WebHttp Adapter

Mobile und Verteilte Datenbanken

Verteilte Systeme: Übung 4

Prozessbaukasten der BiPRO

Zeiterfassung für Projekte. SOAP-Schnittstelle. Juli 2013 Version 4.7

Team Developer 7.0. Teil 1. MD Roadshow 2016

Einstieg in die Informatik mit Java

XSD - XML Schema Definition

SOAP Schnittstelle von SHAB/Simap/KAB ZH. Version 3.0

Multimedia im Netz. Übung zur Vorlesung. Ludwig-Maximilians-Universität Wintersemester 2010/2011

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

VVA Webservice Online Lieferbarkeits-Abfrage

3-schichtige Informationssystem-Architektur

XML-RPC zur Backend- Kommunikation in einem mobilen SBB-Projekt

Spezifikation DPD und primetime WebService Routenberechnung Gültig für Paketversender in Österreich. Version 3.3.0

ebusiness Übung 3a Spezifikation und Nutzung von Web-APIs (Services) Prof. Dr. Andreas Schmietendorf 1

XML-Webservices & SOAP

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

<Insert Picture Here> BI Publisher Berichte in eigene Anwendungen integrieren

Java Server Pages (JSP)

Überblick. Klassen Optionale Typen DOM. Optionale Parameter Klassen. Einführung. 2 Motivation 3 Werkzeuge 4 Demonstration 5 Dart

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke

XML und SOAP Einführung und Grundlagen

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

SMS-API. Sloono Schnittstellenbeschreibung. Version 1.2 Stand

Service Engineering. Einbindung von Web Services in eine Java-Anwendung. Prof. Dr. Andreas Schmietendorf 1. SoSe Service Engineering

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

Einstieg in die Informatik mit Java

Webservices Ein Vortrag von:

Spezifikation DPD und primetime WebService Shopfinder Gültig für Paketversender in Österreich. Version 3.3.0

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

JSP Direktiven. Präprozessor-Anweisungen, die in die JSP-Datei eingebettet sind und vor dem eigentlichen Übersetzungsvorgang ausgeführt JSP

1 Modellierung einer Uhr

BiPRO-Anbindung unter.net/wcf

II.4.5 Generische Datentypen - 1 -

Remote Method Invocation

Ferhat Ayaz. XML mit C++

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)

Semistrukturierte Daten

Enterprise Application Integration Erfahrungen aus der Praxis

Nutzung von REST Clients für Allyouneed Marktplatz

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

Wolkig bis heiter. Andreas Wismann WHEN OTHERS. APEX als Drehkreuz für Web Service-Anwendungen

14. Java Klassen. Klassen (Java) vs. Records (Pascal) Klassen - Konzeptuell. Klassen - Technisch

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen

2. WWW-Protokolle und -Formate

Java Web Services. Seminarunterlage. Version 4.03 vom

Web Engineering-Seminar Methoden zur Web Modellierung: Object-oriented Hypermedia Method (OO-H)

JAXR Java API for XML Registries. Jasmin Hatteh

Norm 410 Security Token Service

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

Deklaration einer Klasse Innere innerhalb Klassen einer in Ja anderen v a Klasse

JUnit 4 Tutorial. Wolfgang Stöttinger

Einführung in C# Teil 1. Matthias Nübling

Norm 440 Externe Navigation in VU-Portale

Tipps und Hinweise zum Bezug der Beitragssatzdatei V5.0

Die datenbanken24 SOAP Schnittstelle ermöglicht den automatisierten Zugriff auf Ihre datenbanken24.de Cloud-Application. Sie können über diese API:

Remote Method Invocation

Desktop Management Interface und andere Initiativen der DMTF

Servlet-zentrierte Architektur von Web-Anwendungen mit Java Servlets, Java Server Pages (JSPs) und Java Beans

SOA. Prof. Dr. Eduard Heindl Hochschule Furtwangen Wirtschaftsinformatik

Axis2, CXF und JAX-WS RI im Vergleich

5. Übung zur Vorlesung Service-orientierte Architekturen

Repetitorium Informatik (Java)

SmallTalk - Eine kurze Einführung

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

Die Unified Modeling Language (UML)

XML-RPC, SOAP und Web Services. Jörn Clausen

Programmieren von Webinformationssystemen

Wie funktionieren OPC UA Companion Specifications

C++ - Objektorientierte Programmierung Vererbung

Dynamische Webseiten mit PHP. Oder: LAMP - The open way

Grundlagen der Informatik 2

Webservices. Grundlagen, Beispiel, Tomcat, Apache Axis

Fehlercodes an der Maschine

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0

Transkript:

BiPRO und PHP Marcel Maaß MM Newmedia

Warum eigentlich PHP? Weil BiPRO SOAP basiert ist Das Simple Object Access Protocoll (SOAP) stützt sich auf XML. XML ist laut Definition plattform- und implementationsunabhängig. Somit ist jede Programmiersprache, die XML interpretieren kann, für SOAP geeignet. Weil PHP mit aktivierter libxml ausgeliefert wird Die Programmiersprache PHP wird standardmäßig mit aktivierter libxml Erweiterung ausgeliefert. Somit sind alle Voraussetzung für die Interpretation von XML gegeben. 2

Bevor wir mit PHP loslegen Grundsätzliche Planung und Gedanken Objektorientierte Umsetzung der BiPRO Norm, um die Wiederverwendbarkeit der einzelnen Datenobjekte zu erhöhen Keine Verwendung von XML in String Form Einfach mal nicht von den gelieferten Beispielen der Provider verwirren lassen XML wird vom SoapClient oder SoapServer automatisch erstellt. Die Definition der Datentypen in Form von Objekten ist ausreichend. Grundsatz der Vererbung in einer objektorientierten Umgebung 3

Bevor wir mit PHP loslegen Gelieferte Daten des Providers überprüfen Ist eine eventuell gelierferte URL zur WSDL Datei überhaupt erreichbar? Sind beispielhafte Requests und Responses vorhanden? Liegen alle XSD Dateien vor? Super wichtig, um eventuell von der BiPRO Norm abweichende Datentypen zu ermitteln Ausreichend Kaffee am Start? LOS GEHT S! 4

Der PHP Soap Client Initialisierung Einfache Initialisierung des Soap Clients $oclient = new \SoapClient( $swsdl, ); [ ] 'trace' => true, 'exception' => true, 'cache_wsdl' => WSDL_CACHE_NONE, 'compression' => SOAP_COMPRESSION_ACCEPT SOAP_COMPRESSION_GZIP, 'soap_version' => SOAP_1_2, 5

Probleme bei der Initialisierung Einhaltung von Web Standards SOAP-ERROR: Parsing Schema: can t import schema from http://www.w3.org/tr/xmldsig-core/xmldsig-core-schema.xsd W3C Delay auf Definitionen / Excessive DTD Traffic (Quelle: https://www.w3.org/blog/systeam/2008/02/08/w3c_s_excessive_dtd_traffic/) SoapClient Option user_agent ist keine Lösung Delay wird trotzdem eingehalten Lösung: WSDL Datei überarbeiten und Definitionen sowie WSDL lokal Nachteile: Änderungen seitens des Providers bekommen wir nicht mit 6

Weitere zu erwartende Probleme Internal Server Error Der Provider liefert einfach keine detaillierten Informationen zu Fehlern Hier hilft nur der Kontakt zum Provider und die Auskunft über eventuelle Server Logs seitens des Providers, was ziemlich langwierig und aufwendig ist. 7

Datentypen als Objekte Benutzt einfach simple Datenobjekte Beispiel UsernameToken Knoten für STS class UsernameToken { protected $Username; protected $Password; } public function setusername($susername) { $this->username = $susername; } public function setpassword($spassword) { $this->password = $spassword; } Complex Types sind immer PHP Klassen 8

Übergabe an den Soap Client Datenobjekte als SoapVar Beispiel UsernameToken Knoten für STS $ousernametokenvar = new \SoapVar( $ousernametoken, SOAP_ENC_OBJECT, null, 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wsswssecurity-secext-1.0.xsd', 'UsernameToken', 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wsswssecurity-secext-1.0.xsd' ); $oresult = $oclient->requestsecuritytoken($osoapvar); 9

Attribute für Datenobjekte Beispiel Version Attribut class StatusRequest { public $Version = '1.0.0.1'; // Attribut public $Status; } class Status { public $ProzessID = 0; } Resultat <ns1:request Version="1.0.0.1"> <ns1:status> <ns1:prozessid>1234</ns1:prozessid> </ns1:status> </ns1:request> 10

SoapClient mit Attributen SoapClient mit Classmap ist die Lösung $oclient = new \SoapClient( $swsdl, [ ] 'trace' => true, 'exception' => true, 'classmap' => ['Request' => 'StatusRequest'] ); $oparams = new StatusRequest(); $oparamssoapvar = new \SoapVar($oParams, SOAP_ENC_OBJECT, ); $oclient-> soapcall('getstatus', ['parameters' => ['Request' => $oparamssoapvar]]); 11

Fazit BiPRO mit PHP Provider sollten die W3C Restriktionen beachten Lokale WSDL Dateien funktionieren, sind aber nicht das Gelbe vom Ei Bei einer objektorientierten Umsetzung ist jeder BiPRO Datentyp ein Objekt Hohe Skalierbarkeit Abweichungen sind durch Vererbung leicht kompensierbar Allein der PHP SoapClient erstellt das XML Schema SoapVar und die Classmap Option beachten Attribute anhand der zugewiesenen Namespaces / XSD Definitionen Nachteil Geschwindigkeit von SOAP Requests 12

BiPRO und PHP Vielen Dank für Ihre Aufmerksamkeit. Marcel Maaß MM Newmedia