説明

WEBシステムにおける分散処理方法およびWEBシステムにおける分散処理システム

【課題】複数のWEBサーバに分散処理させる際のプログラムの数や処理量を低減たり、あるいは不要にするWEBシステムにおける分散処理方法を提供すること。
【解決手段】クライアント装置1から受信したHTTPリクエストに従ってWEBサーバの分散処理をするWEBサーバ20において、HTTPリクエストに含まれるメソッド、リソース情報、コンテントタイプ、およびメッセージ種別情報のうち少なくとも1つを設定ファイルとして設定し、設定ファイルに基づき抽出されたHTTPリクエストに対してWEBサービスを実行すると共に、WEBサーバ25に転送することを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、主に、WEBサービスのリクエストを複数のWEBサーバで分散して処理するWEBシステムにおける分散処理方法に関する。
【背景技術】
【0002】
WEB関連技術の一つに、ネットワーク上に分散したアプリケーションでサービスオブジェクトを供給するWEBサービスの技術がある。
WEBサービスの分散処理方法の一例としては、例えば、クライアントから送信されたリクエストに従って、複数のWEBサーバのうち一のWEBサーバにクライアントからのリクエストを送信し、リクエストを受信したWEBサーバがさらに別のWEBサーバにリクエストを転送して、複数のWEBサーバに処理を分散させる方法がある。つまり、WEBサーバ自体が他のWEBサーバに対してのクライアントとなり、他のWEBサーバにリクエストをすることである。
このように、一のWEBサーバのアプリケーションが、他のWEBサーバに対してリクエストする場合、リクエストを送信するWEBサーバには、他のWEBサーバにWEBサービスを実行させるためのプログラムが必要である(例えば、非特許文献1参照)。
また、WEBサービスに利用されるプログラムとして、例えば、Ruby on Railsがある。このRuby on Railsでは、Active Resourceというコンポーネントを用いて、WEBサービスをカプセル化し、データベースのように呼び出しを簡易化する技術や、WADL( Web Application Description Language )のような記述言語を用いてプログラムを簡易化する技術がある。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】「RESTful Web サービス」、Leonard Richardson,Sam Ruby著、山本陽平 監訳、株式会社クイープ訳、2007年12月発行.
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、Active Resourceというコンポーネントを用いて呼び出しを簡易化する場合や、WADLを用いてプログラムを簡略化する場合であっても、いずれも、リクエストを他のWEBサーバに転送し、WEBサービスを分散するためのプログラムは必要である。
また、WEBサービスを提供する複数のWEBサーバが、同一のプログラムに対応していない場合、WEBサーバごとに複数のプログラムが必要となる問題がある。
【0005】
本発明は、このような事情を考慮し、上記の問題を解決すべくなされたものであって、その目的は、複数のWEBサーバに分散処理させる際のプログラムの数や処理量を低減させ、あるいは不要にすることが可能なWEBシステムにおける分散処理方法を提供することにある。
【課題を解決するための手段】
【0006】
上記問題を解決するために、本発明は、HTTPリクエストを送信するクライアント装置と、前記クライアント装置とネットワークを介して接続され前記HTTPリクエストに応じたWEBサービスを提供する複数のWEBサーバを含むWEBシステムにおける分散処理方法であって、前記クライアント装置は、任意の処理データに対し前記WEBサービスを要求する前記HTTPリクエストであって、前記HTTPリクエストの種類を表すメソッド、前記処理データの送信先である前記WEBサーバを特定するリソース情報、前記処理データの情報の種類を示すコンテントタイプ、およびメッセージ種別情報のうち、少なくとも1つを含む前記HTTPリクエストを、前記複数のWEBサーバのうち任意の第1のWEBサーバに送信し、前記第1のWEBサーバは、前記メソッドのうち特定の意味を持つ第1のメソッド、前記第1のWEBサーバを識別する第1のリソース情報、前記コンテントタイプのうち特定の種類の第1のコンテントタイプ、および前記HTTPリクエストであることを示す第1のメッセージ種別情報を、第1の設定ファイルとして記憶し、前記第1の設定ファイルに基づき、前記第1の設定ファイルに規定されている項目に相当する前記メソッド、前記リソース情報、前記コンテントタイプおよび前記メッセージ種別情報を、前記クライアント装置から受信した前記HTTPリクエストから抽出し、前記メソッド、前記リソース情報、前記コンテントタイプおよび前記メッセージ種別情報のうち、少なくとも1つが抽出された場合、前記HTTPリクエストに従って前記WEBサービスを実行するとともに、前記HTTPリクエストを、前記複数のWEBサーバのうち前記WEBサービスの転送先である第2のWEBサーバに送信することを特徴とする。
【0007】
また、本発明に係るWEBシステムにおける分散処理方法は、前記第2のWEBサーバが、前記HTTPリクエストに基づき、前記処理データからメタ情報を抽出するアプリケーションを備え、抽出された前記メタ情報を含むHTTPレスポンスを前記第1のWEBサーバに送信し、前記第1のWEBサーバが、前記第2のWEBサーバから受信した前記HTTPレスポンスの前記メタ情報に基づき、前記HTTPリクエストに応じた前記WEBサービスを実行することを特徴とする。
【0008】
また、本発明に係るWEBシステムにおける分散処理方法は、前記クライアント装置が、前記第1のメソッド、前記第1のリソース情報、前記第1のコンテントタイプ、および前記第1のメッセージ種別情報を、前記第1のWEBサーバに送信し、前記第1のWEBサーバが、前記クライアント装置から受信した前記第1のリソース情報、前記第1のコンテントタイプ、および前記第1のメッセージ種別情報を、前記第1の設定ファイルとして記憶することを特徴とする。
【0009】
また、本発明に係るWEBシステムにおける分散処理方法は、前記第2のWEBサーバが、前記メソッドのうち特定の意味を持つ第2のメソッド、前記第2のWEBサーバを識別する第2のリソース情報、前記コンテントタイプのうち特定の種類の第2のコンテントタイプ、および前記HTTPリクエストであることを示す第2のメッセージ種別情報を、第2の設定ファイルとして記憶し、前記第2の設定ファイルに基づき、前記第2の設定ファイルに規定されている項目に相当する前記メソッド、前記リソース情報、前記コンテントタイプおよび前記メッセージ種別情報を、前記第1のWEBサーバから受信した前記HTTPリクエストから抽出し、前記メソッド、前記リソース情報、前記コンテントタイプおよび前記メッセージ種別情報のうち、少なくとも1つが抽出された場合、前記HTTPリクエストに従って前記WEBサービスを実行するとともに、前記HTTPリクエストを、前記複数のWEBサーバのうち前記WEBサービスの転送先である第3のWEBサーバに送信することを特徴とする。
【0010】
また、本発明に係るWEBシステムにおける分散処理方法は、前記第1のWEBサーバが、前記HTTPリクエストに、前記第2のメソッド、前記第2のリソース情報、前記第2のコンテントタイプ、および前記第2のメッセージ種別情報をメタ情報として記載した前記HTTPリクエストを、前記第2のWEBサーバに送信することを特徴とする。
【0011】
また、本発明に係るWEBシステムにおける分散処理方法は、前記クライアント装置から前記第1のWEBサーバに送信される前記HTTPリクエスト、および前記第1のWEBサーバから前記第2のWEBサーバに送信される前記HTTPリクエストが、AtomPubのmultipartタイプで作成されていることを特徴とする。
【0012】
また、本発明に係るWEBシステムにおける分散処理方法は、前記第1のWEBサーバが、前記HTTPリクエストの経路を示すヘッダとして、前記第1のWEBサーバの前記リソース情報を追記し、前記第2のWEBサーバに送信することを特徴とする。
【発明の効果】
【0013】
本発明は、複数のWEBサーバに分散処理させる際のプログラムの数や処理量を低減させ、あるいは不要にすることができる。
【図面の簡単な説明】
【0014】
【図1】本実施の形態に係るWEBシステムの構成の一例を示すブロック図である。
【図2】本実施の形態に係るHTTPリクエストの一の表記例を示す概略図である。
【図3】本実施の形態に係る設定ファイルの一例を示す概略図である。
【図4】本実施の形態に係るHTTPリクエストに記載されたメタ情報を説明するための概略図である。
【図5】本実施の形態に係るWEBシステムにおける分散処理方法の一例を示すフローチャートである。
【図6】本実施の形態に係るHTTPリクエストの他の表記例を示す概略図である。
【発明を実施するための形態】
【0015】
次に、発明を実施するための形態について図面を参照して詳細に説明する。図1は、本実施の形態に係るWEBシステムの構成の一例を示すブロック図である。
[第1の実施形態]
図1に示す通り、本実施の形態に係るWEBシステム100は、複数のクライアント装置1、・・・、1n(以下、1Nと記す)と、複数のWEBサーバ20、・・・、25、・・・、2m(以下、2Mと記す)を含む。複数のクライアント装置1Nは、複数のWEBサーバ2Mと、インターネットなどのネットワーク3によってそれぞれ接続されている。
【0016】
複数のクライアント装置1Nは、WEBサービスの利用者(以下、ユーザという)の端末装置であって、例えば、WEBサイトにアクセスしたユーザの指示に従って、WEBサービスを提供するWEBアプリケーションの呼び出しを行う。つまり、クライアント装置1Nは、WEBサイトにアクセスしたユーザによってWEBサービスの呼び出しが指示されると、ユーザの要求に応じたHTTPリクエストを作成し、ネットワーク4を介して任意のWEBサーバ2Mに送信する。ここで、WEBサービスとは、WWW( World Wide Web )の仕組みを利用して、任意のWEBサイトのソフトウェアプログラムが他のWEBサイトのソフトウェアリソースを利用して処理を行い、その結果を利用する仕組みをいう。本実施の形態に係るクライアント装置1Nは、このWWWにおけるWEBブラウザとWEBサーバと通信プロトコルとして用いられる、HTTP( Hyper Text Transfer Protocol )に従って作成されたHTTPリクエストを複数のWEBサーバ2Mに送信する。
【0017】
複数のWEBサーバ2Mは、クライアント装置1Nから送信されるHTTPリクエストに応じて、各種のWEBサービスを提供する。例えば、WEBサーバ20、25は、WEBサービスAに要する処理を分散するとともに、分散された処理を連携して実行するWEBサーバであって、それぞれのアプリケーションの両方が実行されることによって、WEBサービスAをユーザに提供する。また、WEBサーバ25は、例えば、WEBサーバ20の分散処理に伴う新規な処理機能(例えば、WEBサーバ20の分散処理と異なる処理機能)を有する。
WEBサーバ2MのWEBサービスの分散処理の方法は、一のWEBサーバ2Mが、クライアント装置1NからHTTPリクエストを受信すると、自己のWEBアプリケーションを実行するともに、他のWEBサーバ2MにHTTPリクエストを転送し、他のWEBサーバ2Mに対してWEBサービスに関する処理を分散する方法を利用するものである。
また、本実施の形態において、WEBサービスAとは、クライアント装置1Nから受信したHTTPリクエストに含まれる属性情報に基づき、処理データである画像データを分類して管理するサービスであり、例えば、クライアント装置1Nから受信した画像データに含まれる位置情報等の属性情報に基づき、画像データを分類して管理しアルバムとして保管するサービスである。例えば、WEBサーバ20は、クライアント装置1Nから受信した画像データを保存する“アルバム機能”を提供するアプリケーションA1を備える。また、WEBサーバ25は、WEBサーバ25から転送された画像データの属性情報を解析し、属性情報と画像データとを関連付ける管理ファイルを作成し、WEBサーバ20に送信する“メタ情報作成機能”を提供するアプリケーションA2を備える。
なお、HTTPによる通信は、クライアント側がHTTPリクエストを送信し、サーバ側がHTTPレスポンスを返すトランザクションの繰り返しであって、本実施の形態に係るWEBシステムは、クライアント装置1NとWEBサーバ2M間に限られず、WEBサーバ2M間でもトランザクションを繰り返す。つまり、HTTPリクエストは、WEBサービスの処理を依頼するリクエストであり、HTTPレスポンスは、そのHTTPリクエストに対する返信であって、一のWEBサーバが他のWEBサーバにHTTPリクエストを送信し、他のWEBサーバが一のWEBサーバにHTTPレスポンスを返信する場合がある。
【0018】
次に、クライアント装置1NおよびWEBサーバ2Mの各構成について詳細に説明する。なお、複数のクライアント装置1Nは、クライアント装置1と概ね同様の構成を有し、WEBサーバ2Mは、WEBサーバ20、25と概ね同様の構成を有する。
【0019】
クライアント装置1は、クライアント機能部101と、位置検出部102と、制御部103と、メモリ部104と、操作部105と、リクエスト作成部106と、ネットワークインターフェース部107とを備える。本実施の形態に係るクライアント装置1は、例えば、クライアント機能部101が撮像機能を有する携帯電話や電子カメラ等が利用可能である。
クライアント機能部101は、例えば、光学系部材やCCD( Charge Coupled Device )センサー等を備え、光学系部材を介して入射した被写体光を電気信号に変換して画像データを出力する撮像機能部を備え、複数枚の画像データを生成する。以下、クライアント機能部101を、撮像部101と記す。
位置検出部102は、例えば、GPS( Global Positioning System )等の位置検出技術を用いて、クライアント装置1の位置を検出し、位置を表す位置情報を生成する。
制御部103は、クライアント装置1を統括的に制御し、例えば、撮像部101によって取得された画像データに、位置検出部102によって検出された撮像部101によって撮像された際の位置情報を関連付けて、メモリ部104に記憶させる。
メモリ部104は、撮像部102によって撮像された複数の画像データを、位置検出部102によって検出された位置情報や、クライアント装置1を識別する識別子等と関連付けて記憶する。
操作部105は、ユーザによって操作され、操作に応じたユーザの操作指示が入力される。
【0020】
リクエスト作成部106は、操作部105を介して入力されるユーザの指示や、WEBサーバ2Mが提供するWEBサービスのアクセス方法に応じた、HTTPリクエストR1を作成する。本実施の形態において、リクエスト作成部106は、図2に示すようなHTTPリクエストR1を作成する。
図2に示す通り、HTTPリクエストR1は、少なくとも、リクエストラインR11およびエンティティボディ部R13を含み、本実施の形態においては、ヘッダR12をさらに含む。リクエストラインR11は、リクエストの種類を表すメソッドと、HTTPリクエストR1の送信先を表すWEBサーバを示すリソース情報、処理データの種類を表すコンテントタイプ、およびメッセージの種類を表すメッセージ種別情報のうち、少なくとも1つを含む。
【0021】
つまり、リクエスト作成部106は、WEBサービスAの提供を要求するため、メソッドとして“POST”およびリソース情報として“album/john”をリクエストラインR1に記憶し、コンテントタイプとして“image”をヘッダR12に記憶し、かつ、HTTPに従って記載されたHTTPリクエストを作成する。なお、HTTPリクエストが、WEBサーバ2Mに対応するHTTPで記載され、リクエストラインR1に“HTTP/1.1”が記憶されることで、メッセージ種別情報としてクライアント装置1からWEBサーバ2Mに送信されるHTTPリクエストであることを表している。
リクエスト作成部106は、例えば、AtomPubに従って、HTTPのPOSTメソッドを用いて、例えば、撮像部101によって生成された画像データのバイナリデータを、HTTPリクエストR1のエンティティボディ部R12に記憶させる。この画像データのバイナリデータには、位置検出部102によって検出された位置情報、例えば、東経139度、北緯36度等の情報が埋め込まれている。
ここで、AtomPubとは、WEBサーバ2Mが、HTTPリクエストに含まれるメタ情報が、更新、追加、削除するためのプロトコルであって、本実施の形態におけるHTTPリクエストR1は、AtomPubによって記載することができる。
【0022】
ネットワークインターフェース部107は、ネットワーク3を介して、複数のWEBサーバ2Mや他のクライアント装置1Nとメッセージやデータの送受信を行う。
【0023】
次に、WEBサーバ20の構成の一例について説明する。
WEBサーバ20は、ネットワークインターフェース201と、メモリ部202と、フィルタ機能部(抽出部)203と、サービス処理機能部204と、アルバムメモリ部205とを備える。
ネットワークインターフェース201は、ネットワーク3を介して、複数のWEBサーバ2Mや他のクライアント装置1Nとメッセージやデータの送受信を行う。
【0024】
メモリ部202は、例えば、図3に示す設定ファイルF1を記憶する。図3に示す通り、設定ファイルF1は、メソッド(第1のメソッド)F11“POST”、リソース情報(第1のリソース情報)F12“/album/*”、コンテントタイプ(第1のコンテントタイプ)F13“image/*”、およびメッセージ種別情報(第1のメッセージ種別情報)F14“Request”のうち、少なくとも1つを、フィルタ条件として記憶する。また、設定ファイルF1は、転送先F15(To)に“POST http://www.server2.co./extract_exif”を含む。なお、転送先F15には、転送先のURIおよびHTTPメソッドが記憶されており、WEBサーバ20は、HTTPメソッドの“POST”を用いて、WEBサーバ25にHTTPリクエストを転送する。
つまり、設定ファイルF1は、フィルタ機能部203によって解析されたHTTPリクエストR1が、設定ファイルF1に設定されているメソッドF11、リソース情報F12、コンテントタイプF13、およびメッセージ種別情報F14のうち少なくとも1つと相当する情報を含むHTTPリクエストであった場合、WEBサービスAの分散処理を要求するリクエストであると、WEBサーバ20が判断するフィルタとして機能する。
【0025】
フィルタ機能部203は、ネットワークインターフェース部201を介してクライアント装置1から受信するHTTPリクエストR1を解析し、解析したHTTPリクエストR1と設定ファイルF1とを比較する。フィルタ機能部203は、設定ファイルF1に基づき、この設定ファイルF1に規定されている項目に相当する、メソッド、リソース情報、コンテントタイプおよびメッセージ種別情報を、HTTPリクエストR1から抽出する。
フィルタ機能部203は、例えば、WEBサーバ20の起動時にメモリ部202に記憶されている設定ファイルF1を読み出し、HTTPリクエストR1内のメソッド、リソース情報、コンテントタイプおよびメッセージ種別情報と、設定ファイルF1とを比較し、それぞれが一致しているか否かを判断する。例えば、フィルタ機能部203は、(1)HTTPリクエストに記憶されているメソッドが、設定ファイルF1に記憶されているメソッドF11と一致しているか否かを判断し、(2)HTTPリクエストに記憶されているリソース情報が、設定ファイルF1に記憶されているWEBサーバ20を表すリソース情報F12と一致しているか否かを判断し、(3)HTTPリクエストに記憶されているコンテントタイプが、設定ファイルF1に記憶されているコンテントタイプF13と一致しているか否かを判断し、かつ、(4)HTTPリクエストに記憶されているメッセージ種別情報が、設定ファイルF1に記憶されているメッセージ種別情報F14であるか否かを判断する。
フィルタ機能部203は、例えば、(1)〜(4)のうち少なくとも1つが一致する場合、クライアント装置1Nから受信した画像データに対して、アプリケーションA1を用いたWEBサービスAに応じたアルバム機能の処理を実行すると共に、クライアント装置1Nから受信した画像データおよびHTTPリクエストR1をWEBサーバ25に転送する。
【0026】
サービス処理機能部204は、ネットワークインターフェース部201を介してWEBサーバ20が受信したHTTPリクエストR1に基づき、クライアント装置1Nから受信した画像データに対して、WEBサービスAに係る“アルバム機能”を実行するアプリケーションA1を備える。本実施の形態において、サービス処理機能部204は、位置情報と関連付けて画像データをアルバム管理する“アルバム機能”を備える。なお、“アルバム機能”とは、画像データを保管する“アルバム保管機能”と、画像データをユーザに閲覧させる“アルバム閲覧機能”とをそれぞれ備える。
例えば、サービス処理機能部204は、フィルタ機能部202によって(1)〜(4)のうち少なくとも1つが一致すると判断された場合、アプリケーションA1に従って“アルバム機能”を実行し、WEBサーバ25から後述するメタ情報が更新されたHTTPレスポンスが入力された場合、クライアント装置1Nから受信した画像データと、HTTPレスポンスのメタ情報に含まれる管理情報とをそれぞれ関連付けて、アルバムメモリ部206に記憶させる“アルバム保管機能”を実行する。さらに、サービス処理機能部204は、クライアント装置1Nから、アルバムの閲覧が指示された場合、アルバムメモリ部206に記憶されている画像データを、関連付けられている管理情報に基づき、クライアント装置1Nに提供する“アルバム閲覧機能”を実行する。
【0027】
また、サービス処理機能部204は、フィルタ機能部203によって(1)〜(4)のうち少なくとも1つが一致すると判断された場合、例えば図5に示す通り、AtomPubに従って、クライアント装置1Nから受信したHTTPリクエストR1にメタデータR14を生成する。
また、リクエスト編集部205は、HTTPリクエストR1のヘッダR12に、経路を示すヘッダとしてViaヘッダR15を設け、このViaヘッダR15にWEBサーバ20自身のURIを記憶することができる。
【0028】
アルバムメモリ部206は、サービス機能部204によって“アルバム機能”が実行された画像データを、WEBサーバ25から受信した管理ファイルと関連付けて記憶する。
【0029】
次に、WEBサーバ25の構成の一例について説明する。
WEBサーバ25は、ネットワークインターフェース251と、メモリ部252と、フィルタ機能部(抽出部)253と、サービス処理機能部254とを備える。なお、WEBサーバ20と同一の名称を有する構成は、同等の構成を有するため、詳細な説明は省略する。
メモリ部252は、第2のメソッド、第2のリソース情報、第2のコンテントタイプ、および第2のメッセージ種別情報のうち、少なくとも1つを、第2の設定ファイルとして記憶する。
フィルタ機能部253は、ネットワークインターフェース部201を介してWEBサーバ20から受信するHTTPリクエストR1を解析し、解析したHTTPリクエストR1と設定ファイルF2とを比較する。フィルタ機能部253は、設定ファイルF2に基づき、この設定ファイルF2に規定されている項目に相当する、メソッド、リソース情報、コンテントタイプおよびメッセージ種別情報を、HTTPリクエストR1から抽出する。
【0030】
サービス処理機能部254は、ネットワークインターフェース部201を介してWEBサーバ25が受信したHTTPリクエストR1に基づき、クライアント装置1Nから受信した画像データに対して、WEBサービスAに係る“メタ情報作成機能”を実行するアプリケーションA2を備える。サービス処理機能部254は、例えば、フィルタ機能部253によって、設定ファイルF2に基づき、この設定ファイルF2に規定されている項目に相当する、メソッド、リソース情報、コンテントタイプおよびメッセージ種別情報のうち、少なくとも1つが、HTTPリクエストR1から抽出された場合、アプリケーションA2に従って“メタ情報作成機能”を実行する。
本実施の形態において、サービス処理機能部254は、WEBサーバ20から受信した画像データから属性情報として位置情報を抽出する。また、サービス処理機能部254は、抽出した位置情報をHTTPリクエストR1のメタ情報に更新し、HTTPレスポンスとしてWEBサーバ20に返信する。なお、HTTPリクエストR1のメタ情報の更新とは、WEBサーバ20によってHTTPリクエストR1に作成されたメタ情報の画像データの属性情報に関する情報を、各画像データに対応付けて位置情報を追記、あるいは変更することをいう。
【0031】
次に、本実施の形態に係るWEBシステムにおける分散処理方法について、図5を用いて説明する。図5は、本実施の形態に係るWEBシステムにおける分散処理方法について説明するためのフローチャートである。
図5に示す通り、クライアント装置1によってHTTPリクエストR1が作成されると、ネットワーク3を介してHTTPリクエストR1が、クライアント装置1からWEBサーバ2Mに送信される(ステップST1)。なおこの時、クライアント装置1は、図2に示すように、リクエストラインR11、ヘッダR12およびエンティティボディR13によって構成されるHTTPリクエストR1を作成し、このHTTPリクエストR1には、HTTPメソッド“POST”、リソース情報“album/john”、コンテントタイプ“image/jpeg”、およびメッセージ種別情報“HTTP/1.1”のうち少なくとも1つが記憶されている。
【0032】
WEBサーバ20は、ネットワークインターフェース部201を介してHTTPリクエストR1を受信すると、フィルタ機能部203がHTTPリクエストR1を解析し、設定ファイルF1と一致するか否かを判断する(ステップST2)。すなわち、フィルタ機能部203は、図3に示す設定ファイルF1に基づき、設定ファイルF1のメソッドF11、リソース情報F12、コンテントタイプF13およびメッセージ種F14と、図2に示すHTTPリクエストR1の、メソッド“POST”、リソース情報“album/john”、コンテントタイプ“image/jpeg”、およびメッセージ種“HTTP/1.1”のそれぞれを比較し、一致あるいは対応する項目があるか否かを判断する。
設定ファイルF1のメソッドF11、リソース情報F12、コンテントタイプF13およびメッセージ種F14のうち、少なくとも1組が一致あるいは対応している場合(ステップST3−YES)、サービス処理機能部204がアプリケーションA1を実行し、HTTPリクエストR1のメタ情報を作成する(ステップST4)。次いで、サービス処理機能部204は、設定ファイルF1の転送先F15に設定されているWEBサーバ25に、メタ情報が記載されたHTTPリクエストR1を転送する(ステップST5)。なお、サービス処理機能部204は、ステップST4において、メタ情報を作成すると共に、ヘッダ部R12にViaヘッダR15として、WEBサーバ20のURIを記載してもよい。
【0033】
WEBサーバ25は、HTTPリクエストR1をネットワークインターフェース部251を介して受信すると、第2の設定フィルタに基づき、第2の設定ファイルに規定されている項目に相当するメソッド、リソース情報、コンテントタイプおよびメッセージ種別情報を、WEBサーバ20から受信したHTTPリクエストR1から抽出する。
いずれか一つでも抽出できた場合、サービス処理機能部254によってアプリケーションA2が実行され、HTTPリクエストR1の画像データから属性情報(位置情報)が抽出される(ステップST6)。サービス処理機能部254は、抽出した位置情報に従って、HTTPリクエストR1のメタ情報を追記あるいは変更し、メタ情報が追記あるいは変更されたHTTPリクエストR1を、HTTPレスポンスとして、WEBサーバ20に送信する(ステップST7)。
WEBサーバ20は、ネットワーク3を介してWEBサーバ25から送信されたHTTPレスポンスを受信すると、サービス処理機能部204によるアルバム機能を継続し、HTTPリクエストR1のメタ情報として記載されているメタ情報を、画像データと関連付けて、アルバムメモリ部206に記憶させる(ステップS8)。
【0034】
これにより、WEBサーバ2Mは、HTTPリクエストに含まれる項目をフィルタ抽出条件とした設定ファイルを利用することにより、プログラムを利用せずに、クライアント装置1からのHTTPリクエストを受信し、受信したHTTPリクエストが自身のアプリケーションの呼び出しであるか否かを判断することができる。また、自身のアプリケーションの呼び出しであると判断した場合、さらに他のWEBサーバ2Mに転送するか否かを判断し、転送先が指定されている場合には、その転送先にHTTPリクエストを転送することができる。つまり、WEBサーバ2Mは、HTTPリクエストを解析し、設定フィルタと比較することで、HTTPリクエストが要求されているWEBサーバであるか否かを判断すると共に、他のWEBサーバ2Mに対してHTTPリクエストを要求するクライアント側であるか否かを判断することができる。
よって、複数のWEBサーバに負荷分担させる際の各WEBサーバに対応するプログラムが不要となり、コストの削減等に貢献することができる。
【0035】
また、本実施の形態に係るWEBシステムは、図4に示す通り、WEBサーバ20は、HTTPリクエストR1のViaヘッダR15に自身のURIを検出した場合、他のWEBサーバ25からのHTTPレスポンスであると判断することができる。つまり、WEBサーバ20は、自身のURIがViaヘッダR15に記載されている場合、ループが発生していると判断し、さらに他のWEBサーバ2Mへの転送を停止することができる。
なお、本実施の形態に係るWEBサーバ20、25は、従来の負荷分散(例えば、所定の同じ処理を複数のWEBサーバで分散して処理するもの)のように、単に負荷処理を分散させるだけでなく、分散させるに際して、WEBサーバ20の分散処理に伴う新規な処理機能を、WEBサーバ20、25が連携して分散処理することができる。つまり、WEBサーバ20は、HTTPリクエストに含まれるコンテントタイプやリソース情報等に応じて、転送先であるWEBサーバを変更し、分散処理に伴う新規な処理機能を随時付加して分散処理することができる。例えば、本実施の形態におけるWEBサーバ20、25は、WEBサービスAとして、“メタ情報作成機能”に、画像データから属性情報を抽出する“メタ情報作成機能”という新規な処理機能を付加する処理を提供する例について説明したが、本発明はこれに限られず、他の新規な処理機能を備えるWEBサーバ2Mと連携してWEBサービスAを提供する構成であってもよい。
【0036】
[第2の実施形態]
また、本実施の形態に係るクライアント装置1Nは、HTTPリクエストR1を作成するものに限定されず、図6に示したHTTPリクエストR2を作成し、WEBサーバ20に送信するものであってもよい。
すなわち、クライアント装置1Nは、転送先を示す情報R210として、WEBサーバ25のURIを、リクエストラインR21のリソース情報“album/”の後ろに記載する。なお、ヘッダR21やエンティティボディR23は、第1の実施形態と同様である。
【0037】
WEBサーバ20は、HTTPリクエストR2が、設定ファイルF1に設定されているメソッドF11、リソース情報F12、コンテントタイプF13、およびメッセージ種別情報F14のうち少なくとも1つを含む場合、WEBサービスAの分散処理を要求するリクエストであると判断するとともに、HTTPリクエストR2の転送先を示す情報R210に示されているWEBサーバ25にHTTPリクエストR2を転送する。
なお、本実施の形態において、設定フィルタF1の転送先F15に記憶されている転送先と、HTTPリクエストR2の転送先を示す情報F210に記憶されている転送先が、共にWEBサーバ25を示すため、WEBサーバ25が転送先であることに変わりない。しかし、両者が異なる場合、HTTPリクエストR2の転送先を示す情報F210に記憶されている転送先が、優先される構成であってもよい。これにより、HTTPリクエストR2の転送先をクライアント装置1Nによって選択し、決定することができる。
【0038】
このように、本実施の形態に係るWEBシステムは、クライアント装置1NあるいはWEBサーバ2Mのいずれかによって、転送先のWEBサーバ2Mを設定することができるため、HTTPリクエストごとに、WEBサーバ2Mの連結パターンを動的に変更することができる。
【0039】
[第3の実施形態]
上述の第1の実施形態では、設定ファイルF1がメモリ部202に予め設定されている例について説明したが、本発明はこれに限られず、例えば、以下のような方法が利用可能である。
例えば、クライアント装置1Nが、HTTPリクエストの処理内容に応じて、任意の設定ファイルをリアルタイムに作成し、WEBサーバ2Mに送信する。例えば、WEBサーバ20が、自身に宛てて送信された設定ファイルF1を受信すると、メモリ部202に記憶させる。なお、設定ファイルには、転送先であるWEBサーバ25が予め指定されており、記憶されている。
このように、クライアント装置1Nによって作成された設定ファイルF1が、WEBサーバ20のメモリ部202に記憶されている状態において、クライアント装置1Nが、HTTPリクエストをWEBサーバ20に送信すると、WEBサーバ20は、設定ファイルF1に基づき、設定ファイルF1に規定されている項目に相当するメソッド、リソース情報、コンテントタイプおよびメッセージ種別情報を、クライアント装置1Nから受信したHTTPリクエストから抽出する。
【0040】
WEBサーバ20は、1つでも設定ファイルF1に規定されている項目に相当する情報をHTTPリクエストから抽出した場合、HTTPリクエストに従って、受信したHTTPリクエストの処理データを処理すると共に、転送先であるWEBサーバ25に対して、HTTPリクエストと、WEBサーバ20によって処理された処理結果とを送信する。
WEBサーバ25は、HTTPリクエストおよび処理結果を受信すると、設定ファイルに記憶されているWEBサーバ25が処理する処理内容に応じて、処理した処理データを
このように、設定ファイルF1をクライアント装置1Nが作成することによって、転送先であるWEBサーバ25をクライアント装置1Nにおいて選択し、設定することができる。
【0041】
また、本発明はこれに限られず、クライアント装置1Nが、任意の設定ファイルをリアルタイムに作成して、WEBサーバ20に送信し、WEBサーバ20が、受信した設定ファイルの転送先F15を、HTTPリクエストの処理内容に応じて、リアルタイムに書き換える構成であってもよい。
【0042】
つまり、クライアント装置1Nは、WEBサーバ20と、転送先であるWEBサーバ25の複数のリソースに対するHTTPリクエストを、AtomPubプロトコルの拡張仕様multopartタイプで作成することができる。言い換えると、クライアント装置1NからWEBサーバ2Mに送信されるHTTPリクエストが、複数のリソースに対するリクエストとして作成されるものであってもよい。
また、WEBサーバ20が、クライアント装置1Nから受信したHTTPリクエストのメタ情報に、WEBサーバ25の第2の設定ファイルに相当する情報を追記することで、結果的に、WEBサーバ20がAtomPubプロトコルの拡張仕様multopartタイプで作成するものであってもよい。
なお、本実施の形態に係るクライアント装置1NおよびWEBサーバ2Mは、multopartタイプを利用することにより、意味的に関連性のあるリソースをまとめて取り扱うことが可能となる。すなわち、WEBサービスAの負荷分担をするWEBサーバ20とWEBサーバ25は、意味的に関連性のあるリソースであって、multopartタイプを利用することによって、それぞれのWEBサーバ20,25のアプリケーションA1,A2の読み出しを要求する複数のリクエストをまとめて取り扱うことができる。
【0043】
また、フィルタ機能部203は、HTTPリクエストを受信した場合、HTTPリクエストのエンティティボディに記憶されている処理データに対応するメタデータを作成し、メモリ部202内の設定ファイルF1に記憶させる構成であってもよい。この場合、フィルタ機能部203は、他のWEBサーバ25から受信した情報(例えば、メタ情報作成機能によって抽出された管理ファイル等)に基づき、設定ファイルF1のメタデータを書き換えることができる。つまり、ファイル機能部203は、設定ファイルF1に記載されたメタデータを書き換えることでmultipartフォーマットを利用し、WEBサーバ25から受信される情報に基づくメタデータの更新を行う。
【0044】
また、本実施の形態に係る設定ファイルF1は、メソッドF11、リソース情報F12、コンテントタイプF13およびメッセージ種別情報F14が設定されており、フィルタ機能部203は、これらのうち少なくとも1つが一致するHTTPリクエストを、転送先F15に設定されているWEBサーバ25に転送する一例について説明した。しかし、本発明はこれに限られず、例えば、設定ファイルF1が、クライアント装置1Nからされた送信データの拡張子やメモリ容量、あるいはオプションヘッダに記載されるユーザエージェントに関する情報を備える構成であってもよい。
また、本実施の形態に係るWEBシステム100は、設定ファイルF1は、メソッドF11、リソース情報F12、コンテントタイプF13およびメッセージ種別情報F14が設定されている場合には、フィルタ機能部203が、これら全てが一致した場合に、サービス処理機能部204にアルバム機能を実行させ、クライアント装置1から受信したHTTPリクエストをWEBサーバ25に転送する構成であることが好ましい。
なお、本実施の形態において、クライアント装置1Nは、クライアント機能部101、位置検出部102等を備えるものを例に説明したが、本発明はこれに限られず、これら構成要件を備える外部装置から出力される処理データを受信し、この処理データに基づき、HTTPリクエストを作成する構成であってもよい。
また、本実施の形態に係るWEBシステムは、複数のWEBサーバがそれぞれ異なる機能を持ち、一のWEBサーバの持つ機能をサポートする付加的な機能を他のWEBサーバが備え、単に負荷処理を分散させるだけでなく、分散させるに際して他のWEBサーバが備える新たな処理機能を付加する構成であってもよく、また、同じ機能を持つ複数のWEBサーバに所定の処理を分散させる負荷分散方法を用いるWEBシステムであってもよい。
【0045】
なお、本実施の形態に係るWEBシステムにおける分散処理方法の過程は、コンピュータに実行させるためのプログラムや、このプログラムとしてコンピュータ読み取り可能な記録媒体として利用可能であり、コンピュータシステムが読み出して実行することによって、上記処理が行われる。なお、ここでいう「コンピュータシステム」とは、CPU及び各種メモリやOS、周辺機器等のハードウェアを含むものである。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【0046】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に記憶したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【符号の説明】
【0047】
1 クライアント装置
20,25 WEBサーバ
106 リクエスト作成部
203 フィルタ機能部
204 サービス処理機能部
205 アルバムメモリ部
253 フィルタ機能部
254 サービス処理機能部

【特許請求の範囲】
【請求項1】
HTTPリクエストを送信するクライアント装置と、前記クライアント装置とネットワークを介して接続され前記HTTPリクエストに応じたWEBサービスを提供する複数のWEBサーバを含むWEBシステムにおける分散処理方法であって、
前記クライアント装置は、
任意の処理データに対しての前記WEBサービスを要求する前記HTTPリクエストであって、前記HTTPリクエストの種類を表すメソッド、前記処理データの送信先である前記WEBサーバを特定するリソース情報、前記処理データの情報の種類を示すコンテントタイプ、およびメッセージ種別情報のうち、少なくとも1つを含む前記HTTPリクエストを、前記複数のWEBサーバのうち任意の第1のWEBサーバに送信し、
前記第1のWEBサーバは、
前記メソッドのうち特定の意味を持つ第1のメソッド、前記第1のWEBサーバを識別する第1のリソース情報、前記コンテントタイプのうち特定の種類の第1のコンテントタイプ、および前記HTTPリクエストであることを示す第1のメッセージ種別情報を、第1の設定ファイルとして記憶し、
前記第1の設定ファイルに基づき、前記第1の設定ファイルに規定されている項目に相当する前記メソッド、前記リソース情報、前記コンテントタイプおよび前記メッセージ種別情報を、前記クライアント装置から受信した前記HTTPリクエストから抽出し、
前記メソッド、前記リソース情報、前記コンテントタイプおよび前記メッセージ種別情報のうち、少なくとも1つが抽出された場合、前記HTTPリクエストに従って前記WEBサービスを実行するとともに、前記HTTPリクエストを、前記複数のWEBサーバのうち前記WEBサービスの転送先である第2のWEBサーバに送信する
ことを特徴とするWEBシステムにおける分散処理方法。
【請求項2】
前記第2のWEBサーバは、
前記HTTPリクエストに基づき、前記処理データからメタ情報を抽出するアプリケーションを備え、抽出された前記メタ情報を含むHTTPレスポンスを前記第1のWEBサーバに送信し、
前記第1のWEBサーバは、
前記第2のWEBサーバから受信した前記HTTPレスポンスの前記メタ情報に基づき、前記HTTPリクエストに応じた前記WEBサービスを実行する
ことを特徴とする請求項1に記載のWEBシステムにおける分散処理方法。
【請求項3】
前記クライアント装置は、
前記第1のメソッド、前記第1のリソース情報、前記第1のコンテントタイプ、および前記第1のメッセージ種別情報を、前記第1のWEBサーバに送信し、
前記第1のWEBサーバは、
前記クライアント装置から受信した前記第1のリソース情報、前記第1のコンテントタイプ、および前記第1のメッセージ種別情報を、前記第1の設定ファイルとして記憶することを特徴とする請求項1あるいは2に記載のWEBシステムにおける分散処理方法。
【請求項4】
前記第2のWEBサーバは、
前記メソッドのうち特定の意味を持つ第2のメソッド、前記第2のWEBサーバを識別する第2のリソース情報、前記コンテントタイプのうち特定の種類の第2のコンテントタイプ、および前記HTTPリクエストであることを示す第2のメッセージ種別情報を、第2の設定ファイルとして記憶し、
前記第2の設定ファイルに基づき、前記第2の設定ファイルに規定されている項目に相当する前記メソッド、前記リソース情報、前記コンテントタイプおよび前記メッセージ種別情報を、前記第1のWEBサーバから受信した前記HTTPリクエストから抽出し、
前記メソッド、前記リソース情報、前記コンテントタイプおよび前記メッセージ種別情報のうち、少なくとも1つが抽出された場合、前記HTTPリクエストに従って前記WEBサービスを実行するとともに、前記HTTPリクエストを、前記複数のWEBサーバのうち前記WEBサービスの転送先である第3のWEBサーバに送信する
ことを特徴とする請求項1に記載のWEBシステムにおける分散処理方法。
【請求項5】
前記第1のWEBサーバは、
前記HTTPリクエストに、前記第2のメソッド、前記第2のリソース情報、前記第2のコンテントタイプ、および前記第2のメッセージ種別情報をメタ情報として記載した前記HTTPリクエストを、前記第2のWEBサーバに送信する
ことを特徴とする請求項4に記載のWEBシステムにおける分散処理方法。
【請求項6】
前記クライアント装置から前記第1のWEBサーバに送信される前記HTTPリクエスト、および前記第1のWEBサーバから前記第2のWEBサーバに送信される前記HTTPリクエストは、AtomPubのmultipartタイプで作成されていることを特徴とする請求項1から5のいずれか一項に記載のWEBシステムにおける分散処理方法。
【請求項7】
前記第1のWEBサーバは、
前記HTTPリクエストの経路を示すヘッダとして、前記第1のWEBサーバの前記リソース情報を追記し、前記第2のWEBサーバに送信することを特徴とする請求項1から6のいずれか一項に記載のWEBシステムにおける分散処理方法。
【請求項8】
HTTPリクエストを送信するクライアント装置と、前記クライアント装置とネットワークを介して接続され前記HTTPリクエストに応じたWEBサービスを提供する複数のWEBサーバを含むWEBシステムにおける分散処理システムであって、
前記クライアント装置は、
任意の処理データに対しての前記WEBサービスを要求する前記HTTPリクエストであって、前記HTTPリクエストの種類を表すメソッド、前記処理データの送信先である前記WEBサーバを特定するリソース情報、前記処理データの情報の種類を示すコンテントタイプ、およびメッセージ種別情報のうち、少なくとも1つを含む前記HTTPリクエストを、前記複数のWEBサーバのうち任意の第1のWEBサーバに送信するインターフェース部を備え、
前記第1のWEBサーバは、
前記メソッドのうち特定の意味を持つ第1のメソッド、前記第1のWEBサーバを識別する第1のリソース情報、前記コンテントタイプのうち特定の種類の第1のコンテントタイプ、および前記HTTPリクエストであることを示す第1のメッセージ種別情報を、第1の設定ファイルとして記憶するメモリ部と、
前記第1の設定ファイルに基づき、前記第1の設定ファイルに規定されている項目に相当する前記メソッド、前記リソース情報、前記コンテントタイプおよび前記メッセージ種別情報を、前記クライアント装置から受信した前記HTTPリクエストから抽出するフィルタ機能部と、
前記メソッド、前記リソース情報、前記コンテントタイプおよび前記メッセージ種別情報のうち、少なくとも1つが抽出された場合、前記HTTPリクエストに従って前記WEBサービスを実行するとともに、前記HTTPリクエストを、前記複数のWEBサーバのうち前記WEBサービスの転送先である第2のWEBサーバに送信するインターフェース部と
を備えることを特徴とするWEBシステムにおける分散処理システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2010−191706(P2010−191706A)
【公開日】平成22年9月2日(2010.9.2)
【国際特許分類】
【出願番号】特願2009−35679(P2009−35679)
【出願日】平成21年2月18日(2009.2.18)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】