(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024176005
(43)【公開日】2024-12-19
(54)【発明の名称】情報処理プログラム、情報処理方法及び情報処理装置
(51)【国際特許分類】
G06Q 10/0633 20230101AFI20241212BHJP
【FI】
G06Q10/0633
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2023094183
(22)【出願日】2023-06-07
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】北島 信哉
【テーマコード(参考)】
5L010
5L049
【Fターム(参考)】
5L010AA07
5L049AA07
(57)【要約】
【課題】業務の作業効率を向上させる情報処理プログラム、情報処理方法及び情報処理装置を提供する。
【解決手段】利用者の操作を含むシーケンスに沿った処理を、APIを用いてコンピュータに実行させる情報処理プログラムであって、所定ポリシーと、所定のシーケンスにおいて所定ポリシーが適用される対象である第1のAPIの所定変数と、利用者により選択可能な前記所定変数の値を特定する第2のAPIとを対応付けた対応情報を生成し、所定のシーケンスに沿って第2のAPIを実行する場合に、対応情報を基に所定ポリシーを満たす値に第2のAPIの実行結果を絞り込み、所定変数に対する選択可能な値として絞り込んだ結果を利用者に提示する。
【選択図】
図9
【特許請求の範囲】
【請求項1】
利用者の操作を含むシーケンスに沿った処理を、APIを用いてコンピュータに実行させる情報処理プログラムであって、
所定ポリシーと、所定のシーケンスにおいて前記所定ポリシーが適用される対象である第1のAPIの所定変数と、利用者により選択可能な前記所定変数の値を特定する第2のAPIとを対応付けた対応情報を生成し、
前記所定のシーケンスに沿って前記第2のAPIを実行する場合に、前記対応情報を基に前記所定ポリシーを満たす値に前記第2のAPIの実行結果を絞り込み、
前記所定変数に対する選択可能な値として絞り込んだ結果を利用者に提示する
処理を前記コンピュータに実行させることを特徴とする情報処理プログラム。
【請求項2】
前記対応情報の生成処理は、
前記第1のAPIのAPI定義を基に、前記第1のAPIにおける変数を抽出し、
予め登録された複数のポリシーのそれぞれの設定情報を基に、前記複数のポリシーのうち前記所定変数に適用される前記所定ポリシーを特定し、
前記所定のシーケンスの情報を基に、前記第2のAPIを特定し、
特定した前記所定ポリシー、前記所定変数及び特定した前記第2のAPIを対応付けて前記対応情報を生成する
処理を含むことを特徴とする請求項1に記載の情報処理プログラム。
【請求項3】
前記絞り込んだ結果を利用者に提示する処理は、
前記実行結果が1つの特定の値に絞り込まれた場合、前記特定の値が前記利用者に選択されたとみなして、前記利用者へ提示する情報を生成する
処理を含むことを特徴とする請求項1に記載の情報処理プログラム。
【請求項4】
前記絞り込んだ結果を利用者に提示する処理は、
前記実行結果が複数の値に絞り込まれた場合、前記複数の値のそれぞれの属性情報を取得して、選択される頻度が高い前記属性情報を含む順に前記複数の値をソートして前記利用者へ提示する
処理を含むことを特徴とする請求項1に記載の情報処理プログラム。
【請求項5】
利用者の操作を含むシーケンスに沿った処理を、APIを用いて実行する情報処理装置が、
所定ポリシーと、所定のシーケンスにおいて前記所定ポリシーが適用される対象である第1のAPIの所定変数と、利用者により選択可能な前記所定変数の値を特定する第2のAPIとを対応付けた対応情報を生成し、
前記所定のシーケンスに沿って前記第2のAPIを実行する場合に、前記対応情報を基に前記所定ポリシーを満たす値に前記第2のAPIの実行結果を絞り込み、
前記所定変数に対する選択可能な値として絞り込んだ結果を利用者に提示する
処理を実行することを特徴とする情報処理方法。
【請求項6】
利用者の操作を含むシーケンスに沿った処理を、APIを用いて実行するAPI実行部と、
所定ポリシーと、所定のシーケンスにおいて前記所定ポリシーが適用される対象である第1のAPIの所定変数と、利用者により選択可能な前記所定変数の値を特定する第2のAPIとを対応付けた対応情報を生成する紐付部と、
前記所定のシーケンスに沿って前記第2のAPIを実行する場合に、前記対応情報を基に前記所定ポリシーを満たす値に前記第2のAPIの実行結果を絞り込み、前記API実行部に絞り込んだ結果を前記所定変数に対する選択可能な値として利用者に提示させる絞込部と
を備えたことを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理プログラム、情報処理方法及び情報処理装置に関する。
【背景技術】
【0002】
近年、テレワークの推進等により、企業等の各種組織においてビジネスデータへの押印等対面での作業を極力減らして、デジタルで業務を完結する仕組みの導入が推進されている。
【0003】
従来、ワークフロー管理システムとして、各タスクに対してキーワード抽出技術等によりタグを付加するとともに、予め関連情報として特定のタグが付加されたものを配信するといった制約を設定し、タグによる絞り込みを行ってユーザに提示する関連情報を決定する技術が提案されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしならが、タグによる絞り込みを行ってユーザに提示する関連情報を決定する技術では、ポリシー制御を行うことは難しく、業務の作業効率を向上させることは困難であった。
【0006】
開示の技術は、上記に鑑みてなされたものであって、業務の作業効率を向上させる情報処理プログラム、情報処理方法及び情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
本願の開示する情報処理プログラム、情報処理方法及び情報処理装置の一つの態様において、情報処理プログラムは、利用者の操作を含むシーケンスに沿った処理を、APIを用いてコンピュータに実行させる。そして、情報処理プログラムでは、所定ポリシーと、所定のシーケンスにおいて前記所定ポリシーが適用される対象である第1のAPIの所定変数と、利用者により選択可能な前記所定変数の値を特定する第2のAPIとを対応付けた対応情報を生成し、前記所定のシーケンスに沿って前記第2のAPIを実行する場合に、前記対応情報を基に前記所定ポリシーを満たす値に前記第2のAPIの実行結果を絞り込み、前記所定変数に対する選択可能な値として絞り込んだ結果を利用者に提示する。
【発明の効果】
【0008】
1つの側面では、本発明は、業務の作業効率を向上させることができる。
【図面の簡単な説明】
【0009】
【
図2】
図2は、承認を受ける申請の回送処理の流れを示す図である。
【
図5】
図5は、WebAPIの処理フロー情報の一例を示す図である。
【
図6】
図6は、ポリシーの設定ファイルの一例を示す図である。
【
図7】
図7は、紐付けテーブルの一例を示す図である。
【
図8】
図8は、実行結果の絞り込みの一例を示す図である。
【
図9】
図9は、実施例1に係る絞り込み後の検索結果の表示例を示す図である。
【
図10】
図10は、実施例1に係る情報処理装置による紐付け処理のフローチャートである。
【
図11】
図11は、実行結果の絞り込みをともなうWebAPIの実行処理のフローチャートである。
【
図13】
図13は、属性選択回数テーブルの一例を示す図である。
【
図14】
図14は、実施例2に係る絞り込み後の検索結果の表示例を示す図である。
【
図15】
図15は、情報処理装置のハードウェア構成図である。
【発明を実施するための形態】
【0010】
以下に、本願の開示する情報処理プログラム、情報処理方法及び情報処理装置の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する情報処理プログラム、情報処理方法及び情報処理装置が限定されるものではない。
【実施例0011】
業務のデジタル化の仕組みとして、例えば、利用者がワークフローを利用して文書ファイルを回送する際に、文書の真正性及び回送履歴を暗号的に保証する技術が提案されている。
【0012】
さらに、このような技術にオープンポリシーエージェント(OPA:Open Policy Agent)を組み合わせて、ワークフロー処理に対してポリシー制御を行うことが検討されている。OPAは、設定されたポリシーに違反した情報を発見して、事前に定義されたアクションを実行する汎用ポリシーエンジンである。
【0013】
組織におけるポリシーとしては、例えば以下の様なものが存在する。1つは、回送先は一般社員ではなく管理職であるというポリシーである。他の1つは、他社に書類を送る際には所長以上が承認するというポリシーである。また、他の1つは、特定のワークフローは管理職が起票するというポリシーである。さらに、他の1つは、添付ファイルが漏れているワークフローは回送が中断されるというポリシーである。
【0014】
OPAは、例えば、WebAPI呼び出し時にプロキシとして動作して、そのWebAPI呼び出しがポリシーを満たしているか否かを判定する。ポリシーを満たしていれば、OPAは、WebAPIの呼び出しを許可する。ポリシーを満たしていなければ、OPAは、WebAPIの呼び出しを行わせずエラーを返す。この時、OPAは、WebAPI呼び出し時のパラメータやヘッダ等を書き換えてWebAPIに渡すことができる。例えば、OPAは、利用者から送られてきたIDトークンからユーザIDを取り出してWebAPIに送られるように定義される。IDトークンは、発行者等の一般的な属性情報以外に、ユーザID等のユーザ情報やユーザの上司等のユーザ属性情報を含むことができる。
【0015】
ワークフロー処理に対してポリシー制御としては以下の様なケースが考えられる。例えば、ワークフローを回送する際に回送先が回送者の上司か否かをチェックするといったケースが考えられる。また、幹部社員が起票する申請の起票時に、起票者が幹部社員か否かをチェックするといったケースが考えられる。また、添付ファイルを付ける申請の際に、添付ファイルが付いているか否かをチェックするといったケースが考えられる。また、他社へ契約書を送付する際に、回送先に社長等の決裁権のある人が含まれているか否かをチェックするといったケースが考えられる。また、安全管理責任者等の責任者の承認を受けることが法律により決まっている申請の場合に、回送先に責任者が含まれているか否かをチェックするといったケースが考えられる。
【0016】
しかしながら、OPAがポリシーにしたがってどのような制御を行うかは、管理者等が手作業で値の入力を行うことで具体的な動作が設定される。そのため、各WebAPIに対してOPAによりポリシーにより制限を掛けることは可能であるが、制限に抵触しないように適切な値を入力することは容易ではない。例えば、各企業や部署等が有する社内ルールや法律にしたがったOPAによる制御は可能であるが、OPAはあくまで与えられた制限を掛ける機能を有しており、規則に沿って明文化及び定義化を行い且つその情報を入力する部分は人手による作業となる。
【0017】
この点、Webブラウザでの対処として、利用者が入力した際に入力フォームに設けられた制限によりエラーを返す方法や予め定義されたルールにしたがって入力フォームに自動的に値を入力する方法が考えられる。ただし、この方法の場合、ワークフローの管理システム全体におけるルール定義とWebブラウザによる制限が連動しておらず、ルールに齟齬が発生するおそれがある。そのため、ワークフロー処理に対してポリシー制御を適切に行うことが難しく、ワークフローを用いた申請等の業務の作業効率を向上させることは困難であった。
【0018】
図1は、情報処理装置のブロック図である。情報処理装置1は、利用者端末2及びワークフロー処理システム3にネットワークを介して接続される。
【0019】
利用者端末装置2は、ワークフロー処理システム3を用いて承認を求める申請等を行うための利用者が使用する端末装置である。例えば企業であれば、利用者は従業員等であり、利用者端末装置2は従業員端末である。利用者端末装置2は、情報処理装置1に対して検索リクエストを送信して検索結果を含む応答を受信する。また、利用者端末装置2は、申請書の回送要求を情報処理装置1に対して送信して、ワークフロー処理システム3を利用してワークフローに沿った申請書の処理を行わせる。
【0020】
ワークフロー処理システム3は、ワークフローで決められたシーケンスに沿って処理を実行するシステムである。例えば、ワークフロー処理システム3は、利用者端末装置2から送信された申請書の回送要求を受信して、回送要求で指定された承認者に対して申請書を送り承認を受ける。その後、ワークフロー処理システム3は、承認を受けた申請書を情報処理装置1を介して利用者端末装置2へ返信する。
【0021】
情報処理装置1は、ワークフローにおける利用者による操作の情報を利用者端末装置2から受信する。例えば、情報処理装置1は、申請の回送のワークフローにおける申請依頼等を利用者端末装置2から受信する。そして、情報処理装置1は、利用者の操作を含む予め決められたシーケンスに沿った処理をWebAPIを用いて実行する。具体的には、情報処理装置1は、設定されたポリシーにしたがって利用者により行われた操作をWebAPIを用いて処理するとともに、シーケンスに沿った処理をワークフロー処理システム3に行わせる。
【0022】
以下に、情報処理装置1の詳細について説明する。情報処理装置1は、OPA101、ポリシー格納部102、WebAPI実行部103、情報格納部104、変数特定部105、API特定部106、ポリシー特定部107、絞込部108、紐付データベース109及び紐付部110を有する。以下の説明では、利用者がワークフロー処理システム3に対して承認を求める申請書を送信する処理を例に説明する。
【0023】
ポリシー格納部102は、各企業や部署等が有する社内ルールや法律にしたがって予め決められたポリシーを示す設定ファイルを格納する。ポリシーとしては、例えば、特定の申請書の回送先は一般社員ではなく管理職であるというポリシーや、他社に書類を送る際には所長以上が承認するというポリシーが存在する。他にも、ポリシーには、特定のワークフローは管理職が起票するというポリシーや、特定の申請について添付ファイルが漏れているワークフローは回送が禁止されるというポリシーが存在する。
【0024】
OPA101は、WebAPI実行部103が有する各種WebAPIが呼び出された場合のプロキシとして動作する。OPA101は、所定のWebAPI呼び出しについてどのポリシーを適用するかの情報を予め有する。OPA101は、所定のWebAPI呼び出しを受信した場合に、ポリシー格納部102に格納された決められたポリシーを参照して、WebAPI呼び出しがそのポリシーを満たしているか否かを判定する。ポリシーを満たしていれば、OPA101は、所定のWebAPI呼び出しを許可する。これに対して、ポリシーを満たしていなければ、OPA101は、所定のWebAPI呼び出しを行わせずエラーを利用者端末装置2へ返信する。また、OPA101は、ポリシーが設けられていないWebAPIの呼び出しについてはWebAPI呼び出しを許可する。
【0025】
例えば、特定のワークフローにおいて申請の回送先が回送者の上司であることを規定するポリシーが存在する場合で説明する。その場合、OPA101は、特定のワークフローにおける申請の回送要求を利用者端末装置2から受ける。次に、OPA101は、その特定のワークフローにおける申請の回送に適用するポリシーをポリシー格納部102の中から特定する。OPA101は、特定したポリシーから回送先が回送者の上司であるというルールを確認して、受信した回送要求の回送先が回送者の上司か否かを判定する。回送先が上司であれば、WebAPI実行部103で動作する回送APIに対するリクエストであるPOSTを許可する。
【0026】
WebAPI実行部103は、複数のWebAPIを動作させる。WebAPIには、例えば、指定された条件に対応する検索結果を返すユーザ検索APIやワークフローにしたがって申請を回送するための回送APIが存在する。
【0027】
図2は、承認を受ける申請の回送処理の流れを示す図である。
図2を参照して、特定の申請をワークフローにしたがって回送する場合のWebAPI実行部103の動作について説明する。ここでは、OPA101がWebAPI呼び出しを許可する場合で説明する。WebAPI実行部103は、特定の申請の回送要求を利用者端末装置2からOPA101を介して受けると、回送画面を利用者端末装置2に表示させる(ステップS101)。
【0028】
図3は、回送画面の一例を示す図である。例えば、WebAPI実行部103は、
図3に示す回送画面201を利用者端末装置2に表示させる。回送画面201には、承認を受けるための回送先となる承認者の検索欄及び検索ボタン、並びに、検索結果で得られた承認者に対する回送指示のための回送ボタンが設けられる。他にも、WebAPI実行部103は、
図3に示す回送画面202を用いることもできる。
【0029】
利用者は、利用者端末装置2に表示された回送画面に検索条件を入力して検索ボタンを押下する。利用者端末装置2は、検索条件にしたがった承認者の検索要求をOPA101を介してWebAPI実行部103へ送信する。
【0030】
図2に戻って説明を続ける。WebAPI実行部103は、検索要求による検査APIの呼び出しを受けて、ユーザ検索APIを実行する(ステップS102)。ユーザ検索APIは、指定された検索条件にしたがって検索を実行する。次に、本実施例では、ユーザ検索APIは、ポリシーにしたがった検索結果の絞り込みを絞込部108に依頼する。その後、ユーザ検索APIは、絞り込まれた検索結果を絞込部108から取得する。WebAPI実行部103は、絞り込まれた検索結果を利用者端末装置2に表示された回送画面に表示させる。
【0031】
利用者は、利用者端末装置2に表示された回送画面中の検索結果から回送先とする承認者を選択する。そして、利用者は、回送ボタンを押下して、指定した回送先への回送を決定する。利用者端末装置2は、指定された回送先への申請の回送要求をOPA101を介してWebAPI実行部103へ送信する。
【0032】
WebAPI実行部103は、回送要求による回送APIの呼び出しを受けて、回送APIを実行する(ステップS103)。回送APIは、回送要求において回送先として指定された承認者に対して回送処理の実行を開始する。
【0033】
回送APIは、回送先がポリシーにしたがっているか否かをOPA101に依頼する。OPA101は、ポリシー格納部102に格納されたポリシーを確認して、回送先が組織のルールに沿っているか否かをチェックする(ステップS104)。OPA101により回送先が組織のルールに沿っていることが確認されると、回送APIは、回送先として指定された承認者による承認を求める申請の回送をワークフロー処理システム3に依頼する。
【0034】
情報格納部104は、WebAPI実行部103が有する各WebAPIのAPI定義(OpenAPI Specification(OAS) v3等)を格納する。API定義は、WebAPIの作成者が作成した仕様書等から取得可能である。また、情報格納部104は、ワークフローにしたがった各WebAPIによる処理の流れを示すシーケンス図や結合テストのソースコード等のWebAPIの処理フロー情報を格納する。
【0035】
変数特定部105は、WebAPI実行部103が有する各WebAPIの変数部分のうち利用者が選択した値を利用する部分を特定する処理を行う。具体的には、変数特定部105は、以下の処理をWebAPI実行部103が有する各WebAPIについて行うことで、利用者が選択した値を利用する部分の特定を行う。
【0036】
変数特定部105は、情報格納部104に格納された各WebAPIのAPI定義から、そのWebAPIの実行時にPOSTする変数のリストを取得する。
図4は、API定義の一例を示す図である。API定義210は、OAS v3に準拠したAPI定義である。OAS v3の場合、各API定義のproperties配下に変数が列挙される。API定義210は、「userId」、「type」、「format」及び「example」が変数である。例えば、API定義210であれば、変数特定部105は、POSTする変数のリストとして、「userId」、「type」、「format」及び「example」を取得する。
【0037】
次に、変数特定部105は、情報格納部104に格納されたシーケンス図や結合テストのソースコード等のWebAPIの処理フロー情報を取得する。そして、変数特定部105は、取得したWebAPIの処理フロー情報から、取得した変数のリストに含まれる各変数が利用者により入力される値か否かを判定する。そして、変数特定部105は、利用者により値が入力される変数の情報を保持する。
【0038】
図5は、WebAPIの処理フロー情報の一例を示す図である。例えば、変数特定部105は、
図5に示すシーケンス220を取得する。そして、変数特定部105は、シーケンス220における処理221を参照して、利用者によりuserIdが選択されて、その値が次の回送APIに対する入力として利用されることを確認する。これにより、変数特定部105は、userIdという変数が利用者により有力される値であると判定する。以下では、変数特定部105により特定された利用者により値が入力される変数を、「利用者入力変数」と呼ぶ。この回送APIが「第1のAPI」の一例にあたり、利用者入力変数が「所定変数」の一例にあたる。また、
図5に示されるシーケンス220が「所定のシーケンス」の一例にあたる。
【0039】
ポリシー特定部107は、利用者入力変数の情報を取得する。そして、ポリシー特定部107は、ポリシー格納部102に格納された設定ファイルを参照して、利用者入力変数それぞれに対するポリシーを特定する。
【0040】
例えば、
図5におけるuserIdという変数について説明する。/workflows/[folowId]/forwardという回送APIに対するポストメソッドにおける変数であるuserIdは、利用者入力変数として特定される。そこで、ポリシー特定部107は、/workflows/[folowId]/forwardという回送APIに対するポストメソッドに対するポリシーがポリシー格納部102に存在するか否かを確認する。
図6は、ポリシーの設定ファイルの一例を示す図である。
図6に示す設定ファイル230は、どういう形式の呼び出しに使われるポリシーかが定義される。この場合、設定ファイル230の行231で示されるuserIdの呼び出し形式が、/workflows/[folowId]/forwardという回送APIの呼び出しの形式に位置するので、ポリシー特定部107は、設定ファイル230で規定されるポリシーが、/workflows/[folowId]/forwardという回送APIに対するポストメソッドに対するポリシーであると特定する。そして、ポリシー特定部107は、設定ファイル230の行232で示されるルールが、/workflows/[folowId]/forwardという回送APIに対するポストメソッドにおける変数であるuserIdに対するポリシーであると特定する。設定ファイル230で規定されるポリシーが、「所定ポリシー」の一例にあたる。
【0041】
API特定部106は、利用者入力変数の情報を取得する。また、API特定部106は、情報格納部104に格納されたシーケンス図や結合テストのソースコード等のWebAPIの処理フロー情報を取得する。そして、API特定部106は、WebAPI実行部103が有する各WebAPIの中から利用者入力変数の値をユーザが選択する際に用いるWebAPIを抽出して、利用者入力変数の入力APIとして特定する。
【0042】
例えば、API特定部106は、利用者入力変数として/workflows/[folowId]/forwardという回送APIに対するポストメソッドにおける変数であるuserIdを取得する。また、API特定部106は、
図5に示すシーケンス220を取得する。そして、API特定部106は、/workflows/[folowId]/forwardという回送APIに対するポストメソッドにおける変数であるuserIdの値を選択する際に利用者が利用するWebAPIとして/users/seach/というユーザ検索APIを入力APIとして特定する。このユーザ検索APIが、「第2のAPI」の一例にあたる。
【0043】
紐付部110は、ポリシー特定部107により特定された利用者入力変数に対するポリシーとAPI特定部106により特定された利用者入力変数の入力APIとを紐づける。
【0044】
図7は、紐付けテーブルの一例を示す図である。例えば、紐付データベース109は、
図7に示すような紐付けテーブル240を有する。紐付けテーブル240は、利用者入力変数の入力APIを特定する情報、利用者入力変数、利用者入力変数に対応するポリシー、そのポリシーを適用する入力APIが実行されるシーケンスの情報及びワークフローの情報が登録可能である。
【0045】
例えば、紐付部110は、利用者入力変数及びその利用者入力変数に対するポリシーの情報の入力をポリシー特定部107から受ける。そして、紐付部110は、取得した利用者入力変数及びその利用者入力変数に対するポリシーの情報を紐付データベース109に格納された紐付けテーブル240に登録する。これにより、紐付部110は、利用者入力変数とその利用者入力変数に対するポリシーとを紐づけして記録する。
【0046】
また、紐付部110は、利用者入力変数及びその利用者入力変数の入力APIの情報の入力をAPI特定部106から受ける。そして、紐付部110は、利用者入力変数が一致する既に登録済みの行にその利用者入力変数の入力APIの情報を紐付データベース109に格納された紐付けテーブル240に登録する。これにより、紐付部110は、利用者入力変数とその利用者入力変数に対するポリシーにその利用者入力変数の入力APIの情報を紐づけして記録する。
【0047】
さらに、そのポリシーが特定のワークフローに適用が制限されている場合には、紐付部110は、特定のワークフローの情報を紐付データベース109に格納された紐付けテーブル240に登録する。これにより、紐付部110は、条件として特定のワークフローも利用者入力変数に紐づけておく。
【0048】
絞込部108は、実行した各WebAPIによる実行結果の入力を実行されたWebAPI、実行中のシーケンス及びワークフローの情報とともにWebAPI実行部103から受ける。そして、絞込部108は、指定されたシーケンスにおいて実行されたWebAPIが入力APIとして紐づけられた利用者入力変数が、紐付データベース109に存在するか否かを確認する。ここで、指定されたシーケンスにおいて実行されたWebAPIを入力APIとする利用者入力変数が存在なければ、絞込部108は、絞り込み無しの通知をWebAPI実行部103へ返す。
【0049】
これに対して、指定されたシーケンスにおいて実行されたWebAPIを入力APIとする利用者入力変数が存在する場合、絞込部108は、その利用者入力変数に対するポリシーを紐付データベース109から取得する。ここで、絞込部108は、条件として紐づけられた特定のワークフローの情報を確認して、実行中のワークフローが特定のワークフローに含まれなければ、絞り込み無しの通知をWebAPI実行部103へ返す。
【0050】
一方、ワークフローの条件が無いもしくはワークフローの条件を満たす場合、絞込部108は、取得したポリシーにしたがって実行結果の絞り込みを行う。その後、絞込部108は、絞り込んだ実行結果をWebAPI実行部103へ出力する。
【0051】
図8は、実行結果の絞り込みの一例を示す図である。例えば、/users/search/というユーザ検索APIによる検索結果の絞り込みについて説明する。絞込部108は、/users/search/というユーザ検索APIの実行結果として、検索結果251を取得する。検索結果251に記載された情報は人物の識別情報であるUUIDである。また、絞込部108は、実行されたWebAPIの情報として/users/search/を取得し、シーケンスの情報として回送を取得する。
【0052】
次に、絞込部108は、
図7に示した紐付けテーブル24を参照して、シーケンスが回送の場合の/users/search/というユーザ検索APIを入力APIとして紐づけられた利用者入力変数がuserIdであると特定する。そして、絞込部108は、検索結果251の情報をtoken.payload.superiorsに一致する情報、すなわち利用者の上司である者に絞り込む。ここで、絞込部108は、組織であれば従業員のUUIDとともにその属性が登録された情報を保持しておきその情報を用いて絞り込みを行っても良いし、従業員データベース等の外部の情報を用いてもよい。
【0053】
例えば、利用者の上司が1人存在する場合、絞込部108は、絞り込み結果252を取得する。そして、絞込部108は、絞り込み結果252をWebAPI実行部103へ送信して、利用者端末装置2に表示させる。
図9は、実施例1に係る絞り込み後の検索結果の表示例を示す図である。例えば、利用者端末装置2は、承認者の検索において承認者が上司であることが要求され且つ利用者の上司が1人の場合、WebAPI実行部103により1人の承認者が選択された状態の
図9に示す回送画面203を表示する。このように検索結果が1つの場合、自動的に絞り込まれた1つの検索結果が選択されてもよい。
【0054】
図10は、実施例1に係る情報処理装置による紐付け処理のフローチャートである。次に、
図10を参照して、実施例1に係る情報処理装置1による紐付け処理の流れを説明する。
【0055】
変数特定部105は、WebAPI実行部103が有するWebAPIのうちの未選択のWebAPIの中から1つWebAPIを選択する(ステップS1)。
【0056】
次に、変数特定部105は、選択したWebAPIのAPI定義を情報格納部104から取得する。そして、変数特定部105は、API定義を基に、選択したWebAPIの実行時にPOSTする変数のリストを取得する(ステップS2)。
【0057】
次に、変数特定部105は、取得した変数のリストのうち未選択の変数を1つ選択する(ステップS3)。
【0058】
次に、変数特定部105は、シーケンス図や結合テストのソースコード等のWebAPIの処理フロー情報を情報格納部104から取得する。そして、変数特定部105は、WebAPIの処理フロー情報から選択され変数が利用者により入力される値であり利用者入力変数化否かを判定する(ステップS4)。選択した変数が利用者入力変数でない場合(ステップS4:否定)、紐付け処理は、ステップS9へ進む。
【0059】
これに対して、選択した変数が利用者入力変数の場合(ステップS4:肯定)、ポリシー特定部107は、選択したAPIの情報及び利用者入力変数の情報を変数特定部105から取得する。そして、ポリシー特定部107は、ポリシー格納部102に格納された設定ファイルを参照して、選択したAPIに対応するポリシーが存在するか否かを判定する(ステップS5)。選択したAPIに対応するポリシーが存在しない場合(ステップS5:否定)、紐付け処理は、ステップS9へ進む。
【0060】
これに対して、選択したAPIに対応するポリシーが存在する場合(ステップS5:肯定)、ポリシー特定部107は、選択したAPIに対応するポリシーから、利用者入力変数に対応するポリシーを抽出する。そして、ポリシー特定部107は、利用者入力変数と抽出したポリシーを紐付けして紐付データベース109に記録する(ステップS6)。
【0061】
API特定部106は、選択したAPIの情報及び利用者入力変数の情報を変数特定部105から取得する。また、API特定部106は、シーケンス図や結合テストのソースコード等のWebAPIの処理フロー情報を情報格納部104から取得する。そして、API特定部106は、WebAPIの処理フロー情報を用いて、利用者入力変数の値を利用者が選択する際に用いるWebAPIが存在するか否かを判定する(ステップS7)。利用者入力変数の値を利用者が選択する際に用いるWebAPIが存在しない場合(ステップS7:否定)、紐付け処理は、ステップS9へ進む。
【0062】
これに対して、利用者入力変数の値を利用者が選択する際に用いるWebAPIが存在する場合(ステップS7:肯定)、API特定部106は、利用者入力変数の値を利用者が選択する際に用いるWebAPIを利用者入力変数の入力APIとしてする。そして、API特定部106は、入力APIを利用者入力変数に紐付けして紐付データベース109に記録する(ステップS8)。
【0063】
変数特定部105は、取得した変数のリストに含まれる全ての変数に対する紐付けの検討が完了したか否かを判定する(ステップS9)。紐付けの検討を行っていない変数が残っている場合(ステップS9:否定)、紐付け処理はステップS3へ戻る。
【0064】
これに対して、取得した変数のリストに含まれる全ての変数に対する紐付けの検討が完了した場合(ステップS9:肯定)、変数特定部105は、WebAPI実行部103が有する全てのWebAPIに対する変数の紐付けの検討が完了したか否かを判定する(ステップS10)。
【0065】
変数の紐付けの検討を行っていないWebAPIが残っている場合(ステップS10:否定)、紐付け処理は、ステップS1へ戻る。これに対して、WebAPI実行部103が有する全てのWebAPIに対する変数の紐付けの検討が完了した場合(ステップS10:肯定)、紐付け処理は終了する。
【0066】
図11は、実行結果の絞り込みをともなうWebAPIの実行処理のフローチャートである。次に、
図11を参照して、実行結果の絞り込みをともなうWebAPIの実行処理の流れを説明する。ここでは、ワークフローの条件が無く利用者入力変数が用いられる場合で説明する。
【0067】
WebAPI実行部103は、利用者端末装置2から行われたAPI呼び出しをOPA101を介して受ける(ステップS11)。そして、WebAPI実行部103は、呼び出されたWebAPIを実行する。
【0068】
絞込部108は、紐付データベース109に格納された情報を参照して、実行されたWebAPIを入力APIとする利用者入力変数が存在するか否かを判定する(ステップS12)。
【0069】
実行されたWebAPIを入力APIとする利用者入力変数が存在しない場合(ステップS12:否定)、絞込部108は、絞り込み無しの通知をWebAPI実行部103へ返す。WebAPI実行部103は、実行結果を利用者端末装置2へ出力する(ステップS17)。その後、WebAPIの実行処理は終了する。
【0070】
これに対して、実行されたWebAPIを入力APIとする利用者入力変数が存在する場合(ステップS12:肯定)、絞込部108は、利用者入力変数に対するポリシーを紐付データベース109から取得する。そして、絞込部108は、WebAPIによる実行結果を取得したポリシーに沿うように絞り込む(ステップS13)。
【0071】
次に、絞込部108は、絞り込みの結果が1つであるか否かを判定する(ステップS14)。絞り込みの結果が複数の場合(ステップS14:否定)、WebAPIの実行処理はステップS16へ進む。
【0072】
これに対して、絞り込みの結果が1つの場合(ステップS14:肯定)、絞込部108は、絞り込みの結果が利用者により選択されたものとする(ステップS15)。
【0073】
その後、絞込部108は、絞り込み後の実行結果を利用者端末装置2へ出力する(ステップS16)。
【0074】
以上に説明したように、本実施例に係る情報処理装置は、WebAPIで用いられる変数のうち値が利用者からの入力により与えられる利用者入力変数を特定する。次に、情報処理装置は、利用者入力変数に対応するポリシー及び入力APIを特定して、利用者入力変数に紐づけて紐付データベースに記録する。そして、情報処理装置は、WebAPIが実行された場合に、その実行されたWebAPIを入力APIとする利用者入力変数が存在する場合、その利用者入力変数に対するポリシーに沿ってWebAPIの実行結果を絞り込んで利用者に提供する。
【0075】
これにより、利用者が変数の値の選択に利用する実行結果を自動的にポリシーに沿って絞り込むことができ、利用者はポリシーに沿った情報の中から変数の値を選択することができる。すなわち、利用者は、社内ルールや法律を基に作成されたポリシーと不整合を起こさないデータを容易に入力することが可能となる。また、ポリシーが変更された場合に、利用者入力変数に対応するポリシーを自動で行進することができる。これにより、ポリシーの変更に対して絞り込み処理を自動的に追随させることができ、ポリシー変更に対する追随を容易にする可能となる。したがって、ワークフローを用いた業務の作業効率を向上させることが可能である。
絞込部108は、絞り込んだ実行結果の中から選択された値を、選択を行った利用者のIDトークンとともにWebAPI実行部103から取得する。IDトークンは、利用者がログインする毎に新しく生成されて、利用者端末装置2へ送信される。具体的には、IDトークンは、情報処理装置1におけるID等を管理するプログラム(認証基盤)により生成される。次に、絞込部108は、選択された値が含まれる属性の情報をIDトークンから取得する。そして、絞込部108は、紐付データベース109に格納された入力APIに対応付けて取得した属性が選択され回数を記録する。
IDトークン301には、利用者の上司(superiors)、並びに、利用者が属する部門(department)及びチーム(team)の情報が含まれる。絞込部108は、befd59ba-6481-c568-35be-91d57cdc24f0で表される人物が、利用者が属する部門のメンバー且つマネージャであり、さらに、絞込部108は、befd59ba-6481-c568-35be-91d57cdc24f0で表される人物が、利用者が属するチームのメンバーであることがIDトークン301から確認できる。
例えば、上述したように、ID1の入力APIの実行結果の中から利用者が属する部門のメンバー且つマネージャであり利用者が属するチームのメンバーである人物が選択された場合について説明する。この場合、絞込部108は、属性選択回数テーブル302のID1の行のdepartment.members、department.managers及びteam.menbersの数を1つずつインクリメントする。department.membersは利用者が属する部門のメンバーを表し、department.managersは利用者が属する部門のマネージャを表し、team.menbersは利用者が属するチームのメンバーを表す。絞込部108は、WebAPIが実行される毎に属性選択回数テーブル302を更新することで、各属性が選択され回数を記録することができる。
そして、絞込部108は、WebAPIの実行結果を絞り込んだ後に、その絞り込みに用いた利用者入力変数に対応する各属性の選択された回数を紐付データベース109から取得する。そして、絞込部108は、利用頻度の高い属性に含まれる値順に絞り込んだ実行結果をソートする。
その後、絞込部108は、ソートした絞り込み結果をWebAPI実行部103へ出力する。これにより、利用者端末装置2にソートした絞り込み結果が表示され、利用者は、利用頻度の高い順で利用者入力変数に用いる値を確認することができる。
以上に説明したように、本実施例に係る情報処理装置は、絞り込み結果を各値に備わった属性の利用頻度に応じてソートして利用者に提供する。これにより、利用者は選択する可能性が高い値を容易に見つけることができ、作業効率を向上させることが可能となる。
ネットワークインタフェース94は、情報処理装置1と外部装置との間の通信のためのインタフェースである。ネットワークインタフェース94は、例えば、利用者端末装置2及びワークフロー処理システム3とCPU91との間の通信を中継する。