SlideShare una empresa de Scribd logo
1 de 82
Lecture 01
Enterprise Application
Architecture
Agenda
 The Post-PC era
 Enterprise Application
 Building Blocks
 Service Oriented Architecture
 Layering
Reading
 Fowler Introduction,1 Layering
 Service Oriented Architecture
 Software as a Service
 Steve Yegge’s Rant
The Post-PC era
1960 1970 1980 1990 2000 2010
Mainframes
Mini computers
Personal Computers
Servers
Clusters
Cloud – utility computing
Laptops
Music player
2G Cell phones
CONVERGE
DIVERGE
Smartphones
Tablets
Smart TV
Internet of things
2000 2010
THE DIGITAL
DECADE
“[The Personal Computer] can
become the 'Digital Hub'
of our emerging digital lifestyle,
adding tremendous value
to our other devices.”
- Steve Jobs, 2001 Keynote
introducing the iPod
THE DIGITAL
DECADE
2000 2010
THE DIGITAL DECADE
MUSIC
PICTURE
S
VOICE
SMARTPHONES
TV SHOWS
MOVIES
BOOKS
WHAT HAPPENED
AT THE END OF THE
DIGITAL DECADE?
1981-2011 The era of the PC
THE PC IS JUST A
DEVICE
2000 2010
iMac iPhone
Mac OS 9.0.4
500 MHz PowerPC G3 CPU, 128MB Memory
Screen - 786K pixels
Storage - 30GB Hard Drive
iOS 4.0
1 Ghz ARM A4 CPU, 512MB Memory
Screen - 614K pixels
Storage - 32GB Flash Drive
Source: Ars Technical Images: Apple
Digital Lifestyle
The “mobile web” is just the
web – there is only one web
digital online
world
Digital Online World
Work
More
information
Focused
Digital Online World
Browsing
Consuming
content
Checking
Mobile
Now
Consuming
Video
Information
The Post-PC Era
 The Personal Computer era is over
– Rise of the network
– APIs
– Enterprise systems are accessible
by consumers
– New devices, mobile phone,
ITV, game machines, MP3 players,...
Source: (cc) 1998-2008
Digibarn Computer Museum,
Source: Picture from Convergence Transforms Digital Home: Techno-Economic
Impact
The Post-PC Era
 New Requirements
– More users, more complicated software
– Uptime, security and reliability
– Scalability
– Competition drives need for productivity
– Leveraging investments – integration with existing
systems
Challenges in Computing
 Software and integration of components and
devices are the challenges ahead
 Cloud computing and ubiquity
 Move to Service Oriented Architecture and APIs
1980 1990 2000
Hardware
Connecting hardware
Network
Software
Connecting
software
New Approch to
Software
Architecture
Which of the following statements is not true?
A) The challenge ahead is to connect software
B) The PC is no longer a device for development
C) Computing has moved to the cloud
D) During the digital decade, the PC was the digital hub for all you devices
QUIZ
✔
Enterprise Application
Enterprise Applications
 Software running in corporate data centers
 Characteristics
– Involve data, some times huge amounts
– Concurrent data access, multiple users
– Lot of user interface screens
– Integration with other enterprise application
– Use of middleware software, such as databases,
application servers, web servers
– Operated by specialists – system operators
Examples
 B2C (business to consumer)
– E-commerce web sites such as Amazon, eBay
– Commercial services like banking
 Commerce Solutions
– Payroll, patient records, shipping tracking, cost
analysis, credit scoring, insurance, supply chain,
accounting, customer service, and foreign exchange
trading
 Information
– Stock quotes, sports results, email, blogs
Software as a Service (SaaS)
 “On-demand” software
– Cloud computing
 IT infrastructure demands
– Communication: interacting with the software
– Scalability: dealing with fluctuation
– Dependability: available 24/7
Software as a Service Examples
 E-mail services
 Project management
 Blog services
What is not necessarily characteristic of enterprise software?
A) Has many concurrent users working on the same data
B) Integrates with other IT systems
C) Deploys some form of distribution strategy
D) Is operated by specialists not by the users
QUIZ
✔
Building Blocks
Building Enterprise Applications
 Building computer systems is hard
– As the complexity of the
system gets greater, the
task of building the
software gets
exponentially harder
Building Enterprise Applications
 Building computer systems is hard
Design
Pattern
Middleware
Frameworks
OO
Programming
Software
Architecture
Software Architecture
 Shared understanding of system’s design by the
expert developers on a project
– Highest-level breakdown of a system into its parts
– Decisions that are hard to change
 Architecture influences design
of components, technology,
performance and middleware
 There are always options
Object Oriented Programming
 OO is key to development of systems
– Design for reusability, flexibility and performance
 One of the biggest hurdles for developers
– Each component should be simple with simple task
– Involves understanding of interaction of parts
“OO design is more important than specific technologies, such as J2EE. We
should try to avoid letting our technology choices, such as J2EE, constrain
our ability to use true OO design”
– Rod Johnson
“If the design is good, there is no code”
– Jónas Þór, Senior Betware developer
Design Patterns
 Design using known ideas
– Design patterns are standard solutions to common
problems in software design
– Systematic approach for problems that reoccur in
software development
– Patterns have name and definitions - not language
dependant
 History
– Landmark book from 1995: Design Patterns:
Elements of Reusable Object-Oriented Software
Gang of Four (GoF)
Middleware
 Enterprise system are built on middleware
– Can cover a broad spectrum of software and generally sits
between an application and an operating system
– For example, databases, application servers, web servers,
messaging systems, transaction monitors
– “The plumbing”
 Horizontal market
– Solves common problems – not specific business
requirements
– Low-level system
Frameworks
 Frameworks define the support structure for how to
organize and build systems
– Can improve productivity
– We can use existing frameworks or build our own
 Frameworks implement common problems
– Developers extend and add their business requirements
 Framework design
– Use inheritance, inversion of control, interfaces and helper
classes
– Implement design patterns
Which of the following statement is not true?
A) Design patterns are solutions to common problems
B) Object oriented programing is good for general problems
C) Frameworks are used to increase productivity
D) Middleware can solve business related problems
QUIZ
✔
Evolution of Enterprise Software
Evolution
60 70 80 90 00
IBM
Mainframes
Limited
layering or
abstraction
IBM, DEC
Mini-
computers
Unix, VAX
“Dumb”
terminals
Screens/DB
PC, Intel,
DOS, Mac,
Unix,
Windows
Client/Server
DB
Windows
Internet
HTTP
Web
Browsers
Web
Applications
DB
Windows,
Linux
MacOS
Browsers,
Services
Domain
Applications
DB
Evolution
60 70 80 90 00
IBM
nframes
mited
ering or
traction
IBM, DEC
Mini-
computers
Unix, VAX
“Dumb”
terminals
Screens/DB
PC, Intel,
DOS, Mac,
Unix,
Windows
Client/Server
DB
Windows
Internet
HTTP
Web
Browsers
Web
Applications
DB
Windows,
Linux
MacOS
Browsers,
Services
Domain
Applications
DB
iOS
Android
HTML5
Browsers
Apps
API
Cloud
NoSQL
10
Client-Server
 Two-layer systems
– Thick client on PCs handle user interface and connect
to servers for data
Client-Server
 The client handles all computation – domain
logic (business logic)
– Limited reusability
– Versioning is a challenge
Move to Three Tiers
 Three Layers
– Presentation Layer for the User Interface
– Domain Layer for the domain logic
– Data Source Layer for the data access
Enter the Web Layer
 The Web added new challenges
– The browser accesses strings of tags (HTML)
– Move the logic from client to a web layer
– Web layer adds connectivity by HTTP protocols
Application Servers
 Domain Components are deployed on
Application Servers
– Distributed Multi-tiered Applications
– Example:
• Web Servers, Spring, EJB containers
Client Types
 Native Applications – Apps
– Usually use some OS GUI and APIs
– Windows, Linux, MacOS, iOS, Andriod
– Communication can be anything
 Embedded
– Run inside Web Browsers
– Flash, Java Applets
– Communication with XML using HTTP
Client Types
 Rich Internet Application (RIA)
– JavaScript calls REST/SOAP services for data
– HTML with XML/Json using Ajax/jQuery
 HTML Presentation in Browsers
– All functionality is server side
– Simple HTML
Tiers vs. Layers
 Tier implies physical layer
– Example:
• Client-server is two-tier system: client on one machine,
server on another
 Layers do not need to run on separate machines
– Layers can be on the same machine
– Example:
• Web system with Web Layer, Domain Layer and Data Source
Layer on the same machine, then the database on a
separate machine
N-tier Web App Architecture
 Classic architecture
Which of the following statements is not true?
A) Versioning is only a challenge with client-service model
B) Layers need not be on a separate machines
C) Web servers can be used as application servers
D) Scalability is achieved by duplicating the system
QUIZ
✔
Service Oriented Architecture
Imagine you are building
an e-commerce web site
Traditional Architecture
Bookstore UI
Accounting service
Payment service
Shipping service SQL
Browser Apache
 Benefits
– Simple to develop and test, good architecture
– One release and deployment
– Easy to scale
 Monolithic Architecture
– Silo
– Any subsystem can call other subsystems
Traditional Architecture
 Drawbacks with the Monolith
– UI requirements, multiple devices, streaming real-time
– Need to deploy everything to change one component
– Increased risk of failure
– Fear of change
– Updates are less often (A/B tests are difficult)
Traditional Architecture
Service Oriented Architecture
 Software Architecture where all components
are designed to be services
 Applications composed of interoperable services
– Easy to build new services
– Easy to change
SOA Architecture
Bookstore
Service
Account
service
Payment
service
Shipping
service
Bookstore UI
API
Bezos’ Mandate
1. All teams will henceforth expose their data and
functionality through service interfaces
2. Teams must communicate with each other
through these interfaces
3. There will be no other form of interprocess
communication allowed
Bezos’ Mandate
4. It doesn't matter what technology they use
5. All service interfaces, without exception, must
be designed from the ground up to be
externalizable. No exceptions.
6. Anyone who doesn't do this will be fired.
Which statement is not true about SOA?
A) SOA does not affect performance
B) No service can access other service data except using APIs
C) SOA improves productivity though reuse
D) Monoliths system must deploy all components
QUIZ
✔
Layering
Layering
 Software systems can get complicated
– Abstractions are needed
 Layering provides abstraction by separating
computer systems in layers
– Higher layers use services from
lower layers
– Each layer has dedicated tasks
and hides complexity from upper
layers
Benefits of Layering
 You can understand a single layer as a
coherent whole without knowing much about
other layers
 You can substitute layers with alternative
implementation of the same basic service
 You minimize dependencies between layers
 Layers make good places for standardization
 Once you have a layer built, you can use it for
many higher-level services
Downsides
 Layers encapsulate some, but not all, things well
– Cascading changes
– For example adding a field in the UI requires changes
on each layer
 Extra layers can harm performance
– At every layer things typically need to be transformed
from one presentation to another
The Three Layers
 Presentation
– User’s interface to the system
– User can be another system
– Accepts input, displays views
 Domain
– The Application of the system
– The “Business logic”
– Tends to creep into presentation and data source
 Data Source
– Connection to the database
– Also Persistence
Summary
 The Post-PC era poses new challenges
 Enterprise Application defined
 Building Blocks for building enterprise
applications
 Service Oriented Architecture
 Layering is the oldest trick in the book

Más contenido relacionado

La actualidad más candente

Software architecture & design patterns for MS CRM Developers
Software architecture & design patterns for MS CRM  Developers Software architecture & design patterns for MS CRM  Developers
Software architecture & design patterns for MS CRM Developers sebedatalabs
 
IBM InfoSphere Data Architect 9.1 - Francis Arnaudiès
IBM InfoSphere Data Architect 9.1 - Francis ArnaudièsIBM InfoSphere Data Architect 9.1 - Francis Arnaudiès
IBM InfoSphere Data Architect 9.1 - Francis ArnaudièsIBMInfoSphereUGFR
 
How to Leverage FME in a Master Data Management Architecture
How to Leverage FME in a Master Data Management ArchitectureHow to Leverage FME in a Master Data Management Architecture
How to Leverage FME in a Master Data Management ArchitectureSafe Software
 
Open Group Conference 2011 - The Canonical Data Zone
Open Group Conference 2011 - The Canonical Data ZoneOpen Group Conference 2011 - The Canonical Data Zone
Open Group Conference 2011 - The Canonical Data ZoneGary Farrow
 
Présentation IBM InfoSphere Information Server 11.3
Présentation IBM InfoSphere Information Server 11.3Présentation IBM InfoSphere Information Server 11.3
Présentation IBM InfoSphere Information Server 11.3IBMInfoSphereUGFR
 
“Salesforce Multi-tenant architecture”,
“Salesforce Multi-tenant architecture”,“Salesforce Multi-tenant architecture”,
“Salesforce Multi-tenant architecture”,Manik Singh
 
IBM InfoSphere Stewardship Center for iis dqec
IBM InfoSphere Stewardship Center for iis dqecIBM InfoSphere Stewardship Center for iis dqec
IBM InfoSphere Stewardship Center for iis dqecIBMInfoSphereUGFR
 
Differences Between Architectures
Differences Between ArchitecturesDifferences Between Architectures
Differences Between Architecturesprasadsmn
 
Getting data into microsoft dynamics crm faster
Getting data into microsoft dynamics crm fasterGetting data into microsoft dynamics crm faster
Getting data into microsoft dynamics crm fasterDaniel Cai
 
Informix NoSQL & Hybrid SQL detailed deep dive
Informix NoSQL & Hybrid SQL detailed deep diveInformix NoSQL & Hybrid SQL detailed deep dive
Informix NoSQL & Hybrid SQL detailed deep diveKeshav Murthy
 
Finit Solutions - What is New in Hyperion Financial Management 11.1.2.2
Finit Solutions - What is New in Hyperion Financial Management 11.1.2.2Finit Solutions - What is New in Hyperion Financial Management 11.1.2.2
Finit Solutions - What is New in Hyperion Financial Management 11.1.2.2finitsolutions
 
Introduction to SOA EAI ETL BPM
Introduction to SOA EAI ETL BPMIntroduction to SOA EAI ETL BPM
Introduction to SOA EAI ETL BPMThanh Nguyen
 

La actualidad más candente (20)

Software architecture & design patterns for MS CRM Developers
Software architecture & design patterns for MS CRM  Developers Software architecture & design patterns for MS CRM  Developers
Software architecture & design patterns for MS CRM Developers
 
IBM InfoSphere Data Architect 9.1 - Francis Arnaudiès
IBM InfoSphere Data Architect 9.1 - Francis ArnaudièsIBM InfoSphere Data Architect 9.1 - Francis Arnaudiès
IBM InfoSphere Data Architect 9.1 - Francis Arnaudiès
 
How to Leverage FME in a Master Data Management Architecture
How to Leverage FME in a Master Data Management ArchitectureHow to Leverage FME in a Master Data Management Architecture
How to Leverage FME in a Master Data Management Architecture
 
Open Group Conference 2011 - The Canonical Data Zone
Open Group Conference 2011 - The Canonical Data ZoneOpen Group Conference 2011 - The Canonical Data Zone
Open Group Conference 2011 - The Canonical Data Zone
 
Présentation IBM InfoSphere Information Server 11.3
Présentation IBM InfoSphere Information Server 11.3Présentation IBM InfoSphere Information Server 11.3
Présentation IBM InfoSphere Information Server 11.3
 
“Salesforce Multi-tenant architecture”,
“Salesforce Multi-tenant architecture”,“Salesforce Multi-tenant architecture”,
“Salesforce Multi-tenant architecture”,
 
eDocumentus for IBM Maximo
eDocumentus for IBM MaximoeDocumentus for IBM Maximo
eDocumentus for IBM Maximo
 
Web and Mobile Applications
Web and Mobile ApplicationsWeb and Mobile Applications
Web and Mobile Applications
 
DMS component for MAXIMO
DMS component for MAXIMODMS component for MAXIMO
DMS component for MAXIMO
 
IBM InfoSphere Stewardship Center for iis dqec
IBM InfoSphere Stewardship Center for iis dqecIBM InfoSphere Stewardship Center for iis dqec
IBM InfoSphere Stewardship Center for iis dqec
 
Differences Between Architectures
Differences Between ArchitecturesDifferences Between Architectures
Differences Between Architectures
 
Getting data into microsoft dynamics crm faster
Getting data into microsoft dynamics crm fasterGetting data into microsoft dynamics crm faster
Getting data into microsoft dynamics crm faster
 
VendorReview_IBMDB2
VendorReview_IBMDB2VendorReview_IBMDB2
VendorReview_IBMDB2
 
Service as-a-software
Service as-a-softwareService as-a-software
Service as-a-software
 
Informix NoSQL & Hybrid SQL detailed deep dive
Informix NoSQL & Hybrid SQL detailed deep diveInformix NoSQL & Hybrid SQL detailed deep dive
Informix NoSQL & Hybrid SQL detailed deep dive
 
Info sphere overview
Info sphere overviewInfo sphere overview
Info sphere overview
 
Finit Solutions - What is New in Hyperion Financial Management 11.1.2.2
Finit Solutions - What is New in Hyperion Financial Management 11.1.2.2Finit Solutions - What is New in Hyperion Financial Management 11.1.2.2
Finit Solutions - What is New in Hyperion Financial Management 11.1.2.2
 
Informatica slides
Informatica slidesInformatica slides
Informatica slides
 
Canonical data model
Canonical data modelCanonical data model
Canonical data model
 
Introduction to SOA EAI ETL BPM
Introduction to SOA EAI ETL BPMIntroduction to SOA EAI ETL BPM
Introduction to SOA EAI ETL BPM
 

Destacado

Patterns of Enterprise Application Architecture (by example)
Patterns of Enterprise Application Architecture (by example)Patterns of Enterprise Application Architecture (by example)
Patterns of Enterprise Application Architecture (by example)Paulo Gandra de Sousa
 
Enterprise application integration
Enterprise application integrationEnterprise application integration
Enterprise application integrationGoa App
 
The Evolution of the Architecture of Web Applications Requires a Load Testing...
The Evolution of the Architecture of Web Applications Requires a Load Testing...The Evolution of the Architecture of Web Applications Requires a Load Testing...
The Evolution of the Architecture of Web Applications Requires a Load Testing...Compuware APM
 
Keynote spreker Igor Beuker bij het RTL Embracing Change 2015 event
Keynote spreker Igor Beuker bij het RTL Embracing Change 2015 event Keynote spreker Igor Beuker bij het RTL Embracing Change 2015 event
Keynote spreker Igor Beuker bij het RTL Embracing Change 2015 event Igor Beuker
 
Patterns of enterprise application architecture
Patterns of enterprise application architecturePatterns of enterprise application architecture
Patterns of enterprise application architectureChinh Ngo Nguyen
 
Client server computing in mobile environments
Client server computing in mobile environmentsClient server computing in mobile environments
Client server computing in mobile environmentsPraveen Joshi
 
Application architecture for the rest of us - php xperts devcon 2012
Application architecture for the rest of us -  php xperts devcon 2012Application architecture for the rest of us -  php xperts devcon 2012
Application architecture for the rest of us - php xperts devcon 2012M N Islam Shihan
 
Server Management
Server ManagementServer Management
Server ManagementDell World
 
Rg0035 A Guideto Service Improvement Nhs Scotland
Rg0035 A Guideto Service Improvement Nhs ScotlandRg0035 A Guideto Service Improvement Nhs Scotland
Rg0035 A Guideto Service Improvement Nhs Scotlandprimary
 
Developing and implementing asset lifecycle management strategies
Developing and implementing asset lifecycle management strategiesDeveloping and implementing asset lifecycle management strategies
Developing and implementing asset lifecycle management strategiesBenjamin Mqenebe
 
Application Architecture Trends
Application Architecture TrendsApplication Architecture Trends
Application Architecture TrendsSrini Penchikala
 
Service Design Drinks Warsaw #1 / Uncovering the job your service is hired for
Service Design Drinks Warsaw #1 / Uncovering the job your service is hired forService Design Drinks Warsaw #1 / Uncovering the job your service is hired for
Service Design Drinks Warsaw #1 / Uncovering the job your service is hired forMartin Jordan
 
EA Intensive Course "Building Enterprise Architecture" by mr.danairat
EA Intensive Course "Building Enterprise Architecture" by mr.danairatEA Intensive Course "Building Enterprise Architecture" by mr.danairat
EA Intensive Course "Building Enterprise Architecture" by mr.danairatSoftware Park Thailand
 
Layered architecture style
Layered architecture styleLayered architecture style
Layered architecture styleBegench Suhanov
 

Destacado (20)

Patterns of Enterprise Application Architecture (by example)
Patterns of Enterprise Application Architecture (by example)Patterns of Enterprise Application Architecture (by example)
Patterns of Enterprise Application Architecture (by example)
 
Application Architecture
Application ArchitectureApplication Architecture
Application Architecture
 
Enterprise application integration
Enterprise application integrationEnterprise application integration
Enterprise application integration
 
Web application architecture
Web application architectureWeb application architecture
Web application architecture
 
The Evolution of the Architecture of Web Applications Requires a Load Testing...
The Evolution of the Architecture of Web Applications Requires a Load Testing...The Evolution of the Architecture of Web Applications Requires a Load Testing...
The Evolution of the Architecture of Web Applications Requires a Load Testing...
 
L03 Design Patterns
L03 Design PatternsL03 Design Patterns
L03 Design Patterns
 
Keynote spreker Igor Beuker bij het RTL Embracing Change 2015 event
Keynote spreker Igor Beuker bij het RTL Embracing Change 2015 event Keynote spreker Igor Beuker bij het RTL Embracing Change 2015 event
Keynote spreker Igor Beuker bij het RTL Embracing Change 2015 event
 
Patterns of enterprise application architecture
Patterns of enterprise application architecturePatterns of enterprise application architecture
Patterns of enterprise application architecture
 
Client server computing in mobile environments
Client server computing in mobile environmentsClient server computing in mobile environments
Client server computing in mobile environments
 
Application architecture for the rest of us - php xperts devcon 2012
Application architecture for the rest of us -  php xperts devcon 2012Application architecture for the rest of us -  php xperts devcon 2012
Application architecture for the rest of us - php xperts devcon 2012
 
J2EE Introduction
J2EE IntroductionJ2EE Introduction
J2EE Introduction
 
Server Management
Server ManagementServer Management
Server Management
 
Rg0035 A Guideto Service Improvement Nhs Scotland
Rg0035 A Guideto Service Improvement Nhs ScotlandRg0035 A Guideto Service Improvement Nhs Scotland
Rg0035 A Guideto Service Improvement Nhs Scotland
 
Developing and implementing asset lifecycle management strategies
Developing and implementing asset lifecycle management strategiesDeveloping and implementing asset lifecycle management strategies
Developing and implementing asset lifecycle management strategies
 
Application Architecture Trends
Application Architecture TrendsApplication Architecture Trends
Application Architecture Trends
 
Server training
Server trainingServer training
Server training
 
Service Design Drinks Warsaw #1 / Uncovering the job your service is hired for
Service Design Drinks Warsaw #1 / Uncovering the job your service is hired forService Design Drinks Warsaw #1 / Uncovering the job your service is hired for
Service Design Drinks Warsaw #1 / Uncovering the job your service is hired for
 
ITSM Presentation
ITSM PresentationITSM Presentation
ITSM Presentation
 
EA Intensive Course "Building Enterprise Architecture" by mr.danairat
EA Intensive Course "Building Enterprise Architecture" by mr.danairatEA Intensive Course "Building Enterprise Architecture" by mr.danairat
EA Intensive Course "Building Enterprise Architecture" by mr.danairat
 
Layered architecture style
Layered architecture styleLayered architecture style
Layered architecture style
 

Similar a L01 Enterprise Application Architecture

Scalable And Usable Web Applications
Scalable And Usable Web ApplicationsScalable And Usable Web Applications
Scalable And Usable Web ApplicationsClint Edmonson
 
01 introduction to darwino
01   introduction to darwino01   introduction to darwino
01 introduction to darwinodarwinodb
 
IS Project_Ch5_IT_Infrastructure.pptx
IS Project_Ch5_IT_Infrastructure.pptxIS Project_Ch5_IT_Infrastructure.pptx
IS Project_Ch5_IT_Infrastructure.pptxAbbadabbajabba1
 
Latest trends in information technology
Latest trends in information technologyLatest trends in information technology
Latest trends in information technologyEldos Kuriakose
 
[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLESIvano Malavolta
 
Training - Managing .NET/J2EE Projects
Training - Managing .NET/J2EE ProjectsTraining - Managing .NET/J2EE Projects
Training - Managing .NET/J2EE ProjectsShashank Banerjea
 
ArcReady - Scalable And Usable Web Applications
ArcReady - Scalable And Usable Web ApplicationsArcReady - Scalable And Usable Web Applications
ArcReady - Scalable And Usable Web ApplicationsMicrosoft ArcReady
 
It-alliance
It-allianceIt-alliance
It-alliancehadarina
 
Wei's Self Intro
Wei's Self IntroWei's Self Intro
Wei's Self Introsunmast
 
Foundry Management System Desktop Application
Foundry Management System Desktop Application Foundry Management System Desktop Application
Foundry Management System Desktop Application Dharmendra Sid
 
Future-Proof Your Desktops - How City of Kent is Implementing VDI for 800 Wor...
Future-Proof Your Desktops - How City of Kent is Implementing VDI for 800 Wor...Future-Proof Your Desktops - How City of Kent is Implementing VDI for 800 Wor...
Future-Proof Your Desktops - How City of Kent is Implementing VDI for 800 Wor...Unidesk Corporation
 
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...ghodgkinson
 
Cloud 101 for Embedded Designers
Cloud 101 for Embedded DesignersCloud 101 for Embedded Designers
Cloud 101 for Embedded DesignersMark Benson
 
IT Architecture and Architects
IT Architecture and ArchitectsIT Architecture and Architects
IT Architecture and ArchitectsAndreDovgal1
 

Similar a L01 Enterprise Application Architecture (20)

Hönn2014 L01 Enterprise Applications
Hönn2014 L01 Enterprise ApplicationsHönn2014 L01 Enterprise Applications
Hönn2014 L01 Enterprise Applications
 
L01 Introduction to Enterprise Software
L01 Introduction to Enterprise SoftwareL01 Introduction to Enterprise Software
L01 Introduction to Enterprise Software
 
L02 Architecture
L02 ArchitectureL02 Architecture
L02 Architecture
 
IT Infrastructure and Emerging Technologies
IT Infrastructure and Emerging TechnologiesIT Infrastructure and Emerging Technologies
IT Infrastructure and Emerging Technologies
 
L23 Summary and Conclusions
L23 Summary and ConclusionsL23 Summary and Conclusions
L23 Summary and Conclusions
 
Scalable And Usable Web Applications
Scalable And Usable Web ApplicationsScalable And Usable Web Applications
Scalable And Usable Web Applications
 
01 introduction to darwino
01   introduction to darwino01   introduction to darwino
01 introduction to darwino
 
IS Project_Ch5_IT_Infrastructure.pptx
IS Project_Ch5_IT_Infrastructure.pptxIS Project_Ch5_IT_Infrastructure.pptx
IS Project_Ch5_IT_Infrastructure.pptx
 
Latest trends in information technology
Latest trends in information technologyLatest trends in information technology
Latest trends in information technology
 
[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES
 
Training - Managing .NET/J2EE Projects
Training - Managing .NET/J2EE ProjectsTraining - Managing .NET/J2EE Projects
Training - Managing .NET/J2EE Projects
 
ArcReady - Scalable And Usable Web Applications
ArcReady - Scalable And Usable Web ApplicationsArcReady - Scalable And Usable Web Applications
ArcReady - Scalable And Usable Web Applications
 
It-alliance
It-allianceIt-alliance
It-alliance
 
Wei's Self Intro
Wei's Self IntroWei's Self Intro
Wei's Self Intro
 
Chapter4
Chapter4Chapter4
Chapter4
 
Foundry Management System Desktop Application
Foundry Management System Desktop Application Foundry Management System Desktop Application
Foundry Management System Desktop Application
 
Future-Proof Your Desktops - How City of Kent is Implementing VDI for 800 Wor...
Future-Proof Your Desktops - How City of Kent is Implementing VDI for 800 Wor...Future-Proof Your Desktops - How City of Kent is Implementing VDI for 800 Wor...
Future-Proof Your Desktops - How City of Kent is Implementing VDI for 800 Wor...
 
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
 
Cloud 101 for Embedded Designers
Cloud 101 for Embedded DesignersCloud 101 for Embedded Designers
Cloud 101 for Embedded Designers
 
IT Architecture and Architects
IT Architecture and ArchitectsIT Architecture and Architects
IT Architecture and Architects
 

Más de Ólafur Andri Ragnarsson

New Technology Summer 2020 Course Introduction
New Technology Summer 2020 Course IntroductionNew Technology Summer 2020 Course Introduction
New Technology Summer 2020 Course IntroductionÓlafur Andri Ragnarsson
 
New Technology 2019 L13 Rise of the Machine
New Technology 2019 L13 Rise of the Machine New Technology 2019 L13 Rise of the Machine
New Technology 2019 L13 Rise of the Machine Ólafur Andri Ragnarsson
 

Más de Ólafur Andri Ragnarsson (20)

Nýsköpun - Leiðin til framfara
Nýsköpun - Leiðin til framfaraNýsköpun - Leiðin til framfara
Nýsköpun - Leiðin til framfara
 
Nýjast tækni og framtíðin
Nýjast tækni og framtíðinNýjast tækni og framtíðin
Nýjast tækni og framtíðin
 
New Technology Summer 2020 Course Introduction
New Technology Summer 2020 Course IntroductionNew Technology Summer 2020 Course Introduction
New Technology Summer 2020 Course Introduction
 
L01 Introduction
L01 IntroductionL01 Introduction
L01 Introduction
 
L23 Robotics and Drones
L23 Robotics and Drones L23 Robotics and Drones
L23 Robotics and Drones
 
L22 Augmented and Virtual Reality
L22 Augmented and Virtual RealityL22 Augmented and Virtual Reality
L22 Augmented and Virtual Reality
 
L20 Personalised World
L20 Personalised WorldL20 Personalised World
L20 Personalised World
 
L19 Network Platforms
L19 Network PlatformsL19 Network Platforms
L19 Network Platforms
 
L18 Big Data and Analytics
L18 Big Data and AnalyticsL18 Big Data and Analytics
L18 Big Data and Analytics
 
L17 Algorithms and AI
L17 Algorithms and AIL17 Algorithms and AI
L17 Algorithms and AI
 
L16 Internet of Things
L16 Internet of ThingsL16 Internet of Things
L16 Internet of Things
 
L14 From the Internet to Blockchain
L14 From the Internet to BlockchainL14 From the Internet to Blockchain
L14 From the Internet to Blockchain
 
L14 The Mobile Revolution
L14 The Mobile RevolutionL14 The Mobile Revolution
L14 The Mobile Revolution
 
New Technology 2019 L13 Rise of the Machine
New Technology 2019 L13 Rise of the Machine New Technology 2019 L13 Rise of the Machine
New Technology 2019 L13 Rise of the Machine
 
L12 digital transformation
L12 digital transformationL12 digital transformation
L12 digital transformation
 
L10 The Innovator's Dilemma
L10 The Innovator's DilemmaL10 The Innovator's Dilemma
L10 The Innovator's Dilemma
 
L09 Disruptive Technology
L09 Disruptive TechnologyL09 Disruptive Technology
L09 Disruptive Technology
 
L09 Technological Revolutions
L09 Technological RevolutionsL09 Technological Revolutions
L09 Technological Revolutions
 
L07 Becoming Invisible
L07 Becoming InvisibleL07 Becoming Invisible
L07 Becoming Invisible
 
L06 Diffusion of Innovation
L06 Diffusion of InnovationL06 Diffusion of Innovation
L06 Diffusion of Innovation
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
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
 
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
 
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
 
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
 
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
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
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
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 

Último (20)

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
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
 
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
 
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
 
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
 
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
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
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...
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

L01 Enterprise Application Architecture

  • 2. Agenda  The Post-PC era  Enterprise Application  Building Blocks  Service Oriented Architecture  Layering
  • 3. Reading  Fowler Introduction,1 Layering  Service Oriented Architecture  Software as a Service  Steve Yegge’s Rant
  • 5. 1960 1970 1980 1990 2000 2010 Mainframes Mini computers Personal Computers Servers Clusters Cloud – utility computing Laptops Music player 2G Cell phones CONVERGE DIVERGE Smartphones Tablets Smart TV Internet of things
  • 7.
  • 8. “[The Personal Computer] can become the 'Digital Hub' of our emerging digital lifestyle, adding tremendous value to our other devices.” - Steve Jobs, 2001 Keynote introducing the iPod THE DIGITAL DECADE
  • 9. 2000 2010 THE DIGITAL DECADE MUSIC PICTURE S VOICE SMARTPHONES TV SHOWS MOVIES BOOKS
  • 10. WHAT HAPPENED AT THE END OF THE DIGITAL DECADE?
  • 11.
  • 12. 1981-2011 The era of the PC
  • 13.
  • 14. THE PC IS JUST A DEVICE
  • 15. 2000 2010 iMac iPhone Mac OS 9.0.4 500 MHz PowerPC G3 CPU, 128MB Memory Screen - 786K pixels Storage - 30GB Hard Drive iOS 4.0 1 Ghz ARM A4 CPU, 512MB Memory Screen - 614K pixels Storage - 32GB Flash Drive Source: Ars Technical Images: Apple
  • 16. Digital Lifestyle The “mobile web” is just the web – there is only one web digital online world
  • 19. The Post-PC Era  The Personal Computer era is over – Rise of the network – APIs – Enterprise systems are accessible by consumers – New devices, mobile phone, ITV, game machines, MP3 players,... Source: (cc) 1998-2008 Digibarn Computer Museum, Source: Picture from Convergence Transforms Digital Home: Techno-Economic Impact
  • 20. The Post-PC Era  New Requirements – More users, more complicated software – Uptime, security and reliability – Scalability – Competition drives need for productivity – Leveraging investments – integration with existing systems
  • 21. Challenges in Computing  Software and integration of components and devices are the challenges ahead  Cloud computing and ubiquity  Move to Service Oriented Architecture and APIs 1980 1990 2000 Hardware Connecting hardware Network Software Connecting software
  • 23. Which of the following statements is not true? A) The challenge ahead is to connect software B) The PC is no longer a device for development C) Computing has moved to the cloud D) During the digital decade, the PC was the digital hub for all you devices QUIZ ✔
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40. Enterprise Applications  Software running in corporate data centers  Characteristics – Involve data, some times huge amounts – Concurrent data access, multiple users – Lot of user interface screens – Integration with other enterprise application – Use of middleware software, such as databases, application servers, web servers – Operated by specialists – system operators
  • 41. Examples  B2C (business to consumer) – E-commerce web sites such as Amazon, eBay – Commercial services like banking  Commerce Solutions – Payroll, patient records, shipping tracking, cost analysis, credit scoring, insurance, supply chain, accounting, customer service, and foreign exchange trading  Information – Stock quotes, sports results, email, blogs
  • 42. Software as a Service (SaaS)  “On-demand” software – Cloud computing  IT infrastructure demands – Communication: interacting with the software – Scalability: dealing with fluctuation – Dependability: available 24/7
  • 43. Software as a Service Examples  E-mail services  Project management  Blog services
  • 44. What is not necessarily characteristic of enterprise software? A) Has many concurrent users working on the same data B) Integrates with other IT systems C) Deploys some form of distribution strategy D) Is operated by specialists not by the users QUIZ ✔
  • 46. Building Enterprise Applications  Building computer systems is hard – As the complexity of the system gets greater, the task of building the software gets exponentially harder
  • 47. Building Enterprise Applications  Building computer systems is hard Design Pattern Middleware Frameworks OO Programming Software Architecture
  • 48. Software Architecture  Shared understanding of system’s design by the expert developers on a project – Highest-level breakdown of a system into its parts – Decisions that are hard to change  Architecture influences design of components, technology, performance and middleware  There are always options
  • 49. Object Oriented Programming  OO is key to development of systems – Design for reusability, flexibility and performance  One of the biggest hurdles for developers – Each component should be simple with simple task – Involves understanding of interaction of parts “OO design is more important than specific technologies, such as J2EE. We should try to avoid letting our technology choices, such as J2EE, constrain our ability to use true OO design” – Rod Johnson “If the design is good, there is no code” – Jónas Þór, Senior Betware developer
  • 50. Design Patterns  Design using known ideas – Design patterns are standard solutions to common problems in software design – Systematic approach for problems that reoccur in software development – Patterns have name and definitions - not language dependant  History – Landmark book from 1995: Design Patterns: Elements of Reusable Object-Oriented Software Gang of Four (GoF)
  • 51. Middleware  Enterprise system are built on middleware – Can cover a broad spectrum of software and generally sits between an application and an operating system – For example, databases, application servers, web servers, messaging systems, transaction monitors – “The plumbing”  Horizontal market – Solves common problems – not specific business requirements – Low-level system
  • 52. Frameworks  Frameworks define the support structure for how to organize and build systems – Can improve productivity – We can use existing frameworks or build our own  Frameworks implement common problems – Developers extend and add their business requirements  Framework design – Use inheritance, inversion of control, interfaces and helper classes – Implement design patterns
  • 53. Which of the following statement is not true? A) Design patterns are solutions to common problems B) Object oriented programing is good for general problems C) Frameworks are used to increase productivity D) Middleware can solve business related problems QUIZ ✔
  • 55. Evolution 60 70 80 90 00 IBM Mainframes Limited layering or abstraction IBM, DEC Mini- computers Unix, VAX “Dumb” terminals Screens/DB PC, Intel, DOS, Mac, Unix, Windows Client/Server DB Windows Internet HTTP Web Browsers Web Applications DB Windows, Linux MacOS Browsers, Services Domain Applications DB
  • 56. Evolution 60 70 80 90 00 IBM nframes mited ering or traction IBM, DEC Mini- computers Unix, VAX “Dumb” terminals Screens/DB PC, Intel, DOS, Mac, Unix, Windows Client/Server DB Windows Internet HTTP Web Browsers Web Applications DB Windows, Linux MacOS Browsers, Services Domain Applications DB iOS Android HTML5 Browsers Apps API Cloud NoSQL 10
  • 57. Client-Server  Two-layer systems – Thick client on PCs handle user interface and connect to servers for data
  • 58. Client-Server  The client handles all computation – domain logic (business logic) – Limited reusability – Versioning is a challenge
  • 59. Move to Three Tiers  Three Layers – Presentation Layer for the User Interface – Domain Layer for the domain logic – Data Source Layer for the data access
  • 60. Enter the Web Layer  The Web added new challenges – The browser accesses strings of tags (HTML) – Move the logic from client to a web layer – Web layer adds connectivity by HTTP protocols
  • 61. Application Servers  Domain Components are deployed on Application Servers – Distributed Multi-tiered Applications – Example: • Web Servers, Spring, EJB containers
  • 62. Client Types  Native Applications – Apps – Usually use some OS GUI and APIs – Windows, Linux, MacOS, iOS, Andriod – Communication can be anything  Embedded – Run inside Web Browsers – Flash, Java Applets – Communication with XML using HTTP
  • 63. Client Types  Rich Internet Application (RIA) – JavaScript calls REST/SOAP services for data – HTML with XML/Json using Ajax/jQuery  HTML Presentation in Browsers – All functionality is server side – Simple HTML
  • 64. Tiers vs. Layers  Tier implies physical layer – Example: • Client-server is two-tier system: client on one machine, server on another  Layers do not need to run on separate machines – Layers can be on the same machine – Example: • Web system with Web Layer, Domain Layer and Data Source Layer on the same machine, then the database on a separate machine
  • 65. N-tier Web App Architecture  Classic architecture
  • 66. Which of the following statements is not true? A) Versioning is only a challenge with client-service model B) Layers need not be on a separate machines C) Web servers can be used as application servers D) Scalability is achieved by duplicating the system QUIZ ✔
  • 68. Imagine you are building an e-commerce web site
  • 69. Traditional Architecture Bookstore UI Accounting service Payment service Shipping service SQL Browser Apache
  • 70.  Benefits – Simple to develop and test, good architecture – One release and deployment – Easy to scale  Monolithic Architecture – Silo – Any subsystem can call other subsystems Traditional Architecture
  • 71.  Drawbacks with the Monolith – UI requirements, multiple devices, streaming real-time – Need to deploy everything to change one component – Increased risk of failure – Fear of change – Updates are less often (A/B tests are difficult) Traditional Architecture
  • 72. Service Oriented Architecture  Software Architecture where all components are designed to be services  Applications composed of interoperable services – Easy to build new services – Easy to change
  • 74. Bezos’ Mandate 1. All teams will henceforth expose their data and functionality through service interfaces 2. Teams must communicate with each other through these interfaces 3. There will be no other form of interprocess communication allowed
  • 75. Bezos’ Mandate 4. It doesn't matter what technology they use 5. All service interfaces, without exception, must be designed from the ground up to be externalizable. No exceptions. 6. Anyone who doesn't do this will be fired.
  • 76. Which statement is not true about SOA? A) SOA does not affect performance B) No service can access other service data except using APIs C) SOA improves productivity though reuse D) Monoliths system must deploy all components QUIZ ✔
  • 78. Layering  Software systems can get complicated – Abstractions are needed  Layering provides abstraction by separating computer systems in layers – Higher layers use services from lower layers – Each layer has dedicated tasks and hides complexity from upper layers
  • 79. Benefits of Layering  You can understand a single layer as a coherent whole without knowing much about other layers  You can substitute layers with alternative implementation of the same basic service  You minimize dependencies between layers  Layers make good places for standardization  Once you have a layer built, you can use it for many higher-level services
  • 80. Downsides  Layers encapsulate some, but not all, things well – Cascading changes – For example adding a field in the UI requires changes on each layer  Extra layers can harm performance – At every layer things typically need to be transformed from one presentation to another
  • 81. The Three Layers  Presentation – User’s interface to the system – User can be another system – Accepts input, displays views  Domain – The Application of the system – The “Business logic” – Tends to creep into presentation and data source  Data Source – Connection to the database – Also Persistence
  • 82. Summary  The Post-PC era poses new challenges  Enterprise Application defined  Building Blocks for building enterprise applications  Service Oriented Architecture  Layering is the oldest trick in the book