(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024045993
(43)【公開日】2024-04-03
(54)【発明の名称】情報処理装置及びプログラム
(51)【国際特許分類】
H04L 67/565 20220101AFI20240327BHJP
G06F 3/12 20060101ALI20240327BHJP
H04N 1/00 20060101ALI20240327BHJP
【FI】
H04L67/565
G06F3/12 387
G06F3/12 367
G06F3/12 304
H04N1/00 127A
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2022151106
(22)【出願日】2022-09-22
(71)【出願人】
【識別番号】000005496
【氏名又は名称】富士フイルムビジネスイノベーション株式会社
(74)【代理人】
【識別番号】110001210
【氏名又は名称】弁理士法人YKI国際特許事務所
(72)【発明者】
【氏名】島本 努
【テーマコード(参考)】
5C062
【Fターム(参考)】
5C062AA05
5C062AA13
5C062AA35
5C062AB22
5C062AB38
5C062AB40
5C062AC15
5C062AC42
(57)【要約】
【課題】変換装置と外部サービスとの間の通信障害により情報処理装置が外部サービスを利用できない場合でも、情報処理装置から外部サービスを利用可能にする。
【解決手段】
画像処理装置10は、RBIシステム20を介してクラウドサービス30にアクセス要求を行った際(S12、S14)、応答が得られなかった場合(S16、S18)、それら両者に対して画像処理装置10からアクセス可能か確認する(S20、S30)。両者ともアクセス可能な場合、画像処理装置10は、クラウドサービス30に直接リクエストを送信し(S40)、レスポンスを取得し(S42)、そのレスポンスをRBIシステム20に渡し、変換を依頼する(S50)。RBIシステム20は、そのレスポンスを画像処理装置10の処理可能なデータへと変換する。画像処理装置10は、その変換の結果を受け取り(S52)、その変換の結果を用いて文書一覧画面の表示等の処理を実行する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
プロセッサを備え、
前記プロセッサは
変換装置を介して外部サービスに送信したリクエストに対して正常なレスポンスが得られなかった場合に、前記変換装置を介さずに前記外部サービスに対して前記リクエストを送信する第1送信処理を実行し、
この送信に対して前記外部サービスから返信されたレスポンスのうちの少なくとも一部のデータを前記変換装置へ送信する第2送信処理を実行し、
前記変換装置から前記データの変換結果を受け取り、前記変換結果を用いて所定の処理を実行する、
情報処理装置。
【請求項2】
前記プロセッサは、
前記変換装置を介して前記外部サービスに送信したリクエストに対して正常なレスポンスが得られなかった場合に、前記変換装置及び前記外部サービスにそれぞれアクセス可能か確認し、前記変換装置及び前記外部サービスの両方に対してアクセス可能と確認された場合に、前記第1送信処理、前記第2送信処理、及び前記所定の処理を実行する、
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記プロセッサは、
前記所定の処理として、
前記変換結果を用いて操作画面を表示し、
前記操作画面に対するユーザの入力を受け付け、
受け付けた前記入力に応じた第2のリクエストを、前記第1送信処理に対して前記外部サービスから返信された前記レスポンスに含まれる情報に従って前記外部サービスに送信する、
ことを特徴とする請求項1に記載の情報処理装置。
【請求項4】
前記プロセッサは、
前記所定の処理として、
前記変換結果を用いて操作画面を表示し、
前記操作画面に対するユーザの入力を受け付け、
受け付けた前記入力の情報を前記変換装置に送信し、
送信した前記入力の情報に応じて前記変換装置が生成した第2のリクエストを受け取り、
前記第2のリクエストを前記外部サービスに送信する、
ことを特徴とする請求項1に記載の情報処理装置。
【請求項5】
前記プロセッサは、
前記第1送信処理で送信した前記リクエストに対して前記外部サービスから返信された前記レスポンスの処理を実行し、
この処理によりエラーが生じた場合に前記第2送信処理及び前記所定の処理を実行する、
ことを特徴とする請求項1に記載の情報処理装置。
【請求項6】
コンピュータに、
変換装置を介して外部サービスに送信したリクエストに対して正常なレスポンスが得られなかった場合に、前記変換装置を介さずに前記外部サービスに対して前記リクエストを送信する第1送信処理を実行させ、
この送信に対して前記外部サービスから返信されたレスポンスのうちの少なくとも一部のデータを前記変換装置へ送信する第2送信処理を実行させ、
前記変換装置から前記データの変換結果を受け取り、前記変換結果を用いて所定の処理を実行させる、ためのプログラム。
【発明の詳細な説明】
【技術分野】
【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】
情報処理装置から変換装置を介して外部サービスを利用するシステム構成において、情報処理装置から外部サービスが利用できない場合の中には、その原因が変換装置と外部サービスとの間の通信障害である場合がある。
【0009】
本発明は、変換装置と外部サービスとの間の通信障害により情報処理装置が外部サービスを利用できない場合でも、情報処理装置から外部サービスを利用可能にすることを目的とする。
【課題を解決するための手段】
【0010】
請求項1に係る発明は、プロセッサを備え、前記プロセッサは、変換装置を介して外部サービスに送信したリクエストに対して正常なレスポンスが得られなかった場合に、前記変換装置を介さずに前記外部サービスに対して前記リクエストを送信する第1送信処理を実行し、この送信に対して前記外部サービスから返信されたレスポンスのうちの少なくとも一部のデータを前記変換装置へ送信する第2送信処理を実行し、前記変換装置から前記データの変換結果を受け取り、前記変換結果を用いて所定の処理を実行する、情報処理装置である。
【0011】
請求項2に係る発明は、前記プロセッサは、前記変換装置を介して前記外部サービスに送信したリクエストに対して正常なレスポンスが得られなかった場合に、前記変換装置及び前記外部サービスにそれぞれアクセス可能か確認し、前記変換装置及び前記外部サービスの両方に対してアクセス可能と確認された場合に、前記第1送信処理、前記第2送信処理、及び前記所定の処理を実行する、ことを特徴とする請求項1に記載の情報処理装置である。
【0012】
請求項3に係る発明は、前記プロセッサは、前記所定の処理として、前記変換結果を用いて操作画面を表示し、前記操作画面に対するユーザの入力を受け付け、受け付けた前記入力に応じた第2のリクエストを、前記第1送信処理に対して前記外部サービスから返信された前記レスポンスに含まれる情報に従って前記外部サービスに送信する、ことを特徴とする請求項1に記載の情報処理装置である。
【0013】
請求項4に係る発明は、前記プロセッサは、前記所定の処理として、前記変換結果を用いて操作画面を表示し、前記操作画面に対するユーザの入力を受け付け、受け付けた前記入力の情報を前記変換装置に送信し、送信した前記入力の情報に応じて前記変換装置が生成した第2のリクエストを受け取り、前記第2のリクエストを前記外部サービスに送信する、ことを特徴とする請求項1に記載の情報処理装置である。
【0014】
請求項5に係る発明は、前記プロセッサは、前記第1送信処理で送信した前記リクエストに対して前記外部サービスから返信された前記レスポンスの処理を実行し、この処理によりエラーが生じた場合に前記第2送信処理及び前記所定の処理を実行する、ことを特徴とする請求項1に記載の情報処理装置である。
【0015】
請求項6に係る発明は、コンピュータに、変換装置を介して外部サービスに送信したリクエストに対して正常なレスポンスが得られなかった場合に、前記変換装置を介さずに前記外部サービスに対して前記リクエストを送信する第1送信処理を実行させ、この送信に対して前記外部サービスから返信されたレスポンスのうちの少なくとも一部のデータを前記変換装置へ送信する第2送信処理を実行させ、前記変換装置から前記データの変換結果を受け取り、前記変換結果を用いて所定の処理を実行させる、ためのプログラムである。
【発明の効果】
【0016】
請求項1、3又は6に係る発明によれば、変換装置と外部サービスとの間の通信障害により情報処理装置が外部サービスを利用できない場合でも、情報処理装置から外部サービスを利用可能となる。
【0017】
請求項2に係る発明によれば、変換装置又は外部サービスの少なくとも一つがアクセス不可の場合に、無駄な処理が実行されるのを防ぐことができる。
【0018】
請求項4に係る発明によれば、操作画面に対するユーザからの入力に応じた第2のリクエストを情報処理装置に生成させる場合と比べて、情報処理装置が不正な処理を実行してしまうリスクを低減することができる。
【0019】
請求項5に係る発明によれば、外部サービスからのレスポンスを情報処理装置が正しく処理できる場合には、変換装置を介する場合よりも高速に処理が実行できる。
【図面の簡単な説明】
【0020】
【
図1】実施形態のシステムの概略構成を示す図である。
【
図2】実施形態のシステムの動作を示すシーケンス図である。
【
図3】変形例のシステムの動作を示すシーケンス図である。
【
図4】第2の変形例の処理手順を例示する図である。
【
図5】コンピュータのハードウエア構成を例示する図である。
【発明を実施するための形態】
【0021】
以下、図面を参照して本発明を実施するための形態(以下、実施形態と呼ぶ)を説明する。
【0022】
図1に、本発明に係る情報処理装置の一実施形態である画像処理装置10を含むシステムの構成を例示する。
【0023】
このシステムでは、画像処理装置10は、ローカルエリアネットワークやインターネット等のデータ通信ネットワークを介して、RBIシステム20やクラウドサービス30に接続されている。
【0024】
画像処理装置10は、例えば、プリント機能、スキャン機能及びコピー機能の中の少なくとも1つの機能を有し、ユーザに対してそれら機能を提供する装置である。画像処理装置10は、プリンタ、スキャナ、コピー機、又は、複合機(例えば、プリント機能、スキャン機能及びコピー機能等を有する装置)等である。
【0025】
画像処理装置10は、紙等の媒体に対して画像を印刷するための印刷機構、又は媒体上の画像をスキャンするスキャン機構等、画像処理のためのハードウエアを備えている。
【0026】
また、画像処理装置10は、画像処理の制御、画像処理に関連する情報処理、UI(ユーザインタフェース)処理、等の各種の情報処理を実行する情報処理部を備える。画像処理に関連する情報処理の中には、例えば、ユーザから指示されたプリントやスキャン等のジョブの管理、スキャンにより得られたスキャン画像に対する情報処理、印刷対象の画像に対する加工や編集等の処理、等がある。スキャン画像に対する情報処理には、例えば、文字認識処理や、文字認識結果に対する翻訳、帳票ヘのデータエントリ処理等がある。
【0027】
画像処理装置10の情報処理部は、情報処理の実行のために、クラウドサービス30等の外部サービスを利用する場合がある。なお、外部サービスとは、画像処理装置10の外にあるサーバである。
【0028】
例えば、情報処理部は、文字認識サービスを提供するクラウドサービス30にスキャン画像を送信し、そのクラウドサービスから文字認識結果を受け取り、文字認識結果を含んだ文書ファイルを生成する。また、別の例では、情報処理部は、画像処理装置10を利用しようとするユーザを認証するために、ユーザ認証サービスを提供するクラウドサービス30にそのユーザの認証を依頼する。更に別の例では、情報処理部は、ストレージサービスを提供するクラウドサービス30から、ユーザの登録した文書を印刷のためにダウンロードする。これらはあくまで一例であり、情報処理装置14は、様々な異なるクラウドサービス30を利用することができる。
【0029】
画像処理装置10の情報処理部は、Webクライアントを備えている。Webクライアントは、WWW(ワールドワイドウェブ)上のサービスを利用するクライアントソフトウェアである。Webクライアントは、HTTP(HyperText Transfer Protocol)を用いてクラウドサービス30等の外部サービスと通信を行う。Webクライアントは、HTTPリクエストをクラウドサービス30に向けて送信し、これに対するクラウドサービス30からのHTTPレスポンスを受信し、そのレスポンスに応じた処理を実行する。Webクライアントには、例えば、Webブラウザや、Webベースのクラウドサービス30と連携して情報処理を実行するアプリケーション等が含まれる。前者のWebブラウザは、例えば、画像処理装置10のUI画面を生成する。後者のアプリケーションとしては、例えば、クラウドサービス30からユーザの文書をダウンロードして印刷するためのアプリケーションがある。
【0030】
クラウドサービス30は、インターネット等のネットワークを介して、画像処理装置10に対してWebベースでサービスを提供するサーバである。クラウドサービス30は、Webクライアント15からのHTTPリクエストを処理し、HTTPレスポンスを返す外部サービスの一例である。
【0031】
図では、クラウドサービス30を1つのみ示したが、認証サービスを提供するもの、ストレージサービスを提供するもの等、異なる複数のクラウドサービス30が存在していてもよい。また、単にウェブページ群を提供するWebサーバも、クラウドサービス30の一例である。
【0032】
RBIシステム20は、変換装置の一例であり、クラウドサービス30が返したHTTPレスポンスを、画像処理装置10内蔵のWebクライアントが取扱可能な形に変換する。画像処理装置10が搭載するWebクライアントは、必ずしも最新のWeb技術に対応した状態にアップデートされているとは限らないので、クラウドサービス30が返したHTTPレスポンスを適切に処理できない場合があり得る。RBIシステム20は、画像処理装置10のWebクライアントが適切に処理できないHTTPレスポンスを、例えば画像データ等といった、そのWebクライアントが処理可能なデータ形式のデータに変換する。このようなRBIシステム20のデータ変換の機能は、公知のRBIシステムと同様のものでよい。
【0033】
図1に示した実線の矢印は、本実施形態のシステムにおける、通常時、すなわち画像処理装置10、RBIシステム20及びクラウドサービス30と、それらの間のネットワークが正常に稼働しているとき、のデータの流れを示す。すなわち、通常時は、クラウドサービス30を利用する処理を実行する場合、(1)画像処理装置10が生成したHTTPのアクセス要求はRBIシステム20に送られ、(2)RBIシステム20を介してクラウドサービス30に送られる。(3)クラウドサービス30は、そのアクセス要求に対応するWebページ等を含んだHTTPレスポンスを生成し、RBIシステム20に返す。このHTTPレスポンスには、JavaScript(登録商標)等で記述されたデータのように、画像処理装置10内のWebクライアントが正しく処理できないデータが含まれる場合がある。RBIシステム20は、そのHTTPレスポンス内の、そのWebクライアントが正しく処理できないデータを、そのWebクライアントが処理可能な所定形式のデータに変換する。例えば、HTTPレスポンスが、そのWebクライアントが取り扱えないJavaScriptで画像を記述するデータを含んでいる場合、RBIシステム20は、そのデータを、Webクライアントが取扱可能なjpeg等の画像データに変換する。(4)そして、RBIシステム20は、変換後のデータを画像処理装置10のWebクライアントに送信する。
【0034】
ここで、RBIシステム20とクラウドサービス30との間のデータ通信ネットワークに障害がある場合、画像処理装置10は、
図1に実線矢印で示した流れでクラウドサービス30を利用することはできなくなる。
【0035】
この場合、本実施形態の画像処理装置10は、
図1に破線の矢印で示した流れでクラウドサービス30の利用を試みる。すなわち、(a)画像処理装置10のWebクライアントは、クラウドサービス30に対してHTTPのアクセス要求を送り、(b)この要求に対してクラウドサービス30から返信されるWebページ等のHTTPレスポンスを受け取る。ただし、上述のようにこのHTTPレスポンスの中には、そのWebクライアントが取り扱うことのできないデータが含まれる場合がある。そこで、Webクライアントは、(c)そのHTTPレスポンスをRBIシステム20に送り、変換処理の実行を依頼する。(d)RBIシステム20は、そのHTTPレスポンスをWebクライアントが取り扱い可能な所定形式のデータ(例えば画像データ)に変換し、変換結果のデータをWebクライアントに返す。
【0036】
以上、本実施形態のシステムの概要を説明した。次に、
図2を参照して、更に詳細な処理の流れを説明する。
【0037】
図2に示す例では、クラウドサービス30はストレージサービスを提供するものとする。また、画像処理装置10の情報処理部には、クラウドサービス30内の文書をダウンロードして印刷するためのクラウド印刷アプリケーションがインストールされている。このアプリケーションは、クラウドサービス30にアクセスしてユーザの文書の一覧を取得し、その一覧を表示してユーザから印刷対象の文書の選択を受け付け、選択された文書をクラウドサービス30からダウンロードし、印刷機構に印刷させる。
【0038】
図2に示すシーケンスが開始される時点では、画像処理装置10の操作画面上に、画像処理装置10が備えるアプリケーションの一覧を示すメニューが表示されている。そのメニューには、スキャン、コピー等の基本機能を提供するアプリケーションに加え、上述したクラウド印刷アプリケーションが選択肢として含まれている。また、この時点では、ユーザは、画像処理装置10及びクラウドサービス30を利用するためのユーザ認証を済ませているものとする。
【0039】
また、
図2に示す例では、RBIシステム20とクラウドサービス30との間の通信経路に障害が発生しており、RBIシステム20はクラウドサービス30と通信できない状態であるものとする。
【0040】
以下では、記載を簡潔にするために、画像処理装置10の情報処理部にインストールされたクラウド印刷アプリケーションが処理を実行することを、単に「画像処理装置10が処理を実行する」と記載する。
【0041】
図2のシーケンスでは、まずユーザが、そのメニュー上でクラウド印刷アプリケーションを選択する(S10)。すると、画像処理装置10は、クラウドサービス30へのアクセス要求のためのHTTPリクエストを発する。このHTTPリクエストは、RBIシステム20に対して送られる(S12)。RBIシステム20は、受け取ったHTTPリクエストをクラウドサービス30に対して送る(S14)。
【0042】
このとき、RBIシステム20とクラウドサービス30との間は通信障害が起きているので、そのHTTPリクエストに対してクラウドサービス30からの応答がないまま、所定の待ち時間が過ぎてしまう(S16)。したがって、画像処理装置10についても、HTTPリクエストを送信してから応答がないまま所定の待ち時間が過ぎてしまう(S18)。
【0043】
この場合、画像処理装置10は、レスポンスがないことの原因を究明するために、RBIシステム20とクラウドサービス30のそれぞれに対して、アクセス可否の確認要求を送信する(S20、S30)。この例では、画像処理装置10とRBIシステム20との間、及び画像処理装置10とクラウドサービス30との間、の通信経路は共に正常であり、RBIシステム20もクラウドサービス30も正常に動作しているものとする。したがって、この場合、S20及びS30のアクセス確認要求に対して、RBIシステム20及びクラウドサービス30は、共にアクセス成功の旨を示す応答を返す(S22、S32)。
【0044】
S22及びS32のアクセス成功の応答から、S18のタイムアウトの原因が、RBIシステム20とクラウドサービス30との間の通信障害であることがわかる。この場合、画像処理装置10は、クラウドサービス30に対して直接、そのユーザの文書一覧画面をするHTTPリクエストを送る(S40)。ユーザの文書一覧画面は、そのユーザがクラウドサービス30に登録している文書のリストを表示する画面である。この例では、その文書一覧画面は、JavaScriptで記述された要素を含んだWebページである。そのような要素の中にはクラウドサービス30の文書ダウンロードのためのAPI(application Programming Interface)に文書を要求する命令や、画面内の表示要素の見た目等がJavascriptで記述されている。クラウドサービス30は、文書一覧画面のデータを含んだHTTPレスポンスを画像処理装置10に返す(S42)。
【0045】
画像処理装置10は、そのHTTPレスポンスを受け取り、そのレスポンスの中のJavaScriptで記述された部分をRBIシステム20に送り、変換を依頼する(S50)。ここで、JavaScriptで記述された部分は、HTTPレスポンスのうち画像処理装置10が適切に処理できないデータの一例である。画像処理装置10は、自身が適切に処理できないデータの種類を記憶しており、受け取ったHTTPレスポンス内にそのような種類のデータがあれば、そのデータの変換をRBIシステム20に依頼する。画像処理装置10が適切に処理できない種類のデータとしては、例えばJavaScript等の所定の種類の言語で記述されたデータや、そのデータが示す処理を実行するためにクラウドサービス30以外の別の外部サービスへのアクセスが必要なデータ、等がある。後者の例としては、クラウドサービス30の利用のためのユーザ認証を別の外部サービスで実行する場合がある。
【0046】
また、画像処理装置10は、自身が適切に処理できるデータの種類を記憶し、受け取ったHTTPレスポンス内にそのような種類以外の種類のデータがあれば、そのデータの変換をRBIシステム20に依頼してもよい。
【0047】
また、更に別の例として、画像処理装置10は、受け取ったHTTPレスポンス全体をRBIシステム20に渡して、変換を依頼してもよい。
【0048】
また画像処理装置10は、後の処理(例えば、後述するS64の処理)のために、S42で受け取ったHTTPレスポンスを保持し続ける。
【0049】
RBIシステム20は、画像処理装置10から受け取ったデータを、画像処理装置10が取扱可能な所定の形式のデータに変換する。例えば、RBIシステム20は、JavaScriptで記述されたデータを、そのデータが表現する画像を表すjpeg形式等の画像データに変換する。画像処理装置10は、画像データを表示することができる。RBIシステム20は、変換の結果得られたデータ(例えば画像データ)を画像処理装置10に返す(S52)。
【0050】
画像処理装置10は、RBIシステム20から返されてきた変換結果のデータを用いて、クラウド印刷アプリケーションの文書一覧画面を生成し、この画面を付属の表示装置(例えばタッチパネル)に表示する(S60)。S60で表示する文書一覧画面は、変換装置による変換結果を用いて生成される操作画面の一例である。ユーザは、この文書一覧画面上に示される文書の中から、今回の印刷の対象とする一以上の文書を特定する。例えば、タッチパネル上に表示された文書一覧画面に示された文書のリスト上で、印刷したい文書をタップ操作等で選択し、その画面上の印刷実行ボタンをタップする。画像処理装置10は、そのようなユーザの操作入力を受け付け、どの文書が印刷対象に特定されたかを認識する(S62)。
【0051】
そして、画像処理装置10は、S42で取得して保持し続けていたHTTPレスポンスに含まれるJavaScriptのプログラムを実行して、クラウドサービス30の文書ダウンロードのためのAPIを実行する。これにより、画像処理装置10からクラウドサービス30に対して、ユーザが選択した文書を取得するためのHTTPリクエストが送られる(S64)。このとき送られる文書取得要求のためのHTTPリクエストは、ユーザからの入力に応じた第2のリクエストの例である。クラウドサービス30は、その要求に対応する文書を画像処理装置10に返す(S66)。画像処理装置10は、その文書を受信し、印刷機構にその文書を印刷させる。
【0052】
このように、本実施形態では、画像処理装置10は、RBIシステム20経由でクラウドサービス30が利用できない場合に、画像処理装置10は、クラウドサービス30に直接リクエストを送ってレスポンスを取得する。そして、画像処理装置10は、そのレスポンスをRBIシステム20に送り、自身が取扱可能なデータに変換させる。これにより、画像処理装置10は、クラウドサービス30からHTTPで送られてくるデータに応じた処理を実行可能となる。
【0053】
なお、S20及びS30の処理の結果、RBIシステム20及びクラウドサービス30のうち少なくとも一方にアクセスできないことが分かった場合、画像処理装置10は、エラーメッセージを画面に表示してもよい。表示するエラーメッセージは、例えばクラウドサービス30を利用できないことを示すものであってもよい。また、RBIシステム20及びクラウドサービス30のどれとアクセスできないのかに応じて、異なるエラーメッセージを表示してもよい。
【0054】
また、S14のアクセス要求に対してクラウドサービス30から応答がない場合に、RBIシステム20が、例えばS12のアクセス要求に対する応答として、その旨を画像処理装置10に通知してもよい。この場合、画像処理装置10は、RBIシステム20に対するアクセス可否の確認(S20)を省略してもよい。
【0055】
次に、変形例を説明する。
【0056】
上述の
図2の処理では、クラウドサービス30からのJavaScriptのAPIを含んだHTTPレスポンスを画像処理装置10が保持し、後のユーザからの入力に応じてそのAPIを実行した。しかし、画像処理装置10にJavaScriptを実行させる方式では、画像処理装置10が不正な処理を実行してしまう可能性があり、セキュリティ上好ましくない。
【0057】
そこでこの変形例では、HTTPレスポンス中のJavaScriptのAPIの実行をRBIシステム20に行わせる。
【0058】
図3にこの変形例の処理の流れを例示する。
図3に示すシーケンスのうち、S10からS62までは
図2に示したシーケンスの対応ステップと同様の処理である。ただし、この
図3のシーケンスでは、画像処理装置10は、S42でクラウドサービス30から取得したHTTPレスポンスは、S50で変換要求を行った後で破棄する。これにより、HTTPレスポンス中のJavaScript等のプログラムが不正に実行されるリスクが低減される。
【0059】
図3のシーケンスでは、画像処理装置10は、S62でユーザからの操作入力を受け付けると、その入力の内容を示す入力情報をRBIシステム20に送る(S70)。ここで送られる入力情報は、文書一覧画面上のどの位置に対してどの種類の操作(例えばタップ、ダブルタップ)が行われたかを示す情報である。
【0060】
RBIシステム20は、S42で画像処理装置10に送ったHTTPレスポンスを保持しており、例えばそのHTTPレスポンスに対するWebブラウザの処理を実行している。したがって、S70にて入力情報を受け取ったRBIシステム20は、その入力情報が示す操作を受けたときにWebブラウザが生成するHTTPリクエストを生成する。すなわち、RBIシステム20は、その入力情報が示す操作内容に応じて、HTTPレスポンスに含まれる、JavaScriptで記述されたクラウドサービス30のAPIを実行することにより、ユーザが選択した文書のダウンロードをクラウドサービス30に要求するHTTPリクエストを生成する。RBIシステム20は、そのHTTPリクエストの情報を画像処理装置10に返す(S72)。
【0061】
画像処理装置10は、RBIシステム20から受け取ったHTTPリクエストを実行することにより、クラウドサービス30に対して、ユーザが選択した文書の取得を要求する(S74)。クラウドサービス30は、その要求に対応する文書を画像処理装置10に返す(S76)。画像処理装置10は、その文書を受信し、印刷機構にその文書を印刷させる。
【0062】
以上に説明したように、この変形例では、画像処理装置10がユーザから受け付けた入力の情報をRBIシステム20に渡し、RBIシステム20がその操作に応じたJavaScriptの処理を実行し、その結果を画像処理装置10に提供することとした。これにより、画像処理装置10が、セキュリティリスクのあるJavaScriptを実行しなくて済む。
【0063】
ここではJavaScriptを例にとったが、HTTPレスポンスに含まれる、不正実行のリスクのあるJavaScript以外の言語のプログラムやデータについても、同様に扱ってよい。
【0064】
第2の変形例を説明する。
図4に、この変形例の画像処理装置10(特にその中で実行されるWebクライアント)が実行する手順の要部を示す。
【0065】
図4に示した手順は、
図2及び
図3の手順のS42とS60との間の部分の変形例である。
【0066】
図4の手順では、画像処理装置10は、S42でクラウドサービス30から文書一覧画面のデータを含むHTTPレスポンスを受け取ると、そのレスポンスを実行して文書一覧画面の描画を行う(S80)。文書一覧画面のデータの中には、JavaScript等のように、画像処理装置10が正常に実行できないデータが含まれる場合がある。そこで、画像処理装置10は、その描画の実行においてエラーが発生するか否かを監視する(82)。
【0067】
S82の判定の結果がNoの場合、画像処理装置10は、HTTPレスポンスを正常位に処理できたので、そのHTTPレスポンスをRBIシステム20に変換させることなく、S60(すなわちユーザへの文書一覧画面の提示)を実行する。S82の判定の結果がYesの場合、画像処理装置10は、そのHTTPレスポンス全体、又はそのうちの所定の部分をRBIシステム20に送り、変換を要求する(S84)。S84における、HTTPレスポンスのうちの「所定の部分」は、画像処理装置10が適切に処理できない可能性が高いと判定される部分であり、例えばJavaScript等の所定の言語で記述されている部分である。次に画像処理装置10は、この要求に対する変換結果をRBIシステム20から受け取り(S86)、この受け取った変換結果を用いてS60以降の処理を実行する。
【0068】
更に別の例として、S42でクラウドサービス30から受け取ったHTTPレスポンスを画像処理装置10が正しく処理できたかの判断を、ユーザに委ねてもよい。この例では、画像処理装置10は、そのHTTPレスポンスを実行し、この実行の結果である文書一覧画面を付属の表示装置にする。画像処理装置10は、この文書一覧画面と同時に、画面に異常がある場合にその旨を画像処理装置10に通知することをユーザに要請するメッセージを表示する。この異常の通知は、例えば、画像処理装置10が備える所定のハードウエアボタン、又はそのメッセージと対応付けて画面に表示する通知ボタン、をユーザが押下することにより行われる。ユーザは、表示された画面に何らかの異常を感じた場合、そのボタンを押下する。これにより、画像処理装置10は、そのHTTPレスポンスをRBIシステム20に変換させ、その変換結果のデータにより文書一覧画面を再度生成し、これを表示する。
【0069】
以上に説明した実施形態及び変形例では、クラウドサービス30はストレージサービスであり、それからのHTTPレスポンスは文書一覧画面を表すものであったが、これらはあくまで一例にすぎない。クラウドサービス30は、認証サービス、OCRサービス、翻訳サービス等といった他のサービスであってもよい。またクラウドサービス30からのHTTPレスポンスは、画面表示を伴わない情報処理を表すものであってもよい。
【0070】
以上に説明した実施形態における画像処理装置10の情報処理部は、例えば、汎用のコンピュータを用いて構成される。このコンピュータは、例えば、
図5に例示するように、プロセッサ1002、ランダムアクセスメモリ(RAM)等のメモリ(主記憶装置)1004、フラッシュメモリやSSD(ソリッドステートドライブ)、HDD(ハードディスクドライブ)等の不揮発性記憶装置である補助記憶装置1006を制御するコントローラ、各種の入出力装置1008とのインターフェース、ローカルエリアネットワークなどのネットワークとの接続のための制御を行うネットワークインターフェース1010等が、例えばバス1012等のデータ伝送路を介して接続された回路構成を有する。上記実施形態の処理の内容が記述されたプログラムが、ネットワーク等を経由してそのコンピュータにインストールされ、補助記憶装置1006に記憶される。補助記憶装置1006に記憶されたプログラムが、プロセッサ1002によりメモリ1004を用いて実行されることにより、本実施形態の情報処理機構が構成される。
【0071】
上記各実施形態において、プロセッサとは広義的なプロセッサを指し、汎用的なプロセッサ(例えばCPU:Central Processing Unit、等)や、専用のプロセッサ(例えばGPU:Graphics Processing Unit、ASIC:Application Specific Integrated Circuit、FPGA:Field Programmable Gate Array、プログラマブル論理デバイス、等)を含むものである。
【0072】
また上記各実施形態におけるプロセッサの動作は、1つのプロセッサによって成すのみでなく、物理的に離れた位置に存在する複数のプロセッサが協働して成すものであってもよい。また、プロセッサの各動作の順序は上記各実施形態において記載した順序のみに限定されるものではなく、適宜に変更してもよい。
【0073】
(付記)
(((1)))
プロセッサを備え、
前記プロセッサは
変換装置を介して外部サービスに送信したリクエストに対して正常なレスポンスが得られなかった場合に、前記変換装置を介さずに前記外部サービスに対して前記リクエストを送信する第1送信処理を実行し、
この送信に対して前記外部サービスから返信されたレスポンスのうちの少なくとも一部のデータを前記変換装置へ送信する第2送信処理を実行し、
前記変換装置から前記データの変換結果を受け取り、前記変換結果を用いて所定の処理を実行する、
情報処理装置。
(((2)))
前記プロセッサは、
前記変換装置を介して前記外部サービスに送信したリクエストに対して正常なレスポンスが得られなかった場合に、前記変換装置及び前記外部サービスにそれぞれアクセス可能か確認し、前記変換装置及び前記外部サービスの両方に対してアクセス可能と確認された場合に、前記第1送信処理、前記第2送信処理、及び前記所定の処理を実行する、
ことを特徴とする(((1)))に記載の情報処理装置。
(((3)))
前記プロセッサは、
前記所定の処理として、
前記変換結果を用いて操作画面を表示し、
前記操作画面に対するユーザの入力を受け付け、
受け付けた前記入力に応じた第2のリクエスト、前記第1送信処理に対して前記外部サービスから返信された前記レスポンスに含まれる情報に従って前記外部サービスに送信する、
ことを特徴とする(((1)))又は(((2)))に記載の情報処理装置。
(((4)))
前記プロセッサは、
前記所定の処理として、
前記変換結果を用いて操作画面を表示し、
前記操作画面に対するユーザの入力を受け付け、
受け付けた前記入力の情報を前記変換装置に送信し、
送信した前記入力の情報に応じて前記変換装置が生成した第2のリクエストを受け取り、
前記第2のリクエストを前記外部サービスに送信する、
ことを特徴とする(((1)))又は(((2)))に記載の情報処理装置。
(((5)))
前記プロセッサは、
前記第1送信処理で送信した前記リクエストに対して前記外部サービスから返信された前記レスポンスの処理を実行し、
この処理によりエラーが生じた場合に前記第2送信処理及び前記所定の処理を実行する、
ことを特徴とする(((1)))~(((4)))のいずれか1項に記載の情報処理装置。
(((6)))
コンピュータに、
変換装置を介して外部サービスに送信したリクエストに対して正常なレスポンスが得られなかった場合に、前記変換装置を介さずに前記外部サービスに対して前記リクエストを送信する第1送信処理を実行させ、
この送信に対して前記外部サービスから返信されたレスポンスのうちの少なくとも一部のデータを前記変換装置へ送信する第2送信処理を実行させ、
前記変換装置から前記データの変換結果を受け取り、前記変換結果を用いて所定の処理を実行させる、ためのプログラム。
【0074】
(((1)))、(((3)))又は(((6)))に係る発明によれば、変換装置と外部サービスとの間の通信障害により情報処理装置が外部サービスを利用できない場合でも、情報処理装置から外部サービスを利用可能となる。
(((2)))に係る発明によれば、変換装置又は外部サービスの少なくとも一つがアクセス不可の場合に、無駄な処理が実行されるのを防ぐことができる。
(((4)))に係る発明によれば、操作画面に対するユーザからの入力に応じた第2のリクエストを情報処理装置に生成させる場合と比べて、情報処理装置が不正な処理を実行してしまうリスクを低減することができる。
(((5)))に係る発明によれば、外部サービスからのレスポンスを情報処理装置が正しく処理できる場合には、変換装置を介する場合よりも高速に処理が実行できる。
【符号の説明】
【0075】
10 画像処理装置、20 RBIシステム、30 クラウドサービス。