Você está na página 1de 40

DISTRIBUTED COMPUTING

Computing?
Computing is usually defined as the activity of using

and improving computer technology, computer hardware and software.


-wikipedia

Types of Computing
Monolithic
Distributed Parallel Cooperative

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.

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.

Monolithic Computing
Terminals Main frame

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.

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.

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.

Distributed Computing
CLIENT INTERMEDIATE HOSTS

SERVER

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.

Parallel computing
Example: weather forecasting,biology and

semiconductor design .

Cooperative Computing
Cooperative Computing is done using multiple

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

Cooperative Computing
Example: Ebay Auctioning System

Strengths of Distributed Computing


Affordability and Availability
Resource Sharing Scalability Fault tolerance

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.

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.

Scalability
Distributed computing provides scalability in that

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

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.

Weaknesses of Distributed Computing


Multiple points of failure
Security concerns

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.

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.

Operating Systems Concepts


Computer Programs and process
Concurrent Programming

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.

Process State Transistion

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.

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

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.

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)

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.

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.

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

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.

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

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.

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.

Functionalities
The functionalities of the distributed applications can

be classified in three layers:


Presentation Layer Application Logic Layer Service Layer

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

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.

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

Você também pode gostar