Post on 16-Jul-2015
SPOT104: Lightning-Fast Development of Native Mobile Apps for IBM Connections and IBM Connections Cloud
Dr. John Tripp, Trilog Group
Philippe Riand, Trilog Group
Disclaimer
Trilog Group’s statements regarding its plans, directions, and intent are subject to change or
withdrawal without notice at Trilog Group’s sole discretion.
Information regarding potential future products is intended to outline our general product direction
and it should not be relied on in making a purchasing decision.
The information mentioned regarding potential future products is not a commitment, promise, or
legal obligation to deliver any material, code or functionality. Information about potential future
products may not be incorporated into any contract. The development, release, and timing of any
future features or functionality described for our products remains at our sole discretion.
About The Speakers
John Tripp
– Chief Evangelist of Trilog Group
– Former Director of Business Information Systems, Team Detroit
– Initial Adopter of XPages technology
– Assistant Professor, Baylor University. Focusing on research into Social Media Impacts.
Philippe Riand
– CTO of Trilog Group
– Former application development chief architect for IBM Collaboration Services
– Chief architect, and inventor, of IBM Domino XPages
– Launcher and main Contributor of several successful OpenNTF projects
XPages Extension Library, Bootstrap for XPages, Domino JDBC Driver, IBM Social Business Toolkit
Agenda
ProjExec and IBM Connections – A Perfect Match
ProjExec 7 – Going Mobile
Challenges of Going Mobile
How we approached the problem
Introducing Darwino
– Scenario/Demo
– Darwino DB
– Darwino Platform
Value Proposition
FAQ and Concluding Thoughts
ProjExec, the Leading Project Management Software for IBM Connections
Award winning solution tightly integrated with IBM Connections
– Delivers true social project management through the integration of rich project management functionality and the power of IBM Connections
– State of the Art Web 2.0 application, with extensive use of Ajax\ and services
– Based on the technology that became XPages, but runs on WebSphere
– Stores data as XML documents in DB2
Has been extremely successful…BUT
– Users now demand a true mobile experience, and the current technology wasn’t designed around the mobile paradigm.
Mobile Users - Use Case
ProjExec is used to manage the maintenance of nuclear plants, where the timing of downtime is critical
Users must report updates as soon as possible to allow other tasks to begin.
Workers use tablets, on site, to report and monitor status updates
– These workers require a rich, fully-featured mobile experience.
The Challenges for a Mobile-Enabling an Existing Application
True, rich, responsive mobile app
– Even when the network connection is erratic or inexistent.
– Even with the constraints of bandwidth, storage, and battery life
– Even with the requirements of data security (access rights, encryption)
– Should be platform-agnostic
Should not need to be a “rip and replace”
– Needs to leverage previous investment in technology and people
Mobile applications involve a lot of pieces
Lots of moving parts
– Application Code
– Data Management
– Mobile OS specific components
– Multitenant distributed mobile back-end
– Etc.
Application developers become distracted from building business-value and instead focus on plumbing.
We wanted our developers to focus on adding value to ProjExec, not to worry about the next OS update and related changes.
How to do this?
We needed to find a solution that:
1. Allowed rapid development of both native and hybrid mobile applications, while providing the best possible user experience.
2. Allowed local storage of a subset of data aggregated from different back-end sources and could synchronize seamlessly with these sources when the connection is available
3. Could run the business logic locally
4. The mobile application must consume the existing data and business logic. We don’t want a new application, but an enhanced one.
5. Allowed our developers to leverage their existing skills and focus on the app, not the minutiae of mobile devices.
Above all…how do we do this while minimizing time to market?
It didn’t exist …
Even though we knew that our problem was not unique, the platform we needed didn’t exist
What we needed was a lot like IBM Notes
– A full-stack application development platform
– Abstraction and management of the deep technical details
– Document-centric
– Replication
– Allows most developers to focus on the app, not the underlying infrastructure
…so we built it !
Introducing Darwino
– An open platform for rapidly developing social business applications targeting primarily Mobile and Cloud
– Allows developers to focus on the application, not the specifics of each mobile platform or the wiring of the application to IBM Connections
– Reduces time to value through the use of a full stack of components
– Provides hooks to allow both data and business logic to run locally, and securely, on the mobile device, with next to no additional coding.
– Adapts to what the developer knows in term of UI, programming languages and databases
A Demo is better than a thousand words – ProjExec Next and Darwino
ProjExec Next Architecture
IBM Connections + ProjExecProjExec Next
JSON Data Replication
Over HTTP/WebSockets
WebSphere Liberty
Postgresql or DB2
JSON DataReplication
REST DataAccess
- The existing ProjExec application remains unchanged
- The data is replicated to the Darwino JSON Store, that is then replicated “on the fly” to the Darwino Portable JSON Store on the mobile devices
Darwino Components
• DarwinoStudio & Designer
• HTML/Web
• Native Mobile
• REST Services
• DarwinoDB
JSON Data Store
Business Logic
Development tools
UI Components
- Darwino provides all the components to create rich, highly interactive social mobile applications for IBM Connections
- Supports Web and mobile developments
- Included JSON Data Store
- All services as exposed as REST services
- Darwino Studio, for core developers
- Darwino Designer, for citizen developers
DarwinoDB
The foundational component that makes everything possible
– NO-SQL, JSON based store, including semi structured data and binary attachments
– Designed for social and collaborative applications
– Designed for web and mobile development
– Designed for cloud or on premises deployments
– Allows distributed computing with synchronization between nodes
– Supports mobile Offline user operation
Based on top of existing relational databases
– Takes advantage of the existing RDBMS features, including the JSON access
– Supports very large amount of data
– The missing piece between NoSQL and NewSQL!
DarwinoDB – Synchronize Any Data, Anywhere
The world’s most advanced data synchronization mechanism
– Multipoint, bi-directional
– Security ensures that only the authorized data are synchronized
– Data filtering for synchronizing data subsets
– Synchronizes between Darwino DB JSON stores, or external data sources
– Customizable functional replication logic
DarwinoDB acts as a mobile front-end database to any data, including big data
– Public APIs for creating custom synchronization adapters
Remote servers are accessed through HTTP, but other transports/protocols can be used (ex: Bluetooth for mobile to mobile data synchronization).
Use The Technology That Best Suits Your Business Needs
Darwino does not preclude or prescribe any particular technology but provides components libraries to support the application and its UI
Web Browser and Hybrid Native Mobile UI
Pure web
- JSON store client JS APIs
- JSON store server side Java APIs
- AngularJS/JQuery components
- CSS frameworks: Bootstrap, Ionic
Hybrid
- Application shell
- Local server with data and services access
Android components
- Java JSON store APIs
- Business logic services
- UI widgets
- Data adapters (views, …)
iOS Components
- iOS JSON store API
- RoboVM components
Mobile Hybrid Applications for Maximum Code Sharing
A hybrid application is a mobile native application that runs within an embedded web browser component
– Android KitKat and iOS now feature high performance web components– UI libraries give a close to native UI experience (Bootstrap, Foundation, Ionic, KendoUI…)
Generally fully written using HTML5, including the UI and the business logic– Through the use of Apache Cordova/PhoneGap
Have several issues:– Performance, as everything runs in the browser– Not robust, for example the context is lost after a page refresh– Cross origin, and authentication, issues when connecting to external services– Hard to write fully portable code across mobile platforms and web (resources URLs, services...)– Many existing JavaScript libraries do not support this mode out of the box
Darwino - Second Generation of Hybrid Applications
Local HTTP Server
Runtime Libraries
Business Logic
Local Database
Mobile Device
Web Componentfor rendering
• The business logic is separated from the UI and is executed as native code (primarily Java)
• The Darwino hybrid application embeds a fast, tiny HTTP server for serving the UI, the web resources and the data
• Both the business logic and the UI code are identical on the local device and the server
• Native UI is provided for common features, like the settings page
Application Server
HTTP Server
Runtime Libraries
Business Logic
Enterprise DatabaseData Synchronization
Online Data Access
Web Browser Access
A Darwino Application, from a Developer Standpoint
A multi-platform application is made of several projects
– One shared project, containing the common code
• Business logic, Web UI…
– One project per target platform
• J2EE, Android, iOS…
• A studio wizard generates these projects
The projects are standard Eclipse and/or Maven projects
– The dependencies are available in a Maven repository
– Support continuous build and deliveries
– Unit tests done using standard unit test libraries, like JUnit
Fully Integrated With The Broader IBM Platform
IBM Connections
Social Business Toolkit
Mobile Devices
External Data Sources
DB2
WebSphere
Darwino Social APIs
Da
rwin
oR
un
tim
e
Darwino Studio
Darwino Application
IBM Worklight, Eclipse
Web Access
IBM Bluemix
Worklight
Clo
ud
On
-pre
mis
es
Domino
Extend IBM Connections with Social Business Applications
A Darwino application runs directly on the IBM Connections server, leveraging WAS & DB2
Darwino features a series of services that ease the access of IBM Connections data
– JSON wrappers for the commons services: Profiles, Communities, Files…
– Connections data can be cached on the mobile devices for offline and high performance
The multi tenancy capability of the database makes it easy to develop community widgets/gadgets
One of the unique features of DarwinoDB is that any business object has social meta-data attached to it (like, tagging, ranking, commenting, sharing)
– You can socialize a legacy business app by using DarwinoDB on the side to extend the business data model with unstructured social data effectively building a system of engagement
– Use cases: projects, sales opportunities, purchase orders, RFPs, loan origination, products and services, recruiting
– Any forms-based business process is socialized out of the box by virtue of using Darwino
Value Proposition
Business First
Darwino significantly reduces the cost to build mobile, social and cloud business apps – Solves many complex challenges out of the box, so developers can focus on business
requirements
– Eliminates the learning curve for developers to be productive from day one with their existing skills
Darwino enables organizations to rapidly derive more value from IBM Connections– Integrating business processes and legacy apps with IBM Connections is as easy as it gets
Darwino enables organizations to move to the cloud while retaining sensitive data – Supports instant deployment on IBM BlueMix
– Selective secure replication ensures that sensitive data remains on-premises
Darwino apps offer a superior mobile user experience and lower communication costs– User productivity is no longer dependent on wi-fi signal
– Efficient differential replication with data compression reduces wireless data traffic/costs by 80%
No IBM ISV Left Behind
Darwino lowers the upfront investment barrier for ISVs to build solutions leveraging the breadth of the IBM software portfolio rather than one IBM technology at a time
Eliminates the risk of reliance on a single technology
Eliminates the need for different code streams to address multiple platforms
Opportunity for ISVs to extend the value of existing solutions with minimal investment– Bring existing solutions to IBM Connections, IBM Connections Cloud or IBM BlueMix
– Mobile offline experience is a competitive advantage
Darwino is Domino’s Best Friend !
The DarwinoDB runtime runs on the Domino server and in the Notes client !– Provided as a set of OSGi plug-ins that runs on the Domino server and the Notes client
– No need to run a separate server
DarwinoDB fully synchronizes with the Domino NSF store– Optimized 2 way data synchronization capability between NSFs and the JSON store
– Exposes the NSF store as a virtual, synchronizable, JSON store
– Leverage the Darwino Connectors to synchronize with relational or big data
Connect to DarwinoDB data from every XPages application through REST services and the IBM Social Business Toolkit
Darwino mobile apps enable users to work with Domino data + Connections Data + ANY enterprise data offline, not just Domino data
Darwino Studio as a Domino Designer plug-in for a seamless developer experience
FAQ / Concluding Thoughts
What will I get?
DarwinoDB will be the first deliverable and available in multiple editions– DarwinoDB Community Edition
• Licensed at no charge
• Uses SQLite as the physical datastore
• On premises deployment only
• Supports Windows, Linux & Mac
– DarwinoDB Enterprise Edition
• Supports enterprise database systems, like DB2
• Deploys to both on premises and cloud
• Features enterprise data connectors
Darwino Studio to follow later this year– No need to wait for Darwino Studio to start developing Darwino apps !
When can I get it?
Currently in development stage
Managed beta will start in March-April 2015
Darwino DB beta
Darwino Studio beta
End of Q4 2015Q3 2015End of Q1/2015
Darwino GA
Add to Darwino DB
Finish 1st Release
Finalize Offering
Get Involved!
Darwino is first and foremost a community effort, so your tweets, blogs and feedback are welcome
Get connected at www.darwino.com
Register to be notified of the upcoming beta
Follow DarwinoDB on Twitter, Facebook and YouTube
New blog and enablement materials coming soon
Want to contribute? We have a program for you
Thank You! Questions?
Learn more at Booth S6!
Notices and Disclaimers
Copyright © 2015 by International Business Machines Corporation (IBM). No part of this document may be reproduced or transmitted in any form without written permission from IBM.
U.S. Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM.
Information in these presentations (including information relating to products that have not yet been announced by IBM) has been reviewed for accuracy as of the date of initial publication and could include
unintentional technical or typographical errors. IBM shall have no responsibility to update this information. THIS DOCUMENT IS DISTRIBUTED "AS IS" WITHOUT ANY WARRANTY, EITHER EXPRESS OR IMPLIED.
IN NO EVENT SHALL IBM BE LIABLE FOR ANY DAMAGE ARISING FROM THE USE OF THIS INFORMATION, INCLUDING BUT NOT LIMITED TO, LOSS OF DATA, BUSINESS INTERRUPTION, LOSS OF
PROFIT OR LOSS OF OPPORTUNITY. IBM products and services are warranted according to the terms and conditions of the agreements under which they are provided.
Any statements regarding IBM's future direction, intent or product plans are subject to change or withdrawal without notice.
Performance data contained herein was generally obtained in a controlled, isolated environments. Customer examples are presented as illustrations of how those customers have used IBM products and the results
they may have achieved. Actual performance, cost, savings or other results in other operating environments may vary.
References in this document to IBM products, programs, or services does not imply that IBM intends to make such products, programs or services available in all countries in which IBM operates or does business.
Workshops, sessions and associated materials may have been prepared by independent session speakers, and do not necessarily reflect the views of IBM. All materials and discussions are provided for informational
purposes only, and are neither intended to, nor shall constitute legal or other guidance or advice to any individual participant or their specific situation.
It is the customer’s responsibility to insure its own compliance with legal requirements and to obtain advice of competent legal counsel as to the identification and interpretation of any relevant laws and regulatory
requirements that may affect the customer’s business and any actions the customer may need to take to comply with such laws. IBM does not provide legal advice or represent or warrant that its services or products
will ensure that the customer is in compliance with any law.
Information concerning non-IBM products was obtained from the suppliers of those products, their published announcements or other publicly available sources. IBM has not tested those products in connection with
this publication and cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on the capabilities of non-IBM products should be addressed to the suppliers
of those products. IBM does not warrant the quality of any third-party products, or the ability of any such third-party products to interoperate with IBM’s products. IBM EXPRESSLY DISCLAIMS ALL WARRANTIES,
EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
The provision of the information contained herein is not intended to, and does not, grant any right or license under any IBM patents, copyrights, trademarks or other intellectual property right.
IBM, the IBM logo, ibm.com, BrassRing®, Connections™, Domino®, Global Business Services®, Global Technology Services®, SmartCloud®, Social Business®, Kenexa®, Notes®, PartnerWorld®, Prove It!®,
PureSystems®, Sametime®, Verse™, Watson™, WebSphere®, Worklight®, are trademarks of International Business Machines Corporation, registered in many jurisdictions worldwide. Other product and service
names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at "Copyright and trademark information" at: www.ibm.com/legal/copytrade.shtml.
Engage Online
SocialBiz User Group socialbizug.org
– Join the epicenter of Notes and Collaboration user groups
Social Business Insights blog ibm.com/blogs/socialbusiness
– Read and engage with our bloggers
Follow us on Twitter
– @IBMConnect and @IBMSocialBiz
LinkedIn http://bit.ly/SBComm
– Participate in the IBM Social Business group on LinkedIn
Facebook https://www.facebook.com/IBMConnected
– Like IBM Social Business on Facebook