Title: Application Architecture
1Application Architecture
2Application Architecture
- Application architecture a specification of the
technologies to be used to implement information
systems - Data architecture.
- Component architecture.
3Component Architecture
- Distributed system a system in which components
are distributed across multiple locations and
computer networks. - Accordingly, the processing workload is
distributed across multiple computers on the
network. - Centralized systems a system in which all
components are hosted by a central, multi-user
computer. - Users interact with the system via terminals (or
a PC emulating a terminal). - Virtually all the actual processing and work is
done on the host computer.
4Why the Trend Toward Distributed Systems?
- Modern businesses are already decentralized
(distributed). - Distributed computing moves information and
services closer to the customers and users who
need them. - Distributed computing consolidates the power of
personal computers across the enterprise. - Distributed computing solutions are in general
more user-friendly because they use the PC as the
user interface processor. - Personal computers and network servers are less
expensive than mainframe computers
5Data Architectures
- Relational database stores data in tabular form.
Each file is implemented as a table. Each field
is a column in the table. - Distributed relational database A database
system that duplicates tables to multiple
database servers located in geographically
distributed locations.
6Centralized Database
7Centralized Database
- All data is stored in a single database
- Advantages
- Concurrency and data integrity
- Good for systems with large amounts of constantly
changing data - Disadvantages
- A central repository can easily become a
bottleneck - Single point of failure
8Types of Data(base) Distribution
- Data partitioning truly distributes rows and
columns of tables to specific database servers
with little or no duplication between servers. - Vertical partitioning assigns different columns
to different servers. - Horizontal partitioning assigns different rows to
different servers. - Data replication duplicates some or all tables
on more than one database server. - Propagates updates on one database server to any
other database server where the data is
duplicated.
9Data Partitioning
10Data Replication
11Data Partitioning versus Data Replication
12Software Architectural Styles
- Patterns for software architecture
- File Server
- Client-Server
- Peer-To-Peer
- Model/View/Controller
- Pipes and Filters
- And more domain specific architectures
13File Server
- File Server A computer attached to a network
that has the primary purpose of providing a
location for the shared storage of computer files
(such as documents, sound files, photographs,
movies, images, databases, etc.) - File server sends the clients entire files or
database table without processing it.
14File Server
15File Server
- File server system a LAN (local Area Network)
in which a server hosts the data of an
information system. - All other layers are implemented on the client
computers. - Frequently excessive network traffic to transport
data between servers and clients. - Client must be fairly robust (fat) because it
does most of the work.
16File Server Architecture
17Client/Server Architectural Style
- One or many servers provides services to
instances of subsystems, called clients. - Client calls on the server, which performs some
service and returns the result - Response in general immediately
- Users interact only with the client
- Sometimes called two-tiered client/server
computing.
18Client/Server Architectural Style
19Client/Server Database
- Client Server Database a client/server system in
which the data and data manipulation layers are
placed on the server(s), and other layers are
placed on the clients. - Difference to file server systems is where the
data manipulation commands are executed. - Much less network traffic than file server
systems because only the database requests and
the results of those requests are transported
across the network. - Database integrity is easier to maintain.
20Client/ServerDistributed Data
21Client/Server Architectural Style
- Advantages
- Loose coupling between the server and client
- Disadvantages
- Dependability when server goes down, operations
cease
22Client/Server Architecture Servers
- Database server a server that hosts one or more
databases and executes all data manipulation
commands at the server. - Transaction server a server that hosts services
which ensure that all database updates for a
transaction succeed or fail as a whole. - Application server a server that hosts
application logic and services for an information
system. - Messaging or groupware server a server that
hosts services for e-mail, calendaring, and other
work group functionality. - Web server a server that hosts Internet or
intranet websites. - Remote Procedure Call
23Internet- and Intranet-based Architectures
- Network computing system presentation and
presentation logic layers implemented in
client-side Web browsers using content downloaded
from a Web server. - Presentation logic layer connects to application
logic layer running on application server, which
connects to database servers on the backside of
the system. - The greatest potential of this approach is its
applicability to redesign of traditional
information systems to run on an intranet. - Intranet a secure network that uses Internet
technology to integrate desktop, work group, and
enterprise computing into a cohesive framework.
24Peer-to-Peer Architectural Style
- Generalization of Client/Server Architecture
- Clients can be servers and servers can be clients
25Peer-to-Peer Architectural Style
- Examples
- Distributed computing
- Distributed search engine
- Advantage
- Scalability
- Reliability
- Disadvantage
- Concurrency/deadlock issue
26Three Tiered Architectural Style
- Three layers are organized as follows
- Interface Layer User interface, user object
control - Windows, forms, web pages, etc
- Application logic layer Control over objects and
data processing - Rule checking
- Storage layer Database abstraction
- Any persistent objects are managed
27Three Tiered Architectural Style
- Developed as an analog to the repository
architecture - Allows the development of many user interfaces
for the same application logic layer - Allows the development of many application logic
layers to operate on the same storage layer
28Three Tiered Architectural Style
29Three Tiered Architectural Style
30Four Tiered Architectural Style
- The interface layer is subdivided into two
independent layers - Client presentation layer
- Implements the end user interface reuses common
presentation objects and operations from the
server - Server presentation layer
- Can be located on many machines, reducing the
possibility of a bottleneck
31Four Tiered Architectural Style
32Model/View/Controller
- Subsystems are classified into 3 different types
- Model Responsible for application domain
knowledge - View Responsible for displaying application
domain objects to the user - Controller Responsible for sequence of
interactions with the user.
33Example of a File System Based on the MVC
Architectural Style
34Model View Controller Example
35Model View Controller Example
36Pipe and Filter Architectural Style
- Subsystems are referred to as filters
- Interactions between subsystems are called pipes
- Each filter is only aware of the content of the
data it will receive, not the filter that sent
the data - Examples
- Linux shell pipes
- Graphic and video filters
37Pipe and Filter Architectural Style
- Advantages
- Loosely coupled
- Filters may be interchanged or substituted for
another - Good for systems that apply systematic
transformations to data without user intervention - Disadvantages
- Poorly suited for interactive systems
- Does not allow complex interactions between
components
38Pipe and Filter Architectural Style
39Domain Specific Architecture Styles
- Main program/subroutine organizations
- Concurrent state machine
- Real time process, more information can be found
40Architecture Case Study KWIC
- Problem description
- The KWIC Key Word in Context index system
accepts an ordered set of lines, each line is an
ordered set of words, and each word is an ordered
set of characters. Any line may be circularly
shifted' by repeatedly removing the first word
and appending it at the end of the line. The KWIC
index system outputs a listing of all circular
shifts of all lines in alphabetical order.
41KWIC example
- Input
- Pattern-Oriented Software Architecture
- Software Architecture
- Introducing Design Patterns
- Output (assuming Pattern-Oriented treated as one
word) - Architecture Software
- Architecture Pattern-Oriented Software
- Design Patterns Introducing
- Introducing Design Patterns
- Patterns Introducing Design
- Pattern-Oriented Software Architecture
- Software Architecture
- Software Architecture Pattern-Oriented
42Main Program/Subroutine with Shared Data
43Main Program/Subroutine with Shared Data
- Strengths
- Efficient use of space - computations share same
data - Weaknesses
- Change of data representation affects all modules
all modules take advantage of explicit data
representation - no information hiding. - Not particularly supportive of reuse - explicit
references to data structures and other
functions. Tight coupling.
44Abstract Data Type (OO)
45Abstract Data Type (OO)
- Key Difference Data not directly shared - data
accessed only through module interfaces. - Strengths
- Data representations can be changed inside
individual modules without affecting others. - Reuse better supported because modules make less
assumptions about others - looser coupling. - Weaknesses
- Larger storage is needed.
46Pipe and Filter
47Pipe and Filter
- Strengths
- Supports enhancements by addition of filters e.g.
an omit noisy shift filter, or by modifying
independent filters. - Supports reuse, filters operate in isolation.
- Weaknesses
- Inefficient use of space. For example, each
filter must copy all of the data to its output.
48Middleware
- Middleware utility software that enables
communication between different processors in a
system. - It may be built into the respective operating
systems or added through purchased middleware
products. - Presentation middleware
- Application middleware
- Database middleware
49Middleware
50Reading Assignment