use of output operations - a "real" product example

Hi all, 

In last week's conference call, some mentioned that so far the use cases for output operations are all "theoretical", and would like to see a real world example about how real products can use wsdl output operations. I took an AI to write up SAP's use of output operations in its web services-based
integration platform. Hope the following brief description can provide such an example and fulfill the AI. 

SAP Exchange Infrastructure (XI) is SAP's platform for process integration based on the exchange of XML messages. It
*  Provides a technical infrastructure for XML-based message exchange in order to connect SAP components with each other, as well as with non-SAP components 
*  Delivers business-process and integration knowledge to the customer, in the form of SAP's predefined business scenarios 
*  Provides an integrated toolset for building new business scenarios by defining and maintaining all integration-relevant information ("shared collaboration knowledge") 

Different from simple services where all interface and binding info are known and can be provided in a single wsdl file, in this infrastructure, the design time information, configuration time information and run time information are handled by different roles and are collected at different phases: 

*  WSDL is used at design time to describe what message a service can send and what message a service can take. All services are treated as peers in this infrastructure, and the wsdl interfaces for all services are stored in a public registry. In a peer to peer case, it's logic to think that some
services just send outbound message, some services just take inbound message. Output operations are used to describe services which send outbound messages. Think in client-server term, one can say that output operations can be used to describe a client's "requirement". 
*  At design time, binding details might be considered as not really relevant: the knowledge of the other systems it might need to communicate in a customer's IT landscape is not available yet whereas binding decisions might depend on agreements  between the two systems/services that need to
communicate. 
*  When the system is actually installed for a customer, shared collaboration knowledge, including binding requirements of each system are collected at deployment and configuration time. The infrastructure provides facilities for a customer to manage it's overall it landscape, and design its own
business scenarios. 
*  At run time, the infrastructure provide mapping and routing services based on collaboration knowledge collected at design and configuration time. 

The product is in version 2.0 and is in use by a few SAP customers. The above is just a very high level description about the product and how wsdl is used. Exactly how this specific product works is not important here, the point is that 

1. Output operations in the abstract level are useful for  products that deal with complex integration scenarios. Lack of "standard" binding specification may not be a concern since binding requirements and routing path between two systems can be achieved at configuration and run time via mutual
agreement of the two systems

2. It's important that a service is able to describe its outbound operations independent of the services it may interact. 

For example a customer has bought a CRM system say from SAP and an APO system from some other vendor. For a certain business process of this customer, the APE system may acts as a server, and the CRM system sends requests such as "ATPCheck"  to this server. Therefore, the CRM system does certain
output operations when communicating with the APO server. In fact these output operations do not  necessarily have to be symmetrical to the input operations of the server. Even though they may be initial symmetrical, both sides may evolve in different cycle. Old services of the APO server may phase
out and be replaced by new services. Nevertheless the CRM does not change its output operations simultaneously because it has its own release cycle. Therefore the signature of the CRM output operation may differ from the APO input operation. They still can talk via mapping services which relies on
wsdl descriptions. 

Another example is a sort of pub/sub use case involving a Business Warehouse product. Imagine a customer runs a sales order processing system that sends its sales orders to a backend system for order fulfillment, invoicing, etc. Now the customer buys a business warehouse system to keep track sale
orders and provide statistical information. This new system also absorbs the sales order messages sent by the sales order processing system and evaluates some statistical information. In this case the sale order process service's output operation maybe mapped to two different input operations. 

Best Regards,
---------------------------
Canyang Kevin Liu
Technology Architecture, SAP
3475 Deer Creek Road
Palo Alto, CA 94304 
(650) 849-5167 
http://www.saplabs.com/

Received on Thursday, 12 December 2002 03:15:10 UTC