Abstract:
The invention provides for a cloud-based solution that saves all the data in the cloud storage. The peer devices synchronize data among each other independent of the operating system since the data is synced via web services. Synchronization of data among peer devices is possible even when cloud service is unavailable via a router, Wi-Fi, Bluetooth, NFC or any other mechanism. The peer devices form a hierarchical structure, which designates a master, and the master communicates with the cloud-based service to synchronize data. The master then synchronizes data with the other peer devices in the hierarchy. New devices can be added to the peer devices and can join the hierarchy.

Description:
CROSS REFERENCE TO RELATED APPLICATION 
       [0001]    This application claims priority to U.S. Provisional Patent Application 61/846,710 filed on Jul. 16, 2013, entitled “System and Method for Synchronizing Data Between Communication Devices in a Networked Environment without a Central Server.” Dispute Resolution and Simulated Trials in a Virtual Setting”, the entirety of which is incorporated herein. 
     
    
     BACKGROUND OF THE INVENTION 
       [0002]    1. Field of the Invention 
         [0003]    The present invention relates generally to the field of network communication. More specifically to synchronizing data shared among peer devices via wired or wireless networks without the need of a dedicated central server. 
         [0004]    2. Description of the Related Art 
         [0005]    Networked devices often need to communicate with each other to share information. For example, the need often arises in the communication between client and server applications such as email applications. A typical email system comprises a server component (e.g., Microsoft Exchange Server) and a client component (e.g., Microsoft Outlook or Microsoft Outlook Express). These components are typically software applications that are configured to execute on computing devices (e.g., servers, PCs, laptops, tablets, and smartphones). 
         [0006]    However, existing methods of communication between network devices are unsatisfactory because they require various servers and PCs at various facilities, and because a loss in connectivity between a client and server application disables data synchronization with computing devices. 
         [0007]    Additionally, existing systems often employ dedicated data back-up devices connected to the network or used cloud based backup and data synchronization solutions. However, physical back-up local systems require additional equipment at significant expense. Cloud based data synchronization systems require less hardware at the local level but require a constant communication connection to remain effective. 
         [0008]    Therefore, what is needed is a system which can provide data synchronization among networked devices already on the network allowing for continued data synchronization when communication with a cloud based system is lost while minimizing the need for dedicated local back-up systems. 
       SUMMARY OF THE INVENTION 
       [0009]    The present invention provides a system, method, and solution for data synchronization among peer devices on a network and master device redundancy within the peer network. The system may be employed in combination with a cloud-based solution which also synchronizes and saves all data in a cloud storage system. The peer devices synchronize data among each other independent of the operating system since the data is synced via web services. The synchronization of data among peer devices may be wired or wireless via a router, Wi-Fi, Bluetooth, NFC or any other mechanism which enables data synchronization possible even when cloud service is unavailable. 
         [0010]    The peer devices may be configured in a hierarchical structure, which designates a master, and the master communicates with the cloud-based service to synchronize data. The master then synchronizes data with the other peer devices in the hierarchy. New devices can be added to the peer devices and can join the hierarchy. Should the master device fail, the system employs various methods of identifying and configuring a peer device already in the system to take over as the master device. Priority of the peer devices in the hierarchical structure to create a new master can be established either manually or the system can be configured to decide on the priority through analysis. 
         [0011]    The present invention also provides a system for synchronizing data across a network of devices comprising: a plurality of processor based devices within a computer network; a plurality of memory devices associated with a plurality of the processor based devices, wherein the memory devices store a plurality of data; at least one software application resident on a plurality of the processor based devices which provides instructions for transmitting data to one or more of the other devices, and receiving and storing data from at least one of the other processor based devices on the associated memory device, wherein the software application provides information on which of the processor based devices is identified as a master device, and instructions to identify a new master device in the event communication with the master device is interrupted. 
         [0012]    In combination, the system of the present invention provides a peer device network which synchronizes data within the local network and synchronizes data with a cloud based schema. Thereby, the system can utilize a cloud-based solution whereby all the data is saved in the cloud storage. However, in the event the connection to the cloud solution falter, the system can continue to maintain full data synchronization amongst peer devices. Data can be synced between the peer devices independent of the operating system via web services. The flexibility of such a system enables constant data synchronization with the ability to add new devices to the set of peer devices and these new devices will join the hierarchical structure. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0013]    Various exemplary embodiments of this invention will be described in detail, wherein like reference numerals refer to identical or similar components or steps, with reference to the following figures, wherein: 
           [0014]      FIG. 1  depicts a system diagram of an exemplary system that enables data synchronization between a plurality of devices and a cloud-based web service without the need for a central server in accordance with this invention. 
           [0015]      FIG. 2  depicts a system diagram of an exemplary system that enables data synchronization between a plurality of devices with a cloud-based web service in communication with the master device 
           [0016]      FIG. 3  depicts a system diagram of an exemplary embodiment that enables one of a plurality of devices to become the master device if the original master device fails. 
           [0017]      FIG. 4  is a flow chart diagram showing the method of identifying and creating the new master device upon failure of the original master device. 
           [0018]      FIG. 5  depicts a system diagram of an exemplary system that enables data synchronization between a plurality of devices without a cloud-based web service 
       
    
    
     DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS 
       [0019]    Particular embodiments of the present invention will now be described in greater detail with reference to the figures. Like reference numerals apply to similar parts throughout the several views. 
         [0020]    The embodiments presented here are not meant to be exhaustive. Other embodiments using the concepts introduced in the present invention are possible. In addition, the components in these embodiments may be implemented in a variety of different ways. 
         [0021]    As see in  FIG. 1 , the present invention can provide a fully synchronized system  100  where each device  102 ,  104 ,  106 ,  108  is connected through the internet  120  to a cloud based system  130  for data synchronization, data analysis, and real time decision making. The devices  102 ,  104 ,  106 ,  108  are within a local network  110  and each device  102 ,  104 ,  106 ,  108  can communicate with the other devices via communication paths  103 ,  105 ,  107 . The communication may be through a router, Wi-Fi, Bluetooth, NFC, any other mechanism, or a combination of any such paths. Devices  102 ,  104 ,  106 ,  108  can be a mix of laptops  106 , tablets  102 , PCs  108 , Android and/or iOS devices  104 . The devices  102 ,  104 ,  106 ,  108  within the network  110  are also connected to the internet  120  via communication paths  112 ,  114 ,  116 , and  118 . The communication may be through a router, Wi-Fi, Bluetooth, NFC, any other mechanism, or a combination of any such paths. The cloud based system  130  is also connected to the internet  120  for communication with the network  110  or devices  102 ,  104 ,  106 ,  108 . The cloud based system  130  may consist of one or many servers  132  which may save data across a multitude of internal or external databases or memory  134 ,  136 . 
         [0022]    In traditional or known systems, the devices  102 ,  104 ,  106 ,  108  within the network  110  can communicate locally with each other but they do not synchronize data among each other. In such traditional systems, the devices  102 ,  104 ,  106 ,  108  can be configured to communicate with the cloud  130  to synchronize data with the cloud but when the cloud  130  is unavailable, the network and devices  102 ,  104 ,  106 ,  108  lose their synchronization capability. 
         [0023]    However, the present invention improves such traditional systems by providing a system  100  which enables the devices  102 ,  104 ,  106 ,  108  to synchronize data amongst the peer devices  102 ,  104 ,  106 ,  108  within the network  110 . The synchronous replication, which is accomplished by software or computer programs or instructions resident on the devices  102 ,  104 ,  106 ,  108  writes data to the primary device (the device saving or storing data) in addition to a secondary device at the same time so that the data remains current between devices  102 ,  104 ,  106 ,  108 . The system can be configured, as depicted in  FIG. 1 , where each device  102 ,  104 ,  106 ,  108  can communicate with each other, sync with each other, and sync with the cloud  130 . The problem with contact syncing with a network of devices  102 ,  104 ,  106 ,  108  is the sync process can negatively impact the performance of the devices  102 ,  104 ,  106 ,  108 . Thus, there is a desire to enable synchronization amongst devices  102 ,  104 ,  106 ,  108  and the cloud with a minimal impact on device  102 ,  104 ,  106 ,  108  operation. 
         [0024]    In one embodiment, as seen in  FIG. 1 , the devices  102 ,  104 ,  106 ,  108  can each communicate directly with the cloud based system  130 . The system can be implemented such that each system or device  102 ,  104 ,  106 ,  108  primarily syncs with the cloud based system  130  to limit the sync process to only one path. In such an embodiment, the system applications, computer programs, and related instructions still maintain the rules and logs around which devices act as synchronized devices for the data amongst devices. Therefore, in the event the cloud based system  130  is unavailable, the devices  102 ,  104 ,  106 ,  108  within local network  110  can immediately default to a sync from peer to peer methodology using devices  102 ,  104 ,  106 ,  108 . Since it is likely that a device  102 ,  104 ,  106 ,  108  within the network  110  will have its data synced across more than one device the applications may also provide the sequence of data synchronization amongst peer devices  102 ,  104 ,  106 ,  108 . Such a system allows the devices  102 ,  104 ,  106 ,  108  to remain synced at the cloud and locally but minimize performance loss by having each device  102 ,  104 ,  106 ,  108  primarily synced with the cloud with the peer device synchronization as a back-up. The problem with such a system is that each device  102 ,  104 ,  106 ,  108  may be in and out of communication with the cloud system  130  causing the system and devices  102 ,  104 ,  106 ,  108  to jump intermittently between a cloud synchronization or a local peer synchronization. However, the system of the present invention can be configured to perform sync routines amongst peer devices at set times or when resource demand for all or some of the devices  102 ,  104 ,  106 ,  108  is determined to be low. 
         [0025]    In an additional embodiment, as seen in  FIG. 2 , the present invention enables a hierarchal based synchronization system  200  with a master device  102  and the cloud system  130  which provides or allows for designed structure on synchronization schema. Thus, the peer devices  104 ,  106 ,  108  are primarily being synced from only one device, the master device  102 , which controls the data sync among all peer devices  104 ,  106 ,  108  and the cloud system  130 . The system  200  provides a master device  102  which is connected to or in communication with the cloud based system  130  for data synchronization via the internet  120 . The master device  102 , and the devices  104 ,  106 ,  108  are within a network  210  and each device  102 ,  104 ,  106 ,  108  can communicate and synchronize data with the other devices in the network  210  via communication paths  103 ,  105 ,  107 . The communication may be through a router, Wi-Fi, Bluetooth, NFC, any other mechanism, or a combination of any such paths. Devices  102 ,  104 ,  106 ,  108  could be a mix of laptops, tablets, PCs, Android and/or iOS devices. In this embodiment, only the master device  102  is within the network  210  and is configured to communicate with and synchronize data with the cloud system  130 . The communication may be through a router, Wi-Fi, Bluetooth, NFC, any other mechanism, or a combination of any such paths. The master device  102  communicates individually with the cloud system  130  to synchronize data. The master device  102  also communicates locally with the devices  104 ,  106 , and  108 , and synchronizes data among the devices  104 ,  106 ,  108 . 
         [0026]    In  FIG. 3 , we have a system  300  where the master device  102  from  FIG. 2  has failed or lost connectivity with the cloud system  130  or lost connectivity with the secondary devices  104 ,  106 ,  108 . The secondary devices  104 ,  106 , and  108  are within network  310  and each device  104 ,  106 ,  108  can communicate and synchronize data with the other devices via communication paths  103 ,  105 , and  107 . The communication may be through a router, Wi-Fi, Bluetooth, NFC, any other mechanism, or a combination of any such paths. Devices  102 ,  104 ,  106 ,  108  could be a mix of laptops, tablets PCs, Android and/or iOS devices. Devices  104 ,  106 ,  108  are connected to the internet  120  via communication paths  114 ,  116 , and  118 . The communication may be through a router, Wi-Fi, Bluetooth, NFC, any other mechanism, or a combination of any such paths. The cloud based system  130  is also connected to the internet  120  for communication with the network  310  or devices  104 ,  106 ,  108 . 
         [0027]    However, as described above, if the master device  102  has failed or lost connectivity or communication with the cloud system  130  another device  104 ,  106 ,  108  will need to become the new master device. The priority of devices  104 ,  106 ,  108  creates a new master device either manually or automatically. By way of example, if the new master device is  108  it now takes over primary communication and synchronization with the cloud system  130 . In addition, the new master device  108  also communicates locally with devices  104  and  106  and synchronizes data among the network  310  devices  104 ,  106 . 
         [0028]      FIG. 4  provides a flowchart of the method  400  for determining the priority of devices to become the new master device in the event of failure of the original master device. Such determination can be established either manually or automatically. The devices maintain a “state configuration” and are aware of each other. At  402  the system is functioning as designed without incident. At  403  an inquiry is made as to the state of the master device. If the master has not failed, the master continues data synchronization ( 403 ) with the cloud as well as with the other devices in the network, and there is no further inquiry ( 418 ). However, if the master has failed, the system determines in step  405  whether an administrator has manually set a new master hierarchy ( 405 ). 
         [0029]    The administrator can manually set a new master from the administration graphical user interface of the present invention. The hierarchy can be established based on many factors including which peer device most closely matches the failed master in terms of hardware components, software, configuration, operating system, or which of the devices can be converted to a new master in the shortest period of time, taking into account factors such as the percentage of master files already synced, RAM and processing power, or similar criteria. If the administrator has manually set a new master, then in step  416  the new master is updated within the system and the through a synchronized program or instruction install and data update that device is selected to be the new master. The new master can continue data synchronization with the cloud system as well as with the other devices in the network. Once the new master is updated and synchronization is ongoing the process of determining the new master is terminated in step  418 . 
         [0030]    In the event the administrator did not manually set the new master hierarchy (from step  405 ), the system in step  406  provides for an automatic selection of a new master by first analyzing the peer devices. The analysis is based on various criteria  407  the system automatically utilizes to analyze the peer devices. The criteria can be established by the administrator or can be determined using the software program or code of the analyzer provided with the system. Criteria may include analyzing specifications like age of the device, hardware components, software, configuration, operating system, or which of the devices can be converted to a new master in the shortest period of time, taking into account factors such as the percentage of master files already synced, RAM and processing power, or similar criteria. Priority can be established by an examination of the type of peer devices, proximity of the peer devices, computing capacity of the devices or other parameters that be configured at the time of the system design. 
         [0031]    After the peer device analysis (steps  406  and  407 ), the system determines a new master (step  410 ) based on the analysis conducted at step  406  using the criteria from  407 . The device selected as new master from step  410  is then updated to act as the new master in step  416 . The new master synchronizes data with the cloud system and then synchronizes data with the other peer devices. Once the new master is updated and synchronization is ongoing the new master determination process is terminated in step  418 . 
         [0032]    In addition, the system  500  could be deployed without cloud synchronization where each device  102 ,  104 ,  106 ,  108  is connected through a local area network  510 . The devices  102 ,  104 ,  106 ,  108  can communicate with the other devices via communication paths  103 ,  105 ,  107 . The local area network  510  includes connecting the devices  102 ,  104 ,  106 ,  108  through one or more communication paths  112 ,  114 ,  116 ,  118  which may be through a router, Wi-Fi, Bluetooth, NFC, any other device ( 505 ) , or a combination of any such paths and devices. The devices  102 ,  104 ,  106 ,  108  can be a mix of laptops  106 , tablets  102 , PCs  108 , Android and/or iOS devices  104 . The devices  102 ,  104 ,  106 ,  108  would each have the relevant software code installed and operational and would control the devices synchronization with the other devices within the network  510 . The devices  102 ,  104 ,  106 ,  108  would also employ the same master or secondary protocol as previously discussed. 
         [0033]    The benefits of the system and embodiments as described herein allow for easy synchronization and utilization of the devices already within the network. It allows for data backup and redundancy without the need to purchase external drives, or pay for cloud based systems. Further, it allows for easy replication of relevant data as new devices are added to the system. The data within the system can be encrypted and spread across multiple computers or devices providing additional security measures. 
         [0034]    The examples provided herein are merely for the purpose of explanation and are in no way to be construed as limiting of the present method and product disclosed herein. While the invention has been described with reference to various embodiments, it is understood that the words which have been used herein are words of description and illustration, rather than words of limitation. Further, although the invention has been described herein with reference to particular means, materials, and embodiments, the invention is not intended to be limited to the particulars disclosed herein; rather, the invention expands to all functionally equivalent structures, methods and uses, such as are within the scope of the appended claims. Those skilled in the art, having the benefit of the teachings of this specification, may affect numerous modifications thereto and changes may be made without departing from the scope and spirit of the invention. 
         [0035]    It will be recognized by those skilled in the art that changes or modifications may be made to the above described embodiment without departing from the broad inventive concepts of the invention. It is understood therefore that the invention is not limited to the particular embodiment which is described, but is intended to cover all modifications and changes within the scope and spirit of the invention.