Presentation is loading. Please wait.

Presentation is loading. Please wait.

Connecting Systems With ASAP Keith D

Similar presentations


Presentation on theme: "Connecting Systems With ASAP Keith D"— Presentation transcript:

1 Connecting Systems With ASAP Keith D
Connecting Systems With ASAP Keith D. Swenson Fujitsu Software Corporation Workflow Management Coalition OASIS June, 2004

2 Motivation for a Standard Key Concept ASAP interaction patterns
Overview Motivation for a Standard Home Purchase Scenario Key Concept It is not the “wires”, but the “plug” ASAP interaction patterns Wf-XML interaction patterns Interoperability Demo Summary

3 Home Purchase Scenario
$$$ Buying a home is something that most of us, if not directly, at least indirectly are familiar with. The home purchase is a significant job, because the value is so high, and the amount of money being transferred is high. It is also a very difficult process because there are so many things to consider. Many different experts are brought in to the process to do specific jobs, and often these experts work at different companies, so there is a huge coordination task. Furthermore, since the amounts of money are so large, delays in getting things done can be costly if not coordinated correctly. For the most part today, this process is almost entirely un-automated. It is done primarily by shipping pieces of paper via courier. There are some special challenges to automating this scenario.

4 Home Purchase Scenario
Buyer’s Agent Appraiser Geology Report Toxic Mortgage Company Escrow Company Buyers Title Company Bank Credit Report Assessor Most of the process of purchasing a house occurs after the buyers, sellers, and their agents come to agreement on the terms of the sale. A contract is submitted to an escrow company. Keep in mind that the details of the process vary by geographic location, but most of these elements will be present. The buyers will contact their preferred mortgage company, which often needs to deliver some indication that they are willing to loan the buyers the money for this particular house. Before they do that, they want an independent appraiser to investigate whether the house is worth more than the loan, whether there are undue geological risks (floods, earthquakes) and whether there are other things that might damage the value of the house. These reports need to be delivered to the escrow company. There will need to be a title search and that report must be included into the escrow. Of course the seller wants to make sure that the funds are transferred to their bank, and they may request up front a credit report to be sure they know who they are dealing with. Ultimately the tax assessor needs to be informed of the sale price of the house for tax purposes. Sellers Seller’s Agent

5 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

6 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-socket answer to linking data of long term processes

7 Essential Connectivity
Telephone Company Connection wired by an electrician. The in good old days, telephones were hard wired to the telephone company. The installation of a phone required the services of a trained electrician in order to be sure that things were connected correctly. When viewed from a systems perspective, this is a perfectly suitable situation. The connections were good and durable, the electrician made sure there were not any problem, and the system work. Note also, that if you asked a technician about the need to use an electrician to make the connection, the technician would point out any number of reasons why this is necessary and good. I am not mentioning this out of a sense of cynicism, but rather to make the point that technicians tend to think about how to make the system work as a system.

8 Essential Choreography
SOAP XML System A WSDL System B WSDL BPEL C# System Developer /System Integrator System Developer /System Integrator In a similar way many of the standards activities seem to concentrat on how technically to connect systems. That is why we have XML, SOAP, WSDL, ebXML, UDDI, and many other evolving standards designed to aid interoperability. To be sure, this is a significant challenge. These kinds of interoperability can be implemented any number of different ways and using different technologies. Java, C, C# are among the options. One very promising development is that of BPEL which will surely prove to be an excellent language for designing and implementing patterns of web service exchanges. The thing to remember about BPEL is that it is a programming language, fundamentally designed to be used by programmers. IT has language constructs found in many programming languages such as loops, conditions, block structure, exceptions, and transaction control. Indeed it must have these in order to implement a reliable message exchange. My point is that it will be a good tool for a system developer or a system integrator.

9 Empowering the Less-Technical
Telephone Company At some point it time someone figured ot that a lot of time and expense was being used sending electricians to do the fairly simple job of installing and removing phone from pre-wired locations. The RJ11 plug was invented. Now even I, without any training as an electrician, can install my own phone! The connection is reliable, and almost impossible to make a mistake. The telephone system is no less sophisticated, nor is the phone any less sophisticated. I don’t claim to have any special abilities in either of these realms. But the RJ11 plug allow me to connect and disconnect the telephone at will. Connection can be made by non-technician

10 Connections via A.S.A.P. System System Developer Developer /System
SOAP XML System A WSDL System B WSDL BPEL C# System Developer /System Integrator System Developer /System Integrator ASAP simply recognizes that while system A may have been designed and built by programmers, and system B may be designed and built with programmers, there is a third person involved in the story. This person is setting up and configuring the systems, but he or she is not a programmer. The programmer may have been around at the time that the Escrow company made the first connection to a Mortgage company, but when a new mortgage companies comes on line, it is not practical to go back to the programmer to modify the system. Instead the system should be “configurable”. A “configurable” system has any number of internal conditions which can be configured to “do things”. Those are the sockets. Then, there are a collection of things that “can be done”. Those are the plugs. Web Services was always strong on the promise of being able to be used by a configurable system to make an BPC style call to a remote system and retrieve information. That is fine as long as the result can be delivered immediately. The limitation came about only when the response was not immediately available. How long is long? Anywhere from a couple of minutes to a couple of months. This prompted the need to develop a standard Asynchronous interaction pattern that could be used to “plug-in” asynchronous services. That is what ASAP is, a standard pattern of interaction that makes it easy for non-programmers to configure an asynchronous interactions. How you implement this pattern is left open. You can use C, C++, C#, BPEL, or a number of other options. Some people mistakenly think that ASAP is competing with these technologies. It is not. BPEL does not specify a particular pattern of interaction, it is able to implement an unlimited variety of patterns, as are the other programming languages like Java, C++ and C#. Like any good language, the goal is flexibility to implement any possible pattern. The goal of ASAP is quite different. ASAP purposely specifies a particular pattern of interaction, so that those decisions do not need to be made by the system operator. Experience has shown in the Grid and the Workflow communities that this pattern is very useful and can handle a large number of situations. It does not handle every situation, just as the RJ11 does not handle every kind of electrical connection. The goal is not to handl everything, but to handle most cases very easily. System Operator

11 Home Purchase Scenario with A.S.A.P.
Buyer’s Agent Appraiser Mortgage Company Buyers Geology Report Escrow Company Toxic Report Title Company The goal then is that the escrow company will be a “configurable” system to allow the Mortgage system to be plugged in. We can not expect all mortgage companies to have exactly the same interface, so some configuring is required, but that configuring can be performed by non-programmers. Bank Sellers Credit Report Assessor Seller’s Agent

12 Making a connection with ASAP
Escrow Company Mortgage 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 That is it! No programming required! The goal then is that the escrow company will be a “configurable” system to allow the Mortgage system to be plugged in. We can not expect all mortgage companies to have exactly the same interface, so some configuring is required, but that configuring can be performed by non-programmers.

13 Interstage BPM implementation
(1) Factory URL (2) Mapping from field to field

14 Not just a single round trip
Context Data Escrow Company Appraisal Company Result Data Set up connection Initial CreateInstance message C Receive background info & start planning 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 Completed message Final report ready Receive report, allows other things to go forward R

15 Factory Instance Observer
The Basic ASAP Pattern Factory CreateInstance Instance Observer Context XML Data There are 3 key resources, the observer, the factory and the instance. The Factory represents the ‘class’ of service. It has a permanent address. In a sense, that address represents the service to be performed. Certain request can be made to that address to retrieve details about the service, such as the schema of the “context” data and “results” data, as well as other meta-data about the service. The most important request that can be made is the “CreateInstance” request, which includes the context data as an XML structure, and causes the factory to start the service. The purpose of a factory is to create service instances to do work, and to report the results back to the observer. Result XML Data Completed

16 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.

17 Factory Instance Observer
The Full ASAP Pattern Factory CreateInstance GetData Instance Observer SetData Context XML Data Notify Because the service may take a long time, it is represented over time as a “service instance”. This resource also has an address, and the address represents the work being done. Requests can be made to this address to find out the current status of the work. In some cases the service can be updated with information that may have changed since it was started. Finally a completed message is sent to the observer, and that contains the result XML structure. The observer MAY be another resource with an address. If it does have an address, then the completed notification can be delivered to it as the time that the service is done. There are other notifications that can be delivered as well as the work proceeds. If the observer is not a resource with an address, then it has to use a polling technique to find out the current status, and whether the service is done. Result XML Data Completed

18 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

19 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.

20 Wf-XML Extension Patterns
Factory Instance Activity Container ListFactories CreateFactory Observer ListInstances ListActivities The Wf-XML extends the ASAP model. First of all it introduces the concept that factories themselves may be added and removed. The concept of a container resource is defined. Operations are defined to list factories and to create new ones. BPM systems work in eactly this manner. The factory is defined by a ”Process Definition”. A new factory is created by supplying the container with a new process definition. Grids work in a similar way. A grid host is supplied with new program that can be run. That program is represented as a factory resource. Then, invocations of the program a represented by instance resources. Not all systems will have the ability to add factories in this way so this was not included in ASAP. The other area of expansion is on the other end of the scale. If desired, the service instance may choose to expose details of its internal state as “activities”. The activities represent what the service is doing at the time, so that the observer can have knowledge of the status of the service. Get/SetData

21 Interoperability Demo
June 23, 2004 Hosted by the BrainStorm Group at their BMP 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

22 Observers organizations (selected from over 500) have expressed interest in demo: AFLAC AG Edwards Agfa HealthCare Agile Software AIAI, University of Edinburgh AT&T Banamex Bank for International Settlements Bankers Systems, Inc. BearingPoint Bombardier Aerospace Budapest University of Technics & Economics Capgemini Citigroup Computer Associates Computer Sciences Corporation Deloitte&Touche Ethiopian Airlines FedEx Trade Networks France Telecom R&D Intel Corp. Johnson & Johnson Lockheed Martin Lucent Technologies Maersk Data Microsoft Business Solutions Nortel Networks North Wiltshire District Council Northrop Grumman Information Technology NSW Police Sandia National Laboratories Schlumberger ScotiaBank Sears, Roebuck and Company The Associated Press The Bank of East Asia The Undersecretariat of Treasury The Vanguard Group U.S. Nuclear Regulatory Commission United Nations Office for Project Services Wellington City Council Westpac Banking Corp.

23 The ASAP Scenario Customer Retailer customer order customer order
confirmation

24 The Wf-XML Scenario Customer Retailer Manufacturer customer order
manufacturer order Customer Retailer Manufacturer customer order confirmation manufacturer order confirmation

25 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)

26 Live Demo

27 Thanks to Key People .Net Reference Client/Server Fujitsu Handysoft
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 Staffware Justin Brunt Adrian Tonkin WfMC Layna Fischer Danielle Smith

28 Summary Asynchronous Service Access Protocol WfMC Protocol Wf-XML
designed to meet this need. XML / SOAP messages OASIS technical committee WfMC Protocol Wf-XML Layered on top of ASAP Multi-Vendor interoperability demonstration June 23

29 Relationships Protocol Metadata Wf-XML 2.0 WSDL 2.0 ASAP WSDL SOAP

30 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”.

31 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

32 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

33 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.

34 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”?


Download ppt "Connecting Systems With ASAP Keith D"

Similar presentations


Ads by Google