Server Architectures Omer Aungkyawoo Piperdi


Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • In your opening, establish the relevancy of the topic to the audience. Give a brief preview of the presentation and establish value for the listeners. Take into account your audience’s interest and expertise in the topic when choosing your vocabulary, examples, and illustrations. Focus on the importance of the topic to your audience, and you will have more attentive listeners.
  • If you have several points, steps, or key ideas use multiple slides. Determine if your audience is to understand a new idea, learn a process, or receive greater depth to a familiar concept. Back up each point with adequate explanation. As appropriate, supplement your presentation with technical support data in hard copy or on disc, e-mail, or the Internet. Develop each point adequately to communicate with your audience.
  • Determine the best close for your audience and your presentation. Close with a summary; offer options; recommend a strategy; suggest a plan; set a goal. Keep your focus throughout your presentation, and you will more likely achieve your purpose.
  • If you have several points, steps, or key ideas use multiple slides. Determine if your audience is to understand a new idea, learn a process, or receive greater depth to a familiar concept. Back up each point with adequate explanation. As appropriate, supplement your presentation with technical support data in hard copy or on disc, e-mail, or the Internet. Develop each point adequately to communicate with your audience.
  • Determine the best close for your audience and your presentation. Close with a summary; offer options; recommend a strategy; suggest a plan; set a goal. Keep your focus throughout your presentation, and you will more likely achieve your purpose.
  • Server Architectures Omer Aungkyawoo Piperdi

    1. 1. Server Architectures Omer Aungkyawoo Piperdi Kedar Sivashanmugam Krishna Raju Datla Vamsi Marist College, Poughkeepsie, NY
    2. 2. What is a Server? <ul><li>A server consists of one or more computers that receive and process requests from one or more client machines. A server is typically designed with some redundancy in power, network, computing and file storage. </li></ul>
    3. 3. Server definition doesn’t make any sense !!! <ul><li>Behind every successful man, there is a woman… </li></ul><ul><li>Similarly, behind every server there is a client </li></ul>
    4. 4. Now, what is a Client? <ul><li>A client is an individual user's computer or a user application that does a certain amount of processing on its own. It also sends and receives requests to and from one or more servers for other processing and/or data. </li></ul>
    5. 5. What is an Architecture? <ul><li>The Structure and Organization of a Computer’s Hardware or System Software. </li></ul>
    6. 6. Server Architecture <ul><li>Limitations of Mainframe Architectures and File Sharing Architectures </li></ul><ul><li> SYSTEM SOFTWARE COMPATIBILITY </li></ul><ul><li>This has led to something called as Client/Server Architectures. </li></ul>
    7. 7. How the Server Architectures work? <ul><li>Let us take an example of a database server. Using a relational database management system (DBMS), user queries could be answered directly. The server architecture reduces network traffic by providing a query response rather than total file transfer. It improves multi-user updating through a GUI front end to a shared database. </li></ul><ul><li>Server Architectures uses Remote Procedure Calls (RPC’s) or standard query language (SQL) statements to communicate between the client and server. </li></ul>
    8. 8. Types of Architectures <ul><li>Two Tier Architecture </li></ul><ul><li>Three Tier Architecture </li></ul><ul><li>Distributed/collaborative enterprise architecture </li></ul>
    9. 9. Dedicated Server <ul><li>A dedicated server is a single computer in a network reserved for serving the needs of the network. </li></ul><ul><li>Examples of Dedicated Servers are: </li></ul><ul><li> File Server </li></ul><ul><li> Database Server </li></ul><ul><li> Web Server… etc. </li></ul><ul><li>We shall take an example of a Web Server and explain it in the following slides. </li></ul>
    10. 10. BROWSER WEB SERVER Operating System Servlet CGI Program Files Resources
    11. 11. How Web Servers Work? Let's say that you are sitting at your computer, surfing the Web, and you get a call from a friend who says, &quot;I just read a great article! Type in this URL and check it out. It's at; So you type that URL into your browser and press return. And magically, no matter where in the world that URL lives, the page pops up on your screen.
    12. 12. How Web Servers Work? (Contd.)                                                                                                                                        At the most basic level possible, the following diagram shows the steps that brought that page to your screen:                                                                                                                                        Your browser formed a connection to a Web server, requested a page and received it.
    13. 13. The Internet <ul><li>So what is &quot;the Internet&quot;? The Internet is a gigantic collection of millions of computers, all linked together on a computer network . The network allows all of the computers to communicate with one another. A home computer may be linked to the Internet using a phone-line modem, DSL or cable modem that talks to an Internet service provider ( ISP ). A computer in a business or university will usually have a network interface card ( NIC ) that directly connects it to a local area network ( LAN ) inside the business. The business can then connect its LAN to an ISP using a high-speed phone line like a T1 line . A T1 line can handle approximately 1.5 million bits per second, while a normal phone line using a modem can typically handle 30,000 to 50,000 bits per second. </li></ul>
    14. 14. The Internet (Contd.) ISPs then connect to larger ISPs, and the largest ISPs maintain fiber-optic &quot;backbones&quot; for an entire nation or region. Backbones around the world are connected through fiber-optic lines, undersea cables or satellite links. In this way, every computer on the Internet is connected to every other computer on the Internet.                                                                                                                                                  
    15. 15. Clients and Servers <ul><li>In general, all of the machines on the Internet can be categorized as two types: servers and clients. Those machines that provide services (like Web servers or FTP servers) to other machines are servers . And the machines that are used to connect to those services are clients . When you connect to Yahoo! at to read a page, Yahoo! is providing a machine (probably a cluster of very large machines), for use on the Internet, to service your request. Yahoo! is providing a server. Your machine, on the other hand, is probably providing no services to anyone else on the Internet. Therefore, it is a user machine, also known as a client. It is possible and common for a machine to be both a server and a client, but for our purposes here you can think of most machines as one or the other. </li></ul>
    16. 16. Clients and Servers (Contd.) <ul><li>A server machine may provide one or more services on the Internet. For example, a server machine might have software running on it that allows it to act as a Web server, an e-mail server and an FTP server. Clients that come to a server machine do so with a specific intent, so clients direct their requests to a specific software server running on the overall server machine. For example, if you are running a Web browser on your machine, it will most likely want to talk to the Web server on the server machine. Your Telnet application will want to talk to the Telnet server, your e-mail application will talk to the e-mail server, and so on... </li></ul>
    17. 17. Behind the Scenes <ul><li>The browser breaks the URL into three parts: </li></ul><ul><li>(i) The protocol (&quot;http&quot;) </li></ul><ul><li>(ii) The server name (&quot;;) </li></ul><ul><li>(iii) The file name (&quot;web-server.htm&quot;) </li></ul><ul><li>The browser communicates with a name server to translate the server name, &quot;,&quot; into an IP address , which it uses to connect to that server machine. </li></ul><ul><li>The browser then forms a connection to the Web server at that IP address on port 80. </li></ul><ul><li>Following the HTTP protocol, the browser sends a GET request to the server, asking for the file &quot;; </li></ul><ul><li>The server sends the HTML text for the Web page to the browser. (Cookies may also be sent from server to browser in the header for the page.) </li></ul><ul><li>The browser reads the HTML tag and formats the page onto your screen. </li></ul>
    18. 18. Examples of Web Servers <ul><li>Apache </li></ul><ul><li>Microsoft - IIS </li></ul><ul><li>Netscape - iPlanet Server </li></ul><ul><li>AOL Server </li></ul><ul><li>Jigsaw </li></ul>
    19. 19. History of Web servers 2.5 yrs Java 106 May 1996 Experimental Yves Lafon Jigsaw - C & TCL 164 May 1995 Commercial - AOL Server 5 yrs C 80 April 1995 Open source Robert Thau Apache Arch. stable Lang. Code size (KLOC) 1 st release Dev type Main arch. Web Server
    20. 20. Hardware / Network Architecture for Web Servers
    21. 21. Various types of Network Architectures <ul><li>Multi-process </li></ul><ul><li>Multi-threaded </li></ul><ul><li>Single-process event-driven </li></ul><ul><li>Asymmetric Multi-Process Event-Driven </li></ul>
    22. 22. Multi-Process <ul><li>In the multi-process (MP) architecture, a process is assigned to execute the basic steps associated with serving a client request sequentially. The process performs all the steps related to one HTTP request before it accepts a new request. Since multiple processes are employed (typically 20-200), many HTTP requests can be served concurrently. Overlapping of disk activity, CPU processing and network connectivity occurs naturally, because the operating system switches to a runnable process whenever the currently active process blocks. </li></ul>
    23. 23. Multi-Process (Contd.) <ul><li>Since each process has its own private address space, no synchronization is necessary to handle the processing of different HTTP requests. However, it may be more difficult to perform optimizations in this architecture that rely on global information, such as a shared cache of valid URLs. The figure illustrates the MP architecture. </li></ul>
    24. 24. Multi-threaded <ul><li>Multi-threaded (MT) servers, depicted in Figure, employ multiple independent threads of control operating within a single shared address space. Each thread performs all the steps associated with one HTTP request before accepting a new request, similar to the MP model's use of a process. </li></ul>
    25. 25. Multi-threaded (Contd.) <ul><li>The MT model requires that the operating system provides support for kernel threads. That is, when one thread blocks on an I/O operation, other runnable threads within the same address space must remain eligible for execution. </li></ul>
    26. 26. Differences between Multi-process and Multi threaded <ul><li>The primary difference between the MP and the MT architecture, however, is that all threads can share global variables. The use of a single shared address space lends itself easily to optimizations that rely on shared state. However, the threads must use some form of synchronization to control access to the shared data. </li></ul>
    27. 27. Single-process Event-Driven <ul><li>The single-process event-driven (SPED) architecture uses a single event-driven server process to perform concurrent processing of multiple HTTP requests. The server uses non-blocking systems calls to perform asynchronous I/O operations. The figure depicts the SPED architecture. </li></ul>
    28. 28. Single-process Event-Driven (Contd.) <ul><li>A SPED server can be thought of as a state machine that performs one basic step associated with the serving of an HTTP request at a time, thus interleaving the processing steps associated with many HTTP requests. In each iteration, the server performs a select to check for completed I/O events (new connection arrivals, completed file operations, client sockets that have received data or have space in their send buffers.) When an I/O event is ready, it completes the corresponding basic step and initiates the next step associated with the HTTP request, if appropriate. </li></ul>
    29. 29. Single-process Event-Driven (Contd.) <ul><li>In principle, a SPED server is able to overlap the CPU, disk and network operations associated with the serving of many HTTP requests, in the context of a single process and a single thread of control. As a result, the overheads of context switching and thread synchronization in the MP and MT architectures are avoided. However, a problem associated with SPED servers is that many current operating systems do not provide suitable support for asynchronous disk operations. </li></ul>
    30. 30. Asymmetric Multi-Process Event-Driven <ul><li>The Asymmetric Multi-Process Event-Driven (AMPED) architecture, illustrated in the figure, combines the event-driven approach of the SPED architecture with multiple helper processes (or threads) that handle blocking disk I/O operations. By default, the main event-driven process handles all processing steps associated with HTTP requests. When a disk operation is necessary (e.g., because a file is requested that is not likely to be in the main memory file cache), the main server process instructs a helper via an inter-process communication (IPC) channel (e.g., a pipe) to perform the potentially blocking operation. Once the operation completes, the helper returns a notification via IPC; the main server process learns of this event like any other I/O completion event via select . </li></ul>
    31. 31. Asymmetric Multi-Process Event-Driven (Contd.) <ul><li>The AMPED architecture strives to preserve the efficiency of the SPED architecture on operations other than disk reads, but avoids the performance problems suffered by SPED due to inappropriate support for asynchronous disk reads in many operating systems. AMPED achieves this using only support that is widely available in modern operating systems. </li></ul>
    32. 32. Conceptual vs. Concrete Architecture <ul><li>Conceptual Architecture: </li></ul><ul><ul><li>Resides in the head(s) of the developer(s) </li></ul></ul><ul><ul><li>Mental model: incomplete, inaccurate, ideal </li></ul></ul><ul><li>Concrete Architecture: </li></ul><ul><ul><li>Extracted from the system’s implementation </li></ul></ul><ul><ul><li>Many mismatches with the conceptual architecture </li></ul></ul>
    33. 33. Reference and Software Architectures for Web Servers.
    34. 34. Reference Architecture for Web Servers AOLServer Concrete Architecture Conceptual Architecture Apache Concrete Architecture Conceptual Architecture Jigsaw Concrete Architecture Conceptual Architecture
    35. 35. Reception Resource Handler Request Analysis Access Control Record Transaction Util Operating System Abstraction Layer Web Server Reference Architecture Control flow All depend on
    36. 36. Apache Web Server <ul><li>One of the most extensively used Web server </li></ul><ul><li>Open Source Software which enhances development over a wide range of ideas. </li></ul><ul><li>FREE !!! </li></ul>
    37. 37. Apache: Conceptual Architecture Apache: Conceptual to ref. architecture mapping OSAL . Util. Req. Handler. Request Trans. Access Ctrl. Req. Analysis. Recep . Core MIME type Response Logging Translation Authen- tication Author- ization Util OS Layer
    38. 38. State of art in today’s world <ul><li>Most of the companies today use a Two-Tier Architecture. </li></ul><ul><li>Apache Web server is free and widely used, can be implemented in a two-tier web server architecture. </li></ul><ul><li>We shall discuss in detail about the two-tier architectures over the following several slides. </li></ul>
    39. 39. Two Tier Software Architecture <ul><li>Two tier software architectures were developed in the 1980s from the file server software architecture design. The two tier architecture is intended to improve usability by supporting a forms-based, user-friendly interface. The two tier architecture improves scalability by accommodating up to 100 users (file server architectures only accommodate a dozen users), and improves flexibility by allowing data to be shared, usually within a homogeneous environment. The two tier architecture requires minimal operator intervention, and is frequently used in non-complex, non-time critical information processing systems. </li></ul>
    40. 40. Maturity <ul><li>Two tier client/server architectures have been built and fielded since the middle to late 1980s. The design is well known and used throughout industry. Two tier architecture development was enhanced by fourth generation languages. </li></ul>
    41. 41. Technical Detail <ul><li>Two tier architectures consist of three components distributed in two layers: client (requester of services) and server (provider of services). The three components are </li></ul><ul><li>User System Interface (such as session, text input, dialog, and display management services) </li></ul><ul><li>Processing Management (such as process development, process enactment, process monitoring, and process resource services) </li></ul><ul><li>Database Management (such as data and file services) </li></ul>
    42. 42. Technical Detail (Contd.) <ul><li>The two tier design allocates the user system interface exclusively to the client. It places database management on the server and splits the processing management between client and server, creating two layers. The figure depicts the two tier software architecture. </li></ul>
    43. 43. Technical Detail (Contd.) <ul><li>In general, the user system interface client invokes services from the database management server. In many two tier designs, most of the application portion of processing is in the client environment. The database management server usually provides the portion of the processing related to accessing data (often implemented in store procedures). Clients commonly communicate with the server through SQL statements or a call-level interface. It should be noted that connectivity between tiers can be dynamically changed depending upon the user's request for data and services. </li></ul>
    44. 44. Technical Detail (Contd.) <ul><li>As compared to the file server software architecture (that also supports distributed systems), the two tier architecture improves flexibility and scalability by allocating the two tiers over the computer network. The two tier improves usability (compared to the file sever software architecture) because it makes it easier to provide a customized user system interface. </li></ul><ul><li>It is possible for a server to function as a client to a different server- in a hierarchical client/server architecture. This is known as a chained two tier architecture design. </li></ul>
    45. 45. Usage Considerations <ul><li>Two tier software architectures are used extensively in non-time critical information processing where management and operations of the system are not complex. This design is used frequently in decision support systems where the transaction load is light. Two tier software architectures require minimal operator intervention. The two tier architecture works well in relatively homogeneous environments with processing rules (business rules) that do not change very often and when workgroup size is expected to be fewer than 100 users, such as in small businesses. </li></ul>
    46. 46. Cost and Limitations <ul><li>Scalability: The two tier design will scale-up to service 100 users on a network. It appears that beyond this number of users, the performance capacity is exceeded. This is because the client and server exchange &quot;keep alive&quot; messages continuously, even when no work is being done, thereby saturating the network </li></ul>
    47. 47. Cost and Limitations (Contd.) <ul><li>Interoperability: The two tier architecture limits interoperability by using stored procedures to implement complex processing logic (such as managing distributed database integrity) because stored procedures are normally implemented using a commercial database management system's proprietary language. This means that to change or interoperate with more than one type of database management system, applications may need to be rewritten. Moreover, database management system's proprietary languages are generally not as capable as standard programming languages in that they do not provide a robust programming environment with testing and debugging, version control, and library management capabilities. </li></ul>
    48. 48. Cost and Limitations (Contd.) <ul><li>System administration and configuration: Two tier architectures can be difficult to administer and maintain because when applications reside on the client, every upgrade must be delivered, installed, and tested on each client. The typical lack of uniformity in the client configurations and lack of control over subsequent configuration changes increase administrative workload. </li></ul>
    49. 49. Cost and Limitations (Contd.) <ul><li>Batch jobs: The two tiered architecture is not effective running batch programs. The client is typically tied up until the batch job finishes, even if the job executes on the server; thus, the batch job and client users are negatively affected </li></ul>
    50. 50. Alternatives <ul><li>Possible alternatives for two tier client server architectures are </li></ul><ul><li>The three-tier architecture if there is a requirement to accommodate greater than 100 users </li></ul><ul><li>Distributed/collaborative architectures if there is a requirement to design on an enterprise-wide scale. An enterprise-wide design is comprised of numerous smaller systems or subsystems. </li></ul>
    51. 51. References <ul><li>[Dickman 95] Dickman, A. &quot;Two-Tier Versus Three-Tier Apps.&quot; Informationweek 553 (November 13, 1995): 74-80. </li></ul><ul><li>[Edelstein 94] Edelstein, Herb. &quot;Unraveling Client/Server Architecture.&quot; DBMS 7, 5 (May 1994): 34(7). </li></ul><ul><li>[Gallaugher 96] Gallaugher, J. & Ramanathan, S. &quot;Choosing a Client/Server Architecture. A Comparison of Two-Tier and Three-Tier Systems.&quot; Information Systems Management Magazine 13, 2 (Spring 1996): 7-13. </li></ul><ul><li>[Louis 95] Louis [online]. Available WWW <URL:> (1995). </li></ul><ul><li>[Newell 95] Newell, D.; Jones, O.; & Machura, M. &quot;Interoperable Object Models for Large Scale Distributed Systems,&quot; 30-31. Proceedings. International Seminar on Client/Server Computing . La Hulpe, Belgium, October 30-31, 1995. London, England: IEE, 1995. </li></ul><ul><li>[Schussel 96] Schussel, George. Client/Server Past, Present, and Future [online]. Available WWW <URL:> (1995). </li></ul><ul><li> </li></ul><ul><li> </li></ul><ul><li> </li></ul><ul><li> </li></ul><ul><li> </li></ul><ul><li> </li></ul>
    52. 52. Thank You <ul><li>By </li></ul><ul><li>- Kedar Sivashanmugam </li></ul><ul><li>- Krishna Raju Datla Vamsi </li></ul><ul><li>- Omer Aungkyawoo Piperdi </li></ul>