440 likes | 601 Views
Connecting Systems With ASAP Keith D. Swenson Fujitsu Software Corporation Workflow Management Coalition OASIS. Sept, 2004. Overview. Motivation for a Standard Home Purchase Scenario Key Concept: Plug & Play Processes It is not the wires , but the plug ASAP interaction patterns
E N D
Connecting SystemsWith ASAPKeith D. SwensonFujitsu Software CorporationWorkflow Management CoalitionOASIS Sept, 2004
Overview • Motivation for a Standard • Home Purchase Scenario • Key Concept: Plug & Play Processes • It is not the wires, but the plug • ASAP interaction patterns • Wf-XML interaction patterns • Interoperability Demo • Summary
Appraiser Mortgage Company Geology Report Escrow Company Toxic Report Title Company Bank Credit Report Assessor Home Purchase Scenario Buyer’s Agent Buyers Sellers Seller’s Agent
This is a perfect workflow scenario …. Very common transaction Large value Mistakes are expensive Only thing moved is information Why isn’t this business automated? No dominant player to set standard No fixed standard – differences are competitive advantage Many varied local laws Companies involved are small and can not afford development toward complex interactions
Requirements • While companies are automated internally, what is needed is a quick and easy way to link their data: • Without getting bogged down in complex processes • Without needing a programmer • Without having to change the way they work now • Without requiring that every partner be identical • ASAP offers a plug-and-play approach to linking data of long term processes
Essential Connectivity Telephone Company Connection wired by an electrician.
Empowering the Less-Technical Telephone Company Connection can be made by non-technician
Essential Choreography SOAP XML System A System B WSDL WSDL BPEL C# System Developer /System Integrator System Developer /System Integrator
Connections via A.S.A.P. SOAP XML System A System B WSDL WSDL BPEL C# System Developer /System Integrator System Developer /System Integrator System Operator
Home Purchase Scenario with A.S.A.P. Buyer’s Agent Appraiser Mortgage Company Buyers Geology Report Escrow Company Toxic Report Title Company Bank Sellers Credit Report Assessor Seller’s Agent
Making a connection with ASAP Mortgage Company Escrow Company • Enter the URL for the mortgage service • Escrow system retrieves schema from the mortgage system for exchange. • Map escrow system fields to mortgage system fields using graphical data mapping tool No programming required!
Interstage BPM implementation (1) Factory URL (2) Mapping from field to field
Not just a single round trip Context Data Appraisal Company Escrow Company Result Data Set up connection Initial CreateInstance message Receive background info & start planning C time Notify Data message R Assign appraiser Notify Data message Make appointment & estimate due date R Schedule Changed SetProperties message C GetProperties message Need to check on status C R Final report ready Completed message R Receive report, allows other things to go forward
The Basic ASAP Pattern Factory CreateInstance Instance Observer Context XML Data Result XML Data Completed
What is a Factory? • A factory represent a ‘class’ or type of asynchronous service. • e.g. “Loan Application” for a mortgage company • A given organization may have any number of factories for difference services they offer. • Each factory is a “Resource”. It has an address • Specify the factory address, you specify the asynchronous service, in the same way that a web address specifies a document • Factories can be introspected directly to discover how to interact with them.
The Full ASAP Pattern Factory CreateInstance GetData Instance Observer SetData Context XML Data Notify Result XML Data Completed
What is an Instance? • An Instance represents an ‘instance’ of a class. • The “CreateInstance” command is like the “new” operator in an oo programming language. • It is also a Resource, it has an address, and can be accessed with SOAP requests. • “Context Data” is the data supplied (as an XML structure) to the instance upon starting it. • “Result Data” is the data returned (as an XML structure) when the service is complete
What is an Observer? • An observer MAY be a resource with a web address. • It must be a resource in order to receive notifications from the instance. • If it is not a resource, it must use polling techniques to discover when the service instance is done. • Additional observers may register to receive notification events at any time.
Container Factory Instance Activity Wf-XML Extension Patterns ListFactories CreateFactory Observer ListInstances ListActivities Get/SetData
Interoperability Demo • June 23, 2004 • Hosted by the BrainStorm Group at theirBMP Conference in San Francisco • All clients/servers on internet • Demonstration client has a simple UI to invoke the asynchronous services from a web form. • Each implementation exposes a factory that can be called with a specified context structure, and returns a specific result structure a few seconds later. • The delay demonstrates asynchronous behavior
Committed Participants (as of June 7) Customer Retailer Manufacturer Fujitsu (Java) Staffware EasyASAP (OpenSource C++) Handysoft Demo Server (C# .Net) Fujitsu (Java) Staffware EasyASAP (OpenSource C++) Handysoft Demo Client (C# .Net)
Demo interaction pattern .Net Reference Client Fujitsu Staffware HandySoft EasyASAP Retailer Manufacturer Manufacturer Manufacturer
How to run a demo for yourself • Visit the .Net reference client • http://67.113.139.106/asapclient/ (California) • http://193.131.190.26/asapclient/ (England) • Choose a Factory from the list (or enter your own URI for another factory) • Press create instance • Enter valid XML Data, press submit • Click Refresh until the response is returned • Click Details to see the final results
.Net Reference Client/Server Jeff Cohen Fujitsu Keith Swenson – ASAP Chair Sameer Predhan Handysoft Susan Muldoon Rob Cain Cisco Systems Mayilraj Krishnan - Editor EasyASAP Open Source John Fuller – ASAP Secretary TIBCO / Staffware Justin Brunt Adrian Tonkin WfMC Layna Fischer Danielle Smith Thanks to Key People
What is next? • ASAP • Touch-up the specification with lessons learned during the interoperability demo development. • Advance it through OASIS Process • Wf-XML 2.0 • Bring Wf-XML 2.0 to same level of maturity • Challenge process design tool vendors to demonstrate ability to upload and download process definitions using Wf-XML 2.0 in January 2005 BPM Engine Process Design Tool
Summary • Asynchronous Service Access Protocol • designed to meet this need. • XML / SOAP messages • OASIS technical committee http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=asap • WfMC Protocol Wf-XML • Layered on top of ASAP • Demo Site: • http://67.113.139.106/asapclient/
Relationships Protocol Metadata Wf-XML 2.0 WSDL 2.0 ASAP WSDL SOAP
Overlap with other work? • Why not just use asynchronous messaging? • ASAP messages can be sent synchronously (HTTP) or asynchronously (SMTP, MQ, etc). ASAP does not require one or the other, nor does it replace either. • ASAP is more than just delayed response, it is not just asynchronous messages, it includes the ability to check status and update request, even terminate early. • Not a single round trip. Context Data and Result Data can be read/set multiple times over the course of a single “connection”.
Overlap with other standards? • BPEL • programming language, not protocol. Use BPEL to implement ASAP • WS-Security • no overlap: use this for secure ASAP exchanges, • WS-CAF • no overlap: use this for transactional ASAP messages • WS-Reliability, reliable messaging • no overlap: use this so that ASAP messages are reliable • SOAP • No overlap, ASAP messages use SOAP • ebXML • ASAP interaction pattern can be implemented with ebXML messaging
Overlap with other standards? • WS-Eventing • Proprietary spec, not a standard, would like to be able to use this in ASAP • WS-Addressing • Proprietary spec, not a standard, would like to be able to use this in ASAP. • WS-ResourceProperties • This group was started in 2004, well after ASAP had announced interoperability demonstration. There is some overlap, you can wait for this is you wish, but ASAP is available today. • UDDI • no overlap: use UDDI to advertise factory operations • WSDL • No overlap, WSDL is used to define ASAP operations
ASAP is not needed? • Why fix a particular choreography, when you could have any choreography? • When a system allows any choreography, then the choreography must be programmed by a programmer. • Message structures must be defined. • Actions to receive messages, transform them, and send them. • ASAP simplifies this by defining a set of specific operations and a specific pattern of interaction that works in 80% of the cases. • There are an infinite number of ways to do something. Standards are all about specifying one particular way. • ASAP can be a starting point for further refinement in a more elaborate interaction. It is a step in the ladder.
Evaluating Standards • Do both sides need to be designed to a common schema before connections can be made? • Does the schema has be be specified first? • Can connections be made without redesigning the internal system? • Is a programmer required to make a “connection” • Tight Integration vs. Loose Integration • Progress and Status Reporting • Is there a concept of “Context”?