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