US20050102328A1 - Synchronization and merge engines - Google Patents
Synchronization and merge engines Download PDFInfo
- Publication number
- US20050102328A1 US20050102328A1 US10/703,949 US70394903A US2005102328A1 US 20050102328 A1 US20050102328 A1 US 20050102328A1 US 70394903 A US70394903 A US 70394903A US 2005102328 A1 US2005102328 A1 US 2005102328A1
- Authority
- US
- United States
- Prior art keywords
- folder
- entry
- entries
- folders
- information
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/04—Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99954—Version management
Definitions
- the present invention relates generally to the field of personal information management and more specifically, to synchronizing and publishing personal information, such as contact and address information, between multiple users and interfaces connected to a network, such as the Internet.
- PIM personal information manager
- PC personal computers
- PDA personal digital assistants
- a user may synchronize personal information to be stored on, and accessible from, a personal computer in the home environment, a personal computer in the work environment and a portable PDA.
- Conventional synchronization software products that help users synchronize PIMs on different devices in this manner included Intellisync® software from Puma Technology, Inc. of San Jose, Calif.
- a drawback of conventional synchronization software products is a requirement of a physical connection between the PDA and the computer system hosting the PIM.
- Another drawback of such conventional synchronization software products is that it its use it limited to synchronization of a particular device or PIM and not with respect to other users.
- Yet another drawback of such conventional synchronization software products is resolution of discrepancies between data in substantially identical entries in the different devices. The user is forced to save substantially similar, though not identical, entries or the user must affirmatively select which data to overwrite before any synchronization process is completed. In turn, this decreases efficiency and flexibility for a user.
- these online services also advocated the ability to synchronize information across various physical devices through the online service server.
- these conventional online services provided the ability to synchronize personal information maintained within a PIM with the personal information stored on the online service server through a downloadable conventional synchronization software product, such as, for example, Intellisync® for PlanetAll.com, developed by Puma Technology, Inc., of San Jose, Calif.
- Symmetric services require a subscription membership to the service on both sides of the information exchange facilitated by the service. That is, only subscribers of the conventional online services could update personal information with each other. Thus, the service only worked if both the user providing the updated information and the user seeking an information update subscribed to the service. Non-subscribers were unable to synchronize their personal information with subscribers and vice versa. Hence, subscribers to the service would be unable to maintain synchronized data with nonsubscribers. This symmetry requirement limited user flexibility in maintaining consistency of data across the various types of contacts.
- Still another problem with these conventional online services was limited subscriber flexibility in configuring the information for synchronization in a manner most suitable for that subscriber.
- the subscribing user lacked flexibility allowing a subscriber to select particular data fields or sets of data fields to update other devices and/or subscribers in of the service on a per device and/or subscriber basis.
- subscribers were limited to an “all or none” proposition for updating information between devices and/or subscribers.
- the present invention includes a system and a method for synchronizing a folder containing information in one device with one or more folders containing information in one or more other devices.
- the present invention also includes a system and a method for merging data between folders to be synchronized.
- a folder is a type of repository and is configured as a grouping of contents.
- the content comprises information that may include other folders and/or data. Examples of information include electronic mail (“e-mail”), contacts, messaging, and/or personal data.
- the devices containing the folders are applications on a physical device, e.g., a personal information manager (“PIM”) on a personal computer (“PC”), mobile telephone or a personal digital assistant (“PDA”), or on a logical device, e.g., a personal information manager through an online portal service such as Yahoo! or America Online.
- a physical device e.g., a personal information manager (“PIM”) on a personal computer (“PC”), mobile telephone or a personal digital assistant (“PDA”)
- PDA personal digital assistant
- a logical device e.g., a personal information manager through an online portal service such as Yahoo! or America Online.
- a synchronization system (or engine) includes a layer selection module, a parsing module, a comparison module, a map (or link) module, a synchronization output module, and a synchronization rules module.
- the modules may be software, hardware, or a combination thereof. The modules are configured to communicatively couple together.
- the layers selection module selects between one or more layers of information for synchronization.
- the parsing module parses out the data within the layers and the comparison module compares the data to determine duplicative data.
- the map module determines whether particular layers, information, and/or data are linked together in particular relationships.
- the map module may also be configured to provide a unique identifier for linking relationships.
- the synchronization module synchronizes the data within the layers based on the synchronization rules and the linked relationships.
- a synchronization process includes synchronizing folders between one or more layers of folders.
- the process includes selecting one or more layers to link together and comparing folders in the selected layers using an immutable identifier.
- the process also includes parsing the folders of each of the selected layers into fields and comparing the fields of parsed folders. The process then determines whether to synchronize the folders of the selected layers based on one or more conflict rules that are triggered in response to the comparison of the fields of the parsed folders.
- An advantage of a synchronization system and process in accordance with the present invention includes recognition of a layered set of folders, for example, folders of contact information that can be updated independently or in subset of the other layers. Hence, a user beneficially has increased control and flexibility over synchronization of information at multiple layers or levels.
- the present invention also includes a merge system (or engine) for merging information in various layers and at various levels.
- a merge engine includes a map (or link) module, a duplicate evaluation module, a matrix table, a matrix scoring module, a merge rules module, and a merge output module.
- the modules may be software, hardware, or a combination thereof, and are configured to communicatively couple together.
- the merge system (and process) may function independently or in conjunction with the synchronization system (and process).
- the map module is functionally similar to the map module of the synchronization engine.
- the map module can be the same module used in both systems or may be a subset thereof.
- the duplicate evaluation module determines potential duplicates between entries that may be merged.
- the matrix tables and matrix scoring module generate a matrix of duplicate entries that may merge and assign a value (e.g., a score) to each matrix entry based on one or more factors.
- the merge rules module determines whether to merge particular entries based on rules that take into consideration the matrix entry.
- the output module outputs entries determined to be merged as a merged entity.
- the merge process in one embodiment of the present invention includes merging two or more folders in a network into a single folder.
- the method includes comparing entries in the first folder to entries in a second folder to identify duplicate entries between the first folder and the second folder. An entry may be determined to be a duplicate if there is a match between an identifier in the entry in the first folder and an identifier in the entry in the second folder.
- the process groups the identified duplicate entries from the first folder and also groups the identified duplicate entries from the second folder.
- the process also generates a matrix in which there are two or more matrix entries. Each matrix entry includes a value associated with merging identified duplicate entries between groupings. In addition, the matrix entries are matched based on the assigned values to determine an extent to merge an identified duplicate entry.
- An advantage of a merge system and process in accordance with the present invention includes being able to compare entries between layers or levels of information to be merged together and merging that information without requiring user intervention. Moreover, the present invention beneficially mergers folders of information, which allows users to purposely maintain and synchronize duplicates.
- FIG. (“FIG. ”) 1 illustrates an example of one embodiment of a network system in accordance with the present invention.
- FIG. 2 a illustrates an embodiment of a logical network environment in accordance with the present invention.
- FIG. 2 b illustrates an embodiment of a structural network environment in accordance with the present invention.
- FIG. 3 a is a flow chart of a process for growing a private network in accordance with one embodiment of the present invention.
- FIG. 3 b is an event diagram of one example of a method for illustrating asymmetric operation according to one embodiment of the present invention.
- FIGS. 4 a through 4 d illustrate stages of viral growth of a network in accordance with one embodiment of the present invention.
- FIG. 5 illustrates an example of physical and logical devices for synchronization through a synchronization engine (or system) in accordance with the present invention.
- FIG. 6 illustrates an example of a folder for synchronization and/or merge in accordance with the present invention.
- FIG. 7 illustrates a synchronization engine in accordance with one embodiment of the present invention.
- FIG. 8 a illustrates a logical view of layered organization for synchronization in accordance with the present invention.
- FIG. 8 b illustrates a logical view of synchronization in accordance with the present invention.
- FIG. 8 c illustrates a logical view of contact cards in accordance with one embodiment of the present invention.
- FIGS. 9 a and 9 b illustrate processes for synchronization in accordance with one embodiment of the present invention.
- FIG. 10 illustrates a merge engine in accordance with one embodiment of the present invention.
- FIGS. 11 a through 11 c illustrate processes for merging information in accordance with one embodiment of the present invention.
- FIG. 12 illustrates one embodiment for resolution of information conflicts in accordance with the present invention.
- FIG. 13 illustrates an example of synchronizing and merging sets of address information between devices in accordance with the present invention.
- FIG. The Figures (“FIG. ”) and the following description relate to preferred embodiments of the present invention by way of illustration only. It should be noted that from the following discussion, alternative embodiments of the structures and methods disclosed herein will be readily recognized as viable alternatives that may be employed without departing from the principles of the claimed invention.
- the present invention includes a synchronization engine (or system) and a merge engine (or system) for synchronizing information between various layers and levels and merging information within those synchronized layers and levels with minimal user intervention.
- a layer or level may be of a physical (e.g., a device) or logical (location of information in various locations, e.g. various devices or services).
- FIG. 1 it illustrates an embodiment of a network environment in accordance with the present invention.
- the network environment includes a private network system (or service (or private network)) 100 , a public network 102 , and a set of public network users 103 .
- the public network 102 communicatively couples the private network 100 with the set of public network users 103 .
- the networks are not limited to a particular physical network, i.e., devices linked by physical communication channels (wired or wireless). Rather, a network may be a functional (or logical) network such as those based on the type of messaging between users, which may be physically carried by various communication channels.
- a network may include a group of wireless phones users communicating based on unique telephone numbers or it may include a group of computer users communicating based on unique e-mail addresses.
- more than one functional network may be embodied in a single physical network.
- a computer network may embody an electronic mail based functional network and an instant messaging based functional network (e.g., AIM, ICQ, or the like).
- the public network 102 includes a physical element and a functional element.
- the physical element of public network 102 refers to a communications network, for example, a computer network (e.g., local area network (“LAN”), wide area network (“WAN”), wireless data network (“WDN”), the Internet, or the like), a wireless protocol based communications network (e.g., network based on personal communications system (PCS), global system mobile (GSM)), or the like.
- LAN local area network
- WAN wide area network
- WDN wireless data network
- GSM global system mobile
- the functional element of public network 102 refers to a communication mode between network users 103 .
- Examples of the communication mode are instant messaging, electronic mail, telephone, wireless messaging, or the like.
- Each communication mode includes a unique identifier that may be used to address communications between users 103 in the public network 102 .
- the functional element of the public network 102 is referred to as public protocol or public communication mode.
- network users 103 may communicate via a public electronic mail protocol (e.g., Post Office Protocol (POP), Internet Message Access Protocol (IMAP), Simple Mail Transfer Protocol (SMTP), Multipurpose Internet Mail Extension (MIME) protocol, or the like).
- POP Post Office Protocol
- IMAP Internet Message Access Protocol
- SMTP Simple Mail Transfer Protocol
- MIME Multipurpose Internet Mail Extension
- the network users 103 include one or more members 104 and one or more non-members (or non-users) of the private network 100 .
- the members 104 communicate with private network system 100 over the public network 102 using a private or proprietary protocol 108 .
- the non-members 106 communicate with the members 104 in the private network system 100 over a common or public communication method or protocol 110 that is part of the public network 102 .
- the private network system 100 includes a central server 112 and a database system 114 that are communicatively coupled together.
- the private network system 100 is based on a hybrid peer-to-peer and client-server network architecture.
- central server 112 provides the centralized functions of network management.
- Central server 112 may include one or more computing systems (or machines), i.e., may be a server farm, or the like.
- the central server 112 is connected to the network 102 and can implement the private and public protocols 108 , 110 to communicate with the network users 103 .
- the database unit 114 may be a single data storage device or a set of interconnected storage devices, e.g. storage area network (“SAN”), distributed database, or the like.
- SAN storage area network
- FIG. 2 a it illustrates an embodiment of a logical network environment in accordance with the present invention.
- the logical network environment includes the private network 100 , the one or more members 104 , and the one or more non-members 106 . Also illustrated is an example member system 104 a as set forth below.
- the one or more members 104 (including 104 a ) and the one or more non-members are communicatively coupled through the private network 100 .
- the illustrated member system 104 a includes a client system (or machine) 116 and a database 128 .
- the client system 116 is a conventional computing system (e.g., personal computer, personal digital assistant (“PDA”), mobile phone, computing tablet, and the like) that includes a conventional operating system (e.g., windowing, graphical, and/or text based operating system) and one or more application programs.
- the client system 116 communicates with a server system of the private network 100 through the computer network 102 .
- Each client system 116 may host a client application for managing private protocol 108 and service 100 functions.
- the database 128 stores data and other informational entities as further described herein.
- FIG. 2 b illustrates an embodiment of a structural network environment in accordance with the present invention.
- the structural network environment includes one or more client systems 116 , the public network 102 , and one or more servers 112 in the private network 100 .
- the client system 116 may communicatively couple with other client systems or devices (e.g., PDA or mobile phone) through a direct or networked connection.
- client systems or devices e.g., PDA or mobile phone
- Each client system 116 includes a client application 118 , an Internet (or web) browser 120 , a personal information manager (“PIM”) 122 , and a client services module 126 .
- the client application, the Internet browser 120 , the PIM 122 , and the client services module 126 are communicatively coupled through the operating system.
- the Internet browser 120 is a conventional browser for wired or wireless system. Examples include Internet Explorer® by Microsoft Corporation of Redmond, Wash., Netscape Navigator® by Netscape Communications, Corp. of Mountain View, Calif., NetFront Web browser, by Access Systems America, Inc. of Fremont, Calif., or Openwave® Mobile Browser, by Openwave Systems, Inc. of Redwood City, Calif.
- the PIM 122 is a conventional PIM. Examples include Microsoft Outlook, by Microsoft Corporation and Lotus Notes®, by Lotus Software of International Business Machines (IBM), Cambridge, Mass. It is noted that the Internet browser 120 may be integrated with the client application 118 .
- the client application 118 is an application a user interacts with to access functionality of a system, for example, the system of the present invention as disclosed herein.
- the client application may include a text or Graphical User Interface (“GUI”) 124 front end.
- GUI Graphical User Interface
- the client application 118 facilitates viewing, accessing, publishing and synchronizing of information. It is noted that in alternative embodiments the client application 118 may be fully integrated with and embodied within the PIM 122 , or may itself constitute a full-function PIM 122 , and thus, obviate the need for any further independent or stand-alone PIM 122 .
- the client application 118 provides PIM functionality by facilitating/managing storage, publication and synchronization of personal information of members 104 .
- personal information of a member 104 includes information regarding the member 104 him/herself and information that the member 104 has regarding other users 103 (both members 104 and non-members 106 ).
- the ability for non-member 106 users to interact with the private network 100 beneficially adds value for member 104 with regard to gathering and storing information from non-members 106 .
- the client services module 126 provides data services to both the client application 118 and a local database 128 .
- the client services module 126 is furthermore responsible for executing accesses to the local database 128 within which personal information of member 104 using client system 116 may be maintained. Specifically, the client services module 126 is responsible for the integrity and locking of the local database 128 at appropriate times.
- Components that are included within or communicatively couple with the client services module 126 may also be configured to synchronize information maintained in the local database 128 with information maintained on a remote database 114 as will be further described herein.
- the client services module 126 communicates via the private protocol 108 , which may include a Secure Socket Layer (“SSL”) stack, over the public network 102 .
- the client services module 126 communicates via the private protocol 108 , which may include a Secure Socket Layer (“SSL”) stack, over the public network 102 .
- private protocol 108 is a conventional proprietary binary protocol defining message objects that are communicated between the client application 118 at the client system 116 and the server 112 .
- Other customizable communication protocols can be use to implement the private protocol 108 , for example, Extensible Markup Language (“XML”) based protocols or Remote Procedure Call (“RPC”) based protocols may be used.
- the message objects may further include other types of objects for the transfer of data.
- private protocol 108 may define update messages to check for data updates based on timestamps and define basic responses such as, for example, “OUT OF DATE,” “RECORD INSERTED,” “O.K.,” or the like.
- the client services module 126 also has the capability to synchronize with third party components hosted on, or coupled to, the client machine 116 .
- the client services module 126 may, via the synchronization engine, synchronize with the PIM 122 or with a PDA 132 , or any other PIM capable device.
- the server system 112 includes a firewall 136 , a resonate dispatch 138 , an SSL gateway 139 , an application server 140 , a web server 142 , a database management system (“DBMS”)/data mining server 144 , a management module 146 , and the database 114 . These components are communicatively coupled together within the server system 112 .
- DBMS database management system
- the resonate dispatch 138 is optional and performs load balancing operations between multiple servers on which the application server 140 and the web server 142 are hosted.
- both the application server 140 and the web server 142 may be hosted on physically or logically single servers.
- the application server 140 may be developed utilizing Java technology, and serves both the client services module 126 and the web server 142 .
- the application server 140 includes logic that allows a member 104 accessing the application server 140 to access only information for which the member 104 has been granted permission.
- the application server 140 is also responsible for sending personal information updates to the client services module 126 to synchronize the local database 128 with a specific subset of information maintained within the server database 114 for the specific member 104 .
- Another function of the application server 140 includes the handling and disposition of service requests from members 104 and the corresponding responses from users 103 . These functions include the determination of membership in the private network, public and private protocol communications, and database 114 management.
- the application server 140 queries the database 114 to determine which users 103 designated in a member's service request are also members 104 of the private network 100 .
- Application server 140 uses the private protocol 108 to send service request messages to members 104 .
- users 103 determined to be non-members 106 receive information requests from application server 140 via the public protocol 110 .
- application server 140 may include a public protocol communications module to implement non-member communications.
- the web server 142 communicates with the resonant dispatch 138 via an optional SSL gateway 139 that encapsulates and decapsulates a protocol such as Hypertext Transport Protocol (“HTTP”) issued from and to be received at the web server 142 .
- HTTP Hypertext Transport Protocol
- private protocol 108 messages can be wrapped in secured HTTP (“HTTPS”), that is, HTTP code encapsulated with SSL encryption.
- HTTPS secured HTTP
- the web server 142 may also be developed utilizing technology such as Java, J2EE, NET, Visual Basic, or the like.
- the application and web servers 142 and 140 provide full access to permitted data within the database 114 to a member 104 through its client system 116 .
- the web server 142 may further function as a conduit for private protocol 108 messages tunneled through HTTP or HTTPS communications between client applications 118 and the application server 140 .
- the application server 140 allows access to permitted data within the database 114 from any platform. Further, a part of the asymmetric aspects of the present invention, the application server 140 also allows a non-member 106 to interface with private network 100 . Hence, members 104 receive the benefit of communicating with users 103 (other members 104 and non-members 106 ) in the context of the system of the present invention.
- the management module 146 is configured to be integrated with or operate with the application server 140 to manage functionality and operation of synchronization and merging activity in accordance with the present invention.
- the DBMS (or data-mining module) 144 is included in the system 100 .
- the DBMS 144 executes complex queries to the database 114 either when prompted or on a scheduled basis.
- the algorithms that implement viral engine functions of the present invention may provide these queries.
- the DBMS 144 may also execute other algorithms, including natural language processing or heuristic algorithms, to extract member requested information from non-member 106 public protocol 110 based communications.
- the DBMS 144 may process incoming e-mails responsive to member 104 contact update requests to extract non-member 106 contact information.
- the DBMS 144 may be hosted on a server system, while the server database 114 may be implemented using a RAID storage device, or other similar system.
- the server database 114 maintains synchronized copies of the local (client) databases 128 that may be implemented on numerous client systems 116 communicatively coupled to the server system 112 .
- the server database 114 also records various permissions with respect to personal information by which personal information for a specific user may be accessible by, and accordingly published to, multiple other users 103 as described herein. It is noted that in alternative embodiments, the server database 114 need not store copies of the local database 128 . Alternatively, the server database 114 may store links to the local database 128 to access as needed.
- the server database 114 facilitates a system in which an address book of a specific member 104 (i.e., address information that is viewable by the specific member 104 ) is asymmetrically populated by information supplied and or published by multiple other users 103 , both members 104 and non-members 106 . Accordingly, only a single copy of personal information concerning a specific member 104 may exist within the server database 114 , but this specific copy is accessible to multiple other members 104 to whom an owner member 104 has granted access permission. It is noted that the single copy of personal information concerning a specific member 104 might be replicated as cached copies during system operation to help increase efficiency.
- the private network service 100 includes a personal contact information updating service operating via a wireless network among wireless phone users 103 .
- private network service 100 includes a universal address book operating over the Internet among e-mail users 103 .
- a member 104 a with a local address book in a storage device accesses the private and public networks with a personal computer (client system 116 ).
- the member 104 a selects a set of e-mail users (users 103 ) for requesting updated contact information.
- the member's personal computer e.g., client system 116
- the server system 112 Based on the e-mail addresses provided, the server system 112 looks up the e-mail users in a universal address book for the member 104 a in the service database 114 to determine membership in the private network 100 . Once the e-mail users are identified as members 104 (i.e., other members) and non-members 106 , the server system 112 sends update request messages to the other members 104 using the proprietary messaging and sends e-mail messages (public protocol 110 ) requesting updated contact information to non-members 106 .
- members 104 i.e., other members
- e-mail messages public protocol 110
- An advantage of the present invention includes asymmetric operation, which may be leveraged to grow the private network 100 .
- FIG. 3 a a flow chart of a process for growing the private network 100 in accordance with one embodiment of the present invention.
- the service is initialized 150 when, for example, a user 103 accepts an invitation to join a private network.
- a user 103 may download an application client-software and install it in the user's client system 116 .
- the user 103 becomes a member 104 .
- Service initialization 150 is configured to be a frictionless process as further described in U.S. patent application Ser. No. ______, entitled “Viral Engine for Network Growth,” by inventors John T. Masonis, Sean Parker, Cameron T. Ring, and Richard J. Carey, and assigned to the same assignee as the present invention, the contents of which are herein incorporated by reference.
- new member 104 can begin using the features provided by service 100 by submitting service requests.
- service requests are received 152 for processing.
- a member's 104 client software may designate a set of contacts in the member's contact list for whom updated information is to be requested.
- Service requests are sent 154 to other members 104 and to non-members 106 .
- a notification to verify a member's own personal contact information stored in the system database 114 may be sent via private protocol 108 to any member 104 designated in the service request.
- an e-mail message may be sent to non-members 106 asking them to provide current contact information in a reply e-mail message.
- Members 104 may respond to service requests via the private protocol 108 if, for example, their own information stored in the system database 114 needs to be updated.
- Non-members 106 may respond via the public protocol 110 or some other alternative general access mode.
- non-members can respond to update requests using e-mail messages or web-based forms via the Internet.
- the service responses are received 156 and the service to the original member is performed 158 on server 112 .
- current contact information provided by non-members 106 may be extracted from response e-mail messages using heuristic algorithms and that information may be used to update member database records concerning the non-members 106 .
- response messages from members 104 confirming that their own information stored in the server system database 114 is current, or providing updated information are received via the private protocol 108 and the member profiles of the requesting and providing members 104 are linked in the system database 114 .
- the private protocol 108 to communicate with the client application software in the requesting member's client system 116
- the local database 128 is updated 160 to include information in the service responses.
- the service may be requested 162 once again, e.g., for a new set of contacts, or it may be terminated 164 .
- System server 112 sends 168 a communication to a user 103 that results in the user 103 becoming a member 104 a .
- the communication may be an update request bearing an invitation to join the private network, a download of client software, or the like.
- the member 104 a sends 170 a service request that designates a set of users 103 from which information is to be requested.
- the server 112 accesses 172 central database 114 to determine which designated users 103 are members 104 and which ones are non-members 106 .
- the database 114 provides 174 the membership information regarding the designated users 103 to the server 112 .
- the server 112 sends 176 information requests to members 104 via private protocol 108 and sends 178 information requests to non-members 106 via public protocol 110 .
- FIG. 3 b also shows a representative set of actions for each type of response.
- members 104 respond 180 to the service request via private protocol 108 .
- a particular member 104 response can be, for example, an update to the member's own information, an authorization to allow the requesting member 104 a to access information, or the like.
- the server 112 may access 182 the database 114 to process responses from other members 104 . These processes include update information according to responses from other members 104 or to enable links between system records of the requesting member 104 a and the responding members 104 .
- the server 112 communicates 184 with the requesting member 104 a .
- These communications include notification of the new links made, synchronizing system (e.g., universal address book) and local (e.g., PIM 122 ) information, or the like.
- non-members 106 respond 186 via the public protocol 110 in one or more different ways.
- non-members may respond through reply e-mail, voicemail, instant message, web-access, or the like.
- the server 112 processes the responses of non-members 106 by determining relevant information of non-members 106 by extracting it from the response mechanism used by the non-member 106 . Once some or all the relevant information is available, server 112 updates 188 the system records of the member 104 a regarding information of non-member 106 .
- the server 112 also communicates 190 with the member 104 a in regard to non-member 106 . This communication may be to update member 104 a about information received from each non-member 106 (e.g., service unrelated information included in a reply e-mail), or to synchronize local database 118 with the updated non-member information.
- a source of this growth may be a viral network, for example, as described in U.S. patent application Ser. No. ______, entitled “Viral Engine for Network Growth,” by inventors John T. Masonis, Sean Parker, Cameron T. Ring, and Richard J. Carey, and assigned to the same assignee as the present invention, the contents of which are herein incorporated by reference.
- FIGS. 4 a through 4 d logically illustrate viral network growth in accordance with the present invention.
- the letter “U” followed by a number represents non-members 106 and the letter “M” followed by a number represent members 104 .
- private network connections are shown as arrows, either unidirectional, pointing away from members M to non-members U and depicting asymmetric network links, or bi-directional, pointing towards two members M and depicting symmetric portions of the private network over which enhanced services are available.
- private network connections are not necessarily physical connections. Rather, they may include virtual links between users 103 (members M and non-members U) representative of the services offered by the private network and the information exchanges in connection with those services.
- FIG. 4 a shows a first member M 0 that uses private network service 100 with a subset of non-members U 1 , U 3 , U 7 , U 11 , U 2 , U 4 , and U 5 .
- the arrows pointing away from M 0 represent communications that expose the non-members U to the private network, for example, service requests with invitations to join, e-mails or other messages mentioning the private network service, or the like.
- Non-members U 1 and U 2 decide to join the private network 100 , for example, by responding to an invitation to join the private network included with a private network service request, and become members M 1 and M 2 .
- the other non-members U 3 , U 7 , U 11 , U 4 , and U 5 have been exposed to the private network for the first time and decide not to join the private network, e.g., may ignore the communication from M 0 , may not have the time to look into the service, or for some other reason do not join at this time.
- M 1 and M 2 use the private network service 100 with another subset of non-members U.
- M 1 uses the private network service 100 with U 6 , U 3 , U 5 , and M 0 .
- M 2 uses the service with U 11 , U 12 , U 10 , U 4 , and M 0 . Since M 0 was already a member, the link between M 0 and M 1 and M 2 are symmetric, shown by the bi-directional arrows, are enhanced services are available between these members M.
- M 0 since M 0 had contacts with members M 1 and M 2 , it is possible that M 1 and M 2 may share contacts with M 0 and therefore may use the private network service 100 with some subset of users 103 in common with M 0 , for example, U 3 , U 5 , U 4 , and U 11 .
- some non-members U get multiple exposures to private network service 100 from different members M.
- these non-members are provided with multiple opportunities to join the private network.
- the multiple exposures may induce non-members U to join the private network. For instance, non-members may think that if two friends or business contacts are using the service it may be worth looking into it, or they may have a closer or more trustworthy relationship with the second member, or the like.
- FIG. 4 c shows the next iteration of the viral growth deployment.
- non-member user U 3 contacted by both M 0 and M 1 has decided to join the private network and is using the service with some overlapping non-members, e.g., U 6 , and some non-members who had not previously been exposed to the private network, e.g., U 9 .
- U 6 some non-members who had not previously been exposed to the private network
- An advantage for members 104 of the private network 100 is the asymmetric information exchange that allows members 104 , as well as non-members 106 , to provide information directly to the members 104 of the private network 100 .
- synchronization among applications, e.g., the PIM 122 , on various devices can become increasingly arduous.
- the present invention includes a synchronization engine (or system) and a merge engine (or system) that allows member 104 to synchronize and merge information from a variety of devices.
- a synchronization engine or system
- a merge engine or system
- the principles of the synchronization and merge engines will be described in the context of a personal information manager (PIM) applications, and more particularly, contact information.
- PIM personal information manager
- the information that the synchronization and merge engines can work with and process is not limited to PIMs and/or contact information. Rather, the principles involving the synchronization and merge engines are applicable for use and operation with any information that is stored as data, including, data representing entries for calendars, meetings, reminders, notes, and tasks, as well as data such as want advertisements, hiring listings, auction listings, and the like.
- the synchronization engine can initiate and manage a synchronization (“synch”) process involving two or more devices.
- the device may be a physical device with an application having information to be synchronized, for example, the client system 116 with a PIM 122 , the PDA 132 with a PIM, or a mobile phone 510 with a PIM.
- the device may be a logical device having information to be synchronized, for example, a web-based PIM (e.g., address book) 515 from an online service such as Yahoo! or America Online.
- the device may be any physical device and/or logical device having an application for synchronization 520 within the private network 100 .
- FIG. 6 illustrates an example of a folder 610 in accordance with the present invention.
- the folder 610 contains content such that it serves as a repository of information (e.g., data).
- the folder 610 may include one or more entries 620 and/or one or more subfolders 630 .
- the folder 610 may be configured to group the contents together in a multitude of variations, e.g., hierarchical or multi-tiered structured entries 620 and/or subfolders 630 or flat structured entries 620 and/or subfolders 630 .
- examples of entries 620 include e-mails, contacts, IM messages, task lists, and notes.
- Examples of folders 610 and subfolders 630 include groupings of the entries, for example, a grouping of e-mails relating to work, a grouping of e-mails relating to home, a grouping of contacts relating to work, a grouping of contacts relating to home, a grouping of tasks relating to work, a grouping of tasks relating to home or some combination thereof.
- the synchronization engine (which may also be referred to as a system) includes a layer selection module 710 , a parsing module 720 , a comparison module 730 , a map (or link) module 740 , a synchronization (or synch) output module 750 , and a synchronization (or synch) rules module 760 .
- the modules 710 , 720 , 730 , 740 , 750 , 760 are embodied in software, hardware, or a combination thereof and are communicatively coupled together.
- the layers selection module 710 selects between one or more layers of information for synchronization.
- a layer is a category of information.
- FIG. 8 a illustrates a logical layered organization for synchronization in the context of contact information in accordance with the present invention.
- layers may include an owner layer 810 , a reply layer 820 , and a service layer 830 (e.g., private network service or PNS).
- PNS private network service
- the owner layer 810 corresponds to information (data) that is owned and controlled by a member 104 who maintains the authority on how that information is manipulated.
- the member 104 synchronizes the owner layer 810 either manually or through an automated process, e.g. software.
- the reply layer 820 corresponds to information that is changeable by a particular non-member 106 in request to update from the member 104 .
- a non-member 106 provides information that is synchronized with the owner layer 810 and/or a service layer 830 .
- the service layer 830 corresponds with information that is updated in response to initiation for synchronization by a member 104 .
- the service layer 830 information is synchronized with the owner layer 810 and may be synchronized in response to reply layer 820 information.
- the different layers of information e.g., 810 , 820 , 930
- information typed in at the owner layer 810 versus information obtained through the reply layer 820 versus information provided through the service layer 830 e.g., obtained via the private network 160 .
- the information at each layer may be manipulated through a user interface that is for the particular layer to allow access to the particular layer.
- the parsing module 720 parses out the data within the layers and the comparison module 730 compares the data to determine (or identify) duplicative data.
- the map module 740 determines whether particular layers and/or information is linked together in particular relationships.
- FIG. 8 b which is further described below, provides an example of a logical view of how information between two devices 840 , 845 synchronize with each other and a universal (or server) address book 850 stored in the database 114 in the server system 112 of the private network 100 .
- the map module 740 may also be configured to provide a unique identifier for linking relationships.
- the unique identifier is an immutable identifier such as an e-mail address, instant messenger address, a telephone number, or other unique identifier (e.g., social security number).
- FIG. 8 c illustrates an example of a logical view of contact cards in accordance with one embodiment of the present invention, in which a unique identifier 875 is used to associate information with a member 104 in a private network 100 .
- the synchronization output module 750 synchronizes the data within the layers based on the synchronization rules (from the synch rules module 760 ) and the linked relationships.
- FIG. 8 b the logical view in FIG. 8 b of how information between two devices 840 , 845 synchronize with each other and a universal address book in the database 114 of the server system 112 in the private network 100 .
- FIG. 8 c the logical view of contact cards in FIG. 8 c , in which a unique identifier 860 is used to associate information 875 with a member 104 in the private network 100 .
- the logical view illustrates a first device (referenced as DEV A) 840 , a second device (referenced as DEV B) 845 , and a universal address book 850 with two sets (or folders) 852 , 854 in the database 114 of the server system 112 of the private network 100 (referenced as PNS).
- the devices 840 , 845 can be physical devices (e.g., personal computer or PDA) with a PIM application or can be logical devices (e.g., portal web site) with a PIM application.
- the two devices (DEV A and DEV B), 840 , 845 include an application (or APP) such as a PIM address book (PIM AB) 842 , 847 and a mirror 844 , 849 .
- PIM AB PIM address book
- the PIM address book 842 , 847 of both/either device A 840 and/or device B 845 may be functionally similar to the PIM address book 122 described previously with respect to client system 116 (of which device A and device B may be functionally similar to).
- the synchronization engine synchronizes information between the PIM address books on the two devices 840 , 845 and the universal address book 850 of the private network 100 through the mirrors 844 , 849 .
- the mirrors 844 , 849 need not be physically on the same device as the PIM address books 842 , 847 but are communicatively coupled with their respective address book 842 , 847 .
- the mirrors 844 , 849 are used to synchronize information between the PIM address books 842 , 847 and universal address book 850 folders (or subsets of folders), e.g., 852 , 854 , in the server database 114 of the private network.
- the mirrors 844 , 849 synchronize with the universal address book 850 using the unique user identifier 860 , which typically is immutable.
- the PIM address book 842 , 847 , the mirrors 844 , 849 , and the universal address book folders 852 , 854 in the database 114 includes entries that for this example relate to contact information.
- Each address book and mirror may include one or more entries, each entry having one or more fields. An example of this is illustrated in FIG. 8 c with information 870 comprising an entry and one or more data fields 875 with that entry.
- the entries may be grouped together in sets. Each set may include a set within that set. The set and sets within sets be referenced as folders, subfolders, etc. as set forth within the principles described with reference to FIG. 6 .
- the PIM address books 842 , 847 may be part of a universal address book or a disperse address book.
- a universal address provides all the address information in one address book.
- the universal address book is synchronized with each device so that a user sees the same address book on each device.
- a disperse address book includes two or more address books that need not be exact replicas of each other.
- the disperse address book may have only subsets of the entire address book synchronized between other address books on other devices.
- the address books may be synchronized on a per entry basis or a more macro basis, e.g., folders, sets of folders or subfolders levels.
- FIG. 13 illustrates an example of disperse PIM address books 842 , 847 with respect to device A and device B.
- each device has three folders, which each folder having entries or sets of entries.
- the universal address book 850 with three folders (or sets).
- the example shows that the folder A address books are fully synchronized between device A, device B and the universal address book 850 in the database 114 on the private network 100 .
- the example also illustrates that folder B on in the device A address book 842 is not synchronized with the folders in the other devices 847 , 850 , while folder C on device A 842 is partially synchronized with folder C on device B 847 and the folder in the universal address book 850 .
- This figure will be further referenced herein in describing examples of the synchronization and merge engines.
- a member 104 of the private network may initiate synchronization at various levels.
- FIG. 8 c illustrates the member 104 creating two or more different cards, e.g., 880 a , 880 b , 880 n (generally 880 ), that are set up by different groupings of the information data fields 875 .
- Each card 880 also includes a permissions tag (e.g., a flag or field) 885 a , 885 b , 885 n (generally 885 ) that may be used to identify whether information in the card 880 is to be synchronized at card level or individual data field level.
- the permissions tag 885 also includes data on whether a particular card is public or private.
- a public card may be configured for general synchronization with information in the public network 102 or private network 100 , while a private card may have limited or no synchronization with information in the public network 102 or private network 100 .
- FIGS. 9 a and 9 b flowcharts illustrate processes for folder synchronization in accordance with one embodiment of the present invention.
- FIG. 9 a illustrates one embodiment of a general process for synchronization in accordance with the present invention.
- the process starts 910 and determines 915 whether synchronization occurs on a folder basis. If not, the process may be configured to return to start to set up folders that will subsequently be synchronized. If the synchronization is on a folder basis, the process selects 920 the folder (or folders) to synchronize.
- the folders for synchronization may be the folders on from the PIM address books 844 , 847 on device A and device B with the universal address book 850 .
- the process identifies rules (or policies) for synchronization (e.g., from the synchronization rules module 760 ).
- the process determines 930 whether any merge rules (or policies) will apply. If not, the selected folders are synchronized 940 before the process ends. If merge rules do apply, the rules are identified 935 and applied during synchronization 940 of the selected folders before the process ends. Merge rules are further described below with the merge engine.
- FIG. 9 b illustrates a second embodiment for synchronization in accordance with the present invention.
- the process starts 950 and layers are selected 955 to link together between the different devices (e.g. the PIM address book on device A 842 and the universal address book 850 ).
- the layers are linked by mapping them together (e.g., through the map module 740 ). It is noted that alternatively folders within the layers may be linked together.
- the process then compares 960 the folders in the linked layers to identify duplicates among them.
- the process may perform the comparison by parsing 965 the folders and comparing 970 the data fields within to see if predetermined data is identical. It is noted that this may be done through, for example, a comparison of the unique user identifier 860 or one or more predetermined data fields. If duplicates are found, conflict resolution rules as set forth by policies in the synchronization rules module are used to resolve them and perform synchronization before the process ends 980 .
- the present invention beneficially may be configured to implement synchronization rules through policies enforced by a designated entity, e.g., the management module 146 on the server system 112 in the private network 100 or through user selection.
- policies for conflict resolution and synchronization may be stored within the synchronization rules module 760 .
- policies include determining synchronization rules include timing authorization (e.g., newest information synchronized over other information), owner address book authorization (e.g., information entered by owner of address book synchronized over other information), information based authorization (e.g., information in the database 114 of private network 100 synchronized over other information), or override authorization (e.g., information from a the public 102 or the private network 100 synchronized over other information unless overridden by the user).
- timing authorization e.g., newest information synchronized over other information
- owner address book authorization e.g., information entered by owner of address book synchronized over other information
- information based authorization e.g., information in the database 114 of private network 100 synchronized over other information
- override authorization e.g., information from a the public 102 or the private network 100 synchronized over other information unless overridden by the user.
- information to be synchronized is first registered. To do this a user enters new account information, and the server system 112 determines if an account exists as a member. Next, an initial mapping is run where folder mapping information is collected. Using the information described above, conflicts needing resolution are listed. In particular, there may be two distinct lists: (1) a list of duplicate entries, of which a “best” entry needs to be selected, and then (since the first step can create more conflicts) (2) a list of field conflicts which the user needs to select the best values.
- the links and synchronized information are all stored in the database 114 , and changes are sent to the remote systems, e.g. the client system 116 running the PIM application 122 , 842 . Hence, a client system 116 sends information to the server system 112 , which sends out the information to other client systems.
- the present invention also provides for configuration of the synchronization engine and process to synchronize on a folder-by-folder basis, allowing users to purposely maintain synchronizable duplicates.
- a member 104 decides which folders are synchronizable. Duplicate entries in the same folder are synchronized using an immutable identifier. This immutable identifier may be assigned by the server system 112 . Further, a member 104 may also need to identify or establish a mapping between folders on different systems (e.g., the PIM address book on 842 and the universal address book 850 ).
- entries are considered to be duplicates if an immutable identifier between the folders on the different system match in any of their respective data fields (e.g., 875 ).
- An example of this would be the same e-mail addresses (other examples include similar instant messenger identifier or mobile telephone number). Entries with no e-mail addresses are compared using some other data field, for example, last name and first name.
- information can be synchronized among a few different ways. For example, there may be a remote device synchronization, in which if one entry has a field that is filled and another entry does not, the information is moved into the entry not previously having it. This process may also occur through a merge engine as further described below. If the entries have different information in the same fields, a member 104 or the server system 112 has to do conflict resolution as describe above. It is noted that the system keeps unique identifier data on the server system 112 and the client system 116 . In an alternative embodiment, a remote device synchronization scenario involving many devices, the member 104 selects one entry as the “synchronizable” entry. This entry will thereafter be actively synchronized on that unique identifier, e.g., an e-mail address. It is noted that duplicate entries may also be stored as non-synchronizble duplicates.
- mappings and initial synchronizations are completed, the system is beneficially configured for subsequent synchronizations.
- changes may occur on either system, e.g., the PIM address book 122 , 842 on the client system 116 or the universal address book 850 on the server system 112 , and be reflected within the other due to synchronization.
- These changes include adds, deletes, and updates.
- there may be five states an entry can be in on either system 112 , 116 e.g., non-existent (“N”), added (“A”), changed (“C”), unchanged (“U”), and deleted (“D”). From this, possible synchronization states and actions may include (note that an “XX” denotes “should not happen):
- copy of the data may be maintained by the client system 116 , by the server system 112 , or both. It is also noted that a remote system may be one that provides data in response to a synchronization request (and may be referred as “passive” in that instance).
- the management module 146 of the server system 112 can be configured to resolve conflicts (e.g., based on system default or predetermined settings by the member 104 ) or the member 104 could be e-mailed by the system (e.g., management module 146 ) to inform them.
- the private network service on the server system 112 provides the member 104 an option to fix it by replying to the e-mail or by logging into a web site for the service (PNS) and choosing the correct actions.
- PPS web site for the service
- the synchronization process may also be configured to run continuously on the client system 116 in accordance with the present invention. As the process runs, for each pass it grabs a list of synchronizations that have not occurred in a predetermined time interval. For each pass, the process logs in to the remote system (e.g., the server system 112 ) and grabs the latest data. Actions are then performed on the data based on the states described above and appropriate commands are issued between the server system 112 and the client system 116 . As an example, the system may implement a periodic poll. The poll may take a form of a single, unencrypted, unauthenticated message asking the serve if a particular user has any pending changes. Alternatively, it may be a fully encrypted, authenticated check of every synchronizable object.
- conflicting field information may be stored by the database 114 as an old field with one tag (e.g., a flag or field code), while new unsynchronizable entries could be marked in database with another tag (e.g., a flag or field code). Also note that if an entry is unsynchronized, and the e-mail/name is changed so that the entry is new and unconflicted, the entry is marked (or tagged) as synchronizable in the database 114 , and it becomes a “new” entry for all other devices.
- one tag e.g., a flag or field code
- fields may be synchronized in a manner such that certain field values may be considered equivalent when performing comparisons. For example, for telephone numbers “(abc) def-ghij” is the same as “abc-def-ghij,” where the alphabet letters may correspond with any integer number or letter on a dial pad. Similarly, an entry having “Last, First” is considered equivalent to “First Last.” Note that the field equivalences may be predetermined by the user or the management module on a central server of the private network 100 to help limit potential intervention to resolve conflicts.
- information including folders, data entries, etc., and associated data is stored as database objects in the database 114 of the server system 112 .
- the stored data includes synchronizable states of entries, folder mapping data (including how folders map between a remote site (e.g., the client system 116 running the PIM application/address book 122 , 842 and the server system 112 address book 850 ), mapping between foreign (or non-local) entry identifiers and local entry identifiers, an old state for any particular entry, and a list of all synchronization account information.
- the synchronization system and process in accordance with the present invention provides advantages that include recognition of a layered set of folders, for example, folders of contact information that can be updated independently or in subset of the other layers.
- the present invention also beneficially allows for setting and enforcing policy based conflict resolution during a synchronization process between various devices at a various layers. Hence, a user has increased control and flexibility over synchronization of information at multiple layers or levels.
- the synchronization process may also involve merging of information between devices.
- a merge process two or more entries of information are merged into a single merged entry.
- the merged entry may include at least a subset of information from each entry.
- merges of information are handled by a merge engine and process in accordance with the present invention. It is noted that the merge engine and merge process may be incorporated (or combined) with the synchronization engine and process or may be a separate configuration that can be communicatively coupled with the synchronization engine and process.
- FIG. 10 illustrates a merge engine in accordance with one embodiment of the present invention.
- the merge engine (which may also be referred to as a system) includes a duplicate evaluation module 1010 , a matrix scoring module 1020 , one or more matrix tables 1030 , a map (or link) module 1040 , a merge rules module 1050 , and a merge output module 1060 .
- the modules 1010 , 1020 , 1030 , 1040 , 1050 , 1060 are embodied in software, hardware, or a combination thereof and are communicatively coupled together.
- the duplicate evaluation module 1010 is configured to process information in different sets to identify and group duplicates between the sets. For example, in the context of the PIM address book 842 , the duplicate evaluation module 1010 would process address book entries in two folders and identify and group duplicates between those folders.
- the matrix scoring module 1020 is configured, for each group of duplicate information, to build a matrix of match scores between the duplicate entries in each set. This matrix is stored in the matrix tables 1030 . For example, in the context of the PIM address book 842 , the matrix scoring module 1020 would, for each group of duplicate entries, build a matrix of match scores between these entries. The match scores would be stored, for example, in the matrix tables 1030 with the duplicate entries from a first folder on one side and duplicate entries from a second folder in the second side.
- match scores comprise a score resulting from potentially merging two entries from each side of the matrix.
- An example of the matrix table may be as follows:
- Each entry includes a unique identifier that matches, e.g., an e-mail address: Matrix Table A B C D 2 4 6 E 3 5 3 F 2 2 4
- the score may be assessed from an algorithm that takes into account factors that include, for example, the number of exact data field matches (e.g., same data in same location), the number of field that can be safely filled (e.g., without overwriting previous data), the amount of data that will be completely lost (e.g., if overwritten), and the amount of data that will be moved to irrelevant data fields (e.g., data fields not easily found).
- each factor used may be weighted in different amounts with respect to scoring and the scores may be combined in any manner (e.g., added, multiplied, combination of added and subtracted, etc.) by the matrix scoring module 1020 to provide a value used for evaluation.
- pairings may be constructed through other mechanisms. For example, a domain expert may create constructs (or algorithms) to find ideal pairings on entries based on match scores attained through those constructs. In these constructs, pairings of duplicate entries would be undertaken in a manner that results in the least amount of loss of information between the duplicates.
- the map module 1040 may be configured to link two or more sets of information. For example, in the context of the PIM address book 842 two or more folders of contact information may be linked by the map module 1040 for present and future merge of contact entries within those folders. It is noted that the map module 1040 may be configured to be functionally similar to and/or incorporated with the map module 740 of the synchronization engine.
- the merge rules module 1050 provides policies (or rules) on how data will be treated in the event of conflict resolution in a merge context. For example, policies may include using data most recently entered as most relevant, using only data entered by an owner of an address book as most relevant, or fill in information that previously was unfilled between each entry being merged.
- the merge rules module 1050 may be configured to be functionally similar to and/or incorporated with the synchronization rules module 1050 of the synchronization engine.
- the merge output module is configured to output a single entry from a merge or two or more entries of information.
- FIGS. 11 a through 11 c these illustrate processes for merging information in accordance with one embodiment of the present invention.
- FIG. 11 a provides an overview of merge process and will be described making reference to FIG. 11 b and FIG. 11 c .
- the merge process occurs, for example, during the course of synchronization between one or more PIM address books 842 , 847 (e.g., each on a client system 116 with PIM 122 ) and the universal address book 850 in the database 114 of the server system 112 .
- the merge process will be described in the context of merging two folders, e.g., folder A from the device A PIM address book 842 and a folder B from the device B PIM address book 847 , into a single folder in the universal address book 850 .
- FIG. 11 a the process starts 1110 by processing the PIM address book entries. Processing includes identifying 1115 duplicates and grouping the duplicates.
- FIG. 11 b illustrates the process for identifying duplicates. The process starts and identifies a unique identifier, e.g., 860 , for matching.
- the unique identifier may be e-mail addresses.
- the process determines 1160 if there is a match involving that e-mail address. If any e-mail address in an entry matches any e-mail addresses of one or more other entries, those entries are considered to be duplicates. If neither entry contains an e-mail, other data field identifiers may be used for comparison, including individual names, company names, telephone numbers, and the like. When matches are determined, those duplicate entries eventually are processed for matrix scoring 1165 as the process then ends 1170 .
- the process continues by building 1120 a matrix of match scores for each group of duplicate entries.
- one side includes entries in of folder A and another side includes entries from folder B.
- Each matrix entry represents the score of merging those two entries together.
- the scores are prepared for use to match and ultimately merge entries.
- the match scores may be based on values, for example, certain characters taking over other characters or numerical scores.
- FIG. 11 c illustrates a process for determining/calculating match scores using the matrix. The process starts 1175 and identifies 1180 scoring parameters (or factors) within the matrix. As previously described, examples of factors include the number of exact data field matches (same information in same location), the number of fields that can be filled safely, the amount of information that will be completely lost, and the amount of information that will be moved to irrelevant fields. In addition, each factor is assigned different weights when determining the final score.
- the process continues with calculating 1185 scores involving the matrix entries.
- the scores may be summed totals the matrix entries weighted scores. Alternatively, the scores may be a result of other mathematical combinations that are used to extract a numerical value for each matrix entry.
- the process then ends 1190 .
- entries are matched 1125 to minimize a total sum of the scores of the matches.
- entries may be matched by eliminating highest (worst) scores until all the matches are formed. Once the matches are formed, the entries may be merged 1130 together before the process ends 1140 .
- merging may include using policies within the merge rules module 1050 .
- FIG. 12 illustrates one embodiment for resolution of information conflicts involving merges in accordance with the present invention. For example, consider duplicate entries requiring merge having one copy as a golden (master) copy and another as a providing (or slave) copy.
- information may be merged based on master authorized 1205 , timing 1215 (e.g., most recent is used), owner authorized 1220 (e.g., owner of the address book resolves), server authorized 1225 (e.g., entries in on the server are used), or override 1230 (e.g., where a member can override any conflict resolution set up).
- Similar alternatives rules for resolution in merges include a default policy in which one of two entries has information that is accepted, and information from the other entry that would be removed is moved into other data fields of the same type (e.g., from home phone to home phone 2).
- Another policy may include having a member 104 handle conflicts and decide which to accept or discard.
- the present invention beneficially merges data in a manner that creates a single set of folders or entries from two or more folders and/or entries to be merged together even when information between them differs.
- the present invention also advantageously allows for automation of a merge process in a manner that requires minimal, if any, interaction from member 104 by mapping folders for merge and then using predetermined merge policies to merge information within the folders. Further, the present invention advantageously minimizes the amount of merging that needs to occur by intelligently matching entries to be merged to minimize the number of conflicts.
- FIG. 13 illustrates another example of sets of address information between devices during and after a synchronization and merge process in accordance with the present invention.
- the device A PIM address book 842 , the device B PIM address book 847 , and the universal address book 850 each includes three folders.
- the device A PIM address book 847 has folder A, folder B, and folder C. Folder A will be fully synchronized with the device B PIM address book 847 and the universal address book 850 . Folder B will be partially synchronized with the device B PIM address book 847 and the universal address book 850 . Folder C will not be synchronized with the device B PIM address book 847 and the universal address book 850 . Further, folder D of the device B PIM address book 847 will be synchronized only with the universal address book 850 .
- the synchronization engine synchronizes which address book combinations and folders combinations will be mapped or linked for synchronization.
- the synchronization engine is also configured to synchronize folders at a granular level, e.g., per entry and/or subfolders (sets within folders), by mapping or linking appropriate entries together.
- folder A is fully synchronized among all three address books
- folder B is only partially synchronized between the three address books
- folder D is only linked and synchronized between the device B PIM address book 847 and the universal address book 850 .
- mapping it is again noted that the folders (or subsets thereof) are linked together through a unique identifier that typically is immutable.
- folder A may have entries and subfolders that may be slightly different (e.g., data fields 875 that are blank in one entry but completed in another entry or data fields that are only slightly different but have space in merged entry to include both data fields (or elements within)) that are merged together to form a single entry.
- folder A in the device A PIM address book 842 would include the same information across the device B PIM address book 847 and the universal address book 850 after merging of the entries.
- the present invention beneficially provides for synchronization and merge engines to synchronize information between devices in a network.
- the information may be synchronized at various layers and using any one of a pre-selected or selectable conflict resolution mechanisms.
- the present invention also beneficially merges data in a manner that creates a single set of folders or entries from two or more folders and/or entries to be merged together even when information between them differs.
- the present invention also advantageously allows for automation of the synchronization and merge processes in a manner that requires minimal, if any, interaction from users or members.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Business, Economics & Management (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Strategic Management (AREA)
- Human Resources & Organizations (AREA)
- Entrepreneurship & Innovation (AREA)
- Marketing (AREA)
- Economics (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Hardware Redundancy (AREA)
- Telephonic Communication Services (AREA)
Abstract
Description
- This application is related to U.S. patent application Ser. No. ______, filed on Nov. 7, 2003, entitled “Viral Engine for Network Deployment” by inventors John T. Masonis, Sean Parker, Cameron T. Ring, and Richard J. Carey, said application having a common assignee, the contents of which are hereby incorporated by reference.
- 1. Field of the Invention
- The present invention relates generally to the field of personal information management and more specifically, to synchronizing and publishing personal information, such as contact and address information, between multiple users and interfaces connected to a network, such as the Internet.
- 2. Description of the Related Art
- Maintenance of up-to-date contact information between friends, family, business associates, clients, and customers has always been a challenge and a difficult task. More frequently than expected, people change at least some of their contact information, such as phone numbers, fax numbers, mobile phone numbers, electronic mail addresses, physical addresses, and the like. As one example, presently approximately 35% of Internet users change electronic mail addresses annually, approximately 33% of mobile phone numbers are changed annually, and approximately 40 million physical addresses change every year.
- Out-of-date contact information leads to personal losses, such as friendships, and business losses, such as missed opportunities that could increase productivity and revenue. For example, inaccurate and low-quality customer data results in bad mailings and staff overhead costing upwards of $600 billion a year to U.S. businesses.
- To help manage this large amount of contact related data a number of personal information manager (“PIM”) applications have evolved, e.g., Microsoft Outlook®, Eudora Pro®, and the like, for a variety of devices, e.g., personal computers (“PC”), personal digital assistants (“PDA”), and mobile telephones. Nevertheless, users continue to be challenged with respect to maintaining consistency or separation of information as the number of devices and interfaces on which such information resides increases.
- Often, users desire to synchronize information between these devices. For example, a user may synchronize personal information to be stored on, and accessible from, a personal computer in the home environment, a personal computer in the work environment and a portable PDA. Conventional synchronization software products that help users synchronize PIMs on different devices in this manner included Intellisync® software from Puma Technology, Inc. of San Jose, Calif.
- A drawback of conventional synchronization software products is a requirement of a physical connection between the PDA and the computer system hosting the PIM. Another drawback of such conventional synchronization software products is that it its use it limited to synchronization of a particular device or PIM and not with respect to other users. Yet another drawback of such conventional synchronization software products is resolution of discrepancies between data in substantially identical entries in the different devices. The user is forced to save substantially similar, though not identical, entries or the user must affirmatively select which data to overwrite before any synchronization process is completed. In turn, this decreases efficiency and flexibility for a user.
- In addition to PIM information on devices, online sources to maintain PIM information have also evolved. Conventional online services such as web portals (e.g., Yahoo! by Yahoo! Inc. of Sunnyvale, Calif. and Excite by Excite Inc. of Irvington, N.Y.) have incorporated address book and calendar features into their portal services for users. For example, Yahoo! Inc. provides Yahoo! Address Book, Yahoo! Calendar and Yahoo! To Do List services in which a user can store address, calendar and to do information on a remote server operated by Yahoo! Inc. These conventional web portals further offer synchronization software (e.g., TrueSync® synchronization software developed by Starfish Software, Inc. of Scotts Valley, Calif.) to synchronize copies of personal information stored online with other devices. However, these services and associated conventional synchronization software have drawbacks similar to those previously described.
- To help resolve problems with conventional synchronization software of the type described, online service providers on the Internet, such as PlanetAll.com (now owned by Amazon.com), developed a conventional online service for storage and maintenance of personal information on a server, accessible via the Internet. In general, these services allowed a user to subscribe to the service and store personal information at a remote server so that the user's personal information was automatically included in the online address books of other subscribing users of that online service.
- In these conventional online services, the subscribing owner of the personal information was responsible for maintenance of their information. Whenever the subscribing owner made changes to the information, the online service server was updated. Thereafter, other subscribing users of the system would have access to the updated information within their online address books. Moreover, these online services also touted the ability to synchronize information across various physical devices through the online service server. For example, these conventional online services provided the ability to synchronize personal information maintained within a PIM with the personal information stored on the online service server through a downloadable conventional synchronization software product, such as, for example, Intellisync® for PlanetAll.com, developed by Puma Technology, Inc., of San Jose, Calif.
- One problem with these conventional online services is they had to be symmetric. Symmetric services require a subscription membership to the service on both sides of the information exchange facilitated by the service. That is, only subscribers of the conventional online services could update personal information with each other. Thus, the service only worked if both the user providing the updated information and the user seeking an information update subscribed to the service. Non-subscribers were unable to synchronize their personal information with subscribers and vice versa. Hence, subscribers to the service would be unable to maintain synchronized data with nonsubscribers. This symmetry requirement limited user flexibility in maintaining consistency of data across the various types of contacts.
- These conventional services (including PlanetAll.com) have been used to promote the deployment over the Internet of private networks of subscribers based on the premise that a subscription to the private network provides a valuable service, i.e., a centralized address book. However, such attempts to deploy private networks have failed due principally to slow deployment rates. In part, these private networks failed to grow their membership because the symmetric nature of the private network service limited the value for the initial set of users. The real value of the service could not be realized until large numbers of information users became subscribers of the private network service. Hence, as long as the number of subscribers of the private network service remained small, new users were not enticed to subscribe. Consequently, without new subscribing users, the private network service could not grow to a size necessary to support it's value proposition. In turn, the private network service would ultimately collapse and fail and again lead to problems of having information that is no longer synchronized.
- Still another problem with these conventional online services was limited subscriber flexibility in configuring the information for synchronization in a manner most suitable for that subscriber. For example, the subscribing user lacked flexibility allowing a subscriber to select particular data fields or sets of data fields to update other devices and/or subscribers in of the service on a per device and/or subscriber basis. Thus, subscribers were limited to an “all or none” proposition for updating information between devices and/or subscribers.
- From the above, there is a need for a system and process to asymmetrically manage information, including (1) synchronize data at one or more layers for a user with nominal or no need for intervention by that user and (2) to merge data involving two or more entries into a single entry with nominal or no need for user intervention and without causing or writing substantially duplicated entries.
- The present invention includes a system and a method for synchronizing a folder containing information in one device with one or more folders containing information in one or more other devices. The present invention also includes a system and a method for merging data between folders to be synchronized. A folder is a type of repository and is configured as a grouping of contents. The content comprises information that may include other folders and/or data. Examples of information include electronic mail (“e-mail”), contacts, messaging, and/or personal data. The devices containing the folders are applications on a physical device, e.g., a personal information manager (“PIM”) on a personal computer (“PC”), mobile telephone or a personal digital assistant (“PDA”), or on a logical device, e.g., a personal information manager through an online portal service such as Yahoo! or America Online.
- In accordance with one embodiment of the present invention, a synchronization system (or engine) includes a layer selection module, a parsing module, a comparison module, a map (or link) module, a synchronization output module, and a synchronization rules module. The modules may be software, hardware, or a combination thereof. The modules are configured to communicatively couple together.
- The layers selection module selects between one or more layers of information for synchronization. The parsing module parses out the data within the layers and the comparison module compares the data to determine duplicative data. The map module determines whether particular layers, information, and/or data are linked together in particular relationships. The map module may also be configured to provide a unique identifier for linking relationships. The synchronization module synchronizes the data within the layers based on the synchronization rules and the linked relationships.
- In one embodiment of the present invention a synchronization process includes synchronizing folders between one or more layers of folders. The process includes selecting one or more layers to link together and comparing folders in the selected layers using an immutable identifier. The process also includes parsing the folders of each of the selected layers into fields and comparing the fields of parsed folders. The process then determines whether to synchronize the folders of the selected layers based on one or more conflict rules that are triggered in response to the comparison of the fields of the parsed folders.
- An advantage of a synchronization system and process in accordance with the present invention includes recognition of a layered set of folders, for example, folders of contact information that can be updated independently or in subset of the other layers. Hence, a user beneficially has increased control and flexibility over synchronization of information at multiple layers or levels.
- The present invention also includes a merge system (or engine) for merging information in various layers and at various levels. In accordance with one embodiment of the present invention, a merge engine includes a map (or link) module, a duplicate evaluation module, a matrix table, a matrix scoring module, a merge rules module, and a merge output module. The modules may be software, hardware, or a combination thereof, and are configured to communicatively couple together. The merge system (and process) may function independently or in conjunction with the synchronization system (and process).
- The map module is functionally similar to the map module of the synchronization engine. The map module can be the same module used in both systems or may be a subset thereof. The duplicate evaluation module determines potential duplicates between entries that may be merged. The matrix tables and matrix scoring module generate a matrix of duplicate entries that may merge and assign a value (e.g., a score) to each matrix entry based on one or more factors. The merge rules module determines whether to merge particular entries based on rules that take into consideration the matrix entry. The output module outputs entries determined to be merged as a merged entity.
- The merge process in one embodiment of the present invention includes merging two or more folders in a network into a single folder. The method includes comparing entries in the first folder to entries in a second folder to identify duplicate entries between the first folder and the second folder. An entry may be determined to be a duplicate if there is a match between an identifier in the entry in the first folder and an identifier in the entry in the second folder. The process groups the identified duplicate entries from the first folder and also groups the identified duplicate entries from the second folder. The process also generates a matrix in which there are two or more matrix entries. Each matrix entry includes a value associated with merging identified duplicate entries between groupings. In addition, the matrix entries are matched based on the assigned values to determine an extent to merge an identified duplicate entry.
- An advantage of a merge system and process in accordance with the present invention includes being able to compare entries between layers or levels of information to be merged together and merging that information without requiring user intervention. Moreover, the present invention beneficially mergers folders of information, which allows users to purposely maintain and synchronize duplicates.
- The features and advantages described in the specification are not all inclusive and, in particular, many additional features and advantages will be apparent to one of ordinary skill in the art in view of the drawings, specification, and claims. Moreover, it should be noted that the language used in the specification has been principally selected for readability and instructional purposes, and may not have been selected to delineate or circumscribe the inventive subject matter.
- The invention has other advantages and features which will be more readily apparent from the following detailed description of the invention and the appended claims, when taken in conjunction with the accompanying drawings, in which:
- FIG. (“FIG. ”) 1 illustrates an example of one embodiment of a network system in accordance with the present invention.
-
FIG. 2 a illustrates an embodiment of a logical network environment in accordance with the present invention. -
FIG. 2 b illustrates an embodiment of a structural network environment in accordance with the present invention. -
FIG. 3 a is a flow chart of a process for growing a private network in accordance with one embodiment of the present invention. -
FIG. 3 b is an event diagram of one example of a method for illustrating asymmetric operation according to one embodiment of the present invention. -
FIGS. 4 a through 4 d illustrate stages of viral growth of a network in accordance with one embodiment of the present invention. -
FIG. 5 illustrates an example of physical and logical devices for synchronization through a synchronization engine (or system) in accordance with the present invention. -
FIG. 6 illustrates an example of a folder for synchronization and/or merge in accordance with the present invention. -
FIG. 7 illustrates a synchronization engine in accordance with one embodiment of the present invention. -
FIG. 8 a illustrates a logical view of layered organization for synchronization in accordance with the present invention. -
FIG. 8 b illustrates a logical view of synchronization in accordance with the present invention. -
FIG. 8 c illustrates a logical view of contact cards in accordance with one embodiment of the present invention. -
FIGS. 9 a and 9 b illustrate processes for synchronization in accordance with one embodiment of the present invention. -
FIG. 10 illustrates a merge engine in accordance with one embodiment of the present invention. -
FIGS. 11 a through 11 c illustrate processes for merging information in accordance with one embodiment of the present invention. -
FIG. 12 illustrates one embodiment for resolution of information conflicts in accordance with the present invention. -
FIG. 13 illustrates an example of synchronizing and merging sets of address information between devices in accordance with the present invention. - The Figures (“FIG. ”) and the following description relate to preferred embodiments of the present invention by way of illustration only. It should be noted that from the following discussion, alternative embodiments of the structures and methods disclosed herein will be readily recognized as viable alternatives that may be employed without departing from the principles of the claimed invention.
- The present invention includes a synchronization engine (or system) and a merge engine (or system) for synchronizing information between various layers and levels and merging information within those synchronized layers and levels with minimal user intervention. A layer or level may be of a physical (e.g., a device) or logical (location of information in various locations, e.g. various devices or services).
- Architecture Overview
- Referring now to
FIG. 1 , it illustrates an embodiment of a network environment in accordance with the present invention. The network environment includes a private network system (or service (or private network)) 100, apublic network 102, and a set ofpublic network users 103. Thepublic network 102 communicatively couples theprivate network 100 with the set ofpublic network users 103. - In the context of the present invention, the networks are not limited to a particular physical network, i.e., devices linked by physical communication channels (wired or wireless). Rather, a network may be a functional (or logical) network such as those based on the type of messaging between users, which may be physically carried by various communication channels. For example, a network may include a group of wireless phones users communicating based on unique telephone numbers or it may include a group of computer users communicating based on unique e-mail addresses. In addition, more than one functional network may be embodied in a single physical network. By way of example, a computer network may embody an electronic mail based functional network and an instant messaging based functional network (e.g., AIM, ICQ, or the like).
- Accordingly, in one embodiment, the
public network 102 includes a physical element and a functional element. The physical element ofpublic network 102 refers to a communications network, for example, a computer network (e.g., local area network (“LAN”), wide area network (“WAN”), wireless data network (“WDN”), the Internet, or the like), a wireless protocol based communications network (e.g., network based on personal communications system (PCS), global system mobile (GSM)), or the like. - The functional element of
public network 102 refers to a communication mode betweennetwork users 103. Examples of the communication mode are instant messaging, electronic mail, telephone, wireless messaging, or the like. Each communication mode includes a unique identifier that may be used to address communications betweenusers 103 in thepublic network 102. In the context of the present invention, the functional element of thepublic network 102 is referred to as public protocol or public communication mode. For example,network users 103 may communicate via a public electronic mail protocol (e.g., Post Office Protocol (POP), Internet Message Access Protocol (IMAP), Simple Mail Transfer Protocol (SMTP), Multipurpose Internet Mail Extension (MIME) protocol, or the like). - Referring again to
FIG. 1 , thenetwork users 103 include one ormore members 104 and one or more non-members (or non-users) of theprivate network 100. Themembers 104 communicate withprivate network system 100 over thepublic network 102 using a private orproprietary protocol 108. Thenon-members 106 communicate with themembers 104 in theprivate network system 100 over a common or public communication method orprotocol 110 that is part of thepublic network 102. - The
private network system 100 includes acentral server 112 and adatabase system 114 that are communicatively coupled together. In one embodiment, theprivate network system 100 is based on a hybrid peer-to-peer and client-server network architecture. For the client-server aspect of the network,central server 112 provides the centralized functions of network management.Central server 112 may include one or more computing systems (or machines), i.e., may be a server farm, or the like. Thecentral server 112 is connected to thenetwork 102 and can implement the private andpublic protocols network users 103. Similarly, thedatabase unit 114 may be a single data storage device or a set of interconnected storage devices, e.g. storage area network (“SAN”), distributed database, or the like. - Referring now to
FIG. 2 a, it illustrates an embodiment of a logical network environment in accordance with the present invention. The logical network environment includes theprivate network 100, the one ormore members 104, and the one ormore non-members 106. Also illustrated is anexample member system 104 a as set forth below. The one or more members 104 (including 104 a) and the one or more non-members are communicatively coupled through theprivate network 100. - The illustrated
member system 104 a includes a client system (or machine) 116 and adatabase 128. Theclient system 116 is a conventional computing system (e.g., personal computer, personal digital assistant (“PDA”), mobile phone, computing tablet, and the like) that includes a conventional operating system (e.g., windowing, graphical, and/or text based operating system) and one or more application programs. Theclient system 116 communicates with a server system of theprivate network 100 through thecomputer network 102. Eachclient system 116 may host a client application for managingprivate protocol 108 andservice 100 functions. Thedatabase 128 stores data and other informational entities as further described herein. -
FIG. 2 b illustrates an embodiment of a structural network environment in accordance with the present invention. The structural network environment includes one ormore client systems 116, thepublic network 102, and one ormore servers 112 in theprivate network 100. Theclient system 116 may communicatively couple with other client systems or devices (e.g., PDA or mobile phone) through a direct or networked connection. - Each
client system 116 includes aclient application 118, an Internet (or web)browser 120, a personal information manager (“PIM”) 122, and aclient services module 126. The client application, theInternet browser 120, thePIM 122, and theclient services module 126 are communicatively coupled through the operating system. TheInternet browser 120 is a conventional browser for wired or wireless system. Examples include Internet Explorer® by Microsoft Corporation of Redmond, Wash., Netscape Navigator® by Netscape Communications, Corp. of Mountain View, Calif., NetFront Web browser, by Access Systems America, Inc. of Fremont, Calif., or Openwave® Mobile Browser, by Openwave Systems, Inc. of Redwood City, Calif. - The
PIM 122 is a conventional PIM. Examples include Microsoft Outlook, by Microsoft Corporation and Lotus Notes®, by Lotus Software of International Business Machines (IBM), Cambridge, Mass. It is noted that theInternet browser 120 may be integrated with theclient application 118. - The
client application 118 is an application a user interacts with to access functionality of a system, for example, the system of the present invention as disclosed herein. The client application may include a text or Graphical User Interface (“GUI”) 124 front end. Theclient application 118 facilitates viewing, accessing, publishing and synchronizing of information. It is noted that in alternative embodiments theclient application 118 may be fully integrated with and embodied within thePIM 122, or may itself constitute a full-function PIM 122, and thus, obviate the need for any further independent or stand-alone PIM 122. - In one embodiment, the
client application 118 provides PIM functionality by facilitating/managing storage, publication and synchronization of personal information ofmembers 104. It should be noted that in the context of this description, personal information of amember 104 includes information regarding themember 104 him/herself and information that themember 104 has regarding other users 103 (bothmembers 104 and non-members 106). Note that the ability fornon-member 106 users to interact with theprivate network 100 beneficially adds value formember 104 with regard to gathering and storing information fromnon-members 106. - The
client services module 126 provides data services to both theclient application 118 and alocal database 128. Theclient services module 126 is furthermore responsible for executing accesses to thelocal database 128 within which personal information ofmember 104 usingclient system 116 may be maintained. Specifically, theclient services module 126 is responsible for the integrity and locking of thelocal database 128 at appropriate times. Components that are included within or communicatively couple with theclient services module 126 may also be configured to synchronize information maintained in thelocal database 128 with information maintained on aremote database 114 as will be further described herein. - For
members 104, theclient services module 126 communicates via theprivate protocol 108, which may include a Secure Socket Layer (“SSL”) stack, over thepublic network 102. Formembers 104, theclient services module 126 communicates via theprivate protocol 108, which may include a Secure Socket Layer (“SSL”) stack, over thepublic network 102. In one embodiment,private protocol 108 is a conventional proprietary binary protocol defining message objects that are communicated between theclient application 118 at theclient system 116 and theserver 112. Other customizable communication protocols can be use to implement theprivate protocol 108, for example, Extensible Markup Language (“XML”) based protocols or Remote Procedure Call (“RPC”) based protocols may be used. The message objects may further include other types of objects for the transfer of data. For example,private protocol 108 may define update messages to check for data updates based on timestamps and define basic responses such as, for example, “OUT OF DATE,” “RECORD INSERTED,” “O.K.,” or the like. Optionally, theclient services module 126 also has the capability to synchronize with third party components hosted on, or coupled to, theclient machine 116. For example, theclient services module 126 may, via the synchronization engine, synchronize with thePIM 122 or with aPDA 132, or any other PIM capable device. - Referring next to the one or more servers of the
private network 100 inFIG. 2 b, illustrated is anexample server system 112. Theserver system 112 includes afirewall 136, a resonatedispatch 138, anSSL gateway 139, anapplication server 140, aweb server 142, a database management system (“DBMS”)/data mining server 144, amanagement module 146, and thedatabase 114. These components are communicatively coupled together within theserver system 112. - In one embodiment the resonate
dispatch 138 is optional and performs load balancing operations between multiple servers on which theapplication server 140 and theweb server 142 are hosted. In an exemplary embodiment, both theapplication server 140 and theweb server 142 may be hosted on physically or logically single servers. - The
application server 140 may be developed utilizing Java technology, and serves both theclient services module 126 and theweb server 142. Theapplication server 140 includes logic that allows amember 104 accessing theapplication server 140 to access only information for which themember 104 has been granted permission. Theapplication server 140 is also responsible for sending personal information updates to theclient services module 126 to synchronize thelocal database 128 with a specific subset of information maintained within theserver database 114 for thespecific member 104. - Another function of the
application server 140 includes the handling and disposition of service requests frommembers 104 and the corresponding responses fromusers 103. These functions include the determination of membership in the private network, public and private protocol communications, anddatabase 114 management. Theapplication server 140 queries thedatabase 114 to determine whichusers 103 designated in a member's service request are alsomembers 104 of theprivate network 100.Application server 140 uses theprivate protocol 108 to send service request messages tomembers 104. In contrast,users 103 determined to benon-members 106 receive information requests fromapplication server 140 via thepublic protocol 110. For this purpose,application server 140 may include a public protocol communications module to implement non-member communications. - The
web server 142 communicates with theresonant dispatch 138 via anoptional SSL gateway 139 that encapsulates and decapsulates a protocol such as Hypertext Transport Protocol (“HTTP”) issued from and to be received at theweb server 142. For example,private protocol 108 messages can be wrapped in secured HTTP (“HTTPS”), that is, HTTP code encapsulated with SSL encryption. Theweb server 142 may also be developed utilizing technology such as Java, J2EE, NET, Visual Basic, or the like. According to one embodiment of the present invention, the application andweb servers database 114 to amember 104 through itsclient system 116. Theweb server 142 may further function as a conduit forprivate protocol 108 messages tunneled through HTTP or HTTPS communications betweenclient applications 118 and theapplication server 140. - The
application server 140 allows access to permitted data within thedatabase 114 from any platform. Further, a part of the asymmetric aspects of the present invention, theapplication server 140 also allows a non-member 106 to interface withprivate network 100. Hence,members 104 receive the benefit of communicating with users 103 (other members 104 and non-members 106) in the context of the system of the present invention. Themanagement module 146 is configured to be integrated with or operate with theapplication server 140 to manage functionality and operation of synchronization and merging activity in accordance with the present invention. - The DBMS (or data-mining module) 144 is included in the
system 100. TheDBMS 144 executes complex queries to thedatabase 114 either when prompted or on a scheduled basis. The algorithms that implement viral engine functions of the present invention may provide these queries. TheDBMS 144 may also execute other algorithms, including natural language processing or heuristic algorithms, to extract member requested information fromnon-member 106public protocol 110 based communications. For example, theDBMS 144 may process incoming e-mails responsive tomember 104 contact update requests to extract non-member 106 contact information. TheDBMS 144 may be hosted on a server system, while theserver database 114 may be implemented using a RAID storage device, or other similar system. - The
server database 114 maintains synchronized copies of the local (client)databases 128 that may be implemented onnumerous client systems 116 communicatively coupled to theserver system 112. Theserver database 114 also records various permissions with respect to personal information by which personal information for a specific user may be accessible by, and accordingly published to, multipleother users 103 as described herein. It is noted that in alternative embodiments, theserver database 114 need not store copies of thelocal database 128. Alternatively, theserver database 114 may store links to thelocal database 128 to access as needed. - In accordance with the present invention, the
server database 114 facilitates a system in which an address book of a specific member 104 (i.e., address information that is viewable by the specific member 104) is asymmetrically populated by information supplied and or published by multipleother users 103, bothmembers 104 andnon-members 106. Accordingly, only a single copy of personal information concerning aspecific member 104 may exist within theserver database 114, but this specific copy is accessible to multipleother members 104 to whom anowner member 104 has granted access permission. It is noted that the single copy of personal information concerning aspecific member 104 might be replicated as cached copies during system operation to help increase efficiency. - Conversely, several instances of personal
information concerning non-members 106 may exist within theserver database 114, particularly, withinpersonal member 104 records replicated fromlocal client databases 128. That is, two ormore members 104 may each have one record for thesame non-member 106. Further, the present invention envisages that the single copy of personal information for anowner member 104 may be utilized to populate multiplelocal databases 128 maintained uponrespective client systems 116. Accordingly, alocal database 128 on aremote client system 116 may be largely populated by information retrieved from theserver database 114, and which is maintained by an originator of such information about whom the information concerns. - In one embodiment of the present invention, the
private network service 100 includes a personal contact information updating service operating via a wireless network amongwireless phone users 103. In another embodiment,private network service 100 includes a universal address book operating over the Internet amonge-mail users 103. - By way of example with reference to
FIGS. 2 a and 2 b, amember 104 a with a local address book in a storage device (local database 128) accesses the private and public networks with a personal computer (client system 116). Themember 104 a selects a set of e-mail users (users 103) for requesting updated contact information. The member's personal computer (e.g., client system 116) sends update requests identifying the set of e-mail users by e-mail address to aserver system 112 using a proprietary messaging (private protocol 108). - Based on the e-mail addresses provided, the
server system 112 looks up the e-mail users in a universal address book for themember 104 a in theservice database 114 to determine membership in theprivate network 100. Once the e-mail users are identified as members 104 (i.e., other members) andnon-members 106, theserver system 112 sends update request messages to theother members 104 using the proprietary messaging and sends e-mail messages (public protocol 110) requesting updated contact information tonon-members 106. - An advantage of the present invention includes asymmetric operation, which may be leveraged to grow the
private network 100. Now referring toFIG. 3 a, a flow chart of a process for growing theprivate network 100 in accordance with one embodiment of the present invention. The service is initialized 150 when, for example, auser 103 accepts an invitation to join a private network. For example, auser 103 may download an application client-software and install it in the user'sclient system 116. As part of theinitialization process 150 theuser 103 becomes amember 104.Service initialization 150 is configured to be a frictionless process as further described in U.S. patent application Ser. No. ______, entitled “Viral Engine for Network Growth,” by inventors John T. Masonis, Sean Parker, Cameron T. Ring, and Richard J. Carey, and assigned to the same assignee as the present invention, the contents of which are herein incorporated by reference. - After the
service initialization process 150,new member 104 can begin using the features provided byservice 100 by submitting service requests. When amember 104 begins to use theservice 100, service requests are received 152 for processing. For example, a member's 104 client software may designate a set of contacts in the member's contact list for whom updated information is to be requested. Service requests are sent 154 toother members 104 and tonon-members 106. For instance, a notification to verify a member's own personal contact information stored in thesystem database 114 may be sent viaprivate protocol 108 to anymember 104 designated in the service request. - In addition, an e-mail message may be sent to
non-members 106 asking them to provide current contact information in a reply e-mail message.Members 104 may respond to service requests via theprivate protocol 108 if, for example, their own information stored in thesystem database 114 needs to be updated.Non-members 106 may respond via thepublic protocol 110 or some other alternative general access mode. In one embodiment non-members can respond to update requests using e-mail messages or web-based forms via the Internet. - The service responses are received 156 and the service to the original member is performed 158 on
server 112. For example, current contact information provided bynon-members 106 may be extracted from response e-mail messages using heuristic algorithms and that information may be used to update member database records concerning thenon-members 106. - Similarly, response messages from
members 104 confirming that their own information stored in theserver system database 114 is current, or providing updated information, are received via theprivate protocol 108 and the member profiles of the requesting and providingmembers 104 are linked in thesystem database 114. Then, using theprivate protocol 108 to communicate with the client application software in the requesting member'sclient system 116, thelocal database 128 is updated 160 to include information in the service responses. The service may be requested 162 once again, e.g., for a new set of contacts, or it may be terminated 164. - Referring now to
FIG. 3 b, shown is an event diagram of one example of a method illustrating asymmetric operation according to one embodiment of the present invention.System server 112 sends 168 a communication to auser 103 that results in theuser 103 becoming amember 104 a. The communication may be an update request bearing an invitation to join the private network, a download of client software, or the like. Themember 104 a sends 170 a service request that designates a set ofusers 103 from which information is to be requested. Theserver 112 accesses 172central database 114 to determine which designatedusers 103 aremembers 104 and which ones arenon-members 106. Thedatabase 114 provides 174 the membership information regarding the designatedusers 103 to theserver 112. Theserver 112 sends 176 information requests tomembers 104 viaprivate protocol 108 and sends 178 information requests tonon-members 106 viapublic protocol 110. - Responses from
members 104 andnon-members 106 may occur over a period of time and in no particular order.FIG. 3 b also shows a representative set of actions for each type of response. For example,members 104 respond 180 to the service request viaprivate protocol 108. Aparticular member 104 response can be, for example, an update to the member's own information, an authorization to allow the requestingmember 104 a to access information, or the like. Theserver 112 may access 182 thedatabase 114 to process responses fromother members 104. These processes include update information according to responses fromother members 104 or to enable links between system records of the requestingmember 104 a and the respondingmembers 104. Once theserver database 114 has been updated with any member response information, theserver 112 communicates 184 with the requestingmember 104 a. These communications include notification of the new links made, synchronizing system (e.g., universal address book) and local (e.g., PIM 122) information, or the like. - In contrast,
non-members 106 respond 186 via thepublic protocol 110 in one or more different ways. For example, non-members may respond through reply e-mail, voicemail, instant message, web-access, or the like. Theserver 112 processes the responses ofnon-members 106 by determining relevant information ofnon-members 106 by extracting it from the response mechanism used by thenon-member 106. Once some or all the relevant information is available,server 112updates 188 the system records of themember 104 a regarding information ofnon-member 106. Theserver 112 also communicates 190 with themember 104 a in regard tonon-member 106. This communication may be to updatemember 104 a about information received from each non-member 106 (e.g., service unrelated information included in a reply e-mail), or to synchronizelocal database 118 with the updated non-member information. - Viral Network Overview
- The present invention provides additional tools for managing growth of contact information. A source of this growth may be a viral network, for example, as described in U.S. patent application Ser. No. ______, entitled “Viral Engine for Network Growth,” by inventors John T. Masonis, Sean Parker, Cameron T. Ring, and Richard J. Carey, and assigned to the same assignee as the present invention, the contents of which are herein incorporated by reference.
- Briefly,
FIGS. 4 a through 4 d logically illustrate viral network growth in accordance with the present invention. In the context of these Figures, the letter “U” followed by a number representsnon-members 106 and the letter “M” followed by a number representmembers 104. Further, private network connections are shown as arrows, either unidirectional, pointing away from members M to non-members U and depicting asymmetric network links, or bi-directional, pointing towards two members M and depicting symmetric portions of the private network over which enhanced services are available. It should be noted that private network connections are not necessarily physical connections. Rather, they may include virtual links between users 103 (members M and non-members U) representative of the services offered by the private network and the information exchanges in connection with those services. -
FIG. 4 a shows a first member M0 that usesprivate network service 100 with a subset of non-members U1, U3, U7, U11, U2, U4, and U5. The arrows pointing away from M0 represent communications that expose the non-members U to the private network, for example, service requests with invitations to join, e-mails or other messages mentioning the private network service, or the like. - Non-members U1 and U2 decide to join the
private network 100, for example, by responding to an invitation to join the private network included with a private network service request, and become members M1 and M2. The other non-members U3, U7, U11, U4, and U5, have been exposed to the private network for the first time and decide not to join the private network, e.g., may ignore the communication from M0, may not have the time to look into the service, or for some other reason do not join at this time. - As shown in
FIG. 4 b, M1 and M2 use theprivate network service 100 with another subset of non-members U. M1 uses theprivate network service 100 with U6, U3, U5, and M0. M2 uses the service with U11, U12, U10, U4, and M0. Since M0 was already a member, the link between M0 and M1 and M2 are symmetric, shown by the bi-directional arrows, are enhanced services are available between these members M. - It should be noted that since M0 had contacts with members M1 and M2, it is possible that M1 and M2 may share contacts with M0 and therefore may use the
private network service 100 with some subset ofusers 103 in common with M0, for example, U3, U5, U4, and U11. Thus, some non-members U get multiple exposures toprivate network service 100 from different members M. Hence, these non-members are provided with multiple opportunities to join the private network. In and of itself, the multiple exposures may induce non-members U to join the private network. For instance, non-members may think that if two friends or business contacts are using the service it may be worth looking into it, or they may have a closer or more trustworthy relationship with the second member, or the like. -
FIG. 4 c shows the next iteration of the viral growth deployment. Here non-member user U3 contacted by both M0 and M1 has decided to join the private network and is using the service with some overlapping non-members, e.g., U6, and some non-members who had not previously been exposed to the private network, e.g., U9. A similar situation is shown with respect to non-member U4 who became member M4. After several iterations, the number of members M increases exponentially as the pool of non-members U coming in contact with the private network becomes larger and larger. Eventually, allusers 103 may become members M as depicted inFIG. 4 d. - Synchronization Engine
- An advantage for
members 104 of theprivate network 100 is the asymmetric information exchange that allowsmembers 104, as well asnon-members 106, to provide information directly to themembers 104 of theprivate network 100. As the amount of information grows, synchronization among applications, e.g., thePIM 122, on various devices can become increasingly arduous. - The present invention includes a synchronization engine (or system) and a merge engine (or system) that allows
member 104 to synchronize and merge information from a variety of devices. For ease of understanding the principles of the synchronization and merge engines will be described in the context of a personal information manager (PIM) applications, and more particularly, contact information. However, it is noted that the information that the synchronization and merge engines can work with and process is not limited to PIMs and/or contact information. Rather, the principles involving the synchronization and merge engines are applicable for use and operation with any information that is stored as data, including, data representing entries for calendars, meetings, reminders, notes, and tasks, as well as data such as want advertisements, hiring listings, auction listings, and the like. - Referring now to
FIG. 5 , it illustrates that the synchronization engine can initiate and manage a synchronization (“synch”) process involving two or more devices. The device may be a physical device with an application having information to be synchronized, for example, theclient system 116 with aPIM 122, thePDA 132 with a PIM, or amobile phone 510 with a PIM. - Alternatively, the device may be a logical device having information to be synchronized, for example, a web-based PIM (e.g., address book) 515 from an online service such as Yahoo! or America Online. In yet another embodiment, the device may be any physical device and/or logical device having an application for
synchronization 520 within theprivate network 100. - The synchronization engine of the present invention beneficially allows for synchronization of information at a folder level.
FIG. 6 illustrates an example of afolder 610 in accordance with the present invention. Generally, thefolder 610 contains content such that it serves as a repository of information (e.g., data). Thefolder 610 may include one ormore entries 620 and/or one or more subfolders 630. Thefolder 610 may be configured to group the contents together in a multitude of variations, e.g., hierarchical or multi-tieredstructured entries 620 and/orsubfolders 630 or flatstructured entries 620 and/orsubfolders 630. - Briefly, examples of
entries 620 include e-mails, contacts, IM messages, task lists, and notes. Examples offolders 610 andsubfolders 630 include groupings of the entries, for example, a grouping of e-mails relating to work, a grouping of e-mails relating to home, a grouping of contacts relating to work, a grouping of contacts relating to home, a grouping of tasks relating to work, a grouping of tasks relating to home or some combination thereof. - Referring now to
FIG. 7 , it illustrates a logical view of a synchronization engine in accordance with one embodiment of the present invention. The synchronization engine (which may also be referred to as a system) includes alayer selection module 710, aparsing module 720, acomparison module 730, a map (or link)module 740, a synchronization (or synch)output module 750, and a synchronization (or synch) rulesmodule 760. Themodules - The
layers selection module 710 selects between one or more layers of information for synchronization. A layer is a category of information. For example,FIG. 8 a illustrates a logical layered organization for synchronization in the context of contact information in accordance with the present invention. In this example, layers may include anowner layer 810, areply layer 820, and a service layer 830 (e.g., private network service or PNS). - The
owner layer 810 corresponds to information (data) that is owned and controlled by amember 104 who maintains the authority on how that information is manipulated. Themember 104 synchronizes theowner layer 810 either manually or through an automated process, e.g. software. Thereply layer 820 corresponds to information that is changeable by aparticular non-member 106 in request to update from themember 104. Here, anon-member 106 provides information that is synchronized with theowner layer 810 and/or aservice layer 830. Theservice layer 830 corresponds with information that is updated in response to initiation for synchronization by amember 104. In this case, theservice layer 830 information is synchronized with theowner layer 810 and may be synchronized in response toreply layer 820 information. It should be noted that the different layers of information, e.g., 810, 820, 930, may include slightly different information and that maintaining them allows an owner of the address book entry to have control over the information displayed. For example, information typed in at theowner layer 810 versus information obtained through thereply layer 820 versus information provided through theservice layer 830, e.g., obtained via theprivate network 160. Further, the information at each layer may be manipulated through a user interface that is for the particular layer to allow access to the particular layer. - Referring back to
FIG. 7 , theparsing module 720 parses out the data within the layers and thecomparison module 730 compares the data to determine (or identify) duplicative data. Themap module 740 determines whether particular layers and/or information is linked together in particular relationships.FIG. 8 b, which is further described below, provides an example of a logical view of how information between twodevices address book 850 stored in thedatabase 114 in theserver system 112 of theprivate network 100. - Turning back to
FIG. 7 , it is noted that themap module 740 may also be configured to provide a unique identifier for linking relationships. In one embodiment, the unique identifier is an immutable identifier such as an e-mail address, instant messenger address, a telephone number, or other unique identifier (e.g., social security number).FIG. 8 c illustrates an example of a logical view of contact cards in accordance with one embodiment of the present invention, in which aunique identifier 875 is used to associate information with amember 104 in aprivate network 100. Again, referring back toFIG. 7 , thesynchronization output module 750 synchronizes the data within the layers based on the synchronization rules (from the synch rules module 760) and the linked relationships. - To help understand how the synchronization engine operates, an example will be provided using the logical view in
FIG. 8 b of how information between twodevices database 114 of theserver system 112 in theprivate network 100. Also used for the example is the logical view of contact cards inFIG. 8 c, in which aunique identifier 860 is used toassociate information 875 with amember 104 in theprivate network 100. - Referring first to
FIG. 8 b, the logical view illustrates a first device (referenced as DEV A) 840, a second device (referenced asDEV B) 845, and auniversal address book 850 with two sets (or folders) 852, 854 in thedatabase 114 of theserver system 112 of the private network 100 (referenced as PNS). It is again noted that thedevices - The two devices (DEV A and DEV B), 840, 845 include an application (or APP) such as a PIM address book (PIM AB) 842, 847 and a
mirror PIM address book device A 840 and/ordevice B 845 may be functionally similar to thePIM address book 122 described previously with respect to client system 116 (of which device A and device B may be functionally similar to). - In the present example, the synchronization engine synchronizes information between the PIM address books on the two
devices universal address book 850 of theprivate network 100 through themirrors mirrors PIM address books respective address book mirrors PIM address books universal address book 850 folders (or subsets of folders), e.g., 852, 854, in theserver database 114 of the private network. Themirrors universal address book 850 using theunique user identifier 860, which typically is immutable. - The
PIM address book mirrors address book folders database 114 includes entries that for this example relate to contact information. Each address book and mirror may include one or more entries, each entry having one or more fields. An example of this is illustrated inFIG. 8 c withinformation 870 comprising an entry and one ormore data fields 875 with that entry. In addition, the entries may be grouped together in sets. Each set may include a set within that set. The set and sets within sets be referenced as folders, subfolders, etc. as set forth within the principles described with reference toFIG. 6 . - By way of example, the
PIM address books - A disperse address book includes two or more address books that need not be exact replicas of each other. The disperse address book may have only subsets of the entire address book synchronized between other address books on other devices. The address books may be synchronized on a per entry basis or a more macro basis, e.g., folders, sets of folders or subfolders levels.
- Briefly,
FIG. 13 illustrates an example of dispersePIM address books universal address book 850 with three folders (or sets). The example shows that the folder A address books are fully synchronized between device A, device B and theuniversal address book 850 in thedatabase 114 on theprivate network 100. The example also illustrates that folder B on in the deviceA address book 842 is not synchronized with the folders in theother devices device A 842 is partially synchronized with folder C ondevice B 847 and the folder in theuniversal address book 850. This figure will be further referenced herein in describing examples of the synchronization and merge engines. - Also noted is that a
member 104 of the private network may initiate synchronization at various levels. As an example,FIG. 8 c illustrates themember 104 creating two or more different cards, e.g., 880 a, 880 b, 880 n (generally 880), that are set up by different groupings of the information data fields 875. Each card 880 also includes a permissions tag (e.g., a flag or field) 885 a, 885 b, 885 n (generally 885) that may be used to identify whether information in the card 880 is to be synchronized at card level or individual data field level. The permissions tag 885 also includes data on whether a particular card is public or private. A public card may be configured for general synchronization with information in thepublic network 102 orprivate network 100, while a private card may have limited or no synchronization with information in thepublic network 102 orprivate network 100. - Now referring to
FIGS. 9 a and 9 b, flowcharts illustrate processes for folder synchronization in accordance with one embodiment of the present invention.FIG. 9 a illustrates one embodiment of a general process for synchronization in accordance with the present invention. In this embodiment the process starts 910 and determines 915 whether synchronization occurs on a folder basis. If not, the process may be configured to return to start to set up folders that will subsequently be synchronized. If the synchronization is on a folder basis, the process selects 920 the folder (or folders) to synchronize. For example, the folders for synchronization may be the folders on from thePIM address books universal address book 850. - Next, the process identifies rules (or policies) for synchronization (e.g., from the synchronization rules module 760). The process determines 930 whether any merge rules (or policies) will apply. If not, the selected folders are synchronized 940 before the process ends. If merge rules do apply, the rules are identified 935 and applied during
synchronization 940 of the selected folders before the process ends. Merge rules are further described below with the merge engine. -
FIG. 9 b illustrates a second embodiment for synchronization in accordance with the present invention. In this embodiment, the process starts 950 and layers are selected 955 to link together between the different devices (e.g. the PIM address book ondevice A 842 and the universal address book 850). The layers are linked by mapping them together (e.g., through the map module 740). It is noted that alternatively folders within the layers may be linked together. The process then compares 960 the folders in the linked layers to identify duplicates among them. - The process may perform the comparison by parsing 965 the folders and comparing 970 the data fields within to see if predetermined data is identical. It is noted that this may be done through, for example, a comparison of the
unique user identifier 860 or one or more predetermined data fields. If duplicates are found, conflict resolution rules as set forth by policies in the synchronization rules module are used to resolve them and perform synchronization before the process ends 980. - Regarding the policies for conflict resolution in synchronization, the present invention beneficially may be configured to implement synchronization rules through policies enforced by a designated entity, e.g., the
management module 146 on theserver system 112 in theprivate network 100 or through user selection. Within the synchronization engine, policies for conflict resolution and synchronization may be stored within thesynchronization rules module 760. Examples of policies include determining synchronization rules include timing authorization (e.g., newest information synchronized over other information), owner address book authorization (e.g., information entered by owner of address book synchronized over other information), information based authorization (e.g., information in thedatabase 114 ofprivate network 100 synchronized over other information), or override authorization (e.g., information from a the public 102 or theprivate network 100 synchronized over other information unless overridden by the user). - Referring now to yet another embodiment of the present invention, information to be synchronized is first registered. To do this a user enters new account information, and the
server system 112 determines if an account exists as a member. Next, an initial mapping is run where folder mapping information is collected. Using the information described above, conflicts needing resolution are listed. In particular, there may be two distinct lists: (1) a list of duplicate entries, of which a “best” entry needs to be selected, and then (since the first step can create more conflicts) (2) a list of field conflicts which the user needs to select the best values. The links and synchronized information are all stored in thedatabase 114, and changes are sent to the remote systems, e.g. theclient system 116 running thePIM application client system 116 sends information to theserver system 112, which sends out the information to other client systems. - The present invention also provides for configuration of the synchronization engine and process to synchronize on a folder-by-folder basis, allowing users to purposely maintain synchronizable duplicates. To maintain synchronizable duplicates, a
member 104 decides which folders are synchronizable. Duplicate entries in the same folder are synchronized using an immutable identifier. This immutable identifier may be assigned by theserver system 112. Further, amember 104 may also need to identify or establish a mapping between folders on different systems (e.g., the PIM address book on 842 and the universal address book 850). - When the synchronization process begins, entries are considered to be duplicates if an immutable identifier between the folders on the different system match in any of their respective data fields (e.g., 875). An example of this would be the same e-mail addresses (other examples include similar instant messenger identifier or mobile telephone number). Entries with no e-mail addresses are compared using some other data field, for example, last name and first name.
- If there is an initial match between the identifiers, information can be synchronized among a few different ways. For example, there may be a remote device synchronization, in which if one entry has a field that is filled and another entry does not, the information is moved into the entry not previously having it. This process may also occur through a merge engine as further described below. If the entries have different information in the same fields, a
member 104 or theserver system 112 has to do conflict resolution as describe above. It is noted that the system keeps unique identifier data on theserver system 112 and theclient system 116. In an alternative embodiment, a remote device synchronization scenario involving many devices, themember 104 selects one entry as the “synchronizable” entry. This entry will thereafter be actively synchronized on that unique identifier, e.g., an e-mail address. It is noted that duplicate entries may also be stored as non-synchronizble duplicates. - Once mappings and initial synchronizations are completed, the system is beneficially configured for subsequent synchronizations. In particular, after initial mappings are established, changes may occur on either system, e.g., the
PIM address book client system 116 or theuniversal address book 850 on theserver system 112, and be reflected within the other due to synchronization. These changes include adds, deletes, and updates. Further, there may be five states an entry can be in on eithersystem -
- N-N: XX
- N-A: A new entry added to the side where it does not exist.
- N-C: XX
- N-U: XX
- N-D: Ignore (added and deleted before recognized by system)
- A-A: Map entries to each other, and if there is conflicting new information,
member 104 or system applies conflict resolution. Additionally, if the remote side has multiple duplicate adds, themember 103 or system either force intervention or uses a merge engine to determine a “best” matching entry. - A-C: XX
- A-U: XX
- A-D: Delete the entry that has been added.
- C-C: Any changes in a field that the remote entry did not have changed are propagated. If the same field was changed to different values on both entries,
member 104 or system performs conflict resolution. - C-U: Changes are propagated.
- C-D: Delete the changed entry.
- U-U: Ignore.
- U-D: Delete the corresponding entry.
- D-D: Ignore.
- As an example of how these states may function, consider a subsequent synchronization example. Here, the notation is C-C and it is understood that the data was equal at the time of the last completed synchronization. A comparison occurs based on old values (if they exist) as the original value in the
database 114 with the new value in thedatabase 114 and the new value from the synchronization. Anytime the contact information on an entry is modified, theserver system 112 stores the old data (if it doesn't already exist or is not stored at the client system 116) for each synchronized device. Once a remote system (e.g., aclient system 116 with the PIM application/address book 122, 842) is synchronized, the old information may be removed or discarded. It is noted that the copy of the data may be maintained by theclient system 116, by theserver system 112, or both. It is also noted that a remote system may be one that provides data in response to a synchronization request (and may be referred as “passive” in that instance). - In the case of new conflict resolutions, the
management module 146 of theserver system 112 can be configured to resolve conflicts (e.g., based on system default or predetermined settings by the member 104) or themember 104 could be e-mailed by the system (e.g., management module 146) to inform them. At this point the private network service on theserver system 112 provides themember 104 an option to fix it by replying to the e-mail or by logging into a web site for the service (PNS) and choosing the correct actions. - The synchronization process may also be configured to run continuously on the
client system 116 in accordance with the present invention. As the process runs, for each pass it grabs a list of synchronizations that have not occurred in a predetermined time interval. For each pass, the process logs in to the remote system (e.g., the server system 112) and grabs the latest data. Actions are then performed on the data based on the states described above and appropriate commands are issued between theserver system 112 and theclient system 116. As an example, the system may implement a periodic poll. The poll may take a form of a single, unencrypted, unauthenticated message asking the serve if a particular user has any pending changes. Alternatively, it may be a fully encrypted, authenticated check of every synchronizable object. - In alternative embodiments, conflicting field information may be stored by the
database 114 as an old field with one tag (e.g., a flag or field code), while new unsynchronizable entries could be marked in database with another tag (e.g., a flag or field code). Also note that if an entry is unsynchronized, and the e-mail/name is changed so that the entry is new and unconflicted, the entry is marked (or tagged) as synchronizable in thedatabase 114, and it becomes a “new” entry for all other devices. - It is also noted fields may be synchronized in a manner such that certain field values may be considered equivalent when performing comparisons. For example, for telephone numbers “(abc) def-ghij” is the same as “abc-def-ghij,” where the alphabet letters may correspond with any integer number or letter on a dial pad. Similarly, an entry having “Last, First” is considered equivalent to “First Last.” Note that the field equivalences may be predetermined by the user or the management module on a central server of the
private network 100 to help limit potential intervention to resolve conflicts. - It is further noted that in one embodiment of the present invention, information, including folders, data entries, etc., and associated data is stored as database objects in the
database 114 of theserver system 112. The stored data includes synchronizable states of entries, folder mapping data (including how folders map between a remote site (e.g., theclient system 116 running the PIM application/address book server system 112 address book 850), mapping between foreign (or non-local) entry identifiers and local entry identifiers, an old state for any particular entry, and a list of all synchronization account information. - The synchronization system and process in accordance with the present invention provides advantages that include recognition of a layered set of folders, for example, folders of contact information that can be updated independently or in subset of the other layers. The present invention also beneficially allows for setting and enforcing policy based conflict resolution during a synchronization process between various devices at a various layers. Hence, a user has increased control and flexibility over synchronization of information at multiple layers or levels.
- Merge Engine
- As described above, the synchronization process may also involve merging of information between devices. In a merge process two or more entries of information are merged into a single merged entry. The merged entry may include at least a subset of information from each entry. In one embodiment, merges of information are handled by a merge engine and process in accordance with the present invention. It is noted that the merge engine and merge process may be incorporated (or combined) with the synchronization engine and process or may be a separate configuration that can be communicatively coupled with the synchronization engine and process.
-
FIG. 10 illustrates a merge engine in accordance with one embodiment of the present invention. The merge engine (which may also be referred to as a system) includes aduplicate evaluation module 1010, amatrix scoring module 1020, one or more matrix tables 1030, a map (or link)module 1040, amerge rules module 1050, and amerge output module 1060. Themodules - The
duplicate evaluation module 1010 is configured to process information in different sets to identify and group duplicates between the sets. For example, in the context of thePIM address book 842, theduplicate evaluation module 1010 would process address book entries in two folders and identify and group duplicates between those folders. - The
matrix scoring module 1020 is configured, for each group of duplicate information, to build a matrix of match scores between the duplicate entries in each set. This matrix is stored in the matrix tables 1030. For example, in the context of thePIM address book 842, thematrix scoring module 1020 would, for each group of duplicate entries, build a matrix of match scores between these entries. The match scores would be stored, for example, in the matrix tables 1030 with the duplicate entries from a first folder on one side and duplicate entries from a second folder in the second side. - It is noted that the match scores comprise a score resulting from potentially merging two entries from each side of the matrix. An example of the matrix table may be as follows:
-
-
Folder 1=Duplicate Entries A, B, C -
Folder 2=Duplicate Entries D, E, F
-
- Each entry includes a unique identifier that matches, e.g., an e-mail address:
Matrix Table A B C D 2 4 6 E 3 5 3 F 2 2 4
The score may be assessed from an algorithm that takes into account factors that include, for example, the number of exact data field matches (e.g., same data in same location), the number of field that can be safely filled (e.g., without overwriting previous data), the amount of data that will be completely lost (e.g., if overwritten), and the amount of data that will be moved to irrelevant data fields (e.g., data fields not easily found). Moreover, it is noted that each factor used may be weighted in different amounts with respect to scoring and the scores may be combined in any manner (e.g., added, multiplied, combination of added and subtracted, etc.) by thematrix scoring module 1020 to provide a value used for evaluation. In alternative embodiments, pairings may be constructed through other mechanisms. For example, a domain expert may create constructs (or algorithms) to find ideal pairings on entries based on match scores attained through those constructs. In these constructs, pairings of duplicate entries would be undertaken in a manner that results in the least amount of loss of information between the duplicates. - The
map module 1040 may be configured to link two or more sets of information. For example, in the context of thePIM address book 842 two or more folders of contact information may be linked by themap module 1040 for present and future merge of contact entries within those folders. It is noted that themap module 1040 may be configured to be functionally similar to and/or incorporated with themap module 740 of the synchronization engine. - The merge rules
module 1050 provides policies (or rules) on how data will be treated in the event of conflict resolution in a merge context. For example, policies may include using data most recently entered as most relevant, using only data entered by an owner of an address book as most relevant, or fill in information that previously was unfilled between each entry being merged. The merge rulesmodule 1050 may be configured to be functionally similar to and/or incorporated with thesynchronization rules module 1050 of the synchronization engine. The merge output module is configured to output a single entry from a merge or two or more entries of information. - Turning now to
FIGS. 11 a through 11 c, these illustrate processes for merging information in accordance with one embodiment of the present invention.FIG. 11 a provides an overview of merge process and will be described making reference toFIG. 11 b andFIG. 11 c. It is noted that the merge process occurs, for example, during the course of synchronization between one or morePIM address books 842, 847 (e.g., each on aclient system 116 with PIM 122) and theuniversal address book 850 in thedatabase 114 of theserver system 112. By way of example and for ease of understanding, the merge process will be described in the context of merging two folders, e.g., folder A from the device APIM address book 842 and a folder B from the device BPIM address book 847, into a single folder in theuniversal address book 850. - Referring back to
FIGS. 11 a through 11 c, inFIG. 11 a the process starts 1110 by processing the PIM address book entries. Processing includes identifying 1115 duplicates and grouping the duplicates.FIG. 11 b illustrates the process for identifying duplicates. The process starts and identifies a unique identifier, e.g., 860, for matching. For example, in the present example of the PIM address books the unique identifier may be e-mail addresses. The process then determines 1160 if there is a match involving that e-mail address. If any e-mail address in an entry matches any e-mail addresses of one or more other entries, those entries are considered to be duplicates. If neither entry contains an e-mail, other data field identifiers may be used for comparison, including individual names, company names, telephone numbers, and the like. When matches are determined, those duplicate entries eventually are processed for matrix scoring 1165 as the process then ends 1170. - Referring back to
FIG. 11 a, the process continues by building 1120 a matrix of match scores for each group of duplicate entries. In the matrix, one side includes entries in of folder A and another side includes entries from folder B. Each matrix entry represents the score of merging those two entries together. The scores are prepared for use to match and ultimately merge entries. - The match scores may be based on values, for example, certain characters taking over other characters or numerical scores.
FIG. 11 c illustrates a process for determining/calculating match scores using the matrix. The process starts 1175 and identifies 1180 scoring parameters (or factors) within the matrix. As previously described, examples of factors include the number of exact data field matches (same information in same location), the number of fields that can be filled safely, the amount of information that will be completely lost, and the amount of information that will be moved to irrelevant fields. In addition, each factor is assigned different weights when determining the final score. - The process continues with calculating 1185 scores involving the matrix entries. The scores may be summed totals the matrix entries weighted scores. Alternatively, the scores may be a result of other mathematical combinations that are used to extract a numerical value for each matrix entry. The process then ends 1190.
- Referring back to
FIG. 11 a, entries are matched 1125 to minimize a total sum of the scores of the matches. In one embodiment, entries may be matched by eliminating highest (worst) scores until all the matches are formed. Once the matches are formed, the entries may be merged 1130 together before the process ends 1140. - In one embodiment, merging may include using policies within the
merge rules module 1050.FIG. 12 illustrates one embodiment for resolution of information conflicts involving merges in accordance with the present invention. For example, consider duplicate entries requiring merge having one copy as a golden (master) copy and another as a providing (or slave) copy. Here, information may be merged based on master authorized 1205, timing 1215 (e.g., most recent is used), owner authorized 1220 (e.g., owner of the address book resolves), server authorized 1225 (e.g., entries in on the server are used), or override 1230 (e.g., where a member can override any conflict resolution set up). - Similar alternatives rules for resolution in merges include a default policy in which one of two entries has information that is accepted, and information from the other entry that would be removed is moved into other data fields of the same type (e.g., from home phone to home phone 2). Another policy may include having a
member 104 handle conflicts and decide which to accept or discard. - The present invention beneficially merges data in a manner that creates a single set of folders or entries from two or more folders and/or entries to be merged together even when information between them differs. The present invention also advantageously allows for automation of a merge process in a manner that requires minimal, if any, interaction from
member 104 by mapping folders for merge and then using predetermined merge policies to merge information within the folders. Further, the present invention advantageously minimizes the amount of merging that needs to occur by intelligently matching entries to be merged to minimize the number of conflicts. - Synchronization and Merge Through Example
-
FIG. 13 illustrates another example of sets of address information between devices during and after a synchronization and merge process in accordance with the present invention. In this example, the device APIM address book 842, the device BPIM address book 847, and the universal address book 850 (part of the private network service in the private network 100) each includes three folders. For this example, the device APIM address book 847 has folder A, folder B, and folder C. Folder A will be fully synchronized with the device BPIM address book 847 and theuniversal address book 850. Folder B will be partially synchronized with the device BPIM address book 847 and theuniversal address book 850. Folder C will not be synchronized with the device BPIM address book 847 and theuniversal address book 850. Further, folder D of the device BPIM address book 847 will be synchronized only with theuniversal address book 850. - When the
address books PIM address book 847 and theuniversal address book 850. With respect to mapping, it is again noted that the folders (or subsets thereof) are linked together through a unique identifier that typically is immutable. - The merge engine merges duplicates of linked folders and entries in each address book into a single entry. Hence, in the example provide, folder A may have entries and subfolders that may be slightly different (e.g., data fields 875 that are blank in one entry but completed in another entry or data fields that are only slightly different but have space in merged entry to include both data fields (or elements within)) that are merged together to form a single entry. Thus, folder A in the device A
PIM address book 842 would include the same information across the device BPIM address book 847 and theuniversal address book 850 after merging of the entries. - The present invention beneficially provides for synchronization and merge engines to synchronize information between devices in a network. The information may be synchronized at various layers and using any one of a pre-selected or selectable conflict resolution mechanisms. The present invention also beneficially merges data in a manner that creates a single set of folders or entries from two or more folders and/or entries to be merged together even when information between them differs. The present invention also advantageously allows for automation of the synchronization and merge processes in a manner that requires minimal, if any, interaction from users or members.
- Upon reading this disclosure, those of skill in the art will appreciate still additional alternative structural and functional designs for a system and a process for synchronizing and merging synchronous and asynchronous information within a private network system with the disclosed principles of the present invention. Thus, while particular embodiments and applications of the present invention have been illustrated and described, it is to be understood that the invention is not limited to the precise construction and components disclosed herein and that various modifications, changes and variations which will be apparent to those skilled in the art may be made in the arrangement, operation and details of the method and apparatus of the present invention disclosed herein without departing from the spirit and scope of the invention as defined in the appended claims.
Claims (20)
Priority Applications (18)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/703,949 US7080104B2 (en) | 2003-11-07 | 2003-11-07 | Synchronization and merge engines |
CA2544837A CA2544837C (en) | 2003-11-07 | 2004-11-08 | Synchronization and merge engines |
BRPI0416110-6A BRPI0416110A (en) | 2003-11-07 | 2004-11-08 | computer-implemented method of staple synchronization between one or more staple layers and system and method of merging a plurality of staples into one network in a single staple |
KR1020087000661A KR20080011242A (en) | 2003-11-07 | 2004-11-08 | Sync and Merge Engine |
CN2004800374837A CN101189603B (en) | 2003-11-07 | 2004-11-08 | Synchronization and merge engines |
KR1020067011152A KR20060108704A (en) | 2003-11-07 | 2004-11-08 | Sync and Merge Engine |
JP2006538552A JP4688813B2 (en) | 2003-11-07 | 2004-11-08 | Synchronization and merge engine |
CA2809154A CA2809154C (en) | 2003-11-07 | 2004-11-08 | Synchronization and merge engines |
PCT/US2004/037539 WO2005048071A2 (en) | 2003-11-07 | 2004-11-08 | Synchronization and merge engines |
AU2004290419A AU2004290419B2 (en) | 2003-11-07 | 2004-11-08 | Synchronization and merge engines |
EP04810682A EP1682989A4 (en) | 2003-11-07 | 2004-11-08 | Synchronization and merge engines |
EP11187946A EP2423838A1 (en) | 2003-11-07 | 2004-11-08 | Synchronization and merge engines |
CA2809158A CA2809158C (en) | 2003-11-07 | 2004-11-08 | Synchronization and merge engines |
EP10184855A EP2315133A3 (en) | 2003-11-07 | 2004-11-08 | Method for generating update request messages, and method for processing responses thereto |
US11/428,295 US7774368B2 (en) | 2003-11-07 | 2006-06-30 | Contact management update protocols |
US12/825,712 US8032559B2 (en) | 2003-11-07 | 2010-06-29 | Contact management update protocols |
US13/248,612 US8271535B2 (en) | 2003-11-07 | 2011-09-29 | Contact management update protocols |
US13/438,581 US9516134B2 (en) | 2003-11-07 | 2012-04-03 | Viral engine for network deployment |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/703,949 US7080104B2 (en) | 2003-11-07 | 2003-11-07 | Synchronization and merge engines |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/428,295 Continuation US7774368B2 (en) | 2003-11-07 | 2006-06-30 | Contact management update protocols |
US12/825,712 Continuation US8032559B2 (en) | 2003-11-07 | 2010-06-29 | Contact management update protocols |
Publications (2)
Publication Number | Publication Date |
---|---|
US20050102328A1 true US20050102328A1 (en) | 2005-05-12 |
US7080104B2 US7080104B2 (en) | 2006-07-18 |
Family
ID=34552000
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/703,949 Expired - Lifetime US7080104B2 (en) | 2003-11-07 | 2003-11-07 | Synchronization and merge engines |
US11/428,295 Active 2026-03-28 US7774368B2 (en) | 2003-11-07 | 2006-06-30 | Contact management update protocols |
US12/825,712 Expired - Lifetime US8032559B2 (en) | 2003-11-07 | 2010-06-29 | Contact management update protocols |
US13/248,612 Expired - Fee Related US8271535B2 (en) | 2003-11-07 | 2011-09-29 | Contact management update protocols |
Family Applications After (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/428,295 Active 2026-03-28 US7774368B2 (en) | 2003-11-07 | 2006-06-30 | Contact management update protocols |
US12/825,712 Expired - Lifetime US8032559B2 (en) | 2003-11-07 | 2010-06-29 | Contact management update protocols |
US13/248,612 Expired - Fee Related US8271535B2 (en) | 2003-11-07 | 2011-09-29 | Contact management update protocols |
Country Status (9)
Country | Link |
---|---|
US (4) | US7080104B2 (en) |
EP (3) | EP2423838A1 (en) |
JP (1) | JP4688813B2 (en) |
KR (2) | KR20080011242A (en) |
CN (1) | CN101189603B (en) |
AU (1) | AU2004290419B2 (en) |
BR (1) | BRPI0416110A (en) |
CA (3) | CA2544837C (en) |
WO (1) | WO2005048071A2 (en) |
Cited By (250)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040236792A1 (en) * | 1998-10-01 | 2004-11-25 | Feyzi Celik | Method and apparatus for storing and retrieving business contact information in a computer system |
US20050149487A1 (en) * | 1998-10-01 | 2005-07-07 | Feyzi Celik | Method and apparatus for storing and retrieving business contact information in a computer system |
US20050149583A1 (en) * | 2003-12-29 | 2005-07-07 | Rajagopal Baskaran | Customizable metadata merging framework |
US20060020804A1 (en) * | 2004-02-04 | 2006-01-26 | Microsoft Corporation | Cross-pollination synchronization of data |
US20060069727A1 (en) * | 2004-08-25 | 2006-03-30 | Microsoft Corporation | System and method for synchronizing between an instant messenger client and a central contact store |
US20060085483A1 (en) * | 2004-10-14 | 2006-04-20 | Microsoft Corporation | System and method of merging contacts |
US20060212482A1 (en) * | 1998-10-01 | 2006-09-21 | Feyzi Celik | Wireless data exchange |
US20070021111A1 (en) * | 1998-10-01 | 2007-01-25 | Feyzi Celik | Phone to phone data exchange |
US20070027917A1 (en) * | 2005-08-01 | 2007-02-01 | Ido Ariel | Linking of personal information management data |
US20070027930A1 (en) * | 2005-08-01 | 2007-02-01 | Billy Alvarado | Universal data aggregation |
US20070027921A1 (en) * | 2005-08-01 | 2007-02-01 | Billy Alvarado | Context based action |
US20070061381A1 (en) * | 2005-09-15 | 2007-03-15 | Gregory Newton | Methods, systems and computer program products for managing user information across multiple devices associated with the user |
US20070078941A1 (en) * | 2005-08-15 | 2007-04-05 | Microsoft Corporation | Partial item change tracking and synchronization |
US20070100856A1 (en) * | 2005-10-21 | 2007-05-03 | Yahoo! Inc. | Account consolidation |
WO2006125183A3 (en) * | 2005-05-19 | 2007-05-18 | Fusionone Inc | Mobile device address book builder |
US7296036B2 (en) | 1998-10-01 | 2007-11-13 | Onepin, Inc. | Method and apparatus for storing and retrieving business contact information in a computer system |
US20080015998A1 (en) * | 1998-10-01 | 2008-01-17 | Feyzi Celik | Method and Apparatus for Storing and Retrieving Business Contact Information in a Computer System |
US20080032742A1 (en) * | 2006-08-02 | 2008-02-07 | Feyzi Celik | Event Sharing |
US20080090597A1 (en) * | 2006-10-17 | 2008-04-17 | Feyzi Celik | Short message formatting for information exchange |
US20080096590A1 (en) * | 2006-10-22 | 2008-04-24 | Feyzi Celik | Short Message Service Network Plug-In |
US20080133612A1 (en) * | 2006-12-01 | 2008-06-05 | Allen Yihren Liu | Business channel synchronization |
US20080155122A1 (en) * | 2004-04-30 | 2008-06-26 | Microsoft Corporation | Detecting low fidelity sync data |
US20080186807A1 (en) * | 2007-02-02 | 2008-08-07 | Research In Motion Limited | Electronic device and method of controlling an electronic device for calendar event updates |
US20080189159A1 (en) * | 2007-02-02 | 2008-08-07 | Researech In Motion Limited | Electronic device and method of meeting notification |
US20080195627A1 (en) * | 2007-02-09 | 2008-08-14 | Research In Motion Limited | System and method for managing databases associated with respective personal information manager service accounts |
US20080195455A1 (en) * | 2007-02-09 | 2008-08-14 | Research In Motion Limited | Electronic device and method of scheduling calendar events |
US20080191896A1 (en) * | 2007-02-09 | 2008-08-14 | Jain Rohit Rocky | Electronic device and method of adding parties to a calendar event |
US20080195619A1 (en) * | 2007-02-09 | 2008-08-14 | Jain Rohit Rocky | Electronic device and method of sharing calendar-event information |
US20080261577A1 (en) * | 2007-04-20 | 2008-10-23 | Feyzi Celik | Mobile Virtual Communication Invitations |
US20090031250A1 (en) * | 2007-07-27 | 2009-01-29 | Jesse Boudreau | Administration of wireless devices in a wireless communication system |
US20090030974A1 (en) * | 2007-07-27 | 2009-01-29 | Jesse Boudreau | Apparatus and methods for coordination of wireless systems |
US20090031296A1 (en) * | 2007-07-27 | 2009-01-29 | Jesse Boudreau | Wireless communication system installation |
US20090030968A1 (en) * | 2007-07-27 | 2009-01-29 | Jesse Boudreau | Remote control in a wireless communication system |
US20090028049A1 (en) * | 2007-07-27 | 2009-01-29 | Jesse Boudreau | Administration of policies for wireless devices in a wireless communication system |
US20090043867A1 (en) * | 2007-08-06 | 2009-02-12 | Apple Inc. | Synching data |
US20090068994A1 (en) * | 2007-07-27 | 2009-03-12 | Thomas Murphy | Administration of wireless systems |
US20090070429A1 (en) * | 2007-07-27 | 2009-03-12 | Thomas Murphy | Information exchange in wireless servers |
US20090119339A1 (en) * | 1998-10-01 | 2009-05-07 | Feyzi Celik | Phone to phone data exchange |
US20090138547A1 (en) * | 2007-07-27 | 2009-05-28 | Motion Limited | Apparatus and methods for operation of a wireless server |
CN101448317A (en) * | 2007-07-27 | 2009-06-03 | 捷讯研究有限公司 | Apparatus and methods for operation of a wireless server |
WO2006099466A3 (en) * | 2005-03-15 | 2009-06-04 | Onepin Inc | Wireless data exchange |
US20090157615A1 (en) * | 2007-12-18 | 2009-06-18 | General Motors Corporation | Synching online address book sources for a vehicle user |
US20090228509A1 (en) * | 2008-03-04 | 2009-09-10 | Apple Inc. | Synchronization server process |
US20090248844A1 (en) * | 2008-03-31 | 2009-10-01 | International Business Machines Corporation | Hybrid Profile Management for Electronic Social Networks |
US20090292799A1 (en) * | 2008-05-23 | 2009-11-26 | Research In Motion Limited | Remote administration of mobile wireless devices |
US7634509B2 (en) | 2003-11-07 | 2009-12-15 | Fusionone, Inc. | Personal information space management system and method |
US7643824B2 (en) | 2004-02-27 | 2010-01-05 | Cooligy Inc | Wireless telephone data backup system |
US20100082732A1 (en) * | 2008-09-29 | 2010-04-01 | Apple Inc. | Trickle Sync Protocol |
US20100088430A1 (en) * | 2007-03-14 | 2010-04-08 | Rafael Ton | System and method for propagating personal identification information to communication devices |
US20100131462A1 (en) * | 2008-11-21 | 2010-05-27 | At&T Intellectual Property I, L.P. | Methods, computer program products, and systems for automatically synchronizing directory structures across different applications |
US20100223321A1 (en) * | 2009-02-27 | 2010-09-02 | Christopher Runstedler | Data hub server |
US20100223400A1 (en) * | 2008-03-04 | 2010-09-02 | Apple Inc. | Data Synchronization Protocol |
US20100223359A1 (en) * | 2009-02-27 | 2010-09-02 | Research In Motion Limited | Device-to-device transfer |
US7917505B2 (en) | 2005-08-01 | 2011-03-29 | Seven Networks, Inc. | Methods for publishing content |
US20110086592A1 (en) * | 2009-10-13 | 2011-04-14 | Samsung Electronics Co. Ltd. | Method for displaying calendar data |
US20110125770A1 (en) * | 2009-11-25 | 2011-05-26 | Nokia Corporation | Method and apparatus for facilitating identity resolution |
US20110154255A1 (en) * | 2009-03-31 | 2011-06-23 | Samsung Electronics Co., Ltd. | Apparatus and method for synchronization between devices through wireless connection |
US20110173636A1 (en) * | 2007-02-12 | 2011-07-14 | Microsoft Corporation | Web data usage platform |
US8010082B2 (en) | 2004-10-20 | 2011-08-30 | Seven Networks, Inc. | Flexible billing architecture |
US20110264684A1 (en) * | 2010-04-21 | 2011-10-27 | Eytan Shafigi | Method and system for updating contact information |
US8064583B1 (en) | 2005-04-21 | 2011-11-22 | Seven Networks, Inc. | Multiple data store authentication |
US8078158B2 (en) | 2008-06-26 | 2011-12-13 | Seven Networks, Inc. | Provisioning applications for a mobile device |
US20110317523A1 (en) * | 2010-06-25 | 2011-12-29 | International Business Machines Corporation | Merging calendar entries |
US20120017258A1 (en) * | 2009-11-19 | 2012-01-19 | Hitachi, Ltd. | Computer system, management system and recording medium |
US8107921B2 (en) | 2008-01-11 | 2012-01-31 | Seven Networks, Inc. | Mobile virtual network operator |
US8116214B2 (en) | 2004-12-03 | 2012-02-14 | Seven Networks, Inc. | Provisioning of e-mail settings for a mobile terminal |
US8127342B2 (en) | 2002-01-08 | 2012-02-28 | Seven Networks, Inc. | Secure end-to-end transport through intermediary nodes |
US8156074B1 (en) | 2000-01-26 | 2012-04-10 | Synchronoss Technologies, Inc. | Data transfer and synchronization system |
US8166164B1 (en) | 2010-11-01 | 2012-04-24 | Seven Networks, Inc. | Application and network-based long poll request detection and cacheability assessment therefor |
US8181111B1 (en) | 2007-12-31 | 2012-05-15 | Synchronoss Technologies, Inc. | System and method for providing social context to digital activity |
US8190701B2 (en) | 2010-11-01 | 2012-05-29 | Seven Networks, Inc. | Cache defeat detection and caching of content addressed by identifiers intended to defeat cache |
US8209709B2 (en) | 2005-03-14 | 2012-06-26 | Seven Networks, Inc. | Cross-platform event engine |
US20120198482A1 (en) * | 2011-01-27 | 2012-08-02 | International Business Machines Corporation | Distributed Multi-System Management |
US8255006B1 (en) | 2009-11-10 | 2012-08-28 | Fusionone, Inc. | Event dependent notification system and method |
US8316098B2 (en) | 2011-04-19 | 2012-11-20 | Seven Networks Inc. | Social caching for device resource sharing and management |
US8326985B2 (en) | 2010-11-01 | 2012-12-04 | Seven Networks, Inc. | Distributed management of keep-alive message signaling for mobile network resource conservation and optimization |
US8326361B2 (en) | 1998-10-01 | 2012-12-04 | Lupine Investments Llc | Phone to phone data exchange |
US20130013560A1 (en) * | 2011-07-08 | 2013-01-10 | Arnold Goldberg | Desktop application for access and interaction with workspaces in a cloud-based content management system and synchronization mechanisms thereof |
US8364181B2 (en) | 2007-12-10 | 2013-01-29 | Seven Networks, Inc. | Electronic-mail filtering for mobile devices |
CN102955790A (en) * | 2011-08-23 | 2013-03-06 | 苏州彭华信息技术有限公司 | Method and device for synchronizing network documents |
US8417823B2 (en) | 2010-11-22 | 2013-04-09 | Seven Network, Inc. | Aligning data transfer to optimize connections established for transmission over a wireless network |
WO2013056172A1 (en) * | 2011-10-12 | 2013-04-18 | Microsoft Corporation | Automatically aggregating contact information |
US20130097595A1 (en) * | 2011-10-18 | 2013-04-18 | Microsoft Corporation | Update scanning |
US8429185B2 (en) | 2007-02-12 | 2013-04-23 | Microsoft Corporation | Using structured data for online research |
US8438633B1 (en) | 2005-04-21 | 2013-05-07 | Seven Networks, Inc. | Flexible real-time inbox access |
US8442943B2 (en) | 2000-01-26 | 2013-05-14 | Synchronoss Technologies, Inc. | Data transfer and synchronization between mobile systems using change log |
US20130124612A1 (en) * | 2005-12-30 | 2013-05-16 | David E. Braginsky | Conflict Management During Data Object Synchronization Between Client and Server |
US8484314B2 (en) | 2010-11-01 | 2013-07-09 | Seven Networks, Inc. | Distributed caching in a wireless network of content delivered for a mobile application over a long-held request |
US8611873B2 (en) | 2004-05-12 | 2013-12-17 | Synchronoss Technologies, Inc. | Advanced contact identification system |
US8620861B1 (en) | 2008-09-30 | 2013-12-31 | Google Inc. | Preserving file metadata during atomic save operations |
US8620286B2 (en) | 2004-02-27 | 2013-12-31 | Synchronoss Technologies, Inc. | Method and system for promoting and transferring licensed content and applications |
US8621075B2 (en) | 2011-04-27 | 2013-12-31 | Seven Metworks, Inc. | Detecting and preserving state for satisfying application requests in a distributed proxy and cache system |
US8645471B2 (en) | 2003-07-21 | 2014-02-04 | Synchronoss Technologies, Inc. | Device message management system |
US20140050232A1 (en) * | 2011-04-19 | 2014-02-20 | Kabushiki Kaisha Toshiba | Synchronization control system |
US20140067980A1 (en) * | 2004-01-29 | 2014-03-06 | Yahoo! Inc. | Control for inviting an unaythenticated user to gain access to display of content that is otherwise accessible with an authentication mechanism |
US8693494B2 (en) | 2007-06-01 | 2014-04-08 | Seven Networks, Inc. | Polling |
US8700728B2 (en) | 2010-11-01 | 2014-04-15 | Seven Networks, Inc. | Cache defeat detection and caching of content addressed by identifiers intended to defeat cache |
US8750123B1 (en) | 2013-03-11 | 2014-06-10 | Seven Networks, Inc. | Mobile device equipped with mobile network congestion recognition to make intelligent decisions regarding connecting to an operator network |
US20140172799A1 (en) * | 2012-12-19 | 2014-06-19 | Box, Inc. | Method and apparatus for synchronization of items with read-only permissions in a cloud-based environment |
US8761756B2 (en) | 2005-06-21 | 2014-06-24 | Seven Networks International Oy | Maintaining an IP connection in a mobile network |
US8775631B2 (en) | 2012-07-13 | 2014-07-08 | Seven 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-01 | 2014-07-08 | Seven Networks, Inc. | Integrated messaging |
US8787947B2 (en) | 2008-06-18 | 2014-07-22 | Seven Networks, Inc. | Application discovery on mobile devices |
US8793305B2 (en) | 2007-12-13 | 2014-07-29 | Seven Networks, Inc. | Content delivery to a mobile device from a content service |
US8799410B2 (en) | 2008-01-28 | 2014-08-05 | Seven 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-22 | 2014-08-12 | Seven Networks, Inc. | Maintaining mobile terminal information for secure communications |
US8812695B2 (en) | 2012-04-09 | 2014-08-19 | Seven Networks, Inc. | Method and system for management of a virtual network connection without heartbeat messages |
US8832228B2 (en) | 2011-04-27 | 2014-09-09 | Seven 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-26 | 2014-09-16 | Seven Networks, Inc. | Distributed caching for resource and mobile network traffic management |
US8843153B2 (en) | 2010-11-01 | 2014-09-23 | Seven Networks, Inc. | Mobile traffic categorization and policy for network use optimization while preserving user experience |
US8849902B2 (en) | 2008-01-25 | 2014-09-30 | Seven Networks, Inc. | System for providing policy based content service in a mobile network |
US8861354B2 (en) | 2011-12-14 | 2014-10-14 | Seven Networks, Inc. | Hierarchies and categories for management and deployment of policies for distributed wireless traffic optimization |
US8868753B2 (en) | 2011-12-06 | 2014-10-21 | Seven Networks, Inc. | System of redundantly clustered machines to provide failover mechanisms for mobile traffic management and network resource conservation |
US8874761B2 (en) | 2013-01-25 | 2014-10-28 | Seven Networks, Inc. | Signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols |
US8886176B2 (en) | 2010-07-26 | 2014-11-11 | Seven Networks, Inc. | Mobile application traffic optimization |
US8903954B2 (en) | 2010-11-22 | 2014-12-02 | Seven Networks, Inc. | Optimization of resource polling intervals to satisfy mobile device requests |
US8909202B2 (en) | 2012-01-05 | 2014-12-09 | Seven Networks, Inc. | Detection and management of user interactions with foreground applications on a mobile device in distributed caching |
US8909759B2 (en) | 2008-10-10 | 2014-12-09 | Seven Networks, Inc. | Bandwidth measurement |
US8918503B2 (en) | 2011-12-06 | 2014-12-23 | Seven Networks, Inc. | Optimization of mobile traffic directed to private networks and operator configurability thereof |
US20150012509A1 (en) * | 2013-07-05 | 2015-01-08 | Palantir Technologies, Inc. | Data quality monitors |
USRE45348E1 (en) | 2004-10-20 | 2015-01-20 | Seven Networks, Inc. | Method and apparatus for intercepting events in a communication system |
US8943428B2 (en) | 2010-11-01 | 2015-01-27 | Synchronoss Technologies, Inc. | System for and method of field mapping |
US8984581B2 (en) | 2011-07-27 | 2015-03-17 | Seven Networks, Inc. | Monitoring mobile application activities for malicious traffic on a mobile device |
US9002828B2 (en) | 2007-12-13 | 2015-04-07 | Seven Networks, Inc. | Predictive content delivery |
US9009250B2 (en) | 2011-12-07 | 2015-04-14 | Seven Networks, Inc. | Flexible and dynamic integration schemas of a traffic management system with various network operators for network traffic alleviation |
US9015248B2 (en) | 2011-11-16 | 2015-04-21 | Box, Inc. | Managing updates at clients used by a user to access a cloud-based collaboration service |
US9019123B2 (en) | 2011-12-22 | 2015-04-28 | Box, Inc. | Health check services for web-based collaboration environments |
US9021021B2 (en) | 2011-12-14 | 2015-04-28 | Seven Networks, Inc. | Mobile network reporting and usage analytics system and method aggregated using a distributed traffic optimization system |
US9027108B2 (en) | 2012-05-23 | 2015-05-05 | Box, Inc. | Systems and methods for secure file portability between mobile applications on a mobile device |
US9043433B2 (en) | 2010-07-26 | 2015-05-26 | Seven Networks, Inc. | Mobile network traffic coordination across multiple applications |
US9043731B2 (en) | 2010-03-30 | 2015-05-26 | Seven Networks, Inc. | 3D mobile user interface with configurable workspace management |
US9055102B2 (en) | 2006-02-27 | 2015-06-09 | Seven Networks, Inc. | Location-based operations and messaging |
US9060032B2 (en) | 2010-11-01 | 2015-06-16 | Seven Networks, Inc. | Selective data compression by a distributed traffic management system to reduce mobile data traffic and signaling traffic |
US9065765B2 (en) | 2013-07-22 | 2015-06-23 | Seven Networks, Inc. | Proxy server associated with a mobile carrier for enhancing mobile traffic management in a mobile network |
US9063912B2 (en) | 2011-06-22 | 2015-06-23 | Box, Inc. | Multimedia content preview rendering in a cloud content management system |
US9077630B2 (en) | 2010-07-26 | 2015-07-07 | Seven Networks, Inc. | Distributed implementation of dynamic wireless traffic policy |
US9092792B2 (en) | 2002-06-10 | 2015-07-28 | Ebay Inc. | Customizing an application |
US9098474B2 (en) | 2011-10-26 | 2015-08-04 | Box, Inc. | Preview pre-generation based on heuristics and algorithmic prediction/assessment of predicted user behavior for enhancement of user experience |
US9117087B2 (en) | 2012-09-06 | 2015-08-25 | Box, Inc. | System and method for creating a secure channel for inter-application communication based on intents |
US9161258B2 (en) | 2012-10-24 | 2015-10-13 | Seven Networks, Llc | Optimized and selective management of policy deployment to mobile clients in a congested network to prevent further aggravation of network congestion |
US9173128B2 (en) | 2011-12-07 | 2015-10-27 | Seven Networks, Llc | Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol |
US9195636B2 (en) | 2012-03-07 | 2015-11-24 | Box, Inc. | Universal file type preview for mobile devices |
US9195519B2 (en) | 2012-09-06 | 2015-11-24 | Box, Inc. | Disabling the self-referential appearance of a mobile application in an intent via a background registration |
US9203864B2 (en) | 2012-02-02 | 2015-12-01 | Seven Networks, Llc | Dynamic categorization of applications for network access in a mobile network |
US9237170B2 (en) | 2012-07-19 | 2016-01-12 | Box, Inc. | Data loss prevention (DLP) methods and architectures by a cloud service |
US9241314B2 (en) | 2013-01-23 | 2016-01-19 | Seven Networks, Llc | Mobile device with application or context aware fast dormancy |
US9275163B2 (en) | 2010-11-01 | 2016-03-01 | Seven Networks, Llc | Request and response characteristics based adaptation of distributed caching in a mobile network |
US9280613B2 (en) | 2012-05-23 | 2016-03-08 | Box, Inc. | Metadata enabled third-party application access of content at a cloud-based platform via a native client to the cloud-based platform |
US9292833B2 (en) | 2012-09-14 | 2016-03-22 | Box, Inc. | Batching notifications of activities that occur in a web-based collaboration environment |
US9307493B2 (en) | 2012-12-20 | 2016-04-05 | Seven Networks, Llc | Systems and methods for application management of mobile device radio state promotion and demotion |
US9325662B2 (en) | 2011-01-07 | 2016-04-26 | Seven Networks, Llc | System and method for reduction of mobile network traffic used for domain name system (DNS) queries |
US9326189B2 (en) | 2012-02-03 | 2016-04-26 | Seven Networks, Llc | User as an end point for profiling and optimizing the delivery of content and data in a wireless network |
US9330196B2 (en) | 2010-11-01 | 2016-05-03 | Seven Networks, Llc | Wireless traffic management system cache optimization using http headers |
US9348499B2 (en) | 2008-09-15 | 2016-05-24 | Palantir Technologies, Inc. | Sharing objects that rely on local resources with outside servers |
US9369520B2 (en) | 2012-08-19 | 2016-06-14 | Box, Inc. | Enhancement of upload and/or download performance based on client and/or server feedback information |
US9396245B2 (en) | 2013-01-02 | 2016-07-19 | Box, Inc. | Race condition handling in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform |
US9396216B2 (en) | 2012-05-04 | 2016-07-19 | Box, Inc. | Repository redundancy implementation of a system which incrementally updates clients with events that occurred via a cloud-enabled platform |
US20160224276A1 (en) * | 2010-10-13 | 2016-08-04 | International Business Machines Corporation | Synchronization for initialization of a remote mirror storage facility |
US9413587B2 (en) | 2012-05-02 | 2016-08-09 | Box, Inc. | System and method for a third-party application to access content within a cloud-based platform |
US9450926B2 (en) | 2012-08-29 | 2016-09-20 | Box, Inc. | Upload and download streaming encryption to/from a cloud-based platform |
US9483473B2 (en) | 2013-09-13 | 2016-11-01 | Box, Inc. | High availability architecture for a cloud-based concurrent-access collaboration platform |
US9483546B2 (en) | 2014-12-15 | 2016-11-01 | Palantir Technologies Inc. | System and method for associating related records to common entities across multiple lists |
US9495353B2 (en) | 2013-03-15 | 2016-11-15 | Palantir Technologies Inc. | Method and system for generating a parser and parsing complex data |
US9495364B2 (en) | 2012-10-04 | 2016-11-15 | Box, Inc. | Enhanced quick search features, low-barrier commenting/interactive features in a collaboration platform |
US9507795B2 (en) | 2013-01-11 | 2016-11-29 | Box, Inc. | Functionalities, features, and user interface of a synchronization client to a cloud-based environment |
US9514167B2 (en) * | 2011-08-01 | 2016-12-06 | Qatar Foundation | Behavior based record linkage |
US9514414B1 (en) | 2015-12-11 | 2016-12-06 | Palantir Technologies Inc. | Systems and methods for identifying and categorizing electronic documents through machine learning |
US9519886B2 (en) | 2013-09-13 | 2016-12-13 | Box, Inc. | Simultaneous editing/accessing of content by collaborator invitation through a web-based or mobile application to a cloud-based collaboration platform |
US9519526B2 (en) | 2007-12-05 | 2016-12-13 | Box, Inc. | File management system and collaboration service and integration capabilities with third party applications |
US9535924B2 (en) | 2013-07-30 | 2017-01-03 | Box, Inc. | Scalability improvement in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform |
US9535909B2 (en) | 2013-09-13 | 2017-01-03 | Box, Inc. | Configurable event-based automation architecture for cloud-based collaboration platforms |
US9542076B1 (en) | 2004-05-12 | 2017-01-10 | Synchronoss Technologies, Inc. | System for and method of updating a personal profile |
US9553758B2 (en) | 2012-09-18 | 2017-01-24 | Box, Inc. | Sandboxing individual applications to specific user folders in a cloud-based service |
US9558202B2 (en) | 2012-08-27 | 2017-01-31 | Box, Inc. | Server side techniques for reducing database workload in implementing selective subfolder synchronization in a cloud-based environment |
US9575981B2 (en) | 2012-04-11 | 2017-02-21 | Box, Inc. | Cloud service enabled to handle a set of files depicted to a user as a single file in a native operating system |
US9602514B2 (en) | 2014-06-16 | 2017-03-21 | Box, Inc. | Enterprise mobility management and verification of a managed application by a content provider |
US9628268B2 (en) | 2012-10-17 | 2017-04-18 | Box, Inc. | Remote key management in a cloud-based environment |
US9633037B2 (en) | 2013-06-13 | 2017-04-25 | Box, Inc | Systems and methods for synchronization event building and/or collapsing by a synchronization component of a cloud-based platform |
US9665349B2 (en) | 2012-10-05 | 2017-05-30 | Box, Inc. | System and method for generating embeddable widgets which enable access to a cloud-based collaboration platform |
US9691051B2 (en) | 2012-05-21 | 2017-06-27 | Box, Inc. | Security enhancement through application access control |
US9705967B2 (en) | 2012-10-04 | 2017-07-11 | Box, Inc. | Corporate user discovery and identification of recommended collaborators in a cloud platform |
US9712510B2 (en) | 2012-07-06 | 2017-07-18 | Box, Inc. | Systems and methods for securely submitting comments among users via external messaging applications in a cloud-based platform |
US9715518B2 (en) | 2012-01-23 | 2017-07-25 | Palantir Technologies, Inc. | Cross-ACL multi-master replication |
US9729675B2 (en) | 2012-08-19 | 2017-08-08 | Box, Inc. | Enhancement of upload and/or download performance based on client and/or server feedback information |
US9756022B2 (en) | 2014-08-29 | 2017-09-05 | Box, Inc. | Enhanced remote key management for an enterprise in a cloud-based environment |
US9760556B1 (en) | 2015-12-11 | 2017-09-12 | Palantir Technologies Inc. | Systems and methods for annotating and linking electronic documents |
US9773051B2 (en) | 2011-11-29 | 2017-09-26 | Box, Inc. | Mobile platform file and folder selection functionalities for offline access and synchronization |
US9794256B2 (en) | 2012-07-30 | 2017-10-17 | Box, Inc. | System and method for advanced control tools for administrators in a cloud-based service |
US9805050B2 (en) | 2013-06-21 | 2017-10-31 | Box, Inc. | Maintaining and updating file system shadows on a local device by a synchronization client of a cloud-based platform |
US9832095B2 (en) | 2011-12-14 | 2017-11-28 | Seven Networks, Llc | Operation modes for mobile traffic optimization and concurrent management of optimized and non-optimized traffic |
US9894119B2 (en) | 2014-08-29 | 2018-02-13 | Box, Inc. | Configurable metadata-based automation and content classification architecture for cloud-based collaboration platforms |
US9904435B2 (en) | 2012-01-06 | 2018-02-27 | Box, Inc. | System and method for actionable event generation for task delegation and management via a discussion forum in a web-based collaboration environment |
US9934240B2 (en) | 2008-09-30 | 2018-04-03 | Google Llc | On demand access to client cached files |
US9946738B2 (en) | 2014-11-05 | 2018-04-17 | Palantir Technologies, Inc. | Universal data pipeline |
US9953036B2 (en) | 2013-01-09 | 2018-04-24 | Box, Inc. | File system monitoring in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform |
US9959420B2 (en) | 2012-10-02 | 2018-05-01 | Box, Inc. | System and method for enhanced security and management mechanisms for enterprise administrators in a cloud-based environment |
US9965534B2 (en) | 2015-09-09 | 2018-05-08 | Palantir Technologies, Inc. | Domain-specific language for dataset transformations |
US9965745B2 (en) | 2012-02-24 | 2018-05-08 | Box, Inc. | System and method for promoting enterprise adoption of a web-based collaboration environment |
US9978040B2 (en) | 2011-07-08 | 2018-05-22 | Box, Inc. | Collaboration sessions in a workspace on a cloud-based content management system |
US9984428B2 (en) | 2015-09-04 | 2018-05-29 | Palantir Technologies Inc. | Systems and methods for structuring data from unstructured electronic data files |
US9996229B2 (en) | 2013-10-03 | 2018-06-12 | Palantir Technologies Inc. | Systems and methods for analyzing performance of an entity |
US9996595B2 (en) | 2015-08-03 | 2018-06-12 | Palantir Technologies, Inc. | Providing full data provenance visualization for versioned datasets |
US10007674B2 (en) | 2016-06-13 | 2018-06-26 | Palantir Technologies Inc. | Data revision control in large-scale data analytic systems |
CN108256466A (en) * | 2018-01-12 | 2018-07-06 | 广东欧珀移动通信有限公司 | Data processing method, device, electronic equipment and computer readable storage medium |
US10027473B2 (en) | 2013-12-30 | 2018-07-17 | Palantir Technologies Inc. | Verifiable redactable audit log |
US10038731B2 (en) | 2014-08-29 | 2018-07-31 | Box, Inc. | Managing flow-based interactions with cloud-based shared content |
US10061828B2 (en) | 2006-11-20 | 2018-08-28 | Palantir Technologies, Inc. | Cross-ontology multi-master replication |
US10103953B1 (en) | 2015-05-12 | 2018-10-16 | Palantir Technologies Inc. | Methods and systems for analyzing entity performance |
US10110656B2 (en) | 2013-06-25 | 2018-10-23 | Box, Inc. | Systems and methods for providing shell communication in a cloud-based platform |
US10127289B2 (en) | 2015-08-19 | 2018-11-13 | Palantir Technologies Inc. | Systems and methods for automatic clustering and canonical designation of related data in various data structures |
US10133588B1 (en) | 2016-10-20 | 2018-11-20 | Palantir Technologies Inc. | Transforming instructions for collaborative updates |
US10140664B2 (en) | 2013-03-14 | 2018-11-27 | Palantir Technologies Inc. | Resolving similar entities from a transaction database |
US10152531B2 (en) | 2013-03-15 | 2018-12-11 | Palantir Technologies Inc. | Computer-implemented systems and methods for comparing and associating objects |
US10200256B2 (en) | 2012-09-17 | 2019-02-05 | Box, Inc. | System and method of a manipulative handle in an interactive mobile user interface |
US10229134B2 (en) | 2013-06-25 | 2019-03-12 | Box, Inc. | Systems and methods for managing upgrades, migration of user data and improving performance of a cloud-based platform |
US10235533B1 (en) | 2017-12-01 | 2019-03-19 | Palantir Technologies Inc. | Multi-user access controls in electronic simultaneously editable document editor |
US10263899B2 (en) | 2012-04-10 | 2019-04-16 | Seven Networks, Llc | Enhanced 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 |
US10318542B2 (en) * | 2012-03-30 | 2019-06-11 | Commvault Systems, Inc. | Information management of mobile device data |
US10452667B2 (en) | 2012-07-06 | 2019-10-22 | Box Inc. | Identification of people as search results from key-word based searches of content in a cloud-based environment |
US10496529B1 (en) | 2018-04-18 | 2019-12-03 | Palantir Technologies Inc. | Data unit test-based data management system |
US10503574B1 (en) | 2017-04-10 | 2019-12-10 | Palantir Technologies Inc. | Systems and methods for validating data |
US10509527B2 (en) | 2013-09-13 | 2019-12-17 | Box, Inc. | Systems and methods for configuring event-based automation in cloud-based collaboration platforms |
US10530854B2 (en) | 2014-05-30 | 2020-01-07 | Box, Inc. | Synchronization of permissioned content in cloud-based environments |
US10542121B2 (en) | 2006-08-23 | 2020-01-21 | Ebay Inc. | Dynamic configuration of multi-platform applications |
US10554426B2 (en) | 2011-01-20 | 2020-02-04 | Box, Inc. | Real time notification of activities that occur in a web-based collaboration environment |
US10574442B2 (en) | 2014-08-29 | 2020-02-25 | Box, Inc. | Enhanced remote key management for an enterprise in a cloud-based environment |
US10579647B1 (en) | 2013-12-16 | 2020-03-03 | Palantir Technologies Inc. | Methods and systems for analyzing entity performance |
US10592534B2 (en) | 2016-02-16 | 2020-03-17 | Microsoft Technology Licensing Llc | Automated aggregation of social contact groups |
US10599671B2 (en) | 2013-01-17 | 2020-03-24 | Box, Inc. | Conflict resolution, retry condition management, and handling of problem files for the synchronization client to a cloud-based platform |
US10606960B2 (en) | 2001-10-11 | 2020-03-31 | Ebay Inc. | System and method to facilitate translation of communications between entities over a network |
US10725968B2 (en) | 2013-05-10 | 2020-07-28 | Box, Inc. | Top down delete or unsynchronization on delete of and depiction of item synchronization with a synchronization client to a cloud-based platform |
US10747436B2 (en) | 2015-09-02 | 2020-08-18 | Commvault Systems, Inc. | Migrating data to disk without interrupting running operations |
US10754822B1 (en) | 2018-04-18 | 2020-08-25 | Palantir Technologies Inc. | Systems and methods for ontology migration |
US10762102B2 (en) | 2013-06-20 | 2020-09-01 | Palantir Technologies Inc. | System and method for incremental replication |
US10795909B1 (en) | 2018-06-14 | 2020-10-06 | Palantir Technologies Inc. | Minimized and collapsed resource dependency path |
US10838987B1 (en) | 2017-12-20 | 2020-11-17 | Palantir Technologies Inc. | Adaptive and transparent entity screening |
US10846074B2 (en) | 2013-05-10 | 2020-11-24 | Box, Inc. | Identification and handling of items to be ignored for synchronization with a cloud-based platform by a synchronization client |
US10866931B2 (en) | 2013-10-22 | 2020-12-15 | Box, Inc. | Desktop application for accessing a cloud collaboration platform |
US10866792B1 (en) | 2018-04-17 | 2020-12-15 | Palantir Technologies Inc. | System and methods for rules-based cleaning of deployment pipelines |
US10915492B2 (en) | 2012-09-19 | 2021-02-09 | Box, Inc. | Cloud-based platform enabled with media content indexed for text-based searches and/or metadata extraction |
US10956406B2 (en) | 2017-06-12 | 2021-03-23 | Palantir Technologies Inc. | Propagated deletion of database records and derived data |
US10983870B2 (en) | 2010-09-30 | 2021-04-20 | Commvault Systems, Inc. | Data recovery operations, such as recovery from modified network data management protocol data |
US11061542B1 (en) | 2018-06-01 | 2021-07-13 | Palantir Technologies Inc. | Systems and methods for determining and displaying optimal associations of data items |
US11061874B1 (en) | 2017-12-14 | 2021-07-13 | Palantir Technologies Inc. | Systems and methods for resolving entity data across various data structures |
US11074277B1 (en) | 2017-05-01 | 2021-07-27 | Palantir Technologies Inc. | Secure resolution of canonical entities |
US11106692B1 (en) | 2016-08-04 | 2021-08-31 | Palantir Technologies Inc. | Data record resolution and correlation system |
US11210610B2 (en) | 2011-10-26 | 2021-12-28 | Box, Inc. | Enhanced multimedia content preview rendering in a cloud content management system |
US11232481B2 (en) | 2012-01-30 | 2022-01-25 | Box, Inc. | Extended applications of multimedia content previews in the cloud-based content management system |
US11243849B2 (en) | 2012-12-27 | 2022-02-08 | Commvault Systems, Inc. | Restoration of centralized data storage manager, such as data storage manager in a hierarchical data storage system |
US12124465B2 (en) | 2015-09-04 | 2024-10-22 | Palantir Technologies Inc. | Systems and methods for database investigation tool |
Families Citing this family (96)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7197541B1 (en) * | 2001-06-18 | 2007-03-27 | Palm, Inc. | Method and apparatus for automated personality transfer for a wireless enabled handheld device |
US20050120084A1 (en) * | 2003-10-28 | 2005-06-02 | Yu Hu | Method of and system for creating, maintaining, and utilizing an online universal address book |
US7389324B2 (en) | 2003-11-07 | 2008-06-17 | Plaxo, Inc. | Viral engine for network deployment |
US7080104B2 (en) * | 2003-11-07 | 2006-07-18 | Plaxo, Inc. | Synchronization and merge engines |
US20050204007A1 (en) * | 2004-03-12 | 2005-09-15 | International Business Machines Corporation | Apparatus method and system for automatically populating an interactive messaging contact list |
US20050257206A1 (en) * | 2004-05-14 | 2005-11-17 | Semerdzhiev Krasimir P | Pair-update mechanism for update module |
US20060184584A1 (en) * | 2005-02-11 | 2006-08-17 | Microsoft Corporation | Contact merge auto-suggest |
US7502606B2 (en) * | 2005-04-11 | 2009-03-10 | Microsoft Corporation | Computer-readable medium, method, and device for associating information with a contact |
US7734732B2 (en) * | 2005-05-12 | 2010-06-08 | At&T Mobility Ii Llc | System, apparatus and methods for storing links to media files in network storage |
US9400846B2 (en) * | 2005-11-14 | 2016-07-26 | Oracle Otc Subsidiary Llc | Method and system for managing information in an on-line community |
US7788296B2 (en) * | 2005-12-29 | 2010-08-31 | Guidewire Software, Inc. | Method and apparatus for managing a computer-based address book for incident-related work |
US8676703B2 (en) | 2006-04-27 | 2014-03-18 | Guidewire Software, Inc. | Insurance policy revisioning method and apparatus |
US7756821B2 (en) * | 2006-11-02 | 2010-07-13 | Microsoft Corporation | Virtual deletion in merged file system directories |
US7574444B2 (en) * | 2006-11-15 | 2009-08-11 | Palm, Inc. | Device-side data de-duping |
US20080133543A1 (en) * | 2006-12-01 | 2008-06-05 | General Instrument Corporation | System and Method for Dynamic and On-Demand Data Transfer and Synchronization Between Isolated Networks |
JP5138970B2 (en) * | 2006-12-20 | 2013-02-06 | リプレックス株式会社 | System, server, information terminal, operating system, middleware, information communication device, authentication method, system, and application software |
US20080183813A1 (en) * | 2007-01-26 | 2008-07-31 | Hjcv Llc | Mechanism for entering, storing, pairing and providing user-defined and contact-defined contact information |
US20080219427A1 (en) * | 2007-03-09 | 2008-09-11 | Naono Norihiko | Information terminal, server and communication method and method for selecting a communication service |
US20080222543A1 (en) * | 2007-03-09 | 2008-09-11 | Naono Norihiko | Information terminal, server and information processing method |
US20090077118A1 (en) * | 2007-03-16 | 2009-03-19 | Novell, Inc. | Information card federation point tracking and management |
WO2008122404A1 (en) * | 2007-04-05 | 2008-10-16 | Hiflex Software Gesmbh | Method for inserting a contact |
US7853560B1 (en) * | 2007-04-16 | 2010-12-14 | Cellco Partnership | Methods for address book synchronization and subscription status notification |
US9325682B2 (en) | 2007-04-16 | 2016-04-26 | Tailstream Technologies, Llc | System for interactive matrix manipulation control of streamed data and media |
US11625457B2 (en) | 2007-04-16 | 2023-04-11 | Tailstream Technologies, Llc | System for interactive matrix manipulation control of streamed data |
US20080319983A1 (en) * | 2007-04-20 | 2008-12-25 | Robert Meadows | Method and apparatus for identifying and resolving conflicting data records |
US20080288462A1 (en) * | 2007-05-16 | 2008-11-20 | Naono Norihiko | Database system and display method on information terminal |
US20080292080A1 (en) * | 2007-05-22 | 2008-11-27 | Colin Shong Chin Quon | System and method for adding and associating users on contact addressbook |
JP2008312048A (en) * | 2007-06-15 | 2008-12-25 | Ripplex Inc | Authentication method for information terminals |
JP2009003690A (en) * | 2007-06-21 | 2009-01-08 | Ripplex Inc | System, server and information terminal |
JP2009005202A (en) * | 2007-06-25 | 2009-01-08 | Ripplex Inc | Information exchange device |
US20090064006A1 (en) * | 2007-08-30 | 2009-03-05 | Indran Naick | Techniques for Performing Tasks Associated with Custom Folder Controls |
US8799595B1 (en) * | 2007-08-30 | 2014-08-05 | American Megatrends, Inc. | Eliminating duplicate data in storage systems with boot consolidation |
US20090100134A1 (en) * | 2007-10-12 | 2009-04-16 | Sony Ericsson Mobile Communications Ab | System and Method for Customized Sharing of Multimedia Content in a Communications Network |
CN101426017B (en) * | 2007-11-01 | 2012-06-27 | 华为技术有限公司 | Address book processing method and system |
US20090138475A1 (en) * | 2007-11-27 | 2009-05-28 | Hjcv Llc | Method for creating a web-based contact book which includes multi-sourced contact-generated content (from social networks) in a custom and private stand-alone contact book with information selectively pulled from multiple outside sources, including multiple social networks, via a unique combination of a user decision node and a main and subordinated data tables structure, yielding no explicit or implicit source level value judgments or biases |
JP2009157737A (en) * | 2007-12-27 | 2009-07-16 | Ripplex Inc | Server device and information terminal device for information sharing |
US7984019B2 (en) * | 2007-12-28 | 2011-07-19 | Knowledge Computing Corporation | Method and apparatus for loading data files into a data-warehouse system |
US9063993B2 (en) * | 2008-01-31 | 2015-06-23 | Microsoft Technology Licensing, Llc | Coexistence tools for synchronizing properties between on-premises customer locations and remote hosting services |
US20090203389A1 (en) * | 2008-02-07 | 2009-08-13 | Syncplanet Llc | Systems and methods for synchronizing information using short message services and email services |
US7996357B2 (en) | 2008-02-29 | 2011-08-09 | Plaxo, Inc. | Enabling synchronization with a difference unaware data source |
US20090248480A1 (en) * | 2008-03-31 | 2009-10-01 | Jan Thomas Miksovsky | Controlled synchronization between a group calendar and individual work calendars |
US8799429B1 (en) | 2008-05-06 | 2014-08-05 | American Megatrends, Inc. | Boot acceleration by consolidating client-specific boot data in a data storage system |
CA2665601C (en) * | 2008-05-12 | 2013-07-16 | Research In Motion Limited | Electronic device and method for managing storage of data |
US8775327B2 (en) * | 2008-07-03 | 2014-07-08 | Oracle International Corporation | Combined directory of personal and enterprise application system data |
JP2010026936A (en) * | 2008-07-23 | 2010-02-04 | Ripplex Inc | Terminal device and system for searching personal information |
US20100161737A1 (en) * | 2008-12-23 | 2010-06-24 | Microsoft Corporation | Techniques to manage electronic mail personal archives |
US7849206B2 (en) * | 2009-01-13 | 2010-12-07 | Microsoft Corporation | Service for policy rule specification evaluation and enforcement on multiple communication modes |
US8301662B2 (en) * | 2009-03-31 | 2012-10-30 | Microsoft Corporation | Sub-mailbox folder hierarchy to represent a separate physical mailbox to a user |
GB0906004D0 (en) * | 2009-04-07 | 2009-05-20 | Omnifone Ltd | MusicStation desktop |
US20100262550A1 (en) * | 2009-04-08 | 2010-10-14 | Avaya Inc. | Inter-corporate collaboration overlay solution for professional social networks |
US8321263B2 (en) * | 2009-04-17 | 2012-11-27 | Hartford Fire Insurance Company | Processing and display of service provider performance data |
US8650498B1 (en) | 2009-05-04 | 2014-02-11 | SugarSync, Inc. | User interface for managing and viewing synchronization settings in a synchronization system |
NO330630B1 (en) * | 2009-07-01 | 2011-05-30 | Tandberg Telecom As | System and procedure for making a call using a global register |
US8385321B2 (en) * | 2009-07-31 | 2013-02-26 | Alcatel Lucent | Method and system for synchronizing a data base at a plurality of nodes in an ad hoc network |
US9277021B2 (en) * | 2009-08-21 | 2016-03-01 | Avaya Inc. | Sending a user associated telecommunication address |
US11080790B2 (en) | 2009-09-24 | 2021-08-03 | Guidewire Software, Inc. | Method and apparatus for managing revisions and tracking of insurance policy elements |
US20110082896A1 (en) * | 2009-10-07 | 2011-04-07 | At&T Intellectual Property I, L.P. | Dynamically Updated Web-Enabled and Embedded Contact Address in Communication Devices |
US8473472B2 (en) * | 2009-12-15 | 2013-06-25 | At & T Intellectual Property I, L.P. | Footprint tracking of contacts |
US9794404B2 (en) * | 2010-01-14 | 2017-10-17 | Avaya Inc. | Universal contact manager |
JP5002675B2 (en) * | 2010-04-26 | 2012-08-15 | 株式会社東芝 | Server apparatus, communication system, and control method used in server apparatus |
US20110282833A1 (en) * | 2010-05-11 | 2011-11-17 | Salesforce.Com, Inc. | Providing administrative capabilities in a multi-tenant database environment |
EP2572277A1 (en) * | 2010-05-19 | 2013-03-27 | Hughes Systique India Private Limited | Method and system for efficient inter- process communication in a high availability system |
US8429137B2 (en) * | 2010-09-02 | 2013-04-23 | Federal Express Corporation | Enterprise data duplication identification |
KR20120107022A (en) * | 2011-03-14 | 2012-09-28 | 삼성전자주식회사 | Method and apparatus for synchronizing personal information |
US9489325B2 (en) * | 2011-04-28 | 2016-11-08 | Sandeep Jain | Method and a system for polling and processing data |
US9419805B2 (en) * | 2011-07-25 | 2016-08-16 | Red Hat, Inc. | Generating a CRL using a sub-system having resources separate from a main certificate authority sub-system |
US8745144B2 (en) * | 2011-09-28 | 2014-06-03 | Microsoft Corporation | Persisting contact information in mailbox |
CN103067427A (en) * | 2011-10-21 | 2013-04-24 | 腾讯科技(深圳)有限公司 | Contact data synchronization method, terminal and Social Network Site (SNS) network friends management module |
US8799487B2 (en) | 2011-11-03 | 2014-08-05 | Microsoft Corporation | Build a person object from multiple contacts |
US9239611B2 (en) | 2011-12-05 | 2016-01-19 | Intel Corporation | Method, apparatus, and system for energy efficiency and energy conservation including balancing power among multi-frequency domains of a processor based on efficiency rating scheme |
US9286578B2 (en) * | 2011-12-23 | 2016-03-15 | Sap Se | Determination of a most suitable address for a master data object instance |
US8930363B2 (en) | 2011-12-23 | 2015-01-06 | Sap Se | Efficient handling of address data in business transaction documents |
CN103365843B (en) * | 2012-03-26 | 2017-05-24 | 联想(北京)有限公司 | Electronic equipment and information processing method thereof |
CN102857637B (en) * | 2012-09-03 | 2016-03-23 | 小米科技有限责任公司 | A kind of associated person information acquisition methods, system and device |
US9176828B2 (en) * | 2012-09-04 | 2015-11-03 | Opshub, Inc. | System and method for merging results from multiple runs based on run inputs |
CN102984357B (en) * | 2012-11-08 | 2014-06-04 | 广东欧珀移动通信有限公司 | Contact person information managing method and managing device |
US9544177B2 (en) * | 2013-01-17 | 2017-01-10 | Riva Fzc | System and method for contact merge management |
WO2014130524A1 (en) | 2013-02-19 | 2014-08-28 | Barry Gold | Permission-based updating of contact information |
US10356098B2 (en) | 2013-02-19 | 2019-07-16 | Barry Gold | Systematic enhancement of contact information |
US20140279870A1 (en) * | 2013-03-12 | 2014-09-18 | Samsung Electronics Co. Ltd. | Method and apparatus for synchronizing shared data in mobile terminal and server |
US20140279866A1 (en) * | 2013-03-13 | 2014-09-18 | Lizzabeth Brown | Contact data engine |
US9479490B2 (en) | 2013-06-07 | 2016-10-25 | Apple Inc. | Methods and systems for single sign-on while protecting user privacy |
US9274828B2 (en) | 2013-11-03 | 2016-03-01 | Maestrano Pty Ltd. | Systems and methods for event driven object management and distribution among multiple client applications |
US9288283B2 (en) | 2013-12-04 | 2016-03-15 | Dropbox, Inc. | Systems and methods for managing shared content based on sharing profiles |
WO2015096849A1 (en) | 2013-12-23 | 2015-07-02 | Telefonaktiebolaget L M Ericsson (Publ) | Data change controller |
US10264113B2 (en) | 2014-01-10 | 2019-04-16 | Onepin, Inc. | Automated messaging |
US10298740B2 (en) | 2014-01-10 | 2019-05-21 | Onepin, Inc. | Automated messaging |
US9424102B2 (en) | 2014-05-14 | 2016-08-23 | International Business Machines Corporation | Task grouping by context |
FR3021774B1 (en) | 2014-05-28 | 2017-02-24 | Preezms | METHOD FOR AUTOMATICALLY PROCESSING THE UPDATING OF A DATABASE |
KR101582174B1 (en) * | 2014-08-06 | 2016-01-05 | 코나에스 주식회사 | Method for sharing information and apparatus for performing the method |
US20160063054A1 (en) * | 2014-08-26 | 2016-03-03 | Scott Thompson | Method and system for crowd sourced contact database management |
US9178942B1 (en) * | 2014-10-17 | 2015-11-03 | ConnectID Limited | Systems and methods for updating native contact information |
US10548038B2 (en) | 2015-03-09 | 2020-01-28 | Onepin, Inc. | Automatic event-based network monitoring |
US10475069B2 (en) | 2015-05-04 | 2019-11-12 | Onepin, Inc. | Automatic aftercall directory and phonebook entry advertising |
US9300737B1 (en) * | 2015-06-02 | 2016-03-29 | Mylio, LLC | Object replication using object device links and flags |
CN110609837B (en) * | 2019-09-09 | 2021-05-11 | 上海赛连信息科技有限公司 | Method and device for dynamically establishing enterprise address book |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6162499A (en) * | 1996-06-24 | 2000-12-19 | Micron Technology, Inc. | Method of inhibiting deposition of material on an internal wall of a chemical vapor deposition reactor |
US6324587B1 (en) * | 1997-12-23 | 2001-11-27 | Microsoft Corporation | Method, computer program product, and data structure for publishing a data object over a store and forward transport |
US6393421B1 (en) * | 1998-09-18 | 2002-05-21 | Neriel Paglin | Communication method and system utilizing a specific communication code uniquely assigned to the data record |
US20020099719A1 (en) * | 1999-09-28 | 2002-07-25 | Chad A. Schwitters | Architecture for a hierchical folder structure in hand-held computers |
US6701348B2 (en) * | 2000-12-22 | 2004-03-02 | Goodcontacts.Com | Method and system for automatically updating contact information within a contact database |
Family Cites Families (92)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5263158A (en) | 1990-02-15 | 1993-11-16 | International Business Machines Corporation | Method and system for variable authority level user access control in a distributed data processing system having multiple resource manager |
US5245656A (en) | 1992-09-09 | 1993-09-14 | Bell Communications Research, Inc. | Security method for private information delivery and filtering in public networks |
WO1994017481A1 (en) | 1993-01-22 | 1994-08-04 | Taligent, Inc. | Business card system |
US5754306A (en) | 1993-06-15 | 1998-05-19 | Hewlett-Packard Company | System and method for a communication system |
US5493105A (en) | 1994-04-19 | 1996-02-20 | Desai; Nimesh R. | Electronic business card system |
US6029195A (en) | 1994-11-29 | 2000-02-22 | Herz; Frederick S. M. | System for customized electronic identification of desirable objects |
US5758257A (en) | 1994-11-29 | 1998-05-26 | Herz; Frederick | System and method for scheduling broadcast of and access to video programs and other data using customer profiles |
US5937162A (en) | 1995-04-06 | 1999-08-10 | Exactis.Com, Inc. | Method and apparatus for high volume e-mail delivery |
US6112186A (en) | 1995-06-30 | 2000-08-29 | Microsoft Corporation | Distributed system for facilitating exchange of user information and opinion using automated collaborative filtering |
US5717863A (en) | 1995-09-27 | 1998-02-10 | Intel Corporation | Method and apparatus for managing pc conference connection addresses |
US5774117A (en) | 1995-09-29 | 1998-06-30 | Intel Corporation | Method and apparatus for exchanging electronic business cards in a point-to-point or a multi-point personal computer conference |
US5742763A (en) * | 1995-12-29 | 1998-04-21 | At&T Corp. | Universal message delivery system for handles identifying network presences |
US5802510A (en) * | 1995-12-29 | 1998-09-01 | At&T Corp | Universal directory service |
US5832221A (en) * | 1995-12-29 | 1998-11-03 | At&T Corp | Universal message storage system |
US6233623B1 (en) | 1996-01-11 | 2001-05-15 | Cabletron Systems, Inc. | Replicated resource management system for managing resources in a distributed application and maintaining a relativistic view of state |
US6047327A (en) | 1996-02-16 | 2000-04-04 | Intel Corporation | System for distributing electronic information to a targeted group of users |
US5948054A (en) | 1996-02-27 | 1999-09-07 | Sun Microsystems, Inc. | Method and system for facilitating the exchange of information between human users in a networked computer system |
US6405243B1 (en) | 1996-04-05 | 2002-06-11 | Sun Microsystems, Inc. | Method and system for updating email addresses |
IL119364A (en) | 1996-10-06 | 2000-11-21 | Icq Inc | Communications system |
US6085192A (en) | 1997-04-11 | 2000-07-04 | Roampage, Inc. | System and method for securely synchronizing multiple copies of a workspace element in a network |
US5732218A (en) | 1997-01-02 | 1998-03-24 | Lucent Technologies Inc. | Management-data-gathering system for gathering on clients and servers data regarding interactions between the servers, the clients, and users of the clients during real use of a network of clients and servers |
US6175831B1 (en) | 1997-01-17 | 2001-01-16 | Six Degrees, Inc. | Method and apparatus for constructing a networking database and system |
US6778651B1 (en) * | 1997-04-03 | 2004-08-17 | Southwestern Bell Telephone Company | Apparatus and method for facilitating service management of communications services in a communications network |
US6405111B2 (en) * | 1997-05-16 | 2002-06-11 | Snap-On Technologies, Inc. | System and method for distributed computer automotive service equipment |
US6269369B1 (en) | 1997-11-02 | 2001-07-31 | Amazon.Com Holdings, Inc. | Networked personal contact manager |
US6073141A (en) | 1997-11-25 | 2000-06-06 | International Business Machine Corporation | System and method for synchronizing local versions of database |
US6151606A (en) | 1998-01-16 | 2000-11-21 | Visto Corporation | System and method for using a workspace data manager to access, manipulate and synchronize network data |
US5960406A (en) | 1998-01-22 | 1999-09-28 | Ecal, Corp. | Scheduling system for use between users on the web |
US6247043B1 (en) | 1998-06-11 | 2001-06-12 | International Business Machines Corporation | Apparatus, program products and methods utilizing intelligent contact management |
NL1009376C1 (en) | 1998-06-11 | 1998-07-06 | Boardwalk Ag | Data system for providing relationship patterns between people. |
JP3654773B2 (en) | 1998-07-08 | 2005-06-02 | 富士通株式会社 | Information exchange method, information management distribution device, information management device, information distribution device, computer readable recording medium recording information management distribution program, computer readable recording medium recording information management program, and information distribution program Computer-readable recording medium |
AU5881699A (en) | 1998-09-18 | 2000-04-10 | Neriel Paglin | Communication method and system utilizing a specific communication code |
US6253202B1 (en) | 1998-09-18 | 2001-06-26 | Tacit Knowledge Systems, Inc. | Method, system and apparatus for authorizing access by a first user to a knowledge profile of a second user responsive to an access request from the first user |
US6131096A (en) | 1998-10-05 | 2000-10-10 | Visto Corporation | System and method for updating a remote database in a network |
WO2000022551A1 (en) | 1998-10-13 | 2000-04-20 | Chris Cheah | Method and system for controlled distribution of information over a network |
US7003546B1 (en) | 1998-10-13 | 2006-02-21 | Chris Cheah | Method and system for controlled distribution of contact information over a network |
US6571281B1 (en) | 1998-12-22 | 2003-05-27 | Xerox Corporation | Information sharing system for personal electronic time management systems |
US6883000B1 (en) | 1999-02-12 | 2005-04-19 | Robert L. Gropper | Business card and contact management system |
US6820204B1 (en) | 1999-03-31 | 2004-11-16 | Nimesh Desai | System and method for selective information exchange |
US6654779B1 (en) | 1999-04-14 | 2003-11-25 | First Data Resources | System and method for electronic mail (e-mail) address management |
AU4821000A (en) | 1999-05-05 | 2000-11-17 | Contact Networks, Inc. | Method and apparatus for publishing and synchronizing selected user information over a network |
US20030069874A1 (en) | 1999-05-05 | 2003-04-10 | Eyal Hertzog | Method and system to automate the updating of personal information within a personal information management application and to synchronize such updated personal information management applications |
WO2001006497A2 (en) | 1999-07-20 | 2001-01-25 | Freshaddress, Inc. | Electronic identifier storage and retrieval system |
US6829348B1 (en) | 1999-07-30 | 2004-12-07 | Convergys Cmg Utah, Inc. | System for customer contact information management and methods for using same |
US6760727B1 (en) | 1999-07-30 | 2004-07-06 | Convergys Cmg Utah, Inc. | System for customer contact information management and methods for using same |
US6360221B1 (en) * | 1999-09-21 | 2002-03-19 | Neostar, Inc. | Method and apparatus for the production, delivery, and receipt of enhanced e-mail |
US6636897B1 (en) * | 1999-09-28 | 2003-10-21 | Microsoft Corporation | Selective information subset synchronization based on single user action |
US6529724B1 (en) | 1999-10-26 | 2003-03-04 | Qualcomm Incorporated | System and method for managing contact information based on use of a communications device |
AU1104501A (en) | 1999-10-29 | 2001-05-14 | Contact Networks, Inc. | Method and system for updating user information maintained by another user system |
US7016977B1 (en) * | 1999-11-05 | 2006-03-21 | International Business Machines Corporation | Method and system for multilingual web server |
US20020055351A1 (en) | 1999-11-12 | 2002-05-09 | Elsey Nicholas J. | Technique for providing personalized information and communications services |
US6845448B1 (en) | 2000-01-07 | 2005-01-18 | Pennar Software Corporation | Online repository for personal information |
US6957229B1 (en) | 2000-01-10 | 2005-10-18 | Matthew Graham Dyor | System and method for managing personal information |
US7017109B1 (en) | 2000-02-18 | 2006-03-21 | Hewlett-Packard Development Company, L.P. | E-service to manage contact information and signature ECards |
US6633311B1 (en) | 2000-02-18 | 2003-10-14 | Hewlett-Packard Company, L.P. | E-service to manage and export contact information |
JP2001331362A (en) * | 2000-03-17 | 2001-11-30 | Sony Corp | File conversion method, data converter and file display system |
US6944651B2 (en) | 2000-05-19 | 2005-09-13 | Fusionone, Inc. | Single click synchronization of data from a public information store to a private information store |
US20020016857A1 (en) | 2000-06-20 | 2002-02-07 | Adi Harari | Address contact information retrieval, synchronization, and storage system |
US7007068B2 (en) | 2000-06-27 | 2006-02-28 | Peoplestreet | Systems and methods for managing contact information |
GB0016822D0 (en) * | 2000-07-07 | 2000-08-30 | Global Freight Exchange Limite | Method computer system and computer system network for data management |
US6536813B2 (en) * | 2000-07-10 | 2003-03-25 | Asyst Technologies, Inc. | SMIF container latch mechanism |
US20020049751A1 (en) | 2000-09-01 | 2002-04-25 | Mei-Na Chen | Managing contact information through a communication network |
US6959324B1 (en) | 2000-09-28 | 2005-10-25 | International Business Machines Corporation | Method and apparatus for adding data attributes to e-mail messages to enhance the analysis of delivery failures |
US20020042846A1 (en) * | 2000-10-05 | 2002-04-11 | Bottan Gustavo L. | Personal support network |
WO2002031624A2 (en) * | 2000-10-10 | 2002-04-18 | Upoc, Inc. | A personal message delivery system |
US8321459B2 (en) | 2000-10-11 | 2012-11-27 | Peter Pekarek-Kostka | Method and system for facilitating access to always current contact information |
US7360080B2 (en) | 2000-11-03 | 2008-04-15 | International Business Machines Corporation | Non-transferable anonymous credential system with optional anonymity revocation |
US20020076015A1 (en) | 2000-12-15 | 2002-06-20 | Norwitz Grant N. | Comprehensive message communication system |
US20020094870A1 (en) * | 2000-12-21 | 2002-07-18 | Murray Kenneth C. | Database driven electronic game |
US6694353B2 (en) | 2001-03-28 | 2004-02-17 | Good Contacts.Com | Method and system for automatically updating electronic mail address information within an electronic mail address database |
US7010599B2 (en) | 2001-05-21 | 2006-03-07 | Sridhar Shrinivasan | System using access information set by a user to allow another user to access updated portion of contact and personal information of the user |
US6912549B2 (en) * | 2001-09-05 | 2005-06-28 | Siemens Medical Solutions Health Services Corporation | System for processing and consolidating records |
EP1442411A4 (en) | 2001-09-30 | 2006-02-01 | Realcontacts Ltd | Connection service |
JP2005509979A (en) * | 2001-11-15 | 2005-04-14 | ヴィスト・コーポレーション | Asynchronous synchronization system and method |
CA2365441C (en) | 2001-12-19 | 2010-02-16 | Diversinet Corp. | Method of establishing secure communications in a digital network using pseudonymic digital identifiers |
US7228335B2 (en) | 2002-02-19 | 2007-06-05 | Goodcontacts Research Ltd. | Method of automatically populating contact information fields for a new contract added to an electronic contact database |
WO2003081483A1 (en) * | 2002-03-18 | 2003-10-02 | Daniel Rex Greening | Community directory |
US6721871B2 (en) * | 2002-04-02 | 2004-04-13 | Nokia Corporation | Method and apparatus for synchronizing data stores with respect to changes in folders |
US7698146B2 (en) * | 2002-04-24 | 2010-04-13 | Volt Information Sciences Inc. | System and method for collecting and providing resource rate information using resource profiling |
US7177859B2 (en) | 2002-06-26 | 2007-02-13 | Microsoft Corporation | Programming model for subscription services |
US20040093317A1 (en) | 2002-11-07 | 2004-05-13 | Swan Joseph G. | Automated contact information sharing |
US20040193691A1 (en) * | 2003-03-31 | 2004-09-30 | Chang William I. | System and method for providing an open eMail directory |
US8606860B2 (en) * | 2003-03-31 | 2013-12-10 | Affini, Inc. | System and method for providing filtering email messages |
US7069308B2 (en) | 2003-06-16 | 2006-06-27 | Friendster, Inc. | System, method and apparatus for connecting users in an online computer system based on their relationships within social networks |
US20050114447A1 (en) | 2003-10-24 | 2005-05-26 | Kim Cameron | Method and system for identity exchange and recognition for groups and group members |
US7080104B2 (en) | 2003-11-07 | 2006-07-18 | Plaxo, Inc. | Synchronization and merge engines |
US7389324B2 (en) * | 2003-11-07 | 2008-06-17 | Plaxo, Inc. | Viral engine for network deployment |
US7778640B2 (en) * | 2004-06-25 | 2010-08-17 | Lg Electronics Inc. | Method of communicating data in a wireless mobile communication system |
US8302164B2 (en) | 2004-07-22 | 2012-10-30 | Facebook, Inc. | Authorization and authentication based on an individual's social network |
CN101534498B (en) * | 2008-03-11 | 2010-09-22 | 中国移动通信集团公司 | A method for realizing international roaming, a roaming processing device and a communication system |
EP2259551A1 (en) * | 2009-06-05 | 2010-12-08 | Software AG | Gateway server system comprising a gateway server for making SOAP/XML-based web services accessible to RPC clients |
GB0919996D0 (en) * | 2009-11-16 | 2009-12-30 | Vodafone Plc | Core network update |
-
2003
- 2003-11-07 US US10/703,949 patent/US7080104B2/en not_active Expired - Lifetime
-
2004
- 2004-11-08 KR KR1020087000661A patent/KR20080011242A/en not_active Abandoned
- 2004-11-08 CA CA2544837A patent/CA2544837C/en not_active Expired - Lifetime
- 2004-11-08 CA CA2809154A patent/CA2809154C/en not_active Expired - Lifetime
- 2004-11-08 KR KR1020067011152A patent/KR20060108704A/en not_active Abandoned
- 2004-11-08 CN CN2004800374837A patent/CN101189603B/en not_active Expired - Fee Related
- 2004-11-08 EP EP11187946A patent/EP2423838A1/en not_active Ceased
- 2004-11-08 CA CA2809158A patent/CA2809158C/en not_active Expired - Lifetime
- 2004-11-08 EP EP10184855A patent/EP2315133A3/en not_active Ceased
- 2004-11-08 BR BRPI0416110-6A patent/BRPI0416110A/en not_active IP Right Cessation
- 2004-11-08 AU AU2004290419A patent/AU2004290419B2/en not_active Ceased
- 2004-11-08 EP EP04810682A patent/EP1682989A4/en not_active Ceased
- 2004-11-08 WO PCT/US2004/037539 patent/WO2005048071A2/en active Application Filing
- 2004-11-08 JP JP2006538552A patent/JP4688813B2/en not_active Expired - Fee Related
-
2006
- 2006-06-30 US US11/428,295 patent/US7774368B2/en active Active
-
2010
- 2010-06-29 US US12/825,712 patent/US8032559B2/en not_active Expired - Lifetime
-
2011
- 2011-09-29 US US13/248,612 patent/US8271535B2/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6162499A (en) * | 1996-06-24 | 2000-12-19 | Micron Technology, Inc. | Method of inhibiting deposition of material on an internal wall of a chemical vapor deposition reactor |
US6324587B1 (en) * | 1997-12-23 | 2001-11-27 | Microsoft Corporation | Method, computer program product, and data structure for publishing a data object over a store and forward transport |
US6393421B1 (en) * | 1998-09-18 | 2002-05-21 | Neriel Paglin | Communication method and system utilizing a specific communication code uniquely assigned to the data record |
US20020099719A1 (en) * | 1999-09-28 | 2002-07-25 | Chad A. Schwitters | Architecture for a hierchical folder structure in hand-held computers |
US6701348B2 (en) * | 2000-12-22 | 2004-03-02 | Goodcontacts.Com | Method and system for automatically updating contact information within a contact database |
Cited By (422)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7769366B2 (en) | 1998-10-01 | 2010-08-03 | Onepin, Llc | Wireless data exchange |
US20090227243A1 (en) * | 1998-10-01 | 2009-09-10 | Feyzi Celik | Wireless data exchange |
US20090119339A1 (en) * | 1998-10-01 | 2009-05-07 | Feyzi Celik | Phone to phone data exchange |
US20040236792A1 (en) * | 1998-10-01 | 2004-11-25 | Feyzi Celik | Method and apparatus for storing and retrieving business contact information in a computer system |
US20090197579A1 (en) * | 1998-10-01 | 2009-08-06 | Feyzi Celik | Wireless data exchange |
US8818336B2 (en) | 1998-10-01 | 2014-08-26 | Lupine Investments Llc | Phone to phone data exchange |
US20060212482A1 (en) * | 1998-10-01 | 2006-09-21 | Feyzi Celik | Wireless data exchange |
US7970792B2 (en) | 1998-10-01 | 2011-06-28 | Onepin, Inc. | Phone to phone data exchange |
US7769367B2 (en) | 1998-10-01 | 2010-08-03 | One Pin, LLC | Wireless data exchange |
US20090227289A1 (en) * | 1998-10-01 | 2009-09-10 | Feyzi Celik | Wireless data exchange |
US20050149487A1 (en) * | 1998-10-01 | 2005-07-07 | Feyzi Celik | Method and apparatus for storing and retrieving business contact information in a computer system |
US8005507B2 (en) | 1998-10-01 | 2011-08-23 | Onepin, Inc. | Phone to phone data exchange |
US20070021111A1 (en) * | 1998-10-01 | 2007-01-25 | Feyzi Celik | Phone to phone data exchange |
US7769368B2 (en) | 1998-10-01 | 2010-08-03 | One Pin, LLC | Wireless data exchange |
US20100255822A1 (en) * | 1998-10-01 | 2010-10-07 | Feyzi Celik | Phone to phone data exchange |
US8326361B2 (en) | 1998-10-01 | 2012-12-04 | Lupine Investments Llc | Phone to phone data exchange |
US7509349B2 (en) | 1998-10-01 | 2009-03-24 | Onepin, Inc. | Method and apparatus for storing and retrieving business contact information in a computer system |
US7296036B2 (en) | 1998-10-01 | 2007-11-13 | Onepin, Inc. | Method and apparatus for storing and retrieving business contact information in a computer system |
US20080015998A1 (en) * | 1998-10-01 | 2008-01-17 | Feyzi Celik | Method and Apparatus for Storing and Retrieving Business Contact Information in a Computer System |
US7813725B2 (en) | 1998-10-01 | 2010-10-12 | Onepin, Llc | Wireless data exchange |
US7349907B2 (en) | 1998-10-01 | 2008-03-25 | Onepin, Inc. | Method and apparatus for storing and retrieving business contact information in a computer system |
US7836011B2 (en) | 1998-10-01 | 2010-11-16 | Onepin, Inc. | Phone to phone data exchange |
US8621025B2 (en) | 2000-01-25 | 2013-12-31 | Synchronoss Technologis, Inc. | Mobile data transfer and synchronization system |
US8315976B2 (en) | 2000-01-26 | 2012-11-20 | Synchronoss Technologies, Inc. | Data transfer and synchronization system |
US8156074B1 (en) | 2000-01-26 | 2012-04-10 | Synchronoss Technologies, Inc. | Data transfer and synchronization system |
US8442943B2 (en) | 2000-01-26 | 2013-05-14 | Synchronoss Technologies, Inc. | Data transfer and synchronization between mobile systems using change log |
US10606960B2 (en) | 2001-10-11 | 2020-03-31 | Ebay Inc. | System and method to facilitate translation of communications between entities over a network |
US8127342B2 (en) | 2002-01-08 | 2012-02-28 | Seven Networks, Inc. | Secure end-to-end transport through intermediary nodes |
US8549587B2 (en) | 2002-01-08 | 2013-10-01 | Seven Networks, Inc. | Secure end-to-end transport through intermediary nodes |
US8811952B2 (en) | 2002-01-08 | 2014-08-19 | Seven Networks, Inc. | Mobile device power management in data synchronization over a mobile network with or without a trigger notification |
US8989728B2 (en) | 2002-01-08 | 2015-03-24 | Seven Networks, Inc. | Connection architecture for a mobile network |
US9092792B2 (en) | 2002-06-10 | 2015-07-28 | Ebay Inc. | Customizing an application |
US10915946B2 (en) | 2002-06-10 | 2021-02-09 | Ebay Inc. | System, method, and medium for propagating a plurality of listings to geographically targeted websites using a single data source |
US10062104B2 (en) | 2002-06-10 | 2018-08-28 | Ebay Inc. | Customizing an application |
US9251193B2 (en) | 2003-01-08 | 2016-02-02 | Seven Networks, Llc | Extending user relationships |
US8645471B2 (en) | 2003-07-21 | 2014-02-04 | Synchronoss Technologies, Inc. | Device message management system |
US9723460B1 (en) | 2003-07-21 | 2017-08-01 | Synchronoss Technologies, Inc. | Device message management system |
US9615221B1 (en) | 2003-07-21 | 2017-04-04 | Synchronoss Technologies, Inc. | Device message management system |
US7634509B2 (en) | 2003-11-07 | 2009-12-15 | Fusionone, Inc. | Personal information space management system and method |
US20090083340A1 (en) * | 2003-12-29 | 2009-03-26 | Oracle International Corporation | Customizable metadata merging framework |
US20050149583A1 (en) * | 2003-12-29 | 2005-07-07 | Rajagopal Baskaran | Customizable metadata merging framework |
US7469262B2 (en) * | 2003-12-29 | 2008-12-23 | Oracle International Corporation | Customizable metadata merging framework |
US8103641B2 (en) | 2003-12-29 | 2012-01-24 | Oracle International Corporation | Customizable metadata merging framework |
US10264095B2 (en) * | 2004-01-29 | 2019-04-16 | Excalibur Ip, Llc | Control for inviting an unauthenticated user to gain access to display of content that is otherwise accessible with an authentication mechanism |
US20140067980A1 (en) * | 2004-01-29 | 2014-03-06 | Yahoo! Inc. | Control for inviting an unaythenticated user to gain access to display of content that is otherwise accessible with an authentication mechanism |
US8386558B2 (en) * | 2004-02-04 | 2013-02-26 | Microsoft Corporation | Cross-pollination synchronization of data |
US20060020804A1 (en) * | 2004-02-04 | 2006-01-26 | Microsoft Corporation | Cross-pollination synchronization of data |
US9292585B2 (en) | 2004-02-04 | 2016-03-22 | Microsoft Technology Licensing, Llc | Cross-pollination synchronization of data |
US8620286B2 (en) | 2004-02-27 | 2013-12-31 | Synchronoss Technologies, Inc. | Method and system for promoting and transferring licensed content and applications |
US7643824B2 (en) | 2004-02-27 | 2010-01-05 | Cooligy Inc | Wireless telephone data backup system |
US20080155122A1 (en) * | 2004-04-30 | 2008-06-26 | Microsoft Corporation | Detecting low fidelity sync data |
US8019898B2 (en) * | 2004-04-30 | 2011-09-13 | Microsoft Corporation | Detecting low fidelity sync data |
US8611873B2 (en) | 2004-05-12 | 2013-12-17 | Synchronoss Technologies, Inc. | Advanced contact identification system |
US9542076B1 (en) | 2004-05-12 | 2017-01-10 | Synchronoss Technologies, Inc. | System for and method of updating a personal profile |
US20060069727A1 (en) * | 2004-08-25 | 2006-03-30 | Microsoft Corporation | System and method for synchronizing between an instant messenger client and a central contact store |
US7739246B2 (en) * | 2004-10-14 | 2010-06-15 | Microsoft Corporation | System and method of merging contacts |
US20060085483A1 (en) * | 2004-10-14 | 2006-04-20 | Microsoft Corporation | System and method of merging contacts |
US8010082B2 (en) | 2004-10-20 | 2011-08-30 | Seven Networks, Inc. | Flexible billing architecture |
USRE45348E1 (en) | 2004-10-20 | 2015-01-20 | Seven Networks, Inc. | Method and apparatus for intercepting events in a communication system |
US8831561B2 (en) | 2004-10-20 | 2014-09-09 | Seven Networks, Inc | System and method for tracking billing events in a mobile wireless network for a network operator |
US8805334B2 (en) | 2004-11-22 | 2014-08-12 | Seven Networks, Inc. | Maintaining mobile terminal information for secure communications |
US8873411B2 (en) | 2004-12-03 | 2014-10-28 | Seven Networks, Inc. | Provisioning of e-mail settings for a mobile terminal |
US8116214B2 (en) | 2004-12-03 | 2012-02-14 | Seven Networks, Inc. | Provisioning of e-mail settings for a mobile terminal |
US8561086B2 (en) | 2005-03-14 | 2013-10-15 | Seven Networks, Inc. | System and method for executing commands that are non-native to the native environment of a mobile device |
US9047142B2 (en) | 2005-03-14 | 2015-06-02 | Seven Networks, Inc. | Intelligent rendering of information in a limited display environment |
US8209709B2 (en) | 2005-03-14 | 2012-06-26 | Seven Networks, Inc. | Cross-platform event engine |
WO2006099466A3 (en) * | 2005-03-15 | 2009-06-04 | Onepin Inc | Wireless data exchange |
KR101270420B1 (en) | 2005-03-15 | 2013-06-10 | 루핀 인베스트먼츠 엘엘씨 | Wireless data exchange |
US8438633B1 (en) | 2005-04-21 | 2013-05-07 | Seven Networks, Inc. | Flexible real-time inbox access |
US8839412B1 (en) | 2005-04-21 | 2014-09-16 | Seven Networks, Inc. | Flexible real-time inbox access |
US8064583B1 (en) | 2005-04-21 | 2011-11-22 | Seven Networks, Inc. | Multiple data store authentication |
WO2006125183A3 (en) * | 2005-05-19 | 2007-05-18 | Fusionone Inc | Mobile device address book builder |
US8761756B2 (en) | 2005-06-21 | 2014-06-24 | Seven Networks International Oy | Maintaining an IP connection in a mobile network |
US20070027930A1 (en) * | 2005-08-01 | 2007-02-01 | Billy Alvarado | Universal data aggregation |
US8468126B2 (en) | 2005-08-01 | 2013-06-18 | Seven Networks, Inc. | Publishing data in an information community |
US7853563B2 (en) | 2005-08-01 | 2010-12-14 | Seven Networks, Inc. | Universal data aggregation |
US8069166B2 (en) | 2005-08-01 | 2011-11-29 | Seven Networks, Inc. | Managing user-to-user contact with inferred presence information |
US20070027917A1 (en) * | 2005-08-01 | 2007-02-01 | Ido Ariel | Linking of personal information management data |
US7917505B2 (en) | 2005-08-01 | 2011-03-29 | Seven Networks, Inc. | Methods for publishing content |
US7917468B2 (en) | 2005-08-01 | 2011-03-29 | Seven Networks, Inc. | Linking of personal information management data |
US8412675B2 (en) | 2005-08-01 | 2013-04-02 | Seven Networks, Inc. | Context aware data presentation |
US20070027921A1 (en) * | 2005-08-01 | 2007-02-01 | Billy Alvarado | Context based action |
US7962585B2 (en) * | 2005-08-15 | 2011-06-14 | Microsoft Corporation | Partial item change tracking and synchronization |
US20070078941A1 (en) * | 2005-08-15 | 2007-04-05 | Microsoft Corporation | Partial item change tracking and synchronization |
US9524329B2 (en) | 2005-08-15 | 2016-12-20 | Microsoft Technology Licensing, Llc | Partial item change tracking and synchronization |
US20110218963A1 (en) * | 2005-08-15 | 2011-09-08 | Microsoft Corporation | Partial Item Change Tracking and Synchronization |
US20070061381A1 (en) * | 2005-09-15 | 2007-03-15 | Gregory Newton | Methods, systems and computer program products for managing user information across multiple devices associated with the user |
US20070100856A1 (en) * | 2005-10-21 | 2007-05-03 | Yahoo! Inc. | Account consolidation |
US20130124612A1 (en) * | 2005-12-30 | 2013-05-16 | David E. Braginsky | Conflict Management During Data Object Synchronization Between Client and Server |
US9131024B2 (en) * | 2005-12-30 | 2015-09-08 | Google Inc. | Conflict management during data object synchronization between client and server |
EP1819136A2 (en) * | 2006-02-13 | 2007-08-15 | Onepin, Inc. | Phone to phone data exchange |
WO2007094823A1 (en) * | 2006-02-13 | 2007-08-23 | Onepin, Inc. | Phone to phone data exchange |
EP1819136A3 (en) * | 2006-02-13 | 2011-03-02 | OnePin, Inc. | Phone to phone data exchange |
US9055102B2 (en) | 2006-02-27 | 2015-06-09 | Seven Networks, Inc. | Location-based operations and messaging |
US20080032742A1 (en) * | 2006-08-02 | 2008-02-07 | Feyzi Celik | Event Sharing |
US8064956B2 (en) | 2006-08-02 | 2011-11-22 | Onepin, Inc. | Event sharing |
US11445037B2 (en) | 2006-08-23 | 2022-09-13 | Ebay, Inc. | Dynamic configuration of multi-platform applications |
US10542121B2 (en) | 2006-08-23 | 2020-01-21 | Ebay Inc. | Dynamic configuration of multi-platform applications |
US20080090597A1 (en) * | 2006-10-17 | 2008-04-17 | Feyzi Celik | Short message formatting for information exchange |
US8467816B2 (en) | 2006-10-22 | 2013-06-18 | Lupine Investments Llc | Short message service network plug-in |
US20080096590A1 (en) * | 2006-10-22 | 2008-04-24 | Feyzi Celik | Short Message Service Network Plug-In |
US20090042590A1 (en) * | 2006-10-22 | 2009-02-12 | Feyzi Celik | Short message service network plug-in |
US20110130158A1 (en) * | 2006-10-22 | 2011-06-02 | Feyzi Celik | Short Message Service Network Plug-In |
US7881736B2 (en) | 2006-10-22 | 2011-02-01 | Onepin, Inc. | Short message service network plug-in |
US7447510B2 (en) | 2006-10-22 | 2008-11-04 | Onepin, Inc. | Short message service network plug-in |
US10061828B2 (en) | 2006-11-20 | 2018-08-28 | Palantir Technologies, Inc. | Cross-ontology multi-master replication |
US8799218B2 (en) * | 2006-12-01 | 2014-08-05 | Ebay Inc. | Business channel synchronization |
US20080133612A1 (en) * | 2006-12-01 | 2008-06-05 | Allen Yihren Liu | Business channel synchronization |
US9904945B2 (en) | 2006-12-01 | 2018-02-27 | Ebay Inc. | Business channel synchronization |
US20080186807A1 (en) * | 2007-02-02 | 2008-08-07 | Research In Motion Limited | Electronic device and method of controlling an electronic device for calendar event updates |
US9552571B2 (en) | 2007-02-02 | 2017-01-24 | Blackberry Limited | Electronic device and method of meeting notification |
US20080189159A1 (en) * | 2007-02-02 | 2008-08-07 | Researech In Motion Limited | Electronic device and method of meeting notification |
US20080191896A1 (en) * | 2007-02-09 | 2008-08-14 | Jain Rohit Rocky | Electronic device and method of adding parties to a calendar event |
US20080195619A1 (en) * | 2007-02-09 | 2008-08-14 | Jain Rohit Rocky | Electronic device and method of sharing calendar-event information |
US20080195455A1 (en) * | 2007-02-09 | 2008-08-14 | Research In Motion Limited | Electronic device and method of scheduling calendar events |
US20080195627A1 (en) * | 2007-02-09 | 2008-08-14 | Research In Motion Limited | System and method for managing databases associated with respective personal information manager service accounts |
US7849056B2 (en) * | 2007-02-09 | 2010-12-07 | Research In Motion Limited | System and method for managing databases associated with respective personal information manager service accounts |
US20110173636A1 (en) * | 2007-02-12 | 2011-07-14 | Microsoft Corporation | Web data usage platform |
US9164970B2 (en) | 2007-02-12 | 2015-10-20 | Microsoft Technology Licensing, Llc | Using structured data for online research |
US8429185B2 (en) | 2007-02-12 | 2013-04-23 | Microsoft Corporation | Using structured data for online research |
US8595259B2 (en) * | 2007-02-12 | 2013-11-26 | Microsoft Corporation | Web data usage platform |
US8832146B2 (en) | 2007-02-12 | 2014-09-09 | Microsoft Corporation | Using structured data for online research |
US20100088430A1 (en) * | 2007-03-14 | 2010-04-08 | Rafael Ton | System and method for propagating personal identification information to communication devices |
US8966032B2 (en) * | 2007-03-14 | 2015-02-24 | Amdocs Software Systems Limited | System and method for propagating personal identification information to communication devices |
US8761744B2 (en) | 2007-04-20 | 2014-06-24 | Lupine Investments Llc | Mobile virtual communication invitations |
US20080261577A1 (en) * | 2007-04-20 | 2008-10-23 | Feyzi Celik | Mobile Virtual Communication Invitations |
US8774844B2 (en) | 2007-06-01 | 2014-07-08 | Seven Networks, Inc. | Integrated messaging |
US8693494B2 (en) | 2007-06-01 | 2014-04-08 | Seven Networks, Inc. | Polling |
US8805425B2 (en) | 2007-06-01 | 2014-08-12 | Seven Networks, Inc. | Integrated messaging |
US20090031250A1 (en) * | 2007-07-27 | 2009-01-29 | Jesse Boudreau | Administration of wireless devices in a wireless communication system |
US8005922B2 (en) | 2007-07-27 | 2011-08-23 | Research In Motion Limited | Remote control in a wireless communication system |
US20090028049A1 (en) * | 2007-07-27 | 2009-01-29 | Jesse Boudreau | Administration of policies for wireless devices in a wireless communication system |
US10079912B2 (en) | 2007-07-27 | 2018-09-18 | Blackberry Limited | Wireless communication system installation |
US9137280B2 (en) | 2007-07-27 | 2015-09-15 | Blackberry Limited | Wireless communication systems |
US8352550B2 (en) | 2007-07-27 | 2013-01-08 | Research In Motion Limited | Wireless communication systems |
US9270682B2 (en) | 2007-07-27 | 2016-02-23 | Blackberry Limited | Administration of policies for wireless devices in a wireless communication system |
US8086677B2 (en) | 2007-07-27 | 2011-12-27 | Research In Motion Limited | Information exchange in wireless servers |
US8914009B2 (en) | 2007-07-27 | 2014-12-16 | Blackberry Limited | Administration of wireless systems |
CN101448317A (en) * | 2007-07-27 | 2009-06-03 | 捷讯研究有限公司 | Apparatus and methods for operation of a wireless server |
EP2031913A2 (en) | 2007-07-27 | 2009-03-04 | Research In Motion Limited | Apparatus and methods for coordination of wireless systems |
US9641565B2 (en) | 2007-07-27 | 2017-05-02 | Blackberry Limited | Apparatus and methods for operation of a wireless server |
US20090068994A1 (en) * | 2007-07-27 | 2009-03-12 | Thomas Murphy | Administration of wireless systems |
US8965992B2 (en) | 2007-07-27 | 2015-02-24 | Blackberry Limited | Apparatus and methods for coordination of wireless systems |
US20090138547A1 (en) * | 2007-07-27 | 2009-05-28 | Motion Limited | Apparatus and methods for operation of a wireless server |
US8626867B2 (en) | 2007-07-27 | 2014-01-07 | Blackberry Limited | Apparatus and methods for operation of a wireless server |
US20090030968A1 (en) * | 2007-07-27 | 2009-01-29 | Jesse Boudreau | Remote control in a wireless communication system |
US20090031296A1 (en) * | 2007-07-27 | 2009-01-29 | Jesse Boudreau | Wireless communication system installation |
US20090070429A1 (en) * | 2007-07-27 | 2009-03-12 | Thomas Murphy | Information exchange in wireless servers |
EP2031913A3 (en) * | 2007-07-27 | 2009-04-29 | Research In Motion Limited | Apparatus and methods for coordination of wireless systems |
US8832185B2 (en) | 2007-07-27 | 2014-09-09 | Blackberry Limited | Information exchange in wireless servers that bypass external domain servers |
US20090030974A1 (en) * | 2007-07-27 | 2009-01-29 | Jesse Boudreau | Apparatus and methods for coordination of wireless systems |
US20100049720A1 (en) * | 2007-08-06 | 2010-02-25 | Apple Inc. | Synching data |
US20090043867A1 (en) * | 2007-08-06 | 2009-02-12 | Apple Inc. | Synching data |
US9519526B2 (en) | 2007-12-05 | 2016-12-13 | Box, Inc. | File management system and collaboration service and integration capabilities with third party applications |
US8364181B2 (en) | 2007-12-10 | 2013-01-29 | Seven Networks, Inc. | Electronic-mail filtering for mobile devices |
US8738050B2 (en) | 2007-12-10 | 2014-05-27 | Seven Networks, Inc. | Electronic-mail filtering for mobile devices |
US9002828B2 (en) | 2007-12-13 | 2015-04-07 | Seven Networks, Inc. | Predictive content delivery |
US8793305B2 (en) | 2007-12-13 | 2014-07-29 | Seven Networks, Inc. | Content delivery to a mobile device from a content service |
US20090157615A1 (en) * | 2007-12-18 | 2009-06-18 | General Motors Corporation | Synching online address book sources for a vehicle user |
US8181111B1 (en) | 2007-12-31 | 2012-05-15 | Synchronoss Technologies, Inc. | System and method for providing social context to digital activity |
US8909192B2 (en) | 2008-01-11 | 2014-12-09 | Seven Networks, Inc. | Mobile virtual network operator |
US8107921B2 (en) | 2008-01-11 | 2012-01-31 | Seven Networks, Inc. | Mobile virtual network operator |
US8914002B2 (en) | 2008-01-11 | 2014-12-16 | Seven Networks, Inc. | System and method for providing a network service in a distributed fashion to a mobile device |
US9712986B2 (en) | 2008-01-11 | 2017-07-18 | Seven Networks, Llc | Mobile device configured for communicating with another mobile device associated with an associated user |
US8862657B2 (en) | 2008-01-25 | 2014-10-14 | Seven Networks, Inc. | Policy based content service |
US8849902B2 (en) | 2008-01-25 | 2014-09-30 | Seven Networks, Inc. | System for providing policy based content service in a mobile network |
US8838744B2 (en) | 2008-01-28 | 2014-09-16 | Seven Networks, Inc. | Web-based access to data objects |
US8799410B2 (en) | 2008-01-28 | 2014-08-05 | Seven Networks, Inc. | System and method of a relay server for managing communications and notification between a mobile device and a web access server |
US20090228509A1 (en) * | 2008-03-04 | 2009-09-10 | Apple Inc. | Synchronization server process |
US8290908B2 (en) | 2008-03-04 | 2012-10-16 | Apple Inc. | Synchronization server process |
US8224918B2 (en) | 2008-03-04 | 2012-07-17 | Apple Inc. | Data synchronization protocol |
US10749953B2 (en) | 2008-03-04 | 2020-08-18 | Apple Inc. | Synchronization server process |
US20100223400A1 (en) * | 2008-03-04 | 2010-09-02 | Apple Inc. | Data Synchronization Protocol |
US8046498B2 (en) | 2008-03-04 | 2011-10-25 | Apple Inc. | Data synchronization protocol |
US7991740B2 (en) * | 2008-03-04 | 2011-08-02 | Apple Inc. | Synchronization server process |
US20090248844A1 (en) * | 2008-03-31 | 2009-10-01 | International Business Machines Corporation | Hybrid Profile Management for Electronic Social Networks |
US20090292799A1 (en) * | 2008-05-23 | 2009-11-26 | Research In Motion Limited | Remote administration of mobile wireless devices |
US8516095B2 (en) | 2008-05-23 | 2013-08-20 | Research In Motion Limited | Remote administration of mobile wireless devices |
US8787947B2 (en) | 2008-06-18 | 2014-07-22 | Seven Networks, Inc. | Application discovery on mobile devices |
US8078158B2 (en) | 2008-06-26 | 2011-12-13 | Seven Networks, Inc. | Provisioning applications for a mobile device |
US8494510B2 (en) | 2008-06-26 | 2013-07-23 | Seven Networks, Inc. | Provisioning applications for a mobile device |
US9348499B2 (en) | 2008-09-15 | 2016-05-24 | Palantir Technologies, Inc. | Sharing objects that rely on local resources with outside servers |
US8112537B2 (en) | 2008-09-29 | 2012-02-07 | Apple Inc. | Trickle sync protocol |
US20100082732A1 (en) * | 2008-09-29 | 2010-04-01 | Apple Inc. | Trickle Sync Protocol |
US9934240B2 (en) | 2008-09-30 | 2018-04-03 | Google Llc | On demand access to client cached files |
US8620861B1 (en) | 2008-09-30 | 2013-12-31 | Google Inc. | Preserving file metadata during atomic save operations |
US10289692B2 (en) | 2008-09-30 | 2019-05-14 | Google Llc | Preserving file metadata during atomic save operations |
US8909759B2 (en) | 2008-10-10 | 2014-12-09 | Seven Networks, Inc. | Bandwidth measurement |
US20100131462A1 (en) * | 2008-11-21 | 2010-05-27 | At&T Intellectual Property I, L.P. | Methods, computer program products, and systems for automatically synchronizing directory structures across different applications |
US9201893B2 (en) | 2008-11-21 | 2015-12-01 | At&T Intellectual Property I, L.P. | Methods, computer program products, and systems for automatically synchronizing directory structures across different applications |
US9465809B2 (en) | 2008-11-21 | 2016-10-11 | At&T Intellectual Property I, L.P. | Methods, computer program products, and systems for automatically synchronizing directory structures across different applications |
US10013428B2 (en) | 2008-11-21 | 2018-07-03 | At&T Intellectual Property I, L.P. | Methods, computer program products, and systems for automatically synchronizing directory structures across different applications |
US10606811B2 (en) | 2008-11-21 | 2020-03-31 | At&T Intellectual Property I, L.P. | Methods, computer program products, and systems for automatically synchronizing directory structures across different applications |
US8799214B2 (en) * | 2008-11-21 | 2014-08-05 | At&T Intellectual Property I, L.P. | Methods, computer program products, and systems for automatically synchronizing directory structures across different applications |
US9720929B2 (en) | 2008-11-21 | 2017-08-01 | At&T Intellectual Property I, L.P. | Methods, computer program products, and systems for automatically synchronizing directory structures across different applications |
US20100223321A1 (en) * | 2009-02-27 | 2010-09-02 | Christopher Runstedler | Data hub server |
US9021059B2 (en) | 2009-02-27 | 2015-04-28 | Blackberry Limited | Data hub server |
US20100223359A1 (en) * | 2009-02-27 | 2010-09-02 | Research In Motion Limited | Device-to-device transfer |
US9407686B2 (en) | 2009-02-27 | 2016-08-02 | Blackberry Limited | Device to-device transfer |
US8065361B2 (en) | 2009-02-27 | 2011-11-22 | Research In Motion Limited | Apparatus and methods using a data hub server with servers to source and access informational content |
US20110154255A1 (en) * | 2009-03-31 | 2011-06-23 | Samsung Electronics Co., Ltd. | Apparatus and method for synchronization between devices through wireless connection |
US20110086592A1 (en) * | 2009-10-13 | 2011-04-14 | Samsung Electronics Co. Ltd. | Method for displaying calendar data |
US8255006B1 (en) | 2009-11-10 | 2012-08-28 | Fusionone, Inc. | Event dependent notification system and method |
US9071614B2 (en) * | 2009-11-19 | 2015-06-30 | Hitachi, Ltd. | Computer system, management system and recording medium |
US20120017258A1 (en) * | 2009-11-19 | 2012-01-19 | Hitachi, Ltd. | Computer system, management system and recording medium |
US20110125770A1 (en) * | 2009-11-25 | 2011-05-26 | Nokia Corporation | Method and apparatus for facilitating identity resolution |
US9043731B2 (en) | 2010-03-30 | 2015-05-26 | Seven Networks, Inc. | 3D mobile user interface with configurable workspace management |
US20110264684A1 (en) * | 2010-04-21 | 2011-10-27 | Eytan Shafigi | Method and system for updating contact information |
US8407075B2 (en) * | 2010-06-25 | 2013-03-26 | International Business Machines Corporation | Merging calendar entries |
US20110317523A1 (en) * | 2010-06-25 | 2011-12-29 | International Business Machines Corporation | Merging calendar entries |
US9043433B2 (en) | 2010-07-26 | 2015-05-26 | Seven Networks, Inc. | Mobile network traffic coordination across multiple applications |
US8886176B2 (en) | 2010-07-26 | 2014-11-11 | Seven Networks, Inc. | Mobile application traffic optimization |
US9407713B2 (en) | 2010-07-26 | 2016-08-02 | Seven Networks, Llc | Mobile application traffic optimization |
US9077630B2 (en) | 2010-07-26 | 2015-07-07 | Seven Networks, Inc. | Distributed implementation of dynamic wireless traffic policy |
US8838783B2 (en) | 2010-07-26 | 2014-09-16 | Seven Networks, Inc. | Distributed caching for resource and mobile network traffic management |
US9049179B2 (en) | 2010-07-26 | 2015-06-02 | Seven Networks, Inc. | Mobile network traffic coordination across multiple applications |
US11640338B2 (en) | 2010-09-30 | 2023-05-02 | Commvault Systems, Inc. | Data recovery operations, such as recovery from modified network data management protocol data |
US10983870B2 (en) | 2010-09-30 | 2021-04-20 | Commvault Systems, Inc. | Data recovery operations, such as recovery from modified network data management protocol data |
US20160224276A1 (en) * | 2010-10-13 | 2016-08-04 | International Business Machines Corporation | Synchronization for initialization of a remote mirror storage facility |
US10031692B2 (en) * | 2010-10-13 | 2018-07-24 | International Business Machines Corporation | Synchronization for initialization of a remote mirror storage facility |
US8166164B1 (en) | 2010-11-01 | 2012-04-24 | Seven Networks, Inc. | Application and network-based long poll request detection and cacheability assessment therefor |
US8291076B2 (en) | 2010-11-01 | 2012-10-16 | Seven Networks, Inc. | Application and network-based long poll request detection and cacheability assessment therefor |
US8782222B2 (en) | 2010-11-01 | 2014-07-15 | Seven Networks | Timing of keep-alive messages used in a system for mobile network resource conservation and optimization |
US8966066B2 (en) | 2010-11-01 | 2015-02-24 | Seven Networks, Inc. | Application and network-based long poll request detection and cacheability assessment therefor |
US9330196B2 (en) | 2010-11-01 | 2016-05-03 | Seven Networks, Llc | Wireless traffic management system cache optimization using http headers |
US9060032B2 (en) | 2010-11-01 | 2015-06-16 | Seven Networks, Inc. | Selective data compression by a distributed traffic management system to reduce mobile data traffic and signaling traffic |
US8326985B2 (en) | 2010-11-01 | 2012-12-04 | Seven Networks, Inc. | Distributed management of keep-alive message signaling for mobile network resource conservation and optimization |
US8204953B2 (en) | 2010-11-01 | 2012-06-19 | Seven Networks, Inc. | Distributed system for cache defeat detection and caching of content addressed by identifiers intended to defeat cache |
US8700728B2 (en) | 2010-11-01 | 2014-04-15 | Seven Networks, Inc. | Cache defeat detection and caching of content addressed by identifiers intended to defeat cache |
US8843153B2 (en) | 2010-11-01 | 2014-09-23 | Seven Networks, Inc. | Mobile traffic categorization and policy for network use optimization while preserving user experience |
US8943428B2 (en) | 2010-11-01 | 2015-01-27 | Synchronoss Technologies, Inc. | System for and method of field mapping |
US9275163B2 (en) | 2010-11-01 | 2016-03-01 | Seven Networks, Llc | Request and response characteristics based adaptation of distributed caching in a mobile network |
US8484314B2 (en) | 2010-11-01 | 2013-07-09 | Seven Networks, Inc. | Distributed caching in a wireless network of content delivered for a mobile application over a long-held request |
US8190701B2 (en) | 2010-11-01 | 2012-05-29 | Seven Networks, Inc. | Cache defeat detection and caching of content addressed by identifiers intended to defeat cache |
US8417823B2 (en) | 2010-11-22 | 2013-04-09 | Seven Network, Inc. | Aligning data transfer to optimize connections established for transmission over a wireless network |
US8539040B2 (en) | 2010-11-22 | 2013-09-17 | Seven Networks, Inc. | Mobile network background traffic data management with optimized polling intervals |
US9100873B2 (en) | 2010-11-22 | 2015-08-04 | Seven Networks, Inc. | Mobile network background traffic data management |
US8903954B2 (en) | 2010-11-22 | 2014-12-02 | Seven Networks, Inc. | Optimization of resource polling intervals to satisfy mobile device requests |
US9325662B2 (en) | 2011-01-07 | 2016-04-26 | Seven Networks, Llc | System and method for reduction of mobile network traffic used for domain name system (DNS) queries |
US10554426B2 (en) | 2011-01-20 | 2020-02-04 | Box, Inc. | Real time notification of activities that occur in a web-based collaboration environment |
US20120198482A1 (en) * | 2011-01-27 | 2012-08-02 | International Business Machines Corporation | Distributed Multi-System Management |
US8789072B2 (en) * | 2011-01-27 | 2014-07-22 | International Business Machines Corporation | Distributed multi-system management |
US9223834B2 (en) | 2011-01-27 | 2015-12-29 | International Business Machines Corporation | Distributed multi-system management |
US9754032B2 (en) | 2011-01-27 | 2017-09-05 | International Business Machines Corporation | Distributed multi-system management |
US8793710B2 (en) * | 2011-01-27 | 2014-07-29 | International Business Machines Corporation | Distributed multi-system management |
US20120272253A1 (en) * | 2011-01-27 | 2012-10-25 | International Business Machines Corporation | Distributed multi-system management |
US11693877B2 (en) | 2011-03-31 | 2023-07-04 | Palantir Technologies Inc. | Cross-ontology multi-master replication |
US9209919B2 (en) * | 2011-04-19 | 2015-12-08 | Kabushiki Kaisha Toshiba | Synchronization control system |
US8316098B2 (en) | 2011-04-19 | 2012-11-20 | Seven Networks Inc. | Social caching for device resource sharing and management |
US8356080B2 (en) | 2011-04-19 | 2013-01-15 | Seven Networks, Inc. | System and method for a mobile device to use physical storage of another device for caching |
US20140050232A1 (en) * | 2011-04-19 | 2014-02-20 | Kabushiki Kaisha Toshiba | Synchronization control system |
US9084105B2 (en) | 2011-04-19 | 2015-07-14 | Seven Networks, Inc. | Device resources sharing for network resource conservation |
US9300719B2 (en) | 2011-04-19 | 2016-03-29 | Seven Networks, Inc. | System and method for a mobile device to use physical storage of another device for caching |
US8621075B2 (en) | 2011-04-27 | 2013-12-31 | Seven Metworks, Inc. | Detecting and preserving state for satisfying application requests in a distributed proxy and cache system |
US8635339B2 (en) | 2011-04-27 | 2014-01-21 | Seven Networks, Inc. | Cache state management on a mobile device to preserve user experience |
US8832228B2 (en) | 2011-04-27 | 2014-09-09 | Seven Networks, Inc. | System and method for making requests on behalf of a mobile device based on atomic processes for mobile network traffic relief |
US9063912B2 (en) | 2011-06-22 | 2015-06-23 | Box, Inc. | Multimedia content preview rendering in a cloud content management system |
US20130013560A1 (en) * | 2011-07-08 | 2013-01-10 | Arnold Goldberg | Desktop application for access and interaction with workspaces in a cloud-based content management system and synchronization mechanisms thereof |
US9652741B2 (en) * | 2011-07-08 | 2017-05-16 | Box, Inc. | Desktop application for access and interaction with workspaces in a cloud-based content management system and synchronization mechanisms thereof |
US9978040B2 (en) | 2011-07-08 | 2018-05-22 | Box, Inc. | Collaboration sessions in a workspace on a cloud-based content management system |
US8984581B2 (en) | 2011-07-27 | 2015-03-17 | Seven Networks, Inc. | Monitoring mobile application activities for malicious traffic on a mobile device |
US9239800B2 (en) | 2011-07-27 | 2016-01-19 | Seven Networks, Llc | Automatic generation and distribution of policy information regarding malicious mobile traffic in a wireless network |
US9514167B2 (en) * | 2011-08-01 | 2016-12-06 | Qatar Foundation | Behavior based record linkage |
CN102955790A (en) * | 2011-08-23 | 2013-03-06 | 苏州彭华信息技术有限公司 | Method and device for synchronizing network documents |
WO2013056172A1 (en) * | 2011-10-12 | 2013-04-18 | Microsoft Corporation | Automatically aggregating contact information |
US20130097595A1 (en) * | 2011-10-18 | 2013-04-18 | Microsoft Corporation | Update scanning |
US8959504B2 (en) * | 2011-10-18 | 2015-02-17 | Microsoft Corporation | Update scanning |
US11210610B2 (en) | 2011-10-26 | 2021-12-28 | Box, Inc. | Enhanced multimedia content preview rendering in a cloud content management system |
US9098474B2 (en) | 2011-10-26 | 2015-08-04 | Box, Inc. | Preview pre-generation based on heuristics and algorithmic prediction/assessment of predicted user behavior for enhancement of user experience |
US9015248B2 (en) | 2011-11-16 | 2015-04-21 | Box, Inc. | Managing updates at clients used by a user to access a cloud-based collaboration service |
US12242507B2 (en) | 2011-11-29 | 2025-03-04 | Box, Inc. | Mobile platform file and folder selection functionalities for offline access and synchronization |
US11537630B2 (en) | 2011-11-29 | 2022-12-27 | Box, Inc. | Mobile platform file and folder selection functionalities for offline access and synchronization |
US10909141B2 (en) | 2011-11-29 | 2021-02-02 | Box, Inc. | Mobile platform file and folder selection functionalities for offline access and synchronization |
US9773051B2 (en) | 2011-11-29 | 2017-09-26 | Box, Inc. | Mobile platform file and folder selection functionalities for offline access and synchronization |
US11853320B2 (en) | 2011-11-29 | 2023-12-26 | Box, Inc. | Mobile platform file and folder selection functionalities for offline access and synchronization |
US8918503B2 (en) | 2011-12-06 | 2014-12-23 | Seven Networks, Inc. | Optimization of mobile traffic directed to private networks and operator configurability thereof |
US8977755B2 (en) | 2011-12-06 | 2015-03-10 | Seven 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-06 | 2014-10-21 | Seven Networks, Inc. | System of redundantly clustered machines to provide failover mechanisms for mobile traffic management and network resource conservation |
US9009250B2 (en) | 2011-12-07 | 2015-04-14 | Seven Networks, Inc. | Flexible and dynamic integration schemas of a traffic management system with various network operators for network traffic alleviation |
US9277443B2 (en) | 2011-12-07 | 2016-03-01 | Seven Networks, Llc | Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol |
US9173128B2 (en) | 2011-12-07 | 2015-10-27 | Seven Networks, Llc | Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol |
US9208123B2 (en) | 2011-12-07 | 2015-12-08 | Seven Networks, Llc | Mobile device having content caching mechanisms integrated with a network operator for traffic alleviation in a wireless network and methods therefor |
US9832095B2 (en) | 2011-12-14 | 2017-11-28 | Seven Networks, Llc | Operation modes for mobile traffic optimization and concurrent management of optimized and non-optimized traffic |
US9021021B2 (en) | 2011-12-14 | 2015-04-28 | Seven Networks, Inc. | Mobile network reporting and usage analytics system and method aggregated using a distributed traffic optimization system |
US8861354B2 (en) | 2011-12-14 | 2014-10-14 | Seven Networks, Inc. | Hierarchies and categories for management and deployment of policies for distributed wireless traffic optimization |
US9019123B2 (en) | 2011-12-22 | 2015-04-28 | Box, Inc. | Health check services for web-based collaboration environments |
US8909202B2 (en) | 2012-01-05 | 2014-12-09 | Seven Networks, Inc. | Detection and management of user interactions with foreground applications on a mobile device in distributed caching |
US9131397B2 (en) | 2012-01-05 | 2015-09-08 | Seven Networks, Inc. | Managing cache to prevent overloading of a wireless network due to user activity |
US9904435B2 (en) | 2012-01-06 | 2018-02-27 | Box, Inc. | System and method for actionable event generation for task delegation and management via a discussion forum in a web-based collaboration environment |
US9715518B2 (en) | 2012-01-23 | 2017-07-25 | Palantir Technologies, Inc. | Cross-ACL multi-master replication |
US11232481B2 (en) | 2012-01-30 | 2022-01-25 | Box, Inc. | Extended applications of multimedia content previews in the cloud-based content management system |
US9203864B2 (en) | 2012-02-02 | 2015-12-01 | Seven Networks, Llc | Dynamic categorization of applications for network access in a mobile network |
US9326189B2 (en) | 2012-02-03 | 2016-04-26 | Seven Networks, Llc | User as an end point for profiling and optimizing the delivery of content and data in a wireless network |
US10713624B2 (en) | 2012-02-24 | 2020-07-14 | Box, Inc. | System and method for promoting enterprise adoption of a web-based collaboration environment |
US9965745B2 (en) | 2012-02-24 | 2018-05-08 | Box, Inc. | System and method for promoting enterprise adoption of a web-based collaboration environment |
US9195636B2 (en) | 2012-03-07 | 2015-11-24 | Box, Inc. | Universal file type preview for mobile devices |
US10318542B2 (en) * | 2012-03-30 | 2019-06-11 | Commvault Systems, Inc. | Information management of mobile device data |
US8812695B2 (en) | 2012-04-09 | 2014-08-19 | Seven Networks, Inc. | Method and system for management of a virtual network connection without heartbeat messages |
US10263899B2 (en) | 2012-04-10 | 2019-04-16 | Seven Networks, Llc | Enhanced 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 |
US9575981B2 (en) | 2012-04-11 | 2017-02-21 | Box, Inc. | Cloud service enabled to handle a set of files depicted to a user as a single file in a native operating system |
US9413587B2 (en) | 2012-05-02 | 2016-08-09 | Box, Inc. | System and method for a third-party application to access content within a cloud-based platform |
US9396216B2 (en) | 2012-05-04 | 2016-07-19 | Box, Inc. | Repository redundancy implementation of a system which incrementally updates clients with events that occurred via a cloud-enabled platform |
US9691051B2 (en) | 2012-05-21 | 2017-06-27 | Box, Inc. | Security enhancement through application access control |
US9280613B2 (en) | 2012-05-23 | 2016-03-08 | Box, Inc. | Metadata enabled third-party application access of content at a cloud-based platform via a native client to the cloud-based platform |
US9027108B2 (en) | 2012-05-23 | 2015-05-05 | Box, Inc. | Systems and methods for secure file portability between mobile applications on a mobile device |
US9552444B2 (en) | 2012-05-23 | 2017-01-24 | Box, Inc. | Identification verification mechanisms for a third-party application to access content in a cloud-based platform |
US10452667B2 (en) | 2012-07-06 | 2019-10-22 | Box Inc. | Identification of people as search results from key-word based searches of content in a cloud-based environment |
US9712510B2 (en) | 2012-07-06 | 2017-07-18 | Box, Inc. | Systems and methods for securely submitting comments among users via external messaging applications in a cloud-based platform |
US8775631B2 (en) | 2012-07-13 | 2014-07-08 | Seven 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 |
US9473532B2 (en) | 2012-07-19 | 2016-10-18 | Box, Inc. | Data loss prevention (DLP) methods by a cloud service including third party integration architectures |
US9237170B2 (en) | 2012-07-19 | 2016-01-12 | Box, Inc. | Data loss prevention (DLP) methods and architectures by a cloud service |
US9794256B2 (en) | 2012-07-30 | 2017-10-17 | Box, Inc. | System and method for advanced control tools for administrators in a cloud-based service |
US9729675B2 (en) | 2012-08-19 | 2017-08-08 | Box, Inc. | Enhancement of upload and/or download performance based on client and/or server feedback information |
US9369520B2 (en) | 2012-08-19 | 2016-06-14 | Box, Inc. | Enhancement of upload and/or download performance based on client and/or server feedback information |
US9558202B2 (en) | 2012-08-27 | 2017-01-31 | Box, Inc. | Server side techniques for reducing database workload in implementing selective subfolder synchronization in a cloud-based environment |
US9450926B2 (en) | 2012-08-29 | 2016-09-20 | Box, Inc. | Upload and download streaming encryption to/from a cloud-based platform |
US9195519B2 (en) | 2012-09-06 | 2015-11-24 | Box, Inc. | Disabling the self-referential appearance of a mobile application in an intent via a background registration |
US9117087B2 (en) | 2012-09-06 | 2015-08-25 | Box, Inc. | System and method for creating a secure channel for inter-application communication based on intents |
US9292833B2 (en) | 2012-09-14 | 2016-03-22 | Box, Inc. | Batching notifications of activities that occur in a web-based collaboration environment |
US10200256B2 (en) | 2012-09-17 | 2019-02-05 | Box, Inc. | System and method of a manipulative handle in an interactive mobile user interface |
US9553758B2 (en) | 2012-09-18 | 2017-01-24 | Box, Inc. | Sandboxing individual applications to specific user folders in a cloud-based service |
US10915492B2 (en) | 2012-09-19 | 2021-02-09 | Box, Inc. | Cloud-based platform enabled with media content indexed for text-based searches and/or metadata extraction |
US9959420B2 (en) | 2012-10-02 | 2018-05-01 | Box, Inc. | System and method for enhanced security and management mechanisms for enterprise administrators in a cloud-based environment |
US9495364B2 (en) | 2012-10-04 | 2016-11-15 | Box, Inc. | Enhanced quick search features, low-barrier commenting/interactive features in a collaboration platform |
US9705967B2 (en) | 2012-10-04 | 2017-07-11 | Box, Inc. | Corporate user discovery and identification of recommended collaborators in a cloud platform |
US9665349B2 (en) | 2012-10-05 | 2017-05-30 | Box, Inc. | System and method for generating embeddable widgets which enable access to a cloud-based collaboration platform |
US9628268B2 (en) | 2012-10-17 | 2017-04-18 | Box, Inc. | Remote key management in a cloud-based environment |
US9161258B2 (en) | 2012-10-24 | 2015-10-13 | Seven Networks, Llc | Optimized and selective management of policy deployment to mobile clients in a congested network to prevent further aggravation of network congestion |
US10235383B2 (en) * | 2012-12-19 | 2019-03-19 | Box, Inc. | Method and apparatus for synchronization of items with read-only permissions in a cloud-based environment |
US20140172799A1 (en) * | 2012-12-19 | 2014-06-19 | Box, Inc. | Method and apparatus for synchronization of items with read-only permissions in a cloud-based environment |
US9307493B2 (en) | 2012-12-20 | 2016-04-05 | Seven Networks, Llc | Systems and methods for application management of mobile device radio state promotion and demotion |
US11243849B2 (en) | 2012-12-27 | 2022-02-08 | Commvault Systems, Inc. | Restoration of centralized data storage manager, such as data storage manager in a hierarchical data storage system |
US9396245B2 (en) | 2013-01-02 | 2016-07-19 | Box, Inc. | Race condition handling in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform |
US9953036B2 (en) | 2013-01-09 | 2018-04-24 | Box, Inc. | File system monitoring in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform |
US9507795B2 (en) | 2013-01-11 | 2016-11-29 | Box, Inc. | Functionalities, features, and user interface of a synchronization client to a cloud-based environment |
US10599671B2 (en) | 2013-01-17 | 2020-03-24 | Box, Inc. | Conflict resolution, retry condition management, and handling of problem files for the synchronization client to a cloud-based platform |
US9241314B2 (en) | 2013-01-23 | 2016-01-19 | Seven Networks, Llc | Mobile device with application or context aware fast dormancy |
US9271238B2 (en) | 2013-01-23 | 2016-02-23 | Seven Networks, Llc | Application or context aware fast dormancy |
US8874761B2 (en) | 2013-01-25 | 2014-10-28 | Seven Networks, Inc. | Signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols |
US8750123B1 (en) | 2013-03-11 | 2014-06-10 | Seven Networks, Inc. | Mobile device equipped with mobile network congestion recognition to make intelligent decisions regarding connecting to an operator network |
US10140664B2 (en) | 2013-03-14 | 2018-11-27 | Palantir Technologies Inc. | Resolving similar entities from a transaction database |
US10120857B2 (en) | 2013-03-15 | 2018-11-06 | Palantir Technologies Inc. | Method and system for generating a parser and parsing complex data |
US9495353B2 (en) | 2013-03-15 | 2016-11-15 | Palantir Technologies Inc. | Method and system for generating a parser and parsing complex data |
US10152531B2 (en) | 2013-03-15 | 2018-12-11 | Palantir Technologies Inc. | Computer-implemented systems and methods for comparing and associating objects |
US10725968B2 (en) | 2013-05-10 | 2020-07-28 | Box, Inc. | Top down delete or unsynchronization on delete of and depiction of item synchronization with a synchronization client to a cloud-based platform |
US10846074B2 (en) | 2013-05-10 | 2020-11-24 | Box, Inc. | Identification and handling of items to be ignored for synchronization with a cloud-based platform by a synchronization client |
US10877937B2 (en) | 2013-06-13 | 2020-12-29 | Box, Inc. | Systems and methods for synchronization event building and/or collapsing by a synchronization component of a cloud-based platform |
US9633037B2 (en) | 2013-06-13 | 2017-04-25 | Box, Inc | Systems and methods for synchronization event building and/or collapsing by a synchronization component of a cloud-based platform |
US10762102B2 (en) | 2013-06-20 | 2020-09-01 | Palantir Technologies Inc. | System and method for incremental replication |
US9805050B2 (en) | 2013-06-21 | 2017-10-31 | Box, Inc. | Maintaining and updating file system shadows on a local device by a synchronization client of a cloud-based platform |
US11531648B2 (en) | 2013-06-21 | 2022-12-20 | Box, Inc. | Maintaining and updating file system shadows on a local device by a synchronization client of a cloud-based platform |
US10110656B2 (en) | 2013-06-25 | 2018-10-23 | Box, Inc. | Systems and methods for providing shell communication in a cloud-based platform |
US10229134B2 (en) | 2013-06-25 | 2019-03-12 | Box, Inc. | Systems and methods for managing upgrades, migration of user data and improving performance of a cloud-based platform |
US9348851B2 (en) * | 2013-07-05 | 2016-05-24 | Palantir Technologies Inc. | Data quality monitors |
US10970261B2 (en) | 2013-07-05 | 2021-04-06 | Palantir Technologies Inc. | System and method for data quality monitors |
US20150012509A1 (en) * | 2013-07-05 | 2015-01-08 | Palantir Technologies, Inc. | Data quality monitors |
US9065765B2 (en) | 2013-07-22 | 2015-06-23 | Seven Networks, Inc. | Proxy server associated with a mobile carrier for enhancing mobile traffic management in a mobile network |
US9535924B2 (en) | 2013-07-30 | 2017-01-03 | Box, Inc. | Scalability improvement in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform |
US9519886B2 (en) | 2013-09-13 | 2016-12-13 | Box, Inc. | Simultaneous editing/accessing of content by collaborator invitation through a web-based or mobile application to a cloud-based collaboration platform |
US11822759B2 (en) | 2013-09-13 | 2023-11-21 | Box, Inc. | System and methods for configuring event-based automation in cloud-based collaboration platforms |
US10509527B2 (en) | 2013-09-13 | 2019-12-17 | Box, Inc. | Systems and methods for configuring event-based automation in cloud-based collaboration platforms |
US11435865B2 (en) | 2013-09-13 | 2022-09-06 | Box, Inc. | System and methods for configuring event-based automation in cloud-based collaboration platforms |
US9483473B2 (en) | 2013-09-13 | 2016-11-01 | Box, Inc. | High availability architecture for a cloud-based concurrent-access collaboration platform |
US9704137B2 (en) | 2013-09-13 | 2017-07-11 | Box, Inc. | Simultaneous editing/accessing of content by collaborator invitation through a web-based or mobile application to a cloud-based collaboration platform |
US9535909B2 (en) | 2013-09-13 | 2017-01-03 | Box, Inc. | Configurable event-based automation architecture for cloud-based collaboration platforms |
US9996229B2 (en) | 2013-10-03 | 2018-06-12 | Palantir Technologies Inc. | Systems and methods for analyzing performance of an entity |
US10866931B2 (en) | 2013-10-22 | 2020-12-15 | Box, Inc. | Desktop application for accessing a cloud collaboration platform |
US10579647B1 (en) | 2013-12-16 | 2020-03-03 | Palantir Technologies Inc. | Methods and systems for analyzing entity performance |
US11032065B2 (en) | 2013-12-30 | 2021-06-08 | Palantir Technologies Inc. | Verifiable redactable audit log |
US10027473B2 (en) | 2013-12-30 | 2018-07-17 | Palantir Technologies Inc. | Verifiable redactable audit log |
US10530854B2 (en) | 2014-05-30 | 2020-01-07 | Box, Inc. | Synchronization of permissioned content in cloud-based environments |
US9602514B2 (en) | 2014-06-16 | 2017-03-21 | Box, Inc. | Enterprise mobility management and verification of a managed application by a content provider |
US10038731B2 (en) | 2014-08-29 | 2018-07-31 | Box, Inc. | Managing flow-based interactions with cloud-based shared content |
US10708321B2 (en) | 2014-08-29 | 2020-07-07 | Box, Inc. | Configurable metadata-based automation and content classification architecture for cloud-based collaboration platforms |
US9756022B2 (en) | 2014-08-29 | 2017-09-05 | Box, Inc. | Enhanced remote key management for an enterprise in a cloud-based environment |
US10708323B2 (en) | 2014-08-29 | 2020-07-07 | Box, Inc. | Managing flow-based interactions with cloud-based shared content |
US10574442B2 (en) | 2014-08-29 | 2020-02-25 | Box, Inc. | Enhanced remote key management for an enterprise in a cloud-based environment |
US9894119B2 (en) | 2014-08-29 | 2018-02-13 | Box, Inc. | Configurable metadata-based automation and content classification architecture for cloud-based collaboration platforms |
US11876845B2 (en) | 2014-08-29 | 2024-01-16 | Box, Inc. | Configurable metadata-based automation and content classification architecture for cloud-based collaboration platforms |
US11146600B2 (en) | 2014-08-29 | 2021-10-12 | Box, Inc. | Configurable metadata-based automation and content classification architecture for cloud-based collaboration platforms |
US9946738B2 (en) | 2014-11-05 | 2018-04-17 | Palantir Technologies, Inc. | Universal data pipeline |
US10853338B2 (en) | 2014-11-05 | 2020-12-01 | Palantir Technologies Inc. | Universal data pipeline |
US10191926B2 (en) | 2014-11-05 | 2019-01-29 | Palantir Technologies, Inc. | Universal data pipeline |
US9483546B2 (en) | 2014-12-15 | 2016-11-01 | Palantir Technologies Inc. | System and method for associating related records to common entities across multiple lists |
US10242072B2 (en) | 2014-12-15 | 2019-03-26 | Palantir Technologies Inc. | System and method for associating related records to common entities across multiple lists |
US10103953B1 (en) | 2015-05-12 | 2018-10-16 | Palantir Technologies Inc. | Methods and systems for analyzing entity performance |
US9996595B2 (en) | 2015-08-03 | 2018-06-12 | Palantir Technologies, Inc. | Providing full data provenance visualization for versioned datasets |
US10127289B2 (en) | 2015-08-19 | 2018-11-13 | Palantir Technologies Inc. | Systems and methods for automatic clustering and canonical designation of related data in various data structures |
US11392591B2 (en) | 2015-08-19 | 2022-07-19 | Palantir Technologies Inc. | Systems and methods for automatic clustering and canonical designation of related data in various data structures |
US12038933B2 (en) | 2015-08-19 | 2024-07-16 | Palantir Technologies Inc. | Systems and methods for automatic clustering and canonical designation of related data in various data structures |
US10747436B2 (en) | 2015-09-02 | 2020-08-18 | Commvault Systems, Inc. | Migrating data to disk without interrupting running operations |
US11157171B2 (en) | 2015-09-02 | 2021-10-26 | Commvault Systems, Inc. | Migrating data to disk without interrupting running operations |
US12124465B2 (en) | 2015-09-04 | 2024-10-22 | Palantir Technologies Inc. | Systems and methods for database investigation tool |
US9984428B2 (en) | 2015-09-04 | 2018-05-29 | Palantir Technologies Inc. | Systems and methods for structuring data from unstructured electronic data files |
US11080296B2 (en) | 2015-09-09 | 2021-08-03 | Palantir Technologies Inc. | Domain-specific language for dataset transformations |
US9965534B2 (en) | 2015-09-09 | 2018-05-08 | Palantir Technologies, Inc. | Domain-specific language for dataset transformations |
US9514414B1 (en) | 2015-12-11 | 2016-12-06 | Palantir Technologies Inc. | Systems and methods for identifying and categorizing electronic documents through machine learning |
US10817655B2 (en) | 2015-12-11 | 2020-10-27 | Palantir Technologies Inc. | Systems and methods for annotating and linking electronic documents |
US9760556B1 (en) | 2015-12-11 | 2017-09-12 | Palantir Technologies Inc. | Systems and methods for annotating and linking electronic documents |
US10592534B2 (en) | 2016-02-16 | 2020-03-17 | Microsoft Technology Licensing Llc | Automated aggregation of social contact groups |
US10007674B2 (en) | 2016-06-13 | 2018-06-26 | Palantir Technologies Inc. | Data revision control in large-scale data analytic systems |
US11106638B2 (en) | 2016-06-13 | 2021-08-31 | Palantir Technologies Inc. | Data revision control in large-scale data analytic systems |
US11106692B1 (en) | 2016-08-04 | 2021-08-31 | Palantir Technologies Inc. | Data record resolution and correlation system |
US10133588B1 (en) | 2016-10-20 | 2018-11-20 | Palantir Technologies Inc. | Transforming instructions for collaborative updates |
US11221898B2 (en) | 2017-04-10 | 2022-01-11 | Palantir Technologies Inc. | Systems and methods for validating data |
US10503574B1 (en) | 2017-04-10 | 2019-12-10 | Palantir Technologies Inc. | Systems and methods for validating data |
US11074277B1 (en) | 2017-05-01 | 2021-07-27 | Palantir Technologies Inc. | Secure resolution of canonical entities |
US10956406B2 (en) | 2017-06-12 | 2021-03-23 | Palantir Technologies Inc. | Propagated deletion of database records and derived data |
US12079357B2 (en) | 2017-12-01 | 2024-09-03 | Palantir Technologies Inc. | Multi-user access controls in electronic simultaneously editable document editor |
US10235533B1 (en) | 2017-12-01 | 2019-03-19 | Palantir Technologies Inc. | Multi-user access controls in electronic simultaneously editable document editor |
US11061874B1 (en) | 2017-12-14 | 2021-07-13 | Palantir Technologies Inc. | Systems and methods for resolving entity data across various data structures |
US10838987B1 (en) | 2017-12-20 | 2020-11-17 | Palantir Technologies Inc. | Adaptive and transparent entity screening |
EP3511840A1 (en) * | 2018-01-12 | 2019-07-17 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Data processing method, electronic device, and computer-readable storage medium |
CN108256466A (en) * | 2018-01-12 | 2018-07-06 | 广东欧珀移动通信有限公司 | Data processing method, device, electronic equipment and computer readable storage medium |
US10970522B2 (en) | 2018-01-12 | 2021-04-06 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Data processing method, electronic device, and computer-readable storage medium |
US10866792B1 (en) | 2018-04-17 | 2020-12-15 | Palantir Technologies Inc. | System and methods for rules-based cleaning of deployment pipelines |
US10496529B1 (en) | 2018-04-18 | 2019-12-03 | Palantir Technologies Inc. | Data unit test-based data management system |
US11294801B2 (en) | 2018-04-18 | 2022-04-05 | Palantir Technologies Inc. | Data unit test-based data management system |
US12032476B2 (en) | 2018-04-18 | 2024-07-09 | Palantir Technologies Inc. | Data unit test-based data management system |
US10754822B1 (en) | 2018-04-18 | 2020-08-25 | Palantir Technologies Inc. | Systems and methods for ontology migration |
US11061542B1 (en) | 2018-06-01 | 2021-07-13 | Palantir Technologies Inc. | Systems and methods for determining and displaying optimal associations of data items |
US10795909B1 (en) | 2018-06-14 | 2020-10-06 | Palantir Technologies Inc. | Minimized and collapsed resource dependency path |
Also Published As
Publication number | Publication date |
---|---|
CA2809154C (en) | 2014-10-28 |
CA2809158A1 (en) | 2005-05-26 |
CN101189603B (en) | 2010-09-15 |
US7774368B2 (en) | 2010-08-10 |
CA2544837A1 (en) | 2005-05-26 |
EP1682989A2 (en) | 2006-07-26 |
AU2004290419A1 (en) | 2005-05-26 |
US20100268742A1 (en) | 2010-10-21 |
CA2809154A1 (en) | 2005-05-26 |
US7080104B2 (en) | 2006-07-18 |
US20120101989A1 (en) | 2012-04-26 |
JP4688813B2 (en) | 2011-05-25 |
EP2315133A2 (en) | 2011-04-27 |
WO2005048071A3 (en) | 2007-09-13 |
US8032559B2 (en) | 2011-10-04 |
US20060242210A1 (en) | 2006-10-26 |
CN101189603A (en) | 2008-05-28 |
KR20080011242A (en) | 2008-01-31 |
JP2007524927A (en) | 2007-08-30 |
US8271535B2 (en) | 2012-09-18 |
EP2315133A3 (en) | 2011-05-25 |
CA2544837C (en) | 2017-02-14 |
AU2004290419B2 (en) | 2008-04-17 |
KR20060108704A (en) | 2006-10-18 |
CA2809158C (en) | 2015-07-14 |
EP2423838A1 (en) | 2012-02-29 |
BRPI0416110A (en) | 2007-01-02 |
EP1682989A4 (en) | 2008-05-07 |
WO2005048071A2 (en) | 2005-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7080104B2 (en) | Synchronization and merge engines | |
US11445033B2 (en) | Viral engine for network deployment | |
US8195714B2 (en) | Context instantiated application protocol | |
US6820204B1 (en) | System and method for selective information exchange | |
US20070271317A1 (en) | System and Method for the Synchronization of Data Across Multiple Computing Devices | |
US20050120084A1 (en) | Method of and system for creating, maintaining, and utilizing an online universal address book | |
JP5574554B2 (en) | System and method for global directory service | |
WO2002025403A2 (en) | Automated system and method for downloading, updating and synchronizing contact information | |
AU2008202256A1 (en) | Network deployment method | |
EP1544762A1 (en) | Method and apparatus for storing and managing contacts in a distributed collaboration system | |
IL159337A (en) | Method and apparatus for storing and managing contacts in a distributed collaboration system | |
WO2003085885A1 (en) | An interactive messaging communication system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: PLAXO, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:RING, CAMERON TYLER;SHEAR, JOSEPH BARUCK;MASONIS, JOHN TODD;AND OTHERS;REEL/FRAME:014691/0046 Effective date: 20031107 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
CC | Certificate of correction | ||
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
FEPP | Fee payment procedure |
Free format text: PAT HOLDER NO LONGER CLAIMS SMALL ENTITY STATUS, ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: STOL); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553) Year of fee payment: 12 |
|
AS | Assignment |
Owner name: TIVO CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:PLAXO, INC.;REEL/FRAME:054540/0066 Effective date: 20201124 |
|
AS | Assignment |
Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH CAROLINA Free format text: SECURITY INTEREST;ASSIGNORS:ADEIA GUIDES INC.;ADEIA IMAGING LLC;ADEIA MEDIA HOLDINGS LLC;AND OTHERS;REEL/FRAME:063529/0272 Effective date: 20230501 |
|
AS | Assignment |
Owner name: ADEIA MEDIA HOLDINGS LLC, CALIFORNIA Free format text: CHANGE OF NAME;ASSIGNOR:TIVO LLC;REEL/FRAME:069083/0311 Effective date: 20220815 Owner name: TIVO LLC, CALIFORNIA Free format text: CHANGE OF NAME;ASSIGNOR:TIVO CORPORATION;REEL/FRAME:069083/0230 Effective date: 20211115 |