|
Maatsoftware > Security fks ontwikkelt voor één van haar klanten de CNG-software, een combinatie van een building management en security systeem. Functionaliteit - De applicatie ontvangt gegevens van de buitenwereld (honderden inbraak- en branddetectoren, roltrappen, liften, schuifdeuren, lichtschakelingen en andere PLC-gestuurde apparaten).
- Op basis van de ontvangen gegevens beslist de applicatie of de gebruikers/operatoren moeten gealarmeerd worden over een inbraak, een technische storing of een ander incident.
- De operatoren ontvangen de uitgestuurde alarmen in een grafische interface, te samen met de nodige informatie over het apparaat dat het alarm heeft gegenereerd:
- Gaat het bijvoorbeeld om een brandalarm of een pre-alarm (wat betekent dat er een geringe hoeveelheid rook wordt geproduceerd)?
- Is de branddetector misschien vervuild?
- Is er een probleem met de connectie tussen de detector en het systeem?
- Naast deze detectorinformatie wordt eveneens een voorstel getoond in verband met de te ondernemen acties:
- Moet de brandweer gewaarschuwd worden?
- Dient er contact opgenomen te worden met de technische afdeling?
- De applicatie kan automatisch e-mailberichten uitsturen.
- De operatoren kunnen de bewaakte locaties via een videowall monitoren.
- Indien er camera's geïnstalleerd zijn op de locatie van de detector die het alarm genereert, dan kunnen de bijbehorende beelden automatisch getoond worden op de videowall.
- De software is eveneens uitgerust met alle plannen en plattegronden van de bewaakte omgeving. De gebruiker kan eenvoudig door de verschillende plannen wandelen om de toestand van de geïnstalleerde apparaten te verifiëren.
Vereisten - Een building management en security systeem moet continu beschikbaar zijn.
- Uitbreidingen en updates van de applicatie dienen geïnstalleerd en geactiveerd te worden zonder het volledige systeem offline te halen.
Gebruikte architectuur/technologieën Om aan deze vereisten te voldoen werd de serverapplicatie opgebouwd volgens een SOA-softwarearchitectuurmodel (Service Oriented Architecture): - De software wordt opgesplitst in meerdere componenten (services) die elkaar diensten of data leveren.
- De software moet dan wel zo opgebouwd worden dat de verschillende services afzonderlijk opnieuw kunnen opgestart worden met minimale hinder voor de overige componenten.
Het gebruikte framework is OSGi (Open Services Gateway initiative): - Het is een Java-gebaseerd serviceplatform dat beheer vanop afstand mogelijk maakt.
- Het omvat een model voor een applicatielevenscyclus en een mechanisme voor de registratie van services.
- Binnen dit framework worden OSGi-services uitgewerkt als applicatie bundles.
- Deze bundles kunnen vanop afstand dynamisch geïnstalleerd, gestart, gestopt, aangepast en gedeïnstalleerd worden zonder dat het volledige systeem opnieuw moet opgestart worden.
- De OSGi-standaard voorziet in service trackers en listeners die ervoor zorgen dat het starten en stoppen van een service niet onopgemerkt voorbijgaat.
- fks ontwikkelde een eigen OSGiProxy library die de communicatie tussen de dynamisch aanpasbare services in goede banen leidt.
fks ontwikkelde verschillende bundles met services die niet enkel bruikbaar zijn voor CNG, maar ook eenvoudig binnen nieuwe softwareprojecten kunnen aangewend worden: - cfgBundle: laat toe om configuratieparameters in allerlei formaten te raadplegen.
- authenticationBundle: communiceert met een LDAP (Lightweight Directory Access Protocol) server of AD (Active Directory) server voor het beheer van gebruikers en toegangsrechten.
- mailBundle: levert de nodige functionaliteit om e-mailberichten te verzenden en ontvangen.
- rspiBundle: laat toe om te communiceren met andere Java-applicaties binnen een andere Java Virtual Machine of zelfs op een andere computer binnen het netwerk. RSPI staat voor Remote Service Provider Interface.
- sealBundle: zorgt voor het beheer van de ingelogde gebruikers (sessies) en de verdeling van de gegenereerde alarmboodschappen onder de sessies. Zowel de operator als de applicatie kunnen alarmen delegeren naar een extern systeem. De verdere afhandeling van dit alarm gebeurt dan door de externe applicatie.
- persistBundle: verzorgt het opslaan en ophalen van de persistente gegevens in de application storage.
Doordat we deze services in toekomstige OSGi-based applicaties opnieuw kunnen gebruiken, zal dat ongetwijfeld een gunstig effect hebben op de implementatietijd en kost van die applicaties. |