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の位置づけを示します。
プログラミング・モデル
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アプリケーションのコーディングのベスト・プラクティスを提供します。
高可用性
-
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インスタンスに分散されているアプリケーション間でメッセージを確実に配信できます。ネットワークの問題やシステム障害が原因で、メッセージの送信時に宛先が使用不能になっている場合、メッセージはローカルのサーバー・インスタンスに保存され、リモートの宛先が使用可能になった時点で転送されます。
-
企業向け開発ツールを使用すると、開発フェーズから本番環境へのアプリケーションのデプロイメントと移行を簡単に行えます。
-
本番再デプロイメントを行うと、古いバージョンのエンタープライズ・アプリケーションで処理中の状態にある作業を中断せずに、新しいバージョンのアプリケーションをデプロイできます。
診断フレームワーク
セキュリティ
クライアント・オプション
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サーバーとの統合
DockerでのOracle WebLogic Serverの実行
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のサンプルとサンプル・アプリケーション
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ホームとして指定したディレクトリです。