好吧,您几乎可以将高端 IBM 大型机视为“应用程序服务器”,它们非常受欢迎。
TUXEDO 是一个事务管理器,它支持许多高端应用程序,用许多东西编写,比如 C++。
微软当时拥有 MTS(Microsoft Transaction Server)。它与 C、C++、VB 等对话。
应用程序服务器是一个很好的、模糊的术语。例如,Tomcat 是一个应用服务器。可以说 ZOPE 可以被认为是一个应用服务器。
但是,在我看来,真正将应用程序服务器与“仅代码”区分开来的是事务管理器。例如,我不认为原始 Tomcat 是应用程序服务器,它基本上是一个非常酷的 Web 服务器。
大多数人依赖数据库进行事务,但事务管理器工作在更高级别,数据库只是参与者。事务管理器是应用服务器提供的服务和中间件方面的大量繁重工作发生的地方。事务在业务流程中非常重要。
Java EE 具有事务管理器。我不知道有任何其他“免费”系统提供能够进行分布式事务的事务管理器。正如我所提到的,大多数人都依赖数据库并停在那里。
有几个事务管理器支持 Java JTA(Java EE 服务器内部兼容 JTA),这就是 Spring 为了提供事务服务而插入的。(Spring 只是一个框架,它本身不是服务器。)
将 TM 添加到 OS 后,整台机器就可以成为应用服务器。这就是 MTS 为 Windows 所做的。
Java EE 应用程序服务器之所以脱颖而出,是因为它们将这些服务中的大部分设为一流(线程池、对象分配、数据库池、事务等)。许多操作系统提供所有这些服务,至少在进程级别。但是人们并不在意将整台机器专门用于一项任务,并且不得不调整操作系统来为单个应用程序提供服务。但是,所有这些能力都在那里。
添加现代 VM 系统和专用的“单任务”操作系统实例更有意义。“这个 Linux VM 处理我的 DNS”、“这个 Linux VM 处理我的电子邮件”等。所以,操作系统可能会重新成为一个专用的应用程序服务器。