以下、本発明を実施するための形態について図面を用いて説明する。
<実施の形態>
図1は本発明の実施の形態に係る情報処理システム1の構成図である。情報処理システム1は、サービス提供システム10、機器20、PC端末30及び外部ストレージシステム40を備える。サービス提供システム10、機器20、PC端末30及び外部ストレージシステム40は、インターネット等の広域的なネットワークN1を介して通信可能に接続されている。
サービス提供システム10は、一台以上の情報処理装置で実現される。サービス提供システム10は、ネットワークN1を介して、クラウドサービスなどの外部サービスと連携した一連の処理により実現される各種のサービスを提供する。サービス提供システム10の構成の詳細は後述する。以下では「一連の処理」を「処理フロー」又は「ワークフロー」と称する場合がある。また「処理フロー」又は「ワークフロー」を単に「フロー」と称する場合がある。本実施の形態では、外部サービスの具体例としてクラウドサービスを採用して説明するが、これに限られない。本実施の形態は、例えばASP(Application Service Provider)によって提供されるサービスやWebサービスなどのネットワークを介して提供される各種の外部サービスに関して適用されても良い。
機器20は、ユーザが使用する各種の電子機器であり、電子機器は、MFP(Multifunction Peripheral)、プロジェクタ、電子黒板、デジタルカメラなどである。PC端末30は、デスクトップPC(Personal Computer)、ノート型PC、スマートフォン、タブレット端末などである。ユーザは、機器20又はPC端末30を用いて、サービス提供システム10が提供する各種のサービスを利用することができる。外部ストレージシステム40は、ネットワークN1を介して、ストレージサービス(又はオンラインストレージ)と呼ばれるクラウドサービスを提供するコンピュータシステムである。ストレージサービスとは、外部ストレージシステム40のストレージの記憶領域を貸し出すサービスである。なお、複数の機器20について、各々を区別するときは、「機器201」、「機器202」等と添え字を用いて記載する。
PC端末30は、例えば、ユーザが使用するデスクトップPC、ノート型PC、スマートフォン、タブレット端末等である。ユーザは、PC端末30を用いて、サービス提供システム10が提供する各種のサービスを利用することができる。以降では、複数のPC端末30について、各々を区別するときは、「PC端末301」、「PC端末302」等と添え字を用いて記載する。
外部ストレージシステム40は、ネットワークN1を介してストレージサービス(又はオンラインストレージ)と呼ばれるクラウドサービスを提供するコンピュータシステムである。ストレージサービスとは、外部ストレージシステム40のストレージの記憶領域を貸し出すサービスである。以降では、複数の外部ストレージシステム40について、各々を区別するときは、「外部ストレージシステム401」、「外部ストレージシステム402」等と添え字を用いて記載する。また、外部ストレージシステム401により提供されるストレージサービスの名称を「ストレージA」、外部ストレージシステム401により提供されるストレージサービスの名称を「ストレージB」等とする。なお、外部ストレージシステム40は、複数台の情報処理装置によって実現されるシステムであっても良い。また、図1に示す情報処理システム1の構成は一例であって、他の構成であっても良い。例えば、本実施形態に係る情報処理システム1には、電子データの入力及び出力の少なくとも一方を行う各種機器が含まれ、これらの機器がサービス提供システム10により提供される各種サービスを利用しても良い。
次に、サービス提供システム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に示すハードウェア構成を備えることにより、後述するような各種処理を実現できる。
次に、機器20が画像形成装置である場合の機器20のハードウェア構成を説明する。図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に示すハードウェア構成を備えることにより、各種処理を実現できる。例えば機器20が画像形成装置である場合、機器20が原稿をスキャンして生成された電子ファイルは、OCR(Optical Character Reader)処理されて、外部ストレージシステム40に保存される。このようなサービスを「OCR配信」サービスと称する。この「OCR配信」サービスは、後述するアプリ情報1000により提供される。また、サービス提供システム10は、機器20において原稿をスキャンして生成された電子ファイルを、OCR処理して、OCR処理したデータを、所定のメールアドレス宛にメール送信するサービスを提供しても良い。このようなサービスを「メール配信」サービスと称する。「メール配信」サービスも、アプリ情報1000により提供される。これらのサービスを提供するには、当該サービスを実現する一連の処理(処理フロー)をサービス提供システム10に登録する必要がある。処理フローが定義された情報を、以下では、処理フロー情報1100と称する。処理フロー情報1100の具体例については、特許文献1に開示されているため、詳細な説明は割愛する。
次に、本実施の形態に係る情報処理システム1の機能構成を説明する。図4は本発明の実施の形態に係る情報処理システム1の機能構成図である。サービス提供システム10に接続される機器20は、UI制御部210、及びスキャン処理部220を備える。これら各機能部は、機器20にインストールされた1以上のプログラムが、CPU31に実行させる処理により実現される。UI制御部210は、操作パネル22に各種画面を表示させる。また、UI制御部210は、操作パネル22に表示された各種画面におけるユーザの各種操作を受け付ける。スキャン処理部220は、UI制御部210により受け付けられたユーザの操作に応じて、スキャナ26で原稿をスキャンして電子ファイル(画像ファイル)を生成する。
サービス提供システム10に接続されるPC端末30は、UI制御部310を備える。当該機能部は、PC端末30にインストールされた1以上のプログラムが、CPU16に実行させる処理により実現される。UI制御部310は、表示装置12に各種画面を表示させる。また、UI制御部210は、表示装置12に表示された各種画面において、入力装置11により入力されたユーザの各種操作を受け付ける。
サービス提供システム10は、サービス処理部110、ドキュメントサービス部160、及び外部ストレージ連携部170を備える。これら各機能部は、サービス提供システム10にインストールされた1以上のプログラムが、CPU16に実行させる処理により実現される。また、サービス提供システム10は、アプリ情報記憶部180を備える。当該記憶部は、HDD18を用いて実現可能である。なお、アプリ情報記憶部180は、サービス提供システム10とネットワークを介して接続される記憶装置などを用いて実現されても良い。
ドキュメントサービス部160は、処理フロー情報1100に基づく処理フローに含まれる所定の処理を実行する。ここで、ドキュメントサービス部160は、OCR処理部161と、メール送信部162を備える。ドキュメントサービス部160の詳細については、特許文献1に開示されるため説明を割愛する。
外部ストレージ連携部170は、ロジック処理部130やデータI/F部150からの要求に応じて、外部ストレージシステム40に対して、各種の要求(例えば、フォルダ一覧の取得要求等)を行う。外部ストレージ連携部170は、外部ストレージ連携部170の詳細については、特許文献1に開示されるため説明を割愛する。
アプリ情報記憶部180は、機器20に各種サービスを提供するためのアプリケーションであるアプリ情報1000を記憶する。アプリ情報1000には、前述した処理フロー情報1100が含まれる。
サービス処理部110は、機器20のUI制御部210からの要求に応じて、後述するアプリ情報1000により提供される各種サービスに関する処理を行う。また、サービス処理部110は、PC端末30のUI制御部310からの要求に応じて、アプリ情報1000に含まれる処理フロー情報1100の作成に関する処理を行う。サービス処理部110は、アプリ管理部120、ロジック処理部130、フロー作成処理部140及びデータI/F部150を備える。
アプリ管理部120は、アプリ情報記憶部180に記憶されるアプリ情報1000を管理する。アプリ管理部120は、機器20のUI制御部210やPC端末30のUI制御部310からの要求に応じて、各種の情報を返信する。アプリ管理部120は、アプリ情報として示されている画面定義や処理内容を「アプリ1」というようなIDと紐付けて管理している。例えば、アプリ管理部120は、機器20のUI制御部210からの要求に応じて、アプリ一覧情報を返信する。アプリ一覧情報は、アプリ情報1000の名称(アプリケーション名)、アプリ情報1000の識別情報(アプリID)などの一覧を示す情報である。また、アプリ管理部120は、ロジック処理部130からの要求に応じて、アプリ情報1000に含まれる処理フロー情報1100を返信する。またアプリ管理部120は、フロー作成処理部140からの要求に応じて、PC端末30において作成された処理フロー情報1100をアプリ情報記憶部180に記憶させる。
ロジック処理部130は、機器20のUI制御部210からの要求に応じて、アプリ情報1000に含まれる処理フロー情報1100をアプリ管理部120から取得する。そして、ロジック処理部130は、取得した処理フロー情報1100に基づいて、ドキュメントサービス部160や外部ストレージ連携部170のファイル処理部171などに処理の実行を要求することで、当該処理フロー情報1100に基づく一連の処理を実行する。ロジック処理部130は、後述するコンポーネントを組み合わせることにより、処理フロー情報1100に基づく一連の処理を実行する。これにより、本実施の形態に係るサービス提供システム10では、アプリ情報1000により提供される各種サービスが実現される。
図6を用いてロジック処理部130の詳細構成を説明する。図6は、第一の実施形態に係るロジック処理部130の一例の機能構成を示す図である。ロジック処理部130は、フロー実行部131、コンポーネント管理部132、コンポーネント群133、型変換管理部134、及び型変換群135を有する。また、ロジック処理部130は、処理情報テーブル2000、及び型変換情報テーブル3000とを利用する。
フロー実行部131は、機器20のUI制御部210からの要求に応じて、アプリ情報1000に含まれる処理フロー情報1100をアプリ管理部120から取得する。そして、フロー実行部131は、アプリ管理部120から取得した処理フロー情報1100に基づいて、コンポーネントに対して処理の実行を要求する。コンポーネントは、処理フロー情報1100に基づく一連の処理(処理フロー)に含まれる所定の処理を実行するためのモジュール等である。したがって、処理フロー情報1100に基づく一連の処理は、1以上のコンポーネントにより実行される各処理が組み合わされることにより実現される。コンポーネントは、例えばクラスや関数等で定義される。
コンポーネント管理部132は、フロー実行部131からの要求に応じて、コンポーネントの生成を行う。コンポーネントの生成とは、例えばクラスや関数等で定義されているコンポーネントを、メモリ(例えばRAM14)上に展開することである。また、コンポーネント管理部132は、フロー作成処理部140からの要求に応じて、処理情報テーブル2000を返信する。処理情報テーブル2000の詳細について、図6を参照しながら説明する。
図6は、処理情報テーブル2000の一例を示す図である。処理情報テーブル2000には、1以上の処理情報が格納されている。処理情報は、データ項目として、コンポーネント名、アイコンパス、コンポーネントID、オペレーション名、オペレーションID、及びパラメータ設定情報を有する。
コンポーネント名は、コンポーネントの名称である。アイコンパスは、コンポーネント及びオペレーションを表すアイコン等の表示部品が格納されている格納先パス(例えば、URL(Uniform Resource Locator)等)である。
コンポーネントIDは、コンポーネントを識別する識別情報である。オペレーション名は、コンポーネントにより実行される処理を示すオペレーションの名称である。オペレーションIDは、オペレーションを識別する識別情報である。パラメータ設定情報は、コンポーネントにより実行される処理に用いられるパラメータ情報のパラメータ値を設定する際に用いられる各種情報である。パラメータ設定情報には、パラメータ名、表示名、及び入力形式等が含まれる。パラメータ名は、パラメータ情報の名称である。表示名は、パラメータ情報のパラメータ値を設定するための画面(後述するパラメータ設定画面)に表示される表示名である。入力形式は、パラメータ値として設定可能なデータ形式や入力数(例えば、文字や数字、入力可能な文字数等)である。例えば、コンポーネント名「外部ストレージAコンポーネント」(コンポーネントID「storageA」)は、オペレーション名「配信」(オペレーションID「uploadFile」)の処理(オペレーション)を実行することできる。このとき、外部ストレージAコンポーネントは、パラメータ名「folderID」のパラメータ情報を用いることが示されている。同様に、例えば、コンポーネント名「外部ストレージAコンポーネント」(コンポーネントID「storageA」)は、オペレーション名「取得」(オペレーションID「getFiles」)の処理(オペレーション)を実行することができる。このとき、外部ストレージAコンポーネントは、パラメータ名「fileID」のパラメータ情報を用いることが示されている。また、同様に、例えば、コンポーネント名「OCRコンポーネント」(コンポーネントID「ocr」)は、オペレーション名「OCR」(オペレーションID「process」)の処理(オペレーション)を実行することができる。このとき、OCRコンポーネントは、パラメータ名「language」のパラメータ情報と、パラメータ名「outputType」のパラメータ情報を用いることが示されている。このように、各コンポーネントには、1以上のオペレーションが含まれる。そして、コンポーネントは、オペレーションと、当該オペレーションに対するパラメータとが設定されることで、各種処理を実行することができる。
コンポーネント群133、型変換管理部134及び型変換群135の詳細については特許文献1に開示されるため説明を割愛する。
図4に戻り、フロー作成処理部140は、PC端末30のUI制御部310からの要求に応じて、処理フロー作成画面を返信する。なお、処理フロー作成画面とは、処理フロー情報1100を作成するための画面である。そして、フロー作成処理部140は、処理フロー作成画面において作成された処理フローを示す処理フロー情報1100の登録をアプリ管理部120に要求する。これにより、PC端末30において作成された処理フローが、サービス提供システム10に登録される。
データI/F部150は、機器20のUI制御部210からの要求に応じて、外部ストレージ連携部170のデータ処理部172に対して、各種の要求(例えば、フォルダ一覧の取得要求など)を行う。
図7はPC端末30のアプリ一覧画面G100に表示されるアプリ一覧G101の一例を表す図である。図7には、アプリ一覧画面G100は、アプリ一覧情報に基づき作成される。アプリ一覧G101には、「スキャンアプリ」、「プリントアプリ」、「メールアプリ」のアプリの名称が表示される。アプリ一覧G101の中から、例えばスキャンアプリが選択された場合、図8に示すアプリ情報表示画面G200画面に遷移する。
図8はアプリ情報表示画面G200の一例を表す図である。アプリ情報表示画面G200には、スキャンアプリに関する情報が表示される。スキャンアプリに関する情報は、既に登録されているフロー、すなわち「外部ストレージ配信」、「メール配信」などである。また、アプリ情報表示画面G200には、"追加"、"更新"などのボタンが表示される。ユーザが、"追加"、"更新"などのボタンが押すことによって、各種操作を行うことができる。"追加"ボタンが押された場合、図9に示されるワークフロー作成画面G300に遷移する。
図9はワークフロー作成画面G300の一例を表す図である。ワークフロー作成画面G300には、主に、コンポーネント名が一覧表示されるコンポーネント一覧描画領域G301と、操作ガイド等の説明が表示されるフロー作成方法説明領域G302とが表示される。また、ワークフロー作成画面G300には、処理フローをグラフィカルに作成するための作成領域であるフロー作成描画領域G303が表示される。ワークフロー作成画面G300の表示動作の詳細については特許文献1に開示されるため説明を割愛する。
コンポーネント一覧描画領域G301には、フローの作成に利用できる構成要素(コンポーネント)に関する情報が表示される。コンポーネントに関する情報は、例えば、コンポーネントの種類(コンポーネントA、コンポーネントBなど)と、各コンポーネントの処理内容(処理A-1、処理A-2、処理B-1、処理B-2など)とである。コンポーネントの種類は、例えば「GoogleDrive(登録商標)、コンポーネント」、処理は「ファイルをアップロード」などである。
フロー作成描画領域G303は、フローを作成するための領域である。この領域には、フローに利用する構成要素と順序が表現される。フロー作成は、フローに利用する処理要素の決定、フローに利用する処理内容の決定、処理要素間の順序の決定という順で行われる。フロー作成の結果、フロー作成描画領域G303には、図10に示すような処理フローF10が表示される。図10はフロー作成描画領域G303に表示される処理フローF10の一例を示す図である。図10では、例えばOCR処理の後、メール送信を行うというフローの例が示される。このようなアイコンの表示はUI制御部310により行われる。UI制御部310は、フロー作成描画領域G303に、ユーザにより選択された「OCR」オペレーションを示すアイコンI1と、「メール送信」オペレーションを示すアイコンI2とを配置する。以上により、ユーザがコンポーネント及びオペレーションを表すアイコンをフロー作成描画領域G303に配置することによって、処理フローF10が作成される。
図10のアイコンI2がユーザによって選択された場合、図11に示されるメール送信パラメータ設定画面G400が表示される。図11はメール送信パラメータ設定画面G400の一例を示す図である。メール送信パラメータ設定画面G400は、「メール送信」オペレーションが用いるパラメータ情報を設定するための画面である。メール送信パラメータ設定画面G400には、メールの宛先、ファイル添付の有無、ファイルサイズ、ファイル名などの入力欄が表示される。
このようなメール送信パラメータ設定画面G400を表示するためには、例えば、PC端末30のUI制御部310が、アイコンの選択操作を受け付けると、選択されたアイコンに対応するコンポーネントID及びオペレーションIDを、サービス提供システム10のフロー作成処理部140に送信する。そして、サービス提供システム10のフロー作成処理部140は、コンポーネントID及びオペレーションIDを受信すると、当該コンポーネントID及びオペレーションIDに対応する処理情報を処理情報テーブル2000から取得する。次に、サービス提供システム10のフロー作成処理部140は、取得した処理情報に含まれるパラメータ設定情報に基づいて、パラメータ設定画面を作成する。パラメータ設定画面とは、コンポーネントの処理に用いられるパラメータ情報のパラメータ値を設定するための画面であり、例えば、(HyperText Markup Language)やCSS(Cascading Style Sheets)等により画面が定義されている。そして、フロー作成処理部140は、作成したパラメータ設定画面をUI制御部310に返信する。PC端末30のUI制御部310は、パラメータ設定画面を受信すると、例えば図11に示すメール送信パラメータ設定画面G400を表示する。
前述した「処理要素間の順序の決定」については、例えば、構成要素同士を関連付けられるように、ユーザがマウスなどのデバイスで関連線を引き、処理順序を決定してもよいし、テキスト領域に言語で処理内容が入力されることによって決定してもよい。例えば"GoogleDrive(登録商標)配信したあとにURLをメール配信する"と入力される。
このように構成される実施の形態の情報処理システム1では、フローを作成する際、特定のコンポーネントの出力を別のコンポーネントの入力値として使用したい場合がある。例えばOCRコンポーネントの出力の中に、OCRの結果(テキスト)を出力するパラメータが含まれており、この出力されたテキストを、メールの本文に入力して送信したい場合がある。この場合、メール送信コンポーネントのパラメータの内、メール本文を入力するパラメータに対して、OCRコンポーネントが出力するテキストを参照するように、メール送信コンポーネントの入力値を指定する必要がある。このとき、メール送信コンポーネントの本文を入力するパラメータの型と、OCRコンポーネントのOCR結果のテキストを出力するパラメータの型とが異なる場合、フロー実行時にエラーが生じてしまう。そのため、処理フローの作成者は、各コンポーネントの入出力仕様を確認しながら、設定可能なパラメータを指定しなかればならず、フロー作成に手間がかかってしまう。以下では、フローの作成者を単にユーザを称する場合がある。
このようなことに鑑みて、情報処理システム1は、ユーザが各コンポーネントの入出力仕様を見なくても、参照したいコンポーネントの出力パラメータの型と、入力したいコンポーネントのパラメータの型とを確認し、自動的に設定可能なパラメータの一覧を表示することで、自動的に設定可能なパラメータの一覧をユーザに提供するように構成されている。この構成により、ユーザには設定可能なパラメータのみ提供されるため、設定可能なパラメータでるか否かを判断する必要がなる。フローを作成することができる。この機能によって、フロー作成者が入出力仕様を詳しく把握していなくても、入力したいパラメータにどの機能の出力のパラメータが設定できる。以下では、本発明の特徴部分について詳細に説明する。
図12は本発明の実施の形態に係る情報処理システム1の動作を説明するためのシーケンスチャートである。ユーザが、アイコンの選択操作を行う(ステップS1401)。ここでは、図10のアイコンI2が選択されたものとする。
PC端末30のUI制御部310は、アイコンの選択操作を受け付けると、選択されたアイコンに対応するコンポーネントID及びオペレーションIDを、サービス提供システム10のフロー作成処理部140に送信する(ステップS1402)。
サービス提供システム10のフロー作成処理部140は、コンポーネントID及びオペレーションIDを受信すると、当該コンポーネントID及びオペレーションIDに対応する処理情報を処理情報テーブル2000から取得するため、処理情報テーブル2000の送信要求を行い(ステップS1403)、コンポーネント管理部132は送信要求に対して処理情報テーブル2000を送信する。(ステップS1403)。
次に、サービス提供システム10のフロー作成処理部140は、ステップS1403で取得した処理情報に含まれるパラメータ設定情報に基づいて、パラメータ設定画面を作成する(ステップS1404)。フロー作成処理部140は、作成したパラメータ設定画面をUI制御部310に返信する。
PC端末30のUI制御部310は、パラメータ設定画面を受信すると、例えば図13に示すパラメータ設定画面G400Aを表示する。図13はメール送信パラメータ設定用の設定画面の一例を示す図である。
図13に示されるパラメータ設定画面G400Aには、コンポーネント出力参照欄G400A1、コンポーネント出力参照欄G400A2、及びコンポーネント出力参照欄G400A3が含まれる。
コンポーネント出力参照欄G400A1は、出力情報(出力パラメータ)の内、メール送信コンポーネントの入力情報(入力パラメータ)に含まれるパラメータ名「to」(メール宛先)のパラメータ型と同じ型のパラメータ情報を表示させるためのボタンである。パラメータ型の具体例については、後述する。
コンポーネント出力参照欄G400A2は、出力情報(出力パラメータ)の内、メール送信コンポーネントの入力情報(入力パラメータ)に含まれるパラメータ名「title」(メール件名)のパラメータ型と同じ型のパラメータ情報を表示させるためのボタンである。
コンポーネント出力参照欄G400A3は、出力情報(出力パラメータ)の内、メール送信コンポーネントの入力情報(入力パラメータ)に含まれるパラメータ名「body」(メール本文)のパラメータ型と同じ型のパラメータ情報を表示させるためのボタンである。
次に、ユーザは、パラメータ設定画面G400Aにおいて、コンポーネント出力参照欄G400A2、及びコンポーネント出力参照欄G400A3の何れかを選択する(ステップS1405)。ここでは「コンポーネント出力参照欄G400A3」が選択される。
コンポーネント出力参照欄G400A3が選択されると、PC端末30のUI制御部310は、フロー作成処理部140に、コンポーネント出力参照フォームを要求する(ステップS1406)。コンポーネント出力参照フォームの具体例は後述する。
フロー作成処理部140は、コンポーネント出力参照フォームの要求を受信すると、処理フローとして設定されている複数のコンポーネントのそれぞれの出力情報(出力パラメータ)を取得する(ステップS1407)。図14を用いて、コンポーネントの出力情報の具体例を説明する。図14はOCRコンポーネントの出力情報の一例を示す図である。図14には、OCRコンポーネントの出力情報の一例が示される。出力情報には、パラメータ名と、このパラメータの型とが含まれる。パラメータ名は、「language」(言語)、「result」(結果)「filename」(ファイル名)などである。パラメータの型は、「String」、「Array」などである。パラメータの型は、「String」、「Array」以外にも、「Boolean」、「Object」などでもよい。
複数のコンポーネントのそれぞれの出力情報を取得したフロー作成処理部140は、出力情報に含まれるパラメータの型と、現在設定中のパラメータの型とを比較する。現在設定中のパラメータの型とは、例えば、メール送信コンポーネントに設定されるパラメータの型である。すなわち、出力情報が入力情報として利用されるコンポーネントに設定されるパラメータの型である。図15を用いて具体例を説明する。図15はメール送信コンポーネントの入力情報(入力パラメータ)の一例を示す図である。メール送信コンポーネントの入力情報には、パラメータ名と、このパラメータの型とが含まれる。パラメータ名は「to」(メール宛先)、「title」(メール件名)、「body」(メール本文)などである。パラメータの型は、「String」などである。
フロー作成処理部140は、取得した出力情報に含まれるパラメータの型と、現在設定中のパラメータの型とを比較した結果、処理フローに設定中のコンポーネントの出力情報の内、例えばメール送信コンポーネントに設定可能なパラメータを抽出する(ステップS1408)。ステップS1408の具体例を説明する。図13に示されるメール送信コンポーネントの入力パラメータの「body」の型は「String」である。この型「String」は、図14に示されるコンポーネントの出力パラメータの型「String」と同じである。そして、このコンポーネントの出力パラメータの型「String」は、「language」及び「result」が対応している。従って、メール送信コンポーネントに入力可能なコンポーネントの出力パラメータは、「String」に対応する「language」及び「result」である。
このような対応関係に基づき、メール送信コンポーネントに入力可能なコンポーネントの出力パラメータを抽出したフロー作成処理部140は、図16に示されるようなコンポーネント出力参照フォームG400Bを作成する(ステップS1409)。図16はコンポーネント出力参照フォームG400Bの一例を示す図である。コンポーネント出力参照フォームG400Bには、コンポーネント名とパラメータとが含まれる。コンポーネント名は「OCR」である。パラメータは「language」及び「result」である。
作成されたコンポーネント出力参照フォームG400Bは、UI制御部310に送信され、UI制御部310は、コンポーネント出力参照フォームG400BをPC端末30に表示させる(ステップS1410)。
そして、ユーザは、PC端末30に表示されたコンポーネント出力参照フォームG400Bを参照することで、出力パラメータの仕様を把握することなく、出力パラメータを入力パラメータとして設定することができる(ステップS1411)。
なお、本実施の形態に係る情報処理システム1は、第1処理フローが実行されているときに、第1処理フローとは異なる第2処理フローを呼び出して、第2処理フローを実行するように構成してもよい。例えば、本実施の形態に係る情報処理システム1は、第1処理フローを構成する一部のコンポーネントにエラーが発生した場合、第1処理フローにエラーが発生したことをユーザへ通知するための第2処理フローを呼び出し、第2処理フローを利用して、エラーが生じたコンポーネントの前記出力パラメータを表示部へ表示させるように構成される。
また、第2処理フローに含まれるコンポーネントへの入力情報として、第1処理フローのコンポーネントの出力情報(出力パラメータ)を参照する場合がある。この場合、本実施の形態に係る情報処理システム1は、現在の処理フロー(第1処理フロー)が別の処理フロー(第2処理フロー)に呼び出される設定になっているかを判定し、呼び出されている場合、第1処理フローのコンポーネントの出力情報(出力パラメータ)も参照できるように構成される。以下に、コンポーネントの入力パラメータとして、呼び出し元の処理フローのコンポーネントの出力パラメータを参照する動作例を説明する。
図17は情報処理システム1の変形例に係る動作を説明するためのシーケンスチャートである。ステップS1401~S1406までの処理と、ステップS1407~S1411までの処理は、図12に示される処理内容と同様のため、説明を割愛する。図17では、ステップS1406とステップS1407との間に、ステップS2000及びステップS2001が追加されている。
コンポーネントの入力パラメータとして、呼び出し元の処理フロー(第1処理フロー)のコンポーネントの出力パラメータを参照する場合、フロー作成処理部140は、コンポーネント出力参照の設定フォームの要求がなされたとき、現在編集中の処理フローが、別の処理フロー(第2処理フロー)から呼び出されているか否かを、コンポーネント管理部132に対して確認する(ステップS2000)。
呼び出し元の処理フロー(第1処理フロー)が存在する場合、フロー作成処理部140は、呼び出されている処理フロー情報1100をコンポーネント管理部132から取得する(ステップS2001)。
フロー作成処理部140は、第1処理フローを構成するコンポーネントの中から、参照可能なコンポーネントの出力情報を取得すると共に、呼び出し元の処理フローを構成するコンポーネントの中から、参照可能なコンポーネントの出力情報もあわせて取得する。フロー作成処理部140は、コンポーネント出力フォームに、呼び出し元の処理フロー内のコンポーネントの参照可能なパラメータも表示させる。
図18は呼び出し元の処理フローのコンポーネントの出力パラメータを、呼び出し先の処理フローのコンポーネントの入力として参照する場合の具体例を示す図である。例えば、呼び出し元の処理フローは、「ユーザ情報取得コンポーネント」、「OCRコンポーネント」及び「メール送信コンポーネント」を備える。呼び出し元の処理フローは、ユーザ情報を取得し、ユーザ情報から取得できるメールアドレスにOCRの結果を送信するという処理フローである。呼び出し先の処理フローは、例えば、呼び出し元の処理フローの「OCRコンポーネント」にエラーが発生したときに、呼び出されるエラー処理用のフローである。「OCRコンポーネント」にエラーが発生したことをメールで通知した場合、「ユーザ情報取得コンポーネント」が取得したユーザ情報に含まれるメールアドレスを、「ユーザ情報取得コンポーネント」のパラメータ名「to」(メール宛先)により参照することができる。
なお実施の形態では、第1コンポーネント(OCRコンポーネント)から出力される出力パラメータの内、第2コンポーネント(メール送信コンポーネント)に設定可能なパラメータのみを表示部(PC端末30の表示部)に表示させるように構成した例について説明したが、情報処理システム1の構成例はこれに限定されない。例えば、第2コンポーネントに設定可能なパラメータと第2コンポーネントに設定ができないパラメータとの双方を、表示部に表示させてもよい。この場合、第2コンポーネントに設定可能なパラメータには「設定可能」などの表示を付加するようにしてもよいし、第2コンポーネントに設定ができないパラメータには「設定不可」などの表示を付加するようにしてもよい。
以上に説明したように、本実施の形態に係る情報処理システム1のフロー作成処理部140は、第1処理を実行する機能である第1コンポーネントと前記第1コンポーネントの処理よりも後に第2処理を実行する機能である第2コンポーネントとを含み前記第1処理及び前記第2処理の処理手順を示すワークフローに基づき、前記第1コンポーネントから出力され前記第1処理を実現する1又は複数のパラメータである出力パラメータが、前記第2コンポーネントに入力され前記第2処理を実現するパラメータとして設定可能なパラメータであるか否かを判定し、前記判定した前記パラメータを表示部に表示させる。この構成により、ユーザは、第1コンポーネントの出力パラメータの仕様を把握することなく、第1コンポーネントから出力される何れの出力パラメータを第2コンポーネントの入力パラメータとして利用するワークフローを作成できる。
また本実施の形態に係る情報処理システム1のフロー作成処理部140は、出力パラメータが、第2コンポーネントに入力され前記第2処理を実現するパラメータとして設定可能なパラメータであるか否かを判定し、前記第2処理を実現するパラメータとして設定可能と判定したパラメータを、前記表示部に表示させるように構成してもよい。この構成により、ユーザは、第1コンポーネントの出力パラメータの仕様を把握することなく、かつ、第1コンポーネントから出力される出力パラメータの内、第2コンポーネントの入力パラメータとして設定可能なパラメータのみを利用してワークフローを作成できる。従って、ワークフローの作成がより容易化される。
また本実施の形態に係る情報処理システム1のフロー作成処理部140は、前記ワークフローを構成する前記第1コンポーネント及び前記第2コンポーネントの何れかにエラーが生じたとき、前記エラーが生じたコンポーネントの前記出力パラメータを、前記表示部に表示させるように構成してもよい。この構成により、ユーザは、ワークフローにエラーが生じていても、出力パラメータを確認しながらワークフローの作成が可能となる。
また本実施の形態に係る情報処理システム1のフロー作成処理部140は、ワークフローを構成する前記第1コンポーネント及び前記第2コンポーネントの何れかにエラーが生じたとき、前記ワークフローとは異なるワークフローを呼び出し、前記呼び出したワークフローを利用して、前記出力パラメータを、前記表示部に表示させるように構成してもよい。この構成により、この構成により、ユーザは、ワークフローにエラーが生じていても、出力パラメータを確認しながらワークフローの作成が可能となる。
また実施の形態に係る情報処理装置は、第1処理を実行する機能である第1コンポーネントと前記第1コンポーネントの処理よりも後に第2処理を実行する機能である第2コンポーネントとを含み前記第1処理及び前記第2処理の処理手順を示すワークフローに基づき、前記第1コンポーネントから出力され前記第1処理を実現する1又は複数のパラメータである出力パラメータが、前記第2コンポーネントに入力され前記第2処理を実現するパラメータとして設定可能なパラメータであるか否かを判定し、前記判定した前記パラメータを表示部に表示させるフロー作成処理部140を備える。この構成により、ユーザは、第1コンポーネントの出力パラメータの仕様を把握することなく、第1コンポーネントから出力される何れの出力パラメータを第2コンポーネントの入力パラメータとして利用するワークフローを作成できる。
また実施の形態に係る情報処理方法は、コンピュータで実行される情報処理方法であって、第1処理を実行する機能である第1コンポーネントと前記第1コンポーネントの処理よりも後に第2処理を実行する機能である第2コンポーネントとを含み前記第1処理及び前記第2処理の処理手順を示すワークフローに基づき、前記第1コンポーネントから出力され前記第1処理を実現する1又は複数のパラメータである出力パラメータが、前記第2コンポーネントに入力され前記第2処理を実現するパラメータとして設定可能なパラメータであるか否かを判定するステップと、前記判定された前記パラメータを表示部に表示させるステップと、を含む。実施の形態に係る情報処理方法によれば、ユーザは、第1コンポーネントの出力パラメータの仕様を把握することなく、第1コンポーネントから出力される何れの出力パラメータを第2コンポーネントの入力パラメータとして利用するワークフローを作成できる。
また実施の形態に係る情報処理プログラムは、コンピュータに、第1処理を実行する機能である第1コンポーネントと前記第1コンポーネントの処理よりも後に第2処理を実行する機能である第2コンポーネントとを含み前記第1処理及び前記第2処理の処理手順を示すワークフローに基づき、前記第1コンポーネントから出力され前記第1処理を実現する1又は複数のパラメータである出力パラメータが、前記第2コンポーネントに入力され前記第2処理を実現するパラメータとして設定可能なパラメータであるか否かを判定させ、前記判定された前記パラメータを表示部に表示させる。実施の形態に係る情報処理プログラムによれば、ユーザは、第1コンポーネントの出力パラメータの仕様を把握することなく、第1コンポーネントから出力される何れの出力パラメータを第2コンポーネントの入力パラメータとして利用するワークフローを作成できる。