In accordance with embodiments, there are provided mechanisms and methods for synchronizing a server and an on-demand database service. These mechanisms and methods for synchronizing a server and an on-demand database service can enable embodiments to synchronize a larger amount of data. The ability of embodiments to provide such feature can enable more effective synchronization of a user-level sharing entity database with a multi-user on-demand database service. |
Citations|
| US5884325 | Oct 9, 1996 | Mar 16, 1999 | Oracle Corporation | System for synchronizing shared data between computers | | US6256634 | Jun 30, 1998 | Jul 3, 2001 | Microsoft Corporation | Method and system for purging tombstones for deleted data items in a replicated database | | US6374262 | Sep 1, 1998 | Apr 16, 2002 | Fujitsu Limited | Relational database synchronization method and a recording medium storing a program therefore | | US6782398 | Jun 14, 2000 | Aug 24, 2004 | Microsoft Corporation | Method for executing commands on multiple computers of a network | | US6892210 | Dec 31, 2001 | May 10, 2005 | Worldsync, Inc. | Database management and synchronization across a peer-to-peer network | | US7184524 | Feb 14, 2003 | Feb 27, 2007 | Convoq, Inc. | Rules based real-time communication system | | US7421457 | Sep 9, 2004 | Sep 2, 2008 | Siebel Systems, Inc. | Partially replicated distributed database with multiple levels of remote clients | | US7437302 | Sep 24, 2002 | Oct 14, 2008 | Siemens Medical Solutions USA, Inc. | System for managing healthcare related information supporting operation of a healthcare enterprise | | US7448040 | Jan 4, 2007 | Nov 4, 2008 | Soverain Software LLC | Transfers of information in a communications network | | US7509350 | Jun 1, 2006 | Mar 24, 2009 | Research In Motion Limited | Method and apparatus for synchronizing of databases | | US7523130 | Jan 26, 2005 | Apr 21, 2009 | | Storing and retrieving objects on a computer network in a distributed database | | US7555287 | Nov 1, 2001 | Jun 30, 2009 | Nokia Corporation | Customized messaging between wireless access point and services | | US7606881 | Apr 25, 2002 | Oct 20, 2009 | Oracle International Corporation | System and method for synchronization of version annotated objects | | US20020156862 | Apr 18, 2001 | | Inter China Network Software Company Limited | Global network of web card systems and method thereof | | US20030065827 | Sep 5, 2002 | | | System and method for dynamically securing dynamic-multi-sourced persisted EJBs | | US20030233404 | Nov 4, 2002 | | | Offline simulation of online session between client and server | | US20040054779 | Feb 10, 2003 | | | Network system | | US20040117386 | Aug 12, 2003 | | Sun Microsystems, Inc. | Syncronization facility for information domains employing dissimilar protective transformations | | US20040117667 | Aug 12, 2003 | | Sun Microsystems, Inc. | Synchronization facility for information domains employing replicas | | US20040202132 | May 3, 2004 | | | Moving mobile wireless device having continuing service from the same internet server | | US20040210909 | Apr 17, 2003 | | SalesForce.com, Inc. | Java object cache server for databases | | US20050065925 | Sep 23, 2003 | | SalesForce.Com, Inc. | Query optimization in a multi-tenant database system | | US20050177603 | Jan 5, 2005 | | | System and method for replicating files in a computer network | | US20050223022 | Apr 2, 2004 | | salesforce.com, inc. | Custom entities and fields in a multi-tenant database system | | US20050283478 | Jun 16, 2004 | | salesforce.com, inc. | Soap-based Web services in a multi-tenant database system | | US20060206834 | Mar 8, 2005 | | salesforce.com, inc. | Systems and methods for implementing multi-application tabs and tab sets | | US20070271315 | May 2, 2006 | | MYPOINTS.COM INC. | Robust silo based system architecture | | US20070282919 | Jun 1, 2006 | | | Method and apparatus for synchronizing of databases | | US20070288614 | Jun 12, 2006 | | | Method and apparatus for folder synchronization and management |
Referenced by|
| US8073590 | Dec 19, 2008 | Dec 6, 2011 | Boadin Technology, LLC | System, method, and computer program product for utilizing a communication channel of a mobile device by a vehicular assembly | | US8078397 | Dec 19, 2008 | Dec 13, 2011 | Boadin Technology, LLC | System, method, and computer program product for social networking utilizing a vehicular assembly | | US8117225 | Dec 19, 2008 | Feb 14, 2012 | Boadin Technology, LLC | Drill-down system, method, and computer program product for focusing a search | | US8117242 | Dec 19, 2008 | Feb 14, 2012 | Boadin Technology, LLC | System, method, and computer program product for performing a search in conjunction with use of an online application | | US8131458 | Dec 19, 2008 | Mar 6, 2012 | Boadin Technology, LLC | System, method, and computer program product for instant messaging utilizing a vehicular assembly | | US8131713 | Apr 14, 2010 | Mar 6, 2012 | salesforce.com, inc. | Distributive storage techniques for multi-tenant databases | | US8190692 | Dec 19, 2008 | May 29, 2012 | Boadin Technology, LLC | Location-based messaging system, method, and computer program product | | US8219527 | Mar 3, 2011 | Jul 10, 2012 | Kabushiki Kaisha Toshiba | File processing apparatus, file processing method, and computer program product | | US8229922 | Apr 8, 2009 | Jul 24, 2012 | salesforce.com, Inc. | Query optimization in a multi-tenant database system | | US8244759 | Mar 9, 2010 | Aug 14, 2012 | salesforce.com, Inc. | Systems and methods for exporting, publishing, browsing and installing on-demand applications in a multi-tenant database environment |
Claims1. A method, comprising: - determining a difference between data stored on a first server and by an on-demand database service utilizing a data structure stored on a computer readable medium, the data structure including a plurality of user identifiers each identifying one of a plurality of users of the on-demand database service and a plurality of data identifiers each correlated with at least one of the user identifiers, the data identifiers for identifying data accessible to the user associated with the correlated user identifier; and
- synchronizing the first server and the on-demand database service, based on the difference;
- wherein the on-demand database service includes an application platform that enables creation, management and execution of one or more applications that are developed by at least one of: a provider of the on-demand database service, users accessing the on-demand database service via user systems, and third party application developers accessing the on-demand database service via the user systems;
- wherein the first server communicates data to at least one second server;
- wherein the on-demand database service communicates data to a third server;
- wherein the at least one second server includes at least one slave server, and the third server includes a master server;
- wherein in response to receipt of a request to update data of at least one of the plurality of users, configuration data is sent from the on-demand database service to the master server, the configuration data including rules utilized for configuring the synchronizing of the first server and the on-demand database service;
- wherein the configuration data indicates at least one of the plurality of users that is subjected to the synchronizing of the first server and the on-demand database service, user-specific synchronization profiles for each of the at least one of the plurality of users, and field maps indicating specific fields on the on-demand database service that are mapped to specific fields on another server.
2. A method of claim 1, wherein a plurality of the second servers are in communication with the at least one first server. 3. A method of claim 2, wherein each of the second servers is allocated to a different subset of the users. 4. A method of claim 1, wherein the at least one second server and the third server each communicate with a database server. 5. A method of claim 4, wherein the database server is coupled between the at least one second server and the third server. 6. A method of claim 4, wherein the computer readable medium is a component of the database server. 7. A method of claim 1, wherein the first server and the second server communicate utilizing a collaborative authoring protocol. 8. A method of claim 1, wherein the third server and the on-demand database service communicate utilizing a web service. 9. A method of claim 1, wherein the difference is determined in response to receiving a request to update the data of at least one of the users. 10. A method of claim 9, wherein the difference is determined by identifying a subset of the data that is accessible to the at least one user, utilizing the data structure. 11. A method of claim 10, wherein the difference is further determined by comparing a current state of the data subset with a previous state of the data subset. 12. A method of claim 1, wherein the data structure includes a first table. 13. A method of claim 12, wherein a second table includes the data identifiers each correlated with corresponding data. 14. A method of claim 13, wherein the second table is used in conjunction with the first table for accessing the data using the user identifiers. 15. A method of claim 1, wherein the first server includes a user-level sharing entity. 16. A method of claim 1, wherein the on-demand database service includes a multi-tenant database system. 17. The method of claim 1, wherein the master server conditionally disables the at least one slave server. 18. A computer program product embodied on a machine-readable medium, carrying one or more sequences of instructions which, when executed by one or more processors, cause the one or more processors to carry out the steps of: - determining a difference between data stored on a first server and by an on-demand database service utilizing a data structure stored on a computer readable medium, the data structure including a plurality of user identifiers each identifying one of a plurality of users of the on-demand database service and a plurality of data identifiers each correlated with at least one of the user identifiers, the data identifiers for identifying data accessible to the user associated with the correlated user identifier; and
- synchronizing the first server and the on-demand database service, based on the difference;
- wherein the on-demand database service includes an application platform that enables creation, management and execution of one or more applications that are developed by at least one of: a provider of the on-demand database service, users accessing the on-demand database service via user systems, and third party application developers accessing the on-demand database service via the user systems;
- wherein the first server communicates data to at least one second server;
- wherein the on-demand database service communicates data to a third server;
- wherein the at least one second server includes at least one slave server, and the third server includes a master server;
- wherein in response to receipt of a request to update data of at least one of the plurality of users, the computer program product operates to send configuration data from the on-demand database service to the master server, the configuration data including rules utilized for configuring the synchronizing of the first server and the on-demand database service;
- wherein the configuration data indicates at least one of the plurality of users that is subjected to the synchronizing of the first server and the on-demand database service, user-specific synchronization profiles for each of the at least one of the plurality of users, and field maps indicating specific fields on the on-demand database service that are mapped to specific fields on another server.
19. An apparatus, comprising: - a processor; and
- one or more stored sequences of instructions which, when executed by the processor, cause the processor to carry out the steps of:
- determining a difference between data stored on a first server and by an on-demand database service utilizing a data structure stored on a computer readable medium, the data structure including a plurality of user identifiers each identifying one of a plurality of users of the on-demand database service and a plurality of data identifiers each correlated with at least one of the user identifiers, the data identifiers for identifying data accessible to the user associated with the correlated user identifier; and
- synchronizing the first server and the on-demand database service, based on the difference;
- wherein the on-demand database service includes an application platform that enables creation, management and execution of one or more applications that are developed by at least one of: a provider of the on-demand database service, users accessing the on-demand database service via user systems, and third party application developers accessing the on-demand database service via the user systems;
- wherein the first server communicates data to at least one second server;
- wherein the on-demand database service communicates data to a third server;
- wherein the at least one second server includes at least one slave server, and the third server includes a master server;
- wherein in response to receipt of a request to update data of at least one of the plurality of users, the apparatus operates to send configuration data from the on-demand database service to the master server, the configuration data including rules utilized for configuring the synchronizing of the first server and the on-demand database service;
- wherein the configuration data indicates at least one of the plurality of users that is subjected to the synchronizing of the first server and the on-demand database service, user-specific synchronization profiles for each of the at least one of the plurality of users, and field maps indicating specific fields on the on-demand database service that are mapped to specific fields on another server.
20. A data structure embodied on a computer readable medium, comprising: - a plurality of user identifier objects, each of the user identifier objects identifying one of a plurality of users of an on-demand database service;
- a plurality of data identifier objects, each of the data identifier objects correlated with at least one of the user identifier objects, and each of the data identifier objects for identifying data accessible to the user associated with the correlated user identifier object; and
- logic, carrying one or more sequences of instructions, which when executed by one or more processors, cause the one or more processors to synchronize a server and the on-demand database service utilizing the user identifier objects and the data identifier objects;
- wherein the on-demand database service includes an application platform that enables creation, management and execution of one or more applications that are developed by at least one of: a provider of the on-demand database service, users accessing the on-demand database service via user systems, and third party application developers accessing the on-demand database service via the user systems;
- wherein the data structure is utilized whereby the first server communicates data to at least one second server;
- wherein the data structure is utilized whereby the on-demand database service communicates data to a third server;
- wherein the data structure is utilized whereby the at least one second server includes at least one slave server, and the third server includes a master server;
- wherein in response to receipt of a request to update data of at least one of the plurality of users, the data structure is utilized whereby configuration data is sent from the on-demand database service to the master server, the configuration data including rules utilized for configuring the synchronizing of the first server and the on-demand database service;
- wherein the configuration data indicates at least one of the plurality of users that is subjected to the synchronizing of the first server and the on-demand database service, user-specific synchronization profiles for each of the at least one of the plurality of users, and field maps indicating specific fields on the on-demand database service that are mapped to specific fields on another server.
21. A system, comprising: - a first server;
- a second server coupled to the first server;
- a third server coupled to an on-demand database service; and
- a database server coupled to the second server and the third server, the database server for determining a difference between data stored on the first server and by the on-demand database service, and synchronizing the first server and the on-demand database service based on the difference;
- wherein the on-demand database service includes an application platform that enables creation, management and execution of one or more applications that are developed by at least one of: a provider of the on-demand database service, users accessing the on-demand database service via user systems, and third party application developers accessing the on-demand database service via the user systems;
- wherein the first server communicates data to the second server;
- wherein the on-demand database service communicates data to the third server;
- wherein the second server includes at least one slave server, and the third server includes a master server;
- wherein in response to receipt of a request to update data of at least one of the plurality of users, the system operates to send configuration data from the on-demand database service to the master server, the configuration data including rules utilized for configuring the synchronizing of the first server and the on-demand database service;
- wherein the configuration data indicates at least one of the plurality of users that is subjected to the synchronizing of the first server and the on-demand database service, user-specific synchronization profiles for each of the at least one of the plurality of users, and field maps indicating specific fields on the on-demand database service that are mapped to specific fields on another server.
|