除了 JavaEE 和 .NET 之外,是否有适用于其他语言/平台的应用程序服务器框架?
我是一名计算机科学专业的学生,拥有企业软件行业难得的经验。当我阅读有关企业软件平台的内容时,我主要阅读这两个:
我所说的“企业软件平台”是指支持与 J2EE 和 WCF 相同特征的框架和应用程序服务器:
[JavaEE] 提供部署容错、分布式、多层 Java 软件的功能,主要基于在应用程序服务器上运行的模块化组件。
WCF是根据面向服务的架构原则设计的,以支持消费者使用服务的分布式计算。客户端可以使用多个服务,并且服务可以由多个客户端使用。服务彼此松散耦合。
- 这两个“企业软件平台”还有其他选择吗?
- 对于这个问题领域,是否有更多的其他编程语言被使用?
- 为什么没有流行的 C++/Qt 应用程序服务器?
注意:“应用程序服务器”是指主要用于 GUI 软件的服务器,而不是 Web 服务器/Web 框架。请参阅Web 服务器和应用程序服务器?
I'm a CS student and has rare experience from the enterprise software industry. When I'm reading about enterprise software platforms, I mostly read about these two:
By "enterprise software platforms" I mean frameworks and application servers with support for the same characteristics as J2EE and WCF has:
[JavaEE] provide functionality to deploy fault-tolerant, distributed, multi-tier Java software, based largely on modular components running on an application server.
WCF is designed in accordance with service oriented architecture principles to support distributed computing where services are consumed by consumers. Clients can consume multiple services and services can be consumed by multiple clients. Services are loosely coupled to each other.
- Is there any alternatives to these two "enterprise software platforms"?
- Isn't any other programming languages used in a bigger rate for this problem area?
- Why isn't there any popular application servers for C++/Qt?
Note: By "Application Server" I mean a server mainly for GUI-software and not a Webserver/Web Framework. See what is the difference between web servers and application servers?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
嗯,您几乎可以将高端 IBM 大型机视为“应用程序服务器”,它们非常受欢迎。
TUXEDO 是一个事务管理器,支持许多用 C++ 等多种语言编写的高端应用程序。
微软当时拥有 MTS(Microsoft Transaction Server)。它涉及 C、C++、VB 等。
应用程序服务器是一个很好的、模糊的术语。例如,Tomcat 是一个应用程序服务器。可以说 ZOPE 可以被认为是一个应用服务器。
但在我看来,真正将应用程序服务器与“仅代码”区分开来的是事务管理器。例如,我不认为原始 Tomcat 是应用程序服务器,它基本上是一个非常酷的 Web 服务器。
大多数人依赖数据库进行事务,但事务管理器在更高级别上工作,数据库只是参与者。事务管理器是应用程序服务器提供的服务和中间件方面的许多繁重工作发生的地方。事务在业务流程中非常重要。
Java EE 有事务管理器。我不知道有任何其他“免费”系统提供能够进行分布式事务的事务管理器。正如我所提到的,大多数人依赖数据库并就此止步。
有几个支持 Java JTA 的事务管理器(Java EE 服务器内部兼容 JTA),Spring 插入这些事务管理器以提供事务服务。 (Spring只是一个框架,它本身不是一个服务器。)
当你给一个OS添加一个TM时,整个机器就可以成为一个Application Server。这就是 MTS 对 Windows 所做的事情。
Java EE 应用服务器脱颖而出,因为它们使许多服务成为一流的(线程池、对象分配、数据库池、事务等)。许多操作系统至少在进程级别提供所有这些服务。但人们并不太关心将整台机器专门用于一项任务,也不太关心必须调整操作系统来为单个应用程序提供服务。但是,所有这些能力都在那里。
添加现代虚拟机系统和专用的“单任务”操作系统实例更有意义。 “这个 Linux VM 处理我的 DNS”、“这个 Linux VM 处理我的电子邮件”等等。因此,也许操作系统将恢复为专用应用程序服务器。
Well, you can pretty much consider the high end IBM mainframe machines "application servers", they're pretty popular.
TUXEDO is a transaction manager that empowers a lot of high end applications, written in many things, like C++.
Microsoft had MTS (Microsoft Transaction Server) back in the day. It talked to C, C++, VB, etc.
Application Server is a nice, vague term. Tomcat is an application server, for example. Arguably ZOPE can be considered an application server.
But the thing, in my mind, that really distinguishes an Application Server from "just code" is the transaction manager. I don't consider a raw Tomcat an Application Server, for example, it's basically a really cool web server.
Most folks rely on the database for transactions, but a transaction manager works at a higher level where a database is simply a participant. And transaction managers are where a lot of the heavy lifting in terms of services and middleware offered by Application Servers happens. Transactions are really important in business processes.
Java EE has transaction managers. I don't know of any other "free" system that offers a transaction manager capable of distributed transactions. As I mentioned, most folks rely on the DB and stop there.
There are several transaction managers that support Java JTA (Java EE servers are JTA compliant internally), that's what Spring plugs in to in order to offer transaction services. (Spring is just a framework, it's not a server itself.)
When you add a TM to an OS, the entire machine can become an Application Server. That's what MTS does for Windows.
Java EE app servers stand out because they make much of these services first class (thread pools, object allocation, database pooling, transactions, etc.). Many OSes offer all of these services, at least at the process level. But folks didn't care much to dedicate an entire machine to a task, and having to tune the OS to service that single application. But, all that capability is there.
Add in modern VM systems, and dedicated, "single task" OS instances make more sense. "This Linux VM handles my DNS", "This Linux VM handles my email", etc. So, perhaps the OS will be returning to being a dedicated Application Server.
Spring.py 可用于 Python。
Spring.py is available for Python.