Professional Documents
Culture Documents
Three-tier Architecture
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.
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
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
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.
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
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
Service Oriented
Carmen Avila
Leonel Villagomez
Cesar Yeep
Service-oriented
Architecture
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).
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
Abstracted
Published
Formal
Relevant
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
Applications consist
of self-sufficient
processing-units.