...

Web 環境における非同期通信 の価値 トピック

by user

on
Category: Documents
42

views

Report

Comments

Transcript

Web 環境における非同期通信 の価値 トピック
<MQ-WAS連携-第1章>
Web環境における非同期通信
の価値
2004/06/14
<MQ-WAS連携-第1章>
トピック
MQを使用するメリット
Webアプリケーションの特徴
Web環境での非同期通信
Web環境でのMQの使用
この章での目的
MQを使用するメリットとWebアプリケーションの特徴についておさらい
Webの環境でどのようにMQを使うことができ、その価値がどこにあるのかをまとめる
2
Copyright ISE Co,.Ltd
<MQ-WAS連携-第1章>
MQを使用するメリット
非同期処理
同期処理も非同期処理も両方こなせる
接続先の稼動状況に左右されないアプリケーション構築が可能
プログラム
システム_A
プログラム
システム_B
ホストなどの様々なアプリケーションを接続する
マルチプラットフォーム、マルチプロトコル対応
IBM、non-IBMプラットフォームで単一のインターフェースの提供
DB
3
Copyright ISE Co,.Ltd
<MQ-WAS連携-第1章>
MQを使用するメリット
<Note>
MQを使用することで得られるメリットについて2点振り返って見ます。
まず、非同期アプリケーションを構築できるという点です。
MQを使用した場合には、同期アプリケーションももちろん構築することは可能ですが、非同期アプリケーションの構築も行うこと
が出来ます。
アプリケーションが非同期に稼動することで、それぞれのシステムが同時に常に稼動していることが必須ではなくな
ります
開発時はそれぞれ別個に開発することができます
運用時には片方のアプリケーションのメンテナンスや構成変更などの影響をうけることがありません
様々なアプリケーションの統合が可能というのが2点目です
様々なプラットフォームやプロトコルのアプリケーションを接続することができます。
異なる言語で記述されたアプリケーションの接続も容易になります。
4
Copyright ISE Co,.Ltd
<MQ-WAS連携-第1章>
Webアプリケーションの特徴(1)
Webアプリケーションの特徴
Webブラウザをクライアントとして、HTTPプロトコルを使用した通信を行う
HTTPプロトコルはステートレスなプロトコル
„クライアントとWebサーバー間は1リクエスト/レスポンスごとに切断される
„Webサーバー側から、クライアントの処理がどこまで進んでいるかはわからない
„ブラウザのタイムアウトなどで接続が切断された場合に、クライアント側からサーバー側での処理がどうい
う状況であるのかわからない
Webサーバーを使った静的な、参照系中心のアプリケーションから、Webアプリケーション
サーバーによる様々な業務処理へ
1リクエストごとにクライアントとサーバーは切断
5
Copyright ISE Co,.Ltd
<MQ-WAS連携-第1章>
Webアプリケーションの特徴(1)
<Note>
Webアプリケーションの特徴としてクライアントにWebブラウザを使用するという点を考えてみます。
Webブラウザを使用することで、基本的に特殊なクライアントアプリケーションを個々の端末に導入することなくシス
テムを利用することができるようになります
HTTPプロトコルを使ってサーバーと通信することになりますが、HTTPプロトコルではクライアントとサーバーの接続
が1リクエスト・レスポンスで切れてしまいます。
Keep-Aliveを考慮しない場合です。
また、クライアントとサーバーの間でお互いに相手がどこまで処理が進んでいるかを把握することは出来ません。
クライアントからみて応答がかえらなくなった場合に、サーバー側でどこまで処理が進んでいるか、クライアントにはわかりません。
最初は情報の閲覧などといった静的なアプリケーションが中心だったWebアプリケーションですが、B2B、B2C、社
内システムといった様々なシステムでデータの更新を伴うアプリケーションとして利用されることが一般化しています。
6
Copyright ISE Co,.Ltd
<MQ-WAS連携-第1章>
Webアプリケーションの特徴(2)
Webアプリケーションをつかって様々な業務がWeb化されている
各種申請処理
チケット予約、商品の注文
帳票作成
・・・・・・・
このような更新が必要な処理では、ブラウザでの処理待ちを考慮する必要がある
HTTPのリクエストを送信し、様々な処理を行ったあと、ブラウザにその結果を送信する必要が
あるため
多くのリクエストが集中している場合に、処理に時間がかかりブラウザがタイムアウトしてしまうよ
うなことも発生する
レスポンスが帰ってこない場合、クライアントには処理が成功しているのか成功していないのか
わからない
?
処理が完了しているかしていないかは
クライアント側からはわからない
7
Copyright ISE Co,.Ltd
<MQ-WAS連携-第1章>
Webアプリケーションの特徴(2)
<Note>
Webアプリケーションを利用して様々な業務のWeb化などを進めるお客様が増えています。
いくつものページをまたがって行われる更新処理をまとめることによって、業務のWeb化を実現しているため、考慮
しなければならない問題が出てきます。
サーバーはレスポンスとしてクライアントのブラウザに何らかの送信を行います。
逆にレスポンスが返ってこない場合には、実際に処理が終了したのか、まだ処理中なのか、そもそも処理がされて
いないのか、といった状態を把握することさえ出来ません。
また処理に時間がかかっている場合には、ブラウザが処理待ちでタイムアウトしてしまうことも考えられます。
クライアント側からの二重送信なども発生する可能性があります。
システム的な問題(パフォーマンス、二重送信によるデータや処理の整合性)と同時に人間的な問題(処理が進
まないことへのいらいら)など、いろいろなところに影響が発生する可能性があります。
8
Copyright ISE Co,.Ltd
<MQ-WAS連携-第1章>
Web環境での非同期通信
レスポンスに時間のかかる処理を非同期化し、レスポンスタイムを上げる
複数の大きなSQLによる処理
ファイルの転送
処理のイメージ
リクエストを受け付け、キューにPutする
クライアントには処理を受け付けたことを通知する
処理が終わったタイミングで、メールなどで別途通知する
非同期化を行わない場合には様々な考慮点を解決しなくてはならない
処理そのものの重さ
同時に受け付けることのできるリクエスト数
ボタンの二度押しによる二重送信
App1
Appl2
処理を受け付けたことをクライアントに戻し、
9
処理そのものは別のアプリケーションで行う
Copyright ISE Co,.Ltd
<MQ-WAS連携-第1章>
Web環境での非同期通信
<Note>
処理の時間のかかる部分を非同期アプリケーションとして作成することで、レスポンスタイムや全体のスループット
を向上させることが見込めます。
リクエストを受け、処理をメッセージとしてキューにPutします。
クライアントには処理を受け付けたというレスポンスを返し、あとで照会可能なようにIDなどを伝えます。
必要に応じてメールで処理が完了したことをメールで伝えるなどして、処理結果を照会可能にします。
このように非同期のアプリケーションを利用すれば、クライアント側の待ち時間を短縮することが可能になり、同時
に時間のかかる処理は別のサブシステムに任せることができます。
逆に完了するまでに時間のかかる処理を同期で処理する場合には、同時に受け付けることのリクエスト数をある
程度に制限するなどの対策が必要になります。
10
Copyright ISE Co,.Ltd
<MQ-WAS連携-第1章>
(参考)WASキューイング・ネットワーク
それぞれの入り口で待ち行列が発生するように徐々に絞り込むよう調整した方がパ
フォーマンスが期待できる
一般に、WAS内で待たせるよりも、ネットワーク側で待たせる方がよい
負荷テストを行なった際に、それぞれのキューの最大数に達したときに、システムのCPU
が適正使用率になるようパラメータを決定する
クライアント
EJBクライアントとEJBが同一JVMで稼動する
場合、両者は同一スレッド上で稼動する。
つまり、WebコンテナーEJBコンテナー間で待
ち行列は発生しない
0
20
待ち行列:25
WebServer
待ち行列:125
最大クライア
ント数=75
75
待ち行列:40
Web
Container
EJB
Container
50
20
リモート
EJB
クライアント
最大接続プー
ル・サイズ=30
30
スレッド・プー
ル・サイズ=50
データソース
70
ORBスレッド・プール=20
DB
リモートからのEJBコールのみORBス
レッド・プールでキューイングされる
11
Copyright ISE Co,.Ltd
<MQ-WAS連携-第1章>
blank page
12
Copyright ISE Co,.Ltd
<MQ-WAS連携-第1章>
Web環境でのMQの使用
ホストアプリケーションなど、既存の資産を有効利用する
既存のアプリケーションに対してWebのインターフェースを提供する
ホストアプリケーションのWeb化には様々な方法がある
J2C
エンタープライズサービス
MQ
どの方法にも開発負荷や自由度、パフォーマンスなどの考慮すべきポイントはあるが、
MQの使用は選択肢の一つとして挙げられる
既存システム
WAS
既存のシステムはどのようなもの?
どのようにしてつなぐ?
13
Copyright ISE Co,.Ltd
<MQ-WAS連携-第1章>
Web環境でのMQの使用
<Note>
ホストアプリケーションなど、既存の資産をWeb化することにはシステムの使いやすさの向上や新規開発のコストを
削減するなどメリットがあります。
それを実現するためにはアプリケーションの構築手法としていくつかの選択肢が存在します。
J2C
Java 2 Connector
J2EEで規定されているEIS(Enterprise Information System)へアクセスする仕様
エンタープライズサービス
WSIF(Web Service Invocation Framework)
StudioADIEが開発環境として考えられる
MQ
IMSブリッジなど、ホストアプリケーションなどとの接続に多くの実績あり
JMSなどを使用してWAS側との接続が可能
どれを使用するかは既存のアプリケーションがどのようなアーキテクチャーで構築され、どのようなインターフェースを
持っているかにも左右されます。
新規開発部分のコスト
実績や信頼性
将来動向
14
Copyright ISE Co,.Ltd
<MQ-WAS連携-第1章>
(参考)J2C
J2EE Connector ArchitectureはJ2EE1.3の構成要素のひとつ
Java環境からEIS(Enterprise Information Systems)へアクセスするための標準仕様
EISの例
„CICS、IMS、SAP/R3
など
J2Cの構成要素
Resouce Adapter
„各EISに依存するモジュール
„アプリケーションコンポーネントやアプリケーションサーバーに対して、EISに依存しないインターフェースを提
供する
System Contract
„コネクションプールやトランザクション管理、セキュリティなど、アプリケーションサーバーが提供する共通す
る機能
CCI
„EISで共通のAPIとして提供される
Application
Server
EIS
Resource adapters
15
Copyright ISE Co,.Ltd
<MQ-WAS連携-第1章>
(参考)J2C
<Note>
J2Cはシステムレベルとプログラミング・インターフェースレベルの2つの統合を目的としています。
システムレベルの統合
Application Serverから各ベンダーが提供するEISに接続するためのインターフェースがEISベンダーの独自実装に
なっている場合、Application Server側やEIS側で独自に接続できるように仕様を取り決める必要があります。
共通で利用するようなコネクションプールなどの機能を各ベンダーごとの独自実装で作っていくのではなく、共通の
インターフェースにすることで、システムの統合が容易になるというメリットがあります。
プログラミング・インターフェースの統合
各EISにアクセスするロジックを記述する際、コネクションの取得やパラメータのセット、処理結果の取得といった共
通の処理があります。個々のベンダー独自のプログラミング・インターフェースしか提供されていない場合、プログラ
マーはそれら複数の手続きを修得する必要があり、非効率であるといえます。
また、開発ツールのベンダーもそれら個々のEISに対応したプログラムコードの生成機能を実装する必要があるこ
とになります。
そういった非効率を共通のプログラム・インターフェースを利用することで防ぐことができます。
16
Copyright ISE Co,.Ltd
<MQ-WAS連携-第1章>
(参考)エンタープライズサービス
WebSphere Studio Application Developer Integration Editionが提供するプログラミ
ングモデルのひとつ
サービス:JavaやEJB、J2EE Connector、Web Services などで実装される業務など
WSIF(Web Services Invocation Framework)による呼び出し
既存のCICSやIMSのアプリケーションをEJBやWebサービスでラッピングする
Studioのウィザードによるアプリケーション開発
ユーザー・コード
Session
Bean
EJB Proxy
WSIF
WSDL
クライアント
RMI/IIOP
WSIF
Resource
Adapter
WSDL
サービス
EIS
17
Copyright ISE Co,.Ltd
<MQ-WAS連携-第1章>
blank page
18
Copyright ISE Co,.Ltd
<MQ-WAS連携-第1章>
まとめ
MQのメリットとして非同期処理を実現することとホストアプリケーションなどとの連携とい
う2つが考えられます。
WebアプリケーションはステートレスなHTTPプロトコルを使用した同期処理という特徴が
あります。
そのため、クライアント、サーバーの両方で互いに相手の状況がわからないということが起
こりえます。
Web環境においてMQのような非同期処理を使用することで、同期アプリケーションでは
様々な考慮点が発生する時間のかかる処理などの実装が容易になるといえます。
既存のホストアプリケーションなどの資産をWeb化して再利用する際にも、MQを利用す
ることが一つの選択肢となります。
19
Copyright ISE Co,.Ltd
<MQ-WAS連携-第1章>
blank page
20
Copyright ISE Co,.Ltd
Fly UP