Software Systems Components II - PowerPoint PPT Presentation

1 / 37
About This Presentation
Title:

Software Systems Components II

Description:

SSC-II/1. Software Systems Components II. Dr. Georgios K. Theodoropoulos. 2006 ... SSC-II. SSC-II/3. Software Systems Components II. Dr. Georgios K. ... – PowerPoint PPT presentation

Number of Views:43
Avg rating:3.0/5.0
Slides: 38
Provided by: info86
Category:

less

Transcript and Presenter's Notes

Title: Software Systems Components II


1
Software Systems Components II
  • Network and Internet Programming

2
Definition
  • Computer Network A collection of interconnected
    autonomous computers
  • Generality Built from general purpose hardware -
    not optimised for any particular application or
    data type
  • Computer Network vs. Distributed System
  • Transparency
  • DS is a software system that runs on top of CN

3
Architectural Models of Distributed Systems
  • Functions of components
  • Processes vs objects
  • The placement of components across a network
  • Distribution of data
  • Distribution of workload
  • Inter-relationships between components
  • Functional roles
  • Communication patterns

4
Service Layers in a Distributed System
  • HardwarenetworkOSplatform
  • Middleware
  • Mask heterogeneity
  • Programming model
  • Provides building blocks

5
System Architectures
  • The Client-Server Model
  • Server process that accepts requests to perform
    a service and responds accordingly
  • Client invokes services (remote invocation)
  • Or
  • Client object invoke a method upon a server
    object
  • Server may be a client of other servers
  • web server is a client to a file server, a DNS
    server
  • Search engines-web crawlers-web servers

6
Multiple Servers
  • Partition services (e.g. web servers)
  • Replication for performance and fault tolerance

7
Proxy Servers and Caches
  • Cache a store of recently used data objects that
    is closer than the objects themselves
  • Proxy server a shared cache of web resources for
    the client machine at a site or across sites
  • May also be used to access remote web servers
    through a firewall

8
Peer processes
  • All of the processes play similar roles
  • Cooperate as peers to perform a distributed
    activity
  • Reduces server bottlenecks
  • Consistency and synchronisation issues

9
Variations of the client-server model
  • Variations due to
  • Need to use mobile code (e.g. applets and
    agents)
  • Need for low cost computers with limited hardware
    resources (network computers vs thin clients)
  • Need to add and remove mobile devices

10
Variations
  • Example mobile code Applets
  • Thin clients

11
Network Architecture
  • Network Architecture framework for designing and
    implementing Networks
  • Components
  • Software
  • Protocols
  • Services
  • Hardware
  • Transmission technology, media and devices
  • Scale LANs, MANs, and WANs
  • Topology

12
Subnet
13
Abstraction Layering
  • Deal with complexity by introducing higher levels
    of abstraction
  • Define a unifying model that can capture some
    important aspect of the system
  • Encapsulate the model in an object that provides
    an interface to other objects and hide the
    details of the how the object is implemented
  • Modular designs manageable components
  • In Computer Networks abstraction leads to
    layering
  • Standardises network components multiple-vendor
    development and support.
  • Modularity allows incremental technology
    migration
  • Tackles complexity and facilitates learning

14
Layered Architecture
  • The purpose of each layer is to offer a
    communication services to higher level layers
  • Each layer has two interfaces
  • peer-to-peer interface
  • defines the form and types of messages exchanged
    between peers (indirect communication)
  • service interface
  • defines the primitives (operations) that a layer
    provides to the layer above it
  • Layering is non-linear

15
Protocols
  • The functionality encapsulated within each layer
    is called Protocol
  • The Protocol refers to both
  • the abstract peer-to-peer service interfaces
    and
  • the objects that implement those interfaces
  • Protocol vs. Service
  • Service is the set of primitives provided to the
    higher layer
  • Protocol defines the implementation of these
    primitives
  • Protocol stack

16
Encapsulation
17
Service Interface
18
ISO OSI Architecture
  • International Standards Organisation (ISO)
  • Physical transmission of raw bits onto the
    communications medium
  • Data link reliable transmission of frames, flow
    control, arbitration
  • Network packet switching, routing congestion
    control
  • Transport process-to-process channel,
    node-to-node connection, provides user services,
    flow control, multiplexing
  • Session
  • Presentation
  • Application

19
ISO OSI Architecture
20
OSI Session Layer
  • The protocols necessary to establish and maintain
    a connection or session between 2 end-users
  • Transport vs session

21
OSI Presentation Application Layers
  • Presentation
  • Effective communication of information rather
    than of data
  • Code and number conversion
  • Transmission of sophisticated data structures
  • Data compression
  • Application
  • Electronic mail
  • File transfer protocols (ftp)
  • virtual terminal protocols (telnet)
  • Distributed system (e.g. distributed database)
  • Client-server

22
Internet Architecture (TCP/IP)
  • Host-to-Network Layer (OSI Physical and Data link
    layers)
  • Internet Layer (OSI Network layer - Internet
    Protocol/IP)
  • Transport Layer (Transmission Control
    Protocol/TCP User Datagram Protocol/UDP)
  • Application Layer

23
Transport Layer
  • This is where Interprocess communication takes
    place
  • Two main protocols in Internet Protocol Stack
    UDP and TCP
  • UDP or datagram. Delivery of message NOT
    guaranteed connectionless (DNS, VoIP)
  • TCP or stream. reliable transmission. Connection
    oriented. Sequencing, flow control,
    retransmission (HTTP, FTP,Telnet,SMTP)
  • Non-blocking sends, blocking receives

24
Accessing Transport Layer
  • How application programs use protocol software
    (invoke the services) of transport layer to
    communicate across networks

25
Characteristics of Inter-process Communication
  • Message passing model Send - receive
  • Synchronous vs asynchronous communications
  • Blocking vs non blocking
  • Reliability
  • Validity messages are guaranteed to be delivered
    despite of packets being lost
  • Integrity messages must arrive uncorrupted and
    without duplication
  • Ordering message send and delivery

26
Sockets and ports
  • Sockets provide an abstract endpoint for
    inter-process communication (UDP, TCP)
  • Destination
  • internet address, port, process id
  • Port message destination within a computer
    (integer) Internet addresses names rather than
    numbers (216)
  • A socket must be bound to a local port and an
    internet address
  • A process may use multiple ports but cannot share
    ports (exception multicast)

27
UDP Sockets
  • Receive method returns the IP addressport of
    sender so that a reply can be sent
  • Message size receiving process specifies a
    byte-array in which to receive the message(IP
    216 bytes, usually 8kB)
  • Non-blocking send blocking receive (timeouts
    and threads for deadlocks)
  • Receive from any

28
UDP Sockets Java API
  • DatagramPacket class provides
  • a constructor that makes an instance of a
    message message byte array, length,IP
    address,post no
  • A constructor for use when receiving a message
  • Methods getData, getPort, getAddress
  • DatagramSocket class provides
  • A constructor that takes a port as an argument
    for use by processes that need to use a port
  • A no-argument constructor that allows the system
    to choose a free local port
  • SocketException if problem with port
  • Methods
  • send argument an instance of DatagramPacket
  • Receive argument an empty DatagramPacket
  • setSoTimeout InterruptedIOExpception when expire
  • connect connect a socket to a particular remote
    port and IP address, the socket is abe to send to
    and receive from that address
  • Code

29
TCP Sockets
  • API provides an abstraction of a stream of bytes
    to which data may be written and from which data
    may be read. The abstraction hides the
    following
  • Message sizes. The application can choose how
    much data data it writes to a stream. TCP may
    fragment it to smaller packets
  • Lost messages
  • Flow control
  • Message duplication and ordering
  • Message destinations once a connection is
    established, processes simply read from and write
    to a stream (no need for IP addresses and ports)
  • Client-server model during connection
  • client creates a stream socket bound to a port
    and asks for a connection to a server port
  • server creates a listening socket bound a a port
    and waits to accept connect requests
  • During operation each socket is both for input
    and output
  • Close a socket when no more data to write

30
TCP Sockets Java API
  • ServerSocket class create a socket at a server
    port for listening for connect requests
  • Method accept wait until there is a connect
    request in the queue, then create an instance of
    Socket
  • Socket class client uses a constructor which
    creates a socket (specifying the DNS hostname and
    port of a server) and connects it to the
    specified remote server (UknownHostException,
    IOException)
  • Methods getInputStream and getOutputStream
  • Return types are abstract classes that define
    methods for reading (InputStream) and writing
    (OutputStream) bytes
  • Return values can be used as the arguments of
    constructors for suitable input and output
    streams.
  • Code

31
The Request-Reply Protocol
  • Processes communicate using a protocol

public byte doOperation (RemoteObjectRef o, int
methodId, byte arguments) sends a request
message to the remote object and returns the
reply. The arguments specify the remote object,
the method to be invoked and the arguments of
that method. public byte getRequest
() acquires a client request via the server
port. public void sendReply (byte reply,
InetAddress clientHost, int clientPort) sends
the reply message reply to the client at its
Internet address and port.
32
Programming Models for Distributed Applications
  • Applications need to be able to invoke operations
    in other processes on different computers
  • Distributed Objects
  • Remote Invocation
  • Remote Procedure Call (RPC)
  • Remote Method Invocation (RMI)
  • Event-based

33
Communication Between Distributed Models
  • The Object Model A collection of Interacting
    objects each of which consists of a set of data
    and a set of methods
  • Interaction is via invocation of other objects
    methods
  • Object reference (1st class values)
  • Interface definition of the signature of a
    method (arguments, return values, exceptions)
  • Actions initiated by an object invoking a method
    in another object.
  • state of receiver may change
  • A new object may be instantiated (e.g. by using a
    constructor)
  • Further invocations on methods in other pbjects
    may take place

34
Distributed Objects
  • Program state partitioned in a set of objects
    (the state of an object is the values of its
    instance variables)
  • Objects can be accessed remotely or locally
  • Remote Method Invocation (RMI)
  • Different process NOT computer necessarily
  • Heterogeneity
  • Client-server enables security, safety and
    synchronisation

35
Distributed Objects
  • Remote object reference
  • Any object that can receive an RMI has a remote
    object reference
  • Remote interface
  • The class of a remote object implements the
    methods of its remote interface. E.g. as public
    instance methods in Java
  • In Java RMI remote interfaces are defined in the
    same way as any other java interface. Extension
    of an interface named Remote
  • Multiple inheritance allowed

36
Remote Object References
  • When a client invokes a method in a remote object
    an invocation message is sent to the server
    process that hosts the remote object which
    specifies which object is to have its method
    invoked
  • Unique in space and time
  • Location dependent vs location independent

37
Distributed Objects
  • Actions initiated my method invocations but the
    objects involved may belong to different
    processes or computers
  • When an invocation crosses the boundary, RMI must
    be used
  • Remote objects may have methods for instantiating
    objects which can be accessed by RMI i.e.
    remote instantiation of objects
Write a Comment
User Comments (0)
About PowerShow.com