Menu

Server Communication System

Executive Summary

The communication system adds a transparency layer on the network connection between the FastFix client and server platforms. It includes functionality to exchange data between the FastFix client platform and the FastFix server platform.

Services Provided

  • Send data to FastFix client
  • Register for notification in case of new messages from client
  • Notify listeners

Services Needed

  • From Listeners:
    • Notify() method

Open Questions and Doubts

  • NEED for an existing bus system: Event Correlation needs strictly asynchronous message oriented design for communication and interaction. OSGi bundles provide interfaces for communication between any of these bundles but, regarding context events, communication must be event-driven and the amount of the received events can be huge, and this requires the management of message queues (and a message bus). What messaging standard should we use? JMS? What enterprise service bus can we use to provide event information?

S2 can provide information about existing systems. From our perspective, the best option would be a non-OSGi component for client-server communication, and a message broker in the server, like ActiveMQ or similar, for queuing purposes. We have been performing a study to rate the most efficient communication protocols to send events from client to server. These are the results, with 1000 messages and 3 fields each:


TCP Messages sent through pure TCP sockets, serialized with Protocol Buffers. 1,5 secs 666 messages per second
STOMP Messages sent through JMS broker, with STOMP protocol. Messages serialized with JSON 2,02 secs 495 messages per second
REST Messages sent through HTTP requests, serialized with JSON. 7 secs 142 messages per second
SOAP Messages sent through web services 21 secs 47 messages per second
XMLRPC Messages sent through XML-RPC 66 secs 15 messages per second

  • Sync / Async communication?
  • Distributed OSGi?

Shared Data Structures

  • Message: Will serve as a container for messages that arrive from the server.

Component-specific Errors

see [Component Specific Error Types]

Limitations

see [Component Limitations]


Related

Wiki: Component Limitations
Wiki: Component Specific Error Types
Wiki: Software Architecture (incl. "big pictures")

MongoDB Logo MongoDB