Konzeption und Realisierung einer

Slides:



Advertisements
Ähnliche Präsentationen
interaktiver Web Service Workflows
Advertisements

Software Engineering Praktikum SS 2003
Software Engineering Praktikum WS 2002/03
Basis-Architekturen für Web-Anwendungen
1 Prof. Dr. Andreas SchmietendorfWS06/07 – Labor C/S-Programmierung Übung 4 Mehrstufige Client/Server-Systeme mit JSPs, Servlets und JavaBeans (Web-Container)
Projektgruppe Abteilung Wirtschaftsinformatik
Datenbankzugriff im WWW (Kommerzielle Systeme)
Bastian Cramer, Universität Paderborn Entwurfsmuster für Webanwendungen Projektgruppe: Generierung von Webanwendungen aus visuellen Spezifikationen.
Internetzugriff mit Strings und Streams
Ruby on Rails im Überblick
Java 2 Enterprise Edition (J2EE)
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Web Services und Workflow-Steuerung
FH-Hof Servlets Richard Göbel. FH-Hof Konzept Servlets werden auf der Server-Seite durch ein Formular aufgerufen werten die Eingaben aus einem Formular.
Web 3.0 – Programmierung – Semantic Web / CIDOC CRM
Benötigte Applets Startseite: in HTML-Format Applet auf der Startseite Das Applet, das auf der Startseite geladen wird, wird die vier Buttons und die eine.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 6 Model-View-Controler als Grundlage für Nutzerschnittstellen Sommersemester 2003 Lars Bernard.
Struts Seminar Javabasierte Webanwendungen. Tobias Kutzler2 Überblick Historie Was ist Struts? Model Controller View Zusammenfassung.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
Introducing the .NET Framework
Projekt Web Engineering
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
Web-Anwendungsentwicklung à la MVC. Übersicht Über Georg Heeg Ein industrielles Beispiel Web-Anwendungen aus Smalltalker-Sicht MVC für das Web Programmierdemo.
M A P K I T Management eines J2EE basierten eCommerce Systems am Beispiel des ATG Dynamo Applikationsservers und BMC Patrol als Managementframework.
Systementwicklungsprojekt:
Diplomverteidigung Konzeption und Realisierung der Server-Komponente für ein P2P-File-Sharing-System, bei dem die User am Umsatz beteiligt sind Vortragender: Holger.
Verteidigung der Diplomarbeit
Sommersemester 2004 Jan Drewnak Entwicklung und Einsatz von Geosoftware I Praktikum Sitzung 6 Sitzung 6: Model-View-Controller als Grundlage.
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Einführung Servlets/JSPs
Seminarleiter: Herr Prof. Klement und Herr Prof. Kneisel
Seminar Internet - Technologie
Software Architektur III
Die .NET Common Language Runtime
Die .NET Common Language Runtime
Web Services Die Zukunft netzbasierter Applikationen iternum GmbH Alexanderstraße Frankfurt/Main
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 12 Folie 2 Web Services (1)
1 Sg 3 – JSP - Java Server Pages Softwareengineering Praktikum Java Server Pages Nicole Brandstätter Josef Sturm Karl Streicher.
ArcGIS als WPS Server Aktueller Stand der Umsetzung
Webservice Grundlagen
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
Aichinger Christian, Strasser Jürgen. Inhalt JSF EJB Praxis - Integration.
NDK Enterprise Technologien Informationen Infrastruktur und Fallstudie Daniel Nydegger Studienleiter Enterprise System Entwicklung.
Java Server Pages Sergej Keterling
Management- und Web Services- Architekturen
...connecting worlds GDI Workshop Ilmenau, Praktische Anwendung OGC-konformer Service mit ESRI Technologie am Beispiel eines Web Mapping Service.
Agenda Rückblick 2. Aufbau der Software Benutzeroberfläche 4. Ausblick
JavaServer Faces Urs Frei. Inhalt JSF Funktionsweise Rückblick JSP Bestandteile von JSF So einfach ist die Anwendung (Beispiel) Eclipse im Einsatz (Entwicklungsumgebung)
XML (Extensible Markup Language)
Einführung in Web Services Web Services in der Praxis
Projekt Pokémon (CSL) Evaluation Technologien / Entwicklungsumgebungen Schlusspräsentation, Philip Iezzi, BDLI 2.
Generative Softwareentwicklung in der Praxis Olaf Kaus, „Java User Group“, Hannover 6.Oktober 2003.
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 1 vom Montag, 30. März 2015.
Microsoft.NET InfoPoint 8. Juni 2005 Stefan Bühler.
Datenbanken im Web 1.
Vom Dokumentenserver MIAMI zum service-orientierten OAIS-konformen Archivsystem Burkard Rosenberger Universitäts- und Landesbibliothek Münster Düsseldorf,
1 Wolfgang Wiese, Regionales RechenZentrum Erlangen WCMS 3. August 2000 Wolfgang Wiese RRZE / Lehrstuhl für Informatik VII
J2EE-Motivation(I) Anforderungen an heutige Software u.a.:
Web Services Spezielle Methoden der SWT Liste V – WS 2008/2009 Christian Boryczewski.
ORB – Konzepte Ist – Analyse der betrieblichen Notwendigkeiten, Anforderungsableitung an moderne Lösungskonzepte, alternative ORB – Konzepte mit Zukunft,
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme Verteilte Anwendungen: Entwurf Dr. Wolfgang Wörndl
Patrick Richterich Lattwein GmbH Web Services Softwareentwicklung mit SOAP.
Oracle ADF FacesSeite 1 Oracle ADF Faces OPITZ CONSULTING Oracles Implementierung der JavaServer Faces Spezifikation.
Webservices SOAP und REST Nicole Fronhofs 1. Betreuer: Prof. Dr. Volker Sander 2. Betreuer: B. Sc. Sebastian Olscher.
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme Verteilte Anwendungen: Web Services Dr. Wolfgang Wörndl
WebServices Vortrag zur Diplomarbeit WebServices Analyse und Einsatz von Thomas Graf FH Regensburg
© 2008 TravelTainment The Amadeus Leisure Group Webanwendungen mit Java - HttpServlets 17.Dezember 2010 Sebastian Olscher Erstprüfer: Hon.-Prof. Dr. H.
SOAP - WSDL Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Prof. Dr. Manfred Thaller AM 2 Hauptseminar: Virtuelle.
Jakarta Struts Quasi-Standard für JSP-basierte Entwicklung: Jakarta Struts Key Features von Struts: Implementierung des Action-Command-Pattern („Model.
 Präsentation transkript:

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

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

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

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

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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Vielen Dank für Ihre Aufmerksamkeit! 25/25

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

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

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>

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

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: 3-8247-0480-0, Spektrum Akademischer Verlag GmbH, 2000. 2 Gesellschaft für Informatik Fachgruppe WI-VM Vorgehensmodelle für die betriebliche Anwendungsentwicklung, http://www.vorgehensmodelle.de/, letzter Zugriff: 29.10.03