A distributed system is a system with a model which is comprised of many components that are networked by use of computers to enable communication and coordination of passage of messages between the components in order to achieve a certain goal. The goal maybe a large computational problem. Coordination of the components comes as a result of different systems communicating to achieve one goal thus a coordinating mechanism is required. For this paper a deeper analysis on the World Wide Web which is a network application is done.
World Wide Web
The innovators of the World Wide Web initially envisioned it as a global hyperlinked information system. The web evolved to become an open system which is usually extended and implemented without causing a disturbance to its existing functionality. To help understand the web as a distributed the web can be looked at as a large client-server information system with very many servers that are distributed all over the world. Each server holds a collection of documents which are stored as a file. For a client accessing a server, the client makes a request and the server fetches the document and transfers it to the client who made the request. The client accesses the server using a web browser. Thus, it’s clear to see that processing in World Wide Web occurs across distributed servers but a client only accesses it using his or her browser. In some cases, servers serving the same purpose are distributed all over the world. For example considering Google search, when a client opens google search, the client is connected to the nearest Google search server instead of connecting to the main Google search server. All this servers all serve on purpose but are distributed to make connections and processing faster.
Processing in World Wide Web works by a user accessing a server using a browser. The client has to make a request usually by using a Uniform Resource Locator which specifies where the document that the client is searching for is located. The browser used to make the request displays the document in a proper manner which is easy to decode for the user foe example by use of images and text. Documents can however be expressed further by use of scripting languages like HTML and XML. To process the documents the web was enhanced to support user interaction through use of Common Gateway Interface (CGI) which defines the standard through which a web server executes a program using data from the client (Cole, Richard, Vishkin and Uzi, 1986). The data is gotten from the client as input using the browser and is mostly through use of a HTML form. The data from the client will specify which program or script is going to be executed at the web server.
Figure 1: Server side execution of programs
Figure 1 above shows the execution of a program on the server side after a request is sent by the client. The request contains inputs from the user and parameters that specify how the program will process the input. After execution the server then sends a response to the user. To help understand this further, a client accesses an online calculator using the URL of the online calculator. The server then sends a document which consists of the form that the user is supposed to fill in order to do various computations. The user fills the fields and select which kinds of computations he or she want s to do and submits to the server. The server will use the input the input from the client to do the computation and then return a result. No computation is done on the client’s computer. The client only sends requests to the server and the server does all the processing.
Besides execution of server-side scripts, another form of processing exists where by precompiled programs are sent to the client in the form of applets. An applet is a usually a small standalone web based application that is sent to the client side and is executed using the client’s browser. All computations can be done on the client side but some time communication with the server can be done using a servlet which can communicate with the applet to do various computations depending on the design.
The World Wide Web is interconnected through a protocol called Internet Protocol. Computers connect to the internet using a unique internet protocol (IP). Computers are connected over a network which might be through wireless networks or use of copper cables or fiber cables. Communication is done through a protocol. The protocol has a set of predefined rules that define how communication should be done between the computers.
For the World Wide Web information can be stored on the web servers themselves as files or can also be stored in database servers which use a relational database management system to store information. This can be illustrated as shown in figure 1 where by the web server can access an external database server.
The protocol used for the Web is Hypertext Transfer Protocol (HTTP). HTTP is a simple client-server protocol which basically works by a client sending a request to a server and the user waiting for the server to respond. This protocol is used together with Transmission Control protocol (TCP) which specifies how information will be transmitted between the client and the server. There is another protocol which can be used in place for TCP which is User Datagram Protocol. The difference between TCP and UDP is that TCP is connection oriented while UDP is not connection oriented. This means that TCP ensures that all packets sent reach the destination and does recovery in case of loss of packets while UDP does not guarantee reaching of the packets to the destination (Rouse, 2008). HTTP has various methods that enable the client to communicate with the server. This methods include Get, Put, Post and Delete.
There are many advantages associated with using the World Wide Web as a distributed system. The World Wide Web enables parallel computing where by resources can be distributed over a number of servers thus extending the computing capability of the overall system. With distributed computing especially through use of the World Wide Web clients do not have to be attached to one computer to use certain resources or to run a program as they can access the resources from any location using a range of devices. With advancement in technology, technologies like cloud computing are revolutionizing how far the World Wide Web can be extended to make more dynamic and on demand resources over the internet.
Since the World Wide Web is an open distributed system this has weighty disadvantages when looked at in an information system’s perspective. The fact that that the World Wide Web is open brings issues arising from security (McDunnigan, 2015). An information system deployed on the World Wide Web is susceptible to malicious attacks since information is transmitted in open environment. However solutions like encryption and transport layer security are making it easy to manage security risks.
The World Wide Web is a good example of a distributed system as it can be seen as a huge client server model with millions of servers distributed all over the world with clients accessing the servers through browsers.
Cole, Richard, Vishkin, Uzi (1986), "Deterministic coin tossing with applications to optimal parallel list ranking", Information and Control, 70 (1): 32–53
George. C., Jean, D., Tim, K., Gordon, B., (2012). Distributed Systems: Concepts and Design (5th Edition), Addison-Wesley.
McDunnigan, M. (2015). Advantages & Disadvantages of Distributed Systems. Retrieved November 3, 2017, from https://www.techwalla.com/articles/advantages-disadvantages-of-distributed-systems
Rouse, M. (2008). Internet Protocol. Retrieved November 3, 2017, from https://searchunifiedcommunications.techtarget.com/definition/Internet-Protocol