An Introduction to IaaS Framework
      Reference Architecture Framework for Providing IaaS




OOI – Workshop Presentation Material
Mathieu Lemay, CEO Inocybe Technologies
August 5th, 2008
                                          ©2007 Inocybe Technologies inc. All rights reserved.
About Me

 • Lead developer and architect of User Controller
   Controlled Lightpaths (UCLP) and related cyber
   infrastructure projects. from 2001 to 2005 at
   Communications Research Centre (CRC).
 • I’ve been working with web and distributed
   technologies since 1995, programming in Java
   since 1998.
 • Founder of Inocybe Technologies inc., a company
   pioneering IaaS tools and services.
 • Leader of the IaaS Framework initiative and
   orchestring the subprojects.


                                ©2007 Inocybe Technologies inc. All rights reserved.
What is the IaaS
Framework?
  • The IaaS Framework provides non-invasive tools
    and libraries to create Infrastructure Services.
  • The IaaS Framework is built on OSGi which is SOA
    inside the application.
  • The framework is broken in 5 independant modules
     • An engine framework for device management
     • A resource framework
     • A front end to service/remoting solutions
     • A front end to persistence frameworks
     • Various tools and utilities


                                 ©2007 Inocybe Technologies inc. All rights reserved.
IaaS Framework Mission
Statement

  The authors of IaaS aim that:
  • IaaS should be a pleasure to use and easy to learn.
  • Your application code should not depend on IaaS
    APIs. (POJOs whenever it is possible)
  • IaaS should not compete with good existing
    solutions, but should foster integration via Spring
    Framework’s capabilities.
  • It should quickly adapt to new or existing
    technologies.
  • Each modules shouldn’t have any interdependencies.



                                  ©2007 Inocybe Technologies inc. All rights reserved.
IaaS Architecture
                      The architecture is
                      built so:
                    • Each module can be
                      used independently
                      from others.
                    • When possible non
                      intrusive API
                      (Convention over
                      Configuration) can be
                      used.
                    • Services and
                      Resources must not be
                      tied to a particular
                      technology
                    ©2007 Inocybe Technologies inc. All rights reserved.
IaaS Framework
Use Cases
    Simple        Simple                       Simple
   Transient     Remoted                      Persistent
   Resource       Engine                      Resource




                      ©2007 Inocybe Technologies inc. All rights reserved.
IaaS Framework Modules
• Engine: It provides a way to create and manage a
  datamodel called “Statemodel” which will serve as a transient
  information model. It also provides “Fragments” to resources.
• Persistence: Using JPA/JDO or any Spring ORM
  persistance framework entities can be persisted in any
  package or capability. It also can provide the persistent
  “Fragments” to resources.
• Resources & Capabilities: A resource is a context in which
  many capabilities exists.
• Services: Multiple remoting/messaging techniques or
  protocols, used to access resource capabilities or self-
  contained functionalities.


                                  ©2007 Inocybe Technologies inc. All rights reserved.
IaaS Engine’s Architecture
                            An engine
                            architecture is:
                          • Engine’s State
                            Model is for
                            Message or RPC
                            style of
                            programming.
                          • Triggers & Events
                            react to Protocol
                            messages updated
                            the model.
                          • Protocols and
                            Transports provides
                            communication.
                      ©2007 Inocybe Technologies inc. All rights reserved.
IaaS Framework Engine
Components
• State Models: The statemodels are the heart of engines.
  They are an array of Serializable Objects used as Resource
  Fragments of State.
• Actions & Commands: Actions are a composite set of
  Commands and depends on specific command Sets. A
  command Set is usually bound to a specific device and
  version. Actions and Commands can either be invoked or
  react to a change in the statemodel via a listener.
• Triggers & Events: A trigger depends on a set of multiple
  events.
• Transports & Protocols: Multiple remoting/messaging
  techniques or protocols, used to access resource capabilities
  or self-contained functionalities.
                                  ©2007 Inocybe Technologies inc. All rights reserved.
IaaS Framework
Resources and Capabilities
• A resource is a stateful context in which Capabilities
  may exists and share state fragments.

                                  Complex Resource




                              ©2007 Inocybe Technologies inc. All rights reserved.
IaaS Framework
Resources and Capabilities
Resources:
•Resources can keep their state as a set of Objects called
Fragments provided by the Capabilities.
•Fragments must share the same MimeType. (no mixed
resource types available yet)
•A resource is also idenfied by its URL context.

Capabilities:
•Capabilities are functionalities that can be added to a resource
(usually via AOP).
•Capabilities may exists as an instance in the context of a
resource (i.e. lifetime management) or a singleton for all
resources (i.e. resource properties).
                                   ©2007 Inocybe Technologies inc. All rights reserved.
IaaS Framework
Services
Services:
•Services are bundles that provide remoting interfaces to
capabilties or self contained logic.
•Services can use any of Spring’s remoting capabilities as well
as any SOAP engine.
•A service is also “bound” to a specific business domain
interface. This may or may not be the remoted interface.
•Services can have multiple supported presentation layers from
Hessian to SOAP services. The messaging transport must also
be handled by the service’s implementation.
•Spring MVC capabilities can be also added to the services to
provide a REST interface in a correctly configured webapp
platform.
                                  ©2007 Inocybe Technologies inc. All rights reserved.
GRIM (IEEE1451 Inspired)
Implementation Stack




                    ©2007 Inocybe Technologies inc. All rights reserved.
IaaS Framework 1.0 M1 Release

  • The M1 Public Release (September 2008) will have:
     • Engine Transports: Serial, XMPP, TCP/SSL Sockets,
       HTTP transports, Shell.
     • Engine Protocols: CLI, GRIMML and TL1
     • Engine StateModels : GRIM
     • Engine CommandSets : VideoLAN Manager Example
     • Engine ActionSets: Default VideoLAN Example
     • Engine Events / Triggers : None
     • Resource : ObjectResource, XMLResource
     • Capabilities: WSRF Functional Support (Lifetime,
       Properties), WSN(?)
     • Services : Engine Services, WSRF Capabilities Services
     • Presentations: HTTP Invoker, SOAP(?)

     License : Apache Software License 2


                                           ©2007 Inocybe Technologies inc. All rights reserved.
Technology and Standards
•   The technologies used behind the Framework
•   Architecture: Spring IoC and AOP, OSGi via Spring-DM
•   Persistence: Hibernate/JPA, Spring ORM/DAO
•   Security: Spring Security, Drools, CAS/Shibboleth, (GSI in
    future releases)
•   Services: SOAP (Spring WS, Axis2(?)) , REST.
•   Implementation: Java, Scala or Groovy
•   Implemented Standards
•   OASIS WSRF v1.2
•   OASIS WSN v1.3
•   WS-Security v1.1
•   Upcoming Implemented Standards
•   OASIS WSDM-MUWS v.1.0
•   OASIS WSDM-MOWS v1.0               ©2008 Inocybe Technologies inc. All rights reserved.
Related Projects
• Multi-Tier Sensor Networks
    Application container with management platform for IaaS Modules.
    Links to the V-Infrastructure site for resource sharing between
    virtual domains.

• MANTICORE
    The MANTICORE project is controlling virtual router instances
    providing IaaS based routers and on-demand IP networks over a
    shared physical infrastructure.

• Intelligent Optical Networks
    The Agile Intelligent Reconfigurable Optical Network (AIRON)
    project uses IaaS and the GRIM model to create an adaptive
    approach to optical networks.

• Synchromedia V 2.0
    Provides on-demand collaborative environments for remote
    instrumentation and intellipresence using a IaaS Framework based
    infrastructure.                        ©2007 Inocybe Technologies inc. All rights reserved.
• The V-Infrastruction Application
  Platform (GPLv3/Commercial)
    Application container with management
    platform for IaaS Modules. Links to the
    V-Infrastructure site for resource
    sharing between virtual domains.

• The Resource Management Centre
  (EPL/Commercial)
    The RMC is a Eclipse RCP interface to
    IaaS based resources and services.
    Plugins can be created for other
    middlewares.

• ChronosTM Resource Metascheduler
  (Commercial)
    Can provide reservation schemes to
    resources that have “Reservation”
    capability.                             ©2007 Inocybe Technologies inc. All rights reserved.
Framework Contributors




                   ©2007 Inocybe Technologies inc. All rights reserved.

An Introduction to IaaS Framework

  • 1.
    An Introduction toIaaS Framework Reference Architecture Framework for Providing IaaS OOI – Workshop Presentation Material Mathieu Lemay, CEO Inocybe Technologies August 5th, 2008 ©2007 Inocybe Technologies inc. All rights reserved.
  • 2.
    About Me •Lead developer and architect of User Controller Controlled Lightpaths (UCLP) and related cyber infrastructure projects. from 2001 to 2005 at Communications Research Centre (CRC). • I’ve been working with web and distributed technologies since 1995, programming in Java since 1998. • Founder of Inocybe Technologies inc., a company pioneering IaaS tools and services. • Leader of the IaaS Framework initiative and orchestring the subprojects. ©2007 Inocybe Technologies inc. All rights reserved.
  • 3.
    What is theIaaS Framework? • The IaaS Framework provides non-invasive tools and libraries to create Infrastructure Services. • The IaaS Framework is built on OSGi which is SOA inside the application. • The framework is broken in 5 independant modules • An engine framework for device management • A resource framework • A front end to service/remoting solutions • A front end to persistence frameworks • Various tools and utilities ©2007 Inocybe Technologies inc. All rights reserved.
  • 4.
    IaaS Framework Mission Statement The authors of IaaS aim that: • IaaS should be a pleasure to use and easy to learn. • Your application code should not depend on IaaS APIs. (POJOs whenever it is possible) • IaaS should not compete with good existing solutions, but should foster integration via Spring Framework’s capabilities. • It should quickly adapt to new or existing technologies. • Each modules shouldn’t have any interdependencies. ©2007 Inocybe Technologies inc. All rights reserved.
  • 5.
    IaaS Architecture The architecture is built so: • Each module can be used independently from others. • When possible non intrusive API (Convention over Configuration) can be used. • Services and Resources must not be tied to a particular technology ©2007 Inocybe Technologies inc. All rights reserved.
  • 6.
    IaaS Framework Use Cases Simple Simple Simple Transient Remoted Persistent Resource Engine Resource ©2007 Inocybe Technologies inc. All rights reserved.
  • 7.
    IaaS Framework Modules •Engine: It provides a way to create and manage a datamodel called “Statemodel” which will serve as a transient information model. It also provides “Fragments” to resources. • Persistence: Using JPA/JDO or any Spring ORM persistance framework entities can be persisted in any package or capability. It also can provide the persistent “Fragments” to resources. • Resources & Capabilities: A resource is a context in which many capabilities exists. • Services: Multiple remoting/messaging techniques or protocols, used to access resource capabilities or self- contained functionalities. ©2007 Inocybe Technologies inc. All rights reserved.
  • 8.
    IaaS Engine’s Architecture An engine architecture is: • Engine’s State Model is for Message or RPC style of programming. • Triggers & Events react to Protocol messages updated the model. • Protocols and Transports provides communication. ©2007 Inocybe Technologies inc. All rights reserved.
  • 9.
    IaaS Framework Engine Components •State Models: The statemodels are the heart of engines. They are an array of Serializable Objects used as Resource Fragments of State. • Actions & Commands: Actions are a composite set of Commands and depends on specific command Sets. A command Set is usually bound to a specific device and version. Actions and Commands can either be invoked or react to a change in the statemodel via a listener. • Triggers & Events: A trigger depends on a set of multiple events. • Transports & Protocols: Multiple remoting/messaging techniques or protocols, used to access resource capabilities or self-contained functionalities. ©2007 Inocybe Technologies inc. All rights reserved.
  • 10.
    IaaS Framework Resources andCapabilities • A resource is a stateful context in which Capabilities may exists and share state fragments. Complex Resource ©2007 Inocybe Technologies inc. All rights reserved.
  • 11.
    IaaS Framework Resources andCapabilities Resources: •Resources can keep their state as a set of Objects called Fragments provided by the Capabilities. •Fragments must share the same MimeType. (no mixed resource types available yet) •A resource is also idenfied by its URL context. Capabilities: •Capabilities are functionalities that can be added to a resource (usually via AOP). •Capabilities may exists as an instance in the context of a resource (i.e. lifetime management) or a singleton for all resources (i.e. resource properties). ©2007 Inocybe Technologies inc. All rights reserved.
  • 12.
    IaaS Framework Services Services: •Services arebundles that provide remoting interfaces to capabilties or self contained logic. •Services can use any of Spring’s remoting capabilities as well as any SOAP engine. •A service is also “bound” to a specific business domain interface. This may or may not be the remoted interface. •Services can have multiple supported presentation layers from Hessian to SOAP services. The messaging transport must also be handled by the service’s implementation. •Spring MVC capabilities can be also added to the services to provide a REST interface in a correctly configured webapp platform. ©2007 Inocybe Technologies inc. All rights reserved.
  • 13.
    GRIM (IEEE1451 Inspired) ImplementationStack ©2007 Inocybe Technologies inc. All rights reserved.
  • 14.
    IaaS Framework 1.0M1 Release • The M1 Public Release (September 2008) will have: • Engine Transports: Serial, XMPP, TCP/SSL Sockets, HTTP transports, Shell. • Engine Protocols: CLI, GRIMML and TL1 • Engine StateModels : GRIM • Engine CommandSets : VideoLAN Manager Example • Engine ActionSets: Default VideoLAN Example • Engine Events / Triggers : None • Resource : ObjectResource, XMLResource • Capabilities: WSRF Functional Support (Lifetime, Properties), WSN(?) • Services : Engine Services, WSRF Capabilities Services • Presentations: HTTP Invoker, SOAP(?) License : Apache Software License 2 ©2007 Inocybe Technologies inc. All rights reserved.
  • 15.
    Technology and Standards • The technologies used behind the Framework • Architecture: Spring IoC and AOP, OSGi via Spring-DM • Persistence: Hibernate/JPA, Spring ORM/DAO • Security: Spring Security, Drools, CAS/Shibboleth, (GSI in future releases) • Services: SOAP (Spring WS, Axis2(?)) , REST. • Implementation: Java, Scala or Groovy • Implemented Standards • OASIS WSRF v1.2 • OASIS WSN v1.3 • WS-Security v1.1 • Upcoming Implemented Standards • OASIS WSDM-MUWS v.1.0 • OASIS WSDM-MOWS v1.0 ©2008 Inocybe Technologies inc. All rights reserved.
  • 16.
    Related Projects • Multi-TierSensor Networks Application container with management platform for IaaS Modules. Links to the V-Infrastructure site for resource sharing between virtual domains. • MANTICORE The MANTICORE project is controlling virtual router instances providing IaaS based routers and on-demand IP networks over a shared physical infrastructure. • Intelligent Optical Networks The Agile Intelligent Reconfigurable Optical Network (AIRON) project uses IaaS and the GRIM model to create an adaptive approach to optical networks. • Synchromedia V 2.0 Provides on-demand collaborative environments for remote instrumentation and intellipresence using a IaaS Framework based infrastructure. ©2007 Inocybe Technologies inc. All rights reserved.
  • 17.
    • The V-InfrastructionApplication Platform (GPLv3/Commercial) Application container with management platform for IaaS Modules. Links to the V-Infrastructure site for resource sharing between virtual domains. • The Resource Management Centre (EPL/Commercial) The RMC is a Eclipse RCP interface to IaaS based resources and services. Plugins can be created for other middlewares. • ChronosTM Resource Metascheduler (Commercial) Can provide reservation schemes to resources that have “Reservation” capability. ©2007 Inocybe Technologies inc. All rights reserved.
  • 18.
    Framework Contributors ©2007 Inocybe Technologies inc. All rights reserved.