DISTRIBUTED COMPUTING
Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software. -wikipedia 2for notes
Types of Computing Monolithic Distributed Parallel Cooperative 3for notes
Monolithic Computing The simplest form of computing, a single computer, such as a personal computer(PC), is used for computing. The computer is not connected to any network, and thus it may use only the resources within its immediate access. This form of computing is called Monolithic computing. 4for notes
Monolithic Computing Examples: Use of applications such as word processing program or a spreadsheet on a pc. Mainframe can be used a Monolithic Machine. Multiple users can engage in monolithic computing. The resources can be shared by concurrent users using technique known as Time Sharing. 5for notes
Monolithic Computing Main frameTerminals 6for notes
Distributed Computing Distributed Computing is performed in a distributed system. Distributed System is a collection of independent computers, interconnected via a network, that are capable of collaborating on a task. Computers are considered independent if they do not share memory or program execution space. 7for notes
Distributed Computing Distributed computing involves computing performed among multiple network-connected computers, each of which has its own processor(s) and other resources. A user, using a workstation, has full use of the resources on the local computer to which its workstation is connected as well may resources on the remote computers. 8for notes
Distributed Computing Example: The world wide web is an excellent example of this type of computing. When you use a browser to visit a web site, a program such as Internet Explorer runs on local system and interacts with a program(known as web server) which runs on remote system to fetch a file or resource. 9for notes
Distributed Computing CLIENT SERVER INTERMEDIATE HOSTS 10for notes
Parallel Computing Parallel computing is typically performed on a single computer that has multiple CPUs. It is also possible to compute by connecting the computers in a network but requires special software. 11for notes
Parallel computing Example: weather forecasting,biology and semiconductor design. 12for notes
Cooperative Computing Cooperative Computing is done using multiple computers for processing a task by sharing a problem into units between multiple computers. 13for notes
Cooperative Computing Example: Ebay Auctioning System 14for notes
Strengths of Distributed Computing Affordability and Availability Resource Sharing Scalability Fault tolerance 15for notes
Affordability and Availability Computers connected to internet has become universally available and generally affordable, the large number of interconnected computers makes for an ideal community for distributed computing. 16for notes
Resource Sharing The architecture of distributed computing mirrors the computing architectures of modern organizations. Each organization independently maintains computers and resources that are local to the organization while sharing resources over the network. 17for notes
Scalability Distributed computing provides scalability in that increasing demand for resources can be addressed effectively with addition of resource required. 18for notes
Fault tolerance Distributed computing provides the opportunity for fault tolerance in that a resource can be replicated to sustain its availability in the presence of failures. 19for notes
Weaknesses of Distributed Computing Multiple points of failure Security concerns 20for notes
Multiple points of failure There are more points of failure in distributed computing. Since multiple computers are involved, all of which depend on the network for communication,the failure of one or more computers or one or more network links can cause trouble for distributed computing. 21for notes
Security Concerns In distributed computing there are more opportunities for unauthorized attack. The decentralization of control makes it difficult to implement and enforce security policies, hence distributed computing is vulnerable for security breaches and unauthorized access. 22for notes
Operating Systems Concepts Computer Programs and process Concurrent Programming 23for notes
Program & Process A software program is an artifact constructed by a software developer using some form of programming languages. When a program is run or executed, on a computer it is represented as a process. 24for notes
Process State Transistion 25for notes
Concurrent Programming Distributed computing involves concurrent programming, which is programming that involves the simultaneous execution of processes. Concurrent Processes executed on multiple computers Concurrent Processes executed on a single computer. Concurrent Programming in a process. 26for notes
Multiple computers The processes interact with each other by exchanging data over the network, but their execution is otherwise completely independent. Example: When you access a web page using a browser, a process of the browser program, running on your machine interacts with the process running on the web server machine 27for notes
Single Computer Modern computers are supported by multitasking operating systems, which allow multiple tasks or processes to be executed concurrently. Example: TimeSharing of a resource(such as CPU) by player for some and by a compiler for some time. 28for notes
In a Process Concurrent programming in separate processes, it is often necessary for a single program to initiate tasks that are to be executed concurrently. Example: It may be necessary for a program to perform other tasks while waiting indefinitely for user input in one user interface window.(untill we press a key the program runs) 29for notes
Parent and Child Processes At runtime a process may spawn subordinate processes or child process. The process that spwans subordinate process is called Parent Process. A Child process is a complete process, consisting of an executing program, its own current values, and state information, some of which is inherited from the parent process. 30for notes
Threads A process may spawn threads, also known as lightweight processes. Threads carry a minimum of state information, but otherwise behave the same as processes. They incur less overhead, threads are preferred over child processes. 31for notes
Software Engineering Software engineering is a discipline in computer science that covers the process of developing applications. The classes of building network applications are of two types Procedural Object oriented 32for notes
Procedural The C language is the primary example. It uses procedures to break down the complexity of the tasks of an application. An appplication is coded using a procedure or function. 33for notes
Object-Oriented The example can be Java. The problem is broken into objects and the messages between object. Each object simulates an object in real life, carrying state data as well as behaviours. State – Instance member Behavior - Methods 34for notes
UML An important step in the production of artifacts or documents to record the conceptual design of the application. UML(Unified Modeling Language) is such a facility to provide common set of language notations for specifying, visualizing, constructing and documenting the artifacts of software systems. 35for notes
Architecture of Distributed Applications The idea of using a multilayer architecture to organize the functionalities of a data network can be applied to distributed applications. 36for notes
Functionalities The functionalities of the distributed applications can be classified in three layers: Presentation Layer Application Logic Layer Service Layer 37for notes
Presentation Layer It provides the user interface. Example: If the application is a shopping cart, this layer generates the set of web pages that are viewable by a shooper using a browser 38for notes
Application Logic Layer It provides the computation for the application. Example: This layer is responsible for such tasks as credit card verification and computing the dollar amounts of the orders,sales tax and delivery costs. 39for notes
Service Layer It provides the underlying services needed to support the functionalities of the top two layers. Services may include data access facilities such as DBMS,DNS,IPC 40for notes