partner webcast – oracle paas: oracle mobile cloud service development
TRANSCRIPT
TWITTER.COM/ORACLEIMC FACEBOOK.COM/ORACLEIMC PLUS.GOOGLE.COM/+ORACLEIMC YOUTUBE.COM/ORACLEIMCTEAM
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Oracle PaaS: Mobile Cloud Service Development Partner Webcast
Allen Kubai Wangu ISV Migration Center Consultant A&C Technology Adoption Office
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Safe Harbor Statement
The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.
2A
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Agenda
MCS Overview
Mobile backend Overview
Custom API overview
Design Considerations
Getting Started with Mobile Client SDK and MCS MAF Utility
Demo
Summary and Q & A
1
2
3
4
5
6
7
2A
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Agenda
MCS Overview
Mobile backend Overview
Custom API Overview
Design Considerations
Getting Started with Mobile Client SDK and MCS MAF Utility
Demo
Summary and Q & A
1
2
3
4
5
6
7
2A
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | 1A
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | 1A
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Core HR, Peoplesoft
Mobile storage
Social Networks
Talent management,
Taleo, Cloud
SAP On-Premise
Taleo
Google Map Service
Core HR
1A
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
3rd App Problem
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
This simple app soon became complicated to develop…
Client Development Tools
Integration
Security
Mobile Services
Monitor & Analyze
Multiple Environments
Image courtesy of David Castillo Dominici at FreeDigitalPhotos.net
1A
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
• Centralise mobile integration, diagnostics, logging in the cloud
• Design mobile specific APIs
– Shape & expose services and APIs
• Pre-built mobile services
– Push notifications
– Storage
– Offline synchronization
• Integrated security
Oracle Mobile Cloud Service
1A
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Oracle Mobile Cloud Service
• Analyze business impact
• Client agnostic development tools
• Diagnostic and logging
• Built-in continuous delivery SDLC
– Development, stage, production areas
– Artefact versioning
1A
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Oracle Cloud
Cloud/Internet
On-Premise
MCS Client SDK
Custom APIs Mobile Backend Connectors
Platform APIs
Oracle Mobile Cloud Service
REST APIs
1A
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Agenda
MCS Overview
Mobile backend Overview
Custom API Overview
Design Considerations
Getting Started with Mobile Client SDK and MCS MAF Utility
Demo
Summary and Q & A
1
2
3
4
5
6
7
2A
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Oracle Cloud
Cloud/Internet
On-Premise
MCS Client SDK
Custom APIs Mobile Backend Connectors
Platform APIs
Oracle Mobile Cloud Service
REST APIs
2B
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
The gateway for mobile apps to interface with the exposed MCS services and indirectly enterprise backend services. Security and exposing the platform and custom APIs are MBE key concepts.
Mobile Backend
2B
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Mobile Backend
API
API
API
API
API
REST
SDK
Mobile Backend Overview
• Gateway
• Authentication & authorization
• Group & publish APIs
• Consume via REST or mobile SDK
• Hides implementation details
• Create 1 to many used by 1+ apps
• Versioned, deployed, managed
2B
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Agenda
MCS artifacts for Fix-It-Fast scenario
Mobile backend overview
Custom API Overview
Design Considerations
Getting Started with Mobile Client SDK and MCS MAF Utility
Demo
Summary and Q & A
1
2
3
4
5
6
7
2A
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Oracle Cloud
Cloud/Internet
On-Premise
MCS Client SDK
Custom APIs Mobile Backend Connectors
Platform APIs
Oracle Mobile Cloud Service
REST APIs
2E
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Custom APIs give you the chance to take the ugly, horrible mess of on premise legacy enterprise endpoints, combined with 3rd party web services, and turn them into optimized endpoints for mobile consumption.
Custom APIs • Beyond prebuilt Platform APIs
• Build your own Custom APIs
– Define RESTful endpoints
– Implemented in Node.js
– Consume Connectors
• Expose through Mobile Backends
– Can be reused
– Protected by roles
2E
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Mobile Backend
Mobile App Connectors Custom API
Node http://rest/api
External Services
Oracle Mobile Cloud Service
Implementation Interface
Mobile Developer
Service Developer
Defines Interface REST API
Mock data
Defines Implementation Node.js code Connectors
The mobile developer & service developer work hand in hand in parallel. Or 1 person does all the work in sequence.
The choice is yours.
2E
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Interface
1. Creates the Custom API
2. Defines the endpoints • REST APIs endpoints
• HTTP methods (GET, PUT, POST, DELETE)
• Media types
• Schemas, traits, resources types
• Create via MCS UI or RAML
3. Defines security
4. Exposes through mobile backend
5. Tests via UI using 'mockup' data
Implementation
1. Implements connectors
2. Implement Node.js code
3. Uploads & sets which version of code
4. Tests via UI using real code
The Development Process: Interface vs Implementation
2E
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Custom API
Node http://rest/api
Oracle Mobile Cloud Service
Code Interface
RAML MCS UI
• REST APIs can be defined via
– API Designer in MCS user interface
– RAML
– Combined • Designer stores definition in RAML file
• Changes in one are reflected in the other
• Choice is based on
– Familiarity with RAML
– or Preference for declarative
– or Task at hand
Defining the Interface REST Endpoints
2E
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
• Describes HTTP resources
– Captures design & definition
– RAML is to REST as WSDL is to SOAP
– Not just for REST web services
• Based on YAML
– Easy to read, learn and write
• Popular support via developers
– Open source, replaces defunct WADL
– Competitor (successor?) to Swagger
– 3rd party tooling support growing
RESTful API Modeling Language (RAML)
RESTful API Modeling Language (RAML) is a YAML-based language for describing RESTful APIs.
It encourages reuse, enables discovery and pattern-sharing, and aims for merit-based emergence of best practices.
- Wikipedia
2F
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | 2F
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Agenda
MCS Overview
Mobile backend overview
Custom API Overview
Design Considerations
Getting Started with Mobile Client SDK and MCS MAF Utility
Demo
Summary and Q&A
1
2
3
4
5
6
7
2A
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Mobile backend design process
2L
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Mobile backend design process
✓
✓
✓
2L
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Mobile backend design process
a
a
a
✓
✓
✓
✓
2L
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Mobile backend design process
a
a
a
a
✓
✓
✓
2L
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Mobile backend design process
a
a
a
✓
✓
2L
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Mobile backend design process
a
a
✓
✓
✓
✓
2L
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
How many mobile backends should we have?
• MCS allows
– 1 or more MBEs to be created
– An app to use 1 or more MBEs
• This begs the question: – How many MBEs should we build?
2L
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
How many mobile backends should we have?
• The obvious starting point:
• 1 mobile backend for your 1st app
2L
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
How many mobile backends should we have?
• 1 mobile backend for all apps
• Doesn't provide much flexibility
• Lacks fine grained control
• Change to the MBE affects all apps
2L
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
• 1 mobile backend per app
• Likely a common & popular design
• Changes only affect associated app
How many mobile backends should we have?
2L
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
• Many backends shared across apps
• Potential to share functions
How many mobile backends should we have?
2L
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
• How many apps are there?
• Level of reuse required?
• Development team's experience?
• Granularity of version control?
• Must MBE changes be isolated to 1 app?
• Does the team have bandwidth to update & release multiple apps sharing a mobile backend?
• Should apps be grouped logically?
• Considered MCS realm constraints?
• What else?
Questions that might change your MBE design
2L
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
How do realms impact our MBE design?
• Consider a two app scenario
– Consumer shopping cart app
– Staff order & warehouse app
• A design based on reuse could be:
– 1 shared MBE for common APIs
– 1 MBE for shopping cart app
– 1 MBE for staff app
2L
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
How do realms impact our MBE design?
• We will have two sets of users
1. Consumers for the shopping app
2. Staff members for the staff app
• How many realms do we need?
2L
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
How do realms impact our MBE design?
• An MBE constraint:
–Each MBE may use only 1 realm
= Shared MBE can't use both
= It needs its own separate realm
• What are our remaining options?
2L
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
How do realms impact our MBE design?
• Option:
– A shared realm of consumers & staff
• Pros/Cons?
2L
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
How do realms impact our MBE design?
• Option:
– A realm with all our shoppers
– A realm with all our staff
– A shared realm with both
• Pros/Cons?
2L
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
How do realms impact our MBE design?
• Option:
– Don't use shared MBEs in 1st place
• Pros/Cons?
2L
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Agenda
MCS Overview
Mobile backend overview
Creating a mobile backend
Design Considerations
Getting Started with Mobile Client SDK and MCS MAF Utility
Demo
Summary and Q&A
1
2
3
4
5
6
7
2A
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Oracle Cloud
Cloud/Internet
On-Premise
Custom APIs Mobile Backend Connectors
Platform APIs
Oracle Mobile Cloud Service
REST APIs
11A
MCS Client SDK
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
• Native mobile platform APIs
–Android, iOS...
• Saves hand written REST calls
• Significantly reduces native code
• Prebuilt, tested, optimized
The MCS mobile client SDK saves mobile developers time to focus on the unique mobile app requirements, providing native, optimized APIs to call MCS without coding from the ground up.
Mobile Client SDK
11A
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Mobile SDK Platform API Support
• User Management
– Basic and anonymous authentication
• Notification
– Client application registration with APNS & GMC
– Device registration with Oracle MCS
– Notification handling
• Storage
– Querying of collections associated with a MBE
– CRUD operations on collection objects
49 11A
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Mobile SDK Platform API Support
• Analytics
– Create analytic sessions
– Compose system events
– Collect custom events
– Send events in batches
• Data Offline
– Policy driven data object caching
50 11A
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Mobile Cloud Service
51
MCS SDK Shared Architecture
Notifications
Storage
Service Proxies
Custom API
REST Calls
SDK
Platform APIs
User Management
Analytics
MBE Manager
Mobile Backend
Mobile Backend
Mobile Backend
11A
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
• Provides functionality similar to the mobile SDK
• Saves hand written REST calls
• Significantly reduces native code
• Ships with the Oracle MAF public samples
– JAR file
– Source code
– Implementation example
Oracle MAF MCS Utility is a MAF specific Java library and public sample that exposes Oracle MCS platform API calls as Java method
MAF MCS Utility
52 11B
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Mobile Cloud Service
53
Notifications
Storage
MBE Manager Service Proxies
Custom API
MBE Configuration
Utilities
MAF Framework
REST Service Adapter
Data Control
Managed Bean
MAF MCS Utility
MBE
MBE
MBE
Mobile Application Framework
Platform APIs
Java
*
* Device Registration Only
User Management
Analytics
11B
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
MAF MCS Utility: Asynchronous API Invocation
• By design, MAF MCS Utility APIs are synchronous
– Analytics service proxy is the exception
– Developers can invoke APIs asynchronously
• How-to invoke MAF MCS Utility APIs asynchronously
– Java ExecutorService to asynchronously invoke MAF MCS Utility API
– Property and provider change events to refresh UI in response to data queries
• Provider changes
– Update of collections in that data rows are added or removed
– Impact list views, iterators, graphs etc. that need to refresh
• Property changes
– Updates of data object properties
• AdfmfJavaUtilities to flush data changes to main thread to refresh UI
54 11B
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
MAF MCS Utility Configuration
• mafmcsutility.jar configured in ApplicationController project
– Functionality exposed through data control
– Data queried from MCS is shared across MAF features
• mafmcsutility.jar configured in ViewController project – Functionality exposed through data control or managed bean
– Data queried from MCS is shared within single MAF Feature
– MBE instances are shared between data control and managed bean for MAF features
55 11B
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
MCS UI • Provides test pages
• Suitability
– When creating items
– Sanity checks
– Quick
• Negatives
– Are not real world tests
– Bypass Oracle Cloud; executed within MCS
Real mobile app • Android, iOS app etc
• Suitability
– As real as tests can be
– End to end testing
• Negatives
– Must build the app
– App may not be ready
– Only tests what apps needs
– & we haven't taught this yet
External test client • Curl, Postman, SoapUI etc
• Suitability
– Support automated tests
– End to end testing
– Without building whole app
• Negatives
– Are MCS tests, not app tests
– Require low level HTTP knowledge
3 Routes to Testing Mobile Backends
2H
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Agenda
MCS Overview
Mobile backend overview
Custom API Overview
Design Considerations
Getting Started with Mobile Client SDK and MCS MAF Utility
Demo
Summary and Q & A
1
2
3
4
5
6
7
2A
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Get to Know Your Mobile Cloud Service
2A
Summary
Visit: oracle.com/mobile Or cloud.oracle.com/mobile
@OracleMobile
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Q&A
59
Allen Wangu Oracle ISV Migration Center Consultant [email protected] ISV Migration Center blog: http://blogs.oracle.com/imc ISV Migration Center email: [email protected]
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
• CONNECT WITH US
• COMMUNICATE WITH US • [email protected]
• oracle.com/subscribe
ASSISTING YOU ADOPT & IMPLEMENT THE LATEST ORACLE TECHNOLOGY
blogs.oracle.com/IMC
twitter.com/oracleIMC
youtube.com/OracleIMCTeam
facebook.com/oracleIMC
ORACLE.COM/PARTNERS/GOTO/HUB-ECEMEA