Resource reservation in a network
The present invention relates to reservation of resources in a network, where a number of resources are present. More particularly, the present invention relates to reservation of resources in a home network.
WO 01/50290 discloses a resource manager for providing a user-dependent access control system for a network of consumer electronic devices. The resource manager provides a centralized resource allocation, reservation and access control functionalities for a home server of a home entertainment system. Thus, the user has no direct control over the devices. Rather, the user can only submit requests to the resource manager, which has complete control over all of the resources of the network, to provide services. In a network, a resource may be capable of providing several different services which may be performed more or less independently of each other. Thus, it is desirable to provide a network in which the resources may be used simultaneously for different purposes, thereby providing a more efficient utilization of the available resources and enhancing the applicability of the resources. Thus it is an object of the present invention to provide a network with a very flexible resource management, even when multiple competing users and applications are present. It is a further object of the present invention to provide a method for reservation of resources in a network providing an increased efficiency in the utilization of the available resources.
According to a first aspect of the present invention the above and other objects are fulfilled by providing a method for controlling resources in a network comprising one or more resources and one or more clients, the method comprising the steps of: a client requesting reservation of a resource, said request comprising one or more purpose parameters indicating one or more purposes of said reservation,
said resource checking whether it is available for said purpose(s), in case said resource is available, reserving the resource according to said request. According to a second aspect of the present invention the above and other objects are fulfilled by providing a network comprising: one or more resources, one or more clients, reservation means for reserving the one or more resources upon request from a client, said request comprising one or more purpose parameters indicating one or more purposes of said reservation. Preferably, the network is a home network. According to a third aspect of the present invention the above and other objects are fulfilled by providing a computer program being adapted to perform the steps of: receiving a request for reservation of a resource of a network, said request comprising one or more purpose parameters indicating one or more purposes of said reservation, checking whether said resource is available for said purpose, and in case said resource is available, reserving the resource according to said request. Thus, the computer program according to the third aspect of the present invention is preferably adapted to control the resources of a network in accordance with the method according to the first aspect of the present invention. The client is preferably a specific user. However, in the present context the term 'client' may also be understood as being represented by a specific need or request from a user. One user may thus represent several clients in case he or she has various needs and/or requests the services of various resources and/or various purposes of one resource. Two or more different requests originating from the same user may therefore 'compete' for the services provided by a resource in the same manner as requests originating from different users. Alternatively or additionally, a client may also be a service or an application needing the services provided by a resource, e.g. in order to fulfill a request from a user. In this case the service or application automatically requests the necessary service(s) from the relevant resource(s).
The purposes of the resources may be various services which are provided by the resource in question. In case the resource is a printing device, the purpose may, e.g., be performing a specific print job, in case the resource is a clock, purposes may be setting the clock, providing a time stamp, activation of a timer, etc. Thus, the reservation request is preferably accompanied by an extra parameter list containing the purposes for which the client wants to use the resource. Thus, the present invention provides an improved utilization of the resources of the network because, for each reservation, the resource is purely reserved for the specific purpose which is required in that special case, and hence the resource may simultaneously be reserved for other purposes by another (or even the same) user. Thus, a client using a resource for a specific purpose does not necessarily block the use of that resource for other clients. Each purpose may be instantiated one or more times for a resource. Thus, a resource is preferably provided with a number of available purposes, each purpose being available simultaneously for a certain number of clients. For example, a resource may be simultaneously available for one 'update client' and ten 'observe clients'. The one or more purpose parameters preferably comprises one or more types of the purpose(s). The resource manufacturer can determine how many purpose types and instantiations there can be at any time in the lifetime of the resource. Furthermore, a resource may change the set of available purposes during its lifetime, it may delegate purposes to other resources, etc., thereby providing a very flexible network and a very efficient utilization of the resources of the network. In one embodiment, a client can reserve a resource for one or more purposes only if there are still purpose instantiations available. Thus, in the above example, if one client has already requested 'update client', no other client can reserve the resource for this purpose until the first request has either been performed or released. If, on the other hand, four clients have already requested 'observe clients' this purpose is still available to another six clients. This provides a very efficient utilization of the resources of the network. A purpose instantiation can have an individual lifetime during which reservation for that purpose is possible. For example, a notification window on a display device may be reserved only for a limited time after the user has been interacting with that device. Otherwise, a notification might be missed by the user. The method may further comprise the step of the resource performing a service corresponding to the reservation. Thus, in case a client has requested the reservation
of a printer for a specific print job, the printer subsequently performs that print job, or in case a client has requested the use of a specific communication link, that link is subsequently provided, etc. In this embodiment the method may further comprise the step of charging the client for the service performed by the resource. The charging may be performed by sending a bill to the user, by charging a credit card, by performing a withdrawal from a deposit account, and/or in any other suitable way. The requesting step may be performed by means of an interface of the resource. In this embodiment a user wanting to request a reservation uses the interface associated with the relevant resource. Via this interface the user enters relevant information, including the purpose parameters indicating the purpose(s) for which the user wishes to use the resource. The resource may be at least a part of a network device. Thus, the resource may either be a network device or a part of a network device. The network device may, e.g., be a printer, a PC, a VCR, a DVD player, a subunit, a server, memory space, processor time, etc. Alternatively or additionally, the resource may be a communication link, such as a wired communication link, e.g. comprising an external modem, ISDN or ADSL connection, and/or a wireless communication link, such as a wireless LAN link, an infrared communication link, etc. and/or any other suitable kind of communication link. Alternatively or additionally, the resource may be a software component, such as a software driver, a file, a service, etc. The method may further comprise the step of querying the resource about available purposes. Thereby the client can investigate whether or not a desired resource is available for a desired purpose, and if this is not the case, the client can search for another identical or similar resource which is available for the desired purpose. It is also possible to retrieve data about the available purposes of the resource and/or about the current clients of the purposes. In case the requesting step is performed by means of an interface of the resource the querying step is preferably also performed by means of this interface. The querying step may be performed before the requesting step. The method may further comprise the step of a client releasing a resource for one or more previously reserved purposes. This may be done after a corresponding service has been provided by the resource or before that in case the client finds that he or she does not need the reservation after all. Furthermore, there may be provided for a negotiation
process between clients to take over each other's purposes, thereby even further enhancing the utilization of the resources of the network and the flexibility of the reservation. The method may further comprise the step of authenticating the client before performing the request. In this way it may be ensured that unauthorized clients do not gain access to the services provided by the resources. The clients may further be categorized into a number of different levels each having different access permissions. Thus, a client in the highest level may have access to all purposes of all resources of the network, while clients in other levels may only have access to a limited number of resources and/or purposes of the resources. The method may further comprise the step of reserving at least one additional resource, said resource being necessary when the original resource performs a service according to the request. It may thus, e.g., be necessary for a resource to reserve a communication link between a client and the relevant resource in order to be able to perform the service associated with the reservation. In this case the resource may itself perform this reservation. Combinations of purposes may advantageously be reserved as a group, and may invalidate other purpose groups. In one embodiment the resource may be a clock device. Assume clients can have use one of three purpose types in accessing the clock: - set the time (two instances available) create/delete timers (one instance available) activate a timer (five instances available) For the first purpose type the client can be a time manager, for the second purpose type the client can be a memory manager, and for the third purpose type the client can be any application client. These three purposes are independent, and their clients can be of different types and have different access rights. Only a time manager with an atomic clock or the Internet time may set the clock time. Only a memory manager can create additional timers (consuming memory). Any application can activate a timer as long as they are available. Each client should first reserve its purpose before it can use the related functions or services offered by the resource. Although the present invention has been described in connection with the preferred embodiment, it is not intended to be limited to the specific form set forth herein. Rather, the scope of the present invention is limited only by the accompanying claims. In the
claims, the term comprising does not exclude the presence of other elements or steps. Additionally, although individual features may be included in different claims, these may possibly be advantageously combined, and the inclusion in different claims does not imply that a combination of features is not feasible and/or advantageous. In addition, singular references do not exclude a plurality. Thus, references to "a", "an", "first", "second" etc. do not preclude a plurality.