Lecture 6 : Distributed Objects and Naming - PowerPoint PPT Presentation

1 / 26
About This Presentation
Title:

Lecture 6 : Distributed Objects and Naming

Description:

Jini lookup service searches by attribute or by interface type ... Directories of services with retrieval by attribute searching ... – PowerPoint PPT presentation

Number of Views:35
Avg rating:3.0/5.0
Slides: 27
Provided by: pouryam
Category:

less

Transcript and Presenter's Notes

Title: Lecture 6 : Distributed Objects and Naming


1
Lecture 6 Distributed Objects and Naming
  • Pourya Dehnadi

2
  • Heterogeneity (from 1.4)
  • Applies to all of the following
  • networks
  • Internet protocols mask the differences between
    networks
  • computer hardware
  • e.g. data types such as integers can be
    represented differently
  • operating systems
  • e.g. the API to IP differs from one OS to another
  • programming languages
  • data structures (arrays, records) can be
    represented differently
  • implementations by different developers
  • they need agreed standards so as to be able to
    interwork
  • Middleware provides a programming abstraction and
    masks the heterogeneity of networks etc.

3
  • Middleware Programming Models
  • Distributed objects and remote object invocation
    is the model explained in Chapter 5
  • illustrated by Java RMI
  • CORBA is in Chapter 17.
  • it provides remote object invocation between a
    client program written in one language and a
    server program written in another language
  • our book uses Java CORBA to illustrate the use of
    CORBA
  • another language commonly used in CORBA is C
  • Other programming models
  • remote event notification
  • remote SQL access
  • distributed transaction processing

4
  • External Data Representation (from 4.3)
  • This was presented in Chapter 4. It masks the
    differences due to different computer hardware.
  • CORBA CDR
  • only defined in CORBA 2.0 in 1998, before that,
    each implementation of CORBA had an external data
    representation, but they could not generally work
    with one another. That is
  • the heterogeneity of hardware was masked
  • but not the heterogeneity due to different
    programmers (until CORBA 2)
  • CORBA CDR represents simple and constructed data
    types (sequence, string, array, struct, enum and
    union)
  • note that it does not deal with objects
  • it requires an IDL specification of data to be
    serialised
  • Java object serialisation
  • represents both objects and primitive data values
  • it uses reflection to serialize and de-serialize
    objects it does not need an IDL specification of
    the objects

5
  • CORBA IDL
  • Remote interface
  • specifies the methods of an object available for
    remote invocation
  • an interface definition language (or IDL) is used
    to specify remote interfaces. E.g. the above in
    CORBA IDL.
  • Java RMI would have a class for Person, but CORBA
    has a struct

struct Person string name string
place long year interface PersonList
readonly attribute string listname void
addPerson(in Person p) void getPerson(in
string name, out Person p) long number()
6
  • Distributed Object Model
  • each process contains objects, some of which can
    receive remote invocations, others only local
    invocations
  • those that can receive remote invocations are
    called remote objects
  • objects need to know the remote object reference
    of an object in another process in order to
    invoke its methods. How do they get it?
  • the remote interface specifies which methods can
    be invoked remotely

7
  • Invocation Semantics
  • Local invocations are executed exactly once
  • Remote invocations cannot achieve this. Why not?
  • the Request-reply protocol can apply
    fault-tolerance measures

8
  • Invocation Semantics Failure Model
  • Maybe, At-least-once and At-most-once can suffer
    from crash failures when the server containing
    the remote object fails.
  • Maybe - if no reply, the client does not know if
    method was executed or not
  • omission failures if the invocation or result
    message is lost
  • At-least-once - the client gets a result (and the
    method was executed at least once) or an
    exception (no result)
  • arbitrary failures. If the invocation message is
    retransmitted, the remote object may execute the
    method more than once, possibly causing wrong
    values to be stored or returned.
  • if idempotent operations are used, arbitrary
    failures will not occur
  • At-most-once - the client gets a result (and the
    method was executed exactly once) or an exception
    (instead of a result, in which case, the method
    was executed once or not at all)

9
  • RMI Architecture
  • Communication module - handles request/reply
    protocol
  • Remote reference module - translates between
    local and remote object references and creates
    remote object references. Uses remote object
    table
  • Proxy - makes RMI transparent to client. Class
    implements remote interface. Marshals requests
    and unmarshals results. Forwards request.
  • Dispatcher - gets request from communication
    module and invokes method in skeleton (using
    methodID in message).

10
  • Representation of a remote object reference
  • a remote object reference must be unique in the
    distributed system and over time. It should not
    be reused after the object is deleted.
  • the first two fields locate the object unless
    migration or re-activation in a new process can
    happen
  • the fourth field identifies the object within the
    process
  • its interface tells the receiver what methods it
    has (e.g. class Method)
  • a remote object reference is created by a remote
    reference module when a reference is passed as
    argument or result to another process
  • it will be stored in the corresponding proxy
  • it will be passed in request messages to identify
    the remote object whose method is to be invoked

11
  • Shared Whiteboard Example (p. 194)
  • In the RMI and CORBA case studies, we use a
    shared whiteboard as an example
  • this is a distributed program that allows a group
    of users to share a common view of a drawing
    surface containing graphical objects, each of
    which has been drawn by one of the users.
  • The server maintains the current state of a
    drawing and it provides operations for clients
    to
  • add a shape, retrieve a shape or retrieve all the
    shapes,
  • retrieve its version number or the version
    number of a shape

12
  • Java Remote Interfaces for Shape and ShapeList
  • Note the interfaces and arguments
  • GraphicalObject is a class that implements
    Serializable

import java.rmi. import java.util.Vector publi
c interface Shape extends Remote int
getVersion() throws RemoteException GraphicalObj
ect getAllState() throws RemoteException pub
lic interface ShapeList extends Remote Shape
newShape(GraphicalObject g) throws
RemoteException Vector allShapes() throws
RemoteException int getVersion() throws
RemoteException
13
  • Summary of Distributed Objects
  • Heterogeneity is an important challenge to
    designers
  • Distributed systems must be constructed from a
    variety of different networks, operating systems,
    computer hardware and programming languages.
  • The Internet communication protocols mask the
    difference in networksand middleware can deal
    with the other differences.
  • External data representation and marshalling
  • CORBA marshals data for use by recipients that
    have prior knowledge of the types of its
    components. It uses an IDL specification of the
    data types
  • Java serializes data to include information about
    the types of its contents, allowing the recipient
    to reconstruct it. It uses reflection to do
    this.
  • RMI
  • each object has a (global) remote object
    reference and a remote interface that specifies
    which of its operations can be invoked remotely.
  • local method invocations provide exactly-once
    semantics the best RMI can guarantee is
    at-most-once
  • Middleware components (proxies, skeletons and
    dispatchers) hide details of marshalling, message
    passing and object location from programmers.

14
  • Names and Name Services
  • Resources are accessed using identifier or
    reference
  • An identifier can be stored in variables and
    retrieved from tables quickly
  • Identifier includes or can be transformed to an
    address for an object
  • E.g. NFS file handle, Corba remote object
    reference
  • A name is human-readable value (usually a string)
    that can be resolved to an identifier or address
  • Internet domain name, file pathname, process
    number
  • E.g ./etc/passwd, http//www.cdk3.net/
  • For many purposes, names are preferable to
    identifiers
  • because the binding of the named resource to a
    physical location is deferred and can be changed
  • because they are more meaningful to users
  • Resource names are resolved by name services
  • to give identifiers and other useful attributes

15
  • Requirements for Name Services
  • Allow simple but meaningful names to be used
  • Potentially infinite number of names
  • Structured
  • to allow similar subnames without clashes
  • to group related names
  • Allow re-structuring of name trees
  • for some types of change, old programs should
    continue to work
  • Management of trust

16
  • Composed naming domains used to access a resource
    from a URL

17
  • Names and Resources
  • Currently, different name systems are used for
    each type of resource
  • resource name identifies
  • file pathname file within a given file system
  • process process id process on a given computer
  • port port number IP port on a given computer
  • Uniform Resource Identifiers (URI) offer a
    general solution for any type of resource. There
    two main classes
  • URL Uniform Resource Locator
  • typed by the protocol field (http, ftp, nfs,
    etc.)
  • part of the name is service-specific
  • resources cannot be moved between domains
  • URN Uniform Resource Name
  • requires a universal resource name lookup service
    - a DNS-like system for all resources
  • urnltnameSpacegtltname-within-namespacegt

18
  • Iterative Navigation
  • Used in
  • DNS Client presents entire name to servers,
    starting at a local server, NS1. If NS1 has the
    requested name, it is resolved, else NS1 suggests
    contacting NS2 (a server for a domain that
    includes the requested name).
  • NFS Client segments pathnames (into 'simple
    names') and presents them one at a time to a
    server together with the filehandle of the
    directory that contains the simple name.

19
  • Non-recursive and recursive server controlled
    navigation
  • DNS offers recursive navigation as an option, but
    iterative is the standard technique. Recursive
    navigation must be used in domains that limit
    client access to their DNS information for
    security reasons.

A name server NS1 communicates with other name
servers on behalf of a client
20
  • DNS
  • A distributed naming database
  • Name structure reflects administrative structure
    of the Internet
  • Rapidly resolves domain names to IP addresses
  • exploits caching heavily
  • typical query time 100 milliseconds
  • Scales to millions of computers
  • partitioned database
  • caching
  • Resilient to failure of a server
  • replication

21
  • DNS functions and configurations
  • Main function is to resolve domain names for
    computers, i.e. to get their IP addresses
  • caches the results of previous searches until
    they pass their 'time to live'
  • Other functions
  • get mail host for a domain
  • reverse resolution - get domain name from IP
    address
  • Host information - type of hardware and OS
  • Well-known services - a list of well-known
    services offered by a host
  • Other attributes can be included (optional)

22
  • DNS issues
  • Name tables change infrequently, but when they
    do, caching can result in the delivery of stale
    data.
  • Clients are responsible for detecting this and
    recovering
  • Its design makes changes to the structure of the
    name space difficult. For example
  • merging previously separate domain trees under a
    new root
  • moving subtrees to a different part of the
    structure (e.g. if Scotland became a separate
    country, its domains should all be moved to a new
    country-level domain.

23
  • Directory and Discovery Services
  • Directory service- 'yellow pages' for the
    resources in a network
  • Retrieves the set of names that satisfy a given
    description
  • e.g. X.500, LDAP, MS Active Directory Services
  • (DNS holds some descriptive data, but
  • the data is very incomplete
  • DNS isn't organised to search it)
  • Discovery service- a directory service that
    also
  • is automatically updated as the network
    configuration changes
  • meets the needs of clients in spontaneous
    networks (Section 2.2.3)
  • discovers services required by a client (who may
    be mobile) within the current scope, for example,
    to find the most suitable printing service for
    image files after arriving at a hotel.
  • Examples of discovery services Jini discovery
    service, the 'service location protocol', the
    'simple service discovery protocol' (part of
    UPnP), the 'secure discovery service'.

24
  • Service Discovery in JINI
  • Jini services register their interfaces and
    descriptions with the Jini lookup services in
    their scope
  • Clients find the Jini lookup services in their
    scope by IP multicast
  • Jini lookup service searches by attribute or by
    interface type
  • The designers of Jini argue convincingly that
    this the only reliable way to do discovery

25
  • OTHER TOPICS
  • GNS case study (Section 9.4)
  • an early research project (1985) that developed
    solutions for the problems of
  • large name spaces
  • restructuring the name space
  • X.500 and LDAP (Section 9.5)
  • a hierarchically-structured standard directory
    service designed for world-wide use
  • accommodates resource descriptions in a standard
    form and their retrieval for any resource (online
    or offline)
  • never fully deployed, but the standard forms the
    basis for LDAP, the Lightweight Directory Access
    Protocol, which is widely used
  • Trading services (see Section 17.3)
  • Directories of services with retrieval by
    attribute searching
  • Brokers negotiate the contract for the use of a
    service, including negotiation of attribute such
    as quality and quantity of service

26
  • Summary of Naming
  • Name services
  • defer the binding of resource names to addresses
    (and other attributes)
  • Names are resolved to give addresses and other
    attributes
  • Goals
  • Scalability (size of database, access traffic
    (hits/second), update traffic)
  • Reliability
  • Trust management (authority of servers)
  • Issues
  • exploitation of replication and caching to
    achieve scalability without compromising the
    distribution of updates
  • navigation methods
  • Directory and discovery services
  • 'yellow pages' retrieval by attributes
  • dynamic resource registration and discovery
Write a Comment
User Comments (0)
About PowerShow.com