Method and system for interoperable content player device engine
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. An interoperability engine or DartEngine provides software or procedures and/or hardware used to execute the instructions of Darts on a device and carry out their intended purpose. The interoperability engine or DartEngine and the device specific player or DartPlayer, in which it is encapsulated, provides a common execution and runtime environment which allows recruitment and renditioning to establish efficient teams of devices and spread their code, data and content as best to carry out the intended purpose of applications or Darts.
1 . An interoperability engine which enables or assists devices to interoperate with each other, the engine comprising:
(1) means for loading, running, and carrying-out at least part of the intent of an interoperability software package having code and wherein at least part of the code is embedded in a sequence of instructions conforming to an interoperability instruction set;
(2) means for discovering other interoperability devices; and
(3) means for direct or indirect two-way communications with other interoperability devices.
2 . An interoperability engine as in claim 1 , wherein one or more of the following are true in any combination:
(1) the engine comprises a DartEngine;
(2) the interoperability software package comprises an interoperability software package or comprises a Dart conforming to the DartFormat; and
(3) the means to discover other interoperability devices is at least partially carried out using a recruitment procedure or a Dart recruitment procedure.
3 . An interoperability engine as in claim 1 , wherein the engine includes an event queue and carries out instructions to support the use of the event queue by interoperability application packages.
4 . An interoperability engine as in claim 1 , wherein the engine includes a computer program product for execution in a processor or logic circuit of the a device containing the engine.
5 . An interoperability engine as in claim 1 , wherein the engine includes a hardware processor implementing the engine within a device containing the engine.
6 . An interoperability engine as in claim 1 , wherein the engine includes a hardware processor implementing a portion of the engine within a device containing the engine and a computer program product for execution in the hardware processor of the a device containing the engine.
7 . An interoperability engine as in claim 6 , wherein a source code for the computer program and computer program product portion of the engine are segmented into a portable section which can be used without modification on all interoperable devices and a hardware abstraction layer which may need to differ for each different type of device.
8 . An interoperability engine as in claim 7 , wherein the hardware abstraction layer includes code providing access to one or more of the following device functions in any combination:
(a) memory allocation functions;
(b) sound rendering functions;
(c) power management functions;
(d) printing functions;
(e) display functions;
(f) media rendering and or playback and or transcoding functions;
(g) computation functions;
(h) storage functions;
(i) communications functions;
(j) device and or service discovery functions;
(k) profile information gathering functions about the capabilities, resources, content and or environment of the device;
(l) device configuration functions;
(m) device status functions; and
(n) any other functions or operations that can be performed by the native device hardware and software that can be exposed.
9 . A method for operating an interoperability engine which enables or assists a plurality of devices to interoperate with each other, the method comprising:
loading, running, and carrying-out at least part of the intent of an interoperability software package
having code and wherein at least part of the code is embedded in a sequence of instructions
conforming to an interoperability instruction set;
discovering other interoperability devices; and
directly or indirectly communicating with other interoperability devices.
10 . A method as in claim 9 , wherein one or more of the following are true in any combination:
(1) the engine comprises a DartEngine;
(2) the interoperability software package comprises an interoperability software package or comprises a Dart conforming to the DartFormat; and
(3) discovering of other interoperability devices is at least partially carried out using a recruitment procedure or a Dart recruitment procedure.
11 . A method as in claim 9 , wherein the method further comprises:
generating an event queue within the engine and executing computer code instructions to support the use of the event queue by the interoperability application package.
12 . A method as in claim 9 , wherein the method further comprises:
segmenting a source code into a portable section which can be used without modification on all interoperable devices and a hardware abstraction layer which may need to differ for each different type of device.
13 . A method as in claim 12 , wherein the hardware abstraction layer includes code providing access to and optionally executing one or more of the following device functions and/or procedures alone or in any combination:
(a) memory allocation functions and procedures;
(b) sound rendering functions and procedures;
(c) power management functions and procedures;
(d) printing functions and procedures;
(e) display functions and procedures;
(f) media rendering and or playback and or transcoding functions and procedures;
(g) computation functions and procedures;
(h) storage functions and procedures;
(i) communications functions and procedures;
(j) device and or service discovery functions and procedures;
(k) profile information gathering functions and procedures about the capabilities, resources, content and or environment of the device;
(l) device configuration functions and procedures;
(m) device status functions and procedures; and
(n) any other functions and procedures or operations that can be performed by a native device hardware and software that can be exposed.
14 . 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 operating an interoperability engine which enables or assists a plurality of devices to interoperate with each other, the program module including instructions for:
loading, running, and carrying-out at least part of the intent of an interoperability software package having code and wherein at least part of the code is embedded in a sequence of instructions conforming to an interoperability instruction set;
discovering other interoperability devices; and
directly or indirectly communicating with other interoperability devices.