Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

DEV-1467 - Darwino


Published on

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

Published in: Technology
  • Be the first to comment

DEV-1467 - Darwino

  1. 1. DEV-1430 Give a New Life to Your Notes/Domino Applications and Leverage IBM Bluemix, Watson, & Connections
  2. 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. 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. 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, 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. 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
  6. 6. Darwino Architecture 6
  7. 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. 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. 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. 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. 11. Darwino Applied to Domino Refresh and Extends your Domino Applications 11
  12. 12. Darwino Applied to Domino
  13. 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. 14. Use Case #1: Reporting and Business Intelligence Get the value out of your Domino data 14
  15. 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. 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 -
  17. 17. Endeavour Reporter
  18. 18. Use Case #2: App Conversion 18 Give a new life to your existing applications
  19. 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. 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. 21. Example App: 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
  22. 22. Demo 22
  23. 23. Use Case #3: Mobile, Offline-Enabled Apps Android, iOS, and Desktop 23
  24. 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. 25. Example: Discussion DB Example application that: • Replicates with Domino • Supports instances • Has UIs for each platform 25
  26. 26. Use Case #4: Integrations Integrate with the broader IBM Platform 26
  27. 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. 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. 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=""> <property name="url"></property> <property name="user">${socialanalyzer.toneAnalyzer.user}</property> <property name="password">${socialanalyzer.toneAnalyzer.password}</property> </bean>
  30. 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. 31. App Development Story What Modernizing with Darwino Brings to the Table 31
  32. 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. 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. 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. 35 2/24/2017 Q&A - Thank you