3. Paul Withers
• XPages Developer since 8.5.0
• Founding co-developer on OpenNTF Domino
API
• Early adopter / contributor of CrossWorlds
• Developer of OsgiWorlds
4. 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
5. Beyond Scope
• Which web framework
• DAS
• Authentication to Domino
• You’ll see why!
• Authentication to the application
• Integration with Connections / SmartCloud
6. Why Not XPages?
• IBM SBT
• Not actively update on OpenNTF
• GitHub XPages-specific code not actively developed
8. What Is CrossWorlds?
• Websphere Liberty Profile 8.5.5.4 +
• IBM Domino 9.0.1 +
• OpenNTF Domino API +
• CrossWorlds feature for Liberty
9. 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/intr
oducing-crossworlds-for-ibm-domino
10. 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?
11. 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)
12. 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
• com.ibm.domino.napi.c.xsp.XSPNative.createXPa
geSessionExt()
13. 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)
14. 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
15. 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
16. 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=EioyfbM
d2dI&index=16&list=PLg0OScbQKugOspIMa1v
NzYAPFwqISaUmR
17. Can It Be Done Without Liberty
• Vaadin? Enter OsgiWorlds
• Expeditor Web Container
• Vaadin servlet wrapping intercepting HTTP requests
• Same functionality for session handling
• REST? OdaDataServlet
• Equinox HTTP Service
• 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/
• XPages – of course
18. So Why?
• Flexible authentication options + security
• Flexible storage options – NoSQL or Graph
• Flexible location – SoftLayer or on premises
• Flexible web application options
19. 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
• Mikkel Heisterberg session on oAuth