Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Konzeption und Realisierung einer

Ähnliche Präsentationen


Präsentation zum Thema: "Konzeption und Realisierung einer"—  Präsentation transkript:

1 Konzeption und Realisierung einer
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 1 James 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 10/25
<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-Jacket Potato-System (AS) MySQL -Tomcat -JSP -Axis Client-Bibliothek SOAP JDBC -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 Das MVC 2-Prinzip 15/25
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 Web-Container 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 Umgesetzte Funktionalitäten  Warenkorbverwaltung
Jacket Action-Klasse Web-Service Methode Login LoginAction login() Logout LogoutAction logout() Registrierung als Käufer BuyerRegistrationAction registerUser() Registrierung als Verkäufer ProviderRegistrationAction registerProvider() Anzeigen der Käufer-Nutzerdaten EditBuyerAccountAction getUserData() Anzeigen der Verkäufer-Nutzerdaten EditProviderAccountAction getProviderData() Änderung der Käufer-Nutzerdaten changeUserData() Änderung der Verkäufer-Nutzerdaten changeProviderData() Anzeigen der Nutzer-Transaktionen TransactionAction getTransactioninfos() Registrierung einer Datei RegisterFileAction registerFile() Informationen zu einer Datei anzeigen BuyTanFileAction getFileInfo() Erwerb einer Datei CheckoutAction buyFiles() 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--> <action    path="/processAccountLogin"      type="com.as.jacket.actions.LoginAction"      name= "loginForm"      scope="request"      validate="true">     <forward name="success" path="/loginSuccess.jsp"/> <forward name="failure" path="/login.jsp"/> </action> <!--FormBean definition--> <form-bean  name= "loginForm" dynamic="true"    type="org.apache.struts.validator.DynaValidatorForm">    <form-property      name= "login"      type="java.lang.String"/>    <form-property      name="password"      type="java.lang.String"/> </form-bean> 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 Erzeugung von Stub-Klassen aus der WSDL-Datei mit dem Tool WSLD2Java
Umsetzung Erzeugung von Stub-Klassen aus der WSDL-Datei mit dem Tool WSLD2Java 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; } 21/25

22 Umsetzung Login in das Potato-System (4) Erstellung der JSP
taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> <html:form action="/processAccountLogin" method = "POST">   <html:text property="login" /><br>   <html:password property="password"/><br>   <html:submit property="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

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

27

28 Die Aufgaben der zentralen Konfigurationsdatei
DynaActionForm <struts-config> <form-bean ... </form-bean> <action </Action> </struts-config> vereinbart ActionForm YourAction definiert Action-Mapping validation.xml erzwingt Validierung definiert Weiterleitung struts-config.xml

29 Struts Tiles potatoLayout.jsp login.jsp tilesDefinitions.xml
... </definition> </tiles-definitions> header.jsp menu.jsp <tiles:insert> login_body.jsp footer.jsp potatoLayout.jsp copyright.jsp login.jsp tilesDefinitions.xml <tiles-definitions>   <definition name="login" path="/layout/potatoLayout.jsp">     <put name="header" value="/inc/header.jsp"/>     <put name="menu" value="/inc/menu.jsp"/>     <put name="body-content" value="/body/login_body.jsp"/>         <put name="footer" value="/inc/footer.jsp"/>     <put name="copyright" value="/inc/copyright.jsp"/>         </definition>

30 Das MVC 1-Prinzip - JSP übernimmt die Rolle der View
Nutzeraktion Daten JavaBeans (Model) JSP (View) Systemantwort Browser Web-Container - 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

31 Software-Entwicklungsumgebung:
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, 2000. 2 Gesellschaft für Informatik Fachgruppe WI-VM Vorgehensmodelle für die betriebliche Anwendungsentwicklung, letzter Zugriff:

32


Herunterladen ppt "Konzeption und Realisierung einer"

Ähnliche Präsentationen


Google-Anzeigen