application and data portability in cloud computing the cirrocumulus way ajith ranabahu and amit...

63
Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing (Kno.e.sis) http://knoesis.org Wright State University, Dayton OH, USA

Upload: simon-flynn

Post on 27-Dec-2015

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

Application and Data Portability in Cloud Computing

The Cirrocumulus Way

Ajith Ranabahu and Amit ShethOhio Center of Excellence in Knowledge enabled Computing

(Kno.e.sis) http://knoesis.org

Wright State University, Dayton OH, USA

Page 2: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

Agenda

• Issues in Cloud computing and its adoption• Vendor lock-in problem

– Understanding cloud heterogeneity• Using Domain Specific Languages to implement

application portability• Using RDFS based modeling to implement data

portability• Two Example applications• Where are the semantics ?

Page 3: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

What is Cloud computing ?

Page 4: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

CheapNo upfront cost

Utility style Resources

Service oriented provisioning over the Web

APIs enabling programmatic access

Numerous support servicesData access (Amazon RDS, Amazon simple DB, Google Big TableAutomatic scaling (Amazon Elastic Beanstalk)

Page 5: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

Did it change the world ? Why not ?

Page 6: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

Multiple Issues in Wide Adoption

Page 7: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

Almost always heterogeneous platforms

Supported programming languagesData representationResource provisioning and Management Workflow

Page 8: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

Writing one application is not enough !

Page 9: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

Amazon EC2 accepts almost any language

Windows Azure support .NET (other languages need workarounds)

Google App Engine only supports Java and Python

Page 10: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

Vendor Lock-in

Page 11: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

Users locked into cloudsproprietary APIs

Limited language supportCustom tools and workflows

Page 12: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

We need a better way of doing things !

Page 13: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

Write applications in cloud agnostic ways : "Write once - Run on any cloud"

Page 14: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

Access cloud resources with a uniform workflow

Page 15: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

Move applications and data across cloudswhen the need arises

Page 16: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

Understanding Heterogeneity :Where does it exist ?

Page 17: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

Vertical and Horizontal

Page 18: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

Vertical

Within the same type of clouds - Say Infrastructure service providers

Page 19: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

Horizontal

Across different types of clouds - Say Infrastructure clouds and platform clouds

Page 20: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

Some examples

Page 21: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

Amazon EC2 vs Rackspace

Both are infrastructure providers

Process of starting a VM in EC2 is very differentfrom doing the same in Rackspace

Page 22: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

Google App Engine vs Windows Azure

Both are platforms

Supports different languages (Java/Python vs C#/.NET)

Requires using different custom libraries

Requires adhering to different data models(document-oriented vs Relational)

Page 23: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

How can Portable Applications be developed ?

Page 24: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

DSLs to the rescue !

Page 25: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

Domain Specific Languages (DSL) are specialized, mini languages that address problems in a limited domain.

• Matlab (Mathematics)• SQL (Data definitions and manipulation)• Ant / Make (build scripts)

Page 26: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

What 'Domain' are we talking about ?

Page 27: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

Many !

Page 28: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

Each domain has to have its own DSL

Page 29: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

Some example domains of Interest (in the Cloud context)

Data driven mobile applications

Enterprise data retrieval applications

Statistical Scientific Workflows

Page 30: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

What is the catch ?

Page 31: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

DSLs are not universal applicable:Useful only in a supported domain

Page 32: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

Forcing a top-down (model driven) development method

Page 33: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

The case of the "smallest common set of features"

When using an abstraction over multiple platforms, only the smallest common set of features can be effectively supported.

Page 34: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

Its not as serious as it sounds !

Page 35: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

The number of unique features across the major platforms is quite small

[quantification needed !]

Page 36: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

In case platform specific features are needed

Use the DSLs as boiler-plate code generators

Use Bison-like conditional code additions to insert specific code fragments

Page 37: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

Two Examples

Page 38: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

MobiCloudGenerating hybrid applications that have

pieces running on clouds and mobile devices

http://mobicloud.knoesis.org

Page 39: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing
Page 40: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

SCALE : Scalable Cloud AppLication gEnerator

Generating statistical workflows for biologists

http://metabolink.knoesis.org/SCALE

Page 41: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

What kind of Heterogeneity are we talking about ?

Page 42: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

package bean;

import com.google.appengine.api.datastore.Key;

import javax.jdo.annotations.IdGeneratorStrategy;import javax.jdo.annotations.IdentityType;import javax.jdo.annotations.PersistenceCapable;import javax.jdo.annotations.Persistent;import javax.jdo.annotations.PrimaryKey;

@PersistenceCapable(identityType = javax.jdo.annotations.IdentityType.APPLICATION)public class Todoitem { @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) private Key key; public Key getKey() { return key; } @Persistent private java.lang.String time; public java.lang.String getTime() { return time; }

public void setTime(java.lang.String local_time) { this.time = local_time; } ……..}

package bean;

public class Todoitem { /* PrimaryKey */ private int key; public int getKey() { return key; } public void setKey(int localkey) { this.key = localkey; } private java.lang.String time; public java.lang.String getTime() { return time; }

public void setTime(java.lang.String local_time) { this.time = local_time; } …}

An Example for a simple class [ Code generated by MobiCloud for task manager example ]

Code for Google App Engine version

Code for Local / EC2 version

Page 43: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

model(:todoitem,{:time => :string,:location => :string,:description => :string,:name => :string})

The DSL code fragment relevant to the generated code

Taking care of proper annotations and adhering platform specific restrictions Is taken care of by the generators !

Page 44: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

Porting data across clouds

Page 45: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

Issues caused by the difference in data models

Often more crucial than porting the application code

Page 46: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

We are in luck !We already followed a model-driven

development process

Page 47: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

We get to define data at a higher level of abstraction

Data transformations can be generated along with the application code

Page 48: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing
Page 49: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

Our Choice for Data Definitions ?

Page 50: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

RDF Schema (RDFS)

Page 51: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

Developers need not know a lot of RDFS !

Graphical and textual abstractions can be provided todamp the learning curve

Page 52: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

Where are the semantics ?

Page 53: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

The four types of semanticsfor Clouds

Page 54: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

In defining data structures

RDF/RDFS is already considered 'semantic'

Enhancing functional aspects

Add business policies via rules

Add non-functional enhancements

Security and reliability via policies

Describe System configurations

ECML, EDML, EMML byElastra

Inspired by the 4 types of semantics in services by Shivashanmugam, Sheth

http://knoesis.org/library/resource.php?id=00186

Page 55: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

Possible Semantic usage in MobiCloud

Page 56: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

What is left to do ?

Page 57: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

Hassel-free deployment is a problem

Need a comprehensive middleware platform to fix it

Page 58: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

Conclusion

Page 59: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

Portability (both application and data) in Cloud computing is an important problem

to solve

Using DSLs and semantic abstractions is a viable solution to the portability

problem in many domains

Page 60: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

There is long way to go but things seem promising !

Page 61: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

Demonstration

Page 62: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

Questions ?

Page 63: Application and Data Portability in Cloud Computing The Cirrocumulus Way Ajith Ranabahu and Amit Sheth Ohio Center of Excellence in Knowledge enabled Computing

Thank you