HTTP, WEB SERVERS & WEB SERVICES (2003)
The relationships among HTTP, Web Server and Web Services are a complicated set of functionalities and exchanges of information. Each component plays an important role in the thousands of functions users can access and utilize on the Internet. HTTP allows users to interact with Web Servers and access information via the Internet. Web servers serve data and files to users who request them. Web Services allow cross-system, cross-language communication among various kinds of machines and enable inter-business transaction. Although each technology works on its own and performs many useful functions, it is the combination of these technologies that has created the dynamic functionalities of the Web that are available today. This research paper will explore the inter-relationships between HTTP, Web Servers and Web Services technologies that have facilitated the functionalities and convenience of the Web.
HTTP, or Hypertext Transfer Protocol, is the standard protocol currently used to access the Internet. According to the World Wide Web Consortium, HTTP “is an application-level protocol for distributed, collaborative, hypermedia information systems.” (http://www.w3.org/Protocols/rfc2616/rfc2616-sec1.html#sec1) It is a very simple protocol that allows raw data to be transferred across the Internet. From this simple data transfer protocol, users of the Internet can easily perform functions and give commands to the Web Servers through a graphic user interface (GUI) the as a Web page viewed through a browser and not worry about the specific details of how the command is going to be transferred or interpreted by the computers involved. HTTP allows such exchange of information between the user’s computer and the Web Server to take place rapidly and efficiently.
Nevertheless, efforts have been made to improve HTTP. From the first HTTP 0.9, through HTTP 1.0, to the latest HTTP 1.1, numerous improvements have been made. Some of the improvements are:
A server is “a computer or device on a network that manages network resources.” (http://www.webopedia.com/TERM/s/server.html) There are many different kinds of servers: the dial-up server that serves as a gateway for the user to access the rest of the Internet; the printer server that manages one or more printers connected to the network, allowing users to access various printers remotely; and Web Servers that stores web pages and other data and information that are provided to users upon request.
A Web Server is the central nervous system of Web Site. It is the Web Server that hosts both the components of a Web page such as the actual Web page HTML files, CSS files and templates and all other essential technologies that make a Web site function the way it does. Although all Web servers function similarly, the set up and the way a server could be set can vary drastically.
There are two common ways to setting up Web Servers: P2P and Client-Server. P2P, or Peer-to-Peer, indicates a direct connection of individual computers to one another where each computer can specify what data it is willing to share. (http://www.hchs.hc.edu.tw/cc/計概/網路的架構.htm) This kind of network is very easy and cheap to set up. Furthermore, the speed of file transfer in a P2P network is not constrained by the capability of any single server/computer. Since each computer in the network is capable of becoming a server on its own, a file could be shared and transferred from multiple servers at the same time, thus increasing the file transfer rate. However, since each computer in the network is a server, each computer on the network needs to be set up individually. The responsibility of managing the system lies in the hands of every single owner of every single computer that is connected to the network. Consequently, the management of a P2P network is extremely difficult. Due to the decentralized management of the network, servers with a P2P connection are susceptible to virus and worm attacks.
The Client-Server network, on the other hand, is a highly centralized network system with one central computer as the server. This set up is easy to manage and secure. Yet, maintaining a centralized network requires tremendous amount of resources ranging from manpower to hardware. As a result, the cost of a client-server network is very high. Another drawback of a client-server set up is that the speed of file transfer between the client and the server slows down when the number of clients accessing the server at a time is too high. Nevertheless, because of its ease to manage and good security, client-server network is still the dominant set up of Web Servers. Apache, a free server technology, is currently one of the most popular server technologies in use today.
The first version of Apache, based on the NCSA httpd Web Server, was developed in 1995 by a “loosely-knit group of [about 20] programmers.” (http://www.webopedia.com/TERM/A/Apache_Web_server.html) Apache provides full source code and an unrestrictive license. Apache users can easily change, adapt, or modify the software in accordance with the needs of their particular organization. Additional modules, either written by the user or downloaded free of charge from the vast Apache module library online, could easily be added to accommodate any specific needs of the user. Apache is also capable of performing many functions such as DBM database authentication, multiple DirectoryIndex directives, unlimited flexible URL rewriting and aliasing, content negotiation and virtual hosts.
Web Service is a very powerful tool that has greatly enhanced the efficiency and communication among businesses. According to the World Wide Web Consortium, “a Web Service is a software system designed to support interoperable machine-to-machine interaction over a network.” (http://www.w3.org/TR/2003/WD-ws-arch-20030808/#id2608472) Alternatively, Zeldman defines Web Services as a “reusable software components based on XML and related protocols that enable near zero-cost interaction throughout the business ecosystem.” (Zeldman, p. 112) In other words, Web Services is a software system that allows machines (including servers) to communicate with each other regardless of each individual machine’s operating systems and programming languages. The Symon's Extensible Markup Language (XML) Page provides a very nice formula that neatly defines the major components of Web Services: “Web services = XML + SOAP + WSDL + UDDI” (http://home.earthlink.net/~symonchang/xml.htm).
Extensible Markup Language (XML) is the universal markup language that all machines are capable of understanding. In the process of inter-machine communication via Web services, XML is used to tag the data involved. Web Services Description Language (WSDL), on the other hand, is being used for describing the services available. Then Universal Description, Discovery and Integration (UDDI) lists the services available from that particular machine. Lastly, Simple Object Access Protocol (SOAP) is used to transfer data for each exchange of information between machines and servers, which typically involve “HTTP with an XML serialization in conjunction with other Web-related standards.” (http://www.w3.org/TR/2003/WD-ws-arch-20030808/#id2608472) Consequently, Web Services “are not tied to any one operating system or programming language.” As a result, via Web Services, Java based programs will be able to talk to servers running C++ based programs and a Windows machine will be able to communicate with a LINUX machine. (http://www.webopedia.com/TERM/W/Web_services.html)
While serving a similar function as the Web, Web Services do have some significant differences. The most prominent difference between Web services and the Web is that instead of a user interface, Web Services functions via application interfaces. In other words, the machines communicate with each other application to application. Such exchanges limit possible user errors and thus increase the efficiency of the exchange.
How HTTP, Web Servers and Web Services Work Together
The interaction among HTTP, Web Servers and Web Services is simple: HTTP is a simple protocol browsers use to communicate with Web Servers. Web Servers, on the other hand, fulfill users’ requests and store the information users provide. Meanwhile, Web Services allow different Web Servers to communicate and interact with one another in order to process the request and/or commands of the user.
A good example of how the interconnectivity among the three technologies works would be a user trying to buy a plane ticket online. The user would access a travel agency’s Web page to query for the availability of seats, date and time of the flight and prices of the plane ticket. In this querying process, HTTP acts as the language that users end up using to communicate with the Web server that actually can access the information of flight date, time, seat availability and prices from the airlines database. According to the values users input into the Web page (i.e. GUI) and transmitted to the Web server via HTTP, the Web server performs the command of search by sending out commands of this query to each individual airline’s flight schedule databases using an application to application interface, i.e. Web services. Web services translate whichever markup language the Web server uses into the universally understood XML that gets relayed to the databases of all the airlines. When the XML is received by the airline databases, Web services then translates the XML into whatever programming language that each database is using so that the database would be able to understand the command the Web server sent out. After the query has been completed, the result would be transmitted back to the Web server through Web services again. Then the Web server would relay these search results to the user via HTTP which would present the information to the user through an HTML file that could be interpreted by a browser.
In sum, the simple function of querying for flight schedules and seats requires all three technologies, HTTP, Web server and Web services, to work together. Without any of these technologies, the query would fail or the scope of the search would be drastically limited.
The functionalities that HTTP, Web Servers and Web Services provide dramatically changed the way companies, as well as individuals, conduct business online. While each technology was created for one specific purpose, it is the combination of these technologies that has greatly enhanced the transfer of information online. The example of users purchasing plane tickets online shows how critically important a role each technology plays in one of the most common tasks users can accomplish on the Internet today. Without any one of these technologies, e-commerce would not have boomed and the convenience users enjoy would not have existed today.