Android en OSGi
Hergebruik en het ontwikkelen van software op basis van bestaande componenten is een van de aspecten van software ontwikkeling die steeds belangrijker wordt. In een tijd waarin producten van steeds sneller naar de markt moeten en de complexiteit van software toeneemt, kun je het je niet meer veroorloven om alles zelf te doen en telkens van scratch te beginnen.
Het ontwerpen van applicaties op basis van herbruikbare componenten heeft zichzelf in de Java wereld al lang bewezen. Het meest gebruikte framework hiervoor is OSGi, wat je in staat stelt om componenten (zogenaamde “bundles”) te maken die een duidelijk gedefinieerde interface hebben en waarvan je de interne code niet van buiten kunt benaderen. Zo gebouwde applicaties zijn bovendien dynamisch, in de zin dat componenten, zonder de applicatie te moeten stoppen, toegevoegd, geupdate en verwijderd kunnen worden.
Omdat het OSGi framework zelf zeer licht van gewicht is — het is immers ooit ontworpen om in embedded omgevingen gebruikt te worden — is het prima geschikt om Android applicaties modulair te maken. Hierdoor wordt het hergebruik van componenten sterk vereenvoudigd. Al toen de eerste Android SDK door Google werd vrijgegeven, hebben we binnen Luminis uitgezocht hoe je Apache Felix (een implementatie van de OSGi standaard) op de Dalvik VM kon draaien. In het begin hadden we daar nog ongedocumenteerde APIs voor nodig, maar inmiddels heeft Google die allemaal netjes gepubliceerd en als je momenteel een release van Apache Felix downloadt, werkt die zonder verdere wijzigingen op Android.
Het gebruik van OSGi op Android wordt extra interessant als je gaat kijken naar de software distributie mogelijkheden die je daardoor krijgt. Zo kun je met Apache ACE, een software distributie (of provisioning) framework — componenten van afstand updaten, zonder tussenkomst van een gebruiker. Hierdoor ontstaat flexibiliteit die je in staat stelt om je applicaties bijvoorbeeld adaptief te maken (ze kunnen zich aanpassen aan hun omgeving).
Al een tijdje geleden hebben Luminis en Akquinet de koppen bij elkaar gestoken om een omgeving te maken waarin Android en OSGi op elkaar afgestemd zijn op basis van eerdergenoemde open source projecten: Apache Felix en Apache ACE. Dat initiatief heet EZDroid en op die website kun je daar meer over te weten komen.
| Print artikel | Dit bericht is gepost door Marcel Offermans op 2010/10/03 om 11:59 uur en is gearchiveerd onder Applicaties. Volg reacties op dit bericht via RSS 2.0. Je kunt een reactie achterlaten of trackback van je eigen site. |

