10 domino integration

13
Domino Integration

Upload: darwinodb

Post on 15-Apr-2017

30 views

Category:

Software


0 download

TRANSCRIPT

Page 1: 10   domino integration

Domino Integration

Page 2: 10   domino integration

The Goal

• “Native-like” replication with Domino– Two-way– Creation and modification times intact– Shared UNIDs (when compatible)– High data fidelity

• A few caveats:– Rich text is converted to MIME (XPage-style)– Esoteric data types (COLLATION, HIGHLIGHTS, etc.) are ignored

• There may be a future option for binary/Base64 replication

Page 3: 10   domino integration

Side Topic: Darwino Replicators

• The Domino replicator is an example of any number of possible third-party connectors

• Darwino replication is intended to be generic and adaptable: all that’s needed is for a server component to respond to HTTP requests in the expected way

• Domino’s data similarity to Darwino happens to make it (sort of) straightforward, but any data expressable as documents could be replicated bidirectionally with Darwino

Page 4: 10   domino integration

Sync Admin Database

Page 5: 10   domino integration

Sync Admin Database

• Low-dependency XPages application– Not flashy, but it keeps compatibility high

• NSF stores:– Overall configuration– Database adapters– Scheduled replicators– Replication history stubs

Page 6: 10   domino integration

Database Adapters

• Adapters control the translation of NSF notes to JSON and back

• Written in a Groovy DSL

Page 7: 10   domino integration

Database Adapters

• Adapters define:– The NSF to connect to– The Darwino store

information– Forms and fields to

adapt– Translations

Page 8: 10   domino integration

Database Adapters (Cont’d)

• By default, an empty DSL will do a “best match” conversion of documents– Does not enforce any consistency between documents

• The “Generate From Database” action inspects a specified database and generates a first-pass DSL from it– A generated DSL from a database will create its “schema” based on the forms in

the database, not the document data• Since adapters are written in Groovy, any JVM classes can be used• For advanced cases, adapters can be deployed via a plugin, either as Groovy

or as Java

Page 9: 10   domino integration

Replication Service

• Controls replication pushed from Domino to Darwino

• Shows status of active replications

Page 10: 10   domino integration

Replication Service

• Connections are similar to names.nsf connections

• Can combine multiple replicators per scheduled connection

Page 11: 10   domino integration

Darwino-Pushed Replication

• Replication can also be configured in the Darwino application, rather than pushed from Domino

• To Darwino, the Domino server looks like just another Darwino server - the adapter plugins provide API-compatible REST services

• This is the original way and may be preferred in situations where Domino does not have direct access to the JDBC data store

• Newly-created Darwino apps have the code necessary for this commented out with descriptions in the JEE project

Page 12: 10   domino integration

Connection Beans

• Configures Darwino JDBC beans

• Similar to standard JDBC configuration

• Can also be configured in darwino-beans.xml

Page 13: 10   domino integration

Thank you for your attention!