Web Services, Business Process and Enterprise Simulation with MDA

Slides:



Advertisements
Similar presentations
Overview: Guide for applying RM-ODP with UML Profile for EDOC
Advertisements

Copyright © 2006 Data Access Technologies, Inc. Open Source eGovernment Reference Architecture Approach to Semantic Interoperability Cory Casanave, President.
Web Service Architecture
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 2.
Building an Operational Enterprise Architecture and Service Oriented Architecture Best Practices Presented by: Ajay Budhraja Copyright 2006 Ajay Budhraja,
EbXML and the OMG Enterprise Computing Architecture (ECA)
1 Introduction to XML. XML eXtensible implies that users define tag content Markup implies it is a coded document Language implies it is a metalanguage.
SOA with Progress Philipp Walther Consultant. © 2007 Progress Software Corporation2 Agenda  SOA  Enterprise Service Bus (ESB)  The Progress SOA Portfolio.
MDA for Web Services Applying Model Driven Architecture to Web Services Document webserv/
Secure Middleware (?) Patrick Morrison 3/1/2006 Secure Systems Group.
Aligning Business Processes to SOA B. Ramamurthy 6/16/2015Page 1.
Model Driven Architecture (MDA) Partha Kuchana. Agenda What is MDA Modeling Approaches MDA in a NutShell MDA Models SDLC MDA Models (an Example) MDA -
Livermore July Web Services Overview Francisco Curbera IBM T.J. Watson Research Center.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
SoaML standard and example
Secure Systems Research Group - FAU Web Services Standards Presented by Keiko Hashizume.
MDC Open Information Model West Virginia University CS486 Presentation Feb 18, 2000 Lijian Liu (OIM:
SOA, BPM, BPEL, jBPM.
Page 1 May 2009 SOS Concepts in DM2 – SoaML Example The purpose of this is to refine SOA concepts in DM2 –It is a summary for the DM2/SOA team –Based on.
Refinement of the One GSA Day One January 27, 2005.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
Compuware Corporation Business Driven SOA Edwin Schumacher Director of Product Management
Web services: Why and How OOPSLA 2001 F. Curbera, W.Nagy, S.Weerawarana Nclab, Jungsook Kim.
1 Core Web Services Standards. 2 (Simplified) Web Service Architecture Registry 1. Service Registers PUBLISH 3. Client calls Service BIND 2. Client Request.
UNIT – II ARCHITECTING WEB SERVICES. WHAT ARE WEB SERVICES ? Web Services are loosely coupled, contracted components that communicate via XML-based interfaces.
© 2007 by «Author»; made available under the EPL v1.0 | Date | Other Information, if necessary Eclipse SOA Tools Platform Project Eric Newcomer IONA Technologies.
XML in Development of Distributed Systems Tooling Programming Runtime.
Web services for Enterprise Collaboration Applying MDA to web services for enterprise collaboration Doc Mars/ Doc webserv/
2nd TTCN-3 User Conference, June The TTCN-3 Metamodel – A Basis for Tool Integration Ina Schieferdecker TU Berlin/Fraunhofer Fokus Hajo Eichler,
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
1 UNIT –II Architecting Web Service. 2 Why SOA? – business point of view  Information Technology (IT) workers face many challenges, including: Limited.
Introduction to soarchitect. agenda SOA background and overview transaction recorder summary.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
March 24, 2007 Demonstrating Model Driven Enterprise SOA Integrating Government Lines of Business “The Power of the A in SOA” NCOIC SOA CoP - Demo Ed Harrington.
U.S. General Services Administration George Thomas, GSA OCIO Chief Architect Line of Sight = Reuse.
March 24, 2007 SOA CoP Demo Model Driven Enterprise SOA GSA Financial Management Enterprise Architecture Cory Casanave cory-c (at) modeldriven.com Oct.
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
Model Driven Architecture MDA SE-548 Lale Doğan
A service Oriented Architecture & Web Service Technology.
Page 1 Hitachi Ltd. – FhI FOKUS TTCN-3 User Conference, June 2005 MDA based approach for generation of TTCN-3 test specifications Hideto Ogawa, Hitachi.
Healthcare-oriented Modeling Environment ( HoME ) Managed jointly by: Veterans Health Administration (VHA) IBM modeling-mdt.projects.openhealthtools.org.
OsEra Open Source eGovernment Reference Architecture
CIM Modeling for E&U - (Short Version)
Sabri Kızanlık Ural Emekçi
Distribution and components
XML Based Interoperability Components
The OMG Approach (continued)
Inventory of Distributed Computing Concepts and Web services
Service-centric Software Engineering
Enterprise Service Bus (ESB) (Chapter 9)
Service-centric Software Engineering 1
Inventory of Distributed Computing Concepts
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Tools for Composing and Deploying Grid Middleware Web Services
Distribuerte Systemer Viktigere enn vi tror, vanskeligere enn det høres Komponenttorget ‘99 Trondheim Trygve Reenskaug Numerica Taskon Distaribuerte.
Service Oriented Architecture (SOA)
OMG - EDOC Enterprise Distributed Object Computing
SOA-1: Fundamentals of Service-Oriented Architecture
UML profiles.
Komponentbasert utvikling Den sanne objektorientering
WEB SERVICES DAVIDE ZERBINO.
Visjoner og arkitektur
Analysis models and design models
OMG - Model Driven Architectures
Constructing MDA-based Application Using Rational XDE for .NET
An Introduction to Software Architecture
Introduction to Web Services and SOA
Design Yaodong Bi.
MBSE for PLM: Part of the Digital Systems Life Cycle
Presentation transcript:

Web Services, Business Process and Enterprise Simulation with MDA Collaboration Architecture A tutorial on applying Model Driven Architecture to web services using the OMG Enterprise Collaboration Architecture with UML

Primary author of “Component Collaboration Architecture” in EDOC Introductions Cory Casanave cory-c@enterprise-component.com www.enterprise-component.com Primary author of “Component Collaboration Architecture” in EDOC

It’s about Collaboration Collaboration is a key differentiation and key cost center (Healthcare Example) Customer Collaboration Claim processing Disputes Physician Collaboration Payer Collaboration Hospital Collaboration Broker Collaboration Government Collaboration Employee Collaboration Others... The system integrates multiple collaborations

Integrating Enterprises, People & Systems - Worldwide Business Requirements Virtual Enterprises Enterprise Integration (EAI) Supply-chain automation (B2B) Customer Integration (B2B) Web deployment (B2C) Internet Marketplace (B2C) Collaboration and Integration

Model What You Simulate & Perform Validation & Metrics Enterprise Models Process & Information Validation & Metrics Simulation Execution M&S World Management Information MDA World

Enterprise Components Enterprise Components must be independent and distributable While being able to interoperate with each other Making the information system or simulation a lattice of cooperating components Simulated or Real Same model, same architecture Standards Open Open Standards Open Standards

Web services provides open connectivity Web Services allow components to be independently implemented While interacting across well defined services Making the information system a lattice of cooperating components Simulated or Real Same model, same architecture Standards Open Other Middleware Web Services

An XML component architecture XML Components XML Component (Abstract) XML WS Port XML WS Port XML WS Port Simulation Implementation Execution Implementation Modeled Web services provide An XML component architecture Independent of protocol and platform For execution and simulation

Core Requirements Web Services Common Models Providing flexible connectivity between components implemented in a variety of technologies for both simulation and execution Web services provides for the connecting points between components Common Models Models of process, structure, roles, interactions, components and information representing the collaborative fabric of the enterprise driving both execution and simulation

The Marketplace Example Order Conformation Shipped Process Complete Mechanics Are Us Buyer Acme Industries Seller Status Ship Req Physical Delivery Shipped Delivered GetItThere Freight Shipper

Where are the services? Status Mechanics Are Us Acme Industries Buyer Order Web Service Conformation Web Service Shipped Mechanics Are Us Buyer Acme Industries Seller Web Service Status Web Service Ship Req Physical Delivery Shipped Web Service Delivered GetItThere Freight Shipper

Inside the Seller Event Order Processing Shipping Receivables Order Web Service Conformation Web Service Shipped Shipping Event Ship Req Receivables Shipped Delivered

Components collaborate in processes Identify a “community process”, the roles and interactions in a collaboration Models helps organize and define the set of services required for enterprise collaboration and simulation Protocol

Web services implement connections between components in roles Web Service Specification Service Port on the service Protocol Operation Message Schema Type

The new center The strategic core of you systems must be the enterprise its self Only technology independent business focused models will survive the transience of technology and lock-in These models can become part of your source code, driving enterprise applications and simulations Enabler: Model Driven Architecture (MDA) with EDOC-Enterprise Collaboration Architecture

Automated Model Driven Architecture Meta-Model UML Profile (E.G. ECA) Domain Model (PIM) Domain Architecture Manual Coding Enterprise Components Infrastructure Mapping (E.G. J2EE-WS) Tools Produce & Integrate C Minimize and structure manual implementation Framework & Infrastructure (E.G. -J2EE-WS) PSM Mapping is tuned to the infrastructure Technical Architecture

Automated Model Driven Architecture Meta-Model UML Profile (E.G. ECA) Domain Model (PIM) Multiple and Changing Technology Support Domain Architecture J2EE-WS Enterprise Components .NET-WS Enterprise Components C Infrastructure Mapping (E.G. J2EE-WS) Tools Produce & Integrate Infrastructure Mapping (E.G. .NET-WS) C C Framework & Infrastructure (E.G. -J2EE-WS) PSM Framework & Infrastructure (E.G. -.NET-WS) PSM Technical Architecture Mapping is tuned to the infrastructure Technical Architecture

Integration of Intellectual Capital UML Modeling Requirements Modeling Component Modeling Process Modeling Information Modeling MDA Platform Models define the system Intellectual Capital MOF J2EE Simulation .NET Integration of infrastructure

The Enterprise Collaboration Architecture ECA is a “profile of UML”, a way to use UML for a specific purpose - it is an OMG standard That purpose is modeling enterprise systems and components. You can also think of this as a “modeling framework” for enterprise computing ECA is part of the “Model Driven Architecture” (MDA) initiative of the OMG Using precise modeling techniques as part of the development lifecycle to speed development and provide technology independence ECA has been adopted by the OMG as part of the EDOC RFP. ECA defines an architecture and meta model

MDA Solution for Web Services Platform Independent Model Enterprise Collaboration Architecture Web Services For Enterprise Collaboration Standards Mapping Platform Dependent Model Web Services Stack Standards? Future Platform (J2EE, .NET…) Mapping Not standard

Tooling & Infrastructure Solution Triad Service Based Architecture Components Web Services Corba J2EE .NET Model Driven Development OMG ECA Development Process Tooling & Infrastructure Standards

Loose Coupling Loose coupling is the ability for independent parts of systems to be built and evolve independently Tightly coupled systems Prevent change (the next legacy system) Cause lock-in Become unmanageable Prevent reuse Quality architecture is essential for loose coupling

Architecture Goals Create a system from loosely coupled “enterprise components” that can evolve independently Provide well defined interfaces and interaction points between these enterprise components Make each enterprise component a reusable asset that can serve many business processes Build the information system as a community of interacting enterprise components Utilize open standards such as Web Services, EJB and Corba to integrate the enterprise components

“Wrapping” Legacy Applications and Data Enterprise Components are defined in terms of their external contract; implementation may use existing applications Can “call” existing application Can read and write legacy DBMS Can use “screen scraper” (Last resort) Legacy applications can appear as enterprise components but may not be implemented as components

Technology Independence Business Logic Component ebXml What the infrastructure vendors would have you do Business Logic Component .NET Business Logic Component RosetaNet Business Logic Component WebServ Adapters EJB Business Logic Component ebXml BizTalk Rosetanet CICS WebServ MQ Corba

Legacy “Wrapping” Wrapping allows existing programs and data to work with and work as enterprise components Adapters

Collaborations and Roles Conceptual Foundation Portions copied with permission of Trygve Reenskaug - Taskon OORAM (http://www.ifi.uio.no/~trygver)

History OORAM Enterprise UML Object Oriented Collaboration Role Analysis UML Collaborations Enterprise Collaboration Architecture Influence

The Connected Enterprise Content and Communication Digital Map Census Data Police Records House Drawings Aerial Photos Police Dispatcher Role

Multiple roles in a collaboration

Travel Expense Example Peter (Technical author) Bill (Dispatcher) Joyce (Sales clerk) Douglas (Marketing manager) Kim (Methodologist) Elsie (Programmer) Eve (Software Manager) (Bookkeeper) Joe (Paymaster) Adam (Chief Accountant) Ruth (President) John (Cashier) Ann (Customer consultant) 4: authorizedExpenseReport 1: travelPermissionRequest 2: travelPermission 3: expenseReport 5: paymentRequest We achieve a separation of concern; a collaboration describes the objects involved in one or more functions, describing the objects involved only and focusing on the relevant object properties. In the collaboration, we study patterns of interacting objects: What are the objects, what are their responsibilities, and how do they collaborate to achieve the system functionality.

UML Collaboration Diagram Travel Expense Model Peter (Technical author) Bill (Dispatcher) Joyce (Sales clerk) Douglas (Marketing manager) Kim (Methodologist) Elsie (Programmer) Eve (Software Manager) (Bookkeeper) Joe (Paymaster) Adam (Chief Accountant) Ruth (President) John (Cashier) Ann (Customer consultant) / Authorizer / BookKeeper / Paymaster The classifierRole represents the object’s position in the structure and its responsibility for performing its part of the system function. / Traveler Objects --> ClassifierRoles

Collaboration Diagram

Synthesis – People, Organizations & Components play several roles ProjectManager ProjectParticipant ProjectParticipant ProjectManager Project responsible Dept. Manager Project manager Section manager Project participant Hat-stand modellen Hatte-holder modellen Jmf. kombinasjon av PL/prosj.medarbeider-rolle og linjeansvar. Jane 2

Roles to Systems Component in Role Role Collaboration Interaction Path (With Information) Role Collaboration Framework, Middleware & Container Implementation Net Hardware Operating System

Drilling down – inside a role The open domain should make no assumptions about the “inside” of a role. Inside one role you frequently find more collaborating “parts” of the enterprise - the same model may be used Until you get to system inside a managed domain Shared resources (DBMS) Common Management Frequently a legacy system Code Role Inner Role Inner Role Legacy DBMS

Standards for Global Internet Computing XML EDOC WSDL SOAP .NET BPML XML-Schema XLANG

Web Service Standards XML Schema & DTD WSDL Soap Description and packaging of data WSDL Specification a services, operations and flows available via a service Soap Basic messaging and packaging Extensions for Soap-RPC with WSDL

EDOC Component Collaboration Architecture The model of collaborative work CCA

Parts of a CCA Specification Structure of process components and protocols Process components, ports, protocols and documents Class Diagram or CCA Notation Composition of process components How components are used to specify components Collaboration diagram or CCA Notation Choreography Ordering of flows and protocols in and between process components Activity Diagram

A simple methodology for creating collaborative business processes ECA Methodology A simple methodology for creating collaborative business processes

Basic Steps Identify roles and organize roles into collaborations Define collaboration documents Create basic business transactions Organize into protocols and events Use protocols to define ports on roles Drill-down into role detail Implement roles Configure implementations for deployment with technology specifics Deploy

Identifying roles and collaborations

Identify Documents

Distinguish protocols and events

Create Business Transactions

Organize into protocols

Add ports to complete community process

Drill-down

Add implementation As component compositions In a programming language By using an external service Wrap legacy As a simulation

Add technology specifics for deployment

Web Services for Enterprise Collaboration In standards process WSEC Web Services for Enterprise Collaboration In standards process

Main Parts Distributed Component Profile Aspects How to define & structure distributed components Aspects How to augment a model for a technology Aspects defined for WSDL/Schema The augmentations required for Web Services Mapping Transformations between ECA and WSDL/Schema

Distributed Components Define “role” as the abstract contract Define “Engine” as exposing a set of DCs Define “Endpoint” as consuming a set of DCs Define “Proxy” as the use of an external role

Engine exposing a DC

Defining an external component resource

Using a proxy Endpoint

Aspects

Mapping of a WSDL Engine - <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xs2000="http://www.w3.org/1999/XMLSchema" xmlns:xs2001="http://www.w3.org/2001/XMLSchema" name="SellerServer" targetNamespace="urn:SellerServer" xmlns:tns="urn:SellerServer" xmlns:CoreTypes="urn:CoreTypes" xmlns:Ordering="urn:Ordering"> - <!-- definitions obtained from component /BuySell/Deployment/SellerServer Aspects WSDL WSDL-SOAP

Mapping of a DC Aspects WSDL WSDL-SOAP - <service name="MySeller"> - <!-- implemented service role /BuySell/Deployment/SellerServer/MySeller   -->   <documentation><p> </p></documentation> - <port name="BuySellProtocol" binding="tns:BuySellProtocol"> original service port was /BuySell/Deployment/SellerServer/MySeller/BuySellProtocol (extending Component </BuySell/SellerImplementation/MySeller/BuySellProtocol> )   -->   <soap:address location="http://localhost:8080/cx/app/BuySell/Deployment/SellerServer/MySeller/BuySellProtocol" />   </port>   </service> Aspects WSDL WSDL-SOAP

Mapping of a protocol binding - <binding name="BuySellProtocol" type="tns:BuySellProtocol">   <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc" /> - <operation name="Order">   <soap:operation soapAction="urn:/BuySell/Community/BuySellProtocol/Order" style="rpc" /> - <input name="Order">   <soap:body use="encoded" namespace="urn:SellerServer" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> Aspects WSDL WSDL-SOAP

Mapping of a protocol Aspects WSDL WSDL-SOAP - <portType name="BuySellProtocol"> - <!-- original cx operation = /BuySell/Community/BuySellProtocol/Order   --> - <operation name="Order"> original cx flow port = /BuySell/Community/BuySellProtocol/Order/Order   -->   <input name="Order" message="tns:Order" />   <output name="OrderConfirmation" message="tns:OrderConfirmation" />   <fault name="OrderDenied" message="tns:OrderDenied" />   </operation>   </portType> Aspects WSDL WSDL-SOAP

Mapping of message types - - <message name="Order">   <part name="Order" type="Ordering:Order" /> <message name="OrderConfirmation">   <part name="OrderConfirmation" type="Ordering:OrderConfirmation" />   </message>   </message> - <message name="OrderDenied">   <part name="OrderDenied" type="Ordering:OrderDenied" />   </message> Aspects WSDL WSDL-SOAP

Mapping of data types - <xs2001:complexType name="Order"> - - <xs2001:sequence>   <xs2001:element minOccurs="1" maxOccurs="1" name="CompanyID" type="CoreTypes:CompanyID" />   <xs2001:element minOccurs="1" maxOccurs="1" name="OrderID" type="Ordering:OrderID" />   <xs2001:element minOccurs="0" maxOccurs="unbounded" name="Item" type="Ordering:Item" />   </xs2001:sequence>   </xs2001:complexType>                                  

Ways to map Generate code and other artifacts Usually required to adapt to legacy Emulates the manual process Assemble and configure existing generic and specific components Both efficient and dynamic Interpret or otherwise “animate” the high-level model High level & dynamic but may have performance issues Simulate Evaluate technical and business impact through simulation

MDA Automation Solution Automated Provisioning Test & Sim Artifacts Infrastructure Models Component Models System Engineer Domain Knowledge Automated Provisioning Documentation Artifacts Test & Sim Artifacts Components Harness Monitors Execution Artifacts Code (Java, C++…) Database Schema (SQL) Integration Artifacts Interfaces (IDL, WSDL) Configuration Metadata, Descriptors Runtime Configuration Policies, Processes Data Structures (XML,IDEF0) Message Formats IDEFx Solution

Example Generated Artifacts Implementation Artifacts (EJB Examples) Class Objects Jars,Wars,Ears Java Source Homes, SQL Stubs, Skeletons, Managers, Helpers, Holders, Primary Keys Interfaces Descriptors BeanInfo ,Editors. Documentation Serialization, . Persistence Management M0/M1 XMI/DTD Business Object Implementation Logic Artifact generation involves multiple tools EJB Container provider;Deployment tools;Packagers; java development tools(IDE);persistence provider;… Typical 10-20 per PIM Classifier 0-20% manual override

Web Services Plus/Minus Advantages High degree of buy-in and support Easy to implement in legacy as well as new systems Flexible and adaptive structure Rapidly improving performance and enterprise support Disadvantages Not the fastest thing around Security and reliability infrastructure needs work Does not carry binary data well (E.G. Images) Large system will require complex matrix of interdependent web services Still changing

MDA Mitigates Web Services problems and risk MDA components can use Web Services as one of many middleware technologies Switch to other middleware if Web Services does not prove-out for particular applications As web services changes and improves (E.G. better security) changes can easily be propagated to MDA supported components Web service specifications (WSDL) and middleware implementation can be automated MDA provides “system view” across many web services

GSA Enterprise Model Example Thanks to George Thomas Enterprise Architect General Services Administration

[4] GSA PIM

[4] GSA PIM

[4] FEA Inheritance

[4] FEA baseRole

[4] XMLDB Reusable Components – TRM Frameworks as OO Design Patterns Components for provisioning Implementation Simulation and Documentation

GSA Process Model Trace Next few slides are screen shots from Live Simulation of a notional ‘to-be’ GSA EA model in Component-X, which traces through each and every component in the business collaborations that have been modeled

Model-driven UI for submitting a UBL Order

trace population

The UBL OrderResponse

GSABuySell component context

AcquisitionManagement component context – a view of ‘recursive decomposition’

in-context UBL Order data

Purchasing component context

in-context UBL OrderResponse data

FOP generated performance_trace.pdf

B-P-A-A as ABM input

Iterative Development Business Model Design Deploy Release Build Automation Build Build Build Build Build Infrastructure Development

Net effect Using these open standards and automated techniques we can; Achieve the strategic advantage of an open and flexible enterprise Produce and/or integrate these systems FASTER and CHEAPER than could be done with legacy techniques Provide a lasting asset that will outlive the technology of the day Integration of modeling, simulation and executable systems