Building  a Novell ®  Data Synchronizer Connector A Developer's Guide Uwe Carsten Krause Senior Consultant – Maintainet AG...
Agenda <ul><li>Introduction
Data Synchronizer Architecture
Connector Design Considerations
Explore the SDK
Building a Connector </li></ul>
Product Introduction Data Synchronizer is a bi-directional and  many-to-many sync solution that connects disparate collabo...
Connection to multiple applications
Many pre-configured connectors
Customizable connectors </li></ul></ul>
Hub and Spoke Novell Data Synchronizer SDK
Contact Use Case Contact is added to application Contact is synchronized to all connected applications Novell Data Synchro...
Connector Architecture Overview Here is an overview of the connector architecture SYNC ENGINE CONNECTOR APPLICATION <ul><l...
SharePoint
SugarCRM
SalesForce
Documentum
Teaming
And Others... </li></ul>= Incoming Event = Outgoing Event
Scalable Architecture SYNC ENGINE SERVER “A” SYNC ENGINE SERVER “B” SYNC ENGINE SERVER “...n” WEB INTERFACE SERVER CONFIGU...
Web Administration <ul><li>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 </li></ul>
Associating Users to Applications <ul><li>User names different between applications
App username vs engine username (DN) </li><ul><li>LDAP DN is globally unique and authoritative </li></ul></ul>
Demo Login to DataSync Add a User to the GroupWise ®  Connector
Upcoming SlideShare
Loading in …5
×

Cl302

539 views

Published on

Novell Brainshare 2010 Amsterdam

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
539
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Cl302

  1. 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. 2. Agenda <ul><li>Introduction
  3. 3. Data Synchronizer Architecture
  4. 4. Connector Design Considerations
  5. 5. Explore the SDK
  6. 6. Building a Connector </li></ul>
  7. 7. Product Introduction Data Synchronizer is a bi-directional and many-to-many sync solution that connects disparate collaboration software Features and benefits include: <ul><ul><li>Real-time, event-driven sync
  8. 8. Connection to multiple applications
  9. 9. Many pre-configured connectors
  10. 10. Customizable connectors </li></ul></ul>
  11. 11. Hub and Spoke Novell Data Synchronizer SDK
  12. 12. Contact Use Case Contact is added to application Contact is synchronized to all connected applications Novell Data Synchronizer Mobile Device Novell ® GroupWise ®
  13. 13. Connector Architecture Overview Here is an overview of the connector architecture SYNC ENGINE CONNECTOR APPLICATION <ul><li>GroupWise ®
  14. 14. SharePoint
  15. 15. SugarCRM
  16. 16. SalesForce
  17. 17. Documentum
  18. 18. Teaming
  19. 19. And Others... </li></ul>= Incoming Event = Outgoing Event
  20. 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. 21. Web Administration <ul><li>LDAP-based authentication and user management
  22. 22. Supports no LDAP scenario
  23. 23. Administrators can configure users, groups, connectors, engines, and caching
  24. 24. User can log in and manage their connector-specific settings </li></ul>
  25. 25. Associating Users to Applications <ul><li>User names different between applications
  26. 26. App username vs engine username (DN) </li><ul><li>LDAP DN is globally unique and authoritative </li></ul></ul>
  27. 27. Demo Login to DataSync Add a User to the GroupWise ® Connector
  28. 28. SDK Architecture – Technologies
  29. 29. Flat File Connector <ul><li>Flat File connector's purpose </li></ul>
  30. 30. Filters and Policies using XSLT <ul><li>Schema manipulation </li><ul><li>Transforms one XML form to another
  31. 31. Change <surname> -> <lastName> </li></ul><li>Dropping unwanted events </li><ul><li>Drop a contact </li></ul></ul>
  32. 32. Flat File Connector – Demo Schema Manipulation Dropping Unwanted Events
  33. 33. Building a Connector <ul><li>Connector design considerations
  34. 34. Connector file structure
  35. 35. Connector user interface creation
  36. 36. Connector API </li></ul>
  37. 37. Connector Design Considerations <ul><li>Common sync engine schema
  38. 38. Connector A has no knowledge of connector B
  39. 39. Does application provide real time events? </li><ul><li>Yes : Connector can listen for events
  40. 40. No : Connector polls and tracks application state </li></ul><li>User settings
  41. 41. Customizable connector policies on a per-site basis </li></ul>
  42. 42. Connector Basics <ul><li>Connector core logic </li><ul><li>Application Interface </li></ul><li>Connector Factory </li><ul><li>Connector definitions in XML
  43. 43. Connector settings
  44. 44. Filter set </li></ul><li>Starting up a connector </li><ul><li>Connector manager
  45. 45. Starting a connector on the command line </li></ul></ul>
  46. 46. Connector Basics – Web UI <ul><li>The user interface is separate from settings </li><ul><li>Connector settings </li><ul><li>connector.xml </li></ul><li>User interface </li><ul><li>connector.tpl </li></ul></ul><li>Not all settings need to have UI </li></ul>
  47. 47. Exercise #1: Create a New Connector <ul><li>Copy example connector
  48. 48. Add connector settings
  49. 49. Add user interface
  50. 50. Add an instance of the new connector </li></ul>
  51. 51. Data Flow in Logs <ul><li>/var/log/datasync
  52. 52. Web admin log
  53. 53. Config engine log
  54. 54. Connector manager log
  55. 55. Connector pipeline “dot-log”
  56. 56. Connector AppInterface log
  57. 57. Per-User or Group log
  58. 58. GroupWise ® POA Log </li></ul>
  59. 59. Administration API - SOAP <ul><li>Sync engines </li><ul><li>start, stop, list, query status, purge cache, get and set settings </li></ul><li>Configuration engine </li><ul><li>get and set settings </li></ul><li>Connectors </li><ul><li>start, stop, create, delete, purge cache, get and set setting
  60. 60. List connectors? </li></ul></ul>
  61. 61. Administration API <ul><li>Users and groups </li><ul><li>add, remove, list, set application name, purge cache, get and set settings </li></ul><li>Profiles </li><ul><li>create, delete, list, get and set settings </li></ul><li>XSLT policies </li><ul><li>List get and set settings </li></ul><li>Miscellaneous </li><ul><li>authenticate, LDAP search, DN lookups, ping, relay direct query </li></ul></ul>
  62. 62. Connector API - SOAP <ul><li>Configuration notifications </li><ul><li>Connector start/stop
  63. 63. Connector settings change
  64. 64. User/Group is added or removed
  65. 65. Target application name or setting change </li></ul><li>Data event notifications </li><ul><li>Event Received
  66. 66. Direct Query Received </li></ul><li>Calls to sync engine </li><ul><li>Send Event/DQ to engine
  67. 67. User/Group lookups, LDAP calls, cache, attachments, etc. </li></ul></ul>
  68. 68. Application Interface <ul><li>GenericApplicationInterface </li><ul><li>Example connector skeleton </li></ul></ul>
  69. 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.

×