chap-02v2 modified by pratit

Upload: hung-vo

Post on 03-Apr-2018

228 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/28/2019 Chap-02v2 Modified by Pratit

    1/61

    0

    DISTRIBUTED SYSTEMS

    Principles and Paradigms

    Second EditionANDREW S. TANENBAUM

    MAARTEN VAN STEEN

    Chapter 2ARCHITECTURES

    Modified by Pratit Santiprabhob

  • 7/28/2019 Chap-02v2 Modified by Pratit

    2/61

    1

    Architecture (Software) Architecture: logical organization of distributed

    systems into software components!

    Designing/Adopting a good architecture is crucial for thesuccess of system to be developed!

    Architecture style is important; a style is formulated in termsof components, the way that components are connected

    together, the data exchanged between components, and how

    they are jointly configured into a system

    A component is a modular unit with well-defined (requiredand provided) interfaces that is replaceable within its

    environment

    A connectoris a mechanism that mediates communication,

    coordination, or cooperation among components

  • 7/28/2019 Chap-02v2 Modified by Pratit

    3/61

    2

    Architectural Styles (1) Important styles of architecture for distributed

    systems are Layered architectures

    Networking

    Object-based architectures Client/Server

    Data-centered architectures Shared distributed file system, shared Web-based data

    services

    Event-based architectures Publisher/subscriber system; loosely coupled

    referentially decoupled Data may be sent with events

    Shared data spaces Combination of event-based and data-centered

    architectures

    Processes are decoupled in time, sharing throughshared persistent data space

  • 7/28/2019 Chap-02v2 Modified by Pratit

    4/61

    3

    Architectural Styles (2)

    Figure 2-1. (a) The layered architectural style.

  • 7/28/2019 Chap-02v2 Modified by Pratit

    5/61

    4

    Architectural Styles (3)

    Figure 2-1. (b) The object-based architectural style.

  • 7/28/2019 Chap-02v2 Modified by Pratit

    6/61

    5

    Architectural Styles (4)

    Figure 2-2. (a) The event-based architectural style.

  • 7/28/2019 Chap-02v2 Modified by Pratit

    7/616

    Architectural Styles (5)

    Figure 2-2. (b) The shared data-space architectural style.

  • 7/28/2019 Chap-02v2 Modified by Pratit

    8/617

    System Architectures Software components and their interaction dictate software

    architecture as well as system architecture

    Major ones include

    Centralized architectures

    Client/Server architectures

    Decentralized architectures

    Structured peer-to-peer architectures

    Unstructured peer-to-peer architectures

    Superpeers Hybrid architectures

    Edge-server systems

    Collaborative distributed systems

  • 7/28/2019 Chap-02v2 Modified by Pratit

    9/61

    8

    Centralized Architectures Many researchers and practitioners in distributed system field

    agrees that thinking in terms of clients requesting services

    from servers and servers providing services to clients helps

    enhance understanding and design of distributed systems

    The client/server model also helps us manage the complexityof distributed systems

  • 7/28/2019 Chap-02v2 Modified by Pratit

    10/61

    9

    Client/Server Model (1) Client/Server model consists of

    A serverwhich is a process implementing a specific service;

    waiting for a request from a client

    A client which is a process requesting a service from a server by

    sending a request and waiting for a response In a connectionless environment, responses may be lost

    during transmission leading to a problem of what to do when

    a client receives no response?

    Idempotent operation is an operation that can be repeatedmultiple times without any harm (no different effects left)!

    Connection-oriented communication may be an alternativewith additional overhead

  • 7/28/2019 Chap-02v2 Modified by Pratit

    11/61

    10

    Client/Server Model (2)

    Figure 2-3. General interaction between a client and a server.

  • 7/28/2019 Chap-02v2 Modified by Pratit

    12/61

    11

    Application Layering (2) Typical client/server applications can be divided into threelayers

    The user interface level

    Could be as simple as text-based interface all the way to full-fledged object-based windows interface

    The processing level This part pretty much varies depending on the respective

    applications

    Could be anything from calculation, to searching, to generatingHTML pages

    The data level Maintains actual data on which the applications operate

    Data is often persistent

    Data must be consistent across different applications

    Depending on the nature of the data, relational or object-oriented

    data model may be used

  • 7/28/2019 Chap-02v2 Modified by Pratit

    13/61

    12

    Application Layering (2)

    Figure 2-4. The simplified organization of an Internet search

    engine into three different layers.

  • 7/28/2019 Chap-02v2 Modified by Pratit

    14/61

    13

    Multitiered Architectures (1)

    The simplest organization is to have only

    two types of machines (two-tiered):

    A client machine containing only the

    programs implementing (part of) the user-interface level

    A server machine containing the rest, the

    programs implementing the processing and

    data levels

  • 7/28/2019 Chap-02v2 Modified by Pratit

    15/61

    14

    Multitiered Architectures (2) However, within this two-tiered architecture, the division of

    work between client and server can vary (as to be seen on

    next slide)

    The thin client arrangement in which most processing is done

    on the server side is normally preferred to the fat clientarrangement where the processing is done more on the client

    side

    Not too much dependent on client platform which is usually less

    stable than the server platform Let client does only few things reduces the chance that client

    software will be prone to errors

    Management is much simpler especially when it comes to

    software upgrade/maintenance since more stuffs are on the

    server

  • 7/28/2019 Chap-02v2 Modified by Pratit

    16/61

    15

    Multitiered Architectures (3)

    Figure 2-5. Alternative client-server organizations (a)(e).

  • 7/28/2019 Chap-02v2 Modified by Pratit

    17/61

    16

    Multitiered Architectures (4) With a lot of things to be done by the server side, the server

    processing can very well be further distributed

    This leads to 3-, 4-tiered architectures, e.g.

    3-tiered: client, TP monitor, (possibly many) database server(s)

    3-tiered: client, application server, database server

    4-tiered: web browser, web server, application server, databaseserver

  • 7/28/2019 Chap-02v2 Modified by Pratit

    18/61

    17

    Multitiered Architectures (5)

    Figure 2-6. An example of a server acting as client.

  • 7/28/2019 Chap-02v2 Modified by Pratit

    19/61

    18

    Decentralized Architectures The centralized architectures distribute logically different

    components in on different machines; this is called verticaldistribution

    In vertical distribution, functions are logically and physically

    distributed across multiple machines On the other hand, in horizontal distribution, a client or a

    server may be physically split up into logically equivalent

    parts; each part is operating on its own share of the complete

    data set, hence, balancing the load This horizontal distribution architecture is represented by

    peer-to-peer systems

  • 7/28/2019 Chap-02v2 Modified by Pratit

    20/61

    19

    Peer-to-Peer Systems The processes that constitute a peer-to-peer system are

    basically equal; functions are represented by every process

    Thus, much of the interaction between processes is

    symmetric; each process acts as a client and a server at the

    same time! (acting as a servent) An overlay network is a network in which the nodes are

    formed by the processes and the links represent the possible

    communication channels; they are two types of overlay

    network Structured

    Unstructured

  • 7/28/2019 Chap-02v2 Modified by Pratit

    21/61

    20

    Structured Peer-to-Peer Architectures (1) Here, the overlay network is constructed using a deterministic

    procedure Typical arrangement is through the used of Distributed Hash

    Table (DHT)

    Data items/objects are assigned a random key from a largeidentifier space, e.g. 128-bit or 160-bit space

    Nodes are also assigned a random key from the same identifier

    space

    Data items are then associated with their respective appropriate

    node, based on some sort of distance algorithm

    Two examples are Chord system and Content Addressable

    Network (CAN)

    Membership management will now be examined

  • 7/28/2019 Chap-02v2 Modified by Pratit

    22/61

    21

    Structured Peer-to-Peer Architectures (2) In Chord system,

    Nodes and data items are organized in a ring

    Each data item with key kis mapped to the node with the

    smallest id k

    A new node joining the ring is required to work with itssuccessor and predecessor and transferred certain data items

    from its successor

    A node leaving the ring also needs to inform its successor and

    predecessor and transfer all data items associated with to the

    successor

  • 7/28/2019 Chap-02v2 Modified by Pratit

    23/61

    22

    Structured Peer-to-Peer Architectures (3)

    Figure 2-7. The mappingof data items ontonodes in Chord.

  • 7/28/2019 Chap-02v2 Modified by Pratit

    24/61

    23

    Structured Peer-to-Peer Architectures (4) In Content Addressable Network (CAN)

    d-dimensional Cartesian coordinate space is used to contain

    data items and is completely partitioned among all the nodes

    participating in the system

    Each node maintain the knowledge of its neighbors When a node wants to join the system, it arbitrarily picks up a

    coordinate, looks up which node is taking care of that coordinate

    then asks that node to split the space in half, gives one half

    together with the associated data items to it

    When a node wants to leave the systems, its region will beassigned to one of its neighbors

    After awhile (some nodes leaving), the system will be left in a

    not very symmetric partitioning; background repartitioning of the

    coordinate space should be performed periodically in

    background

  • 7/28/2019 Chap-02v2 Modified by Pratit

    25/61

    24

    Structured Peer-to-Peer Architectures (5)

    Figure 2-8. (a) The mapping

    of data items onto nodes

    in CAN.

  • 7/28/2019 Chap-02v2 Modified by Pratit

    26/61

    25

    Structured Peer-to-Peer Architectures (6)

    Figure 2-8. (b) Splitting aregion when a node

    joins.

    Unstructured Peer to Peer

  • 7/28/2019 Chap-02v2 Modified by Pratit

    27/61

    26

    Unstructured Peer-to-PeerArchitectures (1)

    Unstructured peer-to-peer systems rely on randomizedalgorithms for constructing an overlay network

    Each node maintain a list of neighbors

    The neighbor list is constructed in a more or less random way

    Data items are assumed to place randomly on nodes

    Basically, when a node needs to locate a specific data item, itneeds to flood the network with a search query

    Membership management

    We want to construct an overlay network that resembles a

    random graph Each node is to maintain a list ofcneighbors of randomly

    chosen live nodes a partial view

    One framework to construct and maintain a partial view isshown on next slides

    Unstructured Peer to Peer

  • 7/28/2019 Chap-02v2 Modified by Pratit

    28/61

    27

    Unstructured Peer-to-Peer

    Architectures (2)

    Figure 2-9. (a) The steps taken by the active thread.

    U d P P

  • 7/28/2019 Chap-02v2 Modified by Pratit

    29/61

    28

    Unstructured Peer-to-Peer

    Architectures (3)

    Figure 2-9. (b) The steps take by the passive thread

    Unstructured Peer to Peer

  • 7/28/2019 Chap-02v2 Modified by Pratit

    30/61

    29

    Unstructured Peer-to-PeerArchitectures (4)

    A joining node can contact an arbitrary other node (may befrom a list of well-known access points highly available

    nodes) to start its association with the network

    Protocols that use only push or pull mode may lead to

    undesirable, disconnected overlays Both modes should be employed to make nodes actually

    exchange entries

    A leaving node may just silently leave the network

    Assumption the partial view is regularly exchanged amongnodes, the node that has departed will no longer respond and

    will be removed from its peers partial view

    Note however that for a given node P, thehigher its indegree

    is the more chances it will be contacted, hence the moreworkload it will have

    Topology Management of Overlay

  • 7/28/2019 Chap-02v2 Modified by Pratit

    31/61

    30

    Topology Management of OverlayNetworks (1)

    By carefully exchanging and selecting entries from partialviews, it is possible to construct and maintain specific

    topologies of overlay networks

    Two-layered approach

    The lower layer is an unstructured peer-to-peer system in whichnodes periodically exchange entries of their partial views with

    the aim to maintain an accurate random graph partial viewsfilled with randomly selected live node

    The partial view is passed to upper layer where additional

    selection of entries take place

    Some sort of ranking functions can be used order nodes with a

    criterion with respect to a given node, e.g. by distance, bysemantic proximity, etc.

    Topology Management of Overlay

  • 7/28/2019 Chap-02v2 Modified by Pratit

    32/61

    31

    Topology Management of Overlay

    Networks (2)

    Figure 2-10. A two-layered approach for constructing and

    maintaining specific overlay topologies using techniques from

    unstructured peer-to-peer systems.

    Topology Management of Overlay

  • 7/28/2019 Chap-02v2 Modified by Pratit

    33/61

    32

    Topology Management of Overlay

    Networks (3)

    Figure 2-11. Generating a specific overlay network using a two-layered unstructured peer-to-peer system [adapted with

    permission from Jelasity and Babaoglu (2005)].

  • 7/28/2019 Chap-02v2 Modified by Pratit

    34/61

    33

    Superpeers (1) In some cases, it may be wise to shy away from the

    symmetric nature of pure peer-to-peer network

    Note that locating relevant data items in an unstructured

    peer-to-peer system can really be a problem especially when

    the network grows E.g. in a collaborative Content Delivery Network (CDN), nodes

    may offer storage to host copies of Web pages allowing Web

    clients to access pages near by them

    Using a node that maintains indices or acts as a broker, asuperpeer, can be helpful in this case one such node can

    maintain resources for a number of associated nodes

    The client (regular peer) supperpeerrelationship can be fixed

    or can be changed from time to time as clients may discover

    better supperpeers to associate with

  • 7/28/2019 Chap-02v2 Modified by Pratit

    35/61

    34

    Superpeers (2)

    Figure 2-12. A hierarchical organization of nodes into a

    superpeer network.

  • 7/28/2019 Chap-02v2 Modified by Pratit

    36/61

    35

    Hybrid Architectures In real-world, there are not only client/server and peer-to-peer

    architectures, but also some hybrid architectures, e.g. the

    supperpeers

    Such distributed systems combine different architectural

    features There are specific classes of distributed systems in which

    client/server (centralized) architectures are combined withdecentralized architectures

  • 7/28/2019 Chap-02v2 Modified by Pratit

    37/61

    36

    Edge-Server Systems (1) Edge-server systems are deployed on the Internet where

    servers are placed a the edge of the network

    The edge is the boundary between enterprise networks and the

    Internet, e.g. as provided by an ISP

    An ISP can also be considered as residing on the edge whenhome users connect to the Internet

    Clients connect to the Internet by means of an edge server

    An edge server is mainly to serve content

    A collection of edge servers can be used to optimize contentand application distributing where one edge server acts as an

    origin server from which all content originates; other serversmay then replicate the content

  • 7/28/2019 Chap-02v2 Modified by Pratit

    38/61

    37

    Edge-Server Systems (2)

    Figure 2-13. Viewing the Internet as consisting of a

    collection of edge servers.

  • 7/28/2019 Chap-02v2 Modified by Pratit

    39/61

    38

    Collaborative Distributed Systems (1) When a node gets started usually a traditional client/server

    scheme is used

    Afterward, when the node has (fully) joined the system, a

    decentralized scheme is used for collaboration

    A good example is BitTorrent

    To download a file, a user first needs to access a global

    directory

    A directory contains references called .torrentfiles

    Each .torrentfile refers to a tracker A tracker is a server maintaining an accurate account ofactive

    nodes that contains chunks of the request files The downloading node also needs to share its files to other

    nodes, otherwise, other nodes may choose to decrease the data

    rate of data being sent to the downloading node

  • 7/28/2019 Chap-02v2 Modified by Pratit

    40/61

    39

    Collaborative Distributed Systems (2)

    Figure 2-14. The principal working of BitTorrent [adapted with

    permission from Pouwelse et al. (2004)].

  • 7/28/2019 Chap-02v2 Modified by Pratit

    41/61

    40

    Collaborative Distributed Systems (3)

    In Globule collaborative content distribution network,users/organizations voluntarily provide enhanced Webservers that are capable of collaborating in the replication ofWeb pages

    Components of each such server include

    A component that can redirect client requests to otherservers

    A component for analyzing access patterns

    A component for managing the replication of Web pages

    A centralized component in Globule is the broker (server)which is responsible for registering servers and making themknown to others

    Note that the broker itself can also be replicated for reliabilitypurpose

    A hit t V Middl

  • 7/28/2019 Chap-02v2 Modified by Pratit

    42/61

    41

    Architectures Versus Middleware Middleware forms a layer between applications and

    distributed platforms in order to provide a degree ofdistribution transparency hiding the distribution of data,processing and control from applications

    In practice, the middleware actually follows a specificarchitectural style, e.g.

    CORBA for object-oriented style

    TIB/Rendezvous for event-based style This makes designing and developing applications simpler;

    however, this may not optimal to a variety of requirements

    Adaption is desirable in many cases, and can be done by Multiple versions of a middleware, or

    Making a middleware easy to configure, adapt and customize

    Middleware systems are now developed in which a stricter

    separation of policies and mechanisms

    I t t (1)

  • 7/28/2019 Chap-02v2 Modified by Pratit

    43/61

    42

    Interceptors (1) Interceptoris a software construct that will break the usual

    flow of control and allow other (application specific) code to

    be executed

    Two approaches in making an interceptor

    Generic but may be rather complex and difficult to build Simple but with restricted applicability

    As shown in an example of next slide,

    Request-level interceptor may hide certain distribution from the

    caller, e.g. when object B has multiple replicas for which theinvocation needs to be sent to all

    Message-level interceptor may handle fragmentation of data for

    communication together with local OS transparently from theapplication (caller)

  • 7/28/2019 Chap-02v2 Modified by Pratit

    44/61

    43

    Interceptors (2)

    Figure 2-15. Using interceptors to handle

    remote-object invocations.

    General Approaches to Adaptive

  • 7/28/2019 Chap-02v2 Modified by Pratit

    45/61

    44

    General Approaches to Adaptive

    Software

    Interceptoroffers a means to adapt the middleware This adaptation is responding to the fact that the environment

    in which distributed applications execute changescontinuously

    Three basic approaches to adaptive software: Separation of concerns

    Modularizing systems

    Aspect-oriented software development

    Computational reflection An ability for a program to inspect itself and if needed, adaptits behavior

    Component-based design

    Supporting adaption through composition; this may even be

    done at run-time

    Di i

  • 7/28/2019 Chap-02v2 Modified by Pratit

    46/61

    45

    Discussion Trying to achieve distribution transparency often leads to

    bulky and complex middleware! The conflicting requirements for generality and specialization

    often results in middleware solutions being highly flexible, but

    complex! Any how the need foradaptive software is there; the software

    needs to adapt as its environment changes

    Many distributed systems cannot be shut down

    Components must be replaced/upgraded on the fly It is also desirable that distributed systems can react to

    changes in their environment

    The challenge is to let this reactive behavior takes place without

    human intervention

    Self-Management in

  • 7/28/2019 Chap-02v2 Modified by Pratit

    47/61

    46

    Self Management inDistributed Systems

    Distributed systems and their associated middleware needhelp shield undesirable features of network in order tosupport as many applications as possible distributiontransparency

    However, as distribution transparency comes with complexity,

    full-distribution transparency is not what always wanted In many cases, what we want is for distributed systems to be

    adaptive particularly when it comes to adapting theirexecution behavior; not the software components

    Adaptation needs to be done automatically Need to have components that monitor and adjust

    Need to decide where the processes handling adaptation are tobe executed

    This is know as autonomic computing orself-starsystems

    (self-managing, self-healing, self-configuring, etc.

    Th F db k C t l M d l (1)

  • 7/28/2019 Chap-02v2 Modified by Pratit

    48/61

    47

    The Feedback Control Model (1) This is a well-established engineering principle When a system operates in its environment, there are always

    some disturbances/uncontrollable parameters that will cause

    the output and/or performance of the system to be deviated

    from an expected one A logical organization of a feedback control loop consists of

    three main elements

    Metric estimation component: this component uses observed

    output measurements, e.g. roundtrip-time, to estimate relevantparameters regarding the systems output/performance, e.g.

    latency

    Feedback analysis component: this component forms the heart

    of the control loop; it contains algorithms to decide/determine

    possible adaptations

    Th F db k C t l M d l (2)

  • 7/28/2019 Chap-02v2 Modified by Pratit

    49/61

    48

    The Feedback Control Model (2) Mechanisms to directly influence the behavior of the system

    There can be many different mechanisms, e.g. placing replicas,

    redirecting requests to different servers, changing routing, changing

    scheduling priorities

    The analysis component needs to be aware of the actual

    mechanisms available in order to choose appropriate ones for

    adjustment

    This feedback control model provides a means for self-

    managing of a distributed system; it also fits manual

    management of such as system in the latter case the

    analysis component is replaced by human operator Note that what discussed here is a logical organization; in the

    actual physical organization, components discussed may be

    and usually are physically distributed over different parts of

    the system

    Th F db k C t l M d l (3)

  • 7/28/2019 Chap-02v2 Modified by Pratit

    50/61

    49

    The Feedback Control Model (3)

    Figure 2-16. The logical organization of a

    feedback control system.

    Example: Systems Monitoring

  • 7/28/2019 Chap-02v2 Modified by Pratit

    51/61

    50

    Example: Systems Monitoringwith Astrolabe (1)

    Astrolabe is a general tool/scheme to monitorsystembehavior; output of Astrolabe can be used by an analysiscomponent deciding corrective actions

    The system organizes a large collection of nodes/hosts into ahierarchy of zones

    The lowest-level zones each consists of a single host

    As we go up the hierarchy, zones are subsequently grouped into zones with increasing size

    The top-level zone has all the hosts

    Each host runs an Astrolabe process called an agent thatcollects information on the zones in which the host iscontained

    The agents also communicate with one another to spreadzone information across the entire system

    Example: Systems Monitoring

  • 7/28/2019 Chap-02v2 Modified by Pratit

    52/61

    51

    Example: Systems Monitoringwith Astrolabe (2)

    Each host maintains a set of attributes for collecting localinformation; only these attributes are writable

    Astrolabe organizes information collected into records ofdatabase tables which are easy for further manipulation bymeans of SQL and some enhancements to SQL

    E.g. each machine in a zone may collect information such asCPU load, free memory, number of active processes; thenthe averages of these can be computed for the zone

    The agent in each host is responsible for collecting its local

    information, and computing parts of the tables of itsassociated zones

    The gossiping protocol is used to exchange informationamong agents so that agents that need to assist in obtainingsome aggregated information will see the same result (if no

    changes occur in the meantime)

    Example: Systems Monitoring

  • 7/28/2019 Chap-02v2 Modified by Pratit

    53/61

    52

    Example: Systems Monitoringwith Astrolabe (3)

    Figure 2-17. Data collection and information

    aggregation in Astrolabe.

    Example: Differentiating Replication

  • 7/28/2019 Chap-02v2 Modified by Pratit

    54/61

    53

    Example: Differentiating ReplicationStrategies in Globule (1)

    Globule is a collaborative content distribution network End-user servers are being placed in the Internet

    These servers collaborate to optimize performance throughreplication of Web pages

    Globule assumes that the Internet can be viewed as an edge-server system; requests can always to passed through anappropriate edge server

    An origin server can observe what would happen if a replicais placed on a specific edge server and periodically determine

    an appropriate replication policy Determining an appropriate replication policy requires an

    analysis of various performance metrics, e.g. aggregateddelay between a client to the replica server, bandwidthneeded between the origin server and the replica server, etc.

    with respect to the different policies to be evaluated

    Example: Differentiating Replication

  • 7/28/2019 Chap-02v2 Modified by Pratit

    55/61

    54

    Example: Differentiating ReplicationStrategies in Globule (2)

    Figure 2-18. The edge-server model assumed by Globule.

    Example: Differentiating Replication

  • 7/28/2019 Chap-02v2 Modified by Pratit

    56/61

    55

    Example: Differentiating ReplicationStrategies in Globule (3)

    The cost computation of each replication policy is expressiblein the form of a simple linear weighted function where weights

    are configurable to represent the importance of each

    performance metric

    The evaluation is done on a per page basis against a fewtens of replication policies, periodically when enough

    requests to the page are collected by means oftrace-driven

    simulation

    It is interesting to observe that The error in predicting the best policy goes up if the trace length

    is not long enough not enough information

    The error also goes up when the trace length gets too long too

    many changes in the access pattern are captured which may be

    irrelevant to recent behavior

    Example: Differentiating Replication

  • 7/28/2019 Chap-02v2 Modified by Pratit

    57/61

    56

    Example: Differentiating ReplicationStrategies in Globule (4)

    Figure 2-19. The dependency between prediction

    accuracy and trace length.

    Example: Automatic Component Repair

  • 7/28/2019 Chap-02v2 Modified by Pratit

    58/61

    57

    Example: Automatic Component RepairManagement in Jade (1)

    When a cluster consists of servers that are built using acomponent-based approach; component failures may be

    detected and replaced automatically this is what Jade does

    Jade is built on the Fractal component model, a Java

    implementation of a framework that allows components to beadded and removed at runtime

    Each component has two types of interfaces

    A server interface which is used to call methods implemented by

    that component A client interface which is used by a component to call other

    components

    Components are connected to each other by binding theirrespective client and server interfaces

    Example: Automatic Component Repair

  • 7/28/2019 Chap-02v2 Modified by Pratit

    59/61

    58

    a p e uto at c Co po e t epaManagement in Jade (2)

    Jade has the notion of a repair management domain in whicheach node represent a server and components executed bythe server; there is a separate node manager

    Each node is equipped with failure detectors which report anyfailures detected to the node manager

    An example of a repair procedure initiated by the nodemanager may have the following steps

    Terminate every binding between a component on a non-faulty node, and a component on the node that just failed.

    Request the node manager to start and add a new node to

    the domain. Configure the new node with exactly the same

    components as those on the crashed node.

    Re-establish all the bindings that were previouslyterminated.

    Example: Automatic Component Repair

  • 7/28/2019 Chap-02v2 Modified by Pratit

    60/61

    59

    p p pManagement in Jade (3)

    Note that the above repair procedure only works when thecrashed component/node is stateless no crucial data is lost

    Further observe that a repair procedure is driven by a repair

    policy which in turn depends on the detected failure

    All these are managed by the node manager in conjunctionwith failure reports from the nodes in a given repairmanagement domain

    Observe also that turning a legacy, non-component-based,

    application into a self-managing system with the approachdescribed here is impossible

    Summary

  • 7/28/2019 Chap-02v2 Modified by Pratit

    61/61

    Summary For distributed systems, we can make a distinction between

    Software architecture logical organization of softwarecomponents and their interactions, and

    System architecture where the components are physicallyplaced

    Important architecture styles include layering, object

    orientation, event orientation and data-space orientation In centralized architectures, client/serveris the main concept

    of interaction

    In decentralized architectures, processes play more of equal

    roles, hence, a peer-to-peersystem in an overlay network Structured deterministic scheme for routing messages

    Unstructured search algorithm is needed for locatingdata/processes

    In self-managing distributed system, the concept offeed-back