Three-tier Architecture - Index

Download Report

Transcript Three-tier Architecture - Index

Three-tier Architecture
Manuel Corona
David Nevarez
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
object-oriented design.
What does it solve?
• A class of problems occurs repeatedly in a
well-defined and well-understood 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/interpreter.ht
ml
• http://sourcemaking.com/design_patterns/int
erpreter
• 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
Validated
Input
Validate
Processed
Validated
Input
Data
Processed
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 is an architecture in
which databases play a crucial role
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
• Distribution: Database & UI Portions
• Protocol needed
• All interaction is accomplished through
database views or APIs.
• Nearly all application behavior (including
screen navigation) is handled in the database.
• 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.
Valeria Fierro
Neith Estrada
• This architecture is composed of two basic entities—
the plug-in host and the plug-in itself.
• The host could be an application, operating system,
or even another plug-in. The plug-in host’s code is
structured such that certain well-defined 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.
• Useful when you are designing extensible
software.
For example, Notepad++ has a plug-in
architecture where you place a .dll file in the
plugins folder, and it adds functionality to the
application that wasn't there, such as colorpicking, or snippet insertion, or many other
things (a wide range of functionality).
Eclipse Plug-in Architecture
Search-Oriented
• Rodrigo Nuñez; 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
Group of services that communicate with
each other.
• 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.
• 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
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
Data
ing
Retriev
s
Proces
Data
ing
Produc
s
Proces
o
Data
ving
Retrie
s
Proces
Data
ing
Produc
s
Proces
Rep
o
Rep
sitory
sitory
Data
Data
Data
Data
Data
ving
Retrie
s
Proces
Data
ing
Produc
s
Proces
Data
ing
Produc
s
Proces
Data
ing
Retriev
s
Proces