Multichannel User Interfaces

Pedro J. Molina
Pedro J. MolinaFounder at Metadev en Metadev
Multichannel
    User Interfaces
         Pedro J. Molina, PhD.   pjmolina@icinetic.com
                                 @pmolinam

         Rubén Jiménez           rjimenez@icinetic.com
                                 @rubenjmarrufo
Contents
   Introduction
   UIs and multichannel
   UI Technologies
   UI Model & Code Generation
   Demos
   Conclusions
   Q&A

      © Icinetic 2012            2
Introduction



 We do MDSD Tools for developers
 Focused on .NET technologies &
  Architecture services
 HQ in Seville, Spain, EU


                       © Icinetic 2012   3
Introduction
 Pervasive User Interfaces
 Contextual

 Services across devices

 Costs of making and distributing Software



                       © Icinetic 2012        4
UIs and multichannel




       © Icinetic 2012   5
UIs and multichannel
 One day in the future:
     There could be a unique SW language
     And a unique HW platform
     Able to drive all your gadgets and devices
     Contextual
     Able to follow you across changing your context,
      location or device



                          © Icinetic 2012                6
UIs and multichannel
 However, in the meanwhile, we have:
   Many devices
   Many HW choices
   Many SW platforms to build for

             Difficult choice: Where to invest?




                        © Icinetic 2012           7
UIs and multichannel
 Businesses need to provide
   Access to product and services to the great market-
    share as possible
   Different platforms: fragment the market when
    launching a new product or service
   Technology is just a commodity
   Technology diversity increases the costs of market
    acquisition


                        © Icinetic 2012                   8
UI Technologies
 Choose your flavour:

                                                          ?
                         Smartphone        Smartphone
                             Tablet          Tablet


                                                v 3.1.3
                                                v 4.2.1
                                                  v 5.1



                         © Icinetic 2012                  9
UI Development

 Then
   Hire a good development team
   Don’t forget designers and UX
   Keep them focused and happy!




                    © Icinetic 2012   10
Required UI programming skills
 Main platforms:
Platform         Languages                         IDE
The Web          HTML5 + CSS3 + JavaScript         None/Many
                 + Server side lang.
Windows          XAML + C#                         Visual Studio, Expression Blend
Apple            Objective-C + Cocoa               XCode
Java / Android   Java + UI toolkit                 Eclipse


                                     Difficult to master all of them!

                                 © Icinetic 2012                                     11
UI Technologies
 Variable and moving target
    Hardware: new devices every 6 months
    Software: new OS mobile versions every
     year
    APIs: new APIs, all the time!




    Not an easy train to follow!


                              © Icinetic 2012   12
UI Style-guides
 iOS

 Android

 WP7 / W8 Metro




                   © Icinetic 2012   13
UI Style-guides
 Each platform provides a differentiated one
   Involving not only aesthetics aspects

   But also UX aspects on device accordingly to the style of
    interaction

   Application on a device should behave coherent with the
    platform


   Not all applications fits well on each device

                             © Icinetic 2012                    14
Is there space for modelling
           and code generated UIs?
 Probably
    not for “radically original” games
    and not for new interaction styles


 But convenient and efficient for day to day
    Information Systems
    Information production / consumption needs
    Business Software

                          © Icinetic 2012         15
Once again: Art or Engineering?




             © Icinetic 2012      16
Once again: Art or Engineering?




                               Both!
             © Icinetic 2012           17
© Icinetic
             18
2012
© Icinetic
             19
2012
UIs and plumbing
 Behind a good User Interface
   There is a lot of plumbing


 Definition: (Developer) Plumbing
   Repetitive infrastructure code with small
    variations
   Boring to write, source of bugs
   Low added value
   But: needed to run the full application

                             © Icinetic 2012    20
Plumbing samples: UI Architecture
 UI frameworks
   MVC

   MVVM

   MVP
      Supervising Controller
      Passive View


                           © Icinetic 2012   21
Plumbing sample: Comms
 Service invocation

    RPC / Binary

    Web Services / SOAP

    REST / JSON

    HTTP / HTTPS / SPEEDY
     / WebSockets

                           © Icinetic 2012   22
UI Modelling Hypothesis
 So:
  1.    Can we raise the level of abstraction and capture
        the essence of the UI in a model?

  2. Can we alleviate the developers plumbing pain?

  3. Can we expose this UI on multiple channels and
     technologies?


                           © Icinetic 2012                  23
What’s changes in a UI?
 Technology

 Style guides

 Widgets and concrete interaction

 Plumbing: platform/tech specific



                       © Icinetic 2012   24
What’s remains immutable in a UI?
 Patterns & UX principles
     A Master-Detail will be always a Master-Detail
     A Filter
     A collection of objects
     Navigation
     Command
     Selection
     Task …

                          © Icinetic 2012              25
Conceptual UI Patterns
       Login
       Instance
       Population
       Master/Detail
       Service
       Wizard
       Filter
       …                     pjmolina.com/cuip

            © Icinetic 2012                  26
CUIP: Population
 Set of objects                   Rendering
      Filter                        Grid
      Order criteria                Table
      Display set                   List
      Actions
      Navigation




                © Icinetic 2012                 27
CUIP: Population
 Set of objects                   Rendering
      Filter                        Grid
      Order criteria                Table
      Display set                   List
      Actions
      Navigation




                © Icinetic 2012                 28
CUIP: Population
 Set of objects                   Rendering
      Filter                        Grid
      Order criteria                Table
      Display set                   List
      Actions
      Navigation




                © Icinetic 2012                 29
CUIP: Population
 Set of objects                   Rendering
      Filter                        Grid
      Order criteria                Table
      Display set                   List
      Actions
      Navigation




                © Icinetic 2012                 30
A sample: Personal Banking
 Oriented to: banking end users
    Easy to use

 Targeting frequent operations
    Check accounts balance
    Order a transfer
    Review account entries

 Multi-device: pc, mobile, tablet, etc.
                        © Icinetic 2012    31
Structure: Class Model




        © Icinetic 2012   32
UI Navigational Model




        © Icinetic 2012   33
Code Generation




     © Icinetic 2012   34
Demo Time

 Modelling domain
 Generated Services

 Modelling UI
 Generated UI



                       © Icinetic 2012   35
So far, we have seen:
 Default UI/Inferred (when nothing was specified)
 Graphical and textual notations combined for UI
 Services consumption and composition
   From a model exposed by a system in runtime
 Device independent UI modelling
 WYSIWYG modelling approach



                       © Icinetic 2012               36
Applications
 UI prototyping
   “Wizard of Oz” Technique

 Rapid multichannel Service delivery

 UIs via Service composition (Mashups)

 Ubiquitous & contextual interfaces

                       © Icinetic 2012    37
Multi-channel
                          Datatabase



                          Data Access
                             Layer


                         Business Logic
                             Layer



                         Services Layer




            App 1


    User Interface                        User Interface
        Layer                                 Layer

             Views                                 Views


           Controllers                           Controllers


          View Models                           View Models




    UI-1                                  UI-2
    © Icinetic 2012                                            38
MD Composed UIs (Mashups)
         Datatabase                                                Datatabase



         Data Access                                               Data Access
            Layer                                                     Layer


        Business Logic                                            Business Logic
            Layer                                                     Layer



        Services Layer                                            Services Layer




App 1                                      App 2


                                             User Interface
                                                 Layer

                                                      Views


                                                    Controllers


                                                   View Models




                                             Composed App UI
                         © Icinetic 2012                                           39
Conclusions



 Pervasive devices are already here to stay

 While we found “the platform” to rule them’all
    we need to deal with diversity of HW, SW and APIs


                        © Icinetic 2012                  40
Conclusions
 So far, today we have seen:
   1.   How to raise the level of abstraction and capture
        the essence of a User Interface in a model

   2. How to alleviate the developer plumbing pain

   3. How to target multiple channels and
      technologies


                          © Icinetic 2012                   41
Conclusions
 MDSD applied to UI
   can makes the difference in terms of time to
    market, quality & productivity

   provide new forms of UIs not possible in the
    traditional way i.e. contextual ones



                     © Icinetic 2012               42
Conclusions
 Looking for flights to Seychelles on the bathroom
 Finishing the purchase, later, in the car




        © Icinetic 2012                       43
Questions &         (might be)   Answers




                           www.radarc.net
                           pjmolina.com/essential
                           pjmolina.com/cuip
         © Icinetic 2012                        44
1 de 44

Recomendados

Cloud service lifecycle management por
Cloud service lifecycle managementCloud service lifecycle management
Cloud service lifecycle managementAnimesh Chaturvedi
1.3K vistas110 diapositivas
Scheduling in Cloud Computing por
Scheduling in Cloud ComputingScheduling in Cloud Computing
Scheduling in Cloud ComputingHitesh Mohapatra
3.2K vistas27 diapositivas
Software complexity por
Software complexitySoftware complexity
Software complexityUniversity of St Andrews
2.8K vistas38 diapositivas
Human Computer Interface (HCI) por
Human Computer Interface (HCI)Human Computer Interface (HCI)
Human Computer Interface (HCI)Shobha Rani
775 vistas19 diapositivas
System models for distributed and cloud computing por
System models for distributed and cloud computingSystem models for distributed and cloud computing
System models for distributed and cloud computingpurplesea
4.5K vistas15 diapositivas
Software engineering project management por
Software engineering project managementSoftware engineering project management
Software engineering project managementjhudyne
39.8K vistas34 diapositivas

Más contenido relacionado

La actualidad más candente

Grid computing notes por
Grid computing notesGrid computing notes
Grid computing notesSyed Mustafa
7.3K vistas165 diapositivas
Constructive Cost Model - II (COCOMO-II) por
Constructive Cost Model - II (COCOMO-II)Constructive Cost Model - II (COCOMO-II)
Constructive Cost Model - II (COCOMO-II)AmanSharma1172
3.5K vistas20 diapositivas
Mobile Information Architecture por
Mobile Information ArchitectureMobile Information Architecture
Mobile Information ArchitectureLifna C.S
3.5K vistas22 diapositivas
Agile Process models por
Agile Process modelsAgile Process models
Agile Process modelsStudent
2.2K vistas17 diapositivas
Cs6660 compiler design por
Cs6660 compiler designCs6660 compiler design
Cs6660 compiler designhari2010
2.4K vistas27 diapositivas
2.2. language evaluation criteria por
2.2. language evaluation criteria2.2. language evaluation criteria
2.2. language evaluation criteriaannahallare_
3K vistas4 diapositivas

La actualidad más candente(20)

Grid computing notes por Syed Mustafa
Grid computing notesGrid computing notes
Grid computing notes
Syed Mustafa7.3K vistas
Constructive Cost Model - II (COCOMO-II) por AmanSharma1172
Constructive Cost Model - II (COCOMO-II)Constructive Cost Model - II (COCOMO-II)
Constructive Cost Model - II (COCOMO-II)
AmanSharma11723.5K vistas
Mobile Information Architecture por Lifna C.S
Mobile Information ArchitectureMobile Information Architecture
Mobile Information Architecture
Lifna C.S3.5K vistas
Agile Process models por Student
Agile Process modelsAgile Process models
Agile Process models
Student2.2K vistas
Cs6660 compiler design por hari2010
Cs6660 compiler designCs6660 compiler design
Cs6660 compiler design
hari20102.4K vistas
2.2. language evaluation criteria por annahallare_
2.2. language evaluation criteria2.2. language evaluation criteria
2.2. language evaluation criteria
annahallare_3K vistas
Multimodal Interaction: An Introduction por Abdallah El Ali
Multimodal Interaction: An IntroductionMultimodal Interaction: An Introduction
Multimodal Interaction: An Introduction
Abdallah El Ali22.5K vistas
CLIENT SERVER IN OS.ppt por suman yadav
CLIENT SERVER IN OS.pptCLIENT SERVER IN OS.ppt
CLIENT SERVER IN OS.ppt
suman yadav8.5K vistas
Human computer interaction 3 4(revised) por emaan waseem
Human computer interaction 3 4(revised)Human computer interaction 3 4(revised)
Human computer interaction 3 4(revised)
emaan waseem1.2K vistas
Software Engineering (Introduction to Software Engineering) por ShudipPal
Software Engineering (Introduction to Software Engineering)Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)
ShudipPal1.3K vistas
Cc unit 2 ppt por Dr VISU P
Cc unit 2 pptCc unit 2 ppt
Cc unit 2 ppt
Dr VISU P195 vistas
Software Testing and Quality Assurance Assignment 3 por Gurpreet singh
Software Testing and Quality Assurance Assignment 3Software Testing and Quality Assurance Assignment 3
Software Testing and Quality Assurance Assignment 3
Gurpreet singh7.5K vistas
The ethics of software engineering por jndatirwa
The ethics of software engineeringThe ethics of software engineering
The ethics of software engineering
jndatirwa2.4K vistas
Decomposition technique In Software Engineering por Bilal Hassan
Decomposition technique In Software Engineering Decomposition technique In Software Engineering
Decomposition technique In Software Engineering
Bilal Hassan18.2K vistas

Destacado

Hivepod: Casos de uso en OpenData por
Hivepod: Casos de uso en OpenDataHivepod: Casos de uso en OpenData
Hivepod: Casos de uso en OpenDataPedro J. Molina
797 vistas10 diapositivas
TDD+CI con Teamcity por
TDD+CI con TeamcityTDD+CI con Teamcity
TDD+CI con TeamcityPedro J. Molina
1.4K vistas28 diapositivas
Modeling and Code Generation in the Cloud for Citizen Developers and Beyond por
Modeling and Code Generation in the Cloud for Citizen Developers and BeyondModeling and Code Generation in the Cloud for Citizen Developers and Beyond
Modeling and Code Generation in the Cloud for Citizen Developers and BeyondPedro J. Molina
706 vistas13 diapositivas
Introducción a StackOverflow por
Introducción a StackOverflowIntroducción a StackOverflow
Introducción a StackOverflowPedro J. Molina
803 vistas11 diapositivas
Scaling MDD for production: enabling SoC at model time por
Scaling MDD for production: enabling SoC at model timeScaling MDD for production: enabling SoC at model time
Scaling MDD for production: enabling SoC at model timePedro J. Molina
932 vistas45 diapositivas
Modelling and code generation in .NET at Icinetic por
Modelling and code generation in .NET at IcineticModelling and code generation in .NET at Icinetic
Modelling and code generation in .NET at IcineticPedro J. Molina
924 vistas50 diapositivas

Destacado(20)

Hivepod: Casos de uso en OpenData por Pedro J. Molina
Hivepod: Casos de uso en OpenDataHivepod: Casos de uso en OpenData
Hivepod: Casos de uso en OpenData
Pedro J. Molina797 vistas
Modeling and Code Generation in the Cloud for Citizen Developers and Beyond por Pedro J. Molina
Modeling and Code Generation in the Cloud for Citizen Developers and BeyondModeling and Code Generation in the Cloud for Citizen Developers and Beyond
Modeling and Code Generation in the Cloud for Citizen Developers and Beyond
Pedro J. Molina706 vistas
Scaling MDD for production: enabling SoC at model time por Pedro J. Molina
Scaling MDD for production: enabling SoC at model timeScaling MDD for production: enabling SoC at model time
Scaling MDD for production: enabling SoC at model time
Pedro J. Molina932 vistas
Modelling and code generation in .NET at Icinetic por Pedro J. Molina
Modelling and code generation in .NET at IcineticModelling and code generation in .NET at Icinetic
Modelling and code generation in .NET at Icinetic
Pedro J. Molina924 vistas
CG2010 Tailored Code Generators por Pedro J. Molina
CG2010 Tailored Code GeneratorsCG2010 Tailored Code Generators
CG2010 Tailored Code Generators
Pedro J. Molina1.3K vistas
MDD: Models, frameworks, & code generation por Pedro J. Molina
MDD: Models, frameworks, & code generationMDD: Models, frameworks, & code generation
MDD: Models, frameworks, & code generation
Pedro J. Molina2.9K vistas
SVQDC 2017 Tecnologías para Microservicios por Pedro J. Molina
SVQDC 2017 Tecnologías para MicroserviciosSVQDC 2017 Tecnologías para Microservicios
SVQDC 2017 Tecnologías para Microservicios
Pedro J. Molina1.1K vistas
Microservicios sobre MEAN Stack por Pedro J. Molina
Microservicios sobre MEAN StackMicroservicios sobre MEAN Stack
Microservicios sobre MEAN Stack
Pedro J. Molina1.7K vistas
Tecnologías para microservicios por Pedro J. Molina
Tecnologías para microserviciosTecnologías para microservicios
Tecnologías para microservicios
Pedro J. Molina3.6K vistas
Modelling the User Interface por Pedro J. Molina
Modelling the User InterfaceModelling the User Interface
Modelling the User Interface
Pedro J. Molina4.5K vistas
Code Generation for Conceptual User Interface Patterns por Pedro J. Molina
Code Generation for Conceptual User Interface PatternsCode Generation for Conceptual User Interface Patterns
Code Generation for Conceptual User Interface Patterns
Pedro J. Molina2.1K vistas
The PISA Project: a MDD case study por Pedro J. Molina
The PISA Project: a MDD case studyThe PISA Project: a MDD case study
The PISA Project: a MDD case study
Pedro J. Molina798 vistas
Opensouthcode: Microservicios sobre MEAN Stack por Pedro J. Molina
Opensouthcode: Microservicios sobre MEAN StackOpensouthcode: Microservicios sobre MEAN Stack
Opensouthcode: Microservicios sobre MEAN Stack
Pedro J. Molina1.2K vistas
MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!) por Jordi Cabot
MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)
MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)
Jordi Cabot23K vistas

Similar a Multichannel User Interfaces

Introduction to Reddo Webinar por
Introduction to Reddo WebinarIntroduction to Reddo Webinar
Introduction to Reddo WebinarReddo Mobility
440 vistas14 diapositivas
Redefining Perspectives 4 - Metro ui Session 1 por
Redefining Perspectives 4 - Metro ui Session 1Redefining Perspectives 4 - Metro ui Session 1
Redefining Perspectives 4 - Metro ui Session 1sapientindia
356 vistas14 diapositivas
ANDROID presentation prabal por
ANDROID presentation prabalANDROID presentation prabal
ANDROID presentation prabalPrabal Tyagi
272 vistas20 diapositivas
Cerutti--Web Information Systems (postgrad seminar @ University of Brescia) por
Cerutti--Web Information Systems (postgrad seminar @ University of Brescia)Cerutti--Web Information Systems (postgrad seminar @ University of Brescia)
Cerutti--Web Information Systems (postgrad seminar @ University of Brescia)Federico Cerutti
828 vistas31 diapositivas
The Promise of Interoperability por
The Promise of InteroperabilityThe Promise of Interoperability
The Promise of InteroperabilityReal-Time Innovations (RTI)
935 vistas60 diapositivas
UGIdotNET App Modernisation Keynote por
UGIdotNET App Modernisation KeynoteUGIdotNET App Modernisation Keynote
UGIdotNET App Modernisation KeynoteLorenzo Barbieri
261 vistas22 diapositivas

Similar a Multichannel User Interfaces(20)

Introduction to Reddo Webinar por Reddo Mobility
Introduction to Reddo WebinarIntroduction to Reddo Webinar
Introduction to Reddo Webinar
Reddo Mobility440 vistas
Redefining Perspectives 4 - Metro ui Session 1 por sapientindia
Redefining Perspectives 4 - Metro ui Session 1Redefining Perspectives 4 - Metro ui Session 1
Redefining Perspectives 4 - Metro ui Session 1
sapientindia356 vistas
ANDROID presentation prabal por Prabal Tyagi
ANDROID presentation prabalANDROID presentation prabal
ANDROID presentation prabal
Prabal Tyagi272 vistas
Cerutti--Web Information Systems (postgrad seminar @ University of Brescia) por Federico Cerutti
Cerutti--Web Information Systems (postgrad seminar @ University of Brescia)Cerutti--Web Information Systems (postgrad seminar @ University of Brescia)
Cerutti--Web Information Systems (postgrad seminar @ University of Brescia)
Federico Cerutti828 vistas
UGIdotNET App Modernisation Keynote por Lorenzo Barbieri
UGIdotNET App Modernisation KeynoteUGIdotNET App Modernisation Keynote
UGIdotNET App Modernisation Keynote
Lorenzo Barbieri261 vistas
Internship-Report-VitulChauhan-18132023-IT_CRUD-OPERATION.pdf por VitulChauhan
Internship-Report-VitulChauhan-18132023-IT_CRUD-OPERATION.pdfInternship-Report-VitulChauhan-18132023-IT_CRUD-OPERATION.pdf
Internship-Report-VitulChauhan-18132023-IT_CRUD-OPERATION.pdf
VitulChauhan53 vistas
Collaborative and agile development of mobile applications por Ayushman Jain
Collaborative and agile development of mobile applicationsCollaborative and agile development of mobile applications
Collaborative and agile development of mobile applications
Ayushman Jain1.2K vistas
Introduction of operating system(latest) por JacksonKong
Introduction of operating system(latest)Introduction of operating system(latest)
Introduction of operating system(latest)
JacksonKong218 vistas
Integration solution: Instant access to Web Services into IMS applications por Virtel - SysperTec
Integration solution: Instant access to Web Services into IMS applicationsIntegration solution: Instant access to Web Services into IMS applications
Integration solution: Instant access to Web Services into IMS applications
Virtel - SysperTec1.2K vistas
Designing Rich Mobile Apps in a Fragmented World por Worklight
Designing Rich Mobile Apps in a Fragmented WorldDesigning Rich Mobile Apps in a Fragmented World
Designing Rich Mobile Apps in a Fragmented World
Worklight809 vistas
ACM SIGCHI EICS-2019 Keynote. Quid, Pedro J. Molina por Pedro J. Molina
ACM SIGCHI EICS-2019 Keynote. Quid, Pedro J. MolinaACM SIGCHI EICS-2019 Keynote. Quid, Pedro J. Molina
ACM SIGCHI EICS-2019 Keynote. Quid, Pedro J. Molina
Pedro J. Molina646 vistas
Linda maleki por NASAPMC
Linda malekiLinda maleki
Linda maleki
NASAPMC15.5K vistas
2012.09.11 w3 c html5 mobile paradies por Stephan Haux
2012.09.11 w3 c html5   mobile paradies2012.09.11 w3 c html5   mobile paradies
2012.09.11 w3 c html5 mobile paradies
Stephan Haux399 vistas
Native vs Hybrid - Options to develop your mobile application por Loic Ortola
Native vs Hybrid - Options to develop your mobile applicationNative vs Hybrid - Options to develop your mobile application
Native vs Hybrid - Options to develop your mobile application
Loic Ortola522 vistas
INT Inc | Benefits of a Microservices Architecture por Thelma Gros
INT Inc | Benefits of a Microservices ArchitectureINT Inc | Benefits of a Microservices Architecture
INT Inc | Benefits of a Microservices Architecture
Thelma Gros65 vistas
Web based, mobile enterprise applications por Manish Garg
Web based, mobile enterprise applicationsWeb based, mobile enterprise applications
Web based, mobile enterprise applications
Manish Garg734 vistas
Mobileuidevchallengesinnovate2012a 120607124912-phpapp02 por Alexander Muse
Mobileuidevchallengesinnovate2012a 120607124912-phpapp02Mobileuidevchallengesinnovate2012a 120607124912-phpapp02
Mobileuidevchallengesinnovate2012a 120607124912-phpapp02
Alexander Muse483 vistas

Más de Pedro J. Molina

MDE en la industria por
MDE en la industriaMDE en la industria
MDE en la industriaPedro J. Molina
10 vistas55 diapositivas
Terraform por
TerraformTerraform
TerraformPedro J. Molina
5 vistas1 diapositiva
dotnetMalaga-2020 Gestión de la configuración en aplicaciones Web por
dotnetMalaga-2020 Gestión de la configuración en aplicaciones WebdotnetMalaga-2020 Gestión de la configuración en aplicaciones Web
dotnetMalaga-2020 Gestión de la configuración en aplicaciones WebPedro J. Molina
85 vistas20 diapositivas
Infrastructure as Code with Terraform por
Infrastructure as Code with TerraformInfrastructure as Code with Terraform
Infrastructure as Code with TerraformPedro J. Molina
51 vistas34 diapositivas
Are Startups for me? por
Are Startups for me?Are Startups for me?
Are Startups for me?Pedro J. Molina
465 vistas18 diapositivas
Meow Demo por
Meow DemoMeow Demo
Meow DemoPedro J. Molina
228 vistas5 diapositivas

Más de Pedro J. Molina(15)

Último

What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue por
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlueWhat’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlueShapeBlue
89 vistas23 diapositivas
"Surviving highload with Node.js", Andrii Shumada por
"Surviving highload with Node.js", Andrii Shumada "Surviving highload with Node.js", Andrii Shumada
"Surviving highload with Node.js", Andrii Shumada Fwdays
33 vistas29 diapositivas
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit... por
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...ShapeBlue
40 vistas25 diapositivas
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT por
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBITUpdates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBITShapeBlue
66 vistas8 diapositivas
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava... por
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...ShapeBlue
28 vistas17 diapositivas
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T por
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&TCloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&TShapeBlue
38 vistas34 diapositivas

Último(20)

What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue por ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlueWhat’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
ShapeBlue89 vistas
"Surviving highload with Node.js", Andrii Shumada por Fwdays
"Surviving highload with Node.js", Andrii Shumada "Surviving highload with Node.js", Andrii Shumada
"Surviving highload with Node.js", Andrii Shumada
Fwdays33 vistas
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit... por ShapeBlue
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...
ShapeBlue40 vistas
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT por ShapeBlue
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBITUpdates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT
ShapeBlue66 vistas
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava... por ShapeBlue
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...
ShapeBlue28 vistas
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T por ShapeBlue
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&TCloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T
ShapeBlue38 vistas
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R... por ShapeBlue
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...
ShapeBlue37 vistas
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P... por ShapeBlue
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...
ShapeBlue60 vistas
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f... por TrustArc
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc72 vistas
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N... por James Anderson
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
James Anderson126 vistas
Igniting Next Level Productivity with AI-Infused Data Integration Workflows por Safe Software
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Safe Software317 vistas
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue por ShapeBlue
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlueElevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
ShapeBlue70 vistas
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue por ShapeBlue
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlueCloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue
ShapeBlue26 vistas
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti... por ShapeBlue
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...
ShapeBlue26 vistas
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas... por Bernd Ruecker
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
Bernd Ruecker48 vistas
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive por Network Automation Forum
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLiveAutomating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive

Multichannel User Interfaces

  • 1. Multichannel User Interfaces Pedro J. Molina, PhD. pjmolina@icinetic.com @pmolinam Rubén Jiménez rjimenez@icinetic.com @rubenjmarrufo
  • 2. Contents  Introduction  UIs and multichannel  UI Technologies  UI Model & Code Generation  Demos  Conclusions  Q&A © Icinetic 2012 2
  • 3. Introduction  We do MDSD Tools for developers  Focused on .NET technologies & Architecture services  HQ in Seville, Spain, EU © Icinetic 2012 3
  • 4. Introduction  Pervasive User Interfaces  Contextual  Services across devices  Costs of making and distributing Software © Icinetic 2012 4
  • 5. UIs and multichannel © Icinetic 2012 5
  • 6. UIs and multichannel  One day in the future:  There could be a unique SW language  And a unique HW platform  Able to drive all your gadgets and devices  Contextual  Able to follow you across changing your context, location or device © Icinetic 2012 6
  • 7. UIs and multichannel  However, in the meanwhile, we have:  Many devices  Many HW choices  Many SW platforms to build for Difficult choice: Where to invest? © Icinetic 2012 7
  • 8. UIs and multichannel  Businesses need to provide  Access to product and services to the great market- share as possible  Different platforms: fragment the market when launching a new product or service  Technology is just a commodity  Technology diversity increases the costs of market acquisition © Icinetic 2012 8
  • 9. UI Technologies  Choose your flavour: ? Smartphone Smartphone Tablet Tablet v 3.1.3 v 4.2.1 v 5.1 © Icinetic 2012 9
  • 10. UI Development  Then  Hire a good development team  Don’t forget designers and UX  Keep them focused and happy! © Icinetic 2012 10
  • 11. Required UI programming skills  Main platforms: Platform Languages IDE The Web HTML5 + CSS3 + JavaScript None/Many + Server side lang. Windows XAML + C# Visual Studio, Expression Blend Apple Objective-C + Cocoa XCode Java / Android Java + UI toolkit Eclipse Difficult to master all of them! © Icinetic 2012 11
  • 12. UI Technologies  Variable and moving target  Hardware: new devices every 6 months  Software: new OS mobile versions every year  APIs: new APIs, all the time!  Not an easy train to follow! © Icinetic 2012 12
  • 13. UI Style-guides  iOS  Android  WP7 / W8 Metro © Icinetic 2012 13
  • 14. UI Style-guides  Each platform provides a differentiated one  Involving not only aesthetics aspects  But also UX aspects on device accordingly to the style of interaction  Application on a device should behave coherent with the platform  Not all applications fits well on each device © Icinetic 2012 14
  • 15. Is there space for modelling and code generated UIs?  Probably  not for “radically original” games  and not for new interaction styles  But convenient and efficient for day to day  Information Systems  Information production / consumption needs  Business Software © Icinetic 2012 15
  • 16. Once again: Art or Engineering? © Icinetic 2012 16
  • 17. Once again: Art or Engineering? Both! © Icinetic 2012 17
  • 18. © Icinetic 18 2012
  • 19. © Icinetic 19 2012
  • 20. UIs and plumbing  Behind a good User Interface  There is a lot of plumbing  Definition: (Developer) Plumbing  Repetitive infrastructure code with small variations  Boring to write, source of bugs  Low added value  But: needed to run the full application © Icinetic 2012 20
  • 21. Plumbing samples: UI Architecture  UI frameworks  MVC  MVVM  MVP  Supervising Controller  Passive View © Icinetic 2012 21
  • 22. Plumbing sample: Comms  Service invocation  RPC / Binary  Web Services / SOAP  REST / JSON  HTTP / HTTPS / SPEEDY / WebSockets © Icinetic 2012 22
  • 23. UI Modelling Hypothesis  So: 1. Can we raise the level of abstraction and capture the essence of the UI in a model? 2. Can we alleviate the developers plumbing pain? 3. Can we expose this UI on multiple channels and technologies? © Icinetic 2012 23
  • 24. What’s changes in a UI?  Technology  Style guides  Widgets and concrete interaction  Plumbing: platform/tech specific © Icinetic 2012 24
  • 25. What’s remains immutable in a UI?  Patterns & UX principles  A Master-Detail will be always a Master-Detail  A Filter  A collection of objects  Navigation  Command  Selection  Task … © Icinetic 2012 25
  • 26. Conceptual UI Patterns  Login  Instance  Population  Master/Detail  Service  Wizard  Filter  … pjmolina.com/cuip © Icinetic 2012 26
  • 27. CUIP: Population  Set of objects  Rendering  Filter  Grid  Order criteria  Table  Display set  List  Actions  Navigation © Icinetic 2012 27
  • 28. CUIP: Population  Set of objects  Rendering  Filter  Grid  Order criteria  Table  Display set  List  Actions  Navigation © Icinetic 2012 28
  • 29. CUIP: Population  Set of objects  Rendering  Filter  Grid  Order criteria  Table  Display set  List  Actions  Navigation © Icinetic 2012 29
  • 30. CUIP: Population  Set of objects  Rendering  Filter  Grid  Order criteria  Table  Display set  List  Actions  Navigation © Icinetic 2012 30
  • 31. A sample: Personal Banking  Oriented to: banking end users  Easy to use  Targeting frequent operations  Check accounts balance  Order a transfer  Review account entries  Multi-device: pc, mobile, tablet, etc. © Icinetic 2012 31
  • 32. Structure: Class Model © Icinetic 2012 32
  • 33. UI Navigational Model © Icinetic 2012 33
  • 34. Code Generation © Icinetic 2012 34
  • 35. Demo Time  Modelling domain  Generated Services  Modelling UI  Generated UI © Icinetic 2012 35
  • 36. So far, we have seen:  Default UI/Inferred (when nothing was specified)  Graphical and textual notations combined for UI  Services consumption and composition  From a model exposed by a system in runtime  Device independent UI modelling  WYSIWYG modelling approach © Icinetic 2012 36
  • 37. Applications  UI prototyping  “Wizard of Oz” Technique  Rapid multichannel Service delivery  UIs via Service composition (Mashups)  Ubiquitous & contextual interfaces © Icinetic 2012 37
  • 38. Multi-channel Datatabase Data Access Layer Business Logic Layer Services Layer App 1 User Interface User Interface Layer Layer Views Views Controllers Controllers View Models View Models UI-1 UI-2 © Icinetic 2012 38
  • 39. MD Composed UIs (Mashups) Datatabase Datatabase Data Access Data Access Layer Layer Business Logic Business Logic Layer Layer Services Layer Services Layer App 1 App 2 User Interface Layer Views Controllers View Models Composed App UI © Icinetic 2012 39
  • 40. Conclusions  Pervasive devices are already here to stay  While we found “the platform” to rule them’all  we need to deal with diversity of HW, SW and APIs © Icinetic 2012 40
  • 41. Conclusions  So far, today we have seen: 1. How to raise the level of abstraction and capture the essence of a User Interface in a model 2. How to alleviate the developer plumbing pain 3. How to target multiple channels and technologies © Icinetic 2012 41
  • 42. Conclusions  MDSD applied to UI  can makes the difference in terms of time to market, quality & productivity  provide new forms of UIs not possible in the traditional way i.e. contextual ones © Icinetic 2012 42
  • 43. Conclusions  Looking for flights to Seychelles on the bathroom  Finishing the purchase, later, in the car © Icinetic 2012 43
  • 44. Questions & (might be) Answers www.radarc.net pjmolina.com/essential pjmolina.com/cuip © Icinetic 2012 44