SlideShare a Scribd company logo
1 of 22
A Domain Specific Language for
Enterprise Grade Cloud-Mobile Hybrid
            Applications
               The MobiCloud II Experience

 Ajith Ranabahu*, Michael Maximilien**, Amit Sheth*, Krishnaprasad Thirunarayan
           *Kno.e.sis Center, Wright State University, Dayton OH, USA
                       **IBM Research, San Jose CA, USA
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
What is MobiCloud?
A Cloud-Mobile Hybrid application generator

      • 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
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
A better approach is needed to
 develop cloud-mobile hybrid
applications, while maintaining
           portability
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
The MVC Design Pattern

                           Model




                    View           Controller




23rd October 2011                               7
CMH Applications can be nicely
decomposed into the MVC Design
A Simple Example                                                        Metadata – details that need to
                                                                          be attached to the whole
                                                                                 application



recipe(:todolist) do
  metadata({:id => „todoapp‟})                                                 Models
  # model
  model(:task,{:time => :date,:location => :string,:description => :string,:name =>
:string})
  # controller
  controller(:todohandler) do                                                 Controllers
     action(:create,:task)
     action(:retrieve,:task)                                                    Views
  end
  # view
  view(:add_task,{:models =>[:task],:controller => :todohandler,:action => :create})
  view(:show_tasks,{:models =>[:task],:controller => :todohandler,:action =>
:retrieve})
end
Graphical Representation
Generated Application Components

                                Model



                      View                     Controller



                      RESTful                                 Server
                                        RESTful Service
     UI               Service           Implementation
                                                               side       Persistent
                                                              handler      Storage
                       Client
  Task Data                                                  Task Data
  Structure                                                  Structures


              Mobile Device                                 Cloud
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
A Simple Extension – Fetching from a
URL
recipe :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
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
Demonstration
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
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
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
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
Questions
Thank you
Extra : Extension Architecture

More Related Content

What's hot

Extending and Integrating QlikView
Extending and Integrating QlikViewExtending and Integrating QlikView
Extending and Integrating QlikViewHelena Caligari
 
Modernizing the monolithic architecture to container based architecture apaco...
Modernizing the monolithic architecture to container based architecture apaco...Modernizing the monolithic architecture to container based architecture apaco...
Modernizing the monolithic architecture to container based architecture apaco...Vinay Kumar
 
Building Application Dashboards Using Wire Cloud
Building Application Dashboards Using Wire CloudBuilding Application Dashboards Using Wire Cloud
Building Application Dashboards Using Wire CloudFIWARE
 
Domain Driven Design for Angular
Domain Driven Design for AngularDomain Driven Design for Angular
Domain Driven Design for AngularJennifer Estrada
 
Google App Engine Introduction
Google App Engine IntroductionGoogle App Engine Introduction
Google App Engine IntroductionSimon Su
 
Dot net interview questions and asnwers
Dot net interview questions and asnwersDot net interview questions and asnwers
Dot net interview questions and asnwerskavinilavuG
 
Mvc pattern and implementation in java fair
Mvc   pattern   and implementation   in   java fairMvc   pattern   and implementation   in   java fair
Mvc pattern and implementation in java fairTech_MX
 
Basic React Knowledge.
Basic React Knowledge.Basic React Knowledge.
Basic React Knowledge.jacobryne
 
Introducing Pebble SDK 2.0
Introducing Pebble SDK 2.0Introducing Pebble SDK 2.0
Introducing Pebble SDK 2.0Cherie Williams
 

What's hot (20)

JavaCro'15 - GP GUI form generators - Daniel Strmečki
JavaCro'15 - GP GUI form generators - Daniel StrmečkiJavaCro'15 - GP GUI form generators - Daniel Strmečki
JavaCro'15 - GP GUI form generators - Daniel Strmečki
 
Extending and Integrating QlikView
Extending and Integrating QlikViewExtending and Integrating QlikView
Extending and Integrating QlikView
 
Modernizing the monolithic architecture to container based architecture apaco...
Modernizing the monolithic architecture to container based architecture apaco...Modernizing the monolithic architecture to container based architecture apaco...
Modernizing the monolithic architecture to container based architecture apaco...
 
Mvc fundamental
Mvc fundamentalMvc fundamental
Mvc fundamental
 
Building Application Dashboards Using Wire Cloud
Building Application Dashboards Using Wire CloudBuilding Application Dashboards Using Wire Cloud
Building Application Dashboards Using Wire Cloud
 
Domain Driven Design for Angular
Domain Driven Design for AngularDomain Driven Design for Angular
Domain Driven Design for Angular
 
Mulesoft cloudhub
Mulesoft cloudhubMulesoft cloudhub
Mulesoft cloudhub
 
Google App Engine Introduction
Google App Engine IntroductionGoogle App Engine Introduction
Google App Engine Introduction
 
Mvc summary
Mvc summaryMvc summary
Mvc summary
 
MVC
MVCMVC
MVC
 
Dot net interview questions and asnwers
Dot net interview questions and asnwersDot net interview questions and asnwers
Dot net interview questions and asnwers
 
Mvc pattern and implementation in java fair
Mvc   pattern   and implementation   in   java fairMvc   pattern   and implementation   in   java fair
Mvc pattern and implementation in java fair
 
MVC Framework
MVC FrameworkMVC Framework
MVC Framework
 
Basic React Knowledge.
Basic React Knowledge.Basic React Knowledge.
Basic React Knowledge.
 
Model View Controller (MVC)
Model View Controller (MVC)Model View Controller (MVC)
Model View Controller (MVC)
 
WPF Intro
WPF IntroWPF Intro
WPF Intro
 
Building SPA’s (Single Page App) with Backbone.js
Building SPA’s (Single Page App) with Backbone.jsBuilding SPA’s (Single Page App) with Backbone.js
Building SPA’s (Single Page App) with Backbone.js
 
Introducing Pebble SDK 2.0
Introducing Pebble SDK 2.0Introducing Pebble SDK 2.0
Introducing Pebble SDK 2.0
 
Mvc
MvcMvc
Mvc
 
Mvc framework
Mvc frameworkMvc framework
Mvc framework
 

Viewers also liked

Semantic Annotation and Search for Resources in the Next Generation Web
Semantic Annotation and Search for Resources in the Next Generation WebSemantic Annotation and Search for Resources in the Next Generation Web
Semantic Annotation and Search for Resources in the Next Generation Webajithranabahu
 
The impact of innovation on travel and tourism industries (World Travel Marke...
The impact of innovation on travel and tourism industries (World Travel Marke...The impact of innovation on travel and tourism industries (World Travel Marke...
The impact of innovation on travel and tourism industries (World Travel Marke...Brian Solis
 
Open Source Creativity
Open Source CreativityOpen Source Creativity
Open Source CreativitySara Cannon
 
Reuters: Pictures of the Year 2016 (Part 2)
Reuters: Pictures of the Year 2016 (Part 2)Reuters: Pictures of the Year 2016 (Part 2)
Reuters: Pictures of the Year 2016 (Part 2)maditabalnco
 
The Six Highest Performing B2B Blog Post Formats
The Six Highest Performing B2B Blog Post FormatsThe Six Highest Performing B2B Blog Post Formats
The Six Highest Performing B2B Blog Post FormatsBarry Feldman
 
The Outcome Economy
The Outcome EconomyThe Outcome Economy
The Outcome EconomyHelge Tennø
 

Viewers also liked (6)

Semantic Annotation and Search for Resources in the Next Generation Web
Semantic Annotation and Search for Resources in the Next Generation WebSemantic Annotation and Search for Resources in the Next Generation Web
Semantic Annotation and Search for Resources in the Next Generation Web
 
The impact of innovation on travel and tourism industries (World Travel Marke...
The impact of innovation on travel and tourism industries (World Travel Marke...The impact of innovation on travel and tourism industries (World Travel Marke...
The impact of innovation on travel and tourism industries (World Travel Marke...
 
Open Source Creativity
Open Source CreativityOpen Source Creativity
Open Source Creativity
 
Reuters: Pictures of the Year 2016 (Part 2)
Reuters: Pictures of the Year 2016 (Part 2)Reuters: Pictures of the Year 2016 (Part 2)
Reuters: Pictures of the Year 2016 (Part 2)
 
The Six Highest Performing B2B Blog Post Formats
The Six Highest Performing B2B Blog Post FormatsThe Six Highest Performing B2B Blog Post Formats
The Six Highest Performing B2B Blog Post Formats
 
The Outcome Economy
The Outcome EconomyThe Outcome Economy
The Outcome Economy
 

Similar to A Domain Specific Language for Enterprise Grade Cloud-Mobile Hybrid Applications

Containerize, PaaS, or Go Serverless!?
Containerize, PaaS, or Go Serverless!?Containerize, PaaS, or Go Serverless!?
Containerize, PaaS, or Go Serverless!?Phil Estes
 
The future of web development write once, run everywhere with angular js an...
The future of web development   write once, run everywhere with angular js an...The future of web development   write once, run everywhere with angular js an...
The future of web development write once, run everywhere with angular js an...Mark Leusink
 
The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...Mark Roden
 
Evolutionary evnt-driven-architecture-for-accelerated-digital-transformation
Evolutionary evnt-driven-architecture-for-accelerated-digital-transformationEvolutionary evnt-driven-architecture-for-accelerated-digital-transformation
Evolutionary evnt-driven-architecture-for-accelerated-digital-transformationSlobodan Sipcic
 
170215 msa intro
170215 msa intro170215 msa intro
170215 msa introSonic leigh
 
Perth DevOps Meetup - Introducing the IBM Innovation Lab - 12112015
Perth DevOps Meetup - Introducing the IBM Innovation Lab - 12112015Perth DevOps Meetup - Introducing the IBM Innovation Lab - 12112015
Perth DevOps Meetup - Introducing the IBM Innovation Lab - 12112015Christophe Lucas
 
Designing Microservices
Designing MicroservicesDesigning Microservices
Designing MicroservicesDavid Chou
 
Cloud compiler - Minor Project by students of CBPGEC
Cloud compiler - Minor Project by students of CBPGEC  Cloud compiler - Minor Project by students of CBPGEC
Cloud compiler - Minor Project by students of CBPGEC vipin kumar
 
Automating Applications with Habitat - Sydney Cloud Native Meetup
Automating Applications with Habitat - Sydney Cloud Native MeetupAutomating Applications with Habitat - Sydney Cloud Native Meetup
Automating Applications with Habitat - Sydney Cloud Native MeetupMatt Ray
 
Over view of software artitecture
Over view of software artitectureOver view of software artitecture
Over view of software artitectureABDEL RAHMAN KARIM
 
Kubernetes solutions
Kubernetes solutionsKubernetes solutions
Kubernetes solutionsEric Cattoir
 
Open shift and docker - october,2014
Open shift and docker - october,2014Open shift and docker - october,2014
Open shift and docker - october,2014Hojoong Kim
 
仕事ではじめる機械学習
仕事ではじめる機械学習仕事ではじめる機械学習
仕事ではじめる機械学習Aki Ariga
 
An architect’s guide to leveraging your incumbency
An architect’s guide to leveraging your incumbencyAn architect’s guide to leveraging your incumbency
An architect’s guide to leveraging your incumbencyMichael Elder
 
The App Evolution
The App Evolution The App Evolution
The App Evolution Dev_Events
 
Cloud Native Patterns with Bluemix Developer Console
Cloud Native Patterns with Bluemix Developer ConsoleCloud Native Patterns with Bluemix Developer Console
Cloud Native Patterns with Bluemix Developer ConsoleMatthew Perrins
 
Learn how to Leverage Kubernetes to Support 12 Factor for Enterprise Apps
 Learn how to Leverage Kubernetes to Support 12 Factor for Enterprise Apps Learn how to Leverage Kubernetes to Support 12 Factor for Enterprise Apps
Learn how to Leverage Kubernetes to Support 12 Factor for Enterprise AppsMichael Elder
 
Microservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native AppsMicroservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native AppsAraf Karsh Hamid
 
IBM SmartCloud Orchestration
IBM SmartCloud OrchestrationIBM SmartCloud Orchestration
IBM SmartCloud OrchestrationIBM Danmark
 

Similar to A Domain Specific Language for Enterprise Grade Cloud-Mobile Hybrid Applications (20)

Containerize, PaaS, or Go Serverless!?
Containerize, PaaS, or Go Serverless!?Containerize, PaaS, or Go Serverless!?
Containerize, PaaS, or Go Serverless!?
 
The future of web development write once, run everywhere with angular js an...
The future of web development   write once, run everywhere with angular js an...The future of web development   write once, run everywhere with angular js an...
The future of web development write once, run everywhere with angular js an...
 
The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...
 
Evolutionary evnt-driven-architecture-for-accelerated-digital-transformation
Evolutionary evnt-driven-architecture-for-accelerated-digital-transformationEvolutionary evnt-driven-architecture-for-accelerated-digital-transformation
Evolutionary evnt-driven-architecture-for-accelerated-digital-transformation
 
170215 msa intro
170215 msa intro170215 msa intro
170215 msa intro
 
Perth DevOps Meetup - Introducing the IBM Innovation Lab - 12112015
Perth DevOps Meetup - Introducing the IBM Innovation Lab - 12112015Perth DevOps Meetup - Introducing the IBM Innovation Lab - 12112015
Perth DevOps Meetup - Introducing the IBM Innovation Lab - 12112015
 
Designing Microservices
Designing MicroservicesDesigning Microservices
Designing Microservices
 
Cloud compiler - Minor Project by students of CBPGEC
Cloud compiler - Minor Project by students of CBPGEC  Cloud compiler - Minor Project by students of CBPGEC
Cloud compiler - Minor Project by students of CBPGEC
 
Automating Applications with Habitat - Sydney Cloud Native Meetup
Automating Applications with Habitat - Sydney Cloud Native MeetupAutomating Applications with Habitat - Sydney Cloud Native Meetup
Automating Applications with Habitat - Sydney Cloud Native Meetup
 
Over view of software artitecture
Over view of software artitectureOver view of software artitecture
Over view of software artitecture
 
Kubernetes solutions
Kubernetes solutionsKubernetes solutions
Kubernetes solutions
 
Chinnasamy Manickam
Chinnasamy ManickamChinnasamy Manickam
Chinnasamy Manickam
 
Open shift and docker - october,2014
Open shift and docker - october,2014Open shift and docker - october,2014
Open shift and docker - october,2014
 
仕事ではじめる機械学習
仕事ではじめる機械学習仕事ではじめる機械学習
仕事ではじめる機械学習
 
An architect’s guide to leveraging your incumbency
An architect’s guide to leveraging your incumbencyAn architect’s guide to leveraging your incumbency
An architect’s guide to leveraging your incumbency
 
The App Evolution
The App Evolution The App Evolution
The App Evolution
 
Cloud Native Patterns with Bluemix Developer Console
Cloud Native Patterns with Bluemix Developer ConsoleCloud Native Patterns with Bluemix Developer Console
Cloud Native Patterns with Bluemix Developer Console
 
Learn how to Leverage Kubernetes to Support 12 Factor for Enterprise Apps
 Learn how to Leverage Kubernetes to Support 12 Factor for Enterprise Apps Learn how to Leverage Kubernetes to Support 12 Factor for Enterprise Apps
Learn how to Leverage Kubernetes to Support 12 Factor for Enterprise Apps
 
Microservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native AppsMicroservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native Apps
 
IBM SmartCloud Orchestration
IBM SmartCloud OrchestrationIBM SmartCloud Orchestration
IBM SmartCloud Orchestration
 

Recently uploaded

Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 

Recently uploaded (20)

Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 

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

  • 1. A Domain Specific Language for Enterprise Grade Cloud-Mobile Hybrid Applications The MobiCloud II Experience Ajith Ranabahu*, Michael Maximilien**, Amit Sheth*, Krishnaprasad Thirunarayan *Kno.e.sis Center, Wright State University, Dayton OH, USA **IBM Research, San Jose CA, USA
  • 2. 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
  • 3. What is MobiCloud? A Cloud-Mobile Hybrid application generator • 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
  • 4. 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
  • 5. A better approach is needed to develop cloud-mobile hybrid applications, while maintaining portability
  • 6. 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
  • 7. The MVC Design Pattern Model View Controller 23rd October 2011 7
  • 8. CMH Applications can be nicely decomposed into the MVC Design
  • 9. A Simple Example Metadata – details that need to be attached to the whole application recipe(:todolist) do metadata({:id => „todoapp‟}) Models # model model(:task,{:time => :date,:location => :string,:description => :string,:name => :string}) # controller controller(:todohandler) do Controllers action(:create,:task) action(:retrieve,:task) Views end # view view(:add_task,{:models =>[:task],:controller => :todohandler,:action => :create}) view(:show_tasks,{:models =>[:task],:controller => :todohandler,:action => :retrieve}) end
  • 11. Generated Application Components Model View Controller RESTful Server RESTful Service UI Service Implementation side Persistent handler Storage Client Task Data Task Data Structure Structures Mobile Device Cloud
  • 12. 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
  • 13. A Simple Extension – Fetching from a URL recipe :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
  • 14. 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
  • 16. 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
  • 17. 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
  • 18. 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
  • 19. 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
  • 22. Extra : Extension Architecture