2

私は CS の学生で、エンタープライズ ソフトウェア業界での経験はほとんどありません。エンタープライズ ソフトウェア プラットフォームについて読むときは、主に次の 2 つについて読みます。

「エンタープライズ ソフトウェア プラットフォーム」とは、J2EE や WCF と同じ特性をサポートするフレームワークとアプリケーション サーバーを意味します。

[ JavaEE ] は、主にアプリケーション サーバー上で実行されるモジュラー コンポーネントに基づいて、フォールト トレラントで分散型の多層 Java ソフトウェアを展開する機能を提供します。

WCFは、サービスが消費者によって消費される分散コンピューティングをサポートするために、サービス指向アーキテクチャの原則に従って設計されています。クライアントは複数のサービスを使用でき、サービスは複数のクライアントで使用できます。サービスは互いに疎結合です。

  • これら 2 つの「エンタープライズ ソフトウェア プラットフォーム」に代わるものはありますか?
  • この問題領域でより多くの割合で使用されているプログラミング言語は他にありませんか?
  • C++/Qt 用の一般的なアプリケーション サーバーがないのはなぜですか?

注:「アプリケーション サーバー」とは、Web サーバー/Web フレームワークではなく、主に GUI ソフトウェア用のサーバーを意味します。Web サーバーとアプリケーション サーバーの違いがわかりますか?

4

2 に答える 2

4

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.

于 2010-05-12T00:15:47.617 に答える
1

Spring.pyは Python で使用できます。

于 2010-05-11T23:58:14.007 に答える