phd thesis defense of ajith ranabahu
TRANSCRIPT
2
The Story of the Biology Professor
26th July 2012
3
What is the best way for me to crunch my
numbers?
26th July 2012
26th July 2012 4
In house cluster
All logos are trademarks of the respective organizations
Public cloud
Privatecloud
5
What is the issue here?
26th July 2012
6
Programming for the cloud is hard!
26th July 2012
7
Cloud software stacks are
incompatible!
26th July 2012
8
Abstraction Driven Application and Data Portability in Cloud
Computing
Ajith H. Ranabahu
PhD Candidate
Ohio Center of Excellence in Knowledge-enabled Computing (kno.e.sis)
Wright State University
Dayton OH
Dissertation Defense: 26th July 201226th July 2012
Carefully crafted abstractions provide a means to develop, deploy and manage cloud applications in a
platform agnostic manner
26th July 2012 9
Agenda
• Overview of Using Abstractions
• Abstractions for program generation
• Abstractions for cloud interaction
26th July 2012 10
Cloud in a nutshell
26th July 2012 11
XaaS
Data
Analytics
Hadoop
Logos and Images are trademarks of the respective companies / projects
Platform as a service (PaaS)
Software as a service (SaaS)
Infrastructure as a service (IaaS)
What is the problem?
26th July 2012 12
13
Programming for the cloud and keeping the applications portable is
hard!
26th July 2012
14
Vendor lock-in is a major concern in cloud adoption
26th July 2012
26th July 2012 15
Future of Cloud computing survey by North Bridge, showing the top 10 concerns in Cloud computing. Full survey available at http://www.northbridge.com/2012-cloud-computing-survey, released on June 20th 2012
1626th July 2012
• Overview of Using Abstractions
• Abstractions for program generation
• Abstractions for cloud interaction
26th July 2012 17
Why Abstract?
26th July 2012 18
Completely decouple the cloud from applications!
26th July 2012 19
What to Abstract?
26th July 2012 20
Development of cloud applications
26th July 2012 21
Deployment of cloud applications
26th July 2012 22
Management of cloud applications
26th July 2012 23
How to Abstract?
24
What is already out there?
26th July 2012
26th July 2012 25
Abstraction Based Mobile Application Generators
26th July 2012 26
Abstraction Based Cloud Web Application Generators
26th July 2012 27
Pla
tfor
m I
ndep
ende
nce
Complexity
Direct Programming
General Programming Language based Frameworks
Solution area we are interested in
26th July 2012 28
Abstractions for cloud interaction - Cloud Brokers and Integrators
26th July 2012 29
API Libraries
26th July 2012 30
Pla
tfor
m I
ndep
ende
nce
Complexity
Original Cloud APIs
API Based solutions
Solution Area we are interested in
Cloud brokers
31
What are our Solutions?
26th July 2012
26th July 2012 32
Program using Domain Specific
Languages
26th July 2012 33
Interact (Deploy and Manage)
via Middleware
3426th July 2012
• Overview of Using Abstractions
• Abstractions for program generation
• Abstractions for cloud interaction
3526th July 2012
Preliminaries – A background on
Languages
3626th July 2012
What makes up a Language?
26th July 2012 37
•Abstract Syntax Model (ASM)o An abstract model of what the language
represents
•Concrete Syntax Model (CSM)o The syntax of the language
•Transformationso A mapping from ASM to CSM or vice versa
26th July 2012 38
Abstract Syntax Model
Concrete Syntax Model
Transformation
=
X Y
+ ZX + Y = Z
26th July 2012 39
What is a Domain Specific Language
(DSL)?
26th July 2012 40
A domain-specific language (DSL) is a programming language or executable specification language that offers, through appropriate notations and abstractions, expressive power focused on, and usually restricted to, a particular problem domain.
A. van Deursen, P. Klint, and J. Visser, “Domain-specific languages: an annotated bibliography,” SIGPLAN Not., vol. 35, no. 6, pp. 26–36, 2000.
4126th July 2012
A domain is a set of operations / activities of interest
26th July 2012 42
A model is an abstraction of a system or its environment
or both
K. Czarnecki and S. Helsen, “Feature-based survey of model transformation approaches,” IBM Systems Journal, vol. 45, no. 3, pp. 621–645, 2006.
43
Domain Models and DSLs
26th July 2012
44
The Modeling Hierarchy
26th July 2012
26th July 2012 45
Meta-Metamodels
Domain Models
Metamodels
Computer Based Systems
describe
describe
describe
46
ASM = Domain Meta Model
26th July 2012
47
Where do we use DSLs in the context of
cloud applications?
26th July 2012
48
Breaking down the Cloud Application
26th July 2012
26th July 2012 49
Cloud Application
Data Aspects
Functional Aspects
Non-Functional Aspects
System Aspects
Amit Sheth and Ajith Ranabahu. Semantic Modeling for Cloud Computing, Part 2, IEEE Internet Computing, vol. 14, no. 4, July/Aug 2010 pages 81-84 Amit Sheth and Ajith Ranabahu. Semantic Modeling for Cloud Computing, Part 1, IEEE Internet Computing, vol. 14, no. 3, May/June 2010 pages 81-83
Introduce DSLs to cover each aspect!
26th July 2012 50
Problem Formation
26th July 2012 51
How do we put things in a theoretical
perspective?
26th July 2012 52
Focus on the transformations
26th July 2012 53
54
Transformations from domain models to cloud supported
models
26th July 2012
Focus on the properties of
language model transformations
26th July 2012 55
Assertion :Each metamodel is a
graph
26th July 2012 56
26th July 2012 57
Model Transformations – Relationship between models, metamodels and transformations
58
Model Transformations – Relationship between models, metamodels and transformations expressed symbolically
26th July 2012
Condition 1 : Each semantically distinct concept must be
distinctly defined in the domain metamodel
26th July 2012 59
26th July 2012 60
61
Example
26th July 2012
6226th July 2012
Typical
Required
Metamodel for expressions is a simplified version from Software Language Engineering: Creating Domain-Specific Languages Using Metamodels By Anneke Kleppe
26th July 2012 63
Condition 2 : The transformation must completely
define the target model
26th July 2012 64
26th July 2012 65
Lemma 1 : The transformation is not reversible
26th July 2012 66
Derived condition for Map-Reduce style computations:
Domain meta model must be mappable to a map-reduce task
model
Practical Implications
26th July 2012 67
More detailed domain models are
needed!
26th July 2012 68
Not all models can be transformed to
parallel architectures
26th July 2012 70
Don’t keep hopes on Reverse Engineering!
26th July 2012 71
72
What about Data?
26th July 2012
73
Data schema Incorporated using
DSLs
26th July 2012
74
Ontologies as data schemas
26th July 2012
26th July 2012 75
Practical Applications : MobiCloud
My Contribution : Conceptualization and primary portion of implementation
1. A Domain Specific Language for Enterprise Grade Cloud-Mobile Hybrid Applications, 11th Workshop on Domain-Specific Modeling (DSM), 20112. Power of Clouds In Your Pocket: An Efficient Approach for Cloud Mobile Hybrid Application Development , Cloudcom 20103. Towards Cloud Mobile Hybrid Application Generation using Semantically Enriched Domain Specific Languages , International Workshop on Mobile Computing and Clouds (MobiCloud 2010)
76
MobiCloud is a Cloud-Mobile hybrid application generator
26th July 2012
7726th July 2012
•Front-end is a native Mobile application
•Back-end sits in a cloud, exposed by a service interface
•Both pieces considered the 'app'
Persistent Storage
Service provider
Implementation
Server side
handler
Data Structures
UIService Client
Data Structures
Mobile Device Cloud
Cloud-mobile hybrid application26th July 2012 78
79
MobiCloud Architecture
26th July 2012
26th July 2012 80
MobiCloud DSL
Code Generation Templating Engine
GAE Templates
EC2 Templates
Android Templates
Blackberry Templates
Graphical Composer
Text based Composer
Other Composers
81
MobiCloud DSL
26th July 2012
26th July 2012 82
recipe(:todolist) do metadata({:id => 'task-manager'})
# models model(:task, {:name=>:string,:description => :string, :time => :date,:location => :string}) #controllers controller(:taskhandler) do action :create, :task action :retrieve, :task end
# views view :add_task, {:models =>[:task],:controller => :taskhandler, :action => :create} view :show_tasks, {:models =>[:task],:controller => :taskhandler, :action => :retrieve}end
26th July 2012 83
MobiCloud Tools
26th July 2012 84
MobiCloud Graphical Composer
86
MobiCloud Code Catalog
26th July 2012
87
Available publicly at http://mobicloud-catalog.knoesis.org
26th July 2012
8826th July 2012
MobiCloud has extensions that enable the use of known ontologies
89
A Scenarios in a nutshell
26th July 2012
90
Blood pressure recorder : Personal
Web Application
26th July 2012
91
Objective : Record daily BP values
26th July 2012
Data Driven 4 data items to be recorded and
retrieved (BP figures and date)Simple user interfacePersonal
Private (own) data source
26th July 2012 92
93Visual composition of the blood pressure date recorder
26th July 2012
94
Different Android views, showing the index and the addbp screens
26th July 2012
95
showbp view of Android application
26th July 2012
96
With MobiCloud, this application was built and
deployed under 5 minutes !
26th July 2012
9726th July 2012
MobiCloud is the recipient of the Technology award at the Fukuoka
Ruby Innovators Competition
One of two winners of the technology award from 82 competitors over 9 countries
26th July 2012 98
Practical Applications : SCALE
My Contribution : Concept and Implementation
A helping hand to our biology professor !
1. Identifying and Implementing the Underlying Operators for Nuclear Magnetic Resonance Based Metabolomics Data Analysis, Third International Conference on Bioinformatics and Computational Biology (BICoB-2011)2. The Cloud Agnostic e-Science Analysis Platform, IEEE Internet Computing 2011
26th July 2012 99
SCALE is a DSL based Statistical Application
Generator
SCALE DSL
26th July 2012 100
26th July 2012 101
# load dataoriginal_data = load_data(:raw_data_file,{:format => "csv"})# sum normalizenormalized = sum_normalize(original_data)# Auto scalescaled = auto_scale(normalized)# write the filestore_data(:scaled, scaled)
Supports 3 Target Platforms
26th July 2012 102
10326th July 2012
•Hadoop (Local cluster or Amazon EC2)
•Windows Azure (using the experimental Daytona framework)
•Any desktop OS using Ruby
26th July 2012 104
SCALE Architecture
26th July 2012 105
SCALE DSL
Code Generation Templating Engine
Java (Hadoop) Templates
C# (Azure / Daytona) Templates
Ruby Templates
Graphical Composer
Text based Composer
Other Composers
106
SCALE Tools
26th July 2012
26th July 2012 107
SCALE Graphical Composer
108
Available publicly at http://metabolink.knoesis.org/SCALE
26th July 2012
109
Our friendly biologist can now quickly compose his
programs and run them with any resource available!
26th July 2012
26th July 2012 110
What did we learn from these projects?
26th July 2012 111
Code Metrics comparison
LOC counts of generated
applications
26th July 2012 112
26th July 2012 113
11426th July 2012
115
Significant savings in effort can be
obtained by using DSLs
26th July 2012
116
Effort Comparison – LOC counts in
templates
26th July 2012
11726th July 2012
11826th July 2012
119
The effort required to create the templates
is manageable
26th July 2012
26th July 2012 120
Pla
tfor
m I
ndep
ende
nce
Complexity
Direct Programming
General Programming Language based Frameworks
DSL based Solutions
12126th July 2012
• Overview of Using Abstractions
• Abstractions for program generation
• Abstractions for cloud interaction
122
Preliminaries – Basics of Middleware
26th July 2012
26th July 2012 123
Middleware
APIs
Application 1 Application 2Application
N
Lower level
services
Interface
Lower level
services
Interface
Lower level
services
Interface
Platform 1 Platform 2 Platform M
Using Middleware In the Cloud Context
26th July 2012 124
125
What Operations can we abstract?
26th July 2012
126
Application Deployment
26th July 2012
127
Application Undeployment
26th July 2012
128
Data Snapshots
26th July 2012
129
Additional Benefits
26th July 2012
130
Enforcing / Reusing Patterns
26th July 2012
131
How to Apply Middleware in the
cloud context?
26th July 2012
26th July 2012 132
General Architecture for using Middleware in a cloud context
133
Practical Applications : Altocumulus
26th July 2012
My Contribution : Evolving the concept and major portion of implementation (Member of the 4 person team. Internship work at IBM Research 2009)
1. Toward Cloud-Agnostic Middlewares, OOPSLA, 20092. A Best Practice Model for Cloud Middleware Systems , Best Practices in Cloud Computing: Designing for the Cloud workshop OOPSLA, 2009
134
Cloud Middleware System from IBM
Research
26th July 2012
135
Supported 3 target platforms
26th July 2012
13626th July 2012
• Amazon EC2o Included EC2 clones such as Eucalyptus
• Google App Engine
• IBM HiPODSo IBM private cloud system, providing
infrastructure cloud services
137
Introduced the Concept of Best
Practices
26th July 2012
138
Altocumulus Architecture
26th July 2012
26th July 2012 139
140
Altocumulus Dashboard
26th July 2012
26th July 2012 141
Altocumulus Dashboard – Showing the list of deployments and their status
26th July 2012 142
Pla
tfor
m I
ndep
ende
nce
Complexity
Original Cloud APIs
API Based solutions
Cloud brokers
Altocumulus / Middleware Solutions
Altocumulus technology is now part of the IBM PureSystems Cloud
offering, as part of the IBM Workload Deployer
26th July 2012 143
Publication Coverage
26th July 2012 144
26th July 2012 145
Altocumulus MobiCloud SCALE Others
2009 1. OOPSLA [1]2. OOPSLA cloud
workshop [1]* Altocumulus demonstration
2010 1. IEEE Cloudcom [2]2. MobiCase MobiCloud
workshop [1]* MobiCloud demonstration
2 part article on cloud application modeling in IEEE Internet Computing
2011 1. workshop at SPLASH [1]
2. IEEE COMSOC MMTC E-Letter [1] (invited)
1. BiCob [1]2. IEEE Internet
Computing [1]
2012 Paper under review in IEEE TSC
Total of 11 publications and 2 demonstrations covering this research
26th July 2012 146
• Ajith Ranabahu, Michael Maximilien, Amit Sheth and Krishnaprasad Thirunarayan. A Domain Specific Language for Enterprise Grade Cloud-Mobile Hybrid Applications, 11th Workshop on Domain-Specific Modeling (DSM) 2011 , Portland OR, USA.
• Ashwin Manjunatha, Ajith Ranabahu, Amit Sheth and Krishnaprasad Thirunarayan. Power of Clouds In Your Pocket: An Efficient Approach for Cloud Mobile Hybrid Application Development , 2nd IEEE International Conference on Cloud Computing Technology and Science, 2010, Indianapolis IN, USA. Pages 496-503
• Ajith Ranabahu, Ashwin Manjunatha, Amit Sheth and Krishnaprasad Thirunarayan. Towards Cloud Mobile Hybrid Application Generation using Semantically Enriched Domain Specific Languages , International Workshop on Mobile Computing and Clouds (MobiCloud 2010) ,Santa Clara CA 2010.
Publications
26th July 2012 147
• Ashwin Manjunatha, Paul Anderson, Ajith Ranabahu and Amit Sheth. Identifying and Implementing the Underlying Operators for Nuclear Magnetic Resonance Based Metabolomics Data Analysis, Third International Conference on Bioinformatics and Computational Biology (BICoB-2011), 2011, New Orleans LA, USA. pages 205-209
• Ajith Ranabahu and Amit Sheth. Semantics Centric Solutions for Application and Data Portability in Cloud Computing, 2nd IEEE International Conference on Cloud Computing Technology and Science, 2010, Indianapolis IN, USA. pages 234-241
• Kalpa Gunaratna, Ajith Ranabahu, Paul Anderson and Amit Sheth. A Study in Hadoop Streaming with Matlab for NMR Data Processing , 2nd IEEE International Conference on Cloud Computing Technology and Science, 2010, Indianapolis IN, USA. pages 786-789
• Michael Maximilien, Ajith Ranabahu, Roy Engehausen and Laura Anderson. Toward Cloud-Agnostic Middlewares, 24th ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), 2009, Orlando FL, USA. pages 619-626
Publications (Cont.)
14826th July 2012
• Ajith Ranabahu and Michael Maximilien. A Best Practice Model for Cloud Middleware Systems , Proceedings of the Best Practices in Cloud Computing: Designing for the Cloud workshop at the 24th ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA) pages 41-51
• Ajith Ranabahu, Paul Anderson and Amit Sheth. The Cloud Agnostic e-Science Analysis Platform, IEEE Internet Computing, vol. 15, no. 6, Nov/Dec. 2011 pages 85-89
• Amit Sheth and Ajith Ranabahu. Semantic Modeling for Cloud Computing, Part 2, IEEE Internet Computing, vol. 14, no. 4, July/Aug 2010 pages 81-84
• Amit Sheth and Ajith Ranabahu. Semantic Modeling for Cloud Computing, Part 1, IEEE Internet Computing, vol. 14, no. 3, May/June 2010 pages 81-83
Publications(Cont.)
26th July 2012 149
Conclusion
26th July 2012 150
Using DSLs to provide domain abstractions is a feasible way to
develop cloud applicationsin a platform agnostic manner
26th July 2012 151
Middleware based process abstractions are a feasible way to deploy and manage applications in the cloud
26th July 2012 152
My Other Research Activities
26th July 2012 153
Year
Res
earc
h an
d C
ontr
ibut
ions
SOA
Annotation
Service Composition
Cloud Middleware
Cloud Application Generation
2007 2008 2009 2010 2011 2012
MediatabilityEvent Detection
SA-WSDL SA-REST Kino Annotation Tools
IBM Sharable Code
IBM Altocumulus
MobiCloud
SCALE
Faceted Search / APIHut
publication
Open source / public tool
Patent
Questions
26th July 2012 154
26th July 2012 155
26th July 2012 156
Thank You
26th July 2012 157
158
Extra Slides
26th July 2012
159
Salesforce Contact Manager : Enterprise
Web application
26th July 2012
160
Objective: View contacts from your Salesforce account
26th July 2012
26th July 2012 161
•Connected to external data sources
•Likely to be shared
•Rigorous security
162
Uses 2nd Generation MobiCloud with the
Salesforce Extension
26th July 2012
163
Text Mode, editing the salesforce contact manager Application – Graphical mode is not active in the advanced mode
26th July 2012
164
Different Android views, showing the index, salesforce_accounts and salesforce_login screens
26th July 2012