SlideShare a Scribd company logo
DEV-1430 Give a New Life to Your Notes/Domino Applications
and Leverage IBM Bluemix, Watson, & Connections
Disclaimer
2
• 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.
About the Speakers
3
• Jesse Gallagher
CTO of I Know Some Guys
Board Member of OpenNTF
• Philippe Riand
CTO of Trilog Group & Darwino Inc.
Former application development chief architect for
IBM Collaboration Services
Chief architect, and inventor, of IBM Domino
XPages
Who Are We?
4
• Darwino is an application development platform targeting mobile, cloud, and IoT
Darwino is well-integrated with IBM platforms, including IBM Connections, IBM
Domino, IBM Bluemix and IBM Watson
darwino.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
Objectives of the Session
5
• Explain the Darwino architecture
• Demonstrate how Darwino can be used in several common
modernization/extension use cases
Reporting
Modernization of an existing Domino app
Mobile apps with offline use
Integrations/extensions with other platforms
Darwino Architecture
6
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 attachments
Advanced query capabilities
Native multi-tenant, integrated social features…
Two way replication mechanism
Supports Domino-style capabilities
Response documents, document based security…
Granular security model, down to the document level
Implemented on top of existing relational databases
Takes advantage of the existing RDBMS features
Supports JSON natively
Fully transactional, performance and scalability
Full SQL Queries
Compatible with all the Business Intelligence – Reporting tools
IBM Connect 2017 - Hackathon
9
We won the Hackathon Monday with a Darwino Application
In less than 6 hours, we created an application:
Deployed on IBM Bluemix
Web Application Server, Database…
Fully integrated in IBM Connections Cloud
Authentication, APIs, Community application…
Integrated with IBM Watson Workspace
Created a bot
Provided a mobile experience on top of the web one
Includes offline capability for the Data
IBM Connect 2017 - Hackathon
10
The team was made of 10 people with different skills
No one had experience with Darwino beyond me!
But I did not code myself
We picked up the technologies/tools already known
by the team members
UI – Bootstrap/Sass, ReactJS, Node.js, Atom
Backend – Java, Eclipse
Mobile – Android SDK
Administration – Bluemix, Connections Cloud. IBM Eclipse Bluemix plugin
Github
Slack
Darwino Applied to Domino
Refresh and Extends your Domino Applications
11
Darwino Applied to Domino
Darwino/Domino Replication
13
“Native-like” replication with Domino
Two-way
Creation and modification times and replication data (sequence ID) intact
Shared UNIDs (when compatible)
High data fidelity
Customizable data translation
High performance via C API
Maintains the security model
The database ACL is replicated from Domino and applied to the Darwino DB
It maintains the readers/authors fields
Use Case #1: Reporting and Business Intelligence
Get the value out of your Domino data
14
Reporting on Domino Data? Really?
15
Reporting has always been a weakness for Domino
No standard data API consumable by market tools
Very 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 type
Easy to create SQL views, and other artifacts, dedicated to reporting
The 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 DomSQL
Built to address the very common need of Domino shops to do SQL-style
reporting with standardized tools
Streamlines the process of creating Darwino tables in a SQL server and
replicating over the data
The data can then be queried directly via PostgreSQL’s native JSON
syntax or via the created views
For further information, contact Jerry Horani - jhorani@vccusa.com
Endeavour Reporter
Use Case #2: App Conversion
18
Give a new life to your existing applications
The Value of Darwino to Domino Applications
19
Make your existing applications match the current user expectations
Keep Domino apps untouched (keeps data in Domino and leverages existing
business logic, while incrementally enhancing the Darwino app
Reuse existing assets and skills on top of ‘state of the art’ technologies
Developers feel ‘at home’ right from the beginning
Removes 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
The Darwino Development Experience
20
Darwino is independent from the development environment
Works with most popular IDEs, including Eclipse
But command line can also be used
Leverages the existing toolkits, like Android SDK or MOE
Delivered as a maven tree of artifact, and OSGi plugins
Darwino Studio is a set of Eclipse tools to simplify development and integration
Develop for all the platforms from one single IDE
Features an application wizard to get started with a few clicks
Provides a UI code generator
Import the data model from external data sources like Domino
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
21
Demo
22
Use Case #3: Mobile, Offline-Enabled Apps
Android, iOS, and Desktop
23
Offline Mobile Access
Mobile devices share the same database and business logic
Apps work offline, ”Notes client” style
Use the same application in airplane mode, replicate up afterwards
The data could then replicate back to the Domino database
Target Android, iOS (via Multi-OS Engine), and desktop (via SWT)
Example: Discussion DB
Example application that:
• Replicates with Domino
• Supports instances
• Has UIs for each platform
25
Use Case #4: Integrations
Integrate with the broader IBM Platform
26
Darwino+Bluemix
Bluemix is a perfect spot for Darwino application
Provides 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
Darwino+Connections
28
Seamlessly integrates with IBM Connections both on-premises and cloud
Use IBM Connections as a directory of users
Built-in OAuth support
Access 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 Community
And apply role based security
Darwino+Watson
29
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>
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
30
Runner-up in the ICS Worldwide Developer Competition
App Development Story
What Modernizing with Darwino Brings to the Table
31
Things Impractical or “Technically Possible” with Domino
Use Case 1: Reporting
Essentially requires an extra tool, and most have severe limitations
Use Case 2: App Conversion
Modern apps can be written on Domino, but it’s swimming
upstream: wrangling libraries, working around limitations
Use Case 3: Offline Mobile Access
Can’t be done out of the box
Use Case 4: Integrations
Most involve significant extra work to emulate things much easier
in Darwino
32
The Work You Don’t Have To Do
Standard dev toolchain:
Easily consume third-party dependencies
Modern web server technologies
Built client-side apps or use any Java-compatible framework
Modern client tooling (easy to use npm, bower, etc.)
Straightforward building with Jenkins, etc.
State-of-the-art technologies with active developer communities
33
The Work You Don’t Have To Do
Darwino-provided:
Cross-platform deployment
Web, desktop, iOS, and Android
Shared UI or native-tailored to each
Consistent data layer and business logic
Including common utility library and services framework to build upon
Advanced NoSQL data store with SQL benefits
Built-in integrations with common environments
34
35 2/24/2017
Q&A - Thank you

More Related Content

DEV-1467 - Darwino

  • 1. DEV-1430 Give a New Life to Your Notes/Domino Applications and Leverage IBM Bluemix, Watson, & Connections
  • 2. Disclaimer 2 • 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 3 • Jesse Gallagher CTO of I Know Some Guys Board Member of OpenNTF • Philippe Riand CTO of Trilog Group & Darwino Inc. Former application development chief architect for IBM Collaboration Services Chief architect, and inventor, of IBM Domino XPages
  • 4. Who Are We? 4 • Darwino is an application development platform targeting mobile, cloud, and IoT Darwino is well-integrated with IBM platforms, including IBM Connections, IBM Domino, IBM Bluemix and IBM Watson darwino.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 5 • Explain the Darwino architecture • Demonstrate how Darwino can be used in several common modernization/extension use cases Reporting Modernization of an existing Domino app Mobile apps with offline use Integrations/extensions with other platforms
  • 7. 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
  • 8. Darwino DB – JSON Document Store NoSQL, JSON document store with binary attachments Advanced query capabilities Native multi-tenant, integrated social features… Two way replication mechanism Supports Domino-style capabilities Response documents, document based security… Granular security model, down to the document level Implemented on top of existing relational databases Takes advantage of the existing RDBMS features Supports JSON natively Fully transactional, performance and scalability Full SQL Queries Compatible with all the Business Intelligence – Reporting tools
  • 9. IBM Connect 2017 - Hackathon 9 We won the Hackathon Monday with a Darwino Application In less than 6 hours, we created an application: Deployed on IBM Bluemix Web Application Server, Database… Fully integrated in IBM Connections Cloud Authentication, APIs, Community application… Integrated with IBM Watson Workspace Created a bot Provided a mobile experience on top of the web one Includes offline capability for the Data
  • 10. IBM Connect 2017 - Hackathon 10 The team was made of 10 people with different skills No one had experience with Darwino beyond me! But I did not code myself We picked up the technologies/tools already known by the team members UI – Bootstrap/Sass, ReactJS, Node.js, Atom Backend – Java, Eclipse Mobile – Android SDK Administration – Bluemix, Connections Cloud. IBM Eclipse Bluemix plugin Github Slack
  • 11. Darwino Applied to Domino Refresh and Extends your Domino Applications 11
  • 13. Darwino/Domino Replication 13 “Native-like” replication with Domino Two-way Creation and modification times and replication data (sequence ID) intact Shared UNIDs (when compatible) High data fidelity Customizable data translation High performance via C API Maintains the security model The database ACL is replicated from Domino and applied to the Darwino DB It maintains the readers/authors fields
  • 14. Use Case #1: Reporting and Business Intelligence Get the value out of your Domino data 14
  • 15. Reporting on Domino Data? Really? 15 Reporting has always been a weakness for Domino No standard data API consumable by market tools Very 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 type Easy to create SQL views, and other artifacts, dedicated to reporting The Darwino DB can act as a data warehouse, replicated real time with Domino
  • 16. Endeavour Reporter Reporting tool developed in conjunction with Construction Management Systems in Arkansas, US Designed based on their production needs, previously filled by DomSQL Built to address the very common need of Domino shops to do SQL-style reporting with standardized tools Streamlines the process of creating Darwino tables in a SQL server and replicating over the data The data can then be queried directly via PostgreSQL’s native JSON syntax or via the created views For further information, contact Jerry Horani - jhorani@vccusa.com
  • 18. Use Case #2: App Conversion 18 Give a new life to your existing applications
  • 19. The Value of Darwino to Domino Applications 19 Make your existing applications match the current user expectations Keep Domino apps untouched (keeps data in Domino and leverages existing business logic, while incrementally enhancing the Darwino app Reuse existing assets and skills on top of ‘state of the art’ technologies Developers feel ‘at home’ right from the beginning Removes 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 20 Darwino is independent from the development environment Works with most popular IDEs, including Eclipse But command line can also be used Leverages the existing toolkits, like Android SDK or MOE Delivered as a maven tree of artifact, and OSGi plugins Darwino Studio is a set of Eclipse tools to simplify development and integration Develop for all the platforms from one single IDE Features an application wizard to get started with a few clicks Provides a UI code generator Import 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 21
  • 23. Use Case #3: Mobile, Offline-Enabled Apps Android, iOS, and Desktop 23
  • 24. Offline Mobile Access Mobile devices share the same database and business logic Apps work offline, ”Notes client” style Use the same application in airplane mode, replicate up afterwards The 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 25
  • 26. Use Case #4: Integrations Integrate with the broader IBM Platform 26
  • 27. Darwino+Bluemix Bluemix is a perfect spot for Darwino application Provides 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 28 Seamlessly integrates with IBM Connections both on-premises and cloud Use IBM Connections as a directory of users Built-in OAuth support Access 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 Community And apply role based security
  • 29. Darwino+Watson 29 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 30 Runner-up in the ICS Worldwide Developer Competition
  • 31. App Development Story What Modernizing with Darwino Brings to the Table 31
  • 32. Things Impractical or “Technically Possible” with Domino Use Case 1: Reporting Essentially requires an extra tool, and most have severe limitations Use Case 2: App Conversion Modern apps can be written on Domino, but it’s swimming upstream: wrangling libraries, working around limitations Use Case 3: Offline Mobile Access Can’t be done out of the box Use Case 4: Integrations Most involve significant extra work to emulate things much easier in Darwino 32
  • 33. The Work You Don’t Have To Do Standard dev toolchain: Easily consume third-party dependencies Modern web server technologies Built client-side apps or use any Java-compatible framework Modern client tooling (easy to use npm, bower, etc.) Straightforward building with Jenkins, etc. State-of-the-art technologies with active developer communities 33
  • 34. The Work You Don’t Have To Do Darwino-provided: Cross-platform deployment Web, desktop, iOS, and Android Shared UI or native-tailored to each Consistent data layer and business logic Including common utility library and services framework to build upon Advanced NoSQL data store with SQL benefits Built-in integrations with common environments 34
  • 35. 35 2/24/2017 Q&A - Thank you