SlideShare a Scribd company logo
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
L01 Enterprise Application Architecture
“[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?
L01 Enterprise Application Architecture
1981-2011 The era of the PC
L01 Enterprise Application Architecture
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
L01 Enterprise Application Architecture
L01 Enterprise Application Architecture
L01 Enterprise Application Architecture
L01 Enterprise Application Architecture
L01 Enterprise Application Architecture
L01 Enterprise Application Architecture
L01 Enterprise Application Architecture
L01 Enterprise Application Architecture
L01 Enterprise Application Architecture
L01 Enterprise Application Architecture
L01 Enterprise Application Architecture
L01 Enterprise Application Architecture
L01 Enterprise Application Architecture
L01 Enterprise Application Architecture
L01 Enterprise Application Architecture
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

More Related Content

What's hot (20)

PPTX
Software architecture & design patterns for MS CRM Developers
sebedatalabs
 
PDF
IBM InfoSphere Data Architect 9.1 - Francis Arnaudiès
IBMInfoSphereUGFR
 
PPTX
How to Leverage FME in a Master Data Management Architecture
Safe Software
 
PDF
Open Group Conference 2011 - The Canonical Data Zone
Gary Farrow
 
PDF
Présentation IBM InfoSphere Information Server 11.3
IBMInfoSphereUGFR
 
PPTX
“Salesforce Multi-tenant architecture”,
Manik Singh
 
PDF
eDocumentus for IBM Maximo
PROZONE - IT Solutions
 
PPTX
Web and Mobile Applications
PROZONE - IT Solutions
 
PPTX
DMS component for MAXIMO
PROZONE - IT Solutions
 
PDF
IBM InfoSphere Stewardship Center for iis dqec
IBMInfoSphereUGFR
 
DOCX
Differences Between Architectures
prasadsmn
 
PPTX
Getting data into microsoft dynamics crm faster
Daniel Cai
 
DOC
VendorReview_IBMDB2
Aakash Parwani
 
PDF
Service as-a-software
Jean-Jacques Dubray
 
PDF
Informix NoSQL & Hybrid SQL detailed deep dive
Keshav Murthy
 
PPT
Info sphere overview
Bhawani N Prasad
 
PPTX
Finit Solutions - What is New in Hyperion Financial Management 11.1.2.2
finitsolutions
 
PDF
Informatica slides
sureshpaladi12
 
PPTX
Canonical data model
Govind Mulinti
 
PPTX
Introduction to SOA EAI ETL BPM
Thanh Nguyen
 
Software architecture & design patterns for MS CRM Developers
sebedatalabs
 
IBM InfoSphere Data Architect 9.1 - Francis Arnaudiès
IBMInfoSphereUGFR
 
How to Leverage FME in a Master Data Management Architecture
Safe Software
 
Open Group Conference 2011 - The Canonical Data Zone
Gary Farrow
 
Présentation IBM InfoSphere Information Server 11.3
IBMInfoSphereUGFR
 
“Salesforce Multi-tenant architecture”,
Manik Singh
 
eDocumentus for IBM Maximo
PROZONE - IT Solutions
 
Web and Mobile Applications
PROZONE - IT Solutions
 
DMS component for MAXIMO
PROZONE - IT Solutions
 
IBM InfoSphere Stewardship Center for iis dqec
IBMInfoSphereUGFR
 
Differences Between Architectures
prasadsmn
 
Getting data into microsoft dynamics crm faster
Daniel Cai
 
VendorReview_IBMDB2
Aakash Parwani
 
Service as-a-software
Jean-Jacques Dubray
 
Informix NoSQL & Hybrid SQL detailed deep dive
Keshav Murthy
 
Info sphere overview
Bhawani N Prasad
 
Finit Solutions - What is New in Hyperion Financial Management 11.1.2.2
finitsolutions
 
Informatica slides
sureshpaladi12
 
Canonical data model
Govind Mulinti
 
Introduction to SOA EAI ETL BPM
Thanh Nguyen
 

Viewers also liked (20)

PDF
Patterns of Enterprise Application Architecture (by example)
Paulo Gandra de Sousa
 
PPTX
Application Architecture
Lars-Erik Kindblad
 
PPT
Enterprise application integration
Goa App
 
PPTX
Web application architecture
Tejaswini Deshpande
 
PDF
The Evolution of the Architecture of Web Applications Requires a Load Testing...
Compuware APM
 
PPTX
L03 Design Patterns
Ólafur Andri Ragnarsson
 
PPT
Keynote spreker Igor Beuker bij het RTL Embracing Change 2015 event
Igor Beuker
 
PPTX
Patterns of enterprise application architecture
Chinh Ngo Nguyen
 
PPT
Client server computing in mobile environments
Praveen Joshi
 
PPTX
Application architecture for the rest of us - php xperts devcon 2012
M N Islam Shihan
 
PDF
J2EE Introduction
Patroklos Papapetrou (Pat)
 
PDF
Server Management
Dell World
 
PDF
Rg0035 A Guideto Service Improvement Nhs Scotland
primary
 
PDF
Developing and implementing asset lifecycle management strategies
Benjamin Mqenebe
 
PDF
Application Architecture Trends
Srini Penchikala
 
PPSX
Server training
itassistantdahanu
 
PDF
Service Design Drinks Warsaw #1 / Uncovering the job your service is hired for
Martin Jordan
 
PPT
ITSM Presentation
itsm_at_hanover
 
PDF
EA Intensive Course "Building Enterprise Architecture" by mr.danairat
Software Park Thailand
 
PPTX
Layered architecture style
Begench Suhanov
 
Patterns of Enterprise Application Architecture (by example)
Paulo Gandra de Sousa
 
Application Architecture
Lars-Erik Kindblad
 
Enterprise application integration
Goa App
 
Web application architecture
Tejaswini Deshpande
 
The Evolution of the Architecture of Web Applications Requires a Load Testing...
Compuware APM
 
L03 Design Patterns
Ólafur Andri Ragnarsson
 
Keynote spreker Igor Beuker bij het RTL Embracing Change 2015 event
Igor Beuker
 
Patterns of enterprise application architecture
Chinh Ngo Nguyen
 
Client server computing in mobile environments
Praveen Joshi
 
Application architecture for the rest of us - php xperts devcon 2012
M N Islam Shihan
 
J2EE Introduction
Patroklos Papapetrou (Pat)
 
Server Management
Dell World
 
Rg0035 A Guideto Service Improvement Nhs Scotland
primary
 
Developing and implementing asset lifecycle management strategies
Benjamin Mqenebe
 
Application Architecture Trends
Srini Penchikala
 
Server training
itassistantdahanu
 
Service Design Drinks Warsaw #1 / Uncovering the job your service is hired for
Martin Jordan
 
ITSM Presentation
itsm_at_hanover
 
EA Intensive Course "Building Enterprise Architecture" by mr.danairat
Software Park Thailand
 
Layered architecture style
Begench Suhanov
 
Ad

Similar to L01 Enterprise Application Architecture (20)

PPTX
Hönn2014 L01 Enterprise Applications
Ólafur Andri Ragnarsson
 
PDF
L01 Introduction to Enterprise Software
Ólafur Andri Ragnarsson
 
PPTX
L14 Summary and Conclusions
Ólafur Andri Ragnarsson
 
PPTX
L02 Architecture
Ólafur Andri Ragnarsson
 
PPTX
L23 Summary and Conclusions
Ólafur Andri Ragnarsson
 
PPTX
Techniques for Developing Systems in IT Management System
Gruppo Banca Sella
 
PPT
Architecting and Designing Enterprise Applications
Gem WeBlog
 
PDF
Software Architecture - All you need to know
Vincent Composieux
 
PPTX
Mykhailo Hryhorash: Архітектура IT-рішень (Частина 1) (UA)
content75
 
PDF
L02 What is Software Architecture?
Ólafur Andri Ragnarsson
 
PPTX
Isas _Q3 _Soft_Topic3_enterprise_application_architecture
Tuấn Anh Nguyễn
 
PPT
soa1.ppt
ShanmugamS34
 
PPTX
Mykhailo Hryhorash: Архітектура IT-рішень (Частина 1) (UA)
Lviv Startup Club
 
PDF
Keynote | Middleware Everywhere - Ready for Mobile and Cloud | Dr. Mark Little
JAX London
 
PPTX
Module-2-Analyzing-Components-of-an-Information-System.pptx
cagaangeljenefer
 
PPTX
Latest trends in information technology
Eldos Kuriakose
 
PPTX
Enrterprise Java-Unit 1 (All chapters) for TYIT PPTx
dcruzsophia24
 
PDF
Is the Browser a Transitional Technology?
Allen Wirfs-Brock
 
PPTX
Enterprise Java TYIT Sem 5 Unit 1 Chapter 1 and 2 PPT
dcruzsophia24
 
PPT
Lec-13_EmergingTrend.ppt................
gamlaamarpriyo
 
Hönn2014 L01 Enterprise Applications
Ólafur Andri Ragnarsson
 
L01 Introduction to Enterprise Software
Ólafur Andri Ragnarsson
 
L14 Summary and Conclusions
Ólafur Andri Ragnarsson
 
L02 Architecture
Ólafur Andri Ragnarsson
 
L23 Summary and Conclusions
Ólafur Andri Ragnarsson
 
Techniques for Developing Systems in IT Management System
Gruppo Banca Sella
 
Architecting and Designing Enterprise Applications
Gem WeBlog
 
Software Architecture - All you need to know
Vincent Composieux
 
Mykhailo Hryhorash: Архітектура IT-рішень (Частина 1) (UA)
content75
 
L02 What is Software Architecture?
Ólafur Andri Ragnarsson
 
Isas _Q3 _Soft_Topic3_enterprise_application_architecture
Tuấn Anh Nguyễn
 
soa1.ppt
ShanmugamS34
 
Mykhailo Hryhorash: Архітектура IT-рішень (Частина 1) (UA)
Lviv Startup Club
 
Keynote | Middleware Everywhere - Ready for Mobile and Cloud | Dr. Mark Little
JAX London
 
Module-2-Analyzing-Components-of-an-Information-System.pptx
cagaangeljenefer
 
Latest trends in information technology
Eldos Kuriakose
 
Enrterprise Java-Unit 1 (All chapters) for TYIT PPTx
dcruzsophia24
 
Is the Browser a Transitional Technology?
Allen Wirfs-Brock
 
Enterprise Java TYIT Sem 5 Unit 1 Chapter 1 and 2 PPT
dcruzsophia24
 
Lec-13_EmergingTrend.ppt................
gamlaamarpriyo
 
Ad

More from Ólafur Andri Ragnarsson (20)

PDF
Nýsköpun - Leiðin til framfara
Ólafur Andri Ragnarsson
 
PDF
Nýjast tækni og framtíðin
Ólafur Andri Ragnarsson
 
PDF
New Technology Summer 2020 Course Introduction
Ólafur Andri Ragnarsson
 
PDF
L01 Introduction
Ólafur Andri Ragnarsson
 
PDF
L23 Robotics and Drones
Ólafur Andri Ragnarsson
 
PDF
L22 Augmented and Virtual Reality
Ólafur Andri Ragnarsson
 
PDF
L20 Personalised World
Ólafur Andri Ragnarsson
 
PDF
L19 Network Platforms
Ólafur Andri Ragnarsson
 
PDF
L18 Big Data and Analytics
Ólafur Andri Ragnarsson
 
PDF
L17 Algorithms and AI
Ólafur Andri Ragnarsson
 
PDF
L16 Internet of Things
Ólafur Andri Ragnarsson
 
PDF
L14 From the Internet to Blockchain
Ólafur Andri Ragnarsson
 
PDF
L14 The Mobile Revolution
Ólafur Andri Ragnarsson
 
PDF
New Technology 2019 L13 Rise of the Machine
Ólafur Andri Ragnarsson
 
PDF
L12 digital transformation
Ólafur Andri Ragnarsson
 
PDF
L10 The Innovator's Dilemma
Ólafur Andri Ragnarsson
 
PDF
L09 Disruptive Technology
Ólafur Andri Ragnarsson
 
PDF
L09 Technological Revolutions
Ólafur Andri Ragnarsson
 
PDF
L07 Becoming Invisible
Ólafur Andri Ragnarsson
 
PDF
L06 Diffusion of Innovation
Ólafur Andri Ragnarsson
 
Nýsköpun - Leiðin til framfara
Ólafur Andri Ragnarsson
 
Nýjast tækni og framtíðin
Ólafur Andri Ragnarsson
 
New Technology Summer 2020 Course Introduction
Ólafur Andri Ragnarsson
 
L01 Introduction
Ólafur Andri Ragnarsson
 
L23 Robotics and Drones
Ólafur Andri Ragnarsson
 
L22 Augmented and Virtual Reality
Ólafur Andri Ragnarsson
 
L20 Personalised World
Ólafur Andri Ragnarsson
 
L19 Network Platforms
Ólafur Andri Ragnarsson
 
L18 Big Data and Analytics
Ólafur Andri Ragnarsson
 
L17 Algorithms and AI
Ólafur Andri Ragnarsson
 
L16 Internet of Things
Ólafur Andri Ragnarsson
 
L14 From the Internet to Blockchain
Ólafur Andri Ragnarsson
 
L14 The Mobile Revolution
Ólafur Andri Ragnarsson
 
New Technology 2019 L13 Rise of the Machine
Ólafur Andri Ragnarsson
 
L12 digital transformation
Ólafur Andri Ragnarsson
 
L10 The Innovator's Dilemma
Ólafur Andri Ragnarsson
 
L09 Disruptive Technology
Ólafur Andri Ragnarsson
 
L09 Technological Revolutions
Ólafur Andri Ragnarsson
 
L07 Becoming Invisible
Ólafur Andri Ragnarsson
 
L06 Diffusion of Innovation
Ólafur Andri Ragnarsson
 

Recently uploaded (20)

PDF
Arcee AI - building and working with small language models (06/25)
Julien SIMON
 
PDF
"Effect, Fiber & Schema: tactical and technical characteristics of Effect.ts"...
Fwdays
 
PPTX
UI5Con 2025 - Beyond UI5 Controls with the Rise of Web Components
Wouter Lemaire
 
PDF
UiPath vs Other Automation Tools Meeting Presentation.pdf
Tracy Dixon
 
PDF
How Current Advanced Cyber Threats Transform Business Operation
Eryk Budi Pratama
 
PDF
TrustArc Webinar - Data Privacy Trends 2025: Mid-Year Insights & Program Stra...
TrustArc
 
PDF
Trading Volume Explained by CIFDAQ- Secret Of Market Trends
CIFDAQ
 
PPTX
Building and Operating a Private Cloud with CloudStack and LINBIT CloudStack ...
ShapeBlue
 
PDF
Market Wrap for 18th July 2025 by CIFDAQ
CIFDAQ
 
PDF
Meetup Kickoff & Welcome - Rohit Yadav, CSIUG Chairman
ShapeBlue
 
PDF
Market Insight : ETH Dominance Returns
CIFDAQ
 
PDF
The Past, Present & Future of Kenya's Digital Transformation
Moses Kemibaro
 
PDF
Ampere Offers Energy-Efficient Future For AI And Cloud
ShapeBlue
 
PDF
Bitcoin+ Escalando sin concesiones - Parte 1
Fernando Paredes García
 
PPTX
The Yotta x CloudStack Advantage: Scalable, India-First Cloud
ShapeBlue
 
PDF
Women in Automation Presents: Reinventing Yourself — Bold Career Pivots That ...
DianaGray10
 
PDF
Apache CloudStack 201: Let's Design & Build an IaaS Cloud
ShapeBlue
 
PDF
Shuen Mei Parth Sharma Boost Productivity, Innovation and Efficiency wit...
AWS Chicago
 
PDF
CIFDAQ'S Token Spotlight for 16th July 2025 - ALGORAND
CIFDAQ
 
PDF
Julia Furst Morgado The Lazy Guide to Kubernetes with EKS Auto Mode + Karpenter
AWS Chicago
 
Arcee AI - building and working with small language models (06/25)
Julien SIMON
 
"Effect, Fiber & Schema: tactical and technical characteristics of Effect.ts"...
Fwdays
 
UI5Con 2025 - Beyond UI5 Controls with the Rise of Web Components
Wouter Lemaire
 
UiPath vs Other Automation Tools Meeting Presentation.pdf
Tracy Dixon
 
How Current Advanced Cyber Threats Transform Business Operation
Eryk Budi Pratama
 
TrustArc Webinar - Data Privacy Trends 2025: Mid-Year Insights & Program Stra...
TrustArc
 
Trading Volume Explained by CIFDAQ- Secret Of Market Trends
CIFDAQ
 
Building and Operating a Private Cloud with CloudStack and LINBIT CloudStack ...
ShapeBlue
 
Market Wrap for 18th July 2025 by CIFDAQ
CIFDAQ
 
Meetup Kickoff & Welcome - Rohit Yadav, CSIUG Chairman
ShapeBlue
 
Market Insight : ETH Dominance Returns
CIFDAQ
 
The Past, Present & Future of Kenya's Digital Transformation
Moses Kemibaro
 
Ampere Offers Energy-Efficient Future For AI And Cloud
ShapeBlue
 
Bitcoin+ Escalando sin concesiones - Parte 1
Fernando Paredes García
 
The Yotta x CloudStack Advantage: Scalable, India-First Cloud
ShapeBlue
 
Women in Automation Presents: Reinventing Yourself — Bold Career Pivots That ...
DianaGray10
 
Apache CloudStack 201: Let's Design & Build an IaaS Cloud
ShapeBlue
 
Shuen Mei Parth Sharma Boost Productivity, Innovation and Efficiency wit...
AWS Chicago
 
CIFDAQ'S Token Spotlight for 16th July 2025 - ALGORAND
CIFDAQ
 
Julia Furst Morgado The Lazy Guide to Kubernetes with EKS Auto Mode + Karpenter
AWS Chicago
 

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
  • 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?
  • 12. 1981-2011 The era of the PC
  • 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 ✔
  • 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