View page as slide show

Communications software and architecture


Protocol Frameworks

  • Reusable design of all or part of a system
    • provide commonly used components needed for creating protocol
  • Help to transform the design into implementation
    • layered architecture support
    • Simple and efficient way to create and configure functionality of different communicating objects
  • Support for tezsting and analysis
  • external tools
  • Several frameworks exists
    • conduits+ based: OVOPS++, JVOPS, Jacob

Communicating protocol objects (CPO)

  • The objects that are conducting communication
  • Each connection should have own instance of object
    • several objects in same layer
    • Objects have to have identifiers for communication
  • CPO behaviour is modeled with state machines (EFSA)

Message passing

  • Transmission of messages between CPO's
    • moving message from one object to another
  • Channels are created between CPO's
    • conduits, connected ports …
  • Frameworks can provide many alternatives for message passing
    • Internal message queues for passing of message structures
    • moving simply a message pointer from one CPO to another
    • Using visitor pattern


  • In communication system several events can happen simultaneously.
  • Scheduling needed to handle the processing of events (messages)
  • Several possible approaches which can be interchangeable in framework
    • Round robin
    • Prioritized schedulers
    • debugging schedulers

I/O interface

  • Communication outside of protocol stack
    • read and write to devices
    • Pipes, sockets
    • Communication to files
  • User interface.


  • Statemachines describe the behaviour of CPO
  • Frameworks provide different types of support for EFSA
    • Speical EFSa languages
    • Class libraries containing base classes for EFSA implementations
    • Simple switch case solution


  • Additional signals for special conditions
  • Prevent endless waiting
  • Allow timing of events
  • Can be implemented as special communicating object
    • can provide own timer messages

PDU en/decoding

  • Information to be sent to peer entity has to be encoded in PDU format
  • Encoded PDU's are transported in lower layer as a payload of primitive
  • Received PDU has to be decoded and identified

Protocol classes and relations


Protocol system


  • High level class that encapsulates the whole protocol system
    • describes the system structure
  • Has one or more environment interfaces
  • Consists of one or more protocol entities

Environment interfaces


  • communications out of the protocol stack
  • communication interface
    • low level communications (out of software stack)
    • communication to files
    • communication to user or application using the stack
  • auxiliary interfaces
    • test interface to provide test cases to communicating entity
    • management interface to affect entity behavior

Protocol entity

  • The main class for protocol layer
  • Has storage space for internal information
  • Entity interface which is used the communication within system (e.g. primitives)
  • Peer interface is for handling communications between entities located in different protocol systems

Protocol Behaviour

  • Describes the internal behavior of entity
    • How to respond to incoming events (messages)
  • Several concurrent connections are possible
    • e.g. several clients using server
    • Router selects the connection object to handle the given communication
    • Connection manager handles creation and destruction of connections
    • manager-worker pattern can be used

Protocol data flow

  • Message transmitting
  • En/decoding
    • from local syntax to transfer syntax
  • parameters
  • routing and scheduling

Protocol messages

Last modified: 2013/07/01 14:42