Sun Java Enterprise System 2005Q4 技術の概要

第 1 章 Java Enterprise System の概要

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

Java Enterprise System は、Sun ソフトウェアのリリース、配信の方法論、およびビジネスと価格設定の戦略も実現しています。ただし、このマニュアルでは Java Enterprise System のソフトウェアコンポーネントとコンポーネントが提供するサービスに重点を置いています。

この章では、Java Enterprise System およびシステムの使用に関連する作業を紹介します。次のトピックが含まれます。

Java Enterprise System が必要な理由

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

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

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

次の図に、全体的な階層スキーマを示します。Java Enterprise System は基本的に、図 1–1 に示す分散型インフラストラクチャーサービス層を提供します。ただし、Java Enterprise System サービスには、エンドユーザーがアクセス可能なサービスなど、アプリケーションレベルのサービスもいくつか含まれます。

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

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

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

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

ユーザーは、1 つまたは複数の Java Enterprise System サービスを配備できます。それらの各サービスには Java Enterprise System コンポーネントがいくつか含まれます。

Java Enterprise System コンポーネント

Java Enterprise System は、個別のソフトウェア製品やソフトウェアコンポーネントを単一のソフトウェアシステムとして統合化したものです。このシステムのコンポーネントに対するテストが実施されていて、各コンポーネント間の相互動作が保証されています。そうした統合は、次のようないくつかのシステムレベル機能によって実現されています。

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

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

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 Calendar Server

エンドユーザーおよびエンドユーザーグループにカレンダサービスとスケジューリングサービスを提供します。Calendar Server には、サーバーと対話するブラウザベースのクライアントが含まれています。 

Sun Java System Directory Server

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

Sun Java System Instant Messaging

インスタントメッセージング (チャット)、会議、アラート、ニュース、調査、ファイル転送など、エンドユーザー間における、セキュリティー保護されたリアルタイムの通信を提供します。このサービスには、ユーザーが現在オンラインであるかどうかと通知するプレゼンスマネージャー、およびブラウザからサーバーとの対話を行なうクライアントが含まれます。 

Sun Java System Message Queue

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

Sun Java System Messaging Server

電子メール、ファックス、ポケベル、音声、およびビデオをサポートする、セキュリティー保護された、信頼性の高い大容量の蓄積交換型メッセージングを提供します。Messaging Server は、複数のメッセージストアに同時にアクセスできるほか、一方的に送られてくる電子メールの受信拒否やウィルス攻撃の防止に役立つコンテンツフィルタリング機能を提供します。 

Sun Java System Portal Server

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

Sun Java System Web Server

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

Sun Java System Service Registry 

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

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

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

可用性コンポーネント

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

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

コンポーネント 

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

Sun Cluster

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

High Availability Session Store

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

アクセスコンポーネント

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

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

コンポーネント 

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

Sun Java System Directory Proxy Server

企業ファイアウォールの外からセキュリティーサービスを 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 ベースのアクセスを提供します。 

Sun Java System Portal Server, Secure Remote Access

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

 

Sun Java System Connector for Microsoft Outlook

Microsoft Outlook を使用するデスクトップクライアントに、Messaging Server と Calendar Server の両方に対するインタフェースを提供します。 

管理コンポーネント

管理コンポーネントは、システムサービスのための、設定や監視などの管理機能を提供します。Java Enterprise System に含まれる管理コンポーネントおよびそれらのコンポーネントが提供するサービスを次の表に示します。コンポーネントの詳細については、「管理コンポーネントの説明」を参照してください。

表 1–4 Java ES 管理コンポーネント

コンポーネント 

提供される管理サービス 

Sun Java System Administration Server (およびコンソール)

Directory Server および Messaging Server の設定および管理を可能にするグラフィカル管理ツールを提供します。 

Sun Java System Directory Preparation Tool

Messaging Server および Calendar Server 用のユーザーのプロビジョニングに必要となるスキーマを使って Directory Server を設定するためのスクリプトを提供します。 

Sun Java System Delegated Administrator

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 導入時の出発点や、作成および配備しようとしているソリューションの性質によって異なります。

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

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

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

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

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

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

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

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

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

ユーザー 

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

フェーズ 

ビジネスプランナ

システムアナリスト 

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

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

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

ビジネス分析 

技術要件 

論理設計 

設計者

専門的である。 

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

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

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

論理設計 

配備設計 

システムインテグレータ

フィールドエンジニア 

システム管理者 

システムマネージャー 

専門的である。 

IT 環境に精通している。 

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

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

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

配備設計 

配備実装 

特化したシステム管理者

代行管理者 

サポートエンジニア 

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

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

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

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

オペレーション 

Java Enterprise System の導入シナリオ

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

各導入シナリオには、それぞれ考慮しなければならない点と克服しなければならない点があります。ユーザーの状況に当てはまる導入シナリオがどれであるかにかかわらず、図 1–3 に示すソリューションのライフサイクルプロセスが適用されます。ただし、導入シナリオによって、ライフサイクルの各フェーズで対処する必要のある問題や投資する必要のあるリソースが異なります。

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

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

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

導入シナリオ 

移行 

統合 

トレーニング 

ハードウェア 

新しいシステム 

問題なし 

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

通常かなりの考慮が必要 

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

強化 

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

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

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

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

拡張 

通常は問題なし 

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

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

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

アップグレード 

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

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

比較的考慮事項が少ない 

比較的考慮事項が少ない 

この章の重要な用語

この節では、この章で使用されている重要な技術用語について説明します。ここでは、用語間の関係や 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 サービスとアプリケーションサービス、および可用性サービスが含まれます。