以下に添付図面を参照して、情報処理システム、情報処理方法、及びプログラムの実施形態を詳細に説明する。以下の実施形態によって本発明が限定されるものではなく、以下の実施形態における構成要素には当業者が容易に想到できるもの、実質的に同一のもの、及びいわゆる均等の範囲のものが含まれる。以下の実施形態の要旨を逸脱しない範囲で構成要素の種々の省略、置換、変更、及び組み合わせを行うことができる。
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
<システム構成>
まず、本実施形態に係る情報処理システム1のシステム構成について、図1を参照しながら説明する。図1は、本実施形態に係る情報処理システム1の一例のシステム構成を示す図である。
図1に示す情報処理システム1は、サービス提供システム10と、機器20と、PC端末30とを含み、インターネット等の広域的なネットワークN1を介して通信可能に接続されている。
サービス提供システム10は、一台以上の情報処理装置で実現され、ネットワークN1を介して、種々の機能をそれぞれ実現する複数の処理のうちの1以上の処理を組み合わせた一連の処理により実現される各種のサービスを提供する。
ここで、機能とは、文書ファイルや画像ファイル等の電子ファイルに関する機能である。機能には、例えば、プリント、スキャン、ファクシミリ送信、データ形式の変換、メール送信、メール以外のデータ送信、OCR(Optical character recognition)処理、加工や圧縮・解凍、リポジトリへの格納等が挙げられる。
本実施形態に係るサービス提供システム10が提供するサービスの具体例については後述する。なお、以降では、一連の処理を「処理フロー」とも表す。
機器20は、ユーザが使用する各種の電子機器である。すなわち、機器20は、例えば、MFP等の画像形成装置、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が画像形成装置であるものとして説明する。
本実施形態に係るサービス提供システム10は、ユーザにより入力された情報に基づいて、機器20の機能を利用した一連の処理(処理フロー)を実行することにより、各種のサービスを実現する。また、サービス提供システム10は、ユーザにより設定された処理フローを実行するようにプログラムの実行順が定義されたアプリケーションを生成し、ユーザが機器20の操作部(操作パネル22等)を介して各サービスに対応するアプリケーションを利用できるようにする。
本実施形態に係るサービス提供システム10は、機器20によりスキャンされた原稿の電子ファイルにQRコードを付与した後、当該QRコードが付与された電子ファイルを印刷する「QRコード印刷サービス」を提供する。すなわち、サービス提供システム10は、QRコード印刷サービスを実現するための処理フローを実行する「QRコード印刷アプリケーション」を生成し、ユーザが機器20の操作部を介してQRコード印刷アプリケーションを利用できるようにする。また、「QRコード印刷アプリケーション」に関連するアプリケーションとして、スキャンにより生成された電子ファイルをクラウドストレージ等の外部サービスに送信(蓄積)するためのアプリケーションが利用可能となっている。
なお、サービス提供システム10により提供されるサービスは、上記に限られるものではなく、例えば、スキャンにより生成された電子ファイルにOCR処理を行った上で所定の言語に翻訳したデータをメール等で送信する「スキャン翻訳サービス」、スキャンにより生成された電子ファイルを暗号化した上でメール送信する「暗号化データ送信サービス」、スキャンにより取得された画像データをクラウドシステム(外部サービス)等にアップロードする「スキャンデータアップロードサービス」等であってもよい。これらの場合、サービス提供システム10は、ユーザにより入力された設定情報に基づいて、スキャン翻訳サービスを実現するための処理フローを実行する「スキャン翻訳アプリケーション」、暗号化データ送信サービスを実現するための処理フローを実行する「暗号化データ送信アプリケーション」、スキャンデータアップロードシステムを実現するための処理フローを実行する「スキャンデータアップロードアプリケーション」等を生成し、ユーザに利用できるようにする。
<機能構成>
次に、本実施形態に係る情報処理システム1の機能構成について、図4を参照しながら説明する。図4は、本実施形態に係る情報処理システムの一例の機能構成を示す図である。
図4に示すPC端末30は、例えばCPU16等により実行されるブラウザ310を有する。PC端末30のユーザは、ブラウザ310を用いて、「QRコード印刷サービス」等の各種サービスを利用するためのアプリケーションをサービス提供システム10に登録することができる。
図4に示す機器20は、例えばCPU31等により実行されるブラウザ210を有する。機器20のユーザは、ブラウザ210を用いて、「QRコード印刷サービス」等の各種サービスを利用することができる。すなわち、機器20は、ブラウザ210を有していれば良く、例えば、サービス提供システム10が提供する各種サービスを利用するための専用のアプリケーションプログラム等を有している必要はない。
図4に示すサービス提供システム10は、入出力サービス処理部110と、Webサービス処理部120と、ドキュメントサービス部130と、ポータルサービス部140と、アプリデータ管理部180とを有する。これら各機能部は、サービス提供システム10にインストールされた1以上のプログラムが、CPU16に実行させる処理により実現される。
また、サービス提供システム10は、アプリ情報記憶部150と、アプリ画面情報記憶部160と、ポータル画面情報記憶部170とを有する。これら各記憶部は、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が提供するサービスを実現する一連の処理(処理フロー)を実行する。これにより、本実施形態に係るサービス提供システムは、「機器情報送信サービス」等の各種サービスを提供することができる。なお、ロジック処理部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)の実行要求を送信する。
ドキュメントサービス部130は、処理フロー情報1100に基づく一連の処理(処理フロー)に含まれる所定の処理を実行する。ドキュメントサービス部130は、例えば、OCR処理部131、メール配信部132等を有する。
OCR処理部131は、電子ファイルに対してOCR処理を行う。メール配信部132は、電子ファイルを添付したメールを作成して、当該メールを指定されたメールアドレス宛に送信する。
なお、ドキュメントサービス部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に要求する。
アプリデータ管理部180は、ユーザとメタデータ情報1500とを紐付けるための処理、アプリケーションとメタデータ情報1500とを紐付けるための処理等を行う。ここで、アプリデータ管理部180は、UI提供部181と、アプリデータ登録部182とを有する。
UI提供部181は、ブラウザ310からの要求に応じて、ポータル画面情報記憶部171に記憶されているポータル画面情報3000を返信する。ここで返信されるポータル画面情報3000は、ブラウザ310を用いてメタデータの登録等を行うことができるWebサイトである。
ここでのポータル画面情報3000は、ポータルのトップ画面(ポータルトップ画面)と、メタデータ構造を設定するための画面とが定義された情報である。ポータル画面情報3000は、例えば、HTML、XML、CSS、JavaScript等のブラウザ210で各種画面が定義された情報である。
これにより、PC端末30には、ブラウザ310により、ポータルトップ画面と、メタデータを設定するための画面とが表示される。したがって、ユーザは、PC端末30を利用したユーザインターフェースを介してメタデータ構造を設定する操作を行うことができる。
アプリデータ登録部182は、UI提供部181からの要求に応じて、メタデータ構造の設定をアプリ管理部111に要求する。
アプリ情報記憶部150は、アプリ情報1000を記憶する。アプリ情報1000は、当該アプリ情報1000を識別するアプリIDと関連付けてアプリ情報記憶部150に記憶されている。なお、アプリIDは、例えば、アプリ情報1000のURL(Uniform Resource Locator)、又はアプリ情報1000のURLに含まれる識別情報等である。
ここで、アプリ情報1000には、処理フロー情報1100と、アプリ設定情報1200と、メタデータ情報1500とが紐付けられるように含まれている。例えば、QRコード印刷サービスを提供するアプリ情報1000には、当該サービスを実現する一連の処理が定義された処理フロー情報1100と、当該アプリ情報1000の各種設定が定義されたアプリ設定情報1200と、メタデータ構造を示すメタデータ情報1500とが含まれる。
なお、アプリ情報1000には、2以上の処理フロー情報1100と、2以上のアプリ設定情報1200と、2以上のメタデータ情報1500とが含まれていても良い。
処理フロー情報1100は、上述したように、アプリ情報1000により提供されるサービスを実現する一連の処理(処理フロー)が定義された情報である。
また、アプリ設定情報1200は、上述したように、アプリケーション(アプリ情報1000)の各種設定が定義された情報である。
また、メタデータ情報1500は、上述したように、メタデータ構造が定義された情報である。
アプリ画面情報記憶部160は、アプリ画面情報2000を記憶する。アプリ画面情報2000は、アプリIDと関連付けてアプリ画面情報記憶部160に記憶されている。
ポータル画面情報記憶部170は、ポータル画面情報3000を記憶する。ポータル画面情報3000は、ポータルトップ画面、アプリケーション登録画面等のURLと関連付けてポータル画面情報記憶部170に記憶されている。
なお、入出力サービス処理部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、翻訳コンポーネント1320、メール配信コンポーネント1330、バーコードコンポーネント1340、スタンプコンポーネント1350等が含まれる。
OCRコンポーネント1310は、電子ファイル(画像ファイル)をOCR処理するためのコンポーネントである。OCRコンポーネント1310は、ドキュメントサービス部130のOCR処理部131にOCR処理を要求することにより、電子ファイルのOCR処理を行う。
翻訳コンポーネント1320は、テキストファイル等の電子ファイルにおいて、所定の言語で記載されている文書を他の言語に翻訳するためのコンポーネントである。
メール配信コンポーネント1330は、指定されたメールアドレス宛にメール配信するためのコンポーネントである。メール配信コンポーネント1330は、ドキュメントサービス部130のメール配信部132もメール配信処理を要求することにより、指定されたメールアドレス宛にメールを送信する。
バーコードコンポーネント1340は、所定の情報を含むQRコード等を生成するためのコンポーネントである。
スタンプコンポーネント1350は、バーコードコンポーネント1340により生成されたQRコード等を印刷データ等に組み込むためのコンポーネントである。
このように、各コンポーネントは、所定の機能を実現する処理を実行する。なお、コンポーネント群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では、型変換の追加等に伴う開発工数を削減することができる。
<処理の詳細>
次に、本実施形態に係る情報処理システム1の処理の詳細について説明する。まず、PC端末30のユーザが、所望の処理フローを実現するアプリケーションをサービス提供システム10に登録する処理について、図7を参照しながら説明する。図7は、アプリケーションの登録処理の一例を示すシーケンス図である。
まず、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は、ポータルトップ画面のポータル画面情報を受信すると、当該ポータル画面情報に基づいて、例えば図8に示すポータルトップ画面G100を表示する(ステップS804)。
図8に示すポータルトップ画面G100は、ポータルのトップ画面であり、アプリケーションの登録を行うための「Application」ボタンG110が含まれる。以降では、ユーザが、図8に示すポータルトップ画面G100において、「Application」ボタンG110を選択する操作(アプリ登録の選択操作)を行ったものとする。
なお、図8に示すポータルトップ画面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は、アプリケーション登録画面のポータル画面情報を受信すると、当該ポータル画面情報に基づいて、図9〜図11に示すアプリケーション登録画面G200,G300,G400を表示し、ユーザによる設定情報の入力操作を受け付ける。本実施形態に係るブラウザ310は、先ず、図9に示す第1のアプリケーション登録画面G200を表示して、アプリケーションの選択を開始する(ステップS808)。第1のアプリケーション登録画面G200は、ユーザが登録するアプリケーションのタイプを選択するための画面である。
第1のアプリケーション登録画面G200には、プリントタイプのアプリケーションを登録するための「プリントタイプ」ボタンG210と、スキャンタイプのアプリケーションを登録するための「スキャンタイプ」ボタンG220と、スキャン&プリントタイプのアプリケーションを登録するための「スキャン&プリントタイプ」ボタンG230とが含まれる。なお、図9に示すアプリケーション登録画面G200には、例えば、FAXタイプのアプリケーションを登録するための「FAXタイプ」ボタン、メール受信タイプのアプリケーションを登録するための「メール受信タイプ」ボタン等が含まれていても良い。また、図9に示すアプリケーション登録画面G200には、次の画面に遷移するための「次へ」ボタンG240が含まれる。
なお、プリントタイプとは、一連の処理による実行結果を示す電子ファイルを画像形成装置等で印刷させるタイプのアプリケーションである。スキャンタイプとは、画像成装置等においてスキャンにより生成された電子ファイルを入力とした一連の処理を実行させるタイプのアプリケーションである。スキャン&プリントタイプとは、スキャンにより生成された電子ファイルを入力とした一連の処理を実行させると共に、当該一連の処理による実行結果を示す電子ファイルを印刷させるタイプのアプリケーションである。FAXタイプとは、一連の処理による実行結果を示す電子ファイルを画像形成装置等でFAX送信させるタイプのアプリケーションである。メール受信タイプとは、画像形成装置等が受信したメールに添付されている電子ファイルを入力とした一連の処理を実行させるタイプのアプリケーションである。
以降では、ユーザが、第1のアプリケーション登録画面G200において、「スキャン&プリントタイプ」ボタンG230を選択した上で、「次へ」ボタンG240を押下する操作を行ったものとする。すると、ブラウザ310は、当該操作を受け付けて、図10に示す第2のアプリケーション登録画面G300を表示する。
第2のアプリケーション登録画面G300には、スキャン実行時における設定(本例では用紙向き、片面・両面、読み取りカラーモード、読み取り解像度、及び読み取りサイズ)を入力するスキャン設定入力欄G310と、これらの設定内容をユーザが機器20の操作部を介して設定変更可能にするか否かを指定する設定変更可否指定欄G320と、次の画面に遷移するための「次へ」ボタンG350とが含まれている。ユーザが「次へ」ボタンG350を押下する操作を行うと、ブラウザ310は、当該操作を受け付けて、図11に示す第3のアプリケーション登録画面G400を表示する。
第3のアプリケーション登録画面G400には、プリント実行時における設定(本例では印刷部数、印刷カラーモード、及び印刷面)を入力するプリント設定入力欄G410と、これらの設定内容をユーザが機器20の操作部を介して設定変更可能にするか否かを指定する設定変更可否指定欄G420と、次の画面に遷移するための「次へ」ボタンG450とが含まれている。
ブラウザ310は、上記のようにアプリケーション登録画面G200,G300,G400を介してアプリケーションの登録操作を受け付けると(ステップS809)、当該登録操作により取得された設定情報に基づいて、アプリ設定情報1200を作成する(ステップS810)。アプリ設定情報1200は、上記のように選択されたアプリケーションタイプ及びフロー、並びにその他適宜な情報を関連付けた情報である。図12は、実施形態に係るアプリ設定情報1200のデータ構造の一例を示す図である。
ブラウザ310は、アプリ設定情報1200を作成すると、アプリケーションの登録要求を、ポータルサービス部140のアプリ登録部142に送信する(ステップS811)。なお、アプリケーションの登録要求には、ステップS810で作成されたアプリ設定情報1200が含まれる。
ポータルサービス部140のアプリ登録部142は、アプリケーションの登録要求を受信すると、当該登録要求を、入出力サービス処理部110のアプリ管理部111に送信する(ステップS812)。
入出力サービス処理部110のアプリ管理部111は、アプリケーションの登録要求を受信すると、アプリケーションを登録する(ステップS813)。そして、アプリ管理部111は、登録結果をブラウザ310に返信する。
すなわち、アプリ管理部111は、アプリケーションの登録要求に含まれるアプリ設定情報1200をアプリIDと関連付けてアプリ情報記憶部150に記憶する。これにより、当該アプリ設定情報1200と、当該アプリ設定情報1200のフロー名1205に定義されたフロー名の処理フロー情報1100とを含むアプリ情報1000がサービス提供システム10に登録される。
以上により、本実施形態に係る情報処理システム1では、ユーザがPC端末30を用いて、サービス提供システム10にアプリケーションを登録することができる。しかも、本実施形態に係る情報処理システム1では、ユーザがPC端末30を用いて、例えば、フロー名や各コンポーネントのパラメータ情報等を設定することで、容易にアプリケーション(アプリ情報1000)を登録することができる。
したがって、本実施形態に係る情報処理システム1によれば、例えば、プログラミング言語等の専門的な知識や経験を有しないユーザ(例えば、企画担当者等)であっても、各種サービスを提供するアプリケーション(アプリ情報1000)を登録することができる。
図13は、実施形態に係るサービス提供システム10に登録されたアプリケーションを利用する際の全体的な処理の一例を示すシーケンス図である。まず、機器20のブラウザ210は、所望のサービスに対応するアプリ画面を表示させるための操作(表示操作)を受け付ける(ステップS1601)。
ブラウザ210は、ユーザにより選択されたサービスのアプリ画面の表示操作を受け付けると、当該サービスのアプリ画面の表示要求を、Webサービス処理部120の画面構成部121に送信する(ステップS1602)。なお、当該表示要求には、選択されたサービスを提供するアプリ情報1000のアプリIDが含まれる。
Webサービス処理部120の画面構成部121は、選択されたサービスのアプリ画面の表示要求を受信すると、アプリ設定の取得要求を、入出力サービス処理部110のアプリ管理部111に送信する(ステップS1603)。なお、アプリ設定の取得要求には、選択されたサービスを提供するアプリ情報1000のアプリIDが含まれる。
入出力サービス処理部110のアプリ管理部111は、アプリ設定の取得要求を受信すると、当該取得要求に含まれるアプリIDに関連付けて記憶されているアプリ設定情報1200をアプリ情報記憶部150から取得する(ステップS1604)。そして、アプリ管理部111は、アプリ情報記憶部150から取得したアプリ設定情報1200を画面構成部121に返信する。
次に、Webサービス処理部120の画面構成部121は、選択されたサービスを提供するアプリ情報1000のアプリIDと関連付けて記憶されているアプリ画面情報2000をアプリ画面情報記憶部160から取得する(ステップS1605)。そして、画面構成部121は、アプリ画面情報記憶部160から取得したアプリ画面情報2000と、上記のステップS1604で返信されたアプリ設定情報1200とをブラウザ210に返信する。
ブラウザ210は、画面構成部121から受信したアプリ画面情報2000とアプリ設定情報1200とに基づいて、機器20を使用するユーザが選択したサービスに対応するアプリケーションを利用するためのアプリ画面を表示する(ステップS1606)。
図14は、実施形態に係るQRコード印刷アプリケーションを利用する際のアプリ画面G500の一例を示す図である。図14に示すアプリ画面G500には、QRコードに埋め込む文字列を入力するための文字列入力欄G510と、QRコードを印刷する印刷媒体上の位置を指定するための位置指定欄G520と、読み取り設定を行うための「読取り設定」ボタンG530と、印刷設定を行うための「印刷設定」ボタンG540と、QRコード印刷アプリケーションの実行を開始させるための「スタート」ボタンG580とが含まれている。
このように、本実施形態に係るアプリ画面G500は、アプリ設定情報1200に定義されている情報に基づいて、QRコード印刷に関する各種設定を行えるように構成される。
アプリ画面G500の「スタート」ボタンG580を押下する操作(実行操作)が行われると、ブラウザ210は、実行操作を受け付ける(ステップS1607)。
ブラウザ210は、実行操作を受け付けると、スキャナ26を制御して原稿を読み取ることで、電子ファイル(画像ファイル)を生成する(ステップS1608)。ブラウザ210は、電子ファイル(画像ファイル)が生成されると、アプリケーションの実行要求を、Webサービス処理部120のアプリ実行部122に送信する(ステップS1609)。アプリ実行部122は、アプリケーションの実行要求を受信すると、当該実行要求を入出力サービス処理部110のロジック処理部112に送信する(ステップS1610)。
入出力サービス処理部110のロジック処理部112は、アプリケーションの実行要求を受信すると、処理フローの実行処理を行う(ステップS1611)。すなわち、ロジック処理部112は、当該要求に含まれるフロー名の処理フロー情報1100に基づく処理フローを実行する。
そして、ロジック処理部112は、処理フローの実行処理の処理結果を、Webサービス処理部120を介して、ブラウザ210に返信する。これにより、本実施形態に係るサービス提供システム10は、ユーザにより所望されたサービスを提供することができる。
図15は、実施形態に係るQRコード印刷アプリケーションにおける処理フローの一例を示すシーケンス図である。クライアント200から入力されたファイル(フロー1、ストリームデータ)は、ロジック処理部112のフロー実行部301に送信される(S1701)。フロー実行部301は、受信したファイルから処理内容(フロー1)を取得し、取得した処理内容をアプリ管理部111に送信する(S1702)。アプリ管理部111は、処理内容をフロー実行部301に返信する。
フロー実行部301がコンポーネント取得(変換)をコンポーネント管理部302に要求すると(S1703)、コンポーネント管理部302はバーコードコンポーネント1340を生成し(S1704)、バーコードコンポーネントをフロー実行部301に返信する。
フロー実行部301は、コンポーネント処理実行(データ)をバーコードコンポーネント1340に要求する(S1705)。バーコードコンポーネント1340は、フロー実行部301からの要求を受信すると、型変換要求(データ、ローカルファイルパス)を型変換管理部304に送信する(S1706)。型変換管理部304は、型変換要求を受信すると、データ型チェックを行い、型変換定義/処理(ストリーム→ローカルファイルパス)210を生成する(S1707)。
型変換管理部304は、型変換定義/処理210に対して型変換処理を実行すると(S1708)、型変換定義/処理210は、処理を実行し、データを型変換管理部304に返信する。その後、型変換管理部304は、ローカルファイルパスをバーコードコンポーネント1340に送信し、バーコードコンポーネント1340は、ローカルパスを受信すると、処理を実行し、データをフロー実行部301に返信する。
フロー実行部301は、バーコードコンポーネント1340からデータの返信を受けると、コンポーネント取得(メール配信)をバーコードコンポーネント1340に要求する(S1709)。バーコードコンポーネント1340は、フロー実行部301からの要求を受信すると、スタンプコンポーネント1350を生成し(S1710)、スタンプコンポーネント1350をフロー実行部301に返信する。
フロー実行部301は、コンポーネント処理実行(データ、パラメータ)をスタンプコンポーネント1350に要求する(S1711)。スタンプコンポーネント1350は、フロー実行部301からの要求を受信すると、型変換要求(データ、ローカルファイルパス)を型変換管理部304に送信する(S1712)。型変換管理部304は、型変換要求を受信すると、データ型チェックを行い、ローカルファイルパスをスタンプコンポーネント1350に返信する。スタンプコンポーネント1350は、ローカルファイルパスを受信すると、処理を実行し、フロー実行部301を介してデータをクライアント200へ返信する。
<メタデータ構造の設定>
次に、メタデータ構造の設定について説明する。クラウドストレージ等の外部サービスにスキャンにより生成された電子ファイル(画像データ)等を保存するアプリケーションにおいて、電子ファイルに対して、文字、数字等のテキストデータをメタデータとして付随させてアップロードすることができる。図16は、外部サービスにおけるメタデータ2500のデータ構造の一例を示す図である。メタデータ構造とは、メタデータの形式やフォーマット、データ内容等に関する情報である。
このような外部サービスに電子ファイルを保存するスキャンアプリにおいては、アプリケーション実行画面において、カテゴリを選択したり、備考をテキスト入力したりすることで、スキャン結果にメタデータを付随させたデータを外部サービスにアップロードすることができる。アプリケーション実行画面におけるそれらのメタデータの入力は、サービス提供システム10が有するアプリケーション作成ツールにおいてアプリケーションを作成する際にメタデータ構造の設定を行うことで実現できる。
一方で、上記のアプリケーション作成ツールにおいては、メタデータの構造がアプリケーション作成時点で決定されなければならず、ユーザによってメタデータ構造が異なる場合に、メタデータ構造毎に個別のアプリケーション作成となる。そこでより好ましくは、本実施形態に係るサービス提供システム10では、ユーザとメタデータ構造との関係、メタデータ構造とアプリケーションとの関係等を管理する機能を有するアプリデータ管理部180を備えることにより、アプリケーション作成後であってもメタデータ構造に関する設定を変更できるよう構成されている。
図17は、実施形態においてメタデータ構造をアプリデータ管理部180に登録する処理の一例を示すシーケンス図である。先ず、アプリケーション作成者が適宜な情報処理装置(PC端末30等)を介してポータルサービス部140のUI提供部141にアクセスしてアプリケーション作成要求を行う(S2001)。当該要求はアプリ登録部142に送信され(S2002)、アプリケーションがメタデータ構造設定を保つ場合は、さらにアプリデータ管理部180のアプリデータ登録部182にメタデータ構造登録要求が送信され(S2003)、アプリデータ登録部182はメタデータ構造を登録する(S2004)。これにより、アプリデータ管理部180は、各アプリケーションのメタデータ構造設定を参照できるようになる。
図18は、実施形態においてメタデータ構造設定を含むアプリケーション設定を更新する処理の一例を示すシーケンス図である。先ず、アプリケーション利用者は、適宜な情報処理装置(機器20等)を介してアプリデータ管理部180のUI提供部181にアクセスし、アプリケーション設定の表示を要求する(S2101)。UI提供部181は、当該要求に基づいてアプリデータ登録部182に対してメタデータ構造設定を含むアプリデータ要求を送信する(S2102)。UI提供部181は、アプリデータ登録部182から返信されたアプリデータに基づいてアプリケーション設定画面を表示する。
図19は、実施形態に係る第1のアプリケーション設定画面G600の一例を示す図である。図20は、実施形態に係る第2のアプリケーション設定画面G700の一例を示す図である。
第1のアプリケーション設定画面G600には、メタデータ構造の設定を変更させるための「フォームの編集」ボタンG610と、審査者を入力するための審査者入力欄G620と、承認者を入力するための承認者入力欄G630と、設定を保存するための「保存」ボタンG650と、当該設定をキャンセルさせるための「キャンセル」ボタンG660とを含んでいる。
第2のアプリケーション設定画面G700は、第1のアプリケーション設定画面G600の「フォームの編集」ボタンG610を押下する操作がなされた場合に表示される。第2のアプリケーション設定画面G700には、メタデータ構造を構成する各パラメータを設定するパラメータ設定入力部G710と、入力された設定内容を確定させるための「設定」ボタンG750と、当該設定をキャンセルさせるための「キャンセル」ボタンG760とが含まれている。
アプリケーション利用者は、上記のようなアプリケーション設定画面G600,G700を用いてアプリケーション設定を変更する操作を行い(S2103)、メタデータ構造設定を含むアプリケーション設定の更新要求を行う(S2104)。UI提供部181は、アプリケーション設定の更新要求を受信すると、アプリデータ登録部182にアプリデータ更新要求を送信する(S2105)。これにより、アプリケーション利用者が設定したメタデータ構造設定を含むアプリデータを登録することができる。図21は、実施形態に係るメタデータ構造設定の一例を示す図である。
図22は、実施形態においてメタデータ構造をアプリデータ管理部180に登録したアプリケーションを利用する処理の一例を示すシーケンス図である。アプリケーション利用者が機器20の操作部を介してアプリケーションを起動する要求を行うと(S2201)、当該要求はWebサービス処理部120の画面構成部121を介してアプリ実行部122に送信される(S2202)。アプリ実行部122は、当該アプリケーション起動要求を受信すると、アプリデータ登録部182にメタデータ構造設定を含むアプリデータの参照要求を行う(S2203)。アプリケーションがアプリデータを取得して画面構成部121によりメタデータ構造設定が反映されたUI(アプリケーションの画面)が構築され、アプリケーション利用者は各人に応じたメタデータ設定でアプリケーションを利用できるようになる(S2204)。
上記実施形態によれば、アプリケーション作成後であってもアプリケーション利用者がメタデータ構造を変更あるいは更新することができる。これにより、メタデータ構造毎に個別のアプリケーションを作成する必要がなくなる。また、アプリケーション開発者の誤入力によるアプリケーション作成の手戻りを防ぐ他、アプリケーション利用者側でメタデータの変更あるいは更新が必要な場合に、アプリケーション開発者への依頼なしに対応することが可能となる。これにより、アプリケーションやメタデータに関する設定を柔軟に行うことが可能となる。
<第1の変形例>
以下に、上記実施形態の第1の変形例について説明する。本変形例に係るアプリデータ管理部180は、1つのアプリケーションにおいて、同じ外部サービスに対して複数のメタデータ構造を登録することができるように構成される。
図23は、第1の変形例に係るアプリケーション設定画面G800の一例を示す図である。本変形例に係るアプリケーション設定画面G800には、複数のフォームの中から1つのフォームを選択するためのフォーム選択部G810と、選択されたフォームに紐付けられたメタデータ構造の設定を変更させるための「編集」ボタンG820と、フォームを追加するための「フォームの追加」ボタンG830と、審査者を入力するための審査者入力欄G840と、承認者を入力するための承認者入力欄G850と、設定を保存するための「保存」ボタンG880と、当該設定をキャンセルさせるための「キャンセル」ボタンG890とを含んでいる。
上記のようなアプリケーション設定画面G800を利用してフォーム毎にメタデータ構造を設定及び登録することで、アプリケーション利用者は、アプリケーション利用時に、複数のメタデータ構造の中から所望のメタデータ構造を選択して使用することができる。
<第2の変形例>
本変形例に係るサービス提供システム10は、外部サービスからメタデータ構造を設定するためのファイル(メタデータ設定ファイル)を取得し、取得したメタデータ設定ファイルをアプリデータ管理部180にインポートする手段を有している。
図24は、第2の変形例におけるアプリケーションの登録時におけるメタデータ構造登録処理の一例を示すシーケンス図である。先ず、ユーザ(アプリケーション開発者又はアプリケーション利用者)は、適宜な情報処理装置(機器20又はPC端末30等)を介して外部サービス500に対してメタデータ設定ファイルの取得を要求し(S3001)、外部サービス500からメタデータ設定ファイルの返信を受ける。その後、ユーザがアプリデータ管理部180のUI提供部181に対して、メタデータ構造の登録を含むアプリケーション設定画面の取得を要求すると(S3002)、UI提供部181は、その応答として、アプリケーション設定画面をユーザが使用する情報処理装置に表示させる。
ユーザがアプリケーション設定画面上でメタデータ設定ファイルをインポートする操作を行うと(S3003)、UI提供部181は、メタデータ設定ファイルをアプリデータ登録部182にインポートする(S3004)。アプリデータ登録部182は、メタデータ設定ファイルを受信すると、アプリケーションの設定に必要なメタデータを取得し(S3005)、その処理結果をUI提供部181に返信する。UI提供部181は、処理結果を反映させたアプリケーション設定画面を生成し(S3006)、当該アプリケーション設定画面をユーザが使用する情報処理装置に表示させる。図25は、メタデータ設定ファイルのインポートを行った際の処理結果情報のデータ構造の一例を示す図である。
上記のように、メタデータ構造を設定するためのファイルをインポート可能に構成することにより、メタデータ構造の登録処理をより簡便に行うことができ、利便性を向上させることができる。
<第3の変形例>
本変形例に係るサービス提供システム10は、予め登録したアプリケーション(処理フロー)の実行時において、外部サービス500内の記憶領域毎に定義されたメタデータ構造を示す外部メタデータ情報を取得し、外部メタデータ情報を利用して、アプリケーションの実行時におけるメタデータの設定を支援する手段を有している。本変形例では、外部サービスがスキャンデータ等の各種データを複数の情報処理装置(機器20、PC端末30等)間で共有するデータ共有機能を提供するものであることを想定している。本変形例に係るWebサービス処理部120は、取得した外部メタデータ情報に基づいて、アプリケーションの実行時におけるメタデータの設定を支援し得るアプリ画面情報を生成する。
図26は、第3の変形例に係るアプリケーションの実行時におけるメタデータの設定処理の一例を示すシーケンス図である。ユーザ(アプリケーション利用者等)が機器20を操作してアプリケーション(事前に登録した処理フロー)を選択すると(S4001)、機器20のブラウザ210は、選択されたアプリケーションに対応するアプリ画面の表示をWebサービス処理部120の画面構成部121に対して要求する(S4002)。
画面構成部121は、ブラウザ210からの表示要求に基づいて、ユーザにより選択されたアプリケーションに対応する設定(アプリ設定情報1200)の取得を入出力サービス処理部110のアプリ管理部111に対して要求する(S4003)。アプリ管理部111は、画面構成部121からの取得要求に基づいて、アプリ情報記憶部150から適切なアプリ設定情報1200を取得し(S4004)、取得したアプリ設定情報1200を画面構成部121に送信する(S4005)。
画面構成部121は、アプリ管理部111から受信したアプリ設定情報1200に基づいて、アプリ画面情報記憶部160からアプリ画面情報2000を取得する(S4006)。画面構成部121は、取得したアプリ設定情報1200及びアプリ画面情報2000を機器20のブラウザ210に送信する(S4007)。ブラウザ210は、受信したアプリ設定情報1200及びアプリ画面情報2000に基づいて、ユーザが選択したアプリケーションを実行するためのアプリ画面を表示する(S4008)。
図27は、第3の変形例に係るスキャンデータアップロードアプリケーションを利用する際のアプリ画面G900の一例を示す図である。本変形例に係るアプリケーション(処理フロー)は、スキャナで画像を読み取ることにより取得された画像データ(ファイル)を外部サービス500のライブラリ(配信先フォルダ)にアップロードする、スキャンデータアップロードアプリケーションである。図27に示すアプリ画面G900には、配信先フォルダを設定するための配信先設定部G910と、アップロードするファイルのファイル名を設定するためのファイル名設定部G920と、ファイルをアップロードする際に当該ファイルに付随されるメタデータを設定するためのメタデータ設定部G930と、ファイルのアップロードを開始するための「スタート」ボタンG940とが含まれている。
図28は、第3の変形例に係る外部サービス500におけるメタデータ構造を示す外部サービス画面G1000の一例を示す図である。外部サービス画面G1000には、ライブラリ表示部G1010、配信先フォルダ表示部G1020、及びメタデータ表示部G1030が含まれている。メタデータ表示部G1030には、デフォルト定義部G1050、ユーザ定義部G1060、及び変更部G1070が含まれている。
図28に例示する外部サービス画面G1000は、「Healthcare」ライブラリには、ファイルをアップロードした日を示す「Modified」、ファイルをアップロードしたユーザを示す「Modified By」、患者を特定する「PatientID」、診療科を特定する「Department」、及びファイルのタイプを特定する「DocumentType」の5つのメタデータからなるメタデータ構造が定義付けられていることを示している。当該5つのメタデータのうち、「Modified」及び「Modified By」は全てのライブラリに共通のものであり、「PatientID」、「Department」、及び「DocumentType」はユーザ(外部サービス500の管理者等)が変更部G770を操作することにより任意に変更され得るものである。
本変形例においては、上記のようなメタデータ構造がライブラリ毎に定義されている。例えば、「Invoice」ライブラリには、「Healthcare」ライブラリとは異なるメタデータ構造が定義されている。「Invoice」ライブラリには、例えば、「Modified」、「Modified By」、請求書番号を示す「InvoceNumber」、事業者を特定する「Vendor」、部署を特定する「DepartmentCode」等からなるメタデータ構造が定義付けられていてもよい。
図26に戻り、ユーザがアプリ画面G1000の配信先設定部G1010を操作して配信先フォルダ(ライブラリを含む)を選択すると(S4009)、ブラウザ210は、ユーザにより選択された配信先フォルダの設定をWebサービス処理部120の画面構成部121に要求する(S4010)。画面構成部121は、ブラウザ210からの要求に基づいて、選択された配信先フォルダが設定された状態となるようにアプリ画面G900のアプリ画面情報2000を更新し(S4011)、更新されたアプリ画面情報2000をブラウザ210に送信する(S4012)。ブラウザ210は、更新されたアプリ画面情報20000に基づいて、選択された配信先フォルダが設定された状態のアプリ画面G900を表示する(S4013)。
その後、ユーザは、ブラウザ210に表示されているアプリ画面G900を介して、ステップS4009で選択した配信先フォルダが属するライブラリに対応するメタデータを設定するための操作を行う(S4014)。ブラウザ210は、ユーザによる操作に応じて、選択された配信先フォルダが属するライブラリに対応するメタデータの設定をWebサービス処理部120の画面構成部121に要求する(S4015)。画面構成部121は、ブラウザ210からの要求に基づいて、選択された配信先フォルダが属するライブラリに定義付けられたメタデータ構造を示す外部メタデータ情報の取得を、入出力サービス処理部110のロジック処理部112に対して要求する(S4016)。
ロジック処理部112は、画面構成部121からの要求に基づいて、選択された配信先フォルダが属するライブラリに定義付けられたメタデータ構造を示す外部メタデータ情報を、外部サービス500から取得(インポート)し(S4017)、取得した外部メタデータ情報を画面構成部121に送信する(S4018)。画面構成部121は、ロジック処理部112から受信した外部メタデータ情報に基づいて、選択された配信先フォルダが属するライブラリに対応するメタデータが設定されたアプリ画面G900を構成するアプリ画面情報2000を生成してブラウザ210に送信する(S4019)。ブラウザ210は、画面構成部121から受信したアプリ画面情報に基づいて、選択された配信先フォルダが属するライブラリに対応するメタデータが設定されたアプリ画面G900を表示する(S4020)。
図29は、第3の変形例に係るアプリ画面G900においてメタデータが設定された状態の第1の例を示す図である。図30は、第3の変形例に係るアプリ画面G900においてメタデータが設定された状態の第2の例を示す図である。
図29に示す第1の例は、配信先フォルダとして「Healthcare」ライブラリ内の「test」フォルダが選択され、ユーザによる定義が可能なメタデータとして「PatientID」、「Department」、及び「DocumentType」が設定された状態を示している。図30に示す第2の例は、配信先フォルダとして「Invoice」ライブラリ内の「test」フォルダが選択され、ユーザによる定義が可能なメタデータとして「InvoceNumber」、「Vendor」、及び「DepartmentCode」が設定された状態を示している。上記メタデータの設定は、例えば、ユーザがアプリ画面G900内の配信先設定部G910に所望のライブラリ及びフォルダを入力した後、メタデータ設定部G930を画面上でクリックする操作等を行うことにより、自動的に行われるようにすることができる。また、ユーザがアプリ画面G900内の配信先設定部G910に所望のライブラリ及びフォルダを入力又は選択することにより、メタデータを取得して設定させるようにしてもよい。
以上のように、外部サービス500内で定義されたメタデータ構造を示す外部メタデータ情報を利用することにより、アプリケーションの実行時におけるメタデータの設定をより簡便に行うことができ、利便性を向上させることができる。
以上、本発明の実施形態を説明したが、上記実施形態は例として提示したものであり、発明の範囲を限定することを意図するものではない。この新規な実施形態はその他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で種々の省略、置き換え、変更、及び組み合わせを行うことができる。この実施形態及びその変形は発明の範囲及び要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。