existe (en cierta medida) una sobrecarga del término "aplicación".
OSGi es un entorno de ejecución (y modelo de desarrollo) para modular aplicaciones Java. El término "aplicación" en este caso puede ser realmente, realmente bajo nivel. Por ejemplo, un servidor de aplicaciones se puede considerar como una "aplicación".
Los servidores de aplicaciones también son un entorno de ejecución (y modelo de desarrollo) para aplicaciones Java. Sin embargo, el término "aplicación" en este caso se refiere típicamente a un tipo de aplicación de nivel superior (por ejemplo, aplicaciones web). Los servidores de aplicaciones suelen incluir un amplio conjunto de API de mayor funcionalidad y programación para crear aplicaciones web (Servlets), datos persistentes en bases de datos (JPA) y capacidades de clúster. La mayoría de los servidores de aplicaciones actualmente están compuestos por módulos (por ejemplo, núcleo, servlet motor, contenedor EJB, etc.). Algunos servidores de aplicaciones usan OSGi bajo las cubiertas. Otros tienen su propio entorno de tiempo de ejecución modular que también ofrece capacidades OSGi.
Pero también es posible desarrollar aplicaciones de nivel superior (como aplicaciones web) directamente utilizando solo el entorno de ejecución OSGi. Sin embargo, un marco OSGi en sí mismo no incluye ninguna de las funcionalidades adicionales. Tiene que ser montado usted mismo. Hay algunas "distribuciones" que incluyen un marco y varios módulos.
En otras palabras, OSGi es el bare metal (acero premium) y los servidores de aplicaciones son herramientas de metal (a veces hechas de acero de primera calidad). ;) – Gunnar
En caso de buscar un entorno de contenedor tipo "servidor de aplicaciones" para OSGi, eche un vistazo a Apache Karaf o Eclipse Virgo –