Software Architecture S09

Embed Size (px)

Citation preview

  • 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