Upload
lucas-jellema
View
545
Download
1
Embed Size (px)
Citation preview
Soaring through the Clouds
Live Oracle Public Cloud PaaS demoby
The ACE Director Cloud Team
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
The Team
• Distributed– Three countries, Five partners, Five Locations– The Cloud is omnipresent• except when there is a form of outage
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
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
Run human workflow based on suggested
artist; approve/reject, add image and
description; forward to REST service
Expose User Interface that contains the proposed artist with some
enrichment, based on REST APIs (exposed from MCS)
Publish REST APIs that expose data on proposed artists
including the selected image
Expose REST API [for PCS to invoke] to register a proposed artist and a
supporting image; record artist details persistently [with some enrichment];
publish Tweet about new proposal
ICS
Sites CS
Torsten
Lonneke
Wilfred
Mark
Lucas
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
DBaaS
SOA CS
ACC
ICS
MCS
Doc CS
PCS
JCS
Valencia
OSN
IoT CS
Sites CS
Geographic spread of our demo
Netherlands
Oracle JET on ACC
MCS
Storage
Compute
ACC
JET Web App : http://bit.ly/acesdemo
JET Web App : http://bit.ly/acesdemo
Browser invokes twitter APIREST call to nodejs which calls MCS
/mobile/custom/artistapi/acts
JET Web App : http://bit.ly/acesdemo
Responsive layout -small screen /mobile/custom/artistapi/acts/678
JET Web App : http://bit.ly/acesdemo
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
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
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
{ "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
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
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
Architecture
MCS ActService
Mobile backend
Mobile back end
Act API
PlatformAPI
Act SOAP connector
/acts/acts/{id}
Proposed Acts Service
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
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
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
JET Web App : http://bit.ly/acesdemo