web-dev-qa-db-ja.com

Java WebアプリケーションとJavaエンタープライズアプリケーションの違いは何ですか?

私はJava Webアプリケーションとエンタープライズアプリケーションの違いについていくつかの調査を行っています。私が見つけたのは、それらが少し似たアーキテクチャを持っているということです。

たとえば、エンタープライズアプリケーションには、クライアント層、プレゼンテーション層、ビジネスロジック層、およびデータ層があります。

クライアント層は、Javaクライアント、ブラウザベースのクライアント、モバイルクライアント)にすることができます。
プレゼンテーション層は、JavaBeansコンポーネント、サーブレット、ポータル、およびJSPコンポーネントにすることができます。
ビジネスロジック層には、サーバー、Webサービス(SOAP、Restfulなど)、およびMDBコンポーネントを含めることができます。
データ層では、DBMS、LDAP、およびデータフィードを使用できます。

これらのコンポーネントをWebアプリケーションと比較すると、Javaエンタープライズアプリケーションを作成せずに使用できます。たとえば、Hibernate、Maven、JSP、JSFなどのさまざまなテクノロジを使用してWebアプリケーションを実装できます。 、データベース、サーブレット、JavaBeansなど。

私の最大の質問は、JavaエンタープライズアプリケーションとWebアプリケーションの主な違いは何ですか?なぜJavaエンタープライズアプリケーション?

13
Amir Al

Javaエンタープライズアプリケーションを使用するのはなぜですか?

この質問は、仕様自体が光を見たのとほぼ同時に起こりました。

このトピックについて数冊の本が書かれていました。

EJBを使用しない専門家による1対1のJ2EE開発

実行中のPOJO:軽量フレームワークを使用したエンタープライズアプリケーションの開発

また、 Spring のようなテクノロジーも代替案を提供します。

したがって、ほとんどの場合、エンタープライズアプリケーションを構築する必要なく、クライアントの要件を満たすWebアプリケーションを構築できます。

ただし、特別な機能要件や非機能要件を持つアプリケーションがあり、分散トランザクション、メッセージング処理、タイマーサービス、リモートメソッド呼び出しなどの特定のサービスを提供するインフラストラクチャ上でビジネスレイヤーを実行する必要があります。

この種のインフラストラクチャサービスはWebサーバーでは利用できません。このため、重量のあるアプリケーションサーバーで実行するアプリケーション(または少なくともいくつかのコンポーネント)を開発する必要があります。

6

Oracle Webサイト からわかるように、Java Enterprise Editionは仕様です。さまざまなベンダーからの実装が多数あります。標準版との主な違いは、エンタープライズでは、後者の場合、TomcatのようなWebサーバーではなく、アプリケーションサーバーが必要です。これは、ビジネスロジックを配置する EJBs があるためです(Java EE仕様)は、それらを処理するコンテナを必要とします。

JBoss、Geronimo、Resin、WebSphereなどは、EJBを管理するアプリケーションサーバーです。

6
Paolof76