20
CrossWorlds: Unleash the Power of Domino for Connections Development Paul Withers Intec Systems Ltd

Social Connections 2015 CrossWorlds and Domino

Embed Size (px)

Citation preview

CrossWorlds: Unleash the Power of Domino for

Connections Development

Paul Withers

Intec Systems Ltd

PLATINUM & CHAMPAGNE SPONSORS

GOLD SPONSORS

SILVER SPONSORS

BRONZE SPONSORS

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

But Why Domino?

• Wrong question

• Wrong time

What Is CrossWorlds?

• Websphere Liberty Profile 8.5.5.4 +

• IBM Domino 9.0.1 +

• OpenNTF Domino API +

• CrossWorlds feature for Liberty

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

[email protected]

http://www.intec.co.uk/blog