Always in Sync
A Deep Dive into Novell Data Synchronizer
Written by Ken Baker
More on Filters
One of the standard filters in Novell Data Synchronizer provides a circular sync check. As data passes from the connector to the synchronization engine, this filter makes sure that it’s not synchronizing the same data over and over again in a circular fashion. This circular check filter prevents the creation of duplicate information.
The default filters that come with a connector are typically sufficient to enable the translation of data from an application-specific format into an application-neutral format and vice versa, as well as apply other basic filter operations. However, since these filters are made up of XSLT files, if you’re familiar with XSLT you can manually configure them if necessary. (See Figure 2.)
While you can define additional filter functions using the connector's custom namespace, the following are standard functions provided in the Novell Data Synchronizer namespace:
- def logMessage(self, context, message, level='warning'): log a message
- def getSettingsForTarget(self, context, targetDn): returns a user's settings
- def getConnectorSettings(self, context): returns a connector's settings
- def getEngineSettings(self, context):returns the sync engine's settings
- def getConfigEngineSettings(self, context): returns config engine's settings
- def getMatchingUserDN(self, context, sourceName): returns the dn of a user with a unique cn provided
- def dnExists(self, context, dn): checks if the dn is a valid dn in the tree
- def isTargetEnabled(self, context, dn): checks if the user is in the user table for the connector
- def base64Encode(self, context, message):
- def base64Decode(self, context, encodedMessage, returnAsNodeset=False):
- def stripHTML(self, context, text, unescapeFirst=False): removes html from the text
- def itemIDToObjectID(self, itemID):
- def objectIDToItemID(self, objectID):
Other Novell Data Synchronizer Components
In addition to the synchronization engine, connectors, channels and filters, the following three components play a critical role in the operation of the Novell Data Synchronizer system:
- Web Administration Service provides a Web-based interface called Synchronizer Web Admin to facilitate administration and management of the Data Synchronizer system. It allows you to add and remove connectors, as well as add or remove users for specific connectors and configure their individual synchronization settings. Users can also use the Synchronizer Web Admin to configure and control synchronization settings for each of their connected applications and devices.
- Synchronizer Configuration Engine provides communication between the Synchronizer Web Admin and the synchronization engine. The configuration engine passes configuration information from the synchronization engine to the Synchronizer Web Admin for viewing. It also passes configuration changes back to the synchronization engine for implementation.
- Connector Manager provides communication between the synchronization engine and connectors.
Novell Data Synchronizer also includes LDAP integration. While not required, Novell Data Synchronizer can leverage an LDAP directory to further facilitate user and group management.
The synchronization engine, connectors, filters, channels, open development environment and other architectural components of Novell Data Synchronizer all combine to give you the real-time synchronization that your users need among their diverse applications and mobile devices.
In addition to the connectors that Novell provides, Novell gives you a number of tools to facilitate the development of additional connectors. The first of these tools is the software development kit for Novell Data Synchronizer, which guides you in how to take advantage of the product’s open API.
Novell also provides a generic SOAP connector, which accesses Novell Data Synchronizer using standard SOAP calls. Primarily intended to be used as an example connector, the SOAP connector provides a guide or reference point for someone who wants to develop a connector. You can use the connector as a model to see how the synchronization engine transforms data coming out of the GroupWise system.
As an additional connector development tool, Novell also provides a flat file connector. The flat file connector can take item and event data cached in the synchronization engine, translate it into an XML format administrators can read, and push it to a specified directory or folder on the network. Once placed in the specified folder, it can be consumed by other applications or manually accessed by users. (See Figure 3.)
The flat file connector also has the ability to periodically poll a specified folder for newly stored data. When it identifies new data, it can grab that data and pass it back to the synchronization engine for consumption by connected applications or devices.
While it operates on a fairly simple and straightforward concept, its inherent flexibility and open nature make the flat file connector quite powerful in helping you extend the capabilities of Novell Data Synchronizer in a variety of ways. In essence, it gives you a semi-technical programming interface that can help you customize and extend the capabilities of Novell Data Synchronizer.
Leveraging the connector, you could create a custom application that when a certain event happens, it generates information in an XML file format and then stores it in a specified folder. Once in the folder, the flat file connector can grab it, transform it and store it in the synchronization engine where it can be used by other connected applications.
Another possible use would be to use the flat file connector to retrieve and forward reports generated by a certain application. The application could generate the report as an XML file and store it in a specified folder. As the flat file connector polls that folder, it would discover the new report, transform it into an application-neutral format, and store it in the synchronization engine database where it can be consumed by other connected applications or sent to a specific user.
The flat file connector could also be used to pre-populate a new user’s GroupWise, SharePoint, or SugarCRM system with standard information. To accomplish this, you might manually create a file in the proper XML format with the desired information and then store it in a specified directory. The flat file connector can then grab, transform and store that data in the synchronization engine cache. When a new account is created for a user, its application-specific connector can then automatically pull that data from the synchronization engine and pre-populate the user’s account accordingly.
Syncing It All Together
The synchronization engine, connectors, filters, channels, open development environment and other architectural components of Novell Data Synchronizer all combine to give you the real-time synchronization that your users need among their diverse applications and mobile devices. They work together to help you improve your organization’s collaboration efforts through seamless and real-time synchronization of e-mail, calendar, contact, event and other collaboration data residing in your business and collaboration systems. Whether in the office, at home or on the road, Novell Data Synchronizer can help ensure that your users always have access to the right information in the right place at the right time.
To learn more visit www.novell.com/datasync.