Существуют ли какие-либо платформы серверов приложений для других языков / платформ, кроме JavaEE и .NET? - PullRequest
2 голосов
/ 12 мая 2010

Я учусь на CS и имею редкий опыт работы в индустрии корпоративного программного обеспечения. Когда я читаю о корпоративных программных платформах, я в основном читаю об этих двух:

Под «платформами корпоративного программного обеспечения» я подразумеваю платформы и серверы приложений с поддержкой тех же характеристик, что и у J2EE и WCF:

[ JavaEE ] предоставляет функциональные возможности для развертывания отказоустойчивого распределенного многоуровневого программного обеспечения Java, основанного главным образом на модульных компонентах, работающих на сервере приложений.

WCF разработан в соответствии с принципами сервис-ориентированной архитектуры для поддержки распределенных вычислений, когда услуги потребляются потребителями. Клиенты могут использовать несколько служб, а службы могут использовать несколько клиентов. Услуги слабо связаны друг с другом.

  • Есть ли альтернативы этим двум "программным платформам предприятия"?
  • Разве другие языки программирования не используются в большей степени для этой проблемной области?
  • Почему нет популярных серверов приложений для C ++ / Qt?

Примечание: Под «сервером приложений» я имею в виду сервер, предназначенный главным образом для программного обеспечения с графическим интерфейсом, а не веб-сервер / веб-платформу. См. В чем разница между веб-серверами и серверами приложений?

Ответы [ 2 ]

4 голосов
/ 12 мая 2010

Что ж, вы можете считать высокопроизводительные компьютеры 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 обрабатывает мою электронную почту» и т. Д. Таким образом, возможно, ОС вернется к выделенному серверу приложений.

1 голос
/ 12 мая 2010

Spring.py доступно для Python.

...