OCCIware un cadre formel et ou2ll pour la ges2on de - - PowerPoint PPT Presentation
OCCIware un cadre formel et ou2ll pour la ges2on de - - PowerPoint PPT Presentation
OCCIware un cadre formel et ou2ll pour la ges2on de toute ressource en nuage Philippe Merle - Inria Journes Cloud Nantes 18 septembre
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 ¡
–
- pen ¡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 ¡
Mixin Kind
- 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 1 category * 1 kind * * mixins 0..1 * actions * * related 0..1 * related
OCCI ¡Core ¡1.1 ¡(errata) ¡
Category scheme: URI term: String title: String [0..1] Kind Mixin Action Entity id: URI Resource Link Attribute name: String type: 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 * entities 1 kind * entities 1 target 1 source * links 0..1 parent * * depends * 1 * attributes * 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
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 ¡ ¡
- n ¡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 ¡ ¡ ¡
- cci2java ¡
- cci2js ¡
- cci2py ¡
- cci2ruby ¡
- cci2c ¡
… ¡
- cci2html ¡
- cci2pdf ¡
OCCIware ¡
Transfor-‑ ma2ons ¡
¡
- cci2als ¡
als2occi ¡
- cci2uml ¡
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 ¡