Abstract: The embodiments herein provide a method and system dynamically synchronizing a data item between one or more first devices and one or more second devices. Further, the method includes identifying a change in the data item in the one or more first devices, where each data item can be associated with the one or more second devices. Further, the method includes dynamically creating a data set including the changed data item separately for each of the second device associated with the changed data item. Further, the method includes transferring the data set to the second device without sending any request message from the second device. Furthermore, the method includes efficiently handling changing connections, initial setups, and maintaining state of one or more first devices with one or more second devices when any of the paired second devices for the data item or set of data items are added or removed. FIG. 11
DESC:FIELD OF INVENTION
[001] The embodiments herein generally relate to synchronization systems. More particularly to a mechanism for automatically synchronizing respective data items between a first device and a second device dynamically in real time with minimum possible delay. The present application is based on, and claims priority from, both the Indian Application Number, 1381/DEL/2014 filed on 23rd May, 2014, the disclosure of which is hereby incorporated by reference herein.
BACKGROUND OF THE INVENTION
[002] Users of communication or data devices increasingly accessing common data on many of the devices they use. For example, a user may use a smart phone, a tablet, a smart watch, a smart television, a smart spectacle, and the like to manage various applications such as emails, calls, calendar, personal and business contacts, and electronic documents, media files, and the like. Generally, most of such devices have their own independent databases which store the information about the respective applications. Increasingly, people may own or use several such devices and have the need to maintain and update current information on all such devices.
[003] Techniques for synchronizing data on the devices are known. However, those techniques involve synchronization between a first and a second device. The respective applications of the second device are fetched from the first device only after receiving a request for synchronization from the second device. Upon receiving the request for synchronization from the second device, data set will be prepared and transferred by the first device. Thus, it is not possible to have a real time synchronization using the approaches described above as the second device does not know on its own if it needs to update itself such that the second device can send the request to the first device. Moreover, a peer (i.e. first device) can send a real time common data to all of its connected second devices. If there is a change in the application data in the first device, single common data set will be prepared and can be sent to all of the connected second devices. The conventional systems described herein cannot be able to create and send the device specific separate data sets.
[004] Further, it is possible to have a first device to be a data provider for multiple applications and for each application it may have to be the data provider of multiple and optionally different second devices. It may be a common situation in which for an application, data provider device may need to transfer different data sets for each of its dependent devices. To facilitate the real time transfer for an application in data provider, there must be minimal data preparation time for each of the dependent devices. Hence, the data provider device may need to store the different data sets for an application, which may be needed to be sent to each of its different dependent devices so as to obviate the data preparation time.
[005] Thus, there remains a need for fast and efficient mechanism to facilitate the real-time reflection of changes in first device to its second devices. There also needs a mechanism for maintaining the correct and consistent state of devices in case when any of the paired device for an application or set of applications, are added or removed, so as to enable the correct state of sync of an application data.
[006] The above information is presented as background information only to help the reader to understand the present invention. Applicants have made no determination and make no assertion as to whether any of the above might be applicable as prior art with regard to the present application.
OBJECT OF INVENTION
[007] The principal object of the embodiments herein is to provide a method and system for automatically synchronizing a data item between a first device and a second device in real time with minimum possible delay such that each first device can be a data provider for one or more second devices for different set of data items. Also, the second device can be dependent on the one or more first devices for different set of data items.
[008] Another object of the embodiments herein is to provide a mechanism for dynamically creating separate data sets including a changed data item for each of the second device to facilitate the real-time reflection of changes in a first device to its second devices.
[009] Another object of the embodiments herein is to provide a method for handling dynamically changing connection, initial setup, and maintaining the state of one or more first devices with one or more second devices.
SUMMARY
[0010] Accordingly the embodiments herein provide a method for dynamically synchronizing a data item between one or more first devices and one or more second devices. Further, the method includes identifying a change in the data item in one or more first devices, wherein the data item can be associated with one or more second devices. Further, the method includes dynamically creating a data set including the changed data item for each of the second device associated with the changed data item. Furthermore, the method includes transferring the data set to the second device dynamically in real time with minimum possible delay.
[0011] Accordingly the embodiments herein provide one or more first devices for dynamically synchronizing with a data item in one or more second devices. Further, one or more first devices include a controller module configured to identify a change in the data item in the first device, where the data item can be associated with one or more second devices. Further, one or more first devices include a data configuration module configured to dynamically create a data set including the changed data item for each second device associated with the changed data item. Furthermore, one or more first devices include a communication module configured to transfer the data set to the second device dynamically in real time with minimum possible delay.
[0012] Accordingly the embodiments herein provides a system and method to efficiently handle a connection change in one or more first devices and one or more second devices, initial setups between the first device and the second device, and maintain a state of one or more first devices with one or more second devices in case when any of the second device for an data item or set of data items can be added or removed so as to enable the correct state of sync of the data item. A controller module in the first device can be configured to track one or more second devices and the data items corresponding to each second device. Further, the controller module can be configured to determine if there is any new device connected to the first device requesting initial sync for the specific set of data items. Further, the controller module can create an entry for the new device for the requested data item in the first device. Further, the controller module can keep the record of already sent data to the second device. In first device, the controller module can maintain the real time separate data set including the changed data item associated with the specific second device for sending the data set including changed data item as soon as the connection is available between the first device and the second device. Further, if the controller module receives any updated data set for the data item or the set of data items in case of explicit user un-pair operation in the second device, the controller module can remove all the corresponding data sets. If the update operation is initiated in the second device, then in the first device, once the data is removed completely acknowledgement for the same can be sent to the second device. The second device will drop all the incoming data sets corresponding to the updated data item set until it receives acknowledgment for the same from the first device.
[0013] Accordingly the embodiments herein is to provide a computer readable medium including a computer executable program code recorded on a computer readable non-transitory storage medium for dynamically synchronizing data between one or more first devices and one or more second devices. Further, the computer executable program code when executed causing the actions include identifying a change in a data item in the one or more first devices, where the data item is associated with one or more second devices. Further, the computer executable program code when executed causing the actions include dynamically creating a data set including the changed data item for each of the second device associated with the changed data item. Furthermore, the computer executable program code when executed causing the actions include transferring the data set to the second device dynamically in real time with minimum possible delay.
[0014] These and other aspects of the embodiments herein will be better appreciated and understood when considered in conjunction with the following description and the accompanying drawings. It should be understood, however, that the following descriptions, while indicating preferred embodiments and numerous specific details thereof, are given by way of illustration and not of limitation. Many changes and modifications may be made within the scope of the embodiments herein without departing from the spirit thereof, and the embodiments herein include all such modifications.
BRIEF DESCRIPTION OF FIGURES
[0015] This invention is illustrated in the accompanying drawings, throughout which like reference letters indicate corresponding parts in the various figures. The embodiments herein will be better understood from the following description with reference to the drawings, in which:
[0016] FIG. 1 illustrates generally, among other things, a high level overview of a system for dynamically synchronizing a data item between one or more first devices and one or more second devices, according to embodiments as disclosed herein;
[0017] FIG. 2 illustrates various modules available in one or more first devices, according to embodiments as disclosed herein;
[0018] FIG. 3 various modules available in one or more second devices, according to embodiments as disclosed herein;
[0019] FIG. 4 illustrates various operations performed between one or more first devices and one or more second devices, according to embodiments as disclosed herein;
[0020] FIGS. 5a – 5f illustrates an example system block diagram for dynamically synchronizing separate data items between one or more first devices and one or more second devices, according to embodiments as disclosed herein;
[0021] FIG. 6 is a flow diagram illustrating a method for maintaining the correct and consistent state of a second device, according to embodiments disclosed herein;
[0022] FIG. 7 is a flow diagram illustrating a method for first time synchronization of data item between one or more first and second devices, according to embodiments as disclosed herein;
[0023] FIG. 8 is a flow diagram illustrating a method for updating data items in response to detecting a change in configuration of a data item associated with a second device, according to embodiments as disclosed herein;
[0024] FIG. 9 is a flow diagram illustrating a method for maintaining the correct and consistent state of a first device, according to embodiments as disclosed herein;
[0025] FIG. 10 is a flow diagram illustrating a method for effectively managing data items in the first and second devices, according to embodiments as disclosed herein;
[0026] FIG. 11 is a flow diagram illustrating a method for dynamically synchronizing a data item between one or more first devices and one or more second devices, according to embodiments as disclosed herein;
[0027] FIGS. 12a – 12j illustrates an example a Graphical User Interface (GUI) on a first device or a second device for selecting one or more first devices or one or more second devices, and data items, according to embodiments as disclosed herein; and
[0028] FIG. 13 illustrates a computing environment implementing the method and system for automatically synchronizing a data item between one or more first devices and one or more second devices, according to embodiments as disclosed herein.
DETAILED DESCRIPTION OF INVENTION
[0029] The embodiments herein and the various features and advantageous details thereof are explained more fully with reference to the non-limiting embodiments that are illustrated in the accompanying drawings and detailed in the following description. Descriptions of well-known components and processing techniques are omitted so as to not unnecessarily obscure the embodiments herein. Also, the various embodiments described herein are not necessarily mutually exclusive, as some embodiments can be combined with one or more other embodiments to form new embodiments. The term “or” as used herein, refers to a non-exclusive or, unless otherwise indicated. The examples used herein are intended merely to facilitate an understanding of ways in which the embodiments herein can be practiced and to further enable those skilled in the art to practice the embodiments herein. Accordingly, the examples should not be construed as limiting the scope of the embodiments herein.
[0030] The embodiments herein disclose a system and method for dynamically synchronizing a data item between one or more first devices and one or more second devices. The method includes identifying a change in the data item in one or more first devices, where each data item is associated with one or more second devices. Further, the method includes dynamically creating a data set including the changed data item for each of the second device associated with the changed data item. Unlike conventional systems, separate data sets can be created by the first device for each of the dependent second devices as and when a change in the data items is detected.
[0031] Furthermore, the method includes transferring the data set to one or more second devices dynamically in real time with minimum possible delay. The system and method can be used to facilitate real-time data transfer between the first and second devices. Unlike conventional systems, where the second device needs to send a request to receive the updated data item in the first device, the proposed system and method can be used to automatically create separate data sets specific to individual second device and transfer dynamically in real time with minimum possible delay. Fast access to update the changed data item in the first device for each second device associated with the changed data item can be achieved without sending any request message from the second device.
[0032] In conventional systems, it is not possible to have a real time sync using request/response approaches as the second device can’t know on its own if it needs to update itself and thus request the first device. Further, the data set including the changed data item can be sent instantaneously as soon as there is a connection between the first device and the second device, using the already prepared data set including the changed data item, without including any data preparation or request processing delay.
[0033] Each first device can be a parent for different set of applications for its every second device and each second device may have different and multiple data providers for each of its application. For each second device, application specific different data sets are created and transferred to the respective second devices in real-time, without waiting for the request. If there is a connection with the corresponding second devices then the data sets are instantly sent to the corresponding connected second device as soon as it is created. If the connection is not present between the first device and second device corresponding to the changed data sets then these data sets are sent as soon as there is the connection between them dynamically, without waiting for any request. Further, the system and method can be used to efficiently handle the changing connections, initial setups, and maintaining state of multiple first devices with multiple second devices, in case when any of the paired device for an application or set of applications, are added or removed, so as to enable the correct state of sync of an application data. Furthermore, the proposed system and method can be implemented using existing infrastructure and may not require extensive setup and instrumentation.
[0034] Referring now to the drawings, and more particularly to FIGS. 1 through 13, where similar reference characters denote corresponding features consistently throughout the figures, there are shown preferred embodiments.
[0035] FIG. 1 illustrates generally, among other things, a high level overview of a system 100 for dynamically synchronizing a data item between one or more first devices 1021-N (hereafter referred as FD 102) and one or more second devices 1041-N (hereafter referred as SD 104) communicating among each other using a network 106, according to embodiments as disclosed herein.
[0036] In an embodiment, the FD 102 can be a parent device or master device such as for example, but not limited to, laptop, desktop computer, mobile phone, smart phone, Personal Digital Assistants (PDAs), tablet, phablet, consumer electronic device, server, or any other electronic device. The SD 104 described herein can be a slave device or dependent device for example, but not limited to, Smart-Watch, Smart Glasses, smart band, Eyewear, and the like. In an embodiment, the FD 102 can be selected from a group of eligible devices along with the other devices acting in the role of slave or dependent devices by getting paired with the eligible device acting in the role of master or primary device.
[0037] The FD 102 can include appropriate interfaces to directly or indirectly communicate with the SD 104 and with various other devices over the network 106. The network 106 described herein can be for example, but not limited to, wireless network, wire line network, public network such as the Internet, private network, global system for mobile communication network (GSM) network, general packet radio network (GPRS), local area network (LAN), wide area network (WAN), metropolitan area network (MAN), cellular network, public switched telephone network (PSTN), personal area network, Bluetooth, Wi-Fi Direct, Near Field communication, Ultra Wide band, a combination thereof, or any other network.
[0038] Each of the FD 102 and the SD 104 can include a plurality of data items such as for example, but not limited to, contact data item, gallery data item, music data item, reminder data item, email message data item, document data item, social networking site (SNS) data item, and the like. Each data item can have its own database containing the relevant data item set in it. A memory table consisting of relevant data in the database can be present. Not all the devices necessarily need to process all kinds of the data items. For example, the SD1 can be configured to process the calendar data item associated with the FD1, the email message data item, the contact data item, and the document data item. As another example, the SD2 can be configured to process the calendar data item and the gallery data item associated with the FD1 and FD2.
[0039] To enable a user to process the same underlying information associated with each data item (e.g., information embodied in specific data items), the information can be synchronized between devices. Synchronizing data items between two different devices can include, for example, initially paring one or more FD 102 with one or more SD 104 and then automatically synchronizing the information associated with the corresponding data items among the devices.
[0040] Subsequent to the initially pairing and the synchronization, the FD 102 can be configured to identify a change in their data items and dynamically transfer the changed data set to automatically synchronize the changed data item in the FD 102 with the data items of the corresponding paired SD 104. The synchronization of two data items can include updating one or both of the data items to reflect changes in either of the data item since an initial or previous synchronization. For example, if contact data elements are synchronized between a FD1 and a SD1, and one of the contacts is subsequently modified in the FD1 then synchronizing the contacts can include applying the same modification to the corresponding contact in the SD1.
[0041] The FD 102 can be configured to dynamically create a data set including the changed data item for each of the SD 104 associated with the changed data item. Unlike conventional systems, separate data sets can be created for each SD 104 associated with the changed data item. Further, the FD 102 can be configured to transfer the created separate data sets to the SD 104, dynamically in real time with minimum possible delay, from the SD 104. Unlike conventional systems, where the SD 104 needs to send a request for synchronization to receive the updated data item in the FD 102, the proposed system 100 can be used to automatically create separate data sets specific to the individual SD 104 and transfer it, dynamically in real time with minimum possible delay, from the SD 104. Fast access to update the changed data item in the FD 102 for each SD 104 associated with the changed data item can be achieved without sending any request message from the SD 104.
[0042] Although the FIG. 1 shows a limited number of devices including the FD 102, and the SD 104 coupled to the network 106 but, it is to be understood that other embodiments are not limited thereto. The system 100 is only one example of a suitable environment and is not intended to suggest any limitation as to the scope of use or functionality of the invention. Further, the system 100 can include different modules communicating among each other along with other hardware or software components. For example, the component can be, but not limited to, a process running in the first or second devices, an executable process, a thread of execution, a program, or a computer. By way of illustration, both an application running on an electronic device and the electronic device can be the component.
[0043] Further, the labels such as “first”, “second,” are used merely to differentiate the electronic devices and do not limit the scope of the invention.
[0044] FIG. 2 illustrates various modules 200 available in the FD 102, according to embodiments as disclosed herein. In an embodiment, the FD 102 can be configured to include a controller module 202, a data configuration module 204, a data connection map module 206, a communication module 208, and a storage module 210.
[0045] Further, the controller module 202 can be configured to receive initial set-up request from the SD 104 requesting the FD 102 to be the data provider for the set of data items present in the FD 102. Further, the communication module 208 can be configured to fetch information from the request message and can create the entry for the SD 104 in the data configuration module 204. Further, the controller module 202 can be configured to connect the SD 104 and maintain a state of the FD 102 with the SD 104. Further, the controller module 202 can be configured to determine whether there is any change in the data items in the FD 102.
[0046] In an embodiment, the data configuration module 204 can be configured to prepare separate data sets including the changed data item for all of the SD 104. For example, for the change in the gallery data item, the separate data sets are needed to be transferred for the SD1 and SD2 (Refer FIG. 5b).
[0047] In an embodiment, the data connection map module 206 can be configured to maintain the mapping between each of the SD 104 connected to the FD 102 with their dependent data items as shown in FIG. 5b. For example, consider the FD 102 which has two entries for the SD 104 (i.e. SD1, and SD2). Here, the SD1 can be dependent on the FD 102 for a contact data item, an email data item, and a gallery data item. Also, the SD2 can be dependent on the FD 102 for the contacts data item, and the gallery data item whereas, SD3 can be dependent on the FD 102 for the gallery data item (Refer FIG. 5b). This signifies that for the SD1, the FD 102 needs to prepare separate data sets for the contact data item, email data item and gallery data item. For SD2, the FD 102 needs to prepare separate data sets for the contact data item, and gallery data item. For SD3, the FD 102 needs to prepare separate data sets for the gallery data item.
[0048] Further, the data configuration module 204 can be configured to dynamically prepare separate copy of actual data set for each of the SD 104. Each separate data copy can be transferred to the respective SD 104 without waiting for any request message from the SD 104.
[0049] Further, the communication module 208 can be configured to transfer the separate copy of the data set to the SD 104, without waiting for any request. The data set can be sent instantaneously as soon as there is a connection between the FD 102 and the SD 104, using the already prepared data set associated with the changed data item, without including any data preparation or request processing delay. Further, the controller module 202 can be configured to maintain the separate data sets for each of the SD 104. In an embodiment, the communication module 208 can be configured to send and receive the data set from the SD 104. Whenever, if there is the change in the data item in the FD 102 the SD 104 associated with the changed data item can be identified. Based on the identified SD 104, the separate data sets can be prepared corresponding to the changed data item and with respect to the sync state of each SD 104. Further, the communication module 208 can be configured to detect if there is a connection available with the SD 104 at that instant of time then the data set including the changed data item can be sent instantaneously to the SD 104.
[0050] Further, the controller module 202 can be configured to determine if there is any new SD 104 which is connected to the FD 102 requesting initial sync for the specific or set of data items in the FD 102. The controller module 202 can be configured to create an entry for the SD 106 for the requested data item and can mark the new SD 104 as SD 104. The data connection map module 206 can be configured to receive request messages from the controller module 202 to add an entry for the new SD 104. Further, the data connection map module 206 can be configured to notify the data configuration module 204 to prepare the data sets for the SD 104 for the requested data items in the FD 102. Moreover, the FD 102 can keep a record of the already sent data to the SD 104 and consider the information while preparing the data set for the SD 104. The FD 102 can maintain the real time data set including the changed data item exclusively for the SD 104 for sending the data set to the SD 104.
[0051] Furthermore, the storage module 210 can be configured to store various data items, data sets, information about the SD 104, and the like. The storage module 210 can be configured to store control instructions to perform various operation in the system 100.
[0052] FIG. 3 various modules 300 available in the second device, according to embodiments as disclosed herein. In an embodiment, the SD 104 can be configured to include a controller module 302, a data configuration module 304, a data connection map module 306, a communication module 308, and a storage module 310.
[0053] In an embodiment, the controller module 302 can be configured to initiate initial sync for the specific or set of data items to create the entry for the FD 102 for the requested data item in the SD 104. Further, the controller module 302 can be configured to connect the FD 102 and maintain a state of the SD 104 with the FD 102.
[0054] In an embodiment, the data configuration module 304 can be configured to receive the data items from the FD 102 for processing the data set and displaying the same to the user. For example, the data configuration module 304 for the contacts data item can prepare the data set including the changed data item fetched from the FD1 and FD2. For the email data item, the data configuration module 304 can prepare the data set including the changed email data item from the FD2 (Refer to FIG. 5e). Similarly, for the gallery data item, the data configuration module 304 can prepare the data set obtained from the FD1, and FD2 (Refer to FIG. 5c). As it can be seen from the FIG. 5c it is possible that the SD 104 can have multiple and different FD 102.
[0055] In an embodiment, the data connection map module 306 can be configured to maintain the mapping between the FD 102 and the SD 104 along with their dependent data items. For example, the SD 104 can have two entries for the FD 102 (FD1, and FD2) as shown in FIG. 5c. FD1 can be the data provider for the SD 104 contact data item, email data item, and gallery data item. FD2 can be the data provider for the SD 104 contact data item and gallery data item. This signifies that from the FD1, the SD 104 can receive separate data sets for the contact data item, email data item, and gallery data item. From the FD2, the SD 106 can receive separate data sets for the contact data item, and gallery data item (Refer FIG. 5c).
[0056] Further, the data connection map module 306 can be configured to receive the request message from the communication module 308 to add the entry for the FD 102 with the data set including the changed data item for which it is to be the data provider. Further, the data connection map module 306 can notify the data configuration module 304 to support data sets from the FD 102 for the requested data items. The data connection map module 306 can verify the metadata associated with the data sets including the changed data item to identify the FD 102 source and data item for which the data set is received. Further, the data connection map module 306 can verify the authorization of the FD 102 for the data item by checking the entries in its map corresponding to the FD 102.
[0057] In an embodiment, the communication module 308 can be configured to receive the data set including changed data item from the FD 102. For example, the communication module 308 in the SD 104 can receive the data sets including the changed data item associated with the FD 102.
[0058] In an embodiment, the storage module 310 can be configured to store various data items, data sets, information about FD 102, and the like. The storage module 310 can be configured to store control instructions to perform various operation in the system 100.
[0059] FIG. 4 illustrates various operations 400 performed between the between one or more first devices and one or more second devices, according to embodiments as disclosed herein. To enable a user to process the same underlying information associated with each data item (e.g., information embodied in specific data items), the information can be synchronized between devices.
[0060] In an embodiment, synchronizing the data items between two different devices can include, for example, initially paring one or more FD 102 with one or more SD 104 and then automatically synchronizing the information associated with the corresponding data items among the devices. At step 402, the second communication module 308 can initiate a request to initially get paired with the FD 102. For example, the initial sync or update operation request can be initiated from either the first device or the second device. At step 404, the second communication module 308 can configure synchronization preference for some selected data items with the data items of the FD 102. For example, the SD 104 can configure to get synchronization information for the reminder data item and the SNS data item in the FD 102.
[0061] At step 406, the first communication module 208 can be configured to send an acknowledgement message to the SD 106 once it updates all the other modules 200 present in the FD 102 about the new SD 104 pairing and data item synchronization preference. The FD 102 can acknowledge the update request at the step 404. The SD 104 can accept the data items corresponding to the updated data item set from the FD 102 in response to receiving the acknowledgement. The data items can be dropped and considered as invalid until the SD 104 receives the acknowledgement from the FD 102. At step 408, the first communication module 208 can be configured to initiate the initial sync of the selected data items with data item in the SD 104.
[0062] Subsequent to the initially pairing and the synchronization, at step 401, the FD 102 can be configured to identify a change in their data items and dynamically transfer the changed data set to automatically synchronize the changed data item in the FD 102 with the data items of the corresponding paired SD’s 104. The synchronization of two data items can include updating one or both of the data items to reflect changes in either of the data item since an initial or previous synchronization.
[0063] FIGS. 5a – 5f illustrates an example system block diagram for dynamically synchronizing separate data items between one or more first devices and one or more second devices, according to embodiments as disclosed herein. The FIG. 5a shows the FD1 (i.e. smart-phone) paired with the SD1 (i.e. smart watch) for dynamically synchronizing the data item and the FD2 (i.e. smart-phone) paired with the SD1 (i.e. smart watch), and SD2 (smart watch) for dynamically synchronizing the data items.
[0064] The FIG. 5b shows the various modules in the FD 102 containing the various data items such as contacts, emails, and gallery data items to be the data provider of SD1, and SD2. As shown in FIG. 5b, the FD 102 can be the data provider for the SD1 and SD2 for the contact data item and gallery data item. Also, the FD 102 can be the data provider for the SD1 for the email data item. The list of requested data items along with the SD1 and SD2 can be stored in the data connection map module 206 as shown in the FIG. 5b. The communication module 208 can create the entry for the SD1 and SD2 in the data configuration module 204.
[0065] In an embodiment, the data configuration module 204 can include an ‘Observer’ on a data item database. The observer can receive a call whenever any change is reflected in the data item database. Based on the last sync time with respect to each of the SD 104, query for the updated data can be sent to the data item database to retrieve the updated data items since last sync time. The result of the query may be compared with the contents in the memory table to classify the changes as insertion type, update type, deletion type, or their combination. The data set for each of the SDS 104 can be prepared and thus separate data sets can be created and transferred to each of the SD 104. In the SD 104, the received data set can be queued as per the FD 102. The data is then parsed into the separate data item sets which may be thereafter forwarded to the data item specific parser which will be responsible of parsing the data, creating appropriate data model and thereafter inserting into the database.
[0066] Further, the communication module 208 can receive the information about the SD1 and SD2 along with the contact data item, the email data item, and the gallery data item from the data configuration module 204. The communication module 208 can communicate with the data connection map module 206 to extract the mapping information of the SD1 and SD2 which are mapped with the corresponding data items as shown in the FIG. 5b.
[0067] The FIG. 5c shows various modules in the SD 104, where the multiple data items such as the contact data item, email data item, and gallery data item can be the data receiver of the FD1, and FD2. As shown in the FIG. 5c, the SD 104 can receive the data set from the FD1 and FD2 for the contact data item and gallery data item. Also, the SD 104 can receive the data set from the FD1 for the contact data item, email data item, and gallery data item. The list of data items to be received from the FD1 and FD2 can be stored in the data connection map module 306 as shown in the FIG. 5c. The communication module 308 can create the entry for the FD1 and FD2 in the data configuration module 304. The communication module 308 can receive the information from the FD1 and FD2 along with the contact data item, email data item, and gallery data item from the data configuration module 312 in the SD 104. The communication module 308 can communicate with the data connection map module 306 to extract the mapping information of the FD1 and FD2 which are mapped with the corresponding data items as shown in the FIG. 5c.
[0068] The FIG. 5d shows the FD1 with the separate data sets prepared for the SD1 and SD2 individually for the contacts data item. Whenever there is a connection existing between the FD1 and the SD1, and SD2 then the prepared separate data sets can be sent to the SD1 and SD2 individually.
[0069] The FIG. 5e shows the FD2 with the data set prepared for the SD1 for the email data item. Whenever there is connection between the FD2 and the SD1, the prepared data sets can be sent to the SD1.
[0070] The FIG. 5f shows the scenario where the connection is available between the FD1 and the SD1 and the connection between the FD1 and the SD2 is unavailable. Whenever there is the connection between the FD1 and the SD1, the prepared contact data set can be sent to the SD1. If the connection is unavailable as shown in FIG. 5f, the data set can be preserved in the FD1 and can be sent when the connection between the FD1 and the SD2 is available. Otherwise, the data set can be updated to reflect the current contact data item state and can send the updated data set to the SD2.
[0071] FIG. 6 is a flow diagram illustrating a method 600 for maintaining the correct and consistent state of the SD 104, according to embodiments disclosed herein. At step 602, the method 600 includes detecting if there is any connection is available between the SD 104 and the FD 102. The method 600 allows the communication module 208 to detect the connection availability between the SD 104 and the FD 102. At step 604, the method 600 includes determining whether the device is a new SD 104 in response to determining the connection is available between the SD 104 and the FD 102. At step 606, the method 600 includes creating an entry in the data connection map module 206 on the requested data item in response to determining a new SD 104. The method 600 allows the data connection map module 206 to create the entry on the requested data item in the FD 102. At step 608, the method 600 includes determining the data item for the SD 104 in response to not determining the already paired SD 104. The method 600 allows data connection map module 206 to determine the data item for the SD 104 if the SD 104 is the already paired device.
[0072] At step 610, the method 600 includes determining if any request to update the data item from the SD 104 is received. The method 600 allows the data connection map module 206 to determine if any request to update the data item is received. At step 612, the method 600 includes updating the entry in the FD 102 in response to determining that the request to update the data item is received. The method 600 allows the data connection map module 206 to update the entry in the FD 102. At step 614, the method 600 includes notifying the data configuration module 204 if there is any change in the data item sets for the SD 104 in case of new SD 104. Here, the data configuration module 204 can determine the SD 104 for each of the data item. The method 600 allows the data connection map module 206 to notify the data configuration module 204 if there is any change in the data item sets for the SD 104 in case of new SD 104. At step 616, the method 600 includes notifying the data configuration module 204 to identify if there are any existing data sets for the data item of the detected SD 104. If there is any data set present for any of the data item corresponding to the SD 104 then it is sent to a data communication module 208. The method 600 allows the data connection map module 206 to notify the data configuration module 204 to identify if there are any existing data sets for the data item of the detected SD 104.
[0073] The various actions, acts, blocks, steps, and the like in method 600 may be performed in the order presented, in a different order or simultaneously. Further, in some embodiments, some actions, acts, blocks, steps, and the like may be omitted, added, modified, skipped, and the like without departing from the scope of the invention.
[0074] FIG. 7 is a flow diagram illustrating a method 700 for first time synchronization of data item between one or more first and second devices, according to embodiments as disclosed herein. In an embodiment, at step 702, the method 700 includes determining a new SD 104 for creating an entry in the data connection map module 206 based on a requested data item set. The method 700 allows data connection map module 206 to determine if the device is the new SD 104. At step 704, the method 700 includes identifying the dependent data items and separate data set can be prepared for the SD 104 for each of the dependent data items in a data configuration module 204. The method 700 allows the controller module 202 to identify the dependent data items and prepare separate data set for the SD 104 for each of the dependent data items. At step 706, the method 700 includes performing the first time sync with the SD 104. The data item state and data set are sent to the SD 104 for the data item necessary to bring the SD 104 in sync with the FD 102 data set associated with the data item. The method 700 allows the data configuration module 204 to perform the first time sync with the SD 104 for sending the data item state and data to the SD 104 for the data item necessary to bring the SD 104 in sync with the FD 102.
[0075] At step 708, the method 700 includes updating the data set including the changed data item in the FD 102 for the SD 104 to bring the SD 104 in sync with the FD 102 data set for that instance of time. At step 710, the method 700 includes updating the data set in the data configuration module 204 by removing data sets corresponding to the sent data items if the connection is available between the FD 102 and the SD 104. If there is no connection then the updated prepared data sets are retained in a memory of the FD 102. If there is any update before the data sets are sent to the SD 104 then the data set is updated so as to bring the data set in sync with the actual updated data item in the FD 102
[0076] The various actions, acts, blocks, steps, and the like in method 700 may be performed in the order presented, in a different order or simultaneously. Further, in some embodiments, some actions, acts, blocks, steps, and the like may be omitted, added, modified, skipped, and the like without departing from the scope of the invention.
[0077] FIG. 8 is a flow diagram illustrating a method 800 for updating data items in response to detecting a change in configuration of a data item associated with a SD, according to embodiments as disclosed herein. In an embodiment, at step 802, the method 800 includes determining a request for the updated data item for a SD 104. The method 800 allows the data connection map module 206 to determine the request for the updated data item for the SD 104. Further, the method 800 allows the data connection map module 206 to update the data items for the SD 104. Further, the method 800 allows the SD 104 to send a message to update the data set from the FD 102 instantaneously if the connection between the FD 102 and the SD 104 is available; otherwise it is sent, as soon as there is a connection between the FD 102 and the SD 104. Further, the method 800 includes sending update message irrespective of the future operations if the update operation consists of the data item associated with the device which is unpaired. For example, if the SD 104 which was unpaired earlier and repaired again before connection could be established. Even in this case, update operation needs to be sent to the FD 102 which will send acknowledgment message to the SD 104 once the data set is completely removed.
[0078] At step 804, the method 800 includes notifying the data configuration module 204 about the data item from which the SD 104 may need to be unpaired or created as a new entry. The method 800 allows the data connection map module 206 to notify the data configuration module 204 about the data item from which the SD 104 may need to be unpaired or created as a new entry.
[0079] At step 806, the method 800 includes removing a FD 102 on receiving unpaired device request by the data configuration module 204 for the SD 104 for the data item after deleted the prepared data sets. Here, an acknowledgement can be sent to the SD 104. At step 808, the method 800 includes performing the first time sync with the SD 104 if the data configuration module 204 receives new data set request. It sends all the data item state and data to the SD 104 for the data item necessary to bring the SD 104 in sync with the FD 102 data item. The SD 104 may drops all the incoming data set for the data items corresponding to which it had sent update message, until it receives acknowledgment from the FD 102.
[0080] The various actions, acts, blocks, steps, and the like in method 800 may be performed in the order presented, in a different order or simultaneously. Further, in some embodiments, some actions, acts, blocks, steps, and the like may be omitted, added, modified, skipped, and the like without departing from the scope of the invention.
[0081] FIG. 9 is a flow diagram illustrating a method 900 for maintaining the correct and consistent state of first device, according to embodiments disclosed herein. In an embodiment, at step 902, the method 900 includes detecting if there is any connection or a data set received from a FD 102. The method 900 allows the communication module 208 to detect the connection availability between the SD 104 and the FD 102. At step 904, the method 900 includes determining whether the device is a new FD 102 in response to determining that the connection is available between the SD 104 and the FD 102. The method 900 allows the data connection map module 206 to determine if the device is the new FD 102. At step 906, the method 900 includes creating a new entry in the data connection map module 206 on the requested data item in response to determining the new FD 102. The method 900 allows the data connection map module 206 to create the entry on the requested data item in the SD 104. At step 908, the method 900 includes determining the data item set of the received data for the FD 102 in response to determining that the device is not the new FD 102. The method 900 allows data connection map module 206 to determine the data item set of the received data for the FD 102, if the FD 102 is the already paired device.
[0082] At step 910, the method 900 includes determining if any request to update the data item for the SD 104 is received. The method 900 allows the data connection map module 206 to determine if any request to update the data item is received. At step 912, the method 900 includes updating the entry in the FD 102 in response to determining that the request to update the data item is received. The method 900 allows the data connection map module 206 to update the entry in the FD 102. At step 914, the method 900 includes notifying the data configuration module 204 if there is any change in the data item sets for the SD 104 in case of new SD 104. Here, the data configuration module 204 can determine the SD 104 for each of the data item. The method 900 allows the data connection map module 206 to notify the data configuration module 204 if there is any change in the data item sets for the SD 104 in case of new SD 104. At step 916, the method 900 includes providing the data configuration module 204 if the data sets are removed to the respective data items. Further, the method 900 allows the data sets to be parsed and inserted into respective data item databases so as to bring the SD 104 in sync with the FD 102.
[0083] The various actions, acts, blocks, steps, and the like in method 900 may be performed in the order presented, in a different order or simultaneously. Further, in some embodiments, some actions, acts, blocks, steps, and the like may be omitted, added, modified, skipped, and the like without departing from the scope of the invention.
[0084] FIG. 10 is a flow diagram illustrating a method 1000 for effectively managing data items in the first and second devices, according to embodiments as disclosed herein. At step 1002, the method 1000 includes receiving the data set by the data connection map module 306 for the set of data items from the FD 102. The method 1000 allows the communication module 308 in the SD 104 to send the data set to the data connection map module 306 for the set of data items from the FD 102. At step 1004, the method 1000 includes determining the data sets including the changed data items for which the data sets received from the FD 102. The method 1000 allows the controller module 302 in the SD 104 to determine the data sets including the changed data items for which the data sets received from the FD 102. At step 1006, the method 1000 includes verifying the data item entries for the FD 102 if it is authorized to be the FD 102 for all the data items. The method 1000 allows the controller module 302 in the second device 104 to verify the data item entries for the FD 102 if it is authorized to be the FD 102 for all the data items. At step 1008, the method 1000 includes removing the data sets received from the FD 102 for the removed data item till the acknowledgement from the FD 102 is received, which is sent after the FD 102 removes the entry from the SD 104 for the removed data item. The method 1000 allows the controller module 302 in the SD 104 to remove the data sets received from the FD 102 for the removed data items till the acknowledgement from the FD 102 is received. At step 1010, the method 1000 includes parsing and inserting new data sets into the respective data item databases so as to bring the SD 104 in sync with the FD 102. The method 1000 allows the controller module 302 in the SD 104 to parse and insert the new data sets into the respective data item databases in the SD 104.
[0085] The various actions, acts, blocks, steps, and the like in method 1000 may be performed in the order presented, in a different order or simultaneously. Further, in some embodiments, some actions, acts, blocks, steps, and the like may be omitted, added, modified, skipped, and the like without departing from the scope of the invention.
[0086] FIG. 11 is a flow diagram illustrating a method 1100 for dynamically synchronizing a data item between one or more first devices and one or more second devices, according to embodiments as disclosed herein. In an embodiment, at step 1102, the method 1100 includes identifying a change in a data item in the FD 102. The data item can be associated with the SD 104. In an embodiment, the data item can be, for example and not limited to contact, gallery, music, reminder, Email, social networking site (SNS), and the like. The method 1100 allows the controller module 202 to identify the change in the data item in the FD 102. At step 1104, the method 1100 includes identifying the SD 104 associated with the changed data item. The method 1100 allows the controller module 202 to identify the change in the data item in the FD 102. At step 1106, the method 1100 includes determining whether the changed data item is available in the SD 104. The method 1100 allows the controller module 202 to determine the changed data item is available in the SD 104. At step 1108, the method 1100 includes dynamically creating the data set including the changed data item for each SD 104 associated with the changed data item in response to identifying the SD 104 associated with the changed data item. The method 1100 allows the data configuration module 204 to identify the SD 104 associated with the changed data item. Further, the method 1100 allows the data configuration module 204 to determine whether the changed data item is available in each SD 104. Further, the method 1100 allows the data configuration module 204 to dynamically create the data set including the changed data item for each SD 104 associated with the changed data item. The data set can be created separately for the SD 104 in response to determining that the changed data item is unavailable. Unlike conventional systems, separate data sets can be created by the first device for each of the second devices.
[0087] At step 1110, the method 1100 includes determining whether the connection is available between the FD 102 and the SD 104 associated with the changed data item. The method 1100 allows the communication module 208 to determine whether a connection is available between the FD 102 and the SD 104 associated with the changed data item. At step 1112, the method 1100 includes updating the data set in the data configuration module 210 on response to determining that the connection between the SD 104 and the FD 102 is unavailable. The data configuration module 210 can transfer the data set as it is when the connection is available and dynamically in real time with minimum possible delay from the SD 104. Unlike conventional systems, the second device can receive the updated data sets from the first device prior to receiving any request message from the second device; thereby, saving time and increasing the overall user experience of the system. A step 1114, the method 1100 includes transferring the data set to the SD 104 associated with the changed data item in response to determining that the connection between the FD 102 and the SD 104 is available. The data set including the changed data item can be transferred instantly to the SD 104 prior to receiving the request for synchronization from the SD 104. The method 1100 allows the communication module 208 to transfer the data set to the SD 104 associated with the changed data item in response to determining that the connection between the FD 102 and the SD 104 is available. Further, the method 1100 allows the communication module 208 to transfer the data instantly to the SD 104 prior to receiving the request for synchronization from the SD 104. Unlike conventional systems, the data set including the changed data item in the FD 102 can be transferred instantly to the SD 104 without receiving any request from the SD 104 to receive updated data set including the changed data item.
[0088] The various actions, acts, blocks, steps, and the like in method 1100 may be performed in the order presented, in a different order or simultaneously. Further, in some embodiments, some actions, acts, blocks, steps, and the like may be omitted, added, modified, skipped, and the like without departing from the scope of the invention.
[0089] In an embodiment, the sequence of data sets including the changed data items can be dependent on the data priority set by the user for sending the data set to the SD 104; thereby resulting in getting the data set parsed earlier than other data sets in the SD 104 and hence enabling it to be available to the user on the highest priority. During the process of sending the data set to the SD 104 if the priority for the specific data set is received by the user then the data set can be queued in front of all other data sets to be executed at the earliest. For example, while sending the data set, if an email is received for an urgent meeting then the email data set must be prioritized compared to other data sets.
[0090] In an embodiment, the data set including the changed data item can be sent to the SD 104 in real time if the connection is available between the FD 102 and the SD 104, otherwise it is sent as soon as the connection is available. Alternatively, in case of the disconnection between the FD 102 and the SD 104, the user can be prompted to notify about the disconnection. Thus enabling the user to either reschedule the data to be sent at a later time or try continuous re-polling for the connection between the FD 102 and the SD 104. The functionality can be achieved intelligently without the user intervention by predicting the user availability. For example, the user can send the data set after the office hours based on maximum probability of the connection availability between the FD 102 and the SD 104 thereby saving battery and data load and hence facilitate better optimization by speeding up the transfer of the relevant data by reducing CPU wastage.
[0091] In an embodiment, during the first time sync each of the SD 104 can notify the FD 102 about the set of data items for which the SD 104 wants to receive the data set including the changed data items. The data sets including the changed data item can be sent explicitly to the SD 104. Alternatively, the capability of the SD 104 can be detected intelligently by the FD 102 based on the type of device, location, usage of the device, and the like. For example, Smart glass may be interested by default only for a camera and map data items but, not for the contacts or email data item. This may be detected intelligently by the FD 102 even without receiving any data set with respect to it. For example, when the user is in a market place, it may be desired to share only map data with the smart watch in real time rather than sharing all data. Hence saving bandwidth of data sharing, reducing transfer load, battery drain and thus improving performance. Also as per the location of the user, the SD 104 and its data item set can be prioritized. For example, when the user is in the market place and need to navigate through the market, Smart glass is assigned higher priority compared to smart watch. Moreover for the smart glass, it may be desired to share only map data item in real time rather than sharing all the data items.
[0092] In an embodiment, the data sets and the SD 104 can be assigned with different priority by the FD 102 based on user preferences. For example, when the user is in office, priority of the social media data item may be set lower compared to the email data. Also, several data sets can be automatically turned off temporarily as per the situation detected by the FD 102. For example, if the user is in office location, the social media data sharing may be automatically turned off. This also provides additional security which can be combined with the security layer provided in the FD 102. The different modes can be set explicitly by the user in the FD 102 and the SD 104. Alternatively, these modes may be automatically detected and thereafter different data item sets may be automatically categorized into them. For example, in home mode data item set cannot contain official data items private to the workplace. Also, as an example, a higher priority can be set for the social media data items. Thus, different data item sets can be active, prioritized, or blocked by the controller module 202 of the FD 102, such as to facilitates optimization of the overall performance and also ensures security.
[0093] In an embodiment, the data load can be handled by the FD 102 based on several conditions such as battery load, amount of data to be sent, priority or usage of the data, and the like. For example, during low battery condition bulk sync process may be suspended such as sync with any of the user’s cloud account. The process of individual sync (sequential slow update of data items in the FD 102), bulk sync (importing heavy data at a time in the FD 102) or continuous sync (sync with any of the user’s cloud account). During continuous sync, the data sets are continuously prepared and queued. The data sets are deleted only after successful receipt of data in the SD 104 otherwise the data set is resent. Each data set prepared during the continuous sync overrides the data of the previous data sets that has been prepared but not yet sent, and then clears the data set prepared prior to it. These data sets are then tried to be sent to the SD 104 in real time. Alternatively, the data set during continuous sync may be scheduled to be sent after each fixed interval of time (for example, 20 seconds). This can be set either user or set by the FD 102 based on the system load.
[0094] In an embodiment, whenever there is a change in FD 102, the data set is sent to the SD 104 in real time. Alternatively, the data sets may be configured to be scheduled to be sent after an interval of time. Alternatively, instead of continuous polling of changes for data items in the FD 102, the data preparation module can be configured to check for changes in the underlined database only after certain time intervals. The condition for checking is last sync time. These time intervals may be explicitly set by the user or alternatively detected intelligently by the FD 102 based on the system load. Alternatively, this time interval may be set explicitly in the SD 104 or detected intelligently by the controller module 302 in the SD 104 based on the system load and usage in the SD 104.
[0095] In an embodiment, the data can be configured explicitly by the user to apply different filter to control the content of data item. For example, a user may select to send only contact’s name and phone number from the FD 102 to specific SD 104 and all contacts information to other SD 104.
[0096] In an embodiment, the data sync can be stopped in between the data sharing between the devices either at the FD 102 or SD 104 explicitly by the user. In that case, the data received in the SD 104 must be saved in its file system to be re-used again. For the part of data that had not been sent is retained in the memory of the FD 102 holding the data sets which will be overridden with other items if any other updates are observed. This will enable the consistency of the “last sync time” and “data set” stored in the FD 102 which will be referred later for data sharing between the devices.
[0097] In an embodiment, the user can set times for on/ off devices, short term devices / long term devices. Like short term devices shall get only short term data or recent updates only. Long term devices shall get full data. Devices can be marked (relation type) as short term, long term, favorite devices. For example, if the user comes to visit city only recent data must be shared to him instead of all Data.
[0098] In an embodiment, in the data configuration module 204, data preparation can be done alternatively in a de centralized environment. For example, Smart glass can maintain data for images/ real time shooting/ recording data. Calling device can be responsible for making contacts data updates / sharing. When searching is performed in the data item, the search results displayed on the UI of the FD 102 can have an option to share the search result with its SD 104, save it in history of either of the device or schedule data delivery related to the search result.
[0099] In an embodiment, each data item launcher icon may display the icon status of sync with each of the SD 102 in case of FD 102. Similarly in the SD 104, each launcher icon may display FD 102 icon signifying the FD 102 with respect to that data item.
[00100] FIGS. 12a – 12j illustrates an example Graphical User Interface (GUI) on a first device or second device for selecting one or more first devices or second devices, and data items, according to embodiments as disclosed herein. In an embodiment, the GUI can be presented on the either of the FD 102 and SD 104 for available devices for connection which are not presently connected. FIG. 12a shows the 4 FD 102 (i.e. first device 1, first device 2, first device 3, and first device 4) as the GUI on the SD 104 screen. The user can select the first device 1, and first device 2 with which the SD 104 can be in sync from the list of available devices as the GUI on the SD 104 screen as shown in the FIG. 12b.
[00101] FIG. 12c shows the second device 1, second device 2, second device 3, and second device 4 as the GUI on the FD 102 screen. The user can select the second device 1, and second device 2 with which the FD 102 can be in sync from the list of available devices as the GUI on the FD 102 screen as shown in the FIG. 12d.
[00102] For the selected first device 1 and first device 2, different set of data items can be chosen for the purpose of synchronization as shown in the FIG. 12e. For already connected devices, the GUI screen can be presented to pair/un-pair the contact, email, SNS1, SNS2, and gallery data items for synchronization. For each selected first device 1 and first device 2, different set of data items can be chosen for the purpose of synchronization. Here, the contacts data item and gallery data item can be chosen from the first device 1 and the contact, email, SNS1, SNS2, and gallery data items can be chosen from the first device 2 as shown in the FIG. 12e and the FIG. 12f. For already connected first device and second device, the GUI screen can be presented to pair/un-pair the set of data items for synchronization. For each selected device, different set of data items can be chosen for the purpose of synchronization.
[00103] Each selected data item can be configured for the kind of data the SD 104 wants to receive. In the FIG. 12g contacts data item can display either all of the contacts or any combination of ‘Favorites’, ‘Frequent’ or ‘Group’ type. The user can configure contact data item in the SD 104 to receive updated data set from the FD 102. The user can select “Get frequently contacted” and “Get favorites” data set associated with the changed contact data item as shown in the FIG. 12g.
[00104] The contact “John” can be updated by the user with “2641578” in the FD 102. The separate data sets containing updated contact of “John” can be prepared for each SD 104 connected to the FD 102 as shown in FIG. 12h. The data set can be updated for all the connected SD 104 in real time if they are connected without any request/response. If there is a connection, data can be sent directly otherwise data is stored in the FD 102 to be sent later whenever the connection is available. In the FIG. 12i, different set of data items can be sent to different second devices for the change in the first device. The FD 102 can be configured to receive the data set associated with the favorite contacts which were earlier selected by the user as shown in the FIG. 12j. The changed data items associated with all the connected second devices can be updated in real time (without any request response).
[00105] In an embodiment, the GUI can include various options such as for example, but not limited to, search, data status, relation, history, data selection, type of data control status, type of device status, data progress and the like.
[00106] In an embodiment, some critical scenarios which may not be possible to efficiently handle using the conventional system are described. For example consider FD1 as a first device 102 and SD1 as a second device 104, where:
1) Both the FD1 and the SD1 are new to each other:
a. Both of the devices send first time request to each other
b. The FD1 updates the “Data connection map module” with the SD1 state and data
c. The SD1 updates the “Data connection map module” with the FD1 state and data
2) The FD1 is new to the SD1. but, the SD1 is not new to the FD1: This can be possible when the following scenario occur:
a) Pair the FD1 and the SD1
b) Un-pair the FD1 application from the SD1, when they are not connected. So, the SD1 can drop all the data sets associated with the FD1
c) Pair same application in the FD1 to the SD1 again so that the SD1 can create entries for the application again
d) Following can be done after the step ‘C’ when the devices gets connected
i) In the SD1, discard any data obtained from the FD1 for the removed application, till any acknowledgement is received from the FD1 regarding receiving of ‘Delete data item’
ii) The SD1 sends Update application set request to the FD1, specifying the application for which re-initialization needs to be done in the FD1
iii) The FD1 updates its “Data connection map module” to remove entry for the specified application for the SD1 entry. “Data Preparation Module” of the FD1 cleans all the data set associated with the SD1 in the specified application.
iv) The FD1 sends acknowledgement after clean up is performed for the specified application set in the SD1
v) The SD1 sends initialize request for the same application to the FD1
vi) The FD1 creates entry for the specified application in “Data connection map module”
vii) The FD1 sends all the data associated with the specified application to the SD1 so as to sync the SD1 to the state of data of data provider application in the FD1
viii) Since acknowledgement has already been received, the SD1 receives data set from the FD1 parses the data sets and inserts into the database of the application.
e) The SD1 is new to the FD1 but, the FD1 is not new to the SD1:
This may be possible when following scenario occur:
A. Pair the FD1 and the SD1
B. Un-pair the SD1 application from the FD1 when they are not connected. So, the FD1 can drop all the data sets associated with the SD1
C. Pair same application in the SD1 to the FD1 again. the FD1, can create entries for the application again
D. Following can be done after the step ‘C’ when the devices gets connected:
i. The FD1 sends Update application set request to the SD1, specifying the application for which re-initialization needs to be done in the SD1
ii. The SD1 updates the “Data connection map module” to remove the entry for the specified application for the FD1 entry. The “Data Preparation Module” of the SD1 cleans all the data set associated with the FD1 in the specified application
iii. The SD1 can send acknowledgement after clean up is performed for the specified application set in the FD1
iv. The FD1 sends initialize request for the same application to the SD1
v. The SD1 creates entry for the specified application in “Data connection map module”
vi. The FD1 sends all the data associated with the specified application to the SD1 so as to sync the SD1 to the state of data of data provider application in the FD1
vii. The SD1 receives data set from the FD1, parses the data sets and inserts into the database of the application.
[00107] FIG. 13 illustrates a computing environment 1302 of the method and system for dynamically synchronizing a data item between one or more FD and one or more SD, according to embodiments as disclosed herein. As depicted in the figure, the computing environment 1302 comprises at least one processing unit 1308 that is equipped with a control unit 1304 and an Arithmetic Logic Unit (ALU) 1306, a memory 1310, a storage unit 1312, plurality of networking devices 1316 and a plurality Input output (I/O) devices 1314. The processing unit 1308 is responsible for processing the instructions of the algorithm. The processing unit 1308 receives commands from the control unit 1304 in order to perform its processing. Further, any logical and arithmetic operations involved in the execution of the instructions are computed with the help of the ALU 1306.
[00108] The overall computing environment 1302 can be composed of multiple homogeneous and/or heterogeneous cores, multiple CPUs of different kinds, special media and other accelerators. The processing unit 1308 is responsible for processing the instructions of the algorithm. Further, the plurality of processing units 1308 may be located on a single chip or over multiple chips.
[00109] The algorithm comprising of instructions and codes required for the implementation are stored in either the memory unit 1310 or the storage 1312 or both. At the time of execution, the instructions may be fetched from the corresponding memory 1310 and/or storage 1312, and executed by the processing unit 1308.
[00110] In case of any hardware implementations various networking devices 1316 or external I/O devices 1314 may be connected to the computing environment to support the implementation through the networking unit and the I/O device unit.
[00111] The embodiments disclosed herein can be implemented through at least one software program running on at least one hardware device and performing network management functions to control the elements. The steps, operations, and elements shown in FIGS. 1 through 13 include blocks which can be at least one of a hardware device, or a combination of hardware device and software module.
[00112] The foregoing description of the specific embodiments will so fully reveal the general nature of the embodiments herein that others can, by applying current knowledge, readily modify and/or adapt for various applications such specific embodiments without departing from the generic concept, and, therefore, such adaptations and modifications should and are intended to be comprehended within the meaning and range of equivalents of the disclosed embodiments. It is to be understood that the phraseology or terminology employed herein is for the purpose of description and not of limitation. Therefore, while the embodiments herein have been described in terms of preferred embodiments, those skilled in the art will recognize that the embodiments herein can be practiced with modification within the spirit and scope of the embodiments as described herein. ,CLAIMS:We claim:
1. A method for dynamically synchronizing at least one data item between at least one first device paired with at least one second device, the method comprising:
identifying a change in at least one data item in at least one said first device, wherein each said data item is associated with at least one said second device;
dynamically creating at least one data set including said changed data item for each said second device associated with said at least one changed data item; and
transferring said at least one data set to at least one said second device prior to receiving a request for synchronization from at least one said second device.
2. The method of claim 1, wherein transferring said at least one data set to at least one said second device prior to receiving said request for synchronization from at least one said second device comprises:
determining whether a connection is available between at least one said first device and at least one said second device associated with said at least one changed data item; and
transferring said at least one data set to at least one said second device associated with said at least one changed data item in response to determining that said connection is available, wherein said at least one data set is instantly transferred to at least one said second device prior to receiving said request for synchronization from at least one said second device.
3. The method of claim 1, wherein transferring said at least one data set to at least one said second device prior to receiving said request for synchronization from at least one said second device comprises:
determining whether a connection is available between at least one said first device and at least one said second device associated with said at least one changed data item; and
updating said at least one data set in a data configuration module in response to determining that said connection is unavailable, wherein said data configuration module is configured to transfer said at least one data as it is when said connection is available and prior to receiving said request for synchronization from at least one said second device.
4. The method of claim 1, wherein dynamically creating said at least one data set including said changed data item for each said second device associated with said at least one changed data item comprises:
identifying at least one second device associated with said changed data item;
determining whether said changed data item is available in each said second device; and
dynamically creating said at least one data set including said changed data item for each said second device associated with said at least one changed data item, wherein said at least one data set is created separately for at least one said second device in response to determining that said changed data item is unavailable.
5. The method of claim 1, wherein said method further comprises:
receiving said at least one data set in said second device; and
dynamically updating at least one said data item in said second device using said at least one data set to synchronize with at least one said first device.
6. The method of claim 1, wherein said at least one data item in at least one said first device to be synchronized with said at least one data item in at least one said second device is determined based on a data item synchronization preference configured by at least one said second device using a graphical user interface.
7. A first device for dynamically synchronizing with at least one data item in at least one second device, the first comprising:
a controller module configured to identify a change in at least one data item in at least one said first device, wherein each said data item is associated with at least one said second device;
a data configuration module configured to dynamically create at least one data set including said changed data item for each said second device associated with said at least one changed data item; and
a communication module configured to transfer said at least one data set to at least one said second device prior to receiving a request for synchronization from at least one said second device.
8. The first device of claim 7, wherein said communication module configured to transfer said at least one data set to at least one said second device prior to receiving said request for synchronization from at least one said second device comprises:
determine whether a connection is available between at least one said first device and at least one said second device associated with said at least one changed data item; and
transfer said at least one data set to at least one said second device associated with said at least one changed data item in response to determining that said connection is available, wherein said at least one data set is instantly transferred to at least one said second device prior to receiving said request for synchronization from at least one said second device.
9. The first device of claim 7, wherein said communication module configured to transfer said at least one data set to at least one said second device prior to receiving said request for synchronization from at least one said second device comprises:
determine whether a connection is available between at least one said first device and at least one said second device associated with said at least one changed data item; and
update said at least one data set in said data configuration module in response to determining that said connection is unavailable, wherein said data configuration module is configured to transfer said at least one data as it is when said connection is available and prior to receiving said request for synchronization from at least one said second device.
10. The first device of claim 7, wherein said data configuration module configured to dynamically create said at least one data set including said changed data item for each said second device associated with said at least one changed data item comprises:
identify at least one second device associated with said changed data item using a data connection map module;
determine whether said changed data item is available in each said second device; and
dynamically create said at least one data set including said changed data item for each said second device associated with said at least one changed data item, wherein said at least one data set is created separately for at least one said second device in response to determining that said changed data item is unavailable.
11. The first device of claim 7, wherein at least one said second device comprises:
a communication module configured to receive said at least one data set in said second device; and
a data configuration module configured to dynamically update at least one said data item in said second device using said at least one data set to synchronize with at least one said first device.
12. The first device of claim 7, wherein said at least one data item in at least one said first device to be synchronized with said at least one data item in at least one said second device is determined based on a data item synchronization preference configured by at least one said second device using a graphical user interface.
13. A computer readable medium including a computer executable program code recorded on a computer readable non-transitory storage medium for dynamically synchronizing data between at least one first device and at least one second device, wherein said computer executable program code when executed causing the actions including:
identifying a change in at least one data item in at least one said first device, wherein each said data item is associated with at least one said second device;
dynamically creating at least one data set including said changed data item for each said second device associated with said at least one changed data item; and
transferring said at least one data set to at least one said second device prior to receiving a request for synchronization from at least one said second device.
14. The computer readable medium of claim 13, wherein transferring said at least one data set to at least one said second device prior to receiving said request for synchronization from at least one said second device comprises:
determining whether a connection is available between at least one said first device and at least one said second device associated with said at least one changed data item; and
transferring said at least one data set to at least one said second device associated with said at least one changed data item in response to determining that said connection is available, wherein said at least one data set is instantly transferred to at least one said second device prior to receiving said request for synchronization from at least one said second device.
15. The computer readable medium of claim 13, wherein transferring said at least one data set to at least one said second device prior to receiving said request for synchronization from at least one said second device comprises:
determining whether a connection is available between at least one said first device and at least one said second device associated with said at least one changed data item; and
updating said at least one data set in a data configuration module in response to determining that said connection is unavailable, wherein said data configuration module is configured to transfer said at least one data as it is when said connection is available and prior to receiving said request for synchronization from at least one said second device.
16. The computer readable medium of claim 13, wherein dynamically creating said at least one data set including said changed data item for each said second device associated with said at least one changed data item comprises:
identifying at least one second device associated with said changed data item;
determining whether said changed data item is available in each said second device; and
dynamically creating said at least one data set including said changed data item for each said second device associated with said at least one changed data item, wherein said at least one data set is created separately for at least one said second device in response to determining that said changed data item is unavailable.
17. The computer readable medium of claim 13, wherein said computer executable program code when executed causing the actions including:
receiving said at least one data set in said second device; and
dynamically updating at least one said data item in said second device using said at least one data set to synchronize with at least one said first device.
18. The computer readable medium of claim 13, wherein said at least one data item in at least one said first device to be synchronized with said at least one data item in at least one said second device is determined based on a data item synchronization preference configured by at least one said second device using a graphical user interface.
| # | Name | Date |
|---|---|---|
| 1 | Form 5.pdf | 2014-05-26 |
| 2 | Form 3.pdf | 2014-05-26 |
| 3 | Drawings.pdf | 2014-05-26 |
| 4 | 1381-del-2014-GPA-(29-05-2014).pdf | 2014-05-29 |
| 5 | 1381-del-2014-Correspondence-Others-(29-05-2014).pdf | 2014-05-29 |
| 6 | FORM 2.pdf | 2014-09-26 |
| 7 | Dsiclosure_40_IP_14_02_14_Drawings.pdf | 2014-09-26 |
| 8 | 1381-DEL-2014-Request For Certified Copy-Online(07-04-2015).pdf | 2015-04-07 |
| 9 | Letter for Issue of Priority Document-PS.pdf | 2015-04-08 |
| 10 | Letter for Issue of Priority Document-CS.pdf | 2015-04-08 |
| 11 | SEL_New POA_ipmetrix.pdf | 2015-04-16 |
| 12 | FORM 13-change of POA - Attroney.pdf | 2015-04-16 |
| 14 | FORM 2.pdf_4.pdf | 2015-05-26 |
| 15 | 1381-DEL-2014-FER.pdf | 2018-04-23 |
| 16 | 1381-DEL-2014-PETITION UNDER RULE 137 [10-10-2018(online)].pdf | 2018-10-10 |
| 17 | 1381-DEL-2014-PETITION UNDER RULE 137 [10-10-2018(online)]-1.pdf | 2018-10-10 |
| 18 | 1381-DEL-2014-MARKED COPIES OF AMENDEMENTS [10-10-2018(online)].pdf | 2018-10-10 |
| 19 | 1381-DEL-2014-FER_SER_REPLY [10-10-2018(online)].pdf | 2018-10-10 |
| 20 | 1381-DEL-2014-AMMENDED DOCUMENTS [10-10-2018(online)].pdf | 2018-10-10 |
| 21 | 1381-DEL-2014-Amendment Of Application Before Grant - Form 13 [10-10-2018(online)].pdf | 2018-10-10 |
| 22 | 1381-DEL-2014-PA [11-10-2019(online)].pdf | 2019-10-11 |
| 23 | 1381-DEL-2014-ASSIGNMENT DOCUMENTS [11-10-2019(online)].pdf | 2019-10-11 |
| 24 | 1381-DEL-2014-8(i)-Substitution-Change Of Applicant - Form 6 [11-10-2019(online)].pdf | 2019-10-11 |
| 25 | 1381-DEL-2014-Proof of Right (MANDATORY) [29-11-2019(online)].pdf | 2019-11-29 |
| 26 | 1381-DEL-2014-US(14)-HearingNotice-(HearingDate-09-10-2023).pdf | 2023-08-31 |
| 27 | 1381-DEL-2014-FORM-26 [04-10-2023(online)].pdf | 2023-10-04 |
| 28 | 1381-DEL-2014-Correspondence to notify the Controller [04-10-2023(online)].pdf | 2023-10-04 |
| 29 | 1381-DEL-2014-Written submissions and relevant documents [23-10-2023(online)].pdf | 2023-10-23 |
| 30 | 1381-DEL-2014-FORM 3 [23-10-2023(online)].pdf | 2023-10-23 |
| 31 | 1381-DEL-2014-Annexure [23-10-2023(online)].pdf | 2023-10-23 |
| 32 | 1381-DEL-2014-PatentCertificate26-10-2023.pdf | 2023-10-26 |
| 33 | 1381-DEL-2014-IntimationOfGrant26-10-2023.pdf | 2023-10-26 |
| 34 | 1381-DEL-2014-PROOF OF ALTERATION [17-01-2024(online)].pdf | 2024-01-17 |
| 1 | searchstrategy_1381del2014_20-04-2018.pdf |