Download - ICON UK 2015 - ODA and CrossWorlds
UKLUG 2012 – Cardiff, Wales September 2012
Presenter: Paul Withers Company: Intec Systems Ltd
ICON UK 2015 To Infinity and Beyond: OpenNTF Domino API and CrossWorlds
UKLUG 2012 – Cardiff, Wales
Quiet Year?
• No release?
• RC2, RC3 (M5 and M5.1)
• Further struggles with Maven / Tycho
• Not designed for plugin development
• Imminent release – ODA 2.0.0
UKLUG 2012 – Cardiff, Wales
Xots Update
• Further development, proven in production
• Blog posts http://www.intec.co.uk/tag/xots/
• Implement Callable to interact with return
value
• Implement Runnable to just run
• @Tasklet annotation required
UKLUG 2012 – Cardiff, Wales
Xots – How To
Xots.getService().submit(new myRunnable(ExtLibUtil.getSessionScope());
• invokeAll() not currently working
• Pass “shared” variables into constructor
• Stored in private variables of Xots class
• By default 10 threads at once
UKLUG 2012 – Cardiff, Wales
Xots – How To
List<Future<String>> results = new ArrayList<Future<String>>();
….
results.add(Xots.getService().submit(new myCallable());
….
for (Future<String> f : results) ….
UKLUG 2012 – Cardiff, Wales
Xots – How To
@Tasklet(session = Tasklet.Session.CLONE)
• Denotes that this class is a tasklet
• Denotes that it should clone current session
Extended to CrossWorlds, coming soon to OsgiWorlds
UKLUG 2012 – Cardiff, Wales
Scheduled Xots?
• Still pending
• The challenge:
• How many Domino developers have
experience of building a stable process
scheduler?
• Scheduling issues with DOTS
UKLUG 2012 – Cardiff, Wales
UKLUG 2012 – Cardiff, Wales
Single, re-sortable container, containing 13376 contacts from 10 databases
UKLUG 2012 – Cardiff, Wales
Session Management
• Previously
• ExtLibUtil.resolveVariable(“session”)
• Factory.getSession()
UKLUG 2012 – Cardiff, Wales
Session Management
• Now
• ExtLibUtil.resolveVariable(“session”)
• Factory.getSession
(SessionType.CURRENT)
• SessionType enum
• Because more than just three XPages
sessions
UKLUG 2012 – Cardiff, Wales
Graph Update
GRAPH
Elements Key / value pairs
Index free
DOMINO
Documents Item / value pairs Indexing issues
UKLUG 2012 – Cardiff, Wales
Graph Update
• Framed Graphs
• Simplified setup
• In-built Vertexes
• Likeable, Commentable, workflow
• Proxy Vertexes
• Wrappers for non-Graph Notes
documents
UKLUG 2012 – Cardiff, Wales
Graph Update
• Views as Vertexes / Edges
• REST access to Graphs
• See https://www.youtube.com/watch?v=EioyfbMd2dI&index=16&list=PLg0OScbQKugOspIMa1vNzYAPFwqISaUmR
UKLUG 2012 – Cardiff, Wales
DasServlet
• org.openntf.domino.rest.servlet. ODADataServlet
• Extension to DAS, allows use of ODA
• Use for custom REST servlets
• Recommended for e.g. AngularJS apps
• Wraps currently-logged-on user’s session in ODA session
• ContextInfo.getUserSession()
UKLUG 2012 – Cardiff, Wales
JS Frameworks
• Which one
• Plus you still need a REST “application”
UKLUG 2012 – Cardiff, Wales
OsgiWorlds
• Osgi applications within application path force authentication based on NSF
• http://myServer/names.nsf/myOsgiApp
requires authentication if names.nsf does
• If authenticated, can use ContextInfo for current Domino authentication
• OsgiWorlds uses OSGi application-level authentication (same as CrossWorlds)
UKLUG 2012 – Cardiff, Wales
OsgiWorlds
• VaadinServlet
• Filters all servlet requests
• Application configuration to “map” to Domino sessions
UKLUG 2012 – Cardiff, Wales
CrossWorlds
• WebSphere Liberty (8.5.5.4) +
• IBM Domino (9.0.1) +
• OpenNTF Domino API +
• CrossWorlds feature for Liberty
• Application-specific authentication with Domino security
UKLUG 2012 – Cardiff, Wales
Websphere Liberty Profile
A fast J2EE Application Server built by IBM for modern needs.
- Light (< 40 Mb ram, < 5sec startup)
- Open (OSGI based + J2EE 6 / 7)
- Constantly evolving
- Extensible (customizable to the limit)
- Easy to manage (unzip & run, no install needed)
UKLUG 2012 – Cardiff, Wales
Java 1.7 / 1.8
• Domino JVM is 1.6, 1.8 coming
• WAS Liberty can run on 1.6/1.7/1.8 TODAY!
• You can build your reusable frameworks or exploit existing frameworks for your apps.
• Not tied anymore to IBM’s choices for Domino
UKLUG 2012 – Cardiff, Wales
New Demo Application
• Not built on XPages
• Vaadin on Websphere Liberty Profile /
Domino OSGi
• ODA is no longer just XPages
• XPages developers more comfortable
with Java / less interested in ODA
• Domino (ExtLib demo) datastore
UKLUG 2012 – Cardiff, Wales
Vaadin
• Java framework for web / mobile apps
UKLUG 2012 – Cardiff, Wales
The Obvious Java Choice
• Code WYSIWYG, XML markup or Java
• 400+ components
• Client-side development tools based on GWT and HTML5
• Open source
• Webinars, training, certifications, support
• Pro tools, including charts, touch kit etc
• First third party boilerplate inside Bluemix
UKLUG 2012 – Cardiff, Wales
UKLUG 2012 – Cardiff, Wales
Other Demos
• CrossWorlds sample
• ConferenceApp
• Key Dates app (blog series in progress)
UKLUG 2012 – Cardiff, Wales
CrossWorlds Sample App
UKLUG 2012 – Cardiff, Wales
Conference Application
UKLUG 2012 – Cardiff, Wales
Conference Application
UKLUG 2012 – Cardiff, Wales
Conference Application
UKLUG 2012 – Cardiff, Wales
Conference Application
UKLUG 2012 – Cardiff, Wales
Conference Application
UKLUG 2012 – Cardiff, Wales
Key Dates – XPages Original
UKLUG 2012 – Cardiff, Wales
Key Dates – XPages Original
UKLUG 2012 – Cardiff, Wales
Key Dates – XPages Original
UKLUG 2012 – Cardiff, Wales
Key Dates OsgiWorlds/CrossWorlds
UKLUG 2012 – Cardiff, Wales
Key Dates OsgiWorlds/CrossWorlds
UKLUG 2012 – Cardiff, Wales
Key Dates OsgiWorlds/CrossWorlds
UKLUG 2012 – Cardiff, Wales
Key Dates OsgiWorlds/CrossWorlds
UKLUG 2012 – Cardiff, Wales
What Does ODA Mean?
• ODA means:
• Keep data on Domino
• Develop with more than just standard
Domino architectures
• Develop with more than just XPages
• Develop web app beyond Domino
• Bluemix??
UKLUG 2012 – Cardiff, Wales
Questions?
• Paul Withers
• https://twitter.com/paulswithers
• pwithers:@intec.co.uk