SOA & Web services PV207 – Business Process Management Spring 2012 Jiří Kolář Last lecture summary ● Processes ○ What is business process? ○ What is BPM? ○ Why BPM ? ○ Roles in BPM ○ Process life-cycle ○ Phases of process based development ● BPMS ○ BPMS components ○ Architecture ○ Human Tasks ○ Business Rules ○ BAM ○ Existing BPMS Recap: BPM lifecycle Lecture summary ● Motivation for SOA ● Role BPM in IT management ● Core BPM architecture ● BPM – SOA relationship ○ SOA concept ○ SOA architecture ○ SOA Governance ○ SOMA ● TEAMBUILDING ● Web Services ○ What are WS? ○ Artifacts WS ■ WSDL ■ SOAP ○ WS - standards ● WS in Java ○ Client side ○ Server side ● REST 3 meanings of word "service" ● "Business" service ○ Restaurant owner can register his restaurant to Google database and be shown in Google Maps ○ Defined by contract / service offering ● "Technical" service ○ Users can search for their favourite restaurant in Google Maps ○ User interface for "Human task" ● Web Service ○ Google provide Web Service API for retrieving location of certain address ○ WSDL interface definition Motivation Role of BPM in IT Management ● Business requests defined from top level ● Use of IT services from bottom level BPM and SOA Relationship SOA in Practice, , Nicolai M. Josuttis SOA Concept ● Reduction of costs on development and integration ● Simpler maintenance and integration ● Component/service reusability ● Integration of Legacy applications ● Simplification of IS management ● Just-in-time management (real time business) SOA Architecture ● Process layer ● Service layer ● Application layer ● Technological layer Web Service ● Service for message transport and remote procedure calls ● Messages are transported in XML format ● Transport protocol is HTTP/HTTPS (mostly) ● Web service define: ○ Operations (method) a and their parameters ○ Return types ESB – Enterprise Service Bus ● Message routing ● Unique message protocol conversion ● Orchestration of communication http://wso2.com/products/enterprise-service-bus/ SOA – Maturity Model Sonic Software Corporation, AmberPoint Inc., 2005 SOA Maturity Model – Dimension Matrix Infosys Technologies Ltd. 2006 SOA Governance ● Service definition ● Service deployment life cycle ● Service versioning ● Service migration ● Service registries ● Service message model ● Service monitoring ● Service ownership ● Service testing ● Service security IBM Software Group SOA – Methodologies ● SOA methodologies ○ IBM SOAD (Proprietary) ○ IBM SOMA (Proprietary) ○ SOA RQ (Proprietary) ○ CBDI-SAE ○ SOAF ● SOMA ○ Service-oriented modeling and architecture --Ali Arsanjani, Chief Architect, SOA and Web servicesCenter of Excellence, IBM, Software Group SOMA - Phases SOMA – Life-cycle flow A. Arsanjani, IBM Systems Journal, Volume 47, Number 3, 2008 SOA Implementation Sandy Carter, The New Language of Business SOA & Web 2.0, 2007 ● BPM and SOA architecture needs to has its reason in company business ● Investment needs to return (ROI) ● Enterprise environment analysis and optimal SOA design is crucial ● SOA has maturity levels ● SOA implementation must correspond to company strategy ● SOA IT architecture represents restriction for BPM SOA Recapitulation Questions? Break 10mins Teambuilding ● Teams of 4 people ● Roles in the team ○ Teamleader ○ Business analyst ○ Process analyst ○ BPM/SOA developer ● Collective responsibility ○ Your success/fail in the course depends on success/fail of your team!! ● Good mix of skills is required ● Organise your work according to your needs ● Team Leader ○ Management - organising the teamwork (1 person) ○ Communication with lecturers and tutors ○ Couching ○ Skills: ■ Soft-skills, authority, responsibility ● Business analyst ○ "Expert" in domain you are going to analyse ○ Accuracy in writing analytical documents ○ Understanding of basics of strategic planning and business analysis ○ Skills: ■ Accuracy, responsibility, domain knowledge Team roles ● Process analyst ○ Good knowledge of process modeling and BPMN ○ Good knowledge of process modeling style ○ Good understanding of the domain ○ Skills: ■ Accurate, communicative, solution oriented ● BPM/SOA developer ○ Good understanding of process modeling ○ Technical skills ■ Chosen BPMS ■ Web services ■ Java/.NET programming ○ Required skills: Team roles Web services part ● Web Services ○ What are WS? ○ Artifacts WS ■ WSDL ■ SOAP ○ WS - standards ● WS in Java ○ Client side ○ Server side ● REST 3 meanings of word "service" ● "Business" service ○ Restaurant owner can register his restaurant to Google database and be shown in Google Maps ○ Defined by contract / service offering ● "Technical" service ○ Users can search for their favourite restaurant in Google Maps ○ User interface for "Human task" ● Web Service ○ Google provide Web Service API for retrieving location of certain address ○ WSDL interface definition ○ Request - response model Web Service ● Service for message transport and remote procedure calls ● Messages are transported in XML format ● Transport protocol is HTTP/HTTPS (mostly) ● Web service define: ○ Operations (method) a and their parameters ○ Return types Expected knowledge ● What is expected ○ Basic knowledge of XML ○ Basic knowledge of Java SE ○ Basic knowledge of Netbeans ● What is recommended for WS in Java ○ Knowledge of J2EE ○ Knowledge of application container in J2EE ○ XML processing in Java ■ (JAX-B Marshalling/Unmarshalling) WSDL ● WSDL (Web Service Description Language) ○ Describes basic interface of the service ○ Methods ○ Parameters and their types ○ Return values ○ Specify where is WS available ■ Protocol (HTTP/HTTPS/SMTP) ■ Port (:1666) ■ machine (kore.muni.cz) ■ URL (http://kore.muni.cz:1666/My Service) WSDL example Operace jePrvocislo() Sluzba pocitajici prvocisla SOAP ● Protocol for transfer of XML messages ● Used for communication between service and its consumer (client) ● HTTP/HTTPS used as common transport protocol used ● Classic request – response communication model SOAP example POST / HTTP/1.1 Content-Type: text/xml; charset=utf-8 Content-Length: 423 Connection: close SOAPAction: "" 1987 HTTP/1.1 200 OK Content-Type: text/xml; charset=utf-8 Content-Length: 468 Connection: close true WS - Standards WS-Policy WS-Security family of specifications WS-Reliable Messaging UDDI Quality of Service Messaging and Encoding Transport Business Processes Other protocols Other services Business Process Execution Language, BPMN Description and Discovery WSDL SOAP, SOAP Attachments XML, XML Infoset Transports WS-Coordination WS-Transactions Web Services in Java WS in Java - Server ● JAX-WS ● JAXB ● WS-Metadata ● REST WS in Java - Client ● JAX-WS ● JAXB ● WS-Metadata ● REST RESTful Web Service ● Representational State Transfer ○ Client-server ○ Stateless ○ Unified interface ○ Resource identification ● RESTful WS: ● HTTP/HTTPS ● POST, GET, PUT & DELETE ● XML, JSON, YAML ● WADL Standards ● JAX-WS (JSR-224) ● JAX-RS (JSR-311) ● Apache Axis, Axis2 ● Apache CXF ● Jersey Web Services exercise ● Web Services ○ http://netbeans.org/kb/docs/websvc/jax-ws.html ● REST ○ http://netbeans.org/kb/docs/websvc/rest.html ● NetBeans Trail ○ http://netbeans.org/kb/trails/web.html SOA - Information Resources ● SOA in Practice, Nicolai M. Josuttis, 2007, ISBN-13: 978-0596529550 ● IBM Systems Journal, Volume 47, Number 3, 2008 FIN Questions? PV207 – Business Process Management Spring 2012 Jiří Kolář