(57)【要約】【課題】アプリケーションの開発を支援する。【解決手段】所定の処理を実行するプログラムを有する情報処理システムであって、一連の処理を実行するアプリ毎に、プログラムを識別するプログラム識別情報と、実行順とが定義されたフロー情報を、パラメータ情報と、フロー識別情報とが定義されたアプリ設定情報に関連付けたアプリを記憶するアプリ記憶手段と、機器において作成されたアプリ設定情報を含む登録要求を受信する受信手段と、登録要求に含まれるアプリ設定情報に定義されているパラメータ情報に基づいて、テストケースを生成する生成手段と、アプリ設定情報に定義されたフロー識別情報により識別されるフロー情報を取得する取得手段と、フロー情報に定義されているプログラム識別情報が識別するプログラムを実行順に従ってテストケースが示すパラメータ情報の組み合わせを用いて実行して、一連の処理の実行をテストする実行手段とを有する。【選択図】図４
2018200667.tif 000002
【特許請求の範囲】
【請求項１】
１以上の情報処理装置を含み、所定の処理をそれぞれ実行する複数のプログラムを有する情報処理システムであって、
電子データを用いた一連の処理を実行するアプリケーション毎に、該一連の処理のそれぞれの処理を実行する１以上の前記プログラムを識別するプログラム識別情報と、１以上の前記プログラムの実行順とが定義されたフロー情報を、１以上の前記プログラムそれぞれの実行に用いられるパラメータ情報と、前記フロー情報を識別するフロー識別情報とが定義されたアプリ設定情報に関連付けた前記アプリケーションを記憶するアプリ記憶手段と、
前記情報処理システムに接続される１以上の電子機器のうちの一の電子機器において作成された前記アプリ設定情報を含む登録要求を受信する受信手段と、
前記受信手段により受信した前記登録要求に含まれる前記アプリ設定情報に定義されている前記パラメータ情報に基づいて、前記一連の処理の実行をテストするための前記パラメータ情報の組み合わせを示すテストケースを生成する生成手段と、
前記登録要求に含まれる前記アプリ設定情報に定義された前記フロー識別情報により識別される前記フロー情報を前記アプリ記憶手段から取得する取得手段と、
前記取得手段により取得された前記フロー情報に定義されている前記プログラム識別情報により識別される１以上の前記プログラムそれぞれを、前記フロー情報に定義されている前記実行順に従って、前記生成手段により生成された前記テストケースにより示される前記パラメータ情報の組み合わせを用いて実行させることで、前記一連の処理の実行をテストする実行手段と、
を有する情報処理システム。
【請求項２】
前記受信手段により受信した前記アプリ設定情報を、該アプリ設定情報に定義された前記フロー識別情報により識別される前記フロー情報に関連付けて前記アプリ記憶手段に記憶させるアプリ登録手段を有し、
前記生成手段は、
前記アプリ登録手段により登録された前記アプリ設定情報に定義されている前記パラメータ情報に基づいて、前記テストケースを生成する、ことを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記実行手段による前記テストが成功した場合に、前記受信手段により受信した前記アプリ設定情報を、該アプリ設定情報に定義された前記フロー識別情報により識別される前記フロー情報に関連付けて前記アプリ記憶手段に記憶させるアプリ登録手段を有する、ことを特徴とする請求項１に記載の情報処理システム。
【請求項４】
前記生成手段は、
前記アプリ設定情報に定義されている前記パラメータ情報と、該パラメータ情報に対して設定可能なパラメータ値の範囲を示す情報とに基づいて、前記範囲の境界値がパラメータ値として設定された前記パラメータ情報を含む前記テストケースを生成する、ことを特徴とする請求項１乃至３の何れか一項に記載の情報処理システム。
【請求項５】
前記生成手段は、
前記アプリ設定情報に定義されている前記パラメータ情報と、該アプリ設定情報に定義された前記フロー識別情報により識別される前記フロー情報に定義されている前記パラメータ情報とに基づいて、前記テストケースを生成する、ことを特徴とする請求項１乃至４の何れか一項に記載の情報処理システム。
【請求項６】
前記生成手段は、
前記アプリ設定情報に定義されている前記パラメータ情報と、該アプリ設定情報に定義された前記フロー識別情報により識別される前記フロー情報に定義されている前記パラメータ情報とのうちの少なくとも一方のパラメータ情報について、ユーザにより入力されたパラメータ値が設定されたパラメータ情報に基づいて、前記テストケースを生成する、ことを特徴とする請求項１乃至４の何れか一項に記載の情報処理システム。
【請求項７】
前記受信手段により受信した前記登録要求に含まれる前記アプリ設定情報に定義された前記フロー識別情報により識別される前記フロー情報に定義されている前記プログラム識別情報を特定する特定手段を有し、
前記生成手段は、
前記アプリ設定情報に定義されている前記パラメータ情報と、前記特定手段により特定された前記プログラム識別情報により識別される前記プログラムに関する情報に定義されている前記パラメータ情報とに基づいて、前記テストケースを生成する、ことを特徴とする請求項１乃至４の何れか一項に記載の情報処理システム。
【請求項８】
所定の処理をそれぞれ実行する複数のプログラムを有する情報処理装置であって、
電子データを用いた一連の処理を実行するアプリケーション毎に、該一連の処理のそれぞれの処理を実行する１以上の前記プログラムを識別するプログラム識別情報と、１以上の前記プログラムの実行順とが定義されたフロー情報を、１以上の前記プログラムそれぞれの実行に用いられるパラメータ情報と、前記フロー情報を識別するフロー識別情報とが定義されたアプリ設定情報に関連付けた前記アプリケーションを記憶するアプリ記憶手段と、
前記情報処理装置に接続される１以上の電子機器のうちの一の電子機器において作成された前記アプリ設定情報を含む登録要求を受信する受信手段と、
前記受信手段により受信した前記登録要求に含まれる前記アプリ設定情報に定義されている前記パラメータ情報に基づいて、前記一連の処理の実行をテストするための前記パラメータ情報の組み合わせを示すテストケースを生成する生成手段と、
前記登録要求に含まれる前記アプリ設定情報に定義された前記フロー識別情報により識別される前記フロー情報を前記アプリ記憶手段から取得する取得手段と、
前記取得手段により取得された前記フロー情報に定義されている前記プログラム識別情報により識別される１以上の前記プログラムそれぞれを、前記フロー情報に定義されている前記実行順に従って、前記生成手段により生成された前記テストケースにより示される前記パラメータ情報の組み合わせを用いて実行させることで、前記一連の処理の実行をテストする実行手段と、
を有する情報処理装置。
【請求項９】
１以上の情報処理装置を含み、所定の処理をそれぞれ実行する複数のプログラムを有する情報処理システムであって、電子データを用いた一連の処理を実行するアプリケーション毎に、該一連の処理のそれぞれの処理を実行する１以上の前記プログラムを識別するプログラム識別情報と、１以上の前記プログラムの実行順とが定義されたフロー情報を、１以上の前記プログラムそれぞれの実行に用いられるパラメータ情報と、前記フロー情報を識別するフロー識別情報とが定義されたアプリ設定情報に関連付けた前記アプリケーションを記憶するアプリ記憶手段を有する情報処理システムに用いられる情報処理方法において、
前記情報処理システムに接続される１以上の電子機器のうちの一の電子機器において作成された前記アプリ設定情報を含む登録要求を受信する受信手順と、
前記受信手順により受信した前記登録要求に含まれる前記アプリ設定情報に定義されている前記パラメータ情報に基づいて、前記一連の処理の実行をテストするための前記パラメータ情報の組み合わせを示すテストケースを生成する生成手順と、
前記登録要求に含まれる前記アプリ設定情報に定義された前記フロー識別情報により識別される前記フロー情報を前記アプリ記憶手段から取得する取得手順と、
前記取得手順により取得された前記フロー情報に定義されている前記プログラム識別情報により識別される１以上の前記プログラムそれぞれを、前記フロー情報に定義されている前記実行順に従って、前記生成手順により生成された前記テストケースにより示される前記パラメータ情報の組み合わせを用いて実行させることで、前記一連の処理の実行をテストする実行手順と、
を有する情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理装置及び情報処理方法に関する。
【背景技術】
【０００２】
近年、複数の機能（例えば、スキャンやプリント、メール配信等）を組み合わせた機能を提供するサービス等が知られるようになった。例えば、スキャンにより生成された電子ファイル（画像ファイル）に所定の処理を行った上で、メール配信するサービス等が知られている。このようなサービスは、各機能を実現する１以上の処理が一連の処理として実行されることにより実現される。
【０００３】
また、１以上の処理を一連の処理として表した処理情報等が含まれる指示書に基づいて、当該一連の処理を実行する画像形成装置が知られている（例えば特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記の従来技術では、ユーザがサービスを利用するためには、例えば、一連の処理を実行させるためのアプリケーションの開発が必要であった。一方で、アプリケーションの開発には、例えば、プログラミング言語等に関する専門的な知識や経験を必要とする場合があった。
【０００５】
本発明の一実施形態は、上記の点に鑑みてなされたもので、アプリケーションの開発を支援することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明の一実施形態は、１以上の情報処理装置を含み、所定の処理をそれぞれ実行する複数のプログラムを有する情報処理システムであって、電子データを用いた一連の処理を実行するアプリケーション毎に、該一連の処理のそれぞれの処理を実行する１以上の前記プログラムを識別するプログラム識別情報と、１以上の前記プログラムの実行順とが定義されたフロー情報を、１以上の前記プログラムそれぞれの実行に用いられるパラメータ情報と、前記フロー情報を識別するフロー識別情報とが定義されたアプリ設定情報に関連付けた前記アプリケーションを記憶するアプリ記憶手段と、前記情報処理システムに接続される１以上の電子機器のうちの一の電子機器において作成された前記アプリ設定情報を含む登録要求を受信する受信手段と、前記受信手段により受信した前記登録要求に含まれる前記アプリ設定情報に定義されている前記パラメータ情報に基づいて、前記一連の処理の実行をテストするための前記パラメータ情報の組み合わせを示すテストケースを生成する生成手段と、前記登録要求に含まれる前記アプリ設定情報に定義された前記フロー識別情報により識別される前記フロー情報を前記アプリ記憶手段から取得する取得手段と、前記取得手段により取得された前記フロー情報に定義されている前記プログラム識別情報により識別される１以上の前記プログラムそれぞれを、前記フロー情報に定義されている前記実行順に従って、前記生成手段により生成された前記テストケースにより示される前記パラメータ情報の組み合わせを用いて実行させることで、前記一連の処理の実行をテストする実行手段と、を有する。
【発明の効果】
【０００７】
本発明の一実施形態によれば、アプリケーションの開発を支援することができる。
【図面の簡単な説明】
【０００８】
【図１】第一の実施形態に係る情報処理システムのシステム構成の一例を示す図である。
【図２】第一の実施形態に係るサービス提供システム及びＰＣ端末のハードウェア構成の一例を示す図である。
【図３】第一の実施形態に係る機器のハードウェア構成の一例を示す図である。
【図４】第一の実施形態に係る情報処理システムの機能構成の一例を示す図である。
【図５】第一の実施形態に係るロジック処理部の機能構成の一例を示す図である。
【図６】型変換情報テーブルの一例を示す図である。
【図７】処理フロー情報の一例を示す図である。
【図８】第一の実施形態に係るアプリケーションの登録処理の一例を示すシーケンス図である。
【図９】ポータルトップ画面の一例を示す図である。
【図１０】アプリケーション登録画面（１／５）の一例を示す図である。
【図１１】アプリケーション登録画面（２／５）の一例を示す図である。
【図１２】アプリケーション登録画面（３／５）の一例を示す図である。
【図１３】アプリケーション登録画面（４／５）の一例を示す図である。
【図１４】アプリケーション登録画面（５／５）の一例を示す図である。
【図１５】アプリ設定情報の一例を示す図である。
【図１６】テスト画面の一例を示す図である。
【図１７】テスト結果画面の一例を示す図である。
【図１８】第一の実施形態に係るテスト実行処理の一例を示すシーケンス図である。
【図１９】テストケースの一例を示す図である。
【図２０】任意の文字列がパラメータ値として設定可能なパラメータ情報の一例を示す図である。
【図２１】テスト結果情報の一例を示す図である。
【図２２】第一の実施形態に係るテスト実行処理の他の例を示すシーケンス図である。
【図２３】パラメータ入力画面の一例を示す図である。
【図２４】ＯＣＲ分割サービスを実現する処理フローの実行処理の一例を示すシーケンス図である。
【図２５】ＯＣＲ分割サービスを利用する場合の全体処理の一例を示すシーケンス図である。
【図２６】ＯＣＲ分割アプリケーションのアプリ画面の一例を示す図である。
【図２７】第一の実施形態に係るテスト実行処理の他の例を示すシーケンス図である。
【図２８】第二の実施形態に係る情報処理システムの機能構成の一例を示す図である。
【図２９】第二の実施形態に係るテスト実行処理の一例を示すシーケンス図である。
【図３０】アプリ設定情報の他の例を示す図である。
【図３１】コンポーネント情報の一例を示す図である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
【００１０】
［第一の実施形態］
＜システム構成＞
まず、本実施形態に係る情報処理システム１のシステム構成について、図１を参照しながら説明する。図１は、本実施形態に係る情報処理システム１のシステム構成の一例を示す図である。
【００１１】
図１に示す情報処理システム１は、サービス提供システム１０と、機器２０と、ＰＣ端末３０とを含み、インターネット等の広域的なネットワークＮ１を介して通信可能に接続されている。
【００１２】
サービス提供システム１０は、一台以上の情報処理装置で実現され、ネットワークＮ１を介して、種々の機能をそれぞれ実現する複数の処理のうちの１以上の処理を組み合わせた一連の処理により実現される各種のサービスを提供する。
【００１３】
ここで、機能とは、文書ファイルや画像ファイル等の電子ファイルに関する機能である。機能には、例えば、プリント、スキャン、ファクシミリ送信、データ形式の変換、メール配信、ＯＣＲ（Optical character recognition）処理、加工や圧縮・解凍、リポジトリへの格納等が挙げられる。
【００１４】
本実施形態に係るサービス提供システム１０が提供するサービスの具体例については後述する。なお、以降では、一連の処理を「処理フロー」とも表す。
【００１５】
機器２０は、ユーザが使用する各種の電子機器である。すなわち、機器２０は、例えば、ＭＦＰ（Multifunction Peripheral）等の画像形成装置、ＰＣ（パーソナルコンピュータ）、プロジェクタ、電子黒板、デジタルカメラ等である。ユーザは、機器２０を用いて、サービス提供システム１０が提供する各種のサービスを利用することができる。
【００１６】
なお、以降では、複数の機器２０について、各々を区別するときは、「機器２０１」、「機器２０２」等と添え字を用いて記載する。
【００１７】
ＰＣ端末３０は、例えば、ユーザが使用するデスクトップＰＣ、ノート型ＰＣ、スマートフォン、タブレット端末等である。ユーザは、ＰＣ端末３０を用いて、サービス提供システム１０が提供する各種のサービスを利用することができる。
【００１８】
なお、以降では、複数のＰＣ端末３０について、各々を区別するときは、「ＰＣ端末３０１」、「ＰＣ端末３０２」等と添え字を用いて記載する。
【００１９】
図１に示す情報処理システム１の構成は一例であって、他の構成であっても良い。例えば、本実施形態に係る情報処理システム１には、電子データの入力及び出力の少なくとも一方を行う各種機器が含まれ、これらの機器がサービス提供システム１０により提供される各種サービスを利用しても良い。
【００２０】
＜ハードウェア構成＞
次に、本実施形態に係る情報処理システム１に含まれるサービス提供システム１０及びＰＣ端末３０のハードウェア構成について、図２を参照しながら説明する。図２は、本実施形態に係るサービス提供システム１０及びＰＣ端末３０のハードウェア構成の一例を示す図である。なお、サービス提供システム１０及びＰＣ端末３０は、同様のハードウェア構成を有しているため、以降では、主に、サービス提供システム１０のハードウェア構成について説明する。
【００２１】
図２に示すサービス提供システム１０は、入力装置１１と、表示装置１２と、外部Ｉ／Ｆ１３と、ＲＡＭ（Random Access Memory）１４とを有する。また、サービス提供システム１０は、ＲＯＭ（Read Only Memory）１５と、ＣＰＵ（Central Processing Unit）１６と、通信Ｉ／Ｆ１７と、ＨＤＤ（Hard Disk Drive）１８とを有する。これらの各ハードウェアは、それぞれがバスＢで接続されている。
【００２２】
入力装置１１は、キーボードやマウス、タッチパネル等を含み、ユーザが各操作信号を入力するのに用いられる。表示装置１２は、ディスプレイ等を含み、サービス提供システム１０による処理結果を表示する。なお、入力装置１１及び表示装置１２の少なくとも一方は、必要なときにサービス提供システム１０に接続して利用する形態であっても良い。
【００２３】
通信Ｉ／Ｆ１７は、サービス提供システム１０をネットワークＮ１に接続するインタフェースである。これにより、サービス提供システム１０は、通信Ｉ／Ｆ１７を介して通信を行うことができる。
【００２４】
ＨＤＤ１８は、プログラムやデータを格納している不揮発性の記憶装置である。ＨＤＤ１８に格納されるプログラムやデータには、サービス提供システム１０全体を制御する基本ソフトウェアであるＯＳ（Operating System）、ＯＳ上において各種機能を提供するアプリケーションソフトウェア等がある。
【００２５】
なお、サービス提供システム１０は、ＨＤＤ１８に代え、記憶媒体としてフラッシュメモリを用いるドライブ装置（例えばソリッドステートドライブ：ＳＳＤ）を利用するものであっても良い。また、ＨＤＤ１８は、格納しているプログラムやデータを所定のファイルシステム及び／又はＤＢにより管理している。
【００２６】
外部Ｉ／Ｆ１３は、外部装置とのインタフェースである。外部装置には、記録媒体１３ａ等がある。これにより、サービス提供システム１０は、外部Ｉ／Ｆ１３を介して記録媒体１３ａの読み取りや書き込みを行うことができる。記録媒体１３ａには、フレキシブルディスク、ＣＤ、ＤＶＤ、ＳＤメモリカード、ＵＳＢメモリ等がある。
【００２７】
ＲＯＭ１５は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。ＲＯＭ１５には、サービス提供システム１０の起動時に実行されるＢＩＯＳ（Basic Input/Output System）、ＯＳ設定、及びネットワーク設定等のプログラムやデータが格納されている。ＲＡＭ１４は、プログラムやデータを一時保持する揮発性の半導体メモリである。
【００２８】
ＣＰＵ１６は、ＲＯＭ１５やＨＤＤ１８等の記憶装置からプログラムやデータをＲＡＭ１４上に読み出し、処理を実行することで、サービス提供システム１０全体の制御や機能を実現する演算装置である。
【００２９】
本実施形態に係るサービス提供システム１０及びＰＣ端末３０は、図２に示すハードウェア構成を有することにより、後述するような各種処理を実現できる。
【００３０】
次に、本実施形態に係る情報処理システム１に含まれる機器２０が画像形成装置である場合のハードウェア構成について、図３を参照しながら説明する。図３は、本実施形態に係る機器２０のハードウェア構成の一例を示す図である。
【００３１】
図３に示す機器２０は、コントローラ２１と、操作パネル２２と、外部Ｉ／Ｆ２３と、通信Ｉ／Ｆ２４と、プリンタ２５と、スキャナ２６とを有する。また、コントローラ２１は、ＣＰＵ３１と、ＲＡＭ３２と、ＲＯＭ３３と、ＮＶＲＡＭ３４と、ＨＤＤ３５とを有する。
【００３２】
ＲＯＭ３３は、各種プログラムやデータを格納している不揮発性の半導体メモリである。ＲＡＭ３２は、プログラムやデータを一時保持する揮発性の半導体メモリである。ＮＶＲＡＭ３４は、例えば設定情報等を格納している。また、ＨＤＤ３５は、各種プログラムやデータを格納している不揮発性の記憶装置である。
【００３３】
ＣＰＵ３１は、ＲＯＭ３３やＮＶＲＡＭ３４、ＨＤＤ３５等からプログラムやデータ、設定情報等をＲＡＭ３２上に読み出し、処理を実行することで、機器２０全体の制御や機能を実現する演算装置である。
【００３４】
操作パネル２２は、ユーザからの入力を受け付ける入力部と、表示を行う表示部とを備えている。外部Ｉ／Ｆ２３は、外部装置とのインタフェースである。外部装置には、記録媒体２３ａ等がある。これにより、機器２０は、外部Ｉ／Ｆ２３を介して記録媒体２３ａの読み取り及び／又は書き込みを行うことができる。なお、記録媒体２３ａには、例えば、ＩＣカード、フレキシブルディスク、ＣＤ、ＤＶＤ、ＳＤメモリカード、ＵＳＢメモリ等がある。
【００３５】
通信Ｉ／Ｆ２４は、機器２０をネットワークに接続するインタフェースである。これにより、機器２０は、通信Ｉ／Ｆ２４を介して通信を行うことができる。プリンタ２５は、印刷データを印刷する印刷装置である。スキャナ２６は、原稿を読み取って電子ファイル（画像ファイル）を生成する読取装置である。
【００３６】
本実施形態に係る機器２０は、図３に示すハードウェア構成を有することにより、後述するような各種処理を実現できる。
【００３７】
＜サービス提供システムが提供するサービス＞
ここで、本実施形態に係るサービス提供システム１０が提供するサービスについて説明する。なお、以降では、機器２０が画像形成装置であるものとして説明する。
【００３８】
本実施形態では、機器２０において原稿をスキャンすることにより生成された電子ファイル（画像ファイル）にＯＣＲ処理を行うことで出力されるＰＤＦ（Portable Document Format）ファイルをページ分割するサービスを「ＯＣＲ分割サービス」と表す。そして、本実施形態では、サービス提供システム１０がＯＣＲ分割サービスを提供する場合について説明する。
【００３９】
ここで、サービス提供システム１０がＯＣＲ分割サービスを提供するには、機器２０がＯＣＲ分割サービスを利用するためのアプリケーション（後述するアプリ情報１０００）をサービス提供システム１０に登録する必要がある。
【００４０】
したがって、本実施形態では、ＯＣＲ分割サービスを利用するためのアプリケーションをＰＣ端末３０が登録する場合と、当該アプリケーションを用いてＯＣＲ分割サービスを機器２０が利用する場合とについて説明する。
【００４１】
ただし、サービス提供システム１０により提供されるサービスは、これらに限られない。サービス提供システム１０は、例えば、機器２０において原稿をスキャンすることにより生成された電子ファイルを暗号化した上で、メール配信するサービスを提供しても良い。
【００４２】
同様に、サービス提供システム１０は、例えば、機器２０において原稿をスキャンすることにより生成された電子ファイルに所定の情報を付加した上で、ＦＡＸ送信するサービスを提供しても良い。
【００４３】
＜機能構成＞
次に、本実施形態に係る情報処理システム１の機能構成について、図４を参照しながら説明する。図４は、本実施形態に係る情報処理システム１の機能構成の一例を示す図である。
【００４４】
図４に示すＰＣ端末３０は、例えばＣＰＵ１６等により実行されるブラウザ３１０を有する。ＰＣ端末３０のユーザは、ブラウザ３１０を用いて、「ＯＣＲ分割サービス」等の各種サービスを利用するためのアプリケーションをサービス提供システム１０に登録することができる。
【００４５】
図４に示す機器２０は、例えばＣＰＵ３１等により実行されるブラウザ２１０を有する。機器２０のユーザは、ブラウザ２１０を用いて、「ＯＣＲ分割サービス」等の各種サービスを利用することができる。すなわち、機器２０は、ブラウザ２１０を有していれば良く、例えば、サービス提供システム１０が提供する各種サービスを利用するための専用のアプリケーションプログラム等を有している必要はない。
【００４６】
図４に示すサービス提供システム１０は、入出力サービス処理部１１０と、Ｗｅｂサービス処理部１２０と、ドキュメントサービス部１３０と、ポータルサービス部１４０とを有する。これら各機能部は、サービス提供システム１０にインストールされた１以上のプログラムが、ＣＰＵ１６に実行させる処理により実現される。
【００４７】
また、サービス提供システム１０は、アプリ情報記憶部１５０と、アプリ画面情報記憶部１６０と、ポータル画面情報記憶部１７０と、テスト結果情報記憶部１８０とを有する。これら各記憶部は、ＨＤＤ１８を用いて実現可能である。なお、これら各記憶部のうちの少なくとも１つの記憶部が、サービス提供システム１０とネットワークを介して接続される記憶装置等を用いて実現されていても良い。
【００４８】
入出力サービス処理部１１０は、サービス提供システム１０が提供するサービスに関する処理を行う。ここで、入出力サービス処理部１１０は、アプリ管理部１１１と、ロジック処理部１１２とを有する。
【００４９】
アプリ管理部１１１は、アプリ情報記憶部１５０に記憶されているアプリ情報１０００を管理する。なお、アプリ情報１０００とは、一連の処理により実現されるサービスを利用するためのアプリケーションである。換言すれば、サービス提供システム１０が提供する各種サービスは、アプリ情報１０００により提供される。
【００５０】
また、アプリ管理部１１１は、ロジック処理部１１２からの要求に応じて、アプリ情報１０００に含まれる処理フロー情報１１００を返信する。なお、処理フロー情報１１００とは、アプリ情報１０００により提供されるサービスを実現する一連の処理が定義された情報である。
【００５１】
更に、アプリ管理部１１１は、ポータルサービス部１４０からの要求に応じて、アプリ情報１０００をアプリ情報記憶部１５０に記憶させる。これにより、サービスを提供するアプリ情報１０００（アプリケーション）がサービス提供システム１０に登録される。
【００５２】
ロジック処理部１１２は、Ｗｅｂサービス処理部１２０からの要求に応じて、アプリ情報１０００に含まれる処理フロー情報１１００をアプリ管理部１１１から取得する。そして、ロジック処理部１１２は、アプリ管理部１１１から取得した処理フロー情報１１００に基づいて、当該アプリ情報１０００が提供するサービスを実現する一連の処理（処理フロー）を実行する。これにより、本実施形態に係るサービス提供システムは、「ＯＣＲ分割サービス」等の各種サービスを提供することができる。なお、ロジック処理部１１２の詳細については後述する。
【００５３】
Ｗｅｂサービス処理部１２０は、ユーザが機器２０のブラウザ２１０を用いて各種サービスを利用するための処理を行う。すなわち、Ｗｅｂサービス処理部１２０は、ブラウザ２１０に対してＷｅｂアプリケーション（アプリ情報１０００）を提供するアプリケーションサーバとして機能する。ここで、Ｗｅｂサービス処理部１２０は、画面構成部１２１と、アプリ実行部１２２とを有する。
【００５４】
画面構成部１２１は、ブラウザ２１０からの要求に応じて、アプリ画面情報記憶部１６０に記憶されているアプリ画面情報２０００と、アプリ情報記憶部１５０に記憶されているアプリ情報１０００に含まれるアプリ設定情報１２００とを返信する。
【００５５】
なお、アプリ画面情報２０００とは、アプリ情報１０００により提供されるサービスを利用するための画面（アプリ画面）の雛形が定義された情報である。アプリ画面情報２０００は、例えば、ＨＴＭＬ（HyperText Markup Language）、ＸＨＴＭＬ（Extensible HyperText Markup Language）、ＣＳＳ（Cascading Style Sheets）、ＪａｖａＳｃｒｉｐｔ（登録商標）等でアプリ画面の雛形が定義された情報である。
【００５６】
また、アプリ設定情報１２００は、アプリケーション（アプリ情報１０００）の各種設定が定義された情報である。例えば、アプリ設定情報１２００には、一連の処理の実行に用いられるパラメータ情報のうち、ユーザによりパラメータ値が入力されるパラメータ情報やデフォルトでパラメータ値が設定されるパラメータ情報等が定義されている。また、例えば、アプリ設定情報１２００には、ユーザがアプリ画面においてパラメータ情報を入力するための入力項目やアプリ画面における表示情報（例えば、アプリケーション名）等が定義されている。アプリ設定情報１２００は、例えば、ＪＳＯＮ（JavaScript Object Notation）等でアプリケーションの各種設定が定義された情報である。
【００５７】
これにより、機器２０には、ブラウザ２１０により、サービス提供システム１０が提供するサービスを利用するためのアプリ画面が表示される。
【００５８】
アプリ実行部１２２は、ブラウザ２１０からの要求に応じて、入出力サービス処理部１１０に対して、アプリケーション（アプリ情報１０００）の実行要求を送信する。また、アプリ実行部１２２は、アプリケーション（アプリ情報１０００）のテストが実行された場合に、当該アプリ情報１０００に含まれる処理フロー情報１１００に基づく一連の処理の実行結果（テスト結果）を示すテスト結果情報をテスト結果情報記憶部１８０に格納する。
【００５９】
なお、アプリケーションのテストとは、例えば、アプリケーション（アプリ情報１０００）を新規に登録する場合や登録済のアプリケーションの設定が修正された場合等に、アプリケーションが正常に動作するか否かを確認することである。
【００６０】
ドキュメントサービス部１３０は、処理フロー情報１１００に基づく一連の処理（処理フロー）に含まれる所定の処理を実行する。ここで、ドキュメントサービス部１３０は、ＯＣＲ処理部１３１等を有する。
【００６１】
ＯＣＲ処理部１３１は、電子ファイルに対してＯＣＲ処理を行って、ＯＣＲ処理で認識されたテキストを付与したＰＤＦファイル（テキスト付きＰＤＦファイル）を作成する。
【００６２】
なお、ドキュメントサービス部１３０には、これら以外にも、例えば、電子ファイルの圧縮又は解凍するための圧縮・解凍処理部、電子ファイルのデータ形式を変換するためのデータ形式変換部等、種々の機能部が含まれていても良い。
【００６３】
ポータルサービス部１４０は、ユーザがＰＣ端末３０のブラウザ３１０を用いてアプリケーションの登録等を行うための処理を行う。ここで、ポータルサービス部１４０は、ＵＩ提供部１４１と、アプリ登録部１４２とを有する。
【００６４】
ＵＩ提供部１４１は、ブラウザ３１０からの要求に応じて、ポータル画面情報記憶部１７０に記憶されているポータル画面情報３０００を返信する。ここで、ポータルとは、ブラウザ３１０を用いて、アプリケーションの登録等を行うことができるＷｅｂサイトである。
【００６５】
なお、ポータル画面情報３０００とは、ポータルのトップ画面（ポータルトップ画面）やアプリケーション登録画面等の各種画面が定義された情報である。ポータル画面情報３０００は、例えば、ＨＴＭＬ、ＸＭＬ、ＣＳＳ、ＪａｖａＳｃｒｉｐｔ等のブラウザ２１０で各種画面が定義された情報である。
【００６６】
これにより、ＰＣ端末３０には、ブラウザ３１０により、ポータルトップ画面やアプリケーション登録画面が表示される。したがって、ＰＣ端末３０のユーザは、アプリケーション登録画面において、アプリケーション（アプリ情報１０００）の登録操作を行うことができる。
【００６７】
アプリ登録部１４２は、ＵＩ提供部１４１からの要求に応じて、アプリケーション（アプリ情報１０００）の登録をアプリ管理部１１１に要求する。すなわち、アプリ登録部１４２は、アプリケーション登録画面において、アプリケーションの登録操作が行われると、アプリケーションの登録をアプリ管理部１１１に要求する。
【００６８】
アプリ情報記憶部１５０は、アプリ情報１０００を記憶する。アプリ情報１０００は、当該アプリ情報１０００を識別するアプリＩＤと関連付けてアプリ情報記憶部１５０に記憶されている。なお、アプリＩＤは、例えば、アプリ情報１０００のＵＲＬ（Uniform Resource Locator）、又はアプリ情報１０００のＵＲＬに含まれる識別情報等である。
【００６９】
ここで、アプリ情報１０００には、処理フロー情報１１００と、アプリ設定情報１２００とが含まれる。例えば、ＯＣＲ分割サービスを提供するアプリ情報１０００には、当該サービスを実現する一連の処理が定義された処理フロー情報１１００と、当該アプリ情報１０００の各種設定が定義されたアプリ設定情報１２００とが含まれる。以降では、ＯＣＲ分割サービスを提供するアプリ情報１０００を「ＯＣＲ分割アプリケーション」とも表す。
【００７０】
なお、アプリ情報１０００には、２以上の処理フロー情報１１００と、２以上のアプリ設定情報１２００とが含まれていても良い。
【００７１】
処理フロー情報１１００は、上述したように、アプリ情報１０００により提供されるサービスを実現する一連の処理（処理フロー）が定義された情報である。なお、処理フロー情報１１００の詳細については後述する。
【００７２】
また、アプリ設定情報１２００は、上述したように、アプリケーション（アプリ情報１０００）の各種設定が定義された情報である。なお、アプリ設定情報１２００の詳細については後述する。
【００７３】
アプリ画面情報記憶部１６０は、アプリ画面情報２０００を記憶する。アプリ画面情報２０００は、アプリＩＤと関連付けてアプリ画面情報記憶部１６０に記憶されている。
【００７４】
ポータル画面情報記憶部１７０は、ポータル画面情報３０００を記憶する。ポータル画面情報３０００は、ポータルトップ画面やアプリケーション登録画面等のＵＲＬと関連付けてポータル画面情報記憶部１７０に記憶されている。
【００７５】
テスト結果情報記憶部１８０は、テスト結果情報を記憶する。テスト結果情報には、アプリケーションのテスト結果やテストされたテストケース等が含まれる。
【００７６】
なお、入出力サービス処理部１１０、Ｗｅｂサービス処理部１２０、ドキュメントサービス部１３０、及びポータルサービス部１４０等は、それぞれが異なる情報処理装置により実現されていても良い。
【００７７】
ここで、ロジック処理部１１２の詳細な機能構成について、図５を参照しながら説明する。図５は、本実施形態に係るロジック処理部１１２の機能構成の一例を示す図である。
【００７８】
図５に示すロジック処理部１１２は、フロー実行部３０１と、コンポーネント管理部３０２と、コンポーネント群３０３と、型変換管理部３０４と、型変換群３０５とを有する。また、ロジック処理部１１２は、型変換情報テーブル４０００を有する。
【００７９】
フロー実行部３０１は、アプリ実行部１２２からアプリケーションの実行要求を受信すると、当該実行要求に対応する処理フロー情報１１００をアプリ管理部１１１から取得する。そして、フロー実行部３０１は、アプリ管理部１１１から取得した処理フロー情報１１００に基づく一連の処理（処理フロー）を実行する。
【００８０】
ここで、処理フロー情報１１００に基づく一連の処理は、当該一連の処理に含まれる各処理を実行するためのコンポーネントを組み合わせることにより実行される。なお、コンポーネントは、所定の機能を実現する処理を実行するためのプログラムやモジュール等により実現され、例えばクラスや関数等で定義される。
【００８１】
コンポーネント管理部３０２は、コンポーネントを管理する。コンポーネント管理部３０２は、フロー実行部３０１からの要求に応じて、コンポーネントを生成すると共に、生成したコンポーネントをフロー実行部３０１に返信する。なお、コンポーネントの生成とは、例えばクラスや関数等で定義されたコンポーネントを、メモリ（例えばＲＡＭ１４）上に展開することである。
【００８２】
コンポーネント群３０３は、コンポーネントの集合である。コンポーネント群３０３には、ＯＣＲコンポーネント１３１０と、ＰＤＦコンポーネント１３２０とが含まれる。
【００８３】
ＯＣＲコンポーネント１３１０は、電子ファイル（画像ファイル）をＯＣＲ処理するためのコンポーネントである。ＯＣＲコンポーネント１３１０は、ドキュメントサービス部１３０のＯＣＲ処理部１３１にＯＣＲ処理を要求することにより、電子ファイルのＯＣＲ処理を行う。
【００８４】
ＰＤＦコンポーネント１３２０は、ＰＤＦファイルのページを分割することで、複数のＰＤＦファイルを作成するためのコンポーネントである。
【００８５】
このように、各コンポーネントは、所定の機能を実現する処理を実行する。なお、コンポーネント群３０３には、上記のコンポーネント以外にも、例えば、電子ファイルの暗号化や復号を行うための暗号化・復号コンポーネント、電子ファイルを圧縮するための圧縮コンポーネント等の各種のコンポーネントが含まれる。
【００８６】
また、コンポーネント群３０３に含まれる各コンポーネントは、コンポーネント共通Ｉ／Ｆ１３００を有する。コンポーネント共通Ｉ／Ｆ１３００は、各コンポーネントに対して共通に定義されたＡＰＩ（Application Programming Interface）であり、コンポーネントを生成するためのＡＰＩと、コンポーネントの処理を実行するためのＡＰＩとが含まれる。
【００８７】
このように、各コンポーネントがコンポーネント共通Ｉ／Ｆ１３００を有することで、コンポーネントの追加等に伴う影響を局所化することができる。すなわち、例えば、フロー実行部３０１やコンポーネント管理部３０２等に影響を与えることなく、コンポーネントの追加等を行うことができる。これにより、本実施形態に係るサービス提供システム１０では、所定の機能の追加等（すなわち、当該機能を実現する処理を実行するためのコンポーネントの追加等）に伴う開発工数を削減することができる。
【００８８】
型変換管理部３０４は、データ型の型変換を管理する。ここで、各コンポーネントは、自身が扱えるデータ型が予め決まっている。したがって、型変換管理部３０４は、コンポーネントからの要求に応じて、例えば図６に示す型変換情報テーブル４０００を参照して、型変換群３０５に含まれる型変換を生成する。
【００８９】
そして、型変換管理部３０４は、生成された型変換に型変換処理の実行を要求する。なお、型変換は、データ型の型変換処理を実行するプログラムやモジュール等により実現され、例えばクラスや関数等で定義される。また、型変換の生成とは、例えばクラスや関数等で定義された型変換を、メモリ（例えばＲＡＭ１４上）に展開することである。
【００９０】
なお、データ型には、例えば、ストリームデータを示すデータ型「ＩｎｐｕｔＳｔｒｅａｍ」、記憶装置等に格納されている電子ファイルのパス（アドレス）を示す「ＬｏｃａｌＦｉｌｅＰａｔｈ」、及び電子ファイルの実体を示す「Ｆｉｌｅ」等が挙げられる。
【００９１】
ここで、型変換情報テーブル４０００について、図６を参照しながら説明する。図６は、型変換情報テーブル４０００の一例を示す図である。
【００９２】
図６に示す型変換情報テーブル４０００は、データ項目として、変換前のデータ型と、変換後のデータ型と、生成する型変換とを有する。すなわち、型変換情報テーブル４０００に格納されている型変換情報は、変換前のデータ型及び変換後のデータ型毎に、当該変換前のデータ型を、当該変換後のデータ型に変換するための型変換が関連付けられた情報である。
【００９３】
型変換群３０５は、型変換の集合である。型変換群３０５には、データ型「ＩｎｐｕｔＳｔｒｅａｍ」を「ＬｏｃａｌＦｉｌｅＰａｔｈ」に変換するための第１の型変換１４１０が含まれる。なお、型変換群３０５には、これ以外にも、例えば、データ型「ＬｏｃａｌＦｉｌｅＰａｔｈ」を「Ｆｉｌｅ」に変換するための第２の型変換等が含まれる。
【００９４】
また、型変換群３０５に含まれる各型変換は、型変換共通Ｉ／Ｆ１４００を有する。型変換共通Ｉ／Ｆ１４００は、各型変換に対して共通に定義されたＡＰＩであり、型変換を生成するためのＡＰＩと、型変換の型変換処理を実行するためのＡＰＩとが含まれる。
【００９５】
このように、各型変換が型変換共通Ｉ／Ｆ１４００を有することで、型変換の追加等に伴う影響を局所化することができる。すなわち、例えば、型変換管理部３０４等に影響を与えることなく、型変換の追加等を行うことができる。これにより、本実施形態に係るサービス提供システム１０では、型変換の追加等に伴う開発工数を削減することができる。
【００９６】
ここで、ＯＣＲ分割サービスを提供するアプリ情報１０００に含まれる処理フロー情報１１００について、図７を参照しながら説明する。図７は、処理フロー情報１１００の一例を示す図である。
【００９７】
図７に示す処理フロー情報１１００は、ＯＣＲ分割サービスを実現する一連の処理（処理フロー）が定義された情報である。
【００９８】
図７に示す処理フロー情報１１００には、処理フロー情報１１００を識別するフロー名１１０１と、処理フローに含まれる各処理の処理内容が定義されたフロー詳細１１０２とが含まれる。
【００９９】
フロー詳細１１０２には、処理フローに含まれる各処理をそれぞれ定義した詳細処理定義１１１０と、詳細処理定義１１２０とが含まれる。詳細処理定義１１１０及び詳細処理定義１１２０には、詳細処理定義を識別する詳細処理名を示す「"ｄｅｔａｉｌＮａｍｅ"」と、処理を実行するためのコンポーネントのコンポーネント名を示す「"ｃｏｍｐｏｎｅｎｔ"」とが含まれる。また、詳細処理定義１１１０及び詳細処理定義１１２０には、当該コンポーネントが実行するオペレーションを示す「"ｏｐｅｒａｔｉｏｎＮａｍｅ"」と、パラメータ情報が定義される「"ｐａｒａｍｅｔｅｒｓ"」とが含まれる。
【０１００】
なお、オペレーションとはコンポーネントが実行する処理のことであり、各コンポーネントは、１以上のオペレーションを実行することが可能である。
【０１０１】
具体的には、詳細処理定義１１１０の「"ｄｅｔａｉｌＮａｍｅ"」には、「"ｄｅｔａｉｌ０"」が定義されている。詳細処理定義１１１０の「"ｃｏｍｐｏｎｅｎｔ"」には、ＯＣＲコンポーネント１３１０のコンポーネント名「"ＯＣＲ"」が定義されている。また、詳細処理定義１１１０の「"ｏｐｅｒａｔｉｏｎＮａｍｅ"」には、ＯＣＲコンポーネント１３１０がＯＣＲ処理を実行することを示すオペレーション名「"ｐｒｏｃｅｓｓ"」が定義されている。更に、詳細処理定義１１１０の「"ｐａｒａｍｅｔｅｒｓ"」には、パラメータ名「"ｏｕｔｐｕｔＳｉｚｅ"」のパラメータ情報等が定義されている。
【０１０２】
パラメータ名「"ｏｕｔｐｕｔＳｉｚｅ"」のパラメータ情報には、ＯＣＲ処理の結果として出力されるＰＤＦファイルの印刷サイズが設定される。図７に示す処理フロー情報１１００では、パラメータ名「"ｏｕｔｐｕｔＳｉｚｅ"」のパラメータ情報には、デフォルトのパラメータ値として、「"Ａ４"」が定義されている。
【０１０３】
同様に、詳細処理定義１１２０の「"ｄｅｔａｉｌＮａｍｅ"」には、「"ｄｅｔａｉｌ１"」が定義されている。詳細処理定義１１２０の「"ｃｏｍｐｏｎｅｎｔ"」には、ＰＤＦコンポーネント１３２０のコンポーネント名「"ＰＤＦ"」が定義されている。また、詳細処理定義１１２０の「"ｏｐｅｒａｔｉｏｎＮａｍｅ"」には、ＰＤＦコンポーネント１３２０がＰＤＦファイルをページ番号で分割する処理を実行することを示すオペレーション名「"ｄｉｖｉｄｅＢｙＰａｇｅＮｕｍｂｅｒｓ"」が定義されている。更に、詳細処理定義１１２０の「"ｐａｒａｍｅｔｅｒｓ"」には、ＰＤＦコンポーネント１３２０で用いられるパラメータ情報が定義されている。
【０１０４】
なお、各詳細処理定義に定義された処理の実行順は、フロー詳細１１０２において、上から順に定義される。すなわち、図７に示す処理フロー情報１１００に基づく一連の処理（処理フロー）では、詳細処理定義１１１０に定義された処理、詳細処理定義１１２０に定義された処理の順で実行される。ただし、これに限られず、処理フロー情報１１００には、例えば、各詳細処理定義に定義された処理の実行順を示す情報が定義されていても良い。
【０１０５】
＜処理の詳細＞
次に、本実施形態に係る情報処理システム１の処理の詳細について説明する。まず、ＰＣ端末３０のユーザが、ＯＣＲ分割アプリケーションをサービス提供システム１０に登録する処理について、図８を参照しながら説明する。図８は、本実施形態に係るアプリケーションの登録処理の一例を示すシーケンス図である。
【０１０６】
まず、ＰＣ端末３０のブラウザ３１０は、ポータルトップ画面を表示させるための操作（ポータルトップ画面の表示操作）を受け付ける（ステップＳ８０１）。なお、ＰＣ端末３０のユーザは、例えば、ポータルトップ画面のＵＲＬをブラウザ３１０のアドレスバーに入力することで、ポータルトップ画面の表示操作を行うことができる。
【０１０７】
ＰＣ端末３０のブラウザ３１０は、ポータルトップ画面の表示操作を受け付けると、ポータルトップ画面の表示要求を、ポータルサービス部４０のＵＩ提供部１４１に送信する（ステップＳ８０２）。
【０１０８】
ポータルサービス部１４０のＵＩ提供部１４１は、ポータルトップ画面の取得要求を受信すると、ポータルトップ画面のポータル画面情報をポータル画面情報記憶部１７０から取得する（ステップＳ８０３）。そして、ＵＩ提供部１４１は、ポータル画面情報記憶部１７０から取得したポータル画面情報をブラウザ３１０に返信する。
【０１０９】
ＰＣ端末３０のブラウザ３１０は、ポータルトップ画面のポータル画面情報を受信すると、当該ポータル画面情報に基づいて、例えば図９に示すポータルトップ画面Ｇ１００を表示する（ステップＳ８０４）。
【０１１０】
図９に示すポータルトップ画面Ｇ１００は、ポータルのトップ画面であり、アプリケーションの登録を行うための「Ａｐｐｌｉｃａｔｉｏｎ」ボタンＧ１１０が含まれる。以降では、ユーザが、図９に示すポータルトップ画面Ｇ１００において、「Ａｐｐｌｉｃａｔｉｏｎ」ボタンＧ１１０を選択する操作（アプリ登録の選択操作）を行ったものとする。
【０１１１】
なお、図９に示すポータルトップ画面Ｇ１００には、処理フロー情報１１００の作成等を行うための「Ｆｌｏｗ」ボタンＧ１２０、コンポーネントの登録等を行うための「Ｃｏｍｐｏｎｅｎｔ」ボタンＧ１３０等も含まれる。このように、ポータルトップ画面Ｇ１００では、アプリケーションの登録以外にも、処理フローの作成・実行、コンポーネントの登録・更新等を行うことができる。
【０１１２】
ＰＣ端末３０のブラウザ３１０は、ユーザにより行われたアプリ登録の選択操作を受け付ける（ステップＳ８０５）。
【０１１３】
ＰＣ端末３０のブラウザ３１０は、アプリ登録の選択操作を受け付けると、アプリケーション登録画面の表示要求を、ポータルサービス部４０のＵＩ提供部１４１に送信する（ステップＳ８０６）。
【０１１４】
ポータルサービス部１４０のＵＩ提供部１４１は、アプリケーション登録画面の表示要求を受信すると、アプリケーション登録画面のポータル画面情報をポータル画面情報記憶部１７０から取得する（ステップＳ８０７）。そして、ＵＩ提供部１４１は、ポータル画面情報記憶部１７０から取得したポータル画面情報をブラウザ３１０に返信する。
【０１１５】
ＰＣ端末３０のブラウザ３１０は、アプリケーション登録画面のポータル画面情報を受信すると、当該ポータル画面情報に基づいて、例えば図１０に示すアプリケーション登録画面Ｇ２００を表示する（ステップＳ８０８）。
【０１１６】
ここで、図１０〜図１４を参照しながら、ユーザがアプリケーションの登録操作を行う場合について説明する。
【０１１７】
まず、図１０に示すアプリケーション登録画面Ｇ２００は、ユーザが登録するアプリケーションのタイプを選択するための画面である。
【０１１８】
図１０に示すアプリケーション登録画面Ｇ２００には、プリントタイプのアプリケーションを登録するための「プリント」ボタンＧ２１０と、スキャンタイプのアプリケーションを登録するための「スキャン」ボタンＧ２２０とが含まれる。なお、図１０に示すアプリケーション登録画面Ｇ２００には、上記以外にも、例えば、ＦＡＸタイプのアプリケーションを登録するための「ＦＡＸ」ボタン、メール受信タイプのアプリケーションを登録するための「メール受信」ボタン等が含まれていても良い。
【０１１９】
また、図１０に示すアプリケーション登録画面Ｇ２００には、次の画面に遷移するための「次へ」ボタンＧ２４０等が含まれる。
【０１２０】
図１０に示すアプリケーション登録画面Ｇ２００では、ユーザが「プリント」ボタンＧ２１０又は「スキャン」ボタンＧ２２０のいずれかを選択すると、それぞれプリントタイプの説明又はスキャンタイプの説明が説明欄Ｇ２３０に表示される。
【０１２１】
なお、プリントタイプとは、一連の処理による実行結果を示す電子ファイルを画像形成装置等で印刷させるタイプのアプリケーションである。一方、スキャンタイプとは、画像形成装置等においてスキャンにより生成された電子ファイルを入力とした一連の処理を実行させるタイプのアプリケーションである。
【０１２２】
また、例えば、ＦＡＸタイプとは、一連の処理による実行結果を示す電子ファイルを画像形成装置等でＦＡＸ送信させるタイプのアプリケーションである。更に、メール受信タイプとは、画像形成装置等が受信したメールに添付されている電子ファイルを入力とした一連の処理を実行させるタイプのアプリケーションである。
【０１２３】
以降では、ユーザが、図１０に示すアプリケーション登録画面Ｇ２００において、「スキャン」ボタンＧ２２０を選択した上で、「次へ」ボタンＧ２４０を押下する操作を行ったものとする。すると、ブラウザ３１０は、当該操作を受け付けて、例えば図１１に示すアプリケーション登録画面Ｇ３００を表示する。
【０１２４】
図１１に示すアプリケーション登録画面Ｇ３００は、ユーザがアプリケーションの基本情報を設定するための画面である。
【０１２５】
図１１に示すアプリケーション登録画面Ｇ３００には、アプリケーションの名称を設定するための「アプリ名」入力設定欄Ｇ３１０と、アプリ画面の画面形式を選択するための「デザインテンプレート」選択欄Ｇ３２０とが含まれる。また、図１１に示すアプリケーション登録画面Ｇ３００には、アプリケーションを利用する際の認証を選択するための「認証」選択欄Ｇ３３０と、アプリ画面の表示言語を選択するための「表示言語」選択欄Ｇ３４０とが含まれる。更に、図１１に示すアプリケーション登録画面Ｇ３００には、次の画面に遷移するための「次へ」ボタンＧ３５０等が含まれる。
【０１２６】
なお、「デザインテンプレート」選択欄Ｇ３２０では、例えば、アプリ画面が一画面で表示される「一画面形式」、アプリ画面を対話形式で表示する「ウィザード形式」等を選択することができる。また、「認証」選択欄Ｇ３３０では、認証を用いないことを示す「なし」、認証を用いることを示す「ユーザ認証」等を選択することができる。
【０１２７】
以降では、ユーザが、図１１に示すアプリケーション登録画面Ｇ３００のように、アプリケーション名の入力や各種選択を行った上で、「次へ」ボタンＧ３５０を押下する操作を行ったものとする。すると、ブラウザ３１０は、当該操作を受け付けて、例えば図１２に示すアプリケーション登録画面Ｇ４００を表示する。
【０１２８】
図１２に示すアプリケーション登録画面Ｇ４００は、ユーザがアプリケーションの詳細情報として、登録するアプリケーションに対して一連の処理（処理フロー）を設定するための画面である。
【０１２９】
図１２に示すアプリケーション登録画面Ｇ４００には、アプリ情報記憶部１５０に記憶されている処理フロー情報１１００のフロー名を検索するための検索欄Ｇ４１０と、フロー名を選択するためのフロー選択欄Ｇ４２０とが含まれる。ユーザは、所望のフローの名称等を検索欄Ｇ４１０に入力した上で、フロー選択欄Ｇ４２０から所望のフロー名を選択することができる。
【０１３０】
また、図１２に示すアプリケーション登録画面Ｇ４００には、フロー選択欄Ｇ４２０で選択されたフロー名の処理フロー情報１１００に基づく一連の処理の概要を表示する概要表示欄Ｇ４３０と、次の画面に遷移するための「次へ」ボタンＧ４４０とが含まれる。
【０１３１】
更に、図１２に示すアプリケーション登録画面Ｇ４００には、フロー選択欄Ｇ４２０で選択されたフロー名の処理フロー情報１１００の編集及び更新を行うための「更新」ボタンＧ４２１と、新規に処理フロー情報１１００を作成するための「新規」ボタンＧ４２２とが含まれる。ユーザは、「更新」ボタンＧ４２１を押下することで、フロー選択欄Ｇ４２０で選択したフロー名の処理フロー情報１１００の編集及び更新を行うことができる。また、ユーザは、「新規」ボタンＧ４２２を押下することで、処理フロー情報１１００を作成した上で、作成した処理フロー情報１１００のフロー名をフロー選択欄Ｇ４２０で選択することができる。
【０１３２】
以降では、ユーザが、フロー名「ｏｃｒ−ｄｉｖｉｄｅ」をフロー選択欄Ｇ４２０で選択した上で、「次へ」ボタンＧ４４０を押下する操作を行ったものとする。すると、ブラウザ３１０は、当該操作を受け付けて、例えば図１３に示すアプリケーション登録画面Ｇ５００を表示する。
【０１３３】
図１３に示すアプリケーション登録画面Ｇ５００は、ユーザがアプリケーションの詳細情報として、図１２に示すアプリケーション登録画面Ｇ４００で設定された一連の処理（処理フロー）のパラメータ情報を設定するための画面である。
【０１３４】
図１３に示すアプリケーション登録画面Ｇ５００には、一連の処理に含まれる各処理を実行するコンポーネントを選択するための「コンポーネント」選択欄Ｇ５１０が含まれる。また、図１３に示すアプリケーション登録画面Ｇ５００には、「コンポーネント」選択欄Ｇ５１０で選択されたコンポーネントのパラメータ情報を設定するための「パラメータ情報」設定欄Ｇ５２０と、次の画面に遷移するための「次へ」ボタンＧ５３０とが含まれる。
【０１３５】
ユーザは、「コンポーネント」選択欄Ｇ５１０から所望のコンポーネントを選択した上で、「パラメータ情報」設定欄Ｇ５２０にてパラメータ情報の各種設定を行うことができる。例えば、ユーザが「コンポーネント」選択欄Ｇ５１０からＰＤＦコンポーネント１３２０を選択した場合、「パラメータ情報」設定欄Ｇ５２０では、ＰＤＦコンポーネント１３２０が用いるパラメータ情報の各種設定を行うことができる。
【０１３６】
「パラメータ情報」設定欄Ｇ５２０には、例えば、「ｕｓｅｒＩｎｐｕｔ」、「ｄｉｓｐｌａｙｎａｍｅ」、「ｎａｍｅ」、「ｉｎｐｕｔＴｙｐｅ」等が含まれる。
【０１３７】
「ｕｓｅｒＩｎｐｕｔ」には、パラメータ情報のパラメータ値をユーザ（サービスの利用者）に入力させるか否かが設定される。「ｕｓｅｒＩｎｐｕｔ」にチェックが入れられたパラメータ情報は、アプリ画面においてユーザ（サービスの利用者）がパラメータ値を入力することができる。一方で、「ｕｓｅｒＩｎｐｕｔ」にチェックが入れられていないパラメータ情報は、アプリ画面においてユーザがパラメータ値を入力することができず、デフォルトのパラメータ値が用いられる。
【０１３８】
また、「ｉｎｐｕｔＴｙｐｅ」には、設定項目「ｓｅｌｅｃｔ」にチェックが入れられたパラメータ情報について、アプリ画面における入力方法が設定される。「ｉｐｕｔＴｙｐｅ」では、例えば、パラメータ値の一覧から所望のパラメータ値を選択する入力方法「ｓｅｌｅｃｔ」、パラメータ値を直接入力する入力方法「ｔｅｘｔ」等が設定される。なお、「ｉｎｐｕｔＴｙｐｅ」には、これら以外にも、例えば、画面上の座標を入力する入力方法、所望のフォルダやファイルを選択するための入力方法等を選択することができても良い。
【０１３９】
なお、「ｎａｍｅ」には、パラメータ情報のパラメータ名が設定される。また、「ｄｉｓｐｌａｙｎａｍｅ」には、アプリ画面に表示される入力項目（パラメータ値を入力させるための項目）の表示名が設定される。
【０１４０】
これにより、ユーザは、各コンポーネントが用いるパラメータ情報について、パラメータ情報のパラメータ値をサービスの利用者に入力させるか否か、その入力方法等を設定することができる。
【０１４１】
以降では、ユーザが、各コンポーネントが用いるパラメータ情報を設定した上で、「次へ」ボタンＧ５３０を押下する操作を行ったものとする。すると、ブラウザ３１０は、当該操作を受け付けて、例えば図１４に示すアプリケーション登録画面Ｇ６００を表示する。
【０１４２】
図１４に示すアプリケーション登録画面Ｇ６００は、図１０〜図１３で設定された各種情報（アプリ設定情報）をユーザが確認するための画面である。
【０１４３】
図１４に示すアプリケーション登録画面Ｇ６００には、「アプリ設定情報」表示欄Ｇ６１０と、「登録実行」ボタンＧ６２０とが含まれる。ユーザは、「アプリ設定情報」表示欄Ｇ６１０において、図１０〜図１３で設定した各種情報を確認することができる。
【０１４４】
ここで、ユーザは、「アプリ設定情報」表示欄Ｇ６１０でアプリ設定情報を確認した上で、「登録」ボタンＧ６２０を押下する操作（アプリケーションの登録操作）を行ったものとする。すると、ブラウザ３１０は、アプリケーションの登録操作を受け付ける（ステップＳ８０９）。
【０１４５】
ブラウザ３１０は、アプリケーションの登録操作を受け付けると、例えば図１５に示すアプリ設定情報１２００を作成する（ステップＳ８１０）。
【０１４６】
ここで、アプリ設定情報１２００について、図１５を参照しながら説明する。図１５は、アプリ設定情報１２００の一例を示す図である。
【０１４７】
図１５に示すアプリ設定情報１２００には、アプリタイプ１２０１と、アプリ名１２０２と、アプリ表示名１２０３と、認証タイプ１２０４と、フロー名１２０５とが含まれる。また、図１５に示すアプリ設定情報１２００には、デザインテンプレートタイプ１２０６と、デフォルトパラメータ１２０７と、ユーザ入力パラメータ１２０８とが含まれる。
【０１４８】
アプリタイプ１２０１は、図１０に示すアプリケーション登録画面Ｇ２００で選択されたアプリケーションのタイプである。図１５に示す例では、アプリケーションのタイプがスキャンタイプであることを示す「"ａｐｐ＿ｔｙｐｅ"："ｓｃａｎ"」が定義されている。
【０１４９】
アプリ名１２０２は、図１１に示すアプリケーション登録画面Ｇ３００の「アプリ名」入力設定欄Ｇ３１０に入力されたアプリ名である。図１５に示す例では、アプリ名が「ＯＣＲ分割アプリケーション」であることを示す「"ａｐｐＮａｍｅ"："ＯＣＲ分割アプリケーション"」が定義されている。
【０１５０】
アプリ表示名１２０３は、アプリ画面に表示されるアプリケーション名称（タイトル）である。図１５に示す例では、日本語では「ＯＣＲ分割」、英語では「ＯＣＲ  Ａｐｐ」と表示されることが定義されている。
【０１５１】
認証タイプ１２０４は、図１１に示すアプリケーション登録画面Ｇ３００の「認証」選択欄Ｇ３３０で選択された認証である。図１５に示す例では、認証しないことを示す「"ｌｏｇｉｎＴｙｐｅ"："ｎｏｎｅ"」が定義されている。
【０１５２】
フロー名１２０５は、図１２に示すアプリケーション登録画面Ｇ４００のフロー選択欄Ｇ４２０で選択されたフロー名である。図１５に示す例では、フロー名が「"ｏｃｒ−ｄｉｖｉｄｅ"」であることが定義されている。
【０１５３】
デザインテンプレートタイプ１２０６は、図１１に示すアプリケーション登録画面Ｇ３００の「デザインテンプレート」選択欄Ｇ３２０で選択された表示形式である。図１５に示す例では、一画面形式でアプリ画面を表示することを示す「"ｖｉｅｗＴｅｍｐｌａｔｅ"："一画面形式"」が定義されている。
【０１５４】
デフォルトパラメータ１２０７は、アプリ画面においてユーザがパラメータ値を入力しないパラメータ情報が定義されている。すなわち、デフォルトパラメータ１２０７には、図１３に示すアプリケーション登録画面Ｇ５００の「パラメータ情報」設定欄Ｇ５２０において、「ｕｓｅｒＩｎｐｕｔ」のチェックを入れなかったパラメータ情報が定義される。図１５に示す例では、詳細処理名「ｄｅｔａｉｌ０」（すなわち、図７における詳細処理定義１１１０）で定義された処理で用いられるパラメータ情報のデフォルトのパラメータ値が定義されている。具体的には、パラメータ名「"ｌａｎｇｕａｇｅ"」のパラメータ情報について、デフォルトのパラメータ値「"Ｅｎｇｌｉｓｈ"」が定義されている。
【０１５５】
このように、デフォルトパラメータ１２０７には、デフォルトのパラメータ値が設定されるパラメータ情報が定義されている。換言すれば、デフォルトパラメータ１２０７には、ユーザがパラメータ値を設定しないパラメータ情報が定義されている。
【０１５６】
ユーザ入力パラメータ１２０８は、アプリ画面においてユーザによりパラメータ値が入力されるパラメータ情報が定義されている。すなわち、ユーザ入力パラメータ１２０８には、図１３に示すアプリケーション登録画面Ｇ５００の「パラメータ情報」設定欄Ｇ５２０において、「ｕｓｅｒＩｎｐｕｔ」のチェックを入れたパラメータ情報が定義される。
【０１５７】
図１５に示す例では、詳細処理名「ｄｅｔａｉｌ１」（すなわち、図７における詳細処理定義１１２０）に定義された処理で用いられるパラメータ情報が定義されている。具体的には、パラメータ名「ｄｉｖｉｓｉｏｎＰａｇｅＲａｎｇｅ」のパラメータ情報のパラメータ値がユーザに入力されることを示す入力定義１２１０が定義されている。同様に、パラメータ名「ｄｉｖｉｓｉｏｎＰａｇｅＮｕｍｂｅｒｓ」のパラメータ情報のパラメータ値がユーザに入力されることを示す入力定義１２２０が定義されている。
【０１５８】
入力定義１２１０では、パラメータ値の入力方法を示す「"ｉｎｐｕｔＴｙｐｅ"」には「"ｓｅｌｅｃｔ"」が定義されている。これは、パラメータ値の一覧から所望のパラメータ値をユーザに選択させることを示している。
【０１５９】
また、入力定義１２１０では、ユーザが選択可能なパラメータ値を示す「"ｏｐｔｉｏｎｓ"」には「"Ｅａｃｈ  Ｐａｇｅｓ"，"Ｓｐｅｃｉｆｉｅｄ  Ｐａｇｅｓ"」が定義されている。これは、ユーザが選択可能なパラメータ値の一覧は、「"Ｅａｃｈ  Ｐａｇｅｓ"」と、「"Ｓｐｅｃｉｆｉｅｄ  Ｐａｇｅｓ"」とであることを示している。
【０１６０】
入力定義１２２０では、パラメータ値の入力方法を示す「"ｉｎｐｕｔＴｙｐｅ"」には「"ｔｅｘｔ"」が定義されている。これは、テキスト（文字）でパラメータ値をユーザに入力させることを示している。
【０１６１】
また、入力定義１２２０では、ユーザが入力可能なパラメータ値の上限（上限値）を示す「"ｍａｘ"」には「１００」が、下限（下限値）を示す「"ｍｉｎ"」には「０」が定義されている。これは、ユーザが入力可能なパラメータ値は、０以上、かつ、１００以下の数値であることを示している。
【０１６２】
このように、ユーザ入力パラメータ１２０８には、アプリ画面においてユーザがパラメータ値を入力するパラメータ情報やパラメータ値入力方法、入力制約等が定義されている。
【０１６３】
以上のように、アプリ設定情報１２００には、アプリ画面に表示される表示情報（例えば、タイトル）やアプリ画面の入力項目（パラメータ値を入力又は選択する項目）、当該入力項目における入力方法、入力制約等が定義されている。また、アプリ設定情報１２００には、パラメータ値がデフォルトで設定されるパラメータ情報（すなわち、アプリ画面でパラメータ値が入力又は選択されないパラメータ情報）等が定義されている。
【０１６４】
ブラウザ３１０は、アプリ設定情報１２００を作成すると、アプリケーションの登録要求を、ポータルサービス部１４０のアプリ登録部１４２に送信する（ステップＳ８１１）。なお、アプリケーションの登録要求には、ステップＳ８１０で作成されたアプリ設定情報１２００が含まれる。
【０１６５】
ポータルサービス部１４０のアプリ登録部１４２は、アプリケーションの登録要求を受信すると、当該登録要求を、入出力サービス処理部１１０のアプリ管理部１１１に送信する（ステップＳ８１２）。
【０１６６】
入出力サービス処理部１１０のアプリ管理部１１１は、アプリケーションの登録要求を受信すると、アプリケーションを登録する（ステップＳ８１３）。そして、アプリ管理部１１１は、登録結果をブラウザ３１０に返信する。
【０１６７】
すなわち、アプリ管理部１１１は、アプリケーションの登録要求に含まれるアプリ設定情報１２００をアプリＩＤと関連付けてアプリ情報記憶部１５０に記憶する。そして、アプリ管理部１１１は、当該アプリＩＤが含まれる登録結果をブラウザ３１０に返信する。
【０１６８】
これにより、当該アプリ設定情報１２００と、当該アプリ設定情報１２００のフロー名１２０５に定義されたフロー名の処理フロー情報１１００とを含むアプリ情報１０００がサービス提供システム１０に登録される。
【０１６９】
次に、ブラウザ３１０は、登録結果が返信されると、例えば図１６に示すテスト画面Ｇ７００を表示する（ステップＳ８１４）。
【０１７０】
図１６に示すテスト画面Ｇ７００は、上記のステッＳ８１３で登録されたアプリケーションのテストを実行するための画面である。ユーザは、アプリケーションのテストを実行することで、当該アプリケーションの評価（動作確認等）を行うことができる。
【０１７１】
図１６に示すテスト画面Ｇ７００には、「テスト実行」ボタンＧ７１０が含まれる。ここで、ユーザは、「テスト実行」ボタンＧ７１０を押下する操作（テスト実行操作）を行ったものとする。すると、ブラウザ３１０は、テスト実行操作を受け付ける（ステップＳ８１５）。
【０１７２】
ブラウザ３１０は、テスト実行操作を受け付けると、テスト実行処理を行う（ステップＳ８１６）。テスト実行処理では、アプリケーションをテストするためのテストケース（すなわち、処理フローに用いられるパラメータ情報の組み合わせ）が生成され、テストケース毎に、アプリケーションがテストされる。アプリケーションのテストは、テストケースが示すパラメータ情報の組み合わせ毎に、当該アプリケーションの処理フロー（すなわち、アプリ情報１０００に含まれる処理フロー情報１１００に基づく一連の処理）を実行することで行われる。なお、テスト実行処理の詳細については後述する。
【０１７３】
そして、ブラウザ３１０は、テスト実行処理が終了すると、例えば図１７（ａ）に示すテスト結果画面Ｇ８００又は図１７（ｂ）に示すテスト結果画面Ｇ９００を表示する（ステップＳ８１７）。
【０１７４】
図１７（ａ）に示すテスト結果画面Ｇ８００は、アプリケーションのテストに成功した場合（すなわち、全てのテストケースでテストが正常に終了した場合）のテスト結果画面である。
【０１７５】
一方、図１７（ｂ）に示すテスト結果画面Ｇ９００は、アプリケーションのテストに失敗した場合（すなわち、少なくとも１つのテストケースでテストが失敗した場合）のテスト結果画面である。図１７（ｂ）に示すテスト結果画面Ｇ９００には、失敗テストケース表示欄Ｇ８１０が含まれる。
【０１７６】
失敗テストケース表示欄Ｇ８１０には、テストが失敗したテストケースの実行時間と、当該テストに用いられたパラメータ情報とが含まれる。これにより、ユーザは、テストが失敗したテストケースで用いられたパラメータ情報の組み合わせを知ることができる。このため、ユーザは、テストが成功するように、パラメータ情報を修正することができる。なお、失敗テストケース表示欄Ｇ８１０に表示されるパラメータ情報は、テスト結果情報記憶部１８０に記憶されているテスト結果情報に基づいて表示される。
【０１７７】
ここで、上記のステップＳ８１６の処理（テスト実行処理）の詳細について、図１８を参照しながら説明する。図１８は、本実施形態に係るテスト実行処理の一例を示すシーケンス図である。
【０１７８】
まず、ブラウザ３１０は、テスト実行操作を受け付けると、アプリ設定の取得要求を、Ｗｅｂサービス処理部１２０の画面構成部１２１に送信する（ステップＳ１８０１）。なお、アプリ設定の取得要求には、上記のステップＳ８１３でアプリ管理部１１１から返信されたアプリＩＤが含まれる。
【０１７９】
Ｗｅｂサービス処理部１２０の画面構成部１２１は、アプリ設定の取得要求を受信すると、当該取得要求を、入出力サービス処理部１１０のアプリ管理部１１１に送信する（ステップＳ１８０２）。
【０１８０】
入出力サービス処理部１１０のアプリ管理部１１１は、アプリ設定の取得要求を受信すると、当該取得要求に含まれるアプリＩＤに関連付けて記憶されているアプリ設定情報１２００をアプリ情報記憶部１５０から取得する（ステップＳ１８０３）。そして、アプリ管理部１１１は、アプリ情報記憶部１５０から取得したアプリ設定情報１２００を画面構成部１２１に返信する。
【０１８１】
Ｗｅｂサービス処理部１２０の画面構成部１２１は、テスト結果画面Ｇ８００及びテスト結果画面Ｇ９００を表示するためのアプリ画面情報２０００をアプリ画面情報記憶部１６０から取得する（ステップＳ１８０４）。そして、画面構成部１２１は、アプリ画面情報記憶部１６０から取得したアプリ画面情報２０００と、上記のステップＳ１８０３で返信されたアプリ設定情報１２００とをブラウザ３１０に返信する。
【０１８２】
ブラウザ３１０は、アプリ画面情報２０００と、アプリ設定情報１２００とが返信されると、当該アプリ設定情報１２００から、例えばオールペア法（ペアワイズ法）等の手法によりパラメータ情報を組み合わせて、テストケースを生成する（ステップＳ１８０５）。
【０１８３】
例えば、図１５に示すアプリ設定情報１２００が返信された場合、デフォルトパラメータ１２０７に定義されているパラメータ情報と、ユーザ入力パラメータ１２０８に定義されているパラメータ情報とを組み合わせることで、テストケースを生成する。
【０１８４】
具体的には、デフォルトパラメータ１２０７には、「"ｌａｎｇｕａｇｅ"："Ｅｎｇｌｉｓｈ"」が定義されている。このため、まず、パラメータ名「"ｌａｎｇｕａｇｅ"」のパラメータ情報のパラメータ値には、「"Ｅｎｇｌｉｓｈ"」を用いる。
【０１８５】
また、ユーザ入力パラメータ１２０８の入力定義１２１０には、「"ｄｉｖｉｓｉｏｎＰａｇｅＲａｎｇｅ"」の選択可能なパラメータ値「"Ｅａｃｈ  Ｐａｇｅｓ"」及び「"Ｓｐｅｃｉｆｉｅｄ  Ｐａｇｅｓ"」が定義されている。このため、パラメータ名「"ｄｉｖｉｓｉｏｎＰａｇｅＲａｎｇｅ"」のパラメータ情報のパラメータ値には、「"Ｅａｃｈ  Ｐａｇｅｓ"」と「"Ｓｐｅｃｉｆｉｅｄ  Ｐａｇｅｓ"」とを用いる。
【０１８６】
更に、ユーザ入力パラメータ１２０８の入力定義１２２０には、「"ｄｉｖｉｓｉｏｎＰａｇｅＮｕｍｂｅｒｓ"」のパラメータ値の上限値「１００」と下限値「０」が定義されている。このため、パラメータ名「"ｄｉｖｉｓｉｏｎＰａｇｅＮｕｍｂｅｒｓ"」のパラメータ情報のパラメータ値には、上限値「１００」と下限値「０」とを用いる。
【０１８７】
したがって、上記のパラメータ情報のパラメータ値を組み合わせることで、図１９（ａ）〜図１９（ｄ）に示す４つのテストケースが生成される。このように、テストケースは、アプリ設定情報１２００に定義されている１以上のパラメータ情報のパラメータ値を組み合わせることで生成される。このとき、例えば、パラメータ値が選択的に定義されている場合は、これら選択的に定義されているパラメータ値を組み合わせれば良い。また、パラメータ値が取り得る範囲が定義されている場合は、当該範囲の上限値や下限値、中間値等のパラメータ値を組み合わせれば良い。
【０１８８】
なお、例えば、ユーザにファイル名を入力させる場合等のように、ユーザにより入力された任意の文字列がパラメータ値となるパラメータ情報もある。具体的には、図２０（ａ）に示すパラメータ名「"ｆｉｌｅｎａｍｅ"」のパラメータ情報のように、ユーザにより入力された任意の文字列をパラメータ値とするようなパラメータ情報である。この場合、ブラウザ３１０は、例えば、ランダムに生成した文字列を当該パラメータ情報のパラメータ値として、他のパラメータ情報のパラメータ値と組み合わせてテストケースを生成すれば良い。
【０１８９】
また、図２０（ｂ）に示すパラメータ名「"ｆｉｌｅｎａｍｅ"」のパラメータ情報のように、０文字以上、かつ、１００文字以下の文字列をパラメータ値とするようなパラメータ情報の場合、０文字以上、かつ、１００文字以下の文字列をランダムに生成すれば良い。
【０１９０】
また、デフォルトのパラメータ値が処理フロー情報１１００に定義されている場合は、当該パラメータ値のパラメータ情報も組み合わせたテストケースが生成されても良い。例えば、図７に示す処理フロー情報１１００の詳細処理定義１１１０には、パラメータ名「"ｏｕｔｐｕｔＳｉｚｅ"」のパラメータ情報のデフォルトのパラメータ値として、「"Ａ４"」が定義されている。したがって、この場合、アプリ設定情報１２００に定義されているパラメータ情報に加えて、処理フロー情報１１００に定義されているパラメータ情報「"ｏｕｔｐｕｔＳｉｚｅ"："Ａ４"」も組み合わせてテストケースが生成されても良い。
【０１９１】
以降のステップＳ１８０６〜ステップＳ１８０９の処理は、上記のステップＳ１８０５で生成されたテストケース毎に実行される。
【０１９２】
ブラウザ３１０は、上記のステップＳ１８０５で生成したテストケース毎に、アプリケーションの実行要求を、Ｗｅｂサービス処理部１２０のアプリ実行部１２２に送信する（ステップＳ１８０６）。なお、アプリケーションの実行要求には、アプリＩＤと、アプリ設定情報１２００のフロー名１２０５に定義されているフロー名「ｏｃｒ−ｄｉｖｉｄｅ」と、テストに用いられる電子ファイルと、テストケースが示すパラメータ情報とが含まれる。
【０１９３】
ここで、テストに用いられる電子ファイルとは、例えば、テスト用のダミーの電子データ等である。
【０１９４】
また、テストケースが示すパラメータ情報とは、上記のステップＳ１８０５で生成したパラメータ情報の組み合わせのことである。
【０１９５】
例えば、図１９（ａ）に示すテストケース１では、パラメータ情報として、「"ｌａｎｇｕａｇｅ"："Ｅｎｇｌｉｓｈ"」と、「"ｄｉｖｉｓｉｏｎＰａｇｅＲａｎｇｅ"："Ｅａｃｈ  Ｐａｇｅｓ"」と、「"ｄｉｖｉｓｉｏｎＰａｇｅＮｕｍｂｅｒｓ"：０」とが含まれる。
【０１９６】
また、例えば、図１９（ｂ）に示すテストケース２では、パラメータ情報として、「"ｌａｎｇｕａｇｅ"："Ｅｎｇｌｉｓｈ"」と、「"ｄｉｖｉｓｉｏｎＰａｇｅＲａｎｇｅ"："Ｅａｃｈ  Ｐａｇｅｓ"」と、「"ｄｉｖｉｓｉｏｎＰａｇｅＮｕｍｂｅｒｓ"：１００」とが含まれる。
【０１９７】
同様に、例えば、図１９（ｃ）に示すテストケース３では、パラメータ情報として、「"ｌａｎｇｕａｇｅ"："Ｅｎｇｌｉｓｈ"」と、「"ｄｉｖｉｓｉｏｎＰａｇｅＲａｎｇｅ"："Ｓｐｅｃｉｆｉｅｄ  Ｐａｇｅｓ"」と、「"ｄｉｖｉｓｉｏｎＰａｇｅＮｕｍｂｅｒｓ"：０」とが含まれる。
【０１９８】
また、同様に、例えば、図１９（ｄ）に示すテストケース４では、パラメータ情報として、「"ｌａｎｇｕａｇｅ"："Ｅｎｇｌｉｓｈ"」と、「"ｄｉｖｉｓｉｏｎＰａｇｅＲａｎｇｅ"："Ｓｐｅｃｉｆｉｅｄ  Ｐａｇｅｓ"」と、「"ｄｉｖｉｓｉｏｎＰａｇｅＮｕｍｂｅｒｓ"：１００」とが含まれる。
【０１９９】
Ｗｅｂサービス処理部１２０のアプリ実行部１２２は、アプリケーションの実行要求を受信すると、当該実行要求を、入出力サービス処理部１１０のロジック処理部１１２に送信する（ステップＳ１８０７）。
【０２００】
入出力サービス処理部１１０のロジック処理部１１２は、アプリケーションの実行要求を受信すると、処理フローの実行処理を行う（ステップＳ１８０８）。すなわち、ロジック処理部１１２は、当該要求に含まれるパラメータ情報を用いて、当該要求に含まれるフロー名の処理フロー情報１１００に基づく一連の処理を実行する。このように、テストケースが示すパラメータ情報を用いて、処理フロー情報１１００に基づく一連の処理を実際に実行することで、テストが行われる。なお、処理フローの実行処理の詳細については後述する。
【０２０１】
そして、ロジック処理部１１２は、処理フローの実行処理の処理結果を、Ｗｅｂサービス処理部１２０のアプリ実行部１２２に返信する。
【０２０２】
Ｗｅｂサービス処理部１２０のアプリ実行部１２２は、ロジック処理部１１２から処理結果を受信すると、アプリＩＤと、テストケースと、当該処理結果とに基づいてテスト結果情報を作成し、テスト結果情報記憶部１８０に格納する（ステップＳ１８０９）。そして、アプリ実行部１２２は、当該処理結果をブラウザ３１０に返信する。
【０２０３】
ここで、アプリ実行部１２２により作成及び格納されるテスト結果情報について、図２１を参照しながら説明する。図２１は、テスト結果情報の一例を示す図である。
【０２０４】
図２１に示すように、テスト結果情報には、アプリＩＤと、テスト実施日と、最終テスト結果と、テストケースと、テストケース結果とが含まれる。
【０２０５】
アプリＩＤは、テストが行われたアプリケーションのアプリＩＤである。テスト実施日は、テストが実施された日付である。最終テスト結果は、最終的なテスト結果であり、全てのテストケース結果が「ＯＫ」である場合に「ＯＫ」となる。一方で、最終テスト結果は、少なくとも１つのテストケース結果が「ＮＧ」である場合には「ＮＧ」となる。
【０２０６】
テストケースは、テストされたテストケース（すなわち、パラメータ情報の組み合わせ）である。テストケース結果は、テストケース毎のテスト結果である。
【０２０７】
このように、テスト結果情報には、テストが行われたアプリケーション毎に、最終的なテスト結果と、テストケース毎のテスト結果とが関連付けられている。
【０２０８】
以上により、本実施形態に係る情報処理システム１では、ユーザがＰＣ端末３０を用いて、例えば、フロー名や各コンポーネントのパラメータ情報等を設定することで、容易にアプリケーション（アプリ情報１０００）を登録することができる。
【０２０９】
しかも、本実施形態に係る情報処理システム１では、アプリケーションを登録する場合や修正・更新する場合等に、アプリケーションの処理フロー（すなわち、アプリ情報１０００に含まれる処理フロー情報１１００に基づく処理フロー）をテストすることができる。これにより、例えば、アプリ設定情報１２００に定義されたパラメータ情報のパラメータ値が正しいか否か等を確認することができ、登録されたアプリケーションや修正・更新されたアプリケーションの動作確認等の評価を行うことができるようになる。
【０２１０】
したがって、本実施形態に係る情報処理システム１によれば、例えば、プログラミング言語等の専門的な知識や経験を有しないユーザ（例えば、企画担当者等）であっても、各種サービスを提供するアプリケーションの登録及びテストを容易に行うことができる。
【０２１１】
なお、本実施形態では、登録されたアプリケーションに対してテストを実行する場合について説明したが、例えば、登録前にテストを実行して、テストが成功したアプリケーションのみ登録を許可するようにしても良い。
【０２１２】
ここで、図２０に示したように、ユーザによりパラメータ値が入力されるパラメータ情報もある。すなわち、アプリケーションの処理フローをテストする際に、ユーザにより入力されるパラメータ値が処理フローの実行結果に影響を与える場合がある。このような場合に、ユーザにより入力されるパラメータ値が存在しないと、例えば、処理フローの実行が失敗したり、処理フローが途中で異常終了したりしてしまう。なお、ユーザにより入力されるパラメータ値には、例えば、メールの送信先アドレスや外部のクラウドサービスの認証情報等が挙げられる。
【０２１３】
そこで、ユーザがパラメータ値を入力する必要がある場合も考慮したテスト実行処理について、図２２を参照しながら説明する。図２２は、第一の実施形態に係るテスト実行処理の他の例を示すシーケンス図である。なお、図２２のステップＳ２２０１〜ステップＳ２２０４及びステップＳ２２１１〜ステップＳ２２１４の処理は、図１８のステップＳ１８０１〜ステップＳ１８０４及びステップＳ１８０６〜ステップＳ１８０９の処理とそれぞれ同様であるため、その説明を省略する。
【０２１４】
ステップＳ２２０４に続いて、ブラウザ３１０は、アプリ画面情報２０００と、アプリ設定情報１２００とが返信されると、処理フロー情報の取得要求をアプリ管理部１１１に送信する（ステップＳ２２０５）。なお、当該取得要求には、当該アプリ設定情報１２００のフロー名１２０５に定義されたフロー名が含まれる。
【０２１５】
アプリ管理部１１１は、処理フロー情報の取得要求を受信すると、当該取得要求に含まれるフロー名の処理フロー情報１１００をアプリ情報記憶部１５０から取得する（ステップＳ２２０６）。そして、アプリ管理部１１１は、アプリ情報記憶部１５０から取得した処理フロー情報１１００をブラウザ３１０に返信する。
【０２１６】
以降のステップＳ２２０７の処理は、処理フロー情報１１００に基づく処理フローが実行するオペレーション毎に実行される。すなわち、当該処理フロー情報１１００の「"ｏｐｅｒａｔｉｏｎＮａｍｅ"」に定義されたオペレーション名毎に実行される。
【０２１７】
ブラウザ３１０は、処理フロー情報１１００及びアプリ設定情報１２００の少なくとも一方を参照して、該当のオペレーション名に対応するパラメータ情報について、パラメータ値をユーザに入力させる必要があるパラメータ情報が存在するか否かを判定する（ステップＳ２２０７）。ブラウザ３１０は、例えば、以下の（１）〜（４）により、該当のオペレーション名に対応するパラメータ情報について、パラメータ値をユーザに入力させる必要があるパラメータ情報が存在するか否かを判定すれば良い。
【０２１８】
（１）ブラウザ３１０は、処理フロー情報１１００を参照して、パラメータ値をユーザに入力させることを示すフラグ（ユーザ入力フラグ）がパラメータ情報に定義されているか否かを判定する。この場合、ユーザ入力フラグがパラメータ情報に定義されていない場合に、当該パラメータ情報のパラメータ値をユーザに入力させると判定すれば良い。
【０２１９】
（２）ブラウザ３１０は、処理フロー情報１１００を参照して、デフォルト値が定義されていないパラメータ情報が存在するか否かを判定する。この場合、デフォルト値が定義されていないパラメータ情報が存在する場合に、当該パラメータ情報のパラメータ値をユーザに入力させると判定すれば良い。
【０２２０】
なお、パラメータ情報のデフォルト値は、アプリ設定情報１２００に定義されている場合もある。したがって、この場合、処理フロー情報１１００でデフォルト値が定義されていないパラメータ情報について、アプリ設定情報１２００にもデフォルト値が定義されていない場合に、当該パラメータ情報のパラメータ値をユーザに入力させると判定しても良い。
【０２２１】
（３）ブラウザ３１０は、処理フロー情報１１００を参照して、ユーザ入力フラグが定義されており、かつ、デフォルト値が定義されていないパラメータ情報が存在するか否かを判定する。この場合、ユーザ入力フラグが定義されており、かつ、デフォルト値が定義されていないパラメータ情報が存在する場合、当該パラメータ情報のパラメータ値を入力させると判定しても良い。なお、この場合も、上記（２）と同様に、更に、アプリ設定情報１２００にもデフォルト値が定義されていない場合に、当該パラメータ情報のパラメータ値をユーザに入力させると判定しても良い。
【０２２２】
（４）ブラウザ３１０は、アプリ設定情報１２００を参照して、ユーザ入力パラメータ１２０８にパラメータ情報が定義されているか否かを判定する。この場合、ユーザ入力パラメータ１２０８にパラメータ情報が定義されている場合に、当該パラメータ情報のパラメータ値をユーザに入力させると判定すれば良い。なお、ブラウザ３１０は、上記の（１）〜（３）の判定とあわせて、（４）による判定を行っても良い。
【０２２３】
ステップＳ２２０７において、該当のオペレーション名に対応するパラメータ情報について、パラメータ値をユーザに入力させる必要があるパラメータ情報が存在すると判定された場合、以降のステップＳ２２０８〜ステップＳ２２０９の処理が実行される。
【０２２４】
ブラウザ３１０は、当該パラメータ情報のパラメータ値をユーザに入力させるためのパラメータ入力画面を表示する（ステップＳ２２０８）。ここで、パラメータ入力画面の一例を図２３に示す。図２３は、パラメータ入力画面の一例を示す図である。
【０２２５】
図２３に示すパラメータ入力画面Ｇ９５０は、オペレーション名「メール送信１」の処理に用いるパラメータ情報「Ｔｏ」のパラメータ値を入力するための画面である。ユーザは、パラメータ入力欄Ｇ９５１にパラメータ値を入力した上で、ＯＫボタンＧ９５２を押下することで、当該パラメータ情報のパラメータ値を指定することができる。
【０２２６】
次に、ブラウザ３１０は、上記のステップＳ２２０８で表示されたパラメータ入力画面において、ユーザにより指定されたパラメータ値で、処理フロー情報１１００に定義されているパラメータ情報のパラメータ値を更新する（ステップＳ２２０９）。これにより、処理フロー情報１１００に定義されているパラメータ情報のパラメータ値が、ユーザにより入力されたパラメータ値に設定される。
【０２２７】
以上のステップＳ２２０７〜ステップＳ２２０９の処理により、処理フロー情報１１００に定義されているパラメータ情報のうち、ユーザによりパラメータ値が入力される必要があるパラメータ情報について、パラメータ値をユーザに入力させることができる。
【０２２８】
ブラウザ３１０は、アプリ画面情報２０００と、アプリ設定情報１２００と、処理フロー情報１１００とから、例えばオールペア法（ペアワイズ法）等の手法によりパラメータ情報を組み合わせて、テストケースを生成する（ステップＳ２２１０）。
【０２２９】
以上により、本実施形態に係る情報処理システム１では、アプリケーションの処理フローをテストする際に、パラメータ情報のパラメータ値をユーザに入力させることができる。これにより、パラメータ値が指定されていないことによる処理フローの異常終了等を防止することができる。
【０２３０】
次に、図１８のステップＳ１８０８の処理（処理フローの実行処理）の詳細について、図２４を参照しながら説明する。図２４は、ＯＣＲ分割サービスを実現する処理フローの実行処理の一例を示すシーケンス図である。
【０２３１】
まず、フロー実行部３０１は、アプリ実行部１２２からアプリケーションの実行要求を受信すると、処理フロー情報の取得要求をアプリ管理部１１１に送信する（ステップＳ２４０１）。なお、当該取得要求には、フロー名「ｏｃｒ−ｄｉｖｉｄｅ」が含まれる。
【０２３２】
アプリ管理部１１１は、処理フロー情報の取得要求を受信すると、当該取得要求に含まれるフロー名「ｏｃｒ−ｄｉｖｉｄｅ」の処理フロー情報１１００をアプリ情報記憶部１５０から取得する（ステップＳ２４０２）。そして、アプリ管理部１１１は、アプリ情報記憶部１５０から取得した処理フロー情報１１００をフロー実行部３０１に返信する。
【０２３３】
ここで、以降では、アプリ管理部１１１は、図７に示す処理フロー情報１１００をフロー実行部３０１に返信したものとして説明する。
【０２３４】
次に、フロー実行部３０１は、処理フロー情報１１００に基づくコンポーネントの取得要求をコンポーネント管理部３０２に送信する（ステップＳ２４０３）。
【０２３５】
すなわち、フロー実行部３０１は、図７に示す処理フロー情報１１００の詳細処理定義１１１０に含まれる「"ｃｏｍｐｏｎｅｎｔ"」に定義されているコンポーネント名「"ＯＣＲ"」のコンポーネントの取得要求をコンポーネント管理部３０２に送信する。
【０２３６】
コンポーネント管理部３０２は、コンポーネントの取得要求を受信すると、コンポーネント名「"ＯＣＲ"」のコンポーネント（すなわち、ＯＣＲコンポーネント１３１０）を生成する（ステップＳ２４０４）。なお、ＯＣＲコンポーネント１３１０の生成は、コンポーネント共通Ｉ／Ｆ１３００に定義されたコンポーネントを生成するためのＡＰＩを用いて行うことができる。
【０２３７】
そして、コンポーネント管理部３０２は、生成したＯＣＲコンポーネント１３１０をフロー実行部３０１に返信する。すなわち、コンポーネント管理部３０２は、例えば、ＯＣＲコンポーネント１３１０が展開されたメモリ（例えばＲＡＭ１４）上のアドレスをフロー実行部３０１に返信する。
【０２３８】
次に、フロー実行部３０１は、コンポーネント実行要求をＯＣＲコンポーネント１３１０に送信する（ステップＳ２４０５）。なお、当該実行要求には、データと、パラメータ情報とが含まれる。
【０２３９】
ここで、データは、データ型「ＩｎｐｕｔＳｔｒｅａｍ」として受信した、アプリケーションの実行要求に含まれる電子ファイルである。すなわち、フロー実行部３０１は、受信した電子ファイルを、単に「データ」として（データ型を意識することなく）、ＯＣＲコンポーネント１３１０に渡して処理の実行を要求する。本実施形態では、このようにデータ型を意識しない電子ファイル等の各種の情報を、単に「データ」と表す。また、パラメータ情報は、アプリケーションの実行要求に含まれるパラメータ情報である。
【０２４０】
ＯＣＲコンポーネント１３１０は、コンポーネント実行要求を受信すると、型変換要求を型変換管理部３０４に送信する（ステップＳ２４０６）。なお、当該型変換要求には、データと、ＯＣＲコンポーネント１３１０が扱うことができるデータ型を示す「ＬｏｃａｌＦｉｌｅＰａｔｈ」の指定とが含まれる。
【０２４１】
型変換管理部３０４は、型変換要求を受信すると、当該型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するか否かをチェックする（ステップＳ２４０７）。
【０２４２】
ここで、型変換要求に含まれるデータのデータ型は「ＩｎｐｕｔＳｔｒｅａｍ」である一方、指定されたデータ型は「ＬｏｃａｌＦｉｌｅＰａｔｈ」である。したがって、型変換管理部３０４は、型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致しないものと判断する。
【０２４３】
すると、型変換管理部３０４は、型変換情報テーブル４０００を参照して、データ型「ＩｎｐｕｔＳｔｒｅａｍ」を「ＬｏｃａｌＦｉｌｅＰａｔｈ」に変換するための型変換を特定する（ここでは、第１の型変換１４１０が特定される。）。そして、型変換管理部３０４は、特定した第１の型変換１４１０を生成する（ステップＳ２４０８）。なお、第１の型変換１４１０の生成は、型変換共通Ｉ／Ｆ１４００を用いて行うことができる。
【０２４４】
次に、型変換管理部３０４は、型変換処理の実行要求を第１の型変換１４１０に送信する（ステップＳ２４０９）。なお、当該実行要求には、データが含まれる。
【０２４５】
第１の型変換１４１０は、型変換の実行要求を受信すると、当該実行要求に含まれるデータのデータ型を「ＩｎｐｕｔＳｔｒｅａｍ」から「ＬｏｃａｌＦｉｌｅＰａｔｈ」に変換する型変換処理を行う（ステップＳ２４１０）。そして、第１の型変換１４１０は、データ型が変換されたデータを型変換管理部３０４に返信する。
【０２４６】
型変換管理部３０４は、第１の型変換１４１０からデータを受信すると、当該データをＯＣＲコンポーネント１３１０に送信する（ステップＳ２４１１）。
【０２４７】
ＯＣＲコンポーネント１３１０は、型変換管理部３０４からデータを受信すると、パラメータ情報を用いて、データに対して処理を実行する（ステップＳ２４１２）。
【０２４８】
例えば、アプリケーションの実行要求にパラメータ情報「"ｌａｎｇｕａｇｅ"："Ｅｎｇｌｉｓｈ"」が含まれていた場合、ＯＣＲコンポーネント１３１０は、ＯＣＲ処理部１３１により、当該パラメータ情報を用いて、データにより示される電子ファイルに対して、英語でＯＣＲ処理を行う。
【０２４９】
そして、ＯＣＲコンポーネント１３１０は、ＯＣＲ処理後の電子ファイル（すなわち、テキスト付きＰＤＦファイル）を示すデータをフロー実行部３０１に返信する。
【０２５０】
次に、フロー実行部３０１は、処理フロー情報１１００に基づくコンポーネントの取得要求をコンポーネント管理部３０２に送信する（ステップＳ２４１３）。
【０２５１】
すなわち、フロー実行部３０１は、図７に示す処理フロー情報１１００の詳細処理定義１１２０に含まれる「"ｃｏｍｐｏｎｅｎｔ"」に定義されているコンポーネント名「"ＰＤＦ"」のコンポーネントの取得要求をコンポーネント管理部３０２に送信する。
【０２５２】
コンポーネント管理部３０２は、コンポーネントの取得要求を受信すると、コンポーネント名「"ＰＤＦ"」のコンポーネント（すなわち、ＰＤＦコンポーネント１３２０）を生成する（ステップＳ２４１４）。なお、ＰＤＦコンポーネント１３２０の生成は、コンポーネント共通Ｉ／Ｆ１３００に定義されたコンポーネントを生成するためのＡＰＩを用いて行うことができる。
【０２５３】
そして、コンポーネント管理部３０２は、生成したＰＤＦコンポーネント１３２０をフロー実行部３０１に返信する。すなわち、コンポーネント管理部３０２は、例えば、ＰＤＦコンポーネント１３２０が展開されたメモリ（例えばＲＡＭ１４）上のアドレスをフロー実行部３０１に返信する。
【０２５４】
次に、フロー実行部３０１は、コンポーネント実行要求をＰＤＦコンポーネント１３２０に送信する（ステップＳ２４１５）。なお、当該実行要求には、データと、パラメータ情報とが含まれる。
【０２５５】
ここで、データは、ＯＣＲコンポーネント１３１０から返信されたデータ（すなわち、ＯＣＲ処理後の電子ファイル（テキスト付きＰＤＦファイル）を示すパス）である。
【０２５６】
ＰＤＦコンポーネント１３２０は、コンポーネント実行要求を受信すると、型変換要求を型変換管理部３０４に送信する（ステップＳ２４１６）。なお、当該型変換要求には、データと、ＰＤＦコンポーネント１３２０が扱うことができるデータ型を示す「ＬｏｃａｌＦｉｌｅＰａｔｈ」の指定とが含まれる。
【０２５７】
型変換管理部３０４は、型変換要求を受信すると、当該型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するか否かをチェックする（ステップＳ２４１７）。
【０２５８】
ここで、型変換要求に含まれるデータのデータ型は「ＬｏｃａｌＦｉｌｅＰａｔｈ」であり、指定されたデータ型も「ＬｏｃａｌＦｉｌｅＰａｔｈ」である。したがって、型変換管理部３０４は、型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するものと判断する。
【０２５９】
すると、型変換管理部３０４は、型変換要求に含まれるデータをＰＤＦコンポーネント１３２０に送信する（ステップＳ２４１８）。このように、データ型のチェック（ステップＳ２４１７の処理）において、データのデータ型と、指定されたデータ型とが一致すると判断された場合には、型変換管理部３０４は、型変換の生成を行わない。
【０２６０】
ＰＤＦコンポーネント１３２０は、型変換管理部３０４からデータを受信すると、パラメータ情報を用いて、データに対して処理を実行する（ステップＳ２４１９）。
【０２６１】
例えば、アプリケーションの実行要求にパラメータ情報「"ｄｉｖｉｓｉｏｎＰａｇｅＲａｎｇｅ"："Ｅａｃｈ  Ｐａｇｅｓ"」と、パラメータ情報「"ｄｉｖｉｓｉｏｎＰａｇｅＮｕｍｂｅｒｓ"：１００」とが含まれていたとする。この場合、ＰＤＦコンポーネント１３２０は、これらのパラメータ情報を用いて、データにより示される電子ファイル（テキスト付きＰＤＦ）の分割処理を行う。具体的には、この場合、ＰＤＦコンポーネント１３２０は、ページ番号「１００」以降の各ページを分割して、テキスト付きＰＤＦファイルを作成する。
【０２６２】
そして、ＰＤＦコンポーネント１３２０は、分割処理後の電子ファイルを示すデータをフロー実行部３０１に返信する。
【０２６３】
以上により、図７に示す処理フロー情報１１００に基づく一連の処理（処理フロー）の実行が完了する。これにより、本実施形態に係るサービス提供システム１０は、テストケース毎に、ＯＣＲ分割アプリケーションが提供するサービス（ＯＣＲ分割サービス）を実現する処理フローをテストすることができる。また、後述するように、機器２０に対して、ＯＣＲ分割サービスを提供することができる。
【０２６４】
次に、機器２０のユーザがＯＣＲ分割サービスを利用する場合について、図２５を参照しながら説明する。図２５は、ＯＣＲ分割サービスを利用する場合の全体処理の一例を示すシーケンス図である。
【０２６５】
まず、機器２０のブラウザ２１０は、ＯＣＲ分割サービスのアプリ画面を表示させるための操作（表示操作）を受け付ける（ステップＳ２５０１）。なお、機器２０のユーザは、例えば、ＯＣＲ分割サービスのアプリ画面のＵＲＬをブラウザ３１０のアドレスバーに入力することで、アプリ画面の表示操作を行うことができる。
【０２６６】
機器２０のブラウザ２１０は、ＯＣＲ分割サービスのアプリ画面の表示操作を受け付けると、ＯＣＲ分割サービスのアプリ画面の表示要求を、Ｗｅｂサービス処理部１２０の画面構成部１２１に送信する（ステップＳ２５０２）。なお、ＯＣＲ分割サービスのアプリ画面の表示要求には、ＯＣＲ分割サービスを提供するアプリ情報１０００のアプリＩＤが含まれる。
【０２６７】
Ｗｅｂサービス処理部１２０の画面構成部１２１は、ＯＣＲ分割サービスのアプリ画面の表示要求を受信すると、アプリ設定の取得要求を、入出力サービス処理部１１０のアプリ管理部１１１に送信する（ステップＳ２５０３）。なお、アプリ設定の取得要求には、ＯＣＲ分割サービスを提供するアプリ情報１０００のアプリＩＤが含まれる。
【０２６８】
入出力サービス処理部１１０のアプリ管理部１１１は、アプリ設定の取得要求を受信すると、当該取得要求に含まれるアプリＩＤに関連付けて記憶されているアプリ設定情報１２００をアプリ情報記憶部１５０から取得する（ステップＳ２５０４）。そして、アプリ管理部１１１は、アプリ情報記憶部１５０から取得したアプリ設定情報１２００を画面構成部１２１に返信する。
【０２６９】
Ｗｅｂサービス処理部１２０の画面構成部１２１は、ＯＣＲ分割サービスを提供するアプリ情報１０００のアプリＩＤと関連付けて記憶されているアプリ画面情報２０００をアプリ画面情報記憶部１６０から取得する（ステップＳ２５０５）。そして、画面構成部１２１は、アプリ画面情報記憶部１６０から取得したアプリ画面情報２０００と、上記のステップＳ２５０４で返信されたアプリ設定情報１２００とをブラウザ２１０に返信する。
【０２７０】
機器２０のブラウザ２１０は、画面構成部１２１から受信したアプリ画面情報２０００とアプリ設定情報１２００とに基づいて、例えば図２６に示すアプリ画面Ｇ１０００を表示する（ステップＳ２５０６）。
【０２７１】
ここで、図２６に示すアプリ画面Ｇ１０００は、機器２０のユーザがＯＣＲ分割サービスを利用するための画面である。
【０２７２】
図２６に示すアプリ画面Ｇ１０００には、アプリ名Ｇ１０１０と、パラメータ値入力エリアＧ１０２０と、「スタート」ボタンＧ１０３０とが含まれる。また、パラメータ値入力エリアＧ１０２０には、分割方法入力欄Ｇ１０２１と、分割開始ページ開始番号入力欄Ｇ１０２２とが含まれる。
【０２７３】
アプリ名Ｇ１０１０は、図１５に示すアプリ設定情報１２００のアプリ表示名１２０３に基づいて表示される。なお、アプリ表示名１２０３に複数の言語のアプリケーション名称（タイトル）が定義されている場合、ブラウザ２１０の言語設定に対応する言語のアプリケーション名称がアプリ名Ｇ１０１０に表示される。
【０２７４】
また、分割方法入力欄Ｇ１０２１と、分割開始ページ開始番号入力欄Ｇ１０２２とは、図１５に示すアプリ設定情報１２００のユーザ入力パラメータ１２０８に基づいて表示される。
【０２７５】
すなわち、分割方法入力欄Ｇ１０２１は、ユーザ入力パラメータ１２０８の入力定義１２１０に基づいて表示される。同様に、分割開始ページ開始番号入力欄Ｇ１０２２は、ユーザ入力パラメータ１２０８の入力定義１２２０に基づいて表示される。
【０２７６】
このように、機器２０のユーザがサービスを利用するためのアプリ画面には、アプリ設定情報１２００に定義されている情報に基づいて、アプリ名やパラメータ値」入力エリアが表示される。
【０２７７】
ここで、図２６に示すアプリ画面Ｇ１０００において、ユーザは、分割方法入力欄Ｇ１０２１及び分割開始ページ開始番号入力欄Ｇ１０２２にパラメータ値を入力（選択）した上で、「スタート」ボタンＧ１０３０を押下する操作（実行操作）を行ったものとする。
【０２７８】
すると、機器２０のブラウザ２１０は、実行操作を受け付ける（ステップＳ２５０７）。そして、機器２０のブラウザ２１０は、スキャナ２６を制御して、原稿を読み取ることで、電子ファイル（画像ファイル）を生成する（ステップＳ２５０８）。
【０２７９】
機器２０のブラウザ２１０は、電子ファイル（画像ファイル）が生成されると、アプリケーションの実行要求を、Ｗｅｂサービス処理部１２０のアプリ実行部１２２に送信する（ステップＳ２５０９）。なお、アプリケーションの実行要求には、アプリ設定情報１２００のフロー名１２０５に定義されたフロー名「ｏｃｒ−ｄｉｖｉｄｅ」と、上記のステップＳ２５０８で生成された電子ファイルと、パラメータ情報とが含まれる。
【０２８０】
ここで、パラメータ情報は、アプリ設定情報１２００のデフォルトパラメータ１２０７に定義されているパラメータ情報、及びユーザによりアプリ画面Ｇ１０００でパラメータ値が入力されたパラメータ情報である。
【０２８１】
Ｗｅｂサービス処理部１２０のアプリ実行部１２２は、アプリケーションの実行要求を受信すると、当該実行要求を、入出力サービス処理部１１０のロジック処理部１１２に送信する（ステップＳ２５１０）。
【０２８２】
入出力サービス処理部１１０のロジック処理部１１２は、アプリケーションの実行要求を受信すると、処理フローの実行処理を行う（ステップＳ２５１１）。すなわち、ロジック処理部１１２は、図２４で説明した処理フローの実行処理を行う。
【０２８３】
そして、ロジック処理部１１２は、処理フローの実行処理の処理結果を、Ｗｅｂサービス処理部１２０を介して、ブラウザ２１０に返信する。これにより、本実施形態に係るサービス提供システム１０は、ＯＣＲ分割サービスを提供することができる。
【０２８４】
ここで、図１８で説明したテスト実行処理では、ブラウザ３１０でテストケースを生成する場合について説明したが、これに限られない。テストケースは、例えば、サービス提供システム１０が生成しても良い。テストケースをサービス提供システム１０で生成する場合のテスト実行処理について、図２７を参照しながら説明する。図２７は、第一の実施形態に係るテスト実行処理の他の例を示すシーケンス図である。なお、図２７のステップＳ２７０６〜ステップＳ２７０９の処理は、図１８のステップＳ１８０６〜ステップＳ１８０９の処理とそれぞれ同様であるため、その説明を省略する。
【０２８５】
まず、ブラウザ３１０は、テスト実行操作を受け付けると、テストケースの生成要求を、Ｗｅｂサービス処理部１２０の画面構成部１２１に送信する（ステップＳ２７０１）。なお、テストケースの生成要求には、図８のステップＳ８１３でアプリ管理部１１１から返信されたアプリＩＤが含まれる。
【０２８６】
Ｗｅｂサービス処理部１２０の画面構成部１２１は、テストケースの生成要求を受信すると、当該生成要求を、入出力サービス処理部１１０のアプリ管理部１１１に送信する（ステップＳ２７０２）。
【０２８７】
入出力サービス処理部１１０のアプリ管理部１１１は、テストケースの生成要求を受信すると、当該生成要求に含まれるアプリＩＤに関連付けて記憶されているアプリ設定情報１２００をアプリ情報記憶部１５０から取得する（ステップＳ２７０３）。
【０２８８】
次に、入出力サービス処理部１１０のアプリ管理部１１１は、上記のステップＳ２７０３で取得したアプリ設定情報１２００からテストケースを生成する（ステップＳ２７０４）。なお、テストケースの生成方法は、図８のステップＳ１８０５と同様である。
【０２８９】
そして、アプリ管理部１１１は、生成したテストケースを、Ｗｅｂサービス処理部１２０の画面構成部１２１に返信する。
【０２９０】
Ｗｅｂサービス処理部１２０の画面構成部１２１は、テストケースを受信すると、テスト結果画面Ｇ８００及びテスト結果画面Ｇ９００を表示するためのアプリ画面情報２０００をアプリ画面情報記憶部１６０から取得する（ステップＳ２７０５）。そして、画面構成部１２１は、アプリ画面情報記憶部１６０から取得したアプリ画面情報２０００と、上記のステップＳ２７０４で返信されたテストケースとをブラウザ３１０に返信する。
【０２９１】
このように、本実施形態に係る情報処理システム１は、サービス提供システム１０でテストケースが生成され、ブラウザ３１０に返信されても良い。
【０２９２】
［第二の実施形態］
次に、第二の実施形態について説明する。第二の実施形態では、各コンポーネントに関する情報（以降、「コンポーネント情報」と表す。）にも基づいてテストケースを生成する場合について説明する。これにより、例えば、デフォルトのパラメータ値がコンポーネント情報に定義されている場合には、このデフォルトのパラメータ値を考慮したテストケースを生成することができるようになる。
【０２９３】
なお、第二の実施形態では、主に、第一の実施形態との相違点について説明し、第一の実施形態と実質的に同一の構成要素については、適宜、その説明を省略するものとする。
【０２９４】
＜機能構成＞
まず、本実施形態に係る情報処理システム１の機能構成について、図２８を参照しながら説明する。図２８は、本実施形態に係る情報処理システム１の機能構成の一例を示す図である。
【０２９５】
図２８に示すサービス提供システム１０は、更に、コンポーネント情報記憶部１９０を有する。当該記憶部は、ＨＤＤ１８を用いて実現可能である。なお、当該記憶部は、サービス提供システム１０とネットワークを介して接続される記憶装置等を用いて実現されていても良い。
【０２９６】
コンポーネント情報記憶部１９０は、コンポーネント情報１５００を記憶する。コンポーネント情報１５００には、コンポーネントに関する各種情報（例えば、コンポーネントが実行可能なオペレーション、当該オペレーションの実行に用いられるパラメータ情報等）が定義されている。
【０２９７】
＜処理の詳細＞
次に、本実施形態に係る情報処理システム１の処理の詳細について説明する。以降では、本実施形態に係るテスト実行処理の詳細について、図２９を参照しながら説明する。図２９は、本実施形態に係るテスト実行処理の一例を示すシーケンス図である。なお、図２９のステップＳ２９１０〜ステップＳ２９１３の処理は、図１８のステップＳ１８０６〜ステップＳ１８０９の処理とそれぞれ同様であるため、その説明を省略する。
【０２９８】
まず、ブラウザ３１０は、テスト実行操作を受け付けると、アプリ設定の取得要求を、Ｗｅｂサービス処理部１２０の画面構成部１２１に送信する（ステップＳ２９０１）。なお、アプリ設定の取得要求には、図８のステップＳ８１３でアプリ管理部１１１から返信されたアプリＩＤが含まれる。
【０２９９】
Ｗｅｂサービス処理部１２０の画面構成部１２１は、アプリ設定の取得要求を受信すると、当該取得要求を、入出力サービス処理部１１０のアプリ管理部１１１に送信する（ステップＳ２９０２）。
【０３００】
入出力サービス処理部１１０のアプリ管理部１１１は、アプリ設定の取得要求を受信すると、当該取得要求に含まれるアプリＩＤに関連付けて記憶されているアプリ設定情報１２００をアプリ情報記憶部１５０から取得する（ステップＳ２９０３）。
【０３０１】
ここで、以降では、上記のステップＳ２９０３では、図３０に示すアプリ設定情報１２００が取得されたものとする。図３０に示すアプリ設定情報１２００では、ユーザ入力パラメータ１２０８の入力定義１２１０が図１５と異なっている。すなわち、図３０に示すアプリ設定情報１２００の入力定義１２１０におけるパラメータ情報「"ｄｉｖｉｓｉｏｎＰａｇｅＲａｎｇｅ"」では、「"ｉｎｐｕｔＴｙｐｅ"」に「"ｔｅｘｔ"」が定義されている。
【０３０２】
次に、入出力サービス処理部１１０のアプリ管理部１１１は、上記のステップＳ２９０３で取得したアプリ設定情報１２００のフロー名１２０５に対応する処理フロー情報１１００からコンポーネント名とオペレーション名とを特定する（ステップＳ２９０４）。
【０３０３】
例えば、上記のステップＳ２９０３で取得したアプリ設定情報１２００のフロー名１２０５に「ｏｃｒ−ｄｉｖｉｄｅ」が定義されていたとする。この場合、アプリ管理部１１１は、図７に示す処理フロー情報１１００の詳細処理定義１１１０からコンポーネント名「ＯＣＲ」とオペレーション名「ｐｒｏｃｅｓｓ」とを特定する。同様に、アプリ管理部１１１は、図７に示す処理フロー情報１１００の詳細処理定義１１２０からコンポーネント名「ＰＤＦ」とオペレーション名「ｄｉｖｉｄｅＢｙＰａｇｅＮｕｍｂｅｒｓ」とを特定する。
【０３０４】
そして、アプリ管理部１１１は、上記のステップＳ２９０３で取得したアプリ設定情報１２００と、上記のステップＳ２９０４で特定したコンポーネント名及びオペレーション名とを、Ｗｅｂサービス処理部１２０の画面構成部１２１に返信する。
【０３０５】
Ｗｅｂサービス処理部１２０の画面構成部１２１は、テスト結果画面Ｇ８００及びテスト結果画面Ｇ９００を表示するためのアプリ画面情報２０００をアプリ画面情報記憶部１６０から取得する（ステップＳ２９０５）。そして、画面構成部１２１は、アプリ画面情報記憶部１６０から取得したアプリ画面情報２０００と、上記のステップＳ２９０４で返信されたアプリ設定情報１２００と、コンポーネント名及びオペレーション名とをブラウザ３１０に返信する。
【０３０６】
ブラウザ３１０は、アプリ画面情報２０００と、アプリ設定情報１２００と、コンポーネント名及びオペレーション名とが返信されると、コンポーネント情報の取得要求を、Ｗｅｂサービス処理部１２０のアプリ実行部１２２に送信する（ステップＳ２９０６）。なお、コンポーネント情報の取得要求には、画面構成部１２１から返信されたコンポーネント名が含まれる。
【０３０７】
Ｗｅｂサービス処理部１２０のアプリ実行部１２２は、コンポーネント情報の取得要求を受信すると、当該取得要求を、入出力サービス処理部１１０のロジック処理部１１２に送信する（ステップＳ２９０７）。
【０３０８】
入出力サービス処理部１１０のロジック処理部１１２は、コンポーネント情報の取得要求を受信すると、当該取得要求に含まれるコンポーネント名のコンポーネント情報１５００をコンポーネント情報記憶部１９０から取得する（ステップＳ２９０８）。
【０３０９】
例えば、コンポーネント情報の取得要求に含まれるコンポーネント名が「ＯＣＲ」と「ＰＤＦ」とであるとする。この場合、ロジック処理部１１２は、コンポーネント名「ＯＣＲ」のコンポーネント情報１５００と、コンポーネント名「ＰＤＦ」のコンポーネント情報１５００とを取得する。
【０３１０】
ここで、コンポーネント名「ＯＣＲ」のコンポーネント情報１５００の一例を図３１に示す。図３１に示すコンポーネント情報１５００には、コンポーネント名１５０１と、オペレーション名１５０２と、パラメータ定義１５０３とが含まれる。
【０３１１】
パラメータ定義１５０３には、パラメータ名を示す「"ｎａｍｅ"」と、デフォルトのパラメータ値を示す「"ｄｅｆａｕｌｔＶａｌｕｅ"」と、設定可能なパラメータ値を示す「ｏｐｔｉｏｎＶａｌｕｅｓ」とが定義されている。
【０３１２】
そして、ロジック処理部１１２は、取得したコンポーネント情報１５００を、アプリ実行部１２２を介して、ブラウザ３１０に返信する。
【０３１３】
ブラウザ３１０は、コンポーネント情報１５００が返信されると、アプリ設定情報１２００と、当該コンポーネント情報１５００と、オペレーション名とから、パラメータ情報を組み合わせて、テストケースを生成する（ステップＳ２９０９）。
【０３１４】
例えば、図３０に示すアプリ設定情報１２００の入力定義１２１０におけるパラメータ情報「"ｄｉｖｉｓｉｏｎＰａｇｅＲａｎｇｅ"」では、「"ｉｎｐｕｔＴｙｐｅ"」に「"ｔｅｘｔ"」が定義されているだけである。このため、パラメータ情報「"ｄｉｖｉｓｉｏｎＰａｇｅＲａｎｇｅ"」のパラメータ値として、どのような値を取り得るのか不明である。
【０３１５】
このため、この場合、ブラウザ３１０は、図３１に示すコンポーネント情報１５００のパラメータ定義１５０３から、パラメータ情報「"ｄｉｖｉｓｉｏｎＰａｇｅＲａｎｇｅ"」のデフォルトのパラメータ値「"Ｅａｃｈ  Ｐａｇｅｓ"」を用いてテストケースを生成する。
【０３１６】
このように、例えばアプリ設定情報１２００を適切なパラメータ値が定義されていない場合に、ブラウザ３１０は、コンポーネント情報１５００に定義されているデフォルトのパラメータ値を用いて、テストケースを生成する。これにより、本実施形態に係る情報処理システム１では、例えば、処理フローの実行においてコンポーネント情報１５００に定義されたデフォルトのパラメータ値が用いられるようなアプリケーションについて、当該パラメータ値を用いたテストを行うことができるようになる。
【０３１７】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【０３１８】
１        情報処理システム
１０      サービス提供システム
２０      機器
３０      ＰＣ端末
１１０      入出力サービス処理部
１１１      アプリ管理部
１１２      ロジック処理部
１２０      Ｗｅｂサービス処理部
１２１      画面構成部
１２２      アプリ実行部
１３０      ドキュメントサービス部
１３１      ＯＣＲ処理部
１４０      ポータルサービス部
１４１      ＵＩ提供部
１４２      アプリ登録部
１５０      アプリ情報記憶部
１６０      アプリ画面情報記憶部
１７０      ポータル画面情報記憶部
１８０      テスト結果情報記憶部
２１０      ブラウザ
３１０      ブラウザ
３０１      フロー実行部
３０２      コンポーネント管理部
３０３      コンポーネント群
３０４      型変換管理部
３０５      型変換群
１０００    アプリ情報
１１００    処理フロー情報
１２００    アプリ設定情報
２０００    アプリ画面情報
３０００    ポータル画面情報
４０００    型変換情報テーブル
【先行技術文献】
【特許文献】
【０３１９】
【特許文献１】特許第４０３９１９１号公報
【図１】
2018200667.tif 000003
【図２】
2018200667.tif 000004
【図３】
2018200667.tif 000005
【図４】
2018200667.tif 000006
【図５】
2018200667.tif 000007
【図６】
2018200667.tif 000008
【図７】
2018200667.tif 000009
【図８】
2018200667.tif 000010
【図９】
2018200667.tif 000011
【図１０】
2018200667.tif 000012
【図１１】
2018200667.tif 000013
【図１２】
2018200667.tif 000014
【図１３】
2018200667.tif 000015
【図１４】
2018200667.tif 000016
【図１５】
2018200667.tif 000017
【図１６】
2018200667.tif 000018
【図１７】
2018200667.tif 000019
【図１８】
2018200667.tif 000020
【図１９】
2018200667.tif 000021
【図２０】
2018200667.tif 000022
【図２１】
2018200667.tif 000023
【図２２】
2018200667.tif 000024
【図２３】
2018200667.tif 000025
【図２４】
2018200667.tif 000026
【図２５】
2018200667.tif 000027
【図２６】
2018200667.tif 000028
【図２７】
2018200667.tif 000029
【図２８】
2018200667.tif 000030
【図２９】
2018200667.tif 000031
【図３０】
2018200667.tif 000032
【図３１】
2018200667.tif 000033