DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and...

40
DISTRIBUTED COMPUTING

Transcript of DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and...

Page 1: DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.

DISTRIBUTED COMPUTING

Page 2: DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.

Computing?Computing is usually defined as the activity

of using and improving computer technology, computer hardware and software.

-wikipedia

Page 3: DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.

Types of ComputingMonolithic DistributedParallelCooperative

Page 4: DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.

Monolithic ComputingThe 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.

Page 5: DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.

Monolithic ComputingExamples: 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”.

Page 6: DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.

Monolithic Computing

Main frameTerminals

Page 7: DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.

Distributed ComputingDistributed 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.

Page 8: DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.

Distributed ComputingDistributed 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.

Page 9: DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.

Distributed ComputingExample: 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.

Page 10: DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.

Distributed ComputingCLIENT

SERVER

INTERMEDIATE HOSTS

Page 11: DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.

Parallel ComputingParallel computing is typically performed on

a single computer that has multiple CPU’s.

It is also possible to compute by connecting the computers in a network but requires special software.

Page 12: DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.

Parallel computingExample: weather forecasting,biology and

semiconductor design .

Page 13: DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.

Cooperative ComputingCooperative Computing is done using

multiple computers for processing a task by sharing a problem into units between multiple computers.

Page 14: DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.

Cooperative ComputingExample: Ebay Auctioning System

Page 15: DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.

Strengths of Distributed ComputingAffordability and AvailabilityResource SharingScalabilityFault tolerance

Page 16: DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.

Affordability and AvailabilityComputers connected to internet has become

universally available and generally affordable, the large number of interconnected computers makes for an ideal community for distributed computing.

Page 17: DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.

Resource SharingThe 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.

Page 18: DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.

ScalabilityDistributed computing provides scalability in

that increasing demand for resources can be addressed effectively with addition of resource required.

Page 19: DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.

Fault toleranceDistributed computing provides the

opportunity for fault tolerance in that a resource can be replicated to sustain its availability in the presence of failures.

Page 20: DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.

Weaknesses of Distributed ComputingMultiple points of failureSecurity concerns

Page 21: DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.

Multiple points of failureThere 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.

Page 22: DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.

Security ConcernsIn 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.

Page 23: DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.

Operating Systems ConceptsComputer Programs and processConcurrent Programming

Page 24: DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.

Program & ProcessA 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.

Page 25: DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.

Process State Transistion

Page 26: DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.

Concurrent ProgrammingDistributed computing involves concurrent

programming, which is programming that involves the simultaneous execution of processes.Concurrent Processes executed on multiple

computersConcurrent Processes executed on a single

computer.Concurrent Programming in a process.

Page 27: DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.

Multiple computersThe 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

Page 28: DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.

Single ComputerModern 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.

Page 29: DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.

In a ProcessConcurrent 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)

Page 30: DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.

Parent and Child ProcessesAt 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.

Page 31: DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.

ThreadsA 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.

Page 32: DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.

Software EngineeringSoftware engineering is a discipline in

computer science that covers the process of developing applications.

The classes of building network applications are of two typesProcedural Object oriented

Page 33: DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.

ProceduralThe 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.

Page 34: DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.

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 memberBehavior - Methods

Page 35: DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.

UMLAn 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.

Page 36: DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.

Architecture of Distributed ApplicationsThe idea of using a multilayer architecture to

organize the functionalities of a data network can be applied to distributed applications.

Page 37: DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.

FunctionalitiesThe functionalities of the distributed

applications can be classified in three layers:

Presentation LayerApplication Logic LayerService Layer

Page 38: DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.

Presentation LayerIt 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

Page 39: DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.

Application Logic LayerIt 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.

Page 40: DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.

Service LayerIt 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