Presentation is loading. Please wait.

Presentation is loading. Please wait.

Custom DirXML™ Driver Development Richard Matheson DirXML Driver Development Manager Manager

Similar presentations


Presentation on theme: "Custom DirXML™ Driver Development Richard Matheson DirXML Driver Development Manager Manager"— Presentation transcript:

1 www.novell.com Custom DirXML™ Driver Development Richard Matheson DirXML Driver Development Manager Manager rmatheson@novell.com

2 Vision…one Net A world where networks of all types—corporate and public, intranets, extranets, and the Internet—work together as one Net and securely connect employees, customers, suppliers, and partners across organizational boundaries. Mission To solve complex business and technical challenges with Net business solutions that enable people, processes, and systems to work together and our customers to profit from the opportunities of a networked world.

3 one Net business solutions model Net Services Software Core Services Platform Operating Systems Networking & Storage AccessSecurityAccessSecurity Application Provisioning User Provisioning CollaborationCollaboration NetWareNetWareWindowsWindowsSolarisSolarisLinuxLinux AIXAIX…… eDirectoryeDirectory IntegrationServicesIntegrationServicesResourceManagementResourceManagementStorageManagementStorageManagementFileFilePrintPrint Web Access Content Delivery DeliveryContent Portal Services MessagingMessaging …… Product Groups Employees Employees SuppliersSuppliersCustomersCustomers One Net Business Strategy Professional Services Solutions Practices RapidTechnologyRationalizationRapidTechnologyRationalization BPM for Local Govt BPM for Local Govt ActiveInformationPortalsActiveInformationPortals…… Secure Partner Portal Identity Provisioning for PeopleSoft Identity Provisioning for PeopleSoft

4 Session Roadmap DirXML™ Overview DirXML Architecture DirXML Driver Overview Driver Design Considerations DirXML Driver Architecture Demonstration Resources Conclusion

5 What is DirXML? Data-sharing service  Provides bi-directional data flow between eDirectory and enterprise applications  Administrator determines the data to be shared Matches Existing Business Processes  Runs on all Novell eDirectory ™ supported platforms (NetWare, Win2K, NT, Solaris, Linux, AIX)  Requires no changes to existing applications  Transforms data into the format required by the target application.

6 Bringing the Directory to the Application General method for directory enabling applications  The applications don’t have to change Sharing data through the directory  Transform data to/from the application’s native format  Common data is stored in the directory

7 Islands of Isolated Data HRERPDENDir.E-MailOSDB

8 Sharing Data through the Directory HRERPDENDir.MailOSDB Novell eDirectory Novell eDirectory ™ with DirXML

9 DirXML Architecture Novell eDirectory DirXML Engine DirXML Driver Shim Novell eDirectory Server Application Subscriber Channel Publisher Channel Rules & Stylesheets

10 DirXML Architecture- The Remote Loader Novell eDirectory DirXML Engine Novell eDirectory Server Application DirXML Driver Shim Remote Loader Shim Remote Loader Service Subscriber Channel Publisher Channel Rules & Stylesheets

11 Components of DirXML DirXML engine  eDirectory interface  Join engine DirXML Driver Shim  XML interface  Application’s native interface Subscriber and publisher channels  Filters manage flow in both directions  Policies may be applied differently to each channel

12 DirXML Engine eDirectory interface  Supports loading of multiple drivers  Guaranteed delivery of eDirectory events  eDirectory event loop-back detection Join engine  Handles data transformations  Rules processor  XSLT processor

13 DirXML Driver Shim XML interface  Issue and receive XML documents  Document Object Model (DOM) Application’s native interface  Applications don’t have to change  Can be either remoted via the remote loader or can use the application’s own remote capability (if any)

14 Publisher and Subscriber Channels Publisher channel  Propagates events from the application to eDirectory Subscriber channel  Propagates events from eDirectory to the application Filters  Manage the flow of data on both channels  A list of desired classes and their attributes  Determines the authoritative source(s) of data

15 Driver Overview What is a DirXML driver?  Data pipe DirXML engine to target application Operates on passed data In general, doesn’t make synchronization decisions  Standard objects/methods DriverShim Subscriber Publisher

16 Driver Overview Driver communication and threads  Two channels of communication Subscriber=NDS->App Publisher=App->NDS  Two threads Subscriber thread –Initializes DriverShim –Initializes subscriber –Waits in engine for events Publisher thread –Initializes publisher –Polls application for changes

17 Driver Overview Driver lifecycle  Modes of operation Schema query –Driver started explicitly to determine app schema –No synchronization possible Normal synchronization –Once driver is started for synchronization the getSchema method won’t be called

18 Driver Lifecycle—Normal Sync Subscriber thread  Driver constructed  Init called  getSubscriptionShim  getPublicationShim  Subscriber init  The DirXML engine calls subscriber’s execute method to request the drivers identity.  The DirXML engine calls subscriber’s execute method zero or more times  Engine calls shutdown Publisher thread  Publisher init  Publisher start  Publisher sends updates to eDirectory  Publisher thread returns on notice

19 Driver Lifecycle—getSchema Subscriber thread  Driver constructed  getSchema called with all initialization parameters  Driver is destroyed Publisher thread  Not used

20 Driver Design Considerations Research Target application information Approaches to building a driver

21 Driver Design Considerations Research  XML Parsing –DOM or SAX  XSLT  DirXML architecture  NDS.DTD  Rules and stylesheets

22 Researching the Target Application Is it standards-based?  LDAP, JDBC Or proprietary  Notes, Exchange Schema  Fixed or extensible

23 Researching the Target Application Data synchronization and application behavior  In general, drivers are just data pipes Don’t make decisions about data, just route it  Supporting an application may require more than just moving data Creation of system entities –Mailbox creation, for instance Establishment of credentials on new system

24 Researching the Target Application Access methods  Standards-based protocol  Proprietary API  Is it remotable?  Reading and writing information  Discovering changes in the application space Authentication issues Associations  What value uniquely identifies objects in the application space?

25 Approaches to Building a Driver Am I building for a specific case or for general reuse?  Custom behaviors modeled in code or XSLT? Become an expert in the target application  Understanding of application data  Understanding of application behavior based on data  Understanding of user expectations Mining changes from the application is the hardest part of driver development

26 Application Native Format An NDS object is passed as XDS (XML representation of NDS object) The driver must have application native format data to submit to the application  Schema mapping translates namespace  XSLT can transform XDS to another format  Driver can implement data translation for APIs

27 Application Integration Points How can I get at the application data?  Protocol Is the protocol standard? Is it remotable?  Application Programming Interface (API) Driver will be application-specific Can I get change events?  Flat-file import/export mechanism Unable to properly manage associations or queries

28 Platform and Language Choice What language should I use?  What language best supports my application’s integration points?  Java has better DOM support Where can my driver run?  Drivers execute as part of Dhost  What APIs will I need local to Dhost? Can restrict platform choice Use Remote Loader to solve deployment issues.  Can the driver securely bind remotely to the application?

29 Driver Architecture Driver responsibilities Deployment responsibilities Required driver interfaces Rules and stylesheets

30 DirXML Architecture Novell eDirectory DirXML Engine DirXML Driver Shim Novell eDirectory Server Application Subscriber Channel Publisher Channel Rules & Stylesheets

31 Driver Responsibilities Initialization and shutdown Read application schema for DirXML engine Translate XML from NDS (XDS) to app format Identify changes in target application Translate application native format into XDS Process queries against application Submit queries against eDirectory Provide foreign key for driver associations

32 Requirements for ‘Production’ Drivers Effective change event detection  Publish only changed attributes, if possible Guaranteed delivery  Can’t drop events for the Publisher channel Loopback detection  Prevents driver-caused changes from causing unnecessary replication traffic or erroneous data Prefiltering publisher data  Prevents unnecessary traffic by only processing changes interesting to the driver

33 ‘Production’ Drivers - cont. Support for multiple running instances  Publish only changed attributes, if possible Support Remote Loader  Shouldn’t require code changes. Just validate the functionality. Driver identity query  In DirXML 1.1 the engine queries each driver for its identity and activation levels

34 ‘Production’ Drivers - cont. Support multiple events/commands in a single XML document  Engine doesn’t send more than one.  Additional events added by XSLT  Generate a line in the output document for each event based on event-id. Don’t ‘batch’ events in a single XML doc on the publisher channel  Prevents driver-caused changes from causing unnecessary replication traffic

35 Deployment Responsibilities Data requirements  Schema mapping  Filtering objects and attributes  Authoritative Source  Required data  Data translation  Additional functionality

36 Deployment Responsibilities - cont. Driver selection  Where is the data?  What protocols or transports are supported?  What application features are needed?  Remote?

37 Required Driver Interfaces

38 DriverShim Interface The DriverShim interface consists of five methods in Java and six methods in C++  DriverShim init—Performs channel-independent initialization  DriverShim getSubscriptionShim—Returns a reference (Java) or pointer (C++) to the object implementing the SubscriptionShim interface  Driver getPublicationShim—Returns a reference (Java) or pointer (C++) to the object implementing the PublicationShim interface  DriverShim shutdown—Notifies the driver to disconnect from the application, cleanup, and otherwise shutdown  DriverShim getSchema—Called to obtain a representation of the application schema

39 SubscriptionShim Interface The SubscriptionShim interface consists of two methods  SubscriptionShim init—Performs subscriber channel specific initialization  SubscriptionShim execute—Accepts commands from the DirXML engine and executes those commands on the application Execute method is inherited from the XmlCommandProcessor interface

40 PublicationShim Interface The PublicationShim interface consists of two methods  PublicationShim init—Performs publisher channel specific initialization  PublicationShim start—Monitors the application and publishes application changes to the DirXML engine

41 XmlQueryProcessor Interface The XmlQueryProcessor interface is required because it is a parameter to XMLCOMMANDPROCESSOR.EXECUTE Used by the DirXML interface to query publisher when additional data is required to complete an operation

42 Support Code Tracer class  Provides ability to output information to DSTrace Output can be controlled based on DriverTraceLevel DriverState support  Driver can save state information between invocations  Done by adding an tag to a return doc or a published document  Can set parameters for driver, subscriber, or publisher state

43 Rules XML rules  Schema mapping rule translates namespaces  Create rule declares required attributes  Matching rule declares how to identify matching objects  Placement rule determines hierarchical placement

44 Rules and Stylesheets XSL rules  Event transformation defines how to map one event to another based on XSLT logic Using XSL to override XML rules  Create, match and placement rules can be implemented as XSL Create DirXML rule object Paste XSL into object editor Add the rule as a attribute of the subscriber or publisher

45 demonstratio

46 DirXML Sessions at BrainShare 2002 Developer Track DCB125—Novell DirXML Introduction Lab DCB230—DeveloperNet University: DirXML Driver Installation. DCB330—DeveloperNet University: Developing DirXML Drivers DL303—Novell DirXML Commands, Events and Transforms

47 DirXML Sessions at BrainShare 2002 IS&T Track IO118—Introduction to Novell DirXML IO119—DirXML Competitive Comparisons

48 DirXML Sessions at BrainShare 2002 Deployment Track TUT235—Understanding Novell DirXML Technology TUT236—Configuring DirXML Drivers for JDBC, iPlanet and Delimited Text TUT237—Configuring DirXML Drivers for eDir, AD and NT TUT238—Configuring DirXML Messaging Drivers TUT239—Configuring DirXML Drivers for ERP Systems TUT335—Designing and Managing DirXML Deployments TUT362—Creating a Meta Directory with DirXML

49 Training & Education Directory & Database Integration Using DirXML (Course 992)  Import Drivers  Implementation Strategies ATT - Advanced DirXML  Troubleshooting Techniques  Customization  XML, XDS Rules, and XSLT Additional information at http://www.novell.com/education/train_product/dirxml.html

50 Training & Education at BrainShare Study and preview Directory and Database Integration Using DirXML (Course 992) at The Learning Zone Purchase DirXML self-study materials at the Bookstore ATT - Advanced DirXML course in Provo March 25- 28

51 DirXML Links For the latest information on DirXML and drivers  www.novell.com/products/edirectory/dirxml/ For course schedules and registration information  www.novell.com/education/train_product/

52 DirXML Links For the DirXML Developer’s Kit on the NDK  developer.novell.com/ndk/dirxml.htm For DeveloperNet ® ’s online driver development course  developer.novell.com/servlet/devnet/education/tut orials/dirxml2/01.htm  For XML information  www.w3c.org  For XSLT information we recommend XSLT Programmer’s Reference, by Michael Kay

53 Conclusion DirXML provides the platform for data sharing and synchronization DirXML drivers provide the plumbing for an application to participate with the directory With DirXML, Novell is delivering on the promise of one Net

54


Download ppt "Custom DirXML™ Driver Development Richard Matheson DirXML Driver Development Manager Manager"

Similar presentations


Ads by Google