Devices as services in a decentralized operating system
First Claim
1. In a networked system, a device that is a computer subsystem, the device comprising:
- one or more services executing in the device, each service including;
an information service, the information service being configured to produce a customizable tag-based document that holds a summary of device properties that a device service represents, the information service being further configured to store the customizable tag-based document until requested by an application service;
a data service, the data service being configured to produce a customizable tag-based document that holds events which have been generated by the one or more services but not yet consumed by the application service, the customizable tag-based document holding a state of the one or more services, the data service being further configured to store the customizable tag-based document until requested by the application service;
wherein each service including;
a port identifiable by an identifier that includes a unique designation of an operating system service or another service, the port of the service endued with behavioral types specified by a unilateral contract; and
the unilateral contract for describing one or more behaviors of the service, wherein the one or more behaviors are described by behavior sentences, and further wherein the unilateral contract specifies;
regulation of the service by specifying attaching behavioral conditions to files to govern access control;
an order of messages that flow in or out of the service;
creation of an instance of communication, after being accepted by an external second service, between the service and the external second service, the external second service agreeing to perform the unilateral contract according to the order of messages specified in the unilateral contract.
2 Assignments
0 Petitions
Accused Products
Abstract
Various embodiments of the present invention transform devices into Web services or special-purpose servers that are capable of communicating with personal computers. Various embodiments of the present invention allow various low-level aspects of device drivers to reside in the devices, eliminating the need for the devices to be compatible with legacy specification. Various embodiments of the present invention allow various devices to be shipped from the factory with low-level software already built in so that users are liberated from having to deal with the experience of installing and upgrading device drivers. In various embodiments of the present invention, each device is preferably a network node identifiable by a Uniform Resource Identifier (URI).
-
Citations
21 Claims
-
1. In a networked system, a device that is a computer subsystem, the device comprising:
-
one or more services executing in the device, each service including; an information service, the information service being configured to produce a customizable tag-based document that holds a summary of device properties that a device service represents, the information service being further configured to store the customizable tag-based document until requested by an application service; a data service, the data service being configured to produce a customizable tag-based document that holds events which have been generated by the one or more services but not yet consumed by the application service, the customizable tag-based document holding a state of the one or more services, the data service being further configured to store the customizable tag-based document until requested by the application service; wherein each service including; a port identifiable by an identifier that includes a unique designation of an operating system service or another service, the port of the service endued with behavioral types specified by a unilateral contract; and the unilateral contract for describing one or more behaviors of the service, wherein the one or more behaviors are described by behavior sentences, and further wherein the unilateral contract specifies; regulation of the service by specifying attaching behavioral conditions to files to govern access control; an order of messages that flow in or out of the service; creation of an instance of communication, after being accepted by an external second service, between the service and the external second service, the external second service agreeing to perform the unilateral contract according to the order of messages specified in the unilateral contract. - View Dependent Claims (2, 3, 4)
-
-
5. A computer-readable recording medium storing thereon computer-executable services comprising:
-
a terminal service comprising a display service that includes a cursor shape service with a port identifiable by an identifier; and the computer-readable medium also storing thereon computer-readable information comprising; a customizable tag-based document that describes a shape of an on-screen cursor, the customizable tag-based document including image data specifying pixels that comprise the on-screen cursor, the customizable tag-based document also holding a state of the service representing a device for an input/output event and a state of the input/output event that has been generated by the service representing the device; a unilateral contract for describing one or more behaviors of the display service and specifying regulation of the display service by specifying attaching behavioral conditions to files to govern access control, wherein the one or more behaviors associated with a service are described by behavior sentences, wherein the unilateral contract is accepted when another service promises to perform the unilateral contract in accordance with the one or more behaviors or when the other service performs the unilateral contract in accordance with the one or more behaviors, and wherein acceptance of the unilateral contract creates an instance of communication between the display service and another service. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A computer-implemented method for processing input/output events by devices as services, the method comprising:
-
requesting, by a computing system configured to represent devices as services in a decentralized operating system, a service representing a device for an input/output event, the service including a port identifiable by an identifier that includes a uniform resource identifier and a unilateral contract for describing one or more behaviors of the service, the unilateral contract expressed in a language specifying an order of messages that flow in or out of services; receiving a customizable tag-based document that describes a shape of a cursor, the customizable tag-based document including image data comprising a bitmap image and a bitmap mask specifying pixels that comprise the cursor and offset data specifying an offset between the pixels and a location pointed to by the cursor; requesting the service to change a cursor shape, the act of requesting invoking a cursor shape service that changes the shape of the cursor based at least in part on the customizable tag-based document; receiving a customizable tag-based message that contains a state of the service representing the device and the input/output event that has been generated by the service representing the device; and requesting the service to remove the input/output event. - View Dependent Claims (15, 16, 17)
-
-
18. A computer-readable recording medium storing computer-executable instructions for implementing a computer-implemented method for processing input/output events by devices as services, the method comprising:
-
requesting a service representing a device for an input/output event, the service including a port identifiable by an identifier that includes a uniform resource identifier and a unilateral contract for describing one or more behaviors of the service, wherein the one or more behaviors are described by behavior sentences, wherein the unilateral contract specifies an order of messages that flow in or out of services, wherein the unilateral contract is accepted when an external service promises to perform the unilateral contract according to the order of messages specified in the unilateral contract or when the external service performs the unilateral contract according to the order of messages specified in the unilateral contract, and wherein acceptance of the unilateral contract creates an instance of communication between services; receiving a customizable tag-based document that holds a state of the service representing the device and the input/output event that has been generated by the service representing the device; requesting the service to change a cursor shape, the act of requesting invoking a cursor shape service that changes the shape of the cursor, the cursor shape described by a customizable tag-based document, the customizable tag-based document including image data specifying pixels that comprise the cursor shape; requesting the service to change a position of a cursor, the act of requesting invoking a cursor position service that changes the position of the cursor; and requesting the service to remove the input/output event. - View Dependent Claims (19, 20)
-
-
21. In a networked system, a device that is a computer subsystem, the device comprising:
-
one or more services executing in the device, each service including a port identifiable by an identifier that includes a uniform resource identifier and a unilateral contract for describing one or more behaviors of the service, wherein the port associated with the service comprises behavioral types, and wherein the device communicates with another device of the networked system based on compatibility of behavioral types, the device being capable of coupling to the networked system to exchange customizable tag-based messages, and wherein the one or more services comprise; an information service, the information service being configured to produce a customizable tag-based message that hold a summary of device properties that a device service represents, the information service being further configured to store the customizable tag-based message until requested by the application service; and a data service, the data service being configured to produce the customizable tag-based message that holds events which have been generated by the one or more services but not yet consumed by an application service, the data service being further configured to store the customizable tag-based message until requested by the application service, and further wherein the customizable tag-based message holds the state of the one or more services.
-
Specification