Method and system for specifying device interoperability source specifying renditions data and code for interoperable device team
First Claim
1. A method for forming and assembling an individual self-contained pre-linked cross-device software application as an application package, each application package or portion of an application package is adapted to execute on an interoperability engine in a device and to distribute the application package or a portion of the application package to other interoperability engines in other devices over a communications link, the other devices being formed into unified teams for cooperative execution over a plurality of the teamed devices, the method comprising:
- forming the application package from source materials which encapsulate a main application function code portion, a main application data portion, any optional binary encoded parts portion, and a discovery and distribution code portion; and
encoding the application package portions into a linear binary data structure of addressable parts wherein the application package includes self-contained and pre-linked elements;
the discovery and distribution code portion encoded to be operable during execution to discover capabilities and resources of a device and then to distribute executable sub-units of the application package over one or more communication links to other devices so that the distributed executable sub-units execute on a team of devices that are unified by the distributed executable sub-units to carry out the function of the application where each device in said team of devices is running a unification engine adapted for executing at least the distributed executable sub-units of the application;
each said linear binary data structure including;
(i) exactly one linear main program code part including coded instructions where the addresses of all the coded instructions are located in one linear consecutive address space, and (ii) exactly one linear main program data part including data elements and where the addresses of all the data elements are located in one linear consecutive address space;
the linear binary data structure including two or more executable sub-units made up of exactly one linear contiguous subset of the main program code part and exactly one linear contiguous subset of the main program data part, along with zero or more of said optional binary encoded parts; and
wherein all the code that embodies and carries out the function of the software application on all said teamed devices is contained in the original application package data structure before being distributed to the teamed devices.
5 Assignments
0 Petitions
Accused Products
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 devices. An interoperability source or DartSource method is provided for specifying program renditions and code content and data needed for packaged interoperability application. The interoperability source extends languages constructs commonly used to specify single executable program targeted to specific device, into language and format which can also specify procedures necessary for intelligent recruitment of teams of devices and alternative renditions of the program and/or content to be used on different device platforms so that there is suitable rendition to send to run on each recruited device to carry out that device'"'"'s portion of the application.
140 Citations
36 Claims
-
1. A method for forming and assembling an individual self-contained pre-linked cross-device software application as an application package, each application package or portion of an application package is adapted to execute on an interoperability engine in a device and to distribute the application package or a portion of the application package to other interoperability engines in other devices over a communications link, the other devices being formed into unified teams for cooperative execution over a plurality of the teamed devices, the method comprising:
-
forming the application package from source materials which encapsulate a main application function code portion, a main application data portion, any optional binary encoded parts portion, and a discovery and distribution code portion; and encoding the application package portions into a linear binary data structure of addressable parts wherein the application package includes self-contained and pre-linked elements; the discovery and distribution code portion encoded to be operable during execution to discover capabilities and resources of a device and then to distribute executable sub-units of the application package over one or more communication links to other devices so that the distributed executable sub-units execute on a team of devices that are unified by the distributed executable sub-units to carry out the function of the application where each device in said team of devices is running a unification engine adapted for executing at least the distributed executable sub-units of the application; each said linear binary data structure including;
(i) exactly one linear main program code part including coded instructions where the addresses of all the coded instructions are located in one linear consecutive address space, and (ii) exactly one linear main program data part including data elements and where the addresses of all the data elements are located in one linear consecutive address space;the linear binary data structure including two or more executable sub-units made up of exactly one linear contiguous subset of the main program code part and exactly one linear contiguous subset of the main program data part, along with zero or more of said optional binary encoded parts; and wherein all the code that embodies and carries out the function of the software application on all said teamed devices is contained in the original application package data structure before being distributed to the teamed devices. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. A method for forming and assembling an application package adapted to execute at least in part on a device having an interoperability engine and to distribute itself or a sub-part of itself to other devices having interoperability engines that form a team of unified devices that perform other parts of the application package for which any one of the devices does not have all the capabilities and resources required to perform the entire application function, the devices being formed into the unified teams for cooperative execution over a plurality of the teamed devices, the method comprising:
-
encoding the application package portions into a linear binary data structure of addressable parts wherein the application package includes self-contained and pre-linked elements, wherein the linear binary data structure of addressable parts that includes; (i) a linear main program code part including coded instructions for performing the application function where the addresses of all the coded instructions are located in one linear consecutive address space; and (ii) a linear main program data part including data elements for use with the application function and where the addresses of all the data elements are located in one linear consecutive address space; (iii) a linear discovery code part operable during execution on a first device to communicate with other devices including with a second device and discover capabilities and resources of the other devices including the second device and to communicate the discovered capabilities and resources of the second device to the first device; and (iv) a linear distribution code part operable during execution on the first device to select or assemble and communicate an executable sub-unit of the application package in response to the discovered capabilities and resources of the second device that is specifically adapted for execution on the second device in order to interoperate with the first device in a unified manner to assist in performing the application function cooperatively as a team of devices with the first device; and wherein all the content including executable code and data encoding in the application package that embodies and carries out the function of the application on all the teamed devices is included in the original application package data structure of the first device before being distributed to the other devices forming the team of devices. - View Dependent Claims (30, 31)
-
-
32. A data structure stored in a computer readable storage medium for execution on or by a plurality of connected or intermittently connected homogeneous and heterogeneous interoperability devices, the data structure configured to execute in a processor of an interoperability engine a method for forming and assembling an individual self-contained cross-device software application as an application package, where each application package or portion of an application package is adapted to execute on the interoperability engine in a device and to distribute the application package or a portion of the application package to other interoperability engines in other devices over a communications link, the other devices being formed into unified teams for cooperative execution over a plurality of the teamed devices, the method comprising:
-
forming the application package from source materials which encapsulate a main application function code portion, a main application data portion, any optional binary encoded parts portion, and a discovery and distribution code portion; and encoding the application package portions into a linear binary data structure of addressable parts wherein the application package includes self-contained and pre-linked elements; the discovery and distribution code portion encoded to be operable during execution to discover capabilities and resources of a device and then to distribute executable sub-units of the application package over one or more communication links to other devices so that the distributed executable sub-units execute on a team of devices that are unified by the distributed executable sub-units to carry out the function of the application where each device in said team of devices is running a unification engine adapted for executing at least the distributed executable sub-units of the application; each said linear binary data structure including;
(i) one linear main program code part including coded instructions where the addresses of all the coded instructions are located in one linear consecutive address space, and (ii) one linear main program data part including data elements and where the addresses of all the data elements are located in one linear consecutive address space;the linear binary data structure including two or more executable sub-units made up of exactly one linear contiguous subset of the main program code part and exactly one linear contiguous subset of the main program data part, along with zero or more of said optional binary encoded parts; and wherein all the code that embodies and carries out the function of the software application on all said teamed devices is contained in the original application package data structure before being distributed to the teamed devices. - View Dependent Claims (33)
-
-
34. An apparatus for forming and assembling an individual self-contained cross-device software application as an application package, each application package or portion of an application package is adapted to execute on an interoperability engine in a device and to distribute the application package or a portion of the application package to other interoperability engines in other devices over a communications link, the other devices being formed into unified teams for cooperative execution over a plurality of the teamed devices, the apparatus comprising:
-
a processor and a memory coupled with the processor; an interoperability engine executing at least in part on the processor and processor coupled memory; means for forming the application package from source materials which encapsulate a main application function code portion, a main application data portion, any optional binary encoded parts portion, and a discovery and distribution code portion; means for encoding the application package portions into a linear binary data structure of addressable parts wherein the application package includes self contained and pre-linked elements; means for executing the discovery and distribution code portion that is encoded to be operable during execution to discover capabilities and resources of a device and then to distribute executable sub-units of the application package over one or more communication links to other devices so that the distributed executable sub-units execute on a team of devices that are unified by the distributed executable sub-units to carry out the function of the application where each device in said team of devices is running a unification engine adapted for executing at least the distributed executable sub-units of the application; and
wherein;each said linear binary data structure includes;
(i) one linear main program code part including coded instructions where the addresses of all the coded instructions are located in one linear consecutive address space, and (ii) one linear main program data part including data elements and where the addresses of all the data elements are located in one linear consecutive address space; andthe linear binary data structure including two or more executable sub-units made up of exactly one linear contiguous subset of the main program code part and exactly one linear contiguous subset of the main program data part, along with zero or more of said optional binary encoded parts; and all the code that embodies and carries out the function of the software application on all said teamed devices is contained in the original application package data structure before being distributed to the teamed devices. - View Dependent Claims (35, 36)
-
Specification