Your SlideShare is downloading. ×
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.


Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply



Published on

Novell Brainshare 2010 Amsterdam

Novell Brainshare 2010 Amsterdam

Published in: Technology

  • Be the first to comment

  • Be the first to like this

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. Building a Novell ® Data Synchronizer Connector A Developer's Guide Uwe Carsten Krause Senior Consultant – Maintainet AG [email_address] Dirk Giles Developer - Novell [email_address]
  • 2. Agenda
    • Introduction
    • 3. Data Synchronizer Architecture
    • 4. Connector Design Considerations
    • 5. Explore the SDK
    • 6. Building a Connector
  • 7. 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
      • 8. Connection to multiple applications
      • 9. Many pre-configured connectors
      • 10. Customizable connectors
  • 11. Hub and Spoke Novell Data Synchronizer SDK
  • 12. Contact Use Case Contact is added to application Contact is synchronized to all connected applications Novell Data Synchronizer Mobile Device Novell ® GroupWise ®
  • 13. Connector Architecture Overview Here is an overview of the connector architecture SYNC ENGINE CONNECTOR APPLICATION = Incoming Event = Outgoing Event
  • 20. Scalable Architecture SYNC ENGINE SERVER “A” SYNC ENGINE SERVER “B” SYNC ENGINE SERVER “...n” WEB INTERFACE SERVER CONFIGURATION ENGINE SERVER Here is an overview of the scalable architecture Single interface for administration for multiple engines and multiple connectors CONNECTOR CONNECTOR CONNECTOR CONNECTOR CONNECTOR CONNECTOR
  • 21. Web Administration
    • LDAP-based authentication and user management
    • 22. Supports no LDAP scenario
    • 23. Administrators can configure users, groups, connectors, engines, and caching
    • 24. User can log in and manage their connector-specific settings
  • 25. Associating Users to Applications
    • User names different between applications
    • 26. App username vs engine username (DN)
      • LDAP DN is globally unique and authoritative
  • 27. Demo Login to DataSync Add a User to the GroupWise ® Connector
  • 28. SDK Architecture – Technologies
  • 29. Flat File Connector
    • Flat File connector's purpose
  • 30. Filters and Policies using XSLT
    • Schema manipulation
      • Transforms one XML form to another
      • 31. Change <surname> -> <lastName>
    • Dropping unwanted events
      • Drop a contact
  • 32. Flat File Connector – Demo Schema Manipulation Dropping Unwanted Events
  • 33. Building a Connector
    • Connector design considerations
    • 34. Connector file structure
    • 35. Connector user interface creation
    • 36. Connector API
  • 37. Connector Design Considerations
    • Common sync engine schema
    • 38. Connector A has no knowledge of connector B
    • 39. Does application provide real time events?
      • Yes : Connector can listen for events
      • 40. No : Connector polls and tracks application state
    • User settings
    • 41. Customizable connector policies on a per-site basis
  • 42. Connector Basics
    • Connector core logic
      • Application Interface
    • Connector Factory
      • Connector definitions in XML
      • 43. Connector settings
      • 44. Filter set
    • Starting up a connector
      • Connector manager
      • 45. Starting a connector on the command line
  • 46. 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
  • 47. Exercise #1: Create a New Connector
    • Copy example connector
    • 48. Add connector settings
    • 49. Add user interface
    • 50. Add an instance of the new connector
  • 51. Data Flow in Logs
    • /var/log/datasync
    • 52. Web admin log
    • 53. Config engine log
    • 54. Connector manager log
    • 55. Connector pipeline “dot-log”
    • 56. Connector AppInterface log
    • 57. Per-User or Group log
    • 58. GroupWise ® POA Log
  • 59. 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
      • 60. List connectors?
  • 61. 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
  • 62. Connector API - SOAP
    • Configuration notifications
      • Connector start/stop
      • 63. Connector settings change
      • 64. User/Group is added or removed
      • 65. Target application name or setting change
    • Data event notifications
      • Event Received
      • 66. Direct Query Received
    • Calls to sync engine
      • Send Event/DQ to engine
      • 67. User/Group lookups, LDAP calls, cache, attachments, etc.
  • 68. Application Interface
    • GenericApplicationInterface
      • Example connector skeleton
  • 69. Connector Demo
  • 70.  
  • 71. 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.