Post on 25-Dec-2015
transcript
4 Profit from the cloud™ | 4
APS Applications
BSS
Online Store(s)
End-UsersSMBs
Billing
Workflow
Paym
ent
syst
em -
1
BAN
K X
Plug
in
Paym
ent
Plug
in #
N
…
Sales Person(s)
OSS
O365PluginHyper-V Plugin
Provisioning Plugin #N
…
O365
External System #N
Hyper-V Cloud
VISAExternal
System #N
BANK X
APS in Hosting Platform
MasterCard
VISA
5 Profit from the cloud™ | 5
Provisioning Logic
https://app.isv.com/REST API
View
ViewView View
Presentation Logic
Application
Applicationnative API
Application native
UI
Hosting Platform
APS defines a standard way to expose services of applications to the Hosting Platform.
It’s a “bridge” or “adapter” between application UI and management UI on the Hosting Platform.
APS Purpose
Requirements to APS
• API Adaptation• Resource Provisioning and Management• Resource Presentation• Communication• Integration Package
7 Profit from the cloud™ | 7
SymantecAPI
SymantecUI
McAfeeAPI
McAfeeUI
O365API
O365UI
How to adapt OSS to numerous “native” APIs?• Provisioning application
resources• Managing application resources
Many services:each with its own API and UI
OSS
API Adaptation
Answer
APS endpoint for each application
Resources
Resources
Resources
8 Profit from the cloud™ | 8
SymantecAPI
SymantecUI
McAfeeAPI
McAfeeUI
O365API
O365UI
How to manage and track application resource properties and states?• Sync resource creation• Represent “native” resources
Many services:each with its own API and UI
OSS
Resource Provisioning and Management
Answer
Unified Resource Management model
Resources
Resources
Resources
9 Profit from the cloud™ | 9
Provider admins:• configure applicationsSMB admins:• configure resources for end-usersEnd-Users:• configure own resources
SymantecAPI
SymantecUI
McAfeeAPI
McAfeeUI
O365API
O365UI
How to present resource management tools in UI?
Many services:each with its own API and UI
Resource Presentation
Answer
APS UI for each application
Resources
Resources
Resources
10 Profit from the cloud™ | 10
SymantecAPI
SymantecUI
McAfeeAPI
McAfeeUI
O365API
O365UI
How to unify communications?
Many services:each with its own API and UI
Communication
Answer
Standard application protocol
OSS Endpoint-1
Endpoint-2
Endpoint-3Web Browser
11 Profit from the cloud™ | 11
How to pack all the above integration stuff and deploy it in OSS?
Integration Package
Answer
APS Package
APS Solutions
• Unified Communication and APS Endpoints• Resource Model• Service Declaration• APS UI• Package Contents
13 Profit from the cloud™ | 13
REST• POST - Create• GET - Read• PUT - Update• DELETE - Delete
Hosting Platform
SymantecAPI
SymantecUI
McAfeeAPI
McAfeeUI
O365API
O365UI
APS Controller
Unified Communication and APS Endpoints
APS McAfee
Endpoint
APSSymantec Endpoint
APSO365
Endpoint
Web Browser
CRUD operations
14 Profit from the cloud™ | 14
POST /vpses { “name”:“vps-1”, …}
POST /aps/resources/ { “name”:“vps-1”, …}
APS Controller
Resource Model
APSApplication Endpoint:
• /storages (type “storage”)
Web Browser
Resources:• VPSes
Application
“type”:”vps”,
APS types
APSresources
Native API:•create “vps-1”
APSApplication Endpoint:
•/vpses ( )“type”:”vps”
APSApplication Endpoint:
• /mboxes (type “mbox”)
“type”:”vps”,
15 Profit from the cloud™ | 15
APS Type – JSON Schema
“apsVersion”: “2.0”,“name”: “vps”,“id”: "http://event-mgmt.demo.apsdemo.org/vpsclouds/vpses/1.0”,
"properties": { "name": {...}, "description": {...}, ... "memoryusage": {...}}, “operations": { "start": { "verb": "GET", "path": “/start", ... }, "stop": {...}}
General section
Resource structure
Custom operations
schemas/vpses.schema
“implements”: ["http://aps-standard.org/types/core/resource/1.0” ],
16 Profit from the cloud™ | 16
Classification of Resources
Customer
/vpscloud/cloud
Provider
/vpscloud/context
/vpscloud/vps
App
/vpscloud/offer
17 Profit from the cloud™ | 17
Resource Relations
Customer
/vpscloud/cloud
Provider
/vpscloud/contextcloudcontexts
subscription
accountaccount
subscription
/vpscloud/vps
context
vpses
app
18 Profit from the cloud™ | 18
Resource Type – Declaration of Relations
“apsVersion”: “2.0”,“name”: “vps”,“id”: "http://event-mgmt.demo.apsdemo.org/vpsclouds/vpses/1.0",“implements”: ["http://aps-standard.org/types/core/resource/1.0” ], "properties": { ...},
“operations": { ...}
“relations": { "context": { "type": "http://edu.tst/vpscloud/context/2.0", "required": true, "collection": false }}
Relations
schemas/vpses.schema
19 Profit from the cloud™ | 19
Service Declaration
<service id="vpses"> <schema path="schemas/vpses.schema"/> <presentation> <name>Virtual Private Server</name> <summary>Cloud VPS</summary> </presentation> </service>
Listening on the APS endpoint “/vpses/” path
Binding with JSON schema
APP-META.xml
20
APS UI – Integration with Control PanelNavigation Components
<navigation> plugged into "http://www.aps-standard.org/ui/service"
<item> plugged into <navigation><view> of the <item>
controls inside viewHTML file
21
APS UI – Navigation Diagram
VPS Management
Servers Network
New
Start
Stop
Delete
FirewallIP Addresses
Step-2
Step-1
servers.htmlView “servers”
server.new-1.htmlView “server.new-1”
server.new-last.htmlView “server.new-last”
ip-addresses.htmlView “ip-addresses”
firewall.htmlView “firewall”
22 Profit from the cloud™ | 22
Navigation Tree Declaration
<navigation id="ccp" label="VPS Management"> <var name="context" type-id="http://edu.tst/vpscloud/context/2.0"/> <plugs-to id="http://www.aps-standard.org/ui/service"/> <item id="servers" label="Servers"> ... </item> <item id="network" label="Network”> <item id=“network-ip” label=“IP Addresses”> … </item> <item id=“network-firewall” label=“Firewall”> … </item> ... </item></navigation>
23 Profit from the cloud™ | 23
Package Contents
Metadata:• Application and package general data• Application services• Presentation
Schema of APS resources:• Source code is in PHP scripts• Generated by aps build utility
PHP scripts:• For each service defined in metadata• Business logic• Source code for generating schemas
Custom UI scripts
Thank you!Need more details? • APS Specification: http://doc.apsstandard.org/spec/ • Integration with PA: http://doc.apsstandard.org/pa/