OSGi Service Loket
Where OSGi technology means business
|
|
OSGi in Actie
|
Security systeem op basis van OSGi Fks ontwikkelt voor één van haar klanten de CNG-software, een kruisbestuiving tussen een building management en security systeem. In grote lijnen gaat het om een client-server architectuur, waarbij de centrale applicatie op basis van gegevens uit de buitenwereld kan beslissen of één of meerdere van de ingelogde gebruikers dient gealarmeerd te worden. De extern aangeleverde data komen van honderden inbraak- en branddetectoren, roltrappen, liften, schuifdeuren, lichtschakelingen en andere PLC-gestuurde apparaten die aan het systeem gekoppeld werden. Elke inbraak, brand en technische storing die door deze apparaten geregistreerd wordt, kan door CNG aan de operatoren gemeld worden, die via een videowall de locaties met de bewaakte apparaten kunnen monitoren. Een grafische interface toont de gebruikers van het systeem op een overzichtelijke manier de uitgestuurde alarmen. Wanneer een operator zo'n alarm selecteert, krijgt hij de nodige informatie over de toestand van het apparaat dat het alarm heeft gegenereerd. Gaat het om een brandalarm of een pre-alarm (wat betekent dat er een geringe hoeveelheid rook wordt geproduceerd)? Is de detector 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 eveneens automatisch e-mailberichten verzenden. 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. Navigatie De CNG-clientapplicatie kan meer dan alleen aangeven welke alarmen en storingen er geregistreerd werden. 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. Wanneer bijvoorbeeld een branddetector een alarm uitstuurt, ontvangt de operator bijkomende informatie over waar de detector zich bevindt op de bewaakte locaties. Beschikbaarheid Van een building management systeem als CNG wordt verwacht dat dit continu beschikbaar blijft. Uitbreidingen en updates van de applicatie dienen dan ook geïnstalleerd en geactiveerd te kunnen worden zonder het volledige systeem offline te halen. Om aan deze doelstelling te voldoen werd de serverapplicatie opgebouwd volgens een SOA-softwarearchitectuurmodel (Service Oriented Architecture). Hierbij wordt de software 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 voor de overige componenten. Run-time Flexibiliteit Wanneer softwarecomponenten ontwikkeld worden voor een platform dat toelaat dat de afzonderlijke onderdelen dynamisch verschijnen en verdwijnen, moet er vanzelfsprekend rekening mee gehouden worden dat sommige services tijdelijk onbeschikbaar en onbereikbaar kunnen zijn. De OSGi-standaard voorziet in service trackers en listeners die ervoor zorgen dat het starten en stoppen van een service niet onopgemerkt voorbijgaat. Fks gaat nog een stapje verder en ontwikkelde een eigen OSGiProxy library die de communicatie tussen de dynamisch aanpasbare services in goede banen leidt. Herbruikbare OSGi-componenten Het werken met OSGi services laat eveneens toe om applicatieonderdelen eenvoudig te recupereren binnen andere applicaties. Fks ontwikkelde verschillende bundles met services die niet enkel bruikbaar zijn voor CNG, maar ook eenvoudig binnen nieuwe softwareprojecten kunnen aangewend worden. Zo laat cfgBundle toe om configuratieparameters in allerlei formaten te raadplegen. De authenticationBundle communiceert met een LDAP (Lightweight Directory Access Protocol) server of AD (Active Directory) server voor het beheer van gebruikers en toegangsrechten. De mailBundle levert de nodige functionaliteit om e-mailberichten te verzenden en ontvangen. De RSPIBundle (Remote Service Provider Interface) laat toe om te communiceren met andere Java-applicaties binnen een andere Java Virtual Machine of zelfs op een andere computer binnen het netwerk. De sealBundle zorgt voor het beheer van de ingelogde gebruikers (sessies) en de verdeling van de gegenereerde alarmboodschappen onder de sessies. De 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. |