Π 4 Technologies Building distributed systems using WS-CDL and FpML 16th May 2007 Steve Ross-Talbot CTO Hattrick Software Chair W3C Web Services Choreography.

Slides:



Advertisements
Similar presentations
Pi4soa Implementation Issues WS-CDL Candidate Recommendation December 2005 Pi4 Technologies Ltd.
Advertisements

Π4π4 Dancing with Services 10th January 2005 Steve Ross-Talbot Pi4 Technologies.
Web Services Choreography Description Language Overview 24th November2004 Steve Ross-Talbot Chief Scientist, Enigmatec Corporation Ltd Chair W3C Web Services.
Jeff Mischkinsky Nickolas Kavantzas Goran Olsson Web Services Choreography.
CSF Analysis WS-CHOR. Goals Capture the interaction of a set of web services … from a global perspective –Promote interoperability Software engineering.
Web Services Choreography Description Language Overview 6th December 2004 JP Morgan Steve Ross-Talbot Chair W3C Web Services Activity Co-chair W3C Web.
Web Service Architecture
Overview of Web Services
Web Service Ahmed Gamal Ahmed Nile University Bioinformatics Group
Documenting a Software Architecture By Eng. Mohanned M. Dawoud.
MODUL 1 Analisis & Informasi Proses Bisnis (CSA221)
Π 4 Technologies Building distributed systems using WS-CDL 10th June 2007 Steve Ross-Talbot Chair Pi4 Technologies Foundation CTO Hattrick Software Ltd.
Virtual Ticketing Agents using Web Services and J2EE Advisor: Dr. Chung-E-Wang Date: 05/06/03 Naveen Repala.
Scale Up Access to your 4GL Application using Web Services
G O B E Y O N D C O N V E N T I O N WORF: Developing DB2 UDB based Web Services on a Websphere Application Server Kris Van Thillo, ABIS Training & Consulting.
A New Computing Paradigm. Overview of Web Services Over 66 percent of respondents to a 2001 InfoWorld magazine poll agreed that "Web services are likely.
Business Process Orchestration
IS425 Autumn Norma Sutcliffe Session 71 Web Services A set of tools and protocols which enable software applications to communicate, pass data.
Web Services Andrea Miller Ryan Armstrong Alex. Web services are an emerging technology that offer a solution for providing a common collaborative architecture.
University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution.
IELM 511: Information System design
Web Service Architecture Part I- Overview and Models (based on W3C Working Group Note Frank.
Chapter 13: Process Specifications Service-Oriented Computing: Semantics, Processes, Agents – Munindar P. Singh and Michael N. Huhns, Wiley, 2005.
SOA, BPM, BPEL, jBPM.
2005/05/25 Unified Modeling Lanauage 1 Introduction to Unified Modeling Language (UML) – Part One Ku-Yaw Chang Assistant Professor.
Object-Oriented Software Testing. C-S 5462 Object-Oriented Software Testing Research confirms that testing methods proposed for procedural approach are.
Adapting Legacy Computational Software for XMSF 1 © 2003 White & Pullen, GMU03F-SIW-112 Adapting Legacy Computational Software for XMSF Elizabeth L. White.
1 3. Implementing Web Services 1.Create SOAP proxy interfaces and WSDL based service descriptions 2.Register/publish services 3.Stores service descriptions.
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
1 Web Service Choreography Interface (WSCI) 1.0 W3C Note 8 August Dumitru Roman.
What is Service Oriented Architecture ? CS409 Application Services Even Semester 2007.
OASIS Week of ebXML Standards Webinars June 4 – June 7, 2007.
Web Services Based on SOA: Concepts, Technology, Design by Thomas Erl MIS 181.9: Service Oriented Architecture 2 nd Semester,
Random Logic l Forum.NET l Web Services Enhancements for Microsoft.NET (WSE) Forum.NET ● October 4th, 2006.
The GOOD the BAD the UGLY WS-CDL: the GOOD the BAD the UGLY.
95-843: Service Oriented Architecture 1 Master of Information System Management Service Oriented Architecture Lecture 7: BPEL Some notes selected from.
Web Services Presented By : Noam Ben Haim. Agenda Introduction What is a web service Basic Architecture Extended Architecture WS Stacks.
XML Engr. Faisal ur Rehman CE-105T Spring Definition XML-EXTENSIBLE MARKUP LANGUAGE: provides a format for describing data. Facilitates the Precise.
The Business Choreography Language (BCL) A Domain-Specific Language for Global Choreographies Institute for Software Technology and Interactive Systems.
INT-9: Implementing ESB Processes with OpenEdge ® and Sonic ™ David Cleary Principal Software Engineer.
Kemal Baykal Rasim Ismayilov
CIM LAB MEETING Presentation on UML Rakesh Mopidevi Kwangyeol Ryu.
16/11/ Web Services Choreography Requirements Presenter: Emilia Cimpian, NUIG-DERI, 07April W3C Working Draft.
Testing OO software. State Based Testing State machine: implementation-independent specification (model) of the dynamic behaviour of the system State:
Introduction to Web Services. Agenda Motivation History Web service model Web service components A walkthrough examples.
1 G52IWS: Web Services Chris Greenhalgh. 2 Contents The World Wide Web Web Services example scenario Motivations Basic Operational Model Supporting standards.
WS-CDL and a Theoretical Basis for Communication-Centred Programming 5th December 2006 Marco Carbone Imperial College London.
Course: COMS-E6125 Professor: Gail E. Kaiser Student: Shanghao Li (sl2967)
A Mediated Approach towards Web Service Choreography Michael Stollberg, Dumitru Roman, Juan Miguel Gomez DERI – Digital Enterprise Research Institute
Dr. Rebhi S. Baraka Advanced Topics in Information Technology (SICT 4310) Department of Computer Science Faculty of Information Technology.
1 G52IWS: Web Services Description Language (WSDL) Chris Greenhalgh
Web Services Blake Schernekau March 27 th, Learning Objectives Understand Web Services Understand Web Services Figure out SOAP and what it is used.
DEVELOPING WEB SERVICES WITH JAVA DESIGN WEB SERVICE ENDPOINT.
Net-centric Computing Web Services. Lecture Outline  What is Web Service  Web Service Architecture  Creating and using Java Web Services  Apache Axis.
Basics of RSA Rational Software Architect. What is RSA? Comprehensive Modeling and Development environment that leverages the Unified Modeling Language.
Software Architecture Patterns (3) Service Oriented & Web Oriented Architecture source: microsoft.
By Jeremy Burdette & Daniel Gottlieb. It is an architecture It is not a technology May not fit all businesses “Service” doesn’t mean Web Service It is.
1 Seminar on SOA Seminar on Service Oriented Architecture BPEL Some notes selected from “Business Process Execution Language for Web Services” by Matjaz.
Added Value to XForms by Web Services Supporting XML Protocols Elina Vartiainen Timo-Pekka Viljamaa T Research Seminar on Digital Media Autumn.
Business Process Execution Language (BPEL) Pınar Tekin.
Sabri Kızanlık Ural Emekçi
Object-Oriented Analysis and Design
Choreography Proposal
Overview of Web Services
Service-centric Software Engineering
Business Process Management
Introduction to Web Services
Presentation transcript:

π 4 Technologies Building distributed systems using WS-CDL and FpML 16th May 2007 Steve Ross-Talbot CTO Hattrick Software Chair W3C Web Services Choreography WG Chair Pi4 Technologies Foundation Thanks to Pi4 Technologies Foundation Ltd ( Hat Trick Software Ltd (

π 4 Technologies Agenda Background Why is process important? Why use WS-CDL? What is WS-CDL? Deep dive

π 4 Technologies Background FpML –Financial Products Markup Language –Policed by ISDA FpML today is –A set of documents that describe the structure of how to encode financial products in XML –XMLSchema to enable validation of correct message formats –There are a set of sequence diagrams to govern when to send what to whom

π 4 Technologies Background Typical message:

π 4 Technologies Background Typical flow:

π 4 Technologies The problem How do we know what the context is for any FpML message Is it NovationConsentGranted? Is it NovationConsentRefused?

π 4 Technologies The solution today Hope and pray …. –Add meta data around the FpML package –Agree meta data with your clients NovationConsentGranted AllocationId 9876

π 4 Technologies The problem today Behavior first. Content second. No agreement on meta data needed, because there are no fully defined processes What makes a NovationConsentGranted a NovationConsentGranted is the process not the message. The message is a consequence.

π 4 Technologies The problem today Sequence diagrams are not enough

π 4 Technologies Buyer, Seller, Credit Agency, Shipper. Buyer barters with the Seller to get a price Buyer accepts a price and places an order Seller checks Buyers credit worthiness Seller requests delivery from Shipper Shipper sends delivery details to Seller and to Buyer How do we write this down today? –Bubble and stick –Sequence diagrams –WS-CDL An Example

π 4 Technologies BuyerSeller Shipper Credit Agency An Example - Bubble and Stick

π 4 Technologies BuyerSeller Buyer request a quote from the seller. Seller responds with a quote. Quotes may timeout. Buyer MAY update quote and request the update from the seller. Seller MAY respond with the update quote. Buyer MAY accept the quote. An Example - Bubble and Stick

π 4 Technologies BuyerSeller Shipper Credit Agency Seller checks credit worthiness. Seller requests delivery from Shipper. Shipper sends delivery details back to Seller and to Buyer. If Buyer accepts the quote. If Credit worthiness is okay An Example - Bubble and Stick

π 4 Technologies An Example - Sequence diagrams

π 4 Technologies An Example - Sequence diagrams

π 4 Technologies An Example - Sequence diagrams

π 4 Technologies An Example - Sequence diagrams

π 4 Technologies Why Process? All messages exist in a context. –E.g. fpml:RequestAllocationConfirmation message will not be relevant in an Affirmation (Trade) business process It’s not what you do but the way that you do it –Did I expect to get an fpml:AllocationConfirmed message after sending an fpml:ConfirmAllocation? –Ordering is important because it defines how you behave. Behaviour directly impact interoperability. Can I work with Mega Bank? Standardising the business processes increases STP rates and enables the market to grow. –The differentiator is the product being sold not how the back office deal with it.

π 4 Technologies Why WS-CDL? Need to describe a business process from an architectural neutral perspective. Need to describe a complex model in which participant roles may change. Need to model a message oriented business processes as well as having an option to leverage Web Services. Need to use a recognised standard to avoid vendor lock-in. Need to have open source tools for description to avoid vendor lock-in.

π 4 Technologies What is WS-CDL? Standard from the W3C Enables processes (protocols, business processes) to be described from a neutral or global perspective, enabling the services to run as peers whilst guaranteeing interoperabilty of those services. Described processes based on their common collaborative behavior through message passing, called interaction.

π 4 Technologies Where does WS-CDL fit? XMLSchema describes format WS-CDL described behavior Format + Behavior = systems

π 4 Technologies FpML 4.3 Open source tool for process description XMLSchema (with meta data identified) Scenarios validated against a WS-CDL model Scenarios for review, Html for review, BPMN for review Generation of roles directly into code or through UML into code

π 4 Technologies Opensource toolsuite Pi4 Technologies Foundation open source tool suite – –Eclipse plugins (pi4tech update site)pi4tech update site –Graphical modeling environment –Static type checking (completeness, lock free, race condition free) –Export WS-CDL WSDL HTML BPMN –Generate UML artifacts Java (for J2EE) Java (for Axis) BPEL –Monitor Against WS-CDL description Legacy and/or generated

π 4 Technologies FpML 4.3 model overview

π 4 Technologies FpML 4.3 model designer

π 4 Technologies FpML 4.3 model

π 4 Technologies FpML 4.3 model

π 4 Technologies FpML 4.3 model

π 4 Technologies FpML 4.3 model

π 4 Technologies FpML 4.3 model

π 4 Technologies FpML 4.3 model

π 4 Technologies FpML 4.3 model In a nutshell: –Types Roles - encapsulations of behavior Participants - encapsulations of end-points that play roles Information types - messages and useful variables Channel types - to facilitate communication Bindings of channel types to message types through identity (called session typing) –Ordering/Business Processes Interactions over channels (sending and receiving of messages) Ordering and dependencies –Situated –Project out participant behaviors

π 4 Technologies FpML 4.3 confirmations AllocationAlleged [Acc2All] OR RequestAllocationConfirmation [All2Acc], AllocationUnmatched [Acc2All] OR RequestAllocationConfirmation [All2Acc], DO Loop Loop { Choice { 1.ModifyAllocationConfirmation [All2Acc], IF (policy) THEN ModifyAllocationMatch[Acc2All] 2. AllocationMismatched[Acc2All] 3. CancelAllocationConfimation[All2Acc], (AllocationCancelled OR AllocationAlreadyMatched)[Acc2All] 4. AllocationAlreadySubmitted [Acc2All] 5. RequestAllocationMatched[Acc2All], AllocationMatched[All2Acc], ConfirmAllocation[Acc2All], AllocationConfirmed[All2Acc] 6. AllocationAlreadyMatched[Acc2All] } if you do any of 2, 3,4 5,6 then break the loop }

π 4 Technologies FpML 4.3 Confirmations Project out the behavior of the Alleger and the Accepter. AllStateMachine policies the Alleger role. –When it sends AccStateMachine policies the Accepter role. –This guy receives How do you know they are correct –Statically - advanced typechecking shows conformance. –At runtime - with session mgmt and monitoring against expected behavior……. For example …..

π 4 Technologies FpML 4.3 confirmations AllocationAlleged RequestAllocationConfirmation AllocationUnmatched RequestAllocationConfirmation ModifyAllocationConfirmation ModifyAllocationMatch ModifyAllocationConfirmation ModifyAllocationMatch ModifyAllocationConfirmation ModifyAllocationMatch CancelAllocationConfirmation AllocationCancelled RequestAllocationConfirmation RequestAllocationMatched AllocationMatched ConfirmAllocation AllocationConfirmed RequestAllocationConfirmation ModifyAllocationConfirmation ModifyAllocationMatch ModifyAllocationConfirmation ModifyAllocationMatch RequestAllocationMatched AllocationMatched AllocationConfirmed   HOW CAN WE DETERMINE IF THESE SEQUENCES OF MESSAGES ARE CORRECT? ConfirmAllocation RequestAllocationConfirmation RequestAllocationMatched AllocationMatched ConfirmAllocation AllocationConfirmed RequestAllocationConfirmation ModifyAllocationConfirmation ModifyAllocationMatch ModifyAllocationConfirmation ModifyAllocationMatch RequestAllocationMatched AllocationMatched AllocationConfirmed

π 4 Technologies ConfirmAllocation RequestAllocationConfirmation ModifyAllocationConfirmation ModifyAllocationMatch ModifyAllocationConfirmation ModifyAllocationMatch RequestAllocationMatched AllocationMatched AllocationConfirmed FpML 4.3 confirmations

π 4 Technologies FpML 4.3 scenario

π 4 Technologies CDL generation CDL State machine per service –Send Send.java –Receive Receive.java –SilentAction Activity.java –Predicate Predicate.java –Channel (discovery) Channel.java –Stubs Preserve behavior of the distributed system described Make calls to the context to retrieve, manipulate and store state. State is stored in a context per participant service and passed to the stubs –Context Hashmap (name, object) Name is the name of the variable in the CDL description setVariable(….) getVariable(….)

π 4 Technologies CDL generation

π 4 Technologies CDL generation

π 4 Technologies CDL generation

π 4 Technologies CDL generation

π 4 Technologies CDL generation

π 4 Technologies CDL generation Receive public class PublishMessageExReceive extends DefaultActivityExtension implements ReceiveActivityExtension { ……. public void processMessage(ExtensionContext context, Message message) throws ServiceException { }

π 4 Technologies CDL generation Send public class InvalidCounterpartyExSend extends DefaultActivityExtension implements SendActivityExtension { ……. public java.io.Serializable getMessageContent( ExtensionContext context) throws UnresolvedConstraintException, ServiceException { java.io.Serializable ret=null; ……. return(ret); }

π 4 Technologies CDL generation Activity public class PrepareCounterPartyExceptionActivity extends DefaultActivityExtension implements SilentActivityExtension { ……. public void process(ExtensionContext context) throws ServiceException { …… }

π 4 Technologies CDL generation Predicate public class SuccessfulLookupPredicate extends DefaultActivityExtension implements PredicateExtension { ……. public boolean isSatisfied(ExtensionContext context) throws UnresolvedConstraintException, ServiceException { boolean ret=false; ……. return(ret); }

π 4 Technologies CDL generation Channel public class ConfirmationAlledgerChannel extends DefaultActivityExtension implements ChannelCreationExtension { { ……. public EndpointReference discover( ExtensionContext context, String serviceType, String endpointReferenceType,ServiceRegistry registry, SemanticAnnotations semantics) throws DeferProcessingException, ServiceException { EndpointReference ret=null; ret = registry.discover(serviceType, endpointReferenceType); return(ret); }

π 4 Technologies CDL generation Context: Is a hash map. Object val = context.getVariable(“businessEvent”); context.setVariable("businessEvent",val); Contexts are local to the participant service StubClass { stubToFillIin(Context c) { v1 = c.getVariable(“varName”); …… c.setVariable(“varName”,v1); }

π 4 Technologies Demo CDL editor – FpML model – End point projections – Generation to HTML and BPMN – Generation to Java Confirmations – Inject some messages – See what happens at the Acceptor and the Alledger – Monitor the participants against the choreography description Uses – generic CDL aware gateways and a monitor from Hat Trick Software, – Any JMS messaging, including QPid, – J2EE container

π 4 Technologies Demo Accepter Alledger

π 4 Technologies Demo

π 4 Technologies Demo

π 4 Technologies Demo Message contents: Could introduce an xslt style sheet to pretty print. Logical communication channels between participants: NullChannel is for out of sequence messages. What actually happened: Externally observable message exchanges.

π 4 Technologies Demo Message Sequence Number for the monitor Business identifier for the transaction Sending Participant (Service) Receiving Participant (Service) Logical operation name Status (Initiated means sender sent, Completed means receiver received)

π 4 Technologies Questions