サイト内の現在位置を表示しています。

WebOTX Application Server - Webコンテナ機能

WebOTX ASのWebコンテナは、Apache TomcatをベースにしたWebアプリケーション(ServletやJSP)を動作させるための実行基盤です。Webコンテナは、このWebアプリケーションの実行環境に加えて、Webコンテナの運用管理を行う機能を提供します。

Standard /Enterpriseでは、Webアプリケーションの配備先(Webコンテナの実行環境)としてエージェントプロセスとプロセスグループのどちらも利用可能です。プロセスグループ上にWebアプリケーションを配備すると、TP モニタの高信頼性・高可用性を利用したミッションクリティカルなシステムが構築可能となります。

Web コンテナは、Web アプリケーションである Servlet/JSP を動作させるための実行基盤です。Web アプリケーションは、Web コンテナの提供する各種機能を使用し、 クライアントからの入力データを解析し動的な HTML を生成するサーバサイドの Java アプリケーションです。2層のモデルでは Web アプリケーションはプレゼンテーション層からアプリケーション層(ビジネスロジック層) までを実現します。3 層モデルではプレゼンテーション層のみを実現します。
Web コンテナは、この Web アプリケーションの実行環境に加えてWeb コンテナの運用管理を行う機能を提供します。

Webコンテナは、Tomcatと比較して独自に次のような機能強化を行っています。

セッション管理

HTTP/HTTPSプロトコルではWebブラウザからの要求とサーバからの応答が一組で動作し、明確なセッションという概念がありません。一方、業務システムではクライアントとの複数回の通信の中で状態を変更して業務を遂行していくスタイルが一般的です。そのためHTTP/HTTPSプロトコル上で論理的なセッションを管理する必要性が出てきました。

Webコンテナでは、Webコンテナとしてのセション管理にCookieを利用するか、URL Rewritingを利用するかを選択できます。Webサーバは、Webコンテナの設定したCookieもしくはURLの値をWebブラウザに引き継ぎ、Webブラウザから送信されたデータとともにCookie、もしくはURLの値をWebコンテナに引き渡します。これらの値はWebコンテナ上で動作するWebアプリケーションから参照することもできます。また、Webアプリケーションで、独自のIDを設定することもできます。

Webアプリケーションのクラスタ化

クラスタ化したシステムにおいて、一つのサーバに障害が発生してもサービスを中断しないためにWebコンテナで「セション情報の共有機能」を提供しています。

WebアプリケーションのHttpSessionオブジェクトをメモリ間でレプリケーションして保持することで高い性能を維持したまま、特定のサーバの障害発生をエンドユーザから隠蔽することができます。Webアプリケーションはセッションの共有が行われているか知る必要がないので一般のWebアプリケーションで高信頼なシステムが構築できます。

インメモリ・データグリッド製品のサポート

セッション情報をレプリケーションする際の情報格納先として、従来のJNDIサーバおよびデータベース製品に加え、より高速なレプリケーション処理が可能なインメモリ・データグリッド製品を利用できます。インメモリ・データグリッド製品を利用した場合、セッション情報を複数サーバへ複製する処理時間が従来比1/7と大幅な短縮を実現しています。

詳細は「インメモリ・データグリッド連携」をご参照ください。

TPモニタによるWebアプリケーションのプロセス制御機能

Standard/Enterpriseでは、Web アプリケーションを動作させるWebコンテナを、TPモニタ上でマルチプロセス動作させることができます。

WebアプリケーションをTPモニタで監視
WebアプリケーションをTPモニタで監視

WebOTX V6.4以前は、Webコンテナはエージェントプロセス上でのみ動作していました(V6.5以降V9.xまでの「アドバンスドモード」に対して「スタンダードモード」と呼びます)が、WebOTX V6.5以降では、WebコンテナをTPモニタ上で動作させる「アドバンスドモード」が追加となりました。これにより、Webアプリケーションが高信頼基盤であるTPモニタの信頼性・可用性の恩恵を受け、ミッションクリティカル性が向上します。

また、WebOTX V10.1以降では、Webコンテナの動作モード「スタンダードモード(エージェントプロセスで動作)」と「アドバンスドモード(TPモニタ上で動作)」は廃止となり、Webコンテナをエージェントプロセス上とTPモニタ上の両方で同時に動作させる事が可能となりました。Webアプリケーションを配備する時にどちらに配備するかを指定するだけで、両方の環境も同時に利用可能です。

Java EEシステムにおいて、Webアプリケーションである「サーブレットやJSP」は既に欠かせないものであり、高い採用率、かつ多くの採用実績を誇る技術であることは周知の事実です。加えてWebシステムは不特定多数のアクセスが前提である場合が多く、予期せぬ高負荷状態や障害発生に対する万全の体制づくりが重要となります。

WebOTXが提供するTPモニタでは、高負荷発生時にも安定動作を保証する流量制御機能や、特定箇所で障害が発生した際に、システム全体が影響を受けて止まらないように、障害による影響を最小限に食い止めるための監視機能などを提供しています。

Webアプリケーションの信頼性向上
Webアプリケーションの信頼性向上

運用管理コンソール

WebブラウザからWebOTXの運用管理を行う事ができる運用管理コンソールを提供しています。

詳細についてはWebOTXの運用環境もご参照ください。

Webコンテナ運用管理コンソール
Webコンテナ運用管理コンソール

Servlet

Servletとはアプリケーションサーバ上で動作するjavaプログラムです。クライアントからのHTTPリクエストをServletが受けビジネスロジックを処理し、動的にWebページを作成して返却します。ライフサイクル管理やマルチスレッドでの動作、さらに同一クライアント間とのデータを保持しておくセッション管理の仕組みが特徴です。

JSP (JavaServer Pages)

JSP(JavaServer Pages)はServletとセットで使われることが多い機能です。ServletはjavaプログラムであるためHTMLを生成するには向いていません。対してJSPはHTMLの中にjavaコードを埋め込むことでWebページを作成するため画面イメージを作成するのが容易です。JSPは使用時にServletに変換・コンパイルされSrvletとして動作します。

JSF (JavaServer Faces)

JSF(JavaServer Faces)は、アプリケーションの状態の管理やイベント処理、入力値の検証(バリデーション)、Webページ上の表示・入力領域とサーバ上のデータとの対応付け(バインディング)、多言語対応などを特徴とし、HTML5に対応したWebアプリケーションを構築可能なフレームワークです。Java EE(Java Enterprise Eddition ※2019年より Jakarta EE)の仕様として取り込まれており、追加のライブラリを必要とせず高度なWebアプリケーションを作成できる技術です。

JSTL (JavaServer Pages Standard Tag Library)

JSTL(JavaServer Pages Standard Tag Library)の略で、JSPからフロー制御のようなプログラム的な記述をカスタムタグとして抜き出し、Java標準仕様としてまとめられたライブラリの実装です。JSTLを使用することで、JSPのデザインに、より注力することができます。

WebSocket

WebSocketはコンピュータ用の通信規格であり、Webアプリケーションで双方向通信を行うための仕様です。従来の疑似双方向通信(Comet等)と異なり応答をサーバーにポーリングするなどの処理は行われません。
クライアントサーバ間でコネクションを生成すると、その後の通信を全てそのコネクション上で専用の軽量なプロトコルで実施します。そのため、Comet等に比べ通信ロスが減るなどのメリットがあります。

セッション振り分けバージョン管理

同じ名前のWARファイル、かつ同じ名前のコンテキストパスのWebアプリケーションを別バージョンとして同時に複数配備することができます。この機能を使用すると、クライアントはHTTPセッションを払い出したバージョンのアプリケーションと紐付けられ、HTTPセッションがタイムアウトなどにより無効になるまで同一バージョンのアプリケーションに振り分けます。HTTPセッションが無い新規リクエストや無効なHTTPセッションのリクエストはカレントバージョンに指定したバージョンのアプリケーションに振り分けます。この機能を使用することでアプリケーションを停止することなくバージョンアップをすることが可能です。

HTTP/2

Javaベースの内蔵WebサーバでHTTP/2が利用可能です。
HTTP/2はストリームという概念を導入することにより、一つのコネクションで複数のリクエストを同時に処理する事ができます。
HTTP/2の利点を考慮したWebアプリケーションを作成する事で、HTTP/1.1の場合よりもクライアントの待ち時間が短縮される事が期待できます。

外部Webサーバとの連携機能

WebコンテナはJavaベースのWebサーバを内蔵していますが、外部Webサーバ連携機能によって外部Webサーバも利用することができます。

外部Webサーバと連携することで以下のことができるようになります。

静的コンテンツを外部Webサーバで処理する事で、Webコンテナを動的コンテンツの処理に専念させる事ができます。

アプリケーションと無関係なリクエストを外部Webサーバで弾くことができます。
1つの外部Webサーバから複数のWebコンテナ(ドメイン)に負荷分散させることができます。