Building a Novell Data             ®



Synchronizer Connector
A Developer's Guide




Tim Draper            Kevin Wood
De...
Agenda

    •   Introduction

    •   Data Synchronizer Architecture

    •   Connector Design Considerations

    •   Exp...
Product Introduction

    Data Synchronizer is a bi-directional and many-to-many
    sync solution that connects disparate...
Hub and Spoke

                                                       GroupWise   ®




                                  ...
Contact Use Case


                                          Contact is synchronized
     Contact is added
               ...
Connector Architecture Overview
                    Here is an overview of the connector architecture

                   ...
Scalable Architecture

    Here is an overview of                                                                     WEB ...
Web Administration

    •   LDAP-based authentication and user management

    •   Supports no LDAP scenario

    •   Admi...
Associating Users to Applications

    •   User names different between applications
    •   App username vs engine userna...
Demo
                     Login to DataSync
Add a user to the GroupWise connector
SDK Architecture – Technologies



       Web Services,
                                            XML, XSLT
       WSDL,...
Flat File Connector

     •   Flat File connector's purpose




12   © Novell, Inc. All rights reserved.
Filters and Policies using XSLT

     •   Schema manipulation
          –   Transforms one XML form to another

          ...
Flat File Connector – Demo
          Schema manipulation
      Dropping unwanted Events
Building a Connector

     •   Connector Design Considerations

     •   Connector file structure

     •   Connector User...
Connector Design Considerations

     •   Common Sync Engine Schema
     •   Connector A has no knowledge of connector B
 ...
Connector Basics

     •   Connector core logic
          –   Application Interface
     •   Connector Factory
          –...
Connector Basics – Web UI

     •   The User Interface is separate from settings
          –   Connector Settings
        ...
Exercise #1: Create a New Connector

     •   Copy Example Connector

     •   Add Connector Settings

     •   Add User I...
Data Flow in Logs

     •   /var/log/datasync
     •   Web admin log
     •   Config engine log
     •   Connector manager...
Administration API - SOAP

     •   Sync Engines
          –   start, stop, list, query status, purge cache, get and set s...
Administration API

     •   Users and Groups
          –   add, remove, list, set application name, purge cache, get and
...
Connector API - SOAP

     •   Configuration Notifications
          –   Connector start/stop
          –   Connector sett...
Application Interface

     •   GenericApplicationInterface
          –   Example connector skeleton




24   © Novell, In...
Connector Demo
Unpublished Work of Novell, Inc. All Rights Reserved.
This work is an unpublished work and contains confidential, propriet...
Building a Novell Data Synchronizer Connector: A Developer's Guide
Upcoming SlideShare
Loading in …5
×

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

2,263 views

Published on

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.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,263
On SlideShare
0
From Embeds
0
Number of Embeds
17
Actions
Shares
0
Downloads
43
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

  1. 1. Building a Novell Data ® Synchronizer Connector A Developer's Guide Tim Draper Kevin Wood Developer - Novell Developer - Novacoast tdraper@novell.com kwood@novacoast.com
  2. 2. Agenda • Introduction • Data Synchronizer Architecture • Connector Design Considerations • Explore the SDK • Building a Connector 2 © Novell, Inc. All rights reserved.
  3. 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 3 © Novell, Inc. All rights reserved.
  4. 4. Hub and Spoke GroupWise ® Interwoven Teaming Sugar CRM Mobility Novell Data Synchronizer SDK SharePoint salesforce.com SAP 4 © Novell, Inc. All rights reserved.
  5. 5. Contact Use Case Contact is synchronized Contact is added to all connected to application applications Mobile Device Novell Data Synchronizer Novell GroupWise 5 © Novell, Inc. All rights reserved.
  6. 6. Connector Architecture Overview Here is an overview of the connector architecture Sync Engine Connects to Multiple Apps SYNC ENGINE CONNECTOR APPLICATION • GroupWise OUTPUT NODE SOURCE FILTERS FILTERS SINK • SharePoint • SugarCRM • SalesForce CACHE APPLICATION INTERFACE • Documentum INPUT • Teaming SINK FILTERS FILTERS SOURCE • And Others... NODE = Incoming Event = Outgoing Event 6 © Novell, Inc. All rights reserved.
  7. 7. Scalable Architecture Here is an overview of WEB INTERFACE the scalable architecture. SERVER Single interface for administration for CONFIGURATION multiple engines and ENGINE SERVER multiple connectors. CONNECTOR CONNECTOR CONNECTOR CONNECTOR SYNC ENGINE SYNC ENGINE SYNC ENGINE SERVER “A” SERVER “B” SERVER “...n” CONNECTOR CONNECTOR 7 © Novell, Inc. All rights reserved.
  8. 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 8 © Novell, Inc. All rights reserved.
  9. 9. Associating Users to Applications • User names different between applications • App username vs engine username (DN) – LDAP DN is globally unique and authoritative 9 © Novell, Inc. All rights reserved.
  10. 10. Demo Login to DataSync Add a user to the GroupWise connector
  11. 11. SDK Architecture – Technologies Web Services, XML, XSLT WSDL, SOAP Java and .NET Python - Future 11 © Novell, Inc. All rights reserved.
  12. 12. Flat File Connector • Flat File connector's purpose 12 © Novell, Inc. All rights reserved.
  13. 13. Filters and Policies using XSLT • Schema manipulation – Transforms one XML form to another – Change <surname> → <lastName> • Dropping unwanted Events – Drop a contact 13 © Novell, Inc. All rights reserved.
  14. 14. Flat File Connector – Demo Schema manipulation Dropping unwanted Events
  15. 15. Building a Connector • Connector Design Considerations • Connector file structure • Connector User Interface creation • Connector API 15 © Novell, Inc. All rights reserved.
  16. 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 16 © Novell, Inc. All rights reserved.
  17. 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 17 © Novell, Inc. All rights reserved.
  18. 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 18 © Novell, Inc. All rights reserved.
  19. 19. Exercise #1: Create a New Connector • Copy Example Connector • Add Connector Settings • Add User Interface • Add an instance of the new connector 19 © Novell, Inc. All rights reserved.
  20. 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 ® 20 © Novell, Inc. All rights reserved.
  21. 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? 21 © Novell, Inc. All rights reserved.
  22. 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 22 © Novell, Inc. All rights reserved.
  23. 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. 23 © Novell, Inc. All rights reserved.
  24. 24. Application Interface • GenericApplicationInterface – Example connector skeleton 24 © Novell, Inc. All rights reserved.
  25. 25. Connector Demo
  26. 26. 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 Disclaimer This 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.

×