Post on 29-Nov-2014
description
Building a Novell® Data Synchronizer ConnectorA Developer's Guide
Tim DraperDeveloper - Novelltdraper@novell.com
Kevin WoodDeveloper - Novacoastkwood@novacoast.com
© Novell, Inc. All rights reserved.2
Agenda
• Introduction
• Data Synchronizer Architecture
• Connector Design Considerations
• Explore the SDK
• Building a Connector
© Novell, Inc. All rights reserved.3
Product Introduction
Data Synchronizer is a bi-directional and many-to-many sync solution that connects disparate collaboration software
Features and benefits include:
– Real-time, event-driven sync
– Connection to multiple applications
– Many pre-configured connectors
– Customizable connectors
© Novell, Inc. All rights reserved.4
Hub and Spoke
Novell DataSynchronizer
SDK
Interwoven
GroupWise®
SAP
MobilitySugar CRM
Teaming
SharePoint salesforce.com
© Novell, Inc. All rights reserved.5
Contact Use Case
Novell DataSynchronizer
Mobile Device
Novell GroupWise
Contact is addedto application
Contact is synchronizedto all connected
applications
© Novell, Inc. All rights reserved.6
Connector Architecture Overview
Here is an overview of the connector architecture
SYNC ENGINE
CONNECTOR APPLICATION
• GroupWise• SharePoint• SugarCRM• SalesForce• Documentum• Teaming• And Others...
Sync Engine Connects to Multiple Apps
CACHE
OUTPUTNODE
INPUTNODE
SOURCE
SINK
FILTERS
FILTERS
FILTERS
FILTERS
APPLICATIONINTERFACE
SINK
SOURCE
= Incoming Event
= Outgoing Event
© Novell, Inc. All rights reserved.7
Scalable Architecture
CONNECTOR
CONNECTOR
CONNECTOR
CONNECTOR
CO
NN
EC
TOR
CO
NN
EC
TOR
SYNC ENGINESERVER “A”
SYNC ENGINESERVER “B”
SYNC ENGINESERVER “...n”
WEB INTERFACESERVER
CONFIGURATIONENGINE SERVER
Here is an overview ofthe scalable architecture.
Single interface foradministration formultiple engines andmultiple connectors.
© Novell, Inc. All rights reserved.8
Web Administration
• LDAP-based authentication and user management
• Supports no LDAP scenario
• Administrators can configure users, groups, connectors, engines, and caching
• User can log in and manage their connector-specific settings
© Novell, Inc. All rights reserved.9
Associating Users to Applications
• User names different between applications• App username vs engine username (DN)
– LDAP DN is globally unique and authoritative
DemoLogin to DataSync
Add a user to the GroupWise connector
© Novell, Inc. All rights reserved.11
XML, XSLT
Java and .NET- Future
Web Services,WSDL, SOAP
SDK Architecture – Technologies
Python
© Novell, Inc. All rights reserved.12
Flat File Connector
• Flat File connector's purpose
© Novell, Inc. All rights reserved.13
Filters and Policies using XSLT
• Schema manipulation
– Transforms one XML form to another
– Change <surname> → <lastName>
• Dropping unwanted Events
– Drop a contact
Flat File Connector – DemoSchema manipulation
Dropping unwanted Events
© Novell, Inc. All rights reserved.15
Building a Connector
• Connector Design Considerations
• Connector file structure
• Connector User Interface creation
• Connector API
© Novell, Inc. All rights reserved.16
Connector Design Considerations
• Common Sync Engine Schema
• Connector A has no knowledge of connector B
• Does application provide real time events?
– Yes: Connector can listen for events
– No: Connector polls and tracks application state
• User settings
• Customizable connector policies on a per-site basis
© Novell, Inc. All rights reserved.17
Connector Basics
• Connector core logic– Application Interface
• Connector Factory– Connector definitions in XML
– Connector settings
– Filter set
• Starting up a connector– Connector Manager
– Starting a connector on the command line
© Novell, Inc. All rights reserved.18
Connector Basics – Web UI
• The User Interface is separate from settings
– Connector Settings
> connector.xml
– User Interface
> connector.tpl
• Not all settings need to have UI
© Novell, Inc. All rights reserved.19
Exercise #1: Create a New Connector
• Copy Example Connector
• Add Connector Settings
• Add User Interface
• Add an instance of the new connector
© Novell, Inc. All rights reserved.20
Data Flow in Logs
• /var/log/datasync
• Web admin log
• Config engine log
• Connector manager log
• Connector pipeline “dot-log”
• Connector AppInterface log
• Per-User or Group log
• GroupWise® POA Log
© Novell, Inc. All rights reserved.21
Administration API - SOAP
• Sync Engines
– start, stop, list, query status, purge cache, get and set settings
• Configuration Engine
– get and set settings
• Connectors
– start, stop, create, delete, purge cache, get and set setting
– List connectors?
© Novell, Inc. All rights reserved.22
Administration API
• Users and Groups
– add, remove, list, set application name, purge cache, get and set settings
• Profiles
– create, delete, list, get and set settings
• XSLT Policies
– List get and set settings
• Miscellaneous
– authenticate, LDAP search, DN lookups, ping, relay direct query
© Novell, Inc. All rights reserved.23
Connector API - SOAP
• Configuration Notifications– Connector start/stop– Connector settings change– User/Group is added or removed– Target application name or setting change
• Data Event Notifications– Event Received– Direct Query Received
• Calls to Sync Engine– Send Event/DQ to engine – User/Group lookups, LDAP calls, cache, attachments, etc.
© Novell, Inc. All rights reserved.24
Application Interface
• GenericApplicationInterface
– Example connector skeleton
Connector Demo
Unpublished Work of Novell, Inc. All Rights Reserved.This work is an unpublished work and contains confidential, proprietary, and trade secret information of Novell, Inc. Access to this work is restricted to Novell employees who have a need to know to perform tasks within the scope of their assignments. No part of this work may be practiced, performed, copied, distributed, revised, modified, translated, abridged, condensed, expanded, collected, or adapted without the prior written consent of Novell, Inc. Any use or exploitation of this work without authorization could subject the perpetrator to criminal and civil liability.
General DisclaimerThis document is not to be construed as a promise by any participating company to develop, deliver, or market a product. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. Novell, Inc. makes no representations or warranties with respect to the contents of this document, and specifically disclaims any express or implied warranties of merchantability or fitness for any particular purpose. The development, release, and timing of features or functionality described for Novell products remains at the sole discretion of Novell. Further, Novell, Inc. reserves the right to revise this document and to make changes to its content, at any time, without obligation to notify any person or entity of such revisions or changes. All Novell marks referenced in this presentation are trademarks or registered trademarks of Novell, Inc. in the United States and other countries. All third-party trademarks are the property of their respective owners.