Distributed Computing Models Paper Presentation


Distributed Computing is a science which solves a large problem by giving small parts of the problem to many computers to solve and then combining the solutions for the parts into a solution for a problem.This paper will discuss about current architectural models of distributed computing and their advantages and drawbacks.The main focus of this work is to describe about client-server architectural model,3-tier architecture model,n-tier architecture model, tightly coupled architecture model,peer-to-peer architecture model of distributed systems.

I Introduction

The word distributed in terms such as “distributed systems”, ”distributed programming” and”Distributed algorithm” originally referred to as computer networks where individual computers were physically distributed within some geographical area.A distributed system consists of multiple autonomous computers or nodes that communicate which has its own local memory Information is exchanged by passing messages between the processors through a computer network each of The computer interact with each other in order to achieve a common goal.In this,a problem is divided into many tasks,each of which is solved by one computer.The main goal of a distributed computing system is to connect users and resources in a transparent,open and scalable way.Ideally this arrangement is drastically more fault tolerant and more powerful than many combinations of stand alone computer systems.It is very difficult to define distributed system,but each of these systems,do have certain properties which are a part of the systems.Although there are a number of autonomous computational entities,each of these has their own local memory.

· The different entities who are apart of the system communicate between each other by passing messages.
· The system has to tolerate problems or failure in individual computers.
· Often the structure of the sytem,inclusive of the types of network topologies,network latency and number of computers is not known in advance.There can be different kinds of computers and network links which can be a part of the system.At the same time also there are chances of the system changing completely or partially during the execution of a distributed program.

II Parallel and Distributed Computing

The fig.1(a) illustrates a typical distributed system,in this a system is represented as a graph in which each node(vertex) is a computer and each edge(line between two nodes)is a communication link. Figure(b)shows the same distributed system in which each computer has its own local memory,and information can be exchanged only by passing messages from one node to another by using the available communication links. Figure (c) shows a parallel system in which each processor has a direct access to a shared memory.A distributed system can be more reliable than a non distributed systems,as in contrast to a single-node system distributed systems may still function correctly despite failures as other nodes can take over the work of the failed nodes.There

Fig.1 Distributed systems and Parallel systems
are different kinds of failures such as nodes may just crash or they might exhibit an erroneous behavior or may be even to a degree where it cannot be distinguished from malicious behavior.

III Principle

This course introduces the principles of distributed computing.We study some of the fundamental issues underlying the design of distributed systems.
· Communication: Communication does not come for free;often communication cost dominates the cost of local processing or storage.
· Coordination: How can you coordinate a distributed system that it performs some task efficiently?
· Fault-tolerance: Major advantage of a distributed system is that even in the presence of failures the system as a whole may survive.
· Locality: Networks keep growing.Luckily global information is not always needed to solve a task;often it is sufficient if nodes talk to their neighbours.
· Parallelism:How fast can you solve a task if you throw more hardware at the problem?How much parallelism is possible for a given problem?
· Symmetry Breaking:Sometimes some nodes need to be selected to orchestrate the others.This is done by a technique called symmetry breaking.
· Synchronization: How can you implement a synchronous algorithm in an asynchronous system?
· Uncertainity: if we need to agree on a single term describing the course,it probably is “uncertainity”.As the whole system is distributed no node knows what other nodes are doing at this exact moment

IV Goals and Advantages Of Distributed System

There are many different types of distributed computing systems and many challenges to overcome in successfully designing one.The main goal of a distributed computing system is to connect users and IT resources in a transparent,open,cost-effective,reliable and scalable way.Ideally this arrangement is drastically more fault tolerant and more powerful than many combinations of stand alone computer systems.

A Openness
Openness is the property of distributed systems such that each subsystem is continually open to interaction with other systems.There are some protocols and standards which enable distributed systems to be extended and scaled open distributed are inspired to meet the following challenges:
· Monotonicity: Once something is published in an open system,it cannot be taken back.
· Pluralism: Different subsystems of an open distributed system include heterogeneous,overlapping and possibly conflicting information. There is no central arbiter of truth in open distributed systems.

B Scalability
A scalable system is one that can easily be altered to accommodate changes in the number of users,resources and computing entities affected to it.Scalability can be measured in three different dimensions:
· Load Scalability: A distributed system should make it easy for us to expand and contract its resource pool to accommodate heavier or lighter loads.
· Administrative scalability: No matter how many different organizations need to share a single distributed system,it should still be easy to use and manage..

V Drawbacks and Disadvantages

If not planned properly,a distributed system can decrease the overall reliability of computations,if the unavailability of a node can cause a disruption of the other nodes because the analysis may now require connecting to remote nodes or inspecting communications being sent between nodes.There are following disadvantages of distributed sytems.
i Complexity- extra work must be done by the DBAs to ensure that the distributed nature of the system is transparent.Extra database design work must also be done to account for the disconnected nature of the database-for example,joins become prohibitively expensive when performed across multiple systems.
ii Economics- increased complexity and a more extensive infrastructure means extra labour costs.
iii Security- remote database fragments must be secured and they are not centralized so the remote sites must be secured as well.
iv Difficult to maintain integrity- in a distributed database,enforcing integrity over a network may require too much of the network’s resources to be feasible
v Inexperience- distributed databases are difficult to work with and as a young field there is not much readily available experience on proper practice.
vi Lack Of standards – there are no tools or methodologies yet to help users convert a centralized DBMS into a distributed DBMS.

VI Types Of Distributed Systems

A Clusters
A computer cluster is a group of linked computers working together closely,forming a single computer.The components of a cluster are commonly connected to each other through fast local area networks.Clusters are usually deployed to improve performance and availability over that of a single computer.

B Grids
Clusters can be combined to form a grid a system of massive collective computing power which is designed to be easily used by “plugging in” to it.
C Peer-to-Peer
A system where by individual users or nodes can communicate with each other by themselves.

VII Applications of Distributed systems

The applications of distributed system are as follows:-
1)Telecommunication networks:
Distributed system can be used in various Telephone networks,cellular networks,computer networks such as the Internet,wireless sensor networks and Routing algorithms.
2) Network applications:
Distributed systems has a wide scope in World wide web and peer-to-peer networks,Massively multiplayer online games and Distributed information processing systems such as banking systems and airline reservation systems.
3) Real-time process control:
Distributed systems are used in Aircraft control systems and Industrial control systems.
4)Parallel computation:
These distributed sytems can also be used in Scientific computing, including cluster computing and grid computing and various volunteer computing projects and distributed rendering in computer graphics.
VIII Architectural Models Related To Distributed Computing
Various hardware and software architectural models are used for distributed computing.At a lower level,it is necessary to interconnect multiple CPUs with some sort of network regardless of whether that network is printed onto a circuit board or made up of loosely-coupled devices and cables.At a higher level,it is necessary to interconnect processes running on those CPUs with some sort of communication system.Distributed programming typically falls into one of several basic architectures or categories: Client-server, 3-tier architecture,n-tier architecture,tightly coupled architecture,peer-to-peer architecture,space based architecture.

AClient-Server Distributed computing model
The client server model of computing is distributed application structure that partitions tasks of workloads between the providers of a resource or service called servers and service requesters called clients.Often clients and servers communicate over a computer network on a separate hardware but both client and server may reside in the same system.A server machine is a host that is running one or more client does not share any of its resources ,but requests a server’s contents or service function.Clients therefore initiate communication sessions with servers which await incoming requests.

Example of client sever Distributed computing model

B 3-tier Architectural Distributed Computing Model

Three architecture is an extension to the client-server architecture and is defined by the following three component layers

1) Presentation Tier: Also known as the client or front end,deals with the interaction with the user.Usually,there can be any number of clients which can all acess the server at the same time.Clients process user input,send requests to the server,and show the results of these requests to the user.Client implements the presentation logic.
2)Application tier: also known as the server or the back-end or middleware,processes the requests of all clients.It is the actual web application that performs all functionality specific to the web application.The business logic is implemented on an application server(s).Whenever it needs data,it contacts the database server(s).
Example of 3-tier Architecture Distributed computing model
C. N-tier architecture Distributed computing model
N-tier architecture is really 3 tier architectures in which the middle tier or application tier is split up into new tiers.A tier is one of two or more rows,levels or ranks arranged one above another. N-tier refers typically to web applications which further forward their requests to other enterprise services.This type of application is ne most responsible for the success of application servers.N-tier applications have the advantage that any one tier can run on an appropriate processor or operating system platform and can be updated independently of the other tiers.

Example of n-tier distributed computing model
D Tightly coupled Distributed computing model
Example of Tightly coupled Distributed computing model
Tightly coupled actually means two entities are closely associated.It typically refers to a cluster of highly integrated machines that closely work together,running a shared process in parallel.The task is subdivided in parts that are made individually by each one and than put back together to make the final result.The components of a cluster are commonly but not always connected to each other through fast networks.As in given figure all clusters share common main memory and are usually deployed to improve performance and availability overthat of a single computer while typically being much more cost effective than single computers of comparable speed or availability.
E Peer-to-peer Distributed computing model
Example of peer-to-peer Distributed computing model
Peer means a host computer.When many hosts are connected through to share files,computing capabilities,network bandwidth and storage,it calls peer to peer networking system. In peer-to-peer computing,each computer can serve the function of both client and server.Any computer in the network can initiate questions(like a client),receive questions and transmit data(like server). In some cases,peer-to peer computing is implemented by actually giving each computer on the network both server and client capabilities.Peer-to-peer encompasses two distince types of technology:
1) The sharing of different computer processing and storage capabilities
2) The sharing of digital files and data between two computers
IX Conclusion
In the last two decades,we have experienced an unprecedented growth in the area of distributed systems and networks;distributed computing now encompasses many of the entities occurring in todays' world.No one entitiy could ever control the Internet.It's just too distributed, in every sense.The Internet will continue to spread it's already global reach for our foreseeable future, routinely touching every aspect of our daily lives. As we continue our exploration of a truly unknowable future, we must try to keep in mind that in all the important ways we all help to define the future of computing.While there are both physical and non-physical elements that make up this thing we call the Internet, it is really about the convergance of everything we are as a collective. The Internet and the World Wide Web ignore borders and instead allow people the freedom to view the World as a continuim and to see themselves as a part of the whole picture.We are all part of a rapidly evolving complex system, that is constantly changing and adapting, both as a whole and as individual points in a dynamic matrix of objects, processes and events. With each point in the matrix playing an integral part, we will continue to collectively define, create and explore the fantastic future of computing.
X References
[1]Andrews, Gregory R. (2000),Foundations of Multithreaded, Parallel, and Distributed Programming,Addison–Wesley,ISBN 0-201-35752-6.
[2]Arora, Sanjeev; Barak, Boaz (2009),Computational Complexity – A
[3]Modern Approach,Cambridge,ISBN 978-0-521-42426-4.
[4]Cormen, Thomas H.;Leiserson, Charles E.;Rivest, Ronald L.(1990),Introduction to Algorithms(1st ed.),MIT Press,ISBN 0-262-03141-8.
[5]Dolev, Shlomi(2000),Self-Stabilization,MIT Press,ISBN 0-262-04178-2.
[6]Elmasri, Ramez;Navathe, Shamkant B.(2000),Fundamentals of Database Systems(3rd ed.),Addison–Wesley,ISBN 0-201-54263-3
[7]Ghosh, Sukumar (2007),Distributed Systems – An Algorithmic Approach, Chapman & Hall/CRC,ISBN 978-1-58488-564-1
[8]Lynch, Nancy A.(1996),Distributed Algorithms,Morgan Kaufmann,ISBN 1-55860-348-4.
[9]Herlihy, Maurice P.;Shavit, Nir N.(2008),The Art of Multiprocessor Programming,Morgan Kaufmann,ISBN 0-12-370591-6.
[10]Papadimitriou, Christos H.(1994),Computational Complexity,Addison–Wesley,ISBN 0-201-53082-1.
[11]Peleg, David(2000),Distributed Computing: A Locality-Sensitive Approach,SIAM,ISBN 0-89871-464-8.
[12]Cole, Richard;Vishkin, Uzi(1986), "Deterministic coin tossing with applications to optimal parallel list ranking",Information and Control70(1): 32–53,doi:10.1016/S0019-9958(86)80023-7.