OCCIware un cadre formel et ou2ll pour la ges2on de - - PowerPoint PPT Presentation

occiware
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

OCCIware ¡

un ¡cadre ¡formel ¡et ¡ou2llé ¡pour ¡la ¡ ges2on ¡de ¡toute ¡ressource ¡en ¡nuage ¡

Philippe ¡Merle ¡-­‑ ¡Inria ¡

¡ Journées ¡Cloud ¡Nantes ¡ 18 ¡septembre ¡2014 ¡

¡

slide-2
SLIDE 2

Cloud ¡Compu>ng ¡

Par>>oning! ¡ Lock ¡in! ¡ No ¡one-­‑fits-­‑all ¡ solu>on! ¡

Lack ¡of ¡ standards! ¡

slide-3
SLIDE 3

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! ¡

slide-4
SLIDE 4

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 ¡
slide-5
SLIDE 5

Open ¡Cloud ¡Compu>ng ¡Interface ¡

Source: ¡hWp://occi-­‑wg.org/about/ ¡ e.g., ¡ OpenStack ¡ CloudStack ¡ OpenNebula ¡

slide-6
SLIDE 6

OCCI ¡Specifica>ons ¡

Source: ¡Jean ¡Parpaillon ¡

slide-7
SLIDE 7

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

slide-8
SLIDE 8

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

slide-9
SLIDE 9

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? ¡

slide-10
SLIDE 10

OCCI ¡Issues ¡

  • Lack ¡of ¡a ¡formal ¡specifica>on ¡
  • Only ¡an ¡informal ¡defini>on, ¡aka ¡UML ¡+ ¡English ¡
  • Inconsistencies, ¡ambigui>es, ¡incomplete ¡LLL

LLL ¡

  • 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 ¡

slide-11
SLIDE 11

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 ¡

¡

slide-12
SLIDE 12

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 ¡

slide-13
SLIDE 13

OCCIware ¡Formal ¡Framework ¡

  • Implemented ¡with ¡Alloy ¡

– a ¡lightweight ¡specifica>on ¡language ¡based ¡ ¡

  • n ¡first-­‑order ¡rela>onal ¡logic ¡

– hWp://alloy.mit.edu ¡ ¡

slide-14
SLIDE 14

Alloy4OCCI ¡

slide-15
SLIDE 15

Alloy4OCCI ¡

slide-16
SLIDE 16

Think, ¡Model ¡and ¡Analyse ¡ mul>-­‑layer ¡cloud ¡systems ¡

slide-17
SLIDE 17

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 ¡

slide-18
SLIDE 18

OCCIware ¡Metamodel ¡

slide-19
SLIDE 19

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>

slide-20
SLIDE 20

OCCIware ¡Graphical ¡Nota>on ¡

OCCI ¡Core ¡

slide-21
SLIDE 21

OCCIware ¡Graphical ¡Nota>on ¡

OCCI ¡Infrastructure ¡

slide-22
SLIDE 22

OCCIware ¡Graphical ¡Nota>on ¡

OCCI ¡Infrastructure ¡

slide-23
SLIDE 23

OCCIware ¡Graphical ¡Nota>on ¡

slide-24
SLIDE 24

OCCIware ¡Graphical ¡Nota>on ¡

slide-25
SLIDE 25

OCCIware ¡Graphical ¡Nota>on ¡

OCCI ¡Plahorm ¡

slide-26
SLIDE 26

OCCIware ¡Graphical ¡Nota>on ¡

OCCI ¡Applica>on ¡

slide-27
SLIDE 27

OCCIware ¡Graphical ¡Nota>on ¡

OCNI ¡

slide-28
SLIDE 28

OCCIware ¡Graphical ¡Nota>on ¡

OCNI ¡

slide-29
SLIDE 29

OCCIware ¡Metamodel ¡

¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ Data ¡ Type ¡ System ¡ Configu ¡ ra2on ¡ En2ty ¡ State ¡

slide-30
SLIDE 30

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 ¡

slide-31
SLIDE 31

OCCIware ¡Studio ¡

slide-32
SLIDE 32

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) ¡ – … ¡

slide-33
SLIDE 33

Erocci ¡Architecture ¡

Source: ¡Jean ¡Parpaillon ¡

slide-34
SLIDE 34

OCCIware ¡Web ¡Explorer ¡

Source: ¡Jean ¡Parpaillon ¡

slide-35
SLIDE 35

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 ¡

slide-36
SLIDE 36

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 ¡

slide-37
SLIDE 37

PIA ¡OCCIware ¡Partners ¡

Pôle ¡Numérique ¡