SlideShare a Scribd company logo
1 of 30
Modern Software
Architecture
BUILDING SOLUTIONS FOR WEB, CLOUD, AND MOBILE
Who is this guy?
Daniel Mohl




              danmohl@gmail.com
              www.twitter.com/dmohl
              blog.danielmohl.com
Who is this guy?
Agenda
Why should we change?
Trends in the Industry
Architecting for the Web
Architecting for the Cloud
Architecting for Mobile
Wrapping it Up
Why should we change?
Trends in the Industry
Moving to the client
Back to the metal
Horizontal Scaling
Schema-less Data Stores
User Centric Solutions
Architecting for the Web
No more WebForms – Reduce leaky abstractions
Separation of Concerns
Design Patterns – Some new, some old
Single Page Applications
Single Page Applications
Single Page Applications - Layers
Single Page Applications – MV*/C

                   Model




            View           Controller
Single Page Applications – MVVM
                 View




               ViewModel




                Model
Single Page Applications – MVVM
A Few JavaScript Patterns
Nested Namespace Pattern
Addy Osmani's Book - Learning JavaScript Design Patterns



var myApp = myApp || {};
myApp.routers = myApp.routers || {};
myApp.model = myApp.model || {};
myApp.model.special = myApp.model.special || {};
Self-executing Anonymous Functions
(function( $ ) {
   var myVar, myFunc;
   myVar = 1;
   myFunc = function( val ) {
      return val + myVar;
   };
   console.log( myFunc(2) );
})( jQuery );
Revealing Module Pattern
(function( pub, $ ) {
  var myPrivateFunc = function(val) {
       return val * 100;
  };
  pub.myFunc = function( val1 ) {
       return val1 + myPrivateFunc (val1);
  };
})( window.myApp.myMod = window.myApp.myMod || {}, jQuery );
window.myApp.myMod.myFunc( 2 );
Other Patterns We Know and Love
 Messaging Patterns like Pub/Sub using AmplifyJS and PostalJS
 Observer pattern – $.trigger and $.on
 Façade - Seen a lot in jQuery – like $.get(…)
 Strategy and Command (inherit due to functional nature of JS)
 Iterator pattern - $.each
 Map/Reduce - _.map and _.reduce
 Memoize - _.memoize
Architecting for the Cloud
Competing Consumer




         Image from this Windows Azure Tutorial
CQRS




       Image from this MSDN Magazine Article
From http://sverrehundeide.blogspot.com/2010/02/persistence-with-command-and-query.html
MapReduce Pattern




        http://Image from this Wikipedia page
Architecting for Mobile
Faster and smarter
Modern HTTP Services




            Diagram from ofps.oreilly.com
NoSQL




        Diagram from bllllog.zenika.com
Web vs. Native
Web:
- jQuery Mobile, Sencha Touch, etc.
- HTML5 and CSS3 (offline storage, input tags, improved animations, Media Queries)
- Write once, deploy many
- Responsive Design helpers like Twitter Bootstrap and Foundation 3
Web vs. Native
Native:
- Faster and richer experience
- Better offline support (but still have to manage data access)
- Device hardware access (camera, GPS, accelerometer, flash, etc.)
- Seems to be preferred by consumers (look at Facebook for an example)
- Easier access


PhoneGap and others help provide a bridge
Wrapping it Up
User Focused
Movement to JavaScript and the client (Single Page Apps)
Reduce leaky abstractions
Use Modern HTTP Services
Build both Responsive Web sites and native mobile apps
Add NoSQL to the mix
Reduce payload size
Functional First (F#, Scala)
My Contact Information
Daniel Mohl




              danmohl@gmail.com
              www.twitter.com/dmohl
              blog.danielmohl.com

More Related Content

What's hot

Three Software Architecture Styles
Three Software Architecture StylesThree Software Architecture Styles
Three Software Architecture StylesJorgen Thelin
 
Multi Tier Architecture
Multi Tier ArchitectureMulti Tier Architecture
Multi Tier Architecturegatigno
 
User Driven Software Architecture
User Driven Software ArchitectureUser Driven Software Architecture
User Driven Software ArchitectureSimon Guest
 
Software Architecture: Introduction
Software Architecture: IntroductionSoftware Architecture: Introduction
Software Architecture: IntroductionHenry Muccini
 
ASAS 2014 - Simon Brown
ASAS 2014 - Simon BrownASAS 2014 - Simon Brown
ASAS 2014 - Simon BrownAvisi B.V.
 
Software Architecture Taxonomies - Behaviour: Components & Connectors
Software Architecture Taxonomies - Behaviour: Components & ConnectorsSoftware Architecture Taxonomies - Behaviour: Components & Connectors
Software Architecture Taxonomies - Behaviour: Components & ConnectorsJose Emilio Labra Gayo
 
Architectural Design Pattern: Android
Architectural Design Pattern: AndroidArchitectural Design Pattern: Android
Architectural Design Pattern: AndroidJitendra Kumar
 
Web architecture pocket guide
Web architecture pocket guideWeb architecture pocket guide
Web architecture pocket guidemeroooo
 
Software architecture patterns
Software architecture patternsSoftware architecture patterns
Software architecture patternsRiccardo Cardin
 
Dynamic Object-Oriented Requirements System (DOORS)
Dynamic Object-Oriented Requirements System (DOORS)Dynamic Object-Oriented Requirements System (DOORS)
Dynamic Object-Oriented Requirements System (DOORS)David Groff
 
Model driven architecture
Model driven architectureModel driven architecture
Model driven architectureBiruk Mamo
 
Fundamentals Of Software Architecture
Fundamentals Of Software ArchitectureFundamentals Of Software Architecture
Fundamentals Of Software ArchitectureMarkus Voelter
 
Software Architecture Course - Part III Taxonomies - Definitions
Software Architecture Course - Part III Taxonomies - DefinitionsSoftware Architecture Course - Part III Taxonomies - Definitions
Software Architecture Course - Part III Taxonomies - DefinitionsJose Emilio Labra Gayo
 
Acrhitecture deisign pattern_MVC_MVP_MVVM
Acrhitecture deisign pattern_MVC_MVP_MVVMAcrhitecture deisign pattern_MVC_MVP_MVVM
Acrhitecture deisign pattern_MVC_MVP_MVVMDong-Ho Lee
 
Aspect Oriented Development
Aspect Oriented DevelopmentAspect Oriented Development
Aspect Oriented Developmenttyrantbrian
 
The Role of the Software Architect
The Role of the Software ArchitectThe Role of the Software Architect
The Role of the Software ArchitectHayim Makabee
 

What's hot (20)

Three Software Architecture Styles
Three Software Architecture StylesThree Software Architecture Styles
Three Software Architecture Styles
 
Multi Tier Architecture
Multi Tier ArchitectureMulti Tier Architecture
Multi Tier Architecture
 
User Driven Software Architecture
User Driven Software ArchitectureUser Driven Software Architecture
User Driven Software Architecture
 
Software Architecture: Introduction
Software Architecture: IntroductionSoftware Architecture: Introduction
Software Architecture: Introduction
 
ASAS 2014 - Simon Brown
ASAS 2014 - Simon BrownASAS 2014 - Simon Brown
ASAS 2014 - Simon Brown
 
Software Architecture Taxonomies - Behaviour: Components & Connectors
Software Architecture Taxonomies - Behaviour: Components & ConnectorsSoftware Architecture Taxonomies - Behaviour: Components & Connectors
Software Architecture Taxonomies - Behaviour: Components & Connectors
 
Architectural Design Pattern: Android
Architectural Design Pattern: AndroidArchitectural Design Pattern: Android
Architectural Design Pattern: Android
 
PAC
PACPAC
PAC
 
Web architecture pocket guide
Web architecture pocket guideWeb architecture pocket guide
Web architecture pocket guide
 
Software architecture patterns
Software architecture patternsSoftware architecture patterns
Software architecture patterns
 
Dynamic Object-Oriented Requirements System (DOORS)
Dynamic Object-Oriented Requirements System (DOORS)Dynamic Object-Oriented Requirements System (DOORS)
Dynamic Object-Oriented Requirements System (DOORS)
 
Model driven architecture
Model driven architectureModel driven architecture
Model driven architecture
 
MDA
MDAMDA
MDA
 
Fundamentals Of Software Architecture
Fundamentals Of Software ArchitectureFundamentals Of Software Architecture
Fundamentals Of Software Architecture
 
Software Architecture Course - Part III Taxonomies - Definitions
Software Architecture Course - Part III Taxonomies - DefinitionsSoftware Architecture Course - Part III Taxonomies - Definitions
Software Architecture Course - Part III Taxonomies - Definitions
 
Day1
Day1Day1
Day1
 
User-centred design
User-centred designUser-centred design
User-centred design
 
Acrhitecture deisign pattern_MVC_MVP_MVVM
Acrhitecture deisign pattern_MVC_MVP_MVVMAcrhitecture deisign pattern_MVC_MVP_MVVM
Acrhitecture deisign pattern_MVC_MVP_MVVM
 
Aspect Oriented Development
Aspect Oriented DevelopmentAspect Oriented Development
Aspect Oriented Development
 
The Role of the Software Architect
The Role of the Software ArchitectThe Role of the Software Architect
The Role of the Software Architect
 

Viewers also liked

Software Architecture Patterns
Software Architecture PatternsSoftware Architecture Patterns
Software Architecture PatternsAssaf Gannon
 
Modern Software Architecture Styles and Patterns
Modern Software Architecture Styles and PatternsModern Software Architecture Styles and Patterns
Modern Software Architecture Styles and PatternsGanesh Samarthyam
 
05 architectural styles
05 architectural styles05 architectural styles
05 architectural stylesMajong DevJfu
 
Building Modern Software: UX and Design
Building Modern Software: UX and DesignBuilding Modern Software: UX and Design
Building Modern Software: UX and DesignMerlin Rebrović
 
Django Weekend talk "Infrastructure of modern web applications"
Django Weekend talk "Infrastructure of modern web applications"Django Weekend talk "Infrastructure of modern web applications"
Django Weekend talk "Infrastructure of modern web applications"Sergey Kopylov
 
Pjok bs sem1_sma kelas xi kurikulum 2013_[blogerkupang.com]
Pjok bs sem1_sma kelas xi kurikulum 2013_[blogerkupang.com]Pjok bs sem1_sma kelas xi kurikulum 2013_[blogerkupang.com]
Pjok bs sem1_sma kelas xi kurikulum 2013_[blogerkupang.com]Randy Ikas
 
Spotify services - Leetspeak 2014
Spotify services - Leetspeak 2014Spotify services - Leetspeak 2014
Spotify services - Leetspeak 2014Niklas Gustavsson
 
Pendidikan jasmani, olahraga, dan kesehatan (buku siswa)
Pendidikan jasmani, olahraga, dan kesehatan (buku siswa) Pendidikan jasmani, olahraga, dan kesehatan (buku siswa)
Pendidikan jasmani, olahraga, dan kesehatan (buku siswa) Indah Rohmatullah
 
Introduction to NserviceBus
Introduction to NserviceBusIntroduction to NserviceBus
Introduction to NserviceBusMauro Servienti
 
Reactive Architecture
Reactive ArchitectureReactive Architecture
Reactive ArchitectureAssaf Gannon
 
CV Ruberto Luca Matteo: ICT SOlution Architect
CV Ruberto Luca Matteo: ICT SOlution ArchitectCV Ruberto Luca Matteo: ICT SOlution Architect
CV Ruberto Luca Matteo: ICT SOlution ArchitectLuca Matteo Ruberto
 
designing distributed scalable and reliable systems
designing distributed scalable and reliable systemsdesigning distributed scalable and reliable systems
designing distributed scalable and reliable systemsMauro Servienti
 
Cs 1023 lec 6 architecture (week 1)
Cs 1023 lec 6 architecture (week 1)Cs 1023 lec 6 architecture (week 1)
Cs 1023 lec 6 architecture (week 1)stanbridge
 
Week 8 Architectual Styles
Week 8 Architectual StylesWeek 8 Architectual Styles
Week 8 Architectual StylesRoxy Pilly
 

Viewers also liked (20)

The Modern Software Architect
The Modern Software ArchitectThe Modern Software Architect
The Modern Software Architect
 
Software Architecture Patterns
Software Architecture PatternsSoftware Architecture Patterns
Software Architecture Patterns
 
Modern Software Architecture Styles and Patterns
Modern Software Architecture Styles and PatternsModern Software Architecture Styles and Patterns
Modern Software Architecture Styles and Patterns
 
05 architectural styles
05 architectural styles05 architectural styles
05 architectural styles
 
Orthogonal Architecture
Orthogonal ArchitectureOrthogonal Architecture
Orthogonal Architecture
 
Building Modern Software: UX and Design
Building Modern Software: UX and DesignBuilding Modern Software: UX and Design
Building Modern Software: UX and Design
 
Django Weekend talk "Infrastructure of modern web applications"
Django Weekend talk "Infrastructure of modern web applications"Django Weekend talk "Infrastructure of modern web applications"
Django Weekend talk "Infrastructure of modern web applications"
 
Pjok bs sem1_sma kelas xi kurikulum 2013_[blogerkupang.com]
Pjok bs sem1_sma kelas xi kurikulum 2013_[blogerkupang.com]Pjok bs sem1_sma kelas xi kurikulum 2013_[blogerkupang.com]
Pjok bs sem1_sma kelas xi kurikulum 2013_[blogerkupang.com]
 
REST made simple with Java
REST made simple with JavaREST made simple with Java
REST made simple with Java
 
Spotify services (SDC 2013)
Spotify services (SDC 2013)Spotify services (SDC 2013)
Spotify services (SDC 2013)
 
Oredev 2009 JAX-RS
Oredev 2009 JAX-RSOredev 2009 JAX-RS
Oredev 2009 JAX-RS
 
Spotify services - Leetspeak 2014
Spotify services - Leetspeak 2014Spotify services - Leetspeak 2014
Spotify services - Leetspeak 2014
 
Usability
UsabilityUsability
Usability
 
Pendidikan jasmani, olahraga, dan kesehatan (buku siswa)
Pendidikan jasmani, olahraga, dan kesehatan (buku siswa) Pendidikan jasmani, olahraga, dan kesehatan (buku siswa)
Pendidikan jasmani, olahraga, dan kesehatan (buku siswa)
 
Introduction to NserviceBus
Introduction to NserviceBusIntroduction to NserviceBus
Introduction to NserviceBus
 
Reactive Architecture
Reactive ArchitectureReactive Architecture
Reactive Architecture
 
CV Ruberto Luca Matteo: ICT SOlution Architect
CV Ruberto Luca Matteo: ICT SOlution ArchitectCV Ruberto Luca Matteo: ICT SOlution Architect
CV Ruberto Luca Matteo: ICT SOlution Architect
 
designing distributed scalable and reliable systems
designing distributed scalable and reliable systemsdesigning distributed scalable and reliable systems
designing distributed scalable and reliable systems
 
Cs 1023 lec 6 architecture (week 1)
Cs 1023 lec 6 architecture (week 1)Cs 1023 lec 6 architecture (week 1)
Cs 1023 lec 6 architecture (week 1)
 
Week 8 Architectual Styles
Week 8 Architectual StylesWeek 8 Architectual Styles
Week 8 Architectual Styles
 

Similar to Modern Software Architectures: Building Solutions for Web, Cloud, and Mobile

Rp 6 session 2 naresh bhatia
Rp 6  session 2 naresh bhatiaRp 6  session 2 naresh bhatia
Rp 6 session 2 naresh bhatiasapientindia
 
Vijay koul Resume_Java old
Vijay koul Resume_Java oldVijay koul Resume_Java old
Vijay koul Resume_Java oldvijay koul
 
Angular JS Basics
Angular JS BasicsAngular JS Basics
Angular JS BasicsMounish Sai
 
MVC Demystified: Essence of Ruby on Rails
MVC Demystified: Essence of Ruby on RailsMVC Demystified: Essence of Ruby on Rails
MVC Demystified: Essence of Ruby on Railscodeinmotion
 
Mobile First with Angular.JS - Владимир Цветков, Obecto
Mobile First with Angular.JS - Владимир Цветков, ObectoMobile First with Angular.JS - Владимир Цветков, Obecto
Mobile First with Angular.JS - Владимир Цветков, ObectobeITconference
 
Chandra Sekhar Cheekuru NET UI
Chandra Sekhar Cheekuru  NET UIChandra Sekhar Cheekuru  NET UI
Chandra Sekhar Cheekuru NET UIChandra Sekhar
 
Democratizing the Cloud with Open Source Cloud Development
Democratizing the Cloud with Open Source Cloud DevelopmentDemocratizing the Cloud with Open Source Cloud Development
Democratizing the Cloud with Open Source Cloud DevelopmentIntel Corporation
 
MyMobileWeb Certification Part I
MyMobileWeb Certification Part IMyMobileWeb Certification Part I
MyMobileWeb Certification Part Icrdlc
 
Web development concepts using microsoft technologies
Web development concepts using microsoft technologiesWeb development concepts using microsoft technologies
Web development concepts using microsoft technologiesHosam Kamel
 
MV* presentation frameworks in Javascript: en garde, pret, allez!
MV* presentation frameworks in Javascript: en garde, pret, allez!MV* presentation frameworks in Javascript: en garde, pret, allez!
MV* presentation frameworks in Javascript: en garde, pret, allez!Roberto Messora
 
Designing Powerful Web Applications Using AJAX and Other RIAs
Designing Powerful Web Applications Using AJAX and Other RIAsDesigning Powerful Web Applications Using AJAX and Other RIAs
Designing Powerful Web Applications Using AJAX and Other RIAsDave Malouf
 
MVC(Model View Controller),Web,Enterprise,Mobile
MVC(Model View Controller),Web,Enterprise,MobileMVC(Model View Controller),Web,Enterprise,Mobile
MVC(Model View Controller),Web,Enterprise,Mobilenaral
 
Micro frontends with react and redux dev day
Micro frontends with react and redux   dev dayMicro frontends with react and redux   dev day
Micro frontends with react and redux dev dayPrasanna Venkatesan
 
Single page application and canvas drawing
Single page application and canvas drawing Single page application and canvas drawing
Single page application and canvas drawing IJwest
 
Comparative analysis of java script framework
Comparative analysis of java script frameworkComparative analysis of java script framework
Comparative analysis of java script frameworkNishant Kumar
 

Similar to Modern Software Architectures: Building Solutions for Web, Cloud, and Mobile (20)

Rp 6 session 2 naresh bhatia
Rp 6  session 2 naresh bhatiaRp 6  session 2 naresh bhatia
Rp 6 session 2 naresh bhatia
 
Fundaments of Knockout js
Fundaments of Knockout jsFundaments of Knockout js
Fundaments of Knockout js
 
Vijay koul Resume_Java old
Vijay koul Resume_Java oldVijay koul Resume_Java old
Vijay koul Resume_Java old
 
Angular JS Basics
Angular JS BasicsAngular JS Basics
Angular JS Basics
 
MVC Demystified: Essence of Ruby on Rails
MVC Demystified: Essence of Ruby on RailsMVC Demystified: Essence of Ruby on Rails
MVC Demystified: Essence of Ruby on Rails
 
Mobile First with Angular.JS - Владимир Цветков, Obecto
Mobile First with Angular.JS - Владимир Цветков, ObectoMobile First with Angular.JS - Владимир Цветков, Obecto
Mobile First with Angular.JS - Владимир Цветков, Obecto
 
Chandra Sekhar Cheekuru NET UI
Chandra Sekhar Cheekuru  NET UIChandra Sekhar Cheekuru  NET UI
Chandra Sekhar Cheekuru NET UI
 
Democratizing the Cloud with Open Source Cloud Development
Democratizing the Cloud with Open Source Cloud DevelopmentDemocratizing the Cloud with Open Source Cloud Development
Democratizing the Cloud with Open Source Cloud Development
 
MyMobileWeb Certification Part I
MyMobileWeb Certification Part IMyMobileWeb Certification Part I
MyMobileWeb Certification Part I
 
Training: MVVM Pattern
Training: MVVM PatternTraining: MVVM Pattern
Training: MVVM Pattern
 
Web development concepts using microsoft technologies
Web development concepts using microsoft technologiesWeb development concepts using microsoft technologies
Web development concepts using microsoft technologies
 
MV* presentation frameworks in Javascript: en garde, pret, allez!
MV* presentation frameworks in Javascript: en garde, pret, allez!MV* presentation frameworks in Javascript: en garde, pret, allez!
MV* presentation frameworks in Javascript: en garde, pret, allez!
 
Designing Powerful Web Applications Using AJAX and Other RIAs
Designing Powerful Web Applications Using AJAX and Other RIAsDesigning Powerful Web Applications Using AJAX and Other RIAs
Designing Powerful Web Applications Using AJAX and Other RIAs
 
MVC(Model View Controller),Web,Enterprise,Mobile
MVC(Model View Controller),Web,Enterprise,MobileMVC(Model View Controller),Web,Enterprise,Mobile
MVC(Model View Controller),Web,Enterprise,Mobile
 
Micro frontends with react and redux dev day
Micro frontends with react and redux   dev dayMicro frontends with react and redux   dev day
Micro frontends with react and redux dev day
 
Google App Engine overview (GAE/J)
Google App Engine overview (GAE/J)Google App Engine overview (GAE/J)
Google App Engine overview (GAE/J)
 
cvBarisGomleksizoglu-eng
cvBarisGomleksizoglu-engcvBarisGomleksizoglu-eng
cvBarisGomleksizoglu-eng
 
SeniorNET Bhanu Resume
SeniorNET Bhanu ResumeSeniorNET Bhanu Resume
SeniorNET Bhanu Resume
 
Single page application and canvas drawing
Single page application and canvas drawing Single page application and canvas drawing
Single page application and canvas drawing
 
Comparative analysis of java script framework
Comparative analysis of java script frameworkComparative analysis of java script framework
Comparative analysis of java script framework
 

Recently uploaded

AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 

Recently uploaded (20)

AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 

Modern Software Architectures: Building Solutions for Web, Cloud, and Mobile

Editor's Notes

  1. The world around us is rapidly changing.The iPad changed the perception of user. They expect immediate resultsInformation should be available everywhere and from any deviceThey get an amazing experience from most apps built in a garage, so they expect that same experience from enterprise apps.There are more mobile device user’s than ever.The CTIA Wireless Association has indicated that there are more wireless subscriber connections in the US and its territories than people according to a CNET News article that can be found at http://news.cnet.com/8301-13506_3-20119272-17/u.s-has-more-mobile-subscribers-than-people-study-finds/. This means that our solutions must also respond well even when connection speeds aren’t optimal and connectivity is spotty.There’s also more data than ever before.And of course, we have to ensure that security is appropriately handled throughout.
  2. - Not just for social mediaNo postbacksHeavy emphasis on JavaScriptState stored in DOM, client-side DBs, or on the server (in the case of Hypermedia Architectures).
  3. - Show conceptual architecture of the full web solution- Explain routers/controllers, views (with templating engines), models, controllers, server-side models.- Design Patterns – Some new, some old
  4. - Show pattern MVC pattern
  5. - Show MVVM architecture- Discuss advantages
  6. - Explain what is being seen
  7. Protect the Global NamespaceSeveral ways to do it, one of my favorites is the nested namespace patternExplain what is being seen
  8. - Explain the pattern (protects the global namespace, provides encapsulation and scoping)- Show simple example
  9. - Explain the pattern (provides modularity)- Show simple example- Combined with script loaders (standards such as AMD (RequireJS) and CommonJS – arguably better for server-side JS development) - Mention that this is also showing a pattern known as namespace injection
  10. - Horizontal scaling - Functional programming languages (F#, Scala, Erlang, Haskell) can be a win here (easier to use multiple cores and to scale across commodity servers). Immutable by defaultMessage passing as primary communication mechanismFunctions as first class citizens.Inherent support for patterns such as MapReduce and Fork/Join
  11. -Explain the pattern by showing a few architecture diagrams
  12. - Explain Command Query Responsibility Segregation- Reads and Writes Separated (clear SoC)- Usually implemented with some sort of service/message bus- Explain the different way of thinking that’s required here- Show high level conceptual architecture diagram
  13. - Explain Command Query Responsibility Segregation- Reads and Writes Separated (clear SoC)- Usually implemented with some sort of service/message bus- Explain the different way of thinking that’s required here- Show high level conceptual architecture diagram
  14. - Explain the pattern with an architectural diagram- Talk about real world problems that it solves
  15. - User focused (even more so than web)- Little to no documentation or help endusers- We can learn a lot of this and should apply it to building all our solutions- It has to be fast even when connectivity is inconsistent- Needs offline support
  16. One way to make things fast - Modern HTTP Services:- IntelligentURIs (support easier caching, drives routing in the web apps, mobile devices tend to work with it better)- JSON as the primary payload (smaller payload, mobile devices work with it easier than SOAP, works better from JavaScript for web, no need to create proxies on the client from WSDL files or the like)- Many will call this architecture RESTful (however, the term REST causes a lot of arguments) - Hypermedia based architectures are closer to what purests call REST.Encompasses the above, but also moreState is maintained by links (means that URIs determine what the user can do, an information about the system) - Rather than using the term REST (which has become known as “anything but SOAP”). I generally say HTTP services or Hypermedia Services.
  17. - Not Only SQL- Talk about how it makes things fast (in-memory, optimized for reads, schema-less, many are eventually consistent, distributed, extremely fault-tolerant)- Show architecture of how it can be used (both as primary storage as glorified cache)
  18. - Libraries like jQuery Mobile - Responsive Design using CSS3 Media Queries- Solutions such as PhoneGap even give access to native hardware features- Write once, deploy many- Show structure of how to build a responsive web solution (may show a real example as well) – Discuss libraries that help – Foundation 3, Twitter Bootstrap, others?
  19. - Native is faster- Better offline support - Complete native look and feel- Consumers seem to prefer native (Facebook is a great example)