Patent · US9552239B2 · B2 · US
Using sub-processes across business processes in different composites
- (11) Publication number
- US9552239B2
- (21) Application number
- 13/963,757
- (22) Filing date
- 2013-08-09
- (30) Priority date
- 2013-08-09
- (43) Publication date
- 2017-01-24
- (45) Date of grant
- 2017-01-24
- (51) IPC
- G06F 9/46; G06F 9/54; G06Q 10/10
- (52) CPC
- G06F Electric digital data processing: 9/547
- G06Q Information and communication technology [ICT] specially adapted for administrative, commercial, financial, managerial or supervisory purposes; systems or methods specially adapted for administrative, commercial, financial, managerial or supervisory purposes, not otherwise provided for: 10/10
- (73) Assignee
- Oracle International Corp
- (72) Inventors
- Yogesh Kumar; Glenn Weiqun Mi; Muruganantham Chinnananchi; Michal Chmielewski; Murali Pottlapelli; Ronald Ten-Hove; Simone Geib
- (54) Title
- Using sub-processes across business processes in different composites
- (57) Abstract
A system and method for facilitating reuse of a portion of process logic by different processes. An example method includes providing a subprocess that is adapted to perform the process logic in a file accessible to a composite system, wherein the subprocess is adapted to be called by a first parent process via a subprocess extension to a business process language employed to encode the first parent process; using a call activity defined as part of the subprocess extension, and included in a scope of the first parent process to facilitate access to functionality of the subprocess by the parent process; and employing a business process engine to facilitate instantiating the subprocess, resulting in an instantiated subprocess in response thereto; and using a second parent process to share use of the instantiated subprocess with the first parent process.
- Full text
- View on Google Patents
Claims (18)
- A method, performed by a computer system implementing a parent process and a subprocess, for using the subprocess across processes in different composites with each process having a scope, the method comprising: scope grafting, by the computer system, a root scope of the subprocess to a scope of the parent process to make the subprocess an instance of the parent process; receiving, by the subprocess, a call activity in the scope of the parent process and invoked by the parent process without using a Web Services Description Language (WSDL) interface, where the call activity includes a plurality of partner links of the parent process passed as a plurality of arguments in a single call activity, where the partner links encapsulate communications between the parent process and partner web services, with the partner web services included in a first composite, where the subprocess is included in a second composite, where the parent process communicates with partner web services in the first composite via a WSDL interface, and where the call activity is a statement in computer code; and communicating, by the subprocess, directly with partner web services that would ordinarily be called by the parent process via a Web Service (WS) addressing service using information included in the arguments passed by the call activity.
- The method of claim 1, wherein the parent process includes a business process defined via a version of Business Process Execution Language (BPEL), and further including employing the parent process to pass one or more variables to the subprocess via one or more arguments of the call activity in computer code of the business process.
- The method of claim 2, further including employing the subprocess to map the one or more variables of the first business process to one or more parameters of the subprocess via the one or more arguments specified via the call activity, and in accordance with a mapping type, wherein the mapping type includes pass by reference.
- The method of claim 1, wherein the subprocess includes a Subprocess BPEL extension (SBPEL) file deployed in accordance with a Service Component Architecture (SCA).
- The method of claim 4, wherein a composite system implemented using the Service Component Architecture, includes a Parts LIBrary (PLIB) in which the SBPEL file is referenced or stored.
- The method of claim 5, wherein the composite system further includes a composite configuration file, wherein the composite configuration file includes a component characterized by the SBPEL file defining the subprocess.
- The method of claim 4 wherein a composite system implemented using the Service Component Architecture, includes a WS-Addressing interface that includes a mechanism to provide a component identification identifying a running instance of the subprocess.
- The method of claim 1, further including determining a revision version of a subprocess to be the same as a revision version of a composite file in which the subprocess is referenced or included.
- The method of claim 8, wherein a definition of the subprocess includes a definition of a standalone subprocess maintained in an SBPEL file referenced in or included in a composite configuration file.
- The method of claim 9, wherein the definition of the standalone subprocess is adapted to enable the subprocess to be shared simultaneously among plural parent processes, and wherein the plural parent processes are each included in different corresponding composites.
- The method of claim 10, further including using an Service Component Architecture (SCA) to resolve a subprocess across a deployment boundary.
- The method of claim 9, wherein a definition of the subprocess further includes a definition of an inline subprocess included in computer code defining a parent process or a reusable subprocess, wherein the definition of the inline subprocess is adapted to enable calling of a standalone subprocess in a composite that is in a different composite than a composite in which the parent process is included.
- The method of claim 1, further including employing a business process engine to configure one or more partner links defined in a subprocess on a component that includes a definition of the subprocess, thereby facilitating enabling reuse of the subprocess with a configuration, and further facilitating enabling creation of one or more reusable components for a given subprocess.
- The method of claim 1, further including employing a business process engine to delay resolving subprocess references in one or more parent business process files until the instance of the parent process is created.
- The method of claim 1, further including employing a runtime composite management system to perform the following steps: analyzing a composite that includes one or more parent processes and determining one or more call activities referencing one or more subprocesses in the one or more parent processes in response thereto; determining version information pertaining to the one or more subprocesses; resolving each of the one or more subprocesses in accordance with the version information; analyzing each of the one or more subprocesses for one or more references to one or more other subprocesses; determining version information pertaining to the one or more other subprocesses; storing state information characterizing each of the one or more subprocesses and each of the one or more other subprocesses.
- The method of claim 15, wherein determining the version information includes ascertaining the version information from one or more version attributes of the one or more call activities, and wherein determining the version information includes setting a default version for one or more called subprocesses in absence of a version specified via one or more call activities, wherein the default version is based on usage information pertaining to use of the subprocess by one or more parent processes.
- An apparatus comprising: a digital processor coupled to a display and to a processor-readable storage device, wherein the a processor-readable storage device includes one or more instructions executable by the digital processor that implement a parent process and a subprocess, to perform the following acts for using the subprocess across processes in different composites: scope grafting a root scope of the subprocess to a scope of the parent process to make the subprocess an instance of the parent process; receiving, by the subprocess, a call activity in the scope of the parent process and invoked by the parent process without using a Web Services Description Language (WSDL) interface, where the call activity includes a plurality of partner links of the parent process passed as a plurality of arguments in a single call activity, where the partner links encapsulate communications between the parent process and partner web services, with the partner web services included in a first composite, where the subprocess is included in a second composite, where the parent process communicates with partner web services in the first composite via a WSDL interface, and where the call activity is a statement in computer code; and communicating, by the subprocess, directly with partner web services that would ordinarily be called by the parent process via a Web Service (WS) addressing service using information included in the arguments passed by the call activity.
- A non-transitory computer-readable storage medium including instructions executable by a digital processor, with the non-transitory computer-readable storage medium including one or more instructions that implement a parent process and a subprocess and use the subprocess across processes in different composites, with the one or more instructions, when executed for: scope grafting a root scope of the subprocess to a scope of the parent process to make the subprocess an instance of the parent process; receiving, by the subprocess a call activity in the scope of the parent process and invoked by the parent process without using a Web Services Description Language (WSDL) interface, where the call activity includes a plurality of partner links of the parent process passed as a plurality of arguments in a single call activity, where the partner links encapsulate communications between the parent process and partner web services, with the partner web services included in a first composite, where the subprocess is included in a second composite, where the parent process communicates with partner web services in the first composite via a WSDL interface, and where the call activity is a statement in computer code; and communicating, by the subprocess, directly with partner web services that would ordinarily be called by the parent process via a Web Service (WS) addressing service using information included in the arguments passed by the call activity.
Description
The present application relates to software and more specifically to software-based systems and methods and ontologies for facilitating development and implementation of software processes and subprocesses deployed in networked computing environments.
Software processes deployed in networked computing environments are often implemented via one or more services, such as web services. Mechanisms for facilitating development, implementation, and deployment of such processes are employed in various demanding applications, including Enterprise Resource Planning (ERP), scientific distributed computing applications, and so on. Such applications often demand use of Service Oriented Architectures (SOAs) and accompanying mechanisms and programming language features for efficiently modularizing and reusing process logic to facilitate software development, customization, deployment, and execution in various networked computing environments.
Software modularization and reuse features are particularly important in enterprise computing environments, which are often characterized by complex long-running network-distributed business processes. Web Services Business Process Execution Language (WS-BPEL 2.0, OASIS Standard), generically referred to as standard BPEL, facilitates implementing SOAs and accompanying software that employ web services to implement tasks or activities in a business process. The business process may be part of a larger software application specified via a process template and configuration plan file.
Citations (7)
- US6282709B1
- US20020100017A1
- US20060036939A1
- US20070277158A1
- US20100220613A1
- US20090007067A1
- US20090119672A1
Record as JSON
{
"publication_number": "US9552239B2",
"country": "US",
"kind": "B2",
"title": "Using sub-processes across business processes in different composites",
"abstract": "A system and method for facilitating reuse of a portion of process logic by different processes. An example method includes providing a subprocess that is adapted to perform the process logic in a file accessible to a composite system, wherein the subprocess is adapted to be called by a first parent process via a subprocess extension to a business process language employed to encode the first parent process; using a call activity defined as part of the subprocess extension, and included in a scope of the first parent process to facilitate access to functionality of the subprocess by the parent process; and employing a business process engine to facilitate instantiating the subprocess, resulting in an instantiated subprocess in response thereto; and using a second parent process to share use of the instantiated subprocess with the first parent process.",
"claims": [
"1. A method, performed by a computer system implementing a parent process and a subprocess, for using the subprocess across processes in different composites with each process having a scope, the method comprising: scope grafting, by the computer system, a root scope of the subprocess to a scope of the parent process to make the subprocess an instance of the parent process; receiving, by the subprocess, a call activity in the scope of the parent process and invoked by the parent process without using a Web Services Description Language (WSDL) interface, where the call activity includes a plurality of partner links of the parent process passed as a plurality of arguments in a single call activity, where the partner links encapsulate communications between the parent process and partner web services, with the partner web services included in a first composite, where the subprocess is included in a second composite, where the parent process communicates with partner web services in the first composite via a WSDL interface, and where the call activity is a statement in computer code; and communicating, by the subprocess, directly with partner web services that would ordinarily be called by the parent process via a Web Service (WS) addressing service using information included in the arguments passed by the call activity.",
"2. The method of claim 1, wherein the parent process includes a business process defined via a version of Business Process Execution Language (BPEL), and further including employing the parent process to pass one or more variables to the subprocess via one or more arguments of the call activity in computer code of the business process.",
"3. The method of claim 2, further including employing the subprocess to map the one or more variables of the first business process to one or more parameters of the subprocess via the one or more arguments specified via the call activity, and in accordance with a mapping type, wherein the mapping type includes pass by reference.",
"4. The method of claim 1, wherein the subprocess includes a Subprocess BPEL extension (SBPEL) file deployed in accordance with a Service Component Architecture (SCA).",
"5. The method of claim 4, wherein a composite system implemented using the Service Component Architecture, includes a Parts LIBrary (PLIB) in which the SBPEL file is referenced or stored.",
"6. The method of claim 5, wherein the composite system further includes a composite configuration file, wherein the composite configuration file includes a component characterized by the SBPEL file defining the subprocess.",
"7. The method of claim 4 wherein a composite system implemented using the Service Component Architecture, includes a WS-Addressing interface that includes a mechanism to provide a component identification identifying a running instance of the subprocess.",
"8. The method of claim 1, further including determining a revision version of a subprocess to be the same as a revision version of a composite file in which the subprocess is referenced or included.",
"9. The method of claim 8, wherein a definition of the subprocess includes a definition of a standalone subprocess maintained in an SBPEL file referenced in or included in a composite configuration file.",
"10. The method of claim 9, wherein the definition of the standalone subprocess is adapted to enable the subprocess to be shared simultaneously among plural parent processes, and wherein the plural parent processes are each included in different corresponding composites.",
"11. The method of claim 10, further including using an Service Component Architecture (SCA) to resolve a subprocess across a deployment boundary.",
"12. The method of claim 9, wherein a definition of the subprocess further includes a definition of an inline subprocess included in computer code defining a parent process or a reusable subprocess, wherein the definition of the inline subprocess is adapted to enable calling of a standalone subprocess in a composite that is in a different composite than a composite in which the parent process is included.",
"13. The method of claim 1, further including employing a business process engine to configure one or more partner links defined in a subprocess on a component that includes a definition of the subprocess, thereby facilitating enabling reuse of the subprocess with a configuration, and further facilitating enabling creation of one or more reusable components for a given subprocess.",
"14. The method of claim 1, further including employing a business process engine to delay resolving subprocess references in one or more parent business process files until the instance of the parent process is created.",
"15. The method of claim 1, further including employing a runtime composite management system to perform the following steps: analyzing a composite that includes one or more parent processes and determining one or more call activities referencing one or more subprocesses in the one or more parent processes in response thereto; determining version information pertaining to the one or more subprocesses; resolving each of the one or more subprocesses in accordance with the version information; analyzing each of the one or more subprocesses for one or more references to one or more other subprocesses; determining version information pertaining to the one or more other subprocesses; storing state information characterizing each of the one or more subprocesses and each of the one or more other subprocesses.",
"16. The method of claim 15, wherein determining the version information includes ascertaining the version information from one or more version attributes of the one or more call activities, and wherein determining the version information includes setting a default version for one or more called subprocesses in absence of a version specified via one or more call activities, wherein the default version is based on usage information pertaining to use of the subprocess by one or more parent processes.",
"17. An apparatus comprising: a digital processor coupled to a display and to a processor-readable storage device, wherein the a processor-readable storage device includes one or more instructions executable by the digital processor that implement a parent process and a subprocess, to perform the following acts for using the subprocess across processes in different composites: scope grafting a root scope of the subprocess to a scope of the parent process to make the subprocess an instance of the parent process; receiving, by the subprocess, a call activity in the scope of the parent process and invoked by the parent process without using a Web Services Description Language (WSDL) interface, where the call activity includes a plurality of partner links of the parent process passed as a plurality of arguments in a single call activity, where the partner links encapsulate communications between the parent process and partner web services, with the partner web services included in a first composite, where the subprocess is included in a second composite, where the parent process communicates with partner web services in the first composite via a WSDL interface, and where the call activity is a statement in computer code; and communicating, by the subprocess, directly with partner web services that would ordinarily be called by the parent process via a Web Service (WS) addressing service using information included in the arguments passed by the call activity.",
"18. A non-transitory computer-readable storage medium including instructions executable by a digital processor, with the non-transitory computer-readable storage medium including one or more instructions that implement a parent process and a subprocess and use the subprocess across processes in different composites, with the one or more instructions, when executed for: scope grafting a root scope of the subprocess to a scope of the parent process to make the subprocess an instance of the parent process; receiving, by the subprocess a call activity in the scope of the parent process and invoked by the parent process without using a Web Services Description Language (WSDL) interface, where the call activity includes a plurality of partner links of the parent process passed as a plurality of arguments in a single call activity, where the partner links encapsulate communications between the parent process and partner web services, with the partner web services included in a first composite, where the subprocess is included in a second composite, where the parent process communicates with partner web services in the first composite via a WSDL interface, and where the call activity is a statement in computer code; and communicating, by the subprocess, directly with partner web services that would ordinarily be called by the parent process via a Web Service (WS) addressing service using information included in the arguments passed by the call activity."
],
"description_excerpt": "The present application relates to software and more specifically to software-based systems and methods and ontologies for facilitating development and implementation of software processes and subprocesses deployed in networked computing environments.\n\nSoftware processes deployed in networked computing environments are often implemented via one or more services, such as web services. Mechanisms for facilitating development, implementation, and deployment of such processes are employed in various demanding applications, including Enterprise Resource Planning (ERP), scientific distributed computing applications, and so on. Such applications often demand use of Service Oriented Architectures (SOAs) and accompanying mechanisms and programming language features for efficiently modularizing and reusing process logic to facilitate software development, customization, deployment, and execution in various networked computing environments.\n\nSoftware modularization and reuse features are particularly important in enterprise computing environments, which are often characterized by complex long-running network-distributed business processes. Web Services Business Process Execution Language (WS-BPEL 2.0, OASIS Standard), generically referred to as standard BPEL, facilitates implementing SOAs and accompanying software that employ web services to implement tasks or activities in a business process. The business process may be part of a larger software application specified via a process template and configuration plan file.",
"cpc": [
"G06F 9/547",
"G06Q 10/10"
],
"ipc": [
"G06F 9/46",
"G06F 9/54",
"G06Q 10/10"
],
"assignees": [
"Oracle International Corp"
],
"inventors": [
"Yogesh Kumar",
"Glenn Weiqun Mi",
"Muruganantham Chinnananchi",
"Michal Chmielewski",
"Murali Pottlapelli",
"Ronald Ten-Hove",
"Simone Geib"
],
"filing_date": "2013-08-09",
"publication_date": "2017-01-24",
"grant_date": "2017-01-24",
"priority_date": "2013-08-09",
"application_number": "US-201313963757-A",
"family_id": "52449771",
"cited_by_count": 1,
"citations": [
"US6282709B1",
"US20020100017A1",
"US20060036939A1",
"US20070277158A1",
"US20100220613A1",
"US20090007067A1",
"US20090119672A1"
]
}
Record 4,344 of 8,000 in Patents full text (MLC-0201). Request the full dataset.