エンタープライズアプリケーションのアーキテクチャ
Web でのエンタープライズアプリケーション開発の標準は、J2EE 仕様に基づいています。JRun は、J2EE アプリケーションモデルをサポートし、エンタープライズアプリケーションを実行する実行時環境を提供します。
エンタープライズアプリケーションの設計
エンタープライズアプリケーションには、次のような共通の設計目的があります。
拡張性と保守性 新規機能の追加および保守が簡単である必要があります。
スケーラビリティ、移植性、および可用性 一般にエンタープライズアプリケーションには多数のユーザーをサポートするスケールが必要です。移植性の高いアプリケーションは、ベンダーの制約とシステム陳腐化のリスクを低減します。高い可用性によって、エンタープライズデータとビジネス機能へのアクセスが維持されます。
コードの再利用 あるアプリケーション用に開発されたコードは、そのアプリケーション内と同様に、他のアプリケーションでも再利用できることが理想的です。
相互運用性 エンタープライズアプリケーションは、そのサービスを使用し、特にレガシーシステムなどの既存の情報資産にサービスを提供することによって、他のシステムと相互運用できる必要があります。
ビジネスロジックを重点的に実装 開発者は、ビジネス上の問題を解決するためのコードの記述に重点を置き、システムメカニズムの処理に費やす時間を最小にする必要があります。
アプリケーションの設計パターンの詳細については、『JRun プログラマーガイド』を参照してください。
エンタープライズアプリケーションを階層に分けることで、情報パーシスタンス、アプリケーション機能、ユーザーとの対話など、設計と実装の問題を区別するレイヤーによって、エンタープライズアプリケーションの設計目的の達成をサポートします。次のセクションでは、J2EE アプリケーションの階層のロール、および各階層で利用できるテクノロジーについて説明します。
J2EE の詳細については、弟 3 章、「J2EE の概要」 を参照してください。
J2EE アプリケーションアーキテクチャ
J2EE アプリケーションは多層として定義されています。各階層には、アプリケーション設計に対するそれぞれの利点があります。階層アーキテクチャには、既存のシステムと今後のシステムを統合するアクセスポイントがあります。J2EE アプリケーションはその機能を複数の階層または機能レイヤーに分割します。分割された機能には、それぞれ特定の目的があります。このモデルでは、互いに独立して実装される別個のコンポーネントに、ビジネス Web サイトの機能を分割します。通常、多層アプリケーションには次のような特徴があります。
クライアント層 ユーザー操作とデータ取得を行います。クライアント層のプログラムは、ユーザーアクションと入力をサーバリクエストに変換し、サーバレスポンスの形式を設定します。たとえば、ブラウザを使用してインターネットなどの HTTP 接続で中間層にアクセスします。この階層には、クライアントのマシン上で実行されるアプレットが含まれます。
中間層 Web サイトのビジネスロジック。中間層には、プレゼンテーションロジック (Web 層) と、Web サイトを定義するビジネスルール (EJB 層) の両方が含まれます。JRun を使用して、中間層にアプリケーションを実装します。
Web 層 Web 上でアプリケーション機能を有効にします。他の階層からデータおよびビジネス機能にアクセスし、ユーザー操作の制御をカプセル化します。Web サービスのシナリオでは、他のアプリケーションがクライアントプログラムの代わりに動作し、Web 層を介して J2EE アプリケーションにアクセスします。
EJB 層 エンタープライズデータやビジネスルールへの移植性、スケーラビリティ、可用性を備えた高性能アクセスを実現します。オブジェクトパーシスタンスを提供し、EJB として実装されるビジネスロジックにアクセスします。他の階層は、Java RMI (Remote Method Invocation) API を使用して、サーバサイドのエンタープライズ bean インスタンスにアクセスします。
データ層 J2EE アプリケーションを他のエンタープライズ情報システムと統合します。データ層は、データストレージおよび J2EE アプリケーションへのその他の情報サービスを提供します。通常、データベース、統合業務パッケージシステム、メインフレームトランザクションプロセッサ、レガシーシステム、およびエンタープライズ統合テクノロジーはデータ層にあります。他の階層は、JDBC API をサポートするドライバでデータ層にアクセスし、J2EE コネクタ拡張子、CORBA、またはベンダー固有の専用プロトコルで非データベース EIS リソースにアクセスします
次の図は、3 階層アプリケーションモデルを示します。
この 3 階層アーキテクチャは、Web サイト開発者にとって次のようなメリットがあります。
階層または階層のコンポーネントを複数のハードウェアシステムに分散して、システムの拡張性とパフォーマンスを改善できます。
中間層によって、クライアントはエンタープライズデータストアにアクセスする複雑さから保護されます。
EJBは、エンタープライズデータへのアクセスを共有するために複数のアプリケーションが再利用できる、安全なコンポーネントソリューションを提供します。Web アプリケーションは EJB にアクセスできます。また、Web クライアントはこれらに直接アクセスできます。
コンポーネントアーキテクチャでは、アプリケーション開発を開発グループに分散できます。たとえば、JSP 開発者は通常、ビジネス ルールの実装ではなくプレゼンテーション情報にかかわります。一方、EJB 開発者はデータのアクセスと操作に関与しますが、プレゼンテーションには関与しません。
JRun の 3 階層モデルのサポート
JRun を使用して、3 階層モデルの中間層に J2EE アプリケーションを実装します。JRun では、次のコンポーネントで構成されるエンタープライズアプリケーションを開発する最新の業界標準規格を完全にサポートしています。
Java サーブレット Java サーブレットは、Web サーバへのカスタム機能の追加を可能にする、Java 言語で書かれたサーバサイドコンポーネントです。サーブレットは、HTTP リクエストおよびレスポンスモデルをサポートし、データのアクセスおよび操作に使用する EJB コンポーネントにアクセスできるので、Web ベースアプリケーションに適しています。Java サーブレットの作成の詳細については、弟 4 章、「サーブレットと JSP の使用」 を参照してください。
JavaServer Pages JSP (JavaServer Pages) によって、HTML とスクリプトコードの組み合わせを含んでいるテキストファイルからサーブレットを作成できます。クライアントにより JSP が要求されると、そのページが Java サーブレットに変換されます。JSP のスクリプト部によって、クライアントにダイナミックコンテンツを返すことができます。また、JSP からサーブレット、カスタムタグライブラリ、および EJB にアクセスできます。JSP 作成方法の詳細については、弟 4 章、「サーブレットと JSP の使用」 を参照してください。
Enterprise JavaBeans EJB は、ビジネスロジックを含んでいる再利用可能な Java コンポーネントの開発およびデプロイを可能にします。EJB 仕様は、ソフトウェアコンポーネントモデルを定義します。これにより、EJB 対応アプリケーションサーバを使用して、サーバサイドアプリケーションロジック (エンタープライズ bean) をデプロイできます。JRun EJB サポートには、トランザクションとオブジェクトのパーシスタンス、および bean アクセスを制御するセキュリティサービスが含まれます。EJB の作成方法の詳細については、弟 5 章、「EJB の概要」 を参照してください。
JRun を使用すると、EJB として実装したビジネスロジックと Web アプリケーションとして実装したプレゼンテーションロジックを組み合わせて、1 つの J2EE アプリケーションを作成できます。Web アプリケーションは、サーブレットおよび JSP を使用して EJB に含まれるビジネスロジックにアクセスし、ダイナミックコンテンツを Web クライアントに配信します。