a is a block diagram illustrating an example flow through the example system of
b illustrates an example flow of design-time process modeling and run-time execution of example processes by example business systems.
c illustrates a graphical view of example operations of example processes for an example process execution engine.
a-17d illustrate example relationships of data elements included in an example message format associated with an example process associated with an example party A.
a-18b illustrate example relationships of data elements included in an example message format associated with an example process associated with an example party B.
In
Based on the internal, or private process, a view, which may be referred to as a public process, may be created. The public process may conceal confidential process details and may expose only process steps that may be required for an interaction. For example, a private process A for accepting customer orders for goods of a shipper may be associated with a public process A that includes process steps for receiving the customer order and completing the order. A related private process B for a carrier may be associated with a public process B that includes process steps of selecting a shipping condition and calculating a rate for shipping an item. The public process(es) may be used by partners, for example, business partners A and B, to create a new process that may be referred to as a collaborative process, e.g., a Collaborative Business Process (CBP) that may involve both internal and external services, as discussed further below. In the example shown in
A WSDL file may be regarded as a type of extensible Markup Language (XML) file. For example, a WSDL file may include a set of operation definitions, and the WSDL file may be referred to as a Web service description. Thus, one operation of a WSDL file may be referred to as a “Web service operation,” a “WSDL operation,” or an “operation.” Such an operation may include, for example, an input message, an output message, or an input and an output message. A WSDL file may include the message definitions, which may be represented, for example, as XSDs, or XML schemas. The processes may be represented, for example, in a workflow description language format, for example, in a proprietary format or Web Services Business Process Execution Language (WSBPEL). The process descriptions may include workflow constructs (e.g., sequence, decision, fork, merge, join) and process steps. Thus, a process step may be connected to a WSDL operation such that the inputs and outputs of the process step may include the inputs and outputs as defined for the connected Web service.
The lifting engine 104 may include an alignment generator 110 that may be configured to generate an alignment of input and output messages of operations of public processes with ontologies stored in a domain ontology storage 112. The lifting engine 104 may also include a semantic description generator 114 that may be configured to generate a semantic description of input public processes. For example, the WSDL operations and process specifications may be converted to a semantic web service format. The alignment generator 110 may be configured to receive, for example, representations of input and output messages of operations of public processes for a partner A and a partner B. These representations may, for example, include representations in the format of eXtensible Markup Language (XML) schemas, for example, XSD elements. The alignment generator 110 may further access the domain ontology storage device 112 to obtain ontologies for determining an alignment of the received input and output messages with appropriate ontologies. Generally, an ontology may be viewed as a means of classifying certain concepts. For example, an ontology may provide an account of which words refer to entities, which do not, why, and what categories result.
For the example of
The semantic description generator 114 may, for example, convert the original public process representation to a semantic format. Such a semantic format may then be input to a composition engine 116 for generation of a collaborative process.
A mapping engine 118 may be configured to generate a list of possible executable mappings between XML schemas, for example, based on the alignments between the ontologies and the XML schemas. For example, for each alignment the mapping engine 118 may search for other alignments that relate schema entities to equivalent ontology entities, based on the alignments and the ontologies included in the domain ontology storage 112. If such entities are determined, a new mapping expression may be generated for determining how schema entities may be related. The new mapping expression may then be added to the mappings, as discussed further below and as illustrated, for example, in
The mappings generated by the mapping engine 118 and the semantic descriptions generated by the semantic description generator 114 may be received by a composition engine 116 that may be configured to generate the collaborative process based on the received mappings and semantic descriptions. Thus, the mapping engine 118 and the lifting engine 104 may be considered to combine the specifications of the public processes input from public process A and B storage 106, 108. The composition engine 116 may, for example, compare the inputs and outputs that are defined as ontology concepts in two behavior descriptions and connect them where possible. In determining whether a connection is possible, the composition engine 116 may, for example, rely on the results from the alignment generator 110. The alignment generator 110 may be configured to generate alignments that may connect those XML schema elements that may later be used to generate a mapping to the same ontology element.
Thus, the composition engine 116 may be configured, for example, to search for equivalent concepts in two behavior descriptions that may be connected. After identifying matching concepts, the composition engine 116 may connect fitting edges, for example, by a transformation activity node that may define a conversion which potentially may need to be performed in the real-time execution of the combined process. This conversion may be represented, for example, by a mapping function that may define a transformation of actual data corresponding to the XML schema of a sender to a message corresponding to a receiver's format as discussed further below. A result of the composition may include, for example, a business process that includes process steps of both parties A and B, their interconnections via mapping activities, and those inputs and outputs that could not be interconnected. The composition may be considered successful when, for each party or partner, there are no inputs and outputs left that could not be connected to corresponding communications of the other party or partner.
The resulting collaborative process may be stored in a process repository 120 so that, during run-time a business process engine (not shown) may retrieve the process from the process repository 120 and execute an instance of the process, for example, for each incoming sales order. It should be understood that the process repository 120 may be located in a location other than internal to the collaborative process generator 102, or may be located with copies in multiple locations.
According to an example embodiment, the collaborative process(es) generated by the composition engine 116 may be sent to a verification user interface 122 that may be configured to present the collaborative process(es) to a user of the verification user interface 122. For example, the user may check the collaborative process and, for example, may modify the collaborative process before the collaborative process is stored in the process repository 120.
As a result of the above-described example techniques, example collaborative processes may be generated that may provide flexibility to partners, for example business partners having business processes that may benefit from interactions with each other. As discussed previously,
It should be understood that the above description is merely intended to provide examples of a collaborative process generator, and that one skilled in the art will appreciate that there are many other examples of scenarios suitable for collaborative processes, and many other ways of implementing the concepts described herein, without departing from the spirit of the description provided herein.
At 204, a collaborative process may be generated based on combining the received public specifications based on the description language format description, the process format description, and ontologies included in domain ontology storage. For example, the received public specifications may be lifted by the lifting engine 104 and the mapping engine 118 may generate the mappings between the XML schemas and the ontologies of the domain ontology storage 112, and the semantic process descriptions may be generated by the semantic description generator 114 as discussed previously with regard to
At 304, the received public specifications may be aligned by the lifting engine. For example, the received public specifications may be aligned by the lifting engine 104 of
At 306, the aligned public specifications may be mapped by a mapping engine to one or more mapping expressions based on representations of ontologies included in domain ontology storage. For example, the public specifications aligned by the lifting engine 104 may be mapped by the mapping engine 118 to one or more mapping expressions based on representations of ontologies included in the domain ontology storage 112 of
At 308, a collaborative process may be generated by a composition engine based on the one or more mapping expressions. For example, the composition engine 116 may generate the collaborative process based on the one or more mapping expressions. For example, the received public specifications may be lifted by the lifting engine 104 and the mapping engine 118 may generate the mappings between the XML schemas and the ontologies of the domain ontology storage 112, and the semantic process descriptions may be generated by the semantic description generator 114 as discussed previously with regard to
As discussed previously, according to an example embodiment, the composition engine 116 may generate the collaborative process based on mappings generated by the mapping engine 118 and semantic descriptions generated by the semantic description generator 114. According to an example embodiment, the collaborative process may be verified or edited by a user of the verification user interface 122, and the resulting collaborative process may be stored, for example, in the process repository 120. The processes stored in the process repository 120 may then be available, for example, for execution.
In order to understand potential benefits of the example collaborative process generator, it may be noted that an example carrier operating without such collaborative processes may experience the following:
1) Publication of new services may be difficult, because a process with an individual carrier may be hard-coded in the specific system configuration of the shipper. Thus, manual development may be needed to implement new services.
2) The example carrier may need to interact with a shipper in order to notify customers of service updates. If a change of service implies an adoption of a new process between both partners, each of the partners may need to manually develop the new service via each party's specific system configuration.
3) Message mappings may be needed in order to connect a third party system to a proprietary system generally. In addition, custom development may be needed to adapt a business process of the carrier to fit the framework of the proprietary system.
Without collaborative processes, an example shipper may experience the following:
1) Adding or updating services may be difficult because the process with an individual shipper may be firmly implemented in the specific system configuration of the carrier. Therefore manual development may be needed to implement new services.
2) If one or more processes are hard-coded into a shipper's proprietary system, a change from an existing carrier with an already implemented process to a new business partner (e.g., a new carrier) may be difficult and expensive due to the costs of updating the system.
3) If different service interfaces are provided by different carriers, a setup of a process with the different carriers may always involve new expense and effort, because little knowledge of one interface may be reused.
4) Comparisons of services provided by carriers may be difficult and time-consuming due to a diversity of interfaces and properties, such as a pricing model, for example, of the services provided by the carriers.
The example collaborative process generator 102 of
a is a block diagram illustrating an example flow through the example system of
b illustrates a high-level description of an example implementation of a scenario of two or more business partners that may be able to interact by generating collaborative processes, using, e.g., the collaborative process generator 102 of
Focusing on an example shipper, an example executable process may be generated. Using the process modeling tool 422, a domain expert may create a graphical representation of the process executed at the shipper whenever a new sales order is processed. This graphical representation may at first not be linked to any of the shipper's business systems or any carrier services. Therefore, the single process steps of the business process may be connected to services offered by either the internal or the partner business systems.
Connecting different services and systems may involve constructing a mapping between different message formats. Thus, the mappings may be created, converting between the input and output messages of the different business systems involved. The collaborative process generator 102 may combine the processes of the shipper and carrier. After the business process has been modeled and the involved business systems have been connected to the different process steps, the business process may be stored into the process repository 120 as shown in
c is a screen shot 450 of a graphical user interface associated with an example process execution engine 424 of
As shown the representation also shows an output of a sender (E1-S) mapped to an input of a receiver (E1-R) and an output of the sender (E2-S) mapped to an input of the receiver (E2-R). Thus, as shown, the steps B1 and B2 may be executed before an output is sent to the receiver (E1-R), and then the steps A1, A2, A3 may be executed. An output is then sent to the receiver (E2-R) so that steps B3 and B4 may be executed.
In the example of
An example advantage of such an example implementation of the scenario described above is design-time flexibility. After the business process has been modeled using a graphical editor, services implementing different process steps may be easily exchanged during design-time. Integrating a new carrier into the systems, for example, may only involve connections of the carrier services to the appropriate process steps as well as the development of the necessary message transformations. As the process execution engine 424 may simply execute predefined processes, for example, a dynamic exchange of carriers during run-time based on their availability may be achieved, for example, based on automatic generation of collaborative processes, for example, between carriers and potential shippers.
Services available in example business systems of partners may need to be invoked in a certain order as they are involved in the internal processes of the partner. In one scenario, for example, it may not make sense to invoke a “track and trace” service of a carrier before a shipping request has been sent to that carrier. However, as discussed previously, partners interacting during a business process may only want to make parts of their internal processes visible to the outside, for example, because of proprietary internal development, and thus, private and public processes may be utilized. As an example, a private process may include a detailed, internal process of a partner, which may include one or more trade secrets of the partner. Based on this process, a view, referred to herein as a public process, may be created.
In order for the processes of the partners to coordinate successfully, it may be necessary for certain steps of the private process 532 of partner B to be executed before other steps of the private process 502 of partner A may be successfully executed. For example, partner B may need for partner A to execute A1 before partner B executes B1. Partner A may need for partner B to execute B1 and B2 before partner A executes A2. Partner B may need for partner A to then execute A2 and A3 before partner executes B3. partner A may need for partner B to execute B3 and B4 before partner A executes A4, A5, and A6. As discussed previously, the public processes 512, 522 may conceal confidential process details and may only expose process steps that may be required for an interaction. Public processes may then used by business partners to create a collaborative business process (CBP) that may involve both internal and external business services.
Some elementary terms as used herein may be defined as follows.
An ontology O may be defined as a structure
O:=(C, R, A, T, ≦C, ≦R, ≦A, ≦T, σR, σA)
wherein:
An example domain of rεR may be defined as dom(r):=π1(σR(r)) and the range as range(r):=π2(σR(r)).
An XML schema may be defined as a structure
S:=(E, A, CT, ST, δe, αe, δa, Γ)
wherein:
A mapping “map” between two structures S and T may be defined as a set of mapping elements me. Each mapping element may relate entities of a source structure eS,i, . . . , eS,j to entities of a target structure eT,m, . . . , eT,n using a mapping expression. The mapping expression may specify how entities of the source structure and the target structure are related.
mapS→T={me}
me=(eS,i, . . . , eS,j, eT,m, . . . , eT,n, mapexp)
This definition of mapping may not restrict the relation between entities of the source and the target structure to be 1:1, but rather may allow for m:n relations. Further, the nature of the involved mapping expressions may not be further restricted, as the nature may depend on the type of the source and target structure involved.
An alignment ASs→OT from an XML schema SS to an ontology OT may be defined as a mapping with:
ASs→OT={(eSs,i, . . . , eSs,j, eO
eSs,xεESs∪ASs
eO
As illustrated in
After loading specifications of the two public processes, the lifting engine 104 of
The example mapping engine 118 may then use the alignments between the ontology and the XSDs to generate a list of possible mappings. The example composition engine 116 may use this list of possible mappings and the semantic process descriptions to generate the collaborative process. According to an example embodiment, the collaborative process may be presented to the user using the verification user interface 122. After a check by the user and possible modifications of the collaborative process the result may be stored in the process repository 120.
According to an example embodiment, during run-time an example dynamic selection of services may be performed based on different criteria. As an example, it may be desired to select a carrier offering the cheapest price for a given shipment. A semantic service selection may be used to make the selection. Based on a concrete request, contractual information modeled in the domain ontology and a selection goal, the best process may be selected from the process repository 120, and may be instantiated and executed.
As discussed previously, a first step in the example design-time architecture may include a lifting of the public processes of the two partners. This lifting may include two parts, the lifting of the input and output messages associated with the process steps and the lifting of the process descriptions.
According to an example embodiment, in order to create an alignment between the domain ontology and the input and output messages the example lifting engine 104 may execute a set of elementary matching algorithms, for example, the matchers 404, 406 of
The example similarity matrix 408 may associate each pair of XML schema and ontology entities (eS, eO) with eSεE∪A and eOεC∪R∪A with a similarity value. Based on the example similarity matrix 408 an alignment between the XML schema of the XSD 402 and the domain ontology 112 may be calculated, for example, by the alignment generator 110.
For the automatic process composition by the composition engine 116 shown in
Thus, for example, the behavioral constraints may be communicated via an example workflow diagram, for example, via an example Unified Modeling Language (UML) 2.0 Activity Diagram, including control nodes, such as decision, merge, fork and join. The activities in the example diagram may be connected to input and output nodes representing the messages communicated. According to an example embodiment, each example message may be understood, not as a technical XML schema description, but as an ontology concept so that a corresponding XML schema may be nominated, as discussed below.
According to an example embodiment, information that may be available for an example shipper partner may include its public process and links of the public process steps to specific WSDL operations. From this information, example semantic Web service descriptions may be generated as follows:
1) Each WSDL operation may be represented by an input node and an output node connected via a sequential control edge. This example construct may be referred to as a semantic Web service operation, for example, such as the example Op1
2) Data communicated by the input and output node may be represented by ontology concepts obtained by the alignment generator 110 of the lifting engine 104 from the corresponding WSDL operation's XML schema.
3) The semantic Web service operations may be connected by semantic Web service behavioral constraints that may resemble the workflow of the public process of the shipper.
With regard to example carrier services, the WSDL files of the carrier's Web services may be obtained. An example alignment of XML schema types communicated to ontology concepts may be generated by the lifting engine 104 via the alignment generator 110. According to an example embodiment, a representation of causal interdependencies between the operations that may be used to create the semantic Web service behavioral constraints may also be needed. Thus, a trivial workflow may be constructed that may be used as input to the composition engine 116.
According to an example embodiment, example semantic Web service descriptions may be generated as follows:
1) Each WSDL operation may be represented by an input node and an output node connected via a sequential control edge. This construct may be referred to as a semantic Web service operation, for example, such as the example Op1
2) Data communicated by the input and output node may be represented by ontology concepts that are obtained by the alignment generator 110 of the lifting engine 104 from the corresponding WSDL operation's XML schema.
3) The semantic Web service behavioral constraints may describe a workflow that may include a fork and a join node. Each branch of this fork-join construct may include, for example, exactly one semantic Web service operation.
Automatic generation of message mappings may be performed by the example mapping engine 118 of
It is noted that business partners generally may tend to follow their own business processes. The business processes associated with business partners may include process steps that on the one hand exchange data among themselves, and on the other hand also collaborate with processes of their partners. Thus, as discussed previously, in order to integrate two business partners with each other, their business processes may need to be interconnected. Business processes typically may not be handled as an atomic transaction. For example, in a process step, a particular company may have interactions with its partner before proceeding to a next step, which results in some communication before it enters the next process step, etc., as discussed previously.
The integration of two business partners in a message-based communication environment, for example, such as a service-oriented architecture, may however only work on the basis of atomic transactions. Thus, integration or combining of the processes may need to follow the sequential constraints of the message exchanges defined by both parties' business processes. These sequential constraints may be referred to as “behavioral constraints” or as the “behavior” of a business partner's systems. Such information may not be easily represented by traditional Web service descriptions using WSDL. Thus, for an automatic creation of such an integration or combining, for example, the collaborative process, a partner's behavior may need to be explicitly specified in a machine-processable format. Thus, the observable part of a business partner's behavior may be formatted based on semantic Web service descriptions. A composition engine such as the example composition engine 116 may then combine these sets of behavioral constraints to generate a combined business process of all parties involved.
Example inputs for the composition engine 116 may thus include semantic Web service descriptions (SWSDs) of the participating business partners. The composition engine 116, for example, may compare the inputs and outputs that may be defined as ontology concepts in the two behavior descriptions and may connect or map them where possible. The composition engine 116 may rely on the results from the preceding alignment generator 110 in determining whether such a connection or mapping may be possible. The example alignment generator 110 may generate an alignment that connects those XML schema elements for which a mapping may be later generated to the same ontology element. Thus, the composition engine 116 may search for equivalent concepts in the two behavior descriptions that it may be able to connect.
In determining the connectability of pairs of outputs and inputs, it is noted that an output and an input may stem from a process step of the same or different business partners. The party owning the output message may be referred to as a “sender” and the party owning the input message may be referred to as a “receiver,” as shown in
For evaluating the suitability of an output and an input concept, the composition engine may consider two sets of alignments: one for the sender AS
After identifying matching concepts, the composition engine 116 may connect fitting edges by a transformation activity node that defines a conversion which may need to be performed in the real-time execution of the combined process. This conversion may be specified by an example mapping function mapS1→S2, which may specify a transformation of actual data corresponding to the XML schema of the sender S1 to a message corresponding to the receiver's format S2. The result of the composition, or the collaborative process, may include a business process that includes the process steps of both parties, their interconnections via mapping activities, and those inputs and outputs that could not be interconnected.
The example composition may be regarded as successful, when there are no inputs and outputs left that could not be connected to corresponding communications of the other party.
The result generated by the composition engine 116 may be translated into a process representation format of the verification user interface 122 and may be presented to a user. Further, if the composition engine 116 is unable to complete generation of a collaborative process, a partly connected business process may be input to the verification user interface 122 as a first suggestion for adaptation by the user.
Business partners may not need to adhere to exactly the same software component interfaces. Thus, mediation may be used for interacting with the semantic Web service composition. When a carrier changes its conditions, the process of composition may need to be executed again in order to compute the potential modifications to the process instance. As an example, this step could be executed each time a customer requests a shipment. Thus, the system could immediately and automatically incorporate changes to the carrier capabilities.
a-17d illustrate example relationships of data elements included in an example message format associated with an example process associated with an example party A. For example, as shown in
a-18b illustrates example relationships of data elements included in an example message format associated with an example process associated with an example party B. For example, as shown in
Occasionally, carriers may change their conditions of service. When this occurs, the carrier may need to notify the shipper of updates in the conditions of service (2028, 2030). For example, if the carrier changes its policy to its customers from a policy of shipping overnight to a policy of shipping within two business days, the shipper may need to be notified to ensure that customers of the shipper may be informed. As another example, for a new contractual relationship between a shipper and a carrier, new conditions associated with the relationship may need to be input into the shipper's system.
In the order-to-cash process described above, different systems may be involved. For example, the shipper may be a store in the business of selling merchandise online or by telephone ordering, and the carrier may be in the business of transporting and delivering parcels such as United Parcel Service (UPS). As an example, the processes associated with the business of an example carrier may be provided via an example Web service interface.
An example shipper may use a system configured to integrate the systems of different parties. However, as shown in
In
In
A collaborative process, for example, a collaborative business process (CBP) 2410 may be composed (2408), for example, by the composition engine 116. The CBP 2410 may be composed (2408), for example, based on the mappings and the semantic representations. The CBP 2410 may then be stored, for example, in the process repository 120, and/or it may be verified, for example, via the verification user interface 122. The CBP 2410 may then be executed for use by the shipper 2002 and the carrier 2004.
Implementations of the various techniques described herein may be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. Implementations may implemented as a computer program product, i.e., a computer program tangibly embodied in an information carrier, e.g., in a machine-readable storage device or in a propagated signal, for execution by, or to control the operation of, data processing apparatus, e.g., a programmable processor, a computer, or multiple computers. A computer program, such as the computer program(s) described above, can be written in any form of programming language, including compiled or interpreted languages, and can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program can be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communication network.
Method steps may be performed by one or more programmable processors executing a computer program to perform functions by operating on input data and generating output. Method steps also may be performed by, and an apparatus may be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).
Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. Elements of a computer may include at least one processor for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer also may include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. Information carriers suitable for embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory may be supplemented by, or incorporated in special purpose logic circuitry.
To provide for interaction with a user, implementations may be implemented on a computer having a display device, e.g., a cathode ray tube (CRT) or liquid crystal display (LCD) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input.
Implementations may be implemented in a computing system that includes a back-end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front-end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation, or any combination of such back-end, middleware, or front-end components. Components may be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (LAN) and a wide area network (WAN), e.g., the Internet.
While certain features of the described implementations have been illustrated as described herein, many modifications, substitutions, changes and equivalents will now occur to those skilled in the art. It is, therefore, to be understood that the appended claims are intended to cover all such modifications and changes as fall within the true spirit of the embodiments of the invention.
This application claims priority to U.S. Provisional Application Ser. No. 60/812,404, filed on Jun. 9, 2006, entitled “Method and System for Generating Collaborative Processes,” hereby incorporated by reference herein.
Number | Date | Country | |
---|---|---|---|
60812404 | Jun 2006 | US |