CA2555697A1 - Method and apparatus for self-healthing composite web services - Google Patents
Method and apparatus for self-healthing composite web services Download PDFInfo
- Publication number
- CA2555697A1 CA2555697A1 CA002555697A CA2555697A CA2555697A1 CA 2555697 A1 CA2555697 A1 CA 2555697A1 CA 002555697 A CA002555697 A CA 002555697A CA 2555697 A CA2555697 A CA 2555697A CA 2555697 A1 CA2555697 A1 CA 2555697A1
- Authority
- CA
- Canada
- Prior art keywords
- web service
- elementary
- alternative
- healing
- web services
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 238000000034 method Methods 0.000 title claims description 199
- 239000002131 composite material Substances 0.000 title claims description 91
- 230000008569 process Effects 0.000 claims description 161
- 230000035876 healing Effects 0.000 claims description 73
- 238000012545 processing Methods 0.000 claims description 4
- 230000001419 dependent effect Effects 0.000 claims 2
- 230000000875 corresponding effect Effects 0.000 description 12
- 230000000694 effects Effects 0.000 description 11
- 201000003263 Waardenburg syndrome type 2A Diseases 0.000 description 7
- 101001011628 Homo sapiens Microphthalmia-associated transcription factor Proteins 0.000 description 5
- 102100030157 Microphthalmia-associated transcription factor Human genes 0.000 description 5
- 208000008256 Waardenburg syndrome type 2B Diseases 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000009442 healing mechanism Effects 0.000 description 5
- 238000001514 detection method Methods 0.000 description 4
- 238000011084 recovery Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000003116 impacting effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 208000006438 Waardenburg syndrome type 2 Diseases 0.000 description 1
- 230000004308 accommodation Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1482—Generic software techniques for error detection or fault masking by means of middleware or OS functionality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3608—Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
- G06F15/7871—Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
- G06F15/7882—Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS for self reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/313—Logic programming, e.g. PROLOG programming language
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4405—Initialisation of multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Hardware Redundancy (AREA)
- Multi Processors (AREA)
- Computer And Data Communications (AREA)
- Agricultural Chemicals And Associated Chemicals (AREA)
Abstract
Published without an Abstract
Description
Description METHOD AND APPARATUS FOR SELF-HEALING
COMPOSITE WEB SERVICES
Technical Field [001] The present invention relates to a method and apparatus for healing composite web services, and particularly relates to a method and apparatus to provide composite web services with self healing ability, a method and apparatus for executing the composite web services having self healing ability, and a composite web services processing method having self healing ability.
Background Art [002] The growth of Internet technologies has unleashed a wave of innovations that are having a tremendous impact on the way organizations interact with their partners and customers. In particular,cornposite web services technology is emerging as a promising technology for the effective automation of business-to-business collaborations.
COMPOSITE WEB SERVICES
Technical Field [001] The present invention relates to a method and apparatus for healing composite web services, and particularly relates to a method and apparatus to provide composite web services with self healing ability, a method and apparatus for executing the composite web services having self healing ability, and a composite web services processing method having self healing ability.
Background Art [002] The growth of Internet technologies has unleashed a wave of innovations that are having a tremendous impact on the way organizations interact with their partners and customers. In particular,cornposite web services technology is emerging as a promising technology for the effective automation of business-to-business collaborations.
[003] A web service can be defined as the self contained, self describing modular ap-plication that can be published, located, and invoked across the web. The web services can be composed to form new services. Hereinafter, a new web services process composed of multiple web services is referred to as a composite web services process.
The creation of a composite web services process from individual web services is called web services composition, that is, to combine existing services (or building blocks) to form a new service. A composite web service is a composition of multiple partner web services (elementary web services) which interact according to a predefined services flow model. The partner web service described above can be an elementary web service or a composite web service itself. By integrating partner's web services, a composite web service provides customers with a composite web service and satisfies customers' complex requirements. Generally,a composite web service is defined by a web services process model. For example, a composite web service TravelAgezzt may aggregate multiple web services such as flight bookizzg, travel insurance, accommodation bookizzg, car rental, itizzerazy plarzzzi>zg, etc.
which are executed sequentially or concurrently according to the web services process model.
Figure 1 shows the exemplary TravelAgezzt service of the composite web services.
Customs issue a request to the TravelAgerzt service, based on which the TravelAgezzt service invokes airline services, hotel services, and car rezztal services, and in order to carry out the above services, "bank services" should be invoked. , [004] Next, standards relating to web services process are described first.
IBM's WSFL
(Web Service Flow Language) and Microsoft's XLANG (eXtensible language) are two of the earliest languages to define standards for web service composition.
WSFL
defines a specific order of activities and data exchanges for a particular process. It defines both the execution sequence and the mapping of each step in the flow to the specific operations. WSFL supports the handling of exceptions but has no direct support for transactions. XLANG focuses on the creation of business process and the interactions among web service providers. It includes a robust exception handling facility, with support for running long transactions through compensation.
The creation of a composite web services process from individual web services is called web services composition, that is, to combine existing services (or building blocks) to form a new service. A composite web service is a composition of multiple partner web services (elementary web services) which interact according to a predefined services flow model. The partner web service described above can be an elementary web service or a composite web service itself. By integrating partner's web services, a composite web service provides customers with a composite web service and satisfies customers' complex requirements. Generally,a composite web service is defined by a web services process model. For example, a composite web service TravelAgezzt may aggregate multiple web services such as flight bookizzg, travel insurance, accommodation bookizzg, car rental, itizzerazy plarzzzi>zg, etc.
which are executed sequentially or concurrently according to the web services process model.
Figure 1 shows the exemplary TravelAgezzt service of the composite web services.
Customs issue a request to the TravelAgerzt service, based on which the TravelAgezzt service invokes airline services, hotel services, and car rezztal services, and in order to carry out the above services, "bank services" should be invoked. , [004] Next, standards relating to web services process are described first.
IBM's WSFL
(Web Service Flow Language) and Microsoft's XLANG (eXtensible language) are two of the earliest languages to define standards for web service composition.
WSFL
defines a specific order of activities and data exchanges for a particular process. It defines both the execution sequence and the mapping of each step in the flow to the specific operations. WSFL supports the handling of exceptions but has no direct support for transactions. XLANG focuses on the creation of business process and the interactions among web service providers. It includes a robust exception handling facility, with support for running long transactions through compensation.
[005] The web services workflow specifications outlined by WFSL and XLANG have recently been replaced by a new specification from IBM, Microsoft, and BEA, i.e.
BPEL4WS (Business Process Execution Language for Web Services). BPEL4WS
models the behavior of web services in a business process interaction. The spec-ification provides an AML-based grammar for describing the control logic and data exchange required to coordinate web services participating in a business flow.
The web services can then be interpreted and executed by a web services process engine, e.g., BPWS4J, which executes an instance of the web services process. During execution, the web services process can invoke a number of partners' web services. Figure shows the schematic diagram of BPEL4WS process. In Figure 2, the BPEL4WS
process includes multiple steps, some of which invoke web services outside.
The customers issue a request to BPEL4WS process via WSDL (Web Service Describing Language) and acquire a reply. The process has the characteristics such as exception handling and transactional characteristics differentiating roles and partners, persistence and adaptability.
BPEL4WS (Business Process Execution Language for Web Services). BPEL4WS
models the behavior of web services in a business process interaction. The spec-ification provides an AML-based grammar for describing the control logic and data exchange required to coordinate web services participating in a business flow.
The web services can then be interpreted and executed by a web services process engine, e.g., BPWS4J, which executes an instance of the web services process. During execution, the web services process can invoke a number of partners' web services. Figure shows the schematic diagram of BPEL4WS process. In Figure 2, the BPEL4WS
process includes multiple steps, some of which invoke web services outside.
The customers issue a request to BPEL4WS process via WSDL (Web Service Describing Language) and acquire a reply. The process has the characteristics such as exception handling and transactional characteristics differentiating roles and partners, persistence and adaptability.
[006] In order to attract and retain customers as well as business partners, the composite web services need to be executed in a consistent and reliable way. In particular, it is crucial for the web services process to meet the service objectives committed to the customers even in the case of the failure of the partners. Taking the TravelAge>zt service mentioned above as an example,let us assume that a flight ticket from China Southern Airline has been booked. According to the predefined business process,a car should be rented from the New Concept Car Rental Company, but some system errors occur with the web services of that rental company, e.g., communication failure, system shutdown. If the web services process of TravelAgezzt cannot recover from this failure, the TravelAgezzt service has to return 'sorry' to the customer for being unable to rent the car. From the viewpoint of the customer, the quality of this TravelAge>zt is low and unreliable. But if the TzavelAgent can recover from the failure, the customer's requirements may be met ultimately. The reliable quality of the service will attract and retain the customer.
[007] Therefore, it is desired that when failures occur with the partners' web services of the composite web services, self healing can be achieved. Self healing means that the web services process has a capability to continue to execute and meet its original service objective even when its partner web service fails. According to one automatic computing solution proposed by IBM, self-healing means the system can discover, diagnose, and react to disruptions.The system is able to recover from a failed component by first detecting the failed component, then taking it off-line to be fixed or isolated, and finally reintroducing the fixed or replacement component into service without any apparent application disruption. The system predicts possible problems and take actions to prevent the failure from impacting on applications.
[008] However there is currently no apparent other solution to make composite web services self-healing.The possible solutions include:
[009] (1) Using a special service platform to guarantee reliability.
Apparently, if the partner services are all reliable, the composite web services process could be executed with a reliable quality. At present, some special service platforms, such as IBM's Service Domain, can offer reliable elementary web services so that the service providers can provide reliable web services for collaboration. However the drawback of this solution is that it is difficult for the providers of composite web services constructed by the web services process to require all their partners to buy and adopt the special, private service platforms required to ensure the reliability of partners' web services.
Apparently, if the partner services are all reliable, the composite web services process could be executed with a reliable quality. At present, some special service platforms, such as IBM's Service Domain, can offer reliable elementary web services so that the service providers can provide reliable web services for collaboration. However the drawback of this solution is that it is difficult for the providers of composite web services constructed by the web services process to require all their partners to buy and adopt the special, private service platforms required to ensure the reliability of partners' web services.
[010] (2) Using a web services process engine to provide healing mechanisms to ensure the reliability.aaf the composite web services.However, such healing mechanisms.
maybe implemented in the engine are fixed and invisible, probably with a few con-figuration functions. The stakeholders of the composite web services process, such as the provider and the administrator, cannot customize or control those healing mechanisms.
[O11] US patent No. 6,330,689 Bl discloses a system architecture with detection and recovery of failed out-of process application, wherein detection is performed by recording and examining the log, and recovery is performed by restarting a crashed ap-plication.However, the solution described in US6,330,689 cannot achieve real-time recovery.
[012] US patent publication No. 200210007468 Al discloses a method and system for achieving high availability of a network computer system.The global high availability is achieved by providing each component with high availability. However in the composite web services, it is not practical for all the partners' web services to have high availability.
[013] US patent publication No. 2003/0144894 A1 discloses a system and method for creating and managing permanent services provided via the web, which is directed to self healing of individual service. The solution described in US
2003/0144894A1 uses a managing agent mode to detect and rebuild the failed individual service, search for the rebuilt service in real time, and invoke the service again. The patent requires that each service should follow the managing agent mode defined by it so as to achieve re-liability of the service.
Disclosure of Invention [014] A first embodiment of the present invention makes the composite web services process recoverable in the case of failures of its partner web services, so as to avoid the composite web service process being interrupted or aborted due to the partners' failures.
[O15] A further embodiment of the present invention provides a flexible and platform-independent method for a self healing web services process. It conducts self-monitoring and self-recovery, so as to ensure that the web services can survive with low cost so that the customers of the web services can still be offered the required services even when a partner of the web services fails.
[016] The present invention provides a self-healing method for processing a composite web services process, said composite web services process invoking at least one elementary web service. The method comprises the steps of: providing the elementary web service with at least one alternative web service, which is independent of said elementary web service and implements the same function as that of the corresponding elementary web service; parsing the model definition of said composite web services process to search the steps that activate the invocation of the elemenl'~ry web service;
inserting healing logics after said steps that activate the invocation of the elementary web service, which are searched from the model definition of said composite web services process. And during the procedure of executing said composite web services process, said healing logic detecting whether the previous invocation of the elementary web service is failed or not, and in the case of detection of an invocation failure, said healing logic invoking said alternative web service corresponding to the elementary web service which failed to be invoked.
[017] The present invention further provides a self-healing apparatus for processing a composite web services process, said composite web services process invoking at least one elementary web service. The apparatus comprises: an alternative web service repository for providing the elementary web service with at least one alternative web service, which is independent of said elementary web service and implements the same function as that of the corresponding elementary web service; a model parsing means for parsing the model definition of said composite web services process to identify the steps that activate the invocation of the elementary web service; a healing logic inserting means for inserting healing logics after said steps that activate the invocation of the elementary web service, which are identified from the model definition of said composite web services process. And during the procedure of executing said composite web services process, said healing logic detecting whether the previous invocation of the elementary web service is failed or not, and in the case of detection of an invocation failure, said healing logic invoking said alternative web service, cor-responding to the elementary web service which failed to be invoked, from the al-ternative web service repository.
[018] The present invention further provides an apparatus for executing a composite web services process which invokes at least one elementary web service. The apparatus is used along with an alternative web service repository in which the elementary web service is provided with at least one alternative web service, which is independent of said elementary web service and executes the same function as that of the cor-responding elementary web service. The apparatus comprises: a self healing component for determining whether the invocation is successful after said apparatus executes the invocation of the elementary web service according to the composite web services process. In the case that an invocation failure is determined to have occurred the self-healing component will invoke an alternative web service, corresponding to the elementary web service which was not invoked successfully, from the alternative web service repository.
[019] The present invention further provides a method for executing a composite web services process which invokes at least one elementary web service. The method comprises: determining whether the invocation is successful after executing the invocation of the elementary web service; and in the case that an invocation failure is determined to have occurred invoking, from the alternative web service repository, an alternative web service corresponding to the elementary web service which was not invoked successfully. In the said alternative web service repository, the elementary web service is provided with at least one alternative web service, which is independent of said elementary web service and implements the same function as that of the cor-responding elementary web service.
[020] The advantages of the present invention are:
[021] (1) The present invention is more feasible than adopting a specific services platform. The present invention is independent of the platform, which ensures re-liability on the composite web service process level and has no special requirement to the service platform providing the web service of the partner. That is, the present invention does not require the web service of each partner to achieve high availability.
In the loose-coupled web services era, it is more feasible.
[022] (2) It can change on demand (stakeholder-oriented). The present invention allows the stakeholders of the composite web services to customize the healing mechanisms and those healing mechanisms can be integrated easily into the composite web service process on demand.
[023] (3) Low-cost. If a partner does not fail, the services process is not influenced at all.
If a partner fails, the services process just executes another invocation.
Although invoking another service will bring a little performance cost, it guarantees the re-liability of the whole process. Consider the following scenario: a composite web services process needs to invoke 100 partner services, the first 99 invocation succeed, but the last one fails. Without the disclosed method herein, the whole process instance would fail, and the first 99 partners' work would be negated too. But with the method of the present invention, the services process continues to execute, that is, one candidate web service for the web service of the failed partner is invoked and result is returned. Thus, the first 99 partners' work is maintained and cost of the composite web service is reduced.
Brief Description of the Drawings [024] With the description of the exemplary embodiments of the present invention in conjunction with the accompanying drawings, the above and other aspects and advantages of the present invention will become more apparent, wherein:
[025] Figure 1 shows an example of composite web services;
[026] Figure 2 shows a schematic diagram of BPEL4WS process;
[027] Figure 3 schematically shows related apparatus for providing the composite web services process with self healing ability~~ccording to the present invention;
[028] Figure 4 shows the flow chart of a method for providing the composite web services process with self healing ability according to the present invention;
[029] Figure 5 shows the flow chart of the elementary process of the healer;
[030] Figure 6 shows the flow chart of the self-healing of the composite web services process;
[031] Figure 7A shows an example of BPEL4WS process;
[032] Figure 7B shows the self healing BPEL4WS process of the example shown in the Figure 7A;
[033] Figure 8 shows how the process engine invokes the partner's web services as activity implementation; and [034] Figure 9 shows the self healing process engine according to the present invention.
Mode for the Invention [035] A web services process delivered from the process designer to the service provider is provided in a declarative form such as an AML document instead of traditional unreadable binary code. The present invention automatically analyzes the business process, and then inserts healing logics into appropriate places within the business process logic. Those healing logics ensure the web services process continues to meet the original requirements of the users in the case of the failure of the partner web services, without impacting the original business process described in the XML
document. At the same time, the healing logics comply with the specification of the business process, such as BPEL4WS or WSFL, complying with its grammar and semantic definition so as to implement self-containing. The web services process including healing logics can be referred to as a self healing web services process. The self healing web services process can be deployed and executed on any specification-compliant process execution platform (process engine). When the self healing web services process is performed on the process engine, if the partners' web services fail, the healing logics first detect and record the failed partner web services, and introduce the healer invoking the alternative web services into the business process without any apparent disruption. The partner services and their alternative services are predefined in the partner services register. After the partner services fail, the alternative services can be invoked simply by querying the register.The business process continues to meet the original requirements.
[036] A method and related apparatus for providing the composite web services process with self healing ability according to the present invention will be described in detail with reference to Figures 3-5.
[037] Figure 3 schematically shows related apparatus for providing the composite web services process with self healing~ability according to the present invention.
The apparatus includes partner web services repository, healing generator, and healer generating apparatus. Figure 4 shows the flow chart of a method for providing the composite web services process with self healing ability according to the present invention.
[038] As an example, in the model of composite web services process as shown in Figure 3, first the step 1 is performed, then the steps 2A and 2.B are performed in parallel, finally the step 3 is performed, wherein the steps 2A and ~,B invoke web services "WS2A" and "WS2B" respectively.
[039] The partner web services repository is a container for alternative web services, wherein the web services WS2A and WS2B to be invoked in the composite web services process are provided with multiple alternative web services WS2A alternative_1 to WS2,A_alternative n and WS2B alternative_1 to WS2B alternative n respectively. The alternative web services provide the same func-tionality but are offered by the different services providers. For example, the flight booking service of China Eastern Airline is the alternative service of flight bookirag service of China Southern Airline. Actual providers can register with the partner services web repository of interest to offer the desired service. The partner web services repository will be used when one partner web service in the composite web services process is unavailable. The alternative web service in the corresponding repository will be selected and be invoked instead of the unavailable partner web services. For example, in the composite web service process TravelAgefat, if the fligl2.t booking service of China Southern Airline fails, the flight booking service of China Eastern Airline will be invoked and delegated to book flight.
[040] In the partner web services repository, the alternative web services can be assigned different invocation levels, according to an alterfzative-web-serviee-selection- policy.
The selection policy can be constituted based on any ranking algorithm involving parameters such as services' availability, so that the self healing process can invoke al-ternative web services according to the ranks.
[041] Healing generator includes model parsing apparatus, healing logic generating apparatus, and healing logic inserting apparatus, which are used to further process the existing composite web services process model definition. At step 5410 of Figure 4, the model parsing apparatus parses a step in the composite web services process model definition to search the steps that activates the invocation of partner web services therein, e.g., step 2A and step 2B in Figure 3, and at step 5420, it is determined whether this step in the model definition will invoke partner web services. If it is determined that a partner web services will not be invoked at step 5420, the flow proceeds to step 5460, which will be described below. If it is determined that a partner web services will be.invoked at step 5420, the healing logic generating apparatus ,~,.;
generates healing logic at step 5430, and at step 5440 the healing logic inserting apparatus inserts the generated healing logic following the step (2A, 2B) that activates the invocation of the partner web services as searched in the model definition of the composite web services process, such as the steps 2A-H, 2B-H in the self-healing process model in Figure 3, which are used to respectively detect whether the invocation of the partner web services in the preceding steps 2A and 2B are successful.
The healing logic can determine whether the invocation of the partner web services is successful according to whether the partners' reply is obtained.
[042] At step 5450, the healer generating apparatus generates healer corresponding to the healing logic, such as WS2A-Healer and WS2B-Healer in Figure 3. The healer will be described in detail below.
[043] At step S460, it is determined whether the web services model ends. If it is determined that it ends, the method of the present invention ends. If it is determined that it does not end, the process returns to the step 5410, in which the next step in the model definition is parsed.
[044] The healer will be described in detail below. The healer itself is a web service, which can invoke an alternative web service of the partner web service from the partner web service repository to get the desired service in case that the partner web service is unavailable. For example, if the partner web service WS2A is unavailable, the output of step 2A is system-level exception. The system-level exception means an exception occurred due to the system failure, network failure, and application fault. In this case, the healing logic 2A-H will invoke the healer WS2A-Healer. Figure 5 shows the flow chart of the elementary process of the healer. At step 5510, the healer WS2A-Healer chooses an alternative web service to be invoked according to the afore-mentioned alter~eative-web-service-selection policy, e.g. WS2A_alternative_1, and invokes the alternative web service at step 5520. The healer can further record when and which partner web service is unavailable as a log of the collaboration with that partner web service provider. The healer can also communicate with partner web service repository and take part in evaluating the alternative web service invocation level.
[045] Through the above process, the existing composite web services process becomes a self healing composite web services process having self healing capability, which is executed on the web services process engine. The self healing process of the composite web services process will be described below with reference to Figure 6. At step 5610, the respective steps of the composite web services process are executed according to the model definition of the composite web services process. At step 5620, the partner web service is invoked according to the request of the composite web ~Wservices process. And it is determined whether the invocation is swecessful at step 5630. If it is determined that the invocation is successful, the process proceeds to the step 5650. If it is determined that the invocation is failed, the healer web service is invoked at step 5640. An alternative web service is invoked by the healer web service.
At step 5650, it is determined whether the composite web services process ends by the step. If it does not end, the process returns to the step 5610 to continue executing the composite web services process. If it ends, the self-healing process ends.
[046] An embodiment based on BPEL,4WS according to the method disclosed in the present invention will be described below with reference to Figures 7A and 7B.
Figure 7A shows an example of BPEL4WS process, wherein a customer sends a request for a loan, the request gets processed, and the customer finds out whether the loan request was approved. In the process, the behavior consists of getting a message, invoking the financial institution's web service, and finally replying to the customer.
These three actions are defined in BPEL using the <receive>, <invoke>, and <reply>
activities.
The relationship among such activities, which is defined by using structured activities, defines restrictions on how to run these activities. In this example, the ordering may be achieved using a <sequence> activity so that the activities would run one after another.
Figure 7B shows a self-healing BPEL4WS process of the example. It is different in that when the output result of the <invoke> is exception, the process will invoke the Healer Web Service which invokes the alternative partner service so as to ensure the reliability of the BPEL4WS process.
[047] The implementation steps of this example are as follows:
[048] (1) First, parse the web service process document loanapproval.bpel to search the activity (<invoke> fcnancial service) which invokes partner web service (financial service) and get the information of the partner web service.
[049] (2) Generate a healer web service that invoking an alternative web service of the partner web service. The information required for invocation, such as the name and address of the alternative web service, can be got from the partner web services repository and the corresponding service WSDL.
[050] (3) Insert the <switch> and <invoke> activities following the step of invoking partner web service so as to invoke the healer web service in the case of the failure of the before invoked partner web service.
[051] (4) Deploy the process, the related partner web services and healer web services.
[052] (5) Execute the self healing composite web services process on the process engine.
[053] The method and apparatus described above add healing logics into the composite web services process and the web services process is then executed on the process engine, so as to ensure the reliability of the composite web services process.
The method according to the present invention can also be changed to be employed by the web service process executing engine. That is, the;composite web services process itself is not changed, and instead, the healing process is executed by the web services process. Hereinafter, "web services process executing engine" is briefly called "process engine".
[054] First, process engine will be described briefly. Along with the composite web services process specifications, a few tools for the specifications are offered. For example, IBM provides a process engine called BPWS4J on which composite web services processes can be executed. The composite web services process engine takes in a composite web services process definition document describing a business process to be executed, WSDL documents describing the partner web services, and a WDSL
document describing the interface of the resulting business process to the clients. From this input, the process engine generates a process made available as a web service with a SOAP (Service-Oriented Architecture and Programming) interface. A WDSL file that describes the process's interface may be retrieved at run-time. The engine also supports the invocation, from within the process, of web services. Figure 8 shows how the process engine invokes the partner web services as activity implementation. After being defined, the process model is input to the process engine via service requester.
The process engine executes the corresponding process, communicates with the service invocation utility which sends a SOAP message to the web services provider's SOAP
handler, so as to invoke the services in its services container, and returns a SOAP
message to the service invocation utility.
[055] Figure 9 shows the self healing process engine according to the present invention.
The composite web services process engine can handle the failure of the partner web service by inserting a healing component into the composite web services process engine. Just like the aforementioned healing logics, the healing component detects whether the past invocation failed. If so, it will invoke the alternative web service of the failed partner web service through the service invocation utility. Its workflow is similar to the self healing process disclosed above, and the only difference is that the self healing is handled in the process engine, rather than the process itself.
The advantage of executing the present invention in the process engine is that the process model is not changed itself. The process engine is responsible for the reliability of the running composite web services process. The disadvantage is that the healing component is fixed and invisible for the stake-holder of the running process.
[056] Although the present invention has been described and shown in detail with reference to the preferred embodiments of the present invention, those skilled in the art should understand that various modifications in forms and details may be made without departing from the spirit and scope of the present invention as defined by the appended claims.
maybe implemented in the engine are fixed and invisible, probably with a few con-figuration functions. The stakeholders of the composite web services process, such as the provider and the administrator, cannot customize or control those healing mechanisms.
[O11] US patent No. 6,330,689 Bl discloses a system architecture with detection and recovery of failed out-of process application, wherein detection is performed by recording and examining the log, and recovery is performed by restarting a crashed ap-plication.However, the solution described in US6,330,689 cannot achieve real-time recovery.
[012] US patent publication No. 200210007468 Al discloses a method and system for achieving high availability of a network computer system.The global high availability is achieved by providing each component with high availability. However in the composite web services, it is not practical for all the partners' web services to have high availability.
[013] US patent publication No. 2003/0144894 A1 discloses a system and method for creating and managing permanent services provided via the web, which is directed to self healing of individual service. The solution described in US
2003/0144894A1 uses a managing agent mode to detect and rebuild the failed individual service, search for the rebuilt service in real time, and invoke the service again. The patent requires that each service should follow the managing agent mode defined by it so as to achieve re-liability of the service.
Disclosure of Invention [014] A first embodiment of the present invention makes the composite web services process recoverable in the case of failures of its partner web services, so as to avoid the composite web service process being interrupted or aborted due to the partners' failures.
[O15] A further embodiment of the present invention provides a flexible and platform-independent method for a self healing web services process. It conducts self-monitoring and self-recovery, so as to ensure that the web services can survive with low cost so that the customers of the web services can still be offered the required services even when a partner of the web services fails.
[016] The present invention provides a self-healing method for processing a composite web services process, said composite web services process invoking at least one elementary web service. The method comprises the steps of: providing the elementary web service with at least one alternative web service, which is independent of said elementary web service and implements the same function as that of the corresponding elementary web service; parsing the model definition of said composite web services process to search the steps that activate the invocation of the elemenl'~ry web service;
inserting healing logics after said steps that activate the invocation of the elementary web service, which are searched from the model definition of said composite web services process. And during the procedure of executing said composite web services process, said healing logic detecting whether the previous invocation of the elementary web service is failed or not, and in the case of detection of an invocation failure, said healing logic invoking said alternative web service corresponding to the elementary web service which failed to be invoked.
[017] The present invention further provides a self-healing apparatus for processing a composite web services process, said composite web services process invoking at least one elementary web service. The apparatus comprises: an alternative web service repository for providing the elementary web service with at least one alternative web service, which is independent of said elementary web service and implements the same function as that of the corresponding elementary web service; a model parsing means for parsing the model definition of said composite web services process to identify the steps that activate the invocation of the elementary web service; a healing logic inserting means for inserting healing logics after said steps that activate the invocation of the elementary web service, which are identified from the model definition of said composite web services process. And during the procedure of executing said composite web services process, said healing logic detecting whether the previous invocation of the elementary web service is failed or not, and in the case of detection of an invocation failure, said healing logic invoking said alternative web service, cor-responding to the elementary web service which failed to be invoked, from the al-ternative web service repository.
[018] The present invention further provides an apparatus for executing a composite web services process which invokes at least one elementary web service. The apparatus is used along with an alternative web service repository in which the elementary web service is provided with at least one alternative web service, which is independent of said elementary web service and executes the same function as that of the cor-responding elementary web service. The apparatus comprises: a self healing component for determining whether the invocation is successful after said apparatus executes the invocation of the elementary web service according to the composite web services process. In the case that an invocation failure is determined to have occurred the self-healing component will invoke an alternative web service, corresponding to the elementary web service which was not invoked successfully, from the alternative web service repository.
[019] The present invention further provides a method for executing a composite web services process which invokes at least one elementary web service. The method comprises: determining whether the invocation is successful after executing the invocation of the elementary web service; and in the case that an invocation failure is determined to have occurred invoking, from the alternative web service repository, an alternative web service corresponding to the elementary web service which was not invoked successfully. In the said alternative web service repository, the elementary web service is provided with at least one alternative web service, which is independent of said elementary web service and implements the same function as that of the cor-responding elementary web service.
[020] The advantages of the present invention are:
[021] (1) The present invention is more feasible than adopting a specific services platform. The present invention is independent of the platform, which ensures re-liability on the composite web service process level and has no special requirement to the service platform providing the web service of the partner. That is, the present invention does not require the web service of each partner to achieve high availability.
In the loose-coupled web services era, it is more feasible.
[022] (2) It can change on demand (stakeholder-oriented). The present invention allows the stakeholders of the composite web services to customize the healing mechanisms and those healing mechanisms can be integrated easily into the composite web service process on demand.
[023] (3) Low-cost. If a partner does not fail, the services process is not influenced at all.
If a partner fails, the services process just executes another invocation.
Although invoking another service will bring a little performance cost, it guarantees the re-liability of the whole process. Consider the following scenario: a composite web services process needs to invoke 100 partner services, the first 99 invocation succeed, but the last one fails. Without the disclosed method herein, the whole process instance would fail, and the first 99 partners' work would be negated too. But with the method of the present invention, the services process continues to execute, that is, one candidate web service for the web service of the failed partner is invoked and result is returned. Thus, the first 99 partners' work is maintained and cost of the composite web service is reduced.
Brief Description of the Drawings [024] With the description of the exemplary embodiments of the present invention in conjunction with the accompanying drawings, the above and other aspects and advantages of the present invention will become more apparent, wherein:
[025] Figure 1 shows an example of composite web services;
[026] Figure 2 shows a schematic diagram of BPEL4WS process;
[027] Figure 3 schematically shows related apparatus for providing the composite web services process with self healing ability~~ccording to the present invention;
[028] Figure 4 shows the flow chart of a method for providing the composite web services process with self healing ability according to the present invention;
[029] Figure 5 shows the flow chart of the elementary process of the healer;
[030] Figure 6 shows the flow chart of the self-healing of the composite web services process;
[031] Figure 7A shows an example of BPEL4WS process;
[032] Figure 7B shows the self healing BPEL4WS process of the example shown in the Figure 7A;
[033] Figure 8 shows how the process engine invokes the partner's web services as activity implementation; and [034] Figure 9 shows the self healing process engine according to the present invention.
Mode for the Invention [035] A web services process delivered from the process designer to the service provider is provided in a declarative form such as an AML document instead of traditional unreadable binary code. The present invention automatically analyzes the business process, and then inserts healing logics into appropriate places within the business process logic. Those healing logics ensure the web services process continues to meet the original requirements of the users in the case of the failure of the partner web services, without impacting the original business process described in the XML
document. At the same time, the healing logics comply with the specification of the business process, such as BPEL4WS or WSFL, complying with its grammar and semantic definition so as to implement self-containing. The web services process including healing logics can be referred to as a self healing web services process. The self healing web services process can be deployed and executed on any specification-compliant process execution platform (process engine). When the self healing web services process is performed on the process engine, if the partners' web services fail, the healing logics first detect and record the failed partner web services, and introduce the healer invoking the alternative web services into the business process without any apparent disruption. The partner services and their alternative services are predefined in the partner services register. After the partner services fail, the alternative services can be invoked simply by querying the register.The business process continues to meet the original requirements.
[036] A method and related apparatus for providing the composite web services process with self healing ability according to the present invention will be described in detail with reference to Figures 3-5.
[037] Figure 3 schematically shows related apparatus for providing the composite web services process with self healing~ability according to the present invention.
The apparatus includes partner web services repository, healing generator, and healer generating apparatus. Figure 4 shows the flow chart of a method for providing the composite web services process with self healing ability according to the present invention.
[038] As an example, in the model of composite web services process as shown in Figure 3, first the step 1 is performed, then the steps 2A and 2.B are performed in parallel, finally the step 3 is performed, wherein the steps 2A and ~,B invoke web services "WS2A" and "WS2B" respectively.
[039] The partner web services repository is a container for alternative web services, wherein the web services WS2A and WS2B to be invoked in the composite web services process are provided with multiple alternative web services WS2A alternative_1 to WS2,A_alternative n and WS2B alternative_1 to WS2B alternative n respectively. The alternative web services provide the same func-tionality but are offered by the different services providers. For example, the flight booking service of China Eastern Airline is the alternative service of flight bookirag service of China Southern Airline. Actual providers can register with the partner services web repository of interest to offer the desired service. The partner web services repository will be used when one partner web service in the composite web services process is unavailable. The alternative web service in the corresponding repository will be selected and be invoked instead of the unavailable partner web services. For example, in the composite web service process TravelAgefat, if the fligl2.t booking service of China Southern Airline fails, the flight booking service of China Eastern Airline will be invoked and delegated to book flight.
[040] In the partner web services repository, the alternative web services can be assigned different invocation levels, according to an alterfzative-web-serviee-selection- policy.
The selection policy can be constituted based on any ranking algorithm involving parameters such as services' availability, so that the self healing process can invoke al-ternative web services according to the ranks.
[041] Healing generator includes model parsing apparatus, healing logic generating apparatus, and healing logic inserting apparatus, which are used to further process the existing composite web services process model definition. At step 5410 of Figure 4, the model parsing apparatus parses a step in the composite web services process model definition to search the steps that activates the invocation of partner web services therein, e.g., step 2A and step 2B in Figure 3, and at step 5420, it is determined whether this step in the model definition will invoke partner web services. If it is determined that a partner web services will not be invoked at step 5420, the flow proceeds to step 5460, which will be described below. If it is determined that a partner web services will be.invoked at step 5420, the healing logic generating apparatus ,~,.;
generates healing logic at step 5430, and at step 5440 the healing logic inserting apparatus inserts the generated healing logic following the step (2A, 2B) that activates the invocation of the partner web services as searched in the model definition of the composite web services process, such as the steps 2A-H, 2B-H in the self-healing process model in Figure 3, which are used to respectively detect whether the invocation of the partner web services in the preceding steps 2A and 2B are successful.
The healing logic can determine whether the invocation of the partner web services is successful according to whether the partners' reply is obtained.
[042] At step 5450, the healer generating apparatus generates healer corresponding to the healing logic, such as WS2A-Healer and WS2B-Healer in Figure 3. The healer will be described in detail below.
[043] At step S460, it is determined whether the web services model ends. If it is determined that it ends, the method of the present invention ends. If it is determined that it does not end, the process returns to the step 5410, in which the next step in the model definition is parsed.
[044] The healer will be described in detail below. The healer itself is a web service, which can invoke an alternative web service of the partner web service from the partner web service repository to get the desired service in case that the partner web service is unavailable. For example, if the partner web service WS2A is unavailable, the output of step 2A is system-level exception. The system-level exception means an exception occurred due to the system failure, network failure, and application fault. In this case, the healing logic 2A-H will invoke the healer WS2A-Healer. Figure 5 shows the flow chart of the elementary process of the healer. At step 5510, the healer WS2A-Healer chooses an alternative web service to be invoked according to the afore-mentioned alter~eative-web-service-selection policy, e.g. WS2A_alternative_1, and invokes the alternative web service at step 5520. The healer can further record when and which partner web service is unavailable as a log of the collaboration with that partner web service provider. The healer can also communicate with partner web service repository and take part in evaluating the alternative web service invocation level.
[045] Through the above process, the existing composite web services process becomes a self healing composite web services process having self healing capability, which is executed on the web services process engine. The self healing process of the composite web services process will be described below with reference to Figure 6. At step 5610, the respective steps of the composite web services process are executed according to the model definition of the composite web services process. At step 5620, the partner web service is invoked according to the request of the composite web ~Wservices process. And it is determined whether the invocation is swecessful at step 5630. If it is determined that the invocation is successful, the process proceeds to the step 5650. If it is determined that the invocation is failed, the healer web service is invoked at step 5640. An alternative web service is invoked by the healer web service.
At step 5650, it is determined whether the composite web services process ends by the step. If it does not end, the process returns to the step 5610 to continue executing the composite web services process. If it ends, the self-healing process ends.
[046] An embodiment based on BPEL,4WS according to the method disclosed in the present invention will be described below with reference to Figures 7A and 7B.
Figure 7A shows an example of BPEL4WS process, wherein a customer sends a request for a loan, the request gets processed, and the customer finds out whether the loan request was approved. In the process, the behavior consists of getting a message, invoking the financial institution's web service, and finally replying to the customer.
These three actions are defined in BPEL using the <receive>, <invoke>, and <reply>
activities.
The relationship among such activities, which is defined by using structured activities, defines restrictions on how to run these activities. In this example, the ordering may be achieved using a <sequence> activity so that the activities would run one after another.
Figure 7B shows a self-healing BPEL4WS process of the example. It is different in that when the output result of the <invoke> is exception, the process will invoke the Healer Web Service which invokes the alternative partner service so as to ensure the reliability of the BPEL4WS process.
[047] The implementation steps of this example are as follows:
[048] (1) First, parse the web service process document loanapproval.bpel to search the activity (<invoke> fcnancial service) which invokes partner web service (financial service) and get the information of the partner web service.
[049] (2) Generate a healer web service that invoking an alternative web service of the partner web service. The information required for invocation, such as the name and address of the alternative web service, can be got from the partner web services repository and the corresponding service WSDL.
[050] (3) Insert the <switch> and <invoke> activities following the step of invoking partner web service so as to invoke the healer web service in the case of the failure of the before invoked partner web service.
[051] (4) Deploy the process, the related partner web services and healer web services.
[052] (5) Execute the self healing composite web services process on the process engine.
[053] The method and apparatus described above add healing logics into the composite web services process and the web services process is then executed on the process engine, so as to ensure the reliability of the composite web services process.
The method according to the present invention can also be changed to be employed by the web service process executing engine. That is, the;composite web services process itself is not changed, and instead, the healing process is executed by the web services process. Hereinafter, "web services process executing engine" is briefly called "process engine".
[054] First, process engine will be described briefly. Along with the composite web services process specifications, a few tools for the specifications are offered. For example, IBM provides a process engine called BPWS4J on which composite web services processes can be executed. The composite web services process engine takes in a composite web services process definition document describing a business process to be executed, WSDL documents describing the partner web services, and a WDSL
document describing the interface of the resulting business process to the clients. From this input, the process engine generates a process made available as a web service with a SOAP (Service-Oriented Architecture and Programming) interface. A WDSL file that describes the process's interface may be retrieved at run-time. The engine also supports the invocation, from within the process, of web services. Figure 8 shows how the process engine invokes the partner web services as activity implementation. After being defined, the process model is input to the process engine via service requester.
The process engine executes the corresponding process, communicates with the service invocation utility which sends a SOAP message to the web services provider's SOAP
handler, so as to invoke the services in its services container, and returns a SOAP
message to the service invocation utility.
[055] Figure 9 shows the self healing process engine according to the present invention.
The composite web services process engine can handle the failure of the partner web service by inserting a healing component into the composite web services process engine. Just like the aforementioned healing logics, the healing component detects whether the past invocation failed. If so, it will invoke the alternative web service of the failed partner web service through the service invocation utility. Its workflow is similar to the self healing process disclosed above, and the only difference is that the self healing is handled in the process engine, rather than the process itself.
The advantage of executing the present invention in the process engine is that the process model is not changed itself. The process engine is responsible for the reliability of the running composite web services process. The disadvantage is that the healing component is fixed and invisible for the stake-holder of the running process.
[056] Although the present invention has been described and shown in detail with reference to the preferred embodiments of the present invention, those skilled in the art should understand that various modifications in forms and details may be made without departing from the spirit and scope of the present invention as defined by the appended claims.
Claims
Claims [001] A self-healing method for processing a composite web services process, said composite web services process invoking at least one elementary web service, said method comprising the steps of: providing the elementary web service with at least one alternative web service, which is independent of said elementary web service and implements at least one function of the corresponding elementary web service; parsing a model definition of said composite web services process to identify the steps that activate the invocation of the elementary web service;
inserting healing logics after said steps that activate the invocation of the elementary web service, which are identified from the model definition of said composite web services process; and during the execution of said composite web services process, said healing logic detecting whether the previous invocation of the elementary web service failed and, in the case that an invocation failure is detected, said healing logic invoking said alternative web service corresponding to the elementary web service which failed to be invoked.
[002] The method according to claim 1, further comprising a step of generating said healing logic before inserting the healing logics.
[003] The method according to claim 1, characterized in that said healing logic determines whether the invocation of the elementary web service failed according to whether or not a reply is obtained from the elementary web service.
[004] The method according to claim 1, further comprising the steps of:
generating a healer which communicates with the alternative web service repository and invokes the alternative service in the alternative web service repository, wherein said healing logic invokes the alternative web service by invoking said healer.
[005] The method according to claim 4, characterized in that said healer is a web service itself.
[006] The method according to claim 4, further comprising the step that said healer records the invocation-failed elementary web service and the invocation-failed time.
[007] The method according to claim 1, characterized in that said at least one altern ative web service is divided into multiple invoking levels, based on which the healing logic invokes the alternative web services.
[008] A self-healing apparatus for processing a composite web services process,said composite web services process invoking at least one elementary web service, the apparatus comprising: an alternative web service repository for providing the elementary web service with at least one alternative web service, which is in-dependent of said elementary web service and implements at least one function of the corresponding elementary web service; a model parsing means for parsing a model definition of said composite web services process to identify the steps that activate the invocation of the elementary web service; a healing logic inserting means for inserting healing logics after said steps that activate the invocation of the elementary web service, which are identified from the model definition of said composite web services process; during execution of said composite web services process, said healing logic detecting whether the previous invocation of the elementary web service failed and, in the case that an invocation failure is detected, said healing logic invoking said alternative web service, corresponding to the elementary web service which failed to be invoked, from the alternative web service repository.
[009] The apparatus according to claim 8, further comprising a healing logic generating means for generating said healing logic.
[010] The apparatus according to claim 8, characterized in that said healing logic determines whether the invocation of the elementary web service failed according to whether or not a reply is obtained from the elementary web service.
[011] The apparatus according to claim 8, further comprising: a healer generating means for generating a healer which communicates with the alternative web service repository and invokes the alternative service in the alternative web service repository, wherein said healing logic invokes the alternative web service by invoking said healer.
[012] The apparatus according to claim 11, characterized in that the healer generating means is configured to make the generated healer a web service itself.
[013] The apparatus according to claim 8, characterized in that the alternative web service provided in the alternative web service repository is divided into multiple invoking levels, based on which the healing logic invokes the alternative web services.
[014] An apparatus for executing a composite web services process which invokes at least one elementary web service, characterized in that, said apparatus is used along with an alternative web service repository in which the elementary web service is provided with at least one alternative web service, which is in-dependent of said elementary web service and executes at least one function of the corresponding elementary web service, the apparatus comprising: a self-healing component for determining whether the invocation is successful after said apparatus executes the invocation of the elementary web service according to the composite web services process and, in the case that an invocation failure is determined, said self-healing component invoking an alternative web service, corresponding to the elementary web service which is not invoked successfully, from the alternative web service repository.
[015] ~A method of executing a composite web services process which invokes at least one elementary web service, the method comprising: determining whether the invocation is successful after executing the invocation of the elementary web service; and in the case that an invocation failure is determined, invoking from the alternative web service repository an alternative web service corresponding to the elementary web service which is not invoked successfully, wherein, in the alternative web service repository, the elementary web service is provided with at least one alternative web service, which is independent of said elementary web service and implements at least one function of the corresponding elementary web service.
[016] The method according to claim 15, characterized in that the alternative web services provided in the alternative web service repository are divided into multiple invoking levels, based on which the alternative web services are invoked.
[017] The method according to claim 15, characterized in that said method is executed automatically by the process engine which executes said composite web services process.
[018] The method according to claim 15, characterized in that said method is a part of said composite web services process.
inserting healing logics after said steps that activate the invocation of the elementary web service, which are identified from the model definition of said composite web services process; and during the execution of said composite web services process, said healing logic detecting whether the previous invocation of the elementary web service failed and, in the case that an invocation failure is detected, said healing logic invoking said alternative web service corresponding to the elementary web service which failed to be invoked.
[002] The method according to claim 1, further comprising a step of generating said healing logic before inserting the healing logics.
[003] The method according to claim 1, characterized in that said healing logic determines whether the invocation of the elementary web service failed according to whether or not a reply is obtained from the elementary web service.
[004] The method according to claim 1, further comprising the steps of:
generating a healer which communicates with the alternative web service repository and invokes the alternative service in the alternative web service repository, wherein said healing logic invokes the alternative web service by invoking said healer.
[005] The method according to claim 4, characterized in that said healer is a web service itself.
[006] The method according to claim 4, further comprising the step that said healer records the invocation-failed elementary web service and the invocation-failed time.
[007] The method according to claim 1, characterized in that said at least one altern ative web service is divided into multiple invoking levels, based on which the healing logic invokes the alternative web services.
[008] A self-healing apparatus for processing a composite web services process,said composite web services process invoking at least one elementary web service, the apparatus comprising: an alternative web service repository for providing the elementary web service with at least one alternative web service, which is in-dependent of said elementary web service and implements at least one function of the corresponding elementary web service; a model parsing means for parsing a model definition of said composite web services process to identify the steps that activate the invocation of the elementary web service; a healing logic inserting means for inserting healing logics after said steps that activate the invocation of the elementary web service, which are identified from the model definition of said composite web services process; during execution of said composite web services process, said healing logic detecting whether the previous invocation of the elementary web service failed and, in the case that an invocation failure is detected, said healing logic invoking said alternative web service, corresponding to the elementary web service which failed to be invoked, from the alternative web service repository.
[009] The apparatus according to claim 8, further comprising a healing logic generating means for generating said healing logic.
[010] The apparatus according to claim 8, characterized in that said healing logic determines whether the invocation of the elementary web service failed according to whether or not a reply is obtained from the elementary web service.
[011] The apparatus according to claim 8, further comprising: a healer generating means for generating a healer which communicates with the alternative web service repository and invokes the alternative service in the alternative web service repository, wherein said healing logic invokes the alternative web service by invoking said healer.
[012] The apparatus according to claim 11, characterized in that the healer generating means is configured to make the generated healer a web service itself.
[013] The apparatus according to claim 8, characterized in that the alternative web service provided in the alternative web service repository is divided into multiple invoking levels, based on which the healing logic invokes the alternative web services.
[014] An apparatus for executing a composite web services process which invokes at least one elementary web service, characterized in that, said apparatus is used along with an alternative web service repository in which the elementary web service is provided with at least one alternative web service, which is in-dependent of said elementary web service and executes at least one function of the corresponding elementary web service, the apparatus comprising: a self-healing component for determining whether the invocation is successful after said apparatus executes the invocation of the elementary web service according to the composite web services process and, in the case that an invocation failure is determined, said self-healing component invoking an alternative web service, corresponding to the elementary web service which is not invoked successfully, from the alternative web service repository.
[015] ~A method of executing a composite web services process which invokes at least one elementary web service, the method comprising: determining whether the invocation is successful after executing the invocation of the elementary web service; and in the case that an invocation failure is determined, invoking from the alternative web service repository an alternative web service corresponding to the elementary web service which is not invoked successfully, wherein, in the alternative web service repository, the elementary web service is provided with at least one alternative web service, which is independent of said elementary web service and implements at least one function of the corresponding elementary web service.
[016] The method according to claim 15, characterized in that the alternative web services provided in the alternative web service repository are divided into multiple invoking levels, based on which the alternative web services are invoked.
[017] The method according to claim 15, characterized in that said method is executed automatically by the process engine which executes said composite web services process.
[018] The method according to claim 15, characterized in that said method is a part of said composite web services process.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200410039642.9A CN1668014A (en) | 2004-03-12 | 2004-03-12 | Auto-restored composite network service method and device |
CN2004100396429 | 2004-03-12 | ||
PCT/EP2005/051089 WO2005091186A2 (en) | 2004-03-12 | 2005-03-10 | Method and apparatus for self-healthing composite web services |
Publications (1)
Publication Number | Publication Date |
---|---|
CA2555697A1 true CA2555697A1 (en) | 2005-09-29 |
Family
ID=34961236
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA002555697A Abandoned CA2555697A1 (en) | 2004-03-12 | 2005-03-10 | Method and apparatus for self-healthing composite web services |
Country Status (8)
Country | Link |
---|---|
EP (1) | EP1738308A1 (en) |
JP (1) | JP4493692B2 (en) |
KR (1) | KR100951093B1 (en) |
CN (1) | CN1668014A (en) |
BR (1) | BRPI0508608A (en) |
CA (1) | CA2555697A1 (en) |
IL (1) | IL177794A0 (en) |
WO (1) | WO2005091186A2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101600216B (en) * | 2009-06-26 | 2013-01-02 | 北京邮电大学 | Distributed self-healing method and system of wireless access network |
CN104601696B (en) * | 2015-01-13 | 2018-05-15 | 北京京东尚科信息技术有限公司 | Service processing method, service calling system, device and system |
US10884864B2 (en) | 2018-11-29 | 2021-01-05 | International Business Machines Corporation | Autonomous self-healing stateless microservice nodes |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6330689B1 (en) | 1998-04-23 | 2001-12-11 | Microsoft Corporation | Server architecture with detection and recovery of failed out-of-process application |
JP2001155003A (en) * | 1999-11-30 | 2001-06-08 | Ntt Comware Corp | Service recovery system and recording medium therefor |
JP2002222176A (en) * | 2001-01-25 | 2002-08-09 | Nippon Telegr & Teleph Corp <Ntt> | Device and method for automatically restoring failure of application server computer in server-based computing model |
JP3781636B2 (en) * | 2001-05-18 | 2006-05-31 | Necフィールディング株式会社 | Reception system and reception method |
JP2003022258A (en) * | 2001-07-05 | 2003-01-24 | Mitsubishi Research Institute Inc | Backup system for server |
US7194543B2 (en) | 2001-11-12 | 2007-03-20 | Mci, Llc | System and method for creating and managing survivable, service hosting networks |
JP2003281007A (en) * | 2002-03-20 | 2003-10-03 | Fujitsu Ltd | Dynamic configuration controller and dynamic configuration control method |
JP2004021873A (en) * | 2002-06-20 | 2004-01-22 | Hitachi Ltd | Internet system monitoring device |
JP2004030360A (en) * | 2002-06-27 | 2004-01-29 | Japan Telecom Co Ltd | Web service providing system and web service providing support system |
-
2004
- 2004-03-12 CN CN200410039642.9A patent/CN1668014A/en active Pending
-
2005
- 2005-03-10 BR BRPI0508608-6A patent/BRPI0508608A/en not_active IP Right Cessation
- 2005-03-10 KR KR1020067017491A patent/KR100951093B1/en not_active IP Right Cessation
- 2005-03-10 WO PCT/EP2005/051089 patent/WO2005091186A2/en not_active Application Discontinuation
- 2005-03-10 JP JP2007502349A patent/JP4493692B2/en not_active Expired - Fee Related
- 2005-03-10 EP EP05716992A patent/EP1738308A1/en not_active Withdrawn
- 2005-03-10 CA CA002555697A patent/CA2555697A1/en not_active Abandoned
-
2006
- 2006-08-31 IL IL177794A patent/IL177794A0/en unknown
Also Published As
Publication number | Publication date |
---|---|
WO2005091186A8 (en) | 2006-10-26 |
KR20070001981A (en) | 2007-01-04 |
JP4493692B2 (en) | 2010-06-30 |
IL177794A0 (en) | 2006-12-31 |
JP2007529067A (en) | 2007-10-18 |
BRPI0508608A (en) | 2007-12-18 |
KR100951093B1 (en) | 2010-04-07 |
CN1668014A (en) | 2005-09-14 |
EP1738308A1 (en) | 2007-01-03 |
WO2005091186A2 (en) | 2005-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Das et al. | ORBWork: A reliable distributed CORBA-based workflow enactment system for METEOR2 | |
Alonso et al. | Enhancing the fault tolerance of workflow management systems | |
US11205150B2 (en) | Apparatus and method for policy-driven business process exception handling | |
EP2217996A2 (en) | Processing model-based commands for distributed applications | |
Ardissono et al. | Fault tolerant web service orchestration by means of diagnosis | |
Gao et al. | A survey of transactional issues for web service composition and recovery | |
Rodrigues et al. | Reliability support for the model driven architecture | |
Rukoz et al. | Faceta*: Checkpointing for transactional composite web service execution based on petri-nets | |
Grossmann et al. | Behavior based integration of composite business processes | |
CA2555697A1 (en) | Method and apparatus for self-healthing composite web services | |
He | Recovery in web service applications | |
Tosi et al. | Towards autonomic service-oriented applications | |
Fugini et al. | Recovery of faulty web applications through service discovery | |
Carzaniga et al. | Healing web applications through automatic workarounds | |
Moschoyiannis et al. | True concurrency in long-running transactions for digital ecosystems | |
Danilecki et al. | ReServE service: An approach to increase reliability in service oriented systems | |
Casati et al. | Error handling in process support systems | |
Wiesner et al. | Recovery mechanisms for semantic web services | |
JP2007529067A6 (en) | Method and apparatus for self-healing composite web service | |
Vaz et al. | On the analysis of compensation correctness | |
Fang et al. | Dynamic support for BPEL process instance adaptation | |
Xiao et al. | Process dependencies and process interference rules for analyzing the impact of failure in a service composition environment | |
Alonso et al. | Processes in electronic commerce | |
Wirtz et al. | Using UML and Object-Coordination-Nets for workflow specification | |
Alhosban et al. | Assessing fault occurrence likelihood for service-oriented systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EEER | Examination request | ||
FZDE | Discontinued | ||
FZDE | Discontinued |
Effective date: 20110310 |