Sun Java Enterprise System 5 Update 1 技術の概要

第 1 章 Java Enterprise System の概要

Sun JavaTM Enterprise System (Java ES) は、ネットワークを介して、またはインターネット環境で分散しているエンタープライズ版アプリケーションをサポートするために必要なサービスを提供する一連のソフトウェアコンポーネントです。このようなアプリケーションを「分散型のエンタープライズアプリケーション」と呼びます。このマニュアルでは Java ES のソフトウェアコンポーネントとコンポーネントが提供するサービスに重点を置いています。

この章では、Java ES およびシステムの使用に関連する作業を紹介します。この章は、次の節で構成されます。

Java ES が必要な理由

現在のビジネスでは、ネットワークまたはインターネット環境を介して分散する、高いレベルのパフォーマンス、可用性、セキュリティー、スケーラビリティー、および保守容易性を備えたソフトウェアソリューションが必要とされています。

Java ES では、このような分散型のエンタープライズアプリケーション、つまり、通常次のような特徴を持つアプリケーションをサポートするために必要なインフラストラクチャーサービスを提供します。

分散型のエンタープライズアプリケーションでは、分散型コンポーネントが互いに通信できるようにしたり、それらのコンポーネントの動作を調整したり、セキュリティー保護されたアクセスを実装したりするための、基盤となるインフラストラクチャーサービスが必要となります。さらに、これらのインフラストラクチャーサービスは、コンピュータやネットワークリンクから成るハードウェア環境によってサポートされます。このハードウェア環境には、SPARC® と x86 (Intel および AMD) のハードウェアアーキテクチャーが含まれます。

次の図に、全体的な階層スキーマを示します。Java ES は基本的に、図に示す分散型インフラストラクチャーサービス層を提供します。

図 1–1 分散型のエンタープライズアプリケーションに必要なサポート

分散型エンタープライズアプリケーションの下に分散型インフラストラクチャーサービスが存在し、さらにその下にネットワーク化されたハードウェア環境が存在することを示す図。

Java ES によって提供される主なサービスには、以下のものがあります。

Java ES は、可用性、スケーラビリティー、保守容易性、およびその他のアプリケーションまたはシステムの品質を向上させるサービスも提供します。Java ES によって提供されるサービス品質の機能には、以下のものがあります。

各サービスがいくつかの Java ES コンポーネントから構成される、1 つ以上の Java ES サービスを配備できます。

Java ES コンポーネント

Java ES は、個別のソフトウェア製品やソフトウェアコンポーネントを単一のソフトウェアシステムとして統合化したものです。次のような多数のシステムレベルの機能によって、これらの統合が可能になりました。

これらの機能については、このマニュアルの後の章で説明します。ここでは、Java ES に統合されたコンポーネントの説明に重点を置いています。これらの システムコンポーネントは、次の図に示すように、3 つの主要カテゴリに分類できます。

図 1–2 Java ES コンポーネントのカテゴリ

Java ES コンポーネントのカテゴリとそれらの相互関係を示す図。

コンポーネントが提供するサービスは、次のとおりです。

Java ES コンポーネントのリストについては、付録 A 「Java ES コンポーネント」を参照してください。

システムサービスコンポーネント

いくつかの Java ES コンポーネントが分散型ソフトウェアソリューションをサポートする主なサービスを提供します。これらのシステムサービスには、ポータルサービス、アイデンティティーサービスとセキュリティーサービス、Webコンテナサービス、J2EE アプリケーションサービス、および持続サービスが含まれます。

これらの分散型サービスを提供するシステムサービスコンポーネントとそれらが提供するサービスをアルファベット順に一覧表示して、簡単に説明したのが、次の表です。各システムサービスコンポーネントはマルチスレッド対応のサーバープロセスであり、多数のクライアントをサポートします。コンポーネントの詳細については、「システムサービスコンポーネント」を参照してください。

表 1–1 Java ES システムサービスコンポーネント

コンポーネント 

提供されるシステムサービス 

Sun Java System Access Manager

アクセス管理サービスおよびデジタルアイデンティティー管理サービスを提供します。アクセス管理サービスには、シングルサインオンを含む認証と、アプリケーションまたはサービス、あるいはその両方へのアクセスに対するロールに基づく承認が含まれます。管理サービスには、個々のユーザーアカウント、ロール、グループ、およびポリシーの集中管理が含まれます。

Sun Java System Application Server

セッション Beans、エンティティー Beans、メッセージ駆動型 Beans など、EJB (Enterprise JavaBeansTM) コンポーネントの J2EE コンテナサービスを提供します。コンテナは、密接に結合された分散コンポーネント間の対話に必要なインフラストラクチャーサービスを提供し、Application Server を e-コマースアプリケーションおよび Web サービスを開発および実行するためのプラットフォームにします。Application Server は Web コンテナサービスも提供します。

Sun Java System Directory Server

アイデンティティープロファイル (従業員、顧客、仕入先など)、ユーザーの信用情報 (公開鍵の証明書、パスワード、PIN 番号)、アクセス特権、アプリケーションリソース情報、ネットワークリソース情報などのイントラネット情報およびインターネット情報を格納および管理するための中央リポジトリを提供します。 

Java DB [Java ES 5 は、Java DB を製品コンポーネントとして含む最初のリリースです。Java DB は最初 Derby Database という名前の共有コンポーネントとしてリリースされ、Java ES 2005Q4 に含まれていました。]

Java アプリケーションの開発用に、軽量データベースを提供します。Java DB は、100% Java テクノロジによるデータベースであるオープンソース Apache Derby の、Sun がサポートする配布です。

Sun Java System Message Queue

緩やかに結合された分散型のコンポーネントやアプリケーション間における、信頼性の高い非同期のメッセージングを提供します。Message Queue は、JMS (Java Message Service) API 仕様を実装しているほか、さらにセキュリティー、スケーラビリティー、リモート管理などのエンタープライズ機能も備えています。

Sun Java System Portal Server

ビジネスアプリケーションやビジネスサービスにアクセスするブラウザベースのクライアントに対し、コンテンツの集約や個人用のカスタマイズなど、主要なポータルサービスを提供します。Portal Server は、設定可能な検索エンジンも提供します。 

Sun Java System Service Registry

サービス指向アーキテクチャー (SOA) に対応した Web アプリケーションをサポートするレジストリおよびリポジトリを提供します。Service Registry は、Web サービスを登録および検出するための業界標準に加え、関連情報や事実、XML スキーマ、ビジネスプロセスルール、アクセス制御、バージョン管理といったアーティファクトなどを管理するための業界標準を実装しています。 

Sun Java System Web Server

Java サーブレットコンポーネントや JSPTM (JavaServer PagesTM) コンポーネントなどの Java Web コンポーネントに対して、J2EE Web コンテナサービスを提供します。Web Server は、CGI スクリプトや Sun JavaTM System Active Server Pages など、静的および動的な Web コンテンツを配信するためのその他の Web アプリケーション技術もサポートしています。

サービス品質コンポーネント

Java ES には、表 1–1 に示したシステムサービスコンポーネントのほかに、システムサービスコンポーネントが提供するサービスの品質を高めるためのコンポーネントがいくつか含まれています。また、サービス品質コンポーネントを使えば、カスタム開発されたアプリケーションサービスも改善できます。サービス品質コンポーネントは次のカテゴリに分類されます。

可用性コンポーネント

可用性コンポーネントは、システムサービスコンポーネントおよびカスタムアプリケーションサービスがほぼ連続的に稼動することを可能にします。Java ES に含まれる可用性コンポーネントおよびそれらのコンポーネントが提供するサービスを次の表に示します。各コンポーネントの詳細については、「可用性コンポーネント」を参照してください。

表 1–2 Java ES 可用性コンポーネント

コンポーネント 

提供される可用性サービス 

High Availability Session Store

障害発生時でも、アプリケーションのデータ、特にセッション状態データを利用可能にするデータストアを提供します。 

Sun Cluster

Java ES の高可用性サービスとスケーラビリティーサービス、Java ES インフラストラクチャーの最上部で実行されるアプリケーション、およびサービスとアプリケーションの両方が配備されるハードウェア環境を提供します。 

Sun Cluster Geographic Edition [Java ES 5 は、Sun Cluster Geographic Edition を Java ES 製品コンポーネントとして含む最初のリリースです。]

地理的に離れた複数のクラスタを使用し、これらのクラスタ間でデータを複製する冗長なインフラストラクチャーを使用することによって、予期しない中断からアプリケーションを保護します。Sun Cluster Geographic Edition ソフトウェアは、Sun Cluster ソフトウェアを階層的に拡張したものです。 

アクセスコンポーネント

アクセスコンポーネントは、システムサービスへのフロントエンドアクセスを可能にし、多くの場合、エンタープライズファイアウォールの外にあるインターネットからのセキュリティー保護されたアクセスを可能にします。そのようなアクセスを可能にすることに加えて、多くの場合、ルーティング機能およびキャッシュ機能も提供します。Java ES に含まれるアクセスコンポーネントおよびそれらのコンポーネントが提供するサービスを次の表に示します。コンポーネントの詳細については、「アクセスコンポーネント」を参照してください。

表 1–3 Java ES アクセスコンポーネント

コンポーネント 

提供されるアクセスサービス 

Sun Java System Portal Server (Secure Remote Access を含む)

企業ファイアウォールの外から、内部ポータルを含む Portal Server のコンテンツやサービスへの、セキュリティー保護されたインターネットアクセスを提供します。 

Sun Java System Web Proxy 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 インストーラによって自動的に行われます。

Sun Java Suites のコンポーネント

Java ES は、単一のエンドツーエンドのインフラストラクチャーソフトウェア配布として、およびクリティカルなビジネスのニーズを満たすことを目的とした個別のスイート配布としての両方で利用可能です。Java ES には、すべての Java ES コンポーネントが含まれ、一方 Sun Java System Suites には特定の業務のニーズを満たすものを選択したコンポーネントのサブセットが含まれます。Java ES インストーラおよびアンインストーラはすべてのスイート配布に含まれますが、スイート内のコンポーネントだけを扱うように軽減されています。すべての共有コンポーネントも、すべてのスイート配布に含まれています。

個々のスイートの内容およびそれぞれのスイートが意図されているビジネス要件を、次の表に一覧表示します。

表 1–4 Sun Java Suites のコンポーネント

スイート 

ビジネス要件 

内容 

Sun Java Application Platform Suite

次世代のサービス指向アーキテクチャー (SOA) の開発、配備、および管理 

Access Manager 

Application Server 

Directory Server 

HADB 

Java DB 

Message Queue 

Monitoring Console 

Portal Server (Secure Remote Access および Mobile Access を含む) 

Service Registry 

Web Proxy Server 

Web Server 

Sun Java Availability Suite

ミッションクリティカルなアプリケーションの障害回復および高可用性 

Sun Cluster ソフトウェア 

Sun Cluster エージェント 

Sun Cluster Geographic Edition 

Sun Java Communications Suite [アスタリスク (*) のついたコンポーネントはコミュニケーションコンポーネントで、Java ES には含まれなくなった、または Java ES インストーラを介してはインストールされません。これらのコンポーネントは、Sun Java Communications Suite の一部として利用可能です。]

セキュリティー保護され信頼できるメッセージングおよび共同作業サービス 

Access Manager 

Application Server 

Calendar Server* 

Communications Express* 

Delegated Administrator* 

Directory Server 

HADB 

Instant Messaging* 

Java DB 

Message Queue 

Messaging Server* 

Monitoring Console 

Web Proxy Server 

Web Server 

Sun Java Identity Management Suite

コンピューティングインフラストラクチャーおよびアプリケーション環境間のユーザーアイデンティティー管理 

Access Manager 

Application Server 

Directory Server 

HADB 

Java DB 

Message Queue 

Monitoring Console 

Web Server 

Sun Java Web Infrastructure Suite

小規模から中規模企業向けの Web アプリケーションおよび Web サービス 

Access Manager 

Application Server 

Directory Server 

HADB 

Java DB 

Message Queue 

Monitoring Console 

Service Registry 

Web Proxy Server 

Web Server 

Java ES での作業

Java ES ソフトウェアに基づくビジネスソリューションの作成には、いくつかの標準的な作業が含まれます。それらの作業の範囲や難易度は、Java ES 導入時の出発点や、作成および配備しようとしているソリューションの性質によって異なります。

ここでは、Java ES での作業における 2 つの側面、つまり、Java ES ソリューションのライフサイクルと通常使用される導入シナリオについて説明します。

Java ES ソリューションのライフサイクル

Java ES ソフトウェアに基づくビジネスソリューションの作成に伴う作業は、次の図に示すように、いくつかのフェーズに分けられます。この図は、作業を通常実行する Java ES ユーザーのカテゴリも示しています。

図 1–3 ソリューションライフサイクルのフェーズとユーザーカテゴリ

ライフサイクルのフェーズと各フェーズに関連する作業を実行する Java ES ユーザーのカテゴリを示す図。

先の図に示すライフサイクルのフェーズは、次の一般的なグループに分類できます。

図 1–3 に示すソリューションのライフサイクルおよび各フェーズの作業については、第 4 章「Java ES ソリューションのライフサイクル」で詳しく説明します。

図 1–3 は、ライフサイクルの各フェーズに示された作業を通常実行する Java ES ユーザーを示しています。各カテゴリのユーザーのスキルとバックグラウンドは、次の表のとおりです。

表 1–5 ライフサイクルの作業に関連する Java ES ユーザーカテゴリ

ユーザー 

スキルとバックグラウンド 

フェーズ 

ビジネスプランナ

システムアナリスト 

専門的ではなくても、一般的な技術知識を持っている。 

企業の戦略上の方向性を理解している。 

ビジネスのプロセス、目的、要件を理解している。 

ビジネス分析 

技術の要件 

論理設計 

設計者

専門的である。 

配備アーキテクチャーの幅広い知識を持つ。 

最新の技術に精通している。 

ビジネスの要件および制約を理解している。 

技術の要件 

論理設計 

配備設計 

システムインテグレータ

フィールドエンジニア 

システム管理者 

システムマネージャー 

専門的である。 

IT 環境に精通している。 

分散型のソフトウェアソリューションを実装した経験がある。 

ネットワークのアーキテクチャー、プロトコル、デバイス、セキュリティーの知識を持つ。 

スクリプト言語およびプログラミング言語の知識を持つ。 

配備設計 

配備実装 

特化したシステム管理者

代行管理者 

サポートエンジニア 

特化した技術知識または製品知識を持つ。 

ハードウェア、プラットフォーム、ディレクトリ、およびデータベースに精通している。 

ソフトウェアの監視、トラブルシューティング、およびアップグレードに熟練している。 

オペレーティングシステムプラットフォームのシステムの管理の知識を持つ。 

操作 

Java ES の導入シナリオ

Java ES の導入につながるビジネスのニーズは多様です。ただし、ほとんどすべての Java ES 配備のハイレベルな目標は、次のいずれかの導入シナリオに該当します。

各導入シナリオには、それぞれ考慮しなければならない点と克服しなければならない点があります。導入シナリオによって、図 1–3 で示すライフサイクルの各フェーズで対処する必要のある問題や投資する必要のあるリソースが異なります。

導入シナリオには、次に示す考慮事項が程度の差はありますが適用されます。

次の表は、Java ES の各導入シナリオに該当する考慮事項の性質を要約しています。

表 1–6 Java ES 導入シナリオに関する考慮事項

導入シナリオ 

移行 

統合 

トレーニング 

ハードウェア 

新しいシステム 

問題なし 

新しいコンポーネントの統合は比較的簡単 

かなりの考慮が必要な場合がある 

機器のコストと労力のコストのバランス [少数の強力なコンピュータを使用すると、通常、機器のコストは増えますが、必要な IT リソースは少なくなります。多数の小型のコンピュータを使用すると、通常、機器のコストは少なくなりますが、より多くの IT リソースが必要になります。]

強化 

重要な考慮事項になる場合がある 

新しいコンポーネントを既存のシステムと統合する必要がある 

かなりの考慮が必要な場合がある 

既存の機器によるかなりの制約がある場合がある 

拡張 

通常は問題なし 

新しいコンポーネントを既存のシステムと統合する必要がある場合がある 

かなりの考慮が必要な場合がある 

通常、新しいシステムと同じトレードオフの新しいハードウェアが必要になる 

アップグレード 

かなりの考慮が必要な場合がある 

アップグレードされたコンポーネントの統合は比較的簡単 

比較的考慮事項が少ない 

比較的考慮事項が少ない 

この章の重要な用語

この節では、この章で使用されている重要な技術用語について説明します。ここでは、Java ES の文脈でどのように使用されているかの説明に重点を置いています。

採用シナリオ (adoption scenario)

Java ES ソフトウェアを配備する総合的な理由。着手するソフトウェアシステムや達成すべき目標を説明します。Java ES には、4 つの基本的な導入シナリオがあります。新規システム、置換、拡張、およびアップグレードの 4 つです。

構成要素 (コンポーネント)

分散型アプリケーションを構築するときの基本となるソフトウェアロジックの単位。コンポーネントは、Java ES に含まれるシステムコンポーネント、カスタム開発されたアプリケーションコンポーネント (application component)のいずれかになります。通常、アプリケーションコンポーネントは、CORBA や J2EETM などの分散型コンポーネントモデルに準拠していて、特定のコンピューティング機能を実行します。これらのコンポーネントを単独でまたは複数を組み合わせて、ビジネスサービスを提供します。また、これらをWeb サービスとしてカプセル化することもできます。

分散エンタープライズアプリケーション (distributed enterprise application)

そのロジックがネットワーク環境またはインターネット環境に及んでおり (分散の側面)、かつその適用範囲と規模が本稼働環境またはサービスプロバイダのニーズを満たしている (エンタープライズの側面) アプリケーション。

エンドユーザー (end user)

分散型アプリケーションを利用するユーザー。エンドユーザーは通常、インターネットブラウザやモバイルデバイス GUI などのグラフィカルユーザーインタフェースを使用します。アプリケーションがサポートする同時接続エンドユーザーの数は、そのアプリケーションの配備アーキテクチャー (deployment architecture)を決定する重要な要因の 1 つになります。

サービス

1 つ以上のクライアントに対して実行されるソフトウェア機能。この機能は、メモリー管理など下位レベルのものであることも、信用調査ビジネスサービス (business service)などの上位レベルのものであることも考えられます。高レベルサービスは、個々のサービスのファミリで構成できます。またサービスには、ローカルクライアントが使用可能なローカルサービスや、リモートクライアントが使用可能な分散サービスがあります。

製品コンポーネント

Java ES システムサービスコンポーネントは、主要な Java ES インフラストラクチャーサービスを提供し、サービス品質コンポーネントはこれらのシステムサービスを拡張します。製品コンポーネントは、Java ES インストーラで選択可能です。

サービス品質コンポーネント (service quality component)

Java ES に含まれる何種類かのシステムコンポーネント (system component)のうちの1 つ。システムサービスコンポーネントおよび分散型アプリケーションコンポーネントの可用性、セキュリティー、スケーラビリティー、保守容易性、およびその他の品質を向上させます。

共有コンポーネント (shared component)

Java ES に含まれる何種類かのシステムコンポーネント (system component)のうちの1 つ。ライブラリなどの共有コンポーネントは、ほかのシステムコンポーネントにローカルサービスを提供します。

システムコンポーネント (system component)

Java ES に含まれていて、Java ES インストーラによってインストールされるソフトウェアパッケージまたは一連のパッケージ。何種類かのシステムコンポーネントがあります。Java ES インフラストラクチャーサービスを提供する製品コンポーネント、およびローカルサービスを他のシステムコンポーネントに提供する共有コンポーネントです。

システムサービス

Java ES によって提供される固有の機能を定義する、1 つ以上の分散型サービス。システムサービスは通常、いくつかのサービス品質コンポーネント、またはいくつかの共有コンポーネント、あるいはその両方のサポートを必要とします。

システムサービスコンポーネント (system service component)

Java ES に含まれる何種類かのシステムコンポーネント (system component)のうちの 1 つ。システムサービスコンポーネントは、Java ES の主要なインフラストラクチャーサービスを提供します。これには、ポータルサービス、アイデンティティーサービスとセキュリティーサービス、Web サービスとアプリケーションサービス、および可用性サービスが含まれます。