JP4305364B2 - Webサービス要求中継システム、Webサービス要求中継方法、中継サーバ、及びそのプログラム - Google Patents

Webサービス要求中継システム、Webサービス要求中継方法、中継サーバ、及びそのプログラム Download PDF

Info

Publication number
JP4305364B2
JP4305364B2 JP2004309716A JP2004309716A JP4305364B2 JP 4305364 B2 JP4305364 B2 JP 4305364B2 JP 2004309716 A JP2004309716 A JP 2004309716A JP 2004309716 A JP2004309716 A JP 2004309716A JP 4305364 B2 JP4305364 B2 JP 4305364B2
Authority
JP
Japan
Prior art keywords
web service
server
service request
web
relay
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004309716A
Other languages
English (en)
Other versions
JP2006120080A (ja
Inventor
繁 細野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2004309716A priority Critical patent/JP4305364B2/ja
Publication of JP2006120080A publication Critical patent/JP2006120080A/ja
Application granted granted Critical
Publication of JP4305364B2 publication Critical patent/JP4305364B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、複数のWebサービス計算機の連携による業務フローの実行に関し、特に、高負荷状態のWebサービス計算機へのサービス要求を、送信側計算機が要求の送信を控えることによってシステム全体の性能の劣化を防止するWebサービス要求中継システム、Webサービス要求中継方法、中継サーバ、及びそのプログラムに関する。
従来、企業のシステム統合は、業務の流れに沿って、経理システム、人事システム、財務会計システムなど、部門ごとに分散した業務アプリケーションやシステムを結合している。このシステム結合は、EAI(Enterprise Application Integration)と呼ばれる機能および製品によって実現している。EAIは、システム間のハブとして、データの連携をシステム間連携を一つの計算機上で集中管理する。このシステムでは、業務アプリケーションやシステムのAPI(Application Program Interface)を呼び出し、システム間連携は密結合なものになっているため、システム間の連携の動作を制御することが容易である。
このシステム結合は、個々のシステム固有のインタフェースに合わせたアダプタによって結合しているため、システム構築は非常に高価なものとなっている。そのため個々のシステムのAPIを標準化した共通インタフェースに揃える取り組みが始まっている。また、システム間のデータの受け渡しを、標準化した共通のメッセージング仕様にそって行う取り組みが始まっている。
この標準化されたメッセージの受け渡しによりシステム間の機能結合度を弱め、システム間を疎結合することが可能となる。このメッセージングの標準仕様には、XMLデータを封筒にしたSOAPメッセージとWebサービスのインタフェースが使用されてきている。このメッセージングによるシステム構築の利点は、インターネット、イントラネットで通信の標準的なプロトコルであるHTTPを使用できる点である。
このシステムは、個々のシステムは、ビジネスロジックとデータを保持し、疎結合となる。ビジネスロジックの上で隣接するサービス間の関係のみ判別可能であるため、従来のワークフローシステムのように、ビジネスロジックを集中管理することができない。このような疎結合されたWebサービス間を管理する仕組みが必要となっている。
従来のWebサービス管理システムは、複数の計算機上で提供される複数のWebサービスのサービス内容および稼動状況を管理対象としている。
Webサービスは、サービス定義情報、通信部、サービス実行部、サービス応答メッセージ送信部で構成する。また、サービス定義情報は、サービス内容と、サービス実行のための入力および出力情報を定義する。サービスが一つのサービスで完結せず、他のサービスを利用する場合は、サービス定義情報に他のWebサービス呼び出しを定義する。図13に例示するようにWebサービス管理システムは、このWebサービスを提供する計算機の位置情報と、そのサービス定義情報を保管するサービス定義情報保管装置で構成する。
このWebサービス管理システムは、サービス定義情報保管装置からWebサービスの定義情報を取得する。そのサービス合成計算部において、個々のWebサービスが隣接したWebサービスとの紐付けを繰り返すことにより複数のWebサービスからサービス全体の関係を紐付けし、サービス間のフローを構築する。このフローは、個々のサービスを利用した、特定業務の処理フローとみることができる。
これらのWebサービスは、各々が完結したサービスを提供するため、Webサービス間の機能的結合度が低く、サービスの独立性が高い。そのため、個々のWebサービスは、隣接したWebサービスの処理能力や負荷状況に関わらず、サービス要求を継続する。また、個々のWebサービスはサービス実行の計算複雑度が異なり、計算機自身のハードウェア能力も多様である。そのため、複数のWebサービスが連携して一つの処理を行うとき、全体のスループットはスループットの低いサービスに依存する。
このような環境においては、スループットの低いサービスへサービス要求が滞留しやすく負荷が増大するとサービス応答性能が急激に劣化するため、業務フロー全体としての処理性能も同時に急激に劣化する。この急激な性能劣化に対し、従来、負荷分散を行うロードバランサといった装置や、TCPなどネットワークの下位プロトコルでの通信フロー制御により回避してきた。
例えば、このような例として特許文献1には、以下の内容が記載されている。データ要求送信手段は、クライアントから送信されたデータを受付け、それをサーバ計算機に送信する中継を行う。データ要求送信手段は、単位時間あたりにクライアントから受信したデータ処理要求の回数を積算しそれを閾値と比較する閾値比較手段による比較結果を受取り、計測されたデータ処理要求の回数が閾値出力手段から出力された閾値を下回っていた場合、データ要求受信手段が受取ったデータ要求のパケットを、クライアントが要求するサーバ計算機へ転送し、サーバデータ要求計測手段で計測されたデータ処理要求の回数が閾値を上回っていた場合、データ要求受信手段は、受取ったデータ要求のパケットを保留バッファに保留する。
特開2003−224607(第6−第8ページ、図1)
前述した特許文献1では、サービスの内容やサービス提供先による制御など、Webサービスを実行する上位レイヤによる論理的な高負荷制御は行えない、という問題がある。
具体的には、本発明のように複数のWebサービス機能の連携による処理を行う環境下の場合、サービス要求者、サービス提供者がサービス内容によって入れ替わることがある。これまでのサービス要求者がサービス提供者になり、サービス提供者がサービス要求者に代わるということである。特許文献1では、クライアント側からのサーバへの要求数を閾値管理するものであって、両方向の閾値管理をする内容は有していないためこのような状況に対応できないという第1の問題がある。
また、一般的にWebサービスの機能の拡張に伴い、HTTPプロトコルによるサービス要求者、サービス提供者間での不特定機能について、その機能固有の制御情報の受け渡しが発生するが(例えば本発明における高負荷情報の交換等)、下位のプロトコルでは、サービス要求に関するメッセージか制御情報かを識別ができない、または追随しづらいという第2の問題がある。
本発明は、HTTPプロトコル通信を行うプロキシサーバに負荷制御手段を設けることで、Webサービス機能本体の改造を伴わずに以上の問題の解決を図ることを特徴とする、Webサービス要求中継システム、Webサービス要求中継方法、中継サーバ、及びそのプログラムを提案するものである。
本発明の第1のWebサービス要求中継システムは、Webサービス要求の送受信を行う中継手段と、前記中継手段とTCP/IP通信による接続をし前記中継手段に対するHTTPプロキシの設定を有するとともに、前記中継手段の受信したWebサービス要求を受け取りそれを処理して新たなWebサービス要求を生成し前記中継手段に送信するWebサービス実行手段と、をそれぞれ備えた第1と第2のサーバと、前記第1のサーバと、前記第2のサーバと、を接続するネットワークと、を含むWebサービス要求中継システムであって、 前記第1のサーバの前記中継手段は、前記第1のサーバの前記Webサービス実行手段による前記第2のサーバを宛先とする新たなWebサービス要求を受信すると、前記新たなサービス要求のHTTPヘッダから前記第2のサーバのアドレスを認識し前記第2のサーバの前記中継手段からの前記第2のサーバの高負荷通知の有無を確認し、高負荷通知の有る場合前記新たなWebサービス要求を保留し、高負荷通知の無い場合HTTPヘッダから当該アドレスを削除して前記第2のサーバへ送信し、 前記第2のサーバの前記中継手段は、前記新たなWebサービス要求を受信すると、前記第2のサーバのWebサービス実行手段の高負荷状態を判定して高負荷の場合、前記第1のサーバの前記中継手段に高負荷通知を送信することを特徴とする。
本発明の第2のWebサービス要求中継システムは、前記第1のWebサービス要求中継システムに於いて、前記第2のサーバの前記中継手段は、前記第2のサーバの前記Webサービス実行手段による単位時間におけるWebサービス要求処理の上限数を定義した閾値と、前記第1のサーバから直近の単位時間に受信した新たなWebサービス要求数を計数した値とを比較し、前記計数した値が前記閾値を超えると、前記第1のサーバの前記中継手段に高負荷通知をHTTPプロトコルによって送信し、前記第1のサーバの前記中継手段はそれを受信すると前記第2のサーバの前記中継手段にレスポンスメッセージを送信することを特徴とする。
本発明の第3のWebサービス要求中継システムは、前記第2のWebサービス要求中継システムに於いて、前記第2のサーバの前記中継手段は、Webサービス要求を受信する都度、又は前記単位時間に基づき設定されたインターバルタイマからの割り込みの発生する都度、前記第2のサーバの高負荷状態を判定し、高負荷状態から高負荷でない状態に遷移すると、高負荷通知を前記第1のサーバ送信している場合、高負荷の解除通知をHTTPプロトコルによって前記第1のサーバに送信し、前記第1のサーバの前記中継手段はそれを受信すると前記第2のサーバの前記中継手段にレスポンスメッセージを送信することを特徴とする。
本発明の第4のWebサービス要求中継システムは、前記第3のWebサービス要求中継システムに於いて、前記第1のサーバの前記中継手段は、前記第2のサーバから高負荷の解除通知を受信すると、前記第2のサーバ向けの送信を保留された新たなWebサービス要求があればそれを取り出しHTTPヘッダから第2のサーバのアドレスを削除して前記第2のサーバへ送信することを特徴とする。
本発明の第5のWebサービス要求中継システムは、Webサービス要求の送受信を行う中継手段と、前記中継手段とTCP/IP通信による接続をし前記中継手段に対するHTTPプロキシの設定を有するとともに、前記中継手段の受信したWebサービス要求を受け取りそれを処理して新たなWebサービス要求を生成し前記中継手段に送信するWebサービス実行手段と、をそれぞれ備えた第1と第2のサーバと、前記第1のサーバと、前記第2のサーバと、を接続するネットワークと、を含み、前記第1のサーバは前記第2のサーバからのWebサービス要求を受信して実行し、前記第2のサーバは前記第1のサーバからのWebサービス要求を受信して実行するWebサービス要求中継システムであって、 前記第1のサーバの前記中継手段は、前記第1のサーバの前記Webサービス実行手段による前記第2のサーバを宛先とする新たなWebサービス要求を受信すると、前記新たなサービス要求のHTTPヘッダから前記第2のサーバのアドレスを認識し前記第2のサーバの前記中継手段からの前記第2のサーバの高負荷通知の有無を確認し、高負荷通知の有る場合前記新たなWebサービス要求を保留し、高負荷通知の無い場合HTTPヘッダから当該アドレスを削除して前記第2のサーバへ送信し、 前記第2のサーバの前記中継手段は、前記新たなWebサービス要求を受信すると、前記第2のサーバのWebサービス実行手段の高負荷状態を判定して高負荷の場合、前記第1のサーバの前記中継手段に高負荷通知を送信し、 前記第2のサーバの前記中継手段は、前記第2のサーバの前記Webサービス実行手段による前記第1のサーバを宛先とする新たなWebサービス要求を受信すると、前記新たなサービス要求のHTTPヘッダから前記第1のサーバのアドレスを認識し前記第1のサーバの前記中継手段からの前記第1のサーバの高負荷通知の有無を確認し、高負荷通知の有る場合前記新たなWebサービス要求を保留し、高負荷通知の無い場合HTTPヘッダから当該アドレスを削除して前記第1のサーバへ送信し、 前記第1のサーバの前記中継手段は、前記新たなWebサービス要求を受信すると、前記第1のサーバのWebサービス実行手段の高負荷状態を判定して高負荷の場合、前記第2のサーバの前記中継手段に高負荷通知を送信することを特徴とする。
本発明の第6のWebサービス要求中継システムは、Webサービス要求の送受信を行う中継手段と、前記中継手段とTCP/IP通信による接続をし前記中継手段に対するHTTPプロキシの設定を有するとともに、前記中継手段の受信したWebサービス要求を受け取りそれを処理して新たなWebサービス要求を生成し前記中継手段に送信するWebサービス実行手段と、をそれぞれ備えた第1と第2のサーバと、前記中継手段を備えず受信したWebサービス要求を処理して新たなWebサービス要求を生成するWebサービス実行手段を備えた第3のサーバと、前記第1のサーバと、前記第2のサーバと、前記第3のサーバと、を接続するネットワークと、を含み、前記第1のサーバ又は前記第3のサーバから前記第2のサーバへ前記新たなWebサービス要求を送信するWebサービス要求中継システムであって、 前記第1のサーバの前記中継手段は、前記第1のサーバの前記Webサービス実行手段による新たなWebサービス要求を受信すると、HTTPヘッダから前記第2のサーバのアドレスを認識し前記第2のサーバの前記中継手段からの前記第2のサーバの高負荷通知の有無を確認し、高負荷通知の有る場合前記新たなWebサービス要求を保留し、高負荷通知の無い場合HTTPヘッダから当該アドレスを削除して前記第2のサーバへ送信し、 前記第2のサーバの前記中継手段は、前記新たなWebサービス要求を受信すると、前記第2のサーバのWebサービス実行手段の高負荷状態を判定して高負荷の場合、前記第1のサーバの前記中継手段に高負荷通知を送信することを特徴とする。
本発明の第7のWebサービス要求中継システムは、前記第6のWebサービス要求中継システムに於いて、前記第2のサーバの前記中継手段は、前記第3のサーバへのHTTPプロトコルによる高負荷を通知するリクエストメッセージの送信後、前記第3のサーバからのレスポンスメッセージの受信有無を確認し、レスポンスメッセージを受信しない前記第3のサーバは前記中継手段を有さないと認識し、以降発生する高負荷解除通知を前記第3のサーバには送信しないことを特徴とする。
本発明の第8のWebサービス要求中継システムは、前記第7のWebサービス要求中継システムに於いて、前記第2のサーバの前記中継手段は、前記第3のサーバが中継手段を有していないことを認識すると、前記第2のサーバが高負荷の場合において、前記第3のサーバから受信した新たなWebサービス要求に対する処理結果の送信を前記第3のサーバへ行う場合、予め設定された時間遅延して送信することを特徴とする。
本発明の第9のWebサービス要求中継システムは、Webサービス要求を送信する処理と受信したWebサービス要求を実行する処理を備えた第1と第2のサーバと、Webサービス要求を中継する中継サーバと、前記各サーバを接続するネットワークと、を含むWebサービス要求中継システムにおいて、 前記第1のサーバは、前記中継サーバに対するHTTPプロキシを使用する設定を有し、Webサービス要求の送信時、HTTPヘッダに前記第2のサーバのアドレスを設定して送信を行い、 前記中継サーバは、前記第2のサーバの単位時間に処理可能なWebサービス要求メッセージ数と前記単位時間長の設定情報を有し、前記第1のサーバから受信したWebサービス要求のHTTPヘッダから取り出した前記第2のサーバのアドレスを元に前記第2のサーバ宛の直近の単位時間におけるWebサービス要求数を計数し、計数したWebサービス要求数を前記閾値と比較し、前記閾値以下の場合は前記Webサービス要求を送信し、前記閾値を越える場合は前記第2のサーバは高負荷状態と判断して前記Webサービス要求を保留することを特徴とする。
本発明の第10のWebサービス要求中継システムは、前記第9のWebサービス要求中継システムに於いて、前記中継サーバは、受信したWebサービス要求のHTTPヘッダから取り出した前記第2のサーバのアドレスを元にアドレス別に前記保留したWebサービス要求を時系列に従って記憶することを特徴とする。
本発明の第11のWebサービス要求中継システムは、前記第9のWebサービス要求中継システムに於いて、前記中継サーバは、Webサービス要求を受信する都度、又は前記単位時間に基づき設定されたインターバルタイマからの割り込みの発生する都度、前記第2のサーバの高負荷状態を判定し、高負荷状態ではない場合、保留したWebサービス要求の有無を確認し、保留したWebサービス要求があると保留されたWebサービス要求のHTTPヘッダから前記第2のサーバのアドレスを取り外して前記第2のサーバへ送信することを特徴とする。
本発明の第12のWebサービス要求中継システムは、前記第9のWebサービス要求中継システムに於いて、前記中継サーバは、前記第1のサーバのプロキシサーバとして設定され、前記第2のサーバへの前記Webサービス要求の送信数の抑制による高負荷制御手段を有することを特徴とする。
本発明の第13のWebサービス要求中継システムは、前記第9のWebサービス要求中継システムに於いて、前記第2のサーバが前記第1のサーバにWebサービス要求を送信し前記第1のサーバはそれを受信して実行するに際し、前記中継サーバは、前記第2のサーバのプロキシサーバと設定され、前記第1のサーバの単位時間に処理可能なWebサービス要求メッセージ数と前記単位時間長の設定情報を備えることにより、前記中継サーバは、前記第2のサーバへの前記Webサービス要求の送信数の制御による高負荷制御手段をさらに有することを特徴とする。
本発明の第1のWebサービス要求中継方法は、Webサービス要求を送信する処理と受信したWebサービス要求を実行する処理を備えた第1と第2のサーバと、Webサービス要求を中継する中継サーバと、前記各サーバを接続するネットワークを含むWebサービスシステムにおけるWebサービス要求中継方法であって、 前記第1のサーバは、前記中継サーバに対するHTTPプロキシを使用する設定を有し、Webサービス要求の送信時、HTTPヘッダに前記第2のサーバのアドレスを設定して前記中継サーバに送信を行うステップと、 前記中継サーバは、前記第2のサーバの単位時間に処理可能なWebサービス要求メッセージ数と前記単位時間長の設定情報を有し、受信したWebサービス要求のHTTPヘッダから取り出した前記第2のサーバのアドレスを元に前記第2のサーバ宛の直近の単位時間におけるWebサービス要求数を計数するステップと、 前記中継サーバは、計数したWebサービス要求数を前記閾値と比較し、前記閾値以下の場合は前記Webサービス要求を送信するステップと、 前記中継サーバは、前記閾値を越える場合は前記Webサービス要求を保留するステップと、 前記中継サーバは、Webサービス要求を受信する都度、又は前記単位時間に基づき設定されたインターバルタイマからの割り込みの発生する都度、前記第2のサーバの高負荷状態を判定し、高負荷状態から高負荷でない状態への遷移を確認すると、保留したWebサービス要求の有無を確認し、保留したWebサービス要求があると保留されたWebサービス要求のHTTPヘッダから前記第2のサーバのアドレスを取り外して前記第2のサーバへ送信するステップと、 を備えることを特徴とする。
本発明の第2のWebサービス要求中継方法は、Webサービス要求の送受信を行う中継手段と、前記中継手段とTCP/IP通信による接続をし前記中継手段に対するHTTPプロキシの設定を有するとともに、前記中継手段の受信したWebサービス要求を受け取りそれを処理して新たなWebサービス要求を生成し前記中継手段に送信するWebサービス実行手段と、をそれぞれ備えた第1と第2のサーバと、前記第1のサーバと、前記第2のサーバと、を接続するネットワークと、を含むWebサービスシステムにおけるWebサービス要求中継方法であって、 前記第1のサーバの前記中継手段は、受信したWebサービス要求を第1のサーバの前記Webサービス実行手段にTCP/IP通信で送信する第1のステップと、 前記第1のサーバの前記Webサービス実行手段は、受信したWebサービス要求を処理して新たなWebサービス要求を生成し、HTTPヘッダの宛先に前記第2のサーバのアドレスを設定して前記第1のサーバの前記中継手段に送信するステップと、 前記第1のサーバの前記中継手段は、前記新たなWebサービス要求を受信するとHTTPヘッダの宛先の前記第2のサーバのアドレスを元に前記第2のサーバが高負荷か否かを判定するステップと、 前記第1のサーバの前記中継手段は、前記第2のサーバが高負荷である場合、前記新たなWebサービス要求を前記第2のサーバのアドレスを元に保留するステップと、 前記第1のサーバの前記中継手段は、前記第2のサーバが高負荷でない場合、前記新たなWebサービスのHTTPヘッダから第2のサーバのアドレスを削除してこれを前記第2のサーバへ送信するステップと、 前記第2のサーバの前記中継手段は、前記新たなWebサービス要求を受信すると、前記第2のサーバの前記Webサービス実行手段の高負荷状態を判定するステップと、 前記第2のサーバの前記中継手段は、前記Webサービス実行手段が高負荷であると判定すると、前記第1のサーバの前記中継手段に高負荷の通知をHTTPプロトコルによって送信するステップと、 前記第2のサーバの前記中継手段は、高負荷状態の判定の結果、高負荷状態から高負荷でない状態への遷移を確認すると、前記第1のサーバの前記中継手段に高負荷の解除の通知をHTTPプロトコルによって送信するステップと、 前記第1のサーバの前記中継手段は、前記第2のサーバから高負荷通知を受信すると、前記第2のサーバは高負荷状態に有るとして記憶し、高負荷の解除の通知を受信すると、前記第2のサーバのアドレスを元に保留した前記新たなWebサービス要求の有無を確認し、有る場合、前記新たなWebサービス要求のHTTPヘッダから前記第2のサーバのアドレスを削除して前記第2のサーバに送信するステップと、 を備えることを特徴とする。
本発明の中継サーバは、HTTPプロキシを使用する設定を中継サーバに設定した第1のサーバから、HTTPヘッダにWebサービス要求を実行する第2のサーバのアドレスが設定されたWebサービス要求を受信する手段と、 前記第2のサーバの単位時間に処理可能なWebサービス要求メッセージ数と前記単位時間長の設定情報を有し、受信したWebサービス要求のHTTPヘッダから取り出した前記第2のサーバのアドレスを元に前記第2のサーバ宛の直近の単位時間におけるWebサービス要求数を計数する手段と、 計数したWebサービス要求数を前記閾値と比較し、前記閾値以下の場合は前記Webサービス要求を前記第2のWebサーバに送信する手段と、 前記閾値を越える場合は前記Webサービス要求を保留する手段と、 Webサービス要求を受信する都度、又は前記単位時間に基づき設定されたインターバルタイマからの割り込みの発生する都度、前記第2のサーバの高負荷状態を判定し、高負荷状態から高負荷でない状態への遷移を確認すると、保留したWebサービス要求の有無を確認し、保留したWebサービス要求があると保留されたWebサービス要求のHTTPヘッダから前記第2のサーバのアドレスを取り外して前記第2のサーバへ送信する手段と、を備えることを特徴とする。
本発明のプログラムは、コンピュータに、 HTTPプロキシを使用する設定を中継サーバに設定した第1のサーバから、HTTPヘッダにWebサービス要求を実行する第2のサーバのアドレスが設定されたWebサービス要求を受信するステップと、 前記第2のサーバの単位時間に処理可能なWebサービス要求メッセージ数と前記単位時間長の設定情報を有し、受信したWebサービス要求のHTTPヘッダから取り出した前記第2のサーバのアドレスを元に前記第2のサーバ宛の直近の単位時間におけるWebサービス要求数を計数するステップと、 計数したWebサービス要求数を前記閾値と比較し、前記閾値以下の場合は前記Webサービス要求を前記第2のWebサーバに送信するステップと、 前記閾値を越える場合は前記Webサービス要求を保留するステップと、 Webサービス要求を受信する都度、又は前記単位時間に基づき設定されたインターバルタイマからの割り込みの発生する都度、前記第2のサーバの高負荷状態を判定し、高負荷状態から高負荷でない状態への遷移を確認すると、保留したWebサービス要求の有無を確認し、保留したWebサービス要求があると保留されたWebサービス要求のHTTPヘッダから前記第2のサーバのアドレスを取り外して前記第2のサーバへ送信するステップと、を実行させることを特徴とする。
第1の効果は、複数のWebサービスの負荷を均一に保ち、局所的なサービス処理実行の極端な性能劣化がサービス全体の隘路(ボトルネック)になることを防ぐことにある。
そのため、特定のサービスへの負荷が一定量を超えると処理性能が急激に劣化するサービスに対し、サービス要求側が自主的にその要求を抑制する。具体的には、その回避をする通信遅延手段を、高負荷となったサービス要求を受信する計算機ではなく、サービス要求を送信する計算機で行うことにより、高負荷となった計算機ではサービス間通信制御装置の導入による処理負荷が増えないようにできることである。
次に、本発明を実施するための最良の形態について図面を参照して詳細に説明する。
本発明の第1の実施例は、図1を参照すると、複数のWebサーバ10と、1台のサービス管理装置20と、Webサーバ10にサービスを依頼するパーソナルコンピュータ等のクライアント装置30と、Webサーバ10とサービス管理装置20とクライアント装置30とを接続するインターネットを含むネットワーク40と、から構成される。Webサーバ10とサービス管理装置20とクライアント30は、何れも計算機である。
本発明では、Webサービス管理システムが、複数のWebサーバ10の局所的な高負荷状態の発生を抑制し、また、局所的なサービスの停止が全体のシステムの停止とならないように制御する。そのために、Webサービス管理システムに中継装置11を導入し、Webサーバ10間の通信フローを制御する。
Webサービス管理システムは、Webサーバ10で動作する中継装置11と、サービス管理装置20と、から構成され、複数のWebサーバ10の提供する各サービス内容および稼動状況を管理する。
サービス管理装置20は、サービス合成計算部21と、Webサーバ10の負荷情報を記憶する運用情報記憶部22と、このサービスを提供するWebサーバ10の位置情報とそのサービス定義情報を保管するサービス定義情報保管装置23と、から構成される。運用情報記憶部22とサービス定義情報保管装置23は、磁気ディスク装置等からなるサービス管理装置20に接続された記憶装置である。
Webサーバ10は、各Webサーバ10の自身が担当する、例えば受注システム等の業務について、その業務名、業務を一意に識別する業務識別子、業務の依頼元Webサービス名、業務の依頼先Webサービス名、応答/転送種別等を含む情報を記憶する。1つの業務は、1以上のWebサーバ10の連携によって実行されるが、各Webサーバ10は、その業務フロー全体における自分の担当する部分についての情報を記憶する。
サービス管理装置20は、各Webサーバ10の担当するそれぞれの業務について、Webサーバ10から予め業務フローにおける各Webサーバ10の担当する情報を受信している。サービス管理装置20は、受信した業務フローの担当部分情報をサービス定義情報保管装置23に業務別、送信したWebサーバ10別に記憶する。
例えば、1つの業務フローとして受注システムを捉えた場合、受注システムは、オーダー管理(身元確認、内容妥当性確認)、在庫管理(在庫確認、発注分の減算)、配送管理(配送伝票作成、配送車分配)など、幾つかの機能(=Webサービス)から構成されている。この場合、オーダー管理 → 在庫管理 → 配送管理 といったWebサーバ10間のメッセージの流れが受注システムの中で予め決められ、各Webサーバ10内で次のWebサーバ10へ転送する処理が記述されるということになる。
サービス管理装置20は、関連するWebサーバ10から業務フロー情報の収集を終えると、収集されたWebサーバ10の定義情報をサービス定義情報保管装置23から読み込む。サービス管理装置20のサービス合成計算部21において、個々のWebサーバ10がサービス的に隣接したWebサーバ10と連携して1つのサービスを実行する場合、その紐付けを繰り返すことにより個々のWebサーバ10の担当する部分情報からサービス全体の関係を紐付けし、Webサーバ10全体の間の業務フローを構築する。このフローは、個々のWebサーバ10を利用した、特定業務の処理フローとみることができる。
Webサーバ10は、中継装置11と,Webサービス12と、サービス定義情報15と、から構成される。Webサービス12は、通信部13と、サービス実行部14と、から構成される。また、サービス定義情報15は、前述したように、サービス内容と、サービス実行のための入力および出力情報を定義する。
サービス定義情報15は、業務サービスがあるWebサービス12によって完結する応答処理か、業務サービスが一つのWebサーバ10の処理で完結せず、他のWebサーバ10を引き続き利用する転送処理かの区別や、転送処理の場合は、他のWebサーバ10の呼び出しとその引数とを定義する。
中継装置11は、Webサービス12と同じ計算機上に実装されていて、メッセージ受信部110と、メッセージ送信部111と、サービス情報解析部112と、メッセージ保管部113と、送信先保管部114と、サービス情報記憶部115と、から構成され、ポート番号の定義されたプロキシサーバとして動作するアプリケーションプログラムである。
Webサーバ10の機能は、計算機上で動作する複数のソフトウェアプログラムによって実行される。
Webサービスの要求元の中継装置11は、Webサービス要求先のWebサーバ10の中継装置11から当該Webサーバ10の負荷情報を受信する。負荷情報には単位時間あたりに処理可能なWebサービス要求メッセージ数の上限を超えた高負荷状態である内容を含む。この負荷情報によってWebサービス要求先が高負荷の通知を受けたWebサービス要求元の中継装置11は、高負荷のWebサーバ10への送信を抑制する。このWebサーバ10間の通信フローの制御により、複数のWebサーバ10の処理を平準化した全体システムの運用が可能となる。
Webサービス要求元の中継装置11は、高負荷となったWebサービス要求先のWebサーバ10へのWebサービス要求メッセージについて、その分解、保管、再構築および送信を行うことによって、送信遅延を行い通信フローを制御する。
中継装置11は、あるWebサーバ10から別のWebサーバ10へのHTTP(Hyper Text Transfer Protocol)リクエストを中継する。このとき、HTTPプロトコルの通信はTCP(Transmission Control Protocol)接続の上に成り立つため、通常のHTTPリクエストのヘッダ情報には、宛先の計算機のアドレス情報は含まれない。しかし、HTTPを利用したプログラムに標準的に用意されたHTTPプロキシを使用する設定をWebサービス12の通信部13に対して行うと、Webサービス12から同じ計算機上の中継装置11へ渡るメッセージのHTTPリクエストヘッダに宛先情報を埋めこむことができる。中継装置11はこの宛先情報を参照し宛先のWebサーバ10を識別して、宛先のWebサーバ10が高負荷か否かを判断することが可能となる。
以上を整理すると図12のようになる。
図12では、サーバ(B)からサーバ(A)へWebサービス要求メッセージを送信するとする。
中継装置導入後では、サーバ(B)のWebサービスから同じサーバ(B)の中継装置に送信されるメッセージのプロトコルヘッダにはサーバ(A)のアドレスが
HTTPヘッダ:POST http://abc/...のように記載される。これにより中継装置は宛先のサーバのアドレスを知ることができる。サーバ(B)の中継装置は、HTTPヘッダのhttp://abc/...を元にサーバ(A)のabcにTCP接続し通常のPOSTを送信する。
これにより、中継装置11は、Webサービス要求先のWebサーバ10から高負荷の通知を受信していて要求先が高負荷の場合、Webサービス要求先についての送信メッセージの分解、一時蓄積、高負荷解除時の分解したメッセージの再構築と送信が可能となる。尚、既存のWebサービスと本発明の内容との整合性を図るために、中継装置11のポート番号は、既存のWebサービスに定義されたポート番号を使用し、Webサービス12の既存のポート番号を別の番号に変更する。同じWebサーバ10上の中継装置11とWebサービス12間のメッセージの送受信は、それぞれに外付けで定義されたポート番号を使用するTCP/IPの通信によって実行される。
以上のように実装することで、中継装置11は、Webサービス12に外付けする機構であるため、既存のWebサービスおよびWebサービス間の通信プロトコルを透過的に使用することを可能とする。Webサービス12は、既存のWebサービス12の機能に手を加えて改変することなしに、サービス間通信制御装置の導入後も透過的にサービスを提供できるという効果を有する。
中継装置11は、このHTTPリクエストのヘッダの宛先の計算機のアドレスの解析結果に従ってWebサービス要求メッセージを分解し、Webサーバ10の宛先別にヘッダ情報を記憶する送信先保管部114と、それにリンクされたメッセージの本体を記憶するメッセージ保管部113と、を持つことで複数のWebサービス要求メッセージをキューイングして宛先別に蓄積する。
宛先の計算機の高負荷が解除すると、中継装置11は、一時蓄積した送信先保管部114とメッセージ保管部113の情報から宛先の計算機のIPアドレス、URL、メッセージ本体を取り出し、再度、完全なHTTPリクエストを組み立てることが可能となり、通信を再開することができる。これにより中継装置11は高負荷の中継装置11へのサービス要求を、一定のサービス要求数を越えないように制御することができる。
また、Webサーバ10全体を管理するサービス管理装置20は、中継装置11の保有する負荷情報を取得し、記録することで、特定の時点の負荷状況を精緻に管理することができる。
尚、クライアント装置30は、ブラウザからサービス管理装置20にアクセスして事前に各Webサーバ10の負荷状態をチェックし、高負荷状態でない場合に、Webサービス要求メッセージを送信するようにできる。
次に、本発明を実施するための最良の形態の動作について図面を参照して説明する。
複数のWebサービスから構成される場合について図7と、図2のフローチャートを参照して説明する。この場合、メッセージは複数のサービス間で処理されるため、サービス間の応答は、断りの無い場合、非同期としている。
最初にWebサーバ10のサービス提供側の設定について説明する。
Webサービス提供者は、中継装置11に、Webサーバ10のサービス実行部14が単位時間あたりに処理可能なサービス要求数の上限値を第1の閾値として、また第1の閾値を超えるサービス要求数を受信後、ある値以下にサービス要求数が低下すると高負荷状態から通常状態に復帰する第2の閾値とを設定する。単位時間の時間長は、秒、分等の単位を使用して設定する。以上から第1の閾値>第2の閾値の関係がある。
さらに、Webサービス提供者は、サービス管理装置20のIPアドレスとポート番号の設定も行う(ステップS1)。設定操作には、Webサーバ10に接続された図示しないキーボード、ディスプレイ等の入力装置、表示装置を使用する。このように設定された閾値と単位時間長等の情報は、Webサーバ10に接続された磁気ディスク装置等のサービス情報記憶部115に記憶される。
また、Webサービス提供者は、当該Webサーバ10が提供するサービスの内容の登録を磁気ディスク装置等のサービス定義情報15に対して行う(ステップS2)。
さらに、Webサービス提供者は、入力装置、表示装置を使用してWebサービス12に対してHTTPプロキシの利用設定を行い、IPアドレスおよびポート番号をその実行環境に設定する(ステップS3)。
これにより、HTTPプロトコルによるWebサーバ10が送受信するメッセージは、全て中継装置11を経由することになる。尚、中継装置11の持つポート番号は、Webサービス12のこれまで使用していたポート番号を設定し、Webサービス12には別のポート番号を割り当てる。
中継装置11は、サービス定義情報15から自Webサービス12の担当するサービス内容を取り込み、これをHTTPメッセージとしてサービス管理装置20のIPアドレスとポート番号を使用してサービス管理装置20に送信する(ステップS4)。
サービス管理装置20では、受信したサービス定義情報15をサービス定義情報保管装置23に記憶する。サービス管理装置20のサービス合成計算部21は、関連するWebサーバ10からサービス定義情報15を受信すると、各業務ごとに各Webサーバ10から提供を受けたサービス定義情報15を合成し、複数のWebサーバ10にまたがる全体の業務フローを作成し、サービス定義情報保管装置23に記憶する。
全体の業務フローは管理者等の必要に応じてサービス管理装置20の表示装置に表示されるので、内容を参照する事ができる。
以上のような設定が行われた後のサービス提供側の動作を図7も併せて参照して説明する。
図7を簡単に説明すると、Webサーバ10Cは、中継装置11Cを有して、中継装置11Aを有するWebサーバ10AにWebサービス要求を送信する。中継装置11を有さないWebサーバ10Dも、Webサービス要求をWebサーバ10Aに送信する。Webサーバ10Aは、Webサーバ10Cからのサービス要求を受付け、自分が担当するサービス実行を終了すると、引き続き次のサービス実行要求を中継装置11Bを備えるWebサーバ10Bに行う。Webサーバ10Bは、Webサーバ10Aからのサービス実行要求を受付け、自身に定義されたサービス処理を実行する。
以降、図3のフローチャートを参照して説明する。
Webサーバ10Aの中継装置11Aは、立ち上げが行われるとサービス情報記憶部115から先に設定された第1の閾値と第2の閾値と単位時間等の設定情報を取り出し中継装置11A自身の主記憶メモリに記憶する(ステップS5)。
中継装置11Aは、サービス管理装置20にHTTPメッセージによって、Webサーバ10によるサービスの開始をイベント種別とし、第1と第2の閾値と単位時間とを含む情報を送信する(ステップS6)。
サービス管理装置20は、当該情報を受信すると、運用情報記憶部22のWebサーバ10Aに関する記憶部に受信した時刻とともに書き込む(ステップS7)。
中継装置11Aのサービス情報解析部112は、単位時間あたりに受信するサービス要求メッセージ数をカウントするための主記憶メモリの受信メッセージ記憶域と高負荷判定フラグを0クリアする(ステップS8)。
受信メッセージ記憶域には、サービス要求メッセージを受信した時分秒等による時刻とそのメッセージ送信元のIPアドレスを1エントリの情報として、サービス要求メッセージを受信の都度、その先頭位置から受信時刻順に逐次記憶されていく。受信メッセージ記憶域の最終位置まで記憶が行われると、受信メッセージ記憶域の先頭位置に復帰して循環式に記憶が行われる。受信メッセージ記憶域は、単位時間に受信が予想される最大数のメッセージについての全エントリを記憶できるサイズを有するものとする。
Webサーバ10Cは、Webサービス要求メッセージをWebサーバ10Aに適時送信する(ステップS9)。また、中継装置機能を持たないWebサーバ10DもWebサービス要求メッセージをWebサーバ10Aに適時送信する(ステップS9)。
中継装置11Aのメッセージ受信部110は、Webサーバ10CやWebサーバ10Dからサービス要求メッセージを受信する(ステップS10)。メッセージ受信部110は、受信したサービス要求メッセージをメッセージ送信部111に渡す。メッセージ送信部111は、渡されたメッセージをWebサービス12にWebサービス12のポート番号を使用してTCP/IPにより送信する(ステップS11)。メッセージ送信部111は、このWebサービス12にメッセージを送信した時刻を最終送信時刻として記憶する。
同時に、中継装置11Aのメッセージ受信部110は、Webサーバ10Cからメッセージを受信すると、受信した時刻を取得し、TCP/IP機能から取り出したメッセージの送信元のIPアドレスとともにエントリを生成し、受信メッセージ記憶域における直前に受信したメッセージが記憶されている位置の次の位置に当該エントリを記憶する(ステップS12)。
次に、現在時刻から単位時間遡った時刻と、現在時刻までの間に受信したメッセージ数を受信メッセージ記憶域に記憶された各エントリの時刻を参照して計数し、単位時間あたりの受信メッセージ数を求める(ステップS13)。
次に、現在の状態が通常状態か、高負荷状態状態かを高負荷判定フラグによって判別する(ステップS14)。高負荷状態であれば、単位時間あたりの受信メッセージ数を第2の閾値と比較する(ステップS15)。比較の結果第2の閾値以下の場合は、高負荷状態から通常状態に復帰したと判断し、(ステップS40)にジャンプする。第2の閾値を超える場合は、まだ高負荷状態が継続していると判断して(ステップS31)にジャンプする。
(ステップS14)の判定の結果、通常状態であれば計数した値を第1の閾値と比較する(ステップS16)。この比較の結果、計数した値が第1の閾値以下の場合は、通常状態としてメッセージの受信待ち状態に入る。
計数した値が第1の閾値を超える場合は、高負荷判定フラグをオンとして(ステップS17)、(ステップS31)にジャンプする。
以降、図4のフローチャートを参照して説明する。
(ステップS11)において中継装置11Aから送信されたメッセージは、Webサービス12Aによって受信される。Webサービス12Aのサービス実行部14は、通信部13から受け取ったサービス要求メッセージの本体中の、例えば先頭等に記載された業務識別子を取り出し、予めサービス定義情報15から取り出した業務識別子と比較する。
図8の(a)にこのサービス定義情報15の定義情報を例示するが、これによると、業務識別子と引数の数、各引数のデータ形式の定義情報等から構成されている。サービス実行部14は比較の結果、一致した業務識別子をもつサービス定義情報15から引数の数、各引数のデータ形式情報を取り出しこれをもとに、Webサービス要求メッセージの本体情報を解析してこのWebサービス要求メッセージについての処理を実行する(ステップS18)。
サービス実行部14は、サービス処理中に図8の(b)に例示する応答または転送時のサービス定義情報15からサービスメッセージ中の業務識別子と一致するものを検索する。転送の場合のサービス定義情報15は、転送/応答種別(この場合は転送)、転送先のWebサービス識別子、引数の数、各引数のデータ形式から構成されている。応答の場合のサービス定義情報は、転送/応答種別(この場合は応答)、正常/異常種別、応答値の数、各応答値のデータ形式から構成されている。
サービス実行部14は、業務識別子が一致する定義情報を検索し、検索されたサービス定義情報15が規定する形式に従って結果を生成する(ステップS19)。サービス実行部14は、生成した結果を通信部13に渡す。通信部13は、検索されたサービス定義情報15に従ってサービス要求者に応答するのか他のWebサーバ10に転送するかを決定し(ステップS20)、それに従って通信部13は、転送先や応答先についてHTTPヘッダの宛先情報を生成し(この説明の場合、転送先のWebサーバ10をWebサーバ10Bとする)、サービス実行部14の作成したメッセージ本体にこれを付加する(ステップS21)。このようにして生成した情報を中継装置11AにTCP/IP通信によって送信する(ステップS22)。
中継装置11Aのメッセージ送信部111は、Webサービス12により作成されたHTTPヘッダの宛先情報から送信先のWebサーバ10を求める(ステップS23)。
決定した送信先をもとに高負荷通知先テーブルを参照し、送信先が登録されているか確認する(ステップS24)。登録されている場合、当該送信先が中継装置機能を有しているか否かをチェックする(ステップS25)。もし、中継装置機能を有していないWebサーバ10Dの場合は、設定された送信遅延時間の遅延を行う(ステップS26)。この送信遅延時間もWebサービス提供者によってサービス情報記憶部115に登録をしておくことができる。
次に、ヘッダの宛先情報によって応答先または転送先の高負荷状態を高負荷通知元テーブルを検索して登録の有無を確認する(ステップS27)。登録が無く高負荷状態でない場合、中継装置11Aは、宛先情報をHTTPヘッダから削除して新たなHTTPヘッダを生成し、取り出した宛先情報をTCP/IP呼出時の引数に指定して宛先のWebサーバ10に送信する(ステップS28)。そして各種イベント待ちに入る。
高負荷通知元テーブルに、例えばWebサーバ10Bが登録されていて送信先が高負荷状態である場合は、送信対象のHTTPリクエストメッセージを分解し、送信先保管部114へHTTPヘッダの宛先のWebサーバ10Aのアドレス、URL等を格納し、メッセージ保管部113へメッセージ本体を格納し、当該メッセージの送信を保留する(ステップS29)。
そして各種イベント待ち状態に入る。(フローチャートでは次のWebサービス実行要求の受信処理に入るように記述している。)
Webサーバ10Bは、Webサーバ10Aから転送されたメッセージを受信すると、サービス定義情報15を参照して転送されたメッセージに対するサービスを実行する(ステップS30)。
以降、図5のフローチャートを使用して説明する。
(ステップS16)における中継装置11Aによる閾値と比較の結果、単位時間内に受信したWebサービス要求メッセージ数が第1の閾値、又は第2の閾値を超えた場合、中継装置11Aは、サービス要求メッセージ送信元のWebサーバ10C又はWebサーバ10DにHTTPプロトコルの別メッセージとして高負荷を通知するリクエストメッセージを送信する(ステップS31)。
また、中継装置11Aは、単位時間における受信メッセージ数を含み、イベント種類を高負荷としたメッセージをサービス管理装置20に対しても送信する(ステップS32)。サービス管理装置20ではこの内容を運用情報記憶部22にWebサーバ10の識別名、受信時刻等とともに記憶する(ステップS33)。
中継装置11Aのサービス情報解析部112は、図9の(a)に例示するように、主記憶メモリの高負荷通知先テーブルに当該通知を行った中継装置11Cや中継装置11DのIPアドレスとポート番号と通知時刻とその時の受信メッセージの計数値とを記憶する(ステップS34)。
中継装置11Cは、高負荷を通知するリクエストメッセージを中継装置11Aから受信すると、図9の(b)に例示するようにWebサーバ10AのIPアドレス、ポート番号とリクエストメッセージ内の情報とを主記憶メモリ上の高負荷通知元テーブルに記憶する(ステップS35)。そして中継装置11Cは、高負荷通知に応答するレスポンスメッセージを中継装置11Aに送信する(ステップS36)。
中継装置11Aは、高負荷の通知メッセージに対するレスポンスメッセージについて受信の有無を確認する(ステップS37)。レスポンスメッセージをWebサーバ10Cから受信すると、中継装置11AはWebサーバ10Cが本発明における中継装置機能を有することを認識し、Webサーバ10Cは中継機能有りとして高負荷通知先テーブルに記憶する(ステップS38)。そして各種イベント待ちに入る。
送信元が本発明の中継装置機能を持たないWebサーバ10Dの場合、高負荷の通知リクエストメッセージを受信しても、当該リクエストメッセージの内容が判読できないため、当該メッセージを廃棄しレスポンスメッセージをWebサーバ10Aに送信しない。
Webサーバ10Aは、Webサーバ10Dからのレスポンスメッセージを一定の時間が経過しても受信しないため、Webサーバ10Dが、本発明における中継機能を有さないことを認識し、高負荷通知先テーブルにWebサーバ10Dは中継機能無しとして記憶する(ステップS39)。中継装置11Aは、以上の処理を終えると、メッセージの受信待ち状態に入る。
以降、図6のフローチャートを使用して説明する。
Webサーバ10Aのサービス情報解析部112は、高負荷状態から通常状態への遷移を確認すると、高負荷判定フラグをオフとし(ステップS40)、イベントの種類は、通常状態への復帰とするイベント情報をサービス管理装置20に送信する(ステップS41)。これを受信したサービス管理装置20は、送信したWebサーバ10の識別名や受信時刻とともに運用情報記憶部22に記憶する(ステップS42)。尚、Webサービス管理部20では、各Webサーバ10から受信する複数のイベントを現時点から過去に遡って編集する。この編集結果をクライアント装置30のブラウザ等からの問い合わせに各Webサーバ10の負荷状況として応答するようにしている。
さらに高負荷通知先テーブルに登録された情報があるか否かをチェックする(ステップS43)。高負荷通知先テーブルに登録された情報が無ければ、受信メッセージ待ち状態に入る。
中継装置11Aは、高負荷通知先テーブルに登録されている情報が有れば、高負荷通知先テーブルの内容を元に中継装置機能を有するすべての中継装置11に対して以下の処理を行う。
登録された高負荷通知先テーブルのIPアドレスとポート番号をもとにHTTPメッセージによって各通知先(中継装置11C等)に高負荷の解除通知を送信する(ステップS44)。解除通知を受信した中継装置11C等では、中継装置11A向けにレスポンスメッセージで応答する(ステップS45)。
中継装置11Aは、解除通知を送信したWebサーバ10の中継装置11C等からのレスポンスメッセージを受信するとレスポンスメッセージ送信先のWebサーバ10のIPアドレスを元に高負荷通知先テーブルを検索し、該当するエントリを削除する(ステップS46)。高負荷通知先テーブルに登録されていて中継装置機能を持たないWebサーバ10については、削除をせず登録を続ける。
中継装置11Aから高負荷解除通知を受信したWebサーバ10Cでは、解除通知を送信したWebサーバ10AのIPアドレスで高負荷通知元テーブルを検索し該当するエントリを消去する(ステップS47)。
中継装置11Cは、解除通知を送信したWebサーバ10Aに関する送信を保留するメッセージの有無を確認する(ステップS48)。保留中のメッセージがあれば、イベント種類を保留解除とし、その保留するサービス要求先のWebサーバ10の名前と保留する数をサービス管理装置20に送信する(ステップS49)。これを受信したサービス管理装置20は、運用情報記憶部22に記憶する(ステップS50)。
中継装置11Cは、送信先保管部114に保留中のメッセージについて、一時蓄積した送信先保管部114に記憶されたHTTPヘッダの宛先アドレスと高負荷解除を通知したWebサーバ10Aのアドレスとを照合する。
一致すると送信先保管部114から宛先のWebサーバ10Aのアドレス、URL等を取り出し、メッセージ保管部113の情報からメッセージ本体を取り出し、再度、完全なHTTPリクエストを組み立てHTTPヘッダ中の宛先アドレスを削除してWebサーバ10Aへ送信する(ステップS51)。
尚、Webサーバ10Aで高負荷状態が発生しても、その後、Webサーバ10Aが単位時間以上メッセージを受信しない状態が続くことがあり得る。この場合、高負荷状態は解除されているにも係わらず、Webサービス要求メッセージの処理が停滞することになる。それを防止するため、以下の処理を実行する。
中継装置11Aは、単位時間以下の適当な時間をインターバルタイマーに設定して定期的にタイマー割り込みを発生させる。タイマー割り込みが発生すると、高負荷判定フラグをチェックし、高負荷状態の場合には、先に記憶した最終送信時刻と現在時刻との時間差分が単位時間を越えるか判定する。もし、単位時間を越える場合は、(ステップS40)にジャンプして高負荷状態の解除処理を実行する。
以上の説明においては、Webサーバ10CのWebサービス要求をWebサーバ10Aが受信して実行する想定で説明を行ったが、同時にWebサーバ10AからのWebサービス要求をWebサーバ10Cが受信して実行する場合もある。そのためWebサーバ10CのWebサービス機能の単位時間あたりの処理可能数である第1の閾値と、前述した第2の閾値とを中継装置11Cに設定する。これにより、Webサーバ10CとWebサーバ10Aとが双方向に互いの高負荷の制御を行うことが可能となる。
次に、本発明の第2の実施例について説明する。
図10は本発明の第2の実施例の構成を説明するブロック図である。
第1の実施例では、同じWebサーバ10上にWebサービス12と中継装置11とが共存したが、第2の実施例ではそれぞれが独立した計算機上で動作し、各計算機はインターネットを含むネットワークで接続されている構成であるとする。
図10において、Webサーバ1からWebサーバLは、受信したWebサービス要求を実行する計算機であるWebサーバMからWebサーバNのいずれかに対して、Webサービス要求を中継装置11を介して送信する。中継装置11は計算機であり、ソフトウェアプログラムによって動作する。
このとき、中継装置11は、Webサービス要求を送信するWebサーバ1からWebサーバLのプロキシサーバとして設定されているものとする。さらに、第1の実施例と同様にHTTPを利用したプログラムに標準的に用意されたHTTPプロキシを使用する設定をWebサーバ1からWebサーバLのWebサービス12の通信部13に対して行うことで、Webサーバ1からWebサーバLの各Webサービス12から中継装置11へ送信するWebサービス要求メッセージのHTTPリクエストヘッダに宛先情報を埋めこむことができる。中継装置11はこの宛先情報を参照し宛先のWebサーバM〜Nを識別して、送信先を決定するとともに宛先のWebサーバL〜Mが高負荷か否かを判断し、送信制御を行うことが可能となる。
中継装置11には、第1の実施例と同様な内容を持つWebサーバM〜Nのそれぞれに対する単位時間と、WebサーバM〜Nが単位時間に処理可能な閾値とが予め設定されているものとする。WebサーバM〜Nは、Webサーバ1〜L以外のWebサーバ10からはWebサービス要求を受信しないものとするが、もし、他のWebサーバ10からもメッセージを受信する場合は、過去の実績等からWebサーバ1〜Lに対応した閾値を決定する。中継装置11には、第1の実施例と同様に受信メッセージ記憶域がWebサーバM〜Nのそれぞれに用意されているものとする。
次に本実施例の動作について図11のフローチャートを参照して説明する。
例えば、WebサーバLがWebサーバMにWebサービス要求メッセージを送信したとする。中継装置11は、本メッセージを受信すると、HTTPヘッダの宛先アドレスから送信先がWebサーバMで有ることを認識する(ステップS60)。
中継装置11は、WebサーバMに用意された受信メッセージ記憶域に当該受信メッセージを送信したWebサーバLのIPアドレスと、当該メッセージを受信した時刻と送信済み判別フラグを組みとしたエントリを登録する(ステップS61)。送信済み判別フラグは、当該するWebサービス要求を送信先のWebサーバM〜Nに送信済みか未送信かを判別するフラグであり、エントリの登録時には、未送信として登録する。
次に、WebサーバMに設定された単位時間を取りだし、現時刻から当該単位時間前の時刻と現時刻の間に受信したメッセージ数をWebサーバMの受信メッセージ記憶域の各エントリの受信時刻をもとに計数する(ステップS62)。この単位時間における受信メッセージ数とWebサーバMの閾値とを比較する(ステップS63)。
単位時間における受信メッセージ数が閾値以下の場合は、当該計数した対象の受信メッセージの中に送信済み判別フラグが未送信状態のものが有るかをチェックする(ステップS64)。未送信状態のものが有れば時系列に従って順に対応するメッセージを送信先保管部114,メッセージ保管部113のそれぞれ先頭から取り出し両者の情報を組み立ててWebサーバMに送信する(ステップS65)。そして、先に受信したメッセージをWebサーバMに送信する(ステップS66)。このとき中継装置11は、HTTPヘッダの宛先アドレスは、取りはずして送信する。
尚、以上の操作を行った受信メッセージ記憶域のエントリ及び最新の受信したメッセージの送信済み判別フラグは送信済みとする。また受信メッセージ記憶域の該当するエントリにはWebサーバMに送信した時刻を記憶する(ステップS67)。
単位時間における受信メッセージ数がWebサーバMの閾値を超えると、中継装置11は、WebサーバMが高負荷状態と判断して本メッセージをWebサーバMを宛先として宛先別に区分された送信先保管部114の最後にHTTPヘッダの内容とともに記憶する。また、メッセージの本体情報は、メッセージ保管部113の最後に記憶する(ステップS68)。
尚、複数の単位時間に渡って閾値を超える数のメッセージを受信するような場合は、複数の単位時間に渡って高負荷状態が継続すると判断するため、本来処理可能なメッセージの送信処理が、例えば1単位時間以上に亘って実行されない可能性がある。
そのため、中継装置11は、例えばWebサーバMに最後に送信した時刻と現時刻との差分がWebサーバMに設定された単位時間以上経過している場合は、WebサーバMの受信メッセージ記憶域から未送信のメッセージを取り出し、閾値以下の範囲で該当するメッセージをWebサーバMに送信する。このため、中継装置11は、WebサーバM〜Nの単位時間のうちの最小の単位時間をインターバルタイマ値として設定し、タイマ割り込みによる通知を受ける都度、WebサービスM〜Nについて上記処理を実行する。
さらに、以上の説明において、Webサービスメッセージ要求側のWebサーバ1〜LとWebサービス要求実行側のサーバM〜Nと分別したが、中継装置11に、すべてのWebサーバ11の単位時間、閾値、受信メッセージ格納域を設定することで、任意のWebサーバ10の組み合わせにおける高負荷制御が可能となるという効果がある。
本発明によれば、Webサービス統合管理システムは、企業システムの統合に適用できる。また、統合されたシステムの応答性能を保証することができるため、サービス品質を保証するシステムに適用できる。
本発明の実施例の構成を説明するブロック図である。 本発明の実施例の動作を説明するフローチャートである。 本発明の実施例の動作を説明するフローチャートである。 本発明の実施例の動作を説明するフローチャートである。 本発明の実施例の動作を説明するフローチャートである。 本発明の実施例の動作を説明するフローチャートである。 本発明の実施例の説明に使用する1構成例のブロック図である。 本発明の実施例のサービス定義情報の説明図である。 本発明の実施例の高負荷送信先/送信元テーブルの説明図である。 本発明の第2の実施例の中継装置をWebサーバと別装置とした場合の構成を示すブロック図である。 本発明の第2の実施例の動作を説明するフローチャートである。 本発明の実施例の中継装置にプロキシ設定を行ったあとの動作の説明図である。 従来のWebサービス管理システムの構成を説明するブロック図である。
符号の説明
10 Webサーバ
11 中継装置
110 メッセージ受信部
111 メッセージ送信部
112 サービス情報解析部
113 メッセージ保管部
114 送信先保管部
115 サービス情報記憶部
12 Webサービス
13 通信部
14 サービス実行部
15 サービス定義情報
20 サービス管理装置
21 サービス合成計算部
22 運用情報記憶部
23 サービス定義情報保管装置
30 クライアント装置
40 ネットワーク

Claims (3)

  1. 所定の共通メッセージング仕様に基づいたメッセージ通信を使用して、Webサービスシステム間の連携を実現するシステムにおいて、プロキシ属性の設定によりTCP通信先を変更できるHTTPプロトコルを利用して、各Webサービスシステムを実現する、1以上のWebサービス要求手段と1以上のWebサービス実行手段と、の間のWebサービス要求を中継する方法であって、
    Webサービス要求の送信先に対してHTTP(Hyper Text Transfer Protocol)プロキシを使用する設定をした前記Webサービス要求手段が、HTTPヘッダに前記Webサービス実行手段のアドレスを設定して送信した前記Webサービス要求を受信するステップと、
    前記受信したWebサービス要求のHTTPヘッダから取り出した前記Webサービス実行手段の前記アドレスに基づいて前記Webサービス実行手段の負荷状態を取得するステップと、
    前記Webサービス実行手段の負荷状態が所定の閾値と比較して高負荷である場合、前記Webサービス要求を、前記Webサービス実行手段の前記アドレスを含むHTTPヘッダとメッセージ本体とに分解して保留するステップと、
    前記Webサービス実行手段が高負荷でない場合、前記Webサービス要求のHTTPヘッダからWebサービス実行手段の前記アドレスを削除してこれを前記Webサービス実行手段へ送信するステップと、
    所定のタイミングで、前記Webサービス実行手段の負荷状態を判定し、高負荷である状態から高負荷でない状態への遷移を確認すると、前記保留したHTTPヘッダとメッセージ本体とからWebサービス要求を再構築し、前記Webサービス要求のHTTPヘッダから前記Webサービス実行手段の前記アドレスを削除して前記Webサービス実行手段へ送信するステップと、
    を含むWebサービス要求中継方法。
  2. 所定の共通メッセージング仕様に基づいたメッセージ通信を使用して、Webサービスシステム間の連携を実現するシステムにおいて、プロキシ属性の設定によりTCP通信先を変更できるHTTPプロトコルを利用して、各Webサービスシステムを実現する、1以上のWebサービス要求手段と1以上のWebサービス実行手段と、の間のWebサービス要求中継サーバであって、
    Webサービス要求の送信先に対してHTTPプロキシを使用する設定をした前記Webサービス要求手段が、HTTPヘッダに前記Webサービス実行手段のアドレスを設定して送信した前記Webサービス要求を受信する手段と、
    前記受信したWebサービス要求のHTTPヘッダから取り出した前記Webサービス実行手段の前記アドレスに基づいて前記Webサービス実行手段の負荷状態を取得する手段と、
    前記Webサービス実行手段の負荷状態が所定の閾値と比較して高負荷である場合、前記Webサービス要求を、前記Webサービス実行手段の前記アドレスを含むHTTPヘッダとメッセージ本体とに分解して保留する手段と、
    前記Webサービス実行手段が高負荷でない場合、前記Webサービス要求のHTTPヘッダからWebサービス実行手段の前記アドレスを削除してこれを前記Webサービス実行手段へ送信する手段と、
    所定のタイミングで、前記Webサービス実行手段の負荷状態を判定し、高負荷である状態から高負荷でない状態への遷移を確認すると、前記保留したHTTPヘッダとメッセージ本体とからWebサービス要求を再構築し、前記Webサービス要求のHTTPヘッダから前記Webサービス実行手段の前記アドレスを削除して前記Webサービス実行手段へ送信する手段と、
    を含むWebサービス要求中継サーバ。
  3. 所定の共通メッセージング仕様に基づいたメッセージ通信を使用して、Webサービスシステム間の連携を実現するシステムにおいて、プロキシ属性の設定によりTCP通信先を変更できるHTTPプロトコルを利用して、各Webサービスシステムを実現する、1以上のWebサービス要求手段と1以上のWebサービス実行手段と、の間のWebサービス要求を中継するプログラムであって、
    Webサービス要求の送信先に対してHTTPプロキシを使用する設定をした前記Webサービス要求手段が、HTTP(Hyper Text Transfer Protocol)ヘッダに前記Webサービス実行手段のアドレスを設定して送信した前記Webサービス要求を受信するステップと、
    前記受信したWebサービス要求のHTTPヘッダから取り出した前記Webサービス実行手段の前記アドレスに基づいて前記Webサービス実行手段の負荷状態を取得するステップと、
    前記Webサービス実行手段の負荷状態が所定の閾値と比較して高負荷である場合、前記Webサービス要求を、前記Webサービス実行手段の前記アドレスを含むHTTPヘッダとメッセージ本体とに分解して保留するステップと、
    前記Webサービス実行手段が高負荷でない場合、前記Webサービス要求のHTTPヘッダからWebサービス実行手段の前記アドレスを削除してこれを前記Webサービス実行手段へ送信するステップと、
    所定のタイミングで、前記Webサービス実行手段の負荷状態を判定し、高負荷である状態から高負荷でない状態への遷移を確認すると、前記保留したHTTPヘッダとメッセージ本体とからWebサービス要求を再構築し、前記Webサービス要求のHTTPヘッダから前記Webサービス実行手段の前記アドレスを削除して前記Webサービス実行手段へ送信するステップと、
    をコンピュータに実行させるWebサービス要求中継プログラム。

JP2004309716A 2004-10-25 2004-10-25 Webサービス要求中継システム、Webサービス要求中継方法、中継サーバ、及びそのプログラム Expired - Fee Related JP4305364B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004309716A JP4305364B2 (ja) 2004-10-25 2004-10-25 Webサービス要求中継システム、Webサービス要求中継方法、中継サーバ、及びそのプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004309716A JP4305364B2 (ja) 2004-10-25 2004-10-25 Webサービス要求中継システム、Webサービス要求中継方法、中継サーバ、及びそのプログラム

Publications (2)

Publication Number Publication Date
JP2006120080A JP2006120080A (ja) 2006-05-11
JP4305364B2 true JP4305364B2 (ja) 2009-07-29

Family

ID=36537882

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004309716A Expired - Fee Related JP4305364B2 (ja) 2004-10-25 2004-10-25 Webサービス要求中継システム、Webサービス要求中継方法、中継サーバ、及びそのプログラム

Country Status (1)

Country Link
JP (1) JP4305364B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7730196B2 (en) * 2004-12-03 2010-06-01 Microsoft Corporation Efficient transfer of messages using reliable messaging protocols for web services
JP2008097314A (ja) * 2006-10-12 2008-04-24 Kddi Corp 端末からのアクセス要求を空間的及び/又は時間的に分散させる仮接続方法、サーバ及びプログラム
US7912975B2 (en) * 2008-03-03 2011-03-22 Alcatel Lucent System and method for application layer resource traffic control
JP5884788B2 (ja) * 2013-08-08 2016-03-15 株式会社デンソー マイクロコンピュータ

Also Published As

Publication number Publication date
JP2006120080A (ja) 2006-05-11

Similar Documents

Publication Publication Date Title
US10348809B2 (en) Naming of distributed business transactions
US7886295B2 (en) Connection manager, method, system and program product for centrally managing computer applications
US6963996B2 (en) Session error recovery
CN102684988B (zh) 负荷控制装置及其方法
US8856635B2 (en) Loader and provider configuration for remotely provided services
JP2006031063A (ja) 優先制御装置
JP2005539298A (ja) サーバを遠隔かつ動的に構成する方法およびシステム
JP2001014285A (ja) データ転送管理システム、データ転送システム、転送履歴収集装置及び記録媒体
US6925488B2 (en) Distributed intelligent information technology operations automation
JP4205323B2 (ja) 配信システム、配信サーバとその配信方法、配信プログラム
CN112711635A (zh) 一种分布式物联设备跨区域数据一致性的方法和服务集群
CN112783672B (zh) 一种远程过程调用处理方法及系统
JP4305364B2 (ja) Webサービス要求中継システム、Webサービス要求中継方法、中継サーバ、及びそのプログラム
JP4516594B2 (ja) メッセージ送信制御方法、メッセージ送信制御装置、及びメッセージ送信制御プログラム
KR101301447B1 (ko) 독립적인 메시지 저장소 및 메시지 전송 에이전트
US7779115B2 (en) Method and apparatus for processing client capability information over a network
CN113660178B (zh) 一种cdn内容管理系统
EP1220513A2 (en) Method and apparatus for handling services by a proxy
JP7424494B2 (ja) リクエスト配送装置、リクエスト配送方法、および、リクエスト配送プログラム
JP5035286B2 (ja) バス型メッセージ交換システム、バス型メッセージ交換方法及びプログラム
JP2005276053A (ja) 情報収集システム
JP3590357B2 (ja) Httpサーバ性能データ収集方法及びそのシステム
JP2006031592A (ja) メッセージ通信方法、装置及びプログラム
CN116108105A (zh) 业务处理系统、方法、设备、及数据同步方法及设备
CN117149588A (zh) 任务处理方法及相关设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060914

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20070119

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20080613

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080825

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080909

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081110

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090113

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090316

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20090323

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090407

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090420

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120515

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120515

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130515

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140515

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees