1 / 25

Technische Universität Ilmenau Fakultät für Informatik und Automatisierung

Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Institut für Theoretische und Technische Informatik Fachgebiet Rechnerarchitektur. Konzeption und Realisierung einer Nutzerschnittstelle unter Einbeziehung von Web-Services für die Verwaltung von Nutzerkonten.

Download Presentation

Technische Universität Ilmenau Fakultät für Informatik und Automatisierung

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  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? Definition: Ein Web-Service ist eine über ein Netzwerk zugängliche Schnittstelle zu Anwendungsfunktionen, die mit Hilfe von Standardtechniken des Internets realisiert wird. 1 plattformunabhängige Interaktion zwischen Systemen mittels HTTP, XML, SOAP, WSDL und UDDI 5/25 1James Snell, Doug Tidwell, Pavel Kulchenko, Webservice-Programmierung mit SOAP, O’Reilly Verlag GmbH & Co. KG, 2002.

  6. Web-Services SOAP (Simple Object Access Protocol) • Kommunikation zwischen Anwendungen • durch XML-Nachrichten • SOAP-Nachricht besteht aus einem Umschlag • - einem optionalen Header • - und einem Body <soapenv:Envelope> </soapenv:Envelope> SOAP-Umschlag <soapenv:header><!--Informationsblöcke--> </soapenv:header> Header <soapenv:Body><!--Parameterübergabe--> <!--Rückgabewerte--> </soapenv:Body> 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. Web-Services Wie können Entwickler bei der Arbeit mit Web-Services unterstützt werden? 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 <definitions> ... ... </definitions> WSDL-Dokument WSDL2Java Java2WSDL Zur Erstellung und Nutzung von Web-Services Java-Klassen Java-Interface 10/25

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

  12. Potato-System • Handelsplatz für digitale Güter, insbesondere MP3-Dateien • Nutzer werden am Umsatz beteiligt, indem sie zu • Vertriebspartnern werden Web-Service Potato-System (AS) Potato-Jacket MySQL SOAP JDBC -Tomcat -JSP -Axis Client-Bibliothek -Tomcat -Java-Klassen -Axis SOAP-Engine SOAP P2P-Client -Axis Client-Bibliothek 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 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 VIEW MODEL CONTROLLER Das MVC 2-Prinzip Servlet (Controller) Nutzeraktion Daten JavaBeans (Model) leitet weiter Systemantwort instanziiert JSP (View) Browser 15/25 Web-Container

  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 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 <!--Login Action--> <actionpath="/processAccountLogin"type="com.as.jacket.actions.LoginAction"name= "loginForm"scope="request"validate="true"><forwardname="success" path="/loginSuccess.jsp"/> <forwardname="failure" path="/login.jsp"/> </action> <!--FormBean definition--> <form-beanname= "loginForm"dynamic="true"type="org.apache.struts.validator.DynaValidatorForm"><form-propertyname= "login"type="java.lang.String"/><form-propertyname="password"type="java.lang.String"/> </form-bean> 19/25

  20. Umsetzung Login in das Potato-System (2) Implementierung der Login Action-Klasse Useruser=null;// get form variables from the DynaValidatorFormStringlogin=(String)((DynaValidatorForm)form).get("login");Stringpassword=(String)((DynaValidatorForm)form).get("password"); // try to login on the Accounting ServerTrustedCertificatetrustedCertificate=newTrustedCertificate();user=trustedCertificate.login(request,login,password); // login failedif(user==null){ActionErrorserrors=newActionErrors();ActionErrorloginError=newActionError("error.login.invalid");errors.add(ActionErrors.GLOBAL_ERROR,loginError);saveErrors(request,errors);System.out.println("User was not found or the password is invalid.");returnmapping.findForward(IConstants.FAILURE_KEY); } else{// add the user to the sessionrequest.getSession().setAttribute(IConstants.USER_KEY,user);returnmapping.findForward(IConstants.SUCCESS_KEY);} 20/25

  21. Umsetzung Erzeugung von Stub-Klassen aus der WSDL-Datei mit dem Tool WSLD2Java Login in das Potato-System (3) Web-Service Aufruf publicPotatoInterfacegetPotatoInterface(HttpServletRequestrequest){PotatoInterfacepi=null;try{PotatoWebServiceLocatorlocator=newPotatoWebServiceLocator();pi=(PotatoInterface)locator.getPotato();((PotatoBindingStub)pi).setMaintainSession(true);}catch(javax.xml.rpc.ServiceExceptionse){System.out.println("caught ServiceException:"+se);}returnpi;} privateUserlogin(PotatoInterfacepi,Stringlogin,Stringpassword){UserInfouserInfo=null;try{userInfo=pi.login(login,password);} catch(RemoteExceptionre){System.out.println("login: RemoteException caught:"+re.toString());returnnull;}Usersu=newUser(pi,login,userInfo);returnsu;} 21/25

  22. Umsetzung Login in das Potato-System (4) Erstellung der JSP <%@tagliburi="/WEB-INF/struts-html.tld"prefix="html"%>...<html:formaction="/processAccountLogin"method="POST"><html:textproperty="login"/><br><html:passwordproperty="password"/><br><html:submitproperty="submit"/></html:form> (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

More Related