DEV-1430 Give a New Life to Your Notes/Domino Applications and Leverage IBM Bluemix, Watson, & Connections
2
Disclaimer
• Some of the techniques exposed in the session might not be documented by IBM and thus do engage IBM in anyway
• Some of these techniques might not work after an upgrade of either IBM Connections cloud or IBM Connections on premises
• USE OF THIS INFORMATION IS ENTIRELY AT YOUR OWN RISK. TRILOGGROUP AND DARWINO INC BEAR NO RESPONSIBILITY FOR THE CONSEQUENCES OF RELIANCE ON, OR ANY INACCURACY IN, ANY INFORMATION CONTAINED IN OR SUBMITTED TO THIS SITE. THESE MATERIALS ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED.
3
About the Speakers
• Jesse GallagherCTO of I Know Some GuysBoard Member of OpenNTF
• Philippe RiandCTO of Trilog Group & Darwino Inc.Former application development chief architect for IBM Collaboration ServicesChief architect, and inventor, of IBM Domino XPages
4
Who Are We?
• Darwino is an application development platform targeting mobile, cloud, and IoTDarwino is well-integrated with IBM platforms, including IBM Connections, IBM Domino, IBM Bluemix and IBM Watsondarwino.org, a branch of OpenNTF, is the open source organization providing the Connections integration code shown in this session
We are in the showcase, booth 630
5
Objectives of the Session
• Explain the Darwino architecture
• Demonstrate how Darwino can be used in several common modernization/extension use casesReportingModernization of an existing Domino appMobile apps with offline useIntegrations/extensions with other platforms
6
Darwino Architecture
Darwino in a Nutshell
A distributed app-development platform for the rapid creation of collaborative applications (primarily Mobile, Cloud and IOT).
Facilitates focus on the application logic
Encapsulates services within comprehensive and portable APIs
Incorporates an advanced JSON document store (atop of RDBMS), both mobile and server
Enables synchronization (aka, replication) from Enterprise systems and provides a seamless offline capability on devices
Java-based, and uses familiar constructs
Use the UI technology and tools you know and want to use
Darwino DB – JSON Document Store
NoSQL, JSON document store with binary attachmentsAdvanced query capabilitiesNative multi-tenant, integrated social features…Two way replication mechanism
Supports Domino-style capabilitiesResponse documents, document based security…Granular security model, down to the document level
Implemented on top of existing relational databasesTakes advantage of the existing RDBMS featuresSupports JSON nativelyFully transactional, performance and scalabilityFull SQL QueriesCompatible with all the Business Intelligence – Reporting tools
9
IBM Connect 2017 - Hackathon
We won the Hackathon Monday with a Darwino ApplicationIn less than 6 hours, we created an application:
Deployed on IBM BluemixWeb Application Server, Database…
Fully integrated in IBM Connections CloudAuthentication, APIs, Community application…
Integrated with IBM Watson WorkspaceCreated a bot
Provided a mobile experience on top of the web oneIncludes offline capability for the Data
10
IBM Connect 2017 - Hackathon
The team was made of 10 people with different skillsNo one had experience with Darwino beyond me!But I did not code myself
We picked up the technologies/tools already knownby the team members
UI – Bootstrap/Sass, ReactJS, Node.js, AtomBackend – Java, EclipseMobile – Android SDKAdministration – Bluemix, Connections Cloud. IBM Eclipse Bluemix pluginGithubSlack
11
Darwino Applied to Domino
Refresh and Extends your Domino Applications
Darwino Applied to Domino
13
Darwino/Domino Replication
“Native-like” replication with DominoTwo-wayCreation and modification times and replication data (sequence ID) intactShared UNIDs (when compatible)High data fidelityCustomizable data translationHigh performance via C API
Maintains the security modelThe database ACL is replicated from Domino and applied to the Darwino DBIt maintains the readers/authors fields
14
Use Case #1: Reporting and Business Intelligence
Get the value out of your Domino data
15
Reporting on Domino Data? Really?
Reporting has always been a weakness for DominoNo standard data API consumable by market toolsVery limited query capabilities
But Darwino now makes it possible, because the data is replicated within an RDBMS
The JSON content is leveraging the native RDBMS typeEasy to create SQL views, and other artifacts, dedicated to reportingThe Darwino DB can act as a data warehouse, replicated real time with Domino
Endeavour Reporter
Reporting tool developed in conjunction with Construction Management Systems in Arkansas, US
Designed based on their production needs, previously filled by DomSQLBuilt to address the very common need of Domino shops to do SQL-style reporting with standardized toolsStreamlines the process of creating Darwino tables in a SQL server and replicating over the dataThe data can then be queried directly via PostgreSQL’s native JSON syntax or via the created viewsFor further information, contact Jerry Horani - [email protected]
Endeavour Reporter
18
Use Case #2: App Conversion
Give a new life to your existing applications
19
The Value of Darwino to Domino Applications
Make your existing applications match the current user expectationsKeep Domino apps untouched (keeps data in Domino and leverages existing business logic, while incrementally enhancing the Darwino appReuse existing assets and skills on top of ‘state of the art’ technologiesDevelopers feel ‘at home’ right from the beginningRemoves many existing Domino barriers (skills, performance, scalability, capabilities…)Use the best technologies, based on your skills, needs, and desires…Provides seamless integration with social services
20
The Darwino Development Experience
Darwino is independent from the development environmentWorks with most popular IDEs, including Eclipse
But command line can also be usedLeverages the existing toolkits, like Android SDK or MOEDelivered as a maven tree of artifact, and OSGi plugins
Darwino Studio is a set of Eclipse tools to simplify development and integrationDevelop for all the platforms from one single IDEFeatures an application wizard to get started with a few clicksProvides a UI code generatorImport the data model from external data sources like Domino
21
Example App: frostillic.us Blog
Existing app is a soup-to-nuts XPages application
The data is classic Domino: parent/response documents, categorized views, reader/author security
It already went through one migration from WordPress data
22
Demo
23
Use Case #3: Mobile, Offline-Enabled Apps
Android, iOS, and Desktop
Offline Mobile Access
Mobile devices share the same database and business logicApps work offline, ”Notes client” style
Use the same application in airplane mode, replicate up afterwardsThe data could then replicate back to the Domino database
Target Android, iOS (via Multi-OS Engine), and desktop (via SWT)
25
Example: Discussion DB
Example application that:
• Replicates with Domino• Supports instances• Has UIs for each platform
26
Use Case #4: Integrations
Integrate with the broader IBM Platform
Darwino+Bluemix
Bluemix is a perfect spot for Darwino applicationProvides a JEE server and relational databases (DB2, Postgresql…)
Darwino JEE applications deploy smoothly to WebSphere Liberty locally and on Bluemix
No special coding required
Darwino will detect the Bluemix runtime and find the configuration options (database, authentication…)
Initial support for syncing data to DashDB for reporting
28
Darwino+Connections
Seamlessly integrates with IBM Connections both on-premises and cloudUse IBM Connections as a directory of usersBuilt-in OAuth supportAccess all the Connections services through API helpers
Support for automatically detecting a surrounding Connections Community and storing data in a unique instance
Support for determining user roles from the surrounding CommunityAnd apply role based security
29
Darwino+Watson
Darwino includes bean-compatible wrappers for the Watson Java API
The Watson result data is JSON, and so can be stored natively anywhere within a Darwino document
The Social Analyzer does this to include Watson results in documents that are then queryable directly
<bean name="toneAnalyzerFactory" class="com.darwino.ibm.watson.ToneAnalyzerFactory"><property name="url">https://gateway.watsonplatform.net/tone-analyzer/api</property><property name="user">${socialanalyzer.toneAnalyzer.user}</property><property name="password">${socialanalyzer.toneAnalyzer.password}</property></bean>
30
Example Application: Social Analyzer
Available on OpenNTF
Demonstrates integration with Connections Cloud, Watson, Twitter, DashDB on Bluemix, and Domino
Runs standalone or embedded in Connections
Community-based instances and roles
Runner-up in the ICS Worldwide Developer Competition
31
App Development Story
What Modernizing with Darwino Brings to the Table
32
Things Impractical or “Technically Possible” with Domino
Use Case 1: ReportingEssentially requires an extra tool, and most have severe limitations
Use Case 2: App ConversionModern apps can be written on Domino, but it’s swimmingupstream: wrangling libraries, working around limitations
Use Case 3: Offline Mobile AccessCan’t be done out of the box
Use Case 4: IntegrationsMost involve significant extra work to emulate things much easier in Darwino
33
The Work You Don’t Have To Do
Standard dev toolchain:
Easily consume third-party dependenciesModern web server technologies
Built client-side apps or use any Java-compatible frameworkModern client tooling (easy to use npm, bower, etc.)Straightforward building with Jenkins, etc.State-of-the-art technologies with active developer communities
34
The Work You Don’t Have To Do
Darwino-provided:
Cross-platform deploymentWeb, desktop, iOS, and AndroidShared UI or native-tailored to each
Consistent data layer and business logicIncluding common utility library and services framework to build upon
Advanced NoSQL data store with SQL benefitsBuilt-in integrations with common environments
35 05/01/2023
Q&A - Thank you