Gaia/Contacts/Data Refactor/mozcontactsProposal: Difference between revisions

Jump to navigation Jump to search
Line 9: Line 9:
[[File:MozContactsDatastore_Architecture.png]]
[[File:MozContactsDatastore_Architecture.png]]


The figure below depitcs the proposed architecture. The main components are:
The figure above depitcs the proposed architecture. The main components are:


* Contacts Providers and their Datastores. They will create, update or delete contacts data in their specific datastores. It is expected that Contact Providers will be in charge of bidirectional synchronization with the external contact providers (Facebook, Gmail, etc.).  
* '''Contacts Providers and their Datastores'''. They will create, update or delete contacts data in their specific datastores. It is expected that Contact Providers will be as well in charge of bidirectional synchronization with external contact providers (Facebook, Gmail, etc.).  
* Contact Manager. It will be in charge of listening to changes in the providers datastores and synchronizing with the GlobalContactsDatastore accordingly. It performs the matching and merging algorithms for those contacts arriving from the provider datastores.  
 
* Contact Index Datastore. It is a datastore that will contain an index (by tel, email, name) to the Global Contacts Datastore. Any certified app in the system can get access to this index, including the Contacts App and the Contacts Manager. The main role of this datastore is to share a common index between all certified apps. However, if any app needs other index it will have to create it by itself, by using the sync facilities provided by the global datastore.  
* '''Contacts Manager'''. It will responsible for listening to changes in the providers datastores and synchronizing with the GlobalContactsDatastore accordingly. It performs the matching and merging algorithms for those contacts arriving from the provider datastores.  
* Contacts App. The Contacts App as we know it, but with no specific dependencies on Facebook.  
 
* Consumer App. Any certified app in the system that wants to get access to contacts (dialer, messaging, email, etc.)
* '''Contact Index Datastore'''. It is a datastore that will contain an index (by tel, email, name) to the Global Contacts Datastore. Any certified app in the system can get access to this index, including the Contacts App and the Contacts Manager. The main role of this datastore is to share a common index between all certified apps. However, if any app needs an specific index it will have to create it by itself, by means of using the sync facilities provided by the global datastore.  
 
* '''Contacts App'''. The Contacts App as we know it, but with no specific dependencies on Facebook. The Contacts App can perform active matching and merging by getting access to the Contact Index Datastore. However it is expected that Contacts App will also keep its own indexes to support the search requirements from the Contacts UI.
 
* '''Consumer App'''. Any certified app in the system that wants to get access to contacts (dialer, messaging, email, etc.)
 
* '''Other apps'''. If granted, privileged apps may get access to the Global Contacts Datastore or any other provider datastore.


= Advantages =
= Advantages =
172

edits

Navigation menu