Business process: understanding BPEL4WS, Part 1
Concept of business processes December 2002
The recently released Web service business process execution language (BPEL4WS) specification is a web service standard for integration. You can create different activities that can complete WEB service calls, manipulate data, throw faults or terminate one process, and then connect them, creating complex processes. These activities can nest in structured activities, structural activities define the operating mode of the activities, such as serial or parallelism or depends on certain conditions. The purpose of this series is to let readers have aware of different parts of the BPEL4WS language and teach readers how they create their own complete processes. This article is part of this series, which will lead the reader to create the first simple process. The subsequent section will expand this example in different ways to illustrate and explain the key parts of the BPEL4WS language, including data manipulation, correlation, fault processing, compensation, and various structured activities in BPEL4WS.
Introduction Today, the Web service can communicate with each other through industry specifications, disclose themselves, discovered and called. However, until last week, the user still needs to make a choice from many mutually conflict specification for a business process or an integration, and the user needs this situation between IBM's WSFL and Microsoft's XLANG. . The business process of the Web service (BPEL4WS) is the product of WSFL and XLANG fusion. If you are lucky, it will become the basis of Web service integration standards. BPEL4WS sets of WSFL and XLANG (the former supports graphical processes, the latter supports the structured construction of the process), forming a combination of various types of business processes supporting a variety of types of business processes in a nature. Package. In addition to being a language, BPEL4WS can also be used to describe the interface of business processes - the way to use abstract processes. We will further discuss this issue in future articles. The initial implementation of BPEL4WS is called BPWS4J, IBM also released this initial implementation on AlphaWorks (see Refigu). Users can use this implementation as an experiment when learning and experimenting BPEL4WS. We discussed this article in this article. Basic concepts of BPEL4WS. The concept of BPEL4WS BPEL4WS supports two distinctive use situations:
Implement executable business processes. Describe the abstract abstract flow. This article focuses on the first case; this series will have an article to discuss some abstract flow concepts of BPEL4WS. As the implementation language of the executable process, the role of BPEL4WS is to integrate a set of existing services to define a new web service. Therefore, BPEL4WS is basically a language that implements such an integrated. As with any other Web service, the interface of the integrated service is also described as a collection of WSDL Porttype. Integration (referred to as a process) indicates the cooperation of the overall execution of the service interface and integration. Figure 1 illustrates the above case described by the BPEL4WS process from the outside. Figure 1. The integrated primitives that appear in the BPEL4WS as a BPEL4WS process is mainly experienced by many years of workflow and business process integration, so the positioning of BPEL4WS is a business process integration language. What is the event on the cloud block on the service? Unlike the traditional programming language to implement the WSDL service, each of the portType is not mapped into a separate logic block in BPEL4WS. The entire type of service (ie the portType collection of the service) is implemented by a single BPEL4WS process. Thus, the particular "entry point" corresponding to the external user operated by the calling interface is indicated in the BPEL4WS description. These entry points consumption WSDL operations are incorporated from only an input-ONLY operation or an input-output (input-output). For the latter case, the process must also indicate where the output message is generated. BPEL4WS only uses and supports only WSDL only input operation and input - output (request - response (repane) operation and output (notification) operation and output - input (output-input) - Solicit-response) The operation is neither not supported. The BPEL4WS process is basically a flowchart, similar to a flow chart used to express algorithms. Each step of the process is called an activity. There are some basic activities: call the operation on a web service (
The capabilities provided by these structured activities are: Define a set of steps (
Services are only called by the process. Only call the service service. Alternatively, it is called both the process of calling and calling the flow (which is possible). The first two are called partners and client partners, they are all simple. Consider the relationship between the process first call the service and services during the third case. This means that the service provides (or published) a porttype (PT1), then the process calls the operation of the porttype. At the same time, the process must provide a service from the portType (PT2) that calls the operation. In this way, from the perspective of the process, the flow requires the portType PT1 from the service and provides PortType PT2 to the service. From the perspective of the service, the relationship between the two will receive an opposite conclusion: the service provides the PortType PT1 to the process and requires the Porthpe PT2 from the process. Whether the process first calls the service or the opposite, the relationship between the service and the flow is as described above. The service link type is a third type of partner modeling to lead the service link type. The service link type is not from the perspective of a part of these participants to define the relationship between services and processes, but a third party statement, with this declaration to illustrate two (or more) services The relationship between. The service link type defines a set of roles, where each role indicates a group of portType. Its idea is that when two services interact each other, the service link type is how to interact with these two services - the parties have provided the statement. BPEL4WS defines partners with a service link type. Basically, partners are defined: give partners a name, then specify the name of the service link type, determine what role will serve as a role in this service link type, and determine what role will serve as a partner. For purely called partners and pure client partners, there will be only one role in the service link type, so it only indicates a role when defining partners. Partner names will then be used in
How do the client creates an instance of the service? Unlike traditional distributed object systems, the BPEL4WS instance is not created by plant mode. In contrast, the example in BPEL4WS is implicitly created when the message is reached. That is, the example is not identified by an explicit "instance ID), but is identified by some keyword fields in the data message. For example, if the process represents an order implementation system, the invoice number may be a "keyword" domain used to identify a particular instance involved in interaction. Thus, if there is no matching instance when the message arrives at the "start" point, then a new instance is automatically created and associated with keyword data in the message. After positioning the appropriate instance, you can only accept messages in the process of non-starting point; that is, in these cases, the message is actually transmitted to a particular instance. In BPEL4WS, find a suitable instance or create a suitable instance (if necessary) is referred to as message correlation (Message Correlation). There will be an article discussed message-dependent future in the future. Endy language We briefly explain the main underlying concept of BPEL4WS in this article. We discussed the BPEL4WS overall, and then discussed partners, faults, compensation, and life cycles. In this series, we intend to discuss various specific aspects of BPEL4WS in detail. [Editor Press] Each period of this column will alternately provide a series of series of concepts behind BPEL4WS and how to implement the series of these concepts from technology. The next phase will introduce the technology implementation. ] Reference information Click on the discussion of the top or bottom of the article on the discussion forum on this article. Download Business Processes for Web Services Java Runtime from AlphaWorks. Read the business process of the web service to execute language specification. Read the following related articles: Business processes and transaction automation and business processes in the Web Services world in Web services.
About the author Sanjiva Weerawarana is a researcher in the Component Systems group of IBM T.J. Watson Research Center. He is one of the authors of the BPEL4WS specification, WSDL specification, and WSFL specification, and one of BPWS4J, Apache SOAP, WSTK, WSDL Toolkit, WSIF, and WSGW developers. He received a Ph.D. in Purdue University. You can contact the author through Sanjiva@us.ibm.com. Francisco Curbera is a researcher in the Component Systems group of IBM T.J. Watson Research Center, and the head of the group. He is one of the authors of BPEL4WS specification, WSDL specification, and WSFL specification, and one of BPWS4J, Apache SOAP, and WSTK. He received a Ph.D. academy of Columbia University. Please contact him via Curbera@us.ibm.com.