MCCD Print

introduction

Vessel traffic always involves a large amount of communication. Some examples are: 

  • Pre-notifications of voyages between different waterways authorities,
  • Communication between the different applications of a waterways authority for sharing data, whenever possible,
  • Pre-notifications of hulls between successive locks,
  • Voyage messages from a skipper to a waterways authority,
  • Passing statistical data to the National Institute for Statistics (NIS).

MCCD's role in the communication situations above is to emit, translate and dispatch all kinds of messages. Stated differently, the MCCD server manages the communication between all interested parties.

The messages between these parties are XML messages (XML is short for eXtensible Markup Language). MCCD validates the incoming messages and checks their content. Next, they are translated and dispatched to zero, one or more targets. Messages are queued so that they do not depend on the partners being accessible at dispatch time.

Messages are exchanged with external parties in a 100% standard compliant way as defined in the ERI guide. MCCD can handle different versions of the standard at the same time.

Modules

Figure 1 shows the most important modules of the system and the data flow between these modules.

mccs-modules
  • DataSuppliers: These are the partners that deliver XML messages: other waterways authorities, applications used by the same waterways authority, the skippers.
  • SoapEngine: Part of the MCCD-server is an Apache Axis SOAP server (Simple Object Access Protocol). This server processes messages embedded in a SOAP envelope. In MCCD SOAP is especially used for communication between different waterways authorities.
  • Receivers: These are responsible for receiving the XML messages that the system has to translate and dispatch. Receivers can handle the following types of messages:
    • Messages that have been sent over a socket on a negotiated port (Concentrator),
    • Messages that have been sent over JMS (Java Message Service) (JMSReceiver),
    • Messages that have been sent as a parameter with an RMI call (Remote Method Invocation) (RMIListener),
    • Messages that have been sent by e-mail.

The receivers parse the incoming XML. If the message conforms to the underlying XML Schema, an internal DOM object is built. DOM is short for Document Object Model.

MCCD can also receive e-mail messages in an EDIFACT format. These messages are first translated into ERINOT XML messages before being forwarded to the dispatcher.

  • Dispatcher: The dispatcher analyses the received XML document. It checks the message type, the sender and the destination if it is enclosed in the message, and decides which queue the message has to be sent to. The dispatching rules for the messages are contained in a configuration file that the user can easily adapt.
  • QueueMgr: The queue manager receives the messages sent by the dispatcher and forwards them to the proper queues. For each queue there is a corresponding directory on the hard disk in which the messages are serialised. If the emitter to which the message was targeted is accessible at the time the message arrives, then the message is directly delivered to the emitter and no DOM object has to be rebuilt after the message has been deserialised from disk.
QueueMgr handles the queues in a cyclic way. The messages in a queue are handled in chronological order. QueueMgr starts dealing with the next queue as soon as a queue does not contain any messages anymore or when it only contains messages that cannot be delivered.
  • Emitters: An emitter is responsible for sending the messages. Often, the sending of the message is preceded by a transformation step in which message content and/or structure are transformed. Emitters are built by combining Java code and XML stylesheets.
  • DataDestinations: These are the partners to which the XML messages are sent: other waterways authorities, other applications of the same waterways authority, skippers.
  • User interface: MCCD is accessible though a web interface for:
    • Starting and stopping the system,
    • Requesting the application status (machine, disks, queues, and so on),
    • Checking the accessibility of partners and the messages to and from these partners,
    • Viewing the logging,
    • Investigating the location of a ship on a waterway (starting from pre-notifications).

USed technology

  • The MCCD server runs on the open source operating system Linux.
  • The application was coded in Java. As such, it is a cross-platform application.
  • Data are stored in a PostgreSQL database. PostgreSQL is an open source relational database management system.
  • XML-based technologies, such as XSLT and XML Schemas, are used throughout the application.
  • The web interface was implemented using PHP and GWT (Google Web Toolkit).
  • The SOAP engine for MCCD is the Apache Axis implementation, which runs on the Apache Tomcat servlet en JSP server.
 
fks-waterborne