(57)【要約】【課題】エラーが発生した処理に応じてエラーを通知できる情報処理システム等を提供すること。【解決手段】情報処理システム１であって、機器２０は、サービス提供システムが実行する複数の処理の実行順を定義する処理フローの実行要求を前記サービス提供システムに送信する第一の通信部２１１と、を有し、サービス提供システム１０は、処理フローの実行要求を受信する第二の通信部１２５と、第二の通信部が実行要求を受信した処理フローが含む処理を実行する複数のコンポーネント１３１０と、コンポーネントによる処理の実行時にエラーが発生した場合、処理フローに含まれる処理にエラー通知条件が対応付けられているエラー通知設定情報を参照して、処理によって異なるエラー通知条件に基づいて発生したエラーを通知するフロー実行部３０１と、を有することを特徴とする。【選択図】図２
2020205579.tif 000002
【特許請求の範囲】
【請求項１】
機器とサービス提供システムとがネットワークを介して通信する情報処理システムであって、
前記機器は、
前記サービス提供システムが実行する複数の処理の実行順を定義する処理フローの実行要求を前記サービス提供システムに送信する第一の通信部、を有し、
前記サービス提供システムは、
前記処理フローの実行要求を受信する第二の通信部と、
前記第二の通信部が実行要求を受信した前記処理フローが含む前記処理を実行する複数のコンポーネントと、
前記コンポーネントによる前記処理の実行時にエラーが発生した場合、前記処理フローに含まれる前記処理にエラー通知条件が対応付けられているエラー通知設定情報を参照して、前記処理によって異なるエラー通知条件に基づいて発生したエラーを通知するフロー実行部と、
を有することを特徴とする情報処理システム。
【請求項２】
前記エラー通知設定情報には、前記処理フローに含まれる複数の処理の経路が設定されており、
前記コンポーネントによる前記処理の実行時にエラーが発生した場合、
前記フロー実行部は、前記エラー通知設定情報に設定されている前記複数の処理の経路と、ログファイルに記録されている前記処理フローで実行された複数の前記処理とが合致するか否かを判定し、合致する場合、特定の経路でエラーになった旨を通知することを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記エラー通知設定情報には、前記処理を実行する前記コンポーネントに入力できない特定のファイルの種類が設定されており、
前記コンポーネントにおいてエラーが発生した場合、
前記フロー実行部は、前記エラー通知設定情報に設定されている特定のファイルの種類とエラーの内容を比較して、前記エラー通知設定情報に設定されている特定の種類のファイルが前記コンポーネントに入力されてエラーが発生したと判定した場合、特定のファイルの種類でエラーになった旨を通知することを特徴とする請求項１又は２に記載の情報処理システム。
【請求項４】
前記エラー通知設定情報には、前記処理を実行する前記コンポーネントで処理できないパラメータの組み合わせが設定されており、
前記コンポーネントにおいてエラーが発生した場合、
前記フロー実行部は、前記エラー通知設定情報に設定されているパラメータの組み合わせとエラーの内容を比較して、前記エラー通知設定情報に設定されているパラメータの組み合わせによりエラーが発生したと判定した場合、特定のパラメータの組み合わせでエラーになった旨を通知することを特徴とする請求項１〜３のいずれか１項に記載の情報処理システム。
【請求項５】
前記エラー通知設定情報には、前記エラー通知条件に加え、エラーが発生した場合の通知先が前記処理ごとに設定されており、
前記通知先にユーザ自身を表す旨が設定されており、前記コンポーネントにおいてエラーが発生した場合、
前記フロー実行部は、前記情報処理システムにログインしているユーザにより特定される宛先にエラーが発生した旨を通知することを特徴とする請求項１〜４のいずれか１項に記載の情報処理システム。
【請求項６】
前記エラー通知設定情報には、前記エラー通知条件に加え、エラーコードが前記処理ごとに設定されており、
前記コンポーネントにおいてエラーが発生した場合、
前記フロー実行部は、前記エラー通知設定情報に設定されているエラーコードとエラーの内容を比較して、前記エラー通知設定情報に設定されているエラーコードのエラーが発生したと判定した場合、エラーが発生した旨を通知することを特徴とする請求項１〜５のいずれか１項に記載の情報処理システム。
【請求項７】
前記エラーコードは権限のないユーザがファイルにアクセスした旨を意味し、
前記フロー実行部は、前記エラー通知設定情報に設定されているエラーコードのエラーが発生したと判定した場合、権限のないユーザがファイルにアクセスした旨を通知することを特徴とする請求項６に記載の情報処理システム。
【請求項８】
前記サービス提供システムと通信する情報処理装置を有し、
前記情報処理装置は、
前記サービス提供システムから受信した画面情報に基づいて、前記処理フローに含まれる各処理のアイコンを処理される順番に表示する表示制御部と、
前記アイコンの選択と、選択された前記アイコンに対応する前記処理について、前記エラー通知条件を受け付ける操作受付部と、を有し、
前記第一の通信部は、前記操作受付部が受け付けた前記処理ごとの前記エラー通知条件を前記サービス提供システムに送信することを特徴とする請求項１〜７のいずれか１項に記載の情報処理システム。
【請求項９】
機器とサービス提供システムとがネットワークを介して通信する情報処理システムが行う処理実行方法であって、
前記機器は、
第一の通信部が、前記サービス提供システムが実行する複数の処理の実行順を定義する処理フローの実行要求を前記サービス提供システムに送信するステップ、を有し、
前記サービス提供システムは、
第二の通信部が、前記処理フローの実行要求を受信するステップと、
複数のコンポーネントが、前記第二の通信部が実行要求を受信した前記処理フローが含む前記処理を実行するステップと、
前記コンポーネントによる前記処理の実行時にエラーが発生した場合、フロー実行部が、前記処理フローに含まれる前記処理にエラー通知条件が対応付けられているエラー通知設定情報を参照して、前記処理によって異なるエラー通知条件に基づいて発生したエラーを通知するステップと、
を有することを特徴とする処理実行方法。
【請求項１０】
機器とネットワークを介して通信するサービス提供システムであって、
前記サービス提供システムが実行する複数の処理の実行順を定義する処理フローの実行要求を受信する第二の通信部と、
前記第二の通信部が実行要求を受信した前記処理フローが含む前記処理を実行する複数のコンポーネントと、
前記コンポーネントによる前記処理の実行時にエラーが発生した場合、前記処理フローに含まれる前記処理にエラー通知条件が対応付けられているエラー通知設定情報を参照して、前記処理によって異なるエラー通知条件に基づいて発生したエラーを通知するフロー実行部と、
を有することを特徴とするサービス提供システム。
【請求項１１】
機器とネットワークを介して通信するサービス提供システムが行う処理実行方法であって、
第二の通信部が、前記サービス提供システムが実行する複数の処理の実行順を定義する処理フローの実行要求を受信するステップと、
複数のコンポーネントが、前記第二の通信部が実行要求を受信した前記処理フローが含む前記処理を実行するステップと、
前記コンポーネントによる前記処理の実行時にエラーが発生した場合、フロー実行部が、前記処理フローに含まれる前記処理にエラー通知条件が対応付けられているエラー通知設定情報を参照して、前記処理によって異なるエラー通知条件に基づいて発生したエラーを通知するステップと、
を有することを特徴とする処理実行方法。
【請求項１２】
機器とネットワークを介して通信するサービス提供システムを、
前記サービス提供システムが実行する複数の処理の実行順を定義する処理フローの実行要求を受信する第二の通信部と、
前記第二の通信部が実行要求を受信した前記処理フローが含む前記処理を実行する複数のコンポーネントと、
前記コンポーネントによる前記処理の実行時にエラーが発生した場合、前記処理フローに含まれる前記処理にエラー通知条件が対応付けられているエラー通知設定情報を参照して、前記処理によって異なるエラー通知条件に基づいて発生したエラーを通知するフロー実行部、として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、処理実行方法、サービス提供システム、及びプログラムに関する。
【背景技術】
【０００２】
いくつかの処理を繋ぎ合わせた処理フローに対し管理者などが詳細な設定を行い、ユーザの業務に適した複数の処理を実行するアプリケーションを登録する情報処理システムが知られている。ユーザは機器からアプリケーションを呼び出して、一連の処理を実行することができる。多くの情報処理システムでは管理者がアプリケーションを設定するためのグラフィカルなツール(以下、フローデザインツール)が提供されている。管理者は、ブラウザや専用のソフトウェアなどで、アプリケーションを作成できるようになっている。また、このような情報処理システムでは、管理者が処理フローを設定することも可能になっている。
【０００３】
アプリケーションの実行時には種々のエラーが発生する場合がある。エラーが発生した場合はユーザに通知することが好ましい。エラーの通知の１つの方法として、アプリケーションの実行前にエラー発生可否を判定してユーザに提示する方法がある。しかし、アプリケーションの実行前にはエラーが発生しないと判定されても、実際にアプリケーションが実行された段階でエラーが発生することがある。
【０００４】
そこで、実行されたアプリケーションでエラーが発生した場合にユーザに通知する技術が知られている（例えば、特許文献１参照。）。特許文献１には、エラー発生時にエラーに対応した処理を呼び出すことでエラー処理を行う情報処理システムが開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の技術では、エラーが発生した処理に応じてエラーを通知できないという問題があった。例えば、エラーが発生した処理に応じてメッセージを通知したい場合があるが、従来は、エラーが発生した処理に応じてメッセージを変えるなどの対処が困難であった。
【０００６】
本発明は、上記課題に鑑み、エラーが発生した処理に応じてエラーを通知できる情報処理システム等を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題に鑑み、本発明は、情報処理装置とサービス提供システムとがネットワークを介して通信する情報処理システムであって、
前記情報処理装置は、前記サービス提供システムが実行する複数の処理の実行順を定義する処理フローの実行要求を前記サービス提供システムに送信する第一の通信部と、を有し、
前記サービス提供システムは、前記処理フローの実行要求を受信する第二の通信部と、前記第二の通信部が実行要求を受信した前記処理フローが含む前記処理を実行する複数のコンポーネントと、前記コンポーネントによる前記処理の実行時にエラーが発生した場合、前記処理フローに含まれる前記処理にエラー通知条件が対応付けられているエラー通知設定情報を参照して、前記処理によって異なるエラー通知条件に基づいて発生したエラーを通知するフロー実行部と、を有することを特徴とする。
【発明の効果】
【０００８】
エラーが発生した処理に応じてエラーを通知できる情報処理システム等を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】アプリケーションの実行時にエラーが発生した場合のエラーの通知方法（比較例）を説明する図である。
【図２】本実施形態においてアプリケーションの実行時に生じたエラーを通知する通知方法の概略を説明する図である。
【図３】情報処理システムの一例のシステム構成を示す図である。
【図４】サービス提供システム及びＰＣ端末の一例のハードウェア構成を示す図である。
【図５】機器の一例のハードウェア構成を示す図である。
【図６】情報処理システムの一例の機能構成を示す図である。
【図７】ロジック処理部の一例の機能構成を示す図である。
【図８】型変換情報テーブルの一例を示す図である。
【図９】スキャン&プリントアプリがスキャナで読み取った電子ファイルを入力として処理フローを実行し、処理フローの実行結果をプリントする流れを示す図の一例である。
【図１０】アプリケーションの登録処理の一例を示すシーケンス図である。
【図１１】ポータルトップ画面の一例を示す図である。
【図１２】アプリケーション登録画面Ｇ２００の一例である。
【図１３】アプリケーション登録画面Ｇ３００の一例である。
【図１４】アプリケーション登録画面Ｇ４００の一例である。
【図１５】アプリケーション登録画面Ｇ５００の一例である。
【図１６】管理者が図１２〜図１５で設定したアプリ設定情報の一例を示す図である。
【図１７】二次元コード印刷アプリを実行する場合の全体処理の一例を示すシーケンス図である。
【図１８】アプリ画面の一例を示す図である。
【図１９】二次元コード印刷アプリの実行処理の一例を示すシーケンス図である。
【図２０】アプリケーション登録画面において二次元コード印刷アプリのエラー通知が可能なアプリケーション登録画面の設定例を示す図である。
【図２１】アプリケーション登録画面において特定の経路でエラーになった場合の設定例を示す図である。
【図２２】エラー通知に対応した、二次元コード印刷アプリの実行処理の一例を示すシーケンス図である。
【図２３】アプリケーション登録画面のエラー通知設定欄で設定された情報を格納するエラー通知設定テーブルの一例を示す図である。
【図２４】処理フローの実行時に記録されるログファイルの一例を示す図である。
【図２５】通知先の１つに「self」と設定されたエラー通知設定テーブルの一例を示す図である。
【図２６】発生したエラーに基づいてエラー通知を行うためのエラー通知設定テーブルの一例を示す図である。
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための形態の一例として、情報処理システムと情報処理システムが行う処理実行方法について図面に基づき説明する。
【００１１】
＜本実施形態の比較例＞
まず、本実施形態の情報処理システムを説明するに際してアプリケーションの実行時のエラーに関する比較例を説明する。
【００１２】
図１は、アプリケーションの実行時にエラーが発生した場合のエラーの通知方法（比較例）を説明する図である。図１（ａ）において、メイン４０１の右側のブロックはアプリケーションに含まれる各処理を意味しており、エラー４０２の右側のブロックはエラー発生時に実行される各処理を意味している。
【００１３】
管理者は、エラー発生時に実行する１つ以上の処理を登録しておき、アプリケーションの事項中にエラーが発生した場合、エラー発生時に実行される処理が情報処理システムにより実行される。しかし、図１（ａ）に示すように、どの処理でエラーが発生しても同じエラー処理が実行されるため、どの処理でエラーが発生したかを通知することが困難になる。
【００１４】
そこで、図１（ｂ）に示すように、エラーが発生した処理（タイミング）を考慮することが検討される。しかし、エラーが発生した処理を考慮するためには、エラー処理側で煩雑な条件分岐を行わなければならず、フロー作成者（管理者）の負担が大きく、保守工数も増えてしまうという不都合がある。
【００１５】
＜本実施形態の情報処理システムの概略＞
次に、本実施形態の情報処理システムにおいてアプリケーションの実行中に発生したエラーの通知方法の概略について説明する。
【００１６】
図２は、アプリケーションの実行中に発生したエラーの通知方法の概略について説明する図である。本実施形態では、アプリケーションが有する各処理に通知条件４０３を管理者が設定できることが特徴の１つとなっている。図２では、処理Ｃと処理Ｄにそれぞれ通知条件４０３が設定されている。各処理の通知条件４０３は異ならせることができる（同じでもよい）。アプリケーションの実行時にエラーが発生すると、情報処理システムは通知条件に基づいてエラーを通知する。
【００１７】
本実施形態の通知条件としては以下のような例が挙げられる。
・特定の処理（タイミング）でエラーになった場合
・特定の経路でエラーになった場合
・特定の種類のファイルでエラーになった場合
・特定のパラメータ又はパラメータの組み合わせでエラーになった場合
また、どのように通知するかも処理ごとに管理者が以下のように設定できる。
・エラーメッセージ
・通知先
このように、本実施形態の情報処理システムは、処理ごとにエラーの通知条件を管理者が設定できるため、エラーの通知条件を管理者が詳細に設定できる。すなわち、特定の経路でエラーになったこと、特定の種類のファイルでエラーになったこと、特定のパラメータ又はパラメータの組み合わせでエラーになったことを通知できる。経路について補足する。例えば、処理Ａと処理ＢがクラウドＡ，Ｂからファイルをダウンロードする処理であり、処理Ｃがダウンロードしたファイルのチェック（例えば、ファイルの種類やウィルスチェックなど）を行う処理であるとする。処理Ｃでエラーが発生した場合、クラウドＡからダウンロードした場合とクラウドＢからダウンロードした場合で、情報処理システムがエラーの通知内容を変えた方がよりユーザが理解しやすいエラー通知となる。例えば、クラウドＡからダウンロードしたファイルのファイルチェックでエラーが発生した場合、情報処理システムは「クラウドＡからダウンロードしたファイル(sample.txt)の拡張子が不正です。」といったように、具体的な通知を行うことが可能となる。
【００１８】
本実施形態の情報処理システムは、処理ごとに詳細な通知条件を設定できるため、発生したエラーに応じた細やかなエラー通知が可能になる。
【００１９】
＜用語について＞
処理フローとはいくつかの処理を順番に繋ぎ合わせた一連の処理を言う。処理の一部が実行されなくてもよい。処理フローをワークフローという場合がある。
【００２０】
アプリケーションは、管理者などが各処理に設定値などを設定した処理フローである。処理フローとアプリケーションが同じもでもよい。ＰＣ（Personal Computer）などで実行されるいわゆるアプリケーションソフトとはデータに処理が施される点では同じである。
【００２１】
管理者とは、アプリケーション（処理フロー）を設定したり登録したりするもの（フロー作成者）をいう。いわゆるシステム管理者に限らず、アプリケーションの開発者であればよい。例えば、サービス提供システム１０のディーラーやベンダーがフロー作成者となり得る。
【００２２】
ユーザとは登録されているアプリケーションを実行するものをいう。ただし、ユーザが管理者であってもよいし、管理者がユーザの場合もあり、両者を厳密に区別しなくてよい。
【００２３】
＜システム構成＞
まず、本実施形態に係る情報処理システム１のシステム構成について、図３を参照しながら説明する。図３は、本実施形態に係る情報処理システム１の一例のシステム構成を示す図である。
【００２４】
図３に示す情報処理システム１は、サービス提供システム１０と、機器２０と、ＰＣ端末３０とを含み、インターネット等の広域的なネットワークＮ１を介して通信可能に接続されている。
【００２５】
サービス提供システム１０は、一台以上の情報処理装置で実現され、ネットワークＮ１を介して、種々の機能をそれぞれ実現する複数の処理のうちの１以上の処理を組み合わせた一連の処理により実現される各種のサービスを提供する。
【００２６】
ここで、機能とは、文書ファイルや画像ファイル等の電子ファイルに関する機能である。機能には、例えば、プリント、スキャン、ファクシミリ送信、データ形式の変換、メール配信、ＯＣＲ（Optical character recognition）処理、加工や圧縮・解凍、リポジトリへの格納等が挙げられる。
【００２７】
本実施形態に係るサービス提供システム１０が提供するサービスの具体例については後述する。なお、以降では、一連の処理を「処理フロー」とも表す。
【００２８】
機器２０は、ユーザが使用する各種の電子機器である。すなわち、機器２０は、例えば、ＭＦＰ（Multifunction Peripheral）等の画像形成装置、ＰＣ（パーソナルコンピュータ）、プロジェクタ、電子黒板、デジタルカメラ等である。ユーザは、機器２０を用いて、サービス提供システム１０が提供する各種のサービスを利用することができる。
【００２９】
なお、以降では、複数の機器２０について、各々を区別するときは、「機器２０１」、「機器２０２」等と添え字を用いて記載する。
【００３０】
ＰＣ端末３０は、例えば、ユーザが使用するデスクトップＰＣ、ノート型ＰＣ、スマートフォン、タブレット端末等である。ユーザは、ＰＣ端末３０を用いて、サービス提供システム１０が提供する各種のサービスを利用することができる。
【００３１】
なお、以降では、複数のＰＣ端末３０について、各々を区別するときは、「ＰＣ端末３０１」、「ＰＣ端末３０２」等と添え字を用いて記載する。
【００３２】
また、図３に示す情報処理システム１の構成は一例であって、他の構成であっても良い。例えば、本実施形態に係る情報処理システム１には、電子ファイルの入力及び出力の少なくとも一方を行う各種機器が含まれ、これらの機器がサービス提供システム１０により提供される各種サービスを利用しても良い。
【００３３】
＜ハードウェア構成＞
次に、本実施形態に係る情報処理システム１に含まれるサービス提供システム１０及びＰＣ端末３０のハードウェア構成について、図４を参照しながら説明する。図４は、本実施形態に係るサービス提供システム１０及びＰＣ端末３０の一例のハードウェア構成を示す図である。なお、サービス提供システム１０及びＰＣ端末３０は、同様のハードウェア構成を有しているため、以降では、主に、サービス提供システム１０のハードウェア構成について説明する。
【００３４】
図４に示すサービス提供システム１０は、入力装置１１と、表示装置１２と、外部Ｉ／Ｆ１３と、ＲＡＭ（Random Access Memory）１４とを有する。また、サービス提供システム１０は、ＲＯＭ（Read Only Memory）１５と、ＣＰＵ（Central Processing Unit）１６と、通信Ｉ／Ｆ１７と、ＨＤＤ（Hard Disk Drive）１８とを有する。これらの各ハードウェアは、それぞれがバスＢで接続されている。
【００３５】
入力装置１１は、キーボードやマウス、タッチパネル等を含み、ユーザが各操作信号を入力するのに用いられる。表示装置１２は、ディスプレイ等を含み、サービス提供システム１０による処理結果を表示する。なお、入力装置１１及び表示装置１２の少なくとも一方は、必要なときにサービス提供システム１０に接続して利用する形態であっても良い。
【００３６】
通信Ｉ／Ｆ１７は、サービス提供システム１０をネットワークＮ１に接続するインタフェースである。これにより、サービス提供システム１０は、通信Ｉ／Ｆ１７を介して通信を行うことができる。
【００３７】
ＨＤＤ１８は、プログラムやデータを格納している不揮発性の記憶装置である。ＨＤＤ１８に格納されるプログラムやデータには、サービス提供システム１０全体を制御する基本ソフトウェアであるＯＳ（Operating System）、ＯＳ上において各種機能を提供するアプリケーションソフトウェア等がある。
【００３８】
なお、サービス提供システム１０は、ＨＤＤ１８に代え、記憶媒体としてフラッシュメモリを用いるドライブ装置（例えばソリッドステートドライブ：ＳＳＤ）を利用するものであっても良い。また、ＨＤＤ１８は、格納しているプログラムやデータを所定のファイルシステム及び／又はＤＢにより管理している。
【００３９】
外部Ｉ／Ｆ１３は、外部装置とのインタフェースである。外部装置には、記録媒体１３ａ等がある。これにより、サービス提供システム１０は、外部Ｉ／Ｆ１３を介して記録媒体１３ａの読み取りや書き込みを行うことができる。記録媒体１３ａには、フレキシブルディスク、ＣＤ、ＤＶＤ、ＳＤメモリカード、ＵＳＢメモリ等がある。
【００４０】
ＲＯＭ１５は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。ＲＯＭ１５には、サービス提供システム１０の起動時に実行されるＢＩＯＳ（Basic Input/Output System）、ＯＳ設定、及びネットワーク設定等のプログラムやデータが格納されている。ＲＡＭ１４は、プログラムやデータを一時保持する揮発性の半導体メモリである。
【００４１】
ＣＰＵ１６は、ＲＯＭ１５やＨＤＤ１８等の記憶装置からプログラムやデータをＲＡＭ１４上に読み出し、処理を実行することで、サービス提供システム１０全体の制御や機能を実現する演算装置である。
【００４２】
本実施形態に係るサービス提供システム１０及びＰＣ端末３０は、図４に示すハードウェア構成を有することにより、後述するような各種処理を実現できる。
【００４３】
次に、本実施形態に係る情報処理システム１に含まれる機器２０が画像形成装置である場合のハードウェア構成について、図５を参照しながら説明する。図５は、本実施形態に係る機器２０の一例のハードウェア構成を示す図である。
【００４４】
図５に示す機器２０は、コントローラ２１と、操作パネル２２と、外部Ｉ／Ｆ２３と、通信Ｉ／Ｆ２４と、プリンタ２５と、スキャナ２６とを有する。また、コントローラ２１は、ＣＰＵ３１と、ＲＡＭ３２と、ＲＯＭ３３と、ＮＶＲＡＭ３４と、ＨＤＤ３５とを有する。
【００４５】
ＲＯＭ３３は、各種プログラムやデータを格納している不揮発性の半導体メモリである。ＲＡＭ３２は、プログラムやデータを一時保持する揮発性の半導体メモリである。ＮＶＲＡＭ３４は、例えば設定情報等を格納している。また、ＨＤＤ３５は、各種プログラムやデータを格納している不揮発性の記憶装置である。
【００４６】
ＣＰＵ３１は、ＲＯＭ３３やＮＶＲＡＭ３４、ＨＤＤ３５等からプログラムやデータ、設定情報等をＲＡＭ３２上に読み出し、処理を実行することで、機器２０全体の制御や機能を実現する演算装置である。
【００４７】
操作パネル２２は、ユーザからの入力を受け付ける入力部と、表示を行う表示部とを備えている。外部Ｉ／Ｆ２３は、外部装置とのインタフェースである。外部装置には、記録媒体２３ａ等がある。これにより、機器２０は、外部Ｉ／Ｆ２３を介して記録媒体２３ａの読み取り及び／又は書き込みを行うことができる。なお、記録媒体２３ａには、例えば、ＩＣカード、フレキシブルディスク、ＣＤ、ＤＶＤ、ＳＤメモリカード、ＵＳＢメモリ等がある。
【００４８】
通信Ｉ／Ｆ２４は、機器２０をネットワークに接続するインタフェースである。これにより、機器２０は、通信Ｉ／Ｆ２４を介して通信を行うことができる。プリンタ２５は、印刷データを印刷する印刷装置である。スキャナ２６は、原稿を読み取って電子ファイル（画像ファイル）を生成する読取装置である。
【００４９】
本実施形態に係る機器２０は、図５に示すハードウェア構成を有することにより、後述するような各種処理を実現できる。
【００５０】
＜機能構成＞
次に、本実施形態に係る情報処理システム１の機能構成について、図６を参照しながら説明する。図６は、本実施形態に係る情報処理システムの一例の機能構成を示す図である。
【００５１】
図６に示すＰＣ端末３０は、例えばＣＰＵ１６等により実行されるブラウザ３１０を有する。ＰＣ端末３０を操作する管理者は、ブラウザ３１０を用いて、二次元コードを用いた印刷を行うアプリケーションをサービス提供システム１０に登録することができる。以下このアプリケーションを二次元コード印刷アプリ、二次元コード印刷アプリの実行で提供されるサービスを二次元コード印刷サービスという。
【００５２】
ブラウザ３１０は通信部３１１、表示制御部３１２及び操作受付部３１３を有している。通信部３１１はサービス提供システム１０と各種の情報を送受信し、表示制御部３１２はサービス提供システム１０から受信した画面情報を解析して表示装置１２に表示する。操作受付部３１３はＰＣ端末３０に対する各種の操作を受け付ける。このほか、一般的なブラウザが有する機能を有していてよい。次述するブラウザ２１０の機能も同様であるとする。
【００５３】
図６に示す機器２０は、例えばＣＰＵ３１等により実行されるブラウザ２１０を有する。ブラウザは更に通信部２１１（第一の通信部の一例），表示制御部２１２、及び、操作受付部２１３を有する。機器２０のユーザは、ブラウザ２１０を用いて、「二次元コード印刷」等の各種サービスを利用することができる。すなわち、機器２０は、ブラウザ２１０を有していれば良く、例えば、サービス提供システム１０が提供する各種サービスを利用するための専用のアプリケーションプログラム等を有している必要はない。機器２０が画像形成装置の場合、機器２０は印刷部２２０と読取部２３０を有している。印刷部２２０は電子ファイルを用紙に印刷する。読取部２３０は原稿を光学的に読み取って電子ファイルを生成する。
【００５４】
図６に示すサービス提供システム１０は、入出力サービス処理部１１０と、Ｗｅｂサービス処理部１２０と、ドキュメントサービス部１３０と、ポータルサービス部１４０とを有する。これら各機能部は、サービス提供システム１０にインストールされた１以上のプログラムが、ＣＰＵ１６に実行させる処理により実現される。
【００５５】
また、サービス提供システム１０は、アプリ情報記憶部１５０と、アプリ画面情報記憶部１６０と、ポータル画面情報記憶部１７０とを有する。これら各記憶部は、ＨＤＤ１８を用いて実現可能である。なお、これら各記憶部のうちの少なくとも１つの記憶部が、サービス提供システム１０とネットワークを介して接続される記憶装置等を用いて実現されていても良い。
【００５６】
入出力サービス処理部１１０は、サービス提供システム１０が提供するサービスに関する処理を行う。ここで、入出力サービス処理部１１０は、アプリ管理部１１１と、ロジック処理部１１２とを有する。
【００５７】
アプリ管理部１１１は、アプリ情報記憶部１５０に記憶されているアプリ情報１０００を管理する。なお、アプリ情報１０００とは、一連の処理により実現されるサービスを利用するためのアプリケーションである。換言すれば、サービス提供システム１０が提供する各種サービスは、アプリ情報１０００により提供される。
【００５８】
また、アプリ管理部１１１は、ロジック処理部１１２からの要求に応じて、アプリ情報１０００に含まれる処理フロー情報１１００を返信する。なお、処理フロー情報１１００とは、アプリ情報１０００により提供されるサービスを実現する一連の処理が定義された情報である。
【００５９】
更に、アプリ管理部１１１は、ポータルサービス部１４０からの要求に応じて、アプリ情報１０００をアプリ情報記憶部１５０に記憶させる。これにより、サービスを提供するアプリ情報１０００（アプリケーション）がサービス提供システム１０に登録される。
【００６０】
ロジック処理部１１２は、Ｗｅｂサービス処理部１２０からの要求に応じて、アプリ情報１０００に含まれる処理フロー情報１１００をアプリ管理部１１１から取得する。そして、ロジック処理部１１２は、アプリ管理部１１１から取得した処理フロー情報１１００に基づいて、当該アプリ情報１０００が提供するサービスを実現する一連の処理（処理フロー）を実行する。これにより、本実施形態に係るサービス提供システムは、「二次元コード印刷サービス」等の各種サービスを提供することができる。なお、ロジック処理部１１２の詳細については後述する。
【００６１】
Ｗｅｂサービス処理部１２０は、ユーザが機器２０のブラウザ２１０を用いて各種サービスを利用するための処理を行う。すなわち、Ｗｅｂサービス処理部１２０は、ブラウザ２１０に対してＷｅｂアプリケーション（アプリ情報１０００）を提供するアプリケーションサーバとして機能する。ここで、Ｗｅｂサービス処理部１２０は、画面構成部１２１と、アプリ実行部１２２とを有する。
【００６２】
画面構成部１２１は、ブラウザ２１０からの要求に応じて、アプリ画面情報記憶部１６０に記憶されているアプリ画面情報２０００と、アプリ情報記憶部１５０に記憶されているアプリ情報１０００に含まれるアプリ設定情報１２００とを返信する。
【００６３】
なお、アプリ画面情報２０００とは、アプリ情報１０００により提供されるサービスを利用するための画面（アプリ画面）の雛形が定義された情報である。アプリ画面情報２０００は、例えば、ＨＴＭＬ（HyperText Markup Language）、ＸＨＴＭＬ（Extensible HyperText Markup Language）、ＣＳＳ（Cascading Style Sheets）、ＪａｖａＳｃｒｉｐｔ（登録商標）等でアプリ画面の雛形が定義された情報である。
【００６４】
また、アプリ設定情報１２００は、アプリケーション（アプリ情報１０００）の各種設定が定義された情報である。例えば、アプリ設定情報１２００には、一連の処理の実行に用いられるパラメータ情報のうち、ユーザにより入力されるパラメータ情報やデフォルトで設定されるパラメータ情報等が定義されている。また、例えば、アプリ設定情報１２００には、ユーザがアプリ画面においてパラメータ情報を入力するための入力項目やアプリ画面における表示情報（例えば、アプリケーション名）等が定義されている。アプリ設定情報１２００は、例えば、ＪＳＯＮ（JavaScript Object Notation）等でアプリケーションの各種設定が定義された情報である。
【００６５】
これにより、機器２０には、ブラウザ２１０により、サービス提供システム１０が提供するサービスを利用するためのアプリ画面が表示される。
【００６６】
アプリ実行部１２２は、ブラウザ２１０からの要求に応じて、入出力サービス処理部１１０に対して、アプリケーション（アプリ情報１０００）の実行要求を送信する。
【００６７】
ドキュメントサービス部１３０は、処理フロー情報１１００に基づく一連の処理（処理フロー）に含まれる所定の処理を実行する。ここで、ドキュメントサービス部１３０は、ｐｄｆ処理部１３１と、二次元コード処理部１３２、メール配信部１３３とを有する。
【００６８】
ｐｄｆ処理部１３１は、電子ファイルをｐｄｆファイルに変換する。二次元コード処理部１３２は電子ファイルに二次元コードを埋め込む。メール配信部１３３は、電子ファイルを添付したメールを作成して、当該メールを指定されたメールアドレス宛に配信する。
【００６９】
なお、ドキュメントサービス部１３０には、これら以外にも、例えば、ＯＣＲ処理するＯＣＲ処理部、電子ファイルの圧縮又は解凍するための圧縮・解凍処理部、電子ファイルのデータ形式を変換するためのデータ形式変換部等、種々の機能部が含まれていても良い。
【００７０】
ポータルサービス部１４０は、ユーザがＰＣ端末３０のブラウザ３１０を用いてアプリケーションの登録等を行うための処理を行う。ここで、ポータルサービス部１４０は、ＵＩ提供部１４１と、アプリ登録部１４２とを有する。
【００７１】
ＵＩ提供部１４１は、ブラウザ３１０からの要求に応じて、ポータル画面情報記憶部１７０に記憶されているポータル画面情報３０００を返信する。ここで、ポータルとは、ブラウザ３１０を用いて、アプリケーションの登録等を行うことができるＷｅｂサイトである。
【００７２】
なお、ポータル画面情報３０００とは、ポータルのトップ画面（ポータルトップ画面）やアプリケーション登録画面等の各種画面が定義された情報である。ポータル画面情報３０００は、例えば、ＨＴＭＬ、ＸＭＬ、ＣＳＳ、ＪａｖａＳｃｒｉｐｔ等のブラウザ２１０で各種画面が定義された情報である。
【００７３】
これにより、ＰＣ端末３０には、ブラウザ３１０により、ポータルトップ画面やアプリケーション登録画面が表示される。したがって、ＰＣ端末３０のユーザは、アプリケーション登録画面において、アプリケーション（アプリ情報１０００）の登録操作を行うことができる。
【００７４】
アプリ登録部１４２は、ＵＩ提供部１４１からの要求に応じて、アプリケーション（アプリ情報１０００）の登録をアプリ管理部１１１に要求する。すなわち、アプリ登録部１４２は、アプリケーション登録画面において、アプリケーションの登録操作が行われると、アプリケーションの登録をアプリ管理部１１１に要求する。
【００７５】
アプリ情報記憶部１５０は、アプリ情報１０００を記憶する。アプリ情報１０００は、当該アプリ情報１０００を識別するアプリＩＤと関連付けてアプリ情報記憶部１５０に記憶されている。なお、アプリＩＤは、例えば、アプリ情報１０００のＵＲＬ（Uniform Resource Locator）、又はアプリ情報１０００のＵＲＬに含まれる識別情報等である。
【００７６】
ここで、アプリ情報１０００には、処理フロー情報１１００と、アプリ設定情報１２００とが含まれる。例えば、二次元コード印刷サービスを提供するアプリ情報１０００には、当該サービスを実現する一連の処理が定義された処理フロー情報１１００と、当該アプリ情報１０００の各種設定が定義されたアプリ設定情報１２００とが含まれる。
【００７７】
なお、アプリ情報１０００には、２以上の処理フロー情報１１００と、２以上のアプリ設定情報１２００とが含まれていても良い。
【００７８】
処理フロー情報１１００は、上記したように、アプリ情報１０００により提供されるサービスを実現する一連の処理（処理フロー）が定義された情報である。なお、処理フロー情報１１００の詳細については後述する。
【００７９】
また、アプリ設定情報１２００は、上記したように、アプリケーション（アプリ情報１０００）の各種設定が定義された情報である。なお、アプリ設定情報１２００の詳細については後述する。
【００８０】
アプリ画面情報記憶部１６０は、アプリ画面情報２０００を記憶する。アプリ画面情報２０００は、アプリＩＤと関連付けてアプリ画面情報記憶部１６０に記憶されている。
【００８１】
ポータル画面情報記憶部１７０は、ポータル画面情報３０００を記憶する。ポータル画面情報３０００は、ポータルトップ画面やアプリケーション登録画面等のＵＲＬと関連付けてポータル画面情報記憶部１７０に記憶されている。
【００８２】
なお、入出力サービス処理部１１０、Ｗｅｂサービス処理部１２０、ドキュメントサービス部１３０、及びポータルサービス部１４０等は、それぞれが異なる情報処理装置により実現されていても良い。
【００８３】
次に、ロジック処理部１１２の詳細な機能構成について、図７を参照しながら説明する。図７は、本実施形態に係るロジック処理部１１２の一例の機能構成を示す図である。
【００８４】
図７に示すロジック処理部１１２は、フロー実行部３０１と、コンポーネント管理部３０２と、コンポーネント群３０３と、型変換管理部３０４と、型変換群３０５とを有する。また、ロジック処理部１１２は、型変換情報テーブル４０００を有する。
【００８５】
フロー実行部３０１は、アプリ実行部１２２からアプリケーションの実行要求を受信すると、当該実行要求に対応する処理フロー情報１１００をアプリ管理部１１１から取得する。そして、フロー実行部３０１は、アプリ管理部１１１から取得した処理フロー情報１１００に基づく一連の処理（処理フロー）を実行する。
【００８６】
ここで、処理フロー情報１１００に基づく一連の処理は、当該一連の処理に含まれる各処理を実行するためのコンポーネントを組み合わせることにより実行される。なお、コンポーネントは、所定の機能を実現する処理を実行するためのプログラムやモジュール等により実現され、例えばクラスや関数等で定義される。
【００８７】
コンポーネント管理部３０２は、コンポーネントを管理する。コンポーネント管理部３０２は、フロー実行部３０１からの要求に応じて、コンポーネントを生成すると共に、生成したコンポーネントをフロー実行部３０１に返信する。なお、コンポーネントの生成とは、例えばクラスや関数等で定義されたコンポーネントを、メモリ（例えばＲＡＭ１４）上に展開することである。
【００８８】
コンポーネント群３０３は、コンポーネントの集合である。コンポーネント群３０３には、ｐｄｆコンポーネント１３１０と、二次元コードコンポーネント１３２０と、メール配信コンポーネント１３３０とが含まれる。
【００８９】
ｐｄｆコンポーネント１３１０は、電子ファイル（画像ファイル）をｐｄｆファイルに変換するためのコンポーネントである。二次元コードコンポーネント１３２０は、電子ファイルに二次元コードを埋め込む。メール配信コンポーネント１３３０は、指定されたメールアドレス宛にメール配信するためのコンポーネントである。ｐｄｆコンポーネント１３１０はｐｄｆ処理部１３１に処理を要求し、二次元コードコンポーネント１３２０は二次元コード処理部１３２に処理を要求し、メール配信コンポーネント１３３０はメール配信部１３３に処理を要求する。ただし、コンポーネント自体が処理してもよい。
【００９０】
このように、各コンポーネントは、所定の機能を実現する処理を実行する。なお、コンポーネント群３０３には、上記のコンポーネント以外にも、例えば、電子ファイルの暗号化や復号を行うための暗号化・復号コンポーネント、電子ファイルを圧縮するための圧縮コンポーネント等の各種のコンポーネントが含まれる。
【００９１】
また、コンポーネント群３０３に含まれる各コンポーネントは、コンポーネント共通Ｉ／Ｆ１３００を有する。コンポーネント共通Ｉ／Ｆ１３００は、各コンポーネントに対して共通に定義されたＡＰＩ（Application Programming Interface）であり、コンポーネントを生成するためのＡＰＩと、コンポーネントの処理を実行するためのＡＰＩとが含まれる。
【００９２】
このように、各コンポーネントがコンポーネント共通Ｉ／Ｆ１３００を有することで、コンポーネントの追加等に伴う影響を局所化することができる。すなわち、例えば、フロー実行部３０１やコンポーネント管理部３０２等に影響を与えることなく、コンポーネントの追加等を行うことができる。これにより、本実施形態に係るサービス提供システム１０では、所定の機能の追加等（すなわち、当該機能を実現する処理を実行するためのコンポーネントの追加等）に伴う開発工数を削減することができる。
【００９３】
型変換管理部３０４は、データ型の型変換を管理する。ここで、各コンポーネントは、自身が扱えるデータ型が予め決まっている。したがって、型変換管理部３０４は、コンポーネントからの要求に応じて、例えば図８に示す型変換情報テーブル４０００を参照して、型変換群３０５に含まれる型変換を生成する。
【００９４】
そして、型変換管理部３０４は、生成された型変換に型変換処理の実行を要求する。なお、型変換は、データ型の型変換処理を実行するプログラムやモジュール等により実現され、例えばクラスや関数等で定義される。また、型変換の生成とは、例えばクラスや関数等で定義された型変換を、メモリ（例えばＲＡＭ１４上）に展開することである。
【００９５】
なお、データ型には、例えば、ストリームデータを示すデータ型「ＩｎｐｕｔＳｔｒｅａｍ」、記憶装置等に格納されている電子ファイルのパス（アドレス）を示す「ＬｏｃａｌＦｉｌｅＰａｔｈ」、及び電子ファイルの実体を示す「Ｆｉｌｅ」等が挙げられる。
【００９６】
ここで、型変換情報テーブル４０００について、図８を参照しながら説明する。図８は、型変換情報テーブル４０００の一例を示す図である。
【００９７】
図８に示す型変換情報テーブル４０００は、データ項目として、変換前のデータ型と、変換後のデータ型と、生成する型変換とを有する。すなわち、型変換情報テーブル４０００に格納されている型変換情報は、変換前のデータ型及び変換後のデータ型毎に、当該変換前のデータ型を、当該変換後のデータ型に変換するための型変換が関連付けられた情報である。
【００９８】
型変換群３０５は、型変換の集合である。型変換群３０５には、データ型「ＩｎｐｕｔＳｔｒｅａｍ」を「ＬｏｃａｌＦｉｌｅＰａｔｈ」に変換するための第１の型変換１４１０が含まれる。なお、型変換群３０５には、これ以外にも、例えば、データ型「ＬｏｃａｌＦｉｌｅＰａｔｈ」を「Ｆｉｌｅ」に変換するための第２の型変換等が含まれる。
【００９９】
また、型変換群３０５に含まれる各型変換は、型変換共通Ｉ／Ｆ１４００を有する。型変換共通Ｉ／Ｆ１４００は、各型変換に対して共通に定義されたＡＰＩであり、型変換を生成するためのＡＰＩと、型変換の型変換処理を実行するためのＡＰＩとが含まれる。
【０１００】
このように、各型変換が型変換共通Ｉ／Ｆ１４００を有することで、型変換の追加等に伴う影響を局所化することができる。すなわち、例えば、型変換管理部３０４等に影響を与えることなく、型変換の追加等を行うことができる。これにより、本実施形態に係るサービス提供システム１０では、型変換の追加等に伴う開発工数を削減することができる。
【０１０１】
＜サービス提供システムが提供するサービス＞
本実施形態に係るサービス提供システム１０が提供するサービスについて説明する。なお、以降では、機器２０が画像形成装置であるものとして説明する。
【０１０２】
本実施形態では、「スキャン&プリント」というアプリケーションタイプを利用する場合を説明する。図９は、スキャン&プリントに基づいて作成されたアプリケーションの処理の流れを示す。このアプリケーションは以下の処理を実行する。
１．スキャン
２．フロー実行（ＰＤＦ作成、二次元コード埋め込み）
３．プリント
例えば、ユーザがＰＤＦフィルに二次元コードを付与したい場合、スキャン&プリントに基づいて作成されたアプリケーションを利用すると、スキャンして得た電子文書に二次元コードが埋め込まれたものを印刷するという一連の作業を実現することができる。
【０１０３】
以下では、スキャン&プリントに基づいて二次元コード印刷アプリというアプリケーションの設定の例を説明する。設定画面については図１１以降で説明する。設定画面はポータルサービス部１４０からダウンロードされた画面情報をＰＣ端末３０がブラウザ３１０で表示するものとする。アプリケーションの登録は機器２０も可能である。
【０１０４】
図１０は、アプリケーションの登録処理の一例を示すシーケンス図である。
【０１０５】
まず、ＰＣ端末３０のブラウザ３１０（操作受付部３１３）は、ポータルトップ画面を表示させるための操作（ポータルトップ画面の表示操作）を受け付ける（ステップＳ８０１）。なお、ＰＣ端末３０のユーザは、例えば、ポータルトップ画面のＵＲＬをブラウザ３１０のアドレスバーに入力することで、ポータルトップ画面の表示操作を行うことができる。
【０１０６】
ＰＣ端末３０のブラウザ３１０（通信部３１１）は、ポータルトップ画面の表示操作を受け付けると、ポータルトップ画面の表示要求を、ポータルサービス部１４０のＵＩ提供部１４１に送信する（ステップＳ８０２）。
【０１０７】
サービス提供システム１０の通信部１２５（第二の通信部の一例）はポータルトップ画面の表示要求を受信し、ポータルサービス部１４０のＵＩ提供部１４１は、ポータルトップ画面の取得要求を受信すると、ポータルトップ画面のポータル画面情報をポータル画面情報記憶部１７０から取得する（ステップＳ８０３）。そして、ＵＩ提供部１４１は、通信部１２５を介して、ポータル画面情報記憶部１７０から取得したポータル画面情報をブラウザ３１０に返信する。
【０１０８】
ＰＣ端末３０のブラウザ３１０（表示制御部３１２）は、ポータルトップ画面のポータル画面情報を受信すると、当該ポータル画面情報に基づいて、例えば図１１に示すポータルトップ画面Ｇ１００を表示する（ステップＳ８０４）。
【０１０９】
図１１に示すポータルトップ画面Ｇ１００は、ポータルのトップ画面であり、アプリケーションの登録を行うための「Ａｐｐｌｉｃａｔｉｏｎ」ボタンＧ１１０が含まれる。以降では、ユーザが、図１１に示すポータルトップ画面Ｇ１００において、「Ａｐｐｌｉｃａｔｉｏｎ」ボタンＧ１１０を選択する操作（アプリ登録の選択操作）を行ったものとする。
【０１１０】
なお、図１１に示すポータルトップ画面Ｇ１００には、処理フロー情報１１００の作成等を行うための「Ｆｌｏｗ」ボタンＧ１２０、コンポーネントの登録等を行うための「Ｃｏｍｐｏｎｅｎｔ」ボタンＧ１３０等も含まれる。このように、ポータルトップ画面Ｇ１００では、アプリケーションの登録以外にも、処理フローの作成・実行、コンポーネントの登録・更新等を行うことができる。
【０１１１】
ＰＣ端末３０のブラウザ３１０（操作受付部３１３）は、ユーザにより行われたアプリ登録の選択操作を受け付ける（ステップＳ８０５）。
【０１１２】
ＰＣ端末３０のブラウザ３１０（通信部３１１）は、アプリ登録の選択操作を受け付けると、アプリケーション登録画面の表示要求を、ポータルサービス部４０のＵＩ提供部１４１に送信する（ステップＳ８０６）。
【０１１３】
サービス提供システム１０の通信部１２５はポータルトップ画面の表示要求を受信し、ポータルサービス部１４０のＵＩ提供部１４１は、アプリケーション登録画面の表示要求を受信すると、アプリケーション登録画面のポータル画面情報をポータル画面情報記憶部１７０から取得する（ステップＳ８０７）。そして、ＵＩ提供部１４１は、通信部を介して、ポータル画面情報記憶部１７０から取得したポータル画面情報をブラウザ３１０に返信する。
【０１１４】
ＰＣ端末３０のブラウザ３１０（通信部３１１）は、アプリケーション登録画面のポータル画面情報を受信すると、表示制御部３１２が当該ポータル画面情報に基づいて、例えば図１２に示すアプリケーション登録画面Ｇ２００を表示する（ステップＳ８０８）。
【０１１５】
ここで、以降では、図１２〜図１５を参照しながら、管理者がアプリケーションの登録操作を行う場合について説明する。
【０１１６】
まず、図１２に示すアプリケーション登録画面Ｇ２００は、管理者が登録するアプリケーションのタイプを選択するための画面である。アプリケーション登録画面Ｇ２００はタイプ選択タブＧ２５１、基本設定タブＧ２５２、詳細設定タブＧ２５３、及び、登録タブＧ２５４を有する。図１２ではタイプ選択タブＧ２５１が選択されている。
【０１１７】
図１２に示すアプリケーション登録画面Ｇ２００には、プリントタイプのアプリケーションを登録するための「プリントタイプ」ボタンＧ２１０と、スキャンタイプのアプリケーションを登録するための「スキャンタイプ」ボタンＧ２２０と、スキャン＆プリントタイプのアプリケーションを登録するための「スキャン＆プリントタイプ」ボタンＧ２３０と、が含まれる。なお、図１２に示すアプリケーション登録画面Ｇ２００には、例えば、ＦＡＸタイプのアプリケーションを登録するための「ＦＡＸタイプ」ボタン、メール受信タイプのアプリケーションを登録するための「メール受信タイプ」ボタン等が含まれていても良い。
【０１１８】
また、図１２に示すアプリケーション登録画面Ｇ２００には、次の画面に遷移するための「次へ」ボタンＧ２４０等が含まれる。
【０１１９】
なお、プリントタイプとは、一連の処理による実行結果を示す電子ファイルを画像形成装置等で印刷させるタイプのアプリケーションである。一方、スキャンタイプとは、画像形成装置等においてスキャンにより生成された電子ファイルを入力とした一連の処理を実行させるタイプのアプリケーションである。スキャン＆プリントタイプとは、画像形成装置等においてスキャンにより生成された電子ファイルを入力とし、この電子ファイルを画像形成装置等で印刷させるタイプのアプリケーションである。
【０１２０】
また、例えば、ＦＡＸタイプとは、一連の処理による実行結果を示す電子ファイルを画像形成装置等でＦＡＸ送信させるタイプのアプリケーションである。更に、メール受信タイプとは、画像形成装置等が受信したメールに添付されている電子ファイルを入力とした一連の処理を実行させるタイプのアプリケーションである。
【０１２１】
以降では、管理者が、図１２に示すアプリケーション登録画面Ｇ２００において、「スキャン＆プリントタイプ」ボタンＧ２３０を選択した上で、「次へ」ボタンＧ２４０を押下する操作を行ったものとする。すると、ブラウザ３１０の操作受付部３１３は当該操作を受け付けて、例えば図１３に示すアプリケーション登録画面Ｇ３００を表示する。
【０１２２】
図１３に示すアプリケーション登録画面Ｇ３００は、管理者がアプリケーションの詳細設定を設定するための画面である。アプリケーション登録画面Ｇ３００では、詳細設定タブＧ２５３が選択されている。なお、基本設定タブＧ２５２では、アプリケーション名や対応言語など、アプリケーションの基本的な設定を管理者が行うことができる。
【０１２３】
詳細設定タブＧ２５３では、アプリケーションにおいて管理者に入力させるパラメータを受け付ける。図１３に示すアプリケーション登録画面Ｇ３００は、パラメータ選択欄Ｇ３１０、及び、パラメータカスタマイズ欄Ｇ３２０を有している。ここでは、二次元コード（スタンプ）の配置位置、及び、マージンを設定できる。
【０１２４】
また、アプリケーション登録画面Ｇ３００は処理される順番に並んだ１つ以上のアイコンを有する処理フロー欄３４０を有する。１つのアイコンは１つの処理に対応しており（複数の処理に対応する場合もある）、図１３ではスキャンして二次元コードを埋め込む（スタンプする）ことが表示されている。
【０１２５】
以降では、管理者が、図１３に示すアプリケーション登録画面Ｇ３００において、パラメータを選択した上で、「次へ」ボタンＧ３５０を押下する操作を行ったものとする。すると、ブラウザ３１０の操作受付部３１３は、当該操作を受け付けて、例えば図１４に示すアプリケーション登録画面Ｇ４００を表示する。図１４ではスキャン設定タブＧ２５５が選択されている。
【０１２６】
図１４に示すアプリケーション登録画面Ｇ４００は、管理者がデフォルト値のスキャン条件を設定するための画面である。スキャンタイプ又はスキャン&プリントタイプのアプリケーションはスキャンのデフォルト値を管理者が設定することが可能である。
【０１２７】
図１４に示すアプリケーション登録画面Ｇ４００は、用紙向き設定欄Ｇ４０１、片面・両面設定欄Ｇ４０２、読取カラーモード設定欄Ｇ４０３、読取解像度設定欄Ｇ４０４、及び、読取サイズ設定欄Ｇ４０５の各セレクトボックスを有する。また、各設定欄にはチェックボックスＧ４１０が対応付けられている。
【０１２８】
管理者が、各設定欄に対してセレクトボックスから任意の値を選択すると、作成したアプリケーションにおいてスキャンを行う際のデフォルト値となる。また、セレクトボックスの横に配置しているチェックボックスＧ４１０はチェック有りがデフォルト値からの「変更可」、チェックなしが「変更不可」を意味し、管理者はアプリケーションの実行時にユーザが設定できるスキャン設定を制限できる。こうすることによって解像度を限定するといったアプリ毎の固定値を設定する事が可能になっている。
【０１２９】
ブラウザ３１０の操作受付部３１３はこのようにスキャン設定の登録操作を受け付ける（ステップＳ８０９）。
【０１３０】
以降では、管理者が、「次へ」ボタンＧ４４０を押下する操作を行ったものとする。すると、ブラウザ３１０の操作受付部３１３は、当該操作を受け付けて、例えば図１５に示すアプリケーション登録画面Ｇ５００を表示する。
【０１３１】
図１５に示すアプリケーション登録画面Ｇ５００は、管理者がプリント設定を行うための画面である。図１５ではプリント設定タブＧ２５６が選択されている。プリントタイプ又はスキャン&プリントタイプのアプリケーションはプリントのデフォルト値を管理者が設定することが可能である。
【０１３２】
図１５に示すアプリケーション登録画面Ｇ５００は、印刷部数設定欄Ｇ５０１、印刷カラーモード設定欄Ｇ５０２、及び、印刷面設定欄Ｇ５０３の各セレクトボックスを有する。また、各設定欄にはチェックボックスＧ５１０が対応付けられている。
【０１３３】
管理者が、各設定欄に対してセレクトボックスから任意の値を選択すると、作成したアプリケーションにおいてプリントを行う際のデフォルト値となる。また、セレクトボックスの横に配置しているチェックボックスＧ５１０はチェック有りがデフォルト値からの「変更可」、チェックなしが「変更不可」を意味し、管理者はアプリケーションの実行時にユーザが設定できるプリント設定を制限できる。こうすることによって印刷モードを白黒に限定するといったアプリ毎の固定値を設定する事が可能になっている。
【０１３４】
ブラウザ３１０の操作受付部３１３はこのようにプリント設定の登録操作を受け付ける（ステップＳ８０９）。
【０１３５】
管理者がアプリケーションの登録操作を入力して、ブラウザ３１０の操作受付部３１３がアプリケーションの登録操作を受け付けると、ブラウザ３１０は例えば図１６に示すアプリ設定情報１２００を作成する（ステップＳ８１０）。
【０１３６】
ブラウザ３１０の通信部３１１はアプリケーションの登録要求を、ポータルサービス部１４０のアプリ登録部１４２に送信する（ステップＳ８１１）。なお、アプリケーションの登録要求には、ステップＳ８１０で作成されたアプリ設定情報１２００が含まれる。
【０１３７】
ポータルサービス部１４０のアプリ登録部１４２が通信部１２５を介して、アプリケーションの登録要求を受信すると、当該登録要求を、入出力サービス処理部１１０のアプリ管理部１１１に送信する（ステップＳ８１２）。
【０１３８】
入出力サービス処理部１１０のアプリ管理部１１１は、アプリケーションの登録要求を受信すると、アプリケーションを登録する（ステップＳ８１３）。そして、アプリ管理部１１１は、登録結果をブラウザ３１０に返信する。
【０１３９】
すなわち、アプリ管理部１１１は、アプリケーションの登録要求に含まれるアプリ設定情報１２００をアプリＩＤと関連付けてアプリ情報記憶部１５０に記憶する。これにより、当該アプリ設定情報１２００と、当該アプリ設定情報１２００のフロー名１２０５に定義されたフロー名の処理フロー情報１１００とを含むアプリ情報１０００がサービス提供システム１０に登録される。
【０１４０】
＜アプリ設定情報の一例＞
図１６は管理者が図１２〜図１５で設定したアプリ設定情報１２００の一例を示す。アプリ設定情報１２００は、タイプ選択タブや基本設定タブＧ２５２などで設定された書誌的情報６０１と、デフォルト設定情報６０２を有している。デフォルト設定情報６０２には、図１４、図１５で設定されたスキャン設定情報とプリント設定情報のデフォルト値が含まれる。
【０１４１】
＜アプリケーションの実行動作＞
次に、機器２０の管理者がスキャン＆プリントアプリで作成したアプリケーションとして「二次元コード印刷アプリ」を実行する場合について、図１７を参照しながら説明する。図１７は、二次元コード印刷アプリを実行する場合の全体処理の一例を示すシーケンス図である。
【０１４２】
まず、機器２０のブラウザ２１０（操作受付部２１３）は、二次元コード印刷アプリを表示させるための操作を受け付ける（ステップＳ１６０１）。なお、機器２０のユーザは、例えば、二次元コード印刷アプリのアプリ画面のＵＲＬをブラウザ３１０のアドレスバーに入力することで、アプリ画面の表示操作を行うことができる。
【０１４３】
機器２０のブラウザ２１０（通信部２１１）は、二次元コード印刷サービスのアプリ画面の表示操作を受け付けると、二次元コード印刷アプリのアプリ画面の表示要求を、Ｗｅｂサービス処理部１２０の画面構成部１２１に送信する（ステップＳ１６０２）。なお、二次元コード印刷アプリのアプリ画面の表示要求には、二次元コード印刷アプリのアプリＩＤが含まれる。
【０１４４】
サービス提供システム１０の通信部１２５は二次元コード印刷アプリのアプリ画面の表示要求を受信し、Ｗｅｂサービス処理部１２０の画面構成部１２１は、アプリ設定の取得要求を、入出力サービス処理部１１０のアプリ管理部１１１に送信する（ステップＳ１６０３）。なお、アプリ設定の取得要求には、二次元コード印刷アプリのアプリＩＤが含まれる。
【０１４５】
入出力サービス処理部１１０のアプリ管理部１１１は、アプリ設定の取得要求を受信すると、当該取得要求に含まれるアプリＩＤに関連付けて記憶されているアプリ設定情報１２００をアプリ情報記憶部１５０から取得する（ステップＳ１６０４）。そして、アプリ管理部１１１は、アプリ情報記憶部１５０から取得したアプリ設定情報１２００を画面構成部１２１に返信する。
【０１４６】
次に、Ｗｅｂサービス処理部１２０の画面構成部１２１は、二次元コード印刷アプリのアプリＩＤと関連付けて記憶されているアプリ画面情報２０００をアプリ画面情報記憶部１６０から取得する（ステップＳ１６０５）。そして、画面構成部１２１は、アプリ画面情報記憶部１６０から取得したアプリ画面情報２０００と、上記のステップＳ１６０４で返信されたアプリ設定情報１２００とをブラウザ２１０に返信する。
【０１４７】
機器２０のブラウザ２１０（通信部２１１）は画面構成部１２１からアプリ画面情報２０００とアプリ設定情報１２００とを受信し、表示制御部２１２がこれらに基づいて例えば図１８に示すアプリ画面Ｇ７００を表示する（ステップＳ１６０６）。
【０１４８】
ここで、図１８に示すアプリ画面Ｇ７００は、機器２０のユーザが二次元コード印刷アプリを利用するための画面である。本アプリはスキャンで得た電子ファイルに対して指定した位置にサービス提供システム１０が二次元コードを埋め込み、その結果を機器２０が印刷するアプリケーションである。
【０１４９】
図１８に示すアプリ画面Ｇ７００には、アプリ名Ｇ７１０と、パラメータ入力エリアＧ７２０と、スタートボタンＧ７５０とが含まれる。また、パラメータ入力エリアＧ７２０には、埋め込み文字列入力欄Ｇ７２１と、位置入力欄Ｇ７２２とが含まれる。
【０１５０】
アプリ名Ｇ７１０は、図１２〜図１５の基本設定タブＧ２５２で設定されたアプリ表示名に基づいて表示される。埋め込み文字列入力欄Ｇ７２１には、パラメータとして二次元コードに含める文字列をユーザが設定できる。位置入力欄Ｇ７２２には二次元コードを埋め込む「位置」を設定できる。
【０１５１】
更に、アプリ画面Ｇ７００は読取設定ボタンＧ７３０及び印刷設定ボタンＧ７４０を有し、ユーザがデフォルト値からの変更が許可されている項目を設定した後に、スタートボタンＧ７５０を押下する事でスキャンからプリントまでの一連の処理が実行される。
【０１５２】
図１７に戻って説明する。機器２０のブラウザ２１０（操作受付部２１３）は、スタートボタンＧ７５０の押下を受け付ける（ステップＳ１６０７）。そして、機器２０の読取部２３０はスキャナ２６を制御して、原稿を読み取ることで、電子ファイル（画像ファイル）を生成する（ステップＳ１６０８）。
【０１５３】
機器２０のブラウザ２１０（通信部２１１）は、電子ファイル（画像ファイル）が生成されると、アプリケーションの実行要求を、Ｗｅｂサービス処理部１２０のアプリ実行部１２２に送信する（ステップＳ１６０９）。なお、アプリケーションの実行要求には、図１２〜図１５の基本設定タブＧ２５２で設定されたフロー名（例えば「Stamp−Print」）と、上記のステップＳ１６０８で生成された電子ファイルと、パラメータ設定情報とが含まれる。
【０１５４】
ここで、パラメータ設定情報とは、図１４、図１５で設定されたデフォルト値、管理者によりアプリ画面Ｇ７００で設定されたパラメータ情報、及び、デフォルト値以外の読取設定と印刷設定である。
【０１５５】
Ｗｅｂサービス処理部１２０のアプリ実行部１２２が通信部１２５を介して、アプリケーションの実行要求を受信すると、当該実行要求を、入出力サービス処理部１１０のロジック処理部１１２に送信する（ステップＳ１６１０）。
【０１５６】
次に、入出力サービス処理部１１０のロジック処理部１１２は、アプリケーションの実行要求を受信すると、処理フローの実行処理を行う（ステップＳ１６１１）。すなわち、ロジック処理部１１２は、当該要求に含まれるフロー名の処理フロー情報１１００に基づく一連の処理を実行する。なお、処理フローの実行処理の詳細については図１９に基づいて後述する。
【０１５７】
そして、ロジック処理部１１２は、処理フローの実行処理の処理結果を（二次元コードが埋め込まれたｐｄｆファイル）、Ｗｅｂサービス処理部１２０を介して、ブラウザ２１０に返信する。
【０１５８】
これにより、ブラウザ２１０は機器２０の印刷部２２０に二次元コードが埋め込まれたｐｄｆファイルを渡して、二次元コードが埋め込まれたｐｄｆファイルを印刷部２２０が印刷する（ステップＳ１６１２）。このように、本実施形態に係るサービス提供システム１０は、二次元コード印刷アプリを実行することができる。
【０１５９】
以降では、処理フローの実行処理（図１７のステップＳ１６１１の処理）の詳細について、図１９を参照しながら説明する。図１９は、二次元コード印刷アプリの実行処理の一例を示すシーケンス図である。なお、図１９では電子ファイルがＰＤＦに変換されてから二次元コードが埋め込まれるものとする。
【０１６０】
まず、フロー実行部３０１は、アプリ実行部１２２からアプリケーションの実行要求を受信すると、処理フローの取得要求をアプリ管理部１１１に送信する（ステップＳ１８０１）。なお、当該取得要求には、フロー名「Stamp−Print」が含まれる。
【０１６１】
アプリ管理部１１１は、処理フローの取得要求を受信すると、当該取得要求に含まれるフロー名「Stamp−Print」の処理フロー情報１１００をアプリ情報記憶部１５０から取得する（ステップＳ１８０２）。そして、アプリ管理部１１１は、アプリ情報記憶部１５０から取得した処理フロー情報１１００をフロー実行部３０１に返信する。
【０１６２】
次に、フロー実行部３０１は、処理フロー情報１１００に基づくコンポーネントの取得要求をコンポーネント管理部３０２に送信する（ステップＳ１８０３）。
【０１６３】
すなわち、フロー実行部３０１は、処理フロー情報１１００に含まれるコンポーネント名「"ｐｄｆ"」のｐｄｆコンポーネント１３１０の取得要求をコンポーネント管理部３０２に送信する。
【０１６４】
コンポーネント管理部３０２は、コンポーネントの取得要求を受信すると、コンポーネント名「"ｐｄｆ"」のコンポーネント（すなわち、ｐｄｆコンポーネント１３１０）を生成する（ステップＳ１８０４）。なお、ｐｄｆコンポーネント１３１０の生成は、コンポーネント共通Ｉ／Ｆ１３００に定義されたコンポーネントを生成するためのＡＰＩを用いて行うことができる。
【０１６５】
そして、コンポーネント管理部３０２は、生成したｐｄｆコンポーネント１３１０をフロー実行部３０１に返信する。すなわち、コンポーネント管理部３０２は、例えば、ｐｄｆコンポーネント１３１０が展開されたメモリ（例えばＲＡＭ１４）上のアドレスをフロー実行部３０１に返信する。
【０１６６】
次に、フロー実行部３０１は、コンポーネント実行要求をｐｄｆコンポーネント１３１０に送信する（ステップＳ１８０５）。なお、当該実行要求には、データが含まれる。
【０１６７】
ここで、データは、データ型「ＩｎｐｕｔＳｔｒｅａｍ」として、ブラウザ２１０から受信した電子ファイルである。すなわち、フロー実行部３０１は、ブラウザ２１０から受信した電子ファイルを、単に「データ」として（データ型を意識することなく）、ｐｄｆコンポーネント１３１０に渡して処理の実行を要求する。本実施形態では、このようにデータ型を意識しない電子ファイル等の各種の情報を、単に「データ」と表す。
【０１６８】
ｐｄｆコンポーネント１３１０は、コンポーネント実行要求を受信すると、型変換要求を型変換管理部３０４に送信する（ステップＳ１８０６）。なお、当該型変換要求には、データと、ｐｄｆコンポーネント１３１０が扱うことができるデータ型を示す「ＬｏｃａｌＦｉｌｅＰａｔｈ」の指定とが含まれる。
【０１６９】
型変換管理部３０４は、型変換要求を受信すると、当該型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するか否かをチェックする（ステップＳ１８０７）。
【０１７０】
ここで、型変換要求に含まれるデータのデータ型は「ＩｎｐｕｔＳｔｒｅａｍ」である一方、指定されたデータ型は「ＬｏｃａｌＦｉｌｅＰａｔｈ」である。したがって、型変換管理部３０４は、型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致しないものと判定する。
【０１７１】
すると、型変換管理部３０４は、型変換情報テーブル４０００を参照して、データ型「ＩｎｐｕｔＳｔｒｅａｍ」を「ＬｏｃａｌＦｉｌｅＰａｔｈ」に変換するための型変換を特定する（ここでは、第１の型変換１４１０が特定される。）。そして、型変換管理部３０４は、特定した第１の型変換１４１０を生成する（ステップＳ１８０８）。なお、第１の型変換１４１０の生成は、型変換共通Ｉ／Ｆ１４００を用いて行うことができる。
【０１７２】
次に、型変換管理部３０４は、型変換処理の実行要求を第１の型変換１４１０に送信する（ステップＳ１８０９）。なお、当該実行要求には、データが含まれる。
【０１７３】
第１の型変換１４１０は、型変換の実行要求を受信すると、当該実行要求に含まれるデータのデータ型を「ＩｎｐｕｔＳｔｒｅａｍ」から「ＬｏｃａｌＦｉｌｅＰａｔｈ」に変換する型変換処理を行う（ステップＳ１８１０）。そして、第１の型変換１４１０は、データ型が変換されたデータを型変換管理部３０４に返信する。
【０１７４】
そして、型変換管理部３０４は、第１の型変換１４１０からデータを受信すると、当該データをｐｄｆコンポーネント１３１０に送信する（ステップＳ１８１１）。
【０１７５】
ｐｄｆコンポーネント１３１０は、型変換管理部３０４からデータを受信すると、データに対して処理を実行する（ステップＳ１８１２）。すなわち、ｐｄｆコンポーネント１３１０は、ｐｄｆ処理部１３１により、データにより示される電子ファイルをｐｄｆに変換する。
【０１７６】
そして、ｐｄｆコンポーネント１３１０は、ｐｄｆ変換処理後の電子ファイル（すなわち、ｐｄｆファイル）を示すデータをフロー実行部３０１に返信する。
【０１７７】
次に、フロー実行部３０１は、処理フロー情報１１００に基づくコンポーネントの取得要求をコンポーネント管理部３０２に送信する（ステップＳ１８１３）。すなわち、フロー実行部３０１は、処理フロー情報１１００に含まれるコンポーネント名「"二次元コード"」の二次元コードコンポーネント１３２０の取得要求をコンポーネント管理部３０２に送信する。
【０１７８】
コンポーネント管理部３０２は、コンポーネントの取得要求を受信すると、コンポーネント名「"二次元コード"」のコンポーネント（すなわち、二次元コードコンポーネント１３２０）を生成する（ステップＳ１８１４）。なお、二次元コードコンポーネント１３２０の生成は、コンポーネント共通Ｉ／Ｆ１３００に定義されたコンポーネントを生成するためのＡＰＩを用いて行うことができる。
【０１７９】
そして、コンポーネント管理部３０２は、生成した二次元コードコンポーネント１３２０をフロー実行部３０１に返信する。すなわち、コンポーネント管理部３０２は、例えば、二次元コードコンポーネント１３２０が展開されたメモリ（例えばＲＡＭ１４）上のアドレスをフロー実行部３０１に返信する。
【０１８０】
次に、フロー実行部３０１は、コンポーネント実行要求を二次元コードコンポーネント１３２０に送信する（ステップＳ１８１５）。なお、当該実行要求には、データと、パラメータ情報とが含まれる。
【０１８１】
ここで、データは、二次元コードコンポーネント１３２０から返信されたデータ（すなわち、二次元コードが付されたｐｄｆファイルを示すパス）である。
【０１８２】
また、パラメータ情報は、図１８で設定された二次元コードに含める文字列と二次元コードを埋め込む「位置」である。
【０１８３】
二次元コードコンポーネント１３２０は、コンポーネント実行要求を受信すると、型変換要求を型変換管理部３０４に送信する（ステップＳ１８１６）。なお、当該型変換要求には、データと、二次元コードコンポーネント１３２０が扱うことができるデータ型を示す「ＬｏｃａｌＦｉｌｅＰａｔｈ」の指定とが含まれる。
【０１８４】
型変換管理部３０４は、型変換要求を受信すると、当該型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するか否かをチェックする（ステップＳ１８１７）。
【０１８５】
ここで、型変換要求に含まれるデータのデータ型は「ＬｏｃａｌＦｉｌｅＰａｔｈ」であり、指定されたデータ型も「ＬｏｃａｌＦｉｌｅＰａｔｈ」である。したがって、型変換管理部３０４は、型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するものと判定する。
【０１８６】
すると、型変換管理部３０４は、型変換要求に含まれるデータをｐｄｆコンポーネント１３１０に送信する（ステップＳ１８１８）。このように、データ型のチェック（ステップＳ１８１７の処理）において、データのデータ型と、指定されたデータ型とが一致すると判定された場合には、型変換管理部３０４は、型変換の生成を行わない。
【０１８７】
ｐｄｆコンポーネント１３１０は、型変換管理部３０４からデータを受信すると、パラメータ情報を用いて、データに対して処理を実行する（ステップＳ１８１９）。すなわち、ｐｄｆコンポーネント１３１０は、パラメータ情報に含まれる文字列を二次元コードに変換し、パラメータ情報に含まれる位置に埋め込む（形成する）。
【０１８８】
そして、ｐｄｆコンポーネント１３１０は、二次元コードを埋め込んだｐｄｆファイルを示すデータをフロー実行部３０１に返信する。
【０１８９】
フロー実行部３０１は二次元コードを埋め込んだｐｄｆファイルを、Ｗｅｂサービス処理部１２０を介して機器２０に送信する。
【０１９０】
＜エラー通知条件の設定方法＞
以下では、処理フローの実行中にエラー通知が可能なサービス提供システム１０について説明する。
【０１９１】
エラー通知条件は図１２〜図１５のアプリケーション登録画面Ｇ２００、Ｇ３００，Ｇ４００、Ｇ５００にて管理者が設定することができる。管理者は処理フロー上のコンポーネントを選択し、エラー通知条件を設定する。
【０１９２】
図２０は、アプリケーション登録画面において二次元コード印刷アプリのエラー通知が可能なアプリケーション登録画面Ｇ６００の設定例を示す。アプリケーション登録画面Ｇ６００は処理フロー設定欄Ｇ６０１を有している。処理フロー設定欄Ｇ６０１には各処理が処理の順番にアイコンで示されている。二次元コード印刷アプリは上記のようにサービスＡからファイルをダウンロードする「ファイルダウンロードサービスＡ」コンポーネントのアイコンＧ６１０と、サービスＢからファイルをダウンロードする「ファイルダウンロードサービスＢ」コンポーネントのアイコンＧ６１１と、電子ファイルをＰＤＦ変換するＰＤＦコンポーネントのアイコンＧ６１２と、ＰＤＦに二次元コードを埋め込む二次元コードコンポーネントのアイコンＧ６１３と、機器２０を表すアイコンＧ６１４を有している。
【０１９３】
また、アプリケーション登録画面Ｇ６００はエラー通知設定欄Ｇ６２０を有する。エラー通知設定欄Ｇ６２０は、通知条件設定欄Ｇ６０２、メッセージ設定欄Ｇ６０３、通知方法設定欄Ｇ６０４、及び、通知先設定欄Ｇ６０５を有し、管理者はエラー発生時の通知設定を行う。図２０の例は「ＰＤＦコンポーネント」のエラー通知設定例である。
【０１９４】
通知条件設定欄Ｇ６０２：通知を行うか否かを判定する通知条件が選択可能なセレクトボックスである。以下を選択可能になっている。
・エラーが発生した場合は全て
・特定のファイルでエラーになった場合(ファイルの種類が不正、ウィルス入りのファイルだった場合など)
・特定のパラメータ又はパラメータの組み合わせでエラーになった場合(設定不可能な組み合わせの設定だった場合など)
・特定の経路でエラーになった場合については図２１にて説明する。
【０１９５】
メッセージ設定欄Ｇ６０３：通知される文章を管理者が任意に設定できる。
【０１９６】
通知方法設定欄Ｇ６０４：どの媒体で通知するかを選択可能なセレクトボックスである。以下を選択可能になっている。
・メール
・SNS
・チャット
通知先設定欄Ｇ６０５：メールアドレスやＳＮＳのグループ名など宛先である。
【０１９７】
このようにして設定されたエラー通知に関する情報は、サービス提供システム１０に送信されアプリ設定情報１２００に記憶される。同様のエラー通知設定欄Ｇ６２０はコンポーネントごとに表示され、管理者はコンポーネントごとにエラー通知を設定できる。
【０１９８】
図２１は、アプリケーション登録画面Ｇ６００において特定の経路でエラーになった場合の設定例を示す図である。図２１のアプリケーション登録画面Ｇ６００は経路設定欄Ｇ６０６及び経路追加ボタンＧ６０７を有している。経路設定欄Ｇ６０６は、通知条件設定欄Ｇ６０２で「特定の経路でエラーになった場合」が選択されると表示される。
【０１９９】
経路設定欄Ｇ６０６は経路の起点処理欄Ｇ６０６Ａと終点処理欄Ｇ６０６Ｂを有する。管理者は、起点処理欄Ｇ６０６Ａと終点処理欄Ｇ６０６Ｂに処理フロー設定欄Ｇ６０１のアイコンをドラッグするなどで、起点処理と終点処理を設定できる。図２１では
ファイルダウンロードサービスＡ −> ＰＤＦ変換
という経路をユーザが指定している。管理者はこの経路でエラーになった場合のメッセージをメッセージ設定欄Ｇ６０３に設定する。図２１では、「ファイルダウンロードサービスＡからダウンロードしたファイルが破損して変換できません」と入力されている。なお、起点処理欄Ｇ６０６Ａと終点処理欄Ｇ６０６Ｂに設定された処理の名称、又は、名称を使ったメッセージが自動的にメッセージ設定欄Ｇ６０３に表示されてもよい。
【０２００】
管理者は経路追加ボタンＧ６０７を押下することで、経路設定欄Ｇ６０６を追加して表示できる。したがって、任意の特定経路を起点処理欄Ｇ６０６Ａと終点処理欄Ｇ６０６Ｂに設定できる。
【０２０１】
フロー実行部３０１は経路設定欄Ｇ６０６で設定された経路を通過した処理でエラーが発生した場合、通知先欄Ｇ６０５で設定されている通知先にメッセージを送信する。
【０２０２】
＜エラー通知の手順＞
次に、図２２を用いて、エラーが発生した場合のロジック処理部１１２の処理について説明する。図２２は、エラー通知に対応した、二次元コード印刷アプリの実行処理の一例を示すシーケンス図である。なお、図２２の説明では、図１９との相違を説明する。
【０２０３】
ステップＳ１８０１〜Ｓ１８１９までの処理は図１９と同様であるが、ステップＳ１８１９において、エラーが発生したものとする。エラーが発生した旨はフロー実行部３０１に通知される。エラーが発生した旨には、どのようなエラーが発生したのかが通知されるので、フロー実行部３０１は設定された通知条件と合致するかどうかを判定できる。また、処理フローの経路は記録されているログにより判定される。
【０２０４】
フロー実行部３０１は二次元コード印刷アプリのアプリＩＤを指定して、アプリ管理部１１１に対し二次元コード印刷アプリに登録されているエラー通知条件を取得する（Ｓ１８１９−２）。
【０２０５】
フロー実行部３０１は取得したエラー通知条件と発生したエラーが合致するか否かを判定する（Ｓ１８１９−３）。判定の詳細は図２３〜図２６にて説明する。
【０２０６】
エラー通知条件と発生したエラーが合致する場合、フロー実行部３０１はエラー通知を行う（Ｓ１８１９−４）。図２２の例では、通知方法がメールであったため、「メールサービス」にメール通知を依頼している。
【０２０７】
＜判定方法＞
図２３を用いて判定方法について説明する。図２３は、アプリケーション登録画面Ｇ６００のエラー通知設定欄Ｇ６２０で設定された情報を格納するエラー通知設定テーブルの一例である。エラー通知設定欄Ｇ６２０の設定内容に基づいてアプリごとにエラー通知設定が登録されている。すなわち、エラー通知設定テーブル（エラー通知設定情報の一例）では、対象アプリ、通知条件、エラー通知条件判定情報、メッセージ、通知方法、通知先、対象コンポーネント識別子、及び、優先度の各項目が対応付けられている。
【０２０８】
対象アプリ、通知条件、メッセージ、通知方法、通知先、対象コンポーネント識別子については、管理者が設定した内容そのものである。優先度はどの順番で処理のエラーの有無を判定するかを規定する。
【０２０９】
エラー通知条件判定情報は通知条件に基づいてアプリ管理部１１１が生成する。例えば、通知条件が特定のファイルであり更に管理者がＺＩＰファイルを指定した場合、エラー通知条件判定情報は「"extenson"："zip"」となる（拡張子がZIPであること）。つまり、管理者はコンポーネントに入力できないファイルの種類を拡張子などで設定しておく。あるいは、ウィルス入りのファイルを特定のファイルとして管理者が設定することもできる。アプリケーションに含まれるコンポーネントが通知するエラーの内容にはファイルの種類やウィルスのチェック結果が含まれているので、フロー実行部３０１は通知条件とエラー内容が合致するか否かを判定できる。
【０２１０】
また、通知条件が特定のパラメータ又はパラメータの組み合わせでエラーになった場合であり、管理者が具体的な設定として、日本語が指定された電子ファイルでdocxという種類のファイルを指定して通知条件を設定した場合、エラー通知条件判定情報は以下のようになる。
「"key":"language""value": "japanese",
"key": filetype" "value": "docx"」
つまり、管理者はコンポーネントで処理できないパラメータの組み合わせを、そのパラメータ名でエラー通知設定欄Ｇ６２０に設定しておく。ここでは言語とファイルの種類が、アプリケーションが含むコンポーネントで処理できないパラメータの組み合わせである。処理できないパラメータの組み合わせでエラーになった場合、コンポーネントがフロー実行部３０１に通知するエラーの内容には処理できない具体的なパラメータの組み合わせが含まれているので、フロー実行部３０１は通知条件とエラー内容が合致するか否かを判定できる。
【０２１１】
なお、管理者は、特定のパラメータの組み合わせでなく特定のパラメータを通知条件とすることもできる。
【０２１２】
また、通知条件が特定の経路であり、管理者が具体的な処理の経路として、サービスＢとＰＤＦという経路を設定した場合、エラー通知条件判定情報は「"route": "ServiceB","PDF"」となる。
【０２１３】
なお、エラー通知条件判定情報は、管理者が設定する他、ユーザがカスタマイズすることができる。
【０２１４】
このような経路が正しいかどうかをフロー実行部３０１が判定するには以下のようなログファイルが必要になる。
【０２１５】
図２４は処理フローの実行時に記録されるログファイルの一例である。ログファイルには処理フローに含まれるコンポーネントが実行された順に、コンポーネント名（処理名）、ステータス等が格納されている。つまりログファイルには処理の経路が記録されている。
【０２１６】
図２４によれば、記述１にはサービスＢからのダウンロードに対応するコンポーネントの実行結果が記述されており、記述２にはＰＤＦ変換に対応するコンポーネントの実行結果が記録されている。したがって、サービスＢ −> ＰＤＦ変換 の順に実行され、ＰＤＦ変換でエラーが発生したことが分かる。
【０２１７】
フロー実行部３０１がログファイルと、エラー通知条件判定情報のrouteを比較すると、エラー通知条件判定情報は実行順が サービスＢ −> ＰＤＦ変換と設定されているため、通知条件に合致していると判定する。通知条件に合致している場合、フロー実行部３０１は通知条件に対応付けられている通知方法と通知先にエラー通知を行う。
【０２１８】
なお、判定を行うフロー実行部３０１はエラー通知条件ごとに判定ロジックを持っており、判定ロジックにエラー通知条件判定情報を渡すことにより条件に合致するかどうかを判定する。エラーの内容と通知条件が合致した場合及び合致しない場合も、フロー実行部３０１は次に優先度が高い通知条件を順に判定する。
【０２１９】
このように、コンポーネントに対応付けてエラーを通知できるので、特定の処理（タイミング）でエラーになったことを検出して通知できる。また、通知条件にファイルの種類やウィルスチェックの結果が設定されることで、特定のファイルでエラーになったことを検出して通知できる。また、通知条件に特定のパラメータの組み合わせを設定することで、特定のパラメータの組み合わせエラーになったことを検出して通知できる。また、通知条件に経路が設定されることで、特定の経路でエラーになったことを検出して通知できる。
【０２２０】
なお、図２５，図２６に示すようにエラー通知設定テーブルに設定される情報には種々のバリエーションがある。
【０２２１】
図２５は、通知先の１つに「self」と設定されたエラー通知設定テーブルの一例を示す。通知先に self と登録してある場合、フロー実行部３０１は実行したユーザに通知することができる。「self」はユーザ自身を示し、サービス提供システム１０にログインしたユーザに関連付けられているユーザ情報が有する宛先（メールアドレス、ＳＮＳ、チャットなど）を参照して、アプリケーションを実行したユーザにエラーを通知できる。
【０２２２】
図２６は発生したエラーに基づいてエラー通知を行うためのエラー通知設定テーブルの一例を示す。新たに対象エラーコードという項目が設定されている。対象エラーコードはエラーコードの種類を示す。一例として「forbidden」はアクセス権エラーを意味し、このエラーが発生した場合に「権限のないユーザがファイルにアクセスしようとしています。」というメッセージが通知されることが設定されている。したがって、発生したエラーの種類によって、エラー通知を行うことができる。
【０２２３】
なお、ユーザの権限に関する情報はコンポーネントに通知されており、コンポーネントは処理に際しこのユーザが処理を実行する権限を有するか否かを判定する。対象エラーコードはコンポーネントからフロー実行部３０１に通知される。
【０２２４】
＜まとめ＞
以上説明したように、本実施形態の情報処理システムは、処理ごとにエラーの通知条件を管理者が設定できる。また、詳細な通知条件を設定できるため、発生したエラーに応じた細やかな通知が可能になる。
【０２２５】
＜その他の適用例＞
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【０２２６】
例えば、本実施形態では二次元コード印刷アプリを例に説明したが、エラーを通知するアプリケーションはどのようなものでもよい。
【０２２７】
また、本実施形態では機器２０として主に画像形成装置を説明に使用したが、アプリケーションを実行する機器は画像形成装置に限られない。例えば、ＰＪ（Projector：プロジェクタ）、ＩＷＢ（Interactive White Board：相互通信が可能な電子式の黒板機能を有する白板）、テレビ会議端末等であってもよい。
【０２２８】
また、図６、図７などの構成例は、サービス提供システム１０による処理の理解を容易にするために、主な機能に応じて分割したものである。処理単位の分割の仕方や名称によって本願発明が制限されることはない。サービス提供システム１０の処理は、処理内容に応じて更に多くの処理単位に分割することもできる。また、１つの処理単位が更に多くの処理を含むように分割することもできる。
【０２２９】
上記で説明した実施形態の各機能は、一又は複数の処理回路によって実現することが可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたASIC(Application Specific Integrated Circuit)、DSP（Digital Signal Processor）、FPGA（Field Programmable Gate Array）や従来の回路モジュール等のデバイスを含むものとする。
【符号の説明】
【０２３０】
１          情報処理システム
１０        サービス提供システム
２０        機器
３０        ＰＣ端末
【先行技術文献】
【特許文献】
【０２３１】
【特許文献１】特開２０１７−０４１２２２号公報
【図１】
2020205579.tif 000003
【図２】
2020205579.tif 000004
【図３】
2020205579.tif 000005
【図４】
2020205579.tif 000006
【図５】
2020205579.tif 000007
【図６】
2020205579.tif 000008
【図７】
2020205579.tif 000009
【図８】
2020205579.tif 000010
【図９】
2020205579.tif 000011
【図１０】
2020205579.tif 000012
【図１１】
2020205579.tif 000013
【図１２】
2020205579.tif 000014
【図１３】
2020205579.tif 000015
【図１４】
2020205579.tif 000016
【図１５】
2020205579.tif 000017
【図１６】
2020205579.tif 000018
【図１７】
2020205579.tif 000019
【図１８】
2020205579.tif 000020
【図１９】
2020205579.tif 000021
【図２０】
2020205579.tif 000022
【図２１】
2020205579.tif 000023
【図２２】
2020205579.tif 000024
【図２３】
2020205579.tif 000025
【図２４】
2020205579.tif 000026
【図２５】
2020205579.tif 000027
【図２６】
2020205579.tif 000028