J2EE は Java 2 Enterprise Edition (以前は Java 2 Platform Enterprise Edition) の短縮形であり、仕様は Java 2 Standard Edition(J2SE) を拡張しています。 J2EE は、大規模に利用される組み込みのサービス セットを提供し、多層、コンポーネントベース、分散アーキテクチャをサポートします。通常、J2EE は大規模なアプリケーションの構築に役立つ API のセットです。 J2EE テクノロジーは API を使用し、エンタープライズ アプリケーションを構築および展開するための標準です。 「一度書けばどこでも実行できる」ことを約束します。
広告
このカテゴリーの人気コース
J2EE - 専門分野 | 14 コースシリーズ | 6 つの模擬テスト
無料ソフトウェア開発コースを始めましょう
Web 開発、プログラミング言語、ソフトウェア テスト、その他
Java Enterprise Edition には、Web ページの生成、データベースの読み取りと書き込み、分散キューの管理など、さまざまな目的のためのいくつかの仕様が含まれています。
J2EE テクノロジーのリスト
J2EE プラットフォームのグラフィック表現。
1. Java サーブレット
Java サーブレットは Web サーバー上で実行され、動的な Web ページを生成し、Web ブラウザからのリクエストを処理し、リクエストを処理して、処理されたデータをブラウザに送り返します。
Common Gateway Interface (CGI) も動的 Web ページの開発に使用されますが、パフォーマンス、スケーラビリティ、再利用性などのいくつかの制限があります。この制限を克服するには、サーブレットを使用できます。
CGI の最も重要な欠点の 1 つは、ユーザー CGI プログラムからの新しいリクエストが処理されるたびに、新しいプロセスを作成することです。ユーザーの数が多数増加すると、CGI はリクエストごとに新しいプロセスを作成する必要があります。プロセスごとに新しいものを作成することは、リソースが限られているため、サーバー側では無効です。 CGI とは異なり、個別のスレッドがサーブレット プログラムを処理します。
サーブレット実行プロセス:
- クライアントがリクエストを送信します。
- Web サーバーはリクエストを受信します。
- Web サーバーはリクエストを対応するサーブレットに渡します。
- サーブレットはリクエストを処理し、出力の形式で応答を生成します。
- サーブレットは Web サーバーに応答を送り返します
- Web サーバーはクライアントに応答を送信します。
2. Java サーバー ページ (JSP)
開発者は、サーバー側プログラミングに Java Server Pages を使用して、動的な Web ページを作成し、Web ベースのアプリケーションを構築します。
JSP の機能:
- ユーザーが HTML 内に Java コードを埋め込めるため、JSP のパフォーマンスが大幅に向上します。
- サーブレットと同様に、JSP も Enterprise Java API にアクセスできます
- 開発者は、JSP ページをサーブレットと組み合わせて使用することもできます。
- HTML に Java コードを埋め込むことができる JSP タグは <%—–JSP code—- %>
です。
- HTML 内に JSP コードを埋め込むと、登録フォーム、ドロップダウン ボックスなどの HTML ページが動的になります。
- JSP は Java Beans オブジェクトにアクセスするために使用されます。
- JSP はプレゼンテーション層をビジネス ロジックから分離します。
- サーブレットと比較して動的 Web ページを生成する最も簡単な方法を提供します。
- Web コンテナは、再コンパイルを必要とせずに JSP コードの変更を処理します。
- サーブレットと同様に、JSP [クラス ファイルや Web、XML などの追加ファイルは必要ありません。
- JSP には追加の web.xml マッピングは必要ありません。
JSP のアーキテクチャ:
建築の働き #1
このアーキテクチャでは、JSP はクライアント要求の処理において重要な役割を果たします。
- クライアントが JSP にリクエストを送信します
- JSP は JavaBean オブジェクトを作成します。
- JavaBeans は、必要に応じてデータベースから必要なデータを使用してリクエストを処理します。
- サーバーはクライアントに応答を送り返します。
建築の働き #2
このアーキテクチャでは、サーブレットが重要な役割を果たします。サーブレットはコントローラーとして機能します。
- クライアントがリクエストを送信します。
- サーブレットはクライアントから送信されたリクエストを処理します。
- サーブレットは Bean オブジェクトを作成し、特定の JSP ページを呼び出します。
- ここでは、JSP はクライアント要求を処理しません。
- JSP はプレゼンテーション部分を実行します。
3.エンタープライズ Java Bean (EJB)
Enterprise Java Beans は、拡張性と堅牢性の高いエンタープライズ レベルのアプリケーションを構築するための開発アーキテクチャです。
EJB の機能:
- アプリケーション サーバーは、トランザクション、ロギング、例外処理などのシステム レベルのサービスのほとんどを提供するため、開発者はアプリケーションのビジネス ロジックに集中する必要があります。
- EJB コンテナはすべての EJB インスタンスを管理します。
- EJB コンポーネントは、準拠した EJB 準拠サーバー上で実行されます。これらの利点はプラットフォームに依存しません。
Enterprise Bean の種類:
a.セッション Bean
セッション Bean はクライアントのタスクを実行します。クライアントは、カプセル化されたビジネス ロジックをプログラムで呼び出すことができます。
セッション Bean には 3 つのタイプがあります:
-
ステートフル セッション Bean: ステートフル セッション Bean のインスタンスは、固有のクライアントの状態を表し、多くの場合、会話状態と呼ばれます。これは対話型セッションとも呼ばれ、1 人のユーザーのみに関連付けられます。クライアントが Bean セッションを削除すると状態は保持され、セッションが終了すると状態は消えます。
-
ステートレス セッション Bean: ステートレス セッション インスタンスは、クライアントとの会話状態を維持しません。クライアントが呼び出すと、そのクライアントに固有のステートレス Bean 変数のメソッドが、呼び出し期間中のみ含まれます。インスタンスはすべてのクライアントに適用されます。 Web サービスを実装できます。
-
シングルトン セッション Bean: アプリケーションごとに 1 回インスタンス化され、アプリケーションのライフサイクルの間存在します。単一のインスタンス Bean がすべての同時クライアント間で共有される場合に使用されます。サーバーはクライアントの呼び出し間で状態を維持しますが、サーバーのシャットダウン全体で状態を維持する必要はありません。アプリケーションの起動時にインスタンス化する必要があります。
b.メッセージ主導型
メッセージ駆動型 Bean は、Java メッセージ サーバー API などの特定のメッセージ タイプのリスナーです。
EJB アーキテクチャ:
4. Java データベース接続 (JDBC)
Java Database Connectivity は、クエリの接続と実行に使用される Java API です。接続には JDBC ドライバーを使用します。
ドライバーの種類:
- JDBC-ODBC ブリッジドライバー
- ネイティブドライバー。
- ネットワークプロトコルドライバー。
- 薄型ドライバー。
機能:
- ODBC はプラットフォームに依存するため、接続に ODBC ドライバーを使用します。そのため、Java は独自の JDBC API を開発しました。
- Java を使用して、Java アプレット、JSP、EJB、サーブレットなど、さまざまなタイプの実行可能ファイルを作成できます。
JDBC アーキテクチャ:
JDBC アーキテクチャは 2 つのタイプに分類されます
a. 2 層アーキテクチャ
2 層アーキテクチャのグラフィック表現。
Java アプリケーションは、この 2 層アーキテクチャのデータベースから直接アクセスされます。クライアントは、JDBC ドライバーを使用してデータに直接アクセスします。データベースは、クライアント/サーバー構成の同じマシンまたは別のマシンに配置できます。
b. 3 層アーキテクチャ
3 層アーキテクチャのグラフィック表現。
このアーキテクチャはコマンドを中間層に送信し、中間層がリクエストを処理してデータ ソースに転送します。データ ソースはリクエストを処理し、その結果が中間層に返送され、その後ユーザーに送信されます。 3 層は、企業データに対するデータ アクセスと更新の制御を維持します。
5. Java メッセージ サービス (JMS)
Java Messaging Service は、Messaging Service と呼ばれるネットワーク内のコンピューター間の正式な通信を提供する API です。
- メッセージの交換は同期モードまたは非同期モードで行うことができます。
- JMS API により、他の Java プラットフォーム言語間の相互運用性が可能になります。
- アプリケーションは、メッセージ キュー、送信者、受信者の概念に基づいて構築されます。
JMS には 2 種類のメッセージング ドメインがあります。
a.ポイントツーポイント メッセージング ドメイン
- アプリケーションは、キュー、送信者、受信者の概念に基づいています。
- メッセージング キューの受信者に送信された各メッセージは、メッセージング キューにメッセージを保存します。
- キューには、消費されるか期限が切れるまで、すべてのメッセージが保存されます。
- 受信者がネットワーク内で利用できない場合、メッセージは受信者がメッセージを消費するまで、メッセージ ブローカーに残ります。
- 受信者はメッセージの消費を確認します。
b.メッセージング ドメインへのパブリッシュ/サブスクライブ
- アプリケーションは、トピックと呼ばれるメッセージ ブローカーにメッセージを送信します。
- トピックはすべての購読者にメッセージを公開します。
- トピックは、受信者が消費するまですべてのメッセージを保持します。
- ここでは、複数のコンシューマとコンシューマが購読後にメッセージを受け取ります。
JMS アーキテクチャ:
6. Java トランザクション API (JTA)
JTA を使用すると、分散トランザクションを実行して、ネットワーク内の複数のコンピューターがデータにアクセスしてデータを更新できます。 JTA API は、トランザクション マネージャーとクライアントの間の Java インターフェイスとして機能します。
アプリケーション サーバーとリソース マネージャーは、共有リソース トランザクションへのアクセスを制御します。
-
原子性: トランザクション マネージャーは、コミットまたはロールバックの最終決定を行う責任があります。
-
一貫性を提供します: トランザクションが失敗した場合でも、データの整合性は維持されます。
- 他のアプリケーションまたはスレッドによるトランザクションがコミットまたはロールバックされるまで、トランザクションを段階的にオフにすることはできません。
- システム障害が発生した場合でも、コミットされた内容は保持されます。
- 3 種類のトランザクション マネージャー。
-
データベース: トランザクションは、不完全な更新によってデータベースが不整合な状態のままになるのを防ぎます。
- JMS プロバイダ - トランザクションの使用により、メッセージが確実に配信されます。
- J2EE コネクタ アーキテクチャ コンポーネント。
-
コンテナ管理トランザクション: EJB コンテナはトランザクションの境界を設定し、任意のエンタープライズ Bean を使用できます。このコードには、トランザクションを開始および終了するステートメントは含まれません。
-
コンポーネント管理トランザクション: トランザクションは JDBC API によって管理され、アプリケーション自体でのトランザクション管理が可能になります。メッセージ駆動型 Bean は、トランザクションの境界を明示的にマークします。
JTA アーキテクチャ:
7. Javaメール
Java Mail は API です。これにより、電子メールを作成、読み書きできるようになります。この API は、プロトコル非依存およびプラットフォーム非依存を提供します。
Java Mail API で使用されるプロトコル:
-
SMTP: SMTP (Simple Mail Transfer Protocol) は、電子メールを転送するメカニズムです。 Apache James Server およびその他のメール サーバー ソフトウェアを SMTP サーバーとして使用して、電子メールの送信と中継を行うことができます。
-
POP: POP は、郵便局プロトコル /POP3 です。メールを受信する仕組みです。ユーザーごとに 1 つのメールボックスをサポートします。メール サーバーである Apache James Server は、POP 機能に使用できます。
-
IMAP: インターネット メッセージ アクセス プロトコルは、メッセージを受信するための高度なプロトコルです。ユーザーごとに複数のメールボックスをサポートします。
-
MIME: 複数のインターネット メール拡張機能は、電子メールの形式、添付ファイルなど、送信される内容をブラウザーに伝えます。
Java メール アーキテクチャ:
8. Java Naming and Directory Interface (JNDI)
Java Naming and Directory Interface は、ユーザーが特定の名前を使用してデータを検出できるようにする、ネーミングおよびディレクトリ サービス用の API です。
- JNDI は実装から独立しています。
- サービス プロバイダー インターフェイス (SPI) を提供し、ディレクトリ サービスをフレームワークに接続できるようにします。
- 開発者は API を使用して Java アプリケーションを外部ディレクトリに接続します。
- オブジェクトを名前にバインドするメカニズムを提供します。
- イベント インターフェイスを使用すると、クライアントはディレクトリ エントリがいつ変更されたかを判断できます。
JNDI は次のネーミング サービスとディレクトリ サービスを使用します。
- 軽量ディレクトリ アクセス プロトコル (LDAP)。
- Common Object Request Broker Architecture (CORBA)。
- 共通オブジェクト サービス (COS)
- Java リモート メソッド呼び出し (RMI)。
- ドメイン ネーム サービス (DNS)。
JNDI アーキテクチャ:
9. J2EE コネクタ アーキテクチャ (JCA)
アプリケーションサーバーは JCA を使用して EIS に接続します。
- JCA 対応のアプリケーション サーバーは、JCA 準拠の EIS と統合されます。
- リソース アダプターを使用すると、Java アプリケーションが EIS のリソース マネージャーにアクセスして対話できるようになります。
- また、メッセージベースのトランザクション統合 Java EE ベースの Web サービスと EIS も提供します。
JCA は、Java アプリケーション サーバーとリソース アダプター間のシステム レベルのコントラクトの標準セットを定義します。
-
接続管理: EIS へのアプリケーション サーバー プールの接続を有効にします。アプリケーションコンポーネントの接続を可能にします。これにより、スケーラブルなアプリケーション環境が実現し、多数のクライアントがサポートされます。
-
トランザクション管理: アプリケーション サーバーがトランザクション マネージャーを使用して、複数のリソース マネージャーのトランザクションを管理できるようにします。このソフトウェアは、外部のトランザクション マネージャーを介さずにトランザクションの内部管理をサポートします。
-
セキュリティ管理: EIS に対するセキュリティ脅威を防止し、EIS によって管理される貴重なリソースを保護します。
-
ライフサイクル管理: アプリケーション サーバーがリソース アダプタのライフサイクルを開始から終了まで管理できるようにします。
-
作業管理: リソース アダプターが実行のためにアプリケーション サーバーに作業を割り当てることができるようにします。アプリケーション サーバーはスレッドをディスパッチして、割り当てられた作業を完了します。
-
トランザクション流入管理: リソース アダプターがインポートされたトランザクションをアプリケーション サーバーに伝播できるようにします。リソース アダプタがトランザクションの完了と EIS によって開始されたクラッシュ リカバリを送信できるようにします。
-
メッセージ インフロー管理: アプリケーション サーバーに存在するメッセージ エンドポイントへのメッセージの非同期配信を許可します。
JCA アーキテクチャ:
結論 – J2EE テクノロジー
2EE は、クライアントの機能強化を提供するエンタープライズ コンピューティングまたはエンタープライズ アプリケーションを最適化します。ほぼすべての J2EE テクノロジーによって提供されるコンテナーまたはアプリケーション サーバーは、Java のプラットフォームに依存しない標準により、複数のプラットフォームで実行できるクロスプラットフォーム開発を保証するため、迅速な開発とデプロイメントを促進します。 J2EE のテクノロジーのほとんどは、設計と開発を分離しています。
以上がJ2EEテクノロジーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。