以下、本発明を実施するための形態の一例として、情報処理システム1と情報処理システム1が行う情報処理方法について図面を参照しながら説明する。
<動作の概略>
図1は、本実施形態の情報処理システム1の動作の概略を説明する図である。本実施形態では印刷のワークフローと読取のワークフローを処理方法情報により連携させる。処理方法情報は管理者が編集できるため、ワークフローを容易に拡張することができる。
まず、図1(a)に基づいて、印刷のワークフロー(第一のワークフローの一例)について説明する。
(1) ユーザはまず、印刷のワークフローを選択する。これにより、サービス提供システム10が印刷データ記憶部11から取得した原稿種別を機器20が表示する。ユーザは自分がワークフローで印刷したい原稿種別を選択する。
(2) 機器20は原稿種別をサービス提供システムに送信し、サービス提供システム10が原稿種別に対応付けられているIDを処理方法記憶部13から取得する。処理方法記憶部13には処理方法情報(ID:原稿種別:処理方法)が登録されている。IDは原稿を識別する識別情報であると共に、印刷のワークフローと読取のワークフローを連携させる情報である。原稿種別は申請書など各種の原稿の書類名等、原稿を特定する情報である。処理方法は読取のワークフローにおいて原稿の画像データをどのように処理するかを示す。
また、サービス提供システム10は印刷データ記憶部11から原稿種別が示す原稿の印刷データを取得する。
(3) サービス提供システム10はIDを画像コード(例えば、QRコード(登録商標))9に変換して原稿の印刷データに形成し、機器20に送信する。これにより、機器20は画像コード9が形成された原稿を印刷できる。
(4) ユーザは読取のワークフローのために原稿に必要事項を記入する。必ずしも記入しなくてもよい。
次に、図1(b)に基づいて、読取のワークフロー(第二のワークフローの一例)について説明する。
(1) ユーザは必要事項を記入した原稿を機器20で読み取る。
(2) 機器20は原稿の画像データをサービス提供システムに送信し、サービス提供システム10が画像コード9を解析してIDを取り出す。サービス提供システム10はこのIDに対応付けられている処理方法を処理方法記憶部13から取得する。
(3) サービス提供システム10は、原稿の画像データを処理方法に基づいて処理する。例えば、処理方法で指定されたフォルダに配信したり、電子メールで通知したりする。
このように、印刷時と読取時に共通の処理方法記憶部13を参照して、印刷のワークフローと読取のワークフローを連携させるので、ワークフローを拡張したい場合も処理方法を修正するだけで対応できる。管理者が処理方法を設定することで、ワークフローを変更できる。処理方法記憶部13には「ID:原稿種別:処理方法」を設定すればよいので、ワークフローを容易に拡張できる。
ユーザが原稿を選択すれば、原稿種別に応じた処理方法で画像データを処理できる。印刷のワークフロー及び読取のワークフローそのものを変更しなくても、ユーザが選んだ原稿に応じてワークフローを拡張できる。
<用語について>
出力データとは機器が出力するデータであり、出力の形態は単なる表示でも印刷でもよい。印刷した場合、出力データを画像データといい、表示した場合は表示データという。
処理方法は、入力データをどのように処理するかに関する情報である。例えば、配信先、通知先、送信先、などが指定されうる。
出力データの種別は、個別の出力データであり、出力データは同じでも異なる種別が付されていてよい。本実施形態では原稿種別という用語で説明される。
出力データに基づく入力データは、出力データが含まれていると認識可能なデータであればよい。例えば、出力データをそのまま含むデータ、出力データに文字等が追加されているデータ、出力データが加工されているデータなどがある。
ワークフローの拡張とは既存のワークフローと異なる処理を行うことであり、ワークフローの変更と称してもよいし、異なる処理を行うワークフローを追加すると称してもよい。
<システム構成例>
図2は、情報処理システム1の一例の構成図である。図2に示される情報処理システム1は、サービス提供環境E1、ユーザ環境E2、及び外部システム30を含み、インターネット等の広域的なネットワークN1を介して通信可能に接続されている。
サービス提供環境E1は、ネットワークを介してクラウドサービス等の外部サービスを提供するシステム環境である。なお、本実施形態では、外部サービスの具体例としてクラウドサービスを採用して説明するが、ASP(Application Service Provider)によって提供されるサービスやWebサービス等、ネットワークを介して提供されるサービスに関して本実施の形態が適用されてもよい。
サービス提供環境E1は、一台以上の情報処理装置で実現されるサービス提供システム10を有する。サービス提供システム10は、ネットワークを介して所定のサービスを提供する。例えば、サービス提供システム10は、ユーザ環境E2の機器20において原稿をスキャンして生成された電子ファイルを、OCR(Optical Character Reader)処理して、外部システム30に保存するサービス(スキャン配信サービス)を提供する。また、例えば、サービス提供システム10は、外部システム30に保存されている電子ファイルを、ユーザ環境E2の機器20で印刷するサービス(クラウドプリントサービス)を提供する。本実施形態では、サービス提供システム10は、このようなスキャン配信サービス及びクラウドプリントサービスを提供するものとして説明する。
ただし、サービス提供システム10により提供されるサービスは、これらに限られず、例えば、外部システム30に保存されている電子ファイルを、ユーザ環境E2のプロジェクタで投影するサービス等であってもよい。また、機器20において原稿をスキャンして生成された電子ファイルを、OCR処理した後、所定の言語に翻訳(例えば、英語から日本語に翻訳)して、外部システム30に保存するサービス等であってもよい。
なお、サービス提供システム10の全部又は一部は、ユーザ環境E2に設置されていてもよい。すなわち、サービス提供システム10を構成する情報処理装置の全部又は一部は、ユーザ環境E2に包含されていてもよい。
ユーザ環境E2は、例えば機器20を使用するユーザである企業等におけるシステム環境である。ユーザ環境E2では、一台以上の機器20、第一の端末装置50及び第二の端末装置60が例えばLAN(Local Area Network)等のネットワークを介して接続されている。
本実施形態に係る機器20は、プリンタ機能及びスキャナ機能を有する画像形成装置である。なお、機器20は、プリンタ機能及びスキャナ機能以外に、コピー機能やファクス(FAX)通信機能等を備える複合機等でもよい。なお、以降では、複数の機器20について、各々を区別するときは、「機器201」、「機器202」等と添え字を用いて記載する。
機器20は、プリンタ機能を有する装置と、スキャナ機能を有する装置とが別体でもよい。機器20がプリンタ機能及びスキャナ機能を有しているとしても、印刷する機器20とスキャンする機器20が異なっていてよい。また機器20は後述のようにブラウザを備え、ブラウザはサービス提供システム10等の提供する各種サービスのワークフローを構成する、Webアプリケーションの表示や処理、処理の実行指示等を行うことができる。なお、機器20は専用アプリケーションがインストールされ、専用アプリケーションとWebアプリケーションとが連携することによって同様の処理を実行してもよい。その場合、専用アプリケーションで、Webアプリケーションの処理の一部を分担して行ってもよい。
第一の端末装置50は管理者が操作するスマートフォンや携帯電話、タブレットPC、デスクトップPC、ノートPC、等の情報処理装置である。第一の端末装置50には、Webブラウザなどの画面表示機能を有するプログラムが搭載されている。このプログラムはサービス提供システム10から受信した画面情報を画面として表示する機能を有していればよくWebブラウザに限られない。サービス提供システム10に専用のプログラムでもよい。なお複数人の管理者が異なる第一の端末装置50を用いて、それぞれで操作を行ってもよい。
第二の端末装置60は、一般ユーザが利用するスマートフォンや携帯電話、タブレットPC、デスクトップPC、ノートPC、等の情報処理装置である。第二の端末装置60には、Webブラウザなどの画面表示機能を有するプログラムが搭載されている。このプログラムはサービス提供システム10から受信した画面情報を画面として表示する機能を有していればよくWebブラウザに限られない。サービス提供システム10に専用のプログラムでもよい。なお複数人のユーザが異なる第二の端末装置60を用いて、それぞれで操作を行ってもよい。
外部システム30は、企業の基幹システム、又は、外部の会社が提供するシステムなどである。外部システム30は、一例として、ネットワークを介してストレージサービス(又はオンラインストレージ)と呼ばれるクラウドサービスを提供するコンピュータシステムである。ストレージサービスとは、外部システム30のストレージの記憶領域を貸し出すサービスである。本実施形態では、スキャン配信サービスにおいて、外部システム30によって貸し出される記憶領域に、OCR処理された電子ファイルを保存(アップロード)する。また、本実施形態では、クラウドプリントサービスにおいて、外部システム30によって貸し出される記憶領域から印刷対象となる電子ファイルを取得(ダウンロード)する。なお、以降では、複数の外部システム30について、各々を区別するときは、「外部システム301」、「外部システム302」等と添え字を用いて記載する。また、外部システム301によって提供されるサービスの名称を「ストレージサービスA」、外部システム302によって提供されるサービスの名称を「ストレージサービスB」等とする。
なお、外部システム30は、複数台の情報処理装置によって実現されるシステムであってもよい。また、図2に示される情報処理システム1の構成は一例であって、他の構成であってもよい。例えば、上記したように、ユーザ環境E2は、機器20に加えて又は機器20に代えて、プロジェクタ、電子黒板等の各種機器を有していてもよい。
<ハードウェア構成>
<<サービス提供システム>>
図3は、サービス提供システムのハードウェア構成図である。図3に示されているように、サービス提供システムは、コンピュータによって構築されており、図3に示されているように、CPU501、ROM502、RAM503、HD504、HDD(Hard Disk Drive)コントローラ505、ディスプレイ506、外部機器接続I/F(Interface)508、ネットワークI/F509、バスライン510、キーボード511、ポインティングデバイス512、DVD−RW(Digital Versatile Disk Rewritable)ドライブ514、メディアI/F516を備えている。
これらのうち、CPU501は、サービス提供システム全体の動作を制御する。ROM502は、IPL等のCPU501の駆動に用いられるプログラムを記憶する。RAM503は、CPU501のワークエリアとして使用される。HD504は、プログラム等の各種データを記憶する。HDDコントローラ505は、CPU501の制御にしたがってHD504に対する各種データの読み出し又は書き込みを制御する。ディスプレイ506は、カーソル、メニュー、ウィンドウ、文字、又は画像などの各種情報を表示する。外部機器接続I/F508は、各種の外部機器を接続するためのインターフェースである。この場合の外部機器は、例えば、USB(Universal Serial Bus)メモリやプリンタ等である。ネットワークI/F509は、通信ネットワーク100を利用してデータ通信をするためのインターフェースである。バスライン510は、図3に示されているCPU501等の各構成要素を電気的に接続するためのアドレスバスやデータバス等である。
また、キーボード511は、文字、数値、各種指示などの入力のための複数のキーを備えた入力手段の一種である。ポインティングデバイス512は、各種指示の選択や実行、処理対象の選択、カーソルの移動などを行う入力手段の一種である。DVD−RWドライブ514は、着脱可能な記録媒体の一例としてのDVD−RW513に対する各種データの読み出し又は書き込みを制御する。なお、DVD−RWに限らず、DVD−R等であってもよい。メディアI/F516は、フラッシュメモリ等の記録メディア515に対するデータの読み出し又は書き込み(記憶)を制御する。
<<機器>>
図4は、機器のハードウェア構成図である。図4に示されているように、機器は、コントローラ910、近距離通信回路920、エンジン制御部930、操作パネル940、ネットワークI/F950を備えている。なお、機器20のハードウェア構成は、図4に示す構成に限定されない。例えば、操作パネル940はASIC906ではなく、SB104に接続される構成であってもよい。
これらのうち、コントローラ910は、コンピュータの主要部であるCPU901、システムメモリ(MEM−P)902、ノースブリッジ(NB)903、サウスブリッジ(SB)904、ASIC(Application Specific Integrated Circuit)906、記憶部であるローカルメモリ(MEM−C)907、HDDコントローラ908、及び、記憶部であるHD909を有し、NB903とASIC906との間をAGP(Accelerated Graphics Port)バス921で接続した構成となっている。ただし、コントローラ910の構成はこれに限定されない。例えば、CPU901、NB903、SB904などの2以上の構成要素をSoC(System on Chip)によって実現してもよい。この場合、SoCとASIC906との間をPCI−express(登録商標) バスで接続してもよい。
これらのうち、CPU901は、機器20の全体制御を行う制御部である。NB903は、CPU901と、MEM−P902、SB904、及びAGPバス921とを接続するためのブリッジであり、MEM−P902に対する読み書きなどを制御するメモリコントローラと、PCI(Peripheral Component Interconnect)マスタ及びAGPターゲットとを有する。
MEM−P902は、コントローラ910の各機能を実現させるプログラムやデータの格納用メモリであるROM902a、プログラムやデータの展開、及びメモリ印刷時の描画用メモリなどとして用いるRAM902bとからなる。なお、RAM902bに記憶されているプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、CD−R、DVD等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
SB904は、NB903とPCIデバイス、周辺デバイスとを接続するためのブリッジである。ASIC906は、画像処理用のハードウェア要素を有する画像処理用途向けのIC(Integrated Circuit)であり、AGPバス921、PCIバス922、HDDコントローラ908及びMEM−C907をそれぞれ接続するブリッジの役割を有する。このASIC906は、PCIターゲット及びAGPマスタ、ASIC906の中核をなすアービタ(ARB)、MEM−C907を制御するメモリコントローラ、ハードウェアロジックなどにより画像データの回転などを行う複数のDMAC(Direct Memory Access Controller)、並びに、スキャナ部931及びプリンタ部932との間でPCIバス922を介したデータ転送を行うPCIユニットとからなる。なお、ASIC906には、USB(Universal Serial Bus)のインターフェースや、IEEE1394(Institute of Electrical and Electronics Engineers 1394)のインターフェースを接続するようにしてもよい。
MEM−C907は、コピー用画像バッファ及び符号バッファとして用いるローカルメモリである。HD909は、画像データの蓄積、印刷時に用いるフォントデータの蓄積、フォームの蓄積を行うためのストレージである。HD909は、CPU901の制御にしたがってHD909に対するデータの読出又は書込を制御する。AGPバス921は、グラフィック処理を高速化するために提案されたグラフィックスアクセラレータカード用のバスインタフェースであり、MEM−P902に高スループットで直接アクセスすることにより、グラフィックスアクセラレータカードを高速にすることができる。ただし、MEM−C107は搭載されていなくても良い。
また、近距離通信回路920には、近距離通信回路920aが備わっている。近距離通信回路920は、NFC、Bluetooth(登録商標)等の通信回路である。
更に、エンジン制御部930は、スキャナ部931及びプリンタ部932によって構成されている。また、操作パネル940は、現在の設定値や選択画面等を表示させ、操作者からの入力を受け付けるタッチパネル等のパネル表示処理部21940a、並びに、濃度の設定条件などの画像形成に関する条件の設定値を受け付けるテンキー及びコピー開始指示を受け付けるスタートキー等からなるハードキー940bを備えている。コントローラ910は、機器20全体の制御を行い、例えば、描画、通信、操作パネル940からの入力等を制御する。スキャナ部931又はプリンタ部932には、誤差拡散やガンマ変換などの画像処理部分が含まれている。
なお、機器20は、操作パネル940のアプリケーション切り替えキーにより、ドキュメントボックス機能、コピー機能、プリンタ機能、及び、ファクシミリ機能を順次に切り替えて選択することが可能となる。ドキュメントボックス機能の選択時にはドキュメントボックスモードとなり、コピー機能の選択時にはコピーモードとなり、プリンタ機能の選択時にはプリンタモードとなり、ファクシミリモードの選択時にはファクシミリモードとなる。操作パネル940は、各種情報を表示するLCDや動作状態を点灯/消灯により表示するLEDといった表示処理部21及びタッチパネルやハードキースイッチを有する入力部等を備えている。なお、操作パネル940はタッチパネルを備える場合にはハードキースイッチはなくてもよい。
また、ネットワークI/F950は、通信ネットワーク100を利用してデータ通信をするためのインターフェースである。近距離通信回路920及びネットワークI/F950は、PCIバス922を介して、ASIC906に電気的に接続されている。
<機能について>
図5は、サービス提供システム10と機器20の機能をブロック状に示す機能ブロック図の一例である。
<<機器>>
機器20は、表示処理部21、操作受付部22、出力部23、入力部24、通信部25、及び、認証部26を有している。機器20が有するこれら各機能は、図4に示されている各構成要素のいずれかが、HD909からRAM902b上に展開されたプログラムに従ったCPU901からの命令によって動作することで実現される機能又は手段である。このプログラムは所定のサーバからダウンロードされ、機器20にインストールされている。
表示処理部21は、ユーザが操作する画面を操作パネル940に表示する。例えば、ワークフローを起動するボタン、原稿種別のリスト、操作を案内するメッセージ、印刷設定、及び、読取設定などを表示する。
操作受付部22は、機器20に対する操作を受け付ける。例えば、起動するワークフローの選択、ワークフローに使用する原稿種別などを受け付ける。
出力部23は、サービス提供システム10から送信された印刷データを印刷する。印刷することを出力するという場合がある。印刷データはサービス提供システム10でPDL(Printer Description Language)に変換されてもよいし、機器20が変換してもよい。
入力部24は、用紙などのシート材である原稿を光学的に読み取って画像データを作成する。読み取ることをスキャンともいい、画像データをスキャンデータという場合がある。原稿は2ページ以上でもよい。
通信部25(第二の通信部の一例)は、機器20をネットワークに接続して、各種の情報を送受信する。例えば、印刷データをサービス提供システム10から受信し、原稿を読み取って生成した画像データをサービス提供システム10に送信する。
認証部26は、ユーザを認証する。認証とはユーザが正当な権限者か否かを判断することをいう。本実施例の場合は、サービス提供システム10を使用する権限があるかどうかである。なお、認証が成功するとユーザは機器20にログインする。ログインとは、コンピュータやインターネット上の様々なサービスを利用する際に、予め登録しておいたアカウント情報を用いてシステムのリソースにアクセスする認証行為をいう。アカウント情報は、ユーザIDとパスワード、ICカードの番号、生体認証情報などである。
<<第一の端末装置>>
第一の端末装置50は第一通信部51、第一表示制御部52、及び、第一操作受付部53を有している。第一の端末装置50はプログラム(例えばWebブラウザ)を実行することで、図5に示すような機能ブロックを実現する。
第一通信部51はサービス提供システム10と通信して、設定画面などの画面を第一の端末装置50が表示するための画面情報を受信する。また、管理者が各画面に入力した情報をサービス提供システム10に送信する。
第一表示制御部52はサービス提供システム10から受信した画面の画面情報を解析してディスプレイ506に表示する。第一操作受付部53は第一の端末装置50に対する管理者の操作(例えば各画面への入力)を受け付ける。
<<第二の端末装置>>
第二の端末装置60は第二通信部61、第二表示制御部62、及び、第二操作受付部63を有している。第二の端末装置60はプログラム(例えばWebブラウザ)を実行することで、図5に示すような機能ブロックを実現する。
第二通信部61はサービス提供システム10と通信して、申請書などの画像データを表示するための画面情報を受信する。また、処理担当が各画面に入力した情報をサービス提供システム10に送信する。
第二表示制御部62はサービス提供システム10から受信した画面の画面情報を解析してディスプレイ506に表示する。第二操作受付部63は第二の端末装置60に対する取引担当の操作(例えば各画面への入力)を受け付ける。
<<サービス提供システム>>
サービス提供システム10は、印刷ワークフロー処理部14、読取ワークフロー処理部15、通信部16、認証管理部17、及び、設定部18を有している。サービス提供システム10が有する各機能は、図3に示されている各構成要素のいずれかが、HD504からRAM503上に展開されたプログラムに従ったCPU501からの命令によって動作することで実現される機能又は手段である。
印刷ワークフロー処理部14は、印刷のワークフローの実行を制御する。例えば、原稿の印刷データに画像コードを形成して機器20に送信する。読取ワークフロー処理部15は、読取のワークフローの実行を制御する。例えば、機器20が送信した画像データを解析して画像コードを復号し、読取のワークフローの処理方法を決定する。
なお、印刷ワークフロー処理部14及び読取ワークフロー処理部15は企業の基幹システムと連携してワークフローを実行したり、外部(他社など)が提供するシステムと連携してワークフローを実行したりしてもよい。
通信部16(第一の通信部の一例)は、サービス提供システム10をネットワークに接続して、各種の情報を送受信する。例えば、ユーザが選択した原稿の印刷データを機器20に送信し、画像データを機器20から受信する。また、外部システムに画像データを送信して処理を依頼する。また、第一の端末装置50からアプリの設定に関する情報を受信し、第二の端末装置60から申請書の処理に関する情報を送受信する。
認証管理部17は、認証に関する制御を行う。例えば、企業ごとに、
・登録済みのユーザ、管理者、機器の情報
・契約(利用)しているアプリ
・契約アプリのライセンス情報
等を管理している。これらと機器20、第一の端末装置50又は第二の端末装置60から送信された情報を元に利用権限の有無を認証する。認証管理部17は各種ワークフローを構成するWebアプリケーションや次の設定部18を、各機器や端末装置から利用する際に、認証や利用権限判定、情報管理等のサービスを提供する、認証管理基盤として機能する。
設定部18は後述する申請書類印刷サービス601(印刷のワークフローに相当)、及び、簡単申請サービス602(読取のワークフローに相当)に関する設定を第一の端末装置50から受け付ける。設定部18は、第一の端末装置50又は第二の端末装置60がWebブラウザでアクセスできるWebサーバ(設定サイト)である。設定部18は外部システム30のアカウント情報の入力と、印刷のワークフロー及び読取のワークフローが実行される際に参照する参照先として処理方法記憶部、印刷データ記憶部、読取データ記憶部を指定する設定と、を受け付ける。設定部18は各種ワークフローを構成するWebアプリケーションの一部を形成していてもよい。企業で各種ワークフローのWebアプリを契約して利用開始すれば、対応する設定部18(設定サイト)も利用可能となる。
また、サービス提供システム10は、図3に示されているHD504、RAM503又はROM502の1つ以上により実現される記憶部19を有している。記憶部19には、印刷データ記憶部11、読取データ記憶部12、及び、処理方法記憶部13が構築されている。
記憶部19にある印刷データ記憶部11、読取データ記憶部12、及び、処理方法記憶部13は、サービス提供システム10が保持していなくてもよい。例えば、クラウド上にあればよく、図2に示した外部システム30にあってもよい。民間又は公的なストレージサービス(例えば、Google Drive(登録商標)、One Drive(登録商標)等のクラウドストレージサービス)を利用できる。また、記憶部19にある印刷データ記憶部11、読取データ記憶部12、及び、処理方法記憶部13は、クラウド上でなくオンプレミスに存在してもよい。また、印刷データ記憶部11、読取データ記憶部12、処理方法記憶部13は全て同じクラウドストレージサービスの、それぞれ別のフォルダにもうけられてもよいし、同じフォルダ内に設けられてもよい。また、異なる複数のクラウドストレージサービス(外部システム301、301・・)に設けられてもよい。
印刷データ記憶部11には、機器20が印刷する印刷データが記憶されている。印刷データは、PDF(Portable Document Format)や各種のアプリケーションソフトが作成したファイルである。
読取データ記憶部12は配信先のフォルダに相当し、機器20で読み取って生成した画像データ(読取データ)が記憶される。
処理方法記憶部13には、上記のように「ID:原稿種別:処理方法」が対応付けられている。IDは上記の通り原稿種別又は原稿を識別する識別情報である。なお、処理方法記憶部13はファイルを記憶するフォルダなどでもよいし、データベースでもよい。処理方法記憶部13に記憶されている処理方法情報の一例を表1に示す。
表1は処理方法記憶部13に記憶されている処理方法情報の一例を示す。処理方法情報は、原稿種別ごとの処理方法(送り先フォルダ、通知先等)を指定する。例えば、請求書の場合は、スキャンしたデータの送り先フォルダは「/seikyuuフォルダ以下」であり、同時に「aaa@bb.cc」に電子メールで通知するということを表している。表1に示す以外に処理方法があってもよく、処理方法は1つでもよく、処理方法は2つに限られない。例えば、FAX(電話回線タイプでもインターネットファクスでもよい)の送り先などの項目があってもよい。
同じ原稿種別でも用途や使用時期によって、異なる処理方法が対応付けられていてよい。例えば申請月によって保存先フォルダを切り替えることができる。このような処理に対応するためには、処理方法記憶部13上で同じ原稿種別であっても管理者が異なるIDを登録することで、原稿種別が同じでも原稿によって異なるIDにそれぞれの処理方法を定義することで実現できる。
原稿種別の項目は印刷のワークフローで使用され、処理方法は読取のワークフローで使用され、IDは両方で使用される。したがって、IDにより印刷のワークフローと読取のワークフローを連携できる。
管理者は印刷データ記憶部11に新しい処理方法情報を追加したり、古い処理方法情報を削除したり編集したりする。管理者はID、原稿を識別する情報(例えばファイル名)、そして、処理方法を任意に設定できる。処理方法情報の態様としては、例えば表計算ファイルでもよいし、CSV(comma−separated values)、XML、JSONでもよい。単純に、「ID、 原稿種別、処理方法」が記載されたテキストファイルでもよい。また、管理者がデータベース形式で登録する場合、PC(Personal Computer)で動作するデータベースクライアントを操作して「ID、 原稿種別、処理方法」を登録する。
処理方法記憶部13のURLは、印刷ワークフロー処理部14と読取ワークフロー処理部15にとって既知である。必要なら、管理者が印刷ワークフロー処理部14と読取ワークフロー処理部15に該URLを設定する。これにより、印刷ワークフロー処理部14と読取ワークフロー処理部15は処理方法記憶部13を参照して、それぞれワークフローを実行できる。
<ワークフローの一例>
図6は、ワークフローの一例を説明する図である。図6(a)は印刷のワークフローの一例を示し、図6(b)は読取のワークフローの一例を示す。
印刷のワークフローは、「原稿をクラウドBからダウンロード」「画像コードを付与」「印刷」の一連の処理を順番に実行するものである。読取のワークフローは「画像にOCRをかける」「画像をクラウドAに送る」「メールを送る」の一連の処理を順番に実行するものである。
ワークフローの設定方法については後述する(実施例7参照)。管理者は事前にワークフローを設定することができる。本実施形態ではプログラムレスかつユーザサイドで構築できる。例えば、図6の各処理をGUI(Graphical User Interface)で組み合わせる(つなげる)ことでワークフローを設定できる。図6(b)の例では、「画像にOCRをかける機能」「画像をクラウドAに送る機能」「メールを送る機能」を事前に用意しておいて、図6(b)のようにつなげることで、プログラムレスで1つのワークフローを設定できる。
なお、ワークフローの各処理はサービス提供システム10内で完結する処理だけでなく、外部システムへ処理を委譲するケースがあってもよい。この場合は、サービス提供システム10は、外部システムのWeb API(Application Programming Interface)を介して処理を委譲する。Web APIには厳格な定義はないが、HTTPなどのプロトコルを用いてネットワーク越しに呼び出すアプリケーション間、システム間のインターフェースである。
<印刷のワークフロー、読取のワークフローの設定>
図7は、印刷のワークフローの設定画面300の一例である。管理者は第一の端末装置50を操作してサービス提供システム10に接続させ、第一の端末装置50に図7の画面を表示させる。
印刷のワークフローの設定画面300は、ストレージアカウント設定欄301、印刷データ保管先設定欄302、処理方法保管先設定欄303、印刷設定欄304、及び、画像コード付加方法設定欄306、を有している。
・ストレージアカウント設定欄301…サービス提供システム10がストレージ(クラウドストレージサービス)にアクセスするためのユーザのアカウント情報を管理者が選択する欄である。アカウント情報は例えば、ユーザID(メールアドレス)及びパスワードである。図7ではユーザのリストがプルダウン表示され、管理者がユーザを選択するとアカウント情報も設定される。
・印刷データ保管先設定欄302…印刷データの保管先(例えば印刷データ記憶部11)のフォルダのパス情報を管理者が設定する欄である。例えば、「/storage/print_data/」などが設定される。後述する図11のステップS14のファイル名一覧の取得、及び、ステップS20の印刷データ取得、の取得先等となる。
・処理方法保管先設定欄303…処理方法の保管先(例えば処理方法記憶部13)のフォルダのパス情報を管理者が設定する欄である。例えば「/storage/process_data/」などが設定される。後述の図11のステップS21のID取得、及び、図16のステップS42のIDに対応する処理方法、の取得先等となる。
なお、利用するストレージによってAPIや接続方法が異なるため、Webアプリ(ワークフローアプリ)やパッケージごとに1つが固定で設定されている。ただし、複数のストレージを切り替え可能であってもよい。
・印刷設定欄304…全ての印刷データの出力時の、機器20(例えば画像形成装置)における設定値が入力される。設定値は管理者が固定できる。+ボタン305で設定項目が追加されるため、複数入力可能である。設定項目には以下のようなものがある。
サイズ:A4/A3
カラー:モノクロ/カラー/二色
後処理:パンチ/ステープル 等
処理方法の情報を付加して印刷する(送付先・処理担当・原稿の取り扱い)
・画像コード付加方法設定欄306…利用する処理方法(コード化する情報)の選択として、管理者が利用できる。+ボタン307の押下で以下の設定項目からいずれかを選択できる。
原稿の識別情報を画像コードとして付加
ログインしているユーザの識別情報を画像コードとして付加
原稿の識別情報と、ユーザの識別情報の両方を画像コードとして付加
画像コードを付加しない
図8は、読取のワークフローの設定画面310の一例である。管理者は第一の端末装置50を操作してサービス提供システムに接続させ、第一の端末装置50に図8の画面を表示させる。
読取のワークフローの設定画面310は、ストレージアカウント設定欄311、処理方法保管先設定欄312、読取データ保管先設定欄313、読取設定欄314、及び、処理方法の選択欄316、を有している。
・ストレージアカウント設定欄311…図7の印刷のワークフローの設定画面300のストレージアカウント設定欄301と同様である。
・処理方法保管先設定欄312…処理方法の保管先(例えば処理方法記憶部13)のフォルダのパス情報を管理者が設定する欄である。例えば、「/storage/process_data/」が設定される。ここに印刷のワークフロー(申請書類印刷サービス601)の設定が入っていればサービス提供システムが参照して設定内容に従う。
・読取データ保管先設定欄313…機器20(例えば画像形成装置)が申請書を読み取って生成した画像データの保管先(例えば読取データ記憶部12)のフォルダのパス情報を管理者が設定する欄である。例えば「/storage/scan_data/seikyuu」などが設定される。処理方法保管先設定欄312が設定されていれば読取データ保管先設定欄313は設定されていなくてもよい。
なお、「読取データ保管先設定欄が設定されない場合、処理方法保管先設定欄に設定された保管先又は送付先が参照される」「処理方法に加えて、全ての画像データが1つの保管先にも保管される。」「処理方法は適用せずに、強制的に全ての画像データを1つの保管先にも保管する」、などを管理者が選択できてもよい。
・読取設定欄314…申請書の読取り時における機器20(例えば画像形成装置)の設定値を管理者が設定する欄である。管理者が固定できる。+ボタン315の押下が設定項目を追加できるので、管理者は複数の設定項目を入力できる。
サイズ:A4/A3
カラー:モノクロ/カラー/二色
解像度:200dpi/300dpi/400dpi 等
・処理方法の選択欄316…+ボタン317の押下でいずれかを管理者が選択する。
「原稿の識別情報に対応する処理を行う」
「ログインしているユーザの識別情報に対応する処理を行う」
「原稿の識別情報と、ユーザの識別情報の両方に対応する処理をともに行う。」
「印刷時(申請書類印刷サービス)の設定が入っていれば従う。」
「処理(送付)しない」
図9は、印刷のワークフロー、読取のワークフローの設定、読取のワークフローの実行、及び、申請書の確認の処理の流れを説明するシーケンス図の一例である。
S101:管理者が第一の端末装置50を操作してサービス提供システム10に接続させる。第一の端末装置50の第一表示制御部52がログイン画面を表示するので、管理者が認証情報を入力する。第一の端末装置50の第一操作受付部53は入力を受け付ける。
S102:第一の端末装置50の第一通信部51は認証情報をサービス提供システムに送信する。サービス提供システムの認証管理部17は認証情報で管理者を認証する。すなわち、管理者の権限があることを認証する。
S103:サービス提供システムの通信部16は認証チケットを第一の端末装置50に送信する。認証チケットはログインしたユーザと対応づけられており、誰がログインしたか、このユーザはどのような処理が可能かを示す。
S104:管理者は印刷のワークフロー又は読取のワークフローに関する設定を行うため、ワークフローを選択する。第一の端末装置50の第一操作受付部53は選択を受け付ける。
S105:第一の端末装置50の第一通信部51は選択したアプリの設定画面(図7、図8の画面)をサービス提供システムに要求する。
S106:サービス提供システムの通信部16はアプリの設定画面の要求を受信し、設定部18が設定画面の画面情報を第一の端末装置50に送信する。
S107:第一の端末装置50の第一通信部51が設定画面の画面情報を受信する。第一表示制御部52が印刷のワークフローの設定画面300又は読取のワークフローの設定画面310を表示するので、管理者が設定値を入力する。第一の端末装置50の第一操作受付部53は入力を受け付ける。
S108:第一の端末装置50の第一通信部51は設定値をサービス提供システム10に送信する。サービス提供システム10の通信部16は設定値を受信し、設定部18が設定値を記憶する。
S109:設定値を保存した旨(OK)が第一の端末装置50に送信される。
S110:管理者は処理方法を編集できる。管理者は、例えば、表計算ファイル又は処理方法が記載されているファイルなどを第一の端末装置50に表示させ、IDごとに処理方法を編集する。第一の端末装置50の第一操作受付部53は編集を受け付ける。編集された処理方法は外部システム30に保存される。
S111:処理方法を保存した旨(OK)が第一の端末装置50に送信される。
続いて、ユーザが機器20に赴いて読取のワークフローを実行する。印刷のワークフローについてはすでに実行されたものとする。
S112:機器20の通信部25は起動後、認証要求をサービス提供システム10に送信する。ユーザ又はデバイス識別情報が送信される。
S113:サービス提供システム10の認証管理部17はユーザ又は機器20を認証し、認証が成功した場合、利用権限ありを示す認証チケットを機器20に送信する。
S114:機器20の通信部25はユーザが選択したワークフローの実行要求をサービス提供システム10に送信する。例えば、機器20が申請書を読み取って生成した画像データが送信される。
S115:サービス提供システム10の通信部16はワークフローの実行要求を受信し、読取ワークフロー処理部15が読取のワークフローの設定値を設定部18から取得する。
S116:読取ワークフロー処理部15は設定値に基づいて処理方法の保管先(外部システム30)を特定し、編集後の処理方法情報を外部システム30から取得する。
S117:読取ワークフロー処理部15は処理方法情報に基づいて、通知先アドレスに画像データを送信する。例えば、取引担当宛に電子メールを送信する。
S118:また、読取ワークフロー処理部15は処理方法情報に基づいて、送信先フォルダに画像データを送信する(保存する)。
次に、申請書の処理担当が申請書を確認する。
S119:処理担当が第二の端末装置60を操作してサービス提供システム10に接続させる。第二の端末装置60には電子メール等で保存先(外部システム30のフォルダ)が通知されているので、処理担当は送信先のフォルダを開く操作を入力する。第二の端末装置60の第二操作受付部63は入力を受け付ける。
S120:第二の端末装置60の第二通信部61は送り先フォルダに接続する。
S121:これにより、第二の端末装置60の第二通信部61は送り先フォルダに保存されている画像データ(申請書等)の一覧を受信し、第二表示制御部62が表示できる。
S122:処理担当は所望の申請書等を選択すると、第二の端末装置60の第二通信部61が申請書の画像データを受信する。第二表示制御部62が画像データを表示することで処理担当は申請書等を確認できる。
<動作手順>
続いて、図10を用いて情報処理システム1の動作について説明する。まず、図10は、基本となる印刷と読取の全体の流れを示すシーケンス図である。
S1:ユーザは機器20に対し印刷指示を入力する。機器20の操作受付部22は印刷指示を受け付ける。
S2:機器20の通信部25は、サービス提供システム10から原稿の印刷データを取得する。
S3:機器20の出力部23は印刷データを印刷する。
S4:ユーザは印刷された原稿に必要事項を記入する。
S5:ユーザは、機器20に記入済みの原稿の読取指示を入力する。機器20の操作受付部22は読取指示を受け付ける。
S6:機器20の入力部24は原稿を光学的に読み取って画像データを生成する。
S7:機器20の通信部25は画像データをサービス提供システム10に送信する。
S8:サービス提供システム10の読取ワークフロー処理部15は、送信された画像データを解析して後述する原稿のIDを取得する。
S9:サービス提供システム10の読取ワークフロー処理部15は、解析したワークフローに基づいて画像データに図6(b)で説明したような一連の処理を施す。
以下では、図10のうち、印刷のワークフローと読取のワークフローの詳細をそれぞれ説明する。
<印刷のワークフローの処理>
図11は、印刷のワークフローにおいて、情報処理システム1が実行する処理を説明するシーケンス図の一例である。
S11:機器20は、例えばいくつかのアプリのリストが表示されたホーム画面を表示しており、ユーザは印刷のワークフローに対応したアプリを選択する。ホーム画面の一例を図12に示す。ユーザが印刷用画面を表示する操作を入力すると(アプリを選択すると)操作受付部22が受け付けて表示処理部21に通知する。このアプリが表示する画面を印刷用画面という。
S12:表示処理部21は、通信部25に印刷用画面の取得要求を送信する。
S13:通信部25は、印刷用画面の取得要求をサービス提供システム10に送信する。サービス提供システム10の通信部16は印刷用画面の取得要求を受信する。
S14:印刷ワークフロー処理部14は印刷用画面の画面情報を生成するため、原稿のファイル名を印刷データ記憶部11に要求する。ファイル名に限らず、原稿を特定できる情報であればよい。処理方法記憶部13から原稿を特定できる情報を取得してよい。印刷ワークフロー処理部14は印刷データ記憶部11に記憶されている原稿のリストを取得する。
印刷ワークフロー処理部14は通信部16を介して、原稿のファイル名を機器20に送信する。なお、印刷ワークフロー処理部14は単に原稿のファイル名を機器20に送信してもよいし、Webサーバとして原稿のファイル名(又は原稿名などのユーザが認知している名称)を表示する画面情報を機器20に送信してもよい。画面情報とは、HTML、XML、スクリプト言語、及びCSS(cascading style sheet)等で記述されており、主にブラウザソフトが解析して表示する情報である。
S15:機器20の通信部25は原稿のファイル名又は画面情報を受信し、表示処理部21に印刷用画面取得結果(原稿のファイル名又は画面情報)を送信する。
S16:表示処理部21は原稿のファイル名又は画面情報に基づいて、印刷用画面を操作パネル940に表示する。印刷用画面の一例を図13に示す。印刷用画面では、どの原稿を印刷するかをユーザが選択する。その際、図13(a)のように印刷データ記憶部11の中身を直接表示して選択させる印刷用画面でもよいし、図13(b)のように原稿を選択式に選択させる印刷用画面でもよい。どちらを画面であっても以後のシーケンスで選択した原稿に応じた原稿種別が指定される。
S17:ユーザは印刷用画面において印刷する原稿を選択する。操作受付部22は選択に応じて原稿種別を受け付けて表示処理部21に原稿種別を通知する。原稿種別は印刷データを特定する情報であればよい。例えば、ファイル名、印刷データ記憶部11内の識別番号などでよい。ファイル名や印刷データ記憶部11内の識別番号は、ステップS14で取得されている。
なお、ユーザが原稿を選択すると印刷用画面は印刷設定画面に遷移する。ユーザは印刷設定画面で原稿の印刷設定を行うことができる。印刷設定画面の一例を図14に示す。
S18:表示処理部21は、原稿種別を指定して通信部25に印刷データ取得要求を送信する。
S19:機器20の通信部25は、原稿種別を指定しサービス提供システム10に印刷データ取得要求を送信する。
S20:サービス提供システム10の通信部16は印刷データ取得要求を受信し、サービス提供システム10の印刷ワークフロー処理部14は、原稿種別を指定して原稿の印刷データを印刷データ記憶部11から取得する。
S21:サービス提供システム10の印刷ワークフロー処理部14は、原稿種別を指定してIDを処理方法記憶部13から取得する。表1の例だと、原稿種別が休暇届けの場合は「paper_id_003」というIDを取得する。
S22:印刷ワークフロー処理部14は印刷データを加工する。すなわち、IDを印刷データに付加する。付加の方法としては、直接文字列を付加してもいいし、画像コード(QRコード、二次元コード、バーコード等、特定の情報が埋め込まれた画像情報)を付加してもよいし、電子透かし・地紋などで付加してもよい。本実施形態では画像コードであるとして説明する。
S23:印刷ワークフロー処理部14は通信部16を介して、機器20に印刷データを送信する。
S24:機器20の通信部25は印刷データを受信し、表示処理部21に印刷データを返す。確認のために印刷データの文面を表示してもよい。
S25:表示処理部21は、印刷データを指定して出力部23に印刷要求を送信する。
S26:出力部23は、印刷を実行する。
以上により、印刷のワークフローが実行され、原稿種別のIDを含む画像コードが形成された所望の原稿の雛形が印刷される。
<印刷時の画面例>
図12はホーム画面600の一例を示す。ホーム画面600は、ユーザ操作の起点となる画面であり、起動後やログイン後に最初に表示される画面である。いくつかのアプリのリストが表示されており、その中の1つに印刷のワークフローに相当するアプリ、及び、読取のワークフローに相当するアプリがある。
例えば、申請書類印刷サービス601が印刷のワークフローに相当するアプリ(第一のアプリの一例)であり、簡単申請サービス602が読取のワークフローに相当するアプリ(第二のアプリの一例)である。申請書類印刷サービス601が選択されると、図13(a)又は図13(b)に示す印刷用画面610が表示される。
これらのワークフローのアプリは、操作パネル940にアプリマーケットサイトからユーザが入手できる。追加されたアプリはWebアプリへのリンクを有しており、ワークフロー作成手段によってクラウド上に作成構築されたWebアプリに、アクセスする。
図13は印刷用画面610の一例である。図13(a)は印刷データ記憶部11の中身を直接表示する印刷用画面610である。このため原稿のファイル名611がリストアップされている。ユーザはこの中から所望の原稿を選択できる。ユーザはファイル名611を押下することで原稿を選択できる。
図13(b)は原稿を選択式に選択させる印刷用画面610である。この印刷用画面610は、印刷ワークフロー処理部14又は機器20の表示処理部21が印刷データ記憶部11の情報から作成したものである。印刷用画面610は原稿のリスト612を表示している。図13(b)では原稿のリスト612がファイル名と同じであるが、ユーザに認知されている原稿の名称を表示できる。印刷データ記憶部11において、例えば、各原稿に識別番号を付加してファイル名と対応付けておけば、原稿のリスト612で表示する原稿の名称は任意でよい。ユーザはラジオボタン613を押下することで原稿を選択できる。
図13(a)又は図13(b)で印刷ボタン614が押下されると、表示処理部21は印刷設定画面を表示する。
図14は印刷設定画面620の一例を示す。印刷設定画面620はカラー/モノクロ621、倍率622、部数623、用紙624、両面/片面625、集約626などを設定するための画面である。ユーザがスタートボタン627を押下すると、選択した原稿の印刷が開始される(ステップS18以降が処理される)。
<原稿への記入例>
図15は、機器20が印刷した原稿の一例を示す。図15の原稿は休暇届を例にしたが原稿はどのようなものでもよい。図15(a)は原稿種別のIDを付加する前の休暇届であり、図15(b)は原稿種別のIDを含む画像コード9が形成された休暇届である。図15(b)では休暇届の右上に画像コード9が形成されている。画像コード9には原稿種別のID(例えば、paper_id=003)がエンコードされている。なお、画像コード9の形成位置はワークフローの設定の中で管理者が設定できる。ユーザは必要事項を記入して、読取のワークフローを実行する。
<読取のワークフローの処理>
図16は、読取のワークフローにおいて、情報処理システム1が実行する処理を説明するシーケンス図の一例である。
S31:同様に、ユーザはホーム画面600を表示させており、ユーザは読取のワークフローに対応したアプリ(簡単申請サービス602)を選択する。このアプリが表示する画面が読取用画面である。ユーザが読取用画面を表示する操作(簡単申請サービス602の押下)を入力すると操作受付部22が受け付けて表示処理部21に通知する。
S32:表示処理部21は、通信部25に読取用画面の取得要求を送信する。
S33:通信部25は、読取用画面の取得要求をサービス提供システム10に送信する。サービス提供システム10の通信部16は読取用画面の取得要求を受信する。読取ワークフロー処理部15は読取用画面の画面情報を機器20に送信する。読取用画面は所定のメッセージを表示する固定の画面でよい。
S34:機器20の通信部25は受信した読取用画面の画面情報を表示処理部21に送信する。
S35:表示処理部21は読取用画面の画面情報に基づいて、読取用画面を操作パネル940に表示する。読取用画面の一例を図17に示す。
S36:ユーザは読取用画面を参照して、原稿をADF等にセットして、記入した原稿の読取指示を機器20に入力する。操作受付部22は読取指示を受け付ける。
なお、ユーザが読取指示を入力すると読取用画面は読取設定・実行画面に遷移する。ユーザは読取設定・実行画面で読取条件を設定することができる。読取設定・実行画面の一例を図18に示す。
S37:表示処理部21は、読取条件を指定して入力部24に読取要求を送信する。
S38:入力部24は読取条件にしたがって原稿の読み取りを実行する。これにより原稿の画像データを生成する。
S39:入力部24は画像データの送信要求を通信部25に送信する。
S40:機器20の通信部25は画像データをサービス提供システム10に送信する。
S41:サービス提供システム10の通信部16は画像データを受信し、読取ワークフロー処理部15が画像コードの検出と、画像コードがあればその解析(デコード)を行う。これにより、原稿種別のIDが復元される。
S42:読取ワークフロー処理部15は原稿種別のIDを指定して、処理方法記憶部13から処理方法情報を取得する。ここでは処理方法を取得すればよい。画像コードから読み取った原稿種別のIDが「paper_id 003」の場合、処理方法は、データの保存先が「/kyuukaフォルダ以下」、通知先が「ccc@bb.cc」となる。
S43:読取ワークフロー処理部15は処理方法記憶部13に設定されているフォルダに画像データを保存する。図16ではフォルダが読取データ記憶部12にあるものとする。
S44:同様に、読取ワークフロー処理部15は処理方法記憶部13に設定されている外部システムに画像データを送信し、外部システムに応じた処理を要求する。表1の処理方法記憶部13の場合、「ccc@bb.cc」にメール通知をする処理である。この他、他の外部システムへ連携処理を要求してもよい。
S45:読取ワークフロー処理部15は処理結果を機器20に送信する。
S46:機器20の通信部25は処理結果を受信し、入力部24に処理結果を送信する。
S47:入力部24は処理結果を表示処理部21に送信する。
S48:表示処理部21は処理結果を含む読取・処理結果画面を操作パネル940に表示する。読取・処理結果画面の一例を図19に示す。
以上により、読取のワークフローが実行され、原稿が原稿種別に応じて決まったフォルダに送信されたり、外部システムで処理されたりする。
<読取時の画面例>
図17は読取用画面630の一例である。図17の読取用画面630へは、図12のホーム画面で簡単申請サービス602が選択されると遷移する。読取用画面630は「ADFに読取原稿をセットして読取ボタンを押下してください」というメッセージ631、及び、読取ボタン632を有している。読取ボタン632の押下により、読取用画面630は読取設定・実行画面640に遷移する。
図18は読取設定・実行画面640の一例である。読取設定・実行画面640では、白黒641、ファイル形式642、解像度643、原稿面644、読取サイズ645、ファイル名646、濃度647、原稿セット方向648、及び、送信者649を設定できる。スタートボタン640aが押下されると読取が開始される(ステップS37以降が処理される)。読取が完了すると読取・処理結果画面650に遷移する。
図19は読取・処理結果画面650の一例である。読取・処理結果画面650は「読み取ったデータの処理が完了しました」というメッセージ651と、原稿種別のIDと処理方法情報に基づいて画像データを処理した処理方法652が表示されている。処理方法652は例えば「001 請求書を読取ったため、経理課(/seikyuuフォルダ 及びaaa@bb.cc)に送信しました」である。「001」が原稿種別のIDである。また、「経理課」のような情報は処理方法記憶部13に予め設定してあるものとする。
<FAX送信が含まれる読取のワークフロー>
読取のワークフローにおいてFAX送信する処理が含まれている場合を補足する。なお、印刷のワークフローについては変更がない。
図20は、FAX送信を含む読取のワークフローの一例である。読取のワークフローは「画像にOCRをかける」「画像をクラウドAに送る」「メールを送る」「FAX送信」の一連の処理を順番に実行するものである。このようなワークフローも事前にプログラムレスに構築されている。
図21は、FAX送信を含むワークフローに対応した処理方法情報の一例である。IDに対応付けてFAX送信先が設定されている。FAX送信先は「なし」でもよい。
図22は、読取のワークフローにおいて、情報処理システム1が実行する処理を説明するシーケンス図の一例である。なお、図22の説明では主に図16との相違を説明する。図22のシーケンス図のステップS31〜S44は図16と同様でよい。
S44−2:読取ワークフロー処理部15はワークフローに基づいて、FAX送信を機器20に要求する。この場合、ステップS42で処理方法記憶部13から取得したFAX番号と画像データを機器20に送信する。
S44−3:機器20は電話回線に接続しFAX番号を指定して、画像データをFAXで送信する。なお、シーケンス図は簡略化して示した。以降の処理は図16と同様でよい。したがって、FAX送信においては原稿種別に応じてFAXの送信先を変更できる。なお、インターネットFAXの場合、FAX番号でなくメールアドレスで宛先が指定され、電子メールと同様に外部システムが送信する。
<まとめ>
以上説明したように、印刷時と読取時に共通の処理方法記憶部13を参照して、印刷のワークフローと読取のワークフローを連携させるので、ワークフローを拡張したい場合も処理方法を修正するだけで対応できる。管理者が処理方法を設定することで、ワークフローを変更できる。処理方法記憶部13には「ID:原稿種別:処理方法」を設定すればよいので、ワークフローを容易に拡張できる。
ユーザが原稿を選択すれば、原稿種別に応じた処理方法で画像データを処理できる。印刷のワークフロー及び読取のワークフローそのものを変更しなくても、ユーザが選んだ原稿に応じてワークフローを拡張できる。
なお、本実施例では、機器20がいったん原稿を出力したが、原稿を出力しなくてもよい。例えば、機器20が操作パネル940に表示した印刷データにユーザがハードキー940bで入力し、出力せずにサービス提供システム10に送信することができる。同じ操作は機器20がPCなどの情報処理装置であっても可能である。また、機器20(又はタブレットなど)に手書き入力が可能であれば、ユーザは原稿に手書きして出力せずにサービス提供システム10に送信することができる。
また、本実施例では、サービス提供システム10が記憶している原稿の印刷データを機器20が印刷したが、機器20が受信したFAXを印刷してもよい。FAXには原稿種別のIDが付加されており、FAXが読み取られると、IDに応じた処理方法でサービス提供システム10が処理できる。
本実施例では、印刷時にログインしたユーザに応じたワークフローを実行できる情報処理システム1について説明する。ログインしたユーザ別にワークフローを拡張できる。
本実施例においては、上記の実施例1にて説明した図3、図4のハードウェア構成図、及び、図5に示した機能ブロック図を援用できるものとし、主に相違点についてのみ説明する場合がある。
本実施例では処理方法記憶部13にユーザごとの処理方法情報が記憶されている。表2にユーザごとの処理方法情報を示す。
表2はユーザに関する処理方法情報の一例である。ユーザに関する処理方法情報には、印刷時にログインしたユーザに応じたワークフローの処理方法が設定されている。例えば、ユーザID「User_001」はAさんで、Aさんは上司「Dさん(ddd@bb.cc)」と庶務「Gさん(ggg@bb.cc)」に画像データを送信する。このような処理方法情報は管理者が個別に作成してもよいし、すでに存在している人事データベースなどを使用してもよい。
<印刷のワークフローの処理>
図23は、印刷のワークフローにおいて、情報処理システム1が実行する処理を説明するシーケンス図の一例である。なお、図23の説明では主に図11との相違を説明する。
S10:まず、本実施例ではユーザIDを特定するため、ユーザが機器20にログインする。認証画面の一例を図24に示す。ユーザはアカウント情報を機器20に入力し、操作受付部22が受け付けたアカウント情報に基づいて認証部26がユーザを認証する。認証部26は認証成功又は失敗を表示処理部21に通知する。ここでは認証が成功したものとし、ユーザ名が特定されたものとする。ユーザ名に限らずユーザを特定又は識別する情報であって処理方法記憶部13に登録されている情報が特定されればよい。以降のステップS11〜S17の処理は図11と同様でよい。
S18:表示処理部21は原稿種別とログインしたユーザのユーザ名を指定して、通信部25に印刷データ取得要求を送信する。
S19:通信部25は、原稿種別とユーザ名を指定しサービス提供システム10に印刷データ取得要求を送信する。
S20:サービス提供システム10の通信部16は原稿種別とユーザ名を受信し、サービス提供システム10の印刷ワークフロー処理部14は、原稿種別を指定して印刷データを印刷データ記憶部11から取得する。
S21:サービス提供システム10の印刷ワークフロー処理部14は、原稿種別を指定してIDを処理方法記憶部13から取得する。表1の例だと、原稿種別が休暇届けの場合は「paper_id 003」というIDを取得する。
S21−2:サービス提供システム10の印刷ワークフロー処理部14は、ユーザ名を指定してユーザIDを処理方法記憶部13から取得する。表2の例だと、ユーザ名が「Aさん」の場合は「User_001」というユーザIDを取得する。
S22:印刷ワークフロー処理部14は印刷データを加工する。すなわち、IDとユーザIDを印刷データに付加する。付加の方法は、図11と同様でよい。以降の処理は図11と同様になる。
以上により、印刷のワークフローが実行され、原稿種別のIDとユーザIDを含む画像コード9が形成された所望の原稿の雛形が印刷される。
<認証画面の一例>
図24は、認証画面660の一例を示す。図24(a)に示すように、認証画面660は、メールアドレス欄661、パスワード欄662、及び、ログインボタン663を有する。ホーム画面600で、申請書類印刷サービス601、又は、簡単申請サービス602が押下されると認証画面660に遷移する。
ユーザはメールアドレス欄661にメールアドレスを、パスワード欄662にパスワードを入力し、ログインボタン663を押下する。メールアドレスはユーザの識別情報の1つである。これにより、認証部26がアカウント情報(メールアドレスとパスワード)に基づいて認証成功又は失敗を判断する。認証が成功した場合、印刷用画面610又は読取用画面630が表示される。認証が失敗した場合、図24(b)に示すエラーメッセージ664が表示される。この場合、ユーザは再度、メールアドレスとパスワードを入力する。
<読取のワークフローの処理>
図25は、読取のワークフローにおいて、情報処理システム1が実行する処理を説明するシーケンス図の一例である。なお、図25の説明では主に図16との相違を説明する。まず、ステップS31〜S40の処理は図16と同様でよい。
S41:サービス提供システム10の通信部16は画像データを受信し、読取ワークフロー処理部15が画像コードの検出と、画像コードがあればその解析(デコード)を行う。これにより、原稿種別のIDとユーザIDが復元される。
S42:読取ワークフロー処理部15は原稿種別のIDとユーザIDを指定して、処理方法記憶部13から処理方法情報を取得する。ここでは処理方法を取得すればよい。画像コードから読み取った原稿種別のIDが「paper_id 003」の場合、処理方法は、データの保存先が「/kyuukaフォルダ以下」、通知先が「ccc@bb.cc」となる。ユーザIDが「User_001」の場合、処理方法は、通知先が「ddd@bb.cc」と「ggg@bb.cc」となる。
S43:読取ワークフロー処理部15は処理方法記憶部13に設定されているフォルダに画像データを保存する。図25ではフォルダが読取データ記憶部12にあるものとする。
S44:同様に、読取ワークフロー処理部15は処理方法記憶部13に設定されている外部システムに画像データを送信し、外部システムに応じた処理を要求する。表1の処理方法情報の場合、「ccc@bb.cc」「ddd@bb.cc」と「ggg@bb.cc」にメール通知をする処理である。この他、他の外部サービスへ連携処理を要求してもよい。以降の処理は図16と同様でよい。
以上により、読取のワークフローが実行され、原稿が原稿種別に応じて決まったフォルダに送信されたり、外部システムで処理されたりする。
<まとめ>
本実施例によれば、ログインしたユーザ別にワークフローを拡張できる。例えばユーザ別、ユーザに対応する上司別あるいは所属部署別に提出先を変えることができる。更に、実施例1の原稿種別のID毎の処理方法に加えてユーザ毎に上司や部署毎の処理方法を追加で実行することができ、例えば、書類の提出先を本社の管理部門(例:表1の送り先・通知先)に加えて、支社や事業所毎の提出先(例:表2の上司・庶務情報)を、提出先として追加することもできる。また、原稿種別のID毎の処理方法か、ユーザ毎やユーザ上司・所属部門毎の処理方法かの何れかをユーザや管理者に選択させて、処理を行ってもよい。
本実施例では、読取時にログインしたユーザに応じたワークフローを実行できる情報処理システム1について説明する。実施例2と同様に、ログインしたユーザ別にワークフローを拡張できるが、実施例2とログインするタイミングが異なっている。本実施例では読取時にユーザがログインをして、その時のユーザ情報を使って読取ワークフロー処理部15がワークフローを実行する。別の人が印刷しておいた原稿を任意のユーザが使用して、ユーザ別にワークフローを拡張できる。
本実施例においては、上記の実施例1にて説明した図3、図4のハードウェア構成図、及び、図5に示した機能ブロック図を援用できるものとし、主に相違点についてのみ説明する場合がある。本実施例の印刷のワークフローのシーケンス図は実施例1の図11と同様でよいため必要に応じて図11を参照する。また、ユーザごとの処理方法情報は表2と同じものとする。
<読取のワークフローの処理>
図26は、読取のワークフローにおいて、情報処理システム1が実行する処理を説明するシーケンス図の一例である。なお、図26の説明では主に図16との相違を説明する。
S30:読取時にユーザが機器20にログインする。ログインによりユーザ名が特定された。ユーザIDが特定されてもよい。ステップS31〜S36の処理は図16と同様でよい。
S37:表示処理部21は、読取条件とユーザ名を指定して入力部24に読取要求を送信する。
S38:入力部24は読取条件にしたがって原稿の読み取りを実行する。これにより原稿の画像データを生成する。
S39:入力部24は画像データとユーザ名の送信要求を通信部25に送信する。
S40:機器20の通信部25は画像データとユーザ名をサービス提供システム10に送信する。
S41:サービス提供システム10の通信部16は画像データを受信し、読取ワークフロー処理部15が画像コードの検出と、画像コードがあればその解析(デコード)を行う。これにより、原稿種別のIDが復元される。
S42:読取ワークフロー処理部15は原稿種別のIDとユーザ名を指定して、処理方法記憶部13から処理方法情報を取得する。ここでは処理方法を取得すればよい。画像コードから読み取った原稿種別のIDが「paper_id 003」の場合、処理方法は、データの保存先が「/kyuukaフォルダ以下」、通知先が「ccc@bb.cc」となる。ユーザ名が「Aさん」の場合、処理方法は、通知先が「ddd@bb.cc」と「ggg@bb.cc」となる。
S43:読取ワークフロー処理部15は処理方法記憶部13に設定されているフォルダに画像データを保存する。図26ではフォルダが読取データ記憶部12にあるものとする。
S44:同様に、読取ワークフロー処理部15は処理方法記憶部13に設定されている外部システムに画像データを送信し、外部システムに応じた処理を要求する。表1の処理方法記憶部13の場合、「ccc@bb.cc」「ddd@bb.cc」と「ggg@bb.cc」にメール通知をする処理である。この他、他の外部サービスへ連携処理を要求してもよい。以降の処理は図16と同様でよい。
以上により、読取のワークフローが実行され、原稿が原稿種別に応じて決まったフォルダに送信されたり、外部システムで処理されたりする。
<まとめ>
本実施例によれば、実施例1の効果に加えて、ログインしたユーザ別にワークフローを拡張できる。別の人が印刷しておいた原稿を任意のユーザが使用して、ユーザ別にワークフローを拡張できる。
<原稿にユーザIDが含まれ、更に読取時にユーザがログインする場合>
実施例2では印刷時に、実施例3では読取時にそれぞれログインしたが、印刷時と読取時の両方でユーザがログインしてもよい。この場合、読取時には、印刷時に原稿に形成されたユーザIDと読取時にログインで特定されたユーザ名により、それぞれワークフローの処理方法を特定できる。したがって、それぞれで異なるフォルダ名や通知先が得られ、サービス提供システム10はそれぞれに送信できる。
印刷時に原稿に形成されたユーザIDと読取時にログインで特定されたユーザ名のどちらか一方に対応付けられた処理方法をユーザが採用したい場合には、読取用画面630でユーザが設定するとよい。この場合、読取ワークフロー処理部15は、読取用画面630に印刷時のユーザとログインユーザのどちらを優先するかの選択を受け付けるラジオボタン等を表示する。
図27は、読取用画面630の一例である。図27の読取用画面630は、図12のホーム画面600で簡単申請サービスが選択されると遷移する。図27の読取用画面630には、図17のメッセージ631に加えて、「どちらかのユーザに対応付けられている処理方法を選択してください」というメッセージ633と共に、「原稿に埋め込まれたユーザ」634、「現在のユーザ」635、「両方」636が選択可能に表示されている。
したがって、ログインしたユーザは処理方法記憶部13においてどのユーザに対応付けられている処理方法を採用するかを読取時に選択できる。選択結果はサービス提供システム10に送信され、サービス提供システム10は選択結果に応じて処理方法を採用する。
本実施例では、読取時にワークフローの処理方法をユーザが選択できる情報処理システム1に付いて説明する。
本実施例においては、上記の実施例1にて説明した図3、図4のハードウェア構成図、及び、図5に示した機能ブロック図を援用できるものとし、主に相違点についてのみ説明する場合がある。本実施例の印刷のワークフローのシーケンス図は実施例1の図11と同様でよいため必要に応じて図11を参照する。
<ユーザごとの処理方法>
本実施例ではログインしたユーザごとに処理方法が登録されている。表3は本実施例の処理方法情報の一例である。
表3の処理方法情報には、ユーザIDとユーザ名に対応付けて送り先候補が登録されている。ログインしたユーザは送り先候補の中から送り先を選択できる。なお、送り先候補には画像データの配信先フォルダが設定されていてもよい。
<読取のワークフロー>
図28は、読取のワークフローにおいて、情報処理システム1が実行する処理を説明するシーケンス図の一例である。なお、図28の説明では主に図16との相違を説明する。
S30:読取時にユーザが機器20にログインする。ログインによりユーザ名が特定された。ユーザIDが特定されてもよい。
S31:ホーム画面600が表示されるので、ユーザは読取のワークフローに対応したアプリ(簡単申請サービス602)を選択する。
S32:表示処理部21は、ユーザ名と共に通信部25に読取用画面の取得要求を送信する。
S33:通信部25は、読取用画面630の取得要求をユーザ名と共にサービス提供システム10に送信する。サービス提供システム10の通信部16は読取用画面630の取得要求を受信する。
S33−2:読取ワークフロー処理部15はユーザ名に対応付けられた送り先候補を処理方法記憶部13から取得する。読取ワークフロー処理部15は通信部16を介して、読取用画面630の画面情報を機器20に送信する。本実施例では読取用画面630に送り先候補が表示されるため、読取ワークフロー処理部15は画面情報を作成する。
S34:機器20の通信部25は受信した読取用画面630の画面情報を表示処理部21に送信する。
S35:表示処理部21は読取用画面630の画面情報に基づいて、読取用画面630を操作パネル940に表示する。読取用画面630の一例を図29に示す。
S36:ユーザは読取用画面630を参照して、原稿をADF等にセットする。また、送り先候補から画像データを送信する宛先となる送り先を選択する。そして、記入した原稿の読取指示を機器20に入力する。操作受付部22は読取指示を受け付ける。この後、ユーザは図18に示した読取設定・実行画面で読取条件を設定する。
S37:表示処理部21は、読取条件と送り先選択結果を指定して入力部24に読取要求を送信する。
S38:入力部24は読取条件にしたがって原稿の読み取りを実行する。これにより原稿の画像データを生成する。
S39:入力部24は送り先選択結果と画像データの送信要求を通信部25に送信する。
S40:通信部25は送り先選択結果と画像データをサービス提供システム10に送信する。
S41:サービス提供システム10の通信部16は送り先選択結果と画像データを受信し、読取ワークフロー処理部15が画像コードの検出と、画像コードがあればその解析(デコード)を行う。これにより、原稿種別のIDが復元される。
S42:読取ワークフロー処理部15は原稿種別のIDを指定して、処理方法記憶部13から処理方法情報を取得する。ここでは処理方法を取得すればよい。画像コードから読み取った原稿種別のIDが「paper_id 003」の場合は、データの保存先が「/kyuukaフォルダ以下」、通知先が「ccc@bb.cc」となる。また、送り先選択結果が「Aさん」であれば、通知先は「aaa@b.cc」が取得される。
S43:読取ワークフロー処理部15は処理方法記憶部13に設定されているフォルダに画像データを保存する。図28ではフォルダが読取データ記憶部12にあるものとする。
S44:同様に、読取ワークフロー処理部15は、処理方法記憶部13に設定されている外部システムに画像データを送信し、外部システムに応じた処理を要求する。表1の処理方法記憶部13の場合、「ccc@bb.cc」にメール通知をする処理である。また、送り先選択結果に応じて「aaa@b.cc」にメールを通知する処理である。以降の処理は図16と同様でよい。
<読取用画面の一例>
図29は読取用画面630の一例である。図29の読取用画面630は、図17の読取用画面630のメッセージ631に加え、「メールを送るユーザを選択してください」というメッセージ637、及び、送り先候補638が表示されている。送り先候補638はログインしたユーザに応じて処理方法記憶部13から取得されたものである。したがって、ユーザは読取時に画像データの送り先を選択できる。
<まとめ>
本実施例によれば、実施例1の効果に加えて、読取時にログインしたユーザが読取時に画像データの送り先を選択できるので、読取時にワークフローを拡張できる。
本実施例ではワークフローの終了時に原稿種別に応じたメッセージを表示できる情報処理システム1について説明する。原稿によっては保管方法が決まっているものがあり、ユーザが読み取った原稿をどのように保管すべきかわかるようになる。
本実施例においては、上記の実施例1にて説明した図3、図4のハードウェア構成図、及び、図5に示した機能ブロック図を援用できるものとし、主に相違点についてのみ説明する場合がある。本実施例の印刷のワークフローのシーケンス図は実施例1の図11と同様でよいため必要に応じて図11を参照する。
<メッセージを保持する処理方法>
本実施例では原稿種別ごとにメッセージが登録されている。表4は本実施例の処理方法情報の一例である。
表4の処理方法情報には、表1の処理方法に加えて、後処理メッセージが設定されている。後処理メッセージは読取・処理結果画面650に表示されるメッセージであり、原稿種別によって種々のメッセージを表示することができる。例えば、請求書の場合は6か月保管する、交通費申請書の場合は本部に郵送する、休暇届けの場合は即時削除する、というメッセージを機器20が表示できる。
<読取のワークフロー>
図30は、読取のワークフローにおいて、情報処理システム1が実行する処理を説明するシーケンス図の一例である。なお、図30の説明では主に図16との相違を説明する。まず、ステップS31〜S41の処理は図16と同様でよい。
S42:読取ワークフロー処理部15は原稿種別のIDを指定して、処理方法記憶部13から処理方法情報を取得する。ここでは処理方法の中に後処理メッセージが含まれる。画像コード9から読み取った原稿種別のIDが「paper_id 003」の場合は、「即時削除してください。」という後処理メッセージが取得される。
S43:読取ワークフロー処理部15は処理方法記憶部13に設定されているフォルダに画像データを保存する。図30ではフォルダが読取データ記憶部12にあるものとする。
S44:同様に、読取ワークフロー処理部15は処理方法記憶部13に設定されている外部システムに画像データを送信し、外部システムに応じた処理を要求する。表4の処理方法情報の場合、「ccc@bb.cc」にメール通知をする処理である。この他、他の外部サービスへ連携処理を要求してもよい。
S45:読取ワークフロー処理部15は通信部16を介して、処理結果に後処理メッセージを加えて機器20に送信する。
S46:機器20の通信部25は処理結果と後処理メッセージを受信し、入力部24に処理結果と後処理メッセージを送信する。
S47:入力部24は処理結果と後処理メッセージを表示処理部21に送信する。
S48:表示処理部21は処理結果と後処理メッセージを含む読取・処理結果画面650を操作パネル940に表示する。読取・処理結果画面650の一例を図31に示す。
以上により、読取のワークフローが実行され、原稿が原稿種別に応じて決まったフォルダに送信されたり、外部システムで処理されたりする。
<読取・処理結果画面>
図31は読取・処理結果画面650の一例である。図31の読取・処理結果画面650は、図19の読取・処理結果画面650のメッセージ651に加え、後処理メッセージを表示している。図31(a)は原稿種別が請求書の場合の後処理メッセージ653を示し、図31(b)は原稿種別が交通費申請書の場合の後処理メッセージ654を示し、図31(c)は原稿種別が休暇届の場合の後処理メッセージ655を示す。このように原稿種別ごとにメッセージを表示できる。
<まとめ>
本実施例によれば、実施例1の効果に加えて、ワークフローの完了時に原稿をどのように保管すべきかに関して原稿種別ごとにメッセージを表示できる。なお、本実施例では原稿の保管方法をメッセージで表示したが、メッセージの内容はどのようなものでもよい。例えば、記入内容の注意事項、付帯して提出すべき原稿(身分証など)を読み取らせるべき旨などを表示できる。
図32は、情報処理システム1の別の構成図の一例である。
<事前準備>
1.申請下書きドキュメント(PDF)の登録
2.人事情報との連携
3.文書マスタの登録
−提出先情報
−保存先情報など
<処理の流れ>
1.出力
−認証等を実施
−文書の選択をして出力指示
−内部にて申請書に画像コードを付加
−社員番号
−提出先情報
−文書情報
−印刷実施
2.処理(記載、印鑑)
3.スキャン
−認証等を実施
−ワンタッチスキャン
−画像コードに応じて処理
−社員番号から付帯情報の取得
−文書情報から付帯情報の取得
−文書のタグ付け
−配信(メール、クラウドストレージ)
<処理フローと使用されるデータ>
図33は、情報処理システム1の全体的な処理の流れを示すフローチャート図の一例である。まず、文書マスタ701は実施例1〜5の処理方法情報に相当する。図示するように、文書マスタ701には文書名、文書ID、 処理区分、宛先が登録されており、文書IDが原稿種別のID、処理区分と宛先が処理方法に相当する。人事マスタ702はユーザ情報であり、主に認証に使用される。テンプレート文書703は実施例1〜5の印刷データに相当する。
S1001:機器20がユーザ認証する。
S1002:機器20がテンプレート(原稿)の選択を受け付ける。
S1003:機器20が印刷設定を受け付ける。
S1004:情報処理システム1が文書IDの画像コードを生成する。
S1005:機器20がPDLデータを生成する。
S1006:機器20が印刷する。
本実施例では各ワークフローの作成方法について説明する。
<システム構成>
図34は、実施例7に係る情報処理システム1の一例の構成図である。なお、図34の説明において、図2において同一の符号を付した構成要素は同様の機能を果たすので、主に本実施例の主要な構成要素についてのみ説明する場合がある。図34に示される情報処理システム1のサービス提供環境E1は、外部コンポーネント管理装置40を含む。
外部コンポーネント管理装置40は、一台以上の情報処理装置で実現され、外部コンポーネントを管理する。このように、本実施形態に係る情報処理システム1では、サービス提供システム10とは異なる装置である外部コンポーネント管理装置40において外部コンポーネントを管理する。このため、例えば、外部コンポーネントが重大なバグを有していた場合等における影響を外部コンポーネント管理装置40に局所化させることができる。
なお、図34では、サービス提供環境E1に一の外部コンポーネント管理装置40が含まれる例を示したが、これに限られない。サービス提供環境E1には、複数の外部コンポーネント管理装置40が含まれていてもよい。例えば、サービス提供環境E1には、A社が開発した外部コンポーネントを管理する外部コンポーネント管理装置40、B社が開発した外部コンポーネントを管理する外部コンポーネント管理装置40等が含まれていてもよい。
<ソフトウェア構成>
第1の実施形態に係る情報処理システム1は、例えば図35に示されるような処理ブロックにより実現することができる。図35は、実施例7に係る情報処理システム1の一例の処理ブロック図である。
機器20は、例えばCPU211等により実現されるブラウザ210を有する。機器20のユーザは、ブラウザ210を介して、サービス提供システム10により提供されるサービスを利用することができる。このように、本実施形態に係る機器20では、ブラウザ210が搭載されていればよく、サービスを利用するための専用のアプリケーションを開発等する必要がない。
サービス提供システム10は、サービス処理部110と、ドキュメントサービス部150と、ストレージサービス連携部160とを有する。これら各部は、例えばCPU501等により実現される。
また、サービス提供システム10は、アプリ情報記憶部190を有する。このアプリ情報記憶部190は、HD504等により実現される。なお、アプリ情報記憶部190は、サービス提供システム10とネットワークを介して接続される記憶装置等により実現されてもよい。
サービス処理部110は、アプリ管理部120と、ロジック処理部130と、データI/F部140と、処理内容作成部122とを有する。
アプリ管理部120は、アプリ情報記憶部190に記憶されているアプリ情報1000を管理する。アプリ管理部120は、ブラウザ210からの要求に応じて、アプリ情報1000に含まれる画面定義に基づくアプリ画面を返信する。これにより、機器20のブラウザ210には、サービス提供システム10により提供されるサービスを利用するためのアプリ画面が表示される。ここで、アプリ情報1000は、詳細は後述するが、上記したアプリ画面を機器20に表示させるための画面定義と、当該アプリ情報1000により実現されるサービスの処理内容とが記述された情報である。
また、アプリ管理部120は、ロジック処理部130からの要求に応じて、アプリ情報1000に含まれる処理内容を返信する。処理内容は、詳細は後述するが、スキャン配信サービスやクラウドプリントサービス等を実現するための一連の処理が記述されている。なお、一連の処理は、「処理フロー」又は「フロー」とも称される。また、実施例1から実施例6に記載した印刷のワークフロー(印刷ワークフロー処理部14)と読取のワークフロー(読取ワークフロー処理部15)も、アプリ情報1000の一例である。
ロジック処理部130は、ブラウザ210からの要求に応じて、アプリ管理部120から処理内容を取得する。そして、ロジック処理部130は、取得した処理内容にしたがってドキュメントサービス部150又は/及びストレージサービス連携部160のファイル処理部170に対して、処理の実行を要求する。これにより、サービス提供システム10による各種サービスが、機器20に提供される。なお、ロジック処理部130の詳細な処理ブロックについては、後述の<処理の詳細>の中で説明する。
データI/F部140は、ブラウザ210からの要求に応じて、ストレージサービス連携部160のデータ処理部180に対して、例えばフォルダ一覧の取得等を要求する。
処理内容作成部122は、ブラウザ210からの要求に応じて、処理内容を作成するための画面(処理内容の作成画面)を作成する。
アプリ管理部120は、処理内容作成部122からの要求に応じて、処理内容の作成画面において作成された処理内容をアプリ情報記憶部190に記憶させる。これにより、ユーザが作成した処理内容により示される一連の処理で実現されるサービスが追加される。
ロジック処理部130は、アプリ管理部120から取得した処理内容により示される一連の処理において、外部コンポーネントにより実行される処理がある場合、当該処理の実行を外部コンポーネント処理部410に要求する。なお、ロジック処理部130の詳細な処理ブロックについては後述する。
ドキュメントサービス部150は、サービス提供システム10により提供されるサービスを実現するためのプログラム(モジュール)群である。ドキュメントサービス部150には、例えば、電子ファイルに対してOCR処理を実行するOCR処理151や電子ファイルを機器20が印刷可能なデータ形式(印刷データ)に変換する印刷変換処理152等が含まれる。ドキュメントサービス部150には、これら以外にも、例えば、電子ファイルの圧縮又は解凍するためのプログラム、電子ファイルのデータ形式を変換(例えばPDF形式に変換)するためのプログラム等、各種の処理を実行するプログラムが含まれていてもよい。
ストレージサービス連携部160は、ロジック処理部130及びデータI/F部140からの要求に応じて、外部システム30に対して、各種処理の実行を要求する。ここで、サービス提供システム10は、外部システム30毎に、ストレージサービス連携部160をそれぞれ有する。すなわち、サービス提供システム10は、外部システム301に対して処理を要求するためのストレージサービスA連携部1601、外部システム302に対して処理を要求するためのストレージサービスB連携部1602等を有する。このように、サービス提供システム10は、連携して処理を行う外部システム30毎に、それぞれ対応するストレージサービス連携部160を有する。なお、以降では、複数のストレージサービス連携部160について、各々を区別するときは、上記のように「ストレージサービスA連携部1601」、「ストレージサービスB連携部1602」等と添え字を用いて記載する。
ストレージサービス連携部160は、上記したように、ロジック処理部130からの要求を受け付けるファイル処理部170と、データI/F部140からの要求を受け付けるデータ処理部180とを有する。
ファイル処理部170は、外部システム30に保存されている電子ファイルに対する操作(例えば、取得、保存、編集等)を行うためのAPI(Application Programming Interface)が定義された共通I/F171及び固有I/F172を有する。共通I/F171は、複数の外部システム30間で共通に利用できるAPIであり、例えば図36(a)に示すようなAPIが挙げられる。換言すれば、ファイル処理部170の共通I/F171は、すべての外部システム30が利用できるファイル操作に関する機能(例えば、ファイルの取得、保存等)を利用するためのAPI群である。一方、固有I/F172は、特定の外部システム30において利用できるAPIであり、例えば図36(b)に示すようなAPIが挙げられる。換言すれば、ファイル処理部170の固有I/F172は、ある特定の外部システム30において利用できるファイル操作に関する機能(例えば、ファイルの編集等)を利用するためのAPI群である。したがって、共通I/F171は、すべてのストレージサービス連携部160に対して同様に定義される一方、固有I/F172は、当該固有I/F172で定義されるAPIが利用可能な特定のストレージサービス連携部160に対して定義される。
一方、データ処理部180は、外部システム30に保存されている電子ファイルの書誌情報等のメタデータ(例えば、ファイル一覧、フォルダ一覧等)を取得等するためのAPIが定義された共通I/F181及び固有I/F182を有する。共通I/F181は、複数の外部システム30間で共通に利用できるAPIであり、例えば図36(c)に示すようなAPIが挙げられる。換言すれば、データ処理部180の共通I/F181は、すべての外部システム30で利用できるメタデータ取得等の機能を利用するためのAPI群である。一方、固有I/F182は、ある特定の外部システム30において利用できるAPIであり、例えば図36(d)に示すようなAPIが挙げられる。換言すれば、データ処理部180の固有I/F182は、ある特定の外部システム30において利用できるメタデータ取得等の機能(例えば、画像ファイル一覧の取得等)を利用するためのAPI群である。したがって、共通I/F181は、すべてのストレージサービス連携部160に対して同様に定義される一方、固有I/F182は、当該固有I/F182で定義されるAPIが利用可能な特定のストレージサービス連携部160に対して定義される。
以上のように、本実施形態に係るサービス提供システム10は、連携して処理を行う外部システム30毎に、それぞれストレージサービス連携部160を有する。このため、連携先となる外部システム30が追加等する場合には、対応するストレージサービス連携部160をサービス提供システム10に追加等すればよい。したがって、連携先となる外部システム30の追加等に伴う影響を局所化することができる。換言すれば、他の処理ブロック(サービス処理部110やドキュメントサービス部150等)に影響を与えることなく(すなわち、他の処理ブロックを修正等する必要なく)、連携先となる外部システム30の追加等を行うことができる。これにより、連携先の外部システム30の追加等の開発に要する工数を削減することができる。なお、ストレージサービス連携部160の追加等は、SDK(Software Development Kit)を用いて行うことができる。
また、ストレージサービス連携部160は、共通I/F171と固有I/F172とを異なるモジュール等で定義している。また、共通I/F171及び固有I/F172で定義されるAPIは、「ストレージサービス名」を指定することで利用することができる(すなわち、「ストレージサービス名」が可変部分となっている)。したがって、連携先の外部システム30を追加する場合には、他のストレージサービス連携部160に定義されている共通I/F171を再利用することができる。換言すれば、連携先の外部システム30を追加する場合には、当該追加する外部システム30の固有I/F172のみ開発すればよい。これにより、連携先の外部システム30の追加等の開発に要する工数を更に削減することができる。なお、このことは共通I/F181と固有I/F182に関しても同様である。
アプリ情報記憶部190は、アプリ情報1000を記憶する。アプリ情報1000は、アプリ画面を機器20に表示させるための画面定義と、サービスを実現するため一連の処理を示す処理内容とが記述された情報であり、アプリ情報1000を一意に識別するためのアプリID毎に、アプリ情報記憶部190に記憶されている。本実施形態では、クラウドサービスAと連携したスキャン配信サービスを実現するためのアプリ情報を「アプリ情報10001」とし、このアプリ情報10001のアプリID「app001」とする。また、本実施形態では、クラウドサービスAと連携したクラウドプリントサービスを実現するためのアプリ情報を「アプリ情報10002」、このアプリ情報10002のアプリIDを「app002」とする。
ここで、アプリ情報10001の画面定義に含まれるデータ定義及びアプリ情報10002の画面定義に含まれるデータ定義を、それぞれ図37(a)及び図37(b)に示す。データ定義は、機器20のブラウザ210により操作パネル940等に表示されるアプリ画面の入力欄(入力ボックス)や選択欄(選択ボックス)等を構成するための情報が記述されている。例えば、図37(a)におけるデータ定義部1101では、ユーザがスキャンにより生成される電子ファイルのファイル名を入力するための入力欄を構成するための情報が記述されている。また、データ定義部1102では、ストレージサービスAにおける保存先フォルダを選択するための選択欄を構成するための情報が記述されている。なお、データ定義部1102の「data_source」には選択欄の各選択要素(ここでは、保存先候補のフォルダ名及びフォルダID)の取得先のURL(Uniform Resource Locator)が記述されている。
次に、アプリ情報10001の画面定義に含まれるレイアウト情報及びアプリ情報10002の画面定義に含まれるレイアウト情報を、それぞれ図38(a)及び図38(b)に示す。レイアウト情報は、機器20のブラウザ210により操作パネル940等に表示されるアプリ画面に表示される文字(入力欄の表示名称等)、入力欄や選択欄の表示位置等の情報が記述されている。例えば、図38(a)におけるレイアウト定義部1301では、データ定義における「"data_id":1」(すなわち、データ定義部1101)の表示位置及び表示名称の情報が記述されている。これにより、具体例は後に示すが、アプリ画面には、表示名称が「ファイル名」である入力欄が、1番目の位置に表示される。また、レイアウト定義部1302では、データ定義における「"data_id":2」(すなわち、データ定義部1102)の表示位置及び表示名称の情報が記述されている。これにより、具体例は後に示すが、アプリ画面には、表示名称が「保存先フォルダ選択」である選択欄が、2番目の位置に表示される。
次に、アプリ情報10001の処理内容及びアプリ情報10002の処理内容を、それぞれ図39(a)及び図39(b)に示す。処理内容は、サービス提供システム10により提供されるサービスを実現するために、ドキュメントサービス部150やストレージサービス連携部160に要求する一連の処理が記述されている。例えば、図39(a)に示す処理内容には、本実施形態に係るスキャン配信サービスを実現するための一連の処理(すなわち、スキャンされた電子ファイルをOCR処理した後、ストレージサービスAの指定されたフォルダに配信する一連の処理)が記述されている。また、図39(b)に示す処理内容には、本実施形態に係るクラウドプリントサービスを実現するための一連の処理(すなわち、ストレージサービスAから取得した電子ファイルを印刷データに変換した後、機器20に送信する一連の処理)が記述されている。これらの処理内容についての詳細については、後述する。
図35に戻り、外部コンポーネント管理装置40は、外部コンポーネント処理部410を有する。外部コンポーネント処理部410は、例えば、外部コンポーネント管理装置40が備えるCPUにより実現される。
外部コンポーネント処理部410は、ロジック処理部130からの要求に応じて、外部コンポーネントを実行する。なお、外部コンポーネント処理部410の詳細な処理ブロックについては後述する。
以上のように、本実施形態に係るサービス提供システム10は、機器20にアプリ画面を表示させるための画面定義と、サービスを実現するための一連の処理内容とが記述されたアプリ情報1000を利用してサービスを提供する。このため、サービス提供システム10により提供されるサービスを追加等する場合には、アプリ情報記憶部190にアプリ情報1000を追加等すればよい。また、アプリ情報1000を追加するには、上記したように、画面定義と処理内容とを記述すればよいため、簡易に開発することができる。したがって、サービスの追加・変更等に伴う開発工数を削減させることができると共に、例えばサードベンダー等によるサービスの追加・変更等を容易に行うことができる。
図40は、ロジック処理部130の一例の処理ブロック図である。ロジック処理部130は、フロー実行部131と、コンポーネント管理部132と、コンポーネント群133と、型変換管理部134と、型変換群135、コンポーネント管理テーブル5000とを有する。また、ロジック処理部130は、型変換テーブル3000を利用する。
フロー実行部131は、ブラウザ210からスキャン配信サービスの処理の実行要求を受け付けると、アプリ管理部120を介して、アプリ情報1000から処理内容を取得する。そして、フロー実行部131は、取得した処理内容にしたがってコンポーネントに対して処理の実行を要求する。なお、ここで、コンポーネントとは、各種処理を実行するためのプログラム(モジュール)であり、例えばクラスや関数等で定義される。
コンポーネント管理部132は、フロー実行部131からの要求に応じて、コンポーネントの生成を行う。なお、コンポーネントの生成とは、例えばクラスで定義されたコンポーネントを、メモリ(例えばRAM503)上に展開することを意味する。
コンポーネント群133は、コンポーネントの集合である。コンポーネント群133には、外部システム30に電子ファイルを配信するための配信コンポーネント1331、外部システム30から電子ファイルを取得するための取得コンポーネント1332が含まれる。また、コンポーネント群133には、電子ファイルにOCR処理を行うためのOCRコンポーネント1333、電子ファイルを印刷データに変換するための印刷変換コンポーネント1334、そして、外部コンポーネントと連携する外部コンポ連携コンポーネント1335が含まれる。また、実施例1から実施例6に記載した印刷のワークフロー(印刷ワークフロー処理部14)のコンポーネントとしては、印刷データ記憶部11から原稿のファイル名の一覧を取得するコンポーネント、原稿のファイル名の一覧を含む画面情報を生成するコンポーネント、処理方法記憶部13に記憶された処理方法の情報(原稿種別のIDや、ユーザのIDと処理方法とが関連づいた表)を処理方法記憶部13から取得するコンポーネント、指定した原稿種別に対応する印刷データ(申請書の画像ファイル)を取得するコンポーネント、取得した原稿種別のID又は(及び)ユーザのIDを画像コードに変換するコンポーネント、印刷データ(申請書の画像ファイル)に画像コードを付加して、機器20に送付する印刷データを生成するコンポーネント、等がある。また読取のワークフロー(読取ワークフロー処理部15)のコンポーネントとしては、読取った機器20から受信した申請書の画像データの所定位置にある画像コードを解析するコンポーネント、画像コードに含まれる原稿種別のID又は(及び)ユーザのIDに応じた、処理方法の情報を処理方法記憶部13から取得するコンポーネント、取得した処理方法に応じて、所定の処理(所定の格納先、送信先に送信する処理等)を行うコンポーネント等がある。これらのコンポーネントを組み合わせて構成した各アプリケーションは、各種ワークフローのWebアプリケーションとしてサービス提供システム10で記憶、管理される。
更に、これらの各コンポーネントは、コンポーネント共通I/F1330を有する。コンポーネント共通I/F1330は、各コンポーネントに対して共通に定義されたAPIであり、コンポーネントを生成するためのAPIと、コンポーネントに対して処理の実行を要求するためのAPIとが含まれる。このように、各コンポーネントがコンポーネント共通I/F1330を有するようにすることで、コンポーネントの追加等に伴う影響を局所化することができる。換言すれば、フロー実行部131及びコンポーネント管理部132に影響を与えることなく、コンポーネントの追加等を行うことができる。これにより、コンポーネントの追加等の開発に要する工数を削減することができる。
型変換管理部134は、データ型の型変換を管理する。ここで、各コンポーネントは、自身が扱えるデータ型が予め定まっている。したがって、型変換管理部134は、コンポーネントからの要求に応じて、図41に示すような型変換テーブル3000を参照して、型変換群135に定義されている型変換を生成する。そして、型変換管理部134は、生成された型変換に対して型変換処理の実行を要求する。ここで、型変換とは、データ型の型変換処理を実行するためのプログラム(モジュール)であり、例えばクラスや関数等で定義される。
なお、型変換の生成とは、例えばクラスで定義された型変換を、メモリ(例えばRAM503)上に展開することを意味する。また、データ型には、例えば、ストリームデータを示すデータ型「InputStream」、記憶装置等に格納されている電子ファイルのパス(アドレス)を示す「LocalFilePath」、電子ファイルの実体を示す「File」等が挙げられる。
型変換群135は、型変換の集合である。型変換群135には、データ型「InputStream」を「LocalFilePath」に変換する第1の型変換1351、「LocalFilePath」を「File」に変換する第2の型変換1352等が含まれる。
更に、これらの各型変換は、型変換共通I/F1350を有する。型変換共通I/F1350は、各型変換に対して共通に定義されたAPIであり、型変換を生成するためのAPIと、型変換に対して処理の実行を要求するためのAPIとが含まれる。このように、各型変換が型変換共通I/F1350を有するようにすることで、型変換の追加等に伴う影響を局所化することができる。換言すれば、型変換管理部134に影響を与えることなく、コンポーネントの追加等を行うことができる。これにより、型変換の追加等の開発に要する工数を削減することができる。
フロー実行部131は、アプリ管理部120から取得した処理内容にしたがってコンポーネントの取得をコンポーネント管理部132に要求する。このとき、フロー実行部131は、処理内容に基づいて、後述するコンポーネント名を指定して、コンポーネントの取得を要求する。
コンポーネント管理部132は、フロー実行部131からの要求に応じて、コンポーネント管理テーブル5000を参照し、当該要求に係るコンポーネントが内部コンポーネント又は外部コンポーネントのいずれであるかを判断する。そして、コンポーネント管理部132Aは、当該要求に係るコンポーネントが外部コンポーネントである場合、外部コンポ連携コンポーネント1335を生成する。
コンポーネント群133に含まれる外部コンポ連携コンポーネント1335は、外部コンポーネント管理装置40の外部コンポーネント処理部410と処理の連携を行うためのコンポーネントである。外部コンポ連携コンポーネント1335は、外部コンポーネント処理部410に対して、外部コンポーネントの処理の実行を要求する。なお、外部コンポ連携コンポーネント1335は、コンポーネント共通I/F1330を有する。
ここで、コンポーネント管理テーブル5000は、図42に示すようなデータ項目を有している。図42は、コンポーネント管理テーブルの一例を説明するための図である。
図42に示すコンポーネント管理テーブル5000は、データ項目として、コンポーネントIDと、コンポーネント名と、ホスト名とを有する。コンポーネントIDは、コンポーネントを一意に識別する識別情報である。コンポーネント名は、コンポーネントの名称である。なお、本実施形態では、コンポーネント名は、コンポーネントに対して一意に付与されているものとする。
ホスト名は、コンポーネントを管理している装置を識別する情報である。すなわち、例えば、内部コンポーネントには、ホスト名「localhost」が関連付けられており、サービス提供システム10で管理されていることが示されている。一方、例えば、外部コンポーネントには、ホスト名「server2.com」が関連付けられており、当該ホスト名の外部コンポーネント管理装置40で管理されていることが示されている。
このように、コンポーネント管理テーブル5000では、コンポーネント毎に、当該コンポーネントが管理されている装置のホスト名が関連付けられている。なお、処理内容作成部122は、コンポーネント管理テーブル5000からコンポーネントの一覧を取得することで、処理内容の作成画面を作成する。
次に、外部コンポーネント処理部410の詳細な処理ブロックについて説明する。図43は、実施例7に係る外部コンポーネント処理部410の一例の処理ブロック図である。
外部コンポーネント処理部410は、要求受付部411と、コンポーネント管理部412と、外部コンポーネント群413と、型変換管理部414と、型変換群415とを有する。また、外部コンポーネント処理部410は、型変換テーブル6000を利用する。
要求受付部411は、ロジック処理部130からの要求を受け付けると、コンポーネント管理部412に対して、外部コンポーネントの生成を要求する。そして、要求受付部411は、外部コンポーネントが生成されると、当該外部コンポーネントに対して処理の実行を要求する。
コンポーネント管理部412は、要求受付部411からの要求に応じて、外部コンポーネントの生成を行う。
外部コンポーネント群413は、外部コンポーネントの集合である。外部コンポーネント群413には、サードベンダー等により開発された各種の外部コンポーネントが含まれる。例えば、外部コンポーネント群413には、外部システム30に電子ファイルを配信するための配信αコンポーネント4131、電子ファイルを印刷データに変換するための印刷変換βコンポーネント4132が含まれる。
また、これらの各外部コンポーネントは、コンポーネント共通I/F4130を有する。コンポーネント共通I/F4130は、各外部コンポーネントに対して共通に定義されたAPIであり、外部コンポーネントを生成するためのAPIと、外部コンポーネントに対して処理の実行を要求するためのAPIとが含まれる。
型変換管理部414は、データ型の型変換を管理する。ここで、外部コンポーネントは、自身が扱えるデータ型が予め定まっている。したがって、型変換管理部414は、外部コンポーネントからの要求に応じて、図41に示すような型変換テーブル3000を参照して、型変換群415に定義されている型変換を生成する。そして、型変換管理部414は、生成された型変換に対して型変換処理の実行を要求する。
型変換群415は、型変換の集合である。型変換群415には、データ型「InputStream」を「LocalFilePath」に変換する第1の型変換4151、「LocalFilePath」を「File」に変換する第2の型変換4142等が含まれる。
また、これらの各型変換は、型変換共通I/F4150を有する。型変換共通I/F4150は、各型変換に対して共通に定義されたAPIであり、型変換を生成するためのAPIと、型変換に対して処理の実行を要求するためのAPIとが含まれる。
<処理の詳細>
次に、本実施形態に係る情報処理システム1の処理の詳細について説明する。
≪スキャン配信サービスの全体処理≫
まず、機器20のユーザが本実施形態に係るスキャン配信サービスを利用する場合の全体的な処理について説明する。図44は、第1の実施形態に係るスキャン配信サービスの全体処理の一例のシーケンス図である。
まず、機器20のユーザは、ブラウザ210を用いて、サービス提供システム10により提供されるサービスの一覧を取得するための操作を行う。すると、機器20は、サービスの一覧の取得要求をサービス提供システム10のサービス処理部110に送信する(ステップS901)。そして、サービス処理部110のアプリ管理部120は、当該取得要求を受信すると、サービス提供システム10により提供されるサービスの一覧を機器20に送信する。これにより、機器20のブラウザ210により、機器20の操作パネル940にサービス提供システム10により提供されるサービスの一覧が表示される。なお、サービスの一覧には、サービス提供システム10により提供されるサービスのサービス名と、このサービスを実現するためのアプリ情報1000のアプリIDとが含まれる。
ユーザは、機器20の操作パネル940に表示されたサービスの一覧から、自身が利用を所望するサービスを選択する。すると、ブラウザ210は、選択されたサービスを実現するためのアプリ情報1000のアプリIDをアプリ管理部120に送信する(ステップS902)。ここでは、ユーザによりサービス名「スキャン配信サービス」の利用が選択されたものとする。したがって、ブラウザ210は、アプリ情報10001のアプリID「app001」をアプリ管理部120に送信する。
そして、アプリ管理部120は、ブラウザ210から受け取ったアプリID「app001」のアプリ情報10001に含まれる画面定義に基づきHTML(HyperText Markup Language)形式のアプリ画面を生成し、ブラウザ210に送信する。
ブラウザ210は、アプリ管理部120からアプリ画面を受け取ると、表示用情報の取得をデータI/F部140に要求する(ステップS903)。ここで表示用情報とは、例えばアプリ画面の選択欄の各選択要素のことである。すなわち、本実施形態では、ブラウザ210は、スキャン配信の配信先(保存先)となるストレージサービスAのフォルダの一覧の取得を、データI/F部140に要求する。このような要求は、図37(a)のデータ定義部1102に記述されている「"data_source"」に定義されているURL「http://sample.xxx.co.jp/service−a/data/folders」にHTTPリクエストを送信することで行うことができる。なお、当該URLのうち、「http://sample.xxx.co.jp」の部分がサービス提供システム10のホスト名、「/service−a/data/folders」の部分がストレージサービス連携部160におけるAPI(すなわち、図36に示すAPI)の指定となる。
次に、データI/F部140は、ブラウザ210から表示用情報の取得要求を受け付けると、当該要求を対応するストレージサービス連携部160のデータ処理部180に送信する(ステップS904)。本実施形態では、データI/F部140は、上記のURLに含まれる「service−a」(ストレージサービス名)に基づき、当該要求を、ストレージサービスA連携部1601のデータ処理部1801に送信する。
データ処理部180は、データI/F部140から要求を受け付けると、当該要求に含まれるURLに基づき、対応する処理要求を外部システム30に送信する(ステップS905)。すなわち、データ処理部180は、データI/F部140から受け付けた要求に含まれるURLに基づき、共通I/F181又は固有I/F182に定義されているAPIを利用して、該当の外部システム30に処理を要求する。本実施形態では、上記のURLに含まれる「/service−a/data/folders」に基づき、データ処理部180は、共通I/F181に定義されているAPIを用いて、ストレージサービスAにフォルダ一覧の取得を要求する。すると、ブラウザ210は、ストレージサービスA連携部1601を介して、フォルダ一覧を受信する。フォルダ一覧は、本実施形態のスキャン配信サービスにおいて、電子ファイルの保存先の候補となるストレージサービスAのフォルダ名及びフォルダID等の情報である。
次に、ブラウザ210は、ステップS902でアプリ管理部120から受け取ったアプリ画面及びフォルダ一覧に基づき、例えば図45(a)に示すようなアプリ画面2000を、操作パネル940に表示させる(ステップS906)。
ここで、図45(a)で示すスキャン配信サービスを利用するためのアプリ画面2000は、ファイル名入力欄2001と、保存先フォルダ選択欄2002と、スキャン実行ボタン2003とから構成されている。このうち、ファイル名入力欄2001及び保存先フォルダ選択欄2002は、図45(b)に示すように、それぞれHTMLソースコード2101及び2102で記述されている。このようなHTMLソースコード2101及び2102は、アプリ管理部120により、図37(a)に示すデータ定義部1101及び1102並びに図38(b)に示すレイアウト定義部1301及び1302に基づいて生成される。ただし、HTMLソースコード2102に指定されている「option」の設定値は、外部システム30から取得したフォルダ一覧に基づき、ブラウザ210で設定される。このように、アプリ画面2000は、アプリ情報10001の画面定義に基づきアプリ管理部120で生成されたHTMLに対して、外部システム301から取得したフォルダ一覧の情報を設定することで生成される。
次に、ユーザは、図45(a)のアプリ画面2000において、ファイル名入力欄2001に所望のファイル名を入力して、保存先フォルダ選択欄2002から所望の保存先フォルダを選択する。そして、機器20の入力部24に原稿をセットして、スキャン実行ボタン2003を押下する(ステップS907)。ここで、ユーザはファイル名入力欄2001にファイル名「test」を入力し、保存先フォルダ選択欄2002から「FolderB」を選択して、スキャン実行ボタン2003を押下したものとする。これにより、機器20の入力部24により原稿が読み取られ、ファイル名「test」の電子ファイルが生成される(ステップS908)。
すると、ブラウザ210は、スキャン配信サービスの処理の実行要求をロジック処理部130に送信する(ステップS909)。ここで、当該実行要求には、アプリID「app001」と、上記のステップS908で生成された電子ファイルと、選択された保存先フォルダ「FolderB」のフォルダID「folder_id_b」とが含まれる。
そして、ロジック処理部130は、処理の実行要求を受け付けると、アプリ管理部120を介して、当該処理の実行要求に含まれるアプリIDのアプリ情報1000から処理内容を取得し、当該処理内容にしたがって処理を実行する(ステップS910)。すなわち、本実施形態に係るスキャン配信サービスでは、当該処理の実行要求に含まれる電子ファイルに対してOCR処理を行った後、ストレージサービスAのフォルダ「FolderB」に対して当該OCR処理後の電子ファイルを配信(アップロード)する。このステップS910の処理の詳細については、後述する。ここでは、ロジック処理部130は、OCR処理後の電子ファイルと、フォルダ「FolderB」のフォルダID「folder_id_b」とを含む配信実行の要求を、ストレージサービスA連携部1601のファイル処理部1701に送信したものとして説明を続ける。
ファイル処理部170は、ロジック処理部130から配信実行の要求を受け付けると、共通I/F171又は固有I/F172に定義されているAPIを利用して、該当の外部システム30に処理を要求する(ステップS911)。具体的には、本実施形態では、ファイル処理部1701の共通I/F1711に定義されているストレージサービスAにファイルを保存するためのAPI「/service−a/process/folder」を用いて、当該電子ファイルをフォルダ「FolderB」に配信(アップロード)する。そして、電子ファイルのアップロードが完了すると、処理結果がブラウザ210に表示される。これにより、本実施形態に係るスキャン配信サービスが完了する。
次に、本実施形態に係る情報処理システム1の処理の詳細について説明する。本実施形態では、スキャン配信サービスを実現する一連の処理に、外部コンポーネントにより実行される処理が含まれる場合について説明する。すなわち、本実施形態に係るスキャン配信サービスは、内部コンポーネントにより実行される処理と、外部コンポーネントにより実行される処理とで構成される一連の処理により実現されるものとする。
≪OCRから配信実行までの処理≫
図46は、実施例7に係るOCRから配信実行までの処理の一例のシーケンス図である。まず、フロー実行部131は、ブラウザ210からスキャン配信サービスの処理の実行要求を受け付ける(ステップS2501)。ここで、当該実行要求には、アプリID「app001」と、図44のステップS908で生成された電子ファイルと、選択された保存先フォルダ「FolderB」のフォルダID(保存先)とが含まれる。ここで、当該電子ファイルは、データ型が「InputStream」(すなわち、ストリームデータ)としてブラウザ210から渡されるものとする。
フロー実行部131は、ブラウザ210からスキャン配信サービスの実行要求を受け付けると、アプリ管理部120に処理内容の取得を要求する(ステップS2502)。ここで、本実施形態では、フロー実行部131により、図47に示す処理内容が取得されたものとする。
フロー実行部131は、取得した処理内容にしたがってコンポーネントの取得を、コンポーネント管理部132Aに要求する(ステップS2503)。より具体的には、フロー実行部131は、図47に示す処理内容の「From("file:input")」の次に指定されている「.to("process:ocr")」に基づき、コンポーネント名が「ocr」であるコンポーネントの取得を、コンポーネント管理部132Aに要求する。
コンポーネント管理部132Aは、コンポーネントの取得要求を受け付けると、コンポーネント管理テーブル5000を参照して、当該取得要求に係るコンポーネントが内部コンポーネント又は外部コンポーネントのいずれであるかを判断する(ステップS2504)。
すなわち、コンポーネント管理部132Aは、コンポーネント管理テーブル5000において、当該取得要求に含まれるコンポーネント名に関連付けられているホスト名が「localhost」であるか否かを判断する。そして、コンポーネント管理部132Aは、当該ホスト名が「localhost」である場合、当該取得要求に係るコンポーネントは内部コンポーネントであると判断する。一方、コンポーネント管理部132Aは、当該ホスト名が「localhost」でない場合、当該取得要求に係るコンポーネントは外部コンポーネントであると判断する。
ここで、コンポーネント管理テーブル5000において、コンポーネント名「ocr」に関連付けられているホスト名は「localhost」である。したがって、コンポーネント管理部132Aは、当該取得要求に係るコンポーネントは内部コンポーネントであると判断する。
コンポーネント管理部132Aは、コンポーネントの取得要求に係るコンポーネントが内部コンポーネントであると判断された場合、当該取得要求に含まれるコンポーネント名に対応する内部コンポーネントを生成する(ステップS2505)。すなわち、コンポーネント管理部132Aは、当該取得要求に含まれるコンポーネント名「ocr」に対応するOCRコンポーネント1333を生成する。
そして、コンポーネント管理部132Aは、生成されたOCRコンポーネント1333をフロー実行部131に返却する。
フロー実行部131は、生成されたOCRコンポーネント1333に対して、データを指定して処理の実行を要求する(ステップS2506)。なお、ここで指定されるデータは、データ型が「InputStream」としてブラウザ210から渡される電子ファイルである。すなわち、フロー実行部131は、ブラウザ210からデータ型「InputStream」として渡される電子ファイルを、単に「データ」として(データ型を意識することなく)、OCRコンポーネント1333に渡して処理の実行を要求する。図46では、このようにデータ型を意識することなく渡される電子ファイル等を、単に「データ」と表す。
OCRコンポーネント1333は、型変換管理部134に対して、型変換を要求する(ステップS2507)。ここで、当該型変換要求には、データと、OCRコンポーネント1333が扱うことができるデータ型を示す「LocalFilePath」の指定とが含まれる。
型変換管理部134は、受け取った型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するか否かをチェックする(ステップS2508)。ここでは、受け取った型変換要求に含まれるデータのデータ型は「InputStream」である一方、指定されたデータ型は「LocalFilePath」であるから、一致しないものと判断される。
すると、型変換管理部134は、型変換テーブル3000を参照して、「InputStream」を「LocalFilePath」に変換するための型変換を特定して(ここでは、第1の型変換1351が特定される)、当該特定された型変換を生成する(ステップS2509)。
そして、型変換管理部134は、生成された第1の型変換1351に対して、データを指定して型変換処理の実行を要求する(ステップS2510)。そして、第1の型変換1351は、指定されたデータのデータ型を「InputStream」から「LocalFilePath」に変換して(ステップS2511)、当該変換後のデータを型変換管理部134に返信する。その後、型変換管理部134は、型変換後のデータをOCRコンポーネント1333に送信する(ステップS2512)。
OCRコンポーネント1333は、型変換後のデータを受け取ると、処理を実行する(ステップS2513)。すなわち、データ型「LocalFilePath」のデータ(すなわち、パス又はアドレス)により示される電子ファイルに対して、OCR処理を実行する。ここで、より具体的には、OCRコンポーネント1333は、ドキュメントサービス部150のOCR処理151に処理を要求し、OCR処理151が当該電子ファイルに対して処理を実行する。そして、OCRコンポーネント1333は、データをフロー実行部131に返信する。なお、ここで、返信されるデータは、OCR処理後の電子ファイルを示すパス又はアドレスである(すなわち、返信されるデータのデータ型は「LocalFilePath」である。)。
次に、フロー実行部131は、取得した処理内容にしたがってコンポーネントの取得を、コンポーネント管理部132Aに要求する(ステップS2514)。より具体的には、フロー実行部131は、図47に示す処理内容の「.to("process:ocr")」の次に指定されている「.to("storage:send_to_folderα?type=service−b")」に基づき、コンポーネント名が「send_to_folderα」であるコンポーネントの取得を、コンポーネント管理部132Aに要求する。なお、ここで指定されている処理内容のうち「?type=service−b」の部分は、オプションパラメータであり、コンポーネント名「send_to_folderα」のコンポーネントの処理によるデータのアップロード先が「ストレージサービスB」であることを示している。
コンポーネント管理部132Aは、コンポーネントの取得要求を受け付けると、コンポーネント管理テーブル5000を参照して、当該取得要求に係るコンポーネントが内部コンポーネント又は外部コンポーネントのいずれであるかを判断する(ステップS2515)。
すなわち、コンポーネント管理部132Aは、コンポーネント管理テーブル5000において、当該取得要求に含まれるコンポーネント名に関連付けられているホスト名が「localhost」であるか否かを判断する。そして、コンポーネント管理部132Aは、当該ホスト名が「localhost」である場合、当該取得要求に係るコンポーネントは内部コンポーネントであると判断する。一方、コンポーネント管理部132Aは、当該ホスト名が「localhost」でない場合、当該取得要求に係るコンポーネントは外部コンポーネントであると判断する。
ここで、コンポーネント管理テーブル5000において、コンポーネント名「send_to_folderα」に関連付けられているホスト名は「server2.com」である。したがって、コンポーネント管理部132Aは、当該取得要求に係るコンポーネントは外部コンポーネントであると判断する。
コンポーネント管理部132Aは、コンポーネントの取得要求に係るコンポーネントが外部コンポーネントであると判断された場合、外部コンポ連携コンポーネント1335を生成する(ステップS2516)。
このように、本実施形態に係るサービス提供システム10は、コンポーネントの取得要求に係るコンポーネントが外部コンポーネントである場合、外部コンポ連携コンポーネント1335を生成する。
そして、コンポーネント管理部132Aは、生成された外部コンポ連携コンポーネント1335をフロー実行部131に返却する。
フロー実行部131は、生成された外部コンポ連携コンポーネント1335に対して、データを指定して処理の実行を要求する(ステップS2517)。なお、ここで指定されたデータのデータ型は「LocalFilePath」である。
外部コンポ連携コンポーネント1335は、型変換管理部134に対して、型変換を要求する(ステップS2518)。ここで、当該型変換要求には、データと、外部コンポ連携コンポーネント1335が扱うことができるデータ型を示す「LocalFilePath」の指定とが含まれる。
型変換管理部134は、受け取った型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するか否かをチェックする(ステップS2519)。ここでは、受け取った型変換要求に含まれるデータのデータ型は「LocalFilePath」であり、指定されたデータ型も「LocalFilePath」であるから、一致するものと判断される。そして、型変換管理部134は、型変換要求に含まれていたデータを、そのまま外部コンポ連携コンポーネント1335に送信する(ステップS2520)。
外部コンポ連携コンポーネント1335は、型変換管理部134からデータを受け取ると、処理を実行する(ステップS2521)。すなわち、外部コンポ連携コンポーネント1335は、コンポーネント名「send_to_folderα」と、データとを含む処理の実行を、ホスト名「server2.com」で示される外部コンポーネント管理装置40の外部コンポーネント処理部410に要求する。なお、当該実行要求には、上記で説明したアップロード先のストレージサービスを示すオプションパラメータ「?type=service−b」も含まれる。
次に、外部コンポーネント処理部410は、外部コンポ連携コンポーネント1335から処理の実行要求を受け取ると、当該実行要求に応じて、外部コンポーネント処理を実行する(ステップS2522)。そして、外部コンポーネント処理部410は、処理結果を示すデータを返信する。
ここで、上記のステップS2522の処理の詳細について説明する。図48は、実施例7に係る外部コンポーネント処理の一例のシーケンス図である。
まず、要求受付部411は、ロジック処理部130(より詳細には、外部コンポ連携コンポーネント1335)から処理の実行要求を受け付ける(ステップS2701)。なお、当該実行要求には、外部コンポーネントのコンポーネント名「send_to_folderα」と、データと、オプションパラメータ「?type=service−b」とが含まれる。
なお、処理内容にオプションパラメータが指定されていない場合は、処理の実行要求にオプションパラメータは含まれない。また、当該実行要求に含まれるデータは、データ型が「InputStream」として渡されるものとする。
要求受付部411は、処理の実行要求を受け付けると、当該実行要求に含まれるコンポーネント名「send_to_folderα」の外部コンポーネントの取得を、コンポーネント管理部412に要求する(ステップS2702)。
コンポーネント管理部412は、外部コンポーネントの取得要求を受け付けると、当該取得要求に含まれるコンポーネント名「send_to_folderα」に対応する配信αコンポーネント4131を生成する(ステップS2703)。配信αコンポーネント4131の生成は、コンポーネント共通I/F4130に定義されたコンポーネントを生成するためのAPIを用いて行うことができる。
そして、コンポーネント管理部412は、生成された配信αコンポーネント4131を要求受付部411に返却する。これは、例えば、コンポーネント管理部412は、配信αコンポーネント4131が展開されたメモリ上(例えばRAM)上のアドレスを、要求受付部411に返却する。
要求受付部411は、生成された配信αコンポーネント4131に対して、データを指定して処理の実行を要求する(ステップS2704)。
配信αコンポーネント4131は、処理の実行要求を受け取ると、型変換管理部414に対して、型変換を要求する(ステップS2705)。ここで、当該型変換要求には、データと、配信αコンポーネント4131が扱うことができるデータ型を示す「LocalFilePath」の指定とが含まれる。
型変換管理部414は、受け取った型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するか否かをチェックする(ステップS2706)。受け取った型変換要求に含まれるデータのデータ型は「InputStream」である一方、指定されたデータ型は「LocalFilePath」であるから、一致しないものと判断される。
すると、型変換管理部414は、型変換テーブル6000を参照して、「InputStream」を「LocalFilePath」に変換するための型変換を特定して(ここでは、第1の型変換4151が特定される)、当該特定された型変換を生成する(ステップS2707)。
そして、型変換管理部414は、生成された第1の型変換4151に対して、データを指定して型変換処理の実行を要求する(ステップS2708)。すると、第1の型変換4151は、指定されたデータのデータ型を「InputStream」から「LocalFilePath」に変換して(ステップS2709)、当該変換後のデータを型変換管理部414に返信する。
その後、型変換管理部414は、型変換後のデータを配信αコンポーネント4131に送信する(ステップS2710)。
配信αコンポーネント4131は、型変換管理部414からデータを受け取ると、処理を実行する(ステップS2711)。すなわち、本実施形態では、配信αコンポーネント4131は、ストレージサービスBに対して、データの配信を実行する。
なお、配信αコンポーネント4131は、ストレージサービスB連携部1602を介さずに、ストレージサービスBに対してデータを配信する。このように、外部コンポーネントは、内部コンポーネントと異なり、ストレージサービス連携部160やドキュメントサービス部150を用いずに、例えば配信処理やOCR処理等の各種の処理を実行する。ただし、これに限られず、外部コンポーネントは、内部コンポーネントと同様に、ストレージサービス連携部160やドキュメントサービス部150に処理要求を行うことで、各種の処理を実行しても良い。
そして、配信αコンポーネント4131は、処理結果を示すデータ返信する。これにより、本実施形態に係るスキャン配信サービスが提供される。
このように、本実施形態に係るサービス提供システム10は、処理内容に外部コンポーネントにより実行される処理が含まれる場合、当該外部コンポーネントを管理する外部コンポーネント管理装置40に処理の実行を要求する。そして、サービス提供システム10とは異なる装置である外部コンポーネント管理装置40において外部コンポーネントが実行される。
したがって、例えば、サードベンダー等により開発された外部コンポーネントに重大なバグや不具合等が存在していた場合でも、当該バグや不具合等による影響を外部コンポーネント管理装置40内に局所化させることができる。換言すれば、サービス提供システム10は、外部コンポーネントのバグや不具合等に伴う影響を受けることなく、サービスの提供を継続することができるようになる。
なお、本実施形態では、外部コンポーネント管理装置40において外部コンポーネントが管理されるものとしたが、例えば、外部コンポーネントの品質が確保された後は、当該外部コンポーネントをサービス提供システム10で管理するようにしてもよい。
≪処理内容の作成処理≫
次に、例えば、アプリ情報1000の開発者等のユーザが、当該アプリ情報1000に含まれる処理内容を作成する処理について説明する。図49は、実施例7に係る処理内容の作成処理の一例のシーケンス図である。
まず、機器20のユーザは、ブラウザ210を用いて、処理内容の作成画面を表示するための操作を行う。すると、機器20のブラウザ210は、処理内容の作成画面の取得を、処理内容作成部122に要求する(ステップS2801)。
処理内容作成部122は、コンポーネント管理テーブル5000からコンポーネントの一覧(例えば、コンポーネント名の一覧)を取得して、図50(a)に示すような処理内容の作成画面7000を作成する(ステップS2802)。そして、処理内容作成部122は、作成した処理内容の作成画面7000をブラウザ210に返信する。
ここで、図50(a)に示す処理内容の作成画面7000は、アプリID表示欄7010と、コンポーネント表示欄7020と、処理内容作成欄7030とが含まれる。
アプリID表示欄7010は、作成する処理内容が含まれるアプリ情報1000のアプリIDが表示される。このアプリIDは、例えば、上記のステップS2801でユーザにより指定されてもよい。
コンポーネント表示欄7020は、それぞれのコンポーネントを示すアイコン(表示処理部21品)が一覧で表示されている。このようなコンポーネントを示すアイコンの一覧は、コンポーネント管理テーブル5000から取得されたコンポーネント名に基づいて作成される。処理内容作成欄7030は、ユーザが処理内容を作成するための領域であり、例えば、コンポーネント表示欄7020に含まれるコンポーネントを示すアイコンをドラッグアンドドロップすることで、処理内容を作成することができる。
ここで、ユーザは、ブラウザ210を用いて、コンポーネント表示欄7020に含まれる取得コンポーネントと、印刷変換βコンポーネントとを、この順で、処理内容作成欄7030にドラッグアンドドロップしたものとする。すると、図50(b)に示すように処理内容の作成画面7100の処理内容作成欄7110には、処理内容を模式的に示すフロー120が作成される。フロー120は、内部コンポーネントである取得コンポーネントを実行した後、外部コンポーネントである印刷変換βコンポーネントを実行する処理内容を示している。
これにより、ユーザにより処理内容が作成される。しかも、このとき、ユーザは、処理内容に含まれる一連の処理を実行するコンポーネントが、内部コンポーネントであるか外部コンポーネントであるかを意識することなく、処理内容を作成することができる。したがって、ユーザは、容易に処理内容を作成することができる。
機器20のブラウザ210は、ユーザにより処理内容が作成されると、作成された処理内容を受け付ける(ステップS2803)。そして、機器20のブラウザ210は、作成された処理内容の保存を処理内容作成部122に要求する(ステップS2804)。なお、当該保存要求には、アプリIDと、ユーザにより作成された処理内容とが含まれる。
サービス処理部110の処理内容作成部122は、処理内容の保存要求を受け取ると、当該保存要求をアプリ管理部120に転送する(ステップS2805)。次に、アプリ管理部120は、処理内容の保存要求を受け取ると、当該保存要求に含まれる処理内容をアプリIDと関連付けてアプリ情報記憶部190に保存する(ステップS2806)。そして、アプリ管理部120は、保存結果を返信する。これにより、ユーザにより作成された処理内容がアプリ情報記憶部190に記憶される。
<まとめ>
以上のように、情報処理システム1によれば、サービス提供システム10は外部サービスと連携したサービスを機器20に提供することができる。また、サービス提供システム10は、連携先の外部サービスの追加・変更等を容易に行うことができる。更に、サービス提供システム10は、機器20に提供するサービスの追加・変更等(すなわち、アプリ情報1000の追加・変更等)を容易に行うことができる。これらにより、第1の実施形態に係るサービス提供システム10は、サービスの追加・変更等に伴う開発・維持に要する工数を削減することができる。
また、サードベンダー等により開発された外部コンポーネントを、サービス提供システム10とは異なる装置である外部コンポーネント管理装置40で管理及び実行させることができる。これにより、例えば、外部コンポーネントにバグや不具合が存在する等、外部コンポーネントの品質が十分でない場合においても、バグや不具合等に伴う影響を外部コンポーネント管理装置40に局所化させることができる。
したがって、実施例7に係る情報処理システム1によれば、例えば、外部コンポーネントのバグや不具合等に伴いサービス提供システム10の処理能力が低下、又はサービス提供システム10が停止するような事態等を防止することができる。
<その他の適用例>
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。各実施例を組合せた処理を実行してもよい。
また、本実施形態では機器20として主に画像形成装置を説明に使用したが、画像形成装置に限られない。機器20は、例えば、PJ(Projector:プロジェクタ)、IWB(Interactive White Board:相互通信が可能な電子式の黒板機能を有する白板)、デジタルサイネージ等の出力装置、HUD(Head Up Display)装置、産業機械、撮像装置、集音装置、医療機器、ネットワーク家電、自動車(Connected Car)、ノートPC、携帯電話、スマートフォン、タブレット端末、ゲーム機、PDA(Personal Digital Assistant)、デジタルカメラ、ウェアラブルPC又はデスクトップPC等であってもよい。
また、図5などの構成例は、サービス提供システム10による処理の理解を容易にするために、主な機能に応じて分割したものである。処理単位の分割の仕方や名称によって本願発明が制限されることはない。サービス提供システム10の処理は、処理内容に応じて更に多くの処理単位に分割することもできる。また、1つの処理単位が更に多くの処理を含むように分割することもできる。
また、実施例に記載された装置群は、本明細書に開示された実施形態を実施するための複数のコンピューティング環境のうちの1つを示すものにすぎない。ある実施形態では、サービス提供システム10は、サーバクラスタといった複数のコンピューティングデバイスを含む。複数のコンピューティングデバイスは、ネットワークや共有メモリなどを含む任意のタイプの通信リンクを介して互いに通信するように構成されており、本明細書に開示された処理を実施する。
更に、サービス提供システム10は、開示された処理ステップ、例えば図11,図16等を様々な組み合わせで共有するように構成できる。例えば、所定のユニットによって実行されるプロセスは、サービス提供システム10が有する複数の情報処理装置によって実行され得る。また、サービス提供システム10は、1つのサーバ装置にまとめられていても良いし、複数の装置に分けられていても良い。
上記で説明した実施形態の各機能は、一又は複数の処理回路によって実現することが可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたASIC(Application Specific Integrated Circuit)、DSP(Digital Signal Processor)、FPGA(Field Programmable Gate Array)や従来の回路モジュール等のデバイスを含むものとする。