Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Institut für Theoretische und Technische Informatik Fachgebiet Rechnerarchitektur.

Ähnliche Präsentationen


Präsentation zum Thema: "Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Institut für Theoretische und Technische Informatik Fachgebiet Rechnerarchitektur."—  Präsentation transkript:

1 Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Institut für Theoretische und Technische Informatik Fachgebiet Rechnerarchitektur Verantwortlicher Hochschullehrer: Verantwortlicher Hochschullehrer: Prof. Dr.-Ing. habil. W. Fengler Betreuer: Betreuer: Dr.-Ing. J. Nützel Konzeption und Realisierung einer Nutzerschnittstelle unter Einbeziehung von Web-Services für die Verwaltung von Nutzerkonten Verteidigung der Diplomarbeit Dirk Behrendt 25. November 2003

2 Inhalt Einleitung und Ziele Web-Services Potato-System Konzeption Umsetzung Zusammenfassung und Ausblick 2/25

3 Einleitung und Ziele über kein anderes Konzept wurde in den letzten Monaten in Fachzeitschriften mehr diskutiert als über Web-Services man gewinnt den Eindruck, dass das Web-Service Konzept die Softwareentwicklung revolutionieren würde Ziel dieser Diplomarbeit Erstellen einer Web-Applikation, welche Funktionalitäten des Web-Services nutzt, der vom Potato-System bereitgestellt wird 3/25

4 Inhalt Einleitung und Ziele Web-Services Potato-System Konzeption Umsetzung Zusammenfassung und Ausblick 4/25

5 Web-Services Was sind Web-Services? Wie kann man Web-Services erstellen? Wie kann man Funktionalitäten eines Web-Services in seiner Anwendung nutzen? Wie können Entwickler dabei unterstützt werden? Ein Web-Service ist eine über ein Netzwerk zugängliche Schnittstelle zu Anwendungsfunktionen, die mit Hilfe von Standardtechniken des Internets realisiert wird. 1 Definition: 1 James Snell, Doug Tidwell, Pavel Kulchenko, Webservice-Programmierung mit SOAP, OReilly Verlag GmbH & Co. KG, plattformunabhängige Interaktion zwischen Systemen mittels HTTP, XML, SOAP, WSDL und UDDI 5/25

6 Web-Services Kommunikation zwischen Anwendungen durch XML-Nachrichten SOAP-Nachricht besteht aus einem Umschlag - einem optionalen Header - und einem Body SOAP (Simple Object Access Protocol) SOAP-Umschlag Header Body 6/25

7 Web-Services WSDL (Web Service Description Language) Standard für die Beschreibung von Web-Services beinhaltet Schnittstelleninformationen des Web-Services Struktur eines WSDL-Dokuments entspricht der Syntax des XML-Schemas UDDI (Universal Description, Discovery and Integration) bietet ein durchsuchbares Register von Diensten und ihren Beschreibungen gelbe Seiten 7/25

8 Wie können Entwickler bei der Arbeit mit Web-Services unterstützt werden? Web-Services 8/25

9 Web-Services Web-Service Toolkits Apache Axis von der Apache Software Foundation Web Service Toolkit (WSTK) von IBM Java Web Services Developer Pack (JWSDP) von Sun Web-Service Entwicklungsumgebungen Visual Studio.NET (.NET Framework) Sun ONE (Sun Open Net Environment) unterstützen den Entwickler bei der Arbeit mit Web-Services Erzeugung von WSDL aus (Java)-Klassen Erzeugung von (Java)-Klassen aus WSDL Bereitstellung von Klassen-Bibliotheken, um Web-Services nutzen zu können 9/25

10 Web-Services Erstellung und Nutzung von Web-Services Java-Interface Java2WSDL... WSDL2Java Java-Klassen WSDL-Dokument Zur Erstellung und Nutzung von Web-Services 10/25

11 Inhalt Einleitung und Ziele Web-Services Potato-System Konzeption Umsetzung Zusammenfassung und Ausblick 11/25

12 Potato-Jacket -Tomcat -JSP -Axis Client-Bibliothek P2P-Client -Axis Client-Bibliothek Web-Service Potato-System (AS) -Tomcat -Java-Klassen -Axis SOAP-Engine MySQL SOAP JDBC Potato-System Handelsplatz für digitale Güter, insbesondere MP3-Dateien Nutzer werden am Umsatz beteiligt, indem sie zu Vertriebspartnern werden 12/25

13 Inhalt Einleitung und Ziele Web-Services Potato-System Konzeption Umsetzung Zusammenfassung und Ausblick 13/25

14 Konzeption Anforderungen an das Jacket Erstellung einer Web-Applikation (Jacket), die den Web-Service in Anspruch nimmt Realisierung ausgewählter Funktionalitäten des Web-Services Garantieren der Wartbarkeit und Erweiterbarkeit der Web-Applikation durch strikte Trennung von Logik und Layout und Einsatz von Testwerkzeugen MVC (Model-View-Controller Prinzip) - Entwicklungsprozess nach dem MVC-Prinzip kann durch MVC-Frameworks erleichtert werden 14/25

15 Konzeption Das klassische MVC-Prinzip VIEW CONTROLLER MODEL Model-Objekt - stellt das Anwendungsobjekt dar - enthält die Kernfunktionalität und die Daten View-Objekt - stellt die Bildschirmrepräsentation dar - Objekt erhält die Daten vom Model Controller-Objekt - Reaktion und Verarbeitung von Benutzereingaben - Vermittler zwischen Model und View Das MVC 2-Prinzip Servlet (Controller) Daten JavaBeans (Model) Browser Web-Container Nutzeraktion Systemantwort JSP (View) instanziiert leitet weiter 15/25

16 Konzeption Das MVC-Framework Struts implementiert konsequent das MVC 2-Muster alle eingehenden Requests werden in Action-Klassen und ihren zugeordneten Action-Forms verarbeitet Verwendung von JSP zur Präsentation Struts Tag-Libraries Bean Tag-Library HTML Tag-Library Logic Tag-Library Layout mit Struts-Tiles Layout-Management durch Trennung von Inhalt und Layout Struts-Validator Überprüfung von Benutzereingaben 16/25

17 Konzeption FunktionalitätJacket Action-KlasseWeb-Service Methode LoginLoginActionlogin() LogoutLogoutActionlogout() Registrierung als KäuferBuyerRegistrationActionregisterUser() Registrierung als VerkäuferProviderRegistrationActionregisterProvider() Anzeigen der Käufer-NutzerdatenEditBuyerAccountActiongetUserData() Anzeigen der Verkäufer-NutzerdatenEditProviderAccountActiongetProviderData() Änderung der Käufer-NutzerdatenBuyerRegistrationActionchangeUserData() Änderung der Verkäufer-NutzerdatenProviderRegistrationActionchangeProviderData() Anzeigen der Nutzer-TransaktionenTransactionActiongetTransactioninfos() Registrierung einer DateiRegisterFileActionregisterFile() Informationen zu einer Datei anzeigenBuyTanFileActiongetFileInfo() Erwerb einer DateiCheckoutActionbuyFiles() Umgesetzte Funktionalitäten weitere Action-Klassen, die den Web-Service nicht in Anspruch nehmen Warenkorbverwaltung Cache-Verwaltung 17/25

18 Inhalt Einleitung und Ziele Web-Services Potato-System Konzeption Umsetzung Zusammenfassung und Ausblick 18/25

19 Umsetzung Login in das Potato-System (1) Modifikationen in der struts-config.xml 19/25

20 Umsetzung Login in das Potato-System (2) Implementierung der Login Action-Klasse User user = null; // get form variables from the DynaValidatorForm String login = (String) ((DynaValidatorForm) form).get("login"); String password = (String) ((DynaValidatorForm) form).get("password"); // try to login on the Accounting Server TrustedCertificate trustedCertificate = new TrustedCertificate(); user = trustedCertificate.login(request, login, password); // login failed if (user == null) { ActionErrors errors = new ActionErrors(); ActionError loginError = new ActionError("error.login.invalid"); errors.add(ActionErrors.GLOBAL_ERROR, loginError); saveErrors(request, errors); System.out.println("User was not found or the password is invalid."); return mapping.findForward(IConstants.FAILURE_KEY); } else { // add the user to the session request.getSession().setAttribute(IConstants.USER_KEY, user); return mapping.findForward(IConstants.SUCCESS_KEY); } 20/25

21 Umsetzung Login in das Potato-System (3) Web-Service Aufruf public PotatoInterface getPotatoInterface(HttpServletRequest request) { PotatoInterface pi = null; try { PotatoWebServiceLocator locator = new PotatoWebServiceLocator(); pi = (PotatoInterface) locator.getPotato(); ((PotatoBindingStub) pi).setMaintainSession(true); } catch (javax.xml.rpc.ServiceException se) { System.out.println("caught ServiceException:" + se); } return pi; } private User login(PotatoInterface pi, String login, String password) { UserInfo userInfo = null; try { userInfo = pi.login(login, password); } catch (RemoteException re) { System.out.println("login: RemoteException caught:" + re.toString()); return null; } User su = new User(pi, login, userInfo); return su; } Erzeugung von Stub-Klassen aus der WSDL-Datei mit dem Tool WSLD2Java 21/25

22 Umsetzung Login in das Potato-System (4) Erstellung der JSP... (5) Testen mit dem StrutsTestCase-Framework setRequestPathInfo("/processAccountLogin"); addRequestParameter("login", "ginny"); addRequestParameter("password", "ginny"); actionPerform(); verifyNoActionErrors(); verifyForward("success"); 22/25

23 Inhalt Einleitung und Ziele Web-Services Potato-System Konzeption Umsetzung Zusammenfassung und Ausblick 23/25

24 Zusammenfassung und Ausblick In diesem Vortrag wurde… … in die Web-Service Technologie eingeführt … die Architektur des Potato-Systems vorgestellt … dargelegt, welche Anforderungen die neue Nutzerschnittstelle (Jacket) zu erfüllen hat - Wartbarkeit und Erweiterbarkeit - Umsetzung ausgewählter Funktionalitäten unter Nutzung des Web-Service … die beispielhafte Implementierung des Logins in das Potato-System veranschaulicht Aufgaben für zukünftige Entwickler… … Umsetzung aller Funktionalitäten des Web-Services … Verbesserung des Layouts (Struts-Tiles) … Erhöhung der Sicherheit durch WS-Security denkbar … Erweiterung von Struts durch XSLT denkbar 24/25

25 Vielen Dank für Ihre Aufmerksamkeit! 25/25

26 Konfiguration in der struts-config.xml Struts Controller Struts-Framework Klassen User-Klassen

27

28 DynaActionForm YourAction

29

30 - JSP übernimmt die Rolle der View - Schnittstelle der Geschäftslogik von einer JavaBean-Komponente repräsentiert - Funktionalität des Controllers ebenfalls in einer JSP implementiert JSP (View) Daten JavaBeans (Model) Browser Web-Container Nutzeraktion Systemantwort Das MVC 1-Prinzip

31 Toolkit: Toolkits dienen der automatischen Unterstützung von Methoden und Verfahren zum Zwecke der Software-erstellung. 1 Software-Entwicklungsumgebung: Unter einer Software-Entwicklungsumgebung versteht man die Gesamtheit von aufeinander abgestimmten, untereinander kompatiblen, gemeinsam zu benutzenden und wesentliche Teile des Entwicklungsprozesses abdeckenden Methoden und Werkzeugen zur Software-Entwicklung. 2 1 Helmut Balzert, Lehrbuch der Software-Technik: Software-Entwicklung, ISBN: , Spektrum Akademischer Verlag GmbH, Gesellschaft für Informatik Fachgruppe WI-VM Vorgehensmodelle für die betriebliche Anwendungsentwicklung, letzter Zugriff:

32


Herunterladen ppt "Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Institut für Theoretische und Technische Informatik Fachgebiet Rechnerarchitektur."

Ähnliche Präsentationen


Google-Anzeigen