Sun JavaTM Enterprise System (Java ES) は、ネットワークを介して、またはインターネット環境で分散しているエンタープライズ版アプリケーションをサポートするために必要なサービスを提供する一連のソフトウェアコンポーネントです。このマニュアルでは、このようなアプリケーションを「分散型のエンタープライズアプリケーション」と呼びます。
Java Enterprise System は、Sun ソフトウェアのリリース、配信の方法論、およびビジネスと価格設定の戦略も実現しています。ただし、このマニュアルでは Java Enterprise System のソフトウェアコンポーネントとコンポーネントが提供するサービスに重点を置いています。
この章では、Java Enterprise System およびシステムの使用に関連する作業を紹介します。次のトピックが含まれます。
現在のビジネスでは、ネットワークまたはインターネット環境を介して分散する、高いレベルのパフォーマンス、可用性、セキュリティー、スケーラビリティー、および保守性を備えたソフトウェアソリューションが必要とされています。
Java Enterprise System では、このような分散型のエンタープライズアプリケーション、つまり、通常次のような特徴を持つアプリケーションをサポートするために必要なインフラストラクチャーサービスを提供します。
分散型: アプリケーションは、地理的に離れたサイトも含むネットワーク環境にわたって配備された対話型のソフトウェアコンポーネントで構成されています。環境内のさまざまなコンピュータ上で動作するこれらの分散型コンポーネントは、互いに連携して動作することで、エンドユーザーおよびその他のビジネスアプリケーションに対して特定のビジネス機能を提供します。
エンタープライズ版: アプリケーションの適用範囲と規模が、本稼働環境またはインターネットサービスプロバイダのニーズを満たしています。このアプリケーションは通常、企業全体に及んでおり、多くの部門、オペレーション、およびプロセスを 1 つのソフトウェアシステムに統合します。アプリケーションは、パフォーマンス、可用性、セキュリティー、スケーラビリティー、および保守性に関する高度なサービス要件を満たす必要があります。
分散型のエンタープライズアプリケーションでは、分散型コンポーネントが互いに通信できるようにしたり、それらのコンポーネントの動作を調整したり、セキュリティー保護されたアクセスを実装したりする、基盤となる一連のインフラストラクチャーサービスが必要となります。さらに、これらのインフラストラクチャーサービスは、コンピュータやネットワークリストから成るハードウェア環境によってサポートされます。このハードウェア環境には、SPARC® と x86 (Intel および AMD) のハードウェアアーキテクチャーが含まれます。
次の図に、全体的な階層スキーマを示します。Java Enterprise System は基本的に、図 1–1 に示す分散型インフラストラクチャーサービス層を提供します。ただし、Java Enterprise System サービスには、エンドユーザーがアクセス可能なサービスなど、アプリケーションレベルのサービスもいくつか含まれます。
Java Enterprise System によって提供される主なサービスには、以下のものがあります。
ポータルサービス: これらのサービスを使用すると、従業員、在宅勤務者、知識労働者、パートナ企業、仕入先、および顧客が、企業ネットワーク内外の任意の場所から企業のリソースにアクセスできます。これらのサービスは、ユーザーコミュニティに対する時間と場所を問わないアクセス、配信の個人用にカスタマイズされた統合、集約、セキュリティー、モバイルアクセス、および検索の機能を提供します。
通信サービスと共同作業サービス: これらのサービスを使用すると、多様なユーザーコミュニティー間でセキュリティー保護された情報交換を行えます。具体的な機能には、ユーザーのビジネス環境で使用する、インスタントメッセージング、会議、カレンダのスケジューリングなどのメッセージング機能によるリアルタイムの共同作業があります。
ネットワークアイデンティティーサービスとセキュリティーサービス: グ ローバルベースのすべてのコミュニティー、アプリケーション、サービスの間で適切なアクセス制御が確実に適用されるようにすることで、企業の主要な情報資産のセキュリティーと保護を向上させます。これらのサービスは、アイデンティティープロファイル、アクセス特権、およびアプリケーションとネットワークリソースの情報を格納、管理するリポジトリと連携して機能します。
Web コンテナサービスとアプリケーションサービス: これらのサービスは、分散型コンポーネントが実行時に互いに通信することを可能にするほか、広範なサーバー、クライアント、およびデバイス用のアプリケーションの開発、配備、および管理をサポートします。これらのサービスは、J2EETM (Java 2 Platform, Enterprise Edition) 技術に基づいています。
Java Enterprise System は、可用性、スケーラビリティー、保守性、およびその他のアプリケーションまたはシステムの品質を向上させるサービスも提供します。Java Enterprise System によって提供されるサービス品質の機能には、以下のものがあります。
可用性サービス: これらのサービスは、アプリケーションコンポーネントとそれらをサポートするインフラストラクチャーコンポーネントに対して、ほぼ連続的な可用性を提供します。
アクセスサービス: これらのサービスは、Java Enterprise System サービスへのインターネットまたはブラウザベースのアクセスを提供します。
管理サービス: これらのサービスは、Java Enterprise System がサポートするアプリケーションのパフォーマンスを維持および調整する際に役立ちます。
ユーザーは、1 つまたは複数の Java Enterprise System サービスを配備できます。それらの各サービスには Java Enterprise System コンポーネントがいくつか含まれます。
Java Enterprise System は、個別のソフトウェア製品やソフトウェアコンポーネントを単一のソフトウェアシステムとして統合化したものです。このシステムのコンポーネントに対するテストが実施されていて、各コンポーネント間の相互動作が保証されています。そうした統合は、次のようないくつかのシステムレベル機能によって実現されています。
これらの機能については、このマニュアルの後の章で説明します。ここでは、Java Enterprise System に統合されたさまざまなコンポーネントの説明に重点を置いています。これらの システムコンポーネントは、次の図に示すように、3 つの主要カテゴリに分類できます。
システムサービスコンポーネント: 分散型のエンタープライズアプリケーションをサポートする主な Java Enterprise System インフラストラクチャーサービスを提供します。
サービス品質コンポーネント: システムサービスコンポーネントおよび分散型アプリケーションコンポーネントの可用性、セキュリティー、スケーラビリティー、保守性、およびその他の要素を向上させます。
共有コンポーネント: 多くのシステムサービスコンポーネントおよびサービス品質コンポーネントを実行する環境を提供します。
いくつかの Java ES コンポーネントが分散型ソフトウェアソリューションをサポートする主なサービスを提供します。これらのシステムサービスには、ポータルサービス、通信サービスと共同作業サービス、アイデンティティーサービスとセキュリティーサービス、Web コンテナサービス、および J2EE アプリケーションサービスが含まれます。
これらの分散型サービスを提供するシステムサービスコンポーネントとそれらが提供するサービスを簡単に説明したのが、次の表です。各システムサービスコンポーネントはマルチスレッド対応のサーバープロセスであり、多数のクライアントをサポートします。コンポーネントの詳細については、「システムサービスコンポーネントの説明」を参照してください。
表 1–1 Java ES システムサービスコンポーネント
Java Enterprise System には、表 1–1 に示したシステムサービスコンポーネントのほかに、システムサービスコンポーネントが提供するサービスの品質を高めるためのコンポーネントがいくつか含まれています。また、サービス品質コンポーネントを使えば、カスタム開発されたアプリケーションサービスも改善できます。サービス品質コンポーネントは次のカテゴリに分類されます。
可用性コンポーネント
アクセスコンポーネント
管理コンポーネント
可用性コンポーネントは、システムサービスコンポーネントおよびカスタムアプリケーションサービスがほぼ連続的に稼動することを可能にします。Java Enterprise System に含まれる可用性コンポーネントおよびそれらのコンポーネントが提供するサービスを次の表に示します。コンポーネントの詳細については、「可用性コンポーネントの説明」を参照してください。
表 1–2 Java ES 可用性コンポーネント
コンポーネント |
提供される可用性サービス |
---|---|
Java Enterprise System の高可用性サービスとスケーラビリティーサービス、Java Enterprise System インフラストラクチャーの最上部で実行されるアプリケーション、およびサービスとアプリケーションの両方が配備されるハードウェア環境を提供します。 |
|
障害発生時でも、アプリケーションのデータ、特にセッション状態データを利用可能にするデータストアを提供します。 |
アクセスコンポーネントは、システムサービスへのフロントエンドアクセスを可能にし、多くの場合、エンタープライズファイアウォールの外にあるインターネットからのセキュリティー保護されたアクセスを可能にします。そのようなアクセスを可能にすることに加えて、多くの場合、ルーティング機能も提供します。Java Enterprise System に含まれるアクセスコンポーネントおよびそれらのコンポーネントが提供するサービスを次の表に示します。コンポーネントの詳細については、「アクセスコンポーネントの説明」を参照してください。
表 1–3 Java ES アクセスコンポーネント
コンポーネント |
提供されるアクセスサービス |
---|---|
企業ファイアウォールの外からセキュリティーサービスを Directory Server に対して提供します。Directory Proxy Server は、ディレクトリアクセス制御と複数の Directory Server インスタンスに対するルーティングを提供します。 |
|
Sun Java System Web Proxy Server |
Web コンテンツをキャッシュ、フィルタリング、および配信する機能を、送信インターネット要求と受信インターネット要求の両方に対して提供します。 |
Sun Java System Communications Express |
設定に応じて、Messaging Server、Calendar Server、および Directory Server への Web ベースのアクセスを提供します。 |
企業ファイアウォールの外から、内部ポータルを含む Portal Server のコンテンツやサービスへの、セキュリティー保護されたインターネットアクセスを提供します。 |
|
|
|
Microsoft Outlook を使用するデスクトップクライアントに、Messaging Server と Calendar Server の両方に対するインタフェースを提供します。 |
管理コンポーネントは、システムサービスのための、設定や監視などの管理機能を提供します。Java Enterprise System に含まれる管理コンポーネントおよびそれらのコンポーネントが提供するサービスを次の表に示します。コンポーネントの詳細については、「管理コンポーネントの説明」を参照してください。
表 1–4 Java ES 管理コンポーネント
コンポーネント |
提供される管理サービス |
---|---|
Directory Server および Messaging Server の設定および管理を可能にするグラフィカル管理ツールを提供します。 |
|
Messaging Server および Calendar Server 用のユーザーのプロビジョニングに必要となるスキーマを使って Directory Server を設定するためのスクリプトを提供します。 |
|
Messaging Server および Calendar Server が必要とするユーザー属性を Directory Server のユーザーエントリ内に格納するための、コマンド行ツールと GUI ツールの両方を提供します。 |
Java Enterprise System には、多くのシステムサービスコンポーネントおよびサービス品質コンポーネントが依存する、ローカルにインストールされる共有ライブラリがいくつか含まれています。Java ES 共有コンポーネントは、同じホストコンピュータ上で稼働する Java ES コンポーネントにローカルサービスを提供します。
共有コンポーネントは、多くの場合、異なるオペレーティングシステム間の移植性を提供するために使用されます。Java Enterprise System 共有コンポーネントの例として、Java 2 Platform, Standard Edition (J2SETM プラットフォーム)、Netscape Portable Runtime (NSPR)、Network Security Services (NSS)、Network Security Services for Java (JSS) などがあります。完全な一覧については、「共有コンポーネント」を参照してください。
共有コンポーネントのインストールは、インストール対象のシステムサービスやサービス品質コンポーネントに応じて、Java ES インストーラによって自動的に行われます。
Java Enterprise System ソフトウェアに基づくビジネスソリューションの作成には、いくつかの標準的な作業が含まれます。それらの作業の範囲や難易度は、Java Enterprise System 導入時の出発点や、作成および配備しようとしているソリューションの性質によって異なります。
ここでは、Java Enterprise System での作業における 2 つの側面、つまり、Java Enterprise System ソリューションのライフサイクルと通常使用される各種導入シナリオについて説明します。
Java ES ソフトウェアに基づくビジネスソリューションの作成に伴う作業は、図 1–3 に示すように、いくつかのフェーズに分けられます。この図は、各種作業を通常実行する Java Enterprise System ユーザーのカテゴリも示しています。
図 1–3 に示すライフサイクルのフェーズは、次の一般的なグループに分類できます。
配備前: このフェーズでは、ビジネスのニーズを配備シナリオ、つまり論理アーキテクチャーと一連のサービス品質の要件に変換します。配備シナリオは、配備アーキテクチャーを設計するために使用する仕様としての役割を果たします。
配備: このフェーズでは、配備シナリオに基づいて配備アーキテクチャーを作成します。このアーキテクチャーをプロジェクト承認および予算設定の基礎として使用できます。この配備アーキテクチャーは、ソフトウェアソリューションを本稼動環境に配備 (構築、テスト、および展開) するために必要な詳細情報が含まれる実装仕様の基礎にもなります。
配備後: オペレーションフェーズでは、配備されたソリューションを本稼働条件下で実行し、パフォーマンスを監視および最適化します。また、配備されたソリューションを必要に応じてアップグレードし、新しい機能を組み入れます。
図 1–3 に示すソリューションのライフサイクルおよび各フェーズの作業については、第 4 章「Java Enterprise System ソリューションのライフサイクルの作業」で詳しく説明します。
図 1–3 は、ライフサイクルの各フェーズに示された作業を通常実行する Java ES ユーザーを示しています。Java ES で作業を実行する場合、実行するジョブは図 1–3 に示す 1 つ以上のユーザーカテゴリに該当します。各カテゴリのユーザーのスキルとバックグラウンドは、次の表のとおりです。
表 1–5 ライフサイクルの作業に関連する Java ES ユーザーカテゴリ
ユーザー |
スキルとバックグラウンド |
フェーズ |
---|---|---|
システムアナリスト |
専門的ではなくても、一般的な技術知識を持っている。 企業の戦略上の方向性を理解している。 ビジネスのプロセス、目的、要件を理解している。 |
ビジネス分析 技術要件 論理設計 |
専門的である。 配備アーキテクチャーの幅広い知識を持つ。 最新の技術に精通している。 ビジネスの要件および制約を理解している。 |
論理設計 配備設計 |
|
フィールドエンジニア システム管理者 システムマネージャー |
専門的である。 IT 環境に精通している。 分散型のソフトウェアソリューションを実装した経験がある。 ネットワークのアーキテクチャー、プロトコル、デバイス、セキュリティーの知識を持つ。 スクリプト言語およびプログラミング言語の知識を持つ。 |
配備設計 配備実装 |
代行管理者 サポートエンジニア |
特化した技術知識または製品知識を持つ。 ハードウェア、プラットフォーム、ディレクトリ、およびデータベースに精通している。 ソフトウェアの監視、トラブルシューティング、およびアップグレードに熟練している。 オペレーティングシステムプラットフォームのシステムの管理の知識を持つ。 |
オペレーション |
Java ES の導入につながるビジネスのニーズは多様です。ただし、ほとんどすべての Java ES 配備の高い目標は、次のいずれかの導入シナリオに該当します。
新しいシステム: 既存のソフトウェアシステムなしで始め、新しいビジネスソリューションをサポートするために Java Enterprise System ソフトウェアを配備します。
強化: 既存の情報技術 (IT) インフラストラクチャーで始め、そのシステムの一部、大部分、または全部を Java ES ソフトウェアで置き換えます。通常は、システムまたはサブシステムが複雑すぎるか、制約が多すぎるか、維持するのに高価であるという理由でシステムやサブシステムを置き換えます。たとえば、セキュリティーの向上、高い可用性、スケーラビリティーの向上、柔軟性の向上、複雑さの解消、追加機能 (シングルサインオンなど)、または IT リソースの有効利用が必要であるなどです。つまり、既存のシステムで得られるよりも優れた投資効果を望んでいるということです。
拡張: 既存の IT インフラストラクチャーで始め、現在システムに含まれない Java Enterprise System ソフトウェアを配備します。通常、新しいビジネスのニーズに対応するために、この方法でソフトウェアシステムを拡張します。Java ES ポータルによる既存のサービスの個人用にカスタマイズされた集約や既存のサービスに対する Java 認証および承認などの新しい機能が必要になる場合があります。
アップグレード: Java Enterprise System の以前のバージョンまたは Java Enterprise System よりも前の Sun 製品から構成される IT インフラストラクチャーで始め、Java Enterprise System コンポーネントの最新のバージョンにアップグレードします。
各導入シナリオには、それぞれ考慮しなければならない点と克服しなければならない点があります。ユーザーの状況に当てはまる導入シナリオがどれであるかにかかわらず、図 1–3 に示すソリューションのライフサイクルプロセスが適用されます。ただし、導入シナリオによって、ライフサイクルの各フェーズで対処する必要のある問題や投資する必要のあるリソースが異なります。
一般に、導入シナリオには、次に示す考慮事項が程度の差はありますが適用されます。
移行: 既存のインフラストラクチャーを新しいソフトウェアで強化またはアップグレードするには、多くの場合、既存のシステムから新しいシステムにデータを移行する必要があります。データは、設定情報、ユーザー情報、アプリケーションの情報などになります。新しいプログラミングインタフェースのために、ビジネスロジックやプレゼンテーションロジックを移行する必要がある場合もあります。
統合: 新しいソフトウェアを既存のシステムに追加したり、既存のソフトウェアサブシステムを置き換えたりするには、多くの場合、新しいソフトウェアコンポーネントを残りのサブシステムに統合する必要があります。統合には、新しいインタフェースレイヤーの開発、J2EE コネクタまたはリソースアダプタの使用、既存のコンポーネントの再設定、データ変換スキーマの実装などが含まれます。
トレーニング: インフラストラクチャーの変更はほとんどの場合、IT 手順やスキルセットの変更を意味します。IT 部門は、Java Enterprise System テクノロジをサポートするための、新しいスキルの習得、または古いスキルの移行のために十分な時間を確保できる必要があります。
ハードウェア: 既存のシステムまたはサブシステムを置き換えたり強化したりする場合、ビジネス上の制約により、既存のハードウェアを再利用しなければならない可能性があります。導入シナリオによっては、ハードウェアリソースが重要な要素になります。
次の表は、Java ES の各導入シナリオに該当する考慮事項の性質を要約しています。
表 1–6 Java ES 導入シナリオに関する考慮事項
この節では、この章で使用されている重要な技術用語について説明します。ここでは、用語間の関係や Java Enterprise System の文脈でどのように使用されているかの説明に重点を置いています。
Java Enterprise System ソフトウェアを配備する総合的な理由。着手するソフトウェアシステムや達成すべき目標を明らかにします。Java Enterprise System には基本的な導入シナリオが 4 つあります。新しいシステム、置換、拡張、およびアップグレードです。
分散型アプリケーションを構築するときの基本となるソフトウェアロジックの単位。コンポーネントは、Java Enterprise System に含まれるシステムコンポーネント、カスタム開発されたアプリケーションコンポーネントのいずれかになります。通常、アプリケーションコンポーネントは、CORBA や J2EETM などの分散型コンポーネントモデルに準拠していて、いくつかの特定のコンピューティング機能を実行します。これらのコンポーネントを単独でまたは複数を組み合わせて、ビジネスサービスを提供します。また、これらをWeb サービスとしてカプセル化することもできます。
そのロジックがネットワーク環境またはインターネット環境に及んでおり (分散の側面)、かつその適用範囲と規模が本稼働環境またはサービスプロバイダのニーズを満たしている (エンタープライズの側面) アプリケーション。
分散型アプリケーションを利用するユーザー。エンドユーザーは通常、インターネットブラウザやモバイルデバイス GUI などのグラフィカルユーザーインタフェースを使用します。アプリケーションがサポートする同時接続エンドユーザーの数は、そのアプリケーションの配備アーキテクチャーを決定する重要な要因の 1 つになります。
1 つ以上のクライアントに対して実行されるソフトウェア機能。この機能は、メモリー管理など下位レベルのものであることも、信用調査ビジネスサービスなどの上位レベルのものであることも考えられます。上位レベルのサービスは、個々のサービスのファミリによって構成されることがあります。サービスには、ローカルクライアントで利用可能なローカルサービスと、リモートクライアントで利用可能な分散型サービスがあります。
Java Enterprise System に含まれる何種類かのシステムコンポーネントのうちの 1 つ。これらのコンポーネントは、システムサービスコンポーネントおよび分散型アプリケーションコンポーネントの可用性、セキュリティー、スケーラビリティー、保守性、およびその他の品質を向上させます。
Java Enterprise System に含まれる何種類かのシステムコンポーネントのうちの 1 つ。共有コンポーネントは、通常、他のシステムコンポーネントにローカルサービスを提供するライブラリです。これに対し、システムサービスコンポーネントは、ほかのシステムコンポーネント (またはアプリケーションコンポーネント) に分散型インフラストラクチャーサービスを提供します。
Java Enterprise System に含まれていて、Java Enterprise System インストーラによってインストールされるソフトウェアパッケージまたは一連のパッケージ。システムコンポーネントには、分散型インフラストラクチャーサービスを提供するシステムサービスコンポーネント、アクセスサービスや管理サービスを提供することでシステムサービスコンポーネントをサポートするサービス品質コンポーネント、およびほかのシステムコンポーネントにローカルサービスを提供する共有コンポーネントなど、いくつかの種類が存在します。
Java Enterprise System によって提供される固有の機能を定義する、1 つ以上の分散型サービス。システムサービスは通常、いくつかのサービス品質コンポーネント、またはいくつかの共有コンポーネント、あるいはその両方のサポートを必要とします。
Java Enterprise System に含まれる何種類かの システムコンポーネントのうちの 1 つ。システムサービスコンポーネントは、Java Enterprise System の主要インフラストラクチャーサービスを提供します。これには、ポータルサービス、通信サービスと共同作業サービス、アイデンティティーサービスとセキュリティーサービス、Web サービスとアプリケーションサービス、および可用性サービスが含まれます。