Semesterarbeit SOA CRYSTL-PIM Product Information System Sandrine Ferrari Benjamin Bäni
CRYSTL-PIM (Product Information System) Ablauf Ausgangslage?? Ziele Lösungsansatz Implementierung Komponenten Demonstration
CRYSTL-PIM (Product Information System) Ausgangslage ??? Vertieb von Bier und Kleinartikel Heutige Informatik in schlechtem Zustand Kunden-Informations-System für Kundenberater fehlt Ausgangslage Ziele Lösungsansatz Implementierung Komponenten Demonstration
CRYSTL-PIM (Product Information System) Ziele Lösung für das Lesen von Produktinformationen via Webservice Eingabemaske Request und Response über HTTP (SOAP und XML) Implementierung Ausgabemaske Manuelle und automatisierte Tests Ausgangslage Ziele Lösungsansatz Implementierung Komponenten Demonstration
CRYSTL-PIM (Product Information System) Lösungsansatz (Grundidee) Webservice mit SOAP Service-Methoden zum Abfragen von einzelnen oder allen Produkten Client mit JSP Ausgangslage Ziele Lösungsansatz Grundidee Aufbau Implementierung Komponenten Demonstration
CRYSTL-PIM (Product Information System) Lösungsansatz (Aufbau) Ausgangslage Ziele Lösungsansatz Grundidee Aufbau Implementierung SOAP Server-Client Architektur Komponenten Demonstration Lösung mit SOAP via HTTP
CRYSTL-PIM (Product Information System) Implementierung http://localhost:8080/PimServer/ProductService Browser Ausgangslage PIM-Client PIM-Server Ziele SOAP Message Lösungsansatz Servlet/JSP Service Implementierung Schema Komponenten Service (Skeleton) DAO Demonstration HSQL
CRYSTL-PIM (Product Information System) Product Web Service with JAX-WS public interface ProductService { @WebMethod(action="getProductById") ProductTO getProductById(@WebParam(name="id") Long id); } @WebService(endpointInterface = "ch.crystl.pim.service.ProductService") public class ProductServiceImpl implements ProductService { @Override public ProductTO getProductById(Long id) { .. } @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "productTO", propOrder = { "results", "message", "returncode" }) public class ProductTO { @XmlElement(nillable = true) protected List<Product> results; protected String message; protected String returncode; Ausgangslage Ziele Lösungsansatz Implementierung Komponenten Demonstration
CRYSTL-PIM (Product Information System) Unit-Testing mit SoapUI Endpoint: http://localhost:8088/mockProductServiceImplPortBinding PIM-Server Junit-Tests HSQL Ausgangslage Ziele TestProductDAO PimDB Lösungsansatz Implementierung SoapUI Komponenten start/stop TestMockService MockService Server Client run TestProductService TestSuite TestSuite Datenbank TestSuite WSDL Demonstration