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! ¡ Lack ¡of ¡ No ¡one-‑fits-‑all ¡ standards! ¡ solu>on! ¡
Cloud ¡Standards ¡ ¡ ¡ Amazon ¡EC2 ¡ • – de ¡facto ¡standard ¡ – but ¡proprietary ¡ OpenStack ¡ • – open ¡source ¡reference ¡ – but ¡IaaS ¡only ¡ ISO/IEC ¡OVF ¡ • – interna2onal ¡standard ¡ ¡ No ¡ – but ¡OS ¡image ¡only ¡ DMTF ¡CIMI ¡ • universal ¡ – interna2onal ¡standard ¡ ¡ but ¡IaaS ¡only ¡ – standard! ¡ OASIS ¡CAMP ¡ • – industrial ¡standard ¡ – but ¡PaaS ¡only ¡ OASIS ¡TOSCA ¡ • – industrial ¡standard ¡ – but ¡SaaS ¡only ¡
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 ¡ e.g., ¡ OpenStack ¡ CloudStack ¡ OpenNebula ¡ Source: ¡hWp://occi-‑wg.org/about/ ¡
OCCI ¡Specifica>ons ¡ Source: ¡Jean ¡Parpaillon ¡
OCCI ¡Infrastructure ¡ cd: Infrastructure Resource Link (from occi::core) (from occi :: core ) target + summary :String [0..1 ] * + source links Network Storage NetworkInterface + occi.network.vlan :Integer [0..1 ] + occi.storage.size :int + occi.networkinterface.interface :String Compute + occi.network.label :Token [0..1 ] + occi.storage.state :Enum + occi.networkinterface.mac :String + occi.network.state :Enum + occi.compute.architecture :Enum[0..1 ] + occi.networkinterface.state :Enum + occi.compute.cores :Integer [0..1 ] + occi.compute.hostname :String [0..1 ] StorageLink + occi.compute.speed :Float[0..1 ] + occi.compute.memory :Float[0..1 ] + occi.storagelink.deviceid :String + occi.compute.state :Enum + occi.storagelink.mountpoint :String [0..1 ] + occi.storagelink.state :Enum
OCCI ¡Core ¡1.1 ¡ Category + scheme :URI + term :String + title :String [0..1 ] + attributes :Set<String> 1 category 1 Kind Action Mixin 0..1 0..1 * - entity_type :Entity * 0..1 * actions actions * * * 1 related related Entity * * + id :URI mixins kind + title :String [0..1 ] 1 Resource Link target 1 + summary :String [0..1 ] 1 * links + source
OCCI ¡Core ¡1.1 ¡(errata) ¡ Category Attribute Name ¡conflit? ¡ scheme: URI name: String term: String type: String [0..1] attributes 1 * title: String [0..1] mutable: Boolean [0..1] required: Boolean [0..1] default: String [0..1] description: String [0..1] Action Kind Mixin actions actions 0..1 1 * * * * * applies 0..1 ¡ 1 * * ¡ parent kind mixins depends Seman>cs? ¡ Seman>cs? ¡ Entity id: URI entities entities * * Resource Link 1 target 1 source links *
OCCI ¡Issues ¡ PIA ¡ • Lack ¡of ¡a ¡formal ¡specifica>on ¡ OCCIware ¡ • 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)!!! ¡
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 ¡ En2ty ¡ State ¡ Configu ¡ ra2on ¡
OCCIware ¡Studio ¡ OCCIware ¡ OCCIware ¡ OCCIware ¡ OCCIware ¡ OCCIware ¡ OCCIware ¡ Editor ¡ Modeler ¡ Transfor-‑ Simulator ¡ … ¡ Generators ¡ ma2ons ¡ ¡ ¡ ¡ occi2als ¡ occi2java ¡ als2occi ¡ occi2js ¡ occi2uml ¡ occi2py ¡ uml2occi ¡ occi2ruby ¡ … ¡ occi2c ¡ ¡ … ¡ ¡ occi2html ¡ occi2pdf ¡ Xtext ¡ Sirius ¡ Kermeta ¡ Acceleo ¡ MMT ¡ Ecore ¡ OCCIware ¡Metamodel ¡ OCL ¡ Eclipse ¡Modelling ¡Framework ¡
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 ¡
Recommend
More recommend