【问题标题】:Is there any Application Server Frameworks for other languages/platforms than JavaEE and .NET?除 JavaEE 和 .NET 之外,是否有适用于其他语言/平台的应用程序服务器框架?
【发布时间】:2010-05-11 23:54:38
【问题描述】:

我是一名计算机科学专业的学生,​​在企业软件行业拥有罕见的经验。当我阅读企业软件平台时,我主要阅读这两个:

我所说的“企业软件平台”是指支持与 J2EE 和 WCF 具有相同特性的框架和应用程序服务器:

[JavaEE] 提供了部署容错、分布式、多层 Java 软件的功能,主要基于在应用服务器上运行的模块化组件。

WCF 是按照面向服务的架构原则设计的,以支持由消费者消费服务的分布式计算。客户端可以使用多个服务,并且服务可以被多个客户端使用。服务之间是松散耦合的。

  • 这两个“企业软件平台”有什么替代品吗?
  • 在这个问题领域中,没有任何其他编程语言的使用率更高吗?
  • 为什么没有流行的 C++/Qt 应用服务器?

注意:“应用服务器”是指主要用于 GUI 软件的服务器,而不是 Web 服务器/Web 框架。请参阅what is the difference between web servers and application servers?

【问题讨论】:

标签: programming-languages frameworks client-server enterprise application-server


【解决方案1】:

嗯,您几乎可以将高端 IBM 大型机视为“应用程序服务器”,它们非常受欢迎。

TUXEDO 是一个事务管理器,可为许多高端应用程序提供支持,这些应用程序是用 C++ 等多种语言编写的。

Microsoft 在当时拥有 MTS(Microsoft Transaction Server)。它与 C、C++、VB 等对话。

应用服务器是一个很好的、模糊的术语。例如,Tomcat 是一个应用服务器。 ZOPE 可以说是一个应用服务器。

但在我看来,真正将应用服务器与“仅代码”区分开来的是事务管理器。例如,我不认为原始 Tomcat 是应用程序服务器,它基本上是一个非常酷的 Web 服务器。

大多数人依赖数据库进行事务处理,但事务管理器工作在更高级别,数据库只是参与者。事务管理器是应用服务器提供的服务和中间件方面的大量繁重工作发生的地方。事务在业务流程中非常重要。

Java EE 具有事务管理器。我不知道有任何其他“免费”系统提供能够进行分布式事务的事务管理器。正如我所提到的,大多数人都依赖于数据库并停在那里。

有几个事务管理器支持 Java JTA(Java EE 服务器内部兼容 JTA),这就是 Spring 为了提供事务服务而插入的。 (Spring 只是一个框架,它本身并不是一个服务器。)

当您将 TM 添加到操作系统时,整台机器可以成为应用服务器。这就是 MTS 为 Windows 所做的。

Java EE 应用程序服务器之所以脱颖而出,是因为它们将这些服务中的大部分设为一流(线程池、对象分配、数据库池、事务等)。许多操作系统提供所有这些服务,至少在进程级别。但是人们并不在意将整台机器专门用于一项任务,并且不得不调整操作系统来为单个应用程序提供服务。但是,所有这些功能都在那里。

添加现代 VM 系统和专用的“单任务”操作系统实例更有意义。 “这个 Linux 虚拟机处理我的 DNS”、“这个 Linux 虚拟机处理我的电子邮件”等等。所以,操作系统可能会重新成为一个专用的应用程序服务器。

【讨论】:

  • 太糟糕了,这根本无法回答问题。除了引用 IBM 大型机之外,除了 Java 和 C# 之外,没有提供其他语言的应用服务器。而Tomcat“只是一个非常酷的网络服务器”?这是我上次检查时 servlet/JSP 引擎的参考实现。应用服务器不仅仅是一个事务管理器。它是分布式组件及其生命周期管理、线程、命名、排队和其他服务。在我看来,仅引用 TM 会过度简化它。
  • @duffymo - Tomcat 提供的很少。 Microsoft Windows 为 C++、VB 或几乎任何可以利用 .NET 或 COM+ 的语言制作了出色的应用服务器。 VMS 可以很好地提供这些服务(我的 VMS 知识已经过时了 30 年)。 Unix 是一个很好的基础,但开箱即用它并不存在。您需要添加诸如 CORBA、TIBCO 和 TUXEDO 之类的内容来完善它。今天,没有人打扰并运行 Java JEE,因为它确实免费提供所有这些。
  • Tomcat 为 servlet、线程和 HTTP 远程处理提供命名、生命周期管理。可以使用 DBCP 和 Apache 的 JMS 实现来添加连接池和队列。我知道这是作弊,但可以做到。 “VMS 传说”——我的也非常过时了。由于没有人再运行 DEC 设备,我不明白它为什么会出现。我以为 OP 是在询问现代语言,如 C++、Python、Ruby 等。
  • @duffymo - 哦,你不认为他对 BLISS、FOCAL 和 BASIC-PLUS2 感兴趣吗?而且,是的,当然 Tomcat 可以“转入”应用服务器,这就是为什么我将我的陈述限定为“原始 Tomcat”。混合 Tomcat 和 Spring 之类的东西,你就有了一个优秀的应用服务器。 Tomcat 就像 Unix 就是那种感觉——构建的好平台,但不是开箱即用的。
  • @Will - 我的猜测是“不”,但也许我太仓促了。我的观点是,即使没有 Spring,Tomcat 也可以做很多事情。我引用的服务并非微不足道。使用 JSTL、servlet 和 JDBC 编写的 JSP 确实可以走很长的路。
【解决方案2】:

Spring.py 可用于 Python。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-02
    • 2010-09-15
    相关资源
    最近更新 更多