De kracht van de eenvoud
Marcel Offermans | 01-02-2007Direct na de feestdagen ben ik op vakantie geweest in Fins Lapland, waar we een week lang door de prachtige natuur getrokken hebben. Een gids heeft ons leren navigeren en overleven in een winters landschap met simpele middelen. Behalve dat zo’n avontuur je weer helemaal tot rust brengt, laat het je ook zien dat je met een aantal eenvoudige middelen heel veel kunt bereiken.Dat zet je, na terugkomst, aan het denken over software ontwikkeling.
De gereedschappen die je gebruikt zijn van wezenlijk belang. In de natuur konden we met een mes, zaag en bijl vuur maken. Tegelijkertijd werd pijnlijk duidelijk dat je goed om moest kunnen gaan met die gereedschappen. Onze gids had ‘t allemaal zo voor elkaar, maar toen we ‘t zelf moesten doen, kostte dat aanzienlijk meer tijd, moeite en pogingen.
Wat ook opviel was de eenvoud van bepaalde ontwerpen. Van een stukje hout en een schijf werd een soort soeplepel gemaakt. Had je iets nodig om in de koffie te roeren dan kon je dat met je mes simpel zelf maken. Koffie zetten ging met een “black pot” die met een stok vlak naast of boven het vuur gehangen werd en van een paar takjes werd een plateau gemaakt zodat die koffiepot niet in de sneeuw hoefde te staan (waardoor hij zeer snel af zou koelen).
De lessen zijn duidelijk: hou het simpel en zorg dat je goed om kunt gaan met je gereedschap! Dat is uiteraard ook van toepassing op software ontwikkeling.
Voor mij is OSGi een goed voorbeeld van een framework wat dingen simpel houdt en een prima basis biedt voor software ontwikkeling. Toen Java net uit was en de J2EE specificatie alleen nog op papier bestond, was ik voor mijn toenmalige werkgever TOPdesk bezig met de implementatie van een applicatieserver. We hebben toen direct gekozen voor een component gebaseerde opzet met vervangbare modules. Daarvoor werd er zelf een framework ontwikkeld wat op afstand kon detecteren of er updates waren, die ging downloaden en installeren.
Een jaar of vijf geleden, een paar jaar na dat zelf ontwikkelde framework, kwam ik voor ‘t eerst in aanraking met OSGi in combinatie met een embedded toepassing. De overeenkomsten met mijn zelf ontwikkelde framework waren groot, alleen moest ik eerlijk toegeven dat OSGi een aantal zaken beter en eleganter had opgelost. Sindsdien ben ik betrokken bij verschillende projecten met OSGi als basis.
Het is interessant om te zien dat het framework nu toepassingen vindt in zowel de embedded als de desktop als de enterprise markt en ik verwacht dat 2007 het jaar wordt waarin alle grote applicatieservers het gaan implementeren. Spring loopt voorop, die hebben al een goede OSGi integratie gemaakt. Jonas is er ook actief mee bezig, evenals JBoss en BEA. IBM’s Websphere heeft het ook al en bij Geronimo wordt er al een tijd over gesproken. Al deze inspanningen zijn goed voor de zichtbaarheid van OSGi, omdat de praktijk vaak is dat de meeste embedded toepassingen niet uitgebreid in het nieuws komen. Immers, een hoop bedrijven zien het feit dat ze OSGi gebruiken als een groot concurrentievoordeel en hangen dat daarom niet aan de grote klok.
Conclusie? OSGi is een framework wat breed inzetbaar is en een uitstekend bouwblok is voor het opzetten van een component gebaseerde service architectuur. Het is relatief simpel en krachtig en mits vakkundig ingezet een uitstekende oplossing.





