1 はじめに

Oracle WebLogic Serverは、エンタープライズJava EEアプリケーションを構築およびデプロイするための業界最高のアプリケーション・サーバーで、運用コストの削減、パフォーマンスの向上、スケーラビリティの強化、およびOracle Applicationsポートフォリオのサポートのための新機能が搭載されています。

次の各項では、Oracle WebLogic Serverの機能の概要と、その機能を使用してエンタープライズ対応ソリューションを作成する方法について説明します。

製品の概要

Oracle WebLogic Serverでは、アプリケーション構築のための最新の開発プラットフォーム、高性能と高可用性のためのランタイム・プラットフォーム、効率的で低コストの操作のための豊富な管理ツールが提供されます。

WebLogic Serverは、Java Platform, Enterprise Edition 8 (Java EE 8)仕様を完全に実装しているため、様々なサービス(データベース、メッセージ・サービス、外部エンタープライズ・システムなど)にアクセスできる分散Javaアプリケーション作成用の標準APIセットが使用できます。エンドユーザー・クライアントは、Webブラウザ・クライアントまたはJavaクライアントを使用してこうしたアプリケーションにアクセスします。「プログラミング・モデル」を参照してください。

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 8 (Java EE 8)プラットフォームを完全にサポートしており、開発者が機能に集中できる開発モ​​デル、API、およびランタイム環境を提供することで、エンタープライズ・アプリケーション開発の複雑さを軽減します。Java EE 8の仕様は、https://www.oracle.com/java/technologies/javaee/javaeetechnologies.html#javaee8で入手できます。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で提供される高可用性機能には、次のものがあります。
  • WebLogic Serverクラスタでは、作業負荷を複数のWebLogic Serverインスタンスに分散することにより、アプリケーションにスケーラビリティと信頼性が提供されます。着信リクエストを、処理される作業量に基づいて、クラスタ内のWebLogic Serverインスタンスに転送できます。ハードウェアまたは他の原因により失敗が発生した場合、他のクラスタ・ノードでセッション状態を利用でき、そのノードで障害の起きたノードの作業を再開できます。さらに、クラスタを実装すると、サービスをホストするマシンが1台だけの場合にも、失敗発生時にはそのサービスを別のノードに移行できます。

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

DockerでのOracle WebLogic Serverの実行

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

DockerとWebLogic Serverの使用と、Dockerイメージの構築に認証された、Oracle WebLogic Server、JDK、LinuxおよびDockerバージョンの組合せの詳細は、Oracle Fusion Middlewareでサポートされている仮想化とパーティション化の技術に関する項を参照してください。

WebLogic Deploy Tooling

Oracle WebLogic Deploy Tool (WDT)を使用すると、WebLogic Serverドメインのプロビジョニングおよびアプリケーションのデプロイメントの自動化が簡略化されます。

WDTは、アプリケーションによって使用されるドメイン、アプリケーションおよびリソースを記述する宣言型メタデータ・モデルを作成します。このメタデータ・モデルによって、繰り返して行われるドメインのライフサイクル処理のプロビジョニング、デプロイおよび実行が容易になります。WDTを使用して、オンプレミス・ドメインの構成およびアプリケーションをDockerイメージまたはKubernetesの永続ボリュームに移行できます。詳しいドキュメントとサンプルは、GitHubのオープン・ソースのWebLogic Deploy Toolingプロジェクトを参照してください。または、ステップごとのガイドについては、ブログ記事「WebLogicドメインのプロビジョニングとデプロイメントを簡単に」を参照してください。

WebLogic Image Tool

Oracle WebLogic Image Toolを使用すると、WebLogic Server Dockerイメージ(独自にカスタマイズしたイメージも含む)のビルド、パッチ適用および更新を自動化できます。

WebLogic Image Toolを使用すると、次の操作を実行できます。

  • カスタマイズしたWebLogic ServerとFMWインフラストラクチャDockerイメージを作成します。

  • WebLogic ServerまたはFMWインフラストラクチャのベース・インストール・イメージにパッチを適用します。

  • WebLogic Deploy Tool (WDT)モデルを使用し、WebLogic ServerまたはFMWインフラストラクチャのドメイン・イメージにパッチを適用してビルドします。

  • アプリケーションをデプロイしてドメイン構成を更新します。

また、これらのユースケースを自動化されたプロセスに組み込んで、DockerおよびKubernetesで稼働しているWebLogicサーバー・インフラストラクチャおよびアプリケーションのパッチ適用や更新を行うことができます。WebLogic Image Toolのオープン・ソースGitHubプロジェクトは、https://github.com/oracle/weblogic-image-toolを参照してください。

WebLogic Server Kubernetes Operator

Oracle WebLogic Server Kubernetes Operatorは、複雑なアプリケーションのインスタンスを作成、構成および管理するためにKubernetesを拡張するアプリケーション固有のコントローラです。オペレータは、Kubernetesの標準的な演算子パターンに従って、WebLogicドメインおよびデプロイメントの管理と操作を単純化します。オペレータは、一般的なKubernetes APIセットを使用することにより、プロビジョニング、ライフサイクル管理、アプリケーションのバージョニング、製品のパッチ適用、スケーリングおよびセキュリティなどの操作を自動化する際のユーザー・エクスペリエンスを改善します。

オペレータは、Oracleで完全にサポートされているオープン・ソース・プロジェクトとして開発されています。オペレータをすぐに体験してみるには、「クイック・スタート」ガイドの手順に従います。または、ドキュメントを調べたり、ブログを読んだり、サンプルを試したりしてください。プロジェクトのスクリプト、その他のサンプルおよびソース・ファイルについては、Oracle WebLogic Server Kubernetes Operator GitHubリポジトリを参照してください。

WebLogic Monitoring Exporter

Oracle WebLogic Monitoring Exporterは、監視しようとするWebLogic ServerインスタンスにデプロイできるWebアプリケーションです。

エクスポータは、ランタイムの状態とメトリックにアクセスするためにWebLogic Server RESTful管理インタフェースを使用し、その後、Prometheus互換性メトリック(モニタリングのためにGrafanaダッシュボードに表示できる)をエクスポートします。実用的な例は、「WebLogic Serverからのメトリックのエクスポート」および「Kubernetes上のWebLogic ServerをモニターするPrometheusおよびGrafana」のブログ投稿を参照してください。Oracle WebLogic Monitoring Exporterの詳細は、GitHubのWebLogic Monitoring Exporterプロジェクトを参照してください。

WebLogic Logging Exporter

Oracle WebLogic Logging Exporterは、簡単に構成できる堅牢な本番用ソリューションです。Elasticsearchを介してWebLogic Serverのログ情報にアクセスし、Kibanaダッシュボードに表示します。

ビルドとインストールの手順は、WebLogic Logging Exporterオープン・ソース・プロジェクトのREADME (https://github.com/oracle/weblogic-logging-exporter)を参照してください。

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のアップグレードを参照してください。