Patent ID: 7191232
Filing Date: 2007-03-13
Classification: H04L

Abstract:
1. A service gateway operable to (i) connect at least one local client to an external network; and (ii) hold at least one service module for providing a corresponding service, wherein the service gateway includes a control mechanism configured to respond to a request for a first service provided by a service module not present at the service gateway by sending one or more messages to an external source until a response from the external source identifies a first service module within the gateway that is capable of providing the first service; wherein the response received from the external source identifies a proposed service and includes an input stream comprising an encoded version of the first service module, wherein the proposed service is a service required to decode the encoded version of the first service module; wherein the service gateway further comprises a record that identifies service modules that are held by the service gateway, the record including a pointer to each of the service modules, wherein the control mechanism is operable to react to a received request that identifies a first service module by: accessing the record to determine if the first service module is held by the service gateway; using the associated pointer included in the record to cause the first service module to provide a corresponding service if the first service module is held by the service gateway; and if the first service module is not held by the service gateway, recursively requesting support from an external source until the record indicates that the first service module is held by the service gateway; wherein requesting support from an external source comprises: sending a message to the external source until a response from the external source identifies a first service module; and reacting to a response from the external source that includes an input stream comprising an encoded version of the first service module and identifies a second service module, wherein the second service module is required to decode the encoded version of the first service module by: if the second service module is held by the service gateway, decoding the first service module; and if the second service module is not held by the service gateway: requesting support from the external source until a response from the external source identifies a second service module that is held by the service gateway.