Anda di halaman 1dari 59

Three-tier Architecture

Three-tier Architecture

Comparison to MVC (Model View


Control)
Not a triangle, but linear.

Uses
Web applications.

Advantages
Modular
Interdependent of other components
(reduce coupling)
Has great control of permissions.

Interpreter
Software Architecture
Vladimir Soto
Veronica Valenzuela

What is it?
Given a language, define a
representation for its grammar along
with an interpreter that uses the
representation to interpret sentences
in the language.
Map a domain to a language, the
language to a grammar, and the
grammar to a hierarchical objectoriented design.

What does it solve?


A class of problems occurs
repeatedly in a well-defined and wellunderstood domain. If the domain
were characterized with a
"language", then problems could be
easily solved with an interpretation
"engine".

Example

Conclusion
This pattern can be applied for parsing
light expressions defined in simple
grammars and sometimes in simple rule
engines.
The Interpreter pattern has a limited area
where it can be applied.
We can discuss the Interpreter pattern
only in terms of formal grammars but in
this area there are better solutions and
this is the reason why this pattern is not so
frequently used.

References
http://www.vincehuston.org/dp/interp
reter.html
http://sourcemaking.com/design_patte
rns/interpreter
http://www.oodesign.com/interpreterpattern.html

Client-Server Model
By Rick Lawler & Ray Diaz

What is a client?
Any computer or program that
makes a request to a server

What is a server?
Any computer or program that
processes the requests of multiple
computers or programs (clients).
Typically, the server is always on and
waits for client requests

What is the client server


model?
Client Server
model is the
relationship
between the client
and the server.

Examples of client-server
Online Gaming
Surfing the internet

Online gaming
Game console (client)
Central Server

Internet browsing
Machine /browser (client)
Machine hosting the site (server)

Distributed Architecture
Ortiz
Montgomery

DISTRIBUTED COMPUTING
-Hardware and software systems
containing more than one processing
element or storage element, concurrent
processes, or multiple programs, running
under a loosely or tightly controlled
regime.
- A form of parallel computing
- Distributed programs often must deal with
heterogeneous environments, network links
of varying latencies, and unpredictable
failures in the network or the computers.

DISTRIBUTED COMPUTING
Distributed programming typically falls
into one of several basic architectures or
- categories:
Client-server
- 3-tier architecture
- N-tier architecture
- Tight coupling

DISTRIBUTED COMPUTING
Distributed programming typically falls
into one of several basic architectures or
- categories:
Client-server
Contacts the server for data, then formats and
displays it to the user. Input at the client is
committed back to the server when it represents a
permanent change.
- 3-tier architecture
- N-tier architecture
- Tight coupling

DISTRIBUTED COMPUTING
Distributed programming typically falls
into one of several basic architectures or
- categories:
Client-server
- 3-tier architecture
Move the client intelligence to a middle tier so that
stateless clients can be used.
- N-tier architecture
- Tight coupling

DISTRIBUTED COMPUTING
Distributed programming typically falls
into one of several basic architectures or
- categories:
Client-server
- 3-tier architecture
- N-tier architecture
Web applications which further forward their
requests to other enterprise services
- Tight coupling

DISTRIBUTED COMPUTING
Distributed programming typically falls
into one of several basic architectures or
- categories:
Client-server
- 3-tier architecture
- N-tier architecture
- Tight Coupling
A cluster of machines that closely work together,
running a shared process in parallel.

Batch-Sequential Software
Architecture
David Mireles
Kris Villanueva

Batch-Sequential Processing
Used for offline processing.
Data is (usually) held in files.
It is processed in a strict sequence by a small
number of standalone systems.
Each system transforms the data and writes to a
new file before the next system processes it.
Input
Validate
d Input
Validate

Processe
Validate
d
d Input
Data

Processe
d
Report
Data

Process

Report

Batch Sequential
Architectures
Are a sub-set of Data Flow
Architectures
Pipes and filters executes in parallel
Batch sequential does not

Examples:
Legacy mainframe systems
Compilers
Compression

When to use BS Architecture


All data is already given.
Processes can be completely
modularized.
There are no backward dependencies
between processes.
Pipelining the main processes is
unnecessary, impossible, or
undesireable.

Blackboard
David Gomez-Leon
Oscar A. Olivas

Blackboard
This architecture is composed of
knowledge sources (KSs) and a single
blackboard
KSs are programs that create, modify, or
remove messages from the blackboard.
The blackboard is a single repository of
messages and is the only mean of
communication between KSs.

In general, a message may represent


any form of input/output between the
KSs.

Blackboard
Pros
KSs are completely independent from
each other and thus are easy to
maintain.
The most optimal KS can be selected for
any specific message.

Cons
Complexity involved with
communication within the blackboard
Complexity involved with which KS to
select.

Dabase-centric
Del Hoyo
Chavez

Database-centric
Architecture

Database-centric is an
architecture in which databases
play a crucial role

Characteristics:
Could be a combination of:
Use relational DBM system
Using dynamic table driven logic
Using stored procedures that run on
database servers
using a shared database as the basis
for communicating between parallel
processes in distributed computing
applications

Characteristics:
Distribution: Database & UI Portions
Protocol needed
All interaction is accomplished
through database views or APIs.
Nearly all application behavior
(including screen navigation) is

Benefits
Reduced the total amount of
code
Reduced development time
Improved performance
Reduced network traffic
Reduced the complexity of
the application

P2P
Saucedo

Equal nodes that act as clients and servers at


the same time.
Sometimes there can exist a central server
which assists in the communication between
peers.
P2P uses connectivity to between many
computers in a network and the collective
bandwidth of all partakers rather than a central
resource such as a server.
An important goal in P2P networks is that all
clients provide resources, including
bandwidth, storage space, and computing
power.
Many P2P systems use stronger peers (superpeers, super-nodes) as servers and clientpeers are connected in a star-like fashion to a
single super-peer.

PLUG-IN
ARCHITECTURE
Valeria Fierro
Neith Estrada

PLUG-IN ARCHITECTURE
This architecture is composed of two basic
entitiesthe plug-in host and the plug-in itself.
The host could be an application, operating
system, or even another plug-in. The plug-in
hosts code is structured such that certain welldefined areas of functionality can be provided by
an external module of code.
Plug-ins are written and compiled entirely
separately from the host, typically by another
developer. When the host code is executed, it
uses whatever mechanism is provided by the
plug-in architecture to locate compatible plug-ins
and load them, thus adding capabilities to the
host that were not previously available.

PLUG-IN ARCHITECTURE
Useful when you are designing
extensible software.
For example, Notepad++ has a plugin architecture where you place a .dll
file in the plugins folder, and it adds
functionality to the application that
wasn't there, such as color-picking, or
snippet insertion, or many other
things (a wide range of functionality).
Eclipse Plug-in Architecture

Search-Oriented
Rodrigo Nuez; Brenda Medina

Search Oriented Software


Architecture
Search engine is the main integration
component of the architectural layer
As opposed to the traditional relational
database management system
Keyboard search instead of SQL queries

Search Oriented Software


Architecture
Benefit: rapid response time and
more convenient, in terms as SQL
versus keyboard search
Drawback: The data tier is not as
organized

Service Oriented
Carmen Avila
Leonel Villagomez
Cesar Yeep

Service-oriented
Architecture

Group of services that


communicate with each
other.

Service-Oriented Architecture
(SOA)
Is a design for linking computational
resources (principally applications
and data) on demand to achieve the
desired results for service consumers
(either end users or other services).

The process of communication


involves either simple data-passing
or two or more services coordinating
some activity.
Intercommunication implies the need
for some means of connecting two or
more services to each other.

SOA is an architectural style that


supports service orientation.

Service orientation is a way of


thinking in terms of services and
service-based development and the
outcomes of services.
A service:
Is a logical representation of a
repeatable business activity that
has a specified outcome (e.g.,
provide weather data)
Is self-contained
May be composed of other services
Is a black box to consumers of the
service

To associates individual SOA objects


orchestration is used.
Orchestration is the ability to
control how information flows and
services (behaviors) interact to form
solutions.

Benefits
SOA promotes the goal of separating
users (consumers) from the service
implementations. Services can
therefore be run on various
distributed platforms and be
accessed across networks. This can
also maximize reuse of services

Principles of good service design


that are enabled by SOA
Reusable

Use of Service, not reuse by copying of


code/implementation.

Abstracted

Service is abstracted from the implementation.

Published

Precise, published specification functionality of service


interface, not implementation.

Formal

Formal contract between endpoints places obligations on


provider and consumer.

Relevant

Functionality presented at a granularity recognized by the


user as a meaningful service.

Shared Nothing
Joshua Martinez
Antonio Garza

Shared Nothing
Architecture
Info from:
Wikipedia.org
The Case for Shared Nothing by Michael
Stonebraker
University of California

Shared Nothing
What:
is a distributed computing architecture
in which each node is independent and
self-sufficient, and there is no single
point of contention across the system.

Useful?
Mostly used in web development
because of its scalability, system can
keep growing just by adding nodes.

Shared Nothing
Additional Properties
Each node has its own private memory,
disks and input/output devices.
A SN system may assign applications
and partition data among nodes, with
each node having responsibility for a
particular task.

Drawback
Maintenance and tuning becomes really
hard.

Shared Nothing
Examples:
Processors not sharing neither
peripherals nor memory.
hierarchical systems
GRID systems.

Space-based
Steven Garcia
Aurthor Walton

Space Based Architecture

Applications consist
of self-sufficient
processing-units.

Space Based Architecture