SlideShare una empresa de Scribd logo
1 de 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

Más contenido relacionado

La actualidad más candente

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
 

La actualidad más candente (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
 

Destacado

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ø
 

Destacado (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 a 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 a 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
 

Último

Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 

Último (20)

Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 

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