collaborative line of business applications on ibm bluemix

53
Collaborative Line of Business Applications on IBM Bluemix How to build CLEAN Applications with Cloudant, LoopBack, Express, Angular and Node Niklas Heidloff Developer Advocate for IBM Bluemix @nheidloff Feb 2016

Upload: niklas-heidloff

Post on 08-Apr-2017

3.677 views

Category:

Software


0 download

TRANSCRIPT

Collaborative Line of Business Applications on IBM Bluemix

How to build CLEAN Applications with Cloudant, LoopBack, Express, Angular and Node

Niklas Heidloff Developer Advocate

for IBM Bluemix @nheidloff

Feb 2016

Collaborative Line of Business Applications Collaborative LoB Applications

•  LoB requirements often lead to the development of new applications since standard software is not sufficient

•  Collaborative applications allow employees to work together synergistically to get their jobs done

•  Collaborative LoB applications often require the protection of intellectual property based on roles of employees

•  Sample scenarios –  Approval workflows –  Teamrooms –  Travel expenses

Requirements of LoB Applications

•  Rapid application development –  To enable citizen developers to build LoB applications –  To enable innovation

•  Focus on business needs rather than infrastructure –  Leverage cloud application platforms –  Utilize DevOps

•  Cost efficient hosting

Collaborative LoB Applications

Requirements of LoB Applications

•  Access to applications via web and mobile user experiences •  Integration of existing data, documents and files •  Integration of existing directories and user profiles •  Usage of modern and popular technologies to leverage

communities, libraries and tools •  Usage of standard and most common development skills

–  Scripting is easier than languages like C and Java –  Preference is to use one language for everything

Collaborative LoB Applications

The CLEAN Stack

CLEAN Cloudant Loopback

Express AngularJS

Ionic, Cordova Node.js

JavaScript everywhere Bluemix

Sample Project on GitHub

CLEAN

Business Objects and REST APIs Business O

bjects

•  Declarative definitions of business objects

•  Automatic generation of REST APIs –  Including API documentation

Loopback

Swagger

Business Objects

Business Objects

Business Objects

Business Objects

Business Objects

Business Objects

Business Objects

Customization of the generated APIs

REST APIs

•  Scenarios –  Add additional APIs –  Hide methods and endpoints –  Execution hooks for CRUD operations

•  Turn off auto generation for models

Loopback

Node

REST APIs

REST APIs

REST APIs

Authentication against Bluemix

Authentication

•  Single Sign On service on Bluemix allows authentication with on-premises directories via SAML Loopback

Bluemix

Authentication

Authentication

Authentication

Authentication

Authorization

Authorization

•  Authorization via roles

•  Application level authorization is done declaratively

•  Business object level authorization is done programmatically

Loopback

Node

Authorization

Authorization

Deployment

Deploym

ent

•  Bluemix compute technologies –  Cloud Foundry –  Docker

•  Deployment options –  Deploy button –  CLIs –  Git push and DevOps

Bluemix

Cloud Foundry

Docker

Deploym

ent

Deploym

ent

Deploym

ent

Cloudant NoSQL Database

Cloudant

•  Cloudant service is created on Bluemix

•  Cloudant Queries can be invoked via the dashboard

Cloudant

LoopBack

Cloudant

Cloudant

Development Environment Developm

ent Environment

•  Local environment –  Node.js, text editor, inspector –  Local property file with Bluemix credentials –  In memory database

•  DevOps web editor

Node

Developm

ent Environment

Developm

ent Environment

Developm

ent Environment

Web Client

Web Client

•  LoopBack generates JavaScript libraries to access the services from AngularJS controllers AngularJS

LoopBack

Web Client

Web Client

Web Client

Web Client

Web Client

Mobile Clients

Mobile Clients

•  Via Cordova mobile hybrid apps can be generated for iOS and Android

•  LoopBack generates JavaScript libraries to access the services from AngularJS controllers

•  The controllers are the same ones as used for the web client

Ionic

Cordova

AngularJS

Web Client

Mobile Clients

Mobile Clients

Mobile Clients

Mobile Clients

Mobile Clients

Mobile Clients

Mobile Clients

Feedback is highly appreciated!

@nheidloff

https://github.com/ibm-bluemix/collaboration

Niklas Heidloff Developer Advocate

for IBM Bluemix @nheidloff

Feb 2016