INTRODUCTION TO SYSTEM MODELS
Systems
that are intended for use in real-world environments should be designed to
function correctly in the widest possible range of circumstances and in the
face of many possible difficulties and threats .
Each type
of model is intended to provide an abstract, simplified but consistent
description of a relevant aspect of distributed system design:
Physical models are the most explicit way in
which to describe a system; they capture the
hardware composition of a system in terms of the computers (and other
devices, such as mobile phones) and their interconnecting networks.
Architectural models describe
a system in terms of the computational and communication tasks performed by its computational
elements; the computational elements being individual computers or aggregates
of them supported by appropriate network interconnections.
Fundamental models take an
abstract perspective in order to examine individual aspects of a distributed system. The fundamental
models that examine three important aspects of distributed systems: interaction models, which consider the
structure and sequencing of the communication between the elements of the
system; failure models, which
consider the ways in which a system may fail to operate correctly and; security models, which consider how the
system is protected against attempts to interfere with its correct operation or
to steal its data.
Architectural models
The
architecture of a system is its structure in terms of separately specified
components and their interrelationships. The overall goal is to ensure that the
structure will meet present and likely future demands on it. Major concerns are
to make the system reliable, manageable, adaptable and cost-effective. The
architectural design of a building has similar aspects – it determines not only
its appearance but also its general structure and architectural style (gothic,
neo-classical, modern) and provides a consistent frame of reference for the
design.
Software layers
The
concept of layering is a familiar one and is closely related to abstraction. In
a layered approach, a complex system is partitioned into a number of layers,
with a given layer making use of the services offered by the layer below. A
given layer therefore offers a software abstraction, with higher layers being
unaware of implementation details, or indeed of any other layers beneath them.
In terms
of distributed systems, this equates to a vertical organization of services
into service layers. A distributed service can be provided by one or more
server processes, interacting with each other and with client processes in
order to maintain a consistent system-wide view of the service’s resources. For
example, a network time service is implemented on the Internet based on the
Network Time Protocol (NTP) by server processes running on hosts throughout the
Internet that supply the current time to any client that requests it and adjust
their version of the current time as a result of interactions with each other.
Given the complexity of distributed systems, it is often helpful to organize
such services into layers. the important terms platform and middleware,
which define as follows:
The important terms platform and middleware,
which is defined as follows:
A
platform for distributed systems and applications consists of the lowest-level
hardware and software layers. These low-level layers provide services to the
layers above them, which are implemented independently in each computer,
bringing the system’s programming interface up to a level that facilitates
communication and coordination between processes. Intel x86/Windows, Intel
x86/Solaris, Intel x86/Mac OS X, Intel x86/Linux and ARM/Symbian are major
examples.
o
Remote Procedure Calls – Client programs call
procedures in server programs
o
Remote Method Invocation – Objects invoke methods
of objects on distributed hosts
o
Event-based Programming Model – Objects receive
notice of events in other objects in which they have interest
Middleware
o
Middleware: software that allows a level of programming
beyond processes and message passing
·
Uses protocols based on messages between processes
to provide its higher-level abstractions such as remote invocation and events
·
Supports location transparency
·
Usually uses an interface definition language (IDL)
to define interfaces
Interfaces in Programming Languages
·
Current PL allow programs to be developed as a set
of modules that communicate with each other. Permitted interact ions between
modules are defined by interfaces
·
A specified interface can be implemented by
different modules without the need to modify other modules using the interface
Interfaces in Distributed Systems
When
modules are in different processes or on different hosts there are limitations on
the interactions that can occur. Only actions with parameters that are fully
specified and understood can communicate effectively to request or provide
services to modules in another process
·
A service interface allows a client to request and
a server to provide particular services
·
A remote interface allows objects to be passed as
arguments to and results from distributed modules
Object Interfaces
An
interface defines the signatures of a set of methods, including arguments,
argument types, return values and exceptions. Implementation details are not
included in an interface.
A class
may implement an interface by specifying behavior for each method in the
interface. Interfaces do not have constructors.
Related Topics
Privacy Policy, Terms and Conditions, DMCA Policy and Compliant
Copyright © 2018-2023 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.