Microsoft – Leighton A. Ridgard, Robert E. Garner, David L. Multer, Liam J. Stannard, Donald W. Cash, Richard M. Onyon, Brandon Huff, Jason Burns, Bryan Taketa, Synchronoss Technologies Inc

Abstract for “Mobile data transfer system and synchronization”

The invention deals with the transference between two systems regardless of how the data is stored on each system. It also provides a method for efficiently communicating data between devices and systems. The invention also relates to a system that allows users to give other people a personalized representation of themselves in a network environment such as a cell phone network and the backup, restoration, and recovery of data stored in a wireless cellphone, in particular a mobile phone with data storage capabilities.

Background for “Mobile data transfer system and synchronization”

“1. “1.

“The invention concerns the transference between two systems without regard to the form in which data is kept on each system, and in particular the provision of an efficient way to communicate data between devices and systems.”

“The invention also relates to a system that allows users to provide other people with a personalized representation. This could be used in a network environment such as a cell phone network.

“The invention concerns the restoration and backup of data stored on a wireless phone, in particular one with data storage capabilities.”

“2. “2.

“The rise of computing-related devices is not limited to personal computers and workstations. Both in terms of type and format, the number of personal computing devices is on the rise. These small, handheld computers can store a variety of personal, contact, document, and other information. They are also sophisticated enough to allow users to send e-mails and fax to other wireless devices. Advanced cellular phones have enough memory and processing power for text messaging, web surfing, and storage of contact information. The need to transfer information between these devices has increased significantly with their increasing sophistication.”

With so many different types of devices on the market, it has become more difficult to keep information synchronized between different devices. If an individual has a calendar on a personal computer at work, they would like the same information to be available on a cellular phone, hand held organizer, or home computer. A notebook computer may also be required to sync file data, such as presentations and working documents, between the notebook computer and the office computer.

“Synchronizing documents and personal data managers between devices has been done through direct connections, but not between applications, such as personal information managers in different devices and personal information mangers in other.

“One of the components of these synchronization processes is that the synchronization process should be able delineate when changes are made in specific databases and make a decision on whether to replace the changed fields. This is usually measured as a change in one database and no-changes in another. Sometimes, syncs will show that both databases have changed. The sync operation must decide which of the two changes has been made. During the sync, replace one. This determinant allows the user to resolve conflicts by providing some methods.

Technically, syncronization is achieved by copying complete records between systems. A user will need to map data fields between applications and indicate which fields correspond to which field on a different device. Developers who are able to support multiple platforms of applications more effectively will require less mapping.

“In most cases, data to be synced is in text format, such as records of addresses and contact information or notes. Data that needs to be synchronized may be in binary format, such as executable files or specific documents written by word processors. The synchronization routine determines if the documents have changed and then uses a time-based representation. It replaces the older file with a newer one to achieve synchronization as long as it has not been modified. This is the same model as in the familiar “Briefcase”? Microsoft Windows-based systems use this function. The synchronization routine offers conflict resolution options to users if the files have been modified.

“These synchronization schemes can be quite inefficient as they require the full bandwidth of the binary or document to be transferred over the synchronization link. The synchronization programs also require interaction from the user at certain levels to map fields between programs.

“One of the problems in providing synchronization among different computing devices is the fact that the platforms and applications are quite diverse.”

“All synchronization programs, however, require some functions to be usable for widespread use. Synchronization programs should be compatible with popular apps on different platforms. Sync apps must resolve conflicts when the same information is modified on different devices during synchronization events. They must allow synchronization of all data formats, including text data (e-mails and contacts), calendar information, memos and other documents, as well as binary data (documents or programs in specific formats).

Applications that efficiently sync data between different types of devices can offer advantages beyond the synchronization of individual personal information between, say, a Palm or personal information manager device like a Palm. both a personal computer and a computing device. These same goals are used to develop data transfer between personal data management (PIM), devices and desktop systems. They also lend themselves to the development of applications that require data transfer between different types of devices on different platforms. These objectives include speed and low bandwidth as well as accuracy and platform independence.

“For instance, e-mail systems currently use a system that is similar to the synchronization techniques used for different devices. This means that a complete message or file can be transferred between different systems. The entire message text is returned to the sender when a user replies in an e mail. This means that the sender has two copies the original e-mail message. If an attachment to an e-mail is modified or returned, the same applies. The text that is identical between the two systems is basically duplicated on the originator?s system.

With the addition of features such as calendars, addresses books, and games, wireless telephones have become more powerful. Many phones now have microprocessors, operating system and memory that allow developers to create limited applications. Phones can now play multimedia files such as MP3 files, polyphonic ringtones and QuickTime movies. They also display pictures that have been downloaded or saved to the phone.

Wireless phones can access the Internet via a Wireless Access Protocol browser and send SMS messages. Wireless telephone users connect via wireless networks to a server that allows them to access WAP-enabled content. Many providers allow users to access their email account via the WAP browser and/or send short message service (SMS), messages directly to their phone. SMS allows users to send short text messages directly from their phone. Although messages can be saved to the phone, the amount of storage available is very limited. There is no way to handle attachments via SMS.

“Phones have been able to use data connections to manipulate data over the carrier’s network, more recently. Users can, for example, download multimedia content to their phones, download specific apps and send and receive stronger messaging. Combining devices with wireless phones, like Research In Motion’s Blackberry, gives users enhanced messaging capabilities and better attachment handling. These devices can be used to send and receive messages over wireless networks.

“The majority of phones have limited native address and contact information storage and SMS messaging capabilities. Some phones allow you to associate specific ringtones and images with other users in your phone’s contact book. Many wireless phones have caller ID that displays the number of an incoming phone caller. Phones with multiple ringtone and imaging capabilities can display the number of an incoming caller and play a designated ringtone (if requested).

“With so many different types of wireless phones, and other communication devices, it would be helpful for a user to create a personal representation of themselves on another user’s phone. This would allow the user to identify himself to other users.”

“Wireless communication devices such as mobile phones have evolved beyond being merely communication tools. Many phones have features that allow for personal productivity, games, and digital cameras. Personal productivity apps may also include data storage to store the owner’s personal information. Phones can now run applications specifically designed for phones-based runtime environments.

“All personal information stored and operated on by an individual can be included in that user’s ‘personal information space. A?personal space is used in this context. A data store of customized information created by and for the user. It contains both public and private data that the user has entered into their personal space. The content that is unique to an individual user and under their control, which generally includes?public?, is what defines the personal information space. Events and data are those that are generally known to others and those that are?private? Events and data that are not intended for sharing with others. Each of these criteria does not have to be met, but they do define the characteristics of the term “personal information space”. As that term is used in this document. This information can include electronic files such as text files, word processing files and databases. It also includes contact information from personal information managers, PDAs, and cellular phones.

Users face the problem of having to type in information on a phone. Once entered, it is difficult to retrieve. The phone can be damaged or lost, which means that the effort and time spent entering the information is lost. Many phones include software and data connection cables that allow users to access and back up information on the phone by connecting it to a computer. These applications can be customized to work directly with your phone. This means that the application program is designed to retrieve data from the phone and then store it on the personal computer. Some third-party vendors also attempted to create universal synchronization systems that can interact with phones via the physical cable.

The problem with physical connections is that users must be conscious of the need to connect their phone to the computer regularly in order to ensure accurate backups. The computer itself can be volatile. Hardware and software failures can cause data to be lost or damaged.

Phone users want more functionality, but they also want the apps to be easy to use. Even computer-based utility apps, such as data backup applications, can be useful if they run automatically without user intervention. A wireless phone user could quickly and easily back up their personal data stored on the phone using an application. This would have great technical and commercial value.

The invention consists of a difference-information receiver, transmitter, and synchronizer that work together in a system to update data in the device using data from other systems or to provide data to other systems for updating.

“The invention, in one aspect, comprises a system within a device that has at least one application destination with a format. The system comprises a difference engine that receives difference information in response to a change to at least one of the application data destinations; and an interface that applies said difference information to said data destination.

“The difference engine could include a data store that contains application data in a state before it receives said difference information; and a Delta engine that receives difference information and compares said data store to create change information. The difference information could also include a data file that contains change transactions and is combined with data from the data store.

“In another aspect, the method could include a method of updating data files within a system. The steps may include: receiving information about a subset data files that has changed; and applying the information to said subset. This step may include: receiving a change log detailing changes made to data files on another computer system; applying the changes to a data storage containing identical data to those files in order to generate new data.

“In an additional unique aspect, the invention may include an application in a system with a data source in source format. An application interface may be used to extract data from the data source. A difference engine receives said data and outputs difference information as a result of changes to the data source. An interface to the application may include a source format interface and a converter that maps said data from the source format into a universal format. The difference engine could also include a datastore that reflects a previous state of the data, and a delta generator that compares said data with said store in order to provide change transactions.

“In another aspect, the invention may include a method of updating a data source within a system. The steps may include extracting information from at most a subset, and then outputting information for the entire subset. Extracting could include determining whether any changes have been made in the system’s subset of sources; and creating a log listing changes made in another system’s subset.

“Another aspect of the invention is: An extraction routine to extract a first set difference information resulting in changes to the files; a differencing transmitter to transmit said first set to an output; an differencing receiver to receive a second set difference information from an input; and an reconstruction routine to apply the second set to the files.

“Another method of the invention is a method to update data files in a computer system. This method involves the following steps: receiving first change transactions for a selected subset data files; applying those change transactions to said subset data files. After a file is modified, generate second change transactions; and output said second change transactions as an output.

“In one embodiment, the invention includes a device engine that includes an application object; an object store; and delta module.”

The present invention is further described as a system and method that allows advanced identification information to create and be distributed to wireless communication devices such as mobile phones. Subscribers can create their own personas, which are collections of information that define them. Subscribers have the ability to publish their persona(s), which can be shared with friends and associates via mobile phones. They can also update other address books by updating their subscriber’s contact details. You can create different personas that will be presented to different users.

“In an embodiment, this invention is a system to provide personification information to wireless phone users.”

“In another embodiment, this invention is a method for identifying a subscriber to a wireless device. This method could include steps such as: creating a subscriber persona that includes information identifying a user; and showing at least a portion on a device whenever a call, or other type of contact, such as SMS, Push?To-Talk message email, voiceclip, voiceclip, etc. is received from another subscriber who has provided personalization information to the user.

“Another embodiment of the invention is a method for providing advanced caller identification services. This embodiment includes the following: maintaining a database of subscriber information, which is used to identify users to other users; and sharing persona information with others based upon a relationship between subscribers.

“A further embodiment of this invention is an application that is installed on a subscriber’s phone.” The application contains a store for personification information for at most one subscriber. It also includes a display interface that provides personification information to a telephone interface. This interface allows the user to manage their personalization information as well as any account preferences.

“Another embodiment of the invention is an application server to a communication network. The sever contains a storage of personification information for multiple subscribers and a distribution system management app.

“The invention also includes a system to back up data on a wireless phone having a data storage containing personal information. The invention includes a method and an application. There are many variations and aspects to the system. This invention allows a user to easily ensure that the information stored on a wireless telephone, as well as the effort required to verify that it is correct, is not lost or damaged.

“In one embodiment, a method is disclosed for backing up personal data stored on a telephone.” This aspect may include the following steps: presenting a back up system user account interface on a phone; presenting backup scheduling interfaces on the telephone; and presenting an information interface on a phone.

“A further embodiment of the method could include sending phone data to backup system at user-defined intervals or upon receiving an indication from backup store that data has changed. This indicator could be a result from polling the backup storage to determine if there have been any changes.

“The method could also include providing an interface to store via the internet to modify data in the data store.”

“The method could also include providing an undelete and roll-back interface.”

“In another embodiment, the invention relates to a method of storing personal data in a wireless phone in a backup storage repository. The method could include the following steps: providing a phone operator with an automated phone data transmission mechanism capable of periodically transmitting changes via a communications link and using a restore method; providing responses to said agent by providing changes from backup store to wireless telephone.

“A further embodiment of the invention is a method to maintain personal information on a wireless phone. This aspect includes steps such as creating a user account and identifying the user with a unique number; and sending phone data via wireless network to a backup storage at regular intervals.

“In another embodiment, this invention is an application to a wireless phone. The invention also includes an automated backup process that transmits changes to the backup system at defined intervals. The application can also include a “restore” function that allows users to restore data from the backup system to their phone.

“The rollback process for phone information may be included in the application. This returns wireless data to a specific date. An undelete record may also be included in the application. “The application could include one or more processes that run on a server or a BREW agent, JAVA agent, or an application designed for operation on a proprietary device (e.g. a Symbian operating systems).

“Another embodiment of the invention is an app for storing personal data in a wireless phone having a backup system and a data store. An automated method for creating user accounts on the backup systems using a unique identifier is used to access the application. There’s also an automated backup method that transmits changes to the backup systems at specified intervals. A restore method provides user data to a phone.

“Another embodiment of the invention includes one or more processor-readable storage devices with processor readable codes embodied on said processor-readable storage devices. This processor readable software is used to program one or more processors to execute a method that comprises the following steps: presenting an interface for backup scheduling; transmitting an initial set phone data and any changes over time to a back up system; and presenting information to restore the interface.

“In an additional aspect, the invention is also a backup system that uses a unique phone number and personal information to identify a user. A backup system also associates a unique phone number with a unique user ID. A further aspect is that the phone identifier, user identifier, or both, are all universally unique. Another aspect of the invention is that it uses an existing SyncML client on a phone as a backup client and creates the user account information on the server.

The present invention is possible using either hardware or software. The present invention uses software that is easily accessible on any number of processor-readable storage media, including hard disk drives and CD-ROMs, DVDs, CD-ROMs or optical disks. Alternate embodiments allow for the replacement of some or all software with dedicated hardware, including custom integrated circuits and gate arrays, FPGAs (FPGAs), PLDs and special purpose computers.

“In one embodiment, a method includes receiving mobile device data from a mobile phone. The mobile device was sent to the service network in response to changing mobile device information. A computing device user is then associated with the mobile system to receive the mobile information. This allows the user to view, interact or view and interact with the information.

“The receiving method requires that the mobile device information be received from the mobile phone.”

“In one aspect, mobile device information includes at minimum one of messages, emails, call history, photos and music as well as a calendar and settings.

“The service system requires authentication from the user before executing the provided method.”

“The method further comprises receiving from the computing devices, by the service systems, an indication that one or more user interactions have been made with the mobile device information.”

“The method further comprises, in response to, performing, via the service system, an act on behalf of the device.”

“The action that involves one or more of sending an email, sharing a photo, or text messaging, via Voice over IP (VoIP), on behalf of the mobile device.

“The method further comprises, in response to updating, by service system, mobile device information or directing the service system to direct the mobile device perform an action.”

“The action wherein the action is one of more is one or several of: initiating a VoIP phone call, sending an email or posting a picture for sharing, sending text messages, or changing the setting of a mobile device.”

“The method further comprises providing, by service system, a client mobile device to the mobile phone to facilitate the device in providing information about the mobile devices to the service systems.”

“A service system that includes one or multiple processors and a service to operate by the one or two processors. The service system provides mobile information about a mobile phone associated with a user to a computing devices, wherein the service system and the device receive an indication of user interactions with the device’s mobile information. In response, the service system and the mobile system update the device information and perform a first or second action for the device.

“The service system that allows the mobile device information to be received from the mobile phone.”

“The service system that includes at least one email, message, call history, photos and music as well as mobile device settings.”

“The service system that allows the user to perform the provide is further to be operated to demand authentication.”

“The service system that allows the service to be further operated to notify the device of the latest mobile device information or performed action.”

“The service system in which the first action is one of sending an email, initiating a Voice over IP call (VoIP), or posting a photo to share or sending a message via text, on behalf the mobile device.”

The service system in which the second action is to initiate a Voice over IP call, send an email, post a photo for sharing or change a mobile device’s setting.

“The service system that provides a mobile client to the device to facilitate the device’s providing information to the service program.”

“A method that includes: receiving from a service network mobile device data about a mobile phone, wherein the service system provided the mobile devices information in response to mobile device info being changed on the device. The computing device facilitates the user’s viewing, interaction or viewing of the mobile information. In response, the computing system provides an indication of any user interactions with the device information.

“The method in which at least one of said receiving and said facilitating, said receiving and said providing are performed by a plugin to a browser on the computing device.”

“The process wherein the mobile device information contains at least one of email, messages, a phone history, photos and music, as well as a calendar and settings.”

“The facilitating method includes the provision, by the computing devices, of a user interface with icons/glyphs associated modules for handling different types of mobile device information.”

These and other advantages of the present invention will be more apparent from the following description, which has the preferred embodiment of invention accompanied by the drawings.

“The invention describes a system and method of transferring data between two devices that require information to be shared. A “device” is defined in accordance with the discussion. A “device” is a collection or component that is organized for a common purpose. It may be hardware components of a computer system or personal information devices. These software could include personal information managers that include contact data, e-mail addresses, and file systems such as Microsoft Windows NT operating system, Unix operating system, Linux operating system, or any other systems that can store file types with binary formats and translate them to different application formats.

“In one embodiment, the invention consists of a set program specifically designed to transmit or receive different data from one device and another device, regardless of type of file system, data, contents, or system hardware configuration.”

“A further aspect of the system is store and forward technology that uses the differencing technology in order to implement services via public or private networks such as the Internet.”

The present invention has particular uses in synchronizing personal contacts information between different systems. However, it is obvious to those of average skill that the advantages of the invention are more general than just synchronizing various systems. It is possible to make e-mail forwarding and replying more efficient by only forwarding the differences between systems. Another example is when updates to software can be made more efficient via a network. Instead of replacing all modules in an application, you only need to forward the differences. This results in a more efficient use of bandwidth.

“System Overview”

“FIGS. “FIGS.

“FIG. “FIG. FIG. FIG. 1 shows a first system, or device, system A and a second, or more complex, device, system B. They are connected by a communication link 110. It is important to understand that communication lines can be any type of direct coupling between two systems, such as serial ports, parallel ports or Ethernet connections or other types of networks, or infrared links; or the like. System A contains a functional block 100 that represents a differencing transmitter according to the present invention. System B contains a functional block 101 that represents the differencing receiver according to the present invention.

“The differencing transmitter100, upon receiving a control signal enabling the transmitter to operate, examines a specific data structure of information to determine if it is suitable for transmission to system B. The Differencing transmitter100 extracts this information from System A and converts it into difference information. What is difference information? This information includes only changes to System B’s files and instructions for implementing them. If the data to be transmitted is a modification to a file that exists on System B, then difference information? This information only includes the differences in such a file and where they occur. The difference information will be used if the data is not available on System B. The entire file will be considered. Information about differences System B receives the information from differencing receiver 102, at System B. The changes therein are then updated at System B.”

“For example, System A and System B could be two computers. System A would extract any differences from the file on System A, as well as any new files, and send only those differences to System A (instructions for inserting those differences to the differencing receiver 102). The difference information will be interpreted by the Differencing Receive 102 (?). System B binary files will be reconstructed using the Differencing receiver 102. This allows System B to update its information without having to move all the binary files between Systems.

“FIG. “FIG. FIG. FIG. 2 shows System A and System B, with functional blocks 104 each representing a different synchronizer. The synchronizer 104 functions in the same way as the transmitter and receiver. Different information A can be transmitted and received by the synchronizer. System A and System B, for example, are both portable computers and desktop computers. If contact information is needed to be synchronized between them, the differencing synchroizer 104 will extract the changes to System A or System B, at predetermined times, transmit that information A between the systems and then reconstruct the data on the receiver system to update the information from the sending systems.

“FIG. “FIG. FIG. FIG. 3 shows System A with a differentencing transmitter, and System B with a differencing receiver. In this embodiment, System A and SystemB are connected by a storage server 300. The storage server 300 can store a separate database containing the difference information. system A which allows System A’s difference information to be provided? To the storage server 300 at the first point in time. Storage server 300 will provide the same information? System B at a later point in the time, but not the exact same as the previous point in the time. Multiple sets of A difference information may be stored on server 300 for later retrieval. Further, the difference information sets can be stored on server 300 in order to permit data on System A or System B return to a prior state.

“Once more, the storage server 300 has been coupled via a direct connection 110 with both System A (or System B). The storage server 300 could be a server that is specifically designed to receive different information A from receiver 100 and pass it on to transmitter 102. Server 300 may include specific functional routines to enable this transfer in one embodiment. Server 300 can also be made up of standard information server types that respond to standard Internet communication protocols like file transfer protocol (FTP) or hypertext transfer protocol(HTTP).

“FIG. “FIG. System A can transmit difference information A to and fro through the synchronizer 104 at a first time point and System B at another time point. Storage server 300 can include the following routines for resolving conflicts between data that has changed independently on System A and System B after the last time the systems were synchronized.

“FIG. “FIG. Each system is directly connected to a storage server 300 for control over the transmission of differencing information. The various systems can be interconnected. Server 300 might include routines that track various systems (System A through System D) and control the transmission of different components of the difference information. Each of the systems. For example, since System B includes only differencing receiver 102, the difference information ?2 which is provided to it may be a sub-component of that which is transferred between System A in the storage server 300, or may be simply receiving broadcast information ?4 from System D. In one embodiment of the system of the present invention, server 300 does not itself route the difference information derived from each receiver/transmitter/synchronizer. Server 300 is a repository of the information. The determination of which difference information is? is attributed to which receiver/transmitter/synchronizer is made by each receiver/transmitter/synchronizer.”

“FIG. FIG. 6 illustrates another embodiment of the invention. FIG. FIG. 6. A synchronizer is located in storage server 300. Server 300 may also contain a forwarder or receiver. This particular embodiment may prove to be beneficial in cases where device memory and processing power are limited. For example, if the device is a mobile phone. The data that is transferred between system A (or the device engine 104a) in this embodiment could be difference information. This depends on whether System A can detect and output different information. One device may have a differencing receiver or transmitter and one device may have a differencing synchroizer. You should understand that the differencing synchroizer 104a may be located on System A while another portion could reside on Server 300.

“The following description will describe an embodiment in which the differencing transmitter, receiver, and synchronizer is described. It will discuss its use in synchronizing contact, calendar, and binary information between multiple devices within the context of data sync. The present invention does not limit itself to synchronization programs or applications that depend on specific types of data such as contact or scheduling information. It will be clear that data transmissions containing only differences between two systems using routines that extract and reassemble data from the different systems is a significant improvement in the efficiency of data transmission. Because only data changes are transmitted, the present invention allows optimization. Because only changes to data are transmitted, this increases the speed of such transactions.

“In one embodiment of the invention, devices can connect to the Internet to manage data transfer. Each device that requires information access and can connect to the Internet could be considered part of the system according to the invention. It will synchronize its data with other devices as defined by the user.

The client software provides functions for the differencing transmitter 100 and receiver 102. A device engine is the embodiment of this system. At least one component of the device engine is specific to the type device that it runs on. This allows extraction of data from the device, conversion of the information into difference information and transmission of the difference information back to the storage server. This allows information to be replicated across all systems that are connected to the system according the invention. The storage servers 300 used in the system according to the invention can be any type or Internet server. They may also be FTP servers, but there are some aspects that may be useful. These may be modified to maximize information transfer between the systems. The synchronization system described herein allows devices to be synchronized as long as there is an Internet connection.

“In accordance with a key aspect, the Internet connection between devices and servers does not have to exist at the same time. New devices can be added to the system according the invention at any time. The system allows for transparent access to information. Each device’s device engine provides an independent extension that allows seamless integration of personal information services according to the invention.

“In an exceptional aspect of the invention, only the changes to information that are necessary to be forwarded on to other systems of the system are transmitted in order to allow extremely fast response times. Another aspect of the invention is that information transmitted in this way is encrypted to protect the public portion of the Internet.

“Architecture Overview”

Summary for “Mobile data transfer system and synchronization”

“1. “1.

“The invention concerns the transference between two systems without regard to the form in which data is kept on each system, and in particular the provision of an efficient way to communicate data between devices and systems.”

“The invention also relates to a system that allows users to provide other people with a personalized representation. This could be used in a network environment such as a cell phone network.

“The invention concerns the restoration and backup of data stored on a wireless phone, in particular one with data storage capabilities.”

“2. “2.

“The rise of computing-related devices is not limited to personal computers and workstations. Both in terms of type and format, the number of personal computing devices is on the rise. These small, handheld computers can store a variety of personal, contact, document, and other information. They are also sophisticated enough to allow users to send e-mails and fax to other wireless devices. Advanced cellular phones have enough memory and processing power for text messaging, web surfing, and storage of contact information. The need to transfer information between these devices has increased significantly with their increasing sophistication.”

With so many different types of devices on the market, it has become more difficult to keep information synchronized between different devices. If an individual has a calendar on a personal computer at work, they would like the same information to be available on a cellular phone, hand held organizer, or home computer. A notebook computer may also be required to sync file data, such as presentations and working documents, between the notebook computer and the office computer.

“Synchronizing documents and personal data managers between devices has been done through direct connections, but not between applications, such as personal information managers in different devices and personal information mangers in other.

“One of the components of these synchronization processes is that the synchronization process should be able delineate when changes are made in specific databases and make a decision on whether to replace the changed fields. This is usually measured as a change in one database and no-changes in another. Sometimes, syncs will show that both databases have changed. The sync operation must decide which of the two changes has been made. During the sync, replace one. This determinant allows the user to resolve conflicts by providing some methods.

Technically, syncronization is achieved by copying complete records between systems. A user will need to map data fields between applications and indicate which fields correspond to which field on a different device. Developers who are able to support multiple platforms of applications more effectively will require less mapping.

“In most cases, data to be synced is in text format, such as records of addresses and contact information or notes. Data that needs to be synchronized may be in binary format, such as executable files or specific documents written by word processors. The synchronization routine determines if the documents have changed and then uses a time-based representation. It replaces the older file with a newer one to achieve synchronization as long as it has not been modified. This is the same model as in the familiar “Briefcase”? Microsoft Windows-based systems use this function. The synchronization routine offers conflict resolution options to users if the files have been modified.

“These synchronization schemes can be quite inefficient as they require the full bandwidth of the binary or document to be transferred over the synchronization link. The synchronization programs also require interaction from the user at certain levels to map fields between programs.

“One of the problems in providing synchronization among different computing devices is the fact that the platforms and applications are quite diverse.”

“All synchronization programs, however, require some functions to be usable for widespread use. Synchronization programs should be compatible with popular apps on different platforms. Sync apps must resolve conflicts when the same information is modified on different devices during synchronization events. They must allow synchronization of all data formats, including text data (e-mails and contacts), calendar information, memos and other documents, as well as binary data (documents or programs in specific formats).

Applications that efficiently sync data between different types of devices can offer advantages beyond the synchronization of individual personal information between, say, a Palm or personal information manager device like a Palm. both a personal computer and a computing device. These same goals are used to develop data transfer between personal data management (PIM), devices and desktop systems. They also lend themselves to the development of applications that require data transfer between different types of devices on different platforms. These objectives include speed and low bandwidth as well as accuracy and platform independence.

“For instance, e-mail systems currently use a system that is similar to the synchronization techniques used for different devices. This means that a complete message or file can be transferred between different systems. The entire message text is returned to the sender when a user replies in an e mail. This means that the sender has two copies the original e-mail message. If an attachment to an e-mail is modified or returned, the same applies. The text that is identical between the two systems is basically duplicated on the originator?s system.

With the addition of features such as calendars, addresses books, and games, wireless telephones have become more powerful. Many phones now have microprocessors, operating system and memory that allow developers to create limited applications. Phones can now play multimedia files such as MP3 files, polyphonic ringtones and QuickTime movies. They also display pictures that have been downloaded or saved to the phone.

Wireless phones can access the Internet via a Wireless Access Protocol browser and send SMS messages. Wireless telephone users connect via wireless networks to a server that allows them to access WAP-enabled content. Many providers allow users to access their email account via the WAP browser and/or send short message service (SMS), messages directly to their phone. SMS allows users to send short text messages directly from their phone. Although messages can be saved to the phone, the amount of storage available is very limited. There is no way to handle attachments via SMS.

“Phones have been able to use data connections to manipulate data over the carrier’s network, more recently. Users can, for example, download multimedia content to their phones, download specific apps and send and receive stronger messaging. Combining devices with wireless phones, like Research In Motion’s Blackberry, gives users enhanced messaging capabilities and better attachment handling. These devices can be used to send and receive messages over wireless networks.

“The majority of phones have limited native address and contact information storage and SMS messaging capabilities. Some phones allow you to associate specific ringtones and images with other users in your phone’s contact book. Many wireless phones have caller ID that displays the number of an incoming phone caller. Phones with multiple ringtone and imaging capabilities can display the number of an incoming caller and play a designated ringtone (if requested).

“With so many different types of wireless phones, and other communication devices, it would be helpful for a user to create a personal representation of themselves on another user’s phone. This would allow the user to identify himself to other users.”

“Wireless communication devices such as mobile phones have evolved beyond being merely communication tools. Many phones have features that allow for personal productivity, games, and digital cameras. Personal productivity apps may also include data storage to store the owner’s personal information. Phones can now run applications specifically designed for phones-based runtime environments.

“All personal information stored and operated on by an individual can be included in that user’s ‘personal information space. A?personal space is used in this context. A data store of customized information created by and for the user. It contains both public and private data that the user has entered into their personal space. The content that is unique to an individual user and under their control, which generally includes?public?, is what defines the personal information space. Events and data are those that are generally known to others and those that are?private? Events and data that are not intended for sharing with others. Each of these criteria does not have to be met, but they do define the characteristics of the term “personal information space”. As that term is used in this document. This information can include electronic files such as text files, word processing files and databases. It also includes contact information from personal information managers, PDAs, and cellular phones.

Users face the problem of having to type in information on a phone. Once entered, it is difficult to retrieve. The phone can be damaged or lost, which means that the effort and time spent entering the information is lost. Many phones include software and data connection cables that allow users to access and back up information on the phone by connecting it to a computer. These applications can be customized to work directly with your phone. This means that the application program is designed to retrieve data from the phone and then store it on the personal computer. Some third-party vendors also attempted to create universal synchronization systems that can interact with phones via the physical cable.

The problem with physical connections is that users must be conscious of the need to connect their phone to the computer regularly in order to ensure accurate backups. The computer itself can be volatile. Hardware and software failures can cause data to be lost or damaged.

Phone users want more functionality, but they also want the apps to be easy to use. Even computer-based utility apps, such as data backup applications, can be useful if they run automatically without user intervention. A wireless phone user could quickly and easily back up their personal data stored on the phone using an application. This would have great technical and commercial value.

The invention consists of a difference-information receiver, transmitter, and synchronizer that work together in a system to update data in the device using data from other systems or to provide data to other systems for updating.

“The invention, in one aspect, comprises a system within a device that has at least one application destination with a format. The system comprises a difference engine that receives difference information in response to a change to at least one of the application data destinations; and an interface that applies said difference information to said data destination.

“The difference engine could include a data store that contains application data in a state before it receives said difference information; and a Delta engine that receives difference information and compares said data store to create change information. The difference information could also include a data file that contains change transactions and is combined with data from the data store.

“In another aspect, the method could include a method of updating data files within a system. The steps may include: receiving information about a subset data files that has changed; and applying the information to said subset. This step may include: receiving a change log detailing changes made to data files on another computer system; applying the changes to a data storage containing identical data to those files in order to generate new data.

“In an additional unique aspect, the invention may include an application in a system with a data source in source format. An application interface may be used to extract data from the data source. A difference engine receives said data and outputs difference information as a result of changes to the data source. An interface to the application may include a source format interface and a converter that maps said data from the source format into a universal format. The difference engine could also include a datastore that reflects a previous state of the data, and a delta generator that compares said data with said store in order to provide change transactions.

“In another aspect, the invention may include a method of updating a data source within a system. The steps may include extracting information from at most a subset, and then outputting information for the entire subset. Extracting could include determining whether any changes have been made in the system’s subset of sources; and creating a log listing changes made in another system’s subset.

“Another aspect of the invention is: An extraction routine to extract a first set difference information resulting in changes to the files; a differencing transmitter to transmit said first set to an output; an differencing receiver to receive a second set difference information from an input; and an reconstruction routine to apply the second set to the files.

“Another method of the invention is a method to update data files in a computer system. This method involves the following steps: receiving first change transactions for a selected subset data files; applying those change transactions to said subset data files. After a file is modified, generate second change transactions; and output said second change transactions as an output.

“In one embodiment, the invention includes a device engine that includes an application object; an object store; and delta module.”

The present invention is further described as a system and method that allows advanced identification information to create and be distributed to wireless communication devices such as mobile phones. Subscribers can create their own personas, which are collections of information that define them. Subscribers have the ability to publish their persona(s), which can be shared with friends and associates via mobile phones. They can also update other address books by updating their subscriber’s contact details. You can create different personas that will be presented to different users.

“In an embodiment, this invention is a system to provide personification information to wireless phone users.”

“In another embodiment, this invention is a method for identifying a subscriber to a wireless device. This method could include steps such as: creating a subscriber persona that includes information identifying a user; and showing at least a portion on a device whenever a call, or other type of contact, such as SMS, Push?To-Talk message email, voiceclip, voiceclip, etc. is received from another subscriber who has provided personalization information to the user.

“Another embodiment of the invention is a method for providing advanced caller identification services. This embodiment includes the following: maintaining a database of subscriber information, which is used to identify users to other users; and sharing persona information with others based upon a relationship between subscribers.

“A further embodiment of this invention is an application that is installed on a subscriber’s phone.” The application contains a store for personification information for at most one subscriber. It also includes a display interface that provides personification information to a telephone interface. This interface allows the user to manage their personalization information as well as any account preferences.

“Another embodiment of the invention is an application server to a communication network. The sever contains a storage of personification information for multiple subscribers and a distribution system management app.

“The invention also includes a system to back up data on a wireless phone having a data storage containing personal information. The invention includes a method and an application. There are many variations and aspects to the system. This invention allows a user to easily ensure that the information stored on a wireless telephone, as well as the effort required to verify that it is correct, is not lost or damaged.

“In one embodiment, a method is disclosed for backing up personal data stored on a telephone.” This aspect may include the following steps: presenting a back up system user account interface on a phone; presenting backup scheduling interfaces on the telephone; and presenting an information interface on a phone.

“A further embodiment of the method could include sending phone data to backup system at user-defined intervals or upon receiving an indication from backup store that data has changed. This indicator could be a result from polling the backup storage to determine if there have been any changes.

“The method could also include providing an interface to store via the internet to modify data in the data store.”

“The method could also include providing an undelete and roll-back interface.”

“In another embodiment, the invention relates to a method of storing personal data in a wireless phone in a backup storage repository. The method could include the following steps: providing a phone operator with an automated phone data transmission mechanism capable of periodically transmitting changes via a communications link and using a restore method; providing responses to said agent by providing changes from backup store to wireless telephone.

“A further embodiment of the invention is a method to maintain personal information on a wireless phone. This aspect includes steps such as creating a user account and identifying the user with a unique number; and sending phone data via wireless network to a backup storage at regular intervals.

“In another embodiment, this invention is an application to a wireless phone. The invention also includes an automated backup process that transmits changes to the backup system at defined intervals. The application can also include a “restore” function that allows users to restore data from the backup system to their phone.

“The rollback process for phone information may be included in the application. This returns wireless data to a specific date. An undelete record may also be included in the application. “The application could include one or more processes that run on a server or a BREW agent, JAVA agent, or an application designed for operation on a proprietary device (e.g. a Symbian operating systems).

“Another embodiment of the invention is an app for storing personal data in a wireless phone having a backup system and a data store. An automated method for creating user accounts on the backup systems using a unique identifier is used to access the application. There’s also an automated backup method that transmits changes to the backup systems at specified intervals. A restore method provides user data to a phone.

“Another embodiment of the invention includes one or more processor-readable storage devices with processor readable codes embodied on said processor-readable storage devices. This processor readable software is used to program one or more processors to execute a method that comprises the following steps: presenting an interface for backup scheduling; transmitting an initial set phone data and any changes over time to a back up system; and presenting information to restore the interface.

“In an additional aspect, the invention is also a backup system that uses a unique phone number and personal information to identify a user. A backup system also associates a unique phone number with a unique user ID. A further aspect is that the phone identifier, user identifier, or both, are all universally unique. Another aspect of the invention is that it uses an existing SyncML client on a phone as a backup client and creates the user account information on the server.

The present invention is possible using either hardware or software. The present invention uses software that is easily accessible on any number of processor-readable storage media, including hard disk drives and CD-ROMs, DVDs, CD-ROMs or optical disks. Alternate embodiments allow for the replacement of some or all software with dedicated hardware, including custom integrated circuits and gate arrays, FPGAs (FPGAs), PLDs and special purpose computers.

“In one embodiment, a method includes receiving mobile device data from a mobile phone. The mobile device was sent to the service network in response to changing mobile device information. A computing device user is then associated with the mobile system to receive the mobile information. This allows the user to view, interact or view and interact with the information.

“The receiving method requires that the mobile device information be received from the mobile phone.”

“In one aspect, mobile device information includes at minimum one of messages, emails, call history, photos and music as well as a calendar and settings.

“The service system requires authentication from the user before executing the provided method.”

“The method further comprises receiving from the computing devices, by the service systems, an indication that one or more user interactions have been made with the mobile device information.”

“The method further comprises, in response to, performing, via the service system, an act on behalf of the device.”

“The action that involves one or more of sending an email, sharing a photo, or text messaging, via Voice over IP (VoIP), on behalf of the mobile device.

“The method further comprises, in response to updating, by service system, mobile device information or directing the service system to direct the mobile device perform an action.”

“The action wherein the action is one of more is one or several of: initiating a VoIP phone call, sending an email or posting a picture for sharing, sending text messages, or changing the setting of a mobile device.”

“The method further comprises providing, by service system, a client mobile device to the mobile phone to facilitate the device in providing information about the mobile devices to the service systems.”

“A service system that includes one or multiple processors and a service to operate by the one or two processors. The service system provides mobile information about a mobile phone associated with a user to a computing devices, wherein the service system and the device receive an indication of user interactions with the device’s mobile information. In response, the service system and the mobile system update the device information and perform a first or second action for the device.

“The service system that allows the mobile device information to be received from the mobile phone.”

“The service system that includes at least one email, message, call history, photos and music as well as mobile device settings.”

“The service system that allows the user to perform the provide is further to be operated to demand authentication.”

“The service system that allows the service to be further operated to notify the device of the latest mobile device information or performed action.”

“The service system in which the first action is one of sending an email, initiating a Voice over IP call (VoIP), or posting a photo to share or sending a message via text, on behalf the mobile device.”

The service system in which the second action is to initiate a Voice over IP call, send an email, post a photo for sharing or change a mobile device’s setting.

“The service system that provides a mobile client to the device to facilitate the device’s providing information to the service program.”

“A method that includes: receiving from a service network mobile device data about a mobile phone, wherein the service system provided the mobile devices information in response to mobile device info being changed on the device. The computing device facilitates the user’s viewing, interaction or viewing of the mobile information. In response, the computing system provides an indication of any user interactions with the device information.

“The method in which at least one of said receiving and said facilitating, said receiving and said providing are performed by a plugin to a browser on the computing device.”

“The process wherein the mobile device information contains at least one of email, messages, a phone history, photos and music, as well as a calendar and settings.”

“The facilitating method includes the provision, by the computing devices, of a user interface with icons/glyphs associated modules for handling different types of mobile device information.”

These and other advantages of the present invention will be more apparent from the following description, which has the preferred embodiment of invention accompanied by the drawings.

“The invention describes a system and method of transferring data between two devices that require information to be shared. A “device” is defined in accordance with the discussion. A “device” is a collection or component that is organized for a common purpose. It may be hardware components of a computer system or personal information devices. These software could include personal information managers that include contact data, e-mail addresses, and file systems such as Microsoft Windows NT operating system, Unix operating system, Linux operating system, or any other systems that can store file types with binary formats and translate them to different application formats.

“In one embodiment, the invention consists of a set program specifically designed to transmit or receive different data from one device and another device, regardless of type of file system, data, contents, or system hardware configuration.”

“A further aspect of the system is store and forward technology that uses the differencing technology in order to implement services via public or private networks such as the Internet.”

The present invention has particular uses in synchronizing personal contacts information between different systems. However, it is obvious to those of average skill that the advantages of the invention are more general than just synchronizing various systems. It is possible to make e-mail forwarding and replying more efficient by only forwarding the differences between systems. Another example is when updates to software can be made more efficient via a network. Instead of replacing all modules in an application, you only need to forward the differences. This results in a more efficient use of bandwidth.

“System Overview”

“FIGS. “FIGS.

“FIG. “FIG. FIG. FIG. 1 shows a first system, or device, system A and a second, or more complex, device, system B. They are connected by a communication link 110. It is important to understand that communication lines can be any type of direct coupling between two systems, such as serial ports, parallel ports or Ethernet connections or other types of networks, or infrared links; or the like. System A contains a functional block 100 that represents a differencing transmitter according to the present invention. System B contains a functional block 101 that represents the differencing receiver according to the present invention.

“The differencing transmitter100, upon receiving a control signal enabling the transmitter to operate, examines a specific data structure of information to determine if it is suitable for transmission to system B. The Differencing transmitter100 extracts this information from System A and converts it into difference information. What is difference information? This information includes only changes to System B’s files and instructions for implementing them. If the data to be transmitted is a modification to a file that exists on System B, then difference information? This information only includes the differences in such a file and where they occur. The difference information will be used if the data is not available on System B. The entire file will be considered. Information about differences System B receives the information from differencing receiver 102, at System B. The changes therein are then updated at System B.”

“For example, System A and System B could be two computers. System A would extract any differences from the file on System A, as well as any new files, and send only those differences to System A (instructions for inserting those differences to the differencing receiver 102). The difference information will be interpreted by the Differencing Receive 102 (?). System B binary files will be reconstructed using the Differencing receiver 102. This allows System B to update its information without having to move all the binary files between Systems.

“FIG. “FIG. FIG. FIG. 2 shows System A and System B, with functional blocks 104 each representing a different synchronizer. The synchronizer 104 functions in the same way as the transmitter and receiver. Different information A can be transmitted and received by the synchronizer. System A and System B, for example, are both portable computers and desktop computers. If contact information is needed to be synchronized between them, the differencing synchroizer 104 will extract the changes to System A or System B, at predetermined times, transmit that information A between the systems and then reconstruct the data on the receiver system to update the information from the sending systems.

“FIG. “FIG. FIG. FIG. 3 shows System A with a differentencing transmitter, and System B with a differencing receiver. In this embodiment, System A and SystemB are connected by a storage server 300. The storage server 300 can store a separate database containing the difference information. system A which allows System A’s difference information to be provided? To the storage server 300 at the first point in time. Storage server 300 will provide the same information? System B at a later point in the time, but not the exact same as the previous point in the time. Multiple sets of A difference information may be stored on server 300 for later retrieval. Further, the difference information sets can be stored on server 300 in order to permit data on System A or System B return to a prior state.

“Once more, the storage server 300 has been coupled via a direct connection 110 with both System A (or System B). The storage server 300 could be a server that is specifically designed to receive different information A from receiver 100 and pass it on to transmitter 102. Server 300 may include specific functional routines to enable this transfer in one embodiment. Server 300 can also be made up of standard information server types that respond to standard Internet communication protocols like file transfer protocol (FTP) or hypertext transfer protocol(HTTP).

“FIG. “FIG. System A can transmit difference information A to and fro through the synchronizer 104 at a first time point and System B at another time point. Storage server 300 can include the following routines for resolving conflicts between data that has changed independently on System A and System B after the last time the systems were synchronized.

“FIG. “FIG. Each system is directly connected to a storage server 300 for control over the transmission of differencing information. The various systems can be interconnected. Server 300 might include routines that track various systems (System A through System D) and control the transmission of different components of the difference information. Each of the systems. For example, since System B includes only differencing receiver 102, the difference information ?2 which is provided to it may be a sub-component of that which is transferred between System A in the storage server 300, or may be simply receiving broadcast information ?4 from System D. In one embodiment of the system of the present invention, server 300 does not itself route the difference information derived from each receiver/transmitter/synchronizer. Server 300 is a repository of the information. The determination of which difference information is? is attributed to which receiver/transmitter/synchronizer is made by each receiver/transmitter/synchronizer.”

“FIG. FIG. 6 illustrates another embodiment of the invention. FIG. FIG. 6. A synchronizer is located in storage server 300. Server 300 may also contain a forwarder or receiver. This particular embodiment may prove to be beneficial in cases where device memory and processing power are limited. For example, if the device is a mobile phone. The data that is transferred between system A (or the device engine 104a) in this embodiment could be difference information. This depends on whether System A can detect and output different information. One device may have a differencing receiver or transmitter and one device may have a differencing synchroizer. You should understand that the differencing synchroizer 104a may be located on System A while another portion could reside on Server 300.

“The following description will describe an embodiment in which the differencing transmitter, receiver, and synchronizer is described. It will discuss its use in synchronizing contact, calendar, and binary information between multiple devices within the context of data sync. The present invention does not limit itself to synchronization programs or applications that depend on specific types of data such as contact or scheduling information. It will be clear that data transmissions containing only differences between two systems using routines that extract and reassemble data from the different systems is a significant improvement in the efficiency of data transmission. Because only data changes are transmitted, the present invention allows optimization. Because only changes to data are transmitted, this increases the speed of such transactions.

“In one embodiment of the invention, devices can connect to the Internet to manage data transfer. Each device that requires information access and can connect to the Internet could be considered part of the system according to the invention. It will synchronize its data with other devices as defined by the user.

The client software provides functions for the differencing transmitter 100 and receiver 102. A device engine is the embodiment of this system. At least one component of the device engine is specific to the type device that it runs on. This allows extraction of data from the device, conversion of the information into difference information and transmission of the difference information back to the storage server. This allows information to be replicated across all systems that are connected to the system according the invention. The storage servers 300 used in the system according to the invention can be any type or Internet server. They may also be FTP servers, but there are some aspects that may be useful. These may be modified to maximize information transfer between the systems. The synchronization system described herein allows devices to be synchronized as long as there is an Internet connection.

“In accordance with a key aspect, the Internet connection between devices and servers does not have to exist at the same time. New devices can be added to the system according the invention at any time. The system allows for transparent access to information. Each device’s device engine provides an independent extension that allows seamless integration of personal information services according to the invention.

“In an exceptional aspect of the invention, only the changes to information that are necessary to be forwarded on to other systems of the system are transmitted in order to allow extremely fast response times. Another aspect of the invention is that information transmitted in this way is encrypted to protect the public portion of the Internet.

“Architecture Overview”

Click here to view the patent on Google Patents.