![Page 1: CrossWorlds: Unleash the Power of Domino for Connections Development](https://reader031.vdocument.in/reader031/viewer/2022030402/587afc731a28ab93488b577b/html5/thumbnails/1.jpg)
CrossWorlds: Unleash the Power of Domino for
Connections Development
Paul Withers
Intec Systems Ltd
![Page 2: CrossWorlds: Unleash the Power of Domino for Connections Development](https://reader031.vdocument.in/reader031/viewer/2022030402/587afc731a28ab93488b577b/html5/thumbnails/2.jpg)
Paul Withers
• XPages Developer since 8.5.0
• Founding co-developer on OpenNTF Domino API
• Early adopter / contributor of CrossWorlds
• Developer of OsgiWorlds
![Page 3: CrossWorlds: Unleash the Power of Domino for Connections Development](https://reader031.vdocument.in/reader031/viewer/2022030402/587afc731a28ab93488b577b/html5/thumbnails/3.jpg)
The Scope
• Developing with generic web applications
• Vaadin, JAX-RS
• Websphere Liberty Profile (or Domino)
• Storing data in Domino via Java
• Think you know Domino? Think again!
• Entry points via ODA counterparts of Domino objects
![Page 4: CrossWorlds: Unleash the Power of Domino for Connections Development](https://reader031.vdocument.in/reader031/viewer/2022030402/587afc731a28ab93488b577b/html5/thumbnails/4.jpg)
Beyond Scope
• Which web framework
• DAS
• Authentication to Domino
• You’ll see why!
• Authentication to the application
• Integration with Connections / SmartCloud
![Page 5: CrossWorlds: Unleash the Power of Domino for Connections Development](https://reader031.vdocument.in/reader031/viewer/2022030402/587afc731a28ab93488b577b/html5/thumbnails/5.jpg)
Why Not XPages?
• IBM SBT
• Not actively update on OpenNTF
• GitHub XPages-specific code not actively developed
![Page 6: CrossWorlds: Unleash the Power of Domino for Connections Development](https://reader031.vdocument.in/reader031/viewer/2022030402/587afc731a28ab93488b577b/html5/thumbnails/6.jpg)
But Why Domino?
• Wrong question
• Wrong time
![Page 7: CrossWorlds: Unleash the Power of Domino for Connections Development](https://reader031.vdocument.in/reader031/viewer/2022030402/587afc731a28ab93488b577b/html5/thumbnails/7.jpg)
What Is CrossWorlds?
• Websphere Liberty Profile 8.5.5.4 +
• IBM Domino 9.0.1 +
• OpenNTF Domino API +
• CrossWorlds feature for Liberty
![Page 8: CrossWorlds: Unleash the Power of Domino for Connections Development](https://reader031.vdocument.in/reader031/viewer/2022030402/587afc731a28ab93488b577b/html5/thumbnails/8.jpg)
What Is CrossWorlds?
• Liberty server that Domino thinks is a Domino server!
• Filter wraps all requests in ODA sessions
• Developed by Daniele Vistalli Dec 2014
• http://www.slideshare.net/DanieleVistalli/introducing-crossworlds-for-ibm-domino
![Page 9: CrossWorlds: Unleash the Power of Domino for Connections Development](https://reader031.vdocument.in/reader031/viewer/2022030402/587afc731a28ab93488b577b/html5/thumbnails/9.jpg)
The Right Questions
• Whose session?
• Which user?
• What are advantages of Domino?
• What are advantages of Liberty?
• What are advantages of ODA?
• Can it be done without Liberty?
![Page 10: CrossWorlds: Unleash the Power of Domino for Connections Development](https://reader031.vdocument.in/reader031/viewer/2022030402/587afc731a28ab93488b577b/html5/thumbnails/10.jpg)
Whose Session?
• User • Based on authentication
• Via Factory.getSession(SessionType.CURRENT)
• “Signer” • web.xml context-param
org.openntf.crossworlds.appsignername
• Via Factory.getSession(SessionType.SIGNER)
• Server • Via Factory.getSession(SessionType.NATIVE)
![Page 11: CrossWorlds: Unleash the Power of Domino for Connections Development](https://reader031.vdocument.in/reader031/viewer/2022030402/587afc731a28ab93488b577b/html5/thumbnails/11.jpg)
Which User?
• Development mode: • Defined in web.xml context-param
org.openntf.crossworlds.devtimename
• Production mode: • Authenticate however you wish
• Generate Domino username however you wish
• Store in xworlds.request.username HttpSession attribute
• Manage Domino security as normal
![Page 12: CrossWorlds: Unleash the Power of Domino for Connections Development](https://reader031.vdocument.in/reader031/viewer/2022030402/587afc731a28ab93488b577b/html5/thumbnails/12.jpg)
What Are Advantages of Domino?
• Strong security
• Schema-free storage facility
• Replication
• Great at workflow
• Great at handling attachments
• Mail routing
• Often found in Connections customers
• On premise or cloud (SoftLayer)
![Page 13: CrossWorlds: Unleash the Power of Domino for Connections Development](https://reader031.vdocument.in/reader031/viewer/2022030402/587afc731a28ab93488b577b/html5/thumbnails/13.jpg)
What Are Advantages of Liberty?
• Fast JavaEE application server
• Extensible (hence CrossWorlds)
• Easy to install
• Eclipse tooling
• Exploit Java 1.7 / 1.8 today
• Develop standard web applications
• Scheduled Executors
• Use JRebel for hot-swapping of code
![Page 14: CrossWorlds: Unleash the Power of Domino for Connections Development](https://reader031.vdocument.in/reader031/viewer/2022030402/587afc731a28ab93488b577b/html5/thumbnails/14.jpg)
What Are Advantages of ODA?
• More flexible session handling
• More flexible field handling
• Automatic recycling of Cpp handles
• OpenLog for error / event logging
• Xots – threaded tasklets
• Transactional processing
• Event Listeners
• Framed graphs
![Page 15: CrossWorlds: Unleash the Power of Domino for Connections Development](https://reader031.vdocument.in/reader031/viewer/2022030402/587afc731a28ab93488b577b/html5/thumbnails/15.jpg)
What Are Framed Graphs?
• Extends Tinkerpop framework
• Java interfaces for Vertices / Edges
• Can wrap standard Domino documents • E.g. Person documents
• Inbuilt workflow and social elements
• See https://www.youtube.com/watch?v=EioyfbMd2dI&index=16&list=PLg0OScbQKugOspIMa1vNzYAPFwqISaUmR
![Page 16: CrossWorlds: Unleash the Power of Domino for Connections Development](https://reader031.vdocument.in/reader031/viewer/2022030402/587afc731a28ab93488b577b/html5/thumbnails/16.jpg)
Can It Be Done Without Liberty
• Vaadin? Enter OsgiWorlds
• Vaadin servlet wrapping intercepting HTTP requests
• Same functionality for session handling
• REST? OdaDataServlet
• Just wraps Domino-authenticated user session
• See http://www.intec.co.uk/xpages-to-web-app-part-eight-osgi-jax-rs-rest-access-with-oda/
![Page 17: CrossWorlds: Unleash the Power of Domino for Connections Development](https://reader031.vdocument.in/reader031/viewer/2022030402/587afc731a28ab93488b577b/html5/thumbnails/17.jpg)
So Why?
• Flexible authentication options + security
• Flexible storage options – NoSQL or Graph
• Flexible location – SoftLayer or on premises
• Flexible web application options
![Page 18: CrossWorlds: Unleash the Power of Domino for Connections Development](https://reader031.vdocument.in/reader031/viewer/2022030402/587afc731a28ab93488b577b/html5/thumbnails/18.jpg)
More Information…
• Intro to ODA, ODA 2.0.0, ODA Demo Db (WIP)
• Intro to CrossWorlds, CrossWorlds on GitHub
• OsgiWorlds
• Graph in ODA
• oAuth authentication to Connections with SBT
![Page 19: CrossWorlds: Unleash the Power of Domino for Connections Development](https://reader031.vdocument.in/reader031/viewer/2022030402/587afc731a28ab93488b577b/html5/thumbnails/19.jpg)
Thank You
Paul Withers
Intec Systems Ltd
@paulswithers
http://www.intec.co.uk/blog
![Page 20: CrossWorlds: Unleash the Power of Domino for Connections Development](https://reader031.vdocument.in/reader031/viewer/2022030402/587afc731a28ab93488b577b/html5/thumbnails/20.jpg)
PLATINUM & CHAMPAGNE SPONSORS
GOLD SPONSORS
SILVER SPONSORS
BRONZE SPONSORS