OCCIware
A framework for Everything as a Service
Marc Dutoo, Open Wide
OW2Con@POSS, Paris
November, 18th 2015
Overview
Speakers
– Marc Dutoo, Head of R&D Dept. at Open Wide
●
OCCIware coordinator, SOA / Data expert
– Jean Parpaillon, R&D engineer at Inria
●
OW2 TC Chairman, author or erocci
Schedule
– 15' OCCI(ware) introduction
– 15' XaaS demo with erocci
OCCIware Factsheet
• 72 man month, 5,6m€ budget, sponsored by
French ministry of Industry
• 3 academics, 5 companies, 2 associations
• To lower Cloud Computing adoption costs and
break up barriers between its various
implementations, layers, domains
- Especially Data Center, deployment, Big Data, Linked
Data
• By bringing to OGF's Open Cloud Computing
Interface (OCCI) the power of formal languages
and model driven engineering (MDE)
Cloud Computing – the problem
Layers
Domains
Image : wikipedia.org
Partitioning! Lock in!
No one-fits-all
solution!
Lack of
standards!
Layers
Domains
Too many
standards!
Lack of
ecosystem!
Cloud Computing – the problem
Image : wikipedia.org
OCCI 101
OCCI Core
(metamodel)
Network
Container
Environment
Compute
- memory
- started
- start()
Database
Application
Storage
Router
Deployable
NetworkLink
DatabaseLink
EnvironmentLink
Everything
is Resource
or Link, be
it at …
Platform
level
Infrastructure
level
Application
level
OCCI Extensions (models)
OCCIware Outputs
• A formal, model-driven platform to manage any Cloud
resource
- Formal model of OCCI, on MIT's Alloy – Inria & TSP
- OCCIware Studio, on Eclipse EMF & Sirius – Obeo
- OCCIware@Runtime & console, using Models@Runtime –
ActiveEon & Scalair
- Deploy@OCCIware - ActiveEon & UJF
• 4 Use cases
- Data Center as a Service / IaaS, on Scalair infrastructure
- Big Data / HPC, on ActiveEon ProActive HPC platform
- Linked Open Data, on Ozwillo app store's Datacore – Pôle
Numérique & Open Wide
- Deployment interoperability, on Linagora & ActiveEon's
• Open Source (OW2, Eclipse) and standardization (OGF) with
help from a 10-strong international Scientific Orientation
Committee
Big Picture – Studio to Runtime to all providers
Studio
XML-
based
Extensio
n
Cloud
Manager
OCCI
Reque
sts
16/11/2015 10
Runtime Architecture
erocci
Technology
providers &
adopters
OCCI demo: Linked Open Data
• = Open Data sets that can be cross-queried because
they have been reconciled together
• Ozwillo Datacore holds data that is shared between
applications of the Ozwillo app store : geographical
elements, organizations, reusable app business data...
• Datacore OCCI(ware) use cases = Datacore
« configuration as a Service » use cases
- letting the user configure its own data models, their rights and
governance policy, define custom indexes, deploy dedicated
data Caches as a Service...
• => demo of OCCIware Studio & Runtime first features
- demo 1 : try to dockerize current Ozwillo production
architecture
- demo 2 : Linked Data projects (and their models) governance
D1 – Docker-specific Studio
D2 - Studio : OCCI extension
…to doc & runtime configuration
*.occie extension file > Cloud Designer > Generate
textile doc, erocci runtime XML conf...
•Default configuration
- backend : mnesia database (prototype, rather than Ozwillo Datacore in actual impl)
•OCCI extension configuration : Core, LDProject
vi sys.config
…
 {occi_backend_mnesia,
 [{schemas, [
    {path, "/tmp/occi.xml"},
    {path, "/tmp/org.occiware.ozwillo.data.models.xml"}]}]
},
… 
•Let's start it :
sudo docker run ­­name="erocci_linked­data" ­v 
`pwd`/sys.config:/tmp/sys.config ­v `pwd`/occi.xml:/tmp/occi.xml ­v 
`pwd`/org.occiware.ozwillo.data.models.xml:/tmp/org.occiware.ozwill
o.data.models.xml ­P ­t ­i erocci/erocci
Runtime setup (erocci)
Studio : OCCI configuration
…to curl POST to runtime script
Governance action example :
in order to publish a stable version of the org_0 project, let's
freeze all its models :
*.occic configuration file > Cloud Designer > Generate curl script :
curl $COPTS ­X PUT $SERVER/project/occiware_geo_1 ­H 
'Content­Type: text/occi' ­H 'Category: project; 
scheme="http://occiware.org/ozwillo/dcproject#"; 
class="kind";' ­H 'X­OCCI­Attribute: 
name="occiware_org_0"' ­H 'X­OCCI­Attribute: 
frozenModelNames="[*]"'
sh ./genOCCI_DCProjConf.sh http://localhost:32768
curl ­v ­H 'accept: text/uri­list' 
http://localhost:32768/collections/project/
curl ­v http://localhost:32768/collections/project/af6c7009­
59cb­3f17­ba24­e77b17e9d4a8
Runtime POST & check
What now ?
• Next : turning this Linked Data as a Service
prototype into an actual implementation, on top
of Ozwillo Datacore !
• In the works :
- Studio : more generators & connectors (ex. get
current runtime state and update the diagram
accordingly), more automated, more complete…
- Runtime : generic erocci Java integration
- Deployment integration, use case platforms
development / deployment / setup...
Any questions ?
Thanks for your attention !
Contact : http://www.occiware.org - marc.dutoo at openwide.fr
Source : https://github.com/occiware
Partners :
Sponsors :
DGE (PIA) & System@tic, SCS, Images & Réseaux, PICOM, Minalogic clusters

OCCIware, a formal framework for Everything as a Service. OW2con'15, November 17, Paris.

  • 1.
    OCCIware A framework forEverything as a Service Marc Dutoo, Open Wide OW2Con@POSS, Paris November, 18th 2015
  • 2.
    Overview Speakers – Marc Dutoo,Head of R&D Dept. at Open Wide ● OCCIware coordinator, SOA / Data expert – Jean Parpaillon, R&D engineer at Inria ● OW2 TC Chairman, author or erocci Schedule – 15' OCCI(ware) introduction – 15' XaaS demo with erocci
  • 3.
    OCCIware Factsheet • 72man month, 5,6m€ budget, sponsored by French ministry of Industry • 3 academics, 5 companies, 2 associations • To lower Cloud Computing adoption costs and break up barriers between its various implementations, layers, domains - Especially Data Center, deployment, Big Data, Linked Data • By bringing to OGF's Open Cloud Computing Interface (OCCI) the power of formal languages and model driven engineering (MDE)
  • 4.
    Cloud Computing –the problem Layers Domains Image : wikipedia.org
  • 5.
    Partitioning! Lock in! Noone-fits-all solution! Lack of standards! Layers Domains Too many standards! Lack of ecosystem! Cloud Computing – the problem Image : wikipedia.org
  • 6.
    OCCI 101 OCCI Core (metamodel) Network Container Environment Compute -memory - started - start() Database Application Storage Router Deployable NetworkLink DatabaseLink EnvironmentLink Everything is Resource or Link, be it at … Platform level Infrastructure level Application level OCCI Extensions (models)
  • 7.
    OCCIware Outputs • Aformal, model-driven platform to manage any Cloud resource - Formal model of OCCI, on MIT's Alloy – Inria & TSP - OCCIware Studio, on Eclipse EMF & Sirius – Obeo - OCCIware@Runtime & console, using Models@Runtime – ActiveEon & Scalair - Deploy@OCCIware - ActiveEon & UJF • 4 Use cases - Data Center as a Service / IaaS, on Scalair infrastructure - Big Data / HPC, on ActiveEon ProActive HPC platform - Linked Open Data, on Ozwillo app store's Datacore – Pôle Numérique & Open Wide - Deployment interoperability, on Linagora & ActiveEon's • Open Source (OW2, Eclipse) and standardization (OGF) with help from a 10-strong international Scientific Orientation Committee
  • 8.
    Big Picture –Studio to Runtime to all providers Studio XML- based Extensio n Cloud Manager OCCI Reque sts
  • 9.
  • 10.
    OCCI demo: LinkedOpen Data • = Open Data sets that can be cross-queried because they have been reconciled together • Ozwillo Datacore holds data that is shared between applications of the Ozwillo app store : geographical elements, organizations, reusable app business data... • Datacore OCCI(ware) use cases = Datacore « configuration as a Service » use cases - letting the user configure its own data models, their rights and governance policy, define custom indexes, deploy dedicated data Caches as a Service... • => demo of OCCIware Studio & Runtime first features - demo 1 : try to dockerize current Ozwillo production architecture - demo 2 : Linked Data projects (and their models) governance
  • 11.
  • 12.
    D2 - Studio: OCCI extension
  • 13.
    …to doc &runtime configuration *.occie extension file > Cloud Designer > Generate textile doc, erocci runtime XML conf...
  • 14.
    •Default configuration - backend :mnesia database (prototype, rather than Ozwillo Datacore in actual impl) •OCCI extension configuration : Core, LDProject vi sys.config …  {occi_backend_mnesia,  [{schemas, [     {path, "/tmp/occi.xml"},     {path, "/tmp/org.occiware.ozwillo.data.models.xml"}]}] }, …  •Let's start it : sudo docker run ­­name="erocci_linked­data" ­v  `pwd`/sys.config:/tmp/sys.config ­v `pwd`/occi.xml:/tmp/occi.xml ­v  `pwd`/org.occiware.ozwillo.data.models.xml:/tmp/org.occiware.ozwill o.data.models.xml ­P ­t ­i erocci/erocci Runtime setup (erocci)
  • 15.
    Studio : OCCIconfiguration
  • 16.
    …to curl POSTto runtime script Governance action example : in order to publish a stable version of the org_0 project, let's freeze all its models : *.occic configuration file > Cloud Designer > Generate curl script : curl $COPTS ­X PUT $SERVER/project/occiware_geo_1 ­H  'Content­Type: text/occi' ­H 'Category: project;  scheme="http://occiware.org/ozwillo/dcproject#";  class="kind";' ­H 'X­OCCI­Attribute:  name="occiware_org_0"' ­H 'X­OCCI­Attribute:  frozenModelNames="[*]"'
  • 17.
  • 18.
    What now ? •Next : turning this Linked Data as a Service prototype into an actual implementation, on top of Ozwillo Datacore ! • In the works : - Studio : more generators & connectors (ex. get current runtime state and update the diagram accordingly), more automated, more complete… - Runtime : generic erocci Java integration - Deployment integration, use case platforms development / deployment / setup...
  • 19.
    Any questions ? Thanks foryour attention ! Contact : http://www.occiware.org - marc.dutoo at openwide.fr Source : https://github.com/occiware Partners : Sponsors : DGE (PIA) & System@tic, SCS, Images & Réseaux, PICOM, Minalogic clusters