Service framework supporting remote service discovery and connection
Abstract
In an information appliance system 100 , a user device 108 comprises a client platform ( 200 , FIG. 5 ) that includes a service framework ( 235 , FIG. 5 ) to discover and connect with a variety of services, both remote and local, transient and persistent, and to disconnect from them when they are no longer of interest or become unavailable. The service framework 235 provides a standard, consistent, simplified way for services to make themselves available and for service-using entities to locate and connect with the services of interest to them. When a service is requested from a remote server, a service frontend ( 281 , FIG. 9 ) on the client platform attempts to find its corresponding service backend ( 282 , FIG. 9 ) on a server providing the requested service and, if it finds it, the frontend and backend coalesce in a fully formed service that is made available to a requesting service-using entity. As a result, platform resources and security are maintained. Various methods of operating a service framework are also described.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A method of operating a communications node comprising a service framework, a service-requesting entity, and a service, the method comprising:
the service-requesting entity requesting the service framework to provide access to the service; and the service framework providing the service-requesting entity with access to the service.
2 . The method recited in claim 1 , wherein in requesting, the service-requesting entity provides a service type to the service framework.
3 . The method recited in claim 2 , wherein the service framework only locates and connects with services having the service type.
4 . The method recited in claim 1 , wherein in requesting, the service-requesting entity provides at least one service attribute to the service framework.
5 . The method recited in claim 4 , wherein the service framework only locates and connects with services having the at least one service attribute.
6 . The method recited in claim 1 , wherein the service-requesting entity resides on the communications node, and the service resides elsewhere, and wherein the communications node further comprises a connection manager service to notify the service framework when the communications node is in proximity to a remote communications node on which the service may reside.
7 . The method recited in claim 1 , wherein the service-requesting entity resides on the communications node, wherein the communications node comprises a wireless interface to which a remote communications node can be coupled, wherein the service resides on the remote communications node, and wherein the communications node further comprises a connection manager service to notify the service framework when the communications node is communicating with the remote communications node via the wireless interface.
8 . The method recited in claim 7 , wherein the service framework comprises a proximity daemon responsive to the connection manager service, the method further comprising:
the proximity daemon creating a remote lookup service frontend when the service framework is notified by the connection manager service; the remote lookup service frontend broadcasting a search for a remote lookup service backend; and if a remote lookup service backend is found, the remote lookup service frontend communicating with the remote lookup service backend.
9 . The method recited in claim 8 wherein in communicating, the remote lookup service frontend and remote lookup service backend determine whether they are compatible.
10 . The method recited in claim 9 , wherein the service framework further comprises a remote lookup daemon, the method further comprising:
if the remote lookup service frontend and remote lookup service backend are compatible, the remote lookup service backend determines whether a service backend corresponding to the service resides on the remote communications node; and if so, the remote lookup service backend passes parameters to the remote lookup daemon.
11 . The method recited in claim 10 , the service framework further comprising a service frontend and a service registry, the method further comprising:
the remote lookup daemon passing the parameters to the service frontend; and the service frontend registering the service in the service registry.
12 . The method recited in claim 11 , the service framework further comprising a service event notification registry;
the service-requesting entity registering a notification request for the service in the service event notification registry; the service framework determining whether the service event notification registry contains a notification request registered by the service-requesting entity for the service; and if so, the service framework notifying the service-requesting entity of the service, and the service-requesting entity invoking the service.
13 . The method recited in claim 12 , the method further comprising:
the service frontend communicating with the service backend to provide the service to the service-requesting entity.
14 . The method recited in claim 7 , wherein the service framework comprises a service frontend and a remote service event notification registry, and wherein the service framework further comprises a proximity daemon responsive to the connection manager service, the method further comprising:
the service frontend registering a notification request for a service backend in the remote service event notification registry; the proximity daemon creating a remote lookup service frontend when the service framework is notified by the connection manager service; the remote lookup service frontend determining whether the remote service event notification registry contains a notification request for the service backend registered by the service frontend; if so, the remote lookup service frontend requests a remote lookup service backend on the remote communications node to determine whether the service backend is on the remote communications node; if so, the remote lookup service backend obtains parameters necessary for the service frontend to communicate with the service backend; and the remote lookup service backend communicates the parameters to the remote lookup service frontend.
15 . The method recited in claim 14 , wherein the service framework further comprises a service event notification registry, the method further comprising:
the service frontend registering the service with the service framework; the service framework determining whether the service event notification registry contains a notification request registered by the service-requesting entity for the service; and if so, the service framework notifying the service-requesting entity of the service, and the service-requesting entity invoking the service.
16 . The method recited in claim 15 , the method further comprising:
the service frontend communicating with the service backend to implement the service invoked by the service-requesting entity.
17 . A computer-readable medium containing computer instructions for instructing a processor to perform a method of operating a communications node comprising a service framework, a service-requesting entity, and a service, the instructions comprising:
the service-requesting entity requesting the service framework to provide access to the service; and providing the service-requesting entity with access to the service.
18 . The computer-readable medium recited in claim 17 , the instructions further comprising:
in requesting, the service-requesting entity provides a service type to the service framework; and the service framework only locates and connects with services having the service type.
19 . The computer-readable medium recited in claim 17 , the instructions further comprising:
in requesting, the service-requesting entity provides at least one service attribute to the service framework; and the service framework only locates and connects with services having the at least one service attribute.
20 . The computer-readable medium recited in claim 17 , wherein the service-requesting entity resides on the communications node, and the service resides elsewhere, and wherein the communications node further comprises a connection manager service, the instructions further comprising:
the connection manager service notifying the service framework when the communications node is in proximity to a remote communications node on which the service may reside.
21 . The computer-readable medium recited in claim 17 , wherein the service-requesting entity resides on the communications node, wherein the communications node comprises a wireless interface to which a remote communications node can be coupled, wherein the service resides on the remote communications node, and wherein the communications node further comprises a connection manager service, the instructions further comprising:
the connection manager service notifying the service framework when the communications node is communicating with the remote communications node via the wireless interface.
22 . A communications node comprising:
a processor; a wireless interface coupled to the processor to enable the communications node to communicate with a remote node; and a memory coupled to the processor and comprising:
a service-requesting entity; and
a service framework to discover a service requested by the service-requesting entity, the service being on the remote node, and to connect the service-requesting entity with the service.
23 . The communications node recited in claim 22 wherein the memory further comprises a connection manager service to notify the service framework when the communications node is in proximity to the remote node.
24 . The communications node recited in claim 23 wherein the service framework comprises a proximity daemon to create a remote lookup service frontend when the service framework is notified by the connection manager service, the remote lookup service frontend to look for a remote lookup service backend on the remote node.
25 . The communications node recited in claim 24 wherein the service framework further comprises a first program module to determine whether the remote lookup service frontend is compatible with the remote lookup service backend.
26 . The communications node recited in claim 25 wherein the service framework further comprises a second program module, responsive to the first program module, to determine whether a service backend corresponding to the service resides on the remote node.
27 . The communications node recited in claim 26 wherein the service framework further comprises a remote lookup daemon, responsive to the second program module, to obtain parameters from the service backend to the remote lookup daemon.
28 . The communications node recited in claim 27 wherein the service framework further comprises:
a service frontend responsive to the remote lookup daemon to receive the parameters; and
a service registry in which the service frontend registers the service.
29 . The communications node recited in claim 28 wherein the service framework further comprises a service event notification registry in which a notification request can be registered by the service-requesting entity.
30 . The communications node recited in claim 29 wherein the service framework further comprises a third program module to determine whether the service event notification registry contains a notification request registered by the service-requesting entity.
31 . The communications node recited in claim 30 wherein the service framework further comprises a fourth program module, responsive to the third program module, to notify the service-requesting entity of the service.
32 . The communications node recited in claim 31 wherein the service-requesting entity, responsive to the fourth program module, invokes the service.
33 . The communications node recited in claim 32 wherein the service frontend communicates with the service backend to implement the service invoked by the service-requesting entity.
34 . The communications node recited in claim 28 wherein the service framework further comprises a remote service event notification registry in which a notification request for a service backend can be registered by the service frontend
35 . The communications node recited in claim 34 wherein the remote lookup service frontend determines whether the remote service event notification registry contains a notification request for a service backend registered by the service frontend.
36 . The communications node recited in claim 35 wherein the remote lookup service frontend requests a remote lookup service backend on the remote node to determine whether the service backend is on the remote node.
37 . The communications node recited in claim 36 wherein the remote lookup service backend obtains parameters necessary for the service frontend to communicate with the service backend.
38 . The communications node recited in claim 37 wherein the remote lookup service backend communicates the parameter to the service frontend.
39 . The communications node recited in claim 38 wherein the service frontend registers the service with the service framework.
40 . The communications node recited in claim 39 wherein the service framework determines whether the service event notification registry contains a notification request registered by the service-requesting entity for the service.
41 . The communications node recited in claim 40 wherein the service framework notifies the service-requesting entity of the service, and the service-requesting entity invokes the service.
42 . The communications node recited in claim 41 wherein the service frontend communicates with the service backend to implement the service invoked by the service-requesting entity.
43 . A communications system comprising:
at least one remote node; and at least one communications node comprising:
a processor;
a wireless interface coupled to the processor to enable the at least one communications node to communicate with the at least one remote node; and
a memory coupled to the processor and comprising:
a service-requesting entity; and
a service framework to discover a service requested by the service-requesting entity, the service being on at least one remote node, and to connect the service-requesting entity with the service.
44 . The communications system recited in claim 43 wherein the memory further comprises a connection manager service to notify the service framework when the communications node is in proximity to at least one remote node.
45 . The communications system recited in claim 44 wherein the service framework comprises a proximity daemon to create a remote lookup service frontend when the service framework is notified by the connection manager service, the remote lookup service frontend to look for a remote lookup service backend on the at least one remote node.
46 . The communications system recited in claim 45 wherein the service framework further comprises a first program module to determine whether the remote lookup service frontend is compatible with the remote lookup service backend.
47 . The communications system recited in claim 46 wherein the service framework further comprises a second program module, responsive to the first program module, to determine whether a service backend corresponding to the service resides on the at least one remote node.
48 . The communications system recited in claim 47 wherein the service framework further comprises a remote lookup daemon, responsive to the second program module, to obtain parameters from the service backend.
49 . The communications system recited in claim 48 wherein the service framework further comprises:
a service frontend responsive to the remote lookup daemon to receive the parameters; and
a service registry in which the service frontend registers the service.
50 . The communications system recited in claim 49 wherein the service framework further comprises a service event notification registry in which a notification request can be registered by the service-requesting entity.
51 . The communications system recited in claim 50 wherein the service framework further comprises a third program module to determine whether the service event notification registry contains a notification request registered by the service-requesting entity.
52 . The communications system recited in claim 51 wherein the service framework further comprises a fourth program module, responsive to the third program module, to notify the service-requesting entity of the service.
53 . The communications system recited in claim 52 wherein the service-requesting entity, responsive to the fourth program module, invokes the service.
54 . The communications system recited in claim 53 wherein the service frontend communicates with the service backend to implement the service invoked by the service-requesting entity.
55 . A method of discovering a service on a communications node, wherein the communications node comprises a service-requesting entity and a service registry, the method comprising:
the service-requesting entity constructing a service template representing a desired service, the service template comprising a service type; the service-requesting entity issuing the service template to the service registry; and if the service registry has service objects matching the service template, the service registry returning to the service-requesting entity an array of such service objects.
56 . The method recited in claim 55 , wherein the communications node further comprises an interface to which a remote communications node can be coupled, a service frontend, and a remote services event notification registry, and wherein the service resides on the remote communications node, the method comprising:
the service frontend registering a notification request for a service backend in the remote service event notification registry.
57 . The method recited in claim 56 , in which the remote communications node comprises a service backend corresponding to the service, the method comprising:
obtaining parameters from the service backend necessary for the service frontend to communicate with the service backend.
58 . The method recited in claim 57 , the method comprising:
communicating the parameters to the service frontend.
59 . The method recited in claim 58 , the method comprising:
the service frontend communicating with the service backend to provide the service to the service-requesting entity.
60 . The method recited in claim 55 , wherein the service template comprises at least one service attribute.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.