図面 (/)

技術 情報処理システム、情報処理装置、及び情報処理方法

出願人 株式会社リコー
発明者 張東哲小南光林雄一郎杉村和徳波平晃佑閔志坂梨龍太郎
出願日 2015年10月30日 (5年0ヶ月経過) 出願番号 2015-215160
公開日 2017年2月23日 (3年8ヶ月経過) 公開番号 2017-041222
状態 特許登録済
技術分野 マルチプログラミング ファクシミリ一般 ストアードプログラム エラー時の再試行
主要キーワード コンポーネント部品 代替コンポーネント 処理実行手順 OCR処理後 ロジック処理 ドキュメントサービス コンポーネント群 API群
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2017年2月23日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (20)

課題

外部サービス連携した一連の処理の代替処理の実行を可能にする。

解決手段

電子データを用いた一連の処理を示す第1の処理を外部サービスと連携して実行するアプリケーション毎に、アプリ識別情報と、該第1の処理に関する情報とを関連付けて記憶する第1の記憶手段と、前記第1の処理に関する情報と、第2の処理に関する情報とを関連付けて記憶する第2の記憶手段と、一の機器から、前記アプリ識別情報と、前記第1の処理に用いられる電子データに関する情報とを含む要求を受け付けると、該要求に含まれる前記アプリ識別情報に関連付けて記憶されている前記第1の処理に関する情報に基づく第1の処理を、前記要求に含まれる前記電子データに関する情報に基づく電子データを用いて実行する処理実行手段と、を有し、前記処理実行手段は、前記第1の処理においてエラーが発生した場合、前記第2の処理第2の処理を前記電子データに対して実行する。

概要

背景

近年、クラウドコンピューティング等により多種多様外部サービスが提供されるようになってきており、外部サービスと機器とが連携して処理を行う技術が知られている。例えば、画像形成装置原稿スキャンして取得した画像データを外部ストレージサービス保管する技術が知られている。

また、予め定義された事務フローモデルに基づき、各種処理を実行するコンポーネント部品を制御するための事務フローを生成する技術が知られている(例えば特許文献1参照)。このような技術では、生成された事務フローによりコンポーネント部品が組み合わされて、事務処理を実現する一連の処理が実行される。

概要

外部サービスと連携した一連の処理の代替処理の実行を可能にする。電子データを用いた一連の処理を示す第1の処理を外部サービスと連携して実行するアプリケーション毎に、アプリ識別情報と、該第1の処理に関する情報とを関連付けて記憶する第1の記憶手段と、前記第1の処理に関する情報と、第2の処理に関する情報とを関連付けて記憶する第2の記憶手段と、一の機器から、前記アプリ識別情報と、前記第1の処理に用いられる電子データに関する情報とを含む要求を受け付けると、該要求に含まれる前記アプリ識別情報に関連付けて記憶されている前記第1の処理に関する情報に基づく第1の処理を、前記要求に含まれる前記電子データに関する情報に基づく電子データを用いて実行する処理実行手段と、を有し、前記処理実行手段は、前記第1の処理においてエラーが発生した場合、前記第2の処理第2の処理を前記電子データに対して実行する。

目的

本発明の一実施形態は、上記の点に鑑みてなされたもので、外部サービスと連携した一連の処理の代替処理の実行を可能にすることを目的とする

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

1以上の情報処理装置が含まれる情報処理システムであって、電子データを用いた一連の処理を示す第1の処理を外部サービス連携して実行するアプリケーション毎に、該アプリケーション識別するアプリ識別情報と、該第1の処理に関する情報とを関連付けて記憶する第1の記憶手段と、前記第1の処理に関する情報と、該第1の処理に関する情報に基づく第1の処理においてエラーが発生した場合に実行される第2の処理に関する情報とを関連付けて記憶する第2の記憶手段と、前記情報処理システムに接続される1以上の機器のうちの一の機器から、前記アプリ識別情報と、前記第1の処理に用いられる電子データに関する情報とを含む要求を受け付けると、該要求に含まれる前記アプリ識別情報に関連付けて前記第1の記憶手段に記憶されている前記第1の処理に関する情報に基づく第1の処理を、前記要求に含まれる前記電子データに関する情報に基づく電子データを用いて実行する処理実行手段と、を有し、前記処理実行手段は、前記第1の処理においてエラーが発生した場合に、該第1の処理に関する情報に関連付けて前記第2の記憶手段に記憶されている前記第2の処理に関する情報に基づく第2の処理を、前記電子データに対して実行する、情報処理システム。

請求項2

前記処理実行手段により前記第2の処理が実行された場合に、該第2の処理の処理結果を、前記一の機器に送信する送信手段を有する、請求項1に記載の情報処理システム。

請求項3

前記第2の記憶手段は、前記第1の処理に関する情報と、前記第2の処理に関する情報と、該第2の処理の種別を示す情報とを関連付けて記憶し、前記送信手段は、前記処理実行手段により前記第2の処理が実行された場合に、前記第2の処理の種別を示す情報に応じた前記処理結果を、前記一の機器に送信する、請求項2に記載の情報処理システム。

請求項4

前記第1の処理においてエラーが発生した場合に、該発生したエラーの種別を判定する判定手段を有し、前記第2の記憶手段は、前記第1の処理に関する情報と、前記第2の処理に関する情報と、該第2の処理に関する情報と異なる第3の処理に関する情報とを関連付けて記憶し、前記処理実行手段は、前記第1の処理においてエラーが発生した場合に、前記判定手段により該発生したエラーの種別を判定して、判定結果に応じて、前記第1の処理に関する情報に関連付けて前記第2の記憶手段に記憶されている前記第2の処理に関する情報に基づく第2の処理又は前記第3の処理に関する情報に基づく第3の処理を、前記電子データを用いて実行する、請求項1又は2に記載の情報処理システム。

請求項5

前記処理実行手段は、電子データを用いて、それぞれ所定の処理を行う複数のコンポーネントを有し、前記要求に含まれる前記電子データに関する情報に基づく電子データを用いて実行する前記第1の処理又は前記第2の処理を、前記複数のコンポーネントのうちの1以上のコンポーネントを組み合わせて実行する、請求項1ないし4のいずれか1項に記載の情報処理システム。

請求項6

前記複数のコンポーネントは、外部サービスに関する処理を実行するコンポーネントを含み、前記外部サービスに関する処理を実行するコンポーネントには、外部サービスに対して電子データをアップロードする処理を行うコンポーネントを少なくとも含む、請求項5に記載の情報処理システム。

請求項7

情報処理装置であって、電子データを用いた一連の処理を示す第1の処理を外部サービスと連携して実行するアプリケーション毎に、該アプリケーションを識別するアプリ識別情報と、該第1の処理に関する情報とを関連付けて記憶する第1の記憶手段と、前記第1の処理に関する情報と、該第1の処理に関する情報に基づく第1の処理においてエラーが発生した場合に実行される第2の処理に関する情報とを関連付けて記憶する第2の記憶手段と、前記情報処理装置に接続される1以上の機器のうちの一の機器から、前記アプリ識別情報と、前記第1の処理に用いられる電子データに関する情報とを含む要求を受け付けると、該要求に含まれる前記アプリ識別情報に関連付けて前記第1の記憶手段に記憶されている前記第1の処理に関する情報に基づく第1の処理を、前記要求に含まれる前記電子データに関する情報に基づく電子データを用いて実行する処理実行手段と、を有し、前記処理実行手段は、前記第1の処理においてエラーが発生した場合に、該第1の処理に関する情報に関連付けて前記第2の記憶手段に記憶されている前記第2の処理に関する情報に基づく第2の処理を、前記電子データに対して実行する、情報処理装置。

請求項8

1以上の情報処理装置が含まれる情報処理システムであって、電子データを用いた一連の処理を示す第1の処理を外部サービスと連携して実行するアプリケーション毎に、該アプリケーションを識別するアプリ識別情報と、該第1の処理に関する情報とを関連付けて記憶する第1の記憶手段と、前記第1の処理に関する情報と、該第1の処理に関する情報に基づく第1の処理においてエラーが発生した場合に実行される第2の処理に関する情報とを関連付けて記憶する第2の記憶手段と、を有する情報処理システムに用いられる情報処理方法において、前記情報処理システムに接続される1以上の機器のうちの一の機器から、前記アプリ識別情報と、前記第1の処理に用いられる電子データに関する情報とを含む要求を受け付けると、該要求に含まれる前記アプリ識別情報に関連付けて前記第1の記憶手段に記憶されている前記第1の処理に関する情報に基づく第1の処理を、前記要求に含まれる前記電子データに関する情報に基づく電子データを用いて実行する処理実行手順、を有し、前記処理実行手順は、前記第1の処理においてエラーが発生した場合に、該第1の処理に関する情報に関連付けて前記第2の記憶手段に記憶されている前記第2の処理に関する情報に基づく第2の処理を、前記電子データに対して実行する、情報処理方法。

技術分野

0001

本発明は、情報処理システム情報処理装置、及び情報処理方法に関する。

背景技術

0002

近年、クラウドコンピューティング等により多種多様外部サービスが提供されるようになってきており、外部サービスと機器とが連携して処理を行う技術が知られている。例えば、画像形成装置原稿スキャンして取得した画像データを外部ストレージサービス保管する技術が知られている。

0003

また、予め定義された事務フローモデルに基づき、各種処理を実行するコンポーネント部品を制御するための事務フローを生成する技術が知られている(例えば特許文献1参照)。このような技術では、生成された事務フローによりコンポーネント部品が組み合わされて、事務処理を実現する一連の処理が実行される。

発明が解決しようとする課題

0004

しかしながら、上記の従来技術においては、一連の処理の途中でエラー等が発生した場合には、当該一連の処理を最初から実行し直す必要があった。このため、当該一連の処理を実行し直すことができない場合には、ユーザは、所望の処理結果を得ることができなかった。

0005

本発明の一実施形態は、上記の点に鑑みてなされたもので、外部サービスと連携した一連の処理の代替処理の実行を可能にすることを目的とする。

課題を解決するための手段

0006

上記目的を達成するため、本発明の一実施形態は、1以上の情報処理装置が含まれる情報処理システムであって、電子データを用いた一連の処理を示す第1の処理を外部サービスと連携して実行するアプリケーション毎に、該アプリケーション識別するアプリ識別情報と、該第1の処理に関する情報とを関連付けて記憶する第1の記憶手段と、前記第1の処理に関する情報と、該第1の処理に関する情報に基づく第1の処理においてエラーが発生した場合に実行される第2の処理に関する情報とを関連付けて記憶する第2の記憶手段と、前記情報処理システムに接続される1以上の機器のうちの一の機器から、前記アプリ識別情報と、前記第1の処理に用いられる電子データに関する情報とを含む要求を受け付けると、該要求に含まれる前記アプリ識別情報に関連付けて前記第1の記憶手段に記憶されている前記第1の処理に関する情報に基づく第1の処理を、前記要求に含まれる前記電子データに関する情報に基づく電子データを用いて実行する処理実行手段と、を有し、前記処理実行手段は、前記第1の処理においてエラーが発生した場合に、該第1の処理に関する情報に関連付けて前記第2の記憶手段に記憶されている前記第2の処理に関する情報に基づく第2の処理を、前記電子データに対して実行する。

発明の効果

0007

本発明の一実施形態によれば、外部サービスと連携した一連の処理の代替処理の実行を可能にすることができる。

図面の簡単な説明

0008

第一の実施形態に係る情報処理システムの一例のシステム構成を示す図である。
第一の実施形態に係るサービス提供システムの一例のハードウェア構成を示す図である。
第一の実施形態に係る画像形成装置の一例のハードウェア構成を示す図である。
第一の実施形態に係る情報処理システムの一例の処理ブロックを示す図である。
共通I/F及び固有I/Fの一例を示す図である。
第一の実施形態に係る処理内容の一例を示す図である。
第一の実施形態に係るロジック処理部の一例の処理ブロックを示す図である。
第一の実施形態に係る代替フロー管理テーブルの一例を示す図である。
第一の実施形態に係るスキャン配信サービスの全体処理の一例のシーケンス図である。
スキャン配信サービスを利用するためのアプリ画面の一例を示す図である。
第一の実施形態に係るフロー実行処理の一例のシーケンス図である。
第一の実施形態に係るフロー実行処理の他の例のシーケンス図である。
第二の実施形態に係るロジック処理部の一例の処理ブロックを示す図である。
第二の実施形態に係る代替フロー管理テーブルの一例を示す図である。
第二の実施形態に係るフロー実行処理の一例のシーケンス図である。
第三の実施形態に係るロジック処理部の一例の処理ブロックを示す図である。
第三の実施形態に係る代替フロー管理テーブルの一例を示す図である。
第三の実施形態に係るフロー実行処理の一例のシーケンス図である。
第四の実施形態に係るロジック処理部の一例の処理ブロックを示す図である。
第四の実施形態に係る代替コンポーネント管理テーブルの一例を示す図である。
第四の実施形態に係るフロー実行処理の一例のシーケンス図である。
第四の実施形態に係る処理内容の一例を示す図である。
第五の実施形態に係るロジック処理部の一例の処理ブロックを示す図である。
第五の実施形態に係る代替コンポーネント管理テーブルの一例を示す図である。
第五の実施形態に係るフロー実行処理の一例のシーケンス図である。
第五の実施形態に係る処理内容の一例を示す図である。
第六の実施形態に係るロジック処理部の一例の処理ブロックを示す図である。
第六の実施形態に係る代替コンポーネント管理テーブルの一例を示す図である。
第六の実施形態に係るフロー実行処理の一例のシーケンス図である。
第六の実施形態に係る処理内容(例外フロー内容)の一例を示す図である。

実施例

0009

以下、本発明の実施形態について図面を参照しながら詳細に説明する。

0010

[第一の実施形態]
<システム構成>
まず、本実施形態に係る情報処理システム1のシステム構成について、図1を参照しながら説明する。図1は、第一の実施形態に係る情報処理システムの一例のシステム構成を示す図である。

0011

図1に示す情報処理システム1は、サービス提供環境E1、ユーザ環境E2、及び外部ストレージシステム30を含み、インターネット等の広域的ネットワークN1を介して通信可能に接続されている。

0012

サービス提供環境E1は、ネットワークN1を介してクラウドサービス等の外部サービスを提供するシステム環境である。なお、本実施形態では、外部サービスの具体例としてクラウドサービスを採用して説明するが、ASP(Application Service Provider)によって提供されるサービスやWebサービス等、ネットワークを介して提供されるサービスに関して本実施形態が適用されても良い。

0013

サービス提供環境E1は、一台以上の情報処理装置で実現されるサービス提供システム10を有する。サービス提供システム10は、ネットワークN1を介して所定のサービスを提供する。

0014

例えば、サービス提供システム10は、ユーザ環境E2の画像形成装置20において原稿をスキャンして生成された電子ファイルOCR(Optical Character Reader)処理した後、言語の翻訳処理をして、外部ストレージシステム30に保存するサービスを提供する。本実施形態では、このようなサービスを「スキャン配信サービス」と表す。そして、サービス提供システム10は、スキャン配信サービスを提供するものとして説明する。

0015

ただし、サービス提供システム10により提供されるサービスは、これに限られない。サービス提供システム10は、例えば、外部ストレージシステム30に保存されている電子ファイルを、ユーザ環境E2の画像形成装置20で印刷するサービスを提供しても良い。また、サービス提供システム10は、例えば、外部ストレージシステム30に保存されている電子ファイルを、ユーザ環境E2のプロジェクタ投影するサービスを提供しても良い。

0016

なお、サービス提供システム10の全部又は一部は、ユーザ環境E2に設置されていても良い。すなわち、サービス提供システム10を構成する情報処理装置の全部又は一部は、ユーザ環境E2に包含されていても良い。

0017

ユーザ環境E2は、例えば、画像形成装置20を利用するユーザである企業等におけるシステム環境である。ユーザ環境E2は、一台以上の画像形成装置20が、例えばLAN(Local Area Network)等のネットワークを介して接続されている。

0018

本実施形態に係る画像形成装置20は、スキャン機能を有するMFP(Multifunction Peripheral)等の複合機である。なお、画像形成装置20は、スキャン機能以外に、例えば、プリント機能コピー機能、及びファクスFAX通信機能等を有していても良い。

0019

外部ストレージシステム30は、ネットワークN1を介してストレージサービス(又はオンラインストレージ)と呼ばれるクラウドサービスを提供するコンピュータシステムである。

0020

ストレージサービスとは、外部ストレージシステム30のストレージの記憶領域を貸し出すサービスである。本実施形態に係るスキャン配信サービスでは、外部ストレージシステム30によって貸し出される記憶領域に対して、OCR処理及び翻訳処理された電子ファイルを保存(アップロード)する。

0021

なお、以降では、複数の外部ストレージシステム30について、各々を区別するときは、「外部ストレージシステム301」、「外部ストレージシステム302」等と添え字を用いて表す。また、外部ストレージシステム301によって提供されるサービスの名称を「ストレージサービスA」、外部ストレージシステム302によって提供されるサービスの名称を「ストレージサービスB」等とする。

0022

外部ストレージシステム30は、複数台の情報処理装置によって実現されるシステムであっても良い。また、図1に示す情報処理システム1の構成は一例であって、他の構成であっても良い。例えば、ユーザ環境E2は、画像形成装置20に加えて又は画像形成装置20に代えて、プロジェクタ、電子黒板等の各種機器を有していても良い。

0023

<ハードウェア構成>
≪サービス提供システム≫
サービス提供システム10のハードウェア構成について、図2を参照しながら説明する。図2は、第一の実施形態に係るサービス提供システムの一例のハードウェア構成を示す図である。

0024

図2に示すサービス提供システム10は、入力装置11、表示装置12、外部I/F13、及びRAM(Random Access Memory)14を有する。また、サービス提供システム10は、ROM(Read Only Memory)15、CPU(Central Processing Unit)16、通信I/F17、及びHDD(Hard Disk Drive)18を有する。これらの各ハードウェアは、それぞれがバスBで接続されている。

0025

入力装置11は、キーボードマウスタッチパネル等を含み、ユーザが各操作信号を入力するのに用いられる。表示装置12は、ディスプレイ等を含み、サービス提供システム10による処理結果を表示する。なお、入力装置11及び表示装置12は、必要なときにバスBに接続して利用する形態であっても良い。

0026

通信I/F17は、サービス提供システム10をネットワークN1に接続するインタフェースである。これにより、サービス提供システム10は、通信I/F17を介してデータ通信を行うことができる。

0027

HDD18は、プログラムやデータを格納している不揮発性記憶装置である。格納されるプログラムやデータには、サービス提供システム10全体を制御する基本ソフトウェアであるOS(Operating System)、及びOS上において各種機能を提供するアプリケーションソフトウェア等がある。

0028

なお、サービス提供システム10は、HDD108に代えて又はHDD108に加えて、フラッシュメモリを用いるドライブ装置(例えばソリッドステートドライブSSD)を利用しても良い。また、HDD108は、格納しているプログラムやデータを所定のファイルシステム及び/又はDBにより管理している。

0029

外部I/F13は、外部装置とのインタフェースである。外部装置には、記録媒体13a等がある。これにより、サービス提供システム10は、外部I/F13を介して記録媒体13aの読み取り及び/又は書き込みを行うことができる。記録媒体13aには、フレキシブルディスク、CD、DVD、SDメモリカードUSBメモリ等がある。

0030

ROM15は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。ROM15には、サービス提供システム10の起動時に実行されるBIOS(Basic Input/Output System)、OS設定、及びネットワーク設定等のプログラムやデータが格納されている。RAM14は、プログラムやデータを一時保持する揮発性の半導体メモリである。

0031

CPU16は、ROM15やHDD18等からプログラムやデータをRAM14上に読み出し、処理を実行することで、サービス提供システム10全体の制御や機能を実現する演算装置である。

0032

本実施形態に係るサービス提供システム10は、上記のハードウェア構成を有することにより、後述するような各種処理を実現できる。

0033

≪画像形成装置≫
画像形成装置20のハードウェア構成について、図3を参照しながら説明する。図3は、第一の実施形態に係る画像形成装置の一例のハードウェア構成を示す図である。

0034

図3に示す画像形成装置20は、コントローラ21、操作パネル22、外部I/F23、通信I/F24、及びスキャナ25を有する。また、コントローラ21は、CPU211、RAM212、ROM213、NVRAM214、及びHDD215を有する。

0035

ROM213は、各種プログラムやデータを格納する。RAM212は、プログラムやデータを一時保持する。NVRAM214は、例えば設定情報等が格納されている。また、HDD215は、各種プログラムやデータを格納する。

0036

CPU211は、ROM213やNVRAM214、HDD215等からプログラムやデータ、設定情報等をRAM212上に読み出し、処理を実行することで、画像形成装置20全体の制御や機能を実現する。

0037

操作パネル22は、ユーザからの入力を受け付ける入力部と、表示を行う表示部とを備えている。外部I/F23は、外部装置とのインタフェースである。外部装置には、記録媒体23a等がある。これにより、画像形成装置20は、外部I/F23を介して記録媒体23aの読み取り及び/又は書き込みを行うことができる。記録媒体23aにはICカード、フレキシブルディスク、CD、DVD、SDメモリカード、USBメモリ等がある。

0038

通信I/F24は、画像形成装置20をネットワークN1に接続するインタフェースである。これにより、画像形成装置20は通信I/F24を介してデータ通信を行うことができる。スキャナ25は、原稿を読み取り画像ファイル(電子ファイル)を生成するための読取装置である。

0039

本実施形態に係る画像形成装置20は、上記のハードウェア構成を有することにより、後述するような各種処理を実現できる。

0040

ソフトウェア構成
次に、本実施形態に係る情報処理システム1の処理ブロックについて、図4を参照しながら説明する。図4は、第一の実施形態に係る情報処理システムの一例の処理ブロックを示す図である。

0041

図4に示す画像形成装置20は、例えばCPU211等により実行されるブラウザ210を有する。画像形成装置20のユーザは、ブラウザ210を介して、サービス提供システム10により提供されるサービスを利用することができる。このように、本実施形態に係る画像形成装置20は、ブラウザ210が搭載(インストール)されていれば良い。すなわち、本実施形態に係る情報処理システム1では、サービス提供システム10により提供されるサービスを画像形成装置20が利用するための専用アプリケーションを開発等する必要がない。

0042

図4に示すサービス提供システム10は、サービス処理部110、ドキュメントサービス部150、及びストレージサービス連携部160を有する。これら各部は、サービス提供システム10にインストールされた1以上のプログラムが、CPU16に実行させる処理により実現される。

0043

また、サービス提供システム10は、アプリ情報記憶部190を有する。アプリ情報記憶部190は、HDD18により実現可能である、なお、アプリ情報記憶部190は、サービス提供システム10とネットワークを介して接続される記憶装置等により実現されても良い。

0044

サービス処理部110は、画像形成装置20のブラウザ210からの要求に応じて、各種のサービスに関する処理を実行する。サービス処理部110は、アプリ管理部120、ロジック処理部130、及びデータI/F部140を有する。

0045

アプリ管理部120は、アプリ情報記憶部190に記憶されているアプリ情報1000を管理する。アプリ管理部120は、ブラウザ210からの要求に応じて、アプリ情報1000に含まれる画面定義に基づくアプリ画面を返信する。これにより、画像形成装置20の操作パネル22には、ブラウザ210により、サービス提供システム10により提供されるサービスを利用するためのアプリ画面が表示される。

0046

ここで、アプリ情報1000には、アプリ画面を画像形成装置20に表示させるための画面定義と、アプリ画面から利用されるサービスを実現するための処理内容とが含まれる。なお、アプリ情報1000には、複数の画面定義と、複数の処理内容とが含まれていても良い。

0047

また、アプリ管理部120は、ロジック処理部130からの要求に応じて、アプリ情報1000に含まれる処理内容を返信する。処理内容は、サービス提供システム10により提供されるサービスを実現するための一連の処理(以降では、一連の処理を「処理フロー」とも表す。)が記述されている。

0048

ロジック処理部130は、ブラウザ210からの要求に応じて、アプリ管理部120を介して処理内容を取得する。そして、ロジック処理部130は、取得した処理内容に基づく一連の処理を実行する。

0049

すなわち、ロジック処理部130は、ドキュメントサービス部150又は/及びストレージサービス連携部160のファイル処理部170に対して、処理内容に従った処理の実行を要求することで、処理内容に基づく一連の処理を実行する。これにより、本実施形態に係るサービス提供システム10は、画像形成装置20に対して各種のサービスを提供することができる。なお、ロジック処理部130の詳細な処理ブロックについては、後述する。

0050

データI/F部140は、ブラウザ210からの要求に応じて、ストレージサービス連携部160のデータ処理部180に対して、所定の要求(例えば、フォルダ一覧取得要求等)を行う。

0051

ドキュメントサービス部150は、サービス提供システム10により提供されるサービスを実現するためのプログラム(モジュール)群である。ドキュメントサービス部150には、例えば、電子ファイルに対してOCR処理を行うOCR処理151や、所定の言語で記載されている文書ファイル(電子ファイル)を他の所定の言語に翻訳する翻訳処理152等のプログラムが含まれる。

0052

なお、ドキュメントサービス部150には、これら以外にも、種々のプログラムが含まれていても良い。例えば、ドキュメントサービス部150には、電子ファイルを画像形成装置20が印刷可能なデータ形式(印刷データ)に変換するプログラムや、電子ファイルを圧縮又は解凍するためのプログラム等が含まれていても良い。

0053

ストレージサービス連携部160は、ロジック処理部130やデータI/F部140からの要求に応じて、外部ストレージシステム30に対して、各種処理の実行を要求する。

0054

ここで、本実施形態に係るサービス提供システム10は、外部ストレージシステム30毎に、ストレージサービス連携部160を有する。すなわち、サービス提供システム10は、外部ストレージシステム301に対して処理を要求するためのストレージサービスA連携部1601、外部ストレージシステム302に対して処理を要求するためのストレージサービスB連携部1602等を有する。このように、サービス提供システム10は、当該サービス提供システム10と連携して処理を行う外部ストレージシステム30毎に、それぞれの外部ストレージシステム30に対応するストレージサービス連携部160を有する。

0055

なお、以降では、複数のストレージサービス連携部160について、各々を区別するときは、「ストレージサービスA連携部1601」、「ストレージサービスB連携部1602」等と記載する。

0056

ストレージサービス連携部160は、上述したように、ロジック処理部130からの要求を受け取るファイル処理部170、及びデータI/F部140からの要求を受け取るデータ処理部180を有する。

0057

ファイル処理部170は、外部ストレージシステム30に保存されている電子ファイルに対する操作(例えば、取得、保存、編集等)を行うためのAPI(Application Programming Interface)が定義された共通I/F171及び固有I/F172を有する。

0058

共通I/F171は、複数の外部ストレージシステム30間で共通に利用できるAPIであり、例えば図5(a)に示すAPIが挙げられる。換言すれば、ファイル処理部170の共通I/F171は、すべての外部ストレージシステム30が利用できるファイル操作に関する機能(例えば、ファイルの取得、保存等)を利用するためのAPI群である。

0059

一方、固有I/F172は、特定の外部ストレージシステム30において利用できるAPIであり、例えば図5(b)に示すAPIが挙げられる。換言すれば、ファイル処理部170の固有I/F172は、特定の外部ストレージシステム30において利用できるファイル操作に関する機能(例えば、ファイルの編集等)を利用するためのAPI群である。

0060

したがって、共通I/F171は、すべてのストレージサービス連携部160に対して同様に定義される。一方で、固有I/F172は、当該固有I/F172で定義されるAPIが利用可能な特定のストレージサービス連携部160に対して個別に定義される。

0061

また、データ処理部180は、外部ストレージシステム30に保存されている電子ファイルの書誌情報等のメタデータ(例えば、ファイル一覧、フォルダ一覧等)を取得等するためのAPIが定義された共通I/F181及び固有I/F182を有する。

0062

共通I/F181は、複数の外部ストレージシステム30間で共通に利用できるAPIであり、例えば図5(c)に示すAPIが挙げられる。換言すれば、データ処理部180の共通I/F181は、すべての外部ストレージシステム30で利用できるメタデータ取得等の機能を利用するためのAPI群である。

0063

一方、固有I/F182は、特定の外部ストレージシステム30において利用できるAPIであり、例えば図5(d)に示すAPIが挙げられる。換言すれば、データ処理部180の固有I/F182は、特定の外部ストレージシステム30において利用できるメタデータ取得等の機能(例えば、画像ファイル一覧の取得等)を利用するためのAPI群である。

0064

したがって、共通I/F181は、すべてのストレージサービス連携部160に対して同様に定義される。一方で、固有I/F182は、当該固有I/F182で定義されるAPIが利用可能な特定のストレージサービス連携部160に対して個別に定義される。

0065

以上のように、本実施形態に係るサービス提供システム10は、連携して処理を行う外部ストレージシステム30毎に、それぞれの外部ストレージシステム30に対応するストレージサービス連携部160を有する。このため、連携先となる外部ストレージシステム30を追加等する場合には、当該外部ストレージシステム30に対応するストレージサービス連携部160をサービス提供システム10に追加等すれば良い。

0066

したがって、本実施形態に係るサービス提供システム10は、連携先となる外部ストレージシステム30の追加等に伴う影響を局所化することができる。換言すれば、他の処理ブロック(サービス処理部110やドキュメントサービス部150等)に影響を与えることなく(すなわち、他の処理ブロックを修正等する必要なく)、連携先となる外部ストレージシステム30の追加等を行うことができる。

0067

これにより、本実施形態に係るサービス提供システム10では、連携先の外部ストレージシステム30の追加等の開発に要する工数を削減することができる。なお、ストレージサービス連携部160の追加等は、SDK(Software Development Kit)を用いて行うことができる。

0068

また、ストレージサービス連携部160では、共通I/F171及び固有I/F172がそれぞれ異なるモジュール等で実現される。さらに、共通I/F171及び固有I/F172で定義されるAPIは、「ストレージサービス名」(外部サービス名)を指定することで利用することができる(すなわち、「ストレージサービス名」(外部サービス名)が可変部分となっている)。

0069

したがって、連携先の外部ストレージシステム30を追加する場合には、他のストレージサービス連携部160に定義されている共通I/F171を再利用することができる。換言すれば、連携先の外部ストレージシステム30を追加する場合には、当該追加する外部ストレージシステム30の固有I/F172のみを開発すれば良い。これにより、本実施形態に係るサービス提供システム10では、連携先の外部ストレージシステム30の追加等の開発に要する工数をさらに削減することができる。なお、このことは、データ処理部180の共通I/F181及び固有I/F182に関しても同様である。

0070

アプリ情報記憶部190は、アプリ情報1000を記憶する。アプリ情報1000は、アプリ画面を画像形成装置20に表示させるための画面定義と、アプリ画面から利用されるサービスを実現するための一連の処理の内容が記述された処理内容とを含む。また、アプリ情報1000には、当該アプリ情報1000を一意に識別するためのアプリIDが付与されている。

0071

ここで、本実施形態に係るスキャン配信サービスを提供するためのアプリ情報1000のアプリIDを「app001」であるとする。また、アプリID「app001」のアプリ情報1000には、ストレージサービスAと連携したスキャン配信サービスを実現するための処理内容1100、ストレージサービスBと連携したスキャン配信サービスを実現するための処理内容1200等が含まれるものとする。

0072

ここで、ストレージサービスAと連携したスキャン配信サービスを実現するための処理内容1100及びストレージサービスBと連携したスキャン配信サービスを実現するための処理内容1200について、図6を参照しながら説明する。図6は、第一の実施形態に係る処理内容の一例を示す図である。

0073

図6(a)に示す処理内容1100には、フローID定義部1101と、処理定義部1102とが含まれる。フローID定義部1101には、処理内容1100を一意に識別するための識別情報であるフローID「flow001」が記述されている。

0074

処理定義部1102には、ストレージサービスAと連携したスキャン配信サービスを実現するための一連の処理の内容が記述されている。すなわち、図6(a)に示す処理内容1100には、スキャンして生成された電子ファイルを、OCR処理した後、所定の言語に翻訳する翻訳処理をして、外部ストレージシステム301に保存する一連の処理が記述されている。

0075

同様に、図6(b)に示す処理内容1200には、フローID定義部1201と、処理定義部1202とが含まれる。フローID定義部1201には、処理内容1200を一意に識別するための識別情報であるフローID「flow002」が記述されている。

0076

処理定義部1202には、ストレージサービスBと連携したスキャン配信サービスを実現するための一連の処理の内容が記述されている。すなわち、図6(b)に示す処理内容1200には、スキャンして生成された電子ファイルを、OCR処理した後、所定の言語に翻訳する翻訳処理をして、外部ストレージシステム302に保存する一連の処理が記述されている。

0077

以上のように、本実施形態に係るサービス提供システム10は、画像形成装置20にアプリ画面を表示させるための画面定義と、サービスを実現するための一連の処理(処理フロー)の内容が記述された処理内容とが含まれるアプリ情報1000を有する。そして、本実施形態に係るサービス提供システム10は、画像形成装置20に対して、アプリ情報1000を利用して各種のサービスを提供する。このため、サービス提供システム10により提供されるサービスを追加等する場合には、アプリ情報記憶部190にアプリ情報1000を追加等すれば良い。

0078

また、アプリ情報1000を追加するには、画面定義及び処理内容を記述すれば良いため、簡易に開発することができる。したがって、サービスの追加・変更等に伴う開発工数を削減させることができるとともに、例えばサードベンダー等によるサービスの追加・変更等を容易に行うことができる。

0079

次に、本実施形態に係るロジック処理部130の詳細な処理ブロックについて、図7を参照しながら説明する。図7は、第一の実施形態に係るロジック処理部の一例の処理ブロックを示す図である。

0080

図7に示すロジック処理部130は、フロー実行部131、コンポーネント管理部132、及びコンポーネント群133を有する。また、ロジック処理部130は、代替フロー管理テーブル2000を利用する。

0081

フロー実行部131は、サービスを実現するためのフロー実行要求をブラウザ210から受け付けると、アプリ管理部120を介して、当該フロー実行要求に含まれるフローIDに対応する処理内容を取得する。そして、フロー実行部131は、取得した処理内容に従ってコンポーネントに対して処理の実行を要求する。ここで、コンポーネントとは、処理内容に基づく一連の処理のうちの一の処理を実行するためのモジュール等であり、例えばクラスや関数等で定義される。

0082

また、フロー実行部131は、処理内容に基づく一連の処理においてエラー等が発生した場合、代替フロー管理テーブル2000から代替フローIDを取得する。そして、フロー実行部131は、アプリ管理部120を介して、代替フローIDに対応する処理内容を取得して、当該処理内容に従ってコンポーネントに対して処理の実行を要求する。

0083

ここで、代替フローIDとは、ある処理内容に基づく一連の処理(処理フロー)においてエラー等が発生した場合に実行される処理内容(代替フロー内容)のフローIDのことである。なお、代替フロー内容には、例えば、処理フローと同等の処理結果を得るための処理の内容が記述されている。

0084

すなわち、フロー実行部131は、処理フローにおいてエラー等が発生した場合には、代替フロー管理テーブル2000において当該処理フローのフローIDに関連付けられている代替フローIDの代替フロー内容に基づく一連の処理(代替フロー)を実行する。

0085

コンポーネント管理部132は、フロー実行部131からの要求に応じて、コンポーネントの生成を行う。なお、コンポーネントの生成とは、例えばクラスで定義されたコンポーネントを、メモリ(例えばRAM14)上に展開することを意味する。

0086

コンポーネント群133は、コンポーネントの集合である。コンポーネント群133には、外部ストレージシステム301に電子ファイルを配信するための配信コンポーネント1331Aが含まれる。また、コンポーネント群133には、電子ファイルにOCR処理を行うためのOCRコンポーネント1332A、電子ファイルを所定の言語に翻訳する翻訳処理を行う翻訳コンポーネント1333Aが含まれる。

0087

さらに、コンポーネント群133には、外部ストレージシステム302に電子ファイルを配信するための配信コンポーネント1331Bが含まれる。同様に、コンポーネント群133には、上記のOCRコンポーネント1332Aとは異なるOCRコンポーネント1332B、上記の翻訳コンポーネント1333Aとは異なる翻訳コンポーネント1333B等が含まれる。このように、コンポーネント群133には、種々の処理を実行する種々のコンポーネントが含まれる。

0088

ここで、コンポーネント群133に含まれる各コンポーネントは、コンポーネント共通I/F1330を有する。コンポーネント共通I/F1330は、各コンポーネントに対して共通に定義されたAPIであり、コンポーネントを生成するためのAPIと、コンポーネントに対して処理の実行を要求するためのAPIとが含まれる。

0089

このように、各コンポーネントがコンポーネント共通I/F1330を有することで、コンポーネントの追加等に伴う影響を局所化することができる。換言すれば、フロー実行部131及びコンポーネント管理部132に影響を与えることなく、コンポーネントの追加等を行うことができる。このため、コンポーネントの追加等の開発に要する工数を削減することができる。

0090

ここで、代替フロー管理テーブル2000について、図8を参照しながら説明する。図8は、第一の実施形態に係る代替フロー管理テーブルの一例を示す図である。

0091

図8に示す代替フロー管理テーブル2000は、データ項目として、フローID、及び代替フローIDを有する。すなわち、代替フロー管理テーブル2000では、フローIDに対して代替フローIDが関連付けられている。

0092

例えば、フローID「flow001」には、代替フローID「flow002」が関連付けられている。これにより、フロー実行部131は、フローID「flow001」の処理内容に基づく一連の処理においてエラー等が発生した場合には、当該フローIDに関連付けられている代替フローID「flow002」の処理内容を取得することができる。

0093

<処理の詳細>
次に、本実施形態に係る情報処理システム1の処理の詳細について説明する。

0094

≪スキャン配信サービスの全体処理≫
本実施形態に係るスキャン配信サービスを画像形成装置20のユーザが利用する場合の全体的な処理について、図9を参照しながら説明する。図9は、第一の実施形態に係るスキャン配信サービスの全体処理の一例のシーケンス図である。

0095

まず、画像形成装置20のユーザは、ブラウザ210を用いて、サービス提供システム10により提供されるサービスの一覧を取得するための操作を行う。すると、画像形成装置20は、サービスの一覧の取得要求をサービス提供システム10に送信する(ステップS901)。サービス処理部110のアプリ管理部120は、当該取得要求を受け取ると、サービス提供システム10により提供されるサービスの一覧を画像形成装置20に送信する。

0096

これにより、画像形成装置20の操作パネル22には、ブラウザ210により、サービス提供システム10により提供されるサービスの一覧が表示される。なお、サービスの一覧には、サービス提供システム10により提供されるサービスのサービス名、当該サービスを提供するアプリ情報1000のアプリID、及び当該サービスを実現するための処理内容のフローID等が含まれる。

0097

ユーザは、画像形成装置20の操作パネル22に表示されたサービスの一覧から、自身が利用を所望するサービスを選択する。すると、ブラウザ210は、選択されたサービスを提供するアプリ情報1000のアプリIDと、当該サービスを実現するための処理内容のフローIDとをアプリ管理部120に送信する(ステップS902)。

0098

ここでは、ユーザにより、ストレージサービスAと連携したスキャン配信するためのサービス「Scan to ストレージサービスA」の利用が選択されたものとする。したがって、ブラウザ210は、スキャン配信サービスを提供するアプリ情報1000のアプリID「app001」と、当該アプリ情報1000に含まれる処理内容1100のフローID「flow001」とをアプリ管理部120に送信する。

0099

そして、アプリ管理部120は、ブラウザ210から受け取ったアプリIDのアプリ情報1000に含まれる画面定義に基づきHTML(HyperText Markup Language)形式のアプリ画面を生成し、ブラウザ210に送信する。

0100

ブラウザ210は、アプリ管理部120からアプリ画面を受け取ると、例えば図10に示すアプリ画面3000を、操作パネル22に表示させる(ステップS903)。図10は、スキャン配信サービスを利用するためのアプリ画面の一例を示す図である。

0101

次に、ユーザは、図10に示すアプリ画面3000において、ファイル名入力欄3200にスキャンにより生成される電子ファイルに付与する所望のファイル名を入力する。また、ユーザは、保存先フォルダID入力欄3300にスキャンにより生成される電子ファイルを保存するストレージサービスAのフォルダのフォルダIDを入力する。なお、図10に示すアプリ画面3000の翻訳言語欄3100には、英語から日本語に翻訳することを示す「英語→日本語」が表示されているが、翻訳元の言語と翻訳後の言語をユーザが選択することができるようにしても良い。

0102

また、図10に示すアプリ画面3000では、ストレージサービスAにおける保存先フォルダのフォルダIDをユーザが直接入力するものとしたが、保存先フォルダをフォルダ一覧からユーザが選択できるようにしても良い。すなわち、例えばデータI/F140部がデータ処理部180を介してストレージサービスAのフォルダ一覧を取得し、取得されたフォルダ一覧からユーザが保存先フォルダを選択できるようにしても良い。

0103

そして、ユーザは、画像形成装置20のスキャナ25に原稿をセットした上で、スキャン実行ボタン3400を押下する(ステップS904)。これにより、画像形成装置20のスキャナ25により原稿が読み取られ、ファイル名入力欄3200に入力されたファイル名の電子ファイルが生成される(ステップS905)。

0104

続いて、サービス提供システム10は、画像形成装置20より生成された電子ファイルをOCR処理して、言語の翻訳を行った上で、ストレージサービスAに配信するフロー実行処理を行う(ステップS906)。このフロー実行処理の詳細については、後述する。

0105

≪フロー実行処理≫
以降では、上記のステップS906のフロー実行処理の詳細について説明する。まず、フロー実行処理が正常に実行される場合について、図11を参照しながら説明する。図11は、第一の実施形態に係るフロー実行処理の一例のシーケンス図である。

0106

まず、ブラウザ210は、スキャン配信サービスを実現するためのフロー実行要求をフロー実行部131に送信する(ステップS1101)。ここで、当該実行要求には、スキャン配信サービスを提供するアプリ情報1000のアプリID「app001」と、ストレージサービスAと連携したスキャン配信サービスを実現するための処理内容のフローID「flow001」とが含まれる。また、当該実行要求には、スキャンにより生成された電子ファイルと、外部ストレージシステム301における当該電子ファイルの保存先フォルダのフォルダIDとが含まれる。

0107

次に、フロー実行部131は、フロー実行要求を受け付けると、アプリ管理部120を介して、当該実行要求に含まれるアプリID「app001」のアプリ情報1000からフローID「flow001」の処理内容を取得する(ステップS1102)。すなわち、フロー実行部131は、図6(a)に示す処理内容1100を取得する。

0108

フロー実行部131は、取得した処理内容1100に従ってコンポーネントの取得を、コンポーネント管理部132に要求する(ステップS1103)。より具体的には、フロー実行部131は、図6(a)に示す処理内容1100の「From("file:input")」の次に指定されている「.to("process:ocrA")」に基づき、OCRコンポーネント1332Aの取得を、コンポーネント管理部132に要求する。

0109

コンポーネント管理部132は、OCRコンポーネント1332Aの取得要求を受け取ると、OCRコンポーネント1332Aを生成する(ステップS1104)。OCRコンポーネント1332Aの生成は、コンポーネント共通I/F1330に定義されたコンポーネントを生成するためのAPIを用いて行うことができる。

0110

そして、OCRコンポーネント1332Aが生成されると、コンポーネント管理部132は、OCRコンポーネント1332Aをフロー実行部131に返信する。これは、例えば、コンポーネント管理部132は、OCRコンポーネント1332Aが展開されたメモリ(例えばRAM14)上のアドレスを、フロー実行部131に返信すれば良い。

0111

フロー実行部131は、データを指定して、生成されたOCRコンポーネント1332Aに処理の実行を要求する(ステップS1105)。なお、ここで指定されるデータは、データ型が「InputStream」としてブラウザ210から渡される電子ファイルである。

0112

すなわち、フロー実行部131は、ブラウザ210からデータ型「InputStream」として渡される電子ファイルを、単に「データ」として(データ型を意識することなく)、OCRコンポーネント1332Aに渡して処理の実行を要求する。図11では、このようにデータ型を意識することなく渡される電子ファイル等を、単に「データ」と表す。

0113

OCRコンポーネント1332Aは、データが指定された処理の実行要求を受け取ると、当該指定されたデータに対して処理を実行する(ステップS1106)。より具体的には、OCRコンポーネント1332Aは、ドキュメントサービス部150のOCR処理151に処理を要求し、OCR処理151が指定されたデータに対してOCR処理を実行する。

0114

そして、OCRコンポーネント1332Aは、OCR処理後の電子ファイルを示すデータをフロー実行部131に返信する。

0115

次に、フロー実行部131は、取得した処理内容1100に従ってコンポーネントの取得を、コンポーネント管理部132に要求する(ステップS1107)。より具体的には、フロー実行部131は、図6(a)に示す処理内容1100の「.to("process:ocrA")」の次に指定されている「.to("process:transA")」に基づき、翻訳コンポーネント1333Aの取得を、コンポーネント管理部132に要求する。

0116

コンポーネント管理部132は、翻訳コンポーネント1333Aの取得要求を受け取ると、翻訳コンポーネント1333Aを生成する(ステップS1108)。翻訳コンポーネント1333Aの生成は、コンポーネント共通I/F1330に定義されたコンポーネントを生成するためのAPIを用いて行うことができる。

0117

そして、翻訳コンポーネント1333Aが生成されると、コンポーネント管理部132は、翻訳コンポーネント1333Aをフロー実行部131に返信する。これは、例えば、コンポーネント管理部132は、翻訳コンポーネント1333Aが展開されたメモリ(例えばRAM14)上のアドレスを、フロー実行部131に返信すれば良い。

0118

フロー実行部131は、データを指定して、生成された翻訳コンポーネント1333Aに処理の実行を要求する(ステップS1109)。なお、ここで指定されるデータは、OCR処理後の電子ファイルである。

0119

次に、翻訳コンポーネント1333Aは、データが指定された処理の実行要求を受け取ると、当該指定されたデータに対して処理を実行する(ステップS1110)。より具体的には、翻訳コンポーネント1333Aは、ドキュメントサービス部150の翻訳処理152に処理を要求し、翻訳処理152が指定されたデータに対して、所定の言語への翻訳処理を実行する。

0120

そして、翻訳コンポーネント1333Aは、翻訳処理後の電子ファイルを示すデータをフロー実行部131に返信する。

0121

次に、フロー実行部131は、取得した処理内容1100に従ってコンポーネントの取得を、コンポーネント管理部132に要求する(ステップS1111)。より具体的には、フロー実行部131は、図6(a)に示す処理内容1100の「.to("process:transA")」の次に指定されている「.to("storage:uploadFileA")」に基づき、配信コンポーネント1331Aの取得を、コンポーネント管理部132に要求する。

0122

コンポーネント管理部132は、配信コンポーネント1331Aの取得要求を受け取ると、配信コンポーネント1331Aを生成する(ステップS1112)。配信コンポーネント1331Aの生成は、コンポーネント共通I/F1330に定義されたコンポーネントを生成するためのAPIを用いて行うことができる。

0123

そして、配信コンポーネント1331Aが生成されると、コンポーネント管理部132は、配信コンポーネント1331Aをフロー実行部131に返信する。これは、例えば、コンポーネント管理部132は、配信コンポーネント1331Aが展開されたメモリ(例えばRAM14)上のアドレスを、フロー実行部131に返信すれば良い。

0124

フロー実行部131は、データを指定して、生成された配信コンポーネント1331Aに処理の実行を要求する(ステップS1113)。なお、ここで指定されるデータは、翻訳処理後の電子ファイルである。

0125

次に、配信コンポーネント1331Aは、データが指定された処理の実行要求を受け取ると、当該指定されたデータに対して処理を実行する(ステップS1114)。すなわち、配信コンポーネント1331Aは、ストレージサービスA連携部1601のファイル処理部1701に対して、共通I/F1711として定義されているファイル保存のAPIを用いて、データの配信実行を要求する。より具体的には、配信コンポーネント1331Aは、ストレージサービスA連携部1601のファイル処理部1701に対して、図5(a)に示すAPIとして「service-a/process/folder」を用いてデータの配信実行を要求する。これにより、ストレージサービスAにおいて、図10に示す保存先フォルダID入力欄3300に入力されたフォルダIDのフォルダに、翻訳処理後の電子ファイルが保存される。

0126

そして、配信コンポーネント1331Aは、配信実行の実行結果を示すデータをフロー実行部131に返信する。

0127

フロー実行部131は、取得した処理内容1100に基づく一連の処理(処理フロー)の処理結果をブラウザ210に返信する(ステップS1115)。これにより、画像形成装置20のユーザは、スキャン配信サービスを実現するための一連の処理が完了したことを知ることができる。

0128

次に、フロー実行処理の途中でエラーが発生した場合について、図12を参照しながら説明する。図12は、第一の実施形態に係るフロー実行処理の他の例のシーケンス図である。以降では、本実施形態に係るスキャン配信サービスを実現するための一連の処理(処理フロー)に含まれるOCR処理においてエラーが発生した場合について説明する。ただし、エラーの発生箇所は、これに限られない。スキャン配信サービスを実現するための処理フローに含まれる各処理のうちのいずれの処理でエラーが発生しても、以降で説明する処理が同様に適用され得る。

0129

まず、ブラウザ210は、スキャン配信サービスを実現するためのフロー実行要求をフロー実行部131に送信する(ステップS1201)。ここで、当該実行要求には、スキャン配信サービスを提供するアプリ情報1000のアプリID「app001」と、ストレージサービスAと連携したスキャン配信サービスを実現するための処理内容のフローID「flow001」とが含まれる。また、当該実行要求には、スキャンにより生成された電子ファイルと、外部ストレージシステム301における当該電子ファイルの保存先フォルダのフォルダIDとが含まれる。

0130

次に、フロー実行部131は、フロー実行要求を受け付けると、アプリ管理部120を介して、当該実行要求に含まれるアプリID「app001」のアプリ情報1000からフローID「flow001」の処理内容を取得する(ステップS1202)。すなわち、フロー実行部131は、図6(a)に示す処理内容1100を取得する。

0131

フロー実行部131は、取得した処理内容1100に従ってコンポーネントの取得を、コンポーネント管理部132に要求する(ステップS1203)。より具体的には、フロー実行部131は、図6(a)に示す処理内容1100の「From("file:input")」の次に指定されている「.to("process:ocrA")」に基づき、OCRコンポーネント1332Aの取得を、コンポーネント管理部132に要求する。

0132

コンポーネント管理部132は、OCRコンポーネント1332Aの取得要求を受け取ると、OCRコンポーネント1332Aを生成する(ステップS1204)。OCRコンポーネント1332Aの生成は、コンポーネント共通I/F1330に定義されたコンポーネントを生成するためのAPIを用いて行うことができる。

0133

そして、OCRコンポーネント1332Aが生成されると、コンポーネント管理部132は、OCRコンポーネント1332Aをフロー実行部131に返信する。これは、例えば、コンポーネント管理部132は、OCRコンポーネント1332Aが展開されたメモリ(例えばRAM14)上のアドレスを、フロー実行部131に返信すれば良い。

0134

フロー実行部131は、データを指定して、生成されたOCRコンポーネント1332Aに処理の実行を要求する(ステップS1205)。なお、ここで指定されるデータは、データ型が「InputStream」としてブラウザ210から渡される電子ファイルである。

0135

OCRコンポーネント1332Aは、データが指定された処理の実行要求を受け取ると、当該指定されたデータに対して処理を実行する(ステップS1206)。より具体的には、OCRコンポーネント1332Aは、ドキュメントサービス部150のOCR処理151に処理を要求し、OCR処理151が指定されたデータに対してOCR処理を実行する。

0136

ここで、ステップS1206において、OCRコンポーネント1332Aの処理の実行中に、例えば、OCR処理が不可能であることを示すエラーが発生したものとする。すると、OCRコンポーネント1332Aは、エラーが発生したことを示すデータをフロー実行部131に返信する。

0137

フロー実行部131は、エラーが発生したことを示すデータを受け取ると、代替フロー管理テーブル2000を参照して、ステップS1202で取得した処理内容1100のフローIDに関連付けられている代替フローIDを取得する(ステップS1207)。より具体的には、フロー実行部131は、代替フロー管理テーブル2000において、処理内容1100のフローID「flow001」に関連付けられている代替フローID「flow002」を取得する。

0138

次に、フロー実行部131は、代替フローIDを取得すると、アプリ管理部120を介して、当該代替フローID「flow002」の処理内容(代替フロー内容)を取得する(ステップS1208)。すなわち、フロー実行部131は、図6(b)に示す処理内容1200を取得する。

0139

このように、本実施形態に係るサービス提供システム10は、処理内容に基づく一連の処理においてエラー等が発生した場合には、代替フロー管理テーブル2000において当該処理内容に関連付けられている他の処理内容を取得する。

0140

フロー実行部131は、取得した処理内容1200に従ってコンポーネントの取得を、コンポーネント管理部132に要求する(ステップS1209)。より具体的には、フロー実行部131は、図6(b)に示す処理内容1200の「From("file:input")」の次に指定されている「.to("process:ocrB")」に基づき、OCRコンポーネント1332Bの取得を、コンポーネント管理部132に要求する。

0141

コンポーネント管理部132は、OCRコンポーネント1332Bの取得要求を受け取ると、OCRコンポーネント1332Bを生成する(ステップS1210)。OCRコンポーネント1332Bの生成は、コンポーネント共通I/F1330に定義されたコンポーネントを生成するためのAPIを用いて行うことができる。

0142

そして、OCRコンポーネント1332Bが生成されると、コンポーネント管理部132は、OCRコンポーネント1332Bをフロー実行部131に返信する。これは、例えば、コンポーネント管理部132は、OCRコンポーネント1332Bが展開されたメモリ(例えばRAM14)上のアドレスを、フロー実行部131に返信すれば良い。

0143

フロー実行部131は、データを指定して、生成されたOCRコンポーネント1332Bに処理の実行を要求する(ステップS1211)。

0144

OCRコンポーネント1332Bは、データが指定された処理の実行要求を受け取ると、当該指定されたデータに対して処理を実行する(ステップS1212)。より具体的には、OCRコンポーネント1332Bは、ドキュメントサービス部150のOCR処理151に処理を要求し、OCR処理151が指定されたデータに対してOCR処理を実行する。

0145

そして、OCRコンポーネント1332Bは、OCR処理後の電子ファイルを示すデータをフロー実行部131に返信する。

0146

次に、フロー実行部131は、取得した処理内容1200に従ってコンポーネントの取得を、コンポーネント管理部132に要求する(ステップS1213)。より具体的には、フロー実行部131は、図6(b)に示す処理内容1200の「.to("process:ocrB")」の次に指定されている「.to("process:transB")」に基づき、翻訳コンポーネント1333Bの取得を、コンポーネント管理部132に要求する。

0147

コンポーネント管理部132は、翻訳コンポーネント1333Bの取得要求を受け取ると、翻訳コンポーネント1333Bを生成する(ステップS1214)。翻訳コンポーネント1333Bの生成は、コンポーネント共通I/F1330に定義されたコンポーネントを生成するためのAPIを用いて行うことができる。

0148

そして、翻訳コンポーネント1333Bが生成されると、コンポーネント管理部132は、翻訳コンポーネント1333Bをフロー実行部131に返信する。これは、例えば、コンポーネント管理部132は、翻訳コンポーネント1333Bが展開されたメモリ(例えばRAM14)上のアドレスを、フロー実行部131に返信すれば良い。

0149

フロー実行部131は、データを指定して、生成された翻訳コンポーネント1333Bに処理の実行を要求する(ステップS1215)。なお、ここで指定されるデータは、OCR処理後の電子ファイルである。

0150

次に、翻訳コンポーネント1333Bは、データが指定された処理の実行要求を受け取ると、当該指定されたデータに対して処理を実行する(ステップS1216)。より具体的には、翻訳コンポーネント1333Bは、ドキュメントサービス部150の翻訳処理152に処理を要求し、翻訳処理152が指定されたデータに対して、所定の言語への翻訳処理を実行する。

0151

そして、翻訳コンポーネント1333Bは、翻訳処理後の電子ファイルを示すデータをフロー実行部131に返信する。

0152

次に、フロー実行部131は、取得した処理内容1200に従ってコンポーネントの取得を、コンポーネント管理部132に要求する(ステップS1217)。より具体的には、フロー実行部131は、図6(b)に示す処理内容1200の「.to("process:transB")」の次に指定されている「.to("storage:uploadFileB")」に基づき、配信コンポーネント1331Bの取得を、コンポーネント管理部132に要求する。

0153

コンポーネント管理部132は、配信コンポーネント1331Bの取得要求を受け取ると、配信コンポーネント1331Bを生成する(ステップS1218)。配信コンポーネント1331Bの生成は、コンポーネント共通I/F1330に定義されたコンポーネントを生成するためのAPIを用いて行うことができる。

0154

そして、配信コンポーネント1331Bが生成されると、コンポーネント管理部132は、配信コンポーネント1331Bをフロー実行部131に返信する。これは、例えば、コンポーネント管理部132は、配信コンポーネント1331Bが展開されたメモリ(例えばRAM14)上のアドレスを、フロー実行部131に返信すれば良い。

0155

フロー実行部131は、データを指定して、生成された配信コンポーネント1331Bに処理の実行を要求する(ステップS1219)。なお、ここで指定されるデータは、翻訳処理後の電子ファイルである。

0156

次に、配信コンポーネント1331Bは、データが指定された処理の実行要求を受け取ると、当該指定されたデータに対して処理を実行する(ステップS1220)。すなわち、配信コンポーネント1331Bは、ストレージサービスB連携部1602のファイル処理部1702に対して、共通I/F1712として定義されているファイル保存のAPIを用いて、データの配信実行を要求する。より具体的には、配信コンポーネント1331Bは、ストレージサービスB連携部1602のファイル処理部1702に対して、図5(a)に示すAPIとして「service-b/process/folder」を用いてデータの配信実行を要求する。これにより、ストレージサービスBにおいて、図10に示す保存先フォルダID入力欄3300に入力されたフォルダIDのフォルダに、翻訳処理後の電子ファイルが保存される。

0157

そして、配信コンポーネント1331Bは、配信実行の実行結果を示すデータをフロー実行部131に返信する。

0158

フロー実行部131は、処理内容1100の代替フロー内容として取得した処理内容1200に基づく一連の処理(代替フロー)の処理結果をブラウザ210に返信する(ステップS1221)。これにより、画像形成装置20のユーザは、スキャン配信サービスを実現するための一連の処理(処理フロー)においてエラーが発生し、代替フローが実行されたことを知ることができる。

0159

以上のように、本実施形態に係るサービス提供システム10では、処理内容に基づく一連の処理(処理フロー)においてエラー等が発生した場合、当該処理内容に対して予め関連付けられた他の処理内容(代替フロー内容)に基づく一連の処理(代替フロー)を実行する。これにより、本実施形態に係るサービス提供システム10では、例えば、ある処理フローにおいてエラーが発生した場合には、当該処理フローと同等の処理を行う代替フローを実行することができる。

0160

[第二の実施形態]
次に、第二の実施形態に係る情報処理システム1について説明する。第二の実施形態では、代替フローが実行された場合に、当該代替フローの種別に応じた処理結果をブラウザ210に返信する点が第一の実施形態と異なる。なお、以降では、第一の実施形態と実質的に同一の機能を有する箇所及び同一の処理を行う箇所については、第一の実施形態と同一の符号を用いて、その説明を省略する。

0161

<ソフトウェア構成>
本実施形態に係る情報処理システム1に含まれるサービス提供システム10のロジック処理部130の処理ブロックについて、図13を参照しながら説明する。図13は、第二の実施形態に係るロジック処理部の一例の処理ブロックを示す図である。

0162

図13に示すサービス提供システム10のロジック処理部130は、フロー実行部131Aを有する。また、図13に示すサービス提供システム10のロジック処理部130は、代替フロー管理テーブル2000Aを利用する。

0163

フロー実行部131Aは、代替フローIDに対応する処理内容(代替フロー内容)に基づく一連の処理(代替フロー)が実行された場合に、代替フロー管理テーブル2000Aを参照して、当該代替フローの代替フロータイプに応じた処理結果を返信する。

0164

ここで、代替フロー管理テーブル2000Aについて、図14を参照しながら説明する。図14は、第二の実施形態に係る代替フロー管理テーブルの一例を示す図である。

0165

図14に示す代替フロー管理テーブル2000Aは、データ項目として、さらに、代替フロータイプを有する。すなわち、代替フロー管理テーブル2000Aでは、代替フローIDに対して代替フロータイプが関連付けられている。

0166

代替フロータイプとは、代替フローIDで示される処理内容(代替フロー)に基づく一連の処理(代替フロー)が実行された場合における処理結果の種類を示す情報である。

0167

例えば、代替フロータイプが「タイプ1」である代替フローIDに対応する代替フローが実行された場合、フロー実行部131は、当該代替フローの処理結果として「成功」を示す処理結果をブラウザ210に返信する。一方で、例えば、代替フロータイプが「タイプ2」である代替フローIDに対応する代替フローが実行された場合、フロー実行部131は、当該代替フローの処理結果として「失敗」を示す処理結果をブラウザ210に返信する。

0168

<処理の詳細>
次に、本実施形態に係る情報処理システム1の処理の詳細について説明する。

0169

≪フロー実行処理≫
以降では、フロー実行処理の途中でエラーが発生した場合について、図15を参照しながら説明する。図15は、第二の実施形態に係るフロー実行処理の一例のシーケンス図である。なお、ステップS1201〜ステップS1220の処理については、第一の実施形態と同様であるため、その説明を省略する。

0170

フロー実行部131Aは、代替フロー管理テーブル2000Aを参照して、実行された代替フローの代替フロータイプを取得する(ステップS1501)。より具体的には、フロー実行部131Aは、代替フロー管理テーブル2000Aにおいて、代替フローID「flow002」に関連付けられている代替フロータイプ「タイプ1」を取得する。

0171

次に、フロー実行部131Aは、取得した代替フロータイプに応じた処理結果をブラウザ210に返信する(ステップS1502)。より具体的には、フロー実行部131Aは、取得した代替フロータイプ「タイプ1」に応じて、「成功」を示す処理結果をブラウザ210に返信する。

0172

以上のように、本実施形態に係るサービス提供システム10では、代替フローが実行された場合には、当該代替フローの代替フロータイプに応じた処理結果を画像形成装置20に返信する。これにより、本実施形態に係るサービス提供システム10では、実行された代替フローの種別や内容に応じて、適切な処理結果を画像形成装置20に返信することができる。

0173

例えば、エラーが発生した処理フローと同等の処理を実現する代替フローが実行される場合には、代替フロー管理テーブル2000Aにおいて、当該代替フローの代替フローIDに代替フロータイプ「タイプ1」を関連付けておけば良い。これにより、本実施形態に係るサービス提供システム10では、処理フローと同等の処理を実現する代替フローが実行された場合に、「成功」を示す処理結果をブラウザ210に返信することができる。

0174

一方で、例えば、エラーが発生した処理フローをロールバックする代替フローが実行される場合には、代替フロー管理テーブル2000Aにおいて、当該代替フローの代替フローIDに代替フロータイプ「タイプ2」を関連付けておけば良い。これにより、本実施形態に係るサービス提供システム10は、代替フローが実行された場合に、「失敗」を示す処理結果をブラウザ210に返信することができる。

0175

[第三の実施形態]
次に、第三の実施形態に係る情報処理システム1について説明する。第三の実施形態では、処理フローにおいて発生したエラーが回復可能なエラーであるか否かを判定して、当該判定結果に応じた他の処理内容を取得する点が第一の実施形態と異なる。なお、以降では、第一の実施形態と実質的に同一の機能を有する箇所及び同一の処理を行う箇所については、第一の実施形態と同一の符号を用いて、その説明を省略する。

0176

<ソフトウェア構成>
本実施形態に係る情報処理システム1に含まれるサービス提供システム10のロジック処理部130の処理ブロックについて、図16を参照しながら説明する。図16は、第三の実施形態に係るロジック処理部の一例の処理ブロックを示す図である。

0177

図16に示すサービス提供システム10のロジック処理部130は、フロー実行部131Bを有する。また、図16に示すサービス提供システム10のロジック処理部130は、代替フロー管理テーブル2000Bを利用する。

0178

フロー実行部131Bは、処理内容に基づく一連の処理(処理フロー)においてエラー等が発生した場合に、当該エラーが回復可能なエラーであるか否かを判定する。そして、フロー実行部131Bは、代替フロー管理テーブル2000Bを参照して、当該判定結果に応じて、代替フローID又は例外フローIDを取得する。

0179

ここで、例外フローIDとは、処理フローにおいて回復不可能なエラーが発生した場合に実行される処理内容(例外フロー内容)のフローIDのことである。なお、例外フロー内容には、例えば、エラー情報の出力やエラー通知等を実現するための処理の内容が記述される。

0180

ここで、代替フロー管理テーブル2000Bについて、図17を参照しながら説明する。図17は、第三の実施形態に係る代替フロー管理テーブルの一例を示す図である。

0181

図17に示す代替フロー管理テーブル2000Bは、データ項目として、さらに、例外フローIDを有する。すなわち、代替フロー管理テーブル2000Bでは、フローIDに対して、代替フローID及び例外フローIDが関連付けられている。

0182

例えば、フローID「flow001」には、代替フローID「flow002」及び例外フローID「flow900」が関連付けられている。これにより、フロー実行部131Bは、処理フローにおいてエラー等が発生した場合には、当該エラーに応じて代替フローIDの処理内容(代替フロー内容)又は例外フローIDの処理内容(例外フロー内容)を取得することができる。

0183

<処理の詳細>
次に、本実施形態に係る情報処理システム1の処理の詳細について説明する。

0184

≪フロー実行処理≫
以降では、フロー実行処理の途中でエラーが発生した場合について、図18を参照しながら説明する。図18は、第三の実施形態に係るフロー実行処理の一例のシーケンス図である。なお、ステップS1201〜ステップS1206の処理については、第一の実施形態と同様であるため、その説明を省略する。

0185

フロー実行部131Bは、処理内容1100に基づく一連の処理(処理フロー)において発生したエラーが回復可能なエラーであるか否かを判定する(ステップS1801)。

0186

ここで、回復可能なエラーとは、代替フローを実行することが可能なエラー種別を言う。一方、回復不可能なエラーとは、例えば、代替フローを実行することができないエラー種別を言う。なお、回復不可能なエラーには、例えば、代替フローが存在しない場合等を含めても良い。

0187

ステップS1801において、発生したエラーが回復可能なエラーであると判定された場合、フロー実行部131Bは、ステップS1802〜ステップS1804の処理を実行する。一方で、発生したエラーが回復不可能なエラーであると判定された場合、フロー実行部131Bは、ステップS1805〜ステップS1807の処理を実行する。

0188

すなわち、発生したエラーが回復可能なエラーであると判定された場合、フロー実行部131Bは、代替フロー管理テーブル2000Bを参照して、処理内容1100のフローIDに関連付けられている代替フローIDを取得する(ステップS1802)。より具体的には、フロー実行部131Bは、代替フロー管理テーブル2000Bにおいて、処理内容1100のフローID「flow001」に関連付けられている代替フローID「flow002」を取得する。

0189

次に、フロー実行部131Bは、代替フローIDを取得すると、アプリ管理部120を介して、当該代替フローID「flow002」の処理内容(代替フロー内容)を取得する(ステップS1803)。すなわち、フロー実行部131は、図6(b)に示す処理内容1200を取得する。

0190

そして、フロー実行部131Bは、取得した処理内容1200に基づく代替フローを実行する(ステップS1804)。すなわち、この場合、図12のステップS1209〜ステップS1221と同様の処理が行われる。

0191

一方、発生したエラーが回復不可能なエラーであると判定された場合、フロー実行部131Bは、代替フロー管理テーブル2000Bを参照して、処理内容1100のフローIDに関連付けられている例外フローIDを取得する(ステップS1805)。より具体的には、フロー実行部131Bは、代替フロー管理テーブル2000Bにおいて、処理内容1100のフローID「flow001」に関連付けられている例外フローID「flow900」を取得する。

0192

次に、フロー実行部131Bは、例外フローIDを取得すると、アプリ管理部120を介して、当該例外フローID「flow900」の処理内容(例外フロー内容)を取得する(ステップS1806)。

0193

そして、フロー実行部131Bは、取得した例外フロー内容に基づく例外フローを実行する(ステップS1807)。

0194

以上のように、本実施形態に係るサービス提供システム10では、処理フローにおいてエラーが発生した場合に、当該発生したエラーが回復可能か否かに応じて、代替フロー又は例外フローを実行することができる。このため、本実施形態に係るサービス提供システム10では、例えば、処理フローにおいて回復不可能な深刻なエラーが発生した場合等には、当該エラーの発生を画像形成装置20に通知するための例外フローを実行することができる。

0195

[第四の実施形態]
次に、第四の実施形態に係る情報処理システム1について説明する。第四の実施形態では、処理フローにおいてエラー等が発生した場合、当該エラー等が発生したコンポーネントに対して予め関連付けられた他のコンポーネント(代替コンポーネント)を実行させる処理内容(代替フロー内容)を作成する点が第一の実施形態と異なる。すなわち、第四の実施形態では、コンポーネントにおいてエラー等が発生した場合、代替コンポーネントを実行させる代替フロー内容を動的に作成する。なお、以降では、第一の実施形態と実質的に同一の機能を有する箇所及び同一の処理を行う箇所については、第一の実施形態と同一の符号を用いて、その説明を省略する。

0196

<ソフトウェア構成>
本実施形態に係る情報処理システム1に含まれるサービス提供システム10のロジック処理部130の処理ブロックについて、図19を参照しながら説明する。図19は、第四の実施形態に係るロジック処理部の一例の処理ブロックを示す図である。

0197

図19に示すサービス提供システム10のロジック処理部130は、フロー実行部131C、及び代替フロー内容作成部134を有する。また、図19に示すサービス提供システム10のロジック処理部130は、代替コンポーネント管理テーブル4000を利用する。

0198

フロー実行部131Cは、処理内容に基づく一連の処理の各処理を実行するコンポーネントにおいてエラー等が発生した場合、当該エラー等が発生したコンポーネントの代替コンポーネントIDを代替コンポーネント管理テーブル4000から取得する。そして、フロー実行部131は、取得した代替コンポーネントIDのコンポーネントを実行させる処理内容(代替フロー内容)の作成を代替フロー内容作成部134に要求する。

0199

代替フロー内容作成部134は、フロー実行部131Cの要求に応じて、当該要求に含まれる代替コンポーネントIDに基づく代替フロー内容を作成する。

0200

ここで、代替コンポーネント管理テーブル4000について、図20を参照しながら説明する。図20は、第四の実施形態に係る代替コンポーネント管理テーブルの一例を示す図である。

0201

図20に示す代替コンポーネント管理テーブル4000は、データ項目として、フローID、コンポーネントID、及び代替コンポーネントIDを有する。すなわち、代替コンポーネント管理テーブル4000では、フローID毎に、コンポーネントを一意に識別するコンポーネントIDと、代替コンポーネントのコンポーネントIDを示す代替コンポーネントIDとが関連付けられている。なお、代替コンポーネントとは、コンポーネントにエラー等が発生した場合に実行させるコンポーネントのことであり、例えば、エラー等が発生したコンポーネントと同等の処理を行う他のコンポーネントである。

0202

例えば、フローID「flow001」において、コンポーネントID「ocrA」には、代替コンポーネントID「ocrB」が関連付けられている。これにより、フローID「flow001」の処理フローにおいて、コンポーネントID「ocrA」のコンポーネントにエラー等が発生した場合、代替コンポーネントID「ocrB」のコンポーネントを実行させる処理内容を作成することができる。

0203

同様に、例えば、フローID「flow002」において、コンポーネントID「uploadFileB」には、代替コンポーネントID「uploadFileA」が関連付けられている。これにより、フローID「flow002」の処理フローにおいて、コンポーネントID「uploadFileB」のコンポーネントにエラー等が発生した場合、代替コンポーネントID「uploadFileA」のコンポーネントを実行させる処理内容を作成することができる。

0204

なお、代替コンポーネント管理テーブル4000において、フローIDが「−」であるコンポーネントID及び代替コンポーネントIDは、該当のフローIDにおいてエラー等が発生したコンポーネントのコンポーネントIDが存在しない場合に用いられる。例えば、フローID「flow002」の処理フローにおいて、コンポーネントID「transB」のコンポーネントにエラー等が発生した場合、代替コンポーネントID「transC」が処理内容(代替フロー内容)の作成に用いられる。

0205

<処理の詳細>
次に、本実施形態に係る情報処理システム1の処理の詳細について説明する。

0206

≪フロー実行処理≫
以降では、フロー実行処理の途中でエラーが発生した場合につちえ、図21を参照しながら説明する。図21は、第四の実施形態に係るフロー実行処理の一例のシーケンス図である。なお、ステップS1201〜ステップS1206の処理については、第一の実施形態と同様であるため、その説明を省略する。

0207

フロー実行部131Cは、エラーが発生したことを示すデータを受け取ると、代替コンポーネント管理テーブル4000を参照して、該当の代替コンポーネントIDを取得する(ステップS2101)。すなわち、フロー実行部131Cは、ステップS1202で取得した処理内容1100のフローID「flow001」及びOCRコンポーネント1332AのコンポーネントID「ocrA」に関連付けられている代替コンポーネントID「ocrB」を取得する。

0208

次に、フロー実行部131Cは、取得した代替コンポーネントID「ocrB」を含む代替フロー内容の作成要求を代替フロー内容作成部134に送信する(ステップS2102)。

0209

代替フロー内容作成部134は、代替フロー内容の作成要求を受け取ると、当該作成要求に含まれる代替コンポーネントID「ocrB」に基づいて代替フロー内容を作成する(ステップS2103)。すなわち、代替フロー内容作成部134は、処理内容1100に含まれるコンポーネントID「ocrA」を、代替コンポーネントID「ocrB」に変更して、図22に示す処理内容1300を作成する。

0210

そして、代替フロー内容作成部134は、作成した処理内容1300をフロー実行部131Cに返信する。

0211

図22に示す処理内容1300では、点線1301で示すように、処理内容1100における「.to("process:ocrA")」が「.to("process:ocrB")」に変更されている。これにより、処理内容1300に基づく一連の処理(代替フロー)では、OCRコンポーネント1332Bより処理を行うことができる。

0212

フロー実行部131Cは、取得した処理内容1300に従ってコンポーネントの取得を、コンポーネント管理部132に要求する(ステップS2104)。より具体的には、フロー実行部131Cは、図22に示す処理内容1300に指定されている「.to("process:ocrB")」に基づき、OCRコンポーネント1332Bの取得を、コンポーネント管理部132に要求する。

0213

コンポーネント管理部132は、OCRコンポーネント1332Bの取得要求を受け取ると、OCRコンポーネント1332Bを生成する(ステップS2105)。そして、OCRコンポーネント1332Bが生成されると、コンポーネント管理部132は、OCRコンポーネント1332Bをフロー実行部131Cに返信する。

0214

フロー実行部131Cは、データを指定して、生成されたOCRコンポーネント1332Bに処理の実行を要求する(ステップS2106)。

0215

OCRコンポーネント1332Bは、データが指定された処理の実行要求を受け取ると、当該指定されたデータに対して処理を実行する(ステップS2107)。そして、OCRコンポーネント1332Bは、OCR処理後の電子ファイルを示すデータをフロー実行部131Cに返信する。

0216

次に、フロー実行部131Cは、取得した処理内容1300に従ってコンポーネントの取得を、コンポーネント管理部132に要求する(ステップS2108)。より具体的には、フロー実行部131Cは、図22に示す処理内容1300の「.to("process:ocrB")」の次に指定されている「.to("process:transA")」に基づき、翻訳コンポーネント1333Aの取得を、コンポーネント管理部132に要求する。

0217

コンポーネント管理部132は、翻訳コンポーネント1333Aの取得要求を受け取ると、翻訳コンポーネント1333Aを生成する(ステップS2109)。そして、翻訳コンポーネント1333Aが生成されると、コンポーネント管理部132は、翻訳コンポーネント1333Aをフロー実行部131Cに返信する。

0218

フロー実行部131Cは、データを指定して、生成された翻訳コンポーネント1333Aに処理の実行を要求する(ステップS2110)。なお、ここで指定されるデータは、OCR処理後の電子ファイルである。

0219

次に、翻訳コンポーネント1333Aは、データが指定された処理の実行要求を受け取ると、当該指定されたデータに対して処理を実行する(ステップS2111)。そして、翻訳コンポーネント1333Aは、翻訳処理後の電子ファイルを示すデータをフロー実行部131Cに返信する。

0220

次に、フロー実行部131Cは、取得した処理内容1300に従ってコンポーネントの取得を、コンポーネント管理部132に要求する(ステップS2112)。より具体的には、フロー実行部131Cは、図22に示す処理内容1300の「.to("process:transA")」の次に指定されている「.to("storage:uploadFileA")」に基づき、配信コンポーネント1331Aの取得を、コンポーネント管理部132に要求する。

0221

コンポーネント管理部132は、配信コンポーネント1331Aの取得要求を受け取ると、配信コンポーネント1331Aを生成する(ステップS2113)。そして、配信コンポーネント1331Aが生成されると、コンポーネント管理部132は、配信コンポーネント1331Aをフロー実行部131Cに返信する。

0222

フロー実行部131Cは、データを指定して、生成された配信コンポーネント1331Aに処理の実行を要求する(ステップS2114)。なお、ここで指定されるデータは、翻訳処理後の電子ファイルである。

0223

次に、配信コンポーネント1331Aは、データが指定された処理の実行要求を受け取ると、当該指定されたデータに対して処理を実行する(ステップS2115)。すなわち、配信コンポーネント1331Aは、ストレージサービスA連携部1601のファイル処理部1701に対して、共通I/F1711として定義されているファイル保存のAPIを用いて、データの配信実行を要求する。これにより、ストレージサービスAの所定のフォルダに翻訳処理後の電子ファイルが保存される。

0224

そして、配信コンポーネント1331Aは、配信実行の実行結果を示すデータをフロー実行部131Cに返信する。

0225

フロー実行部131Cは、処理内容1300に基づく一連の処理(代替フロー)の処理結果をブラウザ210に返信する(ステップS2216)。これにより、画像形成装置20のユーザは、スキャン配信サービスを実現するための一連の処理(処理フロー)においてエラーが発生し、当該エラーが発生したコンポーネントの代わりに代替コンポーネントが実行されたことを知ることができる。

0226

以上のように、本実施形態に係るサービス提供システム10では、処理内容に基づく一連の処理(処理フロー)で実行されたコンポーネントにエラー等が発生した場合、当該コンポーネントの代替コンポーネントを実行させる処理内容(代替フロー内容)を作成する。

0227

そして、本実施形態に係るサービス提供システム10では、作成した処理内容(代替フロー内容)に基づく一連の処理(代替フロー)を実行する。これにより、本実施形態に係るサービス提供システム10では、処理フローにおいてコンポーネントにエラー等が発生した場合、例えば、当該コンポーネントと同等の処理を行う代替コンポーネントを実行させることができる。

0228

[第五の実施形態]
次に、第五の実施形態に係る情報処理システム1について説明する。第五の実施形態では、代替コンポーネントが実行された場合に、当該代替コンポーネントの種別に応じた処理結果をブラウザ210に返信する点が第四の実施形態と異なる。なお、以降では、第四の実施形態と実質的に同一の機能を有する箇所及び同一の処理を行う箇所については、第四の実施形態と同一の符号を用いて、その説明を省略する。

0229

<ソフトウェア構成>
本実施形態に係る情報処理システム1に含まれるサービス提供システム10のロジック処理部130の処理ブロックについて、図23を参照しながら説明する。図23は、第五の実施形態に係るロジック処理部の一例の処理ブロックを示す図である。

0230

図23に示すサービス提供システム10のロジック処理部130は、フロー実行部131D、及び代替フロー内容作成部134Aを有する。また、図23に示すサービス提供システム10のロジック処理部130は、代替コンポーネント管理テーブル4000Aを利用する。

0231

フロー実行部131Dは、エラー等が発生したコンポーネントの代替コンポーネントID及び代替コンポーネントタイプを代替コンポーネント管理テーブル4000Aから取得する。そして、フロー実行部131は、取得した代替コンポーネントIDのコンポーネントを実行させる処理内容(代替フロー内容)の作成を代替フロー内容作成部134Aに要求する。

0232

また、フロー実行部131Dは、処理内容(代替フロー内容)に基づく一連の処理(代替フロー)が実行された場合に、当該処理内容から代替フロータイプを取得し、取得した代替フロータイプに応じた処理結果を返信する。

0233

代替フロー内容作成部134Aは、フロー実行部131Dの要求に応じて、当該要求に含まれる代替コンポーネントID及び代替コンポーネントタイプに基づく代替フロー内容を作成する。

0234

ここで、代替コンポーネント管理テーブル4000Aについて、図24を参照しながら説明する。図24は、第五の実施形態に係る代替コンポーネント管理テーブルの一例を示す図である。

0235

図24に示す代替コンポーネント管理テーブル4000Aは、データ項目として、さらに、代替コンポーネントタイプを有する。すなわち、代替コンポーネント管理テーブル4000Aでは、フローID、コンポーネントID、及び代替コンポーネントIDに対して代替コンポーネントタイプが関連付けられている。代替コンポーネントタイプとは、代替コンポーネントIDのコンポーネントが実行された場合における代替フローの処理結果の種類を示す情報である。

0236

例えば、代替コンポーネントタイプが「タイプ1」である代替コンポーネントIDのコンポーネントが実行された場合、フロー実行部131Dは、代替フローの処理結果として「成功」を示す処理結果をブラウザ210に返信する。一方で、例えば、代替コンポーネントタイプが「タイプ2」である代替コンポーネントIDのコンポーネントが実行された場合、フロー実行部131Dは、代替フローの処理結果として「失敗」を示す処理結果をブラウザ210に返信する。

0237

<処理の詳細>
次に、本実施形態に係る情報処理システム1の処理の詳細について説明する。

0238

≪フロー実行処理≫
以降では、フロー実行処理の途中でエラーが発生した場合について、図25を参照しながら説明する。図25は、第五の実施形態に係るフロー実行処理の一例のシーケンス図である。

0239

フロー実行部131Dは、エラーが発生したことを示すデータを受け取ると、代替コンポーネント管理テーブル4000Aを参照して、該当の代替コンポーネントID及び代替コンポーネントタイプを取得する(ステップS2501)。すなわち、フロー実行部131Dは、処理内容1100のフローID「flow001」及びOCRコンポーネント1332AのコンポーネントID「ocrA」に関連付けられている代替コンポーネントID「ocrB」及び代替コンポーネントタイプ「タイプ1」を取得する。

0240

次に、フロー実行部131Dは、取得した代替コンポーネントID「ocrB」及び代替コンポーネントタイプ「タイプ1」を含む代替フロー内容の作成要求を代替フロー内容作成部134Aに送信する(ステップS2502)。

0241

代替フロー内容作成部134Aは、代替フロー内容の作成要求を受け取ると、当該作成要求に含まれる代替コンポーネントID「ocrB」及び代替コンポーネントタイプ「タイプ1」に基づいて代替フロー内容を作成する(ステップS2503)。すなわち、代替フロー内容作成部134Aは、処理内容1100に含まれるコンポーネントID「ocrA」を、代替コンポーネントID「ocrB」に変更するとともに、代替フロータイプ「タイプ1」を追加して、図26に示す処理内容1400を作成する。

0242

そして、代替フロー内容作成部134Aは、作成した処理内容1400をフロー実行部131Dに返信する。

0243

図26に示す処理内容1400では、点線1401で示すように、代替コンポーネントタイプ「タイプ1」に基づいて、処理内容1100に対して代替フロータイプ「flowtype:"タイプ1"」が追加されている。また、処理内容1400では、点線1402に示すように、処理内容1100における「.to("process:ocrA")」が「.to("process:ocrB")」に変更されている。これにより、処理内容1400に基づく一連の処理(代替フロー)では、OCRコンポーネント1332Bにより処理を行うことができるとともに、代替フロータイプ「タイプ1」に応じた処理結果をブラウザ210に返信することができる。

0244

なお、続くステップS2104〜ステップS2115の処理については、第四の実施形態と同様であるため、その説明を省略する。

0245

フロー実行部131Dは、実行された代替フローの代替フロータイプを取得する(ステップS2504)。より具体的には、フロー実行部131Dは、実行された代替フローの処理内容1400に含まれる「flowtype:"タイプ1"」から代替フロータイプ「タイプ1」を取得する。

0246

次に、フロー実行部131Dは、取得した代替フロータイプに応じた処理結果をブラウザ210に返信する(ステップS2505)。より具体的には、フロー実行部131Dは、取得した代替フロータイプ「タイプ1」に応じて、「成功」を示す処理結果をブラウザ210に返信する。

0247

以上のように、本実施形態に係るサービス提供システム10では、代替フローが実行された場合には、当該代替フローの代替フロータイプに応じた処理結果を画像形成装置20に返信する。また、本実施形態に係るサービス提供システム10では、代替コンポーネントIDに関連付けられた代替コンポーネントタイプに基づいて代替フロータイプを指定する。これにより、本実施形態に係るサービス提供システム10では、実行された代替コンポーネントの種別や内容に応じて、適切な処理結果を画像形成装置20に返信することができる。

0248

[第六の実施形態]
次に、第六の実施形態に係る情報処理システム1について説明する。第六の実施形態では、処理フローにおける各処理を実行するコンポーネントにおいて発生したエラーが回復可能なエラーであるか否かを判定して、当該判定結果に応じた他のコンポーネントのコンポーネントIDを取得する点が第四の実施形態と異なる。なお、以降では、第四の実施形態と実質的に同一の機能を有する箇所及び同一の処理を行う箇所については、第四の実施形態と同一の符号を用いて、その説明を省略する。

0249

<ソフトウェア構成>
本実施形態に係る情報処理システム1に含まれるサービス提供システム10のロジック処理部130の処理ブロックについて、図27を参照しながら説明する。図27は、第六の実施形態に係るロジック処理部の一例の処理ブロックを示す図である。

0250

図27に示すサービス提供システム10のロジック処理部130は、フロー実行部131E、及び代替フロー内容作成部134Bを有する。また、図27に示すサービス提供システム10のロジック処理部130において、コンポーネント群133は、例外コンポーネント1334Aや例外コンポーネント1334B等が含まれる。

0251

さらに、図27に示すサービス提供システム10のロジック処理部130は、代替コンポーネント管理テーブル4000Bを利用する。

0252

フロー実行部131Eは、処理内容に基づく一連の処理(処理フロー)における各処理を実行するコンポーネントにおいてエラー等が発生した場合に、当該エラーが回復可能なエラーであるか否かを判定する。そして、フロー実行部131Eは、代替コンポーネント管理テーブル4000Bを参照して、当該判定結果に応じて、代替コンポーネントID又は例外コンポーネントIDを取得する。

0253

ここで、例外コンポーネントIDとは、処理フローにおける各処理を実行するコンポーネントにおいて回復不可能なエラーが発生した場合に実行される他のコンポーネント(例外コンポーネント1334A等)のコンポーネントIDのことである。なお、例外コンポーネント1334A等は、例えば、エラー情報の出力やエラー通知等の処理を実行する。

0254

代替フロー内容作成部134Bは、フロー実行部131Eの要求に応じて、当該要求に含まれる代替コンポーネントID又は例外コンポーネントIDに基づく代替フロー内容を作成する。

0255

ここで、代替コンポーネント管理テーブル4000Bについて、図28を参照しながら説明する。図28は、第六の実施形態に係る代替コンポーネント管理テーブルの一例を示す図である。

0256

図28に示す代替コンポーネント管理テーブル4000Bは、データ項目として、さらに、例外コンポーネントIDを有する。すなわち、代替コンポーネント管理テーブル4000Bでは、フローID及びコンポーネントIDに対して、代替コンポーネントIDに加えて、例外コンポーネントIDが関連付けられている。

0257

例えば、フローID「flow001」及びコンポーネントID「ocrA」には、代替コンポーネントID「ocrB」に加えて、例外コンポーネント1334Aの例外コンポーネントID「exceptA」が関連付けられている。同様に、例えば、フローID「flow001」及びコンポーネントID「uploadFileA」には、代替コンポーネントID「uploadFileB」に加えて、例外コンポーネント1334Bの例外コンポーネントID「exceptB」が関連付けられている。

0258

これにより、フロー実行部131Eは、処理フローの各処理を実行するコンポーネントにおいてエラー等が発生した場合には、当該エラーに応じて、代替コンポーネントID又例外コンポーネントIDを取得することができる。

0259

<処理の詳細>
次に、本実施形態に係る情報処理システム1の処理の詳細について説明する。

0260

≪フロー実行処理≫
以降では、フロー実行処理の途中でエラーが発生した場合について、図29を参照しながら説明する。図29は、第六の実施形態に係るフロー実行処理の一例のシーケンス図である。なお、ステップS1201〜ステップS1206の処理については、第一の実施形態と同様であるため、その説明を省略する。

0261

フロー実行部131Eは、エラーが発生したことを示すデータを受け取ると、当該エラーが回復可能なエラーであるか否かを判定する(ステップS2901)。

0262

ここで、本実施形態において、回復可能なエラーとは、代替コンポーネントIDのコンポーネントを実行することが可能なエラー種別を言う。このようなエラー種別には、例えば、一時的なネットワークエラー等が含まれる。

0263

一方、本実施形態において、回復不可能なエラーとは、代替コンポーネントIDのコンポーネントを実行することが不可能なエラー種別を言う。このようなエラー種別には、例えば、コンポーネントに入力されたデータが不正であることを示すエラー等が含まれる。

0264

ステップS2901において、発生したエラーが回復可能なエラーであると判定された場合、フロー実行部131Eは、ステップS2902〜ステップS2905の処理を実行する。一方で、発生したエラーが回復不可能なエラーであると判定された場合、フロー実行部131Eは、ステップS2906〜ステップS2913の処理を実行する。

0265

すなわち、発生したエラーが回復可能なエラーであると判定された場合、フロー実行部131Eは、代替コンポーネント管理テーブル4000Bを参照して、該当の代替コンポーネントIDを取得する(ステップS2902)。すなわち、フロー実行部131Eは、ステップS1202で取得した処理内容1100のフローID「flow001」及びOCRコンポーネント1332AのコンポーネントID「ocrA」に関連付けられている代替コンポーネントID「ocrB」を取得する。

0266

次に、フロー実行部131Eは、取得した代替コンポーネントID「ocrB」を含む代替フロー内容の作成要求を代替フロー内容作成部134Bに送信する(ステップS2903)。

0267

代替フロー内容作成部134Bは、代替フロー内容の作成要求を受け取ると、当該作成要求に含まれる代替コンポーネントID「ocrB」に基づいて代替フロー内容を作成する(ステップS2904)。すなわち、代替フロー内容作成部134は、処理内容1100に含まれるコンポーネントID「ocrA」を、代替コンポーネントID「ocrB」に変更して、図22に示す処理内容1300を作成する。

0268

そして、代替フロー内容作成部134Bは、作成した処理内容1300をフロー実行部131Cに返信する。

0269

次に、フロー実行部131Eは、受け取った処理内容1300に基づく代替フローを実行する(ステップS2905)。すなわち、この場合、図21のステップS2104〜ステップS2116と同様の処理が行われる。

0270

一方、発生したエラーが回復不可能なエラーであると判定された場合、フロー実行部131Eは、代替コンポーネント管理テーブル4000Bを参照して、該当の例外コンポーネントIDを取得する(ステップS2906)。すなわち、フロー実行部131Eは、ステップS1202で取得した処理内容1100のフローID「flow001」及びOCRコンポーネント1332AのコンポーネントID「ocrA」に関連付けられている例外コンポーネントID「exceptA」を取得する。

0271

次に、フロー実行部131Eは、取得した例外コンポーネントID「exceptA」を含む代替フロー内容の作成要求を代替フロー内容作成部134Bに送信する(ステップS2907)。

0272

代替フロー内容作成部134Bは、代替フロー内容の作成要求を受け取ると、当該作成要求に含まれる例外コンポーネントID「exceptA」に基づいて代替フロー内容を作成する(ステップS2908)。すなわち、代替フロー内容作成部134Bは、図30に示す処理内容1500を作成する。

0273

そして、代替フロー内容作成部134Bは、作成した処理内容1500をフロー実行部131Eに返信する。

0274

図30に示す処理内容1500では、点線1501で示すように、「.to("process:exceptA")」が指定されている。これにより、処理内容1500に基づく一連の処理(代替フロー)では、例外コンポーネント1334Aにより処理を行うことができる。

0275

フロー実行部131Eは、取得した処理内容1500に従ってコンポーネントの取得を、コンポーネント管理部132に要求する(ステップS2909)。より具体的には、フロー実行部131Eは、図30に示す処理内容1500に指定されている「.to("process:exceptA")」に基づき、例外コンポーネント1334Aの取得を、コンポーネント管理部132に要求する。

0276

コンポーネント管理部132は、例外コンポーネント1334Aの取得要求を受け取ると、例外コンポーネント1334Aを生成する(ステップS2910)。そして、例外コンポーネント1334Aが生成されると、コンポーネント管理部132は、例外コンポーネント1334Aをフロー実行部131Eを返信する。

0277

フロー実行部131Eは、データを指定して、生成された例外コンポーネント1334Aに処理の実行を要求する(ステップS2911)。

0278

例外コンポーネント1334Aは、データが指定された処理の実行要求を受け取ると、当該指定されたデータに対して処理を実行する(ステップS2912)。すなわち、例外コンポーネント1334Aは、例えば、エラー情報の出力やエラー通知等の例外処理を実行する。

0279

そして、例外コンポーネント1334Aは、当該処理の処理結果を示すデータをフロー実行部131Eに返信する。

0280

フロー実行部131Eは、処理内容1500に基づく一連の処理(代替フロー)の処理結果をブラウザ210に返信する(ステップS2913)。これにより、画像形成装置20のユーザは、スキャン配信サービスを実現するための一連の処理(処理フロー)において回復不可能なエラーが発生し、当該エラーが発生したコンポーネントの代わりに例外コンポーネントが実行されたことを知ることができる。

0281

以上のように、本実施形態に係るサービス提供システム10では、処理フローで実行されたコンポーネントにエラー等が発生した場合、当該エラーが回復可能か否かに応じて、代替コンポーネントID又は例外コンポーネントIDを取得する。そして、本実施形態に係るサービス提供システム10では、例外コンポーネントIDを取得した場合、エラー情報の出力やエラー通知等の例外処理を行う例外コンポーネントを実行させる。

0282

これにより、本実施形態に係るサービス提供システム10では、例えば、処理フローにおいて回復不可能な深刻なエラーが発生した場合等には、当該エラーの発生を画像形成装置20に通知するための例外処理を実行することができる。

0283

本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。

0284

1情報処理システム
10サービス提供システム
20画像形成装置
30外部ストレージシステム
110サービス処理部
120アプリ管理部
130ロジック処理部
131フロー実行部
132コンポーネント管理部
133コンポーネント群
140 データI/F部
150ドキュメントサービス部
151OCR処理
152翻訳処理
160ストレージサービス連携部
170ファイル処理部
180データ処理部
190アプリ情報記憶部

先行技術

0285

特許第5112085号公報

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ