La spécification OSGi est définie et gérée par OSGi Alliance, une organisation proposant des normes ouvertes. Elle met l'accent sur des normes ouvertes pour la gestion de réseaux connectés et sans fil multimédia, de données et vocaux. La spécification de la plateforme de service OSGi définit une architecture commune ouverte pour la distribution et la gestion des services à l'aide de bundles.
L'infrastructure des applications OSGi fournit un modèle de programmation pour le développement, l'assemblage et le déploiement, sous forme de bundles et d'applications modulaires qui utilisent les technologies Java™ EE et OSGi.
Pour plus d'informations sur la spécification OSGi, voir OSGi Alliance Specifications.
La version 4.2 de la spécification OSGi met l'accent sur OSGi pour les applications d'entreprise Java.
La version 4.2 de la spécification OSGi inclut la définition du modèle de composant blueprint, une version normalisée du modèle d'assemblage Spring Framework. Le modèle de composant blueprint décrit la façon dont les composants peuvent être connectés entre eux dans un bundle et comment des configurations et des dépendances sont injectées par un conteneur de composant blueprint dans l'environnement d'exécution.
Les composants et les références consommés sont déclarés dans un fichier Blueprint de module XML qui est une normalisation du contexte d'application Spring. Ce fichier est étendu pour l'environnement OSGi afin que les composants puissent être automatiquement publiés en tant que services pour le registre de services. Les références peuvent être automatiquement résolues en tant que services détectés à partir du registre de services.
Le modèle de composant blueprint procure la simplicité de l'infrastructure Spring, notamment sa capacité à former un test d'unité distinct de l'environnement de serveur. Blueprint normalise les métadonnées de configuration et permet par conséquent la gouvernance de la spécification du modèle de composant.