Download - Software Architecture S09
-
8/7/2019 Software Architecture S09
1/59
Three-tier Architecture
Manuel Corona
David Nevarez
-
8/7/2019 Software Architecture S09
2/59
Three-tier Architecture
-
8/7/2019 Software Architecture S09
3/59
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.
-
8/7/2019 Software Architecture S09
4/59
Interpreter
Software Architecture
Vladimir Soto
Veronica Valenzuela
-
8/7/2019 Software Architecture S09
5/59
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.
-
8/7/2019 Software Architecture S09
6/59
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".
-
8/7/2019 Software Architecture S09
7/59
Example
-
8/7/2019 Software Architecture S09
8/59
Conclusion
This pattern can be applied for parsing lightexpressions defined in simple grammars andsometimes in simple rule engines.
The Interpreter pattern has a limited area where itcan be applied.
We can discuss the Interpreter pattern only in termsof formal grammars but in this area there are better
solutions and this is the reason why this pattern isnot so frequently used.
-
8/7/2019 Software Architecture S09
9/59
References
http://www.vincehuston.org/dp/interpreter.ht
ml
http://sourcemaking.com/design_patterns/interpreter
http://www.oodesign.com/interpreter-
pattern.html
-
8/7/2019 Software Architecture S09
10/59
By Rick Lawler & Ray Diaz
Client-Server Model
-
8/7/2019 Software Architecture S09
11/59
What is a client?
Any computer or program that makes a
request to a server
-
8/7/2019 Software Architecture S09
12/59
-
8/7/2019 Software Architecture S09
13/59
What is the client server model?
Client Server model is
the relationship
between the client and
the server.
-
8/7/2019 Software Architecture S09
14/59
Examples of client-server
Online Gaming
Surfing the internet
-
8/7/2019 Software Architecture S09
15/59
Online gaming
Game console (client)
Central Server
-
8/7/2019 Software Architecture S09
16/59
Internet browsing
Machine /browser (client)
Machine hosting the site (server)
-
8/7/2019 Software Architecture S09
17/59
Distributed Architecture
Ortiz
Montgomery
-
8/7/2019 Software Architecture S09
18/59
-
8/7/2019 Software Architecture S09
19/59
Distributed programming typically falls into one ofseveral basic architectures or categories:
DISTRIBUTED COMPUTING
- Client-server
- 3-tier architecture
- N-tier architecture
- Tight coupling
-
8/7/2019 Software Architecture S09
20/59
Distributed programming typically falls into one ofseveral basic architectures or categories:
DISTRIBUTED COMPUTING
- 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
-
8/7/2019 Software Architecture S09
21/59
Distributed programming typically falls into one ofseveral basic architectures or categories:
DISTRIBUTED COMPUTING
- 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
-
8/7/2019 Software Architecture S09
22/59
Distributed programming typically falls into one ofseveral basic architectures or categories:
DISTRIBUTED COMPUTING
- Client-server
- 3-tier architecture
- N-tier architecture
Web applications which further forward their requests to other
enterprise services
-Tight coupling
-
8/7/2019 Software Architecture S09
23/59
Distributed programming typically falls into one ofseveral basic architectures or categories:
DISTRIBUTED COMPUTING
- Client-server
- 3-tier architecture
- N-tier architecture
- Tight Coupling
A cluster of machines that closely work together, running a shared
process in parallel.
-
8/7/2019 Software Architecture S09
24/59
Batch-Sequential Software
Architecture
David Mireles
Kris Villanueva
-
8/7/2019 Software Architecture S09
25/59
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.
Processed
Data
Validated
Input
Input
Validate
Batch-Sequential Processing
Process Report
Validated
Input
Processed
Data Report
-
8/7/2019 Software Architecture S09
26/59
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
-
8/7/2019 Software Architecture S09
27/59
When to use BS Architecture
All data is already given.
Processes can be completely modularized.
There are no backward dependenciesbetween processes.
Pipelining the main processes is unnecessary,
impossible, or undesireable.
-
8/7/2019 Software Architecture S09
28/59
Blackboard
David Gomez-Leon
Oscar A. Olivas
-
8/7/2019 Software Architecture S09
29/59
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.
-
8/7/2019 Software Architecture S09
30/59
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 withinthe blackboard
Complexity involved with which KS to select.
-
8/7/2019 Software Architecture S09
31/59
-
8/7/2019 Software Architecture S09
32/59
Data as -c tric is a arc it ct r i
ic ata as s lay a cr cial r l
-
8/7/2019 Software Architecture S09
33/59
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 forcommunicating between parallel processes in
distributed computing applications
-
8/7/2019 Software Architecture S09
34/59
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.
-
8/7/2019 Software Architecture S09
35/59
-
8/7/2019 Software Architecture S09
36/59
P2P
Saucedo
-
8/7/2019 Software Architecture S09
37/59
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 (super-peers, super-nodes) as servers and client-
peers are connected in a star-like fashion to a
single super-peer.
-
8/7/2019 Software Architecture S09
38/59
Valeria Fierro
Neith Estrada
-
8/7/2019 Software Architecture S09
39/59
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 well-defined areas offunctionality can be provided by an external moduleof code.
Plug-ins are written and compiled entirely separately
from the host, typically by another developer. Whenthe host code is executed, it uses whatevermechanism is provided by the plug-in architecture tolocate compatible plug-ins and load them, thusadding capabilities to the host that were not
previously available.
-
8/7/2019 Software Architecture S09
40/59
Useful when you are designing extensible
software.
For ex
ample, Notepad++ has a plug-inarchitecture 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 otherthings (a wide range of functionality).
Eclipse Plug-in Architecture
-
8/7/2019 Software Architecture S09
41/59
Search-Oriented
Rodrigo Nuez; Brenda Medina
-
8/7/2019 Software Architecture S09
42/59
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
-
8/7/2019 Software Architecture S09
43/59
Benefit: rapid response time and more
convenient, in terms as SQL versus keyboard
search
Drawback: The data tier is not as organized
Search Oriented Software Architecture
-
8/7/2019 Software Architecture S09
44/59
Service Oriented
Carmen Avila
Leonel Villagomez
Cesar Yeep
-
8/7/2019 Software Architecture S09
45/59
Group of services that communicate with
each other.
-
8/7/2019 Software Architecture S09
46/59
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).
-
8/7/2019 Software Architecture S09
47/59
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.
-
8/7/2019 Software Architecture S09
48/59
Aservice:
Is a logical representation of a repeatable
business activity that has a specifiedoutcome (e.g., provide weather data)
Is self-contained
May be composed of other services
Is a black box to consumers of the
service
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.
-
8/7/2019 Software Architecture S09
49/59
To associates individual SOA objectsorchestration is used.
Orchestration is the ability to control howinformation flows and services (behaviors)
interact to form solutions.
-
8/7/2019 Software Architecture S09
50/59
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
-
8/7/2019 Software Architecture S09
51/59
Reusable Use of Service, not reuse by copying of code/implementation.
Abstracted Service is abstracted from the implementation.
PublishedPrecise, published specification functionality of service interface, not
implementation.
FormalFormal contract between endpoints places obligations on provider and
consumer.
RelevantFunctionality presented at a granularity recognized by the user as a
meaningful service.
-
8/7/2019 Software Architecture S09
52/59
Shared Nothing
Joshua Martinez
Antonio Garza
-
8/7/2019 Software Architecture S09
53/59
Shared Nothing Architecture
Info from:
Wikipedia.org
The Case for Shared Nothing by Michael Stonebraker
University of California
-
8/7/2019 Software Architecture S09
54/59
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 thesystem.
Useful?
Mostly used in web development because of itsscalability, system can keep growing just by adding
nodes.
-
8/7/2019 Software Architecture S09
55/59
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.
-
8/7/2019 Software Architecture S09
56/59
Shared Nothing
Examples:
Processors not sharing neither peripherals nor
memory.
hierarchical systems
GRID systems.
-
8/7/2019 Software Architecture S09
57/59
-
8/7/2019 Software Architecture S09
58/59
Space Based Architecture
Applications consist of self-sufficientprocessing-units.
-
8/7/2019 Software Architecture S09
59/59
Space Based Architecture