AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public...

49
Soaring through the Clouds Live Oracle Public Cloud PaaS demo by The ACE Director Cloud Team

Transcript of AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public...

Page 1: AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public PaaS Services

Soaring through the Clouds

Live Oracle Public Cloud PaaS demobyThe ACE Director Cloud Team

Page 2: AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public PaaS Services

Challenge

• Do a live and integrated demo of as many Oracle Public PaaS cloud services as possible

ICSDoc CS

PCSJCS

OSN

Sites CS

DBaaS

SOA CS

ACC

MCS

IoT CS

Page 3: AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public PaaS Services

The Team

• Distributed– Three countries, Five partners, Five Locations– The Cloud is omnipresent• except when there is a form of outage

Page 4: AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public PaaS Services

Story Line to create a credible flow across the clouds

Oracle OpenWorld

2016

Evaluate Proposal

Analyze Twitter traffic & Voting Machines

Publish Approved Proposals on Web & App

Page 6: AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public PaaS Services

Now you tweet your Artist Proposal for OOW 2016

Use the hashtag #ofmaces to get noticed by IoT CS and add your favorite artist as the second hashtag

Note: use underscore for space

JET Web App : http://bit.ly/acesdemo

Page 7: AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public PaaS Services

audience

IoT CS

PCS

Doc CS

SOA CS

DBaaS

MCS

JET on AppContainer CS (or JCS)

ACC

OSN

Real “Things” (Pis, Arduino’s, …)

Collect and analyze audience input; forward findings to

REST service on ICS

Run human workflow based on suggested artist;

approve/reject, add image (on Doc CS) and

description; discuss on OSN; forward outcome to service

on ICS

Expose Rich, Responsive, Mobile enabled User Interface that contains

the proposed artist with some enrichment, based on REST APIs

(exposed from MCS)

Publish REST/JSON APIs that expose data on proposed artists including

the selected image (based on SOAP services on SOA CS)

Expose SOAP API [for ICS to invoke] to register a proposed artist and a supporting image; record

artist details persistently [with some enrichment retrieved from external services]; publish Tweet

about new proposal

ICS

Sites CS

Torsten

Lonneke

Wilfred

Lonneke

Lucas

Expose SOAP and REST services to facilitate

inetgration (from IoT CS to PCS, from PCS to SOA CS and from SOA CS to

Twitter)

Page 8: AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public PaaS Services

All the cloud services involved – and how they are connected

Storage

Compute

DBaaS Storage

Compute

DBaaS

JCS

SOA CS

Storage

Compute

ACCICS

MCS

Doc CSPCS

Storage

Compute

IoT CS

OSN Sites CS

ACC

US2

EMEA2

Page 9: AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public PaaS Services

DBaaS

SOA CS

ACC

ICS

MCS

Doc CS

PCS

JCS

OSN

IoT CS

Sites CS

Geographic spread of our demo

Katwijk, Netherlan

ds

Page 10: AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public PaaS Services

Step One: IoT == Internet of Tweets

ICS

PCS

IoT CS

US2

EMEA2

Page 11: AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public PaaS Services

Doc CSPCS

OSN Sites CS

Content and Process

Responsive Microsite Page Built with the

authorised Image stored in DCS

Business Process receives IoT message and sends to reviewer for ennrichment

and authorisation

Doc Cloud used to store marketing images for display

in JET app and Sites Page

Social Network used to discuss the marketing image,

description and approval

Microsites: http://tinyurl.com/ACEDCLOUD-KW

Page 12: AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public PaaS Services

Integration and Persistence

Storage

Compute

DBaaS

Storage

Compute

DBaaS

JCS

SOA CS

Storage

Compute

JCS

ACC

ICS

Page 13: AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public PaaS Services

ICS

PCS

IoT CS

REST(hand off artist finding in proprietary IoT CS

JSON format); forwarded to PCS

ICS is at the center of this world

Page 14: AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public PaaS Services

SOA CSICS

PCS

REST(publishes a Tweet, called

from SOA CS)

SOAP(returns Y or N depending on whether a

proposal exists using SOA CS)

SOAP(calls to SOA CS to create

enriched proposal in DB; this service is to be called by PCS)

ICS is at the center of this world

IoT CS

REST(hand off artist finding in proprietary IoT CS

JSON format); forwarded to PCS

Page 15: AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public PaaS Services

SOA CSICS

PCS

IoT CS

REST(publishes a Tweet through

SaibotAirport )REST

(hand off artist finding in proprietary IoT CS JSON format); forwarded to SOA CS

SOAP(returns Y or N depending on whether a

proposal exists using SOA CS)

REST(submit a proposal for an artist in decent JSON format; links to PCS to ask for approval of the

proposal

SOAP(calls to SOA CS to create

enriched proposal in DB; this service is to be called by PCS)

REST API(calls to SOA CS to create enriched proposal in DB)

REST(hand off artist finding in proprietary IoT CS

JSON format); forwarded to PCS

ICS is at the center of this world

Page 16: AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public PaaS Services

Defining Connections

Page 17: AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public PaaS Services

Defining Integrations

Page 18: AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public PaaS Services

Integration: expose public SOAP, integrate with internal SOA CS

Page 19: AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public PaaS Services

Configure business identifiers

Page 20: AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public PaaS Services

Action: Find a nice The Boss image

Page 21: AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public PaaS Services

Submit proposal directly to ICS (pretending to be PCS)

Page 22: AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public PaaS Services

Verified with direct Soap Calls to SOA CS

Page 23: AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public PaaS Services

Verified with direct Soap Calls to SOA CS

Page 24: AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public PaaS Services

Seconds later…

Page 25: AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public PaaS Services

And published in the JET Web App

Page 26: AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public PaaS Services

And published in the JET Web App

Page 27: AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public PaaS Services

Traces in ICS

Page 28: AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public PaaS Services

Traces in ICS

Page 29: AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public PaaS Services

And in SOA CS

Page 30: AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public PaaS Services

And in SOA CS

Page 31: AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public PaaS Services

And in SOA CS

Page 32: AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public PaaS Services

And in DBaaS

Page 33: AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public PaaS Services

33

SOA CS

Identity Domain

DBaaS

Storage CS Compute CS

JCS

SOA CS

SOA

Service Bus PDB1

HR

PDB2

APP

Page 34: AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public PaaS Services

DBaaSJCS

SOA CS

SOA CS

SOA CS

SOA

Service Bus

PDB1

HR

PDB2

APP

act_proposal_api

proposed_acts

act_albums

Page 35: AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public PaaS Services

Architecture

MCS ActService

Page 36: AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public PaaS Services

Mobile backend

Mobile back end

Act API

PlatformAPI

Act SOAP connector

/acts/acts/{id}

Proposed Acts Service

Page 37: AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public PaaS Services

Oracle JET on ACC

MCS

Storage

Compute

ACC

JET Web App : http://bit.ly/acesdemo

Page 38: AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public PaaS Services

JET Web App : http://bit.ly/acesdemo

Page 39: AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public PaaS Services

Browser invokes twitter APIREST call to nodejs which calls MCS

/mobile/custom/artistapi/acts

JET Web App : http://bit.ly/acesdemo

Page 40: AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public PaaS Services

Responsive layout -small screen /mobile/custom/artistapi/acts/678

JET Web App : http://bit.ly/acesdemo

Page 41: AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public PaaS Services

REST API: /mobile/custom/artistapi/acts[

{ "id": 661, "name": "Bruce Springsteen",

"numberOfVotes": 48, "registrationDate": "2016-03-14T11:47:48.709198+00:00"

}, ... more acts ...]

JET Web App : http://bit.ly/acesdemo

Page 42: AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public PaaS Services

REST API: /mobile/custom/artistapi/acts/661{

"id": 661, "name": "Bruce Springsteen", "numberOfVotes": 48, "description": "Down to earth rock...", "genres": "[\"roots rock\",\"singer-songwriter\"]", "biography": "Bruce Frederick .....", "imageURL": "http://i.telegraph.co.uk/...", "discography": [ {"title": "Born In The U.S.A.", "imageURL": "..."}, ... more albums ... ]}

JET Web App : http://bit.ly/acesdemo

Page 43: AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public PaaS Services

BROWSER

NodeJS server on Application

Container Cloud Service

REST API on Mobile Cloud

Service

Adds http request headers:● oracle-mobile-backend-

id● authorization

Having the browser invoke a REST API on same server that hosts html and js prevents Cross-Origin issues

JET Web App : http://bit.ly/acesdemo

Page 44: AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public PaaS Services

{ "runtime": { "majorVersion": "0.12" }, "command": "sh start.sh"}

manifest.json

#!/bin/shunset http_proxyunset https_proxynode ./index

{ "environment": { "MCS_BACKEND_ID": "55bc25a9-...", "MCS_URL": "...us2.oraclecloud.com:443", "MCS_USER": "MCSDEM0001...", "MCS_PWD": "dy6ou5..." }}

Configuring AppContainerCS nodejsdeployment.json

start.sh

JET Web App : http://bit.ly/acesdemo

Page 45: AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public PaaS Services

index.js (nodejs code)

var express = require('express');var app = express();var request = require('request');

app.use(express.static('public'));app.use('/bower_components', express.static('bower_components'));app.use('/mobile/*', function (req, res) { var url = process.env.MCS_URL + req.originalUrl; req.pipe(request({ url: url, headers: { 'oracle-mobile-backend-id': process.env.MCS_BACKEND_ID }, auth: { user: process.env.MCS_USER, pass: process.env.MCS_PWD } })).pipe(res);});

var PORT = process.env.PORT || 3000;app.listen(PORT, function () { console.log('Example app listening on port ' + PORT + '!'); console.log('MCS backend id is ' + process.env.MCS_BACKEND_ID);});

JET Web App : http://bit.ly/acesdemo

Page 46: AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public PaaS Services

Node.js backend

index.html

drill.html drill.js

acts.html

acts.js

main.js

index.js

/public

Page 47: AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public PaaS Services

Node.js backend

index.html

drill.html drill.js

acts.html

acts.js

details.html details.js

chart.html

chart.js

main.js

index.js

/public

Page 48: AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public PaaS Services

Node.js backend

index.html

drill.html drill.js

acts.html

acts.js

details.html details.js

chart.html

chart.js

main.js

index.js/public

/mobile/custom/artistapi/acts/<id>/mobile/custom/artistapi/acts

MCS

Page 49: AMIS25 - Soaring through the Clouds – Live Demo on How to Integrate Ten Different Oracle Public PaaS Services

Deployment

var form = new FormData();form.append('name', name);form.append('runtime', 'node');form.append('subscription', 'Hourly');form.append('manifest', fs.createReadStream('manifest.json'));form.append('deployment', fs.createReadStream('deployment.json'));form.append('archive', fs.createReadStream('frontend.zip'));formData.submit({ method: method, protocol: 'https:', host: 'apaas.us2.oraclecloud.com', path: '/paas/service/apaas/api/v1.1/apps/myDomain', auth: 'admin:password', headers: { 'X-ID-TENANT-NAME': 'myDomain'}});

via REST

...or simply use cloud web interface

JET Web App : http://bit.ly/acesdemo