Post on 08-Jul-2020
OCCIware un cadre formel et ou2llé pour la
ges2on de toute ressource en nuage Philippe Merle -‐ Inria
Journées Cloud Nantes 18 septembre 2014
Cloud Compu>ng Par>>oning! Lock in!
No one-‐fits-‐all solu>on!
Lack of standards!
Cloud Standards
• Amazon EC2 – de facto standard – but proprietary
• OpenStack – open source reference – but IaaS only
• ISO/IEC OVF – interna2onal standard – but OS image only
• DMTF CIMI – interna2onal standard – but IaaS only
• OASIS CAMP – industrial standard – but PaaS only
• OASIS TOSCA – industrial standard – but SaaS only
No universal standard!
What about OCCI? • Open Cloud Compu>ng Interface
• Open Grid Forum
• Recommenda>ons – Not standard but could become
• Not IaaS only!
• Extensible by construc>on
• Various implementa>ons
Open Cloud Compu>ng Interface
Source: hWp://occi-‐wg.org/about/
e.g., OpenStack CloudStack OpenNebula
OCCI Specifica>ons
Source: Jean Parpaillon
OCCI Infrastructure
Link
(from occi :: core )
Resource
(from occi ::core )
+ summary :String [0..1 ]
StorageLink
+ occi.storagelink.deviceid :String
+ occi.storagelink.mountpoint :String [0..1 ]
+ occi.storagelink.state :Enum
Storage
+ occi.storage.size :int
+ occi.storage.state :Enum
NetworkInterface
+ occi.networkinterface.interface :String
+ occi.networkinterface.mac :String
+ occi.networkinterface.state :Enum
Network
+ occi.network.vlan :Integer [0..1 ]
+ occi.network.label :Token [0..1 ]
+ occi.network.state :Enum
Compute
+ occi.compute.architecture :Enum[0..1 ]
+ occi.compute.cores :Integer [0..1 ]
+ occi.compute.hostname :String [0..1 ]
+ occi.compute.speed :Float [0..1 ]
+ occi.compute.memory :Float [0..1 ]
+ occi.compute.state :Enum
cd: Infrastructure
target
source+
*
links
OCCI Core 1.1
MixinKind
- entity_type :Entity
Action
Entity
+ id :URI+ title :String [0..1 ]
Resource
+ summary :String [0..1 ]
Link
Category
+ scheme :URI+ term :String+ title :String [0..1 ]+ attributes :Set<String>
1
1
target
1
source+
*
links
0..1 *actions
1 1category
*
1
kind
*
*
mixins
0..1*
actions *
*
related
0..1
*related
OCCI Core 1.1 (errata) Category
scheme: URIterm: Stringtitle: String [0..1]
Kind
Mixin
Action
Entity id: URI
Resource
Link
Attr ibutename: Stringtype: String [0..1]mutable: Boolean [0..1]required: Boolean [0..1]default: String [0..1]description: String [0..1]
0..1 *actions 1* actions
* mixins
* entit ies
1 kind
*entit ies
1 target
1 source *links
0..1 parent
*
* depends
*
1 *attr ibutes
* applies
Seman>cs?
Seman>cs?
Name conflit?
OCCI Issues • Lack of a formal specifica>on • Only an informal defini>on, aka UML + English • Inconsistencies, ambigui>es, incomplete LLL • Interoperability issues !!!
• Lack of so`ware engineering tools • Only run>me frameworks (erocci, rOCCI, pyOCNI, OCCI4Java) • How to model/develop/test/… new kinds of OCCI en>>es
• Lack of standardisa>on • Large community: Oracle, …, OpenStack, CloudStack,
OpenNebula, …, Compa>bleOne, … • Excepts three big actors (Amazon, Microso`, Google)!!!
PIA OCCIware
OCCIware
• A formal framework for OCCI designing – Think, model and analyse OCCI extensions
• A model-‐driven tool chain for OCCI engineering – Design, develop, test, and simulate OCCI extensions
• A Models@run.>me kernel for OCCI deployment – Deploy and execute OCCI models directly
OCCIware Formal Framework • Think, model and analyse OCCI extensions
• Various aspects • Structural • Behavioural • QoS • SLA • performance • etc.
• A formal specifica>on of OCCI – Consistent, unambiguous, complete, and proved
OCCIware Formal Framework
• Implemented with Alloy – a lightweight specifica>on language based on first-‐order rela>onal logic
– hWp://alloy.mit.edu
Alloy4OCCI
Alloy4OCCI
Think, Model and Analyse mul>-‐layer cloud systems
OCCIware Model-‐Driven Tool Chain • Design, develop, test, and simulate OCCI extensions
• A Domain Specific Modeling Language for OCCI DSML for OCCI
• Metamodel • Textual concrete syntax • Graphical nota>on
• An Eclipse-‐based Studio – OCCIware Editor – OCCIware Modeler – OCCIware Simulator – OCCIware generators
• Documenta>on: HTML, PDF, LaTex, M$ Word, etc. • Code for already exis>ng OCCI run>mes
– OCCIware transforma>ons, aka converters, extractors
OCCIware Metamodel
OCCIware Textual Concrete Syntax <?xml version="1.0" encoding="ASCII”?>!
<OCCI:Extension … name="OCCI Core” scheme=”http://schemas.ogf.org/occi/core”>! <kind term="entity" scheme="http://schemas.ogf.org/occi/core#" title="Entity type”>! <attribute name="occi.core.type" type="string" mutable="true"/>! </kind>! <kind term="resource" scheme=http://schemas.ogf.org/occi/core# title="Resource type" parent="//@kind[term='entity']">! <attribute name="occi.core.summary" type="string" mutable="true"/>! </kind>! <kind term="link" scheme="http://schemas.ogf.org/occi/core#" title="Link type" parent="//@kind[term='entity']"/>!</OCCI:Extension>!
OCCIware Graphical Nota>on
OCCI Core
OCCIware Graphical Nota>on
OCCI Infrastructure
OCCIware Graphical Nota>on
OCCI Infrastructure
OCCIware Graphical Nota>on
OCCIware Graphical Nota>on
OCCIware Graphical Nota>on
OCCI Plahorm
OCCIware Graphical Nota>on
OCCI Applica>on
OCCIware Graphical Nota>on OCNI
OCCIware Graphical Nota>on
OCNI
OCCIware Metamodel
Data Type System
Configu ra2on
En2ty State
OCCIware Studio
Eclipse Modelling Framework
OCCIware Metamodel Ecore OCL
OCCIware Editor
OCCIware Modeler
OCCIware Simulator
OCCIware …
OCCIware Generators
occi2java occi2js occi2py occi2ruby occi2c …
occi2html occi2pdf
OCCIware Transfor-‐ma2ons
occi2als als2occi occi2uml uml2occi
…
Xtext Sirius Kermeta Acceleo MMT
OCCIware Studio
OCCIware Models@run.>me Kernel • Deploy and execute OCCI models directly • Based on Models@run.2me principles
• Repository of OCCI models • Directory of OCCI resources • Run>me for OCCI resources • SLA & monitoring support • OCCIware Explorer for discovering OCCI resources (HTML5/JavaScript)
• A marriage of partner technos – Erocci (Lizenn, OW2) – OCCI4Java (TSP, Ac>veEon) – Kevoree (Inria) – ProAc>ve (Ac>veEon, OW2) – ROBOconf (Linagora/UJF) – Compa>bleOne (Ac>veEon, TSP, OW2) – …
Erocci Architecture
Source: Jean Parpaillon
OCCIware Web Explorer
Source: Jean Parpaillon
OCCIware Big Picture
DSML for OCCI
Exis>ng OCCI
Run>me
Formal Specifica>on
Formal Extension
Extension Model
Meta Model
Extension Code
(4) Translate
(9) Translate
(11) Generate
(1) Encode
(7) Model
(5) Invent
Conforms to Conforms to
Plugs to
Models @run.>me for OCCI
(12) Deploy
OCCI Core (3) Feedback
(2) Refine
(6) Contribute
Conforms to
Exis>ng OCCI
Run>me
Exis>ng OCCI
Run>me
OCCI Extension
(8) Refine
Graphical Nota>on
Textual Syntax
(10) Simulate
ar>fact (n) step n tool
Conclusion
• Formal specifica>on of OCCI à OGF then … • DSML for OCCI à OGF
• Open source model-‐driven OCCI tool chain à Eclipse • Open source OCCIware Models@run.>me à OW2
• Industrial OCCI extensions and use cases à Industrial partners à Industrial consor>a
PIA OCCIware Partners
Pôle Numérique