dev-1467 - darwino

35
DEV-1430 Give a New Life to Your Notes/Domino Applications and Leverage IBM Bluemix, Watson, & Connections

Upload: jesse-gallagher

Post on 03-Mar-2017

215 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: DEV-1467 - Darwino

DEV-1430 Give a New Life to Your Notes/Domino Applications and Leverage IBM Bluemix, Watson, & Connections

Page 2: DEV-1467 - Darwino

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.

Page 3: DEV-1467 - Darwino

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

Page 4: DEV-1467 - Darwino

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

Page 5: DEV-1467 - Darwino

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

Page 6: DEV-1467 - Darwino

6

Darwino Architecture

Page 7: DEV-1467 - Darwino

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

Page 8: DEV-1467 - Darwino

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

Page 9: DEV-1467 - Darwino

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

Page 10: DEV-1467 - Darwino

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

Page 11: DEV-1467 - Darwino

11

Darwino Applied to Domino

Refresh and Extends your Domino Applications

Page 12: DEV-1467 - Darwino

Darwino Applied to Domino

Page 13: DEV-1467 - Darwino

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

Page 14: DEV-1467 - Darwino

14

Use Case #1: Reporting and Business Intelligence

Get the value out of your Domino data

Page 15: DEV-1467 - Darwino

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

Page 16: DEV-1467 - Darwino

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]

Page 17: DEV-1467 - Darwino

Endeavour Reporter

Page 18: DEV-1467 - Darwino

18

Use Case #2: App Conversion

Give a new life to your existing applications

Page 19: DEV-1467 - Darwino

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

Page 20: DEV-1467 - Darwino

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

Page 21: DEV-1467 - Darwino

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

Page 22: DEV-1467 - Darwino

22

Demo

Page 23: DEV-1467 - Darwino

23

Use Case #3: Mobile, Offline-Enabled Apps

Android, iOS, and Desktop

Page 24: DEV-1467 - Darwino

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)

Page 25: DEV-1467 - Darwino

25

Example: Discussion DB

Example application that:

• Replicates with Domino• Supports instances• Has UIs for each platform

Page 26: DEV-1467 - Darwino

26

Use Case #4: Integrations

Integrate with the broader IBM Platform

Page 27: DEV-1467 - Darwino

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

Page 28: DEV-1467 - Darwino

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

Page 29: DEV-1467 - Darwino

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>

Page 30: DEV-1467 - Darwino

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

Page 31: DEV-1467 - Darwino

31

App Development Story

What Modernizing with Darwino Brings to the Table

Page 32: DEV-1467 - Darwino

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

Page 33: DEV-1467 - 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

Page 34: DEV-1467 - Darwino

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

Page 35: DEV-1467 - Darwino

35 05/01/2023

Q&A - Thank you