A synchronization system is provided that distributes synchronization
system-based applications and synchronization system-based application
extensions and their associated resources and components (hereinafter
"plug-in applications" or "plug-ins"). Components are maintained such
that any synchronization system-based application instantiation may be
changed or updated by the synchronization system. In one specific example
using the synchronization system, each synchronization system-based
application or plug-in is self-contained and self-updateable through a
synchronization system synchronization process. A further benefit is that
the synchronization system and synchronization system-based applications
may be extended independent of device type or operating system. Thus, a
system is provided for synchronizing one or more plug-in applications. In
one example, the system for synchronizing plug-in applications inclides a
synchronization system having at least one distributed database that is
configured to store a plug-in application, and a schema for the database.
Optionally, the distributed database may be configured to store plug-in
application instantiation information, synchronization system-based
application association information, role, permissions, access control
rights, and data associated with the plug-in application. In one example,
each distributed database has at least two instances, and the plug-in
application (and optional resources and components) is stored in at least
one instance of the distributed database. As described herein, the
synchronization system is configured to synchronize the plug-in
application (and optional resources and components) between the instances
of said distributed database.