以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
[第一の実施形態]
<システム構成>
まず、本実施形態に係る情報処理システム1のシステム構成について、図1を参照しながら説明する。図1は、本実施形態に係る情報処理システム1のシステム構成の一例を示す図である。
図1に示す情報処理システム1は、サービス提供システム10と、機器20と、PC端末30とを含み、インターネット等の広域的なネットワークN1を介して通信可能に接続されている。
サービス提供システム10は、一台以上の情報処理装置で実現され、ネットワークN1を介して、種々の機能をそれぞれ実現する複数の処理のうちの1以上の処理を組み合わせた一連の処理により実現される各種のサービスを提供する。
ここで、機能とは、文書ファイルや画像ファイル等の電子ファイルに関する機能である。機能には、例えば、プリント、スキャン、ファクシミリ送信、データ形式の変換、メール配信、OCR(Optical character recognition)処理、加工や圧縮・解凍、リポジトリへの格納等が挙げられる。
本実施形態に係るサービス提供システム10が提供するサービスの具体例については後述する。なお、以降では、一連の処理を「処理フロー」とも表す。
機器20は、ユーザが使用する各種の電子機器である。すなわち、機器20は、例えば、MFP(Multifunction Peripheral)等の画像形成装置、PC(パーソナルコンピュータ)、プロジェクタ、電子黒板、デジタルカメラ等である。ユーザは、機器20を用いて、サービス提供システム10が提供する各種のサービスを利用することができる。
なお、以降では、複数の機器20について、各々を区別するときは、「機器201」、「機器202」等と添え字を用いて記載する。
PC端末30は、例えば、ユーザが使用するデスクトップPC、ノート型PC、スマートフォン、タブレット端末等である。ユーザは、PC端末30を用いて、サービス提供システム10が提供する各種のサービスを利用することができる。
なお、以降では、複数のPC端末30について、各々を区別するときは、「PC端末301」、「PC端末302」等と添え字を用いて記載する。
図1に示す情報処理システム1の構成は一例であって、他の構成であっても良い。例えば、本実施形態に係る情報処理システム1には、電子データの入力及び出力の少なくとも一方を行う各種機器が含まれ、これらの機器がサービス提供システム10により提供される各種サービスを利用しても良い。
<ハードウェア構成>
次に、本実施形態に係る情報処理システム1に含まれるサービス提供システム10及びPC端末30のハードウェア構成について、図2を参照しながら説明する。図2は、本実施形態に係るサービス提供システム10及びPC端末30のハードウェア構成の一例を示す図である。なお、サービス提供システム10及びPC端末30は、同様のハードウェア構成を有しているため、以降では、主に、サービス提供システム10のハードウェア構成について説明する。
図2に示すサービス提供システム10は、入力装置11と、表示装置12と、外部I/F13と、RAM(Random Access Memory)14とを有する。また、サービス提供システム10は、ROM(Read Only Memory)15と、CPU(Central Processing Unit)16と、通信I/F17と、HDD(Hard Disk Drive)18とを有する。これらの各ハードウェアは、それぞれがバスBで接続されている。
入力装置11は、キーボードやマウス、タッチパネル等を含み、ユーザが各操作信号を入力するのに用いられる。表示装置12は、ディスプレイ等を含み、サービス提供システム10による処理結果を表示する。なお、入力装置11及び表示装置12の少なくとも一方は、必要なときにサービス提供システム10に接続して利用する形態であっても良い。
通信I/F17は、サービス提供システム10をネットワークN1に接続するインタフェースである。これにより、サービス提供システム10は、通信I/F17を介して通信を行うことができる。
HDD18は、プログラムやデータを格納している不揮発性の記憶装置である。HDD18に格納されるプログラムやデータには、サービス提供システム10全体を制御する基本ソフトウェアであるOS(Operating System)、OS上において各種機能を提供するアプリケーションソフトウェア等がある。
なお、サービス提供システム10は、HDD18に代え、記憶媒体としてフラッシュメモリを用いるドライブ装置(例えばソリッドステートドライブ:SSD)を利用するものであっても良い。また、HDD18は、格納しているプログラムやデータを所定のファイルシステム及び/又はDBにより管理している。
外部I/F13は、外部装置とのインタフェースである。外部装置には、記録媒体13a等がある。これにより、サービス提供システム10は、外部I/F13を介して記録媒体13aの読み取りや書き込みを行うことができる。記録媒体13aには、フレキシブルディスク、CD、DVD、SDメモリカード、USBメモリ等がある。
ROM15は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。ROM15には、サービス提供システム10の起動時に実行されるBIOS(Basic Input/Output System)、OS設定、及びネットワーク設定等のプログラムやデータが格納されている。RAM14は、プログラムやデータを一時保持する揮発性の半導体メモリである。
CPU16は、ROM15やHDD18等の記憶装置からプログラムやデータをRAM14上に読み出し、処理を実行することで、サービス提供システム10全体の制御や機能を実現する演算装置である。
本実施形態に係るサービス提供システム10及びPC端末30は、図2に示すハードウェア構成を有することにより、後述するような各種処理を実現できる。
次に、本実施形態に係る情報処理システム1に含まれる機器20が画像形成装置である場合のハードウェア構成について、図3を参照しながら説明する。図3は、本実施形態に係る機器20のハードウェア構成の一例を示す図である。
図3に示す機器20は、コントローラ21と、操作パネル22と、外部I/F23と、通信I/F24と、プリンタ25と、スキャナ26とを有する。また、コントローラ21は、CPU31と、RAM32と、ROM33と、NVRAM34と、HDD35とを有する。
ROM33は、各種プログラムやデータを格納している不揮発性の半導体メモリである。RAM32は、プログラムやデータを一時保持する揮発性の半導体メモリである。NVRAM34は、例えば設定情報等を格納している。また、HDD35は、各種プログラムやデータを格納している不揮発性の記憶装置である。
CPU31は、ROM33やNVRAM34、HDD35等からプログラムやデータ、設定情報等をRAM32上に読み出し、処理を実行することで、機器20全体の制御や機能を実現する演算装置である。
操作パネル22は、ユーザからの入力を受け付ける入力部と、表示を行う表示部とを備えている。外部I/F23は、外部装置とのインタフェースである。外部装置には、記録媒体23a等がある。これにより、機器20は、外部I/F23を介して記録媒体23aの読み取り及び/又は書き込みを行うことができる。なお、記録媒体23aには、例えば、ICカード、フレキシブルディスク、CD、DVD、SDメモリカード、USBメモリ等がある。
通信I/F24は、機器20をネットワークに接続するインタフェースである。これにより、機器20は、通信I/F24を介して通信を行うことができる。プリンタ25は、印刷データを印刷する印刷装置である。スキャナ26は、原稿を読み取って電子ファイル(画像ファイル)を生成する読取装置である。
本実施形態に係る機器20は、図3に示すハードウェア構成を有することにより、後述するような各種処理を実現できる。
<サービス提供システムが提供するサービス>
ここで、本実施形態に係るサービス提供システム10が提供するサービスについて説明する。なお、以降では、機器20が画像形成装置であるものとして説明する。
本実施形態では、機器20において原稿をスキャンすることにより生成された電子ファイル(画像ファイル)にOCR処理を行うことで出力されるPDF(Portable Document Format)ファイルをページ分割するサービスを「OCR分割サービス」と表す。そして、本実施形態では、サービス提供システム10がOCR分割サービスを提供する場合について説明する。
ここで、サービス提供システム10がOCR分割サービスを提供するには、機器20がOCR分割サービスを利用するためのアプリケーション(後述するアプリ情報1000)をサービス提供システム10に登録する必要がある。
したがって、本実施形態では、OCR分割サービスを利用するためのアプリケーションをPC端末30が登録する場合と、当該アプリケーションを用いてOCR分割サービスを機器20が利用する場合とについて説明する。
ただし、サービス提供システム10により提供されるサービスは、これらに限られない。サービス提供システム10は、例えば、機器20において原稿をスキャンすることにより生成された電子ファイルを暗号化した上で、メール配信するサービスを提供しても良い。
同様に、サービス提供システム10は、例えば、機器20において原稿をスキャンすることにより生成された電子ファイルに所定の情報を付加した上で、FAX送信するサービスを提供しても良い。
<機能構成>
次に、本実施形態に係る情報処理システム1の機能構成について、図4を参照しながら説明する。図4は、本実施形態に係る情報処理システム1の機能構成の一例を示す図である。
図4に示すPC端末30は、例えばCPU16等により実行されるブラウザ310を有する。PC端末30のユーザは、ブラウザ310を用いて、「OCR分割サービス」等の各種サービスを利用するためのアプリケーションをサービス提供システム10に登録することができる。
図4に示す機器20は、例えばCPU31等により実行されるブラウザ210を有する。機器20のユーザは、ブラウザ210を用いて、「OCR分割サービス」等の各種サービスを利用することができる。すなわち、機器20は、ブラウザ210を有していれば良く、例えば、サービス提供システム10が提供する各種サービスを利用するための専用のアプリケーションプログラム等を有している必要はない。
図4に示すサービス提供システム10は、入出力サービス処理部110と、Webサービス処理部120と、ドキュメントサービス部130と、ポータルサービス部140とを有する。これら各機能部は、サービス提供システム10にインストールされた1以上のプログラムが、CPU16に実行させる処理により実現される。
また、サービス提供システム10は、アプリ情報記憶部150と、アプリ画面情報記憶部160と、ポータル画面情報記憶部170と、テスト結果情報記憶部180とを有する。これら各記憶部は、HDD18を用いて実現可能である。なお、これら各記憶部のうちの少なくとも1つの記憶部が、サービス提供システム10とネットワークを介して接続される記憶装置等を用いて実現されていても良い。
入出力サービス処理部110は、サービス提供システム10が提供するサービスに関する処理を行う。ここで、入出力サービス処理部110は、アプリ管理部111と、ロジック処理部112とを有する。
アプリ管理部111は、アプリ情報記憶部150に記憶されているアプリ情報1000を管理する。なお、アプリ情報1000とは、一連の処理により実現されるサービスを利用するためのアプリケーションである。換言すれば、サービス提供システム10が提供する各種サービスは、アプリ情報1000により提供される。
また、アプリ管理部111は、ロジック処理部112からの要求に応じて、アプリ情報1000に含まれる処理フロー情報1100を返信する。なお、処理フロー情報1100とは、アプリ情報1000により提供されるサービスを実現する一連の処理が定義された情報である。
更に、アプリ管理部111は、ポータルサービス部140からの要求に応じて、アプリ情報1000をアプリ情報記憶部150に記憶させる。これにより、サービスを提供するアプリ情報1000(アプリケーション)がサービス提供システム10に登録される。
ロジック処理部112は、Webサービス処理部120からの要求に応じて、アプリ情報1000に含まれる処理フロー情報1100をアプリ管理部111から取得する。そして、ロジック処理部112は、アプリ管理部111から取得した処理フロー情報1100に基づいて、当該アプリ情報1000が提供するサービスを実現する一連の処理(処理フロー)を実行する。これにより、本実施形態に係るサービス提供システムは、「OCR分割サービス」等の各種サービスを提供することができる。なお、ロジック処理部112の詳細については後述する。
Webサービス処理部120は、ユーザが機器20のブラウザ210を用いて各種サービスを利用するための処理を行う。すなわち、Webサービス処理部120は、ブラウザ210に対してWebアプリケーション(アプリ情報1000)を提供するアプリケーションサーバとして機能する。ここで、Webサービス処理部120は、画面構成部121と、アプリ実行部122とを有する。
画面構成部121は、ブラウザ210からの要求に応じて、アプリ画面情報記憶部160に記憶されているアプリ画面情報2000と、アプリ情報記憶部150に記憶されているアプリ情報1000に含まれるアプリ設定情報1200とを返信する。
なお、アプリ画面情報2000とは、アプリ情報1000により提供されるサービスを利用するための画面(アプリ画面)の雛形が定義された情報である。アプリ画面情報2000は、例えば、HTML(HyperText Markup Language)、XHTML(Extensible HyperText Markup Language)、CSS(Cascading Style Sheets)、JavaScript(登録商標)等でアプリ画面の雛形が定義された情報である。
また、アプリ設定情報1200は、アプリケーション(アプリ情報1000)の各種設定が定義された情報である。例えば、アプリ設定情報1200には、一連の処理の実行に用いられるパラメータ情報のうち、ユーザによりパラメータ値が入力されるパラメータ情報やデフォルトでパラメータ値が設定されるパラメータ情報等が定義されている。また、例えば、アプリ設定情報1200には、ユーザがアプリ画面においてパラメータ情報を入力するための入力項目やアプリ画面における表示情報(例えば、アプリケーション名)等が定義されている。アプリ設定情報1200は、例えば、JSON(JavaScript Object Notation)等でアプリケーションの各種設定が定義された情報である。
これにより、機器20には、ブラウザ210により、サービス提供システム10が提供するサービスを利用するためのアプリ画面が表示される。
アプリ実行部122は、ブラウザ210からの要求に応じて、入出力サービス処理部110に対して、アプリケーション(アプリ情報1000)の実行要求を送信する。また、アプリ実行部122は、アプリケーション(アプリ情報1000)のテストが実行された場合に、当該アプリ情報1000に含まれる処理フロー情報1100に基づく一連の処理の実行結果(テスト結果)を示すテスト結果情報をテスト結果情報記憶部180に格納する。
なお、アプリケーションのテストとは、例えば、アプリケーション(アプリ情報1000)を新規に登録する場合や登録済のアプリケーションの設定が修正された場合等に、アプリケーションが正常に動作するか否かを確認することである。
ドキュメントサービス部130は、処理フロー情報1100に基づく一連の処理(処理フロー)に含まれる所定の処理を実行する。ここで、ドキュメントサービス部130は、OCR処理部131等を有する。
OCR処理部131は、電子ファイルに対してOCR処理を行って、OCR処理で認識されたテキストを付与したPDFファイル(テキスト付きPDFファイル)を作成する。
なお、ドキュメントサービス部130には、これら以外にも、例えば、電子ファイルの圧縮又は解凍するための圧縮・解凍処理部、電子ファイルのデータ形式を変換するためのデータ形式変換部等、種々の機能部が含まれていても良い。
ポータルサービス部140は、ユーザがPC端末30のブラウザ310を用いてアプリケーションの登録等を行うための処理を行う。ここで、ポータルサービス部140は、UI提供部141と、アプリ登録部142とを有する。
UI提供部141は、ブラウザ310からの要求に応じて、ポータル画面情報記憶部170に記憶されているポータル画面情報3000を返信する。ここで、ポータルとは、ブラウザ310を用いて、アプリケーションの登録等を行うことができるWebサイトである。
なお、ポータル画面情報3000とは、ポータルのトップ画面(ポータルトップ画面)やアプリケーション登録画面等の各種画面が定義された情報である。ポータル画面情報3000は、例えば、HTML、XML、CSS、JavaScript等のブラウザ210で各種画面が定義された情報である。
これにより、PC端末30には、ブラウザ310により、ポータルトップ画面やアプリケーション登録画面が表示される。したがって、PC端末30のユーザは、アプリケーション登録画面において、アプリケーション(アプリ情報1000)の登録操作を行うことができる。
アプリ登録部142は、UI提供部141からの要求に応じて、アプリケーション(アプリ情報1000)の登録をアプリ管理部111に要求する。すなわち、アプリ登録部142は、アプリケーション登録画面において、アプリケーションの登録操作が行われると、アプリケーションの登録をアプリ管理部111に要求する。
アプリ情報記憶部150は、アプリ情報1000を記憶する。アプリ情報1000は、当該アプリ情報1000を識別するアプリIDと関連付けてアプリ情報記憶部150に記憶されている。なお、アプリIDは、例えば、アプリ情報1000のURL(Uniform Resource Locator)、又はアプリ情報1000のURLに含まれる識別情報等である。
ここで、アプリ情報1000には、処理フロー情報1100と、アプリ設定情報1200とが含まれる。例えば、OCR分割サービスを提供するアプリ情報1000には、当該サービスを実現する一連の処理が定義された処理フロー情報1100と、当該アプリ情報1000の各種設定が定義されたアプリ設定情報1200とが含まれる。以降では、OCR分割サービスを提供するアプリ情報1000を「OCR分割アプリケーション」とも表す。
なお、アプリ情報1000には、2以上の処理フロー情報1100と、2以上のアプリ設定情報1200とが含まれていても良い。
処理フロー情報1100は、上述したように、アプリ情報1000により提供されるサービスを実現する一連の処理(処理フロー)が定義された情報である。なお、処理フロー情報1100の詳細については後述する。
また、アプリ設定情報1200は、上述したように、アプリケーション(アプリ情報1000)の各種設定が定義された情報である。なお、アプリ設定情報1200の詳細については後述する。
アプリ画面情報記憶部160は、アプリ画面情報2000を記憶する。アプリ画面情報2000は、アプリIDと関連付けてアプリ画面情報記憶部160に記憶されている。
ポータル画面情報記憶部170は、ポータル画面情報3000を記憶する。ポータル画面情報3000は、ポータルトップ画面やアプリケーション登録画面等のURLと関連付けてポータル画面情報記憶部170に記憶されている。
テスト結果情報記憶部180は、テスト結果情報を記憶する。テスト結果情報には、アプリケーションのテスト結果やテストされたテストケース等が含まれる。
なお、入出力サービス処理部110、Webサービス処理部120、ドキュメントサービス部130、及びポータルサービス部140等は、それぞれが異なる情報処理装置により実現されていても良い。
ここで、ロジック処理部112の詳細な機能構成について、図5を参照しながら説明する。図5は、本実施形態に係るロジック処理部112の機能構成の一例を示す図である。
図5に示すロジック処理部112は、フロー実行部301と、コンポーネント管理部302と、コンポーネント群303と、型変換管理部304と、型変換群305とを有する。また、ロジック処理部112は、型変換情報テーブル4000を有する。
フロー実行部301は、アプリ実行部122からアプリケーションの実行要求を受信すると、当該実行要求に対応する処理フロー情報1100をアプリ管理部111から取得する。そして、フロー実行部301は、アプリ管理部111から取得した処理フロー情報1100に基づく一連の処理(処理フロー)を実行する。
ここで、処理フロー情報1100に基づく一連の処理は、当該一連の処理に含まれる各処理を実行するためのコンポーネントを組み合わせることにより実行される。なお、コンポーネントは、所定の機能を実現する処理を実行するためのプログラムやモジュール等により実現され、例えばクラスや関数等で定義される。
コンポーネント管理部302は、コンポーネントを管理する。コンポーネント管理部302は、フロー実行部301からの要求に応じて、コンポーネントを生成すると共に、生成したコンポーネントをフロー実行部301に返信する。なお、コンポーネントの生成とは、例えばクラスや関数等で定義されたコンポーネントを、メモリ(例えばRAM14)上に展開することである。
コンポーネント群303は、コンポーネントの集合である。コンポーネント群303には、OCRコンポーネント1310と、PDFコンポーネント1320とが含まれる。
OCRコンポーネント1310は、電子ファイル(画像ファイル)をOCR処理するためのコンポーネントである。OCRコンポーネント1310は、ドキュメントサービス部130のOCR処理部131にOCR処理を要求することにより、電子ファイルのOCR処理を行う。
PDFコンポーネント1320は、PDFファイルのページを分割することで、複数のPDFファイルを作成するためのコンポーネントである。
このように、各コンポーネントは、所定の機能を実現する処理を実行する。なお、コンポーネント群303には、上記のコンポーネント以外にも、例えば、電子ファイルの暗号化や復号を行うための暗号化・復号コンポーネント、電子ファイルを圧縮するための圧縮コンポーネント等の各種のコンポーネントが含まれる。
また、コンポーネント群303に含まれる各コンポーネントは、コンポーネント共通I/F1300を有する。コンポーネント共通I/F1300は、各コンポーネントに対して共通に定義されたAPI(Application Programming Interface)であり、コンポーネントを生成するためのAPIと、コンポーネントの処理を実行するためのAPIとが含まれる。
このように、各コンポーネントがコンポーネント共通I/F1300を有することで、コンポーネントの追加等に伴う影響を局所化することができる。すなわち、例えば、フロー実行部301やコンポーネント管理部302等に影響を与えることなく、コンポーネントの追加等を行うことができる。これにより、本実施形態に係るサービス提供システム10では、所定の機能の追加等(すなわち、当該機能を実現する処理を実行するためのコンポーネントの追加等)に伴う開発工数を削減することができる。
型変換管理部304は、データ型の型変換を管理する。ここで、各コンポーネントは、自身が扱えるデータ型が予め決まっている。したがって、型変換管理部304は、コンポーネントからの要求に応じて、例えば図6に示す型変換情報テーブル4000を参照して、型変換群305に含まれる型変換を生成する。
そして、型変換管理部304は、生成された型変換に型変換処理の実行を要求する。なお、型変換は、データ型の型変換処理を実行するプログラムやモジュール等により実現され、例えばクラスや関数等で定義される。また、型変換の生成とは、例えばクラスや関数等で定義された型変換を、メモリ(例えばRAM14上)に展開することである。
なお、データ型には、例えば、ストリームデータを示すデータ型「InputStream」、記憶装置等に格納されている電子ファイルのパス(アドレス)を示す「LocalFilePath」、及び電子ファイルの実体を示す「File」等が挙げられる。
ここで、型変換情報テーブル4000について、図6を参照しながら説明する。図6は、型変換情報テーブル4000の一例を示す図である。
図6に示す型変換情報テーブル4000は、データ項目として、変換前のデータ型と、変換後のデータ型と、生成する型変換とを有する。すなわち、型変換情報テーブル4000に格納されている型変換情報は、変換前のデータ型及び変換後のデータ型毎に、当該変換前のデータ型を、当該変換後のデータ型に変換するための型変換が関連付けられた情報である。
型変換群305は、型変換の集合である。型変換群305には、データ型「InputStream」を「LocalFilePath」に変換するための第1の型変換1410が含まれる。なお、型変換群305には、これ以外にも、例えば、データ型「LocalFilePath」を「File」に変換するための第2の型変換等が含まれる。
また、型変換群305に含まれる各型変換は、型変換共通I/F1400を有する。型変換共通I/F1400は、各型変換に対して共通に定義されたAPIであり、型変換を生成するためのAPIと、型変換の型変換処理を実行するためのAPIとが含まれる。
このように、各型変換が型変換共通I/F1400を有することで、型変換の追加等に伴う影響を局所化することができる。すなわち、例えば、型変換管理部304等に影響を与えることなく、型変換の追加等を行うことができる。これにより、本実施形態に係るサービス提供システム10では、型変換の追加等に伴う開発工数を削減することができる。
ここで、OCR分割サービスを提供するアプリ情報1000に含まれる処理フロー情報1100について、図7を参照しながら説明する。図7は、処理フロー情報1100の一例を示す図である。
図7に示す処理フロー情報1100は、OCR分割サービスを実現する一連の処理(処理フロー)が定義された情報である。
図7に示す処理フロー情報1100には、処理フロー情報1100を識別するフロー名1101と、処理フローに含まれる各処理の処理内容が定義されたフロー詳細1102とが含まれる。
フロー詳細1102には、処理フローに含まれる各処理をそれぞれ定義した詳細処理定義1110と、詳細処理定義1120とが含まれる。詳細処理定義1110及び詳細処理定義1120には、詳細処理定義を識別する詳細処理名を示す「"detailName"」と、処理を実行するためのコンポーネントのコンポーネント名を示す「"component"」とが含まれる。また、詳細処理定義1110及び詳細処理定義1120には、当該コンポーネントが実行するオペレーションを示す「"operationName"」と、パラメータ情報が定義される「"parameters"」とが含まれる。
なお、オペレーションとはコンポーネントが実行する処理のことであり、各コンポーネントは、1以上のオペレーションを実行することが可能である。
具体的には、詳細処理定義1110の「"detailName"」には、「"detail0"」が定義されている。詳細処理定義1110の「"component"」には、OCRコンポーネント1310のコンポーネント名「"OCR"」が定義されている。また、詳細処理定義1110の「"operationName"」には、OCRコンポーネント1310がOCR処理を実行することを示すオペレーション名「"process"」が定義されている。更に、詳細処理定義1110の「"parameters"」には、パラメータ名「"outputSize"」のパラメータ情報等が定義されている。
パラメータ名「"outputSize"」のパラメータ情報には、OCR処理の結果として出力されるPDFファイルの印刷サイズが設定される。図7に示す処理フロー情報1100では、パラメータ名「"outputSize"」のパラメータ情報には、デフォルトのパラメータ値として、「"A4"」が定義されている。
同様に、詳細処理定義1120の「"detailName"」には、「"detail1"」が定義されている。詳細処理定義1120の「"component"」には、PDFコンポーネント1320のコンポーネント名「"PDF"」が定義されている。また、詳細処理定義1120の「"operationName"」には、PDFコンポーネント1320がPDFファイルをページ番号で分割する処理を実行することを示すオペレーション名「"divideByPageNumbers"」が定義されている。更に、詳細処理定義1120の「"parameters"」には、PDFコンポーネント1320で用いられるパラメータ情報が定義されている。
なお、各詳細処理定義に定義された処理の実行順は、フロー詳細1102において、上から順に定義される。すなわち、図7に示す処理フロー情報1100に基づく一連の処理(処理フロー)では、詳細処理定義1110に定義された処理、詳細処理定義1120に定義された処理の順で実行される。ただし、これに限られず、処理フロー情報1100には、例えば、各詳細処理定義に定義された処理の実行順を示す情報が定義されていても良い。
<処理の詳細>
次に、本実施形態に係る情報処理システム1の処理の詳細について説明する。まず、PC端末30のユーザが、OCR分割アプリケーションをサービス提供システム10に登録する処理について、図8を参照しながら説明する。図8は、本実施形態に係るアプリケーションの登録処理の一例を示すシーケンス図である。
まず、PC端末30のブラウザ310は、ポータルトップ画面を表示させるための操作(ポータルトップ画面の表示操作)を受け付ける(ステップS801)。なお、PC端末30のユーザは、例えば、ポータルトップ画面のURLをブラウザ310のアドレスバーに入力することで、ポータルトップ画面の表示操作を行うことができる。
PC端末30のブラウザ310は、ポータルトップ画面の表示操作を受け付けると、ポータルトップ画面の表示要求を、ポータルサービス部40のUI提供部141に送信する(ステップS802)。
ポータルサービス部140のUI提供部141は、ポータルトップ画面の取得要求を受信すると、ポータルトップ画面のポータル画面情報をポータル画面情報記憶部170から取得する(ステップS803)。そして、UI提供部141は、ポータル画面情報記憶部170から取得したポータル画面情報をブラウザ310に返信する。
PC端末30のブラウザ310は、ポータルトップ画面のポータル画面情報を受信すると、当該ポータル画面情報に基づいて、例えば図9に示すポータルトップ画面G100を表示する(ステップS804)。
図9に示すポータルトップ画面G100は、ポータルのトップ画面であり、アプリケーションの登録を行うための「Application」ボタンG110が含まれる。以降では、ユーザが、図9に示すポータルトップ画面G100において、「Application」ボタンG110を選択する操作(アプリ登録の選択操作)を行ったものとする。
なお、図9に示すポータルトップ画面G100には、処理フロー情報1100の作成等を行うための「Flow」ボタンG120、コンポーネントの登録等を行うための「Component」ボタンG130等も含まれる。このように、ポータルトップ画面G100では、アプリケーションの登録以外にも、処理フローの作成・実行、コンポーネントの登録・更新等を行うことができる。
PC端末30のブラウザ310は、ユーザにより行われたアプリ登録の選択操作を受け付ける(ステップS805)。
PC端末30のブラウザ310は、アプリ登録の選択操作を受け付けると、アプリケーション登録画面の表示要求を、ポータルサービス部40のUI提供部141に送信する(ステップS806)。
ポータルサービス部140のUI提供部141は、アプリケーション登録画面の表示要求を受信すると、アプリケーション登録画面のポータル画面情報をポータル画面情報記憶部170から取得する(ステップS807)。そして、UI提供部141は、ポータル画面情報記憶部170から取得したポータル画面情報をブラウザ310に返信する。
PC端末30のブラウザ310は、アプリケーション登録画面のポータル画面情報を受信すると、当該ポータル画面情報に基づいて、例えば図10に示すアプリケーション登録画面G200を表示する(ステップS808)。
ここで、図10〜図14を参照しながら、ユーザがアプリケーションの登録操作を行う場合について説明する。
まず、図10に示すアプリケーション登録画面G200は、ユーザが登録するアプリケーションのタイプを選択するための画面である。
図10に示すアプリケーション登録画面G200には、プリントタイプのアプリケーションを登録するための「プリント」ボタンG210と、スキャンタイプのアプリケーションを登録するための「スキャン」ボタンG220とが含まれる。なお、図10に示すアプリケーション登録画面G200には、上記以外にも、例えば、FAXタイプのアプリケーションを登録するための「FAX」ボタン、メール受信タイプのアプリケーションを登録するための「メール受信」ボタン等が含まれていても良い。
また、図10に示すアプリケーション登録画面G200には、次の画面に遷移するための「次へ」ボタンG240等が含まれる。
図10に示すアプリケーション登録画面G200では、ユーザが「プリント」ボタンG210又は「スキャン」ボタンG220のいずれかを選択すると、それぞれプリントタイプの説明又はスキャンタイプの説明が説明欄G230に表示される。
なお、プリントタイプとは、一連の処理による実行結果を示す電子ファイルを画像形成装置等で印刷させるタイプのアプリケーションである。一方、スキャンタイプとは、画像形成装置等においてスキャンにより生成された電子ファイルを入力とした一連の処理を実行させるタイプのアプリケーションである。
また、例えば、FAXタイプとは、一連の処理による実行結果を示す電子ファイルを画像形成装置等でFAX送信させるタイプのアプリケーションである。更に、メール受信タイプとは、画像形成装置等が受信したメールに添付されている電子ファイルを入力とした一連の処理を実行させるタイプのアプリケーションである。
以降では、ユーザが、図10に示すアプリケーション登録画面G200において、「スキャン」ボタンG220を選択した上で、「次へ」ボタンG240を押下する操作を行ったものとする。すると、ブラウザ310は、当該操作を受け付けて、例えば図11に示すアプリケーション登録画面G300を表示する。
図11に示すアプリケーション登録画面G300は、ユーザがアプリケーションの基本情報を設定するための画面である。
図11に示すアプリケーション登録画面G300には、アプリケーションの名称を設定するための「アプリ名」入力設定欄G310と、アプリ画面の画面形式を選択するための「デザインテンプレート」選択欄G320とが含まれる。また、図11に示すアプリケーション登録画面G300には、アプリケーションを利用する際の認証を選択するための「認証」選択欄G330と、アプリ画面の表示言語を選択するための「表示言語」選択欄G340とが含まれる。更に、図11に示すアプリケーション登録画面G300には、次の画面に遷移するための「次へ」ボタンG350等が含まれる。
なお、「デザインテンプレート」選択欄G320では、例えば、アプリ画面が一画面で表示される「一画面形式」、アプリ画面を対話形式で表示する「ウィザード形式」等を選択することができる。また、「認証」選択欄G330では、認証を用いないことを示す「なし」、認証を用いることを示す「ユーザ認証」等を選択することができる。
以降では、ユーザが、図11に示すアプリケーション登録画面G300のように、アプリケーション名の入力や各種選択を行った上で、「次へ」ボタンG350を押下する操作を行ったものとする。すると、ブラウザ310は、当該操作を受け付けて、例えば図12に示すアプリケーション登録画面G400を表示する。
図12に示すアプリケーション登録画面G400は、ユーザがアプリケーションの詳細情報として、登録するアプリケーションに対して一連の処理(処理フロー)を設定するための画面である。
図12に示すアプリケーション登録画面G400には、アプリ情報記憶部150に記憶されている処理フロー情報1100のフロー名を検索するための検索欄G410と、フロー名を選択するためのフロー選択欄G420とが含まれる。ユーザは、所望のフローの名称等を検索欄G410に入力した上で、フロー選択欄G420から所望のフロー名を選択することができる。
また、図12に示すアプリケーション登録画面G400には、フロー選択欄G420で選択されたフロー名の処理フロー情報1100に基づく一連の処理の概要を表示する概要表示欄G430と、次の画面に遷移するための「次へ」ボタンG440とが含まれる。
更に、図12に示すアプリケーション登録画面G400には、フロー選択欄G420で選択されたフロー名の処理フロー情報1100の編集及び更新を行うための「更新」ボタンG421と、新規に処理フロー情報1100を作成するための「新規」ボタンG422とが含まれる。ユーザは、「更新」ボタンG421を押下することで、フロー選択欄G420で選択したフロー名の処理フロー情報1100の編集及び更新を行うことができる。また、ユーザは、「新規」ボタンG422を押下することで、処理フロー情報1100を作成した上で、作成した処理フロー情報1100のフロー名をフロー選択欄G420で選択することができる。
以降では、ユーザが、フロー名「ocr−divide」をフロー選択欄G420で選択した上で、「次へ」ボタンG440を押下する操作を行ったものとする。すると、ブラウザ310は、当該操作を受け付けて、例えば図13に示すアプリケーション登録画面G500を表示する。
図13に示すアプリケーション登録画面G500は、ユーザがアプリケーションの詳細情報として、図12に示すアプリケーション登録画面G400で設定された一連の処理(処理フロー)のパラメータ情報を設定するための画面である。
図13に示すアプリケーション登録画面G500には、一連の処理に含まれる各処理を実行するコンポーネントを選択するための「コンポーネント」選択欄G510が含まれる。また、図13に示すアプリケーション登録画面G500には、「コンポーネント」選択欄G510で選択されたコンポーネントのパラメータ情報を設定するための「パラメータ情報」設定欄G520と、次の画面に遷移するための「次へ」ボタンG530とが含まれる。
ユーザは、「コンポーネント」選択欄G510から所望のコンポーネントを選択した上で、「パラメータ情報」設定欄G520にてパラメータ情報の各種設定を行うことができる。例えば、ユーザが「コンポーネント」選択欄G510からPDFコンポーネント1320を選択した場合、「パラメータ情報」設定欄G520では、PDFコンポーネント1320が用いるパラメータ情報の各種設定を行うことができる。
「パラメータ情報」設定欄G520には、例えば、「userInput」、「displayname」、「name」、「inputType」等が含まれる。
「userInput」には、パラメータ情報のパラメータ値をユーザ(サービスの利用者)に入力させるか否かが設定される。「userInput」にチェックが入れられたパラメータ情報は、アプリ画面においてユーザ(サービスの利用者)がパラメータ値を入力することができる。一方で、「userInput」にチェックが入れられていないパラメータ情報は、アプリ画面においてユーザがパラメータ値を入力することができず、デフォルトのパラメータ値が用いられる。
また、「inputType」には、設定項目「select」にチェックが入れられたパラメータ情報について、アプリ画面における入力方法が設定される。「iputType」では、例えば、パラメータ値の一覧から所望のパラメータ値を選択する入力方法「select」、パラメータ値を直接入力する入力方法「text」等が設定される。なお、「inputType」には、これら以外にも、例えば、画面上の座標を入力する入力方法、所望のフォルダやファイルを選択するための入力方法等を選択することができても良い。
なお、「name」には、パラメータ情報のパラメータ名が設定される。また、「displayname」には、アプリ画面に表示される入力項目(パラメータ値を入力させるための項目)の表示名が設定される。
これにより、ユーザは、各コンポーネントが用いるパラメータ情報について、パラメータ情報のパラメータ値をサービスの利用者に入力させるか否か、その入力方法等を設定することができる。
以降では、ユーザが、各コンポーネントが用いるパラメータ情報を設定した上で、「次へ」ボタンG530を押下する操作を行ったものとする。すると、ブラウザ310は、当該操作を受け付けて、例えば図14に示すアプリケーション登録画面G600を表示する。
図14に示すアプリケーション登録画面G600は、図10〜図13で設定された各種情報(アプリ設定情報)をユーザが確認するための画面である。
図14に示すアプリケーション登録画面G600には、「アプリ設定情報」表示欄G610と、「登録実行」ボタンG620とが含まれる。ユーザは、「アプリ設定情報」表示欄G610において、図10〜図13で設定した各種情報を確認することができる。
ここで、ユーザは、「アプリ設定情報」表示欄G610でアプリ設定情報を確認した上で、「登録」ボタンG620を押下する操作(アプリケーションの登録操作)を行ったものとする。すると、ブラウザ310は、アプリケーションの登録操作を受け付ける(ステップS809)。
ブラウザ310は、アプリケーションの登録操作を受け付けると、例えば図15に示すアプリ設定情報1200を作成する(ステップS810)。
ここで、アプリ設定情報1200について、図15を参照しながら説明する。図15は、アプリ設定情報1200の一例を示す図である。
図15に示すアプリ設定情報1200には、アプリタイプ1201と、アプリ名1202と、アプリ表示名1203と、認証タイプ1204と、フロー名1205とが含まれる。また、図15に示すアプリ設定情報1200には、デザインテンプレートタイプ1206と、デフォルトパラメータ1207と、ユーザ入力パラメータ1208とが含まれる。
アプリタイプ1201は、図10に示すアプリケーション登録画面G200で選択されたアプリケーションのタイプである。図15に示す例では、アプリケーションのタイプがスキャンタイプであることを示す「"app_type":"scan"」が定義されている。
アプリ名1202は、図11に示すアプリケーション登録画面G300の「アプリ名」入力設定欄G310に入力されたアプリ名である。図15に示す例では、アプリ名が「OCR分割アプリケーション」であることを示す「"appName":"OCR分割アプリケーション"」が定義されている。
アプリ表示名1203は、アプリ画面に表示されるアプリケーション名称(タイトル)である。図15に示す例では、日本語では「OCR分割」、英語では「OCR App」と表示されることが定義されている。
認証タイプ1204は、図11に示すアプリケーション登録画面G300の「認証」選択欄G330で選択された認証である。図15に示す例では、認証しないことを示す「"loginType":"none"」が定義されている。
フロー名1205は、図12に示すアプリケーション登録画面G400のフロー選択欄G420で選択されたフロー名である。図15に示す例では、フロー名が「"ocr−divide"」であることが定義されている。
デザインテンプレートタイプ1206は、図11に示すアプリケーション登録画面G300の「デザインテンプレート」選択欄G320で選択された表示形式である。図15に示す例では、一画面形式でアプリ画面を表示することを示す「"viewTemplate":"一画面形式"」が定義されている。
デフォルトパラメータ1207は、アプリ画面においてユーザがパラメータ値を入力しないパラメータ情報が定義されている。すなわち、デフォルトパラメータ1207には、図13に示すアプリケーション登録画面G500の「パラメータ情報」設定欄G520において、「userInput」のチェックを入れなかったパラメータ情報が定義される。図15に示す例では、詳細処理名「detail0」(すなわち、図7における詳細処理定義1110)で定義された処理で用いられるパラメータ情報のデフォルトのパラメータ値が定義されている。具体的には、パラメータ名「"language"」のパラメータ情報について、デフォルトのパラメータ値「"English"」が定義されている。
このように、デフォルトパラメータ1207には、デフォルトのパラメータ値が設定されるパラメータ情報が定義されている。換言すれば、デフォルトパラメータ1207には、ユーザがパラメータ値を設定しないパラメータ情報が定義されている。
ユーザ入力パラメータ1208は、アプリ画面においてユーザによりパラメータ値が入力されるパラメータ情報が定義されている。すなわち、ユーザ入力パラメータ1208には、図13に示すアプリケーション登録画面G500の「パラメータ情報」設定欄G520において、「userInput」のチェックを入れたパラメータ情報が定義される。
図15に示す例では、詳細処理名「detail1」(すなわち、図7における詳細処理定義1120)に定義された処理で用いられるパラメータ情報が定義されている。具体的には、パラメータ名「divisionPageRange」のパラメータ情報のパラメータ値がユーザに入力されることを示す入力定義1210が定義されている。同様に、パラメータ名「divisionPageNumbers」のパラメータ情報のパラメータ値がユーザに入力されることを示す入力定義1220が定義されている。
入力定義1210では、パラメータ値の入力方法を示す「"inputType"」には「"select"」が定義されている。これは、パラメータ値の一覧から所望のパラメータ値をユーザに選択させることを示している。
また、入力定義1210では、ユーザが選択可能なパラメータ値を示す「"options"」には「"Each Pages","Specified Pages"」が定義されている。これは、ユーザが選択可能なパラメータ値の一覧は、「"Each Pages"」と、「"Specified Pages"」とであることを示している。
入力定義1220では、パラメータ値の入力方法を示す「"inputType"」には「"text"」が定義されている。これは、テキスト(文字)でパラメータ値をユーザに入力させることを示している。
また、入力定義1220では、ユーザが入力可能なパラメータ値の上限(上限値)を示す「"max"」には「100」が、下限(下限値)を示す「"min"」には「0」が定義されている。これは、ユーザが入力可能なパラメータ値は、0以上、かつ、100以下の数値であることを示している。
このように、ユーザ入力パラメータ1208には、アプリ画面においてユーザがパラメータ値を入力するパラメータ情報やパラメータ値入力方法、入力制約等が定義されている。
以上のように、アプリ設定情報1200には、アプリ画面に表示される表示情報(例えば、タイトル)やアプリ画面の入力項目(パラメータ値を入力又は選択する項目)、当該入力項目における入力方法、入力制約等が定義されている。また、アプリ設定情報1200には、パラメータ値がデフォルトで設定されるパラメータ情報(すなわち、アプリ画面でパラメータ値が入力又は選択されないパラメータ情報)等が定義されている。
ブラウザ310は、アプリ設定情報1200を作成すると、アプリケーションの登録要求を、ポータルサービス部140のアプリ登録部142に送信する(ステップS811)。なお、アプリケーションの登録要求には、ステップS810で作成されたアプリ設定情報1200が含まれる。
ポータルサービス部140のアプリ登録部142は、アプリケーションの登録要求を受信すると、当該登録要求を、入出力サービス処理部110のアプリ管理部111に送信する(ステップS812)。
入出力サービス処理部110のアプリ管理部111は、アプリケーションの登録要求を受信すると、アプリケーションを登録する(ステップS813)。そして、アプリ管理部111は、登録結果をブラウザ310に返信する。
すなわち、アプリ管理部111は、アプリケーションの登録要求に含まれるアプリ設定情報1200をアプリIDと関連付けてアプリ情報記憶部150に記憶する。そして、アプリ管理部111は、当該アプリIDが含まれる登録結果をブラウザ310に返信する。
これにより、当該アプリ設定情報1200と、当該アプリ設定情報1200のフロー名1205に定義されたフロー名の処理フロー情報1100とを含むアプリ情報1000がサービス提供システム10に登録される。
次に、ブラウザ310は、登録結果が返信されると、例えば図16に示すテスト画面G700を表示する(ステップS814)。
図16に示すテスト画面G700は、上記のステッS813で登録されたアプリケーションのテストを実行するための画面である。ユーザは、アプリケーションのテストを実行することで、当該アプリケーションの評価(動作確認等)を行うことができる。
図16に示すテスト画面G700には、「テスト実行」ボタンG710が含まれる。ここで、ユーザは、「テスト実行」ボタンG710を押下する操作(テスト実行操作)を行ったものとする。すると、ブラウザ310は、テスト実行操作を受け付ける(ステップS815)。
ブラウザ310は、テスト実行操作を受け付けると、テスト実行処理を行う(ステップS816)。テスト実行処理では、アプリケーションをテストするためのテストケース(すなわち、処理フローに用いられるパラメータ情報の組み合わせ)が生成され、テストケース毎に、アプリケーションがテストされる。アプリケーションのテストは、テストケースが示すパラメータ情報の組み合わせ毎に、当該アプリケーションの処理フロー(すなわち、アプリ情報1000に含まれる処理フロー情報1100に基づく一連の処理)を実行することで行われる。なお、テスト実行処理の詳細については後述する。
そして、ブラウザ310は、テスト実行処理が終了すると、例えば図17(a)に示すテスト結果画面G800又は図17(b)に示すテスト結果画面G900を表示する(ステップS817)。
図17(a)に示すテスト結果画面G800は、アプリケーションのテストに成功した場合(すなわち、全てのテストケースでテストが正常に終了した場合)のテスト結果画面である。
一方、図17(b)に示すテスト結果画面G900は、アプリケーションのテストに失敗した場合(すなわち、少なくとも1つのテストケースでテストが失敗した場合)のテスト結果画面である。図17(b)に示すテスト結果画面G900には、失敗テストケース表示欄G810が含まれる。
失敗テストケース表示欄G810には、テストが失敗したテストケースの実行時間と、当該テストに用いられたパラメータ情報とが含まれる。これにより、ユーザは、テストが失敗したテストケースで用いられたパラメータ情報の組み合わせを知ることができる。このため、ユーザは、テストが成功するように、パラメータ情報を修正することができる。なお、失敗テストケース表示欄G810に表示されるパラメータ情報は、テスト結果情報記憶部180に記憶されているテスト結果情報に基づいて表示される。
ここで、上記のステップS816の処理(テスト実行処理)の詳細について、図18を参照しながら説明する。図18は、本実施形態に係るテスト実行処理の一例を示すシーケンス図である。
まず、ブラウザ310は、テスト実行操作を受け付けると、アプリ設定の取得要求を、Webサービス処理部120の画面構成部121に送信する(ステップS1801)。なお、アプリ設定の取得要求には、上記のステップS813でアプリ管理部111から返信されたアプリIDが含まれる。
Webサービス処理部120の画面構成部121は、アプリ設定の取得要求を受信すると、当該取得要求を、入出力サービス処理部110のアプリ管理部111に送信する(ステップS1802)。
入出力サービス処理部110のアプリ管理部111は、アプリ設定の取得要求を受信すると、当該取得要求に含まれるアプリIDに関連付けて記憶されているアプリ設定情報1200をアプリ情報記憶部150から取得する(ステップS1803)。そして、アプリ管理部111は、アプリ情報記憶部150から取得したアプリ設定情報1200を画面構成部121に返信する。
Webサービス処理部120の画面構成部121は、テスト結果画面G800及びテスト結果画面G900を表示するためのアプリ画面情報2000をアプリ画面情報記憶部160から取得する(ステップS1804)。そして、画面構成部121は、アプリ画面情報記憶部160から取得したアプリ画面情報2000と、上記のステップS1803で返信されたアプリ設定情報1200とをブラウザ310に返信する。
ブラウザ310は、アプリ画面情報2000と、アプリ設定情報1200とが返信されると、当該アプリ設定情報1200から、例えばオールペア法(ペアワイズ法)等の手法によりパラメータ情報を組み合わせて、テストケースを生成する(ステップS1805)。
例えば、図15に示すアプリ設定情報1200が返信された場合、デフォルトパラメータ1207に定義されているパラメータ情報と、ユーザ入力パラメータ1208に定義されているパラメータ情報とを組み合わせることで、テストケースを生成する。
具体的には、デフォルトパラメータ1207には、「"language":"English"」が定義されている。このため、まず、パラメータ名「"language"」のパラメータ情報のパラメータ値には、「"English"」を用いる。
また、ユーザ入力パラメータ1208の入力定義1210には、「"divisionPageRange"」の選択可能なパラメータ値「"Each Pages"」及び「"Specified Pages"」が定義されている。このため、パラメータ名「"divisionPageRange"」のパラメータ情報のパラメータ値には、「"Each Pages"」と「"Specified Pages"」とを用いる。
更に、ユーザ入力パラメータ1208の入力定義1220には、「"divisionPageNumbers"」のパラメータ値の上限値「100」と下限値「0」が定義されている。このため、パラメータ名「"divisionPageNumbers"」のパラメータ情報のパラメータ値には、上限値「100」と下限値「0」とを用いる。
したがって、上記のパラメータ情報のパラメータ値を組み合わせることで、図19(a)〜図19(d)に示す4つのテストケースが生成される。このように、テストケースは、アプリ設定情報1200に定義されている1以上のパラメータ情報のパラメータ値を組み合わせることで生成される。このとき、例えば、パラメータ値が選択的に定義されている場合は、これら選択的に定義されているパラメータ値を組み合わせれば良い。また、パラメータ値が取り得る範囲が定義されている場合は、当該範囲の上限値や下限値、中間値等のパラメータ値を組み合わせれば良い。
なお、例えば、ユーザにファイル名を入力させる場合等のように、ユーザにより入力された任意の文字列がパラメータ値となるパラメータ情報もある。具体的には、図20(a)に示すパラメータ名「"filename"」のパラメータ情報のように、ユーザにより入力された任意の文字列をパラメータ値とするようなパラメータ情報である。この場合、ブラウザ310は、例えば、ランダムに生成した文字列を当該パラメータ情報のパラメータ値として、他のパラメータ情報のパラメータ値と組み合わせてテストケースを生成すれば良い。
また、図20(b)に示すパラメータ名「"filename"」のパラメータ情報のように、0文字以上、かつ、100文字以下の文字列をパラメータ値とするようなパラメータ情報の場合、0文字以上、かつ、100文字以下の文字列をランダムに生成すれば良い。
また、デフォルトのパラメータ値が処理フロー情報1100に定義されている場合は、当該パラメータ値のパラメータ情報も組み合わせたテストケースが生成されても良い。例えば、図7に示す処理フロー情報1100の詳細処理定義1110には、パラメータ名「"outputSize"」のパラメータ情報のデフォルトのパラメータ値として、「"A4"」が定義されている。したがって、この場合、アプリ設定情報1200に定義されているパラメータ情報に加えて、処理フロー情報1100に定義されているパラメータ情報「"outputSize":"A4"」も組み合わせてテストケースが生成されても良い。
以降のステップS1806〜ステップS1809の処理は、上記のステップS1805で生成されたテストケース毎に実行される。
ブラウザ310は、上記のステップS1805で生成したテストケース毎に、アプリケーションの実行要求を、Webサービス処理部120のアプリ実行部122に送信する(ステップS1806)。なお、アプリケーションの実行要求には、アプリIDと、アプリ設定情報1200のフロー名1205に定義されているフロー名「ocr−divide」と、テストに用いられる電子ファイルと、テストケースが示すパラメータ情報とが含まれる。
ここで、テストに用いられる電子ファイルとは、例えば、テスト用のダミーの電子データ等である。
また、テストケースが示すパラメータ情報とは、上記のステップS1805で生成したパラメータ情報の組み合わせのことである。
例えば、図19(a)に示すテストケース1では、パラメータ情報として、「"language":"English"」と、「"divisionPageRange":"Each Pages"」と、「"divisionPageNumbers":0」とが含まれる。
また、例えば、図19(b)に示すテストケース2では、パラメータ情報として、「"language":"English"」と、「"divisionPageRange":"Each Pages"」と、「"divisionPageNumbers":100」とが含まれる。
同様に、例えば、図19(c)に示すテストケース3では、パラメータ情報として、「"language":"English"」と、「"divisionPageRange":"Specified Pages"」と、「"divisionPageNumbers":0」とが含まれる。
また、同様に、例えば、図19(d)に示すテストケース4では、パラメータ情報として、「"language":"English"」と、「"divisionPageRange":"Specified Pages"」と、「"divisionPageNumbers":100」とが含まれる。
Webサービス処理部120のアプリ実行部122は、アプリケーションの実行要求を受信すると、当該実行要求を、入出力サービス処理部110のロジック処理部112に送信する(ステップS1807)。
入出力サービス処理部110のロジック処理部112は、アプリケーションの実行要求を受信すると、処理フローの実行処理を行う(ステップS1808)。すなわち、ロジック処理部112は、当該要求に含まれるパラメータ情報を用いて、当該要求に含まれるフロー名の処理フロー情報1100に基づく一連の処理を実行する。このように、テストケースが示すパラメータ情報を用いて、処理フロー情報1100に基づく一連の処理を実際に実行することで、テストが行われる。なお、処理フローの実行処理の詳細については後述する。
そして、ロジック処理部112は、処理フローの実行処理の処理結果を、Webサービス処理部120のアプリ実行部122に返信する。
Webサービス処理部120のアプリ実行部122は、ロジック処理部112から処理結果を受信すると、アプリIDと、テストケースと、当該処理結果とに基づいてテスト結果情報を作成し、テスト結果情報記憶部180に格納する(ステップS1809)。そして、アプリ実行部122は、当該処理結果をブラウザ310に返信する。
ここで、アプリ実行部122により作成及び格納されるテスト結果情報について、図21を参照しながら説明する。図21は、テスト結果情報の一例を示す図である。
図21に示すように、テスト結果情報には、アプリIDと、テスト実施日と、最終テスト結果と、テストケースと、テストケース結果とが含まれる。
アプリIDは、テストが行われたアプリケーションのアプリIDである。テスト実施日は、テストが実施された日付である。最終テスト結果は、最終的なテスト結果であり、全てのテストケース結果が「OK」である場合に「OK」となる。一方で、最終テスト結果は、少なくとも1つのテストケース結果が「NG」である場合には「NG」となる。
テストケースは、テストされたテストケース(すなわち、パラメータ情報の組み合わせ)である。テストケース結果は、テストケース毎のテスト結果である。
このように、テスト結果情報には、テストが行われたアプリケーション毎に、最終的なテスト結果と、テストケース毎のテスト結果とが関連付けられている。
以上により、本実施形態に係る情報処理システム1では、ユーザがPC端末30を用いて、例えば、フロー名や各コンポーネントのパラメータ情報等を設定することで、容易にアプリケーション(アプリ情報1000)を登録することができる。
しかも、本実施形態に係る情報処理システム1では、アプリケーションを登録する場合や修正・更新する場合等に、アプリケーションの処理フロー(すなわち、アプリ情報1000に含まれる処理フロー情報1100に基づく処理フロー)をテストすることができる。これにより、例えば、アプリ設定情報1200に定義されたパラメータ情報のパラメータ値が正しいか否か等を確認することができ、登録されたアプリケーションや修正・更新されたアプリケーションの動作確認等の評価を行うことができるようになる。
したがって、本実施形態に係る情報処理システム1によれば、例えば、プログラミング言語等の専門的な知識や経験を有しないユーザ(例えば、企画担当者等)であっても、各種サービスを提供するアプリケーションの登録及びテストを容易に行うことができる。
なお、本実施形態では、登録されたアプリケーションに対してテストを実行する場合について説明したが、例えば、登録前にテストを実行して、テストが成功したアプリケーションのみ登録を許可するようにしても良い。
ここで、図20に示したように、ユーザによりパラメータ値が入力されるパラメータ情報もある。すなわち、アプリケーションの処理フローをテストする際に、ユーザにより入力されるパラメータ値が処理フローの実行結果に影響を与える場合がある。このような場合に、ユーザにより入力されるパラメータ値が存在しないと、例えば、処理フローの実行が失敗したり、処理フローが途中で異常終了したりしてしまう。なお、ユーザにより入力されるパラメータ値には、例えば、メールの送信先アドレスや外部のクラウドサービスの認証情報等が挙げられる。
そこで、ユーザがパラメータ値を入力する必要がある場合も考慮したテスト実行処理について、図22を参照しながら説明する。図22は、第一の実施形態に係るテスト実行処理の他の例を示すシーケンス図である。なお、図22のステップS2201〜ステップS2204及びステップS2211〜ステップS2214の処理は、図18のステップS1801〜ステップS1804及びステップS1806〜ステップS1809の処理とそれぞれ同様であるため、その説明を省略する。
ステップS2204に続いて、ブラウザ310は、アプリ画面情報2000と、アプリ設定情報1200とが返信されると、処理フロー情報の取得要求をアプリ管理部111に送信する(ステップS2205)。なお、当該取得要求には、当該アプリ設定情報1200のフロー名1205に定義されたフロー名が含まれる。
アプリ管理部111は、処理フロー情報の取得要求を受信すると、当該取得要求に含まれるフロー名の処理フロー情報1100をアプリ情報記憶部150から取得する(ステップS2206)。そして、アプリ管理部111は、アプリ情報記憶部150から取得した処理フロー情報1100をブラウザ310に返信する。
以降のステップS2207の処理は、処理フロー情報1100に基づく処理フローが実行するオペレーション毎に実行される。すなわち、当該処理フロー情報1100の「"operationName"」に定義されたオペレーション名毎に実行される。
ブラウザ310は、処理フロー情報1100及びアプリ設定情報1200の少なくとも一方を参照して、該当のオペレーション名に対応するパラメータ情報について、パラメータ値をユーザに入力させる必要があるパラメータ情報が存在するか否かを判定する(ステップS2207)。ブラウザ310は、例えば、以下の(1)〜(4)により、該当のオペレーション名に対応するパラメータ情報について、パラメータ値をユーザに入力させる必要があるパラメータ情報が存在するか否かを判定すれば良い。
(1)ブラウザ310は、処理フロー情報1100を参照して、パラメータ値をユーザに入力させることを示すフラグ(ユーザ入力フラグ)がパラメータ情報に定義されているか否かを判定する。この場合、ユーザ入力フラグがパラメータ情報に定義されていない場合に、当該パラメータ情報のパラメータ値をユーザに入力させると判定すれば良い。
(2)ブラウザ310は、処理フロー情報1100を参照して、デフォルト値が定義されていないパラメータ情報が存在するか否かを判定する。この場合、デフォルト値が定義されていないパラメータ情報が存在する場合に、当該パラメータ情報のパラメータ値をユーザに入力させると判定すれば良い。
なお、パラメータ情報のデフォルト値は、アプリ設定情報1200に定義されている場合もある。したがって、この場合、処理フロー情報1100でデフォルト値が定義されていないパラメータ情報について、アプリ設定情報1200にもデフォルト値が定義されていない場合に、当該パラメータ情報のパラメータ値をユーザに入力させると判定しても良い。
(3)ブラウザ310は、処理フロー情報1100を参照して、ユーザ入力フラグが定義されており、かつ、デフォルト値が定義されていないパラメータ情報が存在するか否かを判定する。この場合、ユーザ入力フラグが定義されており、かつ、デフォルト値が定義されていないパラメータ情報が存在する場合、当該パラメータ情報のパラメータ値を入力させると判定しても良い。なお、この場合も、上記(2)と同様に、更に、アプリ設定情報1200にもデフォルト値が定義されていない場合に、当該パラメータ情報のパラメータ値をユーザに入力させると判定しても良い。
(4)ブラウザ310は、アプリ設定情報1200を参照して、ユーザ入力パラメータ1208にパラメータ情報が定義されているか否かを判定する。この場合、ユーザ入力パラメータ1208にパラメータ情報が定義されている場合に、当該パラメータ情報のパラメータ値をユーザに入力させると判定すれば良い。なお、ブラウザ310は、上記の(1)〜(3)の判定とあわせて、(4)による判定を行っても良い。
ステップS2207において、該当のオペレーション名に対応するパラメータ情報について、パラメータ値をユーザに入力させる必要があるパラメータ情報が存在すると判定された場合、以降のステップS2208〜ステップS2209の処理が実行される。
ブラウザ310は、当該パラメータ情報のパラメータ値をユーザに入力させるためのパラメータ入力画面を表示する(ステップS2208)。ここで、パラメータ入力画面の一例を図23に示す。図23は、パラメータ入力画面の一例を示す図である。
図23に示すパラメータ入力画面G950は、オペレーション名「メール送信1」の処理に用いるパラメータ情報「To」のパラメータ値を入力するための画面である。ユーザは、パラメータ入力欄G951にパラメータ値を入力した上で、OKボタンG952を押下することで、当該パラメータ情報のパラメータ値を指定することができる。
次に、ブラウザ310は、上記のステップS2208で表示されたパラメータ入力画面において、ユーザにより指定されたパラメータ値で、処理フロー情報1100に定義されているパラメータ情報のパラメータ値を更新する(ステップS2209)。これにより、処理フロー情報1100に定義されているパラメータ情報のパラメータ値が、ユーザにより入力されたパラメータ値に設定される。
以上のステップS2207〜ステップS2209の処理により、処理フロー情報1100に定義されているパラメータ情報のうち、ユーザによりパラメータ値が入力される必要があるパラメータ情報について、パラメータ値をユーザに入力させることができる。
ブラウザ310は、アプリ画面情報2000と、アプリ設定情報1200と、処理フロー情報1100とから、例えばオールペア法(ペアワイズ法)等の手法によりパラメータ情報を組み合わせて、テストケースを生成する(ステップS2210)。
以上により、本実施形態に係る情報処理システム1では、アプリケーションの処理フローをテストする際に、パラメータ情報のパラメータ値をユーザに入力させることができる。これにより、パラメータ値が指定されていないことによる処理フローの異常終了等を防止することができる。
次に、図18のステップS1808の処理(処理フローの実行処理)の詳細について、図24を参照しながら説明する。図24は、OCR分割サービスを実現する処理フローの実行処理の一例を示すシーケンス図である。
まず、フロー実行部301は、アプリ実行部122からアプリケーションの実行要求を受信すると、処理フロー情報の取得要求をアプリ管理部111に送信する(ステップS2401)。なお、当該取得要求には、フロー名「ocr−divide」が含まれる。
アプリ管理部111は、処理フロー情報の取得要求を受信すると、当該取得要求に含まれるフロー名「ocr−divide」の処理フロー情報1100をアプリ情報記憶部150から取得する(ステップS2402)。そして、アプリ管理部111は、アプリ情報記憶部150から取得した処理フロー情報1100をフロー実行部301に返信する。
ここで、以降では、アプリ管理部111は、図7に示す処理フロー情報1100をフロー実行部301に返信したものとして説明する。
次に、フロー実行部301は、処理フロー情報1100に基づくコンポーネントの取得要求をコンポーネント管理部302に送信する(ステップS2403)。
すなわち、フロー実行部301は、図7に示す処理フロー情報1100の詳細処理定義1110に含まれる「"component"」に定義されているコンポーネント名「"OCR"」のコンポーネントの取得要求をコンポーネント管理部302に送信する。
コンポーネント管理部302は、コンポーネントの取得要求を受信すると、コンポーネント名「"OCR"」のコンポーネント(すなわち、OCRコンポーネント1310)を生成する(ステップS2404)。なお、OCRコンポーネント1310の生成は、コンポーネント共通I/F1300に定義されたコンポーネントを生成するためのAPIを用いて行うことができる。
そして、コンポーネント管理部302は、生成したOCRコンポーネント1310をフロー実行部301に返信する。すなわち、コンポーネント管理部302は、例えば、OCRコンポーネント1310が展開されたメモリ(例えばRAM14)上のアドレスをフロー実行部301に返信する。
次に、フロー実行部301は、コンポーネント実行要求をOCRコンポーネント1310に送信する(ステップS2405)。なお、当該実行要求には、データと、パラメータ情報とが含まれる。
ここで、データは、データ型「InputStream」として受信した、アプリケーションの実行要求に含まれる電子ファイルである。すなわち、フロー実行部301は、受信した電子ファイルを、単に「データ」として(データ型を意識することなく)、OCRコンポーネント1310に渡して処理の実行を要求する。本実施形態では、このようにデータ型を意識しない電子ファイル等の各種の情報を、単に「データ」と表す。また、パラメータ情報は、アプリケーションの実行要求に含まれるパラメータ情報である。
OCRコンポーネント1310は、コンポーネント実行要求を受信すると、型変換要求を型変換管理部304に送信する(ステップS2406)。なお、当該型変換要求には、データと、OCRコンポーネント1310が扱うことができるデータ型を示す「LocalFilePath」の指定とが含まれる。
型変換管理部304は、型変換要求を受信すると、当該型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するか否かをチェックする(ステップS2407)。
ここで、型変換要求に含まれるデータのデータ型は「InputStream」である一方、指定されたデータ型は「LocalFilePath」である。したがって、型変換管理部304は、型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致しないものと判断する。
すると、型変換管理部304は、型変換情報テーブル4000を参照して、データ型「InputStream」を「LocalFilePath」に変換するための型変換を特定する(ここでは、第1の型変換1410が特定される。)。そして、型変換管理部304は、特定した第1の型変換1410を生成する(ステップS2408)。なお、第1の型変換1410の生成は、型変換共通I/F1400を用いて行うことができる。
次に、型変換管理部304は、型変換処理の実行要求を第1の型変換1410に送信する(ステップS2409)。なお、当該実行要求には、データが含まれる。
第1の型変換1410は、型変換の実行要求を受信すると、当該実行要求に含まれるデータのデータ型を「InputStream」から「LocalFilePath」に変換する型変換処理を行う(ステップS2410)。そして、第1の型変換1410は、データ型が変換されたデータを型変換管理部304に返信する。
型変換管理部304は、第1の型変換1410からデータを受信すると、当該データをOCRコンポーネント1310に送信する(ステップS2411)。
OCRコンポーネント1310は、型変換管理部304からデータを受信すると、パラメータ情報を用いて、データに対して処理を実行する(ステップS2412)。
例えば、アプリケーションの実行要求にパラメータ情報「"language":"English"」が含まれていた場合、OCRコンポーネント1310は、OCR処理部131により、当該パラメータ情報を用いて、データにより示される電子ファイルに対して、英語でOCR処理を行う。
そして、OCRコンポーネント1310は、OCR処理後の電子ファイル(すなわち、テキスト付きPDFファイル)を示すデータをフロー実行部301に返信する。
次に、フロー実行部301は、処理フロー情報1100に基づくコンポーネントの取得要求をコンポーネント管理部302に送信する(ステップS2413)。
すなわち、フロー実行部301は、図7に示す処理フロー情報1100の詳細処理定義1120に含まれる「"component"」に定義されているコンポーネント名「"PDF"」のコンポーネントの取得要求をコンポーネント管理部302に送信する。
コンポーネント管理部302は、コンポーネントの取得要求を受信すると、コンポーネント名「"PDF"」のコンポーネント(すなわち、PDFコンポーネント1320)を生成する(ステップS2414)。なお、PDFコンポーネント1320の生成は、コンポーネント共通I/F1300に定義されたコンポーネントを生成するためのAPIを用いて行うことができる。
そして、コンポーネント管理部302は、生成したPDFコンポーネント1320をフロー実行部301に返信する。すなわち、コンポーネント管理部302は、例えば、PDFコンポーネント1320が展開されたメモリ(例えばRAM14)上のアドレスをフロー実行部301に返信する。
次に、フロー実行部301は、コンポーネント実行要求をPDFコンポーネント1320に送信する(ステップS2415)。なお、当該実行要求には、データと、パラメータ情報とが含まれる。
ここで、データは、OCRコンポーネント1310から返信されたデータ(すなわち、OCR処理後の電子ファイル(テキスト付きPDFファイル)を示すパス)である。
PDFコンポーネント1320は、コンポーネント実行要求を受信すると、型変換要求を型変換管理部304に送信する(ステップS2416)。なお、当該型変換要求には、データと、PDFコンポーネント1320が扱うことができるデータ型を示す「LocalFilePath」の指定とが含まれる。
型変換管理部304は、型変換要求を受信すると、当該型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するか否かをチェックする(ステップS2417)。
ここで、型変換要求に含まれるデータのデータ型は「LocalFilePath」であり、指定されたデータ型も「LocalFilePath」である。したがって、型変換管理部304は、型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するものと判断する。
すると、型変換管理部304は、型変換要求に含まれるデータをPDFコンポーネント1320に送信する(ステップS2418)。このように、データ型のチェック(ステップS2417の処理)において、データのデータ型と、指定されたデータ型とが一致すると判断された場合には、型変換管理部304は、型変換の生成を行わない。
PDFコンポーネント1320は、型変換管理部304からデータを受信すると、パラメータ情報を用いて、データに対して処理を実行する(ステップS2419)。
例えば、アプリケーションの実行要求にパラメータ情報「"divisionPageRange":"Each Pages"」と、パラメータ情報「"divisionPageNumbers":100」とが含まれていたとする。この場合、PDFコンポーネント1320は、これらのパラメータ情報を用いて、データにより示される電子ファイル(テキスト付きPDF)の分割処理を行う。具体的には、この場合、PDFコンポーネント1320は、ページ番号「100」以降の各ページを分割して、テキスト付きPDFファイルを作成する。
そして、PDFコンポーネント1320は、分割処理後の電子ファイルを示すデータをフロー実行部301に返信する。
以上により、図7に示す処理フロー情報1100に基づく一連の処理(処理フロー)の実行が完了する。これにより、本実施形態に係るサービス提供システム10は、テストケース毎に、OCR分割アプリケーションが提供するサービス(OCR分割サービス)を実現する処理フローをテストすることができる。また、後述するように、機器20に対して、OCR分割サービスを提供することができる。
次に、機器20のユーザがOCR分割サービスを利用する場合について、図25を参照しながら説明する。図25は、OCR分割サービスを利用する場合の全体処理の一例を示すシーケンス図である。
まず、機器20のブラウザ210は、OCR分割サービスのアプリ画面を表示させるための操作(表示操作)を受け付ける(ステップS2501)。なお、機器20のユーザは、例えば、OCR分割サービスのアプリ画面のURLをブラウザ310のアドレスバーに入力することで、アプリ画面の表示操作を行うことができる。
機器20のブラウザ210は、OCR分割サービスのアプリ画面の表示操作を受け付けると、OCR分割サービスのアプリ画面の表示要求を、Webサービス処理部120の画面構成部121に送信する(ステップS2502)。なお、OCR分割サービスのアプリ画面の表示要求には、OCR分割サービスを提供するアプリ情報1000のアプリIDが含まれる。
Webサービス処理部120の画面構成部121は、OCR分割サービスのアプリ画面の表示要求を受信すると、アプリ設定の取得要求を、入出力サービス処理部110のアプリ管理部111に送信する(ステップS2503)。なお、アプリ設定の取得要求には、OCR分割サービスを提供するアプリ情報1000のアプリIDが含まれる。
入出力サービス処理部110のアプリ管理部111は、アプリ設定の取得要求を受信すると、当該取得要求に含まれるアプリIDに関連付けて記憶されているアプリ設定情報1200をアプリ情報記憶部150から取得する(ステップS2504)。そして、アプリ管理部111は、アプリ情報記憶部150から取得したアプリ設定情報1200を画面構成部121に返信する。
Webサービス処理部120の画面構成部121は、OCR分割サービスを提供するアプリ情報1000のアプリIDと関連付けて記憶されているアプリ画面情報2000をアプリ画面情報記憶部160から取得する(ステップS2505)。そして、画面構成部121は、アプリ画面情報記憶部160から取得したアプリ画面情報2000と、上記のステップS2504で返信されたアプリ設定情報1200とをブラウザ210に返信する。
機器20のブラウザ210は、画面構成部121から受信したアプリ画面情報2000とアプリ設定情報1200とに基づいて、例えば図26に示すアプリ画面G1000を表示する(ステップS2506)。
ここで、図26に示すアプリ画面G1000は、機器20のユーザがOCR分割サービスを利用するための画面である。
図26に示すアプリ画面G1000には、アプリ名G1010と、パラメータ値入力エリアG1020と、「スタート」ボタンG1030とが含まれる。また、パラメータ値入力エリアG1020には、分割方法入力欄G1021と、分割開始ページ開始番号入力欄G1022とが含まれる。
アプリ名G1010は、図15に示すアプリ設定情報1200のアプリ表示名1203に基づいて表示される。なお、アプリ表示名1203に複数の言語のアプリケーション名称(タイトル)が定義されている場合、ブラウザ210の言語設定に対応する言語のアプリケーション名称がアプリ名G1010に表示される。
また、分割方法入力欄G1021と、分割開始ページ開始番号入力欄G1022とは、図15に示すアプリ設定情報1200のユーザ入力パラメータ1208に基づいて表示される。
すなわち、分割方法入力欄G1021は、ユーザ入力パラメータ1208の入力定義1210に基づいて表示される。同様に、分割開始ページ開始番号入力欄G1022は、ユーザ入力パラメータ1208の入力定義1220に基づいて表示される。
このように、機器20のユーザがサービスを利用するためのアプリ画面には、アプリ設定情報1200に定義されている情報に基づいて、アプリ名やパラメータ値」入力エリアが表示される。
ここで、図26に示すアプリ画面G1000において、ユーザは、分割方法入力欄G1021及び分割開始ページ開始番号入力欄G1022にパラメータ値を入力(選択)した上で、「スタート」ボタンG1030を押下する操作(実行操作)を行ったものとする。
すると、機器20のブラウザ210は、実行操作を受け付ける(ステップS2507)。そして、機器20のブラウザ210は、スキャナ26を制御して、原稿を読み取ることで、電子ファイル(画像ファイル)を生成する(ステップS2508)。
機器20のブラウザ210は、電子ファイル(画像ファイル)が生成されると、アプリケーションの実行要求を、Webサービス処理部120のアプリ実行部122に送信する(ステップS2509)。なお、アプリケーションの実行要求には、アプリ設定情報1200のフロー名1205に定義されたフロー名「ocr−divide」と、上記のステップS2508で生成された電子ファイルと、パラメータ情報とが含まれる。
ここで、パラメータ情報は、アプリ設定情報1200のデフォルトパラメータ1207に定義されているパラメータ情報、及びユーザによりアプリ画面G1000でパラメータ値が入力されたパラメータ情報である。
Webサービス処理部120のアプリ実行部122は、アプリケーションの実行要求を受信すると、当該実行要求を、入出力サービス処理部110のロジック処理部112に送信する(ステップS2510)。
入出力サービス処理部110のロジック処理部112は、アプリケーションの実行要求を受信すると、処理フローの実行処理を行う(ステップS2511)。すなわち、ロジック処理部112は、図24で説明した処理フローの実行処理を行う。
そして、ロジック処理部112は、処理フローの実行処理の処理結果を、Webサービス処理部120を介して、ブラウザ210に返信する。これにより、本実施形態に係るサービス提供システム10は、OCR分割サービスを提供することができる。
ここで、図18で説明したテスト実行処理では、ブラウザ310でテストケースを生成する場合について説明したが、これに限られない。テストケースは、例えば、サービス提供システム10が生成しても良い。テストケースをサービス提供システム10で生成する場合のテスト実行処理について、図27を参照しながら説明する。図27は、第一の実施形態に係るテスト実行処理の他の例を示すシーケンス図である。なお、図27のステップS2706〜ステップS2709の処理は、図18のステップS1806〜ステップS1809の処理とそれぞれ同様であるため、その説明を省略する。
まず、ブラウザ310は、テスト実行操作を受け付けると、テストケースの生成要求を、Webサービス処理部120の画面構成部121に送信する(ステップS2701)。なお、テストケースの生成要求には、図8のステップS813でアプリ管理部111から返信されたアプリIDが含まれる。
Webサービス処理部120の画面構成部121は、テストケースの生成要求を受信すると、当該生成要求を、入出力サービス処理部110のアプリ管理部111に送信する(ステップS2702)。
入出力サービス処理部110のアプリ管理部111は、テストケースの生成要求を受信すると、当該生成要求に含まれるアプリIDに関連付けて記憶されているアプリ設定情報1200をアプリ情報記憶部150から取得する(ステップS2703)。
次に、入出力サービス処理部110のアプリ管理部111は、上記のステップS2703で取得したアプリ設定情報1200からテストケースを生成する(ステップS2704)。なお、テストケースの生成方法は、図8のステップS1805と同様である。
そして、アプリ管理部111は、生成したテストケースを、Webサービス処理部120の画面構成部121に返信する。
Webサービス処理部120の画面構成部121は、テストケースを受信すると、テスト結果画面G800及びテスト結果画面G900を表示するためのアプリ画面情報2000をアプリ画面情報記憶部160から取得する(ステップS2705)。そして、画面構成部121は、アプリ画面情報記憶部160から取得したアプリ画面情報2000と、上記のステップS2704で返信されたテストケースとをブラウザ310に返信する。
このように、本実施形態に係る情報処理システム1は、サービス提供システム10でテストケースが生成され、ブラウザ310に返信されても良い。
[第二の実施形態]
次に、第二の実施形態について説明する。第二の実施形態では、各コンポーネントに関する情報(以降、「コンポーネント情報」と表す。)にも基づいてテストケースを生成する場合について説明する。これにより、例えば、デフォルトのパラメータ値がコンポーネント情報に定義されている場合には、このデフォルトのパラメータ値を考慮したテストケースを生成することができるようになる。
なお、第二の実施形態では、主に、第一の実施形態との相違点について説明し、第一の実施形態と実質的に同一の構成要素については、適宜、その説明を省略するものとする。
<機能構成>
まず、本実施形態に係る情報処理システム1の機能構成について、図28を参照しながら説明する。図28は、本実施形態に係る情報処理システム1の機能構成の一例を示す図である。
図28に示すサービス提供システム10は、更に、コンポーネント情報記憶部190を有する。当該記憶部は、HDD18を用いて実現可能である。なお、当該記憶部は、サービス提供システム10とネットワークを介して接続される記憶装置等を用いて実現されていても良い。
コンポーネント情報記憶部190は、コンポーネント情報1500を記憶する。コンポーネント情報1500には、コンポーネントに関する各種情報(例えば、コンポーネントが実行可能なオペレーション、当該オペレーションの実行に用いられるパラメータ情報等)が定義されている。
<処理の詳細>
次に、本実施形態に係る情報処理システム1の処理の詳細について説明する。以降では、本実施形態に係るテスト実行処理の詳細について、図29を参照しながら説明する。図29は、本実施形態に係るテスト実行処理の一例を示すシーケンス図である。なお、図29のステップS2910〜ステップS2913の処理は、図18のステップS1806〜ステップS1809の処理とそれぞれ同様であるため、その説明を省略する。
まず、ブラウザ310は、テスト実行操作を受け付けると、アプリ設定の取得要求を、Webサービス処理部120の画面構成部121に送信する(ステップS2901)。なお、アプリ設定の取得要求には、図8のステップS813でアプリ管理部111から返信されたアプリIDが含まれる。
Webサービス処理部120の画面構成部121は、アプリ設定の取得要求を受信すると、当該取得要求を、入出力サービス処理部110のアプリ管理部111に送信する(ステップS2902)。
入出力サービス処理部110のアプリ管理部111は、アプリ設定の取得要求を受信すると、当該取得要求に含まれるアプリIDに関連付けて記憶されているアプリ設定情報1200をアプリ情報記憶部150から取得する(ステップS2903)。
ここで、以降では、上記のステップS2903では、図30に示すアプリ設定情報1200が取得されたものとする。図30に示すアプリ設定情報1200では、ユーザ入力パラメータ1208の入力定義1210が図15と異なっている。すなわち、図30に示すアプリ設定情報1200の入力定義1210におけるパラメータ情報「"divisionPageRange"」では、「"inputType"」に「"text"」が定義されている。
次に、入出力サービス処理部110のアプリ管理部111は、上記のステップS2903で取得したアプリ設定情報1200のフロー名1205に対応する処理フロー情報1100からコンポーネント名とオペレーション名とを特定する(ステップS2904)。
例えば、上記のステップS2903で取得したアプリ設定情報1200のフロー名1205に「ocr−divide」が定義されていたとする。この場合、アプリ管理部111は、図7に示す処理フロー情報1100の詳細処理定義1110からコンポーネント名「OCR」とオペレーション名「process」とを特定する。同様に、アプリ管理部111は、図7に示す処理フロー情報1100の詳細処理定義1120からコンポーネント名「PDF」とオペレーション名「divideByPageNumbers」とを特定する。
そして、アプリ管理部111は、上記のステップS2903で取得したアプリ設定情報1200と、上記のステップS2904で特定したコンポーネント名及びオペレーション名とを、Webサービス処理部120の画面構成部121に返信する。
Webサービス処理部120の画面構成部121は、テスト結果画面G800及びテスト結果画面G900を表示するためのアプリ画面情報2000をアプリ画面情報記憶部160から取得する(ステップS2905)。そして、画面構成部121は、アプリ画面情報記憶部160から取得したアプリ画面情報2000と、上記のステップS2904で返信されたアプリ設定情報1200と、コンポーネント名及びオペレーション名とをブラウザ310に返信する。
ブラウザ310は、アプリ画面情報2000と、アプリ設定情報1200と、コンポーネント名及びオペレーション名とが返信されると、コンポーネント情報の取得要求を、Webサービス処理部120のアプリ実行部122に送信する(ステップS2906)。なお、コンポーネント情報の取得要求には、画面構成部121から返信されたコンポーネント名が含まれる。
Webサービス処理部120のアプリ実行部122は、コンポーネント情報の取得要求を受信すると、当該取得要求を、入出力サービス処理部110のロジック処理部112に送信する(ステップS2907)。
入出力サービス処理部110のロジック処理部112は、コンポーネント情報の取得要求を受信すると、当該取得要求に含まれるコンポーネント名のコンポーネント情報1500をコンポーネント情報記憶部190から取得する(ステップS2908)。
例えば、コンポーネント情報の取得要求に含まれるコンポーネント名が「OCR」と「PDF」とであるとする。この場合、ロジック処理部112は、コンポーネント名「OCR」のコンポーネント情報1500と、コンポーネント名「PDF」のコンポーネント情報1500とを取得する。
ここで、コンポーネント名「OCR」のコンポーネント情報1500の一例を図31に示す。図31に示すコンポーネント情報1500には、コンポーネント名1501と、オペレーション名1502と、パラメータ定義1503とが含まれる。
パラメータ定義1503には、パラメータ名を示す「"name"」と、デフォルトのパラメータ値を示す「"defaultValue"」と、設定可能なパラメータ値を示す「optionValues」とが定義されている。
そして、ロジック処理部112は、取得したコンポーネント情報1500を、アプリ実行部122を介して、ブラウザ310に返信する。
ブラウザ310は、コンポーネント情報1500が返信されると、アプリ設定情報1200と、当該コンポーネント情報1500と、オペレーション名とから、パラメータ情報を組み合わせて、テストケースを生成する(ステップS2909)。
例えば、図30に示すアプリ設定情報1200の入力定義1210におけるパラメータ情報「"divisionPageRange"」では、「"inputType"」に「"text"」が定義されているだけである。このため、パラメータ情報「"divisionPageRange"」のパラメータ値として、どのような値を取り得るのか不明である。
このため、この場合、ブラウザ310は、図31に示すコンポーネント情報1500のパラメータ定義1503から、パラメータ情報「"divisionPageRange"」のデフォルトのパラメータ値「"Each Pages"」を用いてテストケースを生成する。
このように、例えばアプリ設定情報1200を適切なパラメータ値が定義されていない場合に、ブラウザ310は、コンポーネント情報1500に定義されているデフォルトのパラメータ値を用いて、テストケースを生成する。これにより、本実施形態に係る情報処理システム1では、例えば、処理フローの実行においてコンポーネント情報1500に定義されたデフォルトのパラメータ値が用いられるようなアプリケーションについて、当該パラメータ値を用いたテストを行うことができるようになる。
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。