donderdag 19 januari 2012

Intersect; een eerste pre-pre-pre-preview


Een eerste blik op hoe simpel een dashboard kan zijn.
De agent haalt gegevens op van het systeem en bewaakt het errorlog van mijn virtuele röntgenkamer. De gegevens worden verzonden en wanneer de errorlog wordt aangepast omdat er een fout wordt weggeschreven (dit simuleer ik met het venster linksonder) dan wordt er een melding richting de server gestuurd dat er een critical error is.

De server ontvangt de data en ziet dat het om een critical melding gaat, vervolgens wordt het vinkje een rood kruis. Door op het kruis te klikken wordt de status weer teruggezet naar het groene vinkje.

donderdag 12 januari 2012

Systeemdata => XML => TCP/IP => Server => XML

Weer een belangrijk stuk werkend, er wordt systeem informatie opgevraagd uit de client zoals bijvoorbeeld Windows Taakbeheer dit ook doet. De informatie wordt omgezet in een xml formaat en vervolgens via tcp/ip verstuurd naar een server welke de file weer verder verwerkt.
Dit wordt straks de basis voor de communicatie tussen de verschillende agents en de centrale server.


donderdag 5 januari 2012

SPAN(nend)

Omdat het communicatie protocol van de rontgenkamers niet openbaar is en het niet mogelijk is eventuele foutmeldingen ook naar een 2e adres te sturen ben ik genoodzaakt om het protocol te reverse engineeren, tenminste te proberen want als het om versleutelde data gaat kan dit een probleem worden.
De beste manier is om dus mee te luisteren met het netwerkverkeer, dit wordt vaak gedaan door een hub tussen pathpunt en apparaat te zetten waarop een systeem wordt aangesloten met daarop Wireshark.
Gelukkig gebruiken wij hier CISCO switches en deze hebben een vreselijk handige functie SPAN.
SPAN staat voor Switched Port Analyzer en is een manier om data te kopieren naar een andere poort zodat hier met behulp van een sniffer (Wireshark) de data geanalyseerd kan worden.


Door nu op de rontgenkamer fouten te genereren en de kamer opnieuw te starten zodat deze weer aangemeld wordt bij leverancier kan ik hopelijk gericht zoeken naar de gebruikte protocollen en deze dus reverse engineeren. Wanneer deze gegevens bekend zijn is het mogelijk om een eenvoudige sniffer te programmeren welke toegevoegd kan worden aan het project.
Het werkend krijgen van dit systeem zou heel erg mooi zijn aangezien dan alle foutmeldingen afgevangen kunnen worden.

Vandaag heb ik de de juiste pathpunten en switches gezocht en overleg gehad met collega's hoe ik dit het beste kan aanpakken. Gelukkig zijn er voldoende vrije poorten op de switches en worden deze ook niet al te zwaar belast zodat het gebruiken van SPAN geen performance problemen zou moeten veroorzaken.


dinsdag 3 januari 2012

Happy New Year!

Het nieuwe jaar is weer gestart, iedereen nog de beste wensen voor 2012.


Afgelopen week vakantie gehad en daardoor geen updates gedaan in dit blog, ondertussen wel het een en ander geprogrammeerd. Het project lijkt iets uit te gaan lopen onder andere doordat ik doormiddel van Wireshark het protocol moet gaan ontrafelen waarmee onze Röntgenkamers communiceren met de leverancier. Dit staat de komende weken op de planning, hiervoor moeten echter eerst nog wat instellingen aangepast worden op enkele switches zodat ik met een laptop of pc de lijn kan "afluisteren".


Op andere fronten gaat het gelukkig een stuk beter, ik heb al een aantal onderdelen voor de agent en server werkend en ook het binnenhalen van werklijsten met behulp van de Dicom Modality Worklist is mogelijk.
De afgelopen weken heb ik de volgende onderdelen werkend gekregen:



  • Email communicatie (server en client)
  • XML files maken, schrijven en lezen
  • Versturen van bovenstaande xml files (doormiddel van socketcommunicatie)
Neem daarbij nog de eerder functionerend gekregen onderdelen:

Windows service in c#
Hardware monitoring (van het werkstation / pc)

En de blokkendoos voor het Intersect begint al aardig compleet te worden. De grote uitdaging zal hem zitten in het samenvoegen van al deze onderdelen tot een stabiele windows service.

Om de agent compleet te krijgen moet ik de volgende zaken nog aanpakken:

  • Protocol communicatie Röntgenkamers met leverancier (dit om foutmeldingen af te kunnen vangen van deze kamers.
  • Logfile analyser
  • Netwerk ping en Dicom ping
Daarnaast moet ik nog starten aan de centrale server (samen met Edwin Kailuhu) en aan het dashboard voor de afdeling.