Movatterモバイル変換


[0]ホーム

URL:


US6324544B1 - File object synchronization between a desktop computer and a mobile device - Google Patents

File object synchronization between a desktop computer and a mobile device
Download PDF

Info

Publication number
US6324544B1
US6324544B1US09/176,706US17670698AUS6324544B1US 6324544 B1US6324544 B1US 6324544B1US 17670698 AUS17670698 AUS 17670698AUS 6324544 B1US6324544 B1US 6324544B1
Authority
US
United States
Prior art keywords
file
synchronization
objects
store
object store
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
US09/176,706
Inventor
Salim Alam
Vinayak A. Bhalerao
Charles Wu
George Hu
John I. Ferrell
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft CorpfiledCriticalMicrosoft Corp
Priority to US09/176,706priorityCriticalpatent/US6324544B1/en
Assigned to MICROSOFT CORPORATIONreassignmentMICROSOFT CORPORATIONASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS).Assignors: BHALERAO, VINAYAK A., WU, CHARLES, ALAM, SALIM, HU, GEORGE
Application grantedgrantedCritical
Publication of US6324544B1publicationCriticalpatent/US6324544B1/en
Assigned to MICROSOFT TECHNOLOGY LICENSING, LLCreassignmentMICROSOFT TECHNOLOGY LICENSING, LLCASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS).Assignors: MICROSOFT CORPORATION
Anticipated expirationlegal-statusCritical
Expired - Lifetimelegal-statusCriticalCurrent

Links

Images

Classifications

Definitions

Landscapes

Abstract

First and second computing devices each contain an object store which store objects indicative of file data. Synchronization components are provided to synchronize the objects while efficiently overcoming problems associated with synchronizing files.

Description

REFERENCE TO CO-PENDING PATENT APPLICATION
Reference is hereby made to the following co-pending U.S. patent applications:
Ser. No. 08/944,948 filed on Jul. 2, 1997, entitled “OBJECT SYNCHRONIZATION BETWEEN OBJECT STORES ON DIFFERENT COMPUTERS”;
Ser. No. 08/953,655 filed on Oct. 27, 1997, entitled “CONTINUOUS OBJECT SYNCHRONIZATION BETWEEN OBJECT STORES ON DIFFERENT COMPUTERS”;
Ser. No. 09/058,613, filed on Apr. 10, 1998, entitled ELECTRONIC MAIL OBJECT SYNCHRONIZATION BETWEEN A DESKTOP COMPUTER AND MOBILE DEVICE;
All of which are assigned to the same assignee as the present invention.
BACKGROUND OF THE INVENTION
The present invention relates to synchronization of objects between object stores on two different computing devices. More particularly, the present invention relates to synchronization of objects which represent file data between an object store on a desktop-type computer and an object store on a mobile device.
Mobile devices are small electronic computing devices often referred to as personal digital assistants. Many such mobile devices are pagers, hand held devices, or palm size devices, which comfortably fit within the hand. One commercially available device is sold under the mark “HANDHELD PC” (or “H/PC”), another is sold under the mark “PALM-SIZE PC” (or “P/PC”), both having software provided by Microsoft Corporation of Redmond, Wash.
Generally, the mobile device includes a processor, random access memory (RAM), and an input device such as a keyboard, touchpad or input buttons and a display. The keyboard can be integrated with the display, such as when the keyboard is incorporated as a touch sensitive display. A communication interface is optionally provided and is commonly used to communicate with the desktop computer. A replaceable or rechargeable battery powers the mobile device. optionally, the mobile device can receive power from an external power source that overrides or recharges the built-in battery.
In some prior applications, the mobile device is used in conjunction with the desktop computer. For example, the user of the mobile device may also have access to, and use, a desktop computer at work or at home or both. The user may typically run the same types of applications on both the desktop computer and on the mobile device. Thus, it is quite advantageous for such mobile devices to be designed to be coupled to the desktop computer to exchange information with, and share information with, the desktop computer.
While a wide variety of computing tasks and applications can be performed by such mobile devices, personal information managers (PIMs) are particularly well suited to mobile devices. PIMs typically comprise applications which enable the user of the mobile device to better manage scheduling and communications, and other such tasks. Some commonly available PIMs include scheduling and calendar programs, task lists, address books, and electronic mail (e-mail) programs. Some commonly commercially available PIMs are sold under the trademarks “MICROSOFT SCHEDULE+” and “MICROSOFT OUTLOOK” and are commercially available from Microsoft Corporation of Redmond, Wash. In addition to PIMs, however, such mobile devices may also run different types of applications, such as word processors, spread sheets, etc. Some such applications include those sold under the trademarks “POCKET WORD” and “POCKET EXCEL”, both of which are commercially available from Microsoft Corporation of Redmond, Wash.
The user may also typically make changes to the PIMs and other applications both on the mobile device and at the desktop. Therefore, it is advantageous for data stores associated with the PIMs and applications on both the mobile device and the desktop to contain the most up-to-date information, regardless of whether recent changes to the PIMs and other applications have been made on the mobile device or on the desktop computer. The process of coupling the mobile device with the desktop computer, and integrating the information stored by the PIMs on the mobile device and the desktop computer such that the two contain the same updated information is referred to as synchronization.
Synchronization of information in object stores in general, and synchronization of electronic mail objects are discussed at length in the above-identified patent applications. However, a number of problems present themselves when attempting to synchronize data files across diverse functional systems (e.g., across two different and normally incompatible computer architectures). For example, data files lack a unique, persistent object identifier associated with a file. The file name is typically used as the object identifier, and as such is very susceptible to identity loss simply by renaming the file. This affects many core data base operations, such as object copy, object move, and object compare operations, rendering all such operations suspect.
Another problem is presented during conversion of the file content based on the target device. In other words, in many cases, the programs on the different devices utilizing the object may not have a one-to-one correspondence. Thus, the form of the object must be converted before it is transferred from one object store (such as the desktop object store) to another object store (such as the device object store). Inherent in this conversion is the potential loss of fidelity from the original data file. In addition, conversion can also contribute to the problem of having no unique, persistent object identifier. For example, it may be desirable to provide the user with multiple conversion choices. However, the multiple conversion choices can result in different file extensions, thus resulting in another file name change.
In addition, some conversion engines provide a user interface, during conversion, which requests or requires user input. In the event that the mobile device is being remotely synchronized to the desktop computer, this presents a problem in that the user may not be present at the desktop to interact with the user interface generated by the conversion engine.
In addition, many conventional data files can be locked. In other words, files can be rendered read only files which cannot be written for any number of reasons. For example, where a word processing document is being used by one user at a different station, and a second user accesses the word processing document, the word processing document may be locked to the second user, rendering it read only, until the first user relinquishes control of the file.
Therefore, attempted synchronization of this document would be impossible, since the document cannot be written to and thus cannot be updated during the synchronization process. This problem can be exacerbated in a synchronization architecture which provides a continuous synchronization mode while the desktop and mobile device are connected to one another.
Similarly, if a continuous synchronization mode is provided between the desktop and mobile device, the bandwidth of the devices can be taken up by continuous synchronization of non-relevant files, such as temporary files and shortcuts. This deteriorates the performance of the system.
SUMMARY OF THE INVENTION
First and second computing devices each contain an object store which store objects indicative of file data. Synchronization components are provided to synchronize the objects while efficiently overcoming problems associated with synchronizing files.
In one embodiment, file renames are detected to avoid unnecessary duplication of files. In another embodiment, file conversions are performed while suppressing UI during a remote synchronization. Further, registered converters are identified to avoid unwanted loss of data when synchronizing a converted file. Also, locked files are identified and an error message is generated so synchronization of the locked file can be performed during a subsequent synchronization operation. In yet another embodiment, non-relevant files are not synchronized to avoid undesirable consumption of bandwidth during a continuous synchronization process.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram illustrating a basic environment of the present invention.
FIG. 2 is a block diagram of one embodiment of a conventional desktop computer used in conjunction with a mobile device in accordance with the present invention.
FIG. 3 is a simplified pictorial illustration of one embodiment of a mobile device in accordance with the present invention.
FIG. 4 is a simplified block diagram of one embodiment of the mobile device shown in FIG.3.
FIG. 5 is a simplified pictorial illustration of another embodiment of a mobile device in accordance with the present invention.
FIG. 6 is an architectural block diagram illustrating one embodiment of portions of the desktop computer shown in FIG.2 and the mobile device shown in FIGS. 3-5 to illustrate synchronization of information stored in object stores on the desktop computer and the mobile device in accordance with one embodiment of the present invention.
FIGS. 7A and 7B are flow diagrams illustrating a normal synchronization operation in accordance with one embodiment of the present invention.
FIG. 8 illustrates a data structure which describes a packet transmitted during a synchronization operation in accordance with one embodiment of the present invention.
FIGS. 9A-9C are flow diagrams illustrating one embodiment of formulating packets on the desktop computer shown in FIG. 2 in accordance with the present invention.
FIGS. 10A-10C are flow diagrams illustrating receipt of packets during synchronization from a mobile device in accordance with one embodiment of the present invention.
FIG. 10D is a flow diagram illustrating renaming of a file in the context of a synchronization operation.
FIGS. 11A-11C are flow diagrams illustrating formulation of a packet on a mobile device in accordance with one embodiment of the present invention.
FIGS. 12A-12C are flow diagrams illustrating receipt of packets on a mobile device from a desktop computer in accordance with one embodiment of the present invention.
FIG. 13 is a flow diagram illustrating the creation of an exclusion list in accordance with one embodiment of the present invention.
FIG. 14 is a flow diagram illustrating the utilization of the exclusion list created in FIG. 13 on a desktop computer in accordance with one embodiment of the present invention.
FIG. 15 is a flow diagram illustrating the utilization of the exclusion list created in FIG. 13 on a mobile device in accordance with one embodiment of the present invention.
FIG. 16 is a flow diagram illustrating the suppression of a user interface during a remote convert operation in accordance with one embodiment of the present invention.
FIG. 17 is a flow diagram illustrating attempted synchronization of a file, which is locked, in accordance with embodiment of the present invention.
DETAILED DESCRIPTION OF THE ILLUSTRATIVE EMBODIMENTS
Overview
FIG. 1 is a block diagram of a typical system or environment10 in which the present invention operates. System10 includesmobile device12 anddesktop computer14.Mobile device12 includesfirst application program16,second application program18, corresponding first and second object stores20 and22,synchronization engine24 andcommunication link26.Desktop computer14 includes first andsecond application programs28 and30, corresponding first and second object stores32 and34,synchronization engine36 andcommunication link38. It will be appreciated that bothdevice12 anddesktop computer14 include a number of other components, which are discussed in greater detail below. However, for the purposes of the overview discussion presented with respect to FIG. 1, the items set out above are sufficient.
In one illustrative embodiment of the present invention,application programs16 and28 are personal information manager (PIM) programs which support, for example, electronic mail messaging, scheduling, calendering, etc. Hereinafter, programs16 and28 will simply be referred to asPIMs16 and28. Of course,PIMs16 and28 can be configured to support a wide variety of other features, such as task lists and personalized address books, to name a few.
Object stores20 and32 are implemented in memory configured to store a plurality of individual records or objects, each comprising a plurality of fields or properties related toPIMs16 and28. In one illustrative embodiment,PIMs16 and28 are programs, such as that available under the commercial designation “POCKET OUTLOOK 97” and “MICROSOFT OUTLOOK 97”, respectively and objectstores20 and23 are configured to store objects, each of which having a plurality of attributes or properties associated with electronic mail messaging, such as a sender's name, the recipient's name, text messages, etc.Desktop computer14 executesPIM28 to maintain objects stored instore32, anddevice12 executesprogram16 to maintain objects stored inobject store20. In one illustrative embodiment, each object inobject store20 comprises the same set of properties or attributes stored inobject store32, or a subset of those properties or attributes.
Similarly,application programs18 and30 maintain objects on associatedobject stores22 and34, respectively. In one illustrative embodiment,application programs18 and30 are file system applications, such as those available under the commercial designations “MICROSOFT POCKET WORD” and “MICROSOFT WORD”, respectively. It should also be noted that any suitable number of other application programs, and associated object stores, can be provided ondevice12 anddesktop14. However, for the sake of simplicity, only programs16,18,28 and30, and their associated object stores, are described herein.
In one illustrative embodiment, the user desires to synchronizeobject stores20 and32 andobject stores22 and34. Thus, there are two instance of each object associated with the pair ofobject stores20 and32 (one instance inobject store20 and one instance in object store32) and two instances of each object associated with the pair ofobject stores22 and34 (one instance inobject store22 and one instance in object store34). When a user changes one instance of the object stored in eitherobject store22 or34, the second instance of that object in the other ofstores22 and34 is out of date and is desirably updated the next timemobile device12 is connected todesktop computer14, so that both instances of the same object contain up-to-date data. The same is true for instances of objects stored inobject stores20 and32. The process by which the out of date instance is updated is referred to as synchronization.
In order to accomplish synchronization,synchronization components24 and36 run onmobile device12 anddesktop computer14, respectively. The synchronization components communicate withapplication programs16,18,28 and30 (or directly with the associated object stores) through well defined interfaces (discussed in greater detail below) to manage communication and synchronization.
Synchronization components24 and36 communicate with each other throughcommunication links26 and38 which are disposed ondevice12 anddesktop computer14, respectively. Communication links24 and38 are illustratively commercially available communication links using a suitable communications protocol. For instance, in one illustrative embodiment,mobile device12 is connected todesktop computer14 with a physical cable which communicates using a serial communications protocol. Other communication mechanisms are also contemplated by the present invention, such as infra-red (IR) communication, direct modem communication, remote dial-up-networking communication, communication through commercially available network cards (i.e., using TCP/IP), remote access services (RAS), wireless modem, wireless cellular digital packet data (CDPD), or other suitable communication mechanisms.
Prior to discussing the synchronization process and associated mechanisms in greater detail, the present discussion proceeds with respect to a more detailed description of the components ofmobile device12 anddesktop computer14 for the sake of clarity.
Desktop Computer14
FIG.2 and the related discussion are intended to provide a brief, general description of asuitable desktop computer14 in which portions of the invention may be implemented. Although not required, the invention will be described, at least in part, in the general context of computer-executable instructions, such as program modules, being executed by apersonal computer14 ormobile device12. Generally, program modules include routine programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Moreover, those skilled in the art will appreciate thatdesktop computer14 may be implemented with other computer system configurations, including multiprocessor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, and the like. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.
With reference to FIG. 2, an exemplary system for implementingdesktop computer14 includes a general purpose computing device in the form of a conventionalpersonal computer14, including processingunit62, asystem memory64, and asystem bus66 that couples various system components including the system memory to theprocessing unit62. Thesystem bus66 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. Thesystem memory64 includes read only memory (ROM)68 a random access memory (RAM)70. A basic input/output system (BIOS)72, containing the basic routine that helps to transfer information between elements within thedesktop computer14, such as during start-up, is stored inROM68. Thedesktop computer14 further includes ahard disk drive74 for reading from and writing to a hard disk (not shown) amagnetic disk drive76 for reading from or writing to removablemagnetic disk78, and anoptical disk drive80 for reading from or writing to a removableoptical disk82 such as a CD ROM or other optical media. Thehard disk drive74,magnetic disk drive76, andoptical disk drive80 are connected to thesystem bus66 by a harddisk drive interface84, magneticdisk drive interface86, and anoptical drive interface88, respectively. The drives and the associated computer-readable media provide nonvolatile storage of computer readable instructions, data structures, program modules and other data for thedesktop computer14.
Although the exemplary environment described herein employs a hard disk, a removablemagnetic disk78 and a removableoptical disk82, it should be appreciated by those skilled in the art that other types of computer readable media which can store data that is accessible by a computer, such as magnetic cassettes, flash memory cards, digital video disks (DVDs), Bernoulli cartridges, random access memories (RAMs), read only memory (ROM), and the like, may also be used in the exemplary operating environment.
A number of program modules may be stored on the hard disk,magnetic disk78,optical disk82,ROM68 orRAM70, including anoperating system90, one or more application programs92 (which includePIM28 and program30),other program modules94, andprogram data96. A user may enter commands and information into thedesktop computer14 through input devices such as akeyboard40, pointingdevice42 andmicrophone43. Other input devices (not shown) may include a joystick, game pad, satellite dish, scanner, or the like. These and other input devices are often connected to theprocessing unit62 through aserial port interface46 that is coupled to thesystem bus66, but may be connected by other interfaces, such as a sound card, a parallel port, game port or a universal serial bus (USB) Amonitor47 or other type of display device is also connected to thesystem bus66 via an interface, such as avideo adapter48. In addition to themonitor47, desktop computers may typically include other peripheral output devices such asspeaker45 and printers.
Thedesktop computer14 may operate in a networked environment using logic connections to one or more remote computers (other than mobile device12), such as aremote computer49. Theremote computer49 may be another personal computer, a server, a router, a network PC, a peer device or other network node, and typically includes many or all of the elements described above relative todesktop computer14, although only amemory storage device50 has been illustrated in FIG.2. The logic connections depicted in FIG. 2 include a local area network (LAN)51 and a wide area network (WAN)52. Such networking environments are commonplace in offices, enterprise-wide computer network intranets and the Internet.
When used in a LAN networking environment, thedesktop computer14 is connected to thelocal area network51 through a network interface oradapter53. When used in a WAN networking environment, thedesktop computer14 typically includes amodem54 or other means for establishing communications over thewide area network52, such as the Internet. Themodem54, which may be internal or external, is connected to thesystem bus66 via theserial port interface46. In a network environment, program modules depicted relative todesktop computer14, or portions thereof, may be stored in the remote memory storage devices. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.
Desktop computer14runs operating system90 that is typically stored innon-volatile memory68 and executes on theprocessor62. One suitable operating system is a “WINDOWS” brand operating system sold by Microsoft Corporation, such as “WINDOWS 95” or “WINDOWS NT”, operating systems, other derivative versions of “WINDOWS” brand operating systems, or another suitable operating system. Other suitable operating systems include systems such as the Macintosh OS sold from Apple Corporation, and the OS/2 Presentation Manager sold by International Business Machines (IBM) of Armonk, N.Y.PIM28 andapplication30 are preferably stored inprogram module94, in volatile memory or non-volatile memory, or can be loaded into any of the components shown in FIG. 2 from afloppy diskette78,CDROM drive80, downloaded from a network vianetwork adapter53, or loaded using another suitable mechanism.
Dynamically linked libraries (DLLs), comprising a plurality of executable functions are associated withPIM28 andapplication30 for execution byprocessor62. Interprocessor and intercomponent calls are facilitated preferably using the component object model (COM) as is common in programs written for Microsoft “WINDOWS” brand operating systems. Briefly, when using COM, a software component such as a DLL has a number of interfaces. Each interface exposes a plurality of methods, which can be called individually to utilize different services offered by the software component. In addition, interfaces are provided such that methods or functions can be called from other software components which optionally receive and return one or more parameter arguments.
In general, the DLLs associated withPIM28 andprogram30 are designed specifically to work in conjunction withPIM28 andprogram30 and to expose desktop synchronization interfaces that function according to a synchronization protocol. The DLLs, in turn, call interfaces exposed byPIM28 andprogram30 in order to access data representing individual properties of objects maintained inobject stores32 and34.Object stores32 and34, of course, can reside in any one of the suitable memory components described with respect to FIG.2.
Mobile Device12
FIG. 3 is a simplified pictorial illustration of one preferred embodiment of amobile device12 which can be used in accordance with the present invention.Mobile device12, as illustrated in FIG. 3, can be a desktop assistant sold under the designation “H/PC” having software provided by the Microsoft Corporation. In one embodiment,mobile device12 includes a miniaturized keyboard100,display102 andstylus104. In the embodiment shown in FIG. 3,display102 is a liquid crystal display (LCD) which uses a contact sensitive display screen in conjunction withstylus104.Stylus104 is used to press or contact thedisplay102 at designated coordinates to accomplish certain user input functions. Miniaturized keyboard100 is illustratively implemented as a miniaturized alpha-numeric keyboard, with any suitable and desired function keys which are also provided for accomplishing certain user input functions.
FIG. 4 is a more detailed block diagram ofmobile device12.Mobile device12 illustratively includesmicroprocessor106,memory108, input/output (I/O)components110,communication link26, wireless receiver112 and antenna114. These components ofmobile device12 can be coupled for communication with one another over asuitable bus116.
Memory108 is preferably implemented as non-volatile electronic memory such as random access memory (RAM) with a battery back-up module (not shown) such that information stored inmemory108 is not lost when the general power tomobile device12 is shut down. A portion ofmemory108 is illustratively allocated as addressable memory for program execution, while another portion ofmemory108 is optionally used for storage, such as to simulate storage on a disc drive.
Memory108 can includeoperating system118, one or more application programs42 (such asPIM16 andfile application18, etc.), as well asobject stores20 and22 andsync engine24. During operation,operating system118 is illustratively executed byprocessor106 frommemory108.Operating system118, in one embodiment, is a “WINDOWS CE” brand operating system commercially available from Microsoft Corporation. Theoperating system118 is designed for mobile devices, and implements features which can be utilized byPIM16 andfile application18 through a set of exposed application programming interfaces and methods. The objects inobject stores20 and22 are illustratively maintained byPIM16,file application18 andoperating system118, at least partially in response to calls to the exposed application programming interfaces and methods.
I/O components110, in one embodiment, are provided to facilitate input and output operations from a user ofmobile device12. I/O components110 for various embodiments ofmobile device12 are described in greater detail with respect to FIGS. 3 and 5.
Communication link26 is optionally provided as any suitable communication interface.Interface26 is illustratively used to communicate withdesktop computer14 as described with respect to FIG.1. Wireless receiver and driver112 and antenna114 are used for communicating wirelessly.
FIG. 5 is another simplified pictorial illustration ofmobile device12 in accordance with another embodiment of the present invention.Mobile device12, as illustrated in FIG. 5, includes some items which are similar to those described with respect to FIG. 3, and are similarly numbered. For instance,mobile device12, as shown in FIG. 5, also includes touchsensitive screen102 which can be used, in conjunction withstylus104, to accomplish certain user input functions. Whenmobile device12 is implemented as a pager,screen102 is not illustratively touch sensitive andstylus104 is not needed.
It should be noted that thedisplay102 for the mobile devices shown in FIGS. 3 and 5 can be the same size as one another, or different sizes from one another, but would typically be much smaller than a conventional display used with a desktop computer. For example, displays102 shown in FIGS. 3 and 5 may be defined by a matrix of only 240X320 coordinates, or 160X160 coordinates, or any other suitable size. Whenmobile device12 is a pager,display102 may be even smaller.
Themobile device12 shown in FIG. 5 also includes a number of user input keys or buttons (such as scroll buttons120) which allow the user to scroll through menu options or other display options which are displayed ondisplay102, or which allow the user to change applications or select user input functions, without contactingdisplay102. In addition, themobile device12 shown in FIG. 5 also illustratively includes apower button122 which can be used to turn on and off the general power to themobile device12.
It should also be noted that, in the embodiment illustrated in FIG. 5,mobile device12 includes ahand writing area124.Hand writing area124 can be used in conjunction withstylus104 such that the user can write messages which are stored inmemory108 for later use by themobile device12. In one illustrative embodiment, the hand written messages are simply stored in hand written form and can be recalled by the user and displayed on thedisplay screen102 such that the user can review the hand written messages entered into themobile device12. In another embodiment,mobile device12 is provided with a character recognition module such that the user can enter alpha-numeric information intomobile device12 by writing that alpha-numeric information onarea124 withstylus104. In that instance, a character recognition module in themobile device12 recognizes the alpha-numeric characters and converts the characters into computer recognizable alpha-numeric characters which can be used by theapplication programs16,18 inmobile device12.
Of course, wheremobile device12 is implemented as a pager,stylus104 andhandwriting area124 are not needed. Instead,mobile device12 can be simply provided withscreen102,user input buttons120,power button122, and a compact physical housing or case.
Overview of Synchronization
FIG. 6 is a more detailed block diagram ofsync engine24 onmobile device12 andsync engine36 ondesktop14.Sync engine24 onmobile device12 includessynchronization manager140 which is coupled to a set of application programs, such asPIM sync provider144 and filesync provider146.PIM sync provider144 is coupled toPIM object store20, and filesync provider146 is coupled to fileobject store122.
Sync engine36 ondesktop14 also includes asynchronization manager148 coupled to an associatedreference store150 and also coupled to application programs, includingPIM sync provider152 and filesync provider154.PIM sync provider152 is coupled toPIM object store32, and filesync provider154 is coupled to fileobject store34. Whileproviders144,146,152 and154 are shown coupled directly to associated object stores, those providers could also be coupled to the object stores through theapplication programs16,18,28 and30 instead. However, for the sake of simplicity, the present discussion proceeds only with respect to the arrangement shown in FIG.6.
Sync providers152 and154 expose application programming interfaces (APIs)156 which can be called bysync manager148 to read and store objects and object properties onobject stores32 and34. The interfaces156 generally allow the creation of data bases for different types of objects, and allow application programs to read and write property names and values to and from respective objects within each data base.
The interfaces are well documented as the IReplStore, and IReplObjHandler interfaces. Each of these interfaces exposes a number of well documented methods. For example, the IReplStore interface exposes22 methods which can be generally classified as methods which are used to manipulate the data store, methods used for object enumeration, methods used to obtain object information, methods used to manipulate handles to objects, methods used for user interface functions, and a number of miscellaneous methods. The IReplObjHandler interface exposes methods which are used to serialize objects by turning an object into a series of bytes, and to deserialize objects by turning the series of bytes back into an object. The methods included in the interface are also used to delete an object from the corresponding object store.
Sync manager148, in turn, exposes a well documented interface known as the IReplNotify interface toproviders152 and154. This interface exposes four well documented methods which are used to notifysync manager148 of any change or deletion made to an object in a corresponding object store, to set text to be displayed in a status bar where synchronization status can be observed by the user, to obtain a window handle which is used as a parent window of any modal dialogue or message box, and to obtain information about a mobile device which has been selected, or which is connected to the desktop.
Each of theproviders152 and154 are implemented to specifically work in conjunction with aparticular application program28 or34, respectively. In general, because the application program interface (API)156 is standardized, it allowssynchronization manager148 to access and synchronize any number of different desktop application programs, as long as the required interface methods are implemented for each application by corresponding providers.
Onmobile device12,providers144 and146 also provide the well documented IReplObjHandler interface such that objects in the associatedobject stores20 and22 can be serialized and deserialized.Providers144 and146 also illustratively implement three additional functions which can be used to initialize and terminate the provider, to handle object identification and change detection, and to retrieve device information about a particular object type. These functions and interfaces are also well documented.
Synchronization manager148 manipulatesreference store150 to maintain a mapping between instances of objects stored inobject stores32 and34 ondesktop14 and instances of the same objects stored inobject stores20 and22 onmobile device12. Objects are identified by handles which are created byproviders152 and154. The handles are opaque tosynchronization manager148, in thatsynchronization manager148 need not be concerned with the actual composition of the handles although the handles are manipulated and stored bysynchronization manager148.
Generally, in order to maintain the mapping,synchronization manager148 maintainsreference store50 so that it contains handles corresponding espectively to a plurality of objects in the object stores32 and34 ondesktop14 which are to be synchronized with instances of the same objects inobject stores20 and22 onmobile device12. The handles inreference store150 will typically correspond to objects that have been previously synchronized between the various object stores. The handles are updated after their corresponding objects have been synchronized.
The list of handles maintained inreference store150 is also used to determine which items need to be synchronized tomobile device12 the next timemobile device12 is connected todesktop computer14. In making this determination,synchronization manager148 also determines whether objects have been added to or deleted from the object stores so that appropriate additions and deletions can be made.
The handles stored inreference store150 should be formatted in accordance with the following criteria so that thedesktop synchronization providers152 and154 can perform the specified functions:
(a) Each handle should contain data that uniquely identifies an object—such as an object identifier, an ID number, a full pathname for a file system object, etc. This data should be persistent (in that it does not change for a particular object) and should not be reused for subsequently created objects. This data can be compared to determine whether two handles actually correspond to the same object. As is discussed below, this can be problematic for file system information, because the object identifier is typically the pathname, and can be changed simply by renaming the file.
(b) It should be possible to derive some object order based on the handle. This is required for efficient searching, as will be described below.
(c) The handle should have some sort of time stamp information, or version number. This information can be compared to determine whether an object has changed since the last handle was recorded inreference store150.
These handles are provided fromproviders152 and154 tosynchronization manager148, for storage inreference store150, during an enumeration process which is described below. This enumeration process is used to detect items which need to by synchronized whenmobile device12 is next coupled todesktop computer14.
FIGS. 7A and 7B are flow diagrams illustrating the enumeration process which is periodically performed bysync engine36 in obtaining and updating the list of handles stored inreference store150 for the purpose of determining which items need to synchronized upon next connection. After an initialization step indicated byblock160,synchronization manager148 constructs two lists of handles. The first list is obtained atstep162 by accessing the handles previously stored inreference store150 which correspond to objects that were previously synchronized. The second list of handles is obtained atstep164 by querying each of the synchronization providers152-154 using interface methods denoted by IReplobjHandler::FindFirstItem and FindNextItem. When successfully called, these interfaces enumerate an ordered list of handles corresponding respectively to a second group of objects, those objects currently in the object stores32 and34 corresponding to theproviders152 and154 which have enumerated the objects.
By comparing the list of handles returned by the current enumeration with the saved list of handles loaded fromreference store150,synchronization manager148 automatically detects changes and deletions. For example, each time a new object is returned during enumeration,synchronization manager148 attempts to find an object in its previously saved list of objects which represents the same object. If no matching handle is found,synchronization manager148 determines that a new object has been created and saved on the object store which enumerated the object under consideration. In order to determine whether matching handles are found, as is indicated byblock166,synchronization manager148 calls the interface method IReplStore::CompareItem.
Based on a comparison of the handles,synchronization manager148 creates any necessary handle-to-object mappings inreference store150 such that objects in the object stores ondesktop14 can be mapped to corresponding instances of the same object ondevice12. This is indicated byblock168.
Synchronization manager148 also determines whether any objects have been added, deleted, or modified in the particular object store from which they were enumerated. This is indicated byblocks170. For example, if the list of objects which were previously synchronized contains a handle that is not found in the newly created list based upon a current enumeration of synchronization providers152-154, that indicates that the object has been deleted from the correspondingdata store32,34. Thus,synchronization manager148 determines that the object must also be deleted from themobile device12 during the next synchronization operation.
Similarly, if the enumeration of objects produces an object handle which does not occur in the list of objects previously synchronized, thensynchronization manager148 determines that an object corresponding to that particular handle has been added to the desktop object store which enumerated the object. Thus, during the next synchronization operation, the object must be added tomobile device12.
Synchronization manager148 also calls the interface method IReplStore::IsItemChanged with matching handles from the first and second lists. Calling this interface causes theappropriate provider152 or154 (whichever enumerated the matching handle) to determine whether the object has changed since its handle was last written toreference store150. In one illustrative embodiment, the provider examines the time stamp information or version number information associated with the object handle. If that information is not identical, that indicates that there has been a change to the object. Thus, during the next synchronization process,synchronization manager148 must update the corresponding object on mobile device12 (assuming there is no conflict as discussed below).
Synchronization manager140 onmobile device12 also interacts withsynchronization providers144 and146 to determine whether any objects onobject stores20 and22 have been added, deleted, or changed since the last synchronization process. Onmobile device14, the “WINDOWS CE” brand operating system posts a message tosynchronization manager140 every time an object onmobile device12, which is to be synchronized, changes, is added, or is deleted.Synchronization manager140 enumerates each object and calls methods in the IreplNotify interface of eachprovider144 and146. Based on this call, the provider determines whether the particular object enumerated is to be synchronized and indicates tosynchronization manager140 how many objects are to be synchronized (for example, a file system object, such as a directory, actually contains more than one object which is to be synchronized).
Based on the notifications posted from the operating system,synchronization manager140 maintains a list, or array, of objects which have changed, deleted, or added since the last synchronization process. Upon connection todesktop computer14, this list is provided tosynchronization manager148. Thus,synchronization manager148 contains the lists which have been constructed for bothdesktop14 andmobile device12 which indicate objects which need to be synchronized. This is indicated byblock172 in FIG.7B.
Synchronization manager148 then determines, as indicated atblock174, whether an object has changed only onmobile device12, only ondesktop14, or on bothmobile device12 anddesktop14. If the object has changed only on one of the desktop object stores, thensynchronization manager148 carries out the necessary activity to update the corresponding object store on the mobile device. This is indicated byblock176. If the object has changed only on one of the mobile device stores, thensynchronization manager148 carries out the necessary activities to update the corresponding desktop object store. This is indicated byblock180.
However, if the same object has changed on bothmobile device12 anddesktop14, then a conflict situation arises. In one illustrative embodiment,synchronization manager148 makes a call to the registry in the operating system ofdesktop computer14 to obtain conflict information which instructssynchronization manager148 how to proceed in the face of a conflict. This is indicated byblock178. For example, the user may have set preferences which indicate that, in the case of a conflict either the desktop computer version, or the mobile device version should take precedence every time. Similarly, the user may have set a preference which indicates that the user is to be notified in the case of a conflict so that the user can actively decide which version will take precedence. In that case,synchronization manager148 generates a user interface allowing the user to resolve the conflict.Synchronization manager148 then takes the necessary steps to resolve the conflict and update the appropriate object store. This continues until all objects in the lists of objects to be synchronized have been dealt with. This is indicated byblock182.
In order to exchange objects withmobile device12,synchronization manager148 continually calls the method IReplObjHandler:GetPacket to have anappropriate provider152 or154 obtain a packet of information to be transmitted tomobile device12. To handle a packet received frommobile device12,synchronization manager148 calls IReplObjHandler::SetPacket. This acts to provide a packet of information received frommobile device12 to asynchronization provider154 for storage on its associated object store. Similar interfaces are called bysynchronization manager140 onmobile device12. These methods are discussed in greater detail below.
EXCHANGING OBJECTS
The present invention primarily deals with problems associated with attempting to synchronize file system data stored infile object store34 and maintained byfile sync provider154. Thus, the remainder of the present discussion proceeds with respect to file system data only.
File object store34 andfile object store22 each hold a synchronized files folder which contains a hierarchical list of objects to by synchronized. In other words, a user will typically place an item in that folder if the user wishes the item to be synchronized betweendesktop computer14 andmobile device12. The objects in the synchronized files folder can include directories, subdirectories, files, etc.
In order to packetize this information for transmission betweenmobile device12 anddesktop14, the information is arranged into a series of serial bytes, such aspacket184 illustrated in FIG. 8. A first packet illustratively includes object attributes186, an object path which provides a file name path relative to the synchronized files folder and which is indicated bynumeral188, andobject file content190. In one illustrative embodiment, theentire packet184 is 4K bytes long. After thefirst packet184 is generated, subsequent packets (if any) corresponding to the object simply contain 4K bytes of file content information until the entire object has been transmitted.
FIGS. 9A-9C comprise a flow chart which illustrates the steps performed whensynchronization manager148 transmits an object tomobile device12. First,synchronization manager148 calls the function IReplObjHandler::GetPacket as indicated byblock192. Based on this call, filesync provider154 determines whether this is the first packet of the specified object being transmitted. This is indicated byblock194. If this is not the first object, filesync provider154 simply fills the packet with the designated amount of file object contents, as indicated byblock196, and returns the packet tosynchronization manager148 for transmission.Provider154 then determines whether there are any additional contents to be transmitted for the specified object. This is indicated byblock198. If there are additional contents, thensynchronization manager148 again calls the GetPacket function to have another packet prepared for transmission. However, if there are no more contents in the present object,provider154 returns a value designated by RWRN_LAST_PACKET. This is indicated byblock200 and indicates to syncmanager148 that the object packetization has been completed.
If, atblock194,provider154 determines that this is the first packet,provider154 determines whether the object is a folder. This is indicated byblock202. If the object is a folder,provider154 adds thefolder attribute information186 to the packet being prepared as well as therelative path information188. The packet is then returned tosynchronization manager148 for transmission tomobile device12. This is indicated byblocks204 and206.
If, atblock202,provider154 determines that this is not the first packet of a folder, but rather is the first packet of a file,provider154 reviews the internal object bits in the object to determine whether this is a new object. In other words,provider154 determines whether this object has been synchronized in the past. This is indicated byblocks208 and210.
If this object is a new object,provider154 causes a user interface dialogue box to be displayed to the user atdesktop computer14 indicating that the object being synchronized is a new object, indicating the location (illustratively by path name) where the new object will reside ondevice12, and also indicating that the new object is being backed up and the location of the backup. In one illustrative embodiment, the user may choose not to see this dialog in the future. This is indicated byblocks212 and214. If, atblock210, it is determined that the current object is not a new object,provider154 does not bring up this dialogue box.
Provider154 then determines whether a conversion is required. For instance, if the file data being synchronized is a word processing document generated using the “MICROSOFT WORD” brand word processor, and they are being synchronized to a device running the “WINDOWS CE” brand operating system and which uses the “MICROSOFT POCKETWORD” brand word processor, the file must undergo conversion to a format suited for the “MICROSOFT POCKETWORD” brand processor. This is indicated byblock216. If no conversion is required, processing simply continues atblock224.
However, if conversion is required,provider154 invokes a conversion engine which makes the necessary conversion and places the converted information in a temporary folder. This is indicated byblock218. The invocation of a converter engine also includes generating and walking an exclusion list based upon converters which do not have registered default import and export keys. This is described in greater detail with respect to FIGS. 13-15.
After the data has been converted,provider154 obtains thefile attribute information186 and therelative path information188 and adds that information to the packet being created. This is indicated byblocks220 and222.
Next, the file is opened such that the first packet being created can be filled to capacity withfile object content190. This is indicated byblocks224 and226. The packet is then returned tosynchronization manager148 for transmission tomobile device12. The GetPacket function is continually called bysynchronization manager148 untilprovider154 returns the value RWRN_LAST_PACKET which indicates that the last packet has been returned.
FIGS. 10A-10C are flow diagrams illustrating the operation ofsync engine36 in performing a set packet operation (i.e., in receiving a packet being synchronized from mobile device12).Synchronization manager148 first receives a packet as indicated byblock228.Synchronization manager148 then calls IReplObjHandler::SetPacket supplying the packet, as indicated byblock230. This supplies the packet to filesync provider154 which, in turn, determines whether this packet is the first packet of a specified object. This is indicated byblock232. If this packet is not the first packet,provider154 simply writes the packet to the file which has been opened to receive these packets, and processing continues atblock246. This is indicated byblock234.
However, if this is the first packet of an object to be synchronized,provider154 opens the packet and checks the internal bits as indicated byblock236 and determines whether this object is a new object (i.e., it is an object which has not previously been synchronized to desktop computer14). This is indicated byblock238. Ifprovider154 determines that this is a new object,provider154 brings up a dialogue to the user indicating that this is a new object and indicating where the object is being stored and backed up.Provider154 also backs up the object at the same time. This is indicated byblock240.
However, if this is not a new object, processing simply continues atblock242 whereprovider154 obtains theattribute information186 and filepath information188 from the packet. Since this is the first packet in the identified object,provider154 then creates a file in the temp directory. This is indicated byblock244.
Provider154 then determines whether there are any additional packets to receive for this object. If so, control continues atblock228 and another packet is received and the function SetPacket is again called bysynchronization manager148. This is indicated byblock246.
However, if there are no more packets to be received for this object,sync provider154 determines whethersynchronization manager148 is in a conflict situation in which both instances of the same object have been changed. This is indicated byblock248. If so,provider154 simply returns a dummy handle tosynchronization manager148, which resolves the conflict situation as described with respect to FIG.7B. This is indicated byblock250.
If, atblock248,provider154 determines that this is not a conflict situation,provider154 creates the destination path for the file conversion, and invokes the converter engine to convert the file to the appropriate form for storage onfile object store34. This is indicated byblocks252 and254.
Atblock252, one of two destination paths are created. Ifprovider154 is to perform a combine operation (described below), then the destination path is created in the temp directory. Otherwise, the destination path is simply the full pathname in the synchronized files folder infile object store34.
A combine/discard operation is required if the mapping between the stores ondesktop14 anddevice12 have been lost, for some reason. This mapping must be re-established using the combine/discard process. A combine operation means combining all the desktop and device objects together. A discard operation means discarding the device objects and replacing them with desktop objects. Therefore, atblock252, ifprovider154 is performing a combine operation, the destination path for the file to be converted is in the temp directory. Otherwise, it is simply in the synchronized files folder.
Provider154 then takes one of two courses of action, depending on whether it is performing a combine operation, as determined inblock256. If the combine operation is being performed,provider154 determines whether the file in the temp folder which has just been synchronized from the mobile device is the same as (i.e., identical to) the original file in the synchronized files folder. In order to do this, in accordance with one embodiment,provider154 simply performs a binary comparison of the two files. If they are the same, and the destination file still exists,provider154 returns a flag referred to as the RSF_DUPLICATED_OBJECT flag tosynchronization manager148 indicating that the file is a duplicate file, so that it does not need to be processed, as it would otherwise be during the synchronization process.
If, atblock260, it is determined that the destination file does not exist, thenprovider154 copies over the file then in the temp directory to the destination folder, as indicated byblock264.
Further, if, atblock258, the binary comparison indicates that the file in the temp folder and the original file are not the same, the original file is renamed to “copy of <file name>” and the file in the temp directory is copied into the original file in the destination folder. This is indicated byblocks26630 and268.
If, atblock256, it is determined that the present operation is not part of a combine operation, processing simply skips to block270. Atblock270,provider154 determines whether the object being synchronized already existed on the desktop, but simply had a different file name. This can occur, for instance, when the sequence illustrated by FIG. 10D is performed. For example, if the user creates a file on the desktop named “meeting.doc”, as indicated byblock273, and places this file into the synchronized files folder, thenext time desktop14 is connected todevice12, “meeting.doc” will be synchronized to the device. This is indicated byblock275. At the same time,synchronization manager148 ondesktop14 will create a mapping between the desktop “meeting.doc” file, and the device “meeting.doc” file. This is indicated byblock277. Then, assume that the user renames “meeting.doc” on the device to “summary.doc”. This is indicated byblock279. That being the case, the “WINDOWS CE” brand operating system will generate a notification that “meeting.doc” has been deleted. The operating system will also generate a notification indicating that a document “summary.doc” has been created immediately thereafter. This is indicated byblock281.
When the synchronization operation is re-started (such as when thedevice12 is reconnected to the desktop14) it will appear that “meeting.doc” has been deleted from themobile device12, which would ordinarily cause the deletion of “meeting.doc” from thedesktop14. This is indicated byblocks283 and285. However, this would be inefficient since the file “meeting.doc” has simply been renamed to “summary.doc”.
Therefore, referring again to FIG. 10C, atblock270 it is determined whether the object already exists on the desktop, but simply has a different file name. There are a number of different ways that this can be accomplished. For example, since the “WINDOWS CE” brand operating system treats a rename ondevice12 as a delete followed by an immediate recreate of a file,synchronization manager148 can simply monitor the change notifications received fromdevice12 to look for situations where a delete has been immediately followed by a recreate. In that instance,synchronization manager148, itself, determines that this is not a deletion and creation of a file and treats it as a normal change. Thefile sync provider154 can determine that this is a rename by cracking the packet open and viewing the contents of the object to determine whether it is identical to another object, except for the file name.
In any case, if, atblock270, it is determined that it has not simply been a rename, then the new object handle is created atblock272.
If, however, atblock270, it is determined that this has been simply a rename,provider154 determines whether the object is a directory. This is indicated byblock274. If it is a directory, the directory is simply renamed atblock276 andprovider154 returns a flag referred to as the RSF_UPDATED_HANDLE flag and also returns the new handle for the renamed directory. This is indicated byblocks278 and280.
If, however, atblock274, it is determined that the object is not a directory (meaning that it is a file) the original file is deleted (since it has been renamed). This is indicated byblock282. Again,provider154 returns the RSF_UPDATED_HANDLE flag and returns the new handle tosynchronization manager148. This is indicated byblocks282,278 and280.
Upon receiving the RSF_UPDATED_HANDLE flag,synchronization manager148 simply maps the newly created “summary.doc” file to the one ondevice12. In other words, the old mapping of the original file is simply updated.
FIGS. 11A and 11B illustrate the operation ofdevice12 when performing a SetPacket operation. This occurs when the desktop sends a file to the device for writing. Initially,synchronization manager140 receives a packet and calls the SetPacket function. This is indicated byblock286.
File sync provider146 then determines whether this is the first packet of the object, as indicated byblock288. If so,provider146 obtains the relative path and attributes from the packet, as indicated byblock290.
Provider146 then determines whether the object is a directory. This is indicated byblock292. If the object is not a directory,provider146 ensures that all appropriate subdirectories in the path are created, as indicated byblock294.Provider146 then ensures that the file is unlocked as indicated byblock296.
Provider146 then determines whether the file name containing the object identifier in the packet which has just been received is different from the file name in the file which has just been opened. If so, the file is renamed to that contained in the packet. This is indicated byblock298. Then, the file is opened for writing, as indicated byblock300, and another packet is received.
If, atblock292,provider146 determines that the path identifies a directory,provider146 determines whether the directory already exists, as indicated byblock302. If not, the directory is created and the new object ID is set in the log which is maintained bysynchronization manager140 which is used in creating the lists of objects to be synchronized. This is indicated byblocks304 and306. The attributes provided in the packet are then set in the directory and the change bit which was set by the operation system notification is cleared. This is indicated byblocks308 and310.
If, atblock288,provider146 determines that this is not the first packet of the object being synchronized,provider146 simply writes the packet to the file which has been opened, as indicated byblock312.Provider146 then determines whether additional packets are to be received as indicated byblock314. If so, additional packets are received and written to the open file. This process continues until all packets in the object being synchronized have been received.
FIG. 12 is a flow diagram illustrating the operation offile sync provider146 ondevice12 in performing a GetPacket operation. This occurs when the desktop requests a file to be sent from the device. First,synchronization manager140 calls the GetPacket function. This is indicated byblock316.Provider146 then determines whether the packet being obtained is the first packet in the identified object. This is indicated byblock318. If it is not the first, processing continues atblock328 andprovider146 simply fills the packet to its capacity with file content. Then,provider146 determines whether any additional packets exist for the object. If so,provider146 simply waits to receive another GetPacket call fromsynchronization manger140. If no additional packets are present,file synchronization provider146 returns an appropriate value tosynchronization manager140 indicating that.
If, atblock318,provider146 determines that the packet is indeed the first packet,provider146 obtains the object identifier for the object and sets an indication that the change bit in the change notification must be cleared once the file has been synchronized to the desktop. This is indicated byblocks320 and322.File sync provider146 then places the relative path and file attributes into the packet, since it is the first packet. This is indicated byblock324.
Next, assuming that the object is a file and is not in a conflicting situation, the file is opened for reading and a remainder of the packet is filled with file content. This is indicated byblocks326 and328. This process continues until the entire object has been packetized and sent tosynchronization manager140 for transmission todesktop12.
CREATING THE EXCLUSION LIST
As discussed above, some files need conversion such that they are in a suitable format for the destination for which they are being synchronized. For example, files which are in a format suitable for the “MICROSOFT WORD” brand word processor which are being synchronized todevice12 must be converted so that they are in a format suitable for the “MICROSOFT POCKETWORD” brand word processor.
If a converter is registered in the operating system ofdesktop14, it may have default import and export keys which are used in performing the conversion. An import key is used in performing a conversion for importing the file tomobile device12. An export key is used in converting the file for exporting it frommobile device12 todesktop14.
If the necessary import or export key does not exist, the file cannot be adequately converted. For example, if an import key exists for a document, the file can be converted from the format ondesktop14 to the format ondevice12. However, if the corresponding export key does not exist, the file cannot be converted back to the format ondesktop14. Therefore, if the synchronization components attempt to synchronize the file back to the desktop, without converting it, the synchronization component would rewrite the document ondesktop14 with the differently formatted document ondevice12, thus possibly losing information in the synchronization back to the desktop. The same is true if the import key does not exist. Therefore, eachtime device12 is connected todesktop14, an exclusion list is created or modified for both the desktop and the device.
FIG. 13 is a flow diagram illustrating the creation of the exclusion lists. First, thedevice12 is connected to thedesktop14 as indicated byblock332. The converter engine ondesktop14 then makes a suitable interface call to enumerate all registered converters. This is indicated byblock334. The converter engine then determines whether the particular converter has a registered default import key as indicated byblock336. If so, processing simply continues atblock340, and the converter is not added to the exclusion list on the desktop. However, if no import key exists, the file extension associated with the converter is added to the desktop exclusion list as indicated byblock338.
The converter engine then determines whether any more converters have been registered. This is indicated byblock340. If so, the converter engine again checks for appropriate default import keys and adds the necessary file extensions to the exclusion list. This continues for each registered converter and object type. Once all converters and object types have been examined, the exclusion list is written to the registry ondesktop computer14. This is indicated byblock342.
The same process is performed to generate an exclusion list formobile device12. However, inblock336, rather than looking for registered default import keys, the converter engine looks for registered default export keys. If the export keys do not exist, the file extension is added to the exclusion list which is written to the registry in a location associated with the particular device then connected todesktop computer14.
UTILIZATION OF THE EXCLUSION LISTS
Once the exclusion lists have been created, they are utilized by the converter engines each time the converter engines are invoked. FIG. 14 is a flow diagram indicating how they are utilized. First,synchronization manager148 makes a call to filesync provider154 indicating that a selected object needs to be packetized for synchronization. This is indicated byblock344. Theprovider154 invokes the converter engine and examines the exclusion list, as indicated byblock346. If the object type to be synchronized does not reside in the exclusion list, as indicated byblock348, the object is simply synchronized tomobile device12 in the normal fashion. This is indicated byblock350.
If, atblock348, it is determined that the object to be synchronized is contained in the exclusion list,provider154 returns a value tosynchronization manager140 causing it to simply ignore the change during the present synchronization process. This is indicated byblock352.
It should be noted that the exclusion list is examined each time a file is to be converted for synchronization. Therefore, a file change may be ignored during one synchronization process because the converter is contained in the exclusion list. However, if the necessary converter is later installed on thedesktop14 and added to the registry, the exclusion list will be updated the next time thedevice12 is connected to thedesktop14, thus removing the file extension associated with the converter from the exclusion list. Therefore, during the next synchronization process, the object will no longer be ignored, but will be synchronized.
FIG. 15 is a flow diagram illustrating utilization of the exclusion list created fordevice12. First, the synchronization components detect that an object needs to be synchronized as discussed above. This is indicated byblock354. The exclusion list is then examined to determine whether the object type (e.g., file extension) is contained in the exclusion list. This is indicated byblock356. If the object type is not contained in the exclusion list, the object is simply synchronized to the desktop device and the change notification ondevice12 is cleared. This is indicated byblocks358 and360.
However, if, atblock356, it is determined that the object type is contained in the exclusion list,synchronization manager140 simply ignores the change and does not attempt to synchronize the object. This is indicated byblock362. Of course, as with the exclusion list fordesktop14, the exclusion list fordevice12 is also updated eachtime device12 is connected todesktop14. Therefore, the object can be synchronized during a later synchronization process, assuming the appropriate converter has been installed and registered indesktop14.
Appendix A illustrates one embodiment of code which can be used to create the exclusion list.
SUPPRESION OF UI DURING REMOTE SYNC
As discussed above, it may desirable to suppress certain user interface and dialogue messages when an object is being synchronized remotely, such as via a modem or wireless link, when the user is not at thedesktop14. When an object is to be synchronized, the object first passes a flag to thedesktop14 indicating that the synchronization process is to be conducted remotely. The present invention takes advantage of this flag to suppress UI.
FIG. 16 is a flow diagram illustrating how the UI is suppressed during a remote sync operation. First, a packet is received as indicated atblock364.Provider154 then checks the packet to determine whether the remote or continuous sync flags have been set. This is indicated byblock366.Provider154 also checks the registry ondesktop14, at a specific location, which is used to store a value indicating that progress messages are to be suppressed. This is indicated atblock368. If any of the suppression indicators inblocks366 or368 are set,provider154 sets a flag referred to as the CONVERT_NO_UI flag when calling the converter engine. This is indicated byblock370. This value causes the converter engine to suppress conversion progress dialogue, as indicated byblock372.
The converter engine then executes a QueryInterface on an interface designated ICeFileFilterOptions. This is indicated byblock374. The ICeFileFilteroptions interface exposes methods which can be used to manipulate converting and other filtering functions and is set out in Appendix B.
If the ICeFileFilter Options interface is not present, as indicated byblock376, the conversion continues simply suppressing conversion progress dialogue. However, if atblock376 it is determined that the ICeFileFilterOptions interface is present, then the converter engine calls a method indicated by SetFilterOptions specifying UI which should be suppressed during the present operation. This is indicated byblock378. Thus, during a remote or continuous sync operation, the suitable UI is suppressed.
LOCKED FILES
As discussed above, certain files may be locked when synchronization is attempted. For example, if another user is currently using a word processing document, and the file is to be synchronized, the file will be locked to the synchronization components so that it cannot be written to. FIG. 17 is a flow diagram illustrating how the present invention deals with such locked files.
Once it is determined that the file needs to be synchronized, the file sync provider attempts to open the file to synchronize it. This is indicated byblock380. The provider will then determine that the file is locked as indicated byblock382. In that instance, the provider returns to the synchronization manager an error message indicating that the file is locked. This is indicated byblock384. Thesynchronization manager148 then simply discontinues the attempted synchronization and indicates that the file for which synchronization has been attempted, is still out of date. This will continue during subsequent synchronization processes until the file is unlocked and synchronized. This is indicated byblock386.
SYNCHRONIZATION OF NON-RELEVANT FILES
In systems which are configured for continuous sync operations, another problem can arise with respect to non-relevant files, such as files stored in the temp directory, shortcuts, etc. For example, if a particular word processing document is contained in the synchronized files folder on the desktop, and the user is editing that document, the word processor typically creates a temporary file in the temp directory and places it in the same folder. As the document is being edited, the temporary file is changed continuously and thus needs to be synchronized continuously to the device. However, this is highly inefficient and takes up an undesirable amount of bandwidth. Therefore, in accordance with one embodiment of the present invention, such non-relevant files are not synchronized, even if they are contained in the synchronized files folder.
File sync provider154 examines the extension of the file in the synchronized files folder to determine whether they are non-relevant. For example, files which have an extension “.tmp” are not synchronized.File sync provider154 simply does not indicate tosynchronization manager148 that these files even exist during the enumeration process. Thus,synchronization manager148 will not even know that such files exist since they have not been enumerated, and they will not be synchronized.
CONCLUSION
Thus, it can be seen that the present invention provides file synchronization in a way that avoids many problems which are otherwise inherent in file synchronization. For example, the present invention deals with files which have been renamed on the device either by the user, or during conversion, in a highly efficient manner. The present invention also identifies duplicate files during a combine operation, prior to the normal sync operation. This also increases efficiency. Further, the present invention provides a user interface message indicating the location of the files being synchronized, backs those files up, and indicates the location of the backup file, when the file is synchronized for the first time. The present invention also creates an exclusion list which is utilized during conversion such that critical information is not lost because proper converter defaults have not been registered. The present invention also suppresses selected user interface messages under appropriate circumstances, deals with file locking problems, and does not synchronize non-relevant files. One or a combination of these features can be implemented in various embodiments of the present invention, to increase efficiency of file synchronization.
Although the present invention has been described with reference to preferred embodiments, workers skilled in the art will recognize that changes may be made in form and detail without departing from the spirit and scope of the invention.

Claims (24)

What is claimed is:
1. A method of synchronizing objects indicative of file data between a first object store associated with a first computing device and a second object store associated with a second computing device, the objects having associated file names, the method comprising:
maintain a mapping table which maps objects to be synchronized on the first object store with corresponding objects on the second object store;
determining whether an object to be synchronized has been added to the second object store since a last synchronization process;
if so, adding a corresponding object to the first object store during a subsequent synchronization process;
determining whether the object added to the first object store during the subsequent synchronization process already exists on the first object store under a different file name;
if so, deleting the already existing object from the first object store; and
updating the mapping table to map the object added to the first object store to the object which was renamed on the second object store.
2. The method of claim1 wherein maintaining the mapping table comprises maintaining a handle associated with each object on the first object store and mapping the handle to a handle associated with a corresponding object on the second object store.
3. The method of claim2 wherein updating the mapping table comprises updating the handle associated with the already existing object to indicate that the object has been renamed.
4. The method of claim3 wherein, when the object added to the second object store is renamed from an original name to a new file name, the second computing device deletes the object under the original file name and subsequently recreates the object under the new file name and provides a notification to the first computing device indicating that the object under the original file name has been deleted and that the object under the new file name has been created.
5. The method of claim4 wherein the first computing device performs the step of determining whether the object added to the first object store during the subsequent synchronization process already exists on the first object store under a different file name based on the notification from the second computing device.
6. The method of claim1 wherein the first computing device comprises a desktop computer and the second computing device comprises a mobile device and wherein the step of maintaining a mapping table is performed by the desktop computer.
7. A method of synchronizing an object indicative of file data from a first object store to a second object store, the method comprising:
determining that the object is to be synchronized;
preparing packets indicative of the object to be transmitted from the first object store to the second object store;
determining whether the object to be synchronized is a new object in the second object store;
if so, displaying a message indicating a file path location where the object is to be placed during synchronization and
transmitting the object from the first object store to the second object store.
8. The method of claim7 and further comprising:
if the object to be synchronized is a new object in the second object store, storing a backup copy of the object.
9. The method of claim8 and further comprising:
providing a display indicating the file path location of the backup copy.
10. A method of synchronizing objects indicative of file data, each object being one of a plurality of object types, between a first object store associated with a first computing device and a second object stare associated with a second computing device, the method comprising:
maintaining a list of available converters for conversion of objects from a first format to a second format, each converter being configured to convert at least one of the object types, wherein the list is maintained based on the object types that the converter is configured to convert;
determining that a selected object is to be synchronized;
determining that the selected object is to be converted prior to synchronization;
examining the list;
generating an exclusion list including object types for which no converter is available;
determining whether the selected object is of an object type included in the exclusion list; and
if not, excluding the selected object from synchronization.
11. The method of claim10 wherein the first computing device comprises a desktop computer and the second computing device comprises a mobile device connectable to the desktop computer and wherein the steps of examining the list, generating an exclusion list including object types for which no converter is available, and determining whether the selected object is of an object type included in the exclusion list, are performed each time the mobile device is connected to the desktop computer.
12. The method of claim11 wherein the step of maintaining the list of available converters is performed each time the mobile device is connected to the desktop computer.
13. The method of claim11 and further comprising:
performing the steps of examining the list, generating an exclusion list including object types for which no converter is available, and determining whether the selected object is of an object type included in the exclusion list for the desktop computer and for the mobile device to create a desktop exclusion list identifying first object types for which no converter is available to convert objects of the first object type to a format suitable for the desktop computer, and a mobile device exclusion list identifying second object types for which no converter is available to convert objects of the second object type to a format suitable for the mobile device.
14. The method of claim13 wherein the list of available converters is maintained in a registry of the desktop computer.
15. The method of claim13 wherein the desktop exclusion list and the mobile device exclusion list are maintained in the registry of the desktop computer.
16. A method of synchronizing objects indicative of file data between a first object store associated with a first computing device and a second object store associated with a second computing device, the first and second computing devices being remotely connectable to one another, the method comprising:
determining that the first and second computing devices are remotely connected to one another;
determining that a selected object is to be synchronized; and
suppressing user interface dialog during synchronization, while allowing other computing operations to take place in the background, based on the determination that the first and second computing devices are remotely connected.
17. The method of claim16 and further comprising:
determining that the selected object is to be converted from a first format to a second format prior to synchronization; and
suppressing conversion progress user interface dialog messages during conversion.
18. The method of claim17 and further comprising:
determining whether a FileFilterOptions application programming interface is present on the first computing device; and
if so, calling a SetFilterOptions method exposed by the FileFilterOptions interface providing a value indicating that the user interface dialog messages are to be suppressed.
19. A method of synchronizing objects indicative of file data between a first object store associated with a first computing device and a second object store associated with a second computing device, one of the first and second computing devices being a mobile device and the other being a non-mobile device, the method comprising:
providing a synchronization manager on the first computing device which determines that a selected object in the second object store is to be synchronized to a corresponding object in the first object store;
providing a file synchronization provider;
indicating to the file synchronization provider that the selected object is to be synchronized;
determining, with the file synchronization provider, that the corresponding object in the first object store is locked;
returning an error message from the file synchronization provider to the synchronization manager indicating that the corresponding object in the first object store is locked;
maintaining, at the synchronization manager, an indication that the selected object is to be synchronized until the corresponding object is unlocked.
20. A method of synchronizing objects indicative of file data between a first object store associated with a first computing device and a second object store associated with a second computing device, the method comprising:
maintaining a folder of objects on the first and second object stores indicative of files to be synchronized; and
excluding from the synchronization process objects indicative of temporary files located in the folder.
21. The method of claim20 wherein the first computing device comprises a desktop computer including a synchronization manager and a file synchronization provider, and further comprising:
providing the file synchronization provider with an enumeration request from the synchronization manager requesting the file synchronization provider to enumerate objects in the folder in order for the synchronization manager to determine which objects in the folder need to be synchronized to corresponding objects in the second object store.
22. The method of claim21 wherein excluding from the synchronization process comprises:
failing to enumerate objects indicative of temporary files in response to the enumeration request.
23. A method of synchronizing objects indicative of file data between a first object store associated with a first computing device and a second object store associated with a second computing device, the method comprising:
providing a synchronization manager configured to provide an enumeration request and maintain a mapping between the objects on the first object store and the objects on the second object store;
providing a file synchronization provider configured to maintain a folder of file objects to be synchronized and to enumerate the file objects in response to the enumeration request such that the synchronization manager can determine which file objects need to be synchronized; and
when the mapping is lost, recovering the mapping by combining the file objects on the second object store with the file objects on the first object store utilizing the file synchronization provider and enumerating the combined files so the synchronization manager can reestablish the mapping, wherein combining includes determining, with the file synchronization provider, which combined file objects are duplicates and deleting one of the duplicates prior to enumerating the file objects.
24. The method of claim23 wherein determining, with the file synchronization provider, which combined file objects are duplicates, comprises:
performing a binary compare of the combined file objects.
US09/176,7061998-10-211998-10-21File object synchronization between a desktop computer and a mobile deviceExpired - LifetimeUS6324544B1 (en)

Priority Applications (1)

Application NumberPriority DateFiling DateTitle
US09/176,706US6324544B1 (en)1998-10-211998-10-21File object synchronization between a desktop computer and a mobile device

Applications Claiming Priority (1)

Application NumberPriority DateFiling DateTitle
US09/176,706US6324544B1 (en)1998-10-211998-10-21File object synchronization between a desktop computer and a mobile device

Publications (1)

Publication NumberPublication Date
US6324544B1true US6324544B1 (en)2001-11-27

Family

ID=22645505

Family Applications (1)

Application NumberTitlePriority DateFiling Date
US09/176,706Expired - LifetimeUS6324544B1 (en)1998-10-211998-10-21File object synchronization between a desktop computer and a mobile device

Country Status (1)

CountryLink
US (1)US6324544B1 (en)

Cited By (309)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US20020032722A1 (en)*2000-09-112002-03-14Avantgo, Inc.Method, system, and computer program product for synchronization of similar data objects with event information
US20020038316A1 (en)*2000-05-192002-03-28Onyon Richard M.Single click data synchronization of public and private data
US20020056075A1 (en)*2000-11-062002-05-09Andrew HamiltonSystem for a run-time engine capable for pager capable remote device
US20020056011A1 (en)*2000-10-162002-05-09Nardone Joseph R.Run-time engine implemented on a computing device allowing synchronization of records during application execution
US20020082252A1 (en)*1998-12-232002-06-27Cytoscan Sciences L.L.C.Methods and compositions for treating conditions of the central and peripheral nervous systems using non-synaptic mechanisms
US20020095590A1 (en)*2001-01-172002-07-18Douceur John R.Exclusive encryption
US20020108091A1 (en)*2001-02-022002-08-08Flanagin Stephen D.Deleting objects from a store of a device
US20020118701A1 (en)*2001-01-022002-08-29AlcatelMethod of synchronizing data on a serial link
US20020138722A1 (en)*2001-03-262002-09-26Douceur John R.Encrypted key cache
US20020174372A1 (en)*2001-05-182002-11-21Buvana VenkataramanMethod and apparatus for providing synchronized data
WO2002073454A3 (en)*2001-03-142002-11-21Microsoft CorpSchemas for a notification platform and related information services
US20020184234A1 (en)*2001-06-012002-12-05Lundberg Steven W.Internet-based patent and trademark applicaton management system
US20020188605A1 (en)*2001-03-262002-12-12Atul AdyaServerless distributed file system
US20020194484A1 (en)*2001-03-212002-12-19Bolosky William J.On-disk file format for serverless distributed file system with signed manifest of file modifications
US20020194209A1 (en)*2001-03-212002-12-19Bolosky William J.On-disk file format for a serverless distributed file system
US20020198962A1 (en)*2001-06-212002-12-26Horn Frederic A.Method, system, and computer program product for distributing a stored URL and web document set
US6505214B1 (en)*1999-09-282003-01-07Microsoft CorporationSelective information synchronization based on implicit user designation
US20030028683A1 (en)*2001-08-012003-02-06Yorke Gordon JamesMethod and system for object cache synchronization
US20030033331A1 (en)*2001-04-102003-02-13Raffaele SenaSystem, method and apparatus for converting and integrating media files
US20030037094A1 (en)*2001-06-062003-02-20Douceur John R.Locating potentially identical objects across multiple computers based on stochastic partitioning of workload
US20030036462A1 (en)*2001-08-202003-02-20Sundaram RavikumarPowered antithrombotic foot mobility device
US20030037022A1 (en)*2001-06-062003-02-20Atul AdyaLocating potentially identical objects across multiple computers
US20030041076A1 (en)*2001-03-142003-02-27Lucovsky Mark H.Schema-based services for identity-based access to calendar data
US20030041065A1 (en)*2001-03-142003-02-27Mark LucovskySchema-based services for identity-based access to contacts data
US20030061365A1 (en)*2001-03-142003-03-27Microsoft CorporationService-to-service communication for network services
US20030069887A1 (en)*2001-03-142003-04-10Lucovsky Mark H.Schema-based services for identity-based access to inbox data
US20030087089A1 (en)*2001-11-082003-05-08Rodriguez Peter A.Roll of adhesive labels for cutting tape
US20030093417A1 (en)*2001-11-152003-05-15Hideko KagimasaMethod and apparatus for document information management
US20030140104A1 (en)*2000-12-062003-07-24Yuko WatanabeApparatus and method for providing contents
US20030172089A1 (en)*2002-03-072003-09-11Douceur John R.File availability in distributed file storage systems
US6625621B2 (en)*2000-01-042003-09-23Starfish Software, Inc.System and methods for a fast and scalable synchronization server
US20030195924A1 (en)*2002-04-152003-10-16Franke Michael MartinMethods and system using a local proxy server to process media data for local area users
US6636897B1 (en)*1999-09-282003-10-21Microsoft CorporationSelective information subset synchronization based on single user action
US20030212819A1 (en)*2002-05-092003-11-13Russell Ryan S.Transferring data wirelessly between digital devices
US6671757B1 (en)*2000-01-262003-12-30Fusionone, Inc.Data transfer and synchronization system
US20040003007A1 (en)*2002-06-282004-01-01Prall John M.Windows management instrument synchronized repository provider
US20040006564A1 (en)*2002-06-282004-01-08Lucovsky Mark H.Schema-based service for identity-based data access to category data
US20040024875A1 (en)*2002-07-302004-02-05Microsoft CorporationSchema-based services for identity-based access to device data
US6697805B1 (en)*2000-04-142004-02-24Microsoft CorporationXML methods and systems for synchronizing multiple computing devices
US6701378B1 (en)1998-05-292004-03-02Research In Motion LimitedSystem and method for pushing information from a host system to a mobile data communication device
WO2004019222A1 (en)*2002-08-212004-03-04Nokia CorporationMethod and apparatus for data transmission
US6704807B1 (en)*1998-03-232004-03-09Microsoft CorporationApplication program interfaces and structures in a resource limited operating system
US20040068523A1 (en)*2002-10-072004-04-08Keith Robert OlanMethod and system for full asynchronous master-to-master file synchronization
US6725262B1 (en)2000-04-272004-04-20Microsoft CorporationMethods and systems for synchronizing multiple computing devices
US20040098413A1 (en)*2002-11-182004-05-20Luosheng PengControlling updates of electronic files
US6748402B1 (en)*2001-04-022004-06-08Bellsouth Intellectual Property CorporationSystem and method for converting and loading interactive pager address books
EP1435585A1 (en)*2003-01-032004-07-07Microsoft CorporationSystem and method for improved synchronization between a server and a client
US20040133643A1 (en)*2003-01-032004-07-08Microsoft CorporationMethod for streaming data between a server and a client
US20040133599A1 (en)*2003-01-032004-07-08Microsoft CorporationSystem and method for improved client server communications of email messages
US20040136698A1 (en)*2002-07-102004-07-15Mock Wayne E.DVD conversion for on demand
US6779019B1 (en)*1998-05-292004-08-17Research In Motion LimitedSystem and method for pushing information from a host system to a mobile data communication device
US6779003B1 (en)*1999-12-162004-08-17Livevault CorporationSystems and methods for backing up data files
EP1452975A2 (en)2003-02-282004-09-01Microsoft CorporationMethod for managing file replication in applications
GB2399663A (en)*2002-11-222004-09-22Sun Microsystems IncSynchronising content between two sources using profiles
US20040193731A1 (en)*2003-03-312004-09-30Larry MitchellUniversal personal information connector architecture
US20040210641A1 (en)*1998-10-122004-10-21Charles WuSystem and method for synchronizing objects between two devices
US20040268418A1 (en)*2003-06-302004-12-30Gray James HaroldInteractive content with enhanced network operator control
US20050027755A1 (en)*2003-07-312005-02-03Shah Ashish B.Systems and methods for synchronizing with multiple data stores
US20050027716A1 (en)*2003-08-012005-02-03Microsoft Corporation.Unified contact list
US20050037787A1 (en)*2003-06-272005-02-17Rosett-Wireless CorporationWireless intelligent portable-server system (WIPSS)
US20050044057A1 (en)*2003-08-202005-02-24Microsoft CorporationMethod and system for collecting information about applications on a computer system
US6879996B1 (en)*2000-09-132005-04-12Edward W. LavesMethod and apparatus for displaying personal digital assistant synchronization data using primary and subordinate data fields
US6917950B2 (en)*2001-01-102005-07-12Intel CorporationModifying a shared resource
WO2005066836A1 (en)*2003-12-242005-07-21Nokia CorporationFile synchronisation
US6925476B1 (en)2000-08-172005-08-02Fusionone, Inc.Updating application data including adding first change log to aggreagate change log comprising summary of changes
US20050193031A1 (en)*1999-12-162005-09-01Livevault CorporationSystems and methods for backing up data files
US6941510B1 (en)*2000-06-062005-09-06Groove Networks, Inc.Method and apparatus for efficient management of XML documents
US6944636B1 (en)2004-04-302005-09-13Microsoft CorporationMaintaining time-date information for syncing low fidelity devices
US20050223085A1 (en)*2004-03-112005-10-06Microsoft CorporationRapidly obtaining a subset of message data from a server for filtering
US20050234961A1 (en)*2004-04-162005-10-20Pinnacle Systems, Inc.Systems and Methods for providing a proxy for a shared file system
US20050246451A1 (en)*2004-05-032005-11-03Microsoft CorporationBackground transcoding
US20050251414A1 (en)*2004-04-302005-11-10Microsoft CorporationDetermining when a low fidelity property value has changed during a sync
US20050262310A1 (en)*2004-04-302005-11-24Starbuck Bryan TMethods and systems for halting synchronization loops in a distributed system
US20050289196A1 (en)*2004-06-282005-12-29Microsoft CorporationDetermining when a low fidelity property value has changed during a SYNC
US20050289194A1 (en)*2004-06-282005-12-29Microsoft CorporationPreserving memory resources by limiting time-date information for a subset of properties
US20060020972A1 (en)*2004-07-262006-01-26Microsoft CorporationData broadcasting receiver power management
US20060023730A1 (en)*2004-07-272006-02-02Microsoft CorporationDifferential update for data broadcasting
US20060028396A1 (en)*2004-04-302006-02-09Starbuck Bryan TDetecting low fidelity sync data
US20060041502A1 (en)*2004-08-212006-02-23Blair William RCost management file translation methods, systems, and apparatuses for extended commerce
US7007041B2 (en)2000-01-252006-02-28Fusionone, Inc.Synchronization system application object interface
US7010303B2 (en)2000-12-222006-03-07Research In Motion LimitedWireless router system and method
US20060079214A1 (en)*2004-10-122006-04-13Nokia CorporationMethod and apparatus for showing wireless mobile device data content on an external viewer
US7035878B1 (en)2000-01-252006-04-25Fusionone, Inc.Base rolling engine for data transfer and synchronization system
US20060101445A1 (en)*2004-10-222006-05-11International Business Machines CorporationModel extension framework
US20060101091A1 (en)*2004-10-222006-05-11International Business Machines CorporationRecovering references in an extended model
US7047259B1 (en)*2002-06-252006-05-16Oracle International CorporationRich cross object navigation in mobile applications
US20060149828A1 (en)*2004-12-162006-07-06Dan KikinisMethod and system for conducting client-to-server or peer-to-peer or mixed mode data synchronization
US7076567B1 (en)2002-04-252006-07-11Oracle International CorporationSimplified application object data synchronization for optimized data storage
US20060161538A1 (en)*2005-01-192006-07-20Microsoft CorporationTranscode matrix
US7103656B2 (en)2001-02-202006-09-05Research In Motion LimitedSystem and method for administrating a wireless communication network
US7107341B2 (en)2001-12-072006-09-12Research In Motion LimitedSystem and method of managing information distribution to mobile stations
US7111039B2 (en)2002-11-202006-09-19Microsoft CorporationSystem and method for using packed compressed buffers for improved client server communications
US20060224620A1 (en)*2005-03-292006-10-05Microsoft CorporationAutomatic rules-based device synchronization
US20060230349A1 (en)*2005-04-062006-10-12Microsoft CorporationCoalesced per-file device synchronization status
US20060232449A1 (en)*2005-04-182006-10-19Microsoft CorporationRetention of information about digital-media rights in transformed digital media content
US20060253556A1 (en)*2005-04-182006-11-09Kenneth WallisSystem and method of device-to-server registration
US20060259523A1 (en)*2005-04-182006-11-16Kenneth WallisSystem and method of synchronization of internal data cache with wireless device application data repositories
US20060277223A1 (en)*2005-06-032006-12-07Microsoft CorporationPersistent storage file change tracking
US7209949B2 (en)*1998-05-292007-04-24Research In Motion LimitedSystem and method for synchronizing information between a host system and a mobile data communication device
US20070143071A1 (en)*2005-12-072007-06-21Katrina DelargyActivity recording module
US20070140108A1 (en)*2000-05-012007-06-21Palm, Inc.Swapping an operational networked electronic system for a nonoperational networked electronic system
US20070139189A1 (en)*2005-12-052007-06-21Helmig Kevin SMulti-platform monitoring system and method
US20070150507A1 (en)*2000-11-062007-06-28Joseph NardoneSystem for a configurable open database connectivity conduit
US20070155506A1 (en)*2005-12-152007-07-05Dale MalikSystem, method and computer program for enabling an interactive game
US20070168884A1 (en)*2006-01-132007-07-19Phillip WeeksSystems, methods, and computer program products for providing interactive content
US20070177571A1 (en)*2002-10-072007-08-02Michael CaulfieldMobile data distribution
US20070180075A1 (en)*2002-04-252007-08-02Doug ChasmanSystem and method for synchronization of version annotated objects
US20070204000A1 (en)*2002-02-282007-08-30Sandisk Il Ltd.Device, System And Method For Data Exchange
US7266365B2 (en)1998-05-292007-09-04Research In Motion LimitedSystem and method for delayed transmission of bundled command messages
US20070234278A1 (en)*2006-03-022007-10-04Microsoft CorporationManaging source code in a model-based development environment
US7283808B2 (en)2001-01-182007-10-16Research In Motion LimitedSystem, method and mobile device for remote control of a voice mail system
US7295836B2 (en)2001-03-092007-11-13Research In Motion LimitedAdvanced voice and data operations in a mobile data communication device
US20070282848A1 (en)*2006-05-302007-12-06Microsoft CorporationTwo-way synchronization of media data
US20080005358A1 (en)*2006-06-302008-01-03Samsung Electronics Co., Ltd.Method and apparatus for synchronizing content directory service in universal plug and play network
US7317699B2 (en)2001-10-262008-01-08Research In Motion LimitedSystem and method for controlling configuration settings for mobile communication devices and services
US20080052698A1 (en)*2006-08-252008-02-28Microsoft CorporationProviding firmware updates to portable media devices
WO2008054068A1 (en)2006-10-312008-05-08Samsung Electronics Co, . Ltd.Method and apparatus for preventing duplicate saving of resource between universal plug and play devices providing content directory service
US20080109492A1 (en)*2006-11-032008-05-08Koo Min-SooPortable content player, content storage device, and method of synchronizing content state lists between portable content player and content storage device
US20080114830A1 (en)*2006-11-152008-05-15Palm, Inc.Intelligent Migration Between Devices Having Different Hardware or Software Configuration
US7386588B2 (en)1998-05-292008-06-10Research In Motion LimitedSystem and method for pushing information from a host system to a mobile data communication device
US20080172372A1 (en)*2007-01-172008-07-17Google Inc.Expandable Homepage Modules
US20080172373A1 (en)*2007-01-172008-07-17Google Inc.Synchronization of Fixed and Mobile Data
US20080172374A1 (en)*2007-01-172008-07-17Google Inc.Presentation of Local Results
US20080172362A1 (en)*2007-01-172008-07-17Google Inc.Providing Relevance-Ordered Categories of Information
US20080172665A1 (en)*2000-05-162008-07-17Palmsource, Inc.Sync-time read only memory image binding for limited resource devices
US20080172357A1 (en)*2007-01-172008-07-17Google Inc.Location in search queries
US20080189440A1 (en)*2007-02-022008-08-07Palm, Inc.Multi-way, Peer-to-Peer Synchronization
US20080231812A1 (en)*2007-03-202008-09-25Seiko Epson CorporationProjector
US7430425B2 (en)2005-05-172008-09-30Telecommunication Systems, Inc.Inter-carrier digital message with user data payload service providing phone number only experience
US20080270493A1 (en)*2006-10-312008-10-30Rebit, Inc.System for automatically replicating a customer's personalized computer system image on a new computer system
US20080281873A1 (en)*2006-01-132008-11-13Brother Kogyo Kabushiki KaishaDocument viewing terminal operating device and storage medium storing program for operating document viewing terminal
CN100440206C (en)*2003-07-292008-12-03微软公司Synchronizing logical views independent of physical storage representations
US20080306901A1 (en)*2007-06-082008-12-11Hong Fu Jin Precision Industry (Shen Zhen) Co., Ltd.File processing device and method
EP2007130A1 (en)*2003-09-152008-12-24United Video Properties, Inc.Systems amd methods for automatically exporting digital content using an interactive television application
US7509352B1 (en)*2003-06-302009-03-24Microsoft CorporationMethod and apparatus for record synchronization with conflict resolution
US7529780B1 (en)*2005-12-302009-05-05Google Inc.Conflict management during data object synchronization between client and server
US20090138808A1 (en)*2003-09-052009-05-28Groove Networks, Inc.Method and apparatus for providing attributes of a collaboration system in an operating system folder-based file system
US20090157688A1 (en)*2004-11-242009-06-18Koninklijke Philips Electronics, N.V.Usage history based content exchange between a base system and a mobile system
US20090187621A1 (en)*2008-01-222009-07-23Apfel Darren ACurrent Updates
US7587446B1 (en)2000-11-102009-09-08Fusionone, Inc.Acquisition and synchronization of digital media to a personal information space
US20090240628A1 (en)*2008-03-202009-09-24Co-Exprise, Inc.Method and System for Facilitating a Negotiation
US7606936B2 (en)1998-05-292009-10-20Research In Motion LimitedSystem and method for redirecting data to a wireless device over a plurality of communication paths
USRE41006E1 (en)2001-09-052009-11-24Telecommunication Systems, Inc.Inter-carrier short messaging service providing phone number only experience
US20090307284A1 (en)*2008-06-052009-12-10Palm, Inc.Data backup for a mobile computing device
US20090307333A1 (en)*2008-06-052009-12-10Palm, Inc.Restoring of data to mobile computing device
US7634509B2 (en)2003-11-072009-12-15Fusionone, Inc.Personal information space management system and method
US7643824B2 (en)2004-02-272010-01-05Cooligy IncWireless telephone data backup system
US7653631B1 (en)*2001-05-102010-01-26Foundationip, LlcMethod for synchronizing information in multiple case management systems
US20100049759A1 (en)*2001-04-042010-02-25Palmsource, Inc.One-to-many device synchronization using downloaded/shared client software
US20100057794A1 (en)*2006-10-312010-03-04Rebit, Inc.System for automatically shadowing data and file directory structures that are recorded on a computer memory
US20100064079A1 (en)*2008-09-082010-03-11International Business Machines CorporationUSB Devices Pre-Configuration For KVM Switch
US20100082534A1 (en)*2008-09-302010-04-01Microsoft CorporationMethod and System of Managing Conflicts for a Set of Synchronized Folders
US7716312B2 (en)2002-11-132010-05-11Avid Technology, Inc.Method and system for transferring large data files over parallel connections
CN1677355B (en)*2004-03-312010-05-26深圳市朗科科技股份有限公司Method system and apparatus for synchronous update of files
US7738766B2 (en)2005-04-182010-06-15Microsoft CorporationSanctioned transcoding of digital-media content
US20100174684A1 (en)*2006-10-312010-07-08Rebit, Inc.System for automatically shadowing encrypted data and file directory structures for a plurality of network-connected computers using a network-attached memory with single instance storage
US7818435B1 (en)2000-12-142010-10-19Fusionone, Inc.Reverse proxy mechanism for retrieving electronic content associated with a local network
US7853563B2 (en)2005-08-012010-12-14Seven Networks, Inc.Universal data aggregation
US7860832B2 (en)2003-09-302010-12-28Iron Mountain IncorporatedSystems and methods for maintaining data files
US7870496B1 (en)2009-01-292011-01-11Jahanzeb Ahmed SherwaniSystem using touchscreen user interface of a mobile device to remotely control a host computer
US7895334B1 (en)2000-07-192011-02-22Fusionone, Inc.Remote access communication architecture apparatus and method
US7917505B2 (en)2005-08-012011-03-29Seven Networks, Inc.Methods for publishing content
US7917468B2 (en)2005-08-012011-03-29Seven Networks, Inc.Linking of personal information management data
US7924913B2 (en)2005-09-152011-04-12Microsoft CorporationNon-realtime data transcoding of multimedia content
US20110167049A1 (en)*2010-01-052011-07-07Apple Inc.File system management techniques for computing environments and systems
US8001177B2 (en)*2001-06-182011-08-16Hewlett-Packard Development Company, L.P.Method and apparatus for automated personal information management data transfer for a wireless enabled handheld
US8010082B2 (en)2004-10-202011-08-30Seven Networks, Inc.Flexible billing architecture
US8010491B2 (en)2003-02-282011-08-30Microsoft CorporationMethod for managing multiple file states for replicated files
US20110219041A1 (en)*2010-03-052011-09-08Hong Fu Jin Precision Industry (Shenzhen) Co., Ltd.Electronic reader capable of recording comments and amendments and method thereof
US8064583B1 (en)2005-04-212011-11-22Seven Networks, Inc.Multiple data store authentication
US8065710B2 (en)2006-03-022011-11-22At& T Intellectual Property I, L.P.Apparatuses and methods for interactive communication concerning multimedia content
US8069166B2 (en)2005-08-012011-11-29Seven Networks, Inc.Managing user-to-user contact with inferred presence information
US8073954B1 (en)2000-07-192011-12-06Synchronoss Technologies, Inc.Method and apparatus for a secure remote access system
US8078158B2 (en)2008-06-262011-12-13Seven Networks, Inc.Provisioning applications for a mobile device
US8107921B2 (en)2008-01-112012-01-31Seven Networks, Inc.Mobile virtual network operator
US8116214B2 (en)2004-12-032012-02-14Seven Networks, Inc.Provisioning of e-mail settings for a mobile terminal
US8127342B2 (en)2002-01-082012-02-28Seven Networks, Inc.Secure end-to-end transport through intermediary nodes
US8156074B1 (en)2000-01-262012-04-10Synchronoss Technologies, Inc.Data transfer and synchronization system
US8166263B2 (en)*2008-07-032012-04-24Commvault Systems, Inc.Continuous data protection over intermittent connections, such as continuous data backup for laptops or wireless devices
US8166164B1 (en)2010-11-012012-04-24Seven Networks, Inc.Application and network-based long poll request detection and cacheability assessment therefor
US8181111B1 (en)2007-12-312012-05-15Synchronoss Technologies, Inc.System and method for providing social context to digital activity
US8190701B2 (en)2010-11-012012-05-29Seven Networks, Inc.Cache defeat detection and caching of content addressed by identifiers intended to defeat cache
US8209709B2 (en)2005-03-142012-06-26Seven Networks, Inc.Cross-platform event engine
US8244043B2 (en)2010-09-172012-08-14Google Inc.Moving information between computing devices
USRE43577E1 (en)2000-05-012012-08-14Hewlett-Packard Development Company, L.P.Swapping a nonoperational networked electronic system for an operational networked electronic system
US8255006B1 (en)2009-11-102012-08-28Fusionone, Inc.Event dependent notification system and method
US8286203B2 (en)2003-12-192012-10-09At&T Intellectual Property I, L.P.System and method for enhanced hot key delivery
US8285683B2 (en)2006-12-222012-10-09Commvault Systems, Inc.System and method for storing redundant information
NL2006626C2 (en)*2011-04-192012-10-22Iphion B V METHOD AND SYSTEM FOR SYNCHRONIZING FILES
US8301588B2 (en)2008-03-072012-10-30Microsoft CorporationData storage for file updates
US8316098B2 (en)2011-04-192012-11-20Seven Networks Inc.Social caching for device resource sharing and management
US8326985B2 (en)2010-11-012012-12-04Seven Networks, Inc.Distributed management of keep-alive message signaling for mobile network resource conservation and optimization
US8346768B2 (en)2009-04-302013-01-01Microsoft CorporationFast merge support for legacy documents
US8352418B2 (en)2007-11-092013-01-08Microsoft CorporationClient side locking
US8352870B2 (en)2008-04-282013-01-08Microsoft CorporationConflict resolution
US8364181B2 (en)2007-12-102013-01-29Seven Networks, Inc.Electronic-mail filtering for mobile devices
US8365240B2 (en)2005-04-182013-01-29Research In Motion LimitedMethod for providing wireless application privilege management
US20130054519A1 (en)*2011-08-312013-02-28Fujitsu LimitedFile synchronization method and file synchronization server apparatus
US8392677B2 (en)2006-12-042013-03-05Commvault Systems, Inc.Systems and methods for creating copies of data, such as archive copies
US8401996B2 (en)2009-03-302013-03-19Commvault Systems, Inc.Storing a variable number of instances of data objects
US8402503B2 (en)2006-02-082013-03-19At& T Intellectual Property I, L.P.Interactive program manager and methods for presenting program content
US8412677B2 (en)2008-11-262013-04-02Commvault Systems, Inc.Systems and methods for byte-level or quasi byte-level single instancing
US8417823B2 (en)2010-11-222013-04-09Seven Network, Inc.Aligning data transfer to optimize connections established for transmission over a wireless network
US8417666B2 (en)2008-06-252013-04-09Microsoft CorporationStructured coauthoring
US8429753B2 (en)2008-05-082013-04-23Microsoft CorporationControlling access to documents using file locks
US8438633B1 (en)2005-04-212013-05-07Seven Networks, Inc.Flexible real-time inbox access
TWI396094B (en)*2009-03-102013-05-11Inventec Appliances CorpMessage display and reply system and method thereof
US20130124494A1 (en)*2007-05-252013-05-16Google Inc., A Delaware CorporationSharing of Profile Information with Content Providers
US8484314B2 (en)2010-11-012013-07-09Seven Networks, Inc.Distributed caching in a wireless network of content delivered for a mobile application over a long-held request
US8490145B2 (en)1995-04-252013-07-16At&T Intellectual Property I, L.P.System and method for providing television services
CN103226603A (en)*2013-04-272013-07-31南京信息工程大学File synchronization update method and system based on portable storage device
US8516055B2 (en)1998-05-292013-08-20Research In Motion LimitedSystem and method for pushing information from a host system to a mobile data communication device in a wireless data network
US20130246353A1 (en)*2012-03-132013-09-19Microsoft CorporationSynchronizing local and remote data
US8572576B2 (en)2001-03-142013-10-29Microsoft CorporationExecuting dynamically assigned functions while providing services
US8578120B2 (en)2009-05-222013-11-05Commvault Systems, Inc.Block-level single instancing
US8595182B1 (en)2007-11-072013-11-26Google Inc.Network file association
US8611873B2 (en)2004-05-122013-12-17Synchronoss Technologies, Inc.Advanced contact identification system
US8615566B1 (en)2001-03-232013-12-24Synchronoss Technologies, Inc.Apparatus and method for operational support of remote network systems
US8621075B2 (en)2011-04-272013-12-31Seven Metworks, Inc.Detecting and preserving state for satisfying application requests in a distributed proxy and cache system
US8620861B1 (en)2008-09-302013-12-31Google Inc.Preserving file metadata during atomic save operations
US8620286B2 (en)2004-02-272013-12-31Synchronoss Technologies, Inc.Method and system for promoting and transferring licensed content and applications
US8631097B1 (en)2012-10-112014-01-14Google Inc.Methods and systems for finding a mobile and non-mobile page pair
US8635643B2 (en)2003-06-302014-01-21At&T Intellectual Property I, L.P.System and method for providing interactive media content over a network
US8645471B2 (en)2003-07-212014-02-04Synchronoss Technologies, Inc.Device message management system
US8693494B2 (en)2007-06-012014-04-08Seven Networks, Inc.Polling
US8700728B2 (en)2010-11-012014-04-15Seven Networks, Inc.Cache defeat detection and caching of content addressed by identifiers intended to defeat cache
US20140108617A1 (en)*2012-07-122014-04-17Unisys CorporationData storage in cloud computing
US8750123B1 (en)2013-03-112014-06-10Seven Networks, Inc.Mobile device equipped with mobile network congestion recognition to make intelligent decisions regarding connecting to an operator network
US8761756B2 (en)2005-06-212014-06-24Seven Networks International OyMaintaining an IP connection in a mobile network
US20140181213A1 (en)*2012-12-212014-06-26Dropbox, Inc.Prioritizing structural operations and distributing changes in a synced online content management system
US8775631B2 (en)2012-07-132014-07-08Seven Networks, Inc.Dynamic bandwidth adjustment for browsing or streaming activity in a wireless network based on prediction of user behavior when interacting with mobile applications
US8774844B2 (en)2007-06-012014-07-08Seven Networks, Inc.Integrated messaging
US8787947B2 (en)2008-06-182014-07-22Seven Networks, Inc.Application discovery on mobile devices
US8793305B2 (en)2007-12-132014-07-29Seven Networks, Inc.Content delivery to a mobile device from a content service
US8799410B2 (en)2008-01-282014-08-05Seven Networks, Inc.System and method of a relay server for managing communications and notification between a mobile device and a web access server
US8805334B2 (en)2004-11-222014-08-12Seven Networks, Inc.Maintaining mobile terminal information for secure communications
US8812695B2 (en)2012-04-092014-08-19Seven Networks, Inc.Method and system for management of a virtual network connection without heartbeat messages
US8825758B2 (en)2007-12-142014-09-02Microsoft CorporationCollaborative authoring modes
US8825594B2 (en)2008-05-082014-09-02Microsoft CorporationCaching infrastructure
US8832228B2 (en)2011-04-272014-09-09Seven Networks, Inc.System and method for making requests on behalf of a mobile device based on atomic processes for mobile network traffic relief
US8838783B2 (en)2010-07-262014-09-16Seven Networks, Inc.Distributed caching for resource and mobile network traffic management
US8843153B2 (en)2010-11-012014-09-23Seven Networks, Inc.Mobile traffic categorization and policy for network use optimization while preserving user experience
US8849902B2 (en)2008-01-252014-09-30Seven Networks, Inc.System for providing policy based content service in a mobile network
US8861354B2 (en)2011-12-142014-10-14Seven Networks, Inc.Hierarchies and categories for management and deployment of policies for distributed wireless traffic optimization
US8868753B2 (en)2011-12-062014-10-21Seven Networks, Inc.System of redundantly clustered machines to provide failover mechanisms for mobile traffic management and network resource conservation
US8874761B2 (en)2013-01-252014-10-28Seven Networks, Inc.Signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols
US8886176B2 (en)2010-07-262014-11-11Seven Networks, Inc.Mobile application traffic optimization
US8903954B2 (en)2010-11-222014-12-02Seven Networks, Inc.Optimization of resource polling intervals to satisfy mobile device requests
US8909759B2 (en)2008-10-102014-12-09Seven Networks, Inc.Bandwidth measurement
US8909202B2 (en)2012-01-052014-12-09Seven Networks, Inc.Detection and management of user interactions with foreground applications on a mobile device in distributed caching
US8918503B2 (en)2011-12-062014-12-23Seven Networks, Inc.Optimization of mobile traffic directed to private networks and operator configurability thereof
US8935492B2 (en)2010-09-302015-01-13Commvault Systems, Inc.Archiving data objects using secondary copies
USRE45348E1 (en)2004-10-202015-01-20Seven Networks, Inc.Method and apparatus for intercepting events in a communication system
US8943428B2 (en)2010-11-012015-01-27Synchronoss Technologies, Inc.System for and method of field mapping
US8949179B2 (en)2012-04-232015-02-03Google, Inc.Sharing and synchronizing electronically stored files
US8965847B1 (en)*2011-10-282015-02-24Oxygen Cloud, Inc.Independent synchronization of file data and file metadata
US8984581B2 (en)2011-07-272015-03-17Seven Networks, Inc.Monitoring mobile application activities for malicious traffic on a mobile device
US9002828B2 (en)2007-12-132015-04-07Seven Networks, Inc.Predictive content delivery
US9009250B2 (en)2011-12-072015-04-14Seven Networks, Inc.Flexible and dynamic integration schemas of a traffic management system with various network operators for network traffic alleviation
US20150106327A1 (en)*2013-10-102015-04-16Adobe Systems IncorporatedSelf healing cluster of a content management system
US9015181B2 (en)2008-09-262015-04-21Commvault Systems, Inc.Systems and methods for managing single instancing data
US9020890B2 (en)2012-03-302015-04-28Commvault Systems, Inc.Smart archiving and data previewing for mobile devices
US9021021B2 (en)2011-12-142015-04-28Seven Networks, Inc.Mobile network reporting and usage analytics system and method aggregated using a distributed traffic optimization system
US9043731B2 (en)2010-03-302015-05-26Seven Networks, Inc.3D mobile user interface with configurable workspace management
US9043433B2 (en)2010-07-262015-05-26Seven Networks, Inc.Mobile network traffic coordination across multiple applications
US9055046B2 (en)*2001-06-212015-06-09Telefonaktiebolaget L M Ericsson (Publ)Safe output protocol for files to multiple destinations with integrity check
US9055102B2 (en)2006-02-272015-06-09Seven Networks, Inc.Location-based operations and messaging
US9060032B2 (en)2010-11-012015-06-16Seven Networks, Inc.Selective data compression by a distributed traffic management system to reduce mobile data traffic and signaling traffic
US9065765B2 (en)2013-07-222015-06-23Seven Networks, Inc.Proxy server associated with a mobile carrier for enhancing mobile traffic management in a mobile network
US9077630B2 (en)2010-07-262015-07-07Seven Networks, Inc.Distributed implementation of dynamic wireless traffic policy
US9098495B2 (en)2008-06-242015-08-04Commvault Systems, Inc.Application-aware and remote single instance data management
US20150278231A1 (en)*2014-03-282015-10-01Vayavya Labs Private. LimitedSystem and method for customizing archive of a device driver generator tool for a user
US9161258B2 (en)2012-10-242015-10-13Seven Networks, LlcOptimized and selective management of policy deployment to mobile clients in a congested network to prevent further aggravation of network congestion
US9173128B2 (en)2011-12-072015-10-27Seven Networks, LlcRadio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol
US9203864B2 (en)2012-02-022015-12-01Seven Networks, LlcDynamic categorization of applications for network access in a mobile network
US9239846B2 (en)2012-04-232016-01-19Google Inc.Sharing and synchronizing electronically stored files
US9241314B2 (en)2013-01-232016-01-19Seven Networks, LlcMobile device with application or context aware fast dormancy
US9244934B2 (en)2012-04-232016-01-26Google Inc.Sharing and synchronizing electronically stored files
US9258372B2 (en)2007-05-092016-02-09Blackberry LimitedWireless router system and method
US9275163B2 (en)2010-11-012016-03-01Seven Networks, LlcRequest and response characteristics based adaptation of distributed caching in a mobile network
US9307493B2 (en)2012-12-202016-04-05Seven Networks, LlcSystems and methods for application management of mobile device radio state promotion and demotion
US9325662B2 (en)2011-01-072016-04-26Seven Networks, LlcSystem and method for reduction of mobile network traffic used for domain name system (DNS) queries
US9326189B2 (en)2012-02-032016-04-26Seven Networks, LlcUser as an end point for profiling and optimizing the delivery of content and data in a wireless network
US9330196B2 (en)2010-11-012016-05-03Seven Networks, LlcWireless traffic management system cache optimization using http headers
US9363481B2 (en)2005-04-222016-06-07Microsoft Technology Licensing, LlcProtected media pipeline
US9374435B2 (en)1998-05-292016-06-21Blackberry LimitedSystem and method for using trigger events and a redirector flag to redirect messages
US9436485B2 (en)2011-08-092016-09-06International Business Machines CorporationSynchronization of data between an electronic computing mobile device and an electronic computing dockstation
US9436804B2 (en)2005-04-222016-09-06Microsoft Technology Licensing, LlcEstablishing a unique session key using a hardware functionality scan
US9529818B2 (en)2012-04-232016-12-27Google Inc.Sharing and synchronizing electronically stored files
US9542076B1 (en)2004-05-122017-01-10Synchronoss Technologies, Inc.System for and method of updating a personal profile
US9633022B2 (en)2012-12-282017-04-25Commvault Systems, Inc.Backup and restoration for a deduplicated file system
US9652518B2 (en)2007-01-072017-05-16Apple Inc.Synchronization methods and systems
US9678978B2 (en)2012-12-312017-06-13Carbonite, Inc.Systems and methods for automatic synchronization of recently modified data
US20170286195A1 (en)*2014-09-112017-10-05Systemic Management Science CorporationInformation object system
EP2115627B1 (en)*2007-01-072017-10-18Apple Inc.Synchronization methods and systems
US9832095B2 (en)2011-12-142017-11-28Seven Networks, LlcOperation modes for mobile traffic optimization and concurrent management of optimized and non-optimized traffic
US20170364496A1 (en)*2013-03-152017-12-21Systemic Management Science CorporationVisualization interface for information object system
US9886309B2 (en)2002-06-282018-02-06Microsoft Technology Licensing, LlcIdentity-based distributed computing for device resources
US9904737B2 (en)2013-05-142018-02-27Samsung Electronics Co., Ltd.Method for providing contents curation service and an electronic device thereof
US9934240B2 (en)2008-09-302018-04-03Google LlcOn demand access to client cached files
US20180278490A1 (en)*2009-05-042018-09-27Dropbox, Inc.User interface for viewing items in a synchronization system
US10089337B2 (en)2015-05-202018-10-02Commvault Systems, Inc.Predicting scale of data migration between production and archive storage systems, such as for enterprise customers having large and/or numerous files
US10263899B2 (en)2012-04-102019-04-16Seven Networks, LlcEnhanced customer service for mobile carriers using real-time and historical mobile application and traffic or optimization data associated with mobile devices in a mobile network
US10324897B2 (en)2014-01-272019-06-18Commvault Systems, Inc.Techniques for serving archived electronic mail
US10565168B2 (en)2017-05-022020-02-18Oxygen Cloud, Inc.Independent synchronization with state transformation
US10970255B1 (en)*2018-07-272021-04-06Veeva Systems Inc.System and method for synchronizing data between a customer data management system and a data warehouse
US10997202B1 (en)2018-07-272021-05-04Veeva Systems Inc.System and method for synchronizing data between a customer data management system and a data warehouse
US11593217B2 (en)2008-09-262023-02-28Commvault Systems, Inc.Systems and methods for managing single instancing data
US12306799B2 (en)2020-12-232025-05-20Dropbox, Inc.Ignore objects from synchronizing to content management system

Citations (15)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
WO1994015294A1 (en)1992-12-231994-07-07Surefind CorporationInteractive computer system with multi-protocol capability
US5392390A (en)1992-04-101995-02-21Intellilink Corp.Method for mapping, translating, and dynamically reconciling data between disparate computer platforms
US5630081A (en)1995-09-071997-05-13Puma Technology, Inc.Connection resource manager displaying link-status information using a traffic light iconic representation
WO1997023853A1 (en)1995-12-221997-07-03Philips Electronics N.V.System for communicating between a group of apparatuses
US5664176A (en)*1992-10-161997-09-02International Business Machines CorporationMoving write lock for replicated objects
US5664228A (en)1995-08-091997-09-02Microsoft CorporationPortable information device and system and method for downloading executable instructions from a computer to the portable information device
US5666530A (en)*1992-12-021997-09-09Compaq Computer CorporationSystem for automatic synchronization of common file between portable computer and host computer via communication channel selected from a plurality of usable channels there between
US5684990A (en)1995-01-111997-11-04Puma Technology, Inc.Synchronization of disparate databases
US5710917A (en)*1995-06-071998-01-20International Business Machines CorporationMethod for deriving data mappings and data aliases
US5799323A (en)*1995-01-241998-08-25Tandem Computers, Inc.Remote duplicate databased facility with triple contingency protection
US5832510A (en)*1995-07-051998-11-03Hitachi, Ltd.Information processing system enabling access to different types of files, control method for the same and storage medium for storing programs to control the same
US5926816A (en)*1996-10-091999-07-20Oracle CorporationDatabase Synchronizer
US6000000A (en)*1995-10-131999-12-073Com CorporationExtendible method and apparatus for synchronizing multiple files on two different computer systems
US6026401A (en)*1997-10-142000-02-15International Business Machines CorporationLocking tool data objects in a framework environment
US6052735A (en)*1997-10-242000-04-18Microsoft CorporationElectronic mail object synchronization between a desktop computer and mobile device

Patent Citations (17)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US5701423A (en)1992-04-101997-12-23Puma Technology, Inc.Method for mapping, translating, and dynamically reconciling data between disparate computer platforms
US5392390A (en)1992-04-101995-02-21Intellilink Corp.Method for mapping, translating, and dynamically reconciling data between disparate computer platforms
US5664176A (en)*1992-10-161997-09-02International Business Machines CorporationMoving write lock for replicated objects
US5928329A (en)*1992-12-021999-07-27Compaq Computer CorporationSystem for automatic synchronization of common file between portable computer and host computer via communication channel selected from a plurality of usable channels therebetween
US5666530A (en)*1992-12-021997-09-09Compaq Computer CorporationSystem for automatic synchronization of common file between portable computer and host computer via communication channel selected from a plurality of usable channels there between
WO1994015294A1 (en)1992-12-231994-07-07Surefind CorporationInteractive computer system with multi-protocol capability
US5684990A (en)1995-01-111997-11-04Puma Technology, Inc.Synchronization of disparate databases
US5799323A (en)*1995-01-241998-08-25Tandem Computers, Inc.Remote duplicate databased facility with triple contingency protection
US5710917A (en)*1995-06-071998-01-20International Business Machines CorporationMethod for deriving data mappings and data aliases
US5832510A (en)*1995-07-051998-11-03Hitachi, Ltd.Information processing system enabling access to different types of files, control method for the same and storage medium for storing programs to control the same
US5664228A (en)1995-08-091997-09-02Microsoft CorporationPortable information device and system and method for downloading executable instructions from a computer to the portable information device
US5630081A (en)1995-09-071997-05-13Puma Technology, Inc.Connection resource manager displaying link-status information using a traffic light iconic representation
US6000000A (en)*1995-10-131999-12-073Com CorporationExtendible method and apparatus for synchronizing multiple files on two different computer systems
WO1997023853A1 (en)1995-12-221997-07-03Philips Electronics N.V.System for communicating between a group of apparatuses
US5926816A (en)*1996-10-091999-07-20Oracle CorporationDatabase Synchronizer
US6026401A (en)*1997-10-142000-02-15International Business Machines CorporationLocking tool data objects in a framework environment
US6052735A (en)*1997-10-242000-04-18Microsoft CorporationElectronic mail object synchronization between a desktop computer and mobile device

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"In Defense of the Personal Digital Assistant", by Jon Hulak, Business Communications Review, Oct. 1995, pp. 45-48.
"Managing contacts in Windows 95", by Kevin O'Connor and Maheem Zaman, PC User, Apr. 1996, p. 79.
"Method for Personal Digital Assistance Calendar Expert Nomenclature", IBM Technical Disclosure Bulletin, vol. 37, No. 03, Mar. 1994, p. 481.
"The CallManager system: A plaftorm for intelligent telecommunications services", by David J. Pepper, Sharad Singhal and Scott Soper, Speech Communications, 23 (1997) pp. 129-139.

Cited By (679)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US8490145B2 (en)1995-04-252013-07-16At&T Intellectual Property I, L.P.System and method for providing television services
US8966542B2 (en)1995-04-252015-02-24At&T Intellectual Property I, L.P.System and method for providing media content and interactive content
US8914839B2 (en)1995-04-252014-12-16At&T Intellectual Property I, L.P.System and method for providing television services
US8819758B2 (en)1995-04-252014-08-26At&T Intellectual Property I, L.P.System and method for providing television services
US20050097577A1 (en)*1998-03-232005-05-05Microsoft CorporationApplication program interfaces and structures in a resource limited operating system
US7802266B2 (en)1998-03-232010-09-21Microsoft CorporationApplication program interfaces and structures in a resource limited operating system
US20050066340A1 (en)*1998-03-232005-03-24Microsoft CorporationApplication program interfaces and structures in a resource limited operating system
US7472067B2 (en)1998-03-232008-12-30Microsoft CorporationApplication program interfaces and structures in a resource limited operating system
US6704807B1 (en)*1998-03-232004-03-09Microsoft CorporationApplication program interfaces and structures in a resource limited operating system
US20050102687A1 (en)*1998-03-232005-05-12Microsoft CorporationApplication program interfaces and structures in a resource limited operating system
US8060564B2 (en)1998-05-292011-11-15Research In Motion LimitedSystem and method for pushing information from a host system to a mobile data communication device
US6779019B1 (en)*1998-05-292004-08-17Research In Motion LimitedSystem and method for pushing information from a host system to a mobile data communication device
US7953802B2 (en)1998-05-292011-05-31Research In Motion LimitedSystem and method for pushing information from a host system to a mobile data communication device
US7209949B2 (en)*1998-05-292007-04-24Research In Motion LimitedSystem and method for synchronizing information between a host system and a mobile data communication device
US7509376B2 (en)1998-05-292009-03-24Research In Motion LimitedSystem and method for redirecting message attachments between a host system and a mobile data communication device
US9344839B2 (en)1998-05-292016-05-17Blackberry LimitedSystem and method for pushing information from a host system to a mobile communication device
US6701378B1 (en)1998-05-292004-03-02Research In Motion LimitedSystem and method for pushing information from a host system to a mobile data communication device
US7266365B2 (en)1998-05-292007-09-04Research In Motion LimitedSystem and method for delayed transmission of bundled command messages
US7386588B2 (en)1998-05-292008-06-10Research In Motion LimitedSystem and method for pushing information from a host system to a mobile data communication device
US9298793B2 (en)1998-05-292016-03-29Blackberry LimitedSystem and method for pushing information from a host system to a mobile data communication device
US8516055B2 (en)1998-05-292013-08-20Research In Motion LimitedSystem and method for pushing information from a host system to a mobile data communication device in a wireless data network
US7606936B2 (en)1998-05-292009-10-20Research In Motion LimitedSystem and method for redirecting data to a wireless device over a plurality of communication paths
US9374435B2 (en)1998-05-292016-06-21Blackberry LimitedSystem and method for using trigger events and a redirector flag to redirect messages
US20050076119A1 (en)*1998-10-122005-04-07Microsoft CorporationSystem and method of synchronizing objects between two devices
US7127509B2 (en)1998-10-122006-10-24Microsoft CorporationSystem and method for synchronizing objects between two devices
US6990522B2 (en)1998-10-122006-01-24Microsoft CorporationSystem and method for synchronizing objects between two devices
US6990523B2 (en)1998-10-122006-01-24Microsoft CorporationSystem and method for synchronizing objects between two devices
US20050066031A1 (en)*1998-10-122005-03-24Microsoft CorporationSystem and method for synchronizing objects between two devices
US6862617B1 (en)*1998-10-122005-03-01Microsoft Corp.System and method for synchronizing objects between two devices
US6996633B2 (en)1998-10-122006-02-07Microsoft CorporationSystem and method for synchronizing objects between two devices
US20040210641A1 (en)*1998-10-122004-10-21Charles WuSystem and method for synchronizing objects between two devices
US20050076120A1 (en)*1998-10-122005-04-07Microsoft CorporationSystem and method for synchronizing objects between two devices
US6993579B2 (en)1998-10-122006-01-31Microsoft CorporationSystem and method of synchronizing objects between two devices
US6988137B2 (en)1998-10-122006-01-17Microsoft CorporationSystem and method for synchronizing objects between two devices
US20020082252A1 (en)*1998-12-232002-06-27Cytoscan Sciences L.L.C.Methods and compositions for treating conditions of the central and peripheral nervous systems using non-synaptic mechanisms
US6725239B2 (en)1999-09-282004-04-20Microsoft CorporationSelective information synchronization based on implicit user designation
US6636897B1 (en)*1999-09-282003-10-21Microsoft CorporationSelective information subset synchronization based on single user action
US6505214B1 (en)*1999-09-282003-01-07Microsoft CorporationSelective information synchronization based on implicit user designation
US20050193031A1 (en)*1999-12-162005-09-01Livevault CorporationSystems and methods for backing up data files
US6779003B1 (en)*1999-12-162004-08-17Livevault CorporationSystems and methods for backing up data files
US7644113B2 (en)1999-12-162010-01-05Iron Mountain IncorporatedSystems and methods for backing up data files
US20070208783A1 (en)*1999-12-162007-09-06Christopher MidgleySystems and methods for backing up data files
US6625621B2 (en)*2000-01-042003-09-23Starfish Software, Inc.System and methods for a fast and scalable synchronization server
US7035878B1 (en)2000-01-252006-04-25Fusionone, Inc.Base rolling engine for data transfer and synchronization system
US8621025B2 (en)2000-01-252013-12-31Synchronoss Technologis, Inc.Mobile data transfer and synchronization system
US7007041B2 (en)2000-01-252006-02-28Fusionone, Inc.Synchronization system application object interface
US8156074B1 (en)2000-01-262012-04-10Synchronoss Technologies, Inc.Data transfer and synchronization system
US8442943B2 (en)2000-01-262013-05-14Synchronoss Technologies, Inc.Data transfer and synchronization between mobile systems using change log
US6671757B1 (en)*2000-01-262003-12-30Fusionone, Inc.Data transfer and synchronization system
US6697805B1 (en)*2000-04-142004-02-24Microsoft CorporationXML methods and systems for synchronizing multiple computing devices
US6725262B1 (en)2000-04-272004-04-20Microsoft CorporationMethods and systems for synchronizing multiple computing devices
US8416705B2 (en)2000-05-012013-04-09Hewlett-Packard Development Company, L.P.User profile or user account association with multiple computers
US7672225B2 (en)2000-05-012010-03-02Palm, Inc.Swapping an operational networked electronic system for a nonoperational networked electronic system
USRE43577E1 (en)2000-05-012012-08-14Hewlett-Packard Development Company, L.P.Swapping a nonoperational networked electronic system for an operational networked electronic system
US20070140108A1 (en)*2000-05-012007-06-21Palm, Inc.Swapping an operational networked electronic system for a nonoperational networked electronic system
US20100199331A1 (en)*2000-05-012010-08-05Palm, Inc.User profile or user account association with multiple computers
US20080172665A1 (en)*2000-05-162008-07-17Palmsource, Inc.Sync-time read only memory image binding for limited resource devices
US6944651B2 (en)2000-05-192005-09-13Fusionone, Inc.Single click synchronization of data from a public information store to a private information store
US20020038316A1 (en)*2000-05-192002-03-28Onyon Richard M.Single click data synchronization of public and private data
US6941510B1 (en)*2000-06-062005-09-06Groove Networks, Inc.Method and apparatus for efficient management of XML documents
US7895334B1 (en)2000-07-192011-02-22Fusionone, Inc.Remote access communication architecture apparatus and method
US8073954B1 (en)2000-07-192011-12-06Synchronoss Technologies, Inc.Method and apparatus for a secure remote access system
US6925476B1 (en)2000-08-172005-08-02Fusionone, Inc.Updating application data including adding first change log to aggreagate change log comprising summary of changes
US7644125B2 (en)*2000-09-112010-01-05Ianywhere Solutions, Inc.Method, system, and computer program product for synchronization of similar data objects with event information
US8180839B2 (en)2000-09-112012-05-15Ianywhere Solutions, Inc.Method, system, and computer program product for synchronization of similar data objects with event information
US20100174679A1 (en)*2000-09-112010-07-08iAnywhere Solutions, IncMethod, System, and Computer Program Product for Synchronization of Similar Data Objects With Event Information
US20020032722A1 (en)*2000-09-112002-03-14Avantgo, Inc.Method, system, and computer program product for synchronization of similar data objects with event information
US8843577B2 (en)2000-09-112014-09-23Ianywhere Solutions, Inc.Method, system, and computer program product for synchronization of similar data objects with event information
US6879996B1 (en)*2000-09-132005-04-12Edward W. LavesMethod and apparatus for displaying personal digital assistant synchronization data using primary and subordinate data fields
US9158830B2 (en)2000-10-162015-10-13Roussillon LlcRun-time engine implemented on a computing device allowing synchronization of records during application execution
US20020056011A1 (en)*2000-10-162002-05-09Nardone Joseph R.Run-time engine implemented on a computing device allowing synchronization of records during application execution
US8429303B2 (en)*2000-10-162013-04-23Telecommunication Systems, Inc.Run-time engine implemented on a computing device allowing synchronization of records during application execution
US9298798B2 (en)2000-10-162016-03-29Zhigu Holdings LimitedRun-time engine implemented on a computing device allowing synchronization of records during application execution
US20100223230A1 (en)*2000-10-162010-09-02Nardone Joseph RRun-time engine implemented on a computing device allowing synchronization of records during application execution
US7716374B2 (en)*2000-10-162010-05-11Telecommunication Systems, Inc.Run-time engine implemented on a computing device allowing synchronization of records during application execution
US20070150507A1 (en)*2000-11-062007-06-28Joseph NardoneSystem for a configurable open database connectivity conduit
US20020056075A1 (en)*2000-11-062002-05-09Andrew HamiltonSystem for a run-time engine capable for pager capable remote device
US7587446B1 (en)2000-11-102009-09-08Fusionone, Inc.Acquisition and synchronization of digital media to a personal information space
US20030140104A1 (en)*2000-12-062003-07-24Yuko WatanabeApparatus and method for providing contents
US7979055B2 (en)*2000-12-062011-07-12Ntt Docomo, Inc.Apparatus and method for providing contents
US7818435B1 (en)2000-12-142010-10-19Fusionone, Inc.Reverse proxy mechanism for retrieving electronic content associated with a local network
US7010303B2 (en)2000-12-222006-03-07Research In Motion LimitedWireless router system and method
US7529230B2 (en)2000-12-222009-05-05Research In Motion LimitedWireless router system and method
US8165575B2 (en)2000-12-222012-04-24Research In Motion LimitedWireless router system and method
US8483694B2 (en)2000-12-222013-07-09Research In Motion LimitedWireless router system and method
US8693996B2 (en)2000-12-222014-04-08Blackberry LimitedWireless router system and method
US8050684B2 (en)2000-12-222011-11-01Research In Motion LimitedWireless router system and method
US20020118701A1 (en)*2001-01-022002-08-29AlcatelMethod of synchronizing data on a serial link
US6917950B2 (en)*2001-01-102005-07-12Intel CorporationModifying a shared resource
US7571327B2 (en)2001-01-172009-08-04Microsoft CorporationExclusive encryption
US7047420B2 (en)2001-01-172006-05-16Microsoft CorporationExclusive encryption
US20050066184A1 (en)*2001-01-172005-03-24Microsoft CorporationExclusive encryption
US7770023B2 (en)2001-01-172010-08-03Microsoft CorporationExclusive encryption
US7555656B2 (en)2001-01-172009-06-30Microsoft CorporationExclusive encryption
US7475258B2 (en)2001-01-172009-01-06Microsoft CorporationExclusive encryption
US7685415B2 (en)2001-01-172010-03-23Microsoft CorporationExclusive encryption
US20020095590A1 (en)*2001-01-172002-07-18Douceur John R.Exclusive encryption
US20060107048A1 (en)*2001-01-172006-05-18Microsoft CorporationExclusive Encryption
US8498289B2 (en)2001-01-182013-07-30Research In Motion LimitedSystem, method and mobile device for remote control of a voice mail system
US7283808B2 (en)2001-01-182007-10-16Research In Motion LimitedSystem, method and mobile device for remote control of a voice mail system
US7480853B2 (en)*2001-02-022009-01-20Microsoft CorporationDeleting objects from a store of a device
US7017105B2 (en)*2001-02-022006-03-21Microsoft CorporationDeleting objects from a store of a device
US20060031645A1 (en)*2001-02-022006-02-09Microsoft CorporationDeleting objects from a store of a device
US20020108091A1 (en)*2001-02-022002-08-08Flanagin Stephen D.Deleting objects from a store of a device
US7103656B2 (en)2001-02-202006-09-05Research In Motion LimitedSystem and method for administrating a wireless communication network
US7295836B2 (en)2001-03-092007-11-13Research In Motion LimitedAdvanced voice and data operations in a mobile data communication device
US20030097485A1 (en)*2001-03-142003-05-22Horvitz Eric J.Schemas for a notification platform and related information services
US20030061365A1 (en)*2001-03-142003-03-27Microsoft CorporationService-to-service communication for network services
US6980993B2 (en)2001-03-142005-12-27Microsoft CorporationSchemas for a notification platform and related information services
US20060161554A1 (en)*2001-03-142006-07-20Microsoft CorporationSchema-Based Services For Identity-Based Data Access
US9460421B2 (en)2001-03-142016-10-04Microsoft Technology Licensing, LlcDistributing notifications to multiple recipients via a broadcast list
US7613702B2 (en)*2001-03-142009-11-03Microsoft CorporationSchemas for a notification platform and related information services
WO2002073454A3 (en)*2001-03-142002-11-21Microsoft CorpSchemas for a notification platform and related information services
US7613722B2 (en)*2001-03-142009-11-03Microsoft CorporationSchemas for a notification platform and related information services
US20030069887A1 (en)*2001-03-142003-04-10Lucovsky Mark H.Schema-based services for identity-based access to inbox data
US20050278366A1 (en)*2001-03-142005-12-15Microsoft CorporationSchemas for a notification platform and related information services
US7302634B2 (en)2001-03-142007-11-27Microsoft CorporationSchema-based services for identity-based data access
US20050278344A1 (en)*2001-03-142005-12-15Microsoft CorporationSchemas for a notification platform and related information services
US20050273692A1 (en)*2001-03-142005-12-08Microsoft CorporationSchemas for a notification platform and related information services
US20030041065A1 (en)*2001-03-142003-02-27Mark LucovskySchema-based services for identity-based access to contacts data
US20030041076A1 (en)*2001-03-142003-02-27Lucovsky Mark H.Schema-based services for identity-based access to calendar data
US20040199861A1 (en)*2001-03-142004-10-07Lucovsky Mark H.Schema-based services for identity-based data access to document data
US20060036642A1 (en)*2001-03-142006-02-16Microsoft CorporationSchemas for a notification platform and related information services
US8572576B2 (en)2001-03-142013-10-29Microsoft CorporationExecuting dynamically assigned functions while providing services
US9413817B2 (en)2001-03-142016-08-09Microsoft Technology Licensing, LlcExecuting dynamically assigned functions while providing services
US7548932B2 (en)*2001-03-142009-06-16Microsoft CorporationSchemas for a notification platform and related information services
US7613721B2 (en)*2001-03-142009-11-03Microsoft CorporationSchemas for a notification platform and related information services
US7664724B2 (en)2001-03-142010-02-16Microsoft CorporationSchema-based services for identity-based data access
US7454612B2 (en)2001-03-212008-11-18Microsoft CorporationOn-disk file format for a serverless distributed file system
US20050108240A1 (en)*2001-03-212005-05-19Microsoft CorporationOn-disk file format for a serverless distributed file system
US7539867B2 (en)2001-03-212009-05-26Microsoft CorporationOn-disk file format for a serverless distributed file system
US7415608B2 (en)2001-03-212008-08-19Microsoft CorporationOn-disk file format for a serverless distributed file system
US20020194209A1 (en)*2001-03-212002-12-19Bolosky William J.On-disk file format for a serverless distributed file system
US7478243B2 (en)2001-03-212009-01-13Microsoft CorporationOn-disk file format for serverless distributed file system with signed manifest of file modifications
US7043637B2 (en)2001-03-212006-05-09Microsoft CorporationOn-disk file format for a serverless distributed file system
US20020194484A1 (en)*2001-03-212002-12-19Bolosky William J.On-disk file format for serverless distributed file system with signed manifest of file modifications
US20050097313A1 (en)*2001-03-212005-05-05Microsoft CorporationOn-disk file format for a serverless distributed file system
US7401220B2 (en)2001-03-212008-07-15Microsoft CorporationOn-disk file format for a serverless distributed file system
US8615566B1 (en)2001-03-232013-12-24Synchronoss Technologies, Inc.Apparatus and method for operational support of remote network systems
US7062490B2 (en)2001-03-262006-06-13Microsoft CorporationServerless distributed file system
US7886364B2 (en)2001-03-262011-02-08Microsoft CorporationEncrypted key cache
US20050044092A1 (en)*2001-03-262005-02-24Microsoft CorporationServerless distributed file system
US20050102268A1 (en)*2001-03-262005-05-12Microsoft CorporationServerless distributed file system
US7505970B2 (en)2001-03-262009-03-17Microsoft CorporationServerless distributed file system
US7346774B2 (en)2001-03-262008-03-18Microsoft CorporationEncrypted key cache
US20020188605A1 (en)*2001-03-262002-12-12Atul AdyaServerless distributed file system
US6981138B2 (en)2001-03-262005-12-27Microsoft CorporationEncrypted key cache
US7240060B2 (en)2001-03-262007-07-03Microsoft CorporationServerless distributed file system
US20050278525A1 (en)*2001-03-262005-12-15Microsoft CorporationEncrypted key cache
US8112452B2 (en)2001-03-262012-02-07Microsoft CorporationServerless distributed file system
US20020138722A1 (en)*2001-03-262002-09-26Douceur John R.Encrypted key cache
US6748402B1 (en)*2001-04-022004-06-08Bellsouth Intellectual Property CorporationSystem and method for converting and loading interactive pager address books
US8090878B2 (en)*2001-04-042012-01-03Access Co., Ltd.One-to-many device synchronization using downloaded/shared client software
US20100049759A1 (en)*2001-04-042010-02-25Palmsource, Inc.One-to-many device synchronization using downloaded/shared client software
US7039643B2 (en)*2001-04-102006-05-02Adobe Systems IncorporatedSystem, method and apparatus for converting and integrating media files
US20030033331A1 (en)*2001-04-102003-02-13Raffaele SenaSystem, method and apparatus for converting and integrating media files
US7653631B1 (en)*2001-05-102010-01-26Foundationip, LlcMethod for synchronizing information in multiple case management systems
US20020174372A1 (en)*2001-05-182002-11-21Buvana VenkataramanMethod and apparatus for providing synchronized data
US20020184234A1 (en)*2001-06-012002-12-05Lundberg Steven W.Internet-based patent and trademark applicaton management system
US7509423B2 (en)2001-06-062009-03-24Microsoft CorporationLocating potentially identical objects across multiple computers based on stochastic partitioning of workload
US20050097148A1 (en)*2001-06-062005-05-05Microsoft CorporationLocating potentially identical objects across multiple computers based on stochastic partitioning of workload
US20050071339A1 (en)*2001-06-062005-03-31Microsoft CorporationLocating potentially identical objects across multiple computers based on stochastic partitioning of workload
US20030037022A1 (en)*2001-06-062003-02-20Atul AdyaLocating potentially identical objects across multiple computers
US20030037094A1 (en)*2001-06-062003-02-20Douceur John R.Locating potentially identical objects across multiple computers based on stochastic partitioning of workload
US20050071340A1 (en)*2001-06-062005-03-31Microsoft CorporationLocating potentially identical objects across multiple computers based on stochastic partitioning of workload
US20050216538A1 (en)*2001-06-062005-09-29Microsoft CorporationLocating potentially identical objects across multiple computers based on stochastic partitioning of workload
US7519623B2 (en)2001-06-062009-04-14Microsoft CorporationLocating potentially identical objects across multiple computers based on stochastic partitioning of workload
US20050071315A1 (en)*2001-06-062005-03-31Microsoft CorporationLocating potentially identical objects across multiple computers based on stochastic partitioning of workload
US7272630B2 (en)2001-06-062007-09-18Microsoft CorporationLocating potentially identical objects across multiple computers based on stochastic partitioning of workload
US7444387B2 (en)2001-06-062008-10-28Microsoft CorporationLocating potentially identical objects across multiple computers based on stochastic partitioning of workload
US7487245B2 (en)2001-06-062009-02-03Microsoft CorporationLocating potentially identical objects across multiple computers based on stochastic partitioning of workload
US7310644B2 (en)*2001-06-062007-12-18Microsoft CorporationLocating potentially identical objects across multiple computers
US7359937B2 (en)2001-06-062008-04-15Microsoft CorporationLocating potentially identical objects across multiple computers based on stochastic partitioning of workload
US6988124B2 (en)2001-06-062006-01-17Microsoft CorporationLocating potentially identical objects across multiple computers based on stochastic partitioning of workload
US7571186B2 (en)2001-06-062009-08-04Microsoft CorporationLocating potentially identical objects across multiple computers based on stochastic partitioning of workload
US20050071330A1 (en)*2001-06-062005-03-31Microsoft CorporationLocating potentially identical objects across multiple computers based on stochastic partitioning of workload
US8001177B2 (en)*2001-06-182011-08-16Hewlett-Packard Development Company, L.P.Method and apparatus for automated personal information management data transfer for a wireless enabled handheld
US9055046B2 (en)*2001-06-212015-06-09Telefonaktiebolaget L M Ericsson (Publ)Safe output protocol for files to multiple destinations with integrity check
US20020198962A1 (en)*2001-06-212002-12-26Horn Frederic A.Method, system, and computer program product for distributing a stored URL and web document set
US7366738B2 (en)*2001-08-012008-04-29Oracle International CorporationMethod and system for object cache synchronization
US20030028683A1 (en)*2001-08-012003-02-06Yorke Gordon JamesMethod and system for object cache synchronization
US20030036462A1 (en)*2001-08-202003-02-20Sundaram RavikumarPowered antithrombotic foot mobility device
US8483729B2 (en)2001-09-052013-07-09Telecommunication Systems, Inc.Inter-carrier messaging service providing phone number only experience
USRE41006E1 (en)2001-09-052009-11-24Telecommunication Systems, Inc.Inter-carrier short messaging service providing phone number only experience
US8682362B2 (en)2001-09-052014-03-25Telecommunication Systems, Inc.Inter-carrier messaging service providing phone number only experience
US7890127B2 (en)2001-09-052011-02-15Telecommunication Systems, Inc.Inter-carrier messaging service providing phone number only experience
US9049071B2 (en)2001-10-262015-06-02Blackberry LimitedSystem and method for controlling configuration settings for mobile communication devices and services
US8259611B2 (en)2001-10-262012-09-04Research In Motion LimitedSystem and method for controlling configuration settings for mobile communication devices and services
US11310219B2 (en)2001-10-262022-04-19Blackberry LimitedSystem and method for controlling configuration settings for mobile communication devices and services
US9584366B2 (en)2001-10-262017-02-28Blackberry LimitedSystem and method for controlling configuration settings for mobile communication devices and services
US8134954B2 (en)2001-10-262012-03-13Research In Motion LimitedSystem and method for controlling configuration settings for mobile communication devices and services
US7317699B2 (en)2001-10-262008-01-08Research In Motion LimitedSystem and method for controlling configuration settings for mobile communication devices and services
US10476865B2 (en)2001-10-262019-11-12Blackberry LimitedSystem and method for controlling configuration settings for mobile communication devices and services
US20030087089A1 (en)*2001-11-082003-05-08Rodriguez Peter A.Roll of adhesive labels for cutting tape
US20030093417A1 (en)*2001-11-152003-05-15Hideko KagimasaMethod and apparatus for document information management
US7107341B2 (en)2001-12-072006-09-12Research In Motion LimitedSystem and method of managing information distribution to mobile stations
US7356591B2 (en)2001-12-072008-04-08Research In Motion LimitedSystem and method of managing information distribution to mobile stations
US8180900B2 (en)2001-12-072012-05-15Research In Motion LimitedSystem and method of managing information distribution to mobile stations
US8694650B2 (en)2001-12-072014-04-08Blackberry LimitedSystem and method of managing information distribution to mobile stations
US9369531B2 (en)2001-12-072016-06-14Blackberry LimitedSystem and method of managing information distribution to mobile stations
US8989728B2 (en)2002-01-082015-03-24Seven Networks, Inc.Connection architecture for a mobile network
US8127342B2 (en)2002-01-082012-02-28Seven Networks, Inc.Secure end-to-end transport through intermediary nodes
US8811952B2 (en)2002-01-082014-08-19Seven Networks, Inc.Mobile device power management in data synchronization over a mobile network with or without a trigger notification
US8549587B2 (en)2002-01-082013-10-01Seven Networks, Inc.Secure end-to-end transport through intermediary nodes
US20070204000A1 (en)*2002-02-282007-08-30Sandisk Il Ltd.Device, System And Method For Data Exchange
US20030172089A1 (en)*2002-03-072003-09-11Douceur John R.File availability in distributed file storage systems
US7200618B2 (en)2002-03-072007-04-03Microsoft CorporationFile availability in distributed file storage systems
US7299250B2 (en)2002-03-072007-11-20Microsoft CorporationFile availability in distributed file storage systems
US20060112154A1 (en)*2002-03-072006-05-25Microsoft CorporationFile Availability in Distributed File Storage Systems
US20060106882A1 (en)*2002-03-072006-05-18Microsoft CorporationFile Availability in Distributed File Storage Systems
US7020665B2 (en)2002-03-072006-03-28Microsoft CorporationFile availability in distributed file storage systems
US7668901B2 (en)2002-04-152010-02-23Avid Technology, Inc.Methods and system using a local proxy server to process media data for local area users
US20030195924A1 (en)*2002-04-152003-10-16Franke Michael MartinMethods and system using a local proxy server to process media data for local area users
US20070180075A1 (en)*2002-04-252007-08-02Doug ChasmanSystem and method for synchronization of version annotated objects
US7606881B2 (en)*2002-04-252009-10-20Oracle International CorporationSystem and method for synchronization of version annotated objects
US7853722B2 (en)2002-04-252010-12-14Oracle International CorporationSimplified application object data synchronization for optimized data storage
US20060248232A1 (en)*2002-04-252006-11-02Oracle International CorporationSimplified application object data synchronization for optimized data storage
US20090055434A1 (en)*2002-04-252009-02-26Oracle International CorporationSimplified application object data synchronization for optimized data storage
US20090055553A1 (en)*2002-04-252009-02-26Oracle International CorporationSimplified application object data synchronization for optimized data storage
US7076567B1 (en)2002-04-252006-07-11Oracle International CorporationSimplified application object data synchronization for optimized data storage
US8386646B2 (en)2002-04-252013-02-26Oracle International CorporationSimplified application object data synchronization for optimized data storage
US7441049B2 (en)2002-04-252008-10-21Oracle International CorporationSimplified application object data synchronization for optimized data storage
US20030212819A1 (en)*2002-05-092003-11-13Russell Ryan S.Transferring data wirelessly between digital devices
US7047259B1 (en)*2002-06-252006-05-16Oracle International CorporationRich cross object navigation in mobile applications
US9886309B2 (en)2002-06-282018-02-06Microsoft Technology Licensing, LlcIdentity-based distributed computing for device resources
US20040006564A1 (en)*2002-06-282004-01-08Lucovsky Mark H.Schema-based service for identity-based data access to category data
US20040003007A1 (en)*2002-06-282004-01-01Prall John M.Windows management instrument synchronized repository provider
US9445133B2 (en)*2002-07-102016-09-13Arris Enterprises, Inc.DVD conversion for on demand
US20040136698A1 (en)*2002-07-102004-07-15Mock Wayne E.DVD conversion for on demand
US7206788B2 (en)2002-07-302007-04-17Microsoft CorporationSchema-based services for identity-based access to device data
US20040024875A1 (en)*2002-07-302004-02-05Microsoft CorporationSchema-based services for identity-based access to device data
CN100474296C (en)*2002-08-212009-04-01诺基亚有限公司Data transmission method and device
US20050033780A1 (en)*2002-08-212005-02-10Nokia CorporationMethod and apparatus for data transmission
WO2004019222A1 (en)*2002-08-212004-03-04Nokia CorporationMethod and apparatus for data transmission
US20040068523A1 (en)*2002-10-072004-04-08Keith Robert OlanMethod and system for full asynchronous master-to-master file synchronization
US20070177571A1 (en)*2002-10-072007-08-02Michael CaulfieldMobile data distribution
US7787489B2 (en)2002-10-072010-08-31Oracle International CorporationMobile data distribution
US7716312B2 (en)2002-11-132010-05-11Avid Technology, Inc.Method and system for transferring large data files over parallel connections
US20040098413A1 (en)*2002-11-182004-05-20Luosheng PengControlling updates of electronic files
US7320010B2 (en)*2002-11-182008-01-15Innopath Software, Inc.Controlling updates of electronic files
US7451180B2 (en)2002-11-202008-11-11Microsoft CorporationSystem and method for using packed compressed buffers for improved client server communications
US7111039B2 (en)2002-11-202006-09-19Microsoft CorporationSystem and method for using packed compressed buffers for improved client server communications
US20060265510A1 (en)*2002-11-202006-11-23Microsoft CorporationSystem and method for using packed compressed buffers for improved client server communications
GB2399663A (en)*2002-11-222004-09-22Sun Microsystems IncSynchronising content between two sources using profiles
GB2399663B (en)*2002-11-222005-05-18Sun Microsystems IncSynchronization of file and folder content
RU2346323C2 (en)*2003-01-032009-02-10Майкрософт КорпорейшнSystem and method for enhanced client/server synchronisation
US7899872B2 (en)2003-01-032011-03-01Microsoft CorporationSystem and method for improved synchronization between a server and a client
US20040133599A1 (en)*2003-01-032004-07-08Microsoft CorporationSystem and method for improved client server communications of email messages
US7730150B2 (en)2003-01-032010-06-01Microsoft CorporationSystem and method for improved client server communications of email messages
US9590927B2 (en)2003-01-032017-03-07Microsoft Technology Licensing, LlcSystem and method for improved synchronization between a server and a client
US20080208998A1 (en)*2003-01-032008-08-28Microsoft CorporationSystem and method for improved synchronization between a server and a client
US20040133643A1 (en)*2003-01-032004-07-08Microsoft CorporationMethod for streaming data between a server and a client
US20040133644A1 (en)*2003-01-032004-07-08Microsoft CorporationSystem and method for improved synchronization between a server and a client
EP1435585A1 (en)*2003-01-032004-07-07Microsoft CorporationSystem and method for improved synchronization between a server and a client
US7620688B2 (en)2003-01-032009-11-17Microsoft CorporationProgress mode for electronic mail component
RU2477517C2 (en)*2003-01-032013-03-10Майкрософт КорпорейшнSystem and method for enhanced client/server synchronisation
US20080126496A1 (en)*2003-01-032008-05-29Microsoft CorporationSystem and method for improved client server communications of email messages
US7366760B2 (en)2003-01-032008-04-29Microsoft CorporationSystem and method for improved client server communications of email messages
KR101034421B1 (en)*2003-01-032011-05-12마이크로소프트 코포레이션 System and method for improved server-client synchronization
US7386590B2 (en)2003-01-032008-06-10Microsoft CorporationSystem and method for improved synchronization between a server and a client
US8473560B2 (en)2003-01-032013-06-25Microsoft CorporationSystem and method for improved synchronization between a server and a client
US20110161448A1 (en)*2003-01-032011-06-30Microsoft CorporationSystem and Method for Improved Synchronization Between a Server and a Client
US8423621B2 (en)2003-01-032013-04-16Microsoft CorporationSystem and method for improved synchronization between a server and a client
US9251193B2 (en)2003-01-082016-02-02Seven Networks, LlcExtending user relationships
US7389309B2 (en)2003-02-282008-06-17Microsoft CorporationMethod for managing file replication in applications
EP1452975B1 (en)*2003-02-282013-12-25Microsoft CorporationMethod for managing file replication in applications
US8010491B2 (en)2003-02-282011-08-30Microsoft CorporationMethod for managing multiple file states for replicated files
EP1452975A2 (en)2003-02-282004-09-01Microsoft CorporationMethod for managing file replication in applications
US20040193731A1 (en)*2003-03-312004-09-30Larry MitchellUniversal personal information connector architecture
US20050037787A1 (en)*2003-06-272005-02-17Rosett-Wireless CorporationWireless intelligent portable-server system (WIPSS)
US8635643B2 (en)2003-06-302014-01-21At&T Intellectual Property I, L.P.System and method for providing interactive media content over a network
US7509352B1 (en)*2003-06-302009-03-24Microsoft CorporationMethod and apparatus for record synchronization with conflict resolution
US20040268418A1 (en)*2003-06-302004-12-30Gray James HaroldInteractive content with enhanced network operator control
US8418196B2 (en)2003-06-302013-04-09At&T Intellectual Property I, L.P.Interactive content with enhanced network operator control
US8645471B2 (en)2003-07-212014-02-04Synchronoss Technologies, Inc.Device message management system
US9723460B1 (en)2003-07-212017-08-01Synchronoss Technologies, Inc.Device message management system
US9615221B1 (en)2003-07-212017-04-04Synchronoss Technologies, Inc.Device message management system
CN100440206C (en)*2003-07-292008-12-03微软公司Synchronizing logical views independent of physical storage representations
US20050027755A1 (en)*2003-07-312005-02-03Shah Ashish B.Systems and methods for synchronizing with multiple data stores
US7636776B2 (en)*2003-07-312009-12-22Microsoft CorporationSystems and methods for synchronizing with multiple data stores
US20050027716A1 (en)*2003-08-012005-02-03Microsoft Corporation.Unified contact list
US6973299B2 (en)2003-08-012005-12-06Microsoft CorporationUnified contact list
US20050160421A1 (en)*2003-08-202005-07-21Microsoft CorporationAgent for collecting information about installed programs on a computer system
US7529775B2 (en)*2003-08-202009-05-05Microsoft CorporationMethod and system for collecting information about applications on a computer system
US20050044057A1 (en)*2003-08-202005-02-24Microsoft CorporationMethod and system for collecting information about applications on a computer system
US20090138808A1 (en)*2003-09-052009-05-28Groove Networks, Inc.Method and apparatus for providing attributes of a collaboration system in an operating system folder-based file system
US7734690B2 (en)2003-09-052010-06-08Microsoft CorporationMethod and apparatus for providing attributes of a collaboration system in an operating system folder-based file system
US20090013348A1 (en)*2003-09-152009-01-08United Video Properties, Inc.Systems and methods for exporting digital content using an interactive television application
US9521448B2 (en)2003-09-152016-12-13Rovi Guides, Inc.Systems and methods for exporting digital content using an interactive television application
EP2007130A1 (en)*2003-09-152008-12-24United Video Properties, Inc.Systems amd methods for automatically exporting digital content using an interactive television application
US8966567B2 (en)2003-09-152015-02-24Rovi Guides, Inc.Systems and methods for exporting digital content using an interactive television application
US7860832B2 (en)2003-09-302010-12-28Iron Mountain IncorporatedSystems and methods for maintaining data files
US7634509B2 (en)2003-11-072009-12-15Fusionone, Inc.Personal information space management system and method
US9544646B2 (en)2003-12-192017-01-10At&T Intellectual Property I, L.P.System and method for enhanced hot key delivery
US8286203B2 (en)2003-12-192012-10-09At&T Intellectual Property I, L.P.System and method for enhanced hot key delivery
WO2005066836A1 (en)*2003-12-242005-07-21Nokia CorporationFile synchronisation
US20070276962A1 (en)*2003-12-242007-11-29Nokia CorporationFile Synchronisation
US7643824B2 (en)2004-02-272010-01-05Cooligy IncWireless telephone data backup system
US8620286B2 (en)2004-02-272013-12-31Synchronoss Technologies, Inc.Method and system for promoting and transferring licensed content and applications
US20050223085A1 (en)*2004-03-112005-10-06Microsoft CorporationRapidly obtaining a subset of message data from a server for filtering
US7613777B2 (en)*2004-03-112009-11-03Microsoft CorporationRapidly obtaining a subset of message data from a server for filtering
CN1677355B (en)*2004-03-312010-05-26深圳市朗科科技股份有限公司Method system and apparatus for synchronous update of files
US20050234961A1 (en)*2004-04-162005-10-20Pinnacle Systems, Inc.Systems and Methods for providing a proxy for a shared file system
US7370067B2 (en)2004-04-302008-05-06Microsoft CorporationMaintaining time-date information for syncing low fidelity devices
US7620663B2 (en)2004-04-302009-11-17Microsoft CorporationMaintaining time-date information for syncing low fidelity devices
US6944636B1 (en)2004-04-302005-09-13Microsoft CorporationMaintaining time-date information for syncing low fidelity devices
US6950835B1 (en)2004-04-302005-09-27Microsoft CorporationDetermining when a low fidelity property value has changed during a sync
US20100211542A1 (en)*2004-04-302010-08-19Microsoft CorporationMethods and systems for halting synchronization loops in a distributed system
US7730167B2 (en)2004-04-302010-06-01Microsoft CorporationMethods and systems for halting synchronization loops in a distributed system
US8019898B2 (en)2004-04-302011-09-13Microsoft CorporationDetecting low fidelity sync data
US7342555B2 (en)2004-04-302008-03-11Microsoft CorporationDetecting low fidelity sync data
US7216134B2 (en)2004-04-302007-05-08Microsoft CorporationDetermining when a low fidelity property value has changed during a sync
US20050246462A1 (en)*2004-04-302005-11-03Microsoft CorporationMaintaining time-date information for syncing low fidelity devices
US20050246400A1 (en)*2004-04-302005-11-03Microsoft CorporationMaintaining time-date information for syncing low fidelity devices
US7305423B2 (en)2004-04-302007-12-04Microsoft CorporationPreserving memory resources by limiting time-date information for a subset of properties
US20050251414A1 (en)*2004-04-302005-11-10Microsoft CorporationDetermining when a low fidelity property value has changed during a sync
US20050256995A1 (en)*2004-04-302005-11-17Microsoft CorporationPreserving memory resources by liimiting time-date information for a subset of properties
US20050262310A1 (en)*2004-04-302005-11-24Starbuck Bryan TMethods and systems for halting synchronization loops in a distributed system
US7007045B2 (en)2004-04-302006-02-28Microsoft CorporationPreserving memory resources by limiting time-date information for a subset of properties
US20060028396A1 (en)*2004-04-302006-02-09Starbuck Bryan TDetecting low fidelity sync data
US7676590B2 (en)2004-05-032010-03-09Microsoft CorporationBackground transcoding
US8868678B2 (en)2004-05-032014-10-21Microsoft CorporationAspects of digital media content distribution
US20050246451A1 (en)*2004-05-032005-11-03Microsoft CorporationBackground transcoding
US20070226365A1 (en)*2004-05-032007-09-27Microsoft CorporationAspects of digital media content distribution
US9542076B1 (en)2004-05-122017-01-10Synchronoss Technologies, Inc.System for and method of updating a personal profile
US8611873B2 (en)2004-05-122013-12-17Synchronoss Technologies, Inc.Advanced contact identification system
US20050289194A1 (en)*2004-06-282005-12-29Microsoft CorporationPreserving memory resources by limiting time-date information for a subset of properties
US7284021B2 (en)2004-06-282007-10-16Microsoft CorporationDetermining when a low fidelity property value has changed during a SYNC
US7269609B2 (en)2004-06-282007-09-11Microsoft CorporationPreserving memory resources by limiting time-date information for a subset of properties
US20050289196A1 (en)*2004-06-282005-12-29Microsoft CorporationDetermining when a low fidelity property value has changed during a SYNC
US8141118B2 (en)2004-07-262012-03-20Microsoft CorporationData broadcasting receiver power management
US20060020972A1 (en)*2004-07-262006-01-26Microsoft CorporationData broadcasting receiver power management
US7653018B2 (en)*2004-07-272010-01-26Microsoft CorporationDifferential update for data broadcasting
US20060023730A1 (en)*2004-07-272006-02-02Microsoft CorporationDifferential update for data broadcasting
US8712858B2 (en)2004-08-212014-04-29Directworks, Inc.Supplier capability methods, systems, and apparatuses for extended commerce
US20060041502A1 (en)*2004-08-212006-02-23Blair William RCost management file translation methods, systems, and apparatuses for extended commerce
US8170946B2 (en)2004-08-212012-05-01Co-Exprise, Inc.Cost management file translation methods, systems, and apparatuses for extended commerce
US7810025B2 (en)*2004-08-212010-10-05Co-Exprise, Inc.File translation methods, systems, and apparatuses for extended commerce
US20100088239A1 (en)*2004-08-212010-04-08Co-Exprise, Inc.Collaborative Negotiation Methods, Systems, and Apparatuses for Extended Commerce
US20060041840A1 (en)*2004-08-212006-02-23Blair William RFile translation methods, systems, and apparatuses for extended commerce
US20060041503A1 (en)*2004-08-212006-02-23Blair William RCollaborative negotiation methods, systems, and apparatuses for extended commerce
US20060041518A1 (en)*2004-08-212006-02-23Blair William RSupplier capability methods, systems, and apparatuses for extended commerce
US20060079214A1 (en)*2004-10-122006-04-13Nokia CorporationMethod and apparatus for showing wireless mobile device data content on an external viewer
USRE45348E1 (en)2004-10-202015-01-20Seven Networks, Inc.Method and apparatus for intercepting events in a communication system
US8010082B2 (en)2004-10-202011-08-30Seven Networks, Inc.Flexible billing architecture
US8831561B2 (en)2004-10-202014-09-09Seven Networks, IncSystem and method for tracking billing events in a mobile wireless network for a network operator
US20060101091A1 (en)*2004-10-222006-05-11International Business Machines CorporationRecovering references in an extended model
US8185555B2 (en)2004-10-222012-05-22International Business Machines CorporationModel extension framework
US20060101445A1 (en)*2004-10-222006-05-11International Business Machines CorporationModel extension framework
US8275795B2 (en)2004-10-222012-09-25International Business Machines CorporationModel extension framework
US8805334B2 (en)2004-11-222014-08-12Seven Networks, Inc.Maintaining mobile terminal information for secure communications
US20090157688A1 (en)*2004-11-242009-06-18Koninklijke Philips Electronics, N.V.Usage history based content exchange between a base system and a mobile system
US8116214B2 (en)2004-12-032012-02-14Seven Networks, Inc.Provisioning of e-mail settings for a mobile terminal
US8873411B2 (en)2004-12-032014-10-28Seven Networks, Inc.Provisioning of e-mail settings for a mobile terminal
US20060149828A1 (en)*2004-12-162006-07-06Dan KikinisMethod and system for conducting client-to-server or peer-to-peer or mixed mode data synchronization
US7669121B2 (en)2005-01-192010-02-23Microsoft CorporationTranscode matrix
US20060161538A1 (en)*2005-01-192006-07-20Microsoft CorporationTranscode matrix
US20100114816A1 (en)*2005-01-192010-05-06Microsoft CorporationTranscode Matrix
US8561086B2 (en)2005-03-142013-10-15Seven Networks, Inc.System and method for executing commands that are non-native to the native environment of a mobile device
US9047142B2 (en)2005-03-142015-06-02Seven Networks, Inc.Intelligent rendering of information in a limited display environment
US8209709B2 (en)2005-03-142012-06-26Seven Networks, Inc.Cross-platform event engine
US7647346B2 (en)*2005-03-292010-01-12Microsoft CorporationAutomatic rules-based device synchronization
US20060224620A1 (en)*2005-03-292006-10-05Microsoft CorporationAutomatic rules-based device synchronization
US20060230349A1 (en)*2005-04-062006-10-12Microsoft CorporationCoalesced per-file device synchronization status
US20060253556A1 (en)*2005-04-182006-11-09Kenneth WallisSystem and method of device-to-server registration
US10462189B2 (en)2005-04-182019-10-29Blackberry LimitedMethod for providing wireless application privilege management
US10686842B2 (en)2005-04-182020-06-16Blackberry LimitedMethod for providing wireless application privilege management
US7738766B2 (en)2005-04-182010-06-15Microsoft CorporationSanctioned transcoding of digital-media content
US20060232449A1 (en)*2005-04-182006-10-19Microsoft CorporationRetention of information about digital-media rights in transformed digital media content
US9059891B2 (en)2005-04-182015-06-16Blackberry LimitedMethod for providing wireless application privilege management
US20170111400A1 (en)2005-04-182017-04-20Blackberry LimitedMethod for providing wireless application privilege management
US20060259523A1 (en)*2005-04-182006-11-16Kenneth WallisSystem and method of synchronization of internal data cache with wireless device application data repositories
US8365240B2 (en)2005-04-182013-01-29Research In Motion LimitedMethod for providing wireless application privilege management
US20100257261A1 (en)*2005-04-182010-10-07Kenneth WallisSystem and method of device-to-server registration
US8117297B2 (en)*2005-04-182012-02-14Research In Motion LimitedSystem and method of device-to-server registration
US7747724B2 (en)*2005-04-182010-06-29Research In Motion LimitedSystem and method of device-to-server registration
US11956280B2 (en)2005-04-182024-04-09Blackberry LimitedMethod for providing wireless application privilege management
US9537896B2 (en)2005-04-182017-01-03Blackberry LimitedMethod for providing wireless application privilege management
US10965718B2 (en)2005-04-182021-03-30Blackberry LimitedMethod for providing wireless application privilege management
US7558463B2 (en)2005-04-182009-07-07Microsoft CorporationRetention of information about digital-media rights in transformed digital media content
US8839412B1 (en)2005-04-212014-09-16Seven Networks, Inc.Flexible real-time inbox access
US8064583B1 (en)2005-04-212011-11-22Seven Networks, Inc.Multiple data store authentication
US8438633B1 (en)2005-04-212013-05-07Seven Networks, Inc.Flexible real-time inbox access
US9436804B2 (en)2005-04-222016-09-06Microsoft Technology Licensing, LlcEstablishing a unique session key using a hardware functionality scan
US9363481B2 (en)2005-04-222016-06-07Microsoft Technology Licensing, LlcProtected media pipeline
US7430425B2 (en)2005-05-172008-09-30Telecommunication Systems, Inc.Inter-carrier digital message with user data payload service providing phone number only experience
US7657574B2 (en)*2005-06-032010-02-02Microsoft CorporationPersistent storage file change tracking
US20060277223A1 (en)*2005-06-032006-12-07Microsoft CorporationPersistent storage file change tracking
US8761756B2 (en)2005-06-212014-06-24Seven Networks International OyMaintaining an IP connection in a mobile network
US7853563B2 (en)2005-08-012010-12-14Seven Networks, Inc.Universal data aggregation
US8412675B2 (en)2005-08-012013-04-02Seven Networks, Inc.Context aware data presentation
US8468126B2 (en)2005-08-012013-06-18Seven Networks, Inc.Publishing data in an information community
US7917468B2 (en)2005-08-012011-03-29Seven Networks, Inc.Linking of personal information management data
US7917505B2 (en)2005-08-012011-03-29Seven Networks, Inc.Methods for publishing content
US8069166B2 (en)2005-08-012011-11-29Seven Networks, Inc.Managing user-to-user contact with inferred presence information
US7924913B2 (en)2005-09-152011-04-12Microsoft CorporationNon-realtime data transcoding of multimedia content
US20070139189A1 (en)*2005-12-052007-06-21Helmig Kevin SMulti-platform monitoring system and method
US7818143B2 (en)2005-12-072010-10-19Katrina DelargyActivity recording module
US7818144B2 (en)2005-12-072010-10-19Katrina DelargyActivity recording module
US20070143071A1 (en)*2005-12-072007-06-21Katrina DelargyActivity recording module
US20080163042A1 (en)*2005-12-072008-07-03Katrina DelargyActivity Recording Module
US7283927B2 (en)*2005-12-072007-10-16Katrina DelargyActivity recording module
USRE44953E1 (en)2005-12-072014-06-17Katrina DelargyActivity recording module
US20070155506A1 (en)*2005-12-152007-07-05Dale MalikSystem, method and computer program for enabling an interactive game
US8651960B2 (en)2005-12-152014-02-18At&T Intellectual Property I, L.P.System, method and computer program for enabling an interactive game
US8317618B2 (en)*2005-12-152012-11-27At&T Intellectual Property I, LpSystem, method and computer program for enabling an interactive game
US20090216815A1 (en)*2005-12-302009-08-27Braginsky David EConflict Management During Data Object Synchronization Between Client and Server
US8311981B2 (en)*2005-12-302012-11-13Google Inc.Conflict management during data object synchronization between client and server
US9131024B2 (en)2005-12-302015-09-08Google Inc.Conflict management during data object synchronization between client and server
US7529780B1 (en)*2005-12-302009-05-05Google Inc.Conflict management during data object synchronization between client and server
US20080281873A1 (en)*2006-01-132008-11-13Brother Kogyo Kabushiki KaishaDocument viewing terminal operating device and storage medium storing program for operating document viewing terminal
US8161412B2 (en)2006-01-132012-04-17At&T Intellectual Property I, L.P.Systems, methods, and computer program products for providing interactive content
US20070168884A1 (en)*2006-01-132007-07-19Phillip WeeksSystems, methods, and computer program products for providing interactive content
US10735812B2 (en)2006-02-082020-08-04At&T Intellectual Property I, L.P.Interactive program manager and methods for presenting program content
US9544648B2 (en)2006-02-082017-01-10At&T Intellectual Property I, L.P.Interactive program manager and methods for presenting program content
US8402503B2 (en)2006-02-082013-03-19At& T Intellectual Property I, L.P.Interactive program manager and methods for presenting program content
US9218106B2 (en)2006-02-082015-12-22At&T Intellectual Property I, L.P.Interactive program manager and methods for presenting program content
US9055102B2 (en)2006-02-272015-06-09Seven Networks, Inc.Location-based operations and messaging
US20070234278A1 (en)*2006-03-022007-10-04Microsoft CorporationManaging source code in a model-based development environment
US8065710B2 (en)2006-03-022011-11-22At& T Intellectual Property I, L.P.Apparatuses and methods for interactive communication concerning multimedia content
US7475078B2 (en)2006-05-302009-01-06Microsoft CorporationTwo-way synchronization of media data
US20070282848A1 (en)*2006-05-302007-12-06Microsoft CorporationTwo-way synchronization of media data
US20080005358A1 (en)*2006-06-302008-01-03Samsung Electronics Co., Ltd.Method and apparatus for synchronizing content directory service in universal plug and play network
US7770165B2 (en)2006-08-252010-08-03Microsoft CorporationProviding firmware updates to portable media devices
US20080052698A1 (en)*2006-08-252008-02-28Microsoft CorporationProviding firmware updates to portable media devices
US8046335B2 (en)2006-10-312011-10-25Rebit, Inc.System for automatically shadowing data and file directory structures that are recorded on a computer memory
US8266105B2 (en)*2006-10-312012-09-11Rebit, Inc.System for automatically replicating a customer's personalized computer system image on a new computer system
WO2008054068A1 (en)2006-10-312008-05-08Samsung Electronics Co, . Ltd.Method and apparatus for preventing duplicate saving of resource between universal plug and play devices providing content directory service
US20100057794A1 (en)*2006-10-312010-03-04Rebit, Inc.System for automatically shadowing data and file directory structures that are recorded on a computer memory
EP2078385A4 (en)*2006-10-312012-04-25Samsung Electronics Co Ltd METHOD AND APPARATUS FOR PREVENTING DUPLICATE RESOURCE SAVING BETWEEN UNIVERSAL BRANCH-READY DEVICES PROVIDING CONTENT DIRECTORY SERVICE
EP2763354A1 (en)*2006-10-312014-08-06Samsung Electronics Co., LtdMethod and apparatus for preventing duplicate saving of resource between universal plug and play devices providing content directory service
US20100174684A1 (en)*2006-10-312010-07-08Rebit, Inc.System for automatically shadowing encrypted data and file directory structures for a plurality of network-connected computers using a network-attached memory with single instance storage
US8356174B2 (en)2006-10-312013-01-15Rebit, Inc.System for automatically shadowing encrypted data and file directory structures for a plurality of network-connected computers using a network-attached memory with single instance storage
US20080270493A1 (en)*2006-10-312008-10-30Rebit, Inc.System for automatically replicating a customer's personalized computer system image on a new computer system
US9552364B2 (en)2006-11-032017-01-24Samsung Electronics Co., Ltd.Portable content player, content storage device, and method of synchronizing content state lists between portable content player and content storage device
US9195676B2 (en)*2006-11-032015-11-24Samsung Electronics Co., Ltd.Portable content player, content storage device, and method of synchronizing content state lists between portable content player and content storage device
US20080109492A1 (en)*2006-11-032008-05-08Koo Min-SooPortable content player, content storage device, and method of synchronizing content state lists between portable content player and content storage device
US9037685B2 (en)2006-11-152015-05-19Qualcomm IncorporatedIntelligent migration between devices having different hardware or software configuration
US20080114830A1 (en)*2006-11-152008-05-15Palm, Inc.Intelligent Migration Between Devices Having Different Hardware or Software Configuration
US8909881B2 (en)2006-11-282014-12-09Commvault Systems, Inc.Systems and methods for creating copies of data, such as archive copies
US8392677B2 (en)2006-12-042013-03-05Commvault Systems, Inc.Systems and methods for creating copies of data, such as archive copies
US10922006B2 (en)2006-12-222021-02-16Commvault Systems, Inc.System and method for storing redundant information
US8285683B2 (en)2006-12-222012-10-09Commvault Systems, Inc.System and method for storing redundant information
US8712969B2 (en)2006-12-222014-04-29Commvault Systems, Inc.System and method for storing redundant information
US10061535B2 (en)2006-12-222018-08-28Commvault Systems, Inc.System and method for storing redundant information
US9236079B2 (en)2006-12-222016-01-12Commvault Systems, Inc.System and method for storing redundant information
US9652518B2 (en)2007-01-072017-05-16Apple Inc.Synchronization methods and systems
US10891301B2 (en)2007-01-072021-01-12Apple Inc.Synchronization methods and systems
EP2115627B1 (en)*2007-01-072017-10-18Apple Inc.Synchronization methods and systems
US20080172357A1 (en)*2007-01-172008-07-17Google Inc.Location in search queries
US10783177B2 (en)2007-01-172020-09-22Google LlcProviding relevance-ordered categories of information
US20080172374A1 (en)*2007-01-172008-07-17Google Inc.Presentation of Local Results
US8489591B2 (en)2007-01-172013-07-16Google Inc.Presentation of local results
US8326858B2 (en)2007-01-172012-12-04Google Inc.Synchronization of fixed and mobile data
US8005822B2 (en)2007-01-172011-08-23Google Inc.Location in search queries
US8996507B2 (en)2007-01-172015-03-31Google Inc.Location in search queries
US12019664B2 (en)2007-01-172024-06-25Google LlcProviding relevance-ordered categories of information
US7966309B2 (en)2007-01-172011-06-21Google Inc.Providing relevance-ordered categories of information
US20080172373A1 (en)*2007-01-172008-07-17Google Inc.Synchronization of Fixed and Mobile Data
US8966407B2 (en)2007-01-172015-02-24Google Inc.Expandable homepage modules
US11334610B2 (en)2007-01-172022-05-17Google LlcProviding relevance-ordered categories of information
US11709876B2 (en)2007-01-172023-07-25Google LlcProviding relevance-ordered categories of information
US20080172372A1 (en)*2007-01-172008-07-17Google Inc.Expandable Homepage Modules
US7966321B2 (en)2007-01-172011-06-21Google Inc.Presentation of local results
US20080172362A1 (en)*2007-01-172008-07-17Google Inc.Providing Relevance-Ordered Categories of Information
US7738503B2 (en)*2007-02-022010-06-15Palm, Inc.Multi-way, peer-to-peer synchronization
US20110004584A1 (en)*2007-02-022011-01-06Palm, Inc.Multi-way, Peer-to-Peer Synchronization
US20080189440A1 (en)*2007-02-022008-08-07Palm, Inc.Multi-way, Peer-to-Peer Synchronization
US20080231812A1 (en)*2007-03-202008-09-25Seiko Epson CorporationProjector
US9258372B2 (en)2007-05-092016-02-09Blackberry LimitedWireless router system and method
US20130124494A1 (en)*2007-05-252013-05-16Google Inc., A Delaware CorporationSharing of Profile Information with Content Providers
US8655871B2 (en)*2007-05-252014-02-18Google Inc.Sharing of profile information with content providers
US9646063B1 (en)2007-05-252017-05-09Google Inc.Sharing of profile information with content providers
US8774844B2 (en)2007-06-012014-07-08Seven Networks, Inc.Integrated messaging
US8693494B2 (en)2007-06-012014-04-08Seven Networks, Inc.Polling
US8805425B2 (en)2007-06-012014-08-12Seven Networks, Inc.Integrated messaging
US8498970B2 (en)*2007-06-082013-07-30Hong Fu Jin Precision Industry (Shen Zhen) Co., Ltd.File processing device and method
US20080306901A1 (en)*2007-06-082008-12-11Hong Fu Jin Precision Industry (Shen Zhen) Co., Ltd.File processing device and method
US8595182B1 (en)2007-11-072013-11-26Google Inc.Network file association
US8990150B2 (en)2007-11-092015-03-24Microsoft Technology Licensing, LlcCollaborative authoring
US8352418B2 (en)2007-11-092013-01-08Microsoft CorporationClient side locking
US10394941B2 (en)2007-11-092019-08-27Microsoft Technology Licensing, LlcCollaborative authoring
US9547635B2 (en)2007-11-092017-01-17Microsoft Technology Licensing, LlcCollaborative authoring
US8738050B2 (en)2007-12-102014-05-27Seven Networks, Inc.Electronic-mail filtering for mobile devices
US8364181B2 (en)2007-12-102013-01-29Seven Networks, Inc.Electronic-mail filtering for mobile devices
US8793305B2 (en)2007-12-132014-07-29Seven Networks, Inc.Content delivery to a mobile device from a content service
US9002828B2 (en)2007-12-132015-04-07Seven Networks, Inc.Predictive content delivery
US8825758B2 (en)2007-12-142014-09-02Microsoft CorporationCollaborative authoring modes
US20140373108A1 (en)2007-12-142014-12-18Microsoft CorporationCollaborative authoring modes
US10057226B2 (en)2007-12-142018-08-21Microsoft Technology Licensing, LlcCollaborative authoring modes
US8181111B1 (en)2007-12-312012-05-15Synchronoss Technologies, Inc.System and method for providing social context to digital activity
US8107921B2 (en)2008-01-112012-01-31Seven Networks, Inc.Mobile virtual network operator
US9712986B2 (en)2008-01-112017-07-18Seven Networks, LlcMobile device configured for communicating with another mobile device associated with an associated user
US8914002B2 (en)2008-01-112014-12-16Seven Networks, Inc.System and method for providing a network service in a distributed fashion to a mobile device
US8909192B2 (en)2008-01-112014-12-09Seven Networks, Inc.Mobile virtual network operator
US20090187621A1 (en)*2008-01-222009-07-23Apfel Darren ACurrent Updates
US8005927B2 (en)*2008-01-222011-08-23Microsoft CorporationCurrent updates
US9602611B2 (en)2008-01-222017-03-21Microsoft Technology Licensing, LlcCurrent updates
US8214464B2 (en)2008-01-222012-07-03Microsoft CorporationCurrent updates
US8849902B2 (en)2008-01-252014-09-30Seven Networks, Inc.System for providing policy based content service in a mobile network
US8862657B2 (en)2008-01-252014-10-14Seven Networks, Inc.Policy based content service
US8838744B2 (en)2008-01-282014-09-16Seven Networks, Inc.Web-based access to data objects
US8799410B2 (en)2008-01-282014-08-05Seven Networks, Inc.System and method of a relay server for managing communications and notification between a mobile device and a web access server
US8301588B2 (en)2008-03-072012-10-30Microsoft CorporationData storage for file updates
US20090240628A1 (en)*2008-03-202009-09-24Co-Exprise, Inc.Method and System for Facilitating a Negotiation
US8352870B2 (en)2008-04-282013-01-08Microsoft CorporationConflict resolution
US9760862B2 (en)2008-04-282017-09-12Microsoft Technology Licensing, LlcConflict resolution
US8825594B2 (en)2008-05-082014-09-02Microsoft CorporationCaching infrastructure
US8429753B2 (en)2008-05-082013-04-23Microsoft CorporationControlling access to documents using file locks
US8583602B2 (en)2008-06-052013-11-12Palm, Inc.Restoring of data to mobile computing device
US8812614B2 (en)2008-06-052014-08-19Qualcomm IncorporatedData backup for a mobile computing device
US20090307333A1 (en)*2008-06-052009-12-10Palm, Inc.Restoring of data to mobile computing device
US20090307284A1 (en)*2008-06-052009-12-10Palm, Inc.Data backup for a mobile computing device
US8787947B2 (en)2008-06-182014-07-22Seven Networks, Inc.Application discovery on mobile devices
US9098495B2 (en)2008-06-242015-08-04Commvault Systems, Inc.Application-aware and remote single instance data management
US9971784B2 (en)2008-06-242018-05-15Commvault Systems, Inc.Application-aware and remote single instance data management
US10884990B2 (en)2008-06-242021-01-05Commvault Systems, Inc.Application-aware and remote single instance data management
US8417666B2 (en)2008-06-252013-04-09Microsoft CorporationStructured coauthoring
US8494510B2 (en)2008-06-262013-07-23Seven Networks, Inc.Provisioning applications for a mobile device
US8078158B2 (en)2008-06-262011-12-13Seven Networks, Inc.Provisioning applications for a mobile device
US8612707B2 (en)2008-07-032013-12-17Commvault Systems, Inc.Continuous data protection over intermittent connections, such as continuous data backup for laptops or wireless devices
US8380957B2 (en)2008-07-032013-02-19Commvault Systems, Inc.Continuous data protection over intermittent connections, such as continuous data backup for laptops or wireless devices
US8838923B2 (en)2008-07-032014-09-16Commvault Systems, Inc.Continuous data protection over intermittent connections, such as continuous data backup for laptops or wireless devices
US8166263B2 (en)*2008-07-032012-04-24Commvault Systems, Inc.Continuous data protection over intermittent connections, such as continuous data backup for laptops or wireless devices
US20100064079A1 (en)*2008-09-082010-03-11International Business Machines CorporationUSB Devices Pre-Configuration For KVM Switch
US7921230B2 (en)*2008-09-082011-04-05International Business CorporationUSB devices pre-configuration for KVM switch
US11593217B2 (en)2008-09-262023-02-28Commvault Systems, Inc.Systems and methods for managing single instancing data
US9015181B2 (en)2008-09-262015-04-21Commvault Systems, Inc.Systems and methods for managing single instancing data
US11016858B2 (en)2008-09-262021-05-25Commvault Systems, Inc.Systems and methods for managing single instancing data
US9934240B2 (en)2008-09-302018-04-03Google LlcOn demand access to client cached files
US10289692B2 (en)2008-09-302019-05-14Google LlcPreserving file metadata during atomic save operations
US20100082534A1 (en)*2008-09-302010-04-01Microsoft CorporationMethod and System of Managing Conflicts for a Set of Synchronized Folders
US8620861B1 (en)2008-09-302013-12-31Google Inc.Preserving file metadata during atomic save operations
US7941410B2 (en)*2008-09-302011-05-10Microsoft CorporationMethod and system of managing conflicts for a set of synchronized folders
US8909759B2 (en)2008-10-102014-12-09Seven Networks, Inc.Bandwidth measurement
US8725687B2 (en)2008-11-262014-05-13Commvault Systems, Inc.Systems and methods for byte-level or quasi byte-level single instancing
US8412677B2 (en)2008-11-262013-04-02Commvault Systems, Inc.Systems and methods for byte-level or quasi byte-level single instancing
US9158787B2 (en)2008-11-262015-10-13Commvault Systems, IncSystems and methods for byte-level or quasi byte-level single instancing
US7870496B1 (en)2009-01-292011-01-11Jahanzeb Ahmed SherwaniSystem using touchscreen user interface of a mobile device to remotely control a host computer
US8276085B2 (en)2009-01-292012-09-25Iteleport, Inc.Image navigation for touchscreen user interface
US20110093822A1 (en)*2009-01-292011-04-21Jahanzeb Ahmed SherwaniImage Navigation for Touchscreen User Interface
TWI396094B (en)*2009-03-102013-05-11Inventec Appliances CorpMessage display and reply system and method thereof
US10970304B2 (en)2009-03-302021-04-06Commvault Systems, Inc.Storing a variable number of instances of data objects
US8401996B2 (en)2009-03-302013-03-19Commvault Systems, Inc.Storing a variable number of instances of data objects
US9773025B2 (en)2009-03-302017-09-26Commvault Systems, Inc.Storing a variable number of instances of data objects
US11586648B2 (en)2009-03-302023-02-21Commvault Systems, Inc.Storing a variable number of instances of data objects
US8346768B2 (en)2009-04-302013-01-01Microsoft CorporationFast merge support for legacy documents
US20230076748A1 (en)*2009-05-042023-03-09Dropbox, Inc.User interface for viewing items in a synchronization system
US20180278490A1 (en)*2009-05-042018-09-27Dropbox, Inc.User interface for viewing items in a synchronization system
US11483215B2 (en)*2009-05-042022-10-25Dropbox, Inc.User interface for viewing items in a synchronization system
US10938670B2 (en)*2009-05-042021-03-02Dropbox, Inc.User interface for viewing items in a synchronization system
US12368651B2 (en)2009-05-042025-07-22Dropbox, Inc.User interface for managing and viewing synchronization settings in a synchronization system
US11979296B2 (en)*2009-05-042024-05-07Dropbox, Inc.User interface for viewing items in a synchronization system
US10715401B2 (en)*2009-05-042020-07-14Dropbox, Inc.User interface for viewing items in a synchronization system
US20210168045A1 (en)*2009-05-042021-06-03Dropbox, Inc.User interface for viewing items in a synchronization system
US10956274B2 (en)2009-05-222021-03-23Commvault Systems, Inc.Block-level single instancing
US8578120B2 (en)2009-05-222013-11-05Commvault Systems, Inc.Block-level single instancing
US9058117B2 (en)2009-05-222015-06-16Commvault Systems, Inc.Block-level single instancing
US11709739B2 (en)2009-05-222023-07-25Commvault Systems, Inc.Block-level single instancing
US11455212B2 (en)2009-05-222022-09-27Commvault Systems, Inc.Block-level single instancing
US8255006B1 (en)2009-11-102012-08-28Fusionone, Inc.Event dependent notification system and method
US20110167049A1 (en)*2010-01-052011-07-07Apple Inc.File system management techniques for computing environments and systems
US8380755B2 (en)*2010-03-052013-02-19Hong Fu Jin Precision Industry (Shenzhen) Co., Ltd.Electronic reader capable of recording comments and amendments and method thereof
US20110219041A1 (en)*2010-03-052011-09-08Hong Fu Jin Precision Industry (Shenzhen) Co., Ltd.Electronic reader capable of recording comments and amendments and method thereof
US9043731B2 (en)2010-03-302015-05-26Seven Networks, Inc.3D mobile user interface with configurable workspace management
US8886176B2 (en)2010-07-262014-11-11Seven Networks, Inc.Mobile application traffic optimization
US9049179B2 (en)2010-07-262015-06-02Seven Networks, Inc.Mobile network traffic coordination across multiple applications
US9077630B2 (en)2010-07-262015-07-07Seven Networks, Inc.Distributed implementation of dynamic wireless traffic policy
US9407713B2 (en)2010-07-262016-08-02Seven Networks, LlcMobile application traffic optimization
US9043433B2 (en)2010-07-262015-05-26Seven Networks, Inc.Mobile network traffic coordination across multiple applications
US8838783B2 (en)2010-07-262014-09-16Seven Networks, Inc.Distributed caching for resource and mobile network traffic management
US8244043B2 (en)2010-09-172012-08-14Google Inc.Moving information between computing devices
US8805089B2 (en)2010-09-172014-08-12Google Inc.Moving information between computing devices
US10762036B2 (en)2010-09-302020-09-01Commvault Systems, Inc.Archiving data objects using secondary copies
US9639563B2 (en)2010-09-302017-05-02Commvault Systems, Inc.Archiving data objects using secondary copies
US8935492B2 (en)2010-09-302015-01-13Commvault Systems, Inc.Archiving data objects using secondary copies
US11768800B2 (en)2010-09-302023-09-26Commvault Systems, Inc.Archiving data objects using secondary copies
US11392538B2 (en)2010-09-302022-07-19Commvault Systems, Inc.Archiving data objects using secondary copies
US9262275B2 (en)2010-09-302016-02-16Commvault Systems, Inc.Archiving data objects using secondary copies
US8782222B2 (en)2010-11-012014-07-15Seven NetworksTiming of keep-alive messages used in a system for mobile network resource conservation and optimization
US8700728B2 (en)2010-11-012014-04-15Seven Networks, Inc.Cache defeat detection and caching of content addressed by identifiers intended to defeat cache
US8326985B2 (en)2010-11-012012-12-04Seven Networks, Inc.Distributed management of keep-alive message signaling for mobile network resource conservation and optimization
US8966066B2 (en)2010-11-012015-02-24Seven Networks, Inc.Application and network-based long poll request detection and cacheability assessment therefor
US9330196B2 (en)2010-11-012016-05-03Seven Networks, LlcWireless traffic management system cache optimization using http headers
US8204953B2 (en)2010-11-012012-06-19Seven Networks, Inc.Distributed system for cache defeat detection and caching of content addressed by identifiers intended to defeat cache
US8190701B2 (en)2010-11-012012-05-29Seven Networks, Inc.Cache defeat detection and caching of content addressed by identifiers intended to defeat cache
US8843153B2 (en)2010-11-012014-09-23Seven Networks, Inc.Mobile traffic categorization and policy for network use optimization while preserving user experience
US9060032B2 (en)2010-11-012015-06-16Seven Networks, Inc.Selective data compression by a distributed traffic management system to reduce mobile data traffic and signaling traffic
US8291076B2 (en)2010-11-012012-10-16Seven Networks, Inc.Application and network-based long poll request detection and cacheability assessment therefor
US8484314B2 (en)2010-11-012013-07-09Seven Networks, Inc.Distributed caching in a wireless network of content delivered for a mobile application over a long-held request
US9275163B2 (en)2010-11-012016-03-01Seven Networks, LlcRequest and response characteristics based adaptation of distributed caching in a mobile network
US8166164B1 (en)2010-11-012012-04-24Seven Networks, Inc.Application and network-based long poll request detection and cacheability assessment therefor
US8943428B2 (en)2010-11-012015-01-27Synchronoss Technologies, Inc.System for and method of field mapping
US8903954B2 (en)2010-11-222014-12-02Seven Networks, Inc.Optimization of resource polling intervals to satisfy mobile device requests
US8539040B2 (en)2010-11-222013-09-17Seven Networks, Inc.Mobile network background traffic data management with optimized polling intervals
US8417823B2 (en)2010-11-222013-04-09Seven Network, Inc.Aligning data transfer to optimize connections established for transmission over a wireless network
US9100873B2 (en)2010-11-222015-08-04Seven Networks, Inc.Mobile network background traffic data management
US9325662B2 (en)2011-01-072016-04-26Seven Networks, LlcSystem and method for reduction of mobile network traffic used for domain name system (DNS) queries
US8356080B2 (en)2011-04-192013-01-15Seven Networks, Inc.System and method for a mobile device to use physical storage of another device for caching
US9300719B2 (en)2011-04-192016-03-29Seven Networks, Inc.System and method for a mobile device to use physical storage of another device for caching
US8316098B2 (en)2011-04-192012-11-20Seven Networks Inc.Social caching for device resource sharing and management
NL2006626C2 (en)*2011-04-192012-10-22Iphion B V METHOD AND SYSTEM FOR SYNCHRONIZING FILES
US9084105B2 (en)2011-04-192015-07-14Seven Networks, Inc.Device resources sharing for network resource conservation
US8635339B2 (en)2011-04-272014-01-21Seven Networks, Inc.Cache state management on a mobile device to preserve user experience
US8621075B2 (en)2011-04-272013-12-31Seven Metworks, Inc.Detecting and preserving state for satisfying application requests in a distributed proxy and cache system
US8832228B2 (en)2011-04-272014-09-09Seven Networks, Inc.System and method for making requests on behalf of a mobile device based on atomic processes for mobile network traffic relief
US9239800B2 (en)2011-07-272016-01-19Seven Networks, LlcAutomatic generation and distribution of policy information regarding malicious mobile traffic in a wireless network
US8984581B2 (en)2011-07-272015-03-17Seven Networks, Inc.Monitoring mobile application activities for malicious traffic on a mobile device
US9436484B2 (en)2011-08-092016-09-06International Business Machines CorporationSynchronization of data between an electronic computing mobile device and an electronic computing dockstation
US9436485B2 (en)2011-08-092016-09-06International Business Machines CorporationSynchronization of data between an electronic computing mobile device and an electronic computing dockstation
US20130054519A1 (en)*2011-08-312013-02-28Fujitsu LimitedFile synchronization method and file synchronization server apparatus
US9519655B2 (en)*2011-08-312016-12-13Fujitsu LimitedFile synchronization method and file synchronization server apparatus
US8965847B1 (en)*2011-10-282015-02-24Oxygen Cloud, Inc.Independent synchronization of file data and file metadata
US8977755B2 (en)2011-12-062015-03-10Seven Networks, Inc.Mobile device and method to utilize the failover mechanism for fault tolerance provided for mobile traffic management and network/device resource conservation
US8868753B2 (en)2011-12-062014-10-21Seven Networks, Inc.System of redundantly clustered machines to provide failover mechanisms for mobile traffic management and network resource conservation
US8918503B2 (en)2011-12-062014-12-23Seven Networks, Inc.Optimization of mobile traffic directed to private networks and operator configurability thereof
US9208123B2 (en)2011-12-072015-12-08Seven Networks, LlcMobile device having content caching mechanisms integrated with a network operator for traffic alleviation in a wireless network and methods therefor
US9009250B2 (en)2011-12-072015-04-14Seven Networks, Inc.Flexible and dynamic integration schemas of a traffic management system with various network operators for network traffic alleviation
US9173128B2 (en)2011-12-072015-10-27Seven Networks, LlcRadio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol
US9277443B2 (en)2011-12-072016-03-01Seven Networks, LlcRadio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol
US8861354B2 (en)2011-12-142014-10-14Seven Networks, Inc.Hierarchies and categories for management and deployment of policies for distributed wireless traffic optimization
US9832095B2 (en)2011-12-142017-11-28Seven Networks, LlcOperation modes for mobile traffic optimization and concurrent management of optimized and non-optimized traffic
US9021021B2 (en)2011-12-142015-04-28Seven Networks, Inc.Mobile network reporting and usage analytics system and method aggregated using a distributed traffic optimization system
US9131397B2 (en)2012-01-052015-09-08Seven Networks, Inc.Managing cache to prevent overloading of a wireless network due to user activity
US8909202B2 (en)2012-01-052014-12-09Seven Networks, Inc.Detection and management of user interactions with foreground applications on a mobile device in distributed caching
US9203864B2 (en)2012-02-022015-12-01Seven Networks, LlcDynamic categorization of applications for network access in a mobile network
US9326189B2 (en)2012-02-032016-04-26Seven Networks, LlcUser as an end point for profiling and optimizing the delivery of content and data in a wireless network
US9633068B2 (en)2012-03-132017-04-25Microsoft Technology Licensing, LlcSynchronizing local and remote data
US10545991B2 (en)2012-03-132020-01-28Microsoft Technology Licensing, LlcSynchronizing local and remote data
US20130246353A1 (en)*2012-03-132013-09-19Microsoft CorporationSynchronizing local and remote data
US9110892B2 (en)*2012-03-132015-08-18Microsoft Technology Licensing, LlcSynchronizing local and remote data
US9020890B2 (en)2012-03-302015-04-28Commvault Systems, Inc.Smart archiving and data previewing for mobile devices
US11615059B2 (en)2012-03-302023-03-28Commvault Systems, Inc.Smart archiving and data previewing for mobile devices
US10262003B2 (en)2012-03-302019-04-16Commvault Systems, Inc.Smart archiving and data previewing for mobile devices
US11042511B2 (en)2012-03-302021-06-22Commvault Systems, Inc.Smart archiving and data previewing for mobile devices
US8812695B2 (en)2012-04-092014-08-19Seven Networks, Inc.Method and system for management of a virtual network connection without heartbeat messages
US10263899B2 (en)2012-04-102019-04-16Seven Networks, LlcEnhanced customer service for mobile carriers using real-time and historical mobile application and traffic or optimization data associated with mobile devices in a mobile network
US9239846B2 (en)2012-04-232016-01-19Google Inc.Sharing and synchronizing electronically stored files
US9959287B2 (en)2012-04-232018-05-01Google LlcSharing and synchronizing electronically stored files
US9529818B2 (en)2012-04-232016-12-27Google Inc.Sharing and synchronizing electronically stored files
US9244934B2 (en)2012-04-232016-01-26Google Inc.Sharing and synchronizing electronically stored files
US8949179B2 (en)2012-04-232015-02-03Google, Inc.Sharing and synchronizing electronically stored files
US12086109B2 (en)2012-04-232024-09-10Google LlcSharing and synchronizing electronically stored files
US20140108617A1 (en)*2012-07-122014-04-17Unisys CorporationData storage in cloud computing
US8775631B2 (en)2012-07-132014-07-08Seven Networks, Inc.Dynamic bandwidth adjustment for browsing or streaming activity in a wireless network based on prediction of user behavior when interacting with mobile applications
US8631097B1 (en)2012-10-112014-01-14Google Inc.Methods and systems for finding a mobile and non-mobile page pair
US9161258B2 (en)2012-10-242015-10-13Seven Networks, LlcOptimized and selective management of policy deployment to mobile clients in a congested network to prevent further aggravation of network congestion
US9307493B2 (en)2012-12-202016-04-05Seven Networks, LlcSystems and methods for application management of mobile device radio state promotion and demotion
US20140181213A1 (en)*2012-12-212014-06-26Dropbox, Inc.Prioritizing structural operations and distributing changes in a synced online content management system
US10348821B2 (en)*2012-12-212019-07-09Dropbox, Inc.Prioritizing structural operations and distributing changes in a synced online content management system
US9633022B2 (en)2012-12-282017-04-25Commvault Systems, Inc.Backup and restoration for a deduplicated file system
US9959275B2 (en)2012-12-282018-05-01Commvault Systems, Inc.Backup and restoration for a deduplicated file system
US11080232B2 (en)2012-12-282021-08-03Commvault Systems, Inc.Backup and restoration for a deduplicated file system
US10496609B2 (en)2012-12-312019-12-03Carbonite, Inc.Systems and methods for automatic synchronization of recently modified data
US9678978B2 (en)2012-12-312017-06-13Carbonite, Inc.Systems and methods for automatic synchronization of recently modified data
US9271238B2 (en)2013-01-232016-02-23Seven Networks, LlcApplication or context aware fast dormancy
US9241314B2 (en)2013-01-232016-01-19Seven Networks, LlcMobile device with application or context aware fast dormancy
US8874761B2 (en)2013-01-252014-10-28Seven Networks, Inc.Signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols
US8750123B1 (en)2013-03-112014-06-10Seven Networks, Inc.Mobile device equipped with mobile network congestion recognition to make intelligent decisions regarding connecting to an operator network
US20170364496A1 (en)*2013-03-152017-12-21Systemic Management Science CorporationVisualization interface for information object system
CN103226603A (en)*2013-04-272013-07-31南京信息工程大学File synchronization update method and system based on portable storage device
US9904737B2 (en)2013-05-142018-02-27Samsung Electronics Co., Ltd.Method for providing contents curation service and an electronic device thereof
US9065765B2 (en)2013-07-222015-06-23Seven Networks, Inc.Proxy server associated with a mobile carrier for enhancing mobile traffic management in a mobile network
US20150106327A1 (en)*2013-10-102015-04-16Adobe Systems IncorporatedSelf healing cluster of a content management system
US9747166B2 (en)*2013-10-102017-08-29Adobe Systems IncorporatedSelf healing cluster of a content management system
US11940952B2 (en)2014-01-272024-03-26Commvault Systems, Inc.Techniques for serving archived electronic mail
US10324897B2 (en)2014-01-272019-06-18Commvault Systems, Inc.Techniques for serving archived electronic mail
US10394756B2 (en)*2014-03-282019-08-27Vayavya Labs Private. LimitedSystem and method for customizing archive of a device driver generator tool for a user
US20150278231A1 (en)*2014-03-282015-10-01Vayavya Labs Private. LimitedSystem and method for customizing archive of a device driver generator tool for a user
US20170286195A1 (en)*2014-09-112017-10-05Systemic Management Science CorporationInformation object system
US10089337B2 (en)2015-05-202018-10-02Commvault Systems, Inc.Predicting scale of data migration between production and archive storage systems, such as for enterprise customers having large and/or numerous files
US10324914B2 (en)2015-05-202019-06-18Commvalut Systems, Inc.Handling user queries against production and archive storage systems, such as for enterprise customers having large and/or numerous files
US11281642B2 (en)2015-05-202022-03-22Commvault Systems, Inc.Handling user queries against production and archive storage systems, such as for enterprise customers having large and/or numerous files
US10977231B2 (en)2015-05-202021-04-13Commvault Systems, Inc.Predicting scale of data migration
US10565168B2 (en)2017-05-022020-02-18Oxygen Cloud, Inc.Independent synchronization with state transformation
US11580074B1 (en)*2018-07-272023-02-14Veeva Systems Inc.System and method for synchronizing data between a customer data management system and a data warehouse
US10997202B1 (en)2018-07-272021-05-04Veeva Systems Inc.System and method for synchronizing data between a customer data management system and a data warehouse
US10970255B1 (en)*2018-07-272021-04-06Veeva Systems Inc.System and method for synchronizing data between a customer data management system and a data warehouse
US12306799B2 (en)2020-12-232025-05-20Dropbox, Inc.Ignore objects from synchronizing to content management system

Similar Documents

PublicationPublication DateTitle
US6324544B1 (en)File object synchronization between a desktop computer and a mobile device
JP4246382B2 (en) Email object synchronization between desktop computers and mobile devices
US8069144B2 (en)System and methods for asynchronous synchronization
US6925476B1 (en)Updating application data including adding first change log to aggreagate change log comprising summary of changes
US7773106B2 (en)System and apparatus for sending complete responses to truncated electronic mail messages on a mobile device
US6694335B1 (en)Method, computer readable medium, and system for monitoring the state of a collection of resources
US6466238B1 (en)Computer operating system that defines default document folder for application programs
US6526413B2 (en)Architecture for a hierarchical folder structure in hand-held computers
EP1422902B1 (en)Folder Synchronization
US8935208B2 (en)Backup and restore system for a computer
US6996633B2 (en)System and method for synchronizing objects between two devices
US6463427B1 (en)Use of object signature property as a search parameter during synchronization of objects on a computer
WO2005046104A2 (en)Schema hierarchy for electronic messages
US20020087603A1 (en)Change tracking integrated with disconnected device document synchronization
US7613835B2 (en)Generic API for synchronization
US20040267755A1 (en)Database driven type extensibility
US7058956B1 (en)Directory services interface extensions with aggregatable software objects
HK1066661B (en)Folder synchronization
HK1094288B (en)Method for sending complete responses to truncated electronic mail
HK1066353B (en)Method for sending responses to truncated electronic mail

Legal Events

DateCodeTitleDescription
ASAssignment

Owner name:MICROSOFT CORPORATION, WASHINGTON

Free format text:ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:ALAM, SALIM;BHALERAO, VINAYAK A.;WU, CHARLES;AND OTHERS;REEL/FRAME:009674/0501;SIGNING DATES FROM 19981214 TO 19981217

STCFInformation on status: patent grant

Free format text:PATENTED CASE

CCCertificate of correction
FPAYFee payment

Year of fee payment:4

FPAYFee payment

Year of fee payment:8

FPAYFee payment

Year of fee payment:12

ASAssignment

Owner name:MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON

Free format text:ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034541/0001

Effective date:20141014


[8]ページ先頭

©2009-2025 Movatter.jp