Mobile Web Services · Software-Wiederverwendung Seite 6 Mobile Web Services Im Trend: Web...

17
1 Mobile Web Services Dr. Thomas Wieland [email protected] FH Coburg, 25. März 2002 Seite 2 Mobile Web Services Gliederung ! Einführung ! Web Services im Detail ! Implementierung von Web Services auf mobilen Geräten ! Design von Web Services ! Einsatz mobiler Web Services

Transcript of Mobile Web Services · Software-Wiederverwendung Seite 6 Mobile Web Services Im Trend: Web...

Page 1: Mobile Web Services · Software-Wiederverwendung Seite 6 Mobile Web Services Im Trend: Web Services! Ein Web Service ist eine Anwendung, die es erlaubt, ihre Methoden über eine Web-Schnittstelle

1

Mobile Web Services

Dr. Thomas [email protected]

FH Coburg, 25. März 2002

Seite 2 Mobile Web Services

Gliederung

! Einführung! Web Services im Detail! Implementierung von Web Services

auf mobilen Geräten! Design von Web Services! Einsatz mobiler Web Services

Page 2: Mobile Web Services · Software-Wiederverwendung Seite 6 Mobile Web Services Im Trend: Web Services! Ein Web Service ist eine Anwendung, die es erlaubt, ihre Methoden über eine Web-Schnittstelle

2

Einführung

Seite 4 Mobile Web Services

Herausforderungen bei der Entwicklung mobiler Anwendungen! Unterschiedlichkeit der Endgeräte

• Oft nur geringe CPU und Speicher-Ressourcen verfügbar

! Business-Logik fast vollkommen auf dem Server! Benutzer in Bewegung

• Notwendigkeit von Session-Management, -Roaming! Benutzer fordern einfachen Umgang

• Möglichst keine Client-Installation• Wenn doch, dann leicht zu aktualisieren

! Hersteller fordern effiziente Entwicklung• Investitionen in die Desktop-Welt sichern• Erfahrungen der Entwickler nutzbar machen

Page 3: Mobile Web Services · Software-Wiederverwendung Seite 6 Mobile Web Services Im Trend: Web Services! Ein Web Service ist eine Anwendung, die es erlaubt, ihre Methoden über eine Web-Schnittstelle

3

Seite 5 Mobile Web Services

Drei Sichten für den Wechsel

Web-Seite Web Service

Einseitige Nutzung des WWW

Middleware für Internet-Anwendungen

Software-Wiederverwendung

Seite 6 Mobile Web Services

Im Trend: Web Services

! Ein Web Service ist eine Anwendung, die es erlaubt, ihre Methoden über eine Web-Schnittstelle aufzurufen.• Auf diese Weise können Informationen, die auf

einem Webserver liegen, durch andere Programmegenutzt werden.

! Der Aufruf der Methoden und die Beschreibung basieren auf XML

! Auch die Einbindung mobiler Endgeräte ist möglich.

Page 4: Mobile Web Services · Software-Wiederverwendung Seite 6 Mobile Web Services Im Trend: Web Services! Ein Web Service ist eine Anwendung, die es erlaubt, ihre Methoden über eine Web-Schnittstelle

4

Seite 7 Mobile Web Services

Beispiel für Web Service! Informationen aus Terminkalender können mit

Flugplänen abgeglichen werden! Wenn sich auf einer Seite etwas ändert, kann

das an die andere weitergegeben werden

Flugbuchungs-system

Terminkalender-Anwendung

Intranet

InternetHotelreservie-rungssystem

Web Services im Detail

Page 5: Mobile Web Services · Software-Wiederverwendung Seite 6 Mobile Web Services Im Trend: Web Services! Ein Web Service ist eine Anwendung, die es erlaubt, ihre Methoden über eine Web-Schnittstelle

5

Seite 9 Mobile Web Services

Übertragungsprotokoll! Firewalls blockieren COM/IIOP-Anfragen, sind

aber normalerweise für HTTP-Anfragen offen"Setze auf HTTP als Transportprotokoll

! Wir müssen zudem ein Datenformat einführen, das selbst-beschreibend sein muss, um wirklich interoperabel zu sein."Definiere das Datenformat mit XML

Die Lösung: Simple Object Access Protocol SOAP! Verlässt sich auf HTTP für die Kommunikation! Selbstbeschreibendes einfaches XML-basiertes

Nachrichtenformat! Arbeitet zusammen mit:

•Jedem Betriebssystem•Jeder Programmiersprache•Jeder Plattform

Seite 10 Mobile Web Services

Kommunikation mit SOAP! SOAP definiert zwei Arten von Nachrichten:

Anfragen und Antworten. • Anfragen enthalten das angesprochene Ziel sowie die in-

und die in/out-Parameter.• Antworten umfassen einen Fehlercode oder das Resultat

zusammen mit den in/out- und den out-Parametern.

! SOAP ist grundsätzlich nicht auf HTTP beschränkt, jedes Übertragungsprotokoll (z.B. SMTP) kann verwendet werden.

! SOAP kann unterschiedliche Infrastrukturen überbrücken und so Anwendungen miteinander verbinden.

! SOAP ist ein W3C working draft (XML-Protocol).

Page 6: Mobile Web Services · Software-Wiederverwendung Seite 6 Mobile Web Services Im Trend: Web Services! Ein Web Service ist eine Anwendung, die es erlaubt, ihre Methoden über eine Web-Schnittstelle

6

Seite 11 Mobile Web Services

SOAP NachrichtenSOAP Message

SOAP EnvelopeSOAP Header

SOAP Body

Message Name & Data

Headers

Protocol Headers

XMLXML--codierter SOAPcodierter SOAPNachrichtenname und DatenNachrichtenname und Daten

<Body> enthält<Body> enthältNachrichtenname und DatenNachrichtenname und Daten

Individuelle HeaderIndividuelle Header<Header> umfasst die Header<Header> umfasst die Header

<Envelope> umfasst Nachrichteninhal<Envelope> umfasst Nachrichteninhal

Standard Protocol (HTTP, SMTP, etc.)Standard Protocol (HTTP, SMTP, etc.)und SOAP Headerund SOAP Header

Die gesamte SOAPDie gesamte SOAP--NachrichtNachricht

Seite 12 Mobile Web Services

Beispiel für SOAP

POST /BookServer HTTP/1.1Host: www.qwickbooks.comContent-Type: text/xmlContent-Length: nnnnSOAPMethodName: Some-Namespace-URI#PlaceOrder

<SOAP:Envelope xmlns:SOAP="urn:schemas-xmlsoap-org:soap.v1”><SOAP:Body>

<m:PlaceOrder xmlns:m="Some-Namespace-URI”><Title>XML companion</Title><Author>Neil Bradley</Author>

</m:PlaceOrder></SOAP:Body>

</SOAP:Envelope>

boolean PlaceOrder([in] Title string, [in] Author string,

[out] DaysToDelivery integer);

Die Methode

wird übertragen als

Page 7: Mobile Web Services · Software-Wiederverwendung Seite 6 Mobile Web Services Im Trend: Web Services! Ein Web Service ist eine Anwendung, die es erlaubt, ihre Methoden über eine Web-Schnittstelle

7

Seite 13 Mobile Web Services

Beschreibung eines Web Service! Der Benutzer eines Web Service muss

wissen• Welche Methoden werden angeboten?• Welche Parameter erwarten die Methoden (einschl.

der Datentypen)?• Welche Werte liefern sie zurück?

! Ein Web Service muss diese Informationen zurückliefern• Ähnlich einer Typbibliothek bei COM oder einer IDL-

Datei bei CORBA! Dazu wird die Web Service Description

Language WSDL verwendet

Seite 14 Mobile Web Services

Wo kann ich Web Services heute nutzen?! Viele Web-Sites bieten Eingaben über Formulare! Alternativ zum Formular können die Eingaben auch

als Web Service-Aufrufe akzeptiert werden! Beispiel:

• Paketdienst bietet Formular, Empfang einer Sendung zu bestätigen

• Als Web Service kann eine Client-Anwendung auf einem mobilen Endgerät diese Infos direkt zum Server schicken

JSP ServletEJB Datenbank

AppServerWebServer

Web Service

Page 8: Mobile Web Services · Software-Wiederverwendung Seite 6 Mobile Web Services Im Trend: Web Services! Ein Web Service ist eine Anwendung, die es erlaubt, ihre Methoden über eine Web-Schnittstelle

8

Seite 15 Mobile Web Services

Nutzung von mobilen Web Services! Anwendungen werden auf dem Endgerät installiert

• Evtl. mittels automatischem Deployment (künftig z.B. als MIDlet oder über .NET Component Download)

! Applikationen enthalten nur Koordinationslogik, um eine schnelle Reaktion auf Benutzerinteraktionen zu gewährleisten

! Business-Logik befindet sich in Form von Web Services im Netz verteilt

ApplikationGateway

Web Service

Web Service

Web ServiceHandheld

Implementierung von Web Services auf mobilen Geräten

Page 9: Mobile Web Services · Software-Wiederverwendung Seite 6 Mobile Web Services Im Trend: Web Services! Ein Web Service ist eine Anwendung, die es erlaubt, ihre Methoden über eine Web-Schnittstelle

9

Seite 17 Mobile Web Services

Zutaten für eine SOAP-Umgebung! Ein XML-Parser

• Dient dazu, die eintreffenden SOAP-Nachrichten auszuwerten• Geht auch selbstprogrammiert, ist dann aber nicht so flexibel

! Ein Listener für den HTTP-Port• Im allgemeinen Port 80• Fängt alle Nachrichten auf diesem Port ab• Wirft ggf. alle Nicht-SOAP-Nachrichten weg

! Ein Client-Proxy• Stellt eine Schnittstelle ähnlich wie der Server für lokale Zugriffe

bereit• Packt die Aufrufe zu einer SOAP-Nachricht zusammen• Wertet die eintreffenden Antworten aus

Seite 18 Mobile Web Services

Das Broker-Pattern

marshal

unmarshal

receive_result

service(proxy)

Client-side Proxymarshal

unmarshal

dispatch

receive_request

Server-side Proxy

start_up

main_loop

service(impl.)

Servicecall_service_p

start_task

Client

calls*

1

calls*

1

Message exchange*

Message exchange *1

register_server

find_server

establish_communication

Broker1

Quelle: F. Buschmann et al.: “Pattern-oriented software architecture”, Wiley, 1996

Page 10: Mobile Web Services · Software-Wiederverwendung Seite 6 Mobile Web Services Im Trend: Web Services! Ein Web Service ist eine Anwendung, die es erlaubt, ihre Methoden über eine Web-Schnittstelle

10

Seite 19 Mobile Web Services

Effiziente Entwicklung braucht Generatoren! SOAP-Nachrichten müssen erzeugt bzw. geparst

werden• “Marshaling” bzw. “De-Marshaling”

! Sollte als Proxy-Teilkomponente gekapselt werden• Proxy selbst zu schreiben ist möglich, aber sehr mechanische

Aufgabe

! SOAP allein ist noch kein Web Service• Client-Proxy aus bestehender WSDL-Beschreibung notwendig

! Generatoren sind notwendig, um aus WSDL Client-Proxies oder aus Java/C++/…-Klassen Server-Proxies zu erzeugen!

WSDL GeneratorProxy-Code

Seite 20 Mobile Web Services

Verfügbare Toolkits! Microsoft Mobile Internet Toolkit for .NET

• Bietet Web Forms, die auf dem Server laufen! .NET Smart Device Extensions

• Enthält das Compact Framework, das .NET für Kleingeräte• Derzeit noch im Beta-Stadium

! PocketSoap • Komplette Open-Source-SOAP-Implementierung für Pocket-PCs

(z.B. Compaq iPaq) unter Windows CE• Wird auch von Microsoft empfohlen/verwendet

! kSOAP• Open-Source-Version für die J2ME, z.B. auf Mobiltelefonen

! GLUE• Vollständige Web Service-Umgebung, basierend auf JDK 1.1.8• Version ohne App-Server kostenfrei

Page 11: Mobile Web Services · Software-Wiederverwendung Seite 6 Mobile Web Services Im Trend: Web Services! Ein Web Service ist eine Anwendung, die es erlaubt, ihre Methoden über eine Web-Schnittstelle

11

Design von Web Services

Seite 22 Mobile Web Services

Web Services für Entwickler!Ein Web Service kann als dynamisch

angesprochener Baustein einer Anwendung verwendet werden

• Infrastruktur- oder Business-Logik-Komponente• Komponenten müssen nicht mehr lokal erreichbar sein• Installation fällt weg

!Web Services können in vielen Programmiersprachen implementiert sein

• Der Client merkt die Art der Implementierung nicht• Interoperabilität zwischen Programmiersprachen und

Plattformen!Herausforderungen für den Entwickler:

• Das Programmiermodell• Verständnis für Protokolle und Serialisierung • Auffinden von Services

Page 12: Mobile Web Services · Software-Wiederverwendung Seite 6 Mobile Web Services Im Trend: Web Services! Ein Web Service ist eine Anwendung, die es erlaubt, ihre Methoden über eine Web-Schnittstelle

12

Seite 23 Mobile Web Services

Design von Web-Applikationen! Ähnliche Design-Tipps wie für andere verteilte

Anwendungen!! Keine überflüssigen Daten (wie Bilder)

verschicken, wenn es auch mit einer URL geht! Auf Latenzzeiten beim Server achten! Einsatz von Caching, wo immer es möglich ist! Wenn andere Aufgaben blockiert werden

könnten, auf asynchrone Kommunikation ausweichen

! Beim Client die Möglichkeit des Serverausfalls beachten und entsprechende Fehler abfangen

! Statt in jedem Aufruf ein Datum abzufragen, mehrere Daten in einen Aufruf zusammenfassen• Ziel: Zahl der Aufrufe minimieren

Seite 24 Mobile Web Services

Web Services und Objektorientierung! Web Services haben zunächst mit

Objektorientierung nichts zu tun • Kein zugrunde liegendes Objektmodell auf

Implementierungsebene (wie bei CORBA oder DCOM)! SOAP-Protokoll ist verbindungslos

• Client hat keinerlei Anhaltspunkt, ob er bei zwei Aufrufen dasselbe Objekt erreicht

! Web Service kann verschiedene Clients ohne Zusatzaufwand nicht auseinanderhalten

! Web Service eher wie ein Modul • Fasst verschiedene Funktionen in einem gemeinsamen

Container zusammen

Page 13: Mobile Web Services · Software-Wiederverwendung Seite 6 Mobile Web Services Im Trend: Web Services! Ein Web Service ist eine Anwendung, die es erlaubt, ihre Methoden über eine Web-Schnittstelle

13

Seite 25 Mobile Web Services

Dokumentenorientierte Programmierung von Web Services

Die Prinzipien der lokalen, objekt-orientierten Programmierung werden durch die verteilte, dokumenten-orientierte ersetzt

Objektreferenz

Attribute

Objektmethoden

Sitzungs-ID

DB-Tabellenzeile

Web Service

Einsatz mobiler Web Services

Page 14: Mobile Web Services · Software-Wiederverwendung Seite 6 Mobile Web Services Im Trend: Web Services! Ein Web Service ist eine Anwendung, die es erlaubt, ihre Methoden über eine Web-Schnittstelle

14

Seite 27 Mobile Web Services

Erfolgskriterien für mobile Web Services! Mobile Web Services sollten den

Kontext des Benutzers verwenden• Beim Zusammenspiel verschiedener Services

sollte Kontextinformation übertragen werden

! Infrastrukturservices sollten global zur Verfügung stehen• Wie bei EJBs werden auch für Web Services

Dienste für Sicherheit, Persistenz und Transaktionen benötigt

Seite 28 Mobile Web Services

Erfolgskriterien für mobile Web Services (2)! Web Services sollten den Workflow des

Geschäfts abbilden• Mobile Web Services müssen auch die mobilen

Möglichkeiten nutzen• Nicht nur einen anderen Zugriffsweg bereitstellen!

! Existierende Systeme müssen integriert werden• Lokal und im Backend ist Standardmiddleware (J2EE,

CORBA 3, COM+) viel effizienter• Konnektoren müssen möglichst automatisch generierbar

sein

Page 15: Mobile Web Services · Software-Wiederverwendung Seite 6 Mobile Web Services Im Trend: Web Services! Ein Web Service ist eine Anwendung, die es erlaubt, ihre Methoden über eine Web-Schnittstelle

15

Seite 29 Mobile Web Services

Anwendungsszenarien! Routenplanung

• Planungssoftware kann Wetter- und Stauinformationen als Web Service nachfragen und in die Planung einbeziehen

! Krankenhausvisite, Notarzteinsatz• Arzt kann auf Patientendaten zugreifen

! Mobile Anlagenwartung• Gesamtstatus der Anlage, letzte Kalibrierdaten etc. können vom

Service-Techniker herangezogen werden! Vertreter auf Kundenbesuch

• Aktuelle Rabattsätze, Außenstände etc. können für Angebotserstellung verwendet werden

! Spiele• Interaktion mit mehreren anderen Benutzern

! Mobile Adhoc-Kommunikation• Austausch von Adressen, Interessen etc., z.B. auf Messen

Zusammenfassung

Page 16: Mobile Web Services · Software-Wiederverwendung Seite 6 Mobile Web Services Im Trend: Web Services! Ein Web Service ist eine Anwendung, die es erlaubt, ihre Methoden über eine Web-Schnittstelle

16

Seite 31 Mobile Web Services

Fazit! Web Services eignen sich auch für mobile

Endgeräte• Sie stellen neue Herausforderungen bezüglich

- Netzanbindung- Kontextabhängigkeit- Sitzungsverwaltung

! Die aktuellen Toolkits (GLUE, PocketSOAP, kSOAP) machen Web Services bereits auf mobilen Geräten möglich

! SOAP-Server auf Endgeräten nur elementar möglich• Bisher nicht in Programmierumgebungen enthalten• Aber: Großes Potenzial für Enterprise-Einbindung und P2P

Seite 32 Mobile Web Services

Danke für Ihre Aufmerksamkeit

Fragen oder Anmerkungen?

Page 17: Mobile Web Services · Software-Wiederverwendung Seite 6 Mobile Web Services Im Trend: Web Services! Ein Web Service ist eine Anwendung, die es erlaubt, ihre Methoden über eine Web-Schnittstelle

17

Seite 33 Mobile Web Services

Links! Microsoft

• Web Services: http://msdn.microsoft.com/webservices• Mobile Web Forms:

http://msdn.microsoft.com/vstudio/nextgen/technology/mobilewebforms.asp

• PocketSOAP: http://www.microsoft.com/mobile/developer/technicalarticles/pocketsoap.asp

• Smart Device Extensions: http://msdn.microsoft.com/vstudio/nextgen/device/smartdev.asp

! PocketSOAP• http://www.pocketsoap.com

! kSOAP• http://ksoap.enhydra.org

! GLUE• http://www.themindelectric.com