私はJava Webアプリケーションとエンタープライズアプリケーションの違いについていくつかの調査を行っています。私が見つけたのは、それらが少し似たアーキテクチャを持っているということです。
たとえば、エンタープライズアプリケーションには、クライアント層、プレゼンテーション層、ビジネスロジック層、およびデータ層があります。
クライアント層は、Javaクライアント、ブラウザベースのクライアント、モバイルクライアント)にすることができます。
プレゼンテーション層は、JavaBeansコンポーネント、サーブレット、ポータル、およびJSPコンポーネントにすることができます。
ビジネスロジック層には、サーバー、Webサービス(SOAP、Restfulなど)、およびMDBコンポーネントを含めることができます。
データ層では、DBMS、LDAP、およびデータフィードを使用できます。
これらのコンポーネントをWebアプリケーションと比較すると、Javaエンタープライズアプリケーションを作成せずに使用できます。たとえば、Hibernate、Maven、JSP、JSFなどのさまざまなテクノロジを使用してWebアプリケーションを実装できます。 、データベース、サーブレット、JavaBeansなど。
私の最大の質問は、JavaエンタープライズアプリケーションとWebアプリケーションの主な違いは何ですか?なぜJavaエンタープライズアプリケーション?
Javaエンタープライズアプリケーションを使用するのはなぜですか?
この質問は、仕様自体が光を見たのとほぼ同時に起こりました。
このトピックについて数冊の本が書かれていました。
実行中のPOJO:軽量フレームワークを使用したエンタープライズアプリケーションの開発
また、 Spring のようなテクノロジーも代替案を提供します。
したがって、ほとんどの場合、エンタープライズアプリケーションを構築する必要なく、クライアントの要件を満たすWebアプリケーションを構築できます。
ただし、特別な機能要件や非機能要件を持つアプリケーションがあり、分散トランザクション、メッセージング処理、タイマーサービス、リモートメソッド呼び出しなどの特定のサービスを提供するインフラストラクチャ上でビジネスレイヤーを実行する必要があります。
この種のインフラストラクチャサービスはWebサーバーでは利用できません。このため、重量のあるアプリケーションサーバーで実行するアプリケーション(または少なくともいくつかのコンポーネント)を開発する必要があります。
Oracle Webサイト からわかるように、Java Enterprise Editionは仕様です。さまざまなベンダーからの実装が多数あります。標準版との主な違いは、エンタープライズでは、後者の場合、TomcatのようなWebサーバーではなく、アプリケーションサーバーが必要です。これは、ビジネスロジックを配置する EJBs があるためです(Java EE仕様)は、それらを処理するコンテナを必要とします。
JBoss、Geronimo、Resin、WebSphereなどは、EJBを管理するアプリケーションサーバーです。