Mobile Web Services · Software-Wiederverwendung Seite 6 Mobile Web Services Im Trend: Web...
Transcript of Mobile Web Services · Software-Wiederverwendung Seite 6 Mobile Web Services Im Trend: Web...
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
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
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.
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
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).
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
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
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
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
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
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
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
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
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
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
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?
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