Professional Documents
Culture Documents
5 Underlying Principles of Distributed - Software
5 Underlying Principles of Distributed - Software
CS8791/CC/IVCSE/VIISEM/KG-KiTE
Course Outcome
CS8791/CC/IVCSE/VIISEM/KG-KiTE
Syllabus
UNIT I INTRODUCTION
Introduction to Cloud Computing – Definition of Cloud – Evolution
of Cloud Computing –Underlying Principles of Parallel and
Distributed Computing – Cloud Characteristics – Elasticity in Cloud
– On Demand Provisioning
CS8791/CC/IVCSE/VIISEM/KG-KiTE
Distributed Processing
• The term “distributed computing” encompasses any architecture or
system that allows the computation to be broken down into units and
executed concurrently on different computing elements, whether these
are processors on different nodes, processors on the same computer, or
cores within the same processor.
• “Distributed” 🡪location of the computing elements is not the same.
• Such elements might be heterogeneous in terms of hardware and
software features
CS8791/CC/IVCSE/VIISEM/KG-KiTE
Distributed Computing
• A distributed system is one in which hardware or software
components located at networked computers communicate and
coordinate their actions only by message passing
• In the term distributed computing, the word distributed means
spread out across space. Thus, distributed computing is an activity
performed on a distributed system
• Those networked computers may be in the same room, same campus,
same country or in different country
CS8791/CC/IVCSE/VIISEM/KG-KiTE
Components of a Distributed System
CS8791/CC/IVCSE/VIISEM/KG-KiTE
Components of a Distributed System
• Applications
• Middleware
• Operating System
• Hardware
CS8791/CC/IVCSE/VIISEM/KG-KiTE
Architectural Styles for Distributed
Computing
CS8791/CC/IVCSE/VIISEM/KG-KiTE
Component & Connectors
• A component represents a unit of software that encapsulates a
function or a feature of the system.
Eg: programs, objects, processes, pipes, and filters.
CS8791/CC/IVCSE/VIISEM/KG-KiTE
Architectural Styles for
Distributed Computing
CS8791/CC/IVCSE/VIISEM/KG-KiTE
Software Architectural Styles
CS8791/CC/IVCSE/VIISEM/KG-KiTE
1.Data-Centered Architectures
• Identifies the data as the fundamental element of the software
system
• Repository
• central data structure
• independent component
• Black Board Architectural Style
• Knowledge sources
• Blackboard
• Control
CS8791/CC/IVCSE/VIISEM/KG-KiTE
Repository
• The central data structure, Which
represents the current state of the
system, and a collection of
independent components, which
operate on the central data.
CS8791/CC/IVCSE/VIISEM/KG-KiTE
2.Data-Flow Architectures
• The availability of data that controls the computation.
• They incorporate the pattern of data flow
• Their design is determined by an orderly motion of data from
component to component, which is the form of communication
between them.
CS8791/CC/IVCSE/VIISEM/KG-KiTE
Batch-Sequential Style
• Ordered sequence of separate programs executing one after the
other.
• Uses Pipelining concept🡪 previous component output is fed as
current components input
• Popular in the mainframe era
• Eg: pre-filter, analyze, and post-process data
CS8791/CC/IVCSE/VIISEM/KG-KiTE
Concept of Pipelining
CS8791/CC/IVCSE/VIISEM/KG-KiTE
Examples
• A classic example of this architecture is the microprocessor pipeline
where multiple instructions are executed at the same time by
completing a different phase of each of them.
CS8791/CC/IVCSE/VIISEM/KG-KiTE
3.Virtual Machine Architectures
• VM that simulates features that are not available in the hardware or
software
• Applications and systems are implemented on top of this layer and
become portable over different hardware and software environment.
• The application defines its operations and state in an abstract format
which is interpreted by the virtual machine engine.
• The interpretation of a program constitutes its execution.
• Eg: rule-based systems, interpreters, and command language
processors.
CS8791/CC/IVCSE/VIISEM/KG-KiTE
Rule-Based Style
• Programs are expressed in the form of rules or predicates that hold true.
CS8791/CC/IVCSE/VIISEM/KG-KiTE
Interpreter Style
• Presence of an engine that is used to interpret a pseudo program
expressed in a format acceptable for the interpreter.
● An internal memory
CS8791/CC/IVCSE/VIISEM/KG-KiTE
Pros and Cons of VM Architecture
Advantages:
This design has the major advantage of decoupling applications
from the underlying hardware and software environment.
Disadvantages:
•Slow-down in performance.
•
Specific features of the underlying system might not be accessible.
CS8791/CC/IVCSE/VIISEM/KG-KiTE
4.Call and Return Architectures
• Systems that are composed by components mostly connected
together by method calls.
a.Top-Down Style:
• Divide-and-conquer approach for problem resolution One large
main program that accomplishes its tasks by invoking sub-
programs or procedures.
• Components- procedures and sub-programs and connections are
method calls or invocation (Remote method invocation)
CS8791/CC/IVCSE/VIISEM/KG-KiTE
Call and Return Architectures
b.Object-Oriented Style:
•Systems are specified in terms of classes and implemented in terms of objects.
Disadvantages:
•
CS8791/CC/IVCSE/VIISEM/KG-KiTE
c.Layered Style
• Implementation of software systems in terms of layers, which
provide a different level of abstraction of the system.
CS8791/CC/IVCSE/VIISEM/KG-KiTE
5.Independent Components
a. Communicating Processes:
•Components are represented by independent processes that provide inter-process
communication (IPC) facilities for coordination management.
•Peer-to-peer or client-server
b. Event Systems:
•Each component also publishes (or announces) a collection of events that other
components can register with.
•During the activity of a component, a specific runtime condition can activate one of the
exposed events, thus triggering the execution of the callbacks registered with it.
•Advantage: It increases the development of open systems: new modules can be added
and easily integrated into the system as long as they have compliant interfaces for
registering to the events.
CS8791/CC/IVCSE/VIISEM/KG-KiTE
Time To Think (T2T)
What is batch sequential style? (BT Level- Remember)
a) In batch sequential components are independent programs
b) Assumptions is that each step runs to completion before the
next step starts
c) All of the mentioned
d) None of the mentioned
Ans: C
CS8791/CC/IVCSE/VIISEM/KG-KiTE
Time To Think (T2T)
In which of the following style new clients can be added easily? (BT
Level- Remember)
a) Data Flow Architecture
b) Call and Return Architecture
c) Data Centered Architectures
d) None of the mentioned
Ans: C
CS8791/CC/IVCSE/VIISEM/KG-KiTE