Described embodiments relate generally to the field of mobile device communications, and more particularly, to a system and method for managing files on a mobile device that is intermittently connected to a data source via a wireless connection.
Mobile electronic devices, such as cellular telephones, smartphones, and other mobile Internet devices, have become useful tools for communicating, storing information, and running software applications. Smartphones, in particular, have come to offer advanced computing ability and connectivity. Smartphones incorporate the functions of a computer with a mobile cellular telephone, and can provide multiple ways to connect to the Internet.
Accordingly, mobile electronic devices are being increasingly used for important workplace data storage and manipulation. These devices are being used by employees in the field to capture, store, manipulate, and update data. For example, employees responsible for maintenance of everything from military aircraft to digital copiers must often be located away from central data repositories, yet still require access to customer and technical data. In addition to access, is also desirable for employees to be able to update data in the central data repositories from their mobile devices.
A problem arises, however, in synchronizing data between the mobile device and remote storage. Mobile devices may be used at any hour of any day, and it is important that data be updated on a remote storage in a timely manner. Additionally, mobile devices often do not maintain a constant data connection, which can prevent transmission of data at given times. Mobile devices also have limited processing power, so it is desirable to have a system that can universally monitor and update data used by multiple applications, without requiring that each application handle its own updating of the remote storage. Additionally, when handling information in sensitive fields such as those involving government contracts, it is desirable that data access be limited and secure. Accordingly, there is a need in the art for a solution for managing files on a mobile device that accounts for these inherent limitations of the mobile device.
The described embodiments overcome the above deficiencies by providing a system and method for updating data on an occasionally connected mobile wireless device. An exemplary embodiment includes a server comprising a server database and a module configured to receive a message that includes information related to a change in a file structure on a cloud database. The cloud database of the embodiment includes a cloud file structure, a change detection module configured to detect a change in the cloud file structure, and modules for transmitting and receiving messages to and from the server and a mobile device. The mobile device includes a mobile device file structure, a change detection module configured to detect a change in a file made by an application, and a module for transmitting and receiving messages to and from the cloud database without requiring that the application be running on the device at the time of the transmission. The file structure of the server database, the cloud file structure, and the mobile device file structure may include the same directory structure.
Another exemplary embodiment includes storing files in memory of a mobile device, changing a property of at least one file using an application of the mobile device, detecting a change in the property of the file on the mobile device, queuing a message with information regarding the change, detecting a wireless data connection and transmitting, via the wireless data connection, the message with the information regarding the change. The embodiment may further include receiving the files at a cloud database in a second location, modifying files in the cloud database, and transmitting the file to a server in a third location, where a file on a server database is updated. The embodiment does not require that the application that changes the property of the at least one file be running when the message with the information regarding the change is transmitted. Additionally, the files structure of the mobile device, the cloud database, and the server may include the same directory structure.
Another exemplary embodiment includes a non-transitory computer readable medium storing a program for updating files on a mobile device, the program comprising a detection module configured to detect a change in at least a file of a plurality of files on the mobile device, a message creation module configured to queue a message with information regarding the change, a wireless detection module configured to detect a wireless data connection, a transmission module configured to transmit, via the wireless data connection, the message with the information regarding the change when the wireless data connection is detected. The background module may be configured to detect the change and the transmission module may be configured to transmit the message even when an application that changes the file is not running on the device. The plurality of files on the mobile device may be organized with a directory structure that is the same as a directory structure on a server and/or a cloud database.
Another exemplary embodiment includes a mobile device comprising a computer memory storing a plurality of files, an application that causes a change in at least one of the plurality of files, a change detection module configured to detect the change in the at least one of the plurality files, a message creation module configured to create and queue a message notifying of the change, a network detection module configured to detect a network connection; and a transmitting module configured to transmit the message after the network connection is detected. The change detection module, message creation module, and transmitting module may be configured to detect the change, create and queue the message, detect the network connection, and transmit the message when the application is not running on the mobile device. The plurality of files in the computer memory of the mobile device may be organized with a directory structure that is the same as a directory structure on a server and/or a cloud database.
Embodiments described herein relate to a method and system of managing data on a mobile device that has an intermittent connection to the Internet. Embodiments include a main server with a server database, a cloud database, and a wireless mobile device. These components enable the maintenance and synchronization of files on all three systems. Embodiments also include a mobile device with an application that monitors changes to a file structure that is modified by other applications, and queues messages with information regarding the changes for transmission when the mobile device receives an Internet connection.
The server 101 is connected to a cloud database 103 via an Internet connection 110. The cloud database 103 can be located anywhere that is connected to the Internet 100 and is capable of communicating with the server 101. The cloud database 103 contains data storage and can replicate part or all of the information on the server 101. To conserve resources, the cloud database 103 may only replicate necessary files from the server 101, and may be limited to storing only the files that are to be transferred between the server 101 and the mobile devices 104.
The server 101 and the cloud database 103 may have different hours of operation. For example, the server 101 may have a one hundred percent or near one hundred percent uptime, while the database 111 (shown in
The remote database communicates, via an Internet connection 110, to a plurality of mobile devices 104. The mobile devices 104 contain files that can be accessed or modified, and information regarding modification to the files is transmitted to the cloud database 103 via the Internet connection 110 when the Internet connection 110 is available. After the messages are received at the cloud database 103, the cloud database 103 transmits the information regarding the modification to the server 101 when the Internet connection 110 to the server 101 is available. Similarly, information regarding changes at the server 101 can be transmitted to the cloud database 103 and then from the cloud database 103 to the mobile devices 104.
Transmission of files may be accomplished by storing, on the cloud database 103, a folder in the file structure that is assigned to each individual mobile device. Within that folder, a first subfolder is created for information received from the mobile device 104 destined for the server 101 and second subfolder is created for information sent from the server 101 destined for the mobile device 104. The mobile device 104 periodically transmits any information destined for the server 101 to the first subfolder, and receives information from the second subfolder. Similarly, the server 101 periodically transmits any information destined for the mobile device 104 to the second subfolder, and receives information from the first subfolder.
The server database 111 can be a single computer or multiple computers forming a distributed database storing and/or replicating information across the multiple computers. The server database 111 contains data that includes at least copies of the files that will be manipulated on a mobile device 104, but may also contain other, unrelated files for other functions of the server 101. The controller service 112 is used to monitor and update the database 111. The controller service 112 can modify files of the database 111 based on incoming communications placed in the server inbox 114 by the communications module 116. The controller service 112 can also detect changes in the data 111 and, where appropriate, place messages with information regarding those changes in an outbox folder 115.
The server communications module 116 monitors the outbox folder 115 and, when it detects a message in the outbox folder 115, transmits the message over the Internet 100 via an Internet connection 110. When the server communications module 116 receives a transmission from the cloud database 103, the information is placed in the inbox 114.
The server communications module 116 communicates with a cloud database 103 over the Internet 100 via an Internet connection 110. The cloud database 103 may be a single computer or multiple computers forming a distributed database storing and/or replicating information across multiple computers, and may be located in a geographically remote location from the server 101.
The cloud database 103 contains data including copies of at least some of the files of the server database 111. For example, the cloud database 103 includes a user data folder 121 that corresponds to each user of a mobile device, and the user data folder 121 includes a server folder 125 and a device folder 126. A cloud communications module 123 places messages received from the server 101 and intended to update the mobile device 104 in the device folder 126. The cloud communications module 123 places messages received from the mobile device 104 and intended to update the server 101 in the server folder 125.
When a connection between the server 101 and the cloud communications module 123 is established, the server 101 transmits all information in the outbox 115 to the cloud communications module 123, and the cloud communications module 123 transmits all data in the server folder 125 to the server 101.
The server folder 125 on the cloud database 103 and the inbox 114 and outbox 115 of the server 101 may, for simplicity of implementation and operation, have a similar or identical file structure. That is, each storage unit may contain a folder designating a particular mobile device 104, and then a file structure for files within that mobile device. Accordingly, changes can be copied over from the server 101 to the cloud database 103, replacing the files on the existing cloud database 103 folder, and vice versa.
The communications module 123 of the cloud database 103 also transmits information to and from the mobile device 104 over the Internet 100 via an Internet connection 110. The mobile device includes a file storage 107, at least one application 105 that manipulates data in the file storage, a continuously running background application 106 that detects changes in certain files of the file storage 107 and creates and queues messages containing information related to the changes, and a communications module 133 that detects an available wireless data connection and transmits the messages when the connection is available. Since a message can be queued by the background application 106 and transmitted by the communications module 133, both of which can be executed separately from the application 105, it is not necessary for the application 106 to be running to transmit the change.
The mobile device 104 may be any electronic wireless device that receives, stores, and transmits information over a data connection. The mobile device 104 may be, for example, a cellular telephone such as the Apple iPhone (running the iOS operating system), the Motorola Droid (running the Google Android operation system), or a BlackBerry device (running the BlackBerry OS). The mobile device transmits information over the Internet using a cellular connection, such as a 3G, 4G, EVDO, or CDMA connection, or using any other wireless transmission method, such as a wireless local area network using the IEEE 802.11 standard that is connected to the Internet.
The file storage 107 of the mobile device 104 stores files used by the mobile device. The file storage 107 includes files that are used and modified by at least one application 105. The application 105 may be any application, such as a word processing application or a proprietary application developed for a specific business purpose. For example, the application 105 may be designed to allow an employee to enter timesheets, which can be sent to the server 101 for processing, and returned as confirmation copies to the mobile device. The application 105 may also be used for a mobile device user to fill out survey information and have the information sent to the server 101 or take training quizzes and have the answers sent to the server 101. In these implementations, the sever 101 can perform processing on the received information and return additional information, such as a confirmation for a survey or a quiz score for training quizzes.
The mobile device 104 also includes a second application that is a background application 106. While the application 105 may be executed only when a user selects the application, the background application 106 can run at all times the device is in operation. The background application 106 monitors the file storage 107 for any changes in the files or some sub-set of files that have been selected for monitoring. When a change detection module of the background application 106 detects a change in one of the files of the file storage 107 that have been selected for monitoring, a message creation module of the background application 106 queues a message containing information regarding the change in the file, and provides the message to a transmission module 133.
The transmission module 133 of the mobile device is configured to queue messages, and to detect whether there is a wireless data connection at the mobile device 104. If there is no connection, the messages remain queued. Once there is a wireless data connection, the messages are transmitted to the cloud database 103, where the cloud communications module 123 places the message in the server folder 125. Then, the next time there is a connection between the server 101 and the cloud database 103, the message in the server folder 125 is transmitted via the Internet connection 110 to the server 101. The server communications service 116 places the message in the inbox 114, and the controller 112 updates the database 111 according to the information in the message. Thus, the changes made on the mobile device 104 are transmitted via the cloud database 103 to the server 101 when the mobile device 104 receives a data connection after the change. The transmission of these changes do not require that the application 105 be running at the time of the transmission.
The mobile device 104 thus synchronizes files in a file storage 107 whenever an Internet connection 110 is available. When no connection is available, messages containing information regarding changes to files are queued by the background application 106 and the communications module 133. Though the background application 106 and communications module 133 are illustrated in
The background application 106 can detect changes in files that are accessed and modified by multiple applications 105. Accordingly, the ability to synchronize changes with a server database 101 does not need to be integrated with or handled by each individual application 105, but can instead be handled universally by the background application 106 monitoring the file storage 107.
Changes made to data in the database 111 at the server 101 can also be transmitted to the mobile device 104. When a change to data in the database 111 is detected by the controller 112 of server 101, a message with information regarding the change is placed in the outbox 115. The server communications module 116 detects the message in the outbox 115, and transmits a message with information regarding the change to the communications module 123 of the cloud database 103. At the cloud database 103, the message is placed in the device folder 126 of the user data folder 121 that corresponds to the affected device. The correct user data folder 121 may be selected based on information in the message, metadata information, or information in a file contained in the message. Then, when the communications module 123 is next connected to the mobile device 104, the message is transmitted from the cloud database 103 to the mobile device 104. When the mobile communications module 133 of the mobile device 104 receives the message, the background application 106 updates the file storage 107 based on the information contained in the message. If multiple messages are received at the server 101 or at the mobile device 104, they are processed based on a timestamp identifying the time that the file was initially changed on the server 101 or the mobile device. 104.
Optionally, the background application 106 may present a message to a user notifying of the update, or may provide a notification to the Application 105 notifying of a change when a change is received from the server 101. Also optionally, the messages may be sent using a secure protocol. For example, transmissions between the server 101 and the cloud database 103 may be made via secure file transport protocol (SFTP), and the transmissions between the cloud and the device may be made via hypertext transfer protocol secure (HTTPS).
The messages transmitted via the system may be the files that are modified by the mobile device 104 or the server 101. The messages may also be XML files that contain data collected from the server 101 or the mobile device 104, such as timesheet data, survey answers, or quiz answers. In other implementations, the messages are text messages, video file recordings, or word processing documents that contain information collected at the server 101 or mobile device 104.
In addition to the exchange of changes to files, the system may be configured to perform distributed processing of data. In other words, the server 101 may be configured to receive data from the mobile device 104, perform processing on data received and return the results of the processing to the outbox 115. In this manner, data received from the mobile device 104 is processed, and then returned to the mobile device 104. For example, a user can submit timesheet data via the mobile device 104, and the timesheet data can be transmitted, via the cloud database 103, to the server 101. The server can process the timesheet and transmit a error or success message back to the device so that the user can fix any items necessary.
At the server 101, the server communications module 116 places the incoming messages in the inbox 114. This embodiment has an advantage of being simpler and potentially less expensive to implement, but it does not have the advantages of the cloud database, which can improve uptime and provide redundancy and scalability. Additionally, this embodiment need not necessarily reply on an Internet connection to collect data, as the information could be transmitted directly to the server 101 via a local area network, a Bluetooth connection, or other data link.
If a change is detected at step 402, the procedure proceeds to step 404. At step 404, a new message is created. The message includes information regarding the change in the file status of the files or the file folder that is being monitored. The message may be an XML file including information on the change and may comprise the file that has been changed. At step 405, the message is placed in a queue. The queue may include other messages regarding changes in file status, or may include other, unrelated, messages queued for sending from the mobile device 104.
At step 406, when messages have been placed in a queue, a wireless detection module of the mobile device checks to determine if there is an available wireless data connection from the mobile device. If a data connection is unavailable at step 407, the procedure waits a certain period of time, number of processor clock cycles, or a detected change in physical location of the mobile device at step 408 before returning to step 406 to again check for an available wireless data connection. If a wireless data connection is detected at step 407, the message is transmitted at step 409.
Though
The
Both the mobile device 104 and the database 103 can use the same procedure for transmitting updates when a data connection is detected.
The processes and devices in the above description and drawings demonstrate examples of methods and devices of many that could be used and produced to achieve the objects, features, and advantages of embodiments described herein. While the invention has been described in detail and with reference to specific embodiments thereof, it would be apparent to those skilled in the art that various changes, arrangements and modifications may be applied therein without departing from the spirit and scope of the invention. Thus, the embodiments are not to be seen as limited by the foregoing description of the embodiments, but only limited by the appended claims.