Что ж, вы можете считать высокопроизводительные компьютеры IBM для мэйнфреймов "серверами приложений", они довольно популярны.
TUXEDO - это менеджер транзакций, который расширяет возможности приложений высокого уровня, написанных на многих вещах, таких как C ++.
У Microsoft был MTS (сервер транзакций Microsoft) в тот день. Он говорил с C, C ++, VB и т. Д.
Сервер приложений - хороший, расплывчатый термин. Например, Tomcat - это сервер приложений. Возможно, ZOPE можно считать сервером приложений.
Но, на мой взгляд, вещь, которая действительно отличает сервер приложений от «просто кода», - это менеджер транзакций. Например, я не рассматриваю необработанный Tomcat как сервер приложений, это по-настоящему крутой веб-сервер.
Большинство людей полагаются на базу данных для транзакций, но менеджер транзакций работает на более высоком уровне, где база данных является просто участником. А менеджеры транзакций - это то, где происходит много тяжелой работы с точки зрения сервисов и промежуточного программного обеспечения, предлагаемых серверами приложений. Транзакции действительно важны в бизнес-процессах.
В Java EE есть менеджеры транзакций. Я не знаю ни одной другой «бесплатной» системы, которая бы предлагала менеджер транзакций, способный распределять транзакции. Как я уже говорил, большинство людей полагаются на БД и на этом останавливаются.
Есть несколько менеджеров транзакций, которые поддерживают Java JTA (серверы Java EE внутренне совместимы с JTA), вот к чему подключается Spring для предоставления услуг транзакций. (Spring - это просто фреймворк, а не сам сервер.)
Когда вы добавляете ТМ в ОС, весь компьютер может стать Сервером приложений. Это то, что МТС делает для Windows.
Серверы приложений Java EE выделяются тем, что большую часть этих сервисов делают первоклассными (пулы потоков, распределение объектов, пул баз данных, транзакции и т. Д.). Многие операционные системы предлагают все эти услуги, по крайней мере, на уровне процесса. Но люди не особо заботились о том, чтобы посвятить целую машину какой-то задаче и необходимости настраивать ОС для обслуживания этого отдельного приложения. Но все эти возможности есть.
Добавление современных систем виртуальных машин и выделенных экземпляров ОС «с одной задачей» более целесообразно. «Эта виртуальная машина Linux обрабатывает мой DNS», «Эта виртуальная машина Linux обрабатывает мою электронную почту» и т. Д. Таким образом, возможно, ОС вернется к выделенному серверу приложений.