(57)【要約】【課題】サービス提供システムの可用性を向上する。【解決手段】サービス提供サーバ１は、アプリケーション提供サーバ３から、部品提供サーバ２へのリクエストを受信して、部品提供サーバ２からのレスポンスをアプリケーション提供サーバ３に送信するとともに、リクエストのパラメータおよびレスポンスのパラメータを対応づけたログデータ２１を記憶する転送手段１１と、部品提供サーバ２におけるレスポンス遅延が発生すると、部品提供サーバ２を閉塞するとともに、転送手段１１から新たなリクエストを受信し、ログデータ２１を参照して、新たなリクエストのパラメータに対応づけられた新たなレスポンスのパラメータを取得し、部品提供サーバ２の代わりに、新たなレスポンスのパラメータを含む新たなレスポンスを生成して転送手段１１に返す代理応答手段１２を備える。【選択図】      図１
2018133024.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションで用いられる部品を提供する部品提供サーバに接続するサービス提供サーバであって、
前記アプリケーションを提供するアプリケーション提供サーバから、前記部品提供サーバへのリクエストを受信して、前記部品提供サーバからのレスポンスを前記アプリケーション提供サーバに送信するとともに、前記リクエストのパラメータおよびレスポンスのパラメータを対応づけたログデータを記憶する転送手段と、
前記部品提供サーバにおけるレスポンス遅延が発生すると、前記部品提供サーバを閉塞するとともに、前記転送手段から新たなリクエストを受信し、前記ログデータを参照して、前記新たなリクエストのパラメータに対応づけられた新たなレスポンスのパラメータを取得し、前記部品提供サーバの代わりに、前記新たなレスポンスのパラメータを含む新たなレスポンスを生成して前記転送手段に返す代理応答手段
を備えることを特徴とするサービス提供サーバ。
【請求項２】
前記転送手段は、前記部品提供サーバが閉塞されている場合、リクエストを代理応答手段に入力して、前記代理応答手段から取得したレスポンスを、前記アプリケーション提供サーバに送信する
ことを特徴とする請求項１に記載のサービス提供サーバ。
【請求項３】
前記代理応答手段は、前記ログデータにおいて前記新たなリクエストのパラメータに対応づけられた新たなレスポンスのパラメータがない場合、レスポンスできない旨を含む新たなレスポンスを生成して前記転送手段に返す
ことを特徴とする請求項１または２に記載のサービス提供サーバ。
【請求項４】
前記部品提供サーバに接続されたセッションの数が、閾値を超えた場合、前記部品提供サーバに接続されたセッションを切断するセッション切断手段
をさらに備えることを特徴とする請求項１ないし３のいずれか１項に記載のサービス提供サーバ。
【請求項５】
アプリケーションで用いられる部品を提供する部品提供サーバに接続するサービス提供方法であって、
コンピュータが、前記アプリケーションを提供するアプリケーション提供サーバから、前記部品提供サーバへのリクエストを受信して、前記部品提供サーバからのレスポンスを前記アプリケーション提供サーバに送信するとともに、前記リクエストのパラメータおよびレスポンスのパラメータを対応づけたログデータを記憶するステップと、
前記コンピュータが、前記部品提供サーバにおけるレスポンス遅延が発生すると、前記部品提供サーバを閉塞するとともに、新たなリクエストを受信し、前記ログデータを参照して、前記新たなリクエストのパラメータに対応づけられた新たなレスポンスのパラメータを取得し、前記部品提供サーバの代わりに、前記新たなレスポンスのパラメータを含む新たなレスポンスを生成して返すステップ
を備えることを特徴とするサービス提供方法。
【請求項６】
コンピュータに、請求項１ないし請求項４のいずれか１項に記載のサービス提供サーバとして機能させるためのサービス提供プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションで用いられる部品を提供する部品提供サーバに接続するサービス提供サーバ、サービス提供方法およびサービス提供プログラムに関する。
【背景技術】
【０００２】
近年のＢ２Ｂ２Ｘのビジネスモデルにおいて、左側のＢのサービス提供システムが、中央のＢのアプリケーション提供サーバに、アプリケーションで用いられる部品を提供する。サービス提供サーバは、ＡＰＩ−ＧＷ機能や、ロードバランサ機能を提供する（非特許文献１および非特許文献２参照）。
【０００３】
ＡＰＩ−ＧＷ（Application Programming Interface - Gateway）機能では、ＡＰＩを通じて、複数のイネーブラ（部品提供サーバ）に接続して、複数のイネーブラからのレスポンスをまとめて、アプリケーション提供サーバに返信することが可能である。ロードバランサ機能では、複数のサーバの負荷状況、リクエスト数、レスポンスタイムなどを監視して、サーバの負荷分散を実現する。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】高橋  真由美、Ｂ２Ｂ２Ｘビジネスモデル活性化を目指したＡＰＩ活用の取り組み、ＮＴＴ技術ジャーナル、２０１５年１０月、５６−５８ページ
【非特許文献２】富士通、"負荷分散入門  第2回 負荷分散装置の基本機能"、［online］、２００４年８月３日、［平成２９年２月１３日検索］、インターネット〈URL：http://www.fujitsu.com/jp/products/network/security-bandwidth-control-load-balancer/ipcom/material/data/1/2.html〉
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＡＰＩ−ＧＷは、複数のイネーブラからのレスポンスをまとめてアプリケーション提供サーバに返信する際、各イネーブラからのレスポンスを待機して返信するところ、イネーブラ毎に、負荷やレスポンスタイム等の可用性が異なる。従って、負荷の高いイネーブラに対するリクエストが含まれる場合、ＡＰＩ−ＧＷにおけるレスポンスが悪くなり、サービス提供サーバにおける可用性が低下する場合がある。
【０００６】
従って本発明の目的は、可用性を向上させることが可能なサービス提供サーバ、サービス提供方法およびサービス提供プログラムを提供することである。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明の第１の特徴は、アプリケーションで用いられる部品を提供する部品提供サーバに接続するサービス提供サーバに関する。第１の特徴に係るサービス提供サーバは、アプリケーションを提供するアプリケーション提供サーバから、部品提供サーバへのリクエストを受信して、部品提供サーバからのレスポンスをアプリケーション提供サーバに送信するとともに、リクエストのパラメータおよびレスポンスのパラメータを対応づけたログデータを記憶する転送手段と、部品提供サーバにおけるレスポンス遅延が発生すると、部品提供サーバを閉塞するとともに、転送手段から新たなリクエストを受信し、ログデータを参照して、新たなリクエストのパラメータに対応づけられた新たなレスポンスのパラメータを取得し、部品提供サーバの代わりに、新たなレスポンスのパラメータを含む新たなレスポンスを生成して転送手段に返す代理応答手段を備える。
【０００８】
転送手段は、部品提供サーバが閉塞されている場合、リクエストを代理応答手段に入力して、代理応答手段から取得したレスポンスを、アプリケーション提供サーバに送信しても良い。
【０００９】
代理応答手段は、ログデータにおいて新たなリクエストのパラメータに対応づけられた新たなレスポンスのパラメータがない場合、レスポンスできない旨を含む新たなレスポンスを生成して転送手段に返しても良い。
【００１０】
部品提供サーバに接続されたセッションの数が、閾値を超えた場合、部品提供サーバに接続されたセッションを切断するセッション切断手段をさらに備えても良い。
【００１１】
本発明の第２の特徴は、アプリケーションで用いられる部品を提供する部品提供サーバに接続するサービス提供方法に関する。本発明の第２の特徴に係るサービス提供方法は、コンピュータが、アプリケーションを提供するアプリケーション提供サーバから、部品提供サーバへのリクエストを受信して、部品提供サーバからのレスポンスをアプリケーション提供サーバに送信するとともに、リクエストのパラメータおよびレスポンスのパラメータを対応づけたログデータを記憶するステップと、コンピュータが、部品提供サーバにおけるレスポンス遅延が発生すると、部品提供サーバを閉塞するとともに、新たなリクエストを受信し、ログデータを参照して、新たなリクエストのパラメータに対応づけられた新たなレスポンスのパラメータを取得し、部品提供サーバの代わりに、新たなレスポンスのパラメータを含む新たなレスポンスを生成して返すステップを備える。
【００１２】
本発明の第３の特徴は、コンピュータを、第１の特徴に記載のサービス提供サーバとして機能させるためのサービス提供プログラムに関する。
【発明の効果】
【００１３】
本発明によれば、可用性を向上させることが可能なサービス提供サーバ、サービス提供方法およびサービス提供プログラムを提供することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施の形態に係るアプリケーション提供システムを説明するシステム構成図である。
【図２】本発明の実施の形態に係るサービス提供サーバのハードウエア構成および機能ブロックを説明する図である。
【図３】本発明の実施の形態に係るログデータのデータ構造とデータの一例を説明する図である。
【図４】本発明の実施の形態に係る転送手段による転送処理を説明するフローチャートである。
【図５】本発明の実施の形態に係る代理応答手段による代理応答処理を説明するフローチャートである。
【図６】本発明の実施の形態に係るセッション切断手段によるセッション切断処理を説明するフローチャートである。
【発明を実施するための形態】
【００１５】
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一または類似の部分には同一または類似の符号を付している。
【００１６】
（アプリケーション提供システム）
図１を参照して、本発明の実施の形態に係るアプリケーション提供システム８を説明する。アプリケーション提供システム８は、サービス提供サーバ１を備えるサービス提供システム９と、アプリケーション提供サーバ３ａ、３ｂ、３ｃと、エンドユーザ端末４ａ、４ｂ、４ｃを備える。アプリケーション提供サーバ３ａ、３ｂ、３ｃを区別しない場合、単にアプリケーション提供サーバ３と記載する場合がある。エンドユーザ端末４ａ、４ｂ、４ｃを区別しない場合、単にエンドユーザ端末４と記載する場合がある。
【００１７】
エンドユーザ端末４とアプリケーション提供サーバ３は、第１の通信ネットワークＮ１を介して相互に通信可能に接続される。アプリケーション提供サーバ３とサービス提供サーバ１は、第２の通信ネットワークＮ２を介して相互に通信可能に接続される。第１の通信ネットワークＮ１と第２の通信ネットワークＮ２は、図１においては異なる通信ネットワークとして記載しているが、インターネット等の同じ通信ネットワークで合っても良い。
【００１８】
アプリケーション提供システム８は、Ｂ２Ｂ２Ｘのビジネスモデルを実現するシステムであって、サービス提供システム９は、左側のＢに対応し、アプリケーション提供サーバ３は、中央のＢに対応する。図１に示す例では、右側のＸがエンドユーザ端末４で、Ｃである場合を説明するが、企業等のシステムであっても良い。
【００１９】
アプリケーション提供サーバ３は、サービス提供システム９から提供されたデータに基づいて、エンドユーザ端末４に機能を提供する。
【００２０】
サービス提供システム９は、サービス提供サーバ１と、アプリケーションで用いられる部品を提供する部品提供サーバ２ａ、２ｂ、２ｃを備える。サービス提供サーバ１と、部品提供サーバ（イネーブラ）２ａ、２ｂ、２ｃは、第３の通信ネットワークＮ３を介して、相互に通信可能に接続される。第３の通信ネットワークＮ３は、典型的にはＬＡＮ（Local Area Network）である。部品提供サーバ２ａ、２ｂ、２ｃを区別しない場合、単に部品提供サーバ２と記載する場合がある。
【００２１】
（サービス提供サーバ）
サービス提供サーバ１は、アプリケーション提供サーバ３からＡＰＩを介してリクエストを受信し、リクエストに対するレスポンスを返信する。サービス提供サーバ１は、アプリケーション提供サーバ３からリクエストを受信すると、リクエストに返信するために部品提供サーバ２にＡＰＩを介してリクエストを送信する。サービス提供サーバ１は、部品提供サーバ２からのレスポンスに基づいて、アプリケーション提供サーバ３へのレスポンスを生成して、返信する。
【００２２】
本発明の実施の形態に係るサービス提供サーバ１は、部品提供サーバ２の可用性が低い場合に、部品提供サーバ２に代わって応答することで、サービス提供サーバ１の可用性を向上させる。
【００２３】
サービス提供サーバ１は、図２に示すように、処理装置１０、記憶装置２０および通信制御装置３０を備える一般的なコンピュータである。サービス提供サーバ１は、所定の機能を実現するためのサービス提供プログラムを実行することで、図２に示す各機能を実現する。
【００２４】
記憶装置２０は、ログデータ２１を記憶する。ログデータ２１は、後述の転送手段１１により更新され、代理応答手段１２により参照される。
【００２５】
ログデータ２１は、図３に示すように、部品提供サーバ識別子と、リクエストパラメータと、レスポンスパラメータとを対応づけたデータである。ログデータ２１は、部品提供サーバ２とのリクエストおよびレスポンスの送受信において、その部品提供サーバ２の識別子と、リクエストのパラメータと、レスポンスのパラメータとを対応づける。
【００２６】
処理装置１０は、転送手段１１、代理応答手段１２およびセッション切断手段１３を備える。
【００２７】
転送手段１１は、アプリケーションを提供するアプリケーション提供サーバ３から、部品提供サーバ２へのリクエストを受信して、部品提供サーバ２からのレスポンスをアプリケーション提供サーバ３に送信する。ここで転送手段１１は、リクエストのパラメータおよびレスポンスのパラメータを対応づけたログデータ２１を、記憶装置２０に記憶する。
【００２８】
転送手段１１は、アプリケーション提供サーバ３が送信したリクエストに対するレスポンスを生成するために、部品提供サーバ２にリクエストを送信して、部品提供サーバ２からレスポンスを受信する。転送手段１１は、１つのリクエストを処理するために、複数の部品提供サーバ２にリクエストを送信する場合、アプリケーション提供サーバ３から受信したリクエストから、各部品提供サーバ２宛ての複数のリクエストを生成し、各部品提供サーバ２に送信する。転送手段１１は、各部品提供サーバ２からのレスポンスを待機し、全てのレスポンスを受信すると、受信した複数のレスポンスを纏めて、アプリケーション提供サーバ３に返信するレスポンスを生成して返信する。
【００２９】
転送手段１１は、各部品提供サーバ２にリクエストを送信し、レスポンスを受信すると、部品提供サーバ２の識別子と、リクエストのパラメータと、レスポンスのパラメータを対応づけたレコードを生成し、ログデータ２１に挿入する。リクエストのパラメータは、リクエストの内容を特定するための情報である。リクエストがデータベースのアクセスの場合、アクセス先のレコードの識別子、レコードのパラメータの識別子、および参照または更新の区別などである。レスポンスのパラメータは、レスポンスの内容を特定するための情報である。データベースの参照に対するレスポンスの場合、アクセス先のレコードのパラメータに設定された値である。
【００３０】
転送手段１１は、各部品提供サーバ２にリクエストを送信し、またはレスポンスを受信する度に、ログデータ２１を更新しても良い。
【００３１】
ここで転送手段１１は、部品提供サーバ２が閉塞されている場合、リクエストを代理応答手段１２に入力して、代理応答手段１２から取得したレスポンスを、アプリケーション提供サーバ３に送信する。アプリケーション提供サーバ３から受信したリクストを処理するために、複数の部品提供サーバ２にリクエストを送信する場合、転送手段１１は、リクエストの各送信先の部品提供サーバ２が閉塞しているか否かを判定し、閉塞していない部品提供サーバ２宛てのリクエストをその部品提供サーバ２に送信する。転送手段１１は、閉塞している部品提供サーバ２宛てのリクエストを、その部品提供サーバ２の代理応答手段１２に入力する。転送手段１１は、部品提供サーバ２および代理応答手段１２から取得したレスポンスを纏めて、アプリケーション提供サーバ３に返信する。
【００３２】
転送手段１１は、代理応答手段１２からレスポンスできない旨が返信されると、その旨を、アプリケーション提供サーバ３に提供する。
【００３３】
図４を参照して、本発明の実施の形態に係る転送手段１１による転送処理を説明する。
【００３４】
まずステップＳ１１において転送手段１１は、アプリケーション提供サーバ３から、部品提供サーバ２へのリクエストの受信を待機する。部品提供サーバ２へのリクエストを受信すると、ステップＳ１２において、リクエスト割きの部品提供サーバ２が閉塞中であるか否かを判定する。
【００３５】
閉塞中でない場合、ステップＳ１３において転送手段１１は、部品提供サーバ２にリクエストを転送し、ステップＳ１４においてリクエストに対するレスポンスの受信を待機する。レスポンスを受信すると、ステップＳ１５において、ログデータ２１を更新する。
【００３６】
一方閉塞中の場合、ステップＳ１７において転送手段１１は、部品提供サーバ２に対応する代理応答手段１２に、リクエストを転送し、ステップＳ１８においてリクエストに対するレスポンスの受信を待機する。
【００３７】
ステップＳ１６において転送手段１１は、ステップＳ１４またはステップＳ１８で受信したレスポンスに基づいて、アプリケーション提供サーバ３へのレスポンスを生成し送信する。
【００３８】
代理応答手段１２は、部品提供サーバ２におけるレスポンス遅延が発生すると、部品提供サーバ２を閉塞する。このとき代理応答手段１２は、閉塞した部品提供サーバ２の情報を、管理者等に通知する。ここで部品提供サーバ２の閉塞は、部品提供サーバ２がリクエストを処理しない状態を指し、サーバのシャットダウンも含む。部品提供サーバ２が閉塞した旨が転送手段１１に通知されることにより、部品提供サーバ２は、転送手段１１からリクエストを受信しない状態になる。
【００３９】
代理応答手段１２は、サービス提供システム９が備える各部品提供サーバ２に対応して設けられる。代理応答手段１２は、部品提供サーバ２がサービス提供システム９に導入される際に、サービス提供サーバ１内に、導入された部品提供サーバ２に対応する代理応答手段１２が設けられる。
【００４０】
代理応答手段１２は、転送手段１１から新たなリクエストを受信し、ログデータ２１を参照して、新たなリクエストのパラメータに対応づけられた新たなレスポンスのパラメータを取得する。代理応答手段１２は、部品提供サーバ２の代わりに、新たなレスポンスのパラメータを含む新たなレスポンスを生成して転送手段１１に返す。代理応答手段１２は、転送手段１１からリクエストを受信すると、過去のリクエスト処理において転送手段１１が蓄積したログデータ２１から、リクエストに対するレスポンスを探索する。
【００４１】
このとき代理応答手段１２は、ログデータ２１から、当該代理応答手段１２に対応づけられた部品提供サーバ２の識別子が対応づけられたレコードを抽出し、抽出したレコードから、新たなリクエストに対応するパラメータが対応づけられたレコードを探索する。新たなリクエストに対応するパラメータが対応づけられたレコードが探索されると、そのレコードのレスポンスパラメータに基づいて、レスポンスを生成して、転送手段１１に返信する。
【００４２】
ログデータ２１において新たなリクエストのパラメータに対応づけられた新たなレスポンスのパラメータがない場合、レスポンスできない旨を含む新たなレスポンスを生成して転送手段１１に返す。
【００４３】
図５を参照して、本発明の実施の形態に係る代理応答手段１２による代理応答処理を説明する。
【００４４】
まずステップＳ３１において代理応答手段１２は、対応する部品提供サーバ２においてレスポンスの遅延が発生しているか否かを判定する。レスポンスの遅延が発生している場合、ステップＳ３２において代理応答手段１２は、部品提供サーバ２を閉塞し、管理者に通知する。
【００４５】
ステップＳ３３において転送手段１１からのリクエストの受信を待機する。転送手段１１からリクエストを受信すると、ステップＳ３４において転送手段１１は、ログデータ２１を参照して、リクエストに対するレスポンスを探索する。ステップＳ３５において、レスポンスが探索されたと判断された場合、ステップＳ３６においてログデータ２１から探索したレスポンスを転送手段１１に返信する。一方レスポンスが探索されないと判断された場合、ステップＳ３７においてレスポンスできない旨を転送手段１１に返信する。
【００４６】
セッション切断手段１３は、部品提供サーバ２に接続されたセッションの数が、閾値を超えた場合、部品提供サーバ２に接続されたセッションを切断する。セッション切断手段１３は、部品提供サーバ２に接続されたセッション数を監視し、所定の閾値を超えると、いくつかのセッションを切断して、部品提供サーバ２に接続されたセッションの数を、所定の閾値以下にする。所定の閾値は、部品提供サーバ２が接続可能なセッションの上限数よりも少なく、上限数に近い数が設定される。セッション切断手段１３は、セッションを切断する際に、部品提供サーバ２に接続されたセッションのうち、所定時間以上通信データがないセッション、セッションが構築されてからの経過時間が大きいセッションを切断する。
【００４７】
図６を参照して、セッション切断手段１３によるセッション切断処理を説明する。
【００４８】
まずステップＳ５１においてセッション切断手段１３は、セッション数が所定の閾値を超える部品提供サーバ２があるか否かを判定する。セッション数が所定の閾値を超える部品提供サーバ２がある場合、ステップＳ５２に進む。
【００４９】
ステップＳ５２においてセッション切断手段１３は、セッション数が所定の閾値を超えると判定された部品提供サーバ２で接続されているセッションを切断する。
【００５０】
このように、本発明の実施の形態に係るサービス提供サーバ１は、部品提供サーバ２のレスポンスが遅れている場合、部品提供サーバ２を閉塞して、この部品提供サーバ２がリクエストを受けないように制御する。またサービス提供サーバ１内の代理応答手段１２が、部品提供サーバ２の代わりに、レスポンス可能なリクエストに返信することで、サービス提供システム９における可用性を向上させることができる。
【００５１】
また部品提供サーバ２に多数のセッションが接続され可用性が低下している場合、サービス提供サーバ１のセッション切断手段１３がその部品提供サーバ２のセッションを切断することにより、可用性を向上させることができる。
【００５２】
（その他の実施の形態）
上記のように、本発明の実施の形態によって記載したが、この開示の一部をなす論述および図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例および運用技術が明らかとなる。
【００５３】
例えば、本発明の実施の形態に記載したサービス提供サーバは、図２に示すように一つのハードウエア上に構成されても良いし、その機能や処理数に応じて複数のハードウエア上に構成されても良い。
【００５４】
本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。従って、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【符号の説明】
【００５５】
１  サービス提供サーバ
２  部品提供サーバ
３  アプリケーション提供サーバ
４  エンドユーザ端末
８  アプリケーション提供システム
９  サービス提供システム
１０  処理装置
１１  転送手段
１２  代理応答手段
１３  セッション切断手段
２０  記憶装置
２１  ログデータ
３０  通信制御装置
Ｎ１、Ｎ２、Ｎ３  通信ネットワーク
【図１】
2018133024.tif 000003
【図２】
2018133024.tif 000004
【図３】
2018133024.tif 000005
【図４】
2018133024.tif 000006
【図５】
2018133024.tif 000007
【図６】
2018133024.tif 000008