(57)【要約】【課題】各部品提供サーバが出力する独自のエラー情報を、ユーザ端末で理解しやすい形式で出力する。【解決手段】エラー変換サーバ１は、部品提供サーバ３がエラーレスポンスを出力すると、エラーデータ１１３から、エラーレスポンスの出力元の部品提供サーバ３の識別子と、エラーレスポンスに含まれるエラーの識別子に対応づけられた共通エラーの識別子を取得し、共通エラーデータ１１２から、取得した共通エラーの識別子に対応する共通エラーメッセージを取得し、取得した共通エラーメッセージに基づいて、エラーレスポンスを、ユーザ端末３０に通知する通知エラーメッセージに変換するエラーメッセージ変換部１２１を備える。【選択図】      図２
2019144680.tif 000002
【特許請求の範囲】
【請求項１】
ユーザ端末からのリクエストを、部品提供サーバが提供する部品を使って処理するアプリケーション提供サーバと、複数の部品提供サーバとを備えるサービス提供システムに用いられ、前記部品提供サーバから出力されたエラーレスポンスを、前記ユーザ端末に通知する通知エラーメッセージに変換するエラー変換サーバであって、
前記複数の部品提供サーバで共通して出力される共通エラーの識別子と、前記共通エラーが出力された際に、前記ユーザ端末に出力する共通エラーメッセージを対応づけた共通エラーデータと、
前記部品提供サーバの識別子と、前記部品提供サーバが出力するエラーレスポンスに含まれるエラーの識別子と、前記エラーの内容に対応する前記共通エラーの識別子を対応づけたエラーデータとを記憶する記憶装置と、
前記部品提供サーバがエラーレスポンスを出力すると、
前記エラーデータから、前記エラーレスポンスの出力元の部品提供サーバの識別子と、前記エラーレスポンスに含まれるエラーの識別子に対応づけられた共通エラーの識別子を取得し、
前記共通エラーデータから、取得した前記共通エラーの識別子に対応する共通エラーメッセージを取得し、取得した前記共通エラーメッセージに基づいて、前記エラーレスポンスを前記ユーザ端末に通知する通知エラーメッセージに変換するエラーメッセージ変換部
を備えることを特徴とするエラー変換サーバ。
【請求項２】
前記エラーデータは、前記部品提供サーバが出力するエラーレスポンスに含まれるエラーの内容に対応する共通エラーがない場合、前記部品提供サーバの識別子と、前記部品提供サーバが出力するエラーレスポンスに含まれるエラーの識別子と、前記ユーザ端末に通知する個別エラーメッセージを対応づけて記憶し、
前記エラーメッセージ変換部は、前記エラーデータから、前記エラーレスポンスの出力元の部品提供サーバの識別子と、前記エラーレスポンスに含まれるエラーの識別子に対応づけられた個別エラーメッセージを取得し、
取得した前記個別エラーメッセージに基づいて、前記エラーレスポンスを前記通知エラーメッセージに変換する
ことを特徴とする請求項１に記載のエラー変換サーバ。
【請求項３】
前記記憶装置はさらに、
前記部品提供サーバの識別子と、前記部品提供サーバが出力するエラーレスポンスに含まれるエラー種別とを対応づけたエラー種別データを記憶し、
前記エラーレスポンスは、エラー種別毎に設けられる構造体を有し、前記構造体は、前記部品提供サーバで生じたエラーの識別子を含み、
前記エラーメッセージ変換部は、
前記部品提供サーバがエラーレスポンスを出力すると、
前記エラー種別データから、前記エラーレスポンスの出力元の部品提供サーバの識別子に対応づけられたエラー種別を取得し、
取得したエラー種別に対応する前記エラーレスポンスの構造体から、前記エラーの識別子を取得する
ことを特徴とする請求項１に記載のエラー変換サーバ。
【請求項４】
前記エラーメッセージ変換部は、
前記エラーを生じた前記部品提供サーバに関する情報をユーザ端末に提供可能な場合、前記通知エラーメッセージに、前記部品提供サーバに関する情報を含ませ、
前記エラーを生じた前記部品提供サーバに関する情報をユーザ端末に対して隠蔽する場合、前記通知エラーメッセージに、前記部品提供サーバに関する情報を含ませない
ことを特徴とする請求項１に記載のエラー変換サーバ。
【請求項５】
前記部品提供サーバから、前記部品提供サーバが出力するエラーの種別と、前記エラーの種別に対応するエラーの識別子およびエラーの内容を含むエラー形式データを取得し、
前記エラーの識別子のそれぞれについて、前記エラーの内容に対応する前記共通エラーがある場合、前記部品提供サーバの識別子と、前記エラーの識別子と、前記エラーの内容に対応する前記共通エラーの識別子を対応づけて、前記エラーデータを更新するエラー定義部
をさらに備えることを特徴とする請求項１に記載のエラー変換サーバ。
【請求項６】
前記エラー定義部は、前記エラーの内容に対応する前記共通エラーがない場合、前記部品提供サーバの識別子と、前記エラーの識別子と、個別エラーメッセージを対応づけて、前記エラーデータを更新する
ことを特徴とする請求項５に記載のエラー変換サーバ。
【請求項７】
ユーザ端末からのリクエストを、部品提供サーバが提供する部品を使って処理するアプリケーション提供サーバと、複数の部品提供サーバとを備えるサービス提供システムに用いられ、前記部品提供サーバから出力されたエラーレスポンスを、前記ユーザ端末に通知する通知エラーメッセージに変換するエラー変換方法であって、
コンピュータが、記憶装置に、
前記複数の部品提供サーバで共通して出力される共通エラーの識別子と、前記共通エラーが出力された際に、前記ユーザ端末に出力する共通エラーメッセージを対応づけた共通エラーデータと、
前記部品提供サーバの識別子と、前記部品提供サーバが出力するエラーレスポンスに含まれるエラーの識別子と、前記エラーの内容に対応する前記共通エラーの識別子を対応づけたエラーデータとを記憶するステップと、
前記部品提供サーバがエラーレスポンスを出力すると、
前記コンピュータが、エラーデータから、前記エラーレスポンスの出力元の部品提供サーバの識別子と、前記エラーレスポンスに含まれるエラーの識別子に対応づけられた共通エラーの識別子を取得するステップと、
前記コンピュータが、前記共通エラーデータから、取得した前記共通エラーの識別子に対応する共通エラーメッセージを取得し、取得した前記共通エラーメッセージに基づいて、前記エラーレスポンスを前記通知エラーメッセージに変換するステップ
を備えることを特徴とするエラー変換方法。
【請求項８】
コンピュータに、請求項１ないし請求項６のいずれか１項に記載のエラー変換サーバとして機能させるためのエラー変換プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザ端末からのリクエストを、部品提供サーバが提供する部品を使って処理するアプリケーション提供サーバと、複数の部品提供サーバとを備えるサービス提供システムに用いられるエラー変換サーバ、エラー変換方法およびエラー変換プログラムに関する。
【背景技術】
【０００２】
ユーザ端末からの要求をアプリケーション提供サーバが受け、アプリケーション提供サーバが、リクエストを処理するために部品提供サーバを利用するシステムがある。この部品提供サーバは、アプリケーション提供サーバから、Ｗｅｂ  ＡＰＩ（Web Application Programming Interface）を介して呼び出され、イネーブラとも称される。このようなシステムにおいて、アプリケーション提供サーバにおけるアプリケーション開発における負担軽減が期待できる。
【０００３】
アプリケーション提供サーバは、部品提供サーバから処理できない旨のエラーレスポンスを受信すると、そのエラーレスポンスを、ユーザ端末に返す。このエラーレスポンスは例えば、ＡＰＩレスポンスであって、レスポンスの意味を含むＨＴＴＰステータスコード等を含む（非特許文献１参照）。しかしながらＨＴＴＰステータスコードで表現されるエラーの意味は抽象的であるので、一般的に、ＡＰＩレスポンスのボディ部に詳細なエラー情報が含まれる。
【０００４】
このＡＰＩレスポンスのボディ部におけるエラー情報について、近年、標準規定（非特許文献２参照）においてフォーマットが規格化された。しかしながら、現時点では規格に対する準拠度が低く、各部品提供サーバは、それぞれ独自のエラー形式を採用している。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】R. Fielding  他６名、"Hypertext Transfer Protocol -- HTTP/1.1  ’ 10 Status Code Definitions’"、［online］、１９９９年６月、ＩＥＴＦ、［平成３０年２月５日検索］、インターネット〈URL：https://tools.ietf.org/html/rfc2616#section-10〉
【非特許文献２】M. Nottingham  他１名、"Problem Details for HTTP APIs"、［online］、２０１６年３月、ＩＥＴＦ、［平成３０年２月５日検索］、インターネット〈URL：https://tools.ietf.org/html/rfc7807〉
【発明の概要】
【発明が解決しようとする課題】
【０００６】
このように、規格に対する準拠度が低い状況において、ユーザ端末は、アプリケーション提供サーバから取得したエラー情報を把握するために、部品提供サーバそれぞれにおけるエラーに関する情報を収集し、エラー情報と照合する必要がある。
【０００７】
また部品提供サーバの数は増加傾向があり、各ユーザ端末で、全ての部品提供サーバにおけるエラー情報を管理することは困難であり、負担が大きい場合がある。
【０００８】
従って本発明の目的は、各部品提供サーバが出力する独自のエラー情報を、ユーザ端末で理解しやすい形式で出力するエラー変換サーバ、エラー変換方法およびエラー変換プログラムを提供することである。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明の第１の特徴は、ユーザ端末からのリクエストを、部品提供サーバが提供する部品を使って処理するアプリケーション提供サーバと、複数の部品提供サーバとを備えるサービス提供システムに用いられ、部品提供サーバから出力されたエラーレスポンスを、ユーザ端末に通知する通知エラーメッセージに変換するエラー変換サーバに関する。本発明の第１の特徴に係るエラー変換サーバは、複数の部品提供サーバで共通して出力される共通エラーの識別子と、共通エラーが出力された際に、ユーザ端末に出力する共通エラーメッセージを対応づけた共通エラーデータと、部品提供サーバの識別子と、部品提供サーバが出力するエラーレスポンスに含まれるエラーの識別子と、エラーの内容に対応する共通エラーの識別子を対応づけたエラーデータとを記憶する記憶装置と、部品提供サーバがエラーレスポンスを出力すると、エラーデータから、エラーレスポンスの出力元の部品提供サーバの識別子と、エラーレスポンスに含まれるエラーの識別子に対応づけられた共通エラーの識別子を取得し、共通エラーデータから、取得した共通エラーの識別子に対応する共通エラーメッセージを取得し、取得した共通エラーメッセージに基づいて、エラーレスポンスを通知エラーメッセージに変換するエラーメッセージ変換部を備える。
【００１０】
ここでエラーデータは、部品提供サーバが出力するエラーレスポンスに含まれるエラーの内容に対応する共通エラーがない場合、部品提供サーバの識別子と、部品提供サーバが出力するエラーレスポンスに含まれるエラーの識別子と、ユーザ端末に通知する個別エラーメッセージを対応づけて記憶し、エラーメッセージ変換部は、エラーデータから、エラーレスポンスの出力元の部品提供サーバの識別子と、エラーレスポンスに含まれるエラーの識別子に対応づけられた個別エラーメッセージを取得し、取得した個別エラーメッセージに基づいて、エラーレスポンスを通知エラーメッセージに変換しても良い。
【００１１】
記憶装置はさらに、部品提供サーバの識別子と、部品提供サーバが出力するエラーレスポンスに含まれるエラー種別とを対応づけたエラー種別データを記憶し、エラーレスポンスは、エラー種別毎に設けられる構造体を有し、構造体は、部品提供サーバで生じたエラーの識別子を含み、エラーメッセージ変換部は、部品提供サーバがエラーレスポンスを出力すると、エラー種別データから、エラーレスポンスの出力元の部品提供サーバの識別子に対応づけられたエラー種別を取得し、取得したエラー種別に対応するエラーレスポンスの構造体から、エラーの識別子を取得しても良い。
【００１２】
エラーメッセージ変換部は、エラーを生じた部品提供サーバに関する情報をユーザ端末に提供可能な場合、通知エラーメッセージに、部品提供サーバに関する情報を含ませ、エラーを生じた部品提供サーバに関する情報をユーザ端末に対して隠蔽する場合、通知エラーメッセージに、部品提供サーバに関する情報を含ませないように形成されても良い。
【００１３】
部品提供サーバから、部品提供サーバが出力するエラーの種別と、エラーの種別に対応するエラーの識別子およびエラーの内容を含むエラー形式データを取得し、エラーの識別子のそれぞれについて、エラーの内容に対応する共通エラーがある場合、部品提供サーバの識別子と、エラーの識別子と、エラーの内容に対応する共通エラーの識別子を対応づけて、エラーデータを更新するエラー定義部をさらに備えても良い。
【００１４】
エラー定義部は、エラーの内容に対応する共通エラーがない場合、部品提供サーバの識別子と、エラーの識別子と、個別エラーメッセージを対応づけて、エラーデータを更新しても良い。
【００１５】
本発明の第２の特徴は、ユーザ端末からのリクエストを、部品提供サーバが提供する部品を使って処理するアプリケーション提供サーバと、複数の部品提供サーバとを備えるサービス提供システムに用いられ、部品提供サーバから出力されたエラーレスポンスを、ユーザ端末に通知する通知エラーメッセージに変換するエラー変換方法に関する。本発明の第２の特徴に係るエラー変換方法は、コンピュータが、記憶装置に、複数の部品提供サーバで共通して出力される共通エラーの識別子と、共通エラーが出力された際に、ユーザ端末に出力する共通エラーメッセージを対応づけた共通エラーデータと、部品提供サーバの識別子と、部品提供サーバが出力するエラーレスポンスに含まれるエラーの識別子と、エラーの内容に対応する共通エラーの識別子を対応づけたエラーデータとを記憶するステップと、部品提供サーバがエラーレスポンスを出力すると、コンピュータが、エラーデータから、エラーレスポンスの出力元の部品提供サーバの識別子と、エラーレスポンスに含まれるエラーの識別子に対応づけられた共通エラーの識別子を取得するステップと、コンピュータが、共通エラーデータから、取得した共通エラーの識別子に対応する共通エラーメッセージを取得し、取得した共通エラーメッセージに基づいて、エラーレスポンスを通知エラーメッセージに変換するステップを備える。
【００１６】
本発明の第３の特徴は、コンピュータに、本発明の第１の特徴に記載のエラー変換サーバとして機能させるためのエラー変換プログラムに関する。
【発明の効果】
【００１７】
本発明によれば、各部品提供サーバが出力する独自のエラー情報を、ユーザ端末で理解しやすい形式で出力するエラー変換サーバ、エラー変換方法およびエラー変換プログラムを提供することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施の形態に係るサービス提供システムのシステム構成を説明する図である。
【図２】本発明の実施の形態に係るサービス提供システムのサービス提供方法を説明するシーケンス図である。
【図３】本発明の実施の形態に係るアプリケーション提供サーバのハードウエア構成と機能ブロックを説明する図である。
【図４】本発明の実施の形態に係るエラー変換サーバのハードウエア構成と機能ブロックを説明する図である。
【図５】本発明の実施の形態に係るエラー種別データのデータ構造とデータの一例を説明する図である。
【図６】本発明の実施の形態に係る共通エラーデータのデータ構造とデータの一例を説明する図である。
【図７】本発明の実施の形態に係るエラーデータのデータ構造とデータの一例を説明する図である。
【図８】本発明の実施の形態に係るエラー形式データのデータ構造とデータの一例を説明する図である。
【図９】本発明の実施の形態に係るエラーメッセージ変換部によるエラーメッセージ変換処理を説明するフローチャートである。
【図１０】本発明の実施の形態に係るエラー定義部によるエラー定義処理を説明するフローチャートである。
【図１１】本発明の実施の形態に係るエラー定義処理におけるエラーデータ更新処理を説明するフローチャートである。
【発明を実施するための形態】
【００１９】
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一または類似の部分には同一または類似の符号を付している。
【００２０】
（サービス提供システム）
図１を参照して、本発明の実施の形態に係るエラー変換サーバ１が用いられるサービス提供システム５は、エラー変換サーバ１、アプリケーション提供サーバ２、部品提供サーバ３ａ、３ｂおよび３ｃを備える。エラー変換サーバ１、アプリケーション提供サーバ２、部品提供サーバ３ａ、３ｂおよび３ｃは、第１の通信ネットワーク１０を介して相互に通信可能に接続される。アプリケーション提供サーバ２は、第２の通信ネットワーク２０を介して、ユーザ端末３０ａ、３０ｂおよび３０ｃに接続する。第１の通信ネットワーク１０および第２の通信ネットワーク２０は、ＬＡＮ（Local Area Network）、インターネットなどの相互に通信可能なネットワークである。
【００２１】
本発明の実施の形態において、１台のエラー変換サーバ１および１台のアプリケーション提供サーバ２を備える場合を説明するが、これに限らない。エラー変換サーバ１およびアプリケーション提供サーバ２は、それぞれ複数のコンピュータにより構成されても良い。また、エラー変換サーバ１の機能は、アプリケーション提供サーバ２または部品提供サーバ３に実装されても良い。
【００２２】
図１において３台の部品提供サーバ３を備える場合を説明するが、部品提供サーバ３の機能を実現するコンピュータが、１台以上あればよい。同様に、３台のユーザ端末３０を備える場合を説明するが、ユーザ端末３０の機能を実現するコンピュータが、１台以上あればよい。本発明の実施の形態において、部品提供サーバ３ａ、３ｂおよび３ｃを特に区別しない場合、単に部品提供サーバ３と記載する場合がある。ユーザ端末３０ａ、３０ｂおよび３０ｃを特に区別しない場合、単にユーザ端末３０と記載する場合がある。
【００２３】
エラー変換サーバ１は、部品提供サーバ３の処理においてエラーが発生した場合、部品提供サーバ３から出力されたエラーレスポンスを、ユーザ端末３０に通知するメッセージに変換する。エラーレスポンスは、ＪＳＯＮ（JavaScript（登録商標） Object Notation）などの構造定義形式により生成される。部品提供サーバ３が出力するエラーレスポンスは、エラー種別毎に設けられる構造体を有し、この構造体は、エラーレスポンスの送信元の部品提供サーバ３で生じたエラーの識別子を含む。エラー変換サーバ１は、部品提供サーバ３が出力するエラーレスポンスを、ユーザ端末３０に通知するメッセージを含むエラーレスポンスに変換する。
【００２４】
アプリケーション提供サーバ２は、ユーザ端末３０からのリクエストを、部品提供サーバ３が提供する部品を使って処理し、処理結果をユーザ端末３０に返す。部品提供サーバ３からエラーレスポンスを受信した場合、アプリケーション提供サーバ２は、エラー変換サーバ１がエラーレスポンスから変換した通知エラーメッセージを、ユーザ端末３０に返す。
【００２５】
部品提供サーバ３は、イネーブラとも称され、アプリケーション提供サーバ２から、Ｗｅｂ  ＡＰＩを介して呼び出され、処理結果をアプリケーション提供サーバ２に返す。部品提供サーバ３は、処理中にエラーが生じると、アプリケーション提供サーバ２にエラーレスポンスを返す。
【００２６】
図２を参照して本発明の実施の形態に係るサービス提供システムの処理を説明する。
【００２７】
ステップＳ１においてユーザ端末３０は、アプリケーション提供サーバ２にリクエストを送信する。アプリケーション提供サーバ２は、ユーザ端末３０から受信したリクエストを処理する際、所定の部品機能の処理結果を得るために、ステップＳ２において部品提供サーバ３にリクエストを送信する。部品提供サーバ３は、ステップＳ３において、ステップＳ２で受信したリクエストを処理し、ステップＳ４において、ステップＳ２のリクエストに対するレスポンスを、アプリケーション提供サーバ２に返す。ここで部品提供サーバ３は、リクエストを正常に処理できなかった場合、エラーレスポンスを返す。
【００２８】
ステップＳ５においてアプリケーション提供サーバ２は、ステップＳ４で受信したレスポンスがエラーレスポンスか否かを判定する。エラーレスポンスでない場合、アプリケーション提供サーバ２は、ステップＳ６において、ステップＳ１のリクエストに対するレスポンスを、ユーザ端末３０に返す。ステップＳ６で送信されるレスポンスは、ステップＳ１で受信したリクエストに対する処理結果を含む。
【００２９】
一方、ステップＳ４で受信したレスポンスに、エラーレスポンスである場合、ステップＳ７においてアプリケーション提供サーバ２は、エラー変換サーバ１にエラー特定リクエストを送信する。このエラー特定リクエストは、ステップＳ４で受信したエラーレスポンスを含む。
【００３０】
ステップＳ８においてエラー変換サーバ１は、エラーレスポンスに含まれるエラーの識別子から、ユーザに通知する通知エラーメッセージを特定する。ステップＳ９においてエラー変換サーバ１は、ステップＳ７のエラー特定リクエストに対するエラー特定レスポンスを、アプリケーション提供サーバ２に返す。エラー特定レスポンスは、ステップＳ８で特定された通知エラーメッセージを含む。
【００３１】
ステップＳ１０においてアプリケーション提供サーバ２は、ステップＳ１のリクエストに対するレスポンスを、ユーザ端末３０に返す。ステップＳ１０で送信されるレスポンスは、ステップＳ８で特定された通知エラーメッセージを含む。
【００３２】
なお図２に示す例では、アプリケーション提供サーバ２は、ユーザ端末３０からのリクエストを処理するために、１つの部品提供サーバ３にリクエストを送信しているが、複数の部品提供サーバ３に送信しても良い。
【００３３】
（アプリケーション提供サーバ）
図３を参照して本発明の実施の形態に係るアプリケーション提供サーバ２を説明する。アプリケーション提供サーバ２は、記憶装置２１０、処理装置２２０および通信制御装置２３０を備える一般的なコンピュータである。一般的なコンピュータがアプリケーション提供プログラムを実行することにより、図３に示す機能を実現する。
【００３４】
記憶装置２１０は、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random access memory）、ハードディスク等であって、処理装置２２０が処理を実行するための入力データ、出力データおよび中間データなどの各種データを記憶する。処理装置２２０は、ＣＰＵ（Central Processing Unit）であって、記憶装置２１０に記憶されたデータを読み書きしたり、通信制御装置２３０とデータを入出力したりして、アプリケーション提供サーバ２における処理を実行する。通信制御装置２３０は、アプリケーション提供サーバ２が、他のコンピュータと通信するためのインタフェースとなる。
【００３５】
処理装置２２０は、リクエスト処理部２２１およびレスポンス処理部２２２を備える。
【００３６】
リクエスト処理部２２１は、ユーザ端末３０から送信されたリクエストを処理する。リクエスト処理部２２１は、リクエストの処理に際し、そのリクエストの処理に必要な部品機能を提供する部品提供サーバ３にリクエストを処理する。リクエスト処理部２２１の処理は、図２のＳ１ないしＳ２に対応する。
【００３７】
レスポンス処理部２２２は、リクエスト処理部２２１が部品提供サーバ３に送信したリクエストに対して、部品提供サーバ３から受信したレスポンスを処理する。レスポンス処理部２２２は、部品提供サーバ３からエラーレスポンスでないレスポンスを受信した場合、ユーザ端末３０から送信されたリクエストに対して処理した結果を含むレスポンスを、ユーザ端末３０に送信する。この処理は、図１のステップＳ４ないしＳ６に対応する。
【００３８】
一方、部品提供サーバ３からエラーレスポンスを受信した場合、レスポンス処理部２２２は、レスポンス処理部２２２が備える通知エラーメッセージ取得部２２３にエラーレスポンスを処理させる。この処理は、図１のステップＳ５およびＳ７に対応する。
【００３９】
通知エラーメッセージ取得部２２３は、アプリケーション提供サーバ２が部品提供サーバ３から受信したエラーレスポンスを処理する。通知エラーメッセージ取得部２２３は、エラーレスポンスを含むエラー特定リクエストを、エラー変換サーバ１に送信し、エラー変換サーバ１からエラーレスポンスに対応する通知エラーメッセージを取得する。この処理は、図１のステップＳ７およびＳ９に対応する。
【００４０】
レスポンス処理部２２２は、ユーザ端末３０から送信されたリクエストに対するレスポンスとして、通知エラーメッセージ取得部２２３が取得した通知エラーメッセージを、ユーザ端末３０に送信する。この処理は、図１のステップＳ９ないしＳ１０に対応する。
【００４１】
（エラー変換サーバ）
図４を参照して本発明の実施の形態に係るエラー変換サーバ１を説明する。エラー変換サーバ１は、記憶装置１１０、処理装置１２０および通信制御装置１３０を備える一般的なコンピュータである。一般的なコンピュータがエラー変換プログラムを実行することにより、図４に示す機能を実現する。
【００４２】
記憶装置１１０は、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random access memory）、ハードディスク等であって、処理装置１２０が処理を実行するための入力データ、出力データおよび中間データなどの各種データを記憶する。処理装置１２０は、ＣＰＵ（Central Processing Unit）であって、記憶装置１１０に記憶されたデータを読み書きしたり、通信制御装置１３０とデータを入出力したりして、エラー変換サーバ１における処理を実行する。通信制御装置１３０は、エラー変換サーバ１が、他のコンピュータと通信するためのインタフェースとなる。
【００４３】
記憶装置１１０は、エラー種別データ１１１、共通エラーデータ１１２、エラーデータ１１３およびエラー形式データ１１４を記憶する。エラー種別データ１１１、共通エラーデータ１１２、エラーデータ１１３およびエラー形式データ１１４は、データベースにより管理されても良い。エラー種別データ１１１、共通エラーデータ１１２およびエラーデータ１１３は、後述のエラーメッセージ変換部１２１により参照されるデータである。エラー形式データ１１４は、後述のエラー定義部１２２がエラー種別データ１１１およびエラーデータ１１３を更新する際に参照されるデータである。
【００４４】
エラー種別データ１１１は、部品提供サーバ３の識別子と、部品提供サーバ３が出力するエラーレスポンスに含まれるエラー種別とを対応づけたである。エラー種別データ１１１は、例えば図５に示すように部品提供サーバ３の識別子“０００１”に、エラー種別“ｃｏｄｅ”を対応づける。このレコードは、部品提供サーバ３の識別子“０００１”が出力するエラーレスポンスに、エラー種別“ｃｏｄｅ”の構造体に、部品提供サーバ３で生じたエラーの識別子が含まれることを示す。
【００４５】
共通エラーデータ１１２は、複数の部品提供サーバ３で共通して出力される共通エラーの識別子と、共通エラーが出力された際に、ユーザ端末３０に出力する共通エラーメッセージを対応づける。共通エラーデータ１１２は、例えば図６に示すように、共通エラーの識別子“Ｃ０００１”に、共通エラーメッセージ“認証エラー”を対応づける。このレコードは、部品提供サーバ３で共通エラーの識別子“Ｃ０００１”に対応するエラーが生じると、ユーザ端末３０に、共通エラーメッセージ“認証エラー”が通知されることを示す。なお共通エラーデータ１１２は、各共通エラーの意味を特定するデータのための項目を備えても良い。
【００４６】
エラーデータ１１３は、部品提供サーバ３の識別子と、部品提供サーバ３が出力するエラーレスポンスに含まれるエラーの識別子と、エラーの内容に対応する共通エラーの識別子を対応づけたデータである。エラーデータ１１３は、共通エラーの識別子の代わりに、ユーザ端末３０に通知する個別エラーメッセージが、対応づけられても良い。
【００４７】
エラーデータ１１３は、例えば図７に示すように、部品提供サーバ３の識別子“０００１”およびエラーの識別子“ＳＶＣ０００１”に、共通エラーの識別子“Ｃ０００１”および個別エラーメッセージ“（ｎｕｌｌ）”を対応づける。このレコードは、部品提供サーバ３の識別子“０００１”からエラーの識別子“ＳＶＣ０００１”を含むエラーレスポンスが出力されると、共通エラーの識別子“Ｃ０００１”の共通エラーメッセージが、ユーザ端末３０に通知されることを示す。
【００４８】
また、エラーデータ１１３は、部品提供サーバ３の識別子“０００１”およびエラーの識別子“ＳＶＣ０００２”に、共通エラーの識別子“（ｎｕｌｌ）”および個別エラーメッセージ“内部エラー”を対応づける。このレコードは、部品提供サーバ３の識別子“０００１”からエラーの識別子“ＳＶＣ０００２”を含むエラーレスポンスが出力されると、個別エラーメッセージ“内部エラー”が、ユーザ端末３０に通知されることを示す。
【００４９】
またエラーデータ１１３は、個別エラーメッセージに、エラーが生じた部品提供サーバ３の名称等を設定可能なパラメータを含んでも良い。例えば、図に示す例において、部品提供サーバ３の識別子“０００２”およびエラーの識別子“ＥＣ−０００１”に、共通エラーの識別子“（ｎｕｌｌ）”および個別エラーメッセージ“｛パラメータ｝による内部エラー”を対応づける。このような個別エラーメッセージがユーザ端末３０に通知される場合、“｛パラメータ｝”に、エラーレスポンスの送信元の部品提供サーバ３の名称等の識別子が設定される。
【００５０】
このように、エラーデータ１１３において、共通エラーの識別子および個別エラーメッセージの一方にのみ、値が設定されるように制御される。これにより、共通エラーメッセージまたは個別エラーメッセージのうち、値が設定された項目に基づいて、ユーザ端末３０に、通知エラーメッセージを通知することを可能にする。
【００５１】
エラー形式データ１１４は、部品提供サーバ３が出力するエラーレスポンスについて、エラーの種別と、エラーの識別子と、エラーの内容とを対応づけたデータである。エラー形式データ１１４は、サービス提供システム５に新たな部品提供サーバ３が導入された場合、または部品提供サーバ３が出力するエラーレスポンスの仕様が変更された場合などに、エラー変換サーバ１が部品提供サーバ３等から取得される。
【００５２】
エラー形式データ１１４は、図８に示すように、エラー種別１１４ａに属するエラーについて、エラーリスト１１４ｂを含み、エラーリスト１１４ｂは、エラーの識別子１１４ｃとそのエラーの内容１１４ｄとを対応づける。図８に示す例では、エラー種別「ｅｒｒｏｒＣｏｄｅ」について、エラーの識別子「ＳＶＣ０００１」のエラーの内容は、「Ｍｉｓｓｉｎｇ  ｔｏｋｅｎ  ｐａｒａｍｅｔｅｒ」であり、エラーの識別子「ＳＶＣ０００２」のエラーの内容は、「Ｉｎｖａｌｉｄ  ｉｎｐｕｔ  ｖａｌｕｅ」であることを示す。エラー形式データ１１４は、複数のエラー種別のそれぞれに対応する、複数のエラーリストを含んでも良い。なお、図８に示すエラー形式データ１１４は、一例であって、OpenAPI Specification( https://swagger.io/specification/)におけるＡＰＩレスポンス仕様に基づく。
【００５３】
処理装置１２０は、エラーメッセージ変換部１２１と、エラー定義部１２２を備える。
【００５４】
（エラーメッセージ変換部）
エラーメッセージ変換部１２１は、部品提供サーバ３がエラーレスポンスを出力した際、エラーレスポンスに含まれるエラーを、ユーザ端末３０に通知する通知エラーメッセージに変換する。エラーメッセージ変換部１２１は、図２に示すようにアプリケーション提供サーバ２からエラーレスポンスを受信しても良いし、部品提供サーバ３から直接エラーレスポンスを受信しても良い。
【００５５】
エラーメッセージ変換部１２１は、まず、部品提供サーバ３がエラーレスポンスを出力すると、エラー種別データ１１１から、エラーレスポンスの出力元の部品提供サーバ３の識別子に対応づけられたエラー種別を取得し、取得したエラー種別に対応する、エラーレスポンスの構造体から、エラーの識別子を取得する。エラーメッセージ変換部１２１は、図２に示すようにアプリケーション提供サーバ２からエラーレスポンスを受信しても良いし、部品提供サーバ３から受信しても良い。ここでエラーメッセージ変換部１２１は、エラー種別データ１１１を参照してエラーレスポンスにおいてエラーが記載されている構造体を特定し、特定された構造体から、エラーの識別子を特定する。
【００５６】
エラーメッセージ変換部１２１は、エラーレスポンスに含まれるエラーの識別子を特定すると、特定されたエラーが、共通エラーであるか否かを判定する。具体的には、共通エラーの識別子が、エラーレスポンスの送信元の部品提供サーバ３の識別子と、エラーレスポンスに含まれるエラーの識別子に対応づけられている場合、このエラーは、共通エラーであると判定する。一方、個別エラーメッセージが、エラーレスポンスの送信元の部品提供サーバ３の識別子と、エラーレスポンスに含まれるエラーの識別子に対応づけられている場合、このエラーは、共通エラーでないと判定する。
【００５７】
部品提供サーバ３が出力したエラーレスポンスに含まれるエラーが共通エラーである場合、エラーメッセージ変換部１２１は、共通エラーデータ１１２に含まれる共通エラーメッセージから、通知エラーメッセージに変換する。具体的にはエラーメッセージ変換部１２１は、エラーデータ１１３から、エラーレスポンスの出力元の部品提供サーバ３の識別子と、エラーレスポンスに含まれるエラーの識別子に対応づけられた共通エラーの識別子を取得し、共通エラーデータ１１２から、取得した共通エラーの識別子に対応する共通エラーメッセージを取得する。エラーメッセージ変換部１２１は、取得した共通エラーメッセージに基づいて、エラーレスポンスをユーザ端末３０に通知するメッセージ（通知エラーメッセージ）に変換する。
【００５８】
部品提供サーバ３が出力したエラーレスポンスに含まれるエラーが共通エラーでない場合、エラーメッセージ変換部１２１は、エラーデータ１１３に含まれる個別エラーメッセージから、通知エラーメッセージに変換する。具体的には、エラーメッセージ変換部１２１は、エラーデータ１１３から、エラーレスポンスの出力元の部品提供サーバ３の識別子と、エラーレスポンスに含まれるエラーの識別子に対応づけられた個別エラーメッセージを取得する。エラーメッセージ変換部１２１は、取得した個別エラーメッセージに基づいて、エラーレスポンスをユーザ端末３０に通知するメッセージ（通知エラーメッセージ）に変換する。
【００５９】
本発明の実施の形態においてエラーメッセージ変換部１２１は、所定の部品提供サーバ３が出力したエラーレスポンスについて、その部品提供サーバ３の名称等の識別子を含む通知エラーメッセージを出力しても良い。エラーメッセージ変換部１２１は、エラーを生じた部品提供サーバ３の名称をユーザ端末３０に提供可能な場合、通知エラーメッセージに、部品提供サーバ３の名称を含ませ、エラーを生じた部品提供サーバ３の名称をユーザ端末３０に対して隠蔽する場合、通知エラーメッセージに、部品提供サーバの名称を含ませないように制御する。これにより、他業者が提供する部品提供サーバ３を用いてアプリケーション提供サーバ２が処理を行う場合など、部品提供サーバ３の製造元をユーザ端末３０に通知したくない場合にも対応することができる。
【００６０】
部品提供サーバ３の名称を通知エラーメッセージに含ませる、または含ませないための具体的な方法はいくつか考えられる。本発明の実施の形態において、図７を参照して説明したように、 “｛パラメータ｝”を含む個別エラーメッセージが対応づけられている場合、 “｛パラメータ｝”に、エラーレスポンスの送信元の部品提供サーバ３の名称等の識別子が設定され、通知エラーメッセージを特定する。
【００６１】
図９を参照して、本発明の実施の形態に係るエラーメッセージ変換部１２１によるエラーメッセージ変換処理を説明する。
【００６２】
まずステップＳ１０１においてエラーメッセージ変換部１２１は、エラーレスポンスの受信を待機する。ここでエラーメッセージ変換部１２１は、定期的にアプリケーション提供サーバ２または部品提供サーバ３に、能動的にエラーレスポンスの有無を問い合わせても良い。
【００６３】
エラーレスポンスを受信すると、ステップＳ１０２においてエラーメッセージ変換部１２１は、エラーレスポンスの送信元の部品提供サーバ３の識別子を特定する。さらにステップＳ１０３においてエラーメッセージ変換部１２１は、エラー種別データ１１１から、ステップＳ１０２で特定した送品もとの部品提供サーバ３が出力するエラー種別を特定する。例えば、送信元の部品提供サーバ３の識別子が“０００１”の場合、エラー種別“ｃｏｄｅ”を特定する。
【００６４】
ステップＳ１０４においてエラーメッセージ変換部１２１は、ステップＳ１０１で受信したエラーレスポンスから、エラー種別“ｃｏｄｅ”に関連するエラーの識別子を特定する。エラーメッセージ変換部１２１は、エラーレスポンスから、エラー種別“ｃｏｄｅ”に関連する構造体を特定し、特定された構造体から、エラーの識別子を取得する。
【００６５】
ステップＳ１０５においてエラーメッセージ変換部１２１は、エラーデータ１１３から、送信元の部品提供サーバ３の識別子と、ステップＳ１０４で取得したエラーの識別子に関するデータを取得する。ここで取得されるデータは、より具体的には、共通エラーの識別子または個別エラーメッセージである。
【００６６】
ステップＳ１０６においてエラーメッセージ変換部１２１は、共通エラーの識別子にｎｕｌｌが設定されているか否かを判定する。ｎｕｌｌが設定されている場合、ステップＳ１０７においてエラーメッセージ変換部１２１は、ステップＳ１０５で取得したデータから個別エラーメッセージを特定する。ステップＳ１０８においてエラーメッセージ変換部１２１は、ステップＳ１０７で特定した個別エラーメッセージを、通知エラーメッセージとして出力する。
【００６７】
一方共通エラーの識別子にｎｕｌｌが設定されていない場合、ステップＳ１０９においてエラーメッセージ変換部１２１は、ステップＳ１０５で取得したデータから、共通エラーの識別子を特定する。ステップＳ１１０においてエラーメッセージ変換部１２１は、共通エラーデータ１１２から、ステップＳ１０９で特定した共通エラーの識別子に対応する共通エラーのメッセージを取得する。ステップＳ１１１においてエラーメッセージ変換部１２１は、ステップＳ１１０で取得した共通エラーのメッセージを、通知エラーメッセージとして出力する。
【００６８】
なお、ステップＳ１０８またはステップＳ１１１で出力された通知エラーメッセージは、ユーザ端末３０に送信される。この際、図２に示すように、エラーメッセージ変換部１２１が出力した通知エラーメッセージは、アプリケーション提供サーバ２により受信され、アプリケーション提供サーバ２が、ユーザ端末３０に送信するレスポンスに、通知エラーメッセージを含ませる。アプリケーション提供サーバ２は、レスポンスから、部品提供サーバ３が設定したエラーの識別子等の情報を、通知エラーメッセージに置換しても良い。
【００６９】
（エラー定義部）
エラー定義部１２２は、エラーメッセージ変換部１２１が、部品提供サーバ３が出力したエラーレスポンスに含まれるエラーを、ユーザ端末３０に通知する通知エラーメッセージに変換する際に参照されるデータを管理する。エラー定義部１２２は、部品提供サーバ３が出力するエラーの仕様等が変更になった場合や、部品提供サーバ３の追加または削除に応じて、エラー種別データ１１１またはエラーデータ１１３を更新する。
【００７０】
エラー定義部１２２は、部品提供サーバ３から、部品提供サーバ３が出力するエラーの種別と、エラーの種別に対応するエラーの識別子およびエラーの内容を含むエラー形式データ１１４を取得する。エラー定義部１２２は、エラーの識別子のそれぞれについて、エラーの内容に対応する共通エラーがある場合、部品提供サーバの識別子と、エラーの識別子と、エラーの内容に対応する共通エラーの識別子を対応づけて、エラーデータを更新する。またエラー定義部１２２は、エラーの内容に対応する共通エラーがない場合、部品提供サーバ３の識別子と、エラーの識別子と、個別エラーメッセージを対応づけて、エラーデータを更新する。
【００７１】
エラー定義部１２２は、部品提供サーバ３から図８に示すエラー形式データ１１４を取得して、この部品提供サーバ３が出力するエラーの種別と、このエラーの種別に属するエラーの識別子とその内容とを把握する。エラー定義部１２２は、エラーの内容と、共通エラーデータ１１２で定義されたエラーの内容とを比較して、エラー形式データ１１４で定義されるエラーの内容が、共通エラーデータ１１２で定義される共通エラーの内容に対応するか否かを判定する。エラー形式データ１１４で定義されるエラーの内容が、共通エラーデータ１１２で定義される共通エラーの内容に対応する場合、エラー定義部１２２は、その対応する共通エラーの識別子に対応する共通エラーのメッセージが、ユーザ端末３０に通知されるように制御する。一方、エラー形式データ１１４で定義されるエラーの内容が、共通エラーデータ１１２で定義される共通エラーの内容に対応しない場合、エラー定義部１２２は、個別エラーメッセージがユーザ端末３０に通知されるように制御される。
【００７２】
ここで、個別エラーメッセージは、「内部エラー」などの汎用的なメッセージでも良い。またエラー定義部１２２は、エラーを生じた部品提供サーバ３の名称等を隠蔽する必要がある場合、個別エラーメッセージを、単に「内部エラー」とする。一方部品提供サーバ３の名称等を隠蔽する必要がない場合、エラー定義部１２２は、個別エラーメッセージを「｛パラメータ｝による内部エラー」とする。エラー定義部１２２は、個別エラーメッセージに、部品提供サーバ３の名称等を挿入できるような「｛パラメータ｝」を含ませることにより、エラーメッセージ変換部１２１が、パラメータにエラーが生じた部品提供サーバ３の識別子を設定できる。
【００７３】
図１０および図１１を参照して、本発明の実施の形態に係るエラー定義部１２２によるエラー定義処理を説明する。
【００７４】
まずステップＳ２０１においてエラー定義部１２２は、エラー形式に変更が生じた部品提供サーバ３や新たにサービス提供システム５に導入された部品提供サーバ３から、エラー形式データ１１４を受信する。ステップＳ２０２においてエラー定義部１２２は、エラー形式データ１１４からエラーの種別を抽出し、エラー種別データ１１１を更新する。エラー定義部１２２は、例えば図８に示すエラー形式データ１１４から、エラーの種別「ｅｒｒｏｒＣｏｄｅ」を取得し、このエラー形式データ１１４の送信元の部品提供サーバ３の識別子と、エラーの種別「ｅｒｒｏｒＣｏｄｅ」を対応づけたレコードを、エラー種別データ１１１に挿入する。
【００７５】
ステップＳ２０３においてエラー定義部１２２は、エラーの種別「ｅｒｒｏｒＣｏｄｅ」に関するエラーリストを取得し、ステップＳ２０４において、エラーリストに含まれる各エラー識別子について、エラーデータ１１３を更新する。各エラー識別子についてエラーデータ１１３を更新すると、処理を終了する。
【００７６】
図１１を参照して、図１０のステップＳ２０４のエラーデータ更新処理を説明する。
【００７７】
ステップＳ２５１においてエラー定義部１２２は、エラー形式データ１１４から、送信元の部品提供サーバ３の識別子、エラーの識別子およびエラーの内容を取得する。ステップＳ２５２においてエラー定義部１２２は、ステップＳ２５１で取得したエラーの内容が共通エラーデータ１１２で定義される共通エラーの内容と同一であるか否かを判断する。
【００７８】
ステップＳ２５１で取得したエラーの内容が共通エラーデータ１１２で定義される共通エラーの内容と同一である場合、ステップＳ２５３に進む。ステップＳ２５３においてエラー定義部１２２は、エラーの内容が同一の共通エラーの識別子を特定する。ステップＳ２５４においてエラー定義部１２２は、ステップＳ２５１で取得した部品提供サーバ３の識別子と、エラーの識別子と、ステップＳ２５３で特定した共通エラーの識別子を対応づけたレコードを、エラーデータ１１３に挿入する。ここでエラーデータ１１３の個別エラーメッセージ欄には、ｎｕｌｌが設定される。
【００７９】
ステップＳ２５１で取得したエラーの内容が共通エラーデータ１１２で定義される共通エラーの内容と同一でない場合、ステップＳ２５５に進み、個別エラーメッセージを設定する。ステップＳ２５５においてエラー定義部１２２は、部品提供サーバ３の名称が隠蔽対象であるか否かを判定する。
【００８０】
隠蔽対象でない場合、ステップＳ２５６においてエラー定義部１２２は、部品提供サーバ３の名称を含む個別エラーメッセージを生成する。エラー定義部１２２は、例えば、個別エラーメッセージとして、「｛パラメータ｝による内部エラー」を設定し、上述のエラーメッセージ変換部１２１が、パラメータに、エラーが生じた部品提供サーバ３の識別子を設定できるようにしても良い。
【００８１】
一方隠蔽対象である場合、ステップＳ２５７においてエラー定義部１２２は、部品提供サーバ３の名称を含まない個別エラーメッセージを生成する。エラー定義部１２２は、例えば、個別エラーメッセージとして、「内部エラー」を設定する。
【００８２】
このような本発明の実施の形態に係るエラー変換サーバ１は、部品提供サーバ３から出力されるエラーについて、ユーザに通知する通知エラーメッセージに変換することにより、ユーザ端末３０においてエラーを把握しやすくすることができる。
【００８３】
特にエラー変換サーバ１は、各部品提供サーバ３で共通するエラーについては、共通のエラーメッセージを通知することにより、ユーザ端末３０におけるエラー把握量を減らし、より負担を軽減することができる。また共通化できないエラーメッセージについても、個別にエラーメッセージを通知することにより、ユーザ端末３０においてエラーの状況を適切に把握することができる。
【００８４】
さらにエラー変換サーバ１は、エラーデータ１１３の個別エラーメッセージに、パラメータを設定するか否かにより、エラーが生じた部品提供サーバ３の名称等をユーザ端末３０に通知するか否かを、容易に制御することができる。
【００８５】
このように本発明の実施の形態に係るエラー変換サーバは、各部品提供サーバ３が出力する独自のエラー情報を、ユーザ端末３０で理解しやすい形式で出力することを可能にする。
【００８６】
（変形例）
本発明の実施の形態において、エラーデータ１１３の個別エラーメッセージに、エラーが生じた部品提供サーバ３の名称等を設定するパラメータを含ませることにより、部品提供サーバ３の名称をユーザ端末３０に通知し、パラメータを含ませないことにより、部品提供サーバ３の名称をユーザ端末３０に対して隠蔽する場合を説明したがこれに限られない。
【００８７】
例えば、エラー変換サーバ１が、ユーザ端末３０に名称を提供しても良い部品提供サーバ３の識別子のリストを保持する方法が考えられる。エラーレスポンスの出力元の部品提供サーバ３の識別子がこのリストに含まれる場合、個別エラーメッセージまたは共通エラーメッセージに、「エラー出力元の部品提供サーバの識別子：０００１」など、エラー出力元の部品提供サーバ３の識別子等を追記しても良い。
【００８８】
このように、部品提供サーバ３の名称等を、ユーザ端末３０に通知するか否かは、どのように制御されても良い。
【００８９】
（その他の実施の形態）
上記のように、本発明の実施の形態とその変形例によって記載したが、この開示の一部をなす論述および図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例および運用技術が明らかとなる。
【００９０】
例えば、本発明の実施の形態に記載したエラー変換サーバ１は、図４に示すように一つのハードウエア上に構成されても良いし、その機能や処理数に応じて複数のハードウエア上に構成されても良い。また、既存のアプリケーション提供サーバ２または部品提供サーバ３上に実現されても良い。
【００９１】
本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。従って、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【符号の説明】
【００９２】
１  エラー変換サーバ
２  アプリケーション提供サーバ
３  部品提供サーバ
５  サービス提供システム
１０、２０  通信ネットワーク
３０  ユーザ端末
１１０、２１０  記憶装置
１１１  エラー種別データ
１１２  共通エラーデータ
１１３  エラーデータ
１１４  エラー形式データ
１２０、２２０  処理装置
１２１  エラーメッセージ変換部
１２２  エラー定義部
１３０、２３０  通信制御装置
２２１  リクエスト処理部
２２２  レスポンス処理部
２２３  通知エラーメッセージ取得部
【図１】
2019144680.tif 000003
【図２】
2019144680.tif 000004
【図３】
2019144680.tif 000005
【図４】
2019144680.tif 000006
【図５】
2019144680.tif 000007
【図６】
2019144680.tif 000008
【図７】
2019144680.tif 000009
【図８】
2019144680.tif 000010
【図９】
2019144680.tif 000011
【図１０】
2019144680.tif 000012
【図１１】
2019144680.tif 000013