System method and model for social synchronization interoperability among intermittently connected interoperating devices
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 social synchronization interoperability method, such as a Dart Social Synchronization method provides an efficient and easy to administrate method for synchronizing specific sets of data and/or operations across any number of devices and protocols without the need for every device to contact a master device, or for any device to act as a master. Social synchronization of devices and content provides an advantageous alternative to mastered synchronization techniques.
1 . A method for maintaining synchronization of resources across one or more dynamically created teams of homogeneous and/or heterogeneous devices which can be intermittently directly connected and/or can be indirectly connected through a sequence of direct connections which themselves can be independently intermittently made between other teamed devices, the method comprising:
(1) running on an interoperability device an initiating interoperability application program package of one or more independently executable images which logically or physically encapsulates the resource or resources to be synchronized and/or includes all the capabilities needed to collect and manage the resources to be synchronized; and
(2) teaming of other devices by the initiating interoperability application program wherein a possibly intermittent connection is made to other devices and the initiating application spreads interoperability information to the newly teamed devices.
2 . The method in claim 1 , wherein the method further optionally includes: (3) the repetition of the teaming of other devices where the interoperability application packages running on any one or more of the teamed devices acts as the initiating interoperability application program package so that the team of devices can continue to grow in a limited or possibly unlimited manner.
3 . The method in claim 1 , wherein the method further optionally includes:
(4) synchronizing resources among and between the devices.
4 . The method in claim 1 , wherein the method further optionally includes:
(3) the repetition of the teaming of other devices where the interoperability application packages running on any one or more of the teamed devices acts as the initiating interoperability application program package so that the team of devices can continue to grow in a limited or possibly unlimited manner; and
(4) synchronizing resources among and between the devices.
5 . The method in claim 3 , wherein the synchronization method further optionally includes:
(a) initiating a communication session between any two teamed devices;
(b) comparing the synchronization unique ids on one device with the synchronization unique ids on the other device;
(c) running the interoperability application program associated with every matching unique id;
(d) spreading the execution of the interoperability application program across both devices; and
(e) performing, by the interoperability application program which has its operations spread across the two devices, whatever synchronization methods are needed to carry out the interoperability synchronization purpose.
6 . The method in claim 4 , wherein the synchronization method further optionally includes:
(a) initiating a communication session between any two teamed devices;
(b) comparing the synchronization unique ids on one device with the synchronization unique ids on the other device;
(c) running the interoperability application program associated with every matching unique id;
(d) spreading the execution of the interoperability application program across both devices; and
(e) performing by the interoperability application program which has its operations spread across the two devices whatever synchronization methods are needed to carry out the interoperability synchronization purpose.
7 . The method in claim 1 , wherein the interoperability information includes: (i) one- or more interoperability universally unique ids to be used to signify that devices are teamed for a particular synchronization purpose; and (ii) one or more interoperability application packages associated with the universally unique ids which can be executed to carry out the synchronization purpose.
8 . The method in claim 6 , wherein the interoperability information includes: (i) one or more interoperability universally unique ids to be used to signify that devices are teamed for a particular synchronization purpose; and (ii) one or more interoperability application packages associated with the universally unique ids which can be executed to carry out the synchronization purpose.
9 . The method of claim 1 , wherein one or more of the following are true in any combination:
(1) the teams are formed at least in part using a device recruitment procedure or Dart Recruitment;
(2) one or more of the interoperability devices is a DartDevice;
(3) the interoperability application program package conforms to the Interoperability Format or conforms to the DartFormat and or is a Dart;
(4) the independently executable images are renditions or are Dart Renditions;
(5) the resources are one or more of the types of resources by the Interoperability Source;
(6) the interoperability universally unique ids are created using the social security procedural basis; and
(7) the one or more interoperability application program packages are generated using one or both of the recruitment method or the creationism method.
10 . The method of claim 1 , wherein synchronization comprises one or more of the following in any combination:
(1) maintaining independent instances and/or semantics of commonly identified database instances and/or anything that can be held by a database or element contained in a database in such a manner that changes made independently to the separate instances are resolved in whatever ways are needed to maintain one or more of:
(a) the integrity of the database as encapsulating the intended data and purpose associated with the common identification;
(b) the elements of the database;
(c) the semantics of the database and/or interrelationships of elements of the database; and
(d) the common identity of the instances of the databases;
(2) tracking the adding, deleting or modification of elements on a lists of items independently stored and or modified on independent devices;
(3) the collecting and or processing and or collating of information by a team of devices;
(4) maintaining lists of unique ids, shared secrets and security settings needed to control and limit access to resources or capabilities of devices;
(5) inter-device management of settings effecting the operation of devices or the set of devices;
(6) configuration management across multiple devices;
(7) installation of software or content across multiple devices;
(8) taking inventory of devices and or the resources of the devices or reachable by the devices or for which information is stored and or maintained by one or more of the devices;
(9) software or content distribution or updating across multiple devices; and
(10) any combinations of the above.
11 . The method of claim 10 , wherein the synchronization is done in an intelligent manner at least in part by the execution of software procedures so that synchronization is done in a way specific to each device and/or subsets of devices and/or the environment thereof.
12 . The method of claim 1 , wherein the grow in a limited or possibly unlimited manner is optionally carried out using one or more of the following:
(1) limiting by a set fanout value so that each device or application is only allowed to bring a predetermined limited number of other devices or applications into the team equal to or within some predetermined magnitude relationship to the fanout value;
(2) limiting by a set generation limit procedure comprising the following:
(a) incrementing a generation tracking value carried by each application package that sends application packages to teamed devices so that each application package sent to newly teamed devices has a tracking value one greater than the sending application package; and
(b) limiting by a set generation stop value so that application packages with a generation tracking value equal to the set generation stop value are not allowed to bring new devices or applications into the team;
(3) limiting according the capabilities or resources of the devices;
(4) limiting according to the rules as embodied in the code, data and content of the independently executing images;
(5) limiting according to the level of security of potentially teamed devices or applications and/or any other required credentials; and
(6) any combinations of the above.
13 . The method of claim 1 , wherein the purposes are one or more of the purposes selected from the list of purposes comprising:
(1) maintaining independent instances and/or semantics of commonly identified database instances and/or anything that can be held by a database or element contained in a database in such a manner that changes made independently to the separate instances are resolved in whatever ways are needed to maintain one or more of:
(a) the integrity of the database as encapsulating the intended data and purpose associated with the common identification;
(b) the elements of the database;
(c) the semantics of the database and/or interrelationships of elements of the database; and
(d) the common identity of the instances of the databases;
(2) tracking the adding, deleting, or modifying elements on a lists of items independently stored and or modified on independent devices;
(3) collecting and or processing and or collating of information by a team of devices;
(4) maintaining lists of unique ids, shared secrets and security settings needed to control and limit access to resources or capabilities of devices;
(5) inter-device managing of settings effecting the operation of devices or the set of devices;
(6) configuration managing across multiple devices;
(7) installation of software or content across any one or multiple devices;
(8) inventorying of devices and/or the resources of the devices and/or resources reachable by the devices and/or for which information is stored and or maintained by one or more of the devices;
(9) distributing software or content and/or updating software or content across multiple devices; and
(10) any combination of the above.
14 . The method of claim 1 , wherein the method is used as an alternative to other synchronization methods because less human administration is necessary and/or the sophistication of the humans who do the administration does not need to be as high as conventional approaches.
15 . The method of claim 1 , wherein one or more of the teamed devices are reachable on the Internet as servers running an interoperability engine.
16 . The method of claim 1 , wherein one or more of the teamed devices are reachable on a network as servers running an interoperability engine.
17 . 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 maintaining synchronization of resources across one or more dynamically created teams of homogeneous and/or heterogeneous devices which can be intermittently directly connected and/or can be indirectly connected through a sequence of direct connections which themselves can be independently intermittently made between other teamed devices, the program module including instructions for:
(1) running on an interoperability device, an initiating interoperability application program package of one or more independently executable images which logically or physically encapsulates the resource or resources to be synchronized and/or includes all the capabilities needed to collect and manage the resources to be synchronized; and
(2) teaming of other devices by the initiating interoperability application program wherein a possibly intermittent connection is made to other devices and the initiating application spreads interoperability information to the newly teamed devices.
18 . A computer program product as in claim 17 , further optionally including instructions for:
(3) the repetition of the teaming of other devices where the interoperability application packages running on any one or more of the teamed devices acts as the initiating interoperability application program package so that the team of devices can continue to grow in a limited or possibly unlimited manner.
19 . A computer program product as in claim 18 , further optionally including instructions for:
(4) synchronizing resources among and between the devices.
20 . An interoperability device maintaining synchronization of resources across one or more dynamically created teams of homogeneous and/or heterogeneous devices which can be intermittently directly connected and/or can be indirectly connected through a sequence of direct connections which themselves can be independently intermittently made between other teamed devices, the device comprising:
an initiating interoperability application program package of one or more independently executable images which logically or physically encapsulates the resource or resources to be synchronized and/or includes all the capabilities needed to collect and manage the resources to be synchronized;
means for running, on the interoperability device, the initiating interoperability application program package; and
means for teaming of other interoperable devices by the initiating interoperability application program wherein a possibly intermittent connection is made to other devices and the initiating application spreads interoperability information to the newly teamed devices.