IP Library Patent Application 11149454
Patent Application
App. No. 11/149,454

Method and system for vertical layering between levels in a processing unit facilitating direct event-structures and event-queues level-to-level communication without translation

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
11/149,454
Abstract

System, device, method, and computer program and computer program products for providing communicating between devices having similar or dissimilar characteristics and facilitating seamless interoperability between them. Computer program software and methods of and systems and devices for sharing of content, applications, resources and control across similar and dissimilar permanently or intermittently connected electronic devices. Devices, systems, appliances, and the like communicating and/or interoperating within the framework provided. A vertical layering system, model, and method provides alternative to horizontal layering of protocols in common use on most devices which requires different levels of protocols to communicate through all intermediate levels of protocols, often having to translate information to conform to the differing needs of each protocol interface. Processing units use vertical layering so that regardless of their level, processing units can communicate directly with all other processing units through the use of event structures and event queues which are accessible and understandable by all processing units without translation.

Claims (74)

1 . An event driven vertical layering system for coordinating the operations of and data movement between procedural components which perform application level operations, device hardware control level operations, communications level operations, or any other level or subset of operations within or between one or more teamed devices to establish an efficient and/or robust cooperative functionality between the procedural (software) components, the system comprising:

(a) a static event data structure whose fields and field semantics are generally known and understood between all the event generating and processing units across one or more devices and the procedural (software) components running in the one or more devices;

(b) a queue on each teamed device which stores, removes, manages, and controls access to the event data structure instances;

(c) means for managing the placing, modification, and removing of events on the queue accessible from all the cooperating procedural (software) components;

(d) means for specifying and maintaining a common list of event types which are to be serialized and synchronized between the queues of the cooperating devices; and

(e) means for ensuring that all the events of any of the types on the common list are processed by the procedural (software) components in the exact same order on all devices regardless of what procedural (software) components initiated the events, or which of the teamed devices the procedural (software) components that initiated the events are running on.

2 . The system of claim 1 , wherein the queue on each teamed device which stores, removes, manages, and controls access to the event data structure instances consists of exactly one queue on each teamed device.

3 . The system of claim 1 , wherein the means for managing the placing, modification, and removing of events on the queue accessible from all the cooperating procedural (software) components comprises a procedure implemented as a computer program including a plurality of program instructions executing in a processor logic of the interoperating devices.

4 . The system of claim 1 , wherein the means for specifying and maintaining a common list of event types which are to be serialized and synchronized between the queues of the cooperating devices comprises a procedure implemented as a computer program including a plurality of program instructions executing in a processor logic of the interoperating devices.

5 . The system of claim 1 , wherein the means for ensuring that all the events of any of the types on the common list are processed by the procedural (software) components in the exact same order on all devices regardless of what procedural (software) components initiated the events, or which of the teamed devices the procedural (software) components that initiated the events are running on comprises a procedure implemented as a computer program including a plurality of program instructions executing in a processor logic of the interoperating devices.

6 . The system of claim 1 , wherein one or more or any combination of the following are true:

(1) the static event data structure is the DartEvent;

(2) the teamed devices where assembled for cooperation through the used of device recruitment;

(3) the methods for managing the placing, modification and removing of events are accessed through the use of an Interoperability Instruction Set or the DartInstructionSet;

(4) the system carries out its event driven functionality at least in part through the Interoperability Runtime or the DartRuntime;

(5) the methods for specifying the common list and ensuring that all events of any of the types on the common list are processed in the same order are as described for serialization and synchronization of events on Recruitment; and

(6) the Interoperability Tools or the DartTools are used to generate the software application operations code of the system.

7 . The system of claim 1 , wherein coordinating the operations is a means for directly coupling the operations of the procedural (software) components without the need for any intermediating layers of software, application program interface (API), or other semantics translating means or mechanism.

8 . The system of claim 7 , wherein the intermediating layers of software, API, or other semantics translating means or mechanism which are not needed as intermediating layers includes any of the seven horizontal,layers of the conventional OSI Protocol model, or combinations thereof.

9 . A system as in claim 1 , wherein at least a component of the efficiency is achieved by having a single data structure with commonly understood semantics used to communicate and transport information and/or content and/or status amongst the devices and procedural (software) components.

10 . A system as in claim 7 , wherein at least a component of the efficiency is achieved by having no intermediating layers of software which needs to process the communication or transport.

11 . A system as in claim 7 , wherein at least a component of the robustness is achieved by having no intermediating layers of software where problems or incompatibilities or misunderstandings of implementation may otherwise occur.

12 . A system as in claim 1 , wherein application level operations optionally include one or more or any combination of the following:

(1) application directed power management;

(2) application directed error recovery;

(3) application directed Interfacing and or any interactively with a human or automated user;

(4) application directed media rendering or editing; and

(5) application directed data processing.

13 . A system as in claim 12 , wherein application directed means that the initiation and or carrying out of operations is performed at least in part by the processing instructions generated by traditional compilers and linkers.

14 . A system as in claim 12 , wherein application directed means that the initiation and or carrying out of operations is performed at least in part by the processing instructions of an interoperability instruction set generated by one or more Interoperability Tools or by one or more DartTools.

15 . A system as in claim 12 , wherein the application conforms to the Interoperability Format or the DartFormat.

16 . A system as in claim 1 , wherein device hardware control level operations optionally includes or is selected as one or more of the following operations:

(1) accessing one or more in any combination of memory, hard disk drive storage, displays, power regulation, device power-up, and device shutdown;

(2) compression/decompression circuits or processors, or input and output circuits of any type;

(3) setting or reading hardware operating modes or any other information physically stored digitally or in an analog fashion;

(4) accessing random numbers or other forms of entropy for use in simulations or cryptographic and or security operations;

(5) managing device configuration;

(6) discovering devices and/or services; and

(7) managing allocation and/or deallocation and or access to memory, physical storage, physical displays physical input/output devices, or any other physical or software virtualized physical aspect of a device, and any combinations of these.

17 . A system as in claim 1 , wherein communications level operations optionally includes or is selected as any one or more of the following in any combination:

(1) sending and or receiving of data, and or code and or content;

(2) sending and or receiving of meta data about data, and/or code and/or content to be sent or received;

(3) device and/or service discovery;

(4) broadcasting of data and/or code and/or content;

(5) transmission error detection and or correction;

(6) establishing and or maintaining channels between devices;

(7) establishing and or maintaining separate logical sessions on a single and or multiple channels;

(8) managing any of the following:

(a) bridging protocols;

(b) extending the reach of communications mechanisms;

(c) acting as a proxy for a device; and

(d) providing a gateway for passing information through or from different physical media or protocols.

18 . A system as in claim 1 , wherein an Interoperability Engine or a DartEngine or a DartPlayer or any combination of these is used at least in part to embody the system.

19 . A system as in claim 1 , further comprising software tools adapted for operating on software source code and resources written to use a particular software framework which will ensure conformance to the event driven execution model of the runtime supported by access to an instruction set or to a set of system calls which are used to manage the enqueuing, processing, and dequeuing of events.

20 . A system as in claim 19 , wherein one or more of the following in any combination are true:

(1) the software tools comprise the Interoperability Tools or the DartTools;

(2) the software framework comprises the Interoperability Framework or the DartFramework;

(3) the event driven execution model comprises the Interoperability Runtime or the DartRuntime; and

(4) the instruction set or set of system calls comprises the Interoperability Instruction Set or the DartInstructionSet.

21 . An event driven vertical layering method for coordinating the operations of and data movement between procedural components within or between one or more teamed devices, the method comprising:

(a) defining or generating a static event data structure whose fields and field semantics are generally known and understood between all the event generating and processing units across one or more devices and the procedural (software) components running in the one or more devices;

(b) defining or generating a queue on each teamed device which stores, removes, manages, and controls access to the event data structure instances;

(c) managing the placing, modification, and removing of events on the queue accessible from all the cooperating procedural (software) components;

(d) specifying and maintaining a common list of event types which are to be serialized and synchronized between the queues of the cooperating devices; and

(e) ensuring that all the events of any of the types on the common list are processed by the procedural components in the exact same order on all devices regardless of what procedural components initiated the events, or which of the teamed devices the procedural components that initiated the events are running on.

22 . An event driven vertical layering method as in claim 21 , wherein the procedural components perform application level operations, device hardware control level operations, communications level operations, or any other level or subset of operations within or between one or more teamed devices to establish an efficient and/or robust cooperative functionality between the procedural components.

23 . An event driven vertical layering method as in claim 21 , wherein the procedural components are implemented as computer program code software.

24 . A computer program product for use in conjunction with a computer system or information appliance, the computer program product comprising a computer readable storage medium and a computer program mechanism embedded therein, the computer program mechanism comprising:

a program module that directs the computer system or information appliance to function in a specified manner for coordinating the operations of and data movement between procedural components within or between one or more teamed devices, the program module including instructions for:

(a) defining or generating a static event data structure whose fields and field semantics are generally known and understood between all the event generating and processing units across one or more devices and the procedural (software) components running in the one or more devices;

(b) defining or generating a queue on each teamed device which stores, removes, manages, and controls access to the event data structure instances;

(c) managing the placing, modification, and removing of events on the queue accessible from all the cooperating procedural (software) components;

(d) specifying and maintaining a common list of event types which are to be serialized and synchronized between the queues of the cooperating devices; and

(e) ensuring that all the events of any of the types on the common list are processed by the procedural components in the exact same order on all devices regardless of what procedural components initiated the events, or which of the teamed devices the procedural components that initiated the events are running on.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 31, 2009
From: DARTDEVICES CORPORATION
To: DARTDEVICES INTEROP CORPORATION
Reel/Frame 022473/0861 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 25, 2006
From: ILLOWSKY, DANIEL; BERNSTEIN, BRUCE; MIRABELLA, RICHARD; PIEB, WOLFGANG; SIDNEY, RAYMOND; TIBERI, RICHARD; WENOCUR, MICHAEL
To: DARTDEVICES CORPORATION
Reel/Frame 017211/0765 →