Download presentation
Presentation is loading. Please wait.
Published byRichard Ward Modified over 9 years ago
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.