MCCD Afdrukken

Inleiding

Scheepvaart gaat steeds gepaard met een grote hoeveelheid communicatie.
Bijvoorbeeld:

  • Vooraankondigingen van reizen tussen verschillende waterwegbeheerders
  • Communicatie tussen de verschillende applicaties bij een waterwegbeheerder om, waar mogelijk, data gemeenschappelijk te gebruiken.
  • Vooraankondiging van rompen tussen de verschillende sluizen.
  • Reismeldingen van een schipper aan de waterwegbeheerder.
  • Doorgeven van statistische gegevens aan het NIS (Nationaal Instituut voor Statistiek).

In de hierboven beschreven communicatie functioneert MCCD als een ontvanger, vertaler en verzender van allerhande boodschappen. Met andere woorden: de MCCD-server beheert en regelt de communicatie tussen de verschillende geinteresseerde partners.

Voor de opbouw van de gebruikte boodschappen wordt gebruik gemaakt van XML (eXtensible Markup Language). De afzenders versturen XML Coded Messages naar MCCD. MCCD valideert die boodschappen en inspecteert ze inhoudelijk. De messages worden vervolgens vertaald en naar nul of meer bestemmelingen (targets) verzonden. Deze verzending gebeurt met behulp van een queueing systeem teneinde niet afhankelijk te zijn van de beschikbaarheid van de partners.

Modules

Figuur 1 toont de belangrijkste modules binnen het systeem en de gegevensstroom tussen de verschillende onderdelen:

mccs-modules
  • DataLeveranciers: De partners (andere waterwegbeheerders, applicaties bij eenzelfde waterwegbeheerder, de schipper) die XML-boodschappen aanleveren.
  • SoapEngine: De MCCD-server is uitgerust met een Apache Axis SOAP-server (Simple Object Access Protocol) zodat ook boodschappen, embedded in een soap-envelope, kunnen afgehandeld worden. SOAP wordt vooral gebruikt in de communicatie tussen de verschillende waterwegbeheerders.
  • Ontvangers: Ontvangen van XML-boodschappen die door het systeem moeten vertaald en verdeeld worden. Ondersteund worden:
    • Ontvangen van boodschappen over een socket op een afgesproken port number. (Concentrator)
    • Ontvangen van boodschappen over JMS (Java Message Service). (JMSOntvanger)
    • Ontvangen van boodschappen als parameter bij een RMI-call (Remote Method Invocation). (RMIListener)

    De ontvangers staan in voor de parsing van de ontvangen XML-String: indien de boodschap conform is met het toepasselijke XML schema wordt een intern DOM-object (Document Object Model) opgebouwd.

  • Dispatcher: De dispatcher analyseert het ontvangen XML-Document en beslist op basis van het type boodschap, de afzender en de eventueel in het bericht opgenomen bestemmeling naar welke queues de boodschap verstuurd dient te worden. De verschillende regels op basis waarvan deze verdeling gebeurt (dispatching rules) worden vastgelegd in een makkelijk editeerbaar configuratiebestand.
  • QueueMgr: De queueManager ontvangt boodschappen van de dispatcher en beheert de plaatsing ervan op de gewenste queues. Voor elke queue wordt er een directory voorzien op de harde schijf waar de documenten serialised worden weggeschreven. Indien de vereiste emitter beschikbaar is bij ontvangst van een boodschap, wordt het document rechtstreeks aan de emitter afgeleverd (waardoor het DOM niet opnieuw moet opgebouwd worden na inlezing van disk).
    QueueMgr behandelt de queues in een cyclisch systeem: Voor elke queue worden de boodschappen in chronologische orde behandeld. QueueMgr gaat over naar de volgende queue zodra een queue geen boodschappen meer bevat of van een boodschap blijkt dat ze niet verzonden kan worden.
  • Emitters: Een emitter staat in voor het uitsturen van boodschappen. Vaak wordt de emissie vooraf gegaan door een vertaling (inhoudelijk en / of structureel) van het document. Emitters worden opgebouwd door middel van een combinatie van Java-code en XML-Stylesheets.
  • DataBestemmelingen: De partners (andere waterwegbeheerders, applicaties bij eenzelfde waterwegbeheerder, de schipper) die XML-boodschappen ontvangen.
  • Gebruikersinterface: MCCD is tevens uitgerust met een webinterface met als belangrijkste functionaliteiten:
    • Starten en stoppen van het systeem.
    • Opvragen van de status van de applicatie (machine, disks, queues,...).
    • Nagaan van de aanwezige partners en de boodschappen van / naar deze partners.
    • Opvragen van de logging.
    • Onderzoeken van de locatie van een schip op het kanaal (op basis van vooraankondigingsboodschappen).

Gebruikte technologie

  • De MCCD-server draait het open-source besturingssysteem Linux.
  • De applicatie werd volledig ontwikkeld in Java, waardoor ze op verschillende platformen kan gedraaid worden.
  • Het gebruikte databasesysteem is de open-source database-omgeving PostgreSQL.
  • MCCD maakt intensief gebruik van XML-technologie, zoals XSLT en XML Schemas.
  • Voor de webinterface wordt gebruik gemaakt van php en gwt (Google Web Toolkit).
  • Als SOAP-engine gebruikt MCCD Apache Axis, draaiend onder de Apache Tomcat servlet- en JSP-server.
 
SecurityICT in het onderwijsScheepvaartPublicatiebeheerToeristische Navigatie en GIS