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

27
Building a Novell® Data Synchronizer Connector A Developer's Guide Tim Draper Developer - Novell [email protected] Kevin Wood Developer - Novacoast [email protected]

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 of Building a Novell Data Synchronizer Connector: A Developer's Guide

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

Building a Novell® Data Synchronizer ConnectorA Developer's Guide

Tim DraperDeveloper - [email protected]

Kevin WoodDeveloper - [email protected]

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

© Novell, Inc. All rights reserved.2

Agenda

• Introduction

• Data Synchronizer Architecture

• Connector Design Considerations

• Explore the SDK

• Building a Connector

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

© 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

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

© Novell, Inc. All rights reserved.4

Hub and Spoke

Novell DataSynchronizer

SDK

Interwoven

GroupWise®

SAP

MobilitySugar CRM

Teaming

SharePoint salesforce.com

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

© 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

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

© 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

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

© 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.

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

© 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

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

© 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

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

DemoLogin to DataSync

Add a user to the GroupWise connector

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

© Novell, Inc. All rights reserved.11

XML, XSLT

Java and .NET- Future

Web Services,WSDL, SOAP

SDK Architecture – Technologies

Python

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

© Novell, Inc. All rights reserved.12

Flat File Connector

• Flat File connector's purpose

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

© 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

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

Flat File Connector – DemoSchema manipulation

Dropping unwanted Events

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

© Novell, Inc. All rights reserved.15

Building a Connector

• Connector Design Considerations

• Connector file structure

• Connector User Interface creation

• Connector API

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

© 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

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

© 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

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

© 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

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

© 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

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

© 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

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

© 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?

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

© 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

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

© 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.

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

© Novell, Inc. All rights reserved.24

Application Interface

• GenericApplicationInterface

– Example connector skeleton

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

Connector Demo

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

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.