Building a Novell Data Synchronizer Connector: A Developer's Guide

Post on 29-Nov-2014

2,778 views 5 download

description

Releasing in 2010, Novell Data Synchronizer will play a vital role in bringing together the people, tools and interactions that drive greater innovation and productivity. In this session we'll introduce you to this bi-directional, many-to-many synchronization engine that connects disparate collaboration solutions, business applications and mobile devices. You'll also learn how to create your own connectors so you can integrate even more of your environment.

transcript

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.