Patent ID: 7533387

Claim:
In a computing system having one or more computers configured to invoke one or more composite software services, each composite software service containing one or more embedded software services, a method of guaranteeing an invocation of a composite software service, the method comprising: identifying a composite software service containing one or more embedded software services; receiving a request to invoke the composite software service; tracking the connectivity and data dependencies among the one or more embedded software services contained within the composite software service; tracking a context of the composite software service, the context including states of execution of the one or more embedded software services; associating a unique ID for each of the one or more embedded software services; invoking one of the one or more embedded software services; when receiving an indication that invocation of one of the one or more embedded software services has succeeded, updating a state of the successful embedded software service; and when receiving an indication that invocation of one of the one or more embedded software services was unsuccessful, using the unique ID associated with the unsuccessful embedded software service to re-invoke the unsuccessful embedded software service; wherein receiving an indication that the invocation of one of the one or more embedded software services was unsuccessful comprises receiving indication of at least one of: an unknown state of an embedded software service, an unsuccessful invocation of an embedded software service due to internal system failure, or an unsuccessful invocation of an embedded software service due to external system failure.