59
Three-tier Architecture Manuel Corona David Nevarez

Three-tier Architecture Manuel Corona David Nevarez

  • View
    221

  • Download
    0

Embed Size (px)

Citation preview

Three-tier Architecture

Manuel CoronaDavid 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 SotoVeronica 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.

By Rick Lawler & Ray Diaz

Client-Server Model

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 programming typically falls into one of several basic architectures or categories:

DISTRIBUTED COMPUTING

- Client-server

- 3-tier architecture

- N-tier architecture

- Tight coupling

Distributed programming typically falls into one of several 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

Distributed programming typically falls into one of several 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

Distributed programming typically falls into one of several 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

Distributed programming typically falls into one of several 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.

Batch-Sequential Software Architecture

David MirelesKris Villanueva

• 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.

ProcessedData

Validated Input

Input

Validate

Batch-Sequential Processing

Process Report

Validated Input

ProcessedData 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-LeonOscar 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 (super-peers, super-nodes) as servers and client-peers are connected in a star-like fashion to a single super-peer.

Valeria FierroNeith 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 color-picking, 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

• 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

Service Oriented

• Carmen AvilaLeonel VillagomezCesar 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.

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

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.

• 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 MartinezAntonio Garza

Shared Nothing Architecture

Info from:Wikipedia.org

“The Case for Shared Nothing” by Michael StonebrakerUniversity 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 GarciaAurthor Walton

Space Based Architecture

Applications consist of self-sufficient processing-units.

Repository

Data

Producing

Process

Data

Producing

Process

Data

Retrieving

Process

Data

Retrieving

Process

Data

Data

Space Based Architecture

Repository

Data

Producing

Process

Data

Producing

Process

Data

Retrieving

Process

Data

Retrieving

Process

Data

Data