Three-tier Architecture Manuel Corona David Nevarez
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".
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.html • http://sourcemaking.com/design_patterns/interpreter • http://www.oodesign.com/interpreter-pattern.html
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
DISTRIBUTEDCOMPUTING 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.
DISTRIBUTEDCOMPUTING Distributed programming typically falls into one of several basic architectures or categories: • Client-server • 3-tier architecture • N-tier architecture • Tight coupling
DISTRIBUTEDCOMPUTING 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
DISTRIBUTEDCOMPUTING 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
DISTRIBUTEDCOMPUTING 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
DISTRIBUTEDCOMPUTING 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 Input Validated Input ProcessedData Validated Input ProcessedData Report Validate Process Report 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.
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 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 handled in the database.
Benefits 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.
Plug-in architecture Valeria Fierro Neith Estrada
Plug-in architecture 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.
Plug-in architecture 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
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 AvilaLeonel VillagomezCesar Yeep
Service-oriented Architecture Group of services that communicate with each other.
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).
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.
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