Lecture Software design and architecture – Chapter 8

pptx
Số trang Lecture Software design and architecture – Chapter 8 38 Cỡ tệp Lecture Software design and architecture – Chapter 8 797 KB Lượt tải Lecture Software design and architecture – Chapter 8 0 Lượt đọc Lecture Software design and architecture – Chapter 8 31
Đánh giá Lecture Software design and architecture – Chapter 8
4.8 ( 10 lượt)
Nhấn vào bên dưới để tải tài liệu
Để tải xuống xem đầy đủ hãy nhấn vào bên trên
Chủ đề liên quan

Nội dung

SOFTWARE DESIGN AND ARCHITECTURE LECTURE 08 Review • Introduction to architectural styles • Categorizations of architectural styles • Hierarchical architectures – Layered Architecture Outline • Introduction to architectural styles • Distributed architectures – Client Server Architecture – Multi-tier Architecture Architectural Styles • An architecture style (also known as an “architecture pattern”) abstracts the common properties of a family of similar designs. • Define a family of systems in terms of a pattern of its structural organization. Components of a style The key components of an architecture style are: • Elements/components – that perform functions required by a system • connectors – that enable communication, coordination, and cooperation among elements • constraints – that define how elements can be integrated to form the system • attributes – that describe the advantages and disadvantages of the chosen structure Categories of Architectural Styles • Hierarchal Software Architecture – Layered • Distributed Software Architecture – Client Server – SOA • Data Flow Software Architecture – Pipe n Filter – Batch Sequential • Event Based Software Architecture • Data Centered Software Architecture – Black box – Shared Repository • Interaction-Oriented Software Architectures – Model View Controller • Component-Based Software Architecture DISTRIBUTED SOFTWARE ARCHITECTURE Distributed Software Architecture • A distributed system is a collection of computational and storage devices connected through a communications network. • Data, software, and users are distributed. • Communication occurs using a number of methods including message passing, remote procedure calls, and remote method invocation. CLIENT SERVER ARCHITECTURAL STYLE Client Server Architectural Style • Client/server architecture illustrates the relationship between two computer programs in which one program is a client, and the other is Server. • Client makes a service request to server. • Server provides service to the request. Client/Server • Although the client/server architecture can be used within a single computer by programs, but it is a more important idea in a network. • In a network, the client/server architecture allows efficient way to interconnect programs that are distributed efficiently across different locations. Client-Server Style • Suitable for applications that involve distributed data and processing across a range of components. • Components: – Servers: Stand-alone components that provide specific services such as printing, data management, etc. – Clients: Components that call on the services provided by servers. • Connector: The network, which allows clients to access remote servers. Common Example • The World Wide Web is an example of client-server architecture. • Each computer that uses a Web browser is a client, and the data on the various Web pages that those clients access is stored on multiple servers. Another Example • If you have to check a bank account from your computer, you have to send a request to a server program at the bank. • That program processes the request and forwards the request to its own client program that sends a request to a database server at another bank computer to retrieve client balance information. • The balance is sent back to the bank data client, which in turn serves it back to your personal computer, which displays the information of balance on your computer. Client Server Processes • Clients and servers are separate processes, Client Server Processes • It is normal for several client processes to run on a single processor. – For example, on your PC, you may run a mail client that downloads mail from a remote mail server. – You may also run a web browser that interacts with a remote web server and a print client that sends documents to a remote printer. Client Server Processes • Several different server processes may run on the same processor but, often, – servers are implemented as multiprocessor systems in which a separate instance of the server process runs on each machine. Example: • Gmail • Picassa photoviewer • Drop box Severs • Servers commonly contain data files and applications that can be accessed across the network, by workstations or user computers. • A user who wants to access data files, would use his or her client computer to access the data files on the server. Types of Servers • Application Servers: – Applications are hosted on these servers – Clients can access various application features over the network Types of Servers • File Servers: – Primitive form of data service. – Useful for sharing files across a network. – The client passes requests for files over the network to the file server. Types of Servers • Database Servers: – More efficient use of distributing power than file servers. – Client passes SQL requests as messages to the DB server; results are returned over the network to the client. – Query processing done by the server. – No need for large data transfers. Advantages • • • • Straightforward distribution of data. Transparency of location. Mix and match heterogeneous platforms Easy to add new servers or upgrade existing servers. Disadvantages • Performance of the system depends on the performance of the network. • Tricky to design and implement C/S systems. • Unless there is a central register of names and services, it may be hard to find out what services are available. MULTI-TIER CLIENT SERVER ARCHITECTURE Types of Client Server • Two-tier client–server architecture, – which is used for simple client–server systems, and in situations where it is important to centralize the system for security reasons. – In such cases, communication between the client and server is normally encrypted. • Multitier client–server architecture, – which is used when there is a high volume of transactions to be processed by the server. A two-tier client–server architecture • The system is implemented as a single logical server plus an indefinite number of clients that use that server. • Two forms of this architectural model: – A thin-client model, – A fat-client model, Two-tier Client Server • A thin-client model, – where the presentation layer is implemented on the client and all other layers (data management, application processing, and database) are implemented on a server. Advantages • The advantage of the thin-client model is that it is simple to manage the clients. – This is a major issue if there are a large number of clients, as it may be difficult and expensive to install new software on all of them. If a web browser is used as the client, there is no need to install any software. Disadvantages • The disadvantage of the thin-client approach, however is that it may place a heavy processing load on both the server and the network. – The server is responsible for all computation and this may lead to the generation of significant network traffic between the client and the server. Two-tier Client Server • A fat-client model, – where some or all of the application processing is carried out on the client. – Data management and database functions are implemented on the server. Multi-tier client–server architectures • The fundamental problem with a two-tier client– server approach is that the logical layers in the system—presentation, application processing, data management, and database—must be mapped onto two computer systems: the client and the server. • This may lead to problems with scalability and performance if the thin-client model is chosen, or problems of system management if the fat-client model is used. • Application services such as facilities to transfer cash, generate statements, pay bills, and so on are implemented in the web server and as scripts that are executed by the client • This system is scalable because it is relatively easy to add servers (scale out) as the number of customers increase. • In this case, the use of a three-tier architecture allows the information transfer between the web server and the database server to be optimized. Summary • Introduction to architectural styles • Distributed architectures – Client Server Architecture – Multi-tier Architecture
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.