13

我无法理解这两个平台的区别?两者似乎都为部署和管理应用程序提供了环境。首先,我认为应用服务器在后台使用 OSGi,我现在不这么认为,但我看到大型 AS(jboss、glassfish、websphere 等)使用 OSGi。大局是什么?

谢谢

4

1 回答 1

13

有(在某种程度上)术语“应用程序”的重载。

OSGi 是模块化Java 应用程序的运行时环境(和开发模型)。在这种情况下,术语“应用程序”可能非常非常低级。例如,应用服务器可以被认为是这样的“应用程序”。

应用程序服务器也是 Java 应用程序的运行时环境(和开发模型)。然而,在这种情况下,术语“应用程序”通常是指更高级别的应用程序类型(例如,Web 应用程序)。应用程序服务器通常包括一组丰富的高级功能和编程 API,用于构建 Web 应用程序 (Servlet)、将数据持久保存到数据库 (JPA) 和集群功能。如今,大多数应用服务器都由模块组成(例如,核心、servlet 引擎、EJB 容器等)。一些应用程序服务器在幕后使用 OSGi。其他人有自己的模块化运行时环境,也提供 OSGi 功能。

但也可以仅使用 OSGi 运行时环境直接开发更高级别的应用程序(例如 Web 应用程序)。但是,OSGi 框架本身不包含任何附加功能。它必须自己组装。有一些“发行版”包括一个框架和几个模块。

于 2012-09-25T12:49:58.033 回答