1 はじめに
Oracle WebLogic Serverは、エンタープライズJava EEアプリケーションを構築およびデプロイするための業界最高のアプリケーション・サーバーで、運用コストの削減、パフォーマンスの向上、スケーラビリティの強化、およびOracle Applicationsポートフォリオのサポートのための新機能が搭載されています。
次の各項では、Oracle WebLogic Serverの機能の概要と、その機能を使用してエンタープライズ対応ソリューションを作成する方法について説明します。
製品の概要
Oracle WebLogic Serverでは、アプリケーション構築のための最新の開発プラットフォーム、高性能と高可用性のためのランタイム・プラットフォーム、効率的で低コストの操作のための豊富な管理ツールが提供されます。
WebLogic Serverは、Java Platform, Enterprise Edition 7 (Java EE 7)仕様を完全に実装しているため、様々なサービス(データベース、メッセージ・サービス、外部エンタープライズ・システムなど)にアクセスできる分散Javaアプリケーション作成用の標準APIセットが使用できます。エンドユーザー・クライアントは、Webブラウザ・クライアントまたはJavaクライアントを使用してこうしたアプリケーションにアクセスします。「プログラミング・モデル」を参照してください。
WebLogic Serverのインフラストラクチャでは、様々な種類の分散アプリケーションのデプロイメントがサポートされています。サービス指向アーキテクチャ(SOA)に基づいてアプリケーションを構築するには理想的な基盤です。SOAとは、アプリケーション・サービスの再利用を最大限にすることを目的とした設計手法のことです。Oracle SOA Suiteに関する項を参照してください。
Java EEを実装してWebLogic Serverを使用すると、企業のミッション・クリティカルなアプリケーションを堅牢かつセキュアで、可用性が高く、スケーラブルな環境にデプロイできます。WebLogic Serverインスタンスのクラスタを構成して負荷を分散したり、ハード・ウェアや他の原因による失敗が発生した場合に余裕をもって対応したりするための機能が備わっています。新しく導入された診断ツールでは、システム管理者によるデプロイ済みアプリケーションおよびWebLogic Server環境自体のモニターおよびパフォーマンス・チューニングが可能です。また、人の手を煩わせず自動的にアプリケーションのスループットをモニターおよびチューニングするように構成することもできます。サービスへのアクセスは豊富なセキュリティ機能によって保護され、企業データをセキュアに保つことで悪意のある攻撃を防止できます。
図1-1では、全体的なOracle Fusion MiddlewareスタックにおけるWebLogic Serverの位置づけを示します。
プログラミング・モデル
https://www.oracle.com/java/technologies/javaee/javaeetechnologies.html#javaee7
で入手できます。WebLogic ServerでのJava EEプログラミング・モデルのサポートについては、次のプログラミング・ガイドを参照してください。
-
Webアプリケーションでは、サーブレットおよびJavaServer Pages (JSP)のJava EE標準に基づいた動的なWebページをデプロイメントするための基本的なJava EEメカニズムが提供されます。Webアプリケーションは、HTMLページ、イメージ・ファイルなどの静的なWebコンテンツの提供にも使用されます。
-
Webサービスでは、ネットワーク上の他のシステムで利用でき、分散型Webベース・アプリケーションのコンポーネントとしても使用できる、一連の共有機能が提供されます。
-
XMLには、データ交換、コンテンツを表示とは無関係に格納する手段、などの機能があります。
-
Java Messaging Service (JMS)を使用すると、メッセージを交換してアプリケーション同士で通信できます。メッセージとは、異なるアプリケーション間の通信を調整するために必要な情報が含まれている、リクエスト、レポート、およびイベントです。
-
Java Database Connectivity (JDBC)では、DBMSリソースへのプール機能付きアクセスが提供されます。
-
リソース・アダプタでは、EIS (エンタープライズ・インフォメーション・システム)への接続機能が提供されます。
-
Enterprise JavaBeans (EJB)では、データおよびビジネス・ロジックをカプセル化するためのJavaオブジェクトが提供されます。
-
Remote Method Invocation (RMI)は、アプリケーションでリモート・オブジェクト上のメソッドをローカルに呼び出せるようにする、分散オブジェクト・コンピューティングのJava標準です。
-
セキュリティAPIを使用すると、お使いのJava EEアプリケーションに認証と認可の機能を統合できます。セキュリティ・プロバイダAPIを使用して、独自のカスタム・セキュリティ・プロバイダを作成することもできます。
-
WebLogic Tuxedo Connectivity (WTC)では、WebLogic ServerアプリケーションとTuxedoサービス間の相互運用性が提供されます。WTCを使用すると、WebLogic ServerクライアントからTuxedoサービスを呼び出したり、サービス・リクエストにレスポンスするためにTuxedoクライアントからEJBを呼び出したりできます。
-
Coherenceでは、WebLogic Serverアプリケーション向けの分散キャッシング機能とデータ・グリッド機能を実現します。
-
「WebLogic Serverアプリケーション開発の概要」では、開発者用ツールおよびWebLogic Serverアプリケーションのコーディングのベスト・プラクティスを提供します。
高可用性
-
Continuous Availabilityは、地理的に分散した場所にデータ・センターを展開する最大可用性アーキテクチャ(MAA)を構築するための統合ソリューションを提供します。統合されたコンポーネントにはOracle WebLogic Server、Oracle Coherence、Oracle Traffic DirectorおよびOracle Site Guardが含まれます。
-
WebLogic Serverクラスタでは、作業負荷を複数のWebLogic Serverインスタンスに分散することにより、アプリケーションにスケーラビリティと信頼性が提供されます。着信リクエストを、処理される作業量に基づいて、クラスタ内のWebLogic Serverインスタンスに転送できます。ハードウェアまたは他の原因により失敗が発生した場合、他のクラスタ・ノードでセッション状態を利用でき、そのノードで障害の起きたノードの作業を再開できます。さらに、クラスタを実装すると、サービスをホストするマシンが1台だけの場合にも、失敗発生時にはそのサービスを別のノードに移行できます。
WebLogic Serverでは、HTTPセッション状態については、クラスタ内のサーバー群に渡るレプリケートに加えて、複数のクラスタに渡るレプリケートも可能なため、複数の地理的領域、電力供給網、インターネット・サービス・プロバイダに渡る可用性とフォールト・トレランスが拡張されています。
-
動的クラスタにおける拡張度により、動的クラスタの自動スケーリングと関連リソースの再プロビジョニングが可能になります。拡張度フレームワークは、WebLogic Diagnostic Framework (WLDF)のポリシーおよびアクション・システムを活用します。
-
Coherenceクラスタでは、データを任意の数のクラスタ・メンバーに分散することにより、スケーラビリティとフォルト・トレランスを実現します。これにより、データは常に使用可能になり、WebLogic Serverでホストされているアプリケーションから容易にアクセスできるようになります。
さらに、Webアプリケーションで、HTTPセッションの状態の格納とレプリケートにCoherenceデータ・グリッドを採用することで、スケーラビリティ、フォルト・トレランスおよびパフォーマンスを向上させることができます。
-
ワーク・マネージャでは、定義したルールに基づいて、さらには実際の実行時パフォーマンスの統計をモニターすることによって、作業の優先順位を決められます。こうした情報は、後にアプリケーションのパフォーマンスを最適化するためにも使用されます。ワーク・マネージャはWebLogic Serverドメイン全体に対して適用することも、特定のアプリケーションやコンポーネントに適用することもできます。
-
過負荷保護機能では、過負荷状態の検出、回避、およびその状態からの回復ができます。
-
ネットワーク・チャネルでは、ネットワークのトラフィックをその種類に基づいて複数のチャネルに分割することにより、ネットワーク・リソースの効率的な利用を簡単にできるようにします。
-
簡略化されたJMSクラスタ構成および高可用性では、アプリケーションがJMSサーバー、SAFエージェントおよび永続ストアなどのWebLogic JMSサービスの規模を容易に変更できます。クラスタのターゲットとして指定されたJMSサーバーと永続ストアは、JMSサービス・アーティファクトをクラスタに対して直接ターゲット指定することを可能にし、クラスタのサーバーごとに個々にアーティファクトを構成する必要がなくなります。
-
WebLogic Server永続ストアは、永続性を必要とするWebLogic Serverのサブシステムおよびサービスに対する、組込み型の高性能なストレージ・ソリューションです。たとえば、永続JMSメッセージを格納したり、ストア・アンド・フォワード機能を使用して、メッセージを一時的に格納してから送信したりできます。永続ストアは、ファイルベースのストアまたはJDBC対応データベースの永続性をサポートします。
-
ストア・アンド・フォワード・サービスを使用すると、複数のWebLogic Serverインスタンスに分散されているアプリケーション間でメッセージを確実に配信できます。ネットワークの問題やシステム障害が原因で、メッセージの送信時に宛先が使用不能になっている場合、メッセージはローカルのサーバー・インスタンスに保存され、リモートの宛先が使用可能になった時点で転送されます。
-
企業向け開発ツールを使用すると、開発フェーズから本番環境へのアプリケーションのデプロイメントと移行を簡単に行えます。
-
本番再デプロイメントを行うと、古いバージョンのエンタープライズ・アプリケーションで処理中の状態にある作業を中断せずに、新しいバージョンのアプリケーションをデプロイできます。
診断フレームワーク
セキュリティ
クライアント・オプション
Oracle WebLogic Suiteとの統合
WebLogic Suiteは、次のサーバー側コンポーネントで構成されています。
-
Oracle WebLogic Server
-
Oracle Coherenceを使用すると、使用頻繁度の高いデータへの迅速かつ信頼性のあるアクセスを実現することにより、企業はミッションクリティカルなアプリケーションを予測どおりに拡張できるようになります。Oracle Coherenceは自動的かつ動的に複数のサーバー上のメモリにデータを分割し、サーバーで障害が発生した場合でも、データの可用性およびトランザクションの整合性を保証します。
WebLogic Serverには、CoherenceクラスタおよびCoherenceベースのアプリケーションの管理とデプロイメントを簡素化するCoherenceコンテナが用意されています。
-
Oracle TopLinkを使用して、永久性のあるオブジェクト指向のデータをリレーショナル・データベースに格納する高性能アプリケーションを構築できます。オブジェクト指向のデータはリレーショナル・データかXML (Extensible Markup Language)エレメントに変換されます。
Oracle TopLinkは高度なオブジェクト永続性およびオブジェクト変換フレームワークであり、開発と保守にかかる労力を削減して、エンタープライズ・アプリケーションの機能性を高める開発ツールと実行時機能を提供します。
Oracle TopLinkには、Java EEおよびJava SE環境でのEJB 3.0のサポートや、EJB 2.nのコンテナ管理の永続性(CMP)のサポートが含まれています。Oracle TopLinkは、Oracle WebLogic Server、JBoss、IBM WebSphereなどの様々なアプリケーション・サーバーと統合できます。
他のシステムとの統合
Webサーバーとの統合
マルチテナンシ
WebLogic Serverのマルチテナンシにより、複数の組織で使用できる共有可能なインフラストラクチャが提供されます。1つのドメインが複数のテナントをサポートできるようにすることによって、Oracle WebLogic Server Multitenant (MT)は、複数のアプリケーションを共有しようとする際によく発生する困難(アプリケーション間のランタイムの影響、セキュリティの相違、データの混在、管理の課題など)を排除しながら、密度を改善し、リソースの効率的な使用を実現します。
ノート:
WebLogic Server Multitenantドメイン・パーティション、リソース・グループ、リソース・グループ・テンプレートおよび仮想ターゲットは、WebLogic Server 12.2.1.4.0で非推奨になり、次のリリースで削除されます。
WebLogic Server Multitenantドメイン・パーティションを使用すると、実行中のアプリケーション・インスタンスおよび関連リソース専用のWebLogicドメインの一部を構成できます。Oracleでは、ドメイン・パーティションを特定のアプリケーションおよびリソース専用のコンテナとして使用する場合、代替コンテナベースのアーキテクチャ(Kubernetesクラスタで実行されるDockerコンテナでのWebLogicアプリケーションおよびサービスのデプロイメントなど)の使用を検討することをお薦めします。詳細は、「DockerでのOracle WebLogic Serverの実行」および「WebLogic Server Kubernetes Operator」を参照してください。
WebLogic Server MTは、Oracle WebLogic Server Enterprise EditionとOracle WebLogic Suite製品を拡張するものであり、次のコンポーネントを含みます。
-
Oracle WebLogic Server MT。セキュアな分離を維持しながら、(ドメイン内のパーティションを許可することによって)アプリケーションをより少数のドメインに統合できます。
-
Java SE Advancedに対するWebLogic MT拡張機能。これにより、JVM内のアプリケーションのメモリー、CPUとI/O隔離、監視および管理を実現します。
-
Oracle WebLogic Coherence Enterprise EditionからGrid Editionまでのオプション。セキュアな分離を維持しながら、キャッシュをより少数のOracle Coherenceクラスタに統合できます。
-
Oracle Traffic Director。WebLogic Server MTに対応し、完全に統合されたテナント対応ローカル・ロード・バランシングを提供します。
詳細は、『Oracle WebLogic Server Multitenant』のWebLogic Server MTに関する項を参照してください。
DockerでのOracle WebLogic Serverの実行
DockerとWebLogic Serverの使用と、Dockerイメージの構築に認証された、Oracle WebLogic Server、JDK、LinuxおよびDockerバージョンの組み合わせの詳細は、Oracle Technology Networkの『DockerコンテナでのOracle WebLogic Serverの運用』ホワイトペーパーを参照してください。
WebLogic Server Kubernetes Operator
Oracle WebLogic Server Kubernetes Operatorは、複雑なアプリケーションのインスタンスを作成、構成および管理するためにKubernetesを拡張するアプリケーション固有のコントローラです。オペレータは、Kubernetesの標準的な演算子パターンに従って、WebLogicドメインおよびデプロイメントの管理と操作を単純化します。オペレータは、一般的なKubernetes APIセットを使用することにより、プロビジョニング、ライフサイクル管理、アプリケーションのバージョニング、製品のパッチ適用、スケーリングおよびセキュリティなどの操作を自動化する際のユーザー・エクスペリエンスを改善します。
オペレータは、Oracleで完全にサポートされているオープン・ソース・プロジェクトとして開発されています。プロジェクトのドキュメント、スクリプト、スクリプト、サンプルおよびファイルについては、Oracle WebLogic Server Kubernetes Operator GitHubリポジトリを参照してください。Operatorは、Docker HubからアクセスできるDockerイメージにパッケージ化されています。
クラウドのWebLogic Server
WebLogic Server APIのサンプルとサンプル・アプリケーション
startWebLogicEx.cmd
またはstartWebLogicEx.sh
スクリプトをORACLE_HOME
/user_projects/domains/wl_server
から起動します。ORACLE_HOME
は、Oracle WebLogicのインストール時にOracleホームとして指定したディレクトリです。サンプル・コードが利用可能な状態になれば、追加サンプルをダウンロードすることもできます。
上記のようにサンプル・コードをインストールすると、サンプル・コードと一緒に、Avitek Medical Records (MedRec)という完全なサンプル・アプリケーション(2つのバージョン)もインストールされます。
オリジナルのMedRec (WebLogic Serverの以前のバージョンに含まれていました)は、Java EEコンポーネントのあらゆる局面を簡潔にデモンストレートする、WebLogic Serverのサンプル・アプリケーション・スイートです。MedRecはあらゆるレベルのJava EE開発者に対応する学習用ツールとして設計されたものです。それは、各Java EEコンポーネントの使用方法、およびコンポーネントの対話やクライアント開発のベスト・プラクティスとなるデザイン・パターンを例示します。また、MedRecはWebLogic Server上でアプリケーションを開発するためのベスト・プラクティスを提示します。
MedRecのSpringバージョン(MedRec-Spring)は、Spring Frameworkを使用して再キャストしたMedRecです。WebLogic Server上でSpringアプリケーションを開発する場合は、MedRec-Springサンプル・アプリケーションをレビューしてください。SpringからのWebLogic Serverのエンタープライズ機能の利用方法を説明するために、コアJava EEコンポーネントをそれに対応するSpringに置き換えてMedRecを再構築しました。MedRec-Springでは、オリジナル・バージョンのMedRecの機能がSpringを使用して再実装されています。詳細は、MedRec-Springサンプルを参照してください。
MedRecを起動するには、startWebLogic.cmd
またはstartWebLogic.sh
スクリプトをORACLE_HOME
/user_projects/domains/medrec
から起動します。ORACLE_HOME
は、Oracle WebLogic Serverのインストール時にOracleホームとして指定したディレクトリです。
MedRec-Springを起動するには、startWebLogic.cmd
またはstartWebLogic.sh
スクリプトをORACLE_HOME
/user_projects/domains/medrec-spring
から起動します。ORACLE_HOME
は、Oracle WebLogic Serverのインストール時にOracleホームとして指定したディレクトリです。