schnittstellen und web-services
DESCRIPTION
Zwei Software-Komponenten brauchen eine Schnittstelle. Leider ist dieses Szenario in vielen Fällen problembehaftet. Die Gründe sind vielfältig, liegen aber oft nicht an der technischen Umsetzung, sondern an der Konzeption, der Performance, der Verfügbarkeit und anderem. Um das zu vermeiden, müssen konkrete Antworten auf folgende Fragen her: Konzeption der Schnittstelle, Performance-Aspekte, Sicherheits-Aspekte, Transport-Layer, Architektur (SOAP, REST), Datenformat (JSON, XML), Change ManagementTRANSCRIPT
7 goldene Regeln für den Aufbau eines funktionalen Interfaces
Ivan Schwab-Germann / Intersim AG
Mai 2012 © Ivan Schwab-Germann - Intersim AG
Agenda
Konzeption
Umsetzung
Performance Sicherheit Architektur / Datenformat Aufgabe
Change Mgt
Thema: Schnittstellen im serviceorientierten Umfeld
Mai 2012 © Ivan Schwab-Germann - Intersim AG
Agenda
Konzeption
Umsetzung
Performance Sicherheit Architektur / Datenformat Aufgabe
Change Mgt
Thema: Schnittstellen im serviceorientierten Umfeld
Mai 2012 © Ivan Schwab-Germann - Intersim AG
Aufgabenstellung (Problemstellung)
Heterogene Netzwerkprotokolle
Heterogene Schnittstellen
Mangelnde Konnektivität
Heterogene Datenstrukturen
Fehlende (ungenügende) Dokumentationen
Fehlendes Know-How
Mai 2012 © Ivan Schwab-Germann - Intersim AG
Aufgabenstellung (Problemstellung)
ERP-System E-Shop
Internet
Stammdaten
Auftragsdaten
IDOC IDOC Conn.
Format?
Konnektivität?
+ Produkt- Verfügbarkeit + Rabattierung / Nettopreise + Aussendienst-Verantwortliche + Getätigte Bestellungen + Vorbestellungen + Kundenstatus
Mai 2012 © Ivan Schwab-Germann - Intersim AG
Agenda
Konzeption
Umsetzung
Performance Sicherheit Architektur / Datenformat Aufgabe
Change Mgt
Thema: Schnittstellen im serviceorientierten Umfeld
Mai 2012 © Ivan Schwab-Germann - Intersim AG
Konzeption der Schnittstelle
In die Konzeptionsphase gehören Definition der Zielsetzungen
Technische Spezifikationen
Regeln für die Daten-Validierung
Mengengerüst
Definition der Sicherheits-Standards
Prototyping (inkl. Datenübermittlung)
Performance- und Konsistenz-Tests
Nur ein Prototyping inkl. Review gibt die Garantie, dass alle dasselbe unter den Definitionen verstanden haben.
Mai 2012 © Ivan Schwab-Germann - Intersim AG
Konzeption der Schnittstelle
Aus der Praxis: SOAP/XML Web-Service (.NET) Definition der Zielsetzungen Technische Spezifikationen Regeln für die Daten-Validierung Definition der Sicherheits-Standards Prototyping Performance-Tests
Mai 2012 © Ivan Schwab-Germann - Intersim AG
(Firewall)
(partielle Übermittlung)
(Records einzeln)
(kein Proxy)
IST: Web-Service live, Testing
Erwartungen Resultat Sicherheit (https)
Dateninhalt All data
Performance
Datenformate
Konzeption der Schnittstelle
Nie mehr ohne Prototyping
Mai 2012 © Ivan Schwab-Germann - Intersim AG
Agenda
Konzeption
Umsetzung
Performance Sicherheit Architektur / Datenformat Aufgabe
Change Mgt
Thema: Schnittstellen im serviceorientierten Umfeld
Mai 2012 © Ivan Schwab-Germann - Intersim AG
Performance-Aspekte
Was gilt es zu berücksichtigen Datenmenge (Bytes)
Datendurchsatz
Daten-Granulierung (Arrays)
Aufruf: 0.2-0.4 Sekunden (Footprint ca. gleich wie HTTP-Aufruf)
HTTPS vs. HTTP?
Mai 2012 © Ivan Schwab-Germann - Intersim AG
Performance-Aspekte
Real-Time: Wenig Aufrufe i.d.R. besser Asynchron: Höhere Granulierung
Welche Ansätze gibt es Grosse Datenmengen und kleiner Datendurchsatz feine
Granulierung, Binaries auslagern, asynchrone Übermittlung
Viele Records Array-Unterstützung
Real-Time Aufruf: möglichst nur ein Aufruf (0.2-0.4 s initial)
Öffentliche Daten HTTP anstatt HTTPS
Stabilität gefordert feine Granulierung
Mai 2012 © Ivan Schwab-Germann - Intersim AG
Performance-Aspekte
Aus der Praxis:
Zugriffsgranulierung
WS Business Object
WS Security Token
Proxy
Request
Request+Token
Token
Data
Array Unterstützung
Mai 2012 © Ivan Schwab-Germann - Intersim AG
Agenda
Konzeption
Umsetzung
Performance Sicherheit Architektur / Datenformat Aufgabe
Change Mgt
Thema: Schnittstellen im serviceorientierten Umfeld
Mai 2012 © Ivan Schwab-Germann - Intersim AG
Intermezzo Architektur
SOAP / XML REST
Grosse Freiheit bei der Umsetzung
Overhead durch XML
XML Aufruf
XML Rückgabedaten
Client unabhängig
keine Anwendungs-funktionalität auf Ressourcen
URL basierend
einfacher Javascript Aufruf
Simple Object Access Protocol Representational State Transfer
Mai 2012 © Ivan Schwab-Germann - Intersim AG
Intermezzo Architektur
Simple Object Access Protocol Representational State Transfer
SOAP Envelope
SOAP Header
SOAP Body
Content (XML)
Content
HTTP-Call
HTTP-Call
Mai 2012 © Ivan Schwab-Germann - Intersim AG
Sicherheits-Aspekte
Network Router Firewall Punkt-Punkt
Verbindung
Server (Host) Patches Antivirus Access Mgt Verbindungs-
verschlüsselung (HTTPS)
… mit Client Zertifikat
Interface Applikation Paketverschlüsselung
(SOAP – Security) Authentifizierung Security Token
Mai 2012 © Ivan Schwab-Germann - Intersim AG
Nur SOAP Authentifizierung SOAP Security
SOAP Envelope
Sicherheitsaspekte
Content
HTTPS mit Client Zertifikat Punkt-Punkt
Security ganz gross
Service Konsument
Security Service
Mai 2012 © Ivan Schwab-Germann - Intersim AG
Praxis-Empfehlungen: Security wo nötig
Wenn möglich: Punkt-Punkt Verbindung
SOAP bietet erhöhte Sicherheit
SOAP Security nur bei hohen Anforderungen
Sicherheitsaspekte
Wenn erhöhte Sicherheit gefordert wird, ist SOAP mit Security-Token Konzept zu empfehlen.
Mai 2012 © Ivan Schwab-Germann - Intersim AG
Agenda
Konzeption
Umsetzung
Performance Sicherheit Architektur / Datenformat Aufgabe
Change Mgt
Thema: Schnittstellen im serviceorientierten Umfeld
Mai 2012 © Ivan Schwab-Germann - Intersim AG
Transport-Layer / Architektur
Im Zweifelsfall SOAP/XML weil system- und plattform-neutral (Basis-Datentypen +
Arrays verwenden) programmiersprachen-neutral (keine spezifischen
Datenkonstrukte) http Transport-Protokoll Datenvalidierung möglich Erhöhte Sicherheit möglich
SOAP eignet sich bestens für WS Schnittstellen mit hohen Anforderungen – REST für Ajax.
Mai 2012 © Ivan Schwab-Germann - Intersim AG
Datenformate
Gegenüberstellung
SOAP / XML REST / JSON
XML Aufruf
XML Rückgabedaten
Einfachere Strukturen
Einfache Handhabung
Für Browserverarbeitung ideal
Mai 2012 © Ivan Schwab-Germann - Intersim AG
Datenformate
Aus der Praxis: Umsetzungsprobleme (Know-How)
Fat-Files nicht über Services (Security ist meist nicht gleich)
Beim Kunden oft «Old World» Formate
JSON liefert Nutzdaten. SOAP dann verwenden, wenn Validierung der Daten nötig ist (via XSD)!
Mai 2012 © Ivan Schwab-Germann - Intersim AG
Agenda
Konzeption
Umsetzung
Performance Sicherheit Architektur / Datenformat Aufgabe
Change Mgt
Thema: Schnittstellen im serviceorientierten Umfeld
Mai 2012 © Ivan Schwab-Germann - Intersim AG
Change Management
Aufgesetzte Dreistufigkeit leben: - Development, Integration, Live
Ticketing-System
Fixe Release-Zyklen
Rückwärtskompatibilität
(Permanente Überwachung)
Definieren Sie für Change Request fix geltende Regeln und Prozesse!
Mai 2012 © Ivan Schwab-Germann - Intersim AG
Do’s and Dont’s
1. Real-Time Warenkorb-Berechnung beim ERP funktioniert
2. Abbilden von Netto-Preis Kalkulationen beim Client kann funktionieren
3. Wenn HTTPS mit Client-Zertifikat, dann auch auf dem Integration-System
4. Wenn Stabilität gefragt ist, dann ein WS-Interface mit SOAP/XML
5. Vertrauen ist gut, Kontrolle ist besser
Mai 2012 © Ivan Schwab-Germann - Intersim AG
Die 7 goldenen Regeln
Falls Sie ein Problem vermuten und mich anrufen wollen, super. Rufen Sie während der Konzeption an!
1. Konzeption: Prototyp erstellen
2. Performance: Real-Time - Wenige Aufrufe Asynchron - Höhere Granulierung
3. SOAP bei hohen Anforderungen – REST für Ajax
4. Sicherheit: SOAP mit Security-Token
5. Datenformat: SOAP bei Datenvalidierung
6. Change: Fixe Regeln definieren
Mai 2012 © Ivan Schwab-Germann - Intersim AG
Besten Dank fürs Zuhören
Kontakt: Ivan Schwab-Germann
Mail: [email protected]
Telefon: 034 424 11 24
Xing: http://www.xing.com/profile/Ivan_SchwabGermann
ONE: Stand 101