StudentShare
Contact Us
Sign In / Sign Up for FREE
Search
Go to advanced search...
Free

Software Architecture - Report Example

Cite this document
Summary
This report "Software Architecture" presents a comparison that is done for both types of web servers. It is important to note that the performance of any web server is dependent not only on its own features but also on the features of the environment in which it is deployed…
Download full paper File format: .doc, available for editing
GRAB THE BEST PAPER94.5% of users find it useful
Software Architecture
Read Text Preview

Extract of sample "Software Architecture"

SOFTWARE ARCHITECTURE OF HIGHTTPD AND THTPPD Section I – Concepts Internet, the global network of individual computers is now a real world infrastructure of communication commonly called World Wide Web. Millions of web based applications have been developed today using various platform such as Windows and Unix-like operating systems such as FreeBSD, SunOS 4, Solaris 2, BSD/OS, Linux, and OSF. Web based applications are a set of instructions written in a programming language which runs on the computer which is installed with a web server. Languages that are most popular for writing web applications are Java, Windows Active Server Pages (ASP), Hyper Text Markup Language (HTML), Pearl, PHP and Cold Fusion. These languages are implemented on the web server as Application Layers under different platforms (Operating Systems) Web server is a computer program written specifically to facilitate and manage the world wide users of computer. It provides the users to access all the services that are available on the internet. These services are provided through implementation of standard protocols developed for internet access. These protocols include HTTP, FTP, telnet, etc. (Course Handouts, 2006) Most common names of web servers used by public in open source area are Apache’s “highttpd” and Acme’s “thttpd”. The operating system on which each of this web server is deployed; its features, strengths and weakness are discussed later in this document. In the remaining part of this document we will refer “highttpd” web server as Apache web server and “thttpd” as Acme web server. Acme web server is deployable only on machines which have Unix-like operating system. Apache on the other hand can be deployed on Windows as well as Unix-like operating systems. A comparison is presented in Section III later in this document to understand which one of the two is a better choice for an individual needs. A specific program is needed by the user to access a web server. This program is called web browser. A web browser communicates with a web server through the HTTP protocol. There are many popular browsers, most common being Internet Explorer from Microsoft and Chrome by Google. There are many other browsers as well which have been popular for sometime but now not so common for example Netscape Gold, etc. Figure 1 below shows the web architecture in which a user has browser on his personal computer; there is a web server on which a web application is residing and in between them there is a link through HTTP protocol. (Course Handouts, 2006) Figure 1: Web Architecture of an open source The true strength of any web server is dependent on the architecture of Application Layers on a server machine. The logical group of software components that integrate and form a service or application is called a Layer. Figure 2 shows a view of an application layer that resides on a web server. Software components used for presentation are logically grouped in Presentation Layers. These are mostly web browsers. Software components which implement business logic are logically grouped in Business Layers. These are mostly customized components. Software components that store and retrieve data are logically grouped in Data Layers. (Course Handouts, 2006) At top of the view is the users’ block that accesses presentation layer, which then uses business layer and data layers for processing. Similarly data layer uses Data Sources and Services to retrieve, store and process data. At the bottom of the view are Data Sources and Services block. (Course Handouts, 2006) Figure 2: A view of an Application Layer Software components that are stored on same machine are physically grouped being located on the same machine. The physical group is known as Tier in the world of architecture. Tiered architecture is built by the help of the Layers and there is no restriction on the number of tiers as is the case with the number of layers. A Single-tier application stores its software component on a single machine, a Two-tier application stores its software component on two machines and an n-tier application stores its software component on “n” machines. (Course Handouts, 2006) Figure 3 shows a Three-tier architecture in which there are three machines; client machine, server machine and database machine. (Course Handouts, 2006) Figure 3: A Three-tier Architecture of web environment It can be quite clear from above explanation how important the role of Application Layers and Tiers on which it is deployed is and how it can affect the performance of a web server. Protocol is a set of rules and regulations as well as procedures to follow for any specific thing. For example HTTP protocol defines a set of rules, regulations and procedures for interaction of two remotely connected machines and it is done by exchange of request-response messages of various types. This is illustrated in Figure 4 which shows a HTTP communication model where a user which is accessing internet through a browser sends request to a web server and web server responses the request to the browser. This communication of messages is stateless as there are no is built-in state management for the successive request. (Course Handouts, 2006) Figure 4: HTTP Communication Model Another important feature provided by a web server is that of Static Web Page and a Dynamic Web Page. It is related with the programming of server side. When at the request of a client for a web page as illustrated in Figure 5, the web server sends only a simple HTML file. This is called a static web page. (Course Handouts, 2006) Figure 5: Static Web Page Request and Response In case of a Dynamic Web page, a web server is able to execute an application to derive some results as illustrated in Figure 6 and then send it to the client. This is needed as changes in the contents of the site are made quite often and the response required is different for different clients based on his request. (Course Handouts, 2006) Figure 6: Dynamic Web Page Request and Response Evolution of Dynamic Web Pages has gone into rapid growth as illustrated in Figure 7 with the development of new languages such as Java, etc. (Course Handouts, 2006) Figure 7: Evolution of Dynamic Web Pages Technologies Section II – Analysis In this section analysis of web architecture is done through a study of the classes of Web Server, HTTP protocol and Web Client. A class represents a container of attributes and methods of any real world object. Figure 8 shows the Class diagram of a Web Server (Rahman, Bantanov and Horiguchi, 2005) Figure 8: Class Diagram of a Web Server In all there are 14 classes in a web server, each one of them has its independent attributes and methods. As can be seen, the Application Controller communicates and controls with the Application Layer. Client Interface with the Web Browser installed on the client machine. Similarly DataHandler class communicates and controls data, SessionHandler class communicates and controls each internet and client sessions. Protocol Handler communicates and controls HTTP protocol and other protocols if used. The ConnectionHandler controls connectivity of the users’ computers on the internet. The performance of the server is totally dependent on the efficiency of all these classes. The flow of data received by a web server is illustrated in Figure 9 in the server architecture of data flow. (Rahman, Bantanov and Horiguchi, 2005) Figure 9: Architecture of Data Flow in server It is important to note that the languages used for developing web application such as Java, ASP, HTML, PERL, PHP, etc. offer easy and user friendly options for creating objects from these classes. HTTP protocol has two main classes. One is the Request class and another is a Response Class. The main attributes of Request Class include Request Method and attributes for address of document, Header Fields, FROM, VIA etc. optionally with Request Parameters. Figure 10 illustrates the HTTP Request example. (Course Handouts, 2006) Figure 10: HTTP Request example HTTP response class has attributes of Result Code, Header Fields and Body which is the information received in response from server. Figure 11 shows an example of HTTP Response. (Course Handouts, 2006) Figure 11: HTTP Response Example Web client which is generally implemented in browser software has also numerous classes as illustrated in its class diagram in Figure 12 Figure 12: Class diagram of client (web browser) Flow of data in a browser is illustrated in Figure 13 which is a sequence diagram of data flow in client from a server. (Rahman, Bantanov and Horiguchi, 2005) Figure 13: Sequence Diagram of data flow from Server to Client Section III – Comparison In this section, a comparison is done for both types of web servers. It is important to note that the performance of any web server is dependent not only on its own features but also on the features of the environment in which it is deployed. The things that can affect the performance of a web server based on its surroundings include first of all the computer hardware. The speed of computer processor, the available memory (RAM) and the size of the hard disk and its access speed have a key role to play in performance. Next important thing is the platform on which the web server is deployed; e.g. Operating System. Is it Windows or Unix-like operating system? The reliability, functionality, speed, response time, processing, connectivity and many such things are all dependent on the services of operating system. If an operating system crashes or hangs, the web server will not work at all. The third important aspect of performance is the network connectivity. Web server uses Internet Protocol and mostly has a unique I.P. address for the functioning of the web server. This service is provided by an external organization generally referred as an ISP which stands for Internet Service Provider. The speed and broadband width bought from this ISP has a very important role to play. The entire web related and internet connection related performance is mostly dependent on the quality of service of the ISP. The number of users who are accessing the web-server generally known as Network Traffic of the internet is also very fundamental. Higher the traffic, lower the response time and speed and Lower the traffic, higher the response time and speed from the web server. At many times it is found that the slowing down of Network Traffic hangs the user computer as if the processor is lost in some never ending loop. None of these web servers for which a comparison is being made have any ability of managing heavy network traffic. Table 1 shows various parameters that can be used for comparison of the two web servers and each of the column of web-server gives the values or description for the respective parameters. Table 1: Comparison of Two Web Servers Comparison parameters “Highttpd” “thttpd” Popular brand name Apache Acme Deployment Platform Windows and Unix-like operating system Only Unix-like Operating systems HTTP Protocol HTTP 1.1 and above HTTP 1.1 Server side programming for dynamic web pages Supported Not supported only static web pages are supported Application Layers support Support for Java, ASP, PERL, COLD FUSION and other languages Support only HTML and PHP Tiers Support Support for Multi-tiers based on the Application Layer Support only Single-tier Speed Excellent Excellent but only for static pages Reliability Robust Robust Usability Very friendly Easy and friendly Varieties Many like Tomcat, etc Only by ACME Maintenance Easy Simple Size on Hard Disk Small Small Support Plenty by Application software seller like Sun-OS, etc. Information available only at acme website which is very limited Economy Open Source with subscription support by some vendors Open Source Usage Most websites of the world are hosted on it that uses Unix-like operating system Limited usage but includes some leading names mentioned on acme’s website. Possibility of Successful implementation Cent percent as supports Java and its dynamic classes Cent percent only where requirements are limited and needs are static. Which one is the best Choice? Depends on the needs but logically this server seems to be the better of the two. Limited usage and choice should be based on determination of requirements References Rahman, Md. Mahbubur, Bantanov, N. Dentcho, Horiguchi, Susumu, (2005). “A Scalable Object-Oriented Client/Server Architecture for Interactive Multimedia Applications over Internet”, International Journal of The Computer, the Internet and Management, Vol. 13 No. 3 Retrieved from http://www.journal.au.edu/ijcim/2005/sep05/ijcimv13n3_article1.pdf Course Handouts, (2006), “CS506-Web Design and Development”, Virtual University of Pakistan: Course Handouts, Virtual University of Pakistan Appendix: UML Diagrams for “highttpd” and “thttpd” Web Server The set functions are used to store the value of a variable in a class and get functions are used to retrieve the value from a variable of the class. Figure 14 and Figure 15 depicts the UML Class diagram of highttpd and thttpd web servers showing commonly known attributes and methods. Figure 14: UML Class diagram for HIGHTTPD Figure 15: UML Class Diagram for THTTPD Read More
Cite this document
  • APA
  • MLA
  • CHICAGO
(Software Architecture Report Example | Topics and Well Written Essays - 2000 words, n.d.)
Software Architecture Report Example | Topics and Well Written Essays - 2000 words. https://studentshare.org/information-technology/1757076-software-architecture-assignment
(Software Architecture Report Example | Topics and Well Written Essays - 2000 Words)
Software Architecture Report Example | Topics and Well Written Essays - 2000 Words. https://studentshare.org/information-technology/1757076-software-architecture-assignment.
“Software Architecture Report Example | Topics and Well Written Essays - 2000 Words”. https://studentshare.org/information-technology/1757076-software-architecture-assignment.
  • Cited: 0 times

CHECK THESE SAMPLES OF Software Architecture

Vehicle Car Service Models for DMS

In this business we are going to develop a new information system for the better business and organizational support.... In this structure we are aimed at… This business use case involves all processes and procedures involved in the business operations.... This business use case involves all This use case has presented the main business operations performed all through the business....
4 Pages (1000 words) Essay

Possible Pre-conditions for the Check Availability of Seats

This section will outline possible pre-conditions for the Check Availability of Seats use case.... To check “Availability of Seats” user must provide the customer details and system will create a customer profile through system check for availability of seats.... hellip; To check “Availability of Seats” user needs to enter the customer's final destination for an excursion....
6 Pages (1500 words) Essay

Software Design

Software Architecture, as defined by Shaw and Garlan (1996), includes a set of crucial decisions concerning the software system organization techniques such as the selection of structural elements and their interfaces; expected behaviors among the defined elements; composition… performance, comprehensibility, usability, aesthetic issues, resilience and economic/technical constraints; and architectural guiding styles for the organization. Software Architecture is also the structure Software Design Software Design Where Software Architecture ends and software design begins....
2 Pages (500 words) Essay

HIT in the Application and Delivery of Health Care

Software Architecture and engineering for patient records: Current and future.... Although keeping up with the high cost that these tools require places a heavy burden upon the system as well as upon the bottom line, the fact of the matter is that in order to continue to integrate with business and the patient, the new applications and software packages are demanded (Chunhau et al, 2009)....
1 Pages (250 words) Essay

Einstein@home: Harnessing the power of voluntary distributed computing

How do the hardware and Software Architecture of a supercomputer differ from the architecture of distributed computing?... The difference in the software and architecture between supercomputer and distributed computing essentially rests on their respective physical implementations.... The difference in the software and architecture between supercomputer and distributed computing essentially rests on their respective physical implementations.... The former involves computing power concentrated in one massively parallel processing facility, where the hardware and software are built to power a centralized machine capable of handling massive load....
1 Pages (250 words) Case Study

CIS 312 4.5.6 question

This design may not work in a non-distributed architecture due to because it is based on the simple recovery as a design goal.... Organizing shared applications in a single shared folder to simplify administrative functions due to the existence of one location for upgrading or installing software and avoiding explicit denial of shared resources Distributed software ArchitectureQ1....
1 Pages (250 words) Assignment

Techniques for Dynamic Analysis for Understanding the Operation of Executables

While undertaking a maintenance task, it is essential to make out and to trace the portion of code that requires altering depending on the perception that is acquired by executing the software and consultation with its use-cases.... n an attempt to decrease such a labor-intensive endeavor, various techniques have been developed to automatically identify the software's features and to trace these features to the source code that executes them.... Static analysis techniques are inadequate for an understanding of executables in a large software system and to establish its features, therefore, static analysis techniques ought to be accompanied by complementary dynamic analysis techniques....
6 Pages (1500 words) Coursework

Software Engineering

esponsibility of the vendors to transfer their takings from their SPAMEX to their bank accountsCharges depends on the cost of the services/products Question B (b) Bill sent to patient Weekly reports New Patient Regular patient Correct Else(Steve1998)Question B (a)(Steve1998)ReferencesMary Shaw, (1996): The Software Architecture: Prentice Hall: New Jersey.... onald Tocci, (1997): The advancement of the software models, Prentice Hall New JerseySteve McConnell, (1998): software Development, Microsoft Press: New York...
7 Pages (1750 words) Coursework
sponsored ads
We use cookies to create the best experience for you. Keep on browsing if you are OK with that, or find out how to manage cookies.
Contact Us