social connections 2015 crossworlds and domino
TRANSCRIPT
Paul Withers
• XPages Developer since 8.5.0
• Founding co-developer on OpenNTF Domino API
• Early adopter / contributor of CrossWorlds
• Developer of OsgiWorlds
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
Beyond Scope
• Which web framework
• DAS
• Authentication to Domino
• You’ll see why!
• Authentication to the application
• Integration with Connections / SmartCloud
Why Not XPages?
• IBM SBT
• Not actively update on OpenNTF
• GitHub XPages-specific code not actively developed
What Is CrossWorlds?
• Websphere Liberty Profile 8.5.5.4 +
• IBM Domino 9.0.1 +
• OpenNTF Domino API +
• CrossWorlds feature for Liberty
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
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?
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)
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.createXPageSessionExt()
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)
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
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
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
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
So Why?
• Flexible authentication options + security
• Flexible storage options – NoSQL or Graph
• Flexible location – SoftLayer or on premises
• Flexible web application options
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
Thank You
Paul Withers
Intec Systems Ltd
@paulswithers
http://www.intec.co.uk/blog