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の位置づけを示します。

図1-1 Oracle Fusion Middlewareの概要

図1-1の説明が続きます
「図1-1 Oracle Fusion Middlewareの概要」の説明

プログラミング・モデル

Oracle WebLogic Serverは、Java Platform, Enterprise Edition 7 (Java EE 7)プラットフォームを完全にサポートしており、開発者が機能に集中できる開発モ​​デル、API、およびランタイム環境を提供することで、エンタープライズ・アプリケーション開発の複雑さを軽減します。Java EE 7の仕様は、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アプリケーションのコーディングのベスト・プラクティスを提供します。

高可用性

Oracle 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インスタンスに分散されているアプリケーション間でメッセージを確実に配信できます。ネットワークの問題やシステム障害が原因で、メッセージの送信時に宛先が使用不能になっている場合、メッセージはローカルのサーバー・インスタンスに保存され、リモートの宛先が使用可能になった時点で転送されます。

  • 企業向け開発ツールを使用すると、開発フェーズから本番環境へのアプリケーションのデプロイメントと移行を簡単に行えます。

  • 本番再デプロイメントを行うと、古いバージョンのエンタープライズ・アプリケーションで処理中の状態にある作業を中断せずに、新しいバージョンのアプリケーションをデプロイできます。

診断フレームワーク

WebLogic診断フレームワークは、実行中のWebLogic Serverインスタンスやそれにデプロイされたアプリケーションによって生成される診断データを作成、収集、分析、アーカイブし、それにアクセスするためのモニタリングと診断のサービスです。この診断データによって、WebLogic Serverインスタンスとデプロイされているアプリケーションの実行時のパフォーマンスを把握でき、それはまた、発生したフォルトやパフォーマンスのボトルネックの特定や診断に役立ちます。『Oracle WebLogic Server診断フレームワークの構成と使用』WebLogic診断フレームワークとは何かに関する項を参照してください。

セキュリティ

WebLogic Serverのセキュリティ・アーキテクチャでは、アプリケーションをインターネット上で利用可能にする際のセキュリティ上の問題を扱うために設計された、包括的で柔軟性に富んだセキュリティ・インフラストラクチャが提供されます。WebLogicセキュリティは、WebLogic Serverアプリケーションを保護するためにスタンドアロンで使用することも、最高レベルのセキュリティ管理ソリューションとしてエンタープライズ全体のセキュリティ管理システムの一部として使用することもできます。詳細は、『Oracle WebLogic Serverセキュリティの理解』「WebLogicセキュリティ・サービスの概要」を参照してください。

クライアント・オプション

WebLogic Serverでは、ブラウザ・ベースのWebアプリケーション・クライアントのサポートに加え、様々な種類のクライアントがサポートされており、多機能なGUIアプリケーションを作成することも、簡単なコマンド行ユーティリティを作成することもできます。こうしたクライアントの種類には、RMI-IIOP、T3、Java SEクライアント、Java EEシン・クライアント、CORBA/IDLクライアント、BEA Tuxedoと通信するC++クライアントなどがあります。詳細は、『Oracle WebLogic Serverスタンドアロン・クライアントの開発』「スタンドアロン・クライアントの概要」を参照してください。

Oracle WebLogic Suiteとの統合

WebLogic Serverは、統合されたOracle WebLogic Suite Javaインフラストラクチャ内でコア・アプリケーション・サーバー・ランタイムを提供します。この統合インフラストラクチャでは、アプリケーション・パフォーマンスとアプリケーションの可用性の向上ができます。また、これによって、アプリケーション・サービス品質が高まり、予測可能で信頼性のあるアプリケーション・スケーラビリティを実現できます。 WebLogic Suiteでは、Oracle JDeveloperEclipse用のOracle Enterpriseパックに基づいた生産的な高い開発ツール、およびOracle Enterprise Managerで大規模な管理と操作ができる完全な統合管理が含まれています。WebLogic Suiteの開発、ランタイムと管理機能は、ミッション・クリティカル・エンタープライズ・アプリケーションを実装するための基礎を提供します。

WebLogic Suiteは、次のサーバー側コンポーネントで構成されています。

  • Oracle WebLogic Server

  • Oracle Coherence

    Oracle Coherenceを使用すると、使用頻繁度の高いデータへの迅速かつ信頼性のあるアクセスを実現することにより、企業はミッションクリティカルなアプリケーションを予測どおりに拡張できるようになります。Oracle Coherenceは自動的かつ動的に複数のサーバー上のメモリにデータを分割し、サーバーで障害が発生した場合でも、データの可用性およびトランザクションの整合性を保証します。

    WebLogic Serverには、CoherenceクラスタおよびCoherenceベースのアプリケーションの管理とデプロイメントを簡素化するCoherenceコンテナが用意されています。

  • TopLinkの概要

    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などの様々なアプリケーション・サーバーと統合できます。

他のシステムとの統合

WebLogic Serverには、お使いのアプリケーションと様々なシステムを統合するためのツールが豊富に用意されています。 これらのツールには、Webサービスリソース・アダプタJMS .NETクライアントJMS Cクライアント、およびJMSプロバイダ・オプションアドバンスト・キューイングおよびRMIの統合に使用するツールが含まれています。

Webサーバーとの統合

WebLogic Serverには、Oracle HTTP Server、Oracle iPlanet Web Server、Apache HTTP Server、またはMicrosoft Internet Information Server (IIS)からOracle WebLogic Serverにリクエストをプロキシできる一連のWebサーバー・プラグインが含まれています。通常は、これらのWebサーバーで静的なHTMLコンテンツを処理しながら、JSPなどの動的なWebコンテンツのリクエストをWebLogic Server環境に転送します。

マルチテナンシ

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はLinuxベースのコンテナ・テクノロジで、これを使用すると、開発環境または本番環境のどちらでも、軽量化されたクラスタ化および非クラスタ化のWebLogic Serverドメイン構成を単一のホスト・オペレーティング・システムまたは仮想マシン上に、すばやく作成できます。Oracle WebLogic ServerのイメージをビルドするためのDockerファイルとサポート・スクリプトが用意されています。これらのイメージは、既存のOracle Linuxイメージの拡張としてビルドされます。これらのスクリプトおよびビルド・イメージは、GitHubのhttps://github.com/oracle/docker-images/tree/master/OracleWebLogicにあります。

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

Oracle Java Cloud Serviceは、Oracle WebLogic Serverを備えており、新規または既存のJava EEアプリケーションを開発およびデプロイするためのOracleのエンタープライズグレード・クラウド・インフラストラクチャ上にプラットフォームを提供します。 Oracle Java Cloud Serviceの試用またはサブスクリプションにより、サービスの管理およびモニタリングを開始できます。

WebLogic Server APIのサンプルとサンプル・アプリケーション

Oracle WebLogic Serverには、アプリケーションにJava EE APIおよびOracle WebLogic Server固有の機能を実装する方法を示す、包括的なサンプル・コードおよびサンプル・アプリケーションが含まれています。WebLogic Serverをインストールすると、Java EE APIおよび他のWebLogic Serverの機能を示すサンプル・コードも提供されます。これらのサンプル・コードを利用しながら作業するには、WebLogic Serverをインストールする際にカスタム・インストール・オプションを選択し、WebLogic Serverのサンプルのインストールを選択します。サンプル・コードにアクセスするには、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ホームとして指定したディレクトリです。

更新

WebLogic Serverでは、WebLogic Serverのあるバージョンから次のバージョンへのアプリケーション環境の移行をサポートする、強力なアップグレード機能が用意されています。アプリケーション環境は、WebLogicドメインとそれに関連付けられているアプリケーションおよびアプリケーション・データで構成されます。また、アプリケーション環境には、ファイアウォール、ロード・バランサ、LDAPサーバーなどの外部リソースも含まれます。 以前のバージョンのWebLogic Serverに実装されているアプリケーションを現在のWebLogic Serverの環境に移行する際に役立つツールおよびドキュメントが提供されています。Oracle WebLogic Serverのアップグレードを参照してください。