(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024043624
(43)【公開日】2024-04-02
(54)【発明の名称】情報処理装置及びプログラム
(51)【国際特許分類】
H04L 67/02 20220101AFI20240326BHJP
G06F 15/00 20060101ALI20240326BHJP
【FI】
H04L67/02
G06F15/00 410A
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2022148711
(22)【出願日】2022-09-20
(71)【出願人】
【識別番号】000005496
【氏名又は名称】富士フイルムビジネスイノベーション株式会社
(74)【代理人】
【識別番号】110001210
【氏名又は名称】弁理士法人YKI国際特許事務所
(72)【発明者】
【氏名】水崎 裕太郎
(57)【要約】
【課題】情報処理装置からのHTTPリクエストに対するHTTPレスポンスのすべてを変換装置が変換した上で情報処理装置に提供する方式と比べて、変換装置を介することによる情報処理装置の処理効率の低下を抑制する。
【解決手段】切り分け機能19は、基本機能17からの要求に応じてクラウドサービス20にHTTPリクエストを送り、これに対するHTTPレスポンスを受け取る。切り分け機能19は、そのHTTPレスポンスが含むデータの種別等を解析し、その解析の結果に基づき、基本機能17がそのHTTPレスポンスを処理できるかを判定する。そして切り分け機能19は、その判定の結果に応じて、そのHTTPレスポンスをそのまま基本機能17に渡すか、基本機能17が処理可能なデータ内容にRBIシステム30で変換した上で基本機能17に渡すかを制御する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
プロセッサを備え、
前記プロセッサは、
要求元からの要求に応じたHTTPリクエストを第1の外部サービスに送信し、そのHTTPリクエストに対するHTTPレスポンスを受信し、
前記HTTPレスポンスを前記要求元に渡すか、前記HTTPレスポンスを外部の変換装置で変換することにより得られたデータを前記要求元に渡すかを、前記HTTPレスポンスに含まれるデータに基づいて切り替える、
情報処理装置。
【請求項2】
前記プロセッサは、
前記要求元が処理できない種類のデータが前記HTTPレスポンスに含まれる場合、前記HTTPレスポンスを前記変換装置で変換することにより得られたデータを前記要求元に渡す、
請求項1に記載の情報処理装置。
【請求項3】
前記プロセッサは、
前記要求元が処理できない種類のデータが前記HTTPレスポンスに含まれない場合、前記HTTPレスポンスを前記要求元に渡す、
請求項1に記載の情報処理装置。
【請求項4】
前記プロセッサは、
前記第1の外部サービスとは異なる第2の外部サービスとの通信を行うことを表す記述が前記HTTPレスポンスに含まれる場合、前記HTTPレスポンスを前記変換装置で変換することにより得られたデータを前記要求元に渡す、
請求項1に記載の情報処理装置。
【請求項5】
前記プロセッサは、
前記HTTPレスポンスを前記要求元に渡した場合において、前記要求元における前記HTTPレスポンスに関する処理にエラーが生じた場合に、前記HTTPレスポンスを前記変換装置に変換させ、この結果得られたデータを前記要求元に渡す、
請求項1に記載の情報処理装置。
【請求項6】
要求元からの要求に応じたHTTPリクエストを第1の外部サービスに送信し、そのHTTPリクエストに対するHTTPレスポンスを受信し、
前記HTTPレスポンスを前記要求元に渡すか、前記HTTPレスポンスを外部の変換装置で変換することにより得られたデータを前記要求元に渡すかを、前記HTTPレスポンスに含まれるデータに基づいて切り替える、
処理をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置及びプログラムに関する。
【背景技術】
【0002】
RBI(Remote Browser Isolation)というシステムがある。RBIシステムは、クライアント端末とウェブサイトとの間に設けられ、ウェブサイトが提供するウェブページを解析してセキュリティ上の脅威を取り除き、ウェブページを画像にしてクライアント端末に提供する。クライアント端末上のウェブブラウザ(以下単にブラウザと呼ぶ)は、その画像を表示し、その画像上でユーザがクリックした座標やユーザが入力した文字の情報をRBIシステムに送る。RBIシステムは、ブラウザから送られてきた情報を、そのウェブページに対する入力の形式に変更してウェブサイトに送る。
【0003】
また特許文献1には、ウェブサイトからのレスポンスに含まれるHTML(HyperText Markup Language)ソースをプロキシサーバが修正してウェブブラウザに返すシステムが開示されている。このシステムでは、プロキシサーバが、ウェブアプリケーションの誤操作が起こりにくいように、HTMLソースを修正している。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
近年、複合機等の情報処理装置において、情報処理装置外にあるクラウドサービス等のウェブサービスを使用する例が増えている。例えば、情報処理装置に対するログイン認証を、外部のシングルサインオン認証サービスを利用して行うことがその一例である。
【0006】
一方、情報処理装置に搭載されているブラウザ等のHTMLを処理するソフトウェアは、アップデートが不可能であったり、可能であってもアップデートが行われなかったりすることが多い。このため、情報処理装置が最新のウェブ技術を用いたウェブサービスに対応できない場合がある。
【0007】
このような問題に対してRBI技術を応用することが考えられる。すなわち、情報処理装置とウェブサイトとの間に設けたRBI等の変換装置が、ウェブサイトからのHTTPレスポンスを情報処理装置が取り扱い可能な形に変換した上で、情報処理装置に提供するのである。
【0008】
RBIそのものは、クライアント端末をセキュリティ上の脅威から保護するための技術なので、ウェブサイトからクライアント端末へのHTTPレスポンスはすべてRBIシステムを経由する。
【0009】
これに対して、1つの情報処理装置が複数のウェブサービスを利用することもあり、ウェブサービスからのHTTPレスポンスの中には、その情報処理装置のソフトウェアが対応可能なものもあれば対応不可能なものもある。ソフトウェアが対応可能なHTTPレスポンスをも変換装置を経由すると、変換装置での処理の分だけ情報処理装置が実行する情報処理が遅れてしまい、情報処理装置の処理効率が低下する。
【0010】
本発明は、情報処理装置からのHTTPリクエストに対するHTTPレスポンスのすべてを変換装置が変換した上で情報処理装置に提供する方式と比べて、変換装置を介することによる情報処理装置の処理効率の低下を抑制することを目的とする。
【課題を解決するための手段】
【0011】
請求項1に係る発明は、プロセッサを備え、前記プロセッサは、要求元からの要求に応じたHTTPリクエストを第1の外部サービスに送信し、そのHTTPリクエストに対するHTTPレスポンスを受信し、前記HTTPレスポンスを前記要求元に渡すか、前記HTTPレスポンスを外部の変換装置で変換することにより得られたデータを前記要求元に渡すかを、前記HTTPレスポンスに含まれるデータに基づいて切り替える、情報処理装置である。
【0012】
請求項2に係る発明は、前記プロセッサは、前記要求元が処理できない種類のデータが前記HTTPレスポンスに含まれる場合、前記HTTPレスポンスを前記変換装置で変換することにより得られたデータを前記要求元に渡す、請求項1に記載の情報処理装置である。
【0013】
請求項3に係る発明は、前記プロセッサは、前記要求元が処理できない種類のデータが前記HTTPレスポンスに含まれない場合、前記HTTPレスポンスを前記要求元に渡す、請求項1に記載の情報処理装置である。
【0014】
請求項4に係る発明は、前記プロセッサは、前記第1の外部サービスとは異なる第2の外部サービスとの通信を行うことを表す記述が前記HTTPレスポンスに含まれる場合、前記HTTPレスポンスを前記変換装置で変換することにより得られたデータを前記要求元に渡す、請求項1に記載の情報処理装置である。
【0015】
請求項5に係る発明は、前記プロセッサは、前記HTTPレスポンスを前記要求元に渡した場合において、前記要求元における前記HTTPレスポンスに関する処理にエラーが生じた場合に、前記HTTPレスポンスを前記変換装置に変換させ、この結果得られたデータを前記要求元に渡す、請求項1に記載の情報処理装置である。
【0016】
請求項6に係る発明は、要求元からの要求に応じたHTTPリクエストを第1の外部サービスに送信し、そのHTTPリクエストに対するHTTPレスポンスを受信し、前記HTTPレスポンスを前記要求元に渡すか、前記HTTPレスポンスを外部の変換装置で変換することにより得られたデータを前記要求元に渡すかを、前記HTTPレスポンスに含まれるデータに基づいて切り替える、処理をコンピュータに実行させるためのプログラムである。
【発明の効果】
【0017】
請求項1-4又は6に係る発明によれば、情報処理装置からのHTTPリクエストに対するHTTPレスポンスのすべてを変換装置が変換した上で情報処理装置に提供する方式と比べて、変換装置を介することによる情報処理装置の処理効率の低下を抑制することができる。
【0018】
請求項5に係る発明によれば、HTTPレスポンスに含まれるデータに基づく判定に応じてそのHTTPレスポンスを要求元に渡した場合に、その判定に反して要求元がそのHTTPレスポンスを正しく処理できない場合にも対処することができる。
【図面の簡単な説明】
【0019】
【
図1】画像処理装置の機能的な構成と、この画像処理装置を含む情報処理システムの構成を例示する図である。
【
図2】Webクライアントの切り分け機能が実行する処理手順の一例を示す図である。
【
図3】
図2の処理手順におけるS16の詳細な処理手順を例示する図である。
【
図4】HTTPレスポンスの具体例を示す図である。
【
図5】HTTPレスポンスの別の具体例を示す図である。
【
図6】HTTPレスポンスの更に別の具体例を示す図である。
【
図8】コンピュータのハードウエア構成を例示する図である。
【発明を実施するための形態】
【0020】
以下、図面を参照して本発明を実施するための形態(以下、実施形態と呼ぶ)を説明する。
【0021】
図1に、本発明に係る情報処理装置の一実施形態である画像処理装置10の機能的な構成と、その画像処理装置10を含む情報処理システムの構成を例示する。
【0022】
このシステムでは、画像処理装置10は、ローカルエリアネットワークやインターネット等のデータ通信ネットワークを介して、クラウドサービス20やRBIシステム30に接続されている。
【0023】
画像処理装置10は、例えば、プリント機能、スキャン機能及びコピー機能の中の少なくとも1つの機能を有し、ユーザに対してそれら機能を提供する装置である。画像処理装置10は、プリンタ、スキャナ、コピー機、又は、複合機(例えば、プリント機能、スキャン機能及びコピー機能等を有する装置)等である。
【0024】
画像処理装置10は、機能的な構成要素として、画像処理部12と情報処理部14とを備える。
【0025】
画像処理部12は、プリント、スキャン、コピー等といった、媒体への画像の印刷や媒体上の画像の読み取り等の処理を実行する機能モジュールである。画像処理部12は、プリンタ又はスキャナ等の、画像処理用のハードウエアを備えている。
【0026】
情報処理部14は、画像処理部12の制御、画像処理部12の画像処理機能に関連する情報処理、UI(ユーザインタフェース)処理、等の各種の情報処理を実行する機能モジュールである。画像処理部12の画像処理機能に関連する情報処理の中には、例えば、ユーザから指示されたプリントやスキャン等のジョブの管理、スキャンにより得られたスキャン画像に対する情報処理、プリント対象の文書や画像に対する加工や編集等の処理、等がある。スキャン画像に対する情報処理には、例えば、文字認識処理や、文字認識結果に対する翻訳、帳票へのデータエントリ処理等がある。
【0027】
情報処理部14は、情報処理の実行のために、クラウドサービス20等の外部サービスを利用する場合がある。例えば、情報処理部14は、文字認識サービスを提供するクラウドサービス20にスキャン画像を送信し、そのクラウドサービスから文字認識結果を受け取り、文字認識結果を含んだ文書ファイルを生成する。また、別の例では、情報処理部14は、画像処理装置10を利用しようとするユーザを認証するために、ユーザ認証サービスを提供するクラウドサービス20にそのユーザの認証を依頼する。これらはあくまで一例であり、情報処理部14は、様々な異なるクラウドサービス20を利用することができる。
【0028】
情報処理部14は、Webクライアント15を備えている。Webクライアント15は、WWW(ワールドワイドウェブ)上のサービスを利用するクライアントソフトウェアである。Webクライアント15は、HTTP(HyperText Transfer Protocol)やよりセキュアなプロトコルであるHTTPS(HyperText Transfer Protocol Secure)を用いてクラウドサービス20等の外部サービスと通信を行う。Webクライアント15は、HTTPリクエストをクラウドサービス20に送信し、これに対するクラウドサービス20からのHTTPレスポンスを受信し、そのレスポンスに応じた処理を実行する。Webクライアント15には、例えば、Webブラウザや、Webベースのクラウドサービス20と連携して情報処理を実行するアプリケーション等が含まれる。前者のWebブラウザは、例えば、画像処理装置10のUI画面を生成する。後者のアプリケーションとしては、例えば、ユーザ認証サービスを提供するクラウドサービス20との認証連携によりユーザ認証を行うものがある。また、別の例として、クラウドプリントサービスを提供するクラウドサービス20に登録された印刷ジョブをダウンロードして印刷するアプリケーション等もある。
【0029】
Webクライアント15は、基本機能17と切り分け機能19を備えている。このうち基本機能17は、Webクライアント15がユーザに対して提供する機能のことであり、例えば上述したWebブラウザ機能、クラウドサービス20と連携する各種の処理機能(例えばユーザ認証やクラウドプリント)がその一例である。基本機能17は、クラウドサービス20等の外部サービスへの要求を発する要求元の一例である。
【0030】
切り分け機能19は、基本機能17がクラウドサービス20と連携して処理を実行する際に、RBIシステム30を利用するか否かの制御を行う。切り分け機能19は、内蔵するHTTPパーサにより、クラウドサービス20から返されてきたHTTPレスポンスを解析し、その解析の結果に基づいてその制御を実行する。切り分け機能19については、後で詳しく説明する。
【0031】
クラウドサービス20は、インターネット等のネットワークを介して、画像処理装置10に対してWebベースでサービスを提供するサーバである。クラウドサービス20は、Webクライアント15からのHTTPリクエストを処理し、HTTPレスポンスを返す外部サービスの一例である。
【0032】
図では、クラウドサービス20を1つのみ示したが、認証サービスを提供するもの、クラウドプリントサービスを提供するもの等、異なる複数のクラウドサービス20が存在していてもよい。また、単にウェブページ群を提供するWebサーバも、クラウドサービス20の一例である。
【0033】
RBIシステム30は、変換装置の一例であり、クラウドサービス20が返したHTTPレスポンスを、Webクライアント15が取扱可能な形に変換する。画像処理装置10が搭載するWebクライアント15は、必ずしも最新のWeb技術に対応した状態にアップデートされているとは限らないので、クラウドサービス20が返したHTTPレスポンスを適切に処理できない場合があり得る。RBIシステム30は、Webクライアント15が適切に処理できないHTTPレスポンスを、例えばイメージデータ等といった、Webクライアント15が処理可能なデータ形式のデータに変換する。このようなRBIシステム30のデータ変換の機能は、公知のRBIシステムと同様のものでよい。
【0034】
次に、
図2を参照して、切り分け機能19が実行する処理の例を説明する。
【0035】
基本機能17は、あるクラウドサービス20を利用して処理を実行する場合、その処理のためのHTTPリクエストのボディの部分を生成し、これを切り分け機能19に渡す。切り分け機能19は、そのリクエストボディを受け取り(S10)、そのリクエストボディを含んだGET又はPOST等のHTTPリクエストを、リクエスト先のクラウドサービス20へと送信する(S12)。
【0036】
クラウドサービス20は、そのHTTPリクエストを受信して処理し、その処理結果のデータを含んだHTTPレスポンスを切り分け機能19に返す。
【0037】
切り分け機能19は、クラウドサービス20から返されてきたHTTPレスポンスを受信する(S14)。そして、切り分け機能19は、そのHTTPレスポンスに含まれるデータを解析し(S16)、その解析の結果に基づいて、そのHTTPレスポンスをRBIシステム30に処理させるか否かを判定する(S18)。すなわち、切り分け機能19は、そのHTTPレスポンス内のデータの内容から、そのHTTPレスポンスを基本機能17が正しく処理できるか否かを判定し、正しく処理できないと判定される場合には、そのHTTPレスポンスをRBIシステム30に渡して、基本機能17が取扱可能な形式のデータへと変換させるのである。ここでの解析及び判定の処理については後で詳しく説明する。
【0038】
S18で、HTTPレスポンスをRBIシステム30に処理させないと判定した場合(すなわちS18の判定結果がNoの場合)、そのHTTPレスポンスは、そのままでも基本機能17が正しく処理可能である。この場合、切り分け機能19は、そのHTTPレスポンスを基本機能17に渡す(S20)。基本機能17は、受け取ったそのHTTPレスポンスを用いて、所期の処理(例えばUI画面の表示、プリントの実行等)を実行する。
【0039】
S18で、HTTPレスポンスをRBIシステム30に処理させると判定した場合(すなわちS18の判定結果がYesの場合)、切り分け機能19は、そのHTTPレスポンスをRBIシステム30に送信する(S22)。この送信は、例えばPOSTリクエストにより行えばよい。RBIシステム30は、受信したそのHTTPレスポンスを、基本機能17で取扱可能なデータへと変換し、変換結果のデータを含んだレスポンスを切り分け機能19に返す。このレスポンスは、HTTP以外のプロトコル(例えばIP、TCP)のためのヘッダ、HTTPヘッダ、EntityBodyから構成される。このEntityBodyに、RBIシステム30の変換結果(すなわちS22で切り分け機能19が送ったHTTPレスポンスをRBIシステム30が変換したもの)が含まれる。
【0040】
切り分け機能19は、RBIシステム30からのレスポンスを受信し(S24)、そのレスポンスに含まれるデータを解析する(S26)。この解析では、レスポンス中のEntityBodyが抽出される。切り分け機能19は、サービス名、ユーザ名等の基本機能17の利用に必要な情報と、S26で抽出したEntityBodyのデータとを、基本機能17に渡す(S28)。渡されるデータは基本機能17が取り扱い可能なデータである。基本機能17は、受け取ったそれらのデータを用いて、所期の処理を実行する。
【0041】
S28で基本機能17が、RBIシステム30からのレスポンスを用いてUI画面を生成し、画像処理装置10に付属する表示装置に表示し、ユーザからそのUI画面に対する入力を受け付ける場合がある。この場合、その入力の情報は、RBIシステム30によりクラウドサービス20が要求する形式のデータに変換された上で、クラウドサービス20に送信される。
【0042】
次に、
図3を参照して、S16の処理の詳細な例を説明する。
【0043】
概略的に言えば、この例では、切り分け機能19は、S14でクラウドサービス20から受信したHTTPレスポンスが次の2つのケースの少なくとも一方に該当する場合に、そのHTTPレスポンスをRBIシステム30に変換させるべきと判定する。
【0044】
第1のケースは、そのHTTPレスポンスに含まれるデータが、基本機能17で適切に処理できない種類のデータである場合である。例えば、基本機能17がjavascript(登録商標)をサポートしていない、またはサポートしているjavascriptのバージョンが古い場合を考える。この場合、HTTPレスポンスがjavascriptの記述を含んでいると、基本機能17はそのレスポンスを正しく処理できないか、又はその可能性が極めて高い。そこで、このような場合には、RBIシステム30が、そのHTTPレスポンスを、基本機能17が取扱可能なデータ内容に変換することとする。
【0045】
第2のケースは、そのHTTPレスポンスの処理のためにそのクラウドサービス20以外の他のサーバへのアクセスが必要な場合である。例えば、そのHTTPレスポンス内にインターネット上の特定の認証連携サービスでのユーザ認証を求める命令が含まれている場合があるが、基本機能17がそのような命令に対応していない、又は、その認証連携サービスを利用することができない、等という場合がある。このような場合、RBIシステム30が、基本機能17と認証連携サービスとの仲介を行う。このように、HTTPレスポンスが、他のサーバへのアクセスを要する記述を含んでいる場合には、RBIシステム30の介入が必要となる。
【0046】
図3は、このような切り分け機能19による場合分けの処理の具体例を示す。
【0047】
この手順では、切り分け機能19は、S14でクラウドサービス20から受信したHTTPレスポンスのうちの、コンテンツネゴシエーションの記述を解析し、その記述が示すデータの種類を調べる(S30)。このとき切り分け機能19は、例えば、そのHTTPレスポンスのヘッダ内のContent-Typeの値を調べる。その値が、RBIシステム30の利用が必要な所定のいくつかのデータ種類のいずれかに該当するか否かを判定する(S32)。この判定の結果がYesの場合、切り分け機能19は、RBIシステム30を利用すると判定する(S50)。なお、コンテンツネゴシエーションの記述内に、複数のデータ種類が列挙されている場合、それら複数の中に1つでもRBIシステム30の利用が必要なデータ種類に該当するものがあれば、S32の判定結果はYesとなる。逆に、それら複数のデータ種類のすべてが、RBIシステム30の利用が必要なデータ種類のいずれにも該当しない場合には、S32の判定結果はNoとなる。
【0048】
S32の判定の結果がNoの場合、切り分け機能19は、そのHTTPレスポンスのEntityBodyの内容を解析する(S34)。
【0049】
S34の解析では、切り分け機能19は、例えばEntityBody内の各要素のタグに記述されたデータ種類を調べる。例えば、基本機能17が、javascript等のスクリプト言語を適切に処理できないものである場合、スクリプト言語で記述されたデータは、RBIシステム30の利用が必要なデータ種類に該当する。HTMLでは、スクリプト言語のデータはscriptタグで示されるので、EntityBody内にscriptタグがあれば、スクリプト言語データが含まれると言うことになる。
【0050】
また、S34の解析では、EntityBody内に、画像処理装置10の外にある外部サービスと通信することを求める命令が記述されているか否かを調べる。例えば、URL(Uniform Resource Locator)にアクセスする命令が、そのような命令の例である。
【0051】
切り分け機能19は、S34の解析により、EntityBody内に、RBIシステム30の利用が必要な所定のいくつかのデータ種類のいずれかに該当するデータが含まれるか否かを判定する(S36)。S36の判定結果がNoとなるのはRBIシステム30の利用が必要なデータ種類のデータがEntityBody内に1つもない場合であり、それ以外の場合はS36の判定結果はYesとなる。S36の判定の結果がYesの場合、切り分け機能19は、RBIシステム30を利用すると判定する(S50)。
【0052】
また、切り分け機能19は、S34での解析の結果に基づき、EntityBody内に外部サービスとの通信の命令が含まれているかどうかを判定する(S38)。この判定の結果がYesの場合、切り分け機能19は、RBIシステム30を利用すると判定する(S50)。この判定の結果は、
図2の手順のS18の判定に反映される。
【0053】
S36及びS38の判定結果が共にNoの場合、切り分け機能19は、RBIを利用しないと判定する(S40)。この判定の結果は、
図2の手順のS18の判定に反映される。
【0054】
このように、
図3の処理手順では、切り分け機能19が、クラウドサービス20からのHTTPレスポンス内のヘッダやEntityBodyの記述から、そのHTTPレスポンスをRBIシステム30に処理させるか否かを判定する。
【0055】
図3の手順のS32及びS36では、RBIシステム30に変換させることが必要なデータ種類に該当するデータがHTTPレスポンスに含まれるか否かを判定したが、これは一例に過ぎない。この代わりに、S32及びS36で、HTTPレスポンスに含まれるデータがすべて、基本機能17の処理可能な(すなわちRBIシステム30に変換させる必要がない)データ種類に該当するか否かを判定してもよい。この場合、それらの判定の結果のうちの1つでもNo(すなわち、HTTPレスポンスの中に、基本機能17の処理可能なデータ種類に該当しないデータが1以上ある)の場合は、切り分け機能19は、S50に進み、RBIシステム30を利用すると判定する。
【0056】
図3の手順での判定について、HTTPレスポンスの具体例を参照して更に説明する。
【0057】
図4に例示するHTTPレスポンス100は、コンテンツネゴシエーションを示すContent-Typeが「image/jpeg」であることを示す記述102を含む。HTTPレスポンス100のコンテンツネゴシエーション記述には、これ以外のデータ種別を示すものはない。そのデータ種別「image/jpeg」は基本機能17がそのまま受け取って処理することが可能なものである。逆に言えば、このHTTPレスポンス100に記述されたContent-Typeには、基本機能17が取り扱うに当たってRBIシステム30での変換を要するデータ種類は含まれない。したがって、このHTTPレスポンス100についてのS32の判定結果はNoとなる。また、このHTTPレスポンス100のEntityBodyには、そのデータ種別「image/jpeg」のデータの実体であるバイナリデータが含まれるのみである。したがって、S36及びS38の判定結果もNoとなり、このHTTPレスポンス100についてはS40で「RBIシステム30を利用しない」ものと判定される。したがって、切り分け機能19は、
図2の手順のS20にて、このHTTPレスポンス100を基本機能17に渡す。
【0058】
図5に例示するHTTPレスポンス110は、EntityBody内に、scriptタグで示される要素112を含んでいる。スクリプト言語で記述されたデータが、RBIシステム30での変換を要するデータ種類と規定されている場合、HTTPレスポンス110についてのS36の判定結果はYesとなる。したがって、切り分け機能19は、S50でこのHTTPレスポンス110は「RBIシステム30を利用する」ものであると判定し、
図2の手順のS22~S28の処理を実行する。
【0059】
図6に例示するHTTPレスポンス120は、EntityBody内に、"https://example.com/devicelogin"という検証URI(Uniform Resource Identifier)でエンドユーザ検証を受けることを指示する記述122を含んでいる。したがって、HTTPレスポンス120については、S38の判定結果がYesとなる。したがって、切り分け機能19は、S50でこのHTTPレスポンス110は「RBIシステム30を利用する」ものであると判定し、
図2の手順のS22~S28の処理を実行する。
【0060】
次に、
図7を参照して、切り分け機能19の処理手順の変形例を説明する。
図3に示す手順ではS20の後で処理は終了していたが、
図7に示す手順では、S20の後に、S60からS68のステップが実行される。この変形例における切り分け機能19の処理手順のうち、
図7に示したS20以降の部分以外は、
図2に示した手順と同様である。
【0061】
すなわち、
図7に示す手順では、切り分け機能19は、クラウドサービス20から返信されたHTTPレスポンスをS20で基本機能17に渡した後、そのHTTPレスポンスの処理の際に基本機能17でエラーが起こったか否かを判定する(S60)。例えば、そのHTTPレスポンスの処理においてエラーが起こった場合に、基本機能17が切り分け機能19に対してエラー発生の旨を通知し、この通知に従い、切り分け機能19がエラー発生の判定を行えばよい。
【0062】
S60の判定の結果がYesの場合、切り分け機能19は、そのHTTPレスポンスをRBIシステム30に送信し(S62)、この送信に応じてRBIシステム30から返されるレスポンスを受信する(S64)。そして、切り分け機能19は、受信したレスポンスに含まれるデータを解析し(S66)、解析の結果得られたデータ(例えばEntityBodyのデータ)を、基本機能17に渡す(S68)。基本機能17は、受け取ったそれらのデータを用いて、所期の処理を実行する。
【0063】
図2の手順は、S16の解析及びS18の判定に誤りはないという前提に基づくものである。これに対し、
図7の手順は、それら解析及び判定に万が一誤りがある場合にも対応可能である。すなわち、基本機能17がクラウドサービス20からのHTTPレスポンスを正しく処理できず、エラーとなった場合に、切り分け機能19は、そのHTTPレスポンスをRBIシステム30に変換させることで、基本機能17が処理可能なデータ内容にする。
【0064】
(実施例)
以下、具体的な事例に沿った実施例を示す。
【0065】
この例では、画像処理装置10(例えば複合機)の利用状況をクラウドサービス20で管理しており、その利用状況を示すログ解析結果のグラフを画像処理装置10の画面上に表示するシーンを考える。クラウドサービス20は、そのグラフをデータ種別「HTML/javascript」のデータとして画像処理装置10に提供するが、画像処理装置10の基本機能17は、javascriptを処理できないものとする。この例での一連の処理の流れを以下に示す。
【0066】
(1)ログ解析結果の表示の権限を持つユーザが、画像処理装置10の操作パネルからその権限を持つユーザ名でログインする。
(2)そのユーザが、操作パネルに表示される操作メニューから「ログ解析結果表示サービス」というサービスを選び、そのサービスの実行を指示する。
この指示に応じて、基本機能17が、切り分け機能19に対して、「ログ解析結果表示サービス」を提供するクラウドサービス20に対するアクセス要求起動通知を行う。
(3-1)切り分け機能19は、「ログ解析結果表示サービス」を要求するHTTPリクエストをそのクラウドサービス20に送信する。このとき、そのHTTPリクエストに含めるべき情報は、画像処理装置10内の情報を管理する機能から切り分け機能19に提供される。そのような情報としては、そのクラウドサービス20を特定する情報(例えばURL又はURI)やそのクラウドサービス20に提示すべきそのユーザのクレデンシャル情報等がある。
(3-2)切り分け機能19は、このHTTPリクエストに対するクラウドサービス20からのHTTPレスポンスを受信する。このHTTPレスポンスのヘッダには、そのレスポンスに含まれるデータの種別を示すコンテンツネゴシエーションの情報が含まれる。またそのHTTPレスポンスのEntityBodyには、ログ解析結果のグラフを「HTML/javascript」の形式で表現したデータが含まれる。
(3-3)切り分け機能19は、内蔵するHTTPパーサにより、そのHTTPレスポンスを解析し、サービス名やデータ種別等の必要な情報を抽出する。そして、抽出した情報を用いて、そのHTTPレスポンスをそのまま基本機能17に渡すか、そのHTTPレスポンスをRBIシステム30に変換させ、その変換の結果を基本機能17に渡すかを判定する(例えば
図3の処理手順)。
(4-1)判定の結果、RBIシステム30に変換させることとなった場合、切り分け機能19は、上述のHTTPレスポンスと、そこから抽出したサービス名をRBIシステム30に送信する。
(4-2)RBIシステム30は、受け取ったHTTPレスポンス内の「HTML/javascript」で表現されていたグラフを、基本機能17が取扱可能な画像の形式のデータへと変換する。そして、この変換の結果の画像データを、上述のサービス名と対応付けて、切り分け機能19に返す。
(4-3)切り分け機能19は、RBIシステム30からその画像データ及びサービス名を受け取り、基本機能17に渡す。
(5)基本機能17の一部であるブラウザは、ウェブページのそのサービス名に対応する部分に、その画像データを表示する。これにより、ログ解析結果のグラフが画面表示されることとなる。
【0067】
以上に説明した実施形態における画像処理装置10の情報処理部14は、例えば、汎用のコンピュータを用いて構成される。このコンピュータは、例えば、
図8に例示するように、プロセッサ1002、ランダムアクセスメモリ(RAM)等のメモリ(主記憶装置)1004、フラッシュメモリやSSD(ソリッドステートドライブ)、HDD(ハードディスクドライブ)等の不揮発性記憶装置である補助記憶装置1006を制御するコントローラ、各種の入出力装置1008とのインターフェース、ローカルエリアネットワークなどのネットワークとの接続のための制御を行うネットワークインターフェース1010等が、例えばバス1012等のデータ伝送路を介して接続された回路構成を有する。上記実施形態の処理の内容が記述されたプログラムが、ネットワーク等を経由してそのコンピュータにインストールされ、補助記憶装置1006に記憶される。補助記憶装置1006に記憶されたプログラムが、プロセッサ1002によりメモリ1004を用いて実行されることにより、本実施形態の情報処理部14が構成される。
【0068】
上記各実施形態において、プロセッサとは広義的なプロセッサを指し、汎用的なプロセッサ(例えばCPU:Central Processing Unit、等)や、専用のプロセッサ(例えばGPU:Graphics Processing Unit、ASIC:Application Specific Integrated Circuit、FPGA:Field Programmable Gate Array、プログラマブル論理デバイス、等)を含むものである。
【0069】
また上記各実施形態におけるプロセッサの動作は、1つのプロセッサによって成すのみでなく、物理的に離れた位置に存在する複数のプロセッサが協働して成すものであってもよい。また、プロセッサの各動作の順序は上記各実施形態において記載した順序のみに限定されるものではなく、適宜に変更してもよい。
【0070】
(付記)
(((1)))
プロセッサを備え、
前記プロセッサは、
要求元からの要求に応じたHTTPリクエストを第1の外部サービスに送信し、そのHTTPリクエストに対するHTTPレスポンスを受信し、
前記HTTPレスポンスを前記要求元に渡すか、前記HTTPレスポンスを外部の変換装置で変換することにより得られたデータを前記要求元に渡すかを、前記HTTPレスポンスに含まれるデータに基づいて切り替える、
情報処理装置。
(((2)))
前記プロセッサは、
前記要求元が処理できない種類のデータが前記HTTPレスポンスに含まれる場合、前記HTTPレスポンスを前記変換装置で変換することにより得られたデータを前記要求元に渡す、
(((1)))に記載の情報処理装置。
(((3)))
前記プロセッサは、
前記要求元が処理できない種類のデータが前記HTTPレスポンスに含まれない場合、前記HTTPレスポンスを前記要求元に渡す、
(((1)))に記載の情報処理装置。
(((4)))
前記プロセッサは、
前記第1の外部サービスとは異なる第2の外部サービスとの通信を行うことを表す記述が前記HTTPレスポンスに含まれる場合、前記HTTPレスポンスを前記変換装置で変換することにより得られたデータを前記要求元に渡す、
(((1)))~(((3)))のいずれか1項に記載の情報処理装置。
(((5)))
前記プロセッサは、
前記HTTPレスポンスを前記要求元に渡した場合において、前記要求元における前記HTTPレスポンスに関する処理にエラーが生じた場合に、前記HTTPレスポンスを前記変換装置に変換させ、この結果得られたデータを前記要求元に渡す、
(((1)))~(((4)))に記載の情報処理装置。
(((6)))
要求元からの要求に応じたHTTPリクエストを第1の外部サービスに送信し、そのHTTPリクエストに対するHTTPレスポンスを受信し、
前記HTTPレスポンスを前記要求元に渡すか、前記HTTPレスポンスを外部の変換装置で変換することにより得られたデータを前記要求元に渡すかを、前記HTTPレスポンスに含まれるデータに基づいて切り替える、
処理をコンピュータに実行させるためのプログラム。
【0071】
(((1)))~(((4)))にかかる情報処理装置、又は(((6)))にかかるプログラムによれば、情報処理装置からのHTTPリクエストに対するHTTPレスポンスのすべてを変換装置が変換した上で情報処理装置に提供する方式と比べて、変換装置を介することによる情報処理装置の処理効率の低下を抑制することができる。
(((5)))に係る情報処理装置によれば、HTTPレスポンスに含まれるデータに基づく判定に応じてそのHTTPレスポンスを要求元に渡した場合に、その判定に反して要求元がそのHTTPレスポンスを正しく処理できない場合にも対処することができる。
【符号の説明】
【0072】
10 画像処理装置、12 画像処理部、14 情報処理部、15 Webクライアント、17 基本機能、19 切り分け機能、20 クラウドサービス、30 RBIシステム。