1. 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 creating a context for 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 in an execution graph connectivity and data dependencies among the one or more embedded software services contained within the composite software service including tracking any context-sensitive attributes for the one or more embedded software services, the context-sensitive attributes declaring whether an embedded software service is transactional and recovery behavior of the embedded software service upon a termination event, wherein the recovery behavior is at least one of compensate, rollback or commit; tracking in an invocation map, based on the execution graph, 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 with the invocation of each of the one or more embedded software services for the purpose of recovery from an unknown state; 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 was successful, updating a state of the successful embedded software service in the invocation map; 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.