(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】2019144680
(43)【公開日】20190829
(54)【発明の名称】エラー変換サーバ、エラー変換方法およびエラー変換プログラム
(51)【国際特許分類】
   G06F 13/00 20060101AFI20190802BHJP
【FI】
   !G06F13/00 540A
【審査請求】未請求
【請求項の数】8
【出願形態】OL
【全頁数】18
(21)【出願番号】2018026209
(22)【出願日】20180216
(71)【出願人】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
【住所又は居所】東京都千代田区大手町一丁目5番1号
(74)【代理人】
【識別番号】100083806
【弁理士】
【氏名又は名称】三好 秀和
(74)【代理人】
【識別番号】100129230
【弁理士】
【氏名又は名称】工藤 理恵
(72)【発明者】
【氏名】鈴木 彩
【住所又は居所】東京都千代田区大手町一丁目5番1号 日本電信電話株式会社内
【テーマコード(参考)】
5B084
【Fターム(参考)】
5B084AA01
5B084AA12
5B084AA23
5B084AA29
5B084AB11
5B084AB18
5B084AB31
5B084AB37
5B084BA09
5B084BB01
5B084BB17
5B084CB12
5B084CB15
5B084CB23
5B084CC05
5B084CC07
5B084CC14
5B084CE12
5B084CF02
5B084CF12
5B084DC02
5B084DC03
5B084DC04
5B084DC06
5B084DC18
(57)【要約】
【課題】各部品提供サーバが出力する独自のエラー情報を、ユーザ端末で理解しやすい形式で出力する。
【解決手段】エラー変換サーバ1は、部品提供サーバ3がエラーレスポンスを出力すると、エラーデータ113から、エラーレスポンスの出力元の部品提供サーバ3の識別子と、エラーレスポンスに含まれるエラーの識別子に対応づけられた共通エラーの識別子を取得し、共通エラーデータ112から、取得した共通エラーの識別子に対応する共通エラーメッセージを取得し、取得した共通エラーメッセージに基づいて、エラーレスポンスを、ユーザ端末30に通知する通知エラーメッセージに変換するエラーメッセージ変換部121を備える。
【選択図】 図2
【特許請求の範囲】
【請求項1】
ユーザ端末からのリクエストを、部品提供サーバが提供する部品を使って処理するアプリケーション提供サーバと、複数の部品提供サーバとを備えるサービス提供システムに用いられ、前記部品提供サーバから出力されたエラーレスポンスを、前記ユーザ端末に通知する通知エラーメッセージに変換するエラー変換サーバであって、
前記複数の部品提供サーバで共通して出力される共通エラーの識別子と、前記共通エラーが出力された際に、前記ユーザ端末に出力する共通エラーメッセージを対応づけた共通エラーデータと、
前記部品提供サーバの識別子と、前記部品提供サーバが出力するエラーレスポンスに含まれるエラーの識別子と、前記エラーの内容に対応する前記共通エラーの識別子を対応づけたエラーデータとを記憶する記憶装置と、
前記部品提供サーバがエラーレスポンスを出力すると、
前記エラーデータから、前記エラーレスポンスの出力元の部品提供サーバの識別子と、前記エラーレスポンスに含まれるエラーの識別子に対応づけられた共通エラーの識別子を取得し、
前記共通エラーデータから、取得した前記共通エラーの識別子に対応する共通エラーメッセージを取得し、取得した前記共通エラーメッセージに基づいて、前記エラーレスポンスを前記ユーザ端末に通知する通知エラーメッセージに変換するエラーメッセージ変換部
を備えることを特徴とするエラー変換サーバ。
【請求項2】
前記エラーデータは、前記部品提供サーバが出力するエラーレスポンスに含まれるエラーの内容に対応する共通エラーがない場合、前記部品提供サーバの識別子と、前記部品提供サーバが出力するエラーレスポンスに含まれるエラーの識別子と、前記ユーザ端末に通知する個別エラーメッセージを対応づけて記憶し、
前記エラーメッセージ変換部は、前記エラーデータから、前記エラーレスポンスの出力元の部品提供サーバの識別子と、前記エラーレスポンスに含まれるエラーの識別子に対応づけられた個別エラーメッセージを取得し、
取得した前記個別エラーメッセージに基づいて、前記エラーレスポンスを前記通知エラーメッセージに変換する
ことを特徴とする請求項1に記載のエラー変換サーバ。
【請求項3】
前記記憶装置はさらに、
前記部品提供サーバの識別子と、前記部品提供サーバが出力するエラーレスポンスに含まれるエラー種別とを対応づけたエラー種別データを記憶し、
前記エラーレスポンスは、エラー種別毎に設けられる構造体を有し、前記構造体は、前記部品提供サーバで生じたエラーの識別子を含み、
前記エラーメッセージ変換部は、
前記部品提供サーバがエラーレスポンスを出力すると、
前記エラー種別データから、前記エラーレスポンスの出力元の部品提供サーバの識別子に対応づけられたエラー種別を取得し、
取得したエラー種別に対応する前記エラーレスポンスの構造体から、前記エラーの識別子を取得する
ことを特徴とする請求項1に記載のエラー変換サーバ。
【請求項4】
前記エラーメッセージ変換部は、
前記エラーを生じた前記部品提供サーバに関する情報をユーザ端末に提供可能な場合、前記通知エラーメッセージに、前記部品提供サーバに関する情報を含ませ、
前記エラーを生じた前記部品提供サーバに関する情報をユーザ端末に対して隠蔽する場合、前記通知エラーメッセージに、前記部品提供サーバに関する情報を含ませない
ことを特徴とする請求項1に記載のエラー変換サーバ。
【請求項5】
前記部品提供サーバから、前記部品提供サーバが出力するエラーの種別と、前記エラーの種別に対応するエラーの識別子およびエラーの内容を含むエラー形式データを取得し、
前記エラーの識別子のそれぞれについて、前記エラーの内容に対応する前記共通エラーがある場合、前記部品提供サーバの識別子と、前記エラーの識別子と、前記エラーの内容に対応する前記共通エラーの識別子を対応づけて、前記エラーデータを更新するエラー定義部
をさらに備えることを特徴とする請求項1に記載のエラー変換サーバ。
【請求項6】
前記エラー定義部は、前記エラーの内容に対応する前記共通エラーがない場合、前記部品提供サーバの識別子と、前記エラーの識別子と、個別エラーメッセージを対応づけて、前記エラーデータを更新する
ことを特徴とする請求項5に記載のエラー変換サーバ。
【請求項7】
ユーザ端末からのリクエストを、部品提供サーバが提供する部品を使って処理するアプリケーション提供サーバと、複数の部品提供サーバとを備えるサービス提供システムに用いられ、前記部品提供サーバから出力されたエラーレスポンスを、前記ユーザ端末に通知する通知エラーメッセージに変換するエラー変換方法であって、
コンピュータが、記憶装置に、
前記複数の部品提供サーバで共通して出力される共通エラーの識別子と、前記共通エラーが出力された際に、前記ユーザ端末に出力する共通エラーメッセージを対応づけた共通エラーデータと、
前記部品提供サーバの識別子と、前記部品提供サーバが出力するエラーレスポンスに含まれるエラーの識別子と、前記エラーの内容に対応する前記共通エラーの識別子を対応づけたエラーデータとを記憶するステップと、
前記部品提供サーバがエラーレスポンスを出力すると、
前記コンピュータが、エラーデータから、前記エラーレスポンスの出力元の部品提供サーバの識別子と、前記エラーレスポンスに含まれるエラーの識別子に対応づけられた共通エラーの識別子を取得するステップと、
前記コンピュータが、前記共通エラーデータから、取得した前記共通エラーの識別子に対応する共通エラーメッセージを取得し、取得した前記共通エラーメッセージに基づいて、前記エラーレスポンスを前記通知エラーメッセージに変換するステップ
を備えることを特徴とするエラー変換方法。
【請求項8】
コンピュータに、請求項1ないし請求項6のいずれか1項に記載のエラー変換サーバとして機能させるためのエラー変換プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ユーザ端末からのリクエストを、部品提供サーバが提供する部品を使って処理するアプリケーション提供サーバと、複数の部品提供サーバとを備えるサービス提供システムに用いられるエラー変換サーバ、エラー変換方法およびエラー変換プログラムに関する。
【背景技術】
【0002】
ユーザ端末からの要求をアプリケーション提供サーバが受け、アプリケーション提供サーバが、リクエストを処理するために部品提供サーバを利用するシステムがある。この部品提供サーバは、アプリケーション提供サーバから、Web API(Web Application Programming Interface)を介して呼び出され、イネーブラとも称される。このようなシステムにおいて、アプリケーション提供サーバにおけるアプリケーション開発における負担軽減が期待できる。
【0003】
アプリケーション提供サーバは、部品提供サーバから処理できない旨のエラーレスポンスを受信すると、そのエラーレスポンスを、ユーザ端末に返す。このエラーレスポンスは例えば、APIレスポンスであって、レスポンスの意味を含むHTTPステータスコード等を含む(非特許文献1参照)。しかしながらHTTPステータスコードで表現されるエラーの意味は抽象的であるので、一般的に、APIレスポンスのボディ部に詳細なエラー情報が含まれる。
【0004】
このAPIレスポンスのボディ部におけるエラー情報について、近年、標準規定(非特許文献2参照)においてフォーマットが規格化された。しかしながら、現時点では規格に対する準拠度が低く、各部品提供サーバは、それぞれ独自のエラー形式を採用している。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】R. Fielding 他6名、"Hypertext Transfer Protocol -- HTTP/1.1 ’ 10 Status Code Definitions’"、[online]、1999年6月、IETF、[平成30年2月5日検索]、インターネット〈URL:https://tools.ietf.org/html/rfc2616#section-10〉
【非特許文献2】M. Nottingham 他1名、"Problem Details for HTTP APIs"、[online]、2016年3月、IETF、[平成30年2月5日検索]、インターネット〈URL:https://tools.ietf.org/html/rfc7807〉
【発明の概要】
【発明が解決しようとする課題】
【0006】
このように、規格に対する準拠度が低い状況において、ユーザ端末は、アプリケーション提供サーバから取得したエラー情報を把握するために、部品提供サーバそれぞれにおけるエラーに関する情報を収集し、エラー情報と照合する必要がある。
【0007】
また部品提供サーバの数は増加傾向があり、各ユーザ端末で、全ての部品提供サーバにおけるエラー情報を管理することは困難であり、負担が大きい場合がある。
【0008】
従って本発明の目的は、各部品提供サーバが出力する独自のエラー情報を、ユーザ端末で理解しやすい形式で出力するエラー変換サーバ、エラー変換方法およびエラー変換プログラムを提供することである。
【課題を解決するための手段】
【0009】
上記課題を解決するために、本発明の第1の特徴は、ユーザ端末からのリクエストを、部品提供サーバが提供する部品を使って処理するアプリケーション提供サーバと、複数の部品提供サーバとを備えるサービス提供システムに用いられ、部品提供サーバから出力されたエラーレスポンスを、ユーザ端末に通知する通知エラーメッセージに変換するエラー変換サーバに関する。本発明の第1の特徴に係るエラー変換サーバは、複数の部品提供サーバで共通して出力される共通エラーの識別子と、共通エラーが出力された際に、ユーザ端末に出力する共通エラーメッセージを対応づけた共通エラーデータと、部品提供サーバの識別子と、部品提供サーバが出力するエラーレスポンスに含まれるエラーの識別子と、エラーの内容に対応する共通エラーの識別子を対応づけたエラーデータとを記憶する記憶装置と、部品提供サーバがエラーレスポンスを出力すると、エラーデータから、エラーレスポンスの出力元の部品提供サーバの識別子と、エラーレスポンスに含まれるエラーの識別子に対応づけられた共通エラーの識別子を取得し、共通エラーデータから、取得した共通エラーの識別子に対応する共通エラーメッセージを取得し、取得した共通エラーメッセージに基づいて、エラーレスポンスを通知エラーメッセージに変換するエラーメッセージ変換部を備える。
【0010】
ここでエラーデータは、部品提供サーバが出力するエラーレスポンスに含まれるエラーの内容に対応する共通エラーがない場合、部品提供サーバの識別子と、部品提供サーバが出力するエラーレスポンスに含まれるエラーの識別子と、ユーザ端末に通知する個別エラーメッセージを対応づけて記憶し、エラーメッセージ変換部は、エラーデータから、エラーレスポンスの出力元の部品提供サーバの識別子と、エラーレスポンスに含まれるエラーの識別子に対応づけられた個別エラーメッセージを取得し、取得した個別エラーメッセージに基づいて、エラーレスポンスを通知エラーメッセージに変換しても良い。
【0011】
記憶装置はさらに、部品提供サーバの識別子と、部品提供サーバが出力するエラーレスポンスに含まれるエラー種別とを対応づけたエラー種別データを記憶し、エラーレスポンスは、エラー種別毎に設けられる構造体を有し、構造体は、部品提供サーバで生じたエラーの識別子を含み、エラーメッセージ変換部は、部品提供サーバがエラーレスポンスを出力すると、エラー種別データから、エラーレスポンスの出力元の部品提供サーバの識別子に対応づけられたエラー種別を取得し、取得したエラー種別に対応するエラーレスポンスの構造体から、エラーの識別子を取得しても良い。
【0012】
エラーメッセージ変換部は、エラーを生じた部品提供サーバに関する情報をユーザ端末に提供可能な場合、通知エラーメッセージに、部品提供サーバに関する情報を含ませ、エラーを生じた部品提供サーバに関する情報をユーザ端末に対して隠蔽する場合、通知エラーメッセージに、部品提供サーバに関する情報を含ませないように形成されても良い。
【0013】
部品提供サーバから、部品提供サーバが出力するエラーの種別と、エラーの種別に対応するエラーの識別子およびエラーの内容を含むエラー形式データを取得し、エラーの識別子のそれぞれについて、エラーの内容に対応する共通エラーがある場合、部品提供サーバの識別子と、エラーの識別子と、エラーの内容に対応する共通エラーの識別子を対応づけて、エラーデータを更新するエラー定義部をさらに備えても良い。
【0014】
エラー定義部は、エラーの内容に対応する共通エラーがない場合、部品提供サーバの識別子と、エラーの識別子と、個別エラーメッセージを対応づけて、エラーデータを更新しても良い。
【0015】
本発明の第2の特徴は、ユーザ端末からのリクエストを、部品提供サーバが提供する部品を使って処理するアプリケーション提供サーバと、複数の部品提供サーバとを備えるサービス提供システムに用いられ、部品提供サーバから出力されたエラーレスポンスを、ユーザ端末に通知する通知エラーメッセージに変換するエラー変換方法に関する。本発明の第2の特徴に係るエラー変換方法は、コンピュータが、記憶装置に、複数の部品提供サーバで共通して出力される共通エラーの識別子と、共通エラーが出力された際に、ユーザ端末に出力する共通エラーメッセージを対応づけた共通エラーデータと、部品提供サーバの識別子と、部品提供サーバが出力するエラーレスポンスに含まれるエラーの識別子と、エラーの内容に対応する共通エラーの識別子を対応づけたエラーデータとを記憶するステップと、部品提供サーバがエラーレスポンスを出力すると、コンピュータが、エラーデータから、エラーレスポンスの出力元の部品提供サーバの識別子と、エラーレスポンスに含まれるエラーの識別子に対応づけられた共通エラーの識別子を取得するステップと、コンピュータが、共通エラーデータから、取得した共通エラーの識別子に対応する共通エラーメッセージを取得し、取得した共通エラーメッセージに基づいて、エラーレスポンスを通知エラーメッセージに変換するステップを備える。
【0016】
本発明の第3の特徴は、コンピュータに、本発明の第1の特徴に記載のエラー変換サーバとして機能させるためのエラー変換プログラムに関する。
【発明の効果】
【0017】
本発明によれば、各部品提供サーバが出力する独自のエラー情報を、ユーザ端末で理解しやすい形式で出力するエラー変換サーバ、エラー変換方法およびエラー変換プログラムを提供することができる。
【図面の簡単な説明】
【0018】
【図1】本発明の実施の形態に係るサービス提供システムのシステム構成を説明する図である。
【図2】本発明の実施の形態に係るサービス提供システムのサービス提供方法を説明するシーケンス図である。
【図3】本発明の実施の形態に係るアプリケーション提供サーバのハードウエア構成と機能ブロックを説明する図である。
【図4】本発明の実施の形態に係るエラー変換サーバのハードウエア構成と機能ブロックを説明する図である。
【図5】本発明の実施の形態に係るエラー種別データのデータ構造とデータの一例を説明する図である。
【図6】本発明の実施の形態に係る共通エラーデータのデータ構造とデータの一例を説明する図である。
【図7】本発明の実施の形態に係るエラーデータのデータ構造とデータの一例を説明する図である。
【図8】本発明の実施の形態に係るエラー形式データのデータ構造とデータの一例を説明する図である。
【図9】本発明の実施の形態に係るエラーメッセージ変換部によるエラーメッセージ変換処理を説明するフローチャートである。
【図10】本発明の実施の形態に係るエラー定義部によるエラー定義処理を説明するフローチャートである。
【図11】本発明の実施の形態に係るエラー定義処理におけるエラーデータ更新処理を説明するフローチャートである。
【発明を実施するための形態】
【0019】
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一または類似の部分には同一または類似の符号を付している。
【0020】
(サービス提供システム)
図1を参照して、本発明の実施の形態に係るエラー変換サーバ1が用いられるサービス提供システム5は、エラー変換サーバ1、アプリケーション提供サーバ2、部品提供サーバ3a、3bおよび3cを備える。エラー変換サーバ1、アプリケーション提供サーバ2、部品提供サーバ3a、3bおよび3cは、第1の通信ネットワーク10を介して相互に通信可能に接続される。アプリケーション提供サーバ2は、第2の通信ネットワーク20を介して、ユーザ端末30a、30bおよび30cに接続する。第1の通信ネットワーク10および第2の通信ネットワーク20は、LAN(Local Area Network)、インターネットなどの相互に通信可能なネットワークである。
【0021】
本発明の実施の形態において、1台のエラー変換サーバ1および1台のアプリケーション提供サーバ2を備える場合を説明するが、これに限らない。エラー変換サーバ1およびアプリケーション提供サーバ2は、それぞれ複数のコンピュータにより構成されても良い。また、エラー変換サーバ1の機能は、アプリケーション提供サーバ2または部品提供サーバ3に実装されても良い。
【0022】
図1において3台の部品提供サーバ3を備える場合を説明するが、部品提供サーバ3の機能を実現するコンピュータが、1台以上あればよい。同様に、3台のユーザ端末30を備える場合を説明するが、ユーザ端末30の機能を実現するコンピュータが、1台以上あればよい。本発明の実施の形態において、部品提供サーバ3a、3bおよび3cを特に区別しない場合、単に部品提供サーバ3と記載する場合がある。ユーザ端末30a、30bおよび30cを特に区別しない場合、単にユーザ端末30と記載する場合がある。
【0023】
エラー変換サーバ1は、部品提供サーバ3の処理においてエラーが発生した場合、部品提供サーバ3から出力されたエラーレスポンスを、ユーザ端末30に通知するメッセージに変換する。エラーレスポンスは、JSON(JavaScript(登録商標) Object Notation)などの構造定義形式により生成される。部品提供サーバ3が出力するエラーレスポンスは、エラー種別毎に設けられる構造体を有し、この構造体は、エラーレスポンスの送信元の部品提供サーバ3で生じたエラーの識別子を含む。エラー変換サーバ1は、部品提供サーバ3が出力するエラーレスポンスを、ユーザ端末30に通知するメッセージを含むエラーレスポンスに変換する。
【0024】
アプリケーション提供サーバ2は、ユーザ端末30からのリクエストを、部品提供サーバ3が提供する部品を使って処理し、処理結果をユーザ端末30に返す。部品提供サーバ3からエラーレスポンスを受信した場合、アプリケーション提供サーバ2は、エラー変換サーバ1がエラーレスポンスから変換した通知エラーメッセージを、ユーザ端末30に返す。
【0025】
部品提供サーバ3は、イネーブラとも称され、アプリケーション提供サーバ2から、Web APIを介して呼び出され、処理結果をアプリケーション提供サーバ2に返す。部品提供サーバ3は、処理中にエラーが生じると、アプリケーション提供サーバ2にエラーレスポンスを返す。
【0026】
図2を参照して本発明の実施の形態に係るサービス提供システムの処理を説明する。
【0027】
ステップS1においてユーザ端末30は、アプリケーション提供サーバ2にリクエストを送信する。アプリケーション提供サーバ2は、ユーザ端末30から受信したリクエストを処理する際、所定の部品機能の処理結果を得るために、ステップS2において部品提供サーバ3にリクエストを送信する。部品提供サーバ3は、ステップS3において、ステップS2で受信したリクエストを処理し、ステップS4において、ステップS2のリクエストに対するレスポンスを、アプリケーション提供サーバ2に返す。ここで部品提供サーバ3は、リクエストを正常に処理できなかった場合、エラーレスポンスを返す。
【0028】
ステップS5においてアプリケーション提供サーバ2は、ステップS4で受信したレスポンスがエラーレスポンスか否かを判定する。エラーレスポンスでない場合、アプリケーション提供サーバ2は、ステップS6において、ステップS1のリクエストに対するレスポンスを、ユーザ端末30に返す。ステップS6で送信されるレスポンスは、ステップS1で受信したリクエストに対する処理結果を含む。
【0029】
一方、ステップS4で受信したレスポンスに、エラーレスポンスである場合、ステップS7においてアプリケーション提供サーバ2は、エラー変換サーバ1にエラー特定リクエストを送信する。このエラー特定リクエストは、ステップS4で受信したエラーレスポンスを含む。
【0030】
ステップS8においてエラー変換サーバ1は、エラーレスポンスに含まれるエラーの識別子から、ユーザに通知する通知エラーメッセージを特定する。ステップS9においてエラー変換サーバ1は、ステップS7のエラー特定リクエストに対するエラー特定レスポンスを、アプリケーション提供サーバ2に返す。エラー特定レスポンスは、ステップS8で特定された通知エラーメッセージを含む。
【0031】
ステップS10においてアプリケーション提供サーバ2は、ステップS1のリクエストに対するレスポンスを、ユーザ端末30に返す。ステップS10で送信されるレスポンスは、ステップS8で特定された通知エラーメッセージを含む。
【0032】
なお図2に示す例では、アプリケーション提供サーバ2は、ユーザ端末30からのリクエストを処理するために、1つの部品提供サーバ3にリクエストを送信しているが、複数の部品提供サーバ3に送信しても良い。
【0033】
(アプリケーション提供サーバ)
図3を参照して本発明の実施の形態に係るアプリケーション提供サーバ2を説明する。アプリケーション提供サーバ2は、記憶装置210、処理装置220および通信制御装置230を備える一般的なコンピュータである。一般的なコンピュータがアプリケーション提供プログラムを実行することにより、図3に示す機能を実現する。
【0034】
記憶装置210は、ROM(Read Only Memory)、RAM(Random access memory)、ハードディスク等であって、処理装置220が処理を実行するための入力データ、出力データおよび中間データなどの各種データを記憶する。処理装置220は、CPU(Central Processing Unit)であって、記憶装置210に記憶されたデータを読み書きしたり、通信制御装置230とデータを入出力したりして、アプリケーション提供サーバ2における処理を実行する。通信制御装置230は、アプリケーション提供サーバ2が、他のコンピュータと通信するためのインタフェースとなる。
【0035】
処理装置220は、リクエスト処理部221およびレスポンス処理部222を備える。
【0036】
リクエスト処理部221は、ユーザ端末30から送信されたリクエストを処理する。リクエスト処理部221は、リクエストの処理に際し、そのリクエストの処理に必要な部品機能を提供する部品提供サーバ3にリクエストを処理する。リクエスト処理部221の処理は、図2のS1ないしS2に対応する。
【0037】
レスポンス処理部222は、リクエスト処理部221が部品提供サーバ3に送信したリクエストに対して、部品提供サーバ3から受信したレスポンスを処理する。レスポンス処理部222は、部品提供サーバ3からエラーレスポンスでないレスポンスを受信した場合、ユーザ端末30から送信されたリクエストに対して処理した結果を含むレスポンスを、ユーザ端末30に送信する。この処理は、図1のステップS4ないしS6に対応する。
【0038】
一方、部品提供サーバ3からエラーレスポンスを受信した場合、レスポンス処理部222は、レスポンス処理部222が備える通知エラーメッセージ取得部223にエラーレスポンスを処理させる。この処理は、図1のステップS5およびS7に対応する。
【0039】
通知エラーメッセージ取得部223は、アプリケーション提供サーバ2が部品提供サーバ3から受信したエラーレスポンスを処理する。通知エラーメッセージ取得部223は、エラーレスポンスを含むエラー特定リクエストを、エラー変換サーバ1に送信し、エラー変換サーバ1からエラーレスポンスに対応する通知エラーメッセージを取得する。この処理は、図1のステップS7およびS9に対応する。
【0040】
レスポンス処理部222は、ユーザ端末30から送信されたリクエストに対するレスポンスとして、通知エラーメッセージ取得部223が取得した通知エラーメッセージを、ユーザ端末30に送信する。この処理は、図1のステップS9ないしS10に対応する。
【0041】
(エラー変換サーバ)
図4を参照して本発明の実施の形態に係るエラー変換サーバ1を説明する。エラー変換サーバ1は、記憶装置110、処理装置120および通信制御装置130を備える一般的なコンピュータである。一般的なコンピュータがエラー変換プログラムを実行することにより、図4に示す機能を実現する。
【0042】
記憶装置110は、ROM(Read Only Memory)、RAM(Random access memory)、ハードディスク等であって、処理装置120が処理を実行するための入力データ、出力データおよび中間データなどの各種データを記憶する。処理装置120は、CPU(Central Processing Unit)であって、記憶装置110に記憶されたデータを読み書きしたり、通信制御装置130とデータを入出力したりして、エラー変換サーバ1における処理を実行する。通信制御装置130は、エラー変換サーバ1が、他のコンピュータと通信するためのインタフェースとなる。
【0043】
記憶装置110は、エラー種別データ111、共通エラーデータ112、エラーデータ113およびエラー形式データ114を記憶する。エラー種別データ111、共通エラーデータ112、エラーデータ113およびエラー形式データ114は、データベースにより管理されても良い。エラー種別データ111、共通エラーデータ112およびエラーデータ113は、後述のエラーメッセージ変換部121により参照されるデータである。エラー形式データ114は、後述のエラー定義部122がエラー種別データ111およびエラーデータ113を更新する際に参照されるデータである。
【0044】
エラー種別データ111は、部品提供サーバ3の識別子と、部品提供サーバ3が出力するエラーレスポンスに含まれるエラー種別とを対応づけたである。エラー種別データ111は、例えば図5に示すように部品提供サーバ3の識別子“0001”に、エラー種別“code”を対応づける。このレコードは、部品提供サーバ3の識別子“0001”が出力するエラーレスポンスに、エラー種別“code”の構造体に、部品提供サーバ3で生じたエラーの識別子が含まれることを示す。
【0045】
共通エラーデータ112は、複数の部品提供サーバ3で共通して出力される共通エラーの識別子と、共通エラーが出力された際に、ユーザ端末30に出力する共通エラーメッセージを対応づける。共通エラーデータ112は、例えば図6に示すように、共通エラーの識別子“C0001”に、共通エラーメッセージ“認証エラー”を対応づける。このレコードは、部品提供サーバ3で共通エラーの識別子“C0001”に対応するエラーが生じると、ユーザ端末30に、共通エラーメッセージ“認証エラー”が通知されることを示す。なお共通エラーデータ112は、各共通エラーの意味を特定するデータのための項目を備えても良い。
【0046】
エラーデータ113は、部品提供サーバ3の識別子と、部品提供サーバ3が出力するエラーレスポンスに含まれるエラーの識別子と、エラーの内容に対応する共通エラーの識別子を対応づけたデータである。エラーデータ113は、共通エラーの識別子の代わりに、ユーザ端末30に通知する個別エラーメッセージが、対応づけられても良い。
【0047】
エラーデータ113は、例えば図7に示すように、部品提供サーバ3の識別子“0001”およびエラーの識別子“SVC0001”に、共通エラーの識別子“C0001”および個別エラーメッセージ“(null)”を対応づける。このレコードは、部品提供サーバ3の識別子“0001”からエラーの識別子“SVC0001”を含むエラーレスポンスが出力されると、共通エラーの識別子“C0001”の共通エラーメッセージが、ユーザ端末30に通知されることを示す。
【0048】
また、エラーデータ113は、部品提供サーバ3の識別子“0001”およびエラーの識別子“SVC0002”に、共通エラーの識別子“(null)”および個別エラーメッセージ“内部エラー”を対応づける。このレコードは、部品提供サーバ3の識別子“0001”からエラーの識別子“SVC0002”を含むエラーレスポンスが出力されると、個別エラーメッセージ“内部エラー”が、ユーザ端末30に通知されることを示す。
【0049】
またエラーデータ113は、個別エラーメッセージに、エラーが生じた部品提供サーバ3の名称等を設定可能なパラメータを含んでも良い。例えば、図に示す例において、部品提供サーバ3の識別子“0002”およびエラーの識別子“EC−0001”に、共通エラーの識別子“(null)”および個別エラーメッセージ“{パラメータ}による内部エラー”を対応づける。このような個別エラーメッセージがユーザ端末30に通知される場合、“{パラメータ}”に、エラーレスポンスの送信元の部品提供サーバ3の名称等の識別子が設定される。
【0050】
このように、エラーデータ113において、共通エラーの識別子および個別エラーメッセージの一方にのみ、値が設定されるように制御される。これにより、共通エラーメッセージまたは個別エラーメッセージのうち、値が設定された項目に基づいて、ユーザ端末30に、通知エラーメッセージを通知することを可能にする。
【0051】
エラー形式データ114は、部品提供サーバ3が出力するエラーレスポンスについて、エラーの種別と、エラーの識別子と、エラーの内容とを対応づけたデータである。エラー形式データ114は、サービス提供システム5に新たな部品提供サーバ3が導入された場合、または部品提供サーバ3が出力するエラーレスポンスの仕様が変更された場合などに、エラー変換サーバ1が部品提供サーバ3等から取得される。
【0052】
エラー形式データ114は、図8に示すように、エラー種別114aに属するエラーについて、エラーリスト114bを含み、エラーリスト114bは、エラーの識別子114cとそのエラーの内容114dとを対応づける。図8に示す例では、エラー種別「errorCode」について、エラーの識別子「SVC0001」のエラーの内容は、「Missing token parameter」であり、エラーの識別子「SVC0002」のエラーの内容は、「Invalid input value」であることを示す。エラー形式データ114は、複数のエラー種別のそれぞれに対応する、複数のエラーリストを含んでも良い。なお、図8に示すエラー形式データ114は、一例であって、OpenAPI Specification( https://swagger.io/specification/)におけるAPIレスポンス仕様に基づく。
【0053】
処理装置120は、エラーメッセージ変換部121と、エラー定義部122を備える。
【0054】
(エラーメッセージ変換部)
エラーメッセージ変換部121は、部品提供サーバ3がエラーレスポンスを出力した際、エラーレスポンスに含まれるエラーを、ユーザ端末30に通知する通知エラーメッセージに変換する。エラーメッセージ変換部121は、図2に示すようにアプリケーション提供サーバ2からエラーレスポンスを受信しても良いし、部品提供サーバ3から直接エラーレスポンスを受信しても良い。
【0055】
エラーメッセージ変換部121は、まず、部品提供サーバ3がエラーレスポンスを出力すると、エラー種別データ111から、エラーレスポンスの出力元の部品提供サーバ3の識別子に対応づけられたエラー種別を取得し、取得したエラー種別に対応する、エラーレスポンスの構造体から、エラーの識別子を取得する。エラーメッセージ変換部121は、図2に示すようにアプリケーション提供サーバ2からエラーレスポンスを受信しても良いし、部品提供サーバ3から受信しても良い。ここでエラーメッセージ変換部121は、エラー種別データ111を参照してエラーレスポンスにおいてエラーが記載されている構造体を特定し、特定された構造体から、エラーの識別子を特定する。
【0056】
エラーメッセージ変換部121は、エラーレスポンスに含まれるエラーの識別子を特定すると、特定されたエラーが、共通エラーであるか否かを判定する。具体的には、共通エラーの識別子が、エラーレスポンスの送信元の部品提供サーバ3の識別子と、エラーレスポンスに含まれるエラーの識別子に対応づけられている場合、このエラーは、共通エラーであると判定する。一方、個別エラーメッセージが、エラーレスポンスの送信元の部品提供サーバ3の識別子と、エラーレスポンスに含まれるエラーの識別子に対応づけられている場合、このエラーは、共通エラーでないと判定する。
【0057】
部品提供サーバ3が出力したエラーレスポンスに含まれるエラーが共通エラーである場合、エラーメッセージ変換部121は、共通エラーデータ112に含まれる共通エラーメッセージから、通知エラーメッセージに変換する。具体的にはエラーメッセージ変換部121は、エラーデータ113から、エラーレスポンスの出力元の部品提供サーバ3の識別子と、エラーレスポンスに含まれるエラーの識別子に対応づけられた共通エラーの識別子を取得し、共通エラーデータ112から、取得した共通エラーの識別子に対応する共通エラーメッセージを取得する。エラーメッセージ変換部121は、取得した共通エラーメッセージに基づいて、エラーレスポンスをユーザ端末30に通知するメッセージ(通知エラーメッセージ)に変換する。
【0058】
部品提供サーバ3が出力したエラーレスポンスに含まれるエラーが共通エラーでない場合、エラーメッセージ変換部121は、エラーデータ113に含まれる個別エラーメッセージから、通知エラーメッセージに変換する。具体的には、エラーメッセージ変換部121は、エラーデータ113から、エラーレスポンスの出力元の部品提供サーバ3の識別子と、エラーレスポンスに含まれるエラーの識別子に対応づけられた個別エラーメッセージを取得する。エラーメッセージ変換部121は、取得した個別エラーメッセージに基づいて、エラーレスポンスをユーザ端末30に通知するメッセージ(通知エラーメッセージ)に変換する。
【0059】
本発明の実施の形態においてエラーメッセージ変換部121は、所定の部品提供サーバ3が出力したエラーレスポンスについて、その部品提供サーバ3の名称等の識別子を含む通知エラーメッセージを出力しても良い。エラーメッセージ変換部121は、エラーを生じた部品提供サーバ3の名称をユーザ端末30に提供可能な場合、通知エラーメッセージに、部品提供サーバ3の名称を含ませ、エラーを生じた部品提供サーバ3の名称をユーザ端末30に対して隠蔽する場合、通知エラーメッセージに、部品提供サーバの名称を含ませないように制御する。これにより、他業者が提供する部品提供サーバ3を用いてアプリケーション提供サーバ2が処理を行う場合など、部品提供サーバ3の製造元をユーザ端末30に通知したくない場合にも対応することができる。
【0060】
部品提供サーバ3の名称を通知エラーメッセージに含ませる、または含ませないための具体的な方法はいくつか考えられる。本発明の実施の形態において、図7を参照して説明したように、 “{パラメータ}”を含む個別エラーメッセージが対応づけられている場合、 “{パラメータ}”に、エラーレスポンスの送信元の部品提供サーバ3の名称等の識別子が設定され、通知エラーメッセージを特定する。
【0061】
図9を参照して、本発明の実施の形態に係るエラーメッセージ変換部121によるエラーメッセージ変換処理を説明する。
【0062】
まずステップS101においてエラーメッセージ変換部121は、エラーレスポンスの受信を待機する。ここでエラーメッセージ変換部121は、定期的にアプリケーション提供サーバ2または部品提供サーバ3に、能動的にエラーレスポンスの有無を問い合わせても良い。
【0063】
エラーレスポンスを受信すると、ステップS102においてエラーメッセージ変換部121は、エラーレスポンスの送信元の部品提供サーバ3の識別子を特定する。さらにステップS103においてエラーメッセージ変換部121は、エラー種別データ111から、ステップS102で特定した送品もとの部品提供サーバ3が出力するエラー種別を特定する。例えば、送信元の部品提供サーバ3の識別子が“0001”の場合、エラー種別“code”を特定する。
【0064】
ステップS104においてエラーメッセージ変換部121は、ステップS101で受信したエラーレスポンスから、エラー種別“code”に関連するエラーの識別子を特定する。エラーメッセージ変換部121は、エラーレスポンスから、エラー種別“code”に関連する構造体を特定し、特定された構造体から、エラーの識別子を取得する。
【0065】
ステップS105においてエラーメッセージ変換部121は、エラーデータ113から、送信元の部品提供サーバ3の識別子と、ステップS104で取得したエラーの識別子に関するデータを取得する。ここで取得されるデータは、より具体的には、共通エラーの識別子または個別エラーメッセージである。
【0066】
ステップS106においてエラーメッセージ変換部121は、共通エラーの識別子にnullが設定されているか否かを判定する。nullが設定されている場合、ステップS107においてエラーメッセージ変換部121は、ステップS105で取得したデータから個別エラーメッセージを特定する。ステップS108においてエラーメッセージ変換部121は、ステップS107で特定した個別エラーメッセージを、通知エラーメッセージとして出力する。
【0067】
一方共通エラーの識別子にnullが設定されていない場合、ステップS109においてエラーメッセージ変換部121は、ステップS105で取得したデータから、共通エラーの識別子を特定する。ステップS110においてエラーメッセージ変換部121は、共通エラーデータ112から、ステップS109で特定した共通エラーの識別子に対応する共通エラーのメッセージを取得する。ステップS111においてエラーメッセージ変換部121は、ステップS110で取得した共通エラーのメッセージを、通知エラーメッセージとして出力する。
【0068】
なお、ステップS108またはステップS111で出力された通知エラーメッセージは、ユーザ端末30に送信される。この際、図2に示すように、エラーメッセージ変換部121が出力した通知エラーメッセージは、アプリケーション提供サーバ2により受信され、アプリケーション提供サーバ2が、ユーザ端末30に送信するレスポンスに、通知エラーメッセージを含ませる。アプリケーション提供サーバ2は、レスポンスから、部品提供サーバ3が設定したエラーの識別子等の情報を、通知エラーメッセージに置換しても良い。
【0069】
(エラー定義部)
エラー定義部122は、エラーメッセージ変換部121が、部品提供サーバ3が出力したエラーレスポンスに含まれるエラーを、ユーザ端末30に通知する通知エラーメッセージに変換する際に参照されるデータを管理する。エラー定義部122は、部品提供サーバ3が出力するエラーの仕様等が変更になった場合や、部品提供サーバ3の追加または削除に応じて、エラー種別データ111またはエラーデータ113を更新する。
【0070】
エラー定義部122は、部品提供サーバ3から、部品提供サーバ3が出力するエラーの種別と、エラーの種別に対応するエラーの識別子およびエラーの内容を含むエラー形式データ114を取得する。エラー定義部122は、エラーの識別子のそれぞれについて、エラーの内容に対応する共通エラーがある場合、部品提供サーバの識別子と、エラーの識別子と、エラーの内容に対応する共通エラーの識別子を対応づけて、エラーデータを更新する。またエラー定義部122は、エラーの内容に対応する共通エラーがない場合、部品提供サーバ3の識別子と、エラーの識別子と、個別エラーメッセージを対応づけて、エラーデータを更新する。
【0071】
エラー定義部122は、部品提供サーバ3から図8に示すエラー形式データ114を取得して、この部品提供サーバ3が出力するエラーの種別と、このエラーの種別に属するエラーの識別子とその内容とを把握する。エラー定義部122は、エラーの内容と、共通エラーデータ112で定義されたエラーの内容とを比較して、エラー形式データ114で定義されるエラーの内容が、共通エラーデータ112で定義される共通エラーの内容に対応するか否かを判定する。エラー形式データ114で定義されるエラーの内容が、共通エラーデータ112で定義される共通エラーの内容に対応する場合、エラー定義部122は、その対応する共通エラーの識別子に対応する共通エラーのメッセージが、ユーザ端末30に通知されるように制御する。一方、エラー形式データ114で定義されるエラーの内容が、共通エラーデータ112で定義される共通エラーの内容に対応しない場合、エラー定義部122は、個別エラーメッセージがユーザ端末30に通知されるように制御される。
【0072】
ここで、個別エラーメッセージは、「内部エラー」などの汎用的なメッセージでも良い。またエラー定義部122は、エラーを生じた部品提供サーバ3の名称等を隠蔽する必要がある場合、個別エラーメッセージを、単に「内部エラー」とする。一方部品提供サーバ3の名称等を隠蔽する必要がない場合、エラー定義部122は、個別エラーメッセージを「{パラメータ}による内部エラー」とする。エラー定義部122は、個別エラーメッセージに、部品提供サーバ3の名称等を挿入できるような「{パラメータ}」を含ませることにより、エラーメッセージ変換部121が、パラメータにエラーが生じた部品提供サーバ3の識別子を設定できる。
【0073】
図10および図11を参照して、本発明の実施の形態に係るエラー定義部122によるエラー定義処理を説明する。
【0074】
まずステップS201においてエラー定義部122は、エラー形式に変更が生じた部品提供サーバ3や新たにサービス提供システム5に導入された部品提供サーバ3から、エラー形式データ114を受信する。ステップS202においてエラー定義部122は、エラー形式データ114からエラーの種別を抽出し、エラー種別データ111を更新する。エラー定義部122は、例えば図8に示すエラー形式データ114から、エラーの種別「errorCode」を取得し、このエラー形式データ114の送信元の部品提供サーバ3の識別子と、エラーの種別「errorCode」を対応づけたレコードを、エラー種別データ111に挿入する。
【0075】
ステップS203においてエラー定義部122は、エラーの種別「errorCode」に関するエラーリストを取得し、ステップS204において、エラーリストに含まれる各エラー識別子について、エラーデータ113を更新する。各エラー識別子についてエラーデータ113を更新すると、処理を終了する。
【0076】
図11を参照して、図10のステップS204のエラーデータ更新処理を説明する。
【0077】
ステップS251においてエラー定義部122は、エラー形式データ114から、送信元の部品提供サーバ3の識別子、エラーの識別子およびエラーの内容を取得する。ステップS252においてエラー定義部122は、ステップS251で取得したエラーの内容が共通エラーデータ112で定義される共通エラーの内容と同一であるか否かを判断する。
【0078】
ステップS251で取得したエラーの内容が共通エラーデータ112で定義される共通エラーの内容と同一である場合、ステップS253に進む。ステップS253においてエラー定義部122は、エラーの内容が同一の共通エラーの識別子を特定する。ステップS254においてエラー定義部122は、ステップS251で取得した部品提供サーバ3の識別子と、エラーの識別子と、ステップS253で特定した共通エラーの識別子を対応づけたレコードを、エラーデータ113に挿入する。ここでエラーデータ113の個別エラーメッセージ欄には、nullが設定される。
【0079】
ステップS251で取得したエラーの内容が共通エラーデータ112で定義される共通エラーの内容と同一でない場合、ステップS255に進み、個別エラーメッセージを設定する。ステップS255においてエラー定義部122は、部品提供サーバ3の名称が隠蔽対象であるか否かを判定する。
【0080】
隠蔽対象でない場合、ステップS256においてエラー定義部122は、部品提供サーバ3の名称を含む個別エラーメッセージを生成する。エラー定義部122は、例えば、個別エラーメッセージとして、「{パラメータ}による内部エラー」を設定し、上述のエラーメッセージ変換部121が、パラメータに、エラーが生じた部品提供サーバ3の識別子を設定できるようにしても良い。
【0081】
一方隠蔽対象である場合、ステップS257においてエラー定義部122は、部品提供サーバ3の名称を含まない個別エラーメッセージを生成する。エラー定義部122は、例えば、個別エラーメッセージとして、「内部エラー」を設定する。
【0082】
このような本発明の実施の形態に係るエラー変換サーバ1は、部品提供サーバ3から出力されるエラーについて、ユーザに通知する通知エラーメッセージに変換することにより、ユーザ端末30においてエラーを把握しやすくすることができる。
【0083】
特にエラー変換サーバ1は、各部品提供サーバ3で共通するエラーについては、共通のエラーメッセージを通知することにより、ユーザ端末30におけるエラー把握量を減らし、より負担を軽減することができる。また共通化できないエラーメッセージについても、個別にエラーメッセージを通知することにより、ユーザ端末30においてエラーの状況を適切に把握することができる。
【0084】
さらにエラー変換サーバ1は、エラーデータ113の個別エラーメッセージに、パラメータを設定するか否かにより、エラーが生じた部品提供サーバ3の名称等をユーザ端末30に通知するか否かを、容易に制御することができる。
【0085】
このように本発明の実施の形態に係るエラー変換サーバは、各部品提供サーバ3が出力する独自のエラー情報を、ユーザ端末30で理解しやすい形式で出力することを可能にする。
【0086】
(変形例)
本発明の実施の形態において、エラーデータ113の個別エラーメッセージに、エラーが生じた部品提供サーバ3の名称等を設定するパラメータを含ませることにより、部品提供サーバ3の名称をユーザ端末30に通知し、パラメータを含ませないことにより、部品提供サーバ3の名称をユーザ端末30に対して隠蔽する場合を説明したがこれに限られない。
【0087】
例えば、エラー変換サーバ1が、ユーザ端末30に名称を提供しても良い部品提供サーバ3の識別子のリストを保持する方法が考えられる。エラーレスポンスの出力元の部品提供サーバ3の識別子がこのリストに含まれる場合、個別エラーメッセージまたは共通エラーメッセージに、「エラー出力元の部品提供サーバの識別子:0001」など、エラー出力元の部品提供サーバ3の識別子等を追記しても良い。
【0088】
このように、部品提供サーバ3の名称等を、ユーザ端末30に通知するか否かは、どのように制御されても良い。
【0089】
(その他の実施の形態)
上記のように、本発明の実施の形態とその変形例によって記載したが、この開示の一部をなす論述および図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例および運用技術が明らかとなる。
【0090】
例えば、本発明の実施の形態に記載したエラー変換サーバ1は、図4に示すように一つのハードウエア上に構成されても良いし、その機能や処理数に応じて複数のハードウエア上に構成されても良い。また、既存のアプリケーション提供サーバ2または部品提供サーバ3上に実現されても良い。
【0091】
本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。従って、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【符号の説明】
【0092】
1 エラー変換サーバ
2 アプリケーション提供サーバ
3 部品提供サーバ
5 サービス提供システム
10、20 通信ネットワーク
30 ユーザ端末
110、210 記憶装置
111 エラー種別データ
112 共通エラーデータ
113 エラーデータ
114 エラー形式データ
120、220 処理装置
121 エラーメッセージ変換部
122 エラー定義部
130、230 通信制御装置
221 リクエスト処理部
222 レスポンス処理部
223 通知エラーメッセージ取得部
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】