UNIT-I - MASTERRAGHU

advertisement
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 CPU’s.
 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
Download