a domain specific language for enterprise grade cloud-mobile hybrid applications

22
A Domain Specific Language for Enterprise Grade Cloud-Mobile Hybrid Applications Ajith Ranabahu * , Michael Maximilien ** , Amit Sheth * , Krishnaprasad Thirunarayan *Kno.e.sis Center, Wright State University, Dayton OH, USA **IBM Research, San Jose CA, USA The MobiCloud II Experience The 11th Workshop on Domain-Specific Modeling @ SPLASH 2011 23 rd and 24 th October 2011

Upload: ajithranabahu

Post on 05-Dec-2014

1.304 views

Category:

Technology


2 download

DESCRIPTION

My presentation on MobiCloud at DSM 2011

TRANSCRIPT

Page 1: A Domain Specific Language for Enterprise Grade Cloud-Mobile Hybrid Applications

A Domain Specific Language for Enterprise Grade Cloud-Mobile Hybrid

Applications

Ajith Ranabahu*, Michael Maximilien**, Amit Sheth*, Krishnaprasad Thirunarayan*Kno.e.sis Center, Wright State University, Dayton OH, USA

**IBM Research, San Jose CA, USA

The MobiCloud II Experience

The 11th Workshop on Domain-Specific Modeling @ SPLASH 201123rd and 24th October 2011

Page 2: A Domain Specific Language for Enterprise Grade Cloud-Mobile Hybrid Applications

Outline

• What is MobiCloud• A quick introduction

• The MobiCloud DSL• MVC pattern based domain modeling

• Extending the MobiCloud DSL with Enterprise Features

• Demonstration

• Lessons learnt

• Future Directions and Work In Progress

24th October 2011 2

Page 3: A Domain Specific Language for Enterprise Grade Cloud-Mobile Hybrid Applications

What is MobiCloud?

• Front-end runs on a mobile device• Smart phone / tablet etc

• Back-end deployed on a cloud• Amazon EC2 / Google App Engine

• Both components needed for the full experience

23rd October 2011 3

A Cloud-Mobile Hybrid application generator

Page 4: A Domain Specific Language for Enterprise Grade Cloud-Mobile Hybrid Applications

Why MobiCloud?

• Cloud-Mobile hybrids are hard to develop• Many complications

• Current practice is to treat the components as separate projects• Increases effort, decreases portability & drives up the cost

• Portability (both front-end and back-end) is important• Hard to cater for the large number of platforms

23rd October 2011 4

Page 5: A Domain Specific Language for Enterprise Grade Cloud-Mobile Hybrid Applications

A better approach is needed to develop cloud-mobile hybrid

applications, while maintaining portability

Page 6: A Domain Specific Language for Enterprise Grade Cloud-Mobile Hybrid Applications

Modeling a Cloud-Mobile Hybrid (CMH)

• A CMH is effectively ‘functionally Monolithic’• Except there is a service layer in between!

• A CMH can be modeled as a single conceptual unit

23rd October 2011 6

Page 7: A Domain Specific Language for Enterprise Grade Cloud-Mobile Hybrid Applications

The MVC Design Pattern

Model

View Controller

23rd October 2011 7

Page 8: A Domain Specific Language for Enterprise Grade Cloud-Mobile Hybrid Applications

CMH Applications can be nicely decomposed into the MVC Design

Page 9: A Domain Specific Language for Enterprise Grade Cloud-Mobile Hybrid Applications

A Simple Example

recipe(:todolist) do metadata({:id => ‘todoapp’}) # model model(:task,{:time => :date,:location => :string,:description => :string,:name => :string}) # controller controller(:todohandler) do action(:create,:task) action(:retrieve,:task) end # view view(:add_task,{:models =>[:task],:controller => :todohandler,:action => :create}) view(:show_tasks,{:models =>[:task],:controller => :todohandler,:action => :retrieve})end

Models

Controllers

Views

Metadata – details that need to be attached to the whole

application

Page 10: A Domain Specific Language for Enterprise Grade Cloud-Mobile Hybrid Applications

Graphical Representation

Page 11: A Domain Specific Language for Enterprise Grade Cloud-Mobile Hybrid Applications

Generated Application Components

Model

View Controller

Persistent Storage

UIRESTful Service Client

RESTful Service Implementation

Server side

handler

Task Data Structures

Task Data Structure

Mobile Device Cloud

Page 12: A Domain Specific Language for Enterprise Grade Cloud-Mobile Hybrid Applications

Designing Extensions for MobiCloud

• The base language is very limited• How can we add extra capabilities, keeping the MVC

structure intact?

• Introduce an Extensions mechanism• Predefined models, views and/or controllers with specific

capabilities• Insert platform specific code at predefined extension

points

23rd October 2011 12

Page 13: A Domain Specific Language for Enterprise Grade Cloud-Mobile Hybrid Applications

A Simple Extension – Fetching from a URLrecipe :http_fetch do # Generic http extension extensions ['http'] # metadata metadata({:id => "ajithssimpleapp"}) # models model :time_value,{:ts => :int} #controllers controller :time_manager do # fetch & display time from yahoo action :fetch_time,:time_value,{:type=>'http', :url => 'http://developer.yahooapis.com/…./../getTime', :params => {:appid => 'o6fGNQ3V34GxD……OaFr'},

:return_mapping => {:ts=> '/Result/Timestamp'}, :action_forward => :retrieve}

23rd October 2011 13

Page 14: A Domain Specific Language for Enterprise Grade Cloud-Mobile Hybrid Applications

Enterprise Integration with Extensions

• Integrate secured data sources like Salesforce with MobiCloud

• Not easy!• Data security

• Salesforce enforces OAuth• Dependent data structures

• “User” comes under “Organization”• Special configurations and required call back endpoints

• https call back endpoint required for OAuth

23rd October 2011 14

Page 15: A Domain Specific Language for Enterprise Grade Cloud-Mobile Hybrid Applications

Demonstration

Page 16: A Domain Specific Language for Enterprise Grade Cloud-Mobile Hybrid Applications

Lessons Learnt

• Developers are hesitant to use a top-down approach unless there is an extreme improvement in productivity and/or convenience

• Graphical abstractions are important to support adoption

23rd October 2011 16

Page 17: A Domain Specific Language for Enterprise Grade Cloud-Mobile Hybrid Applications

Big Picture and Future Directions

• Using DSLs as the primary means to overcome issues of Cloud application portability

• Fits in with a middleware layer for complete independence in• Development• Deployment• Management of cloud applications

23rd October 2011 17

Page 18: A Domain Specific Language for Enterprise Grade Cloud-Mobile Hybrid Applications

Big Picture and Future Directions (Cont)

• More extensions• Google and other third party API integrations

• Extensions as graphical abstractions• The graphical mode only supports the base language

• Mixing in other languages for special functions• UI enhancements

• XAML / CSS ?

23rd October 2011 18

Page 19: A Domain Specific Language for Enterprise Grade Cloud-Mobile Hybrid Applications

Visit us on the Web at http://mobicloud.knoesis.org

More documentation, videos and details at

http://wiki.knoesis.org/index.php/MobiCloud_Web_UI

Page 20: A Domain Specific Language for Enterprise Grade Cloud-Mobile Hybrid Applications

Questions

Page 21: A Domain Specific Language for Enterprise Grade Cloud-Mobile Hybrid Applications

Thank you

Page 22: A Domain Specific Language for Enterprise Grade Cloud-Mobile Hybrid Applications

Extra : Extension Architecture