210 likes | 440 Vues
Konzeption und Realisierung eines plattformübergreifenden Web-Services zur Verwaltung von Nutzerkonten für virtuelle Waren. Verteidigung der Diplomarbeit Gabriele Frings 10. Juli 2003. Verantwortl. Hochschullehrer: Betreuer:. Prof. Dr.-Ing. habil W. Fengler Dr.-Ing. J. Nützel
E N D
Konzeption und Realisierung eines plattformübergreifenden Web-Services zur Verwaltung von Nutzerkonten für virtuelle Waren Verteidigung der Diplomarbeit Gabriele Frings 10. Juli 2003 Verantwortl. Hochschullehrer: Betreuer: Prof. Dr.-Ing. habil W. Fengler Dr.-Ing. J. Nützel Prof. Dr. phil.-nat. R. Grimm
Inhalt • Einleitung und Motivation • Lösungsansatz • Umsetzung • Architektur • Zusammenfassung und Ausblick
WSDL SOAP over HTTP URI Was ist ein Web-Service? • eindeutig identifizierbares Software-System • öffentliche Schnittstellen-Beschreibung in WSDL (Web Service Description Language) • Interaktion mit anderen Systemen über SOAP • Nachrichtenformate • Protokolle Einleitung & Motivation
Motivation • Potato-System zum Vertrieb virtueller Waren, zentrale Komponente: Accounting-Server • Nutzerverwaltung soll Kooperationspartnern zur Verfügung gestellt werden Schaufenster, sog. Jackets • Verknüpfung mit anderen Nutzerkonten (Liberty Alliance) ermöglichen Einleitung & Motivation
Ginny 1. anmelden Shop B Shop A 3. Weiterleitung Jacket B Jacket A 2. automatisches Login Web-Service Accounting-Server Beispiel • anmelden • automatischesLogin • erneuter Download systemübergreifende Nutzerverwaltung Einleitung & Motivation
Inhalt • Einleitung und Motivation • Lösungsansatz • Umsetzung • Architektur • Zusammenfassung und Ausblick
Accounting-Server Jacket Web-Service SOAP over HTTP Accounting-Server Lösungsansatz • Aufteilung in zentralen Server und Jackets • Nutzerverwaltung des Potato-Systems über Web-Service verfügbar • Austausch von sog. Handles mit den Jackets wie bei Liberty Alliance Verknüpfungen von Nutzerkonten ohne Klartextinformationen (Login, Passwort) Lösungsansatz
Ginny 5. Weiterleitung 4. Weiterleitung Shop A Shop B Jacket A Jacket B 3. Handle ermitteln 6. Download vorbereiten Web-Service Accounting-Server Beispiel (2) • Handle ermitteln • Weiterleitung • automatisches Login per Handle • erneuter Download Voraussetzung: Nutzerkonten vorher verknüpft Lösungsansatz
Inhalt • Einleitung und Motivation • Lösungsansatz • Umsetzung • Architektur • Zusammenfassung und Ausblick
Umsetzung • Beschreibung erstellen (WSDL) WSDL • Gerüst generieren lassen (Toolkit) Java Impl. • Funktionalität implementieren • compilieren und starten Client/ Server • Toolkit vereinfacht Pflege und Kommunikation Umsetzung
Beispiel zur Umsetzung (1) Umsetzung
Beispiel zur Umsetzung (2) <message name="login_IN"> <part name="login" type="xsd:string"/> <part name="password" type="xsd:string"/> </message> <message name="login_OUT"> <part name="userInfo" type="tns:UserInfo"/> </message> <complexType name="UserInfo"> <sequence> <element name="roles"type="xsd:string"/> <element name="userNumber"type="xsd:string"/> </sequence> </complexType> Umsetzung
Beispiel zur Umsetzung (3) <portType name="PotatoInterface"> <operation name="login"> <input message="tns:login_IN"/> <output message="tns:login_OUT"/> </operation> </portType> <service name="PotatoWebService"> <port name="Potato" binding="tns:PotatoBinding"> <soap:address location="https://localhost:8443/axis/services/Potato"/> </port> </service> Umsetzung
Beispiel zur Umsetzung (4) /** * PotatoBindingImpl.java * * This file was auto-generated from WSDL * by the Apache Axis WSDL2Java emitter. */ package com.as.ws; public class PotatoBindingImpl implements PotatoInterface{ public UserInfo login(String login, String password) throws java.rmi.RemoteException { UserInfo info = new UserInfo(); return info; } } Funktionalität hier implementieren Umsetzung
Jacket Web-Service SOAP over HTTP Accounting-Server Beispiel zur Umsetzung (5) <Body> <ns1:login soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="https://localhost:8443/axis/service/Potato"> <login xsi:type="xsd:string">susi</login> <password xsi:type="xsd:string">susi</password> </ns1:login> </Body> Umsetzung
Inhalt • Einleitung und Motivation • Lösungsansatz • Umsetzung • Architektur • Zusammenfassung und Ausblick
Architektur Architektur
Inhalt • Einleitung und Motivation • Lösungsansatz • Umsetzung • Architektur • Zusammenfassung und Ausblick
Zusammenfassung und Ausblick • Anbindung verschiedener Clients: • Jacket • P2P-Client • Nutzerverwaltung • des Potato-Systems über Web-Service verfügbar • Verknüpfung wie bei Liberty Alliance • Ausgangspunkt für die Zukunft • Test-Fälle • Refactoring Zusammenfassung & Ausblick