How BDSS Synchronizes Users

2-4 Administrators Guide for Oracle Business Data Synchronization Server user called a Hub user . The Dispatcher can be triggered either by the schedule, or when a connector sends an event notification to the Hub when a user has changed a record. Scheduler-based synchronization synchronizes all users at each interval, even if some users have no changes. Event-based synchronization is more efficient, as users only synchronize when there is data to be synchronized.

2.1.2.1 Synchronization Options

You can set the following synchronization options for each user on each connector domain. For example, if synchronization is enabled for task items for a user, then BDSS automatically synchronizes the task for that user. Inbound The inbound direction limits the exchange of data for an entity such as a domain, user, or a connector to only pushing records and record updates to the PIM server. Changes to the records on the PIM server are not propagated to other systems. Outbound Outbound direction enables the connector to extract Create, Update, and Delete record event data from the PIM server. The outbound direction limits the synchronization for an entity by only allowing changes to be collected from a PIM server. No records or changes are pushed to a PIM server. None No synchronization of data occurs. Full Full synchronization enables bidirectional that is, both inbound and outbound synchronization. You can configure the synchronization direction for any connector, domain, and user. For more information, see Section 4.1.2, Specifying the Synchronization Direction.

2.1.2.2 Scheduler-Based Synchronization

A typical flow demonstrating a synchronization session between a BPEL server and the Microsoft Exchange server is as follows: 1. The Scheduler triggers the Dispatcher. 2. The Dispatcher searches for Hub users who are available for synchronization, meaning those users who, despite having been enabled for synchronization, are not currently synchronizing. 3. The Dispatcher chunks these users into batches. 4. The Dispatcher sends the batches to the Engine. 5. The Engine starts a synchronization session for each user. 6. The synchronization session performs the following operations: a. Determines the appropriate PIM servers for the user. b. Determines the domains such as Tasks or Contacts for the user. c. Sends an extract message to the connector instance for each connector. This extract message lists the user domains for which record changes are requested. Understanding the BDSS Architecture 2-5 7. The connectors return the extract response to the Engine. Each extract response contains information describing new, updated, and deleted records for a particular connector domain. 8. The Engine merges the extract response records, resolving conflicts as needed. 9. The Engine sends the appropriate record changes to each PIM server. 10. The user’s synchronization process terminates. See also Section D.1.9, Synchronization Session.

2.1.2.3 Tracking Record Changes Using Synchronization State

The Engine tracks the user’s domain records that have been exported successfully from a PIM server using connector-provided data known as the synchronization state. Synchronization state is monitored at the connector domain level. For more information about synchronization state, see Appendix D, Connector API.

2.1.3 Event-Based Synchronization

Event-based synchronization reduces the amount of processing required of the Hub. It also reduces network and database usage by eliminating unneeded user synchronization sessions. Using event-based synchronization, the Hub synchronizes users only when record changes occur. If there are no changes for a user, then the Hub does not synchronize the user. User changes that affect the domains do not trigger synchronization sessions; as in standard synchronization described in Section 2.1.2 , the scheduler dictates the frequency of the synchronization sessions. The event-based synchronization process is initiated when a PIM server notifies its connector that a users records have changed. The connector then notifies the Hub and sets an event flag that identifies the user as having changed records on the PIM server. When the Scheduler triggers a new synchronization cycle, the Dispatcher batches this user to the Engine to undergo synchronization. BDSS works with connectors and PIM servers that can flag users for event-based synchronization and with PIM servers that cannot flag users for event-based synchronization. In systems where all of the connectors and PIM servers can flag users for event-based synchronization, the Dispatcher batches users with change flags. When synchronization is started for theses users, the Hub synchronizes them as it would in a scheduled synchronization session that is, the Hub requests changes from the connector, since changes may have occurred to a user’s PIM data after the Hub received the connector’s initial notification. The Engine does not process users or send an extract message to the connector during the synchronization cycle. During these synchronization sessions, the synchronization direction is Inbound Only for the unflagged user. In systems having connectors that cannot flag events, the Hub synchronizes all of the users that belong to these connectors for event-based synchronization. If a BDSS connector cannot support sending event notifications, then the Hub cannot support the event-based method to initiate user synchronization sessions. For example, if changes were made in a system where a connector was unable to detect changes, the Hub could not synchronize the records for a user unless a change to a record was made in a system that has a connector that supports event notification for that same user. Each time BDSS starts or restarts, it sets change flags for users who synchronize on all of the domains that are set for either Full or Inbound synchronization. These flags 2-6 Administrators Guide for Oracle Business Data Synchronization Server enable connectors to create subscriptions for the user. A connector creates separate subscriptions for each domain if it can to do so. The Event-Based Synchronization Flow 1.