以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
<システム構成>
まず、本実施形態に係る情報処理システム1のシステム構成について、図1を参照しながら説明する。図1は、本実施形態に係る情報処理システム1のシステム構成の一例を示す図である。
図1に示す情報処理システム1は、サービス提供システム10と、機器20と、PC端末30と、外部ストレージシステム40とを含み、インターネット等の広域的なネットワークN1を介して通信可能に接続されている。
サービス提供システム10は、一台以上の情報処理装置で実現され、ネットワークN1を介して、クラウドサービス等の外部サービスと連携した一連の処理により実現される各種のサービスを提供する。
本実施形態に係るサービス提供システム10が提供するサービスの具体例については後述する。なお、以降では、一連の処理を「処理フロー」とも表す。
なお、本実施形態では、外部サービスの具体例としてクラウドサービスを採用して説明するが、これに限られない。本実施形態は、例えば、ASP(Application Service Provider)によって提供されるサービスやWebサービス等のネットワークを介して提供される各種の外部サービスに関して適用されても良い。
機器20は、ユーザが使用する各種の電子機器である。すなわち、機器20は、例えば、MFP(Multifunction Peripheral)等の画像形成装置、PC(パーソナルコンピュータ)、プロジェクタ、電子黒板、デジタルカメラ等である。ユーザは、機器20を用いて、サービス提供システム10が提供する各種のサービスを利用することができる。
なお、以降では、複数の機器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により提供される各種サービスを利用しても良い。
<ハードウェア構成>
次に、本実施形態に係る情報処理システム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が画像形成装置であるものとして説明する。
本実施形態では、外部ストレージシステム40に格納されているファイルの一覧を取得した上で、ユーザにより選択されたファイルをダウンロードして、機器20で印刷するサービスを「外部ファイル印刷サービス」と表す。そして、本実施形態では、サービス提供システム10が外部ファイル印刷サービスを提供する場合について説明する。
サービス提供システム10が外部ファイル印刷サービスを提供するには、機器20が外部ファイル印刷サービスを利用するためのアプリケーション(後述するアプリ情報1000)をサービス提供システム10に登録する必要がある。
したがって、本実施形態では、外部ファイル印刷サービスを利用するためのアプリケーション(以降では、「外部ファイル印刷アプリケーション」とも表す。)をPC端末30が登録する場合と、外部ファイル印刷サービスを機器20が利用する場合とを説明する。
ここで、本実施形態に係る外部ファイル印刷アプリケーションは、図4に示すように、1以上の画面と、1以上の処理フローとが含まれるものとする。
すなわち、外部ファイル印刷アプリケーションは、ユーザがフォルダを選択するためのフォルダ選択画面と、選択されたフォルダに格納されているファイルの一覧を取得するための処理フロー(ファイル一覧取得フロー)とが対応付けられている。また、外部ファイル印刷アプリケーションは、ファイル一覧取得フローで取得されたファイル一覧を表示するためのファイル一覧画面と、当該画面で選択されたファイルをダウンロードするための処理フロー(ファイルダウンロードフロー)とが対応付けられている。更に、外部ファイル印刷アプリケーションは、ファイルダウンロードフローでダウンロードされたファイルのプレビュー表示するためのプレビュー画面が含まれる。ユーザは、プレビュー画面にプレビュー表示されているファイルを機器20で印刷することができる。なお、プレビュー画面には、処理フローは対応付けられていない。
このように、サービス提供システム10に登録されるアプリケーションには、1以上の画面を含めることができると共に、当該画面を用いて実行させることができる処理フローを含めることができる。
なお、サービス提供システム10により提供されるサービスは、外部ファイル印刷サービスに限られない。サービス提供システム10は、例えば、機器20において原稿をスキャンすることにより生成された電子ファイルを暗号化した上で、メール配信するサービスを提供しても良い。
同様に、サービス提供システム10は、例えば、機器20において原稿をスキャンすることにより生成された電子ファイルに所定の情報を付加した上で、FAX送信するサービスを提供しても良い。
<機能構成>
次に、本実施形態に係る情報処理システム1の機能構成について、図5を参照しながら説明する。図5は、本実施形態に係る情報処理システム1の機能構成の一例を示す図である。
図5に示すPC端末30は、例えばCPU16等により実行されるブラウザ310を有する。PC端末30のユーザは、ブラウザ310を用いて、「外部ファイル印刷サービス」等の各種サービスを利用するためのアプリケーションをサービス提供システム10に登録することができる。
図5に示す機器20は、例えばCPU31等により実行されるブラウザ210を有する。機器20のユーザは、ブラウザ210を用いて、「外部ファイル印刷サービス」等の各種サービスを利用することができる。すなわち、機器20は、ブラウザ210を有していれば良く、例えば、サービス提供システム10が提供する各種サービスを利用するための専用のアプリケーションプログラム等を有している必要はない。
図5に示すサービス提供システム10は、入出力サービス処理部110と、Webサービス処理部120と、ドキュメントサービス部130と、ポータルサービス部140とを有する。これら各機能部は、サービス提供システム10にインストールされた1以上のプログラムが、CPU16に実行させる処理により実現される。
また、サービス提供システム10は、アプリ情報記憶部150と、アプリ画面情報記憶部160と、ポータル画面情報記憶部170と、レイアウト情報記憶部180と、コンポーネント詳細情報記憶部190とを有する。これら各記憶部は、HDD18を用いて実現可能である。なお、これら各記憶部のうちの少なくとも1つの記憶部が、サービス提供システム10とネットワークを介して接続される記憶装置等を用いて実現されていても良い。
入出力サービス処理部110は、サービス提供システム10が提供するサービスに関する処理を行う。ここで、入出力サービス処理部110は、アプリ管理部111と、ロジック処理部112と、レイアウト管理部113と、処理情報管理部114とを有する。
アプリ管理部111は、アプリ情報記憶部150に記憶されているアプリ情報1000を管理する。なお、アプリ情報1000とは、一連の処理により実現されるサービスを利用するためのアプリケーションである。換言すれば、サービス提供システム10が提供する各種サービスは、アプリ情報1000により提供される。
また、アプリ管理部111は、ロジック処理部112からの要求に応じて、アプリ情報1000に含まれる処理フロー情報1100を返信する。なお、処理フロー情報1100とは、アプリ情報1000により提供されるサービスを実現する一連の処理が定義された情報である。処理フロー情報1100の詳細については後述する。
更に、アプリ管理部111は、ポータルサービス部140からの要求に応じて、アプリ情報1000をアプリ情報記憶部150に記憶させる。これにより、サービスを提供するアプリ情報1000(アプリケーション)がサービス提供システム10に登録される。
ロジック処理部112は、Webサービス処理部120からの要求に応じて、アプリ情報1000に含まれる処理フロー情報1100をアプリ管理部111から取得する。そして、ロジック処理部112は、アプリ管理部111から取得した処理フロー情報1100に基づいて、当該アプリ情報1000が提供するサービスを実現する一連の処理(処理フロー)を実行する。これにより、本実施形態に係るサービス提供システム10は、「外部ファイル印刷サービス」等の各種サービスを提供することができる。なお、ロジック処理部112の詳細については後述する。
レイアウト管理部113は、レイアウト情報記憶部180に記憶されているレイアウト情報を管理する。なお、レイアウト情報とは、アプリ情報1000により提供されるサービスを利用するための画面(アプリ画面)のレイアウトに関する情報である。レイアウト情報の詳細については後述する。
また、レイアウト管理部113は、ユーザがアプリケーションを登録する場合において、ブラウザ310からの要求に応じて、ユーザが選択可能なレイアウトのレイアウト情報をレイアウト情報記憶部180から取得する。
処理情報管理部114は、コンポーネント詳細情報記憶部190に記憶されているコンポーネント詳細情報5000を管理する。なお、コンポーネント詳細情報5000とは、処理フローに含まれる各処理を実行するコンポーネントに関する情報である。コンポーネント詳細情報5000の詳細については後述する。
また、処理情報管理部114は、コンポーネント詳細情報記憶部190に記憶されているコンポーネント詳細情報5000を参照して、ユーザにより選択された処理フロー情報1100の出力形式を特定する。出力形式とは、処理フロー情報1100に基づく一連の処理が出力する処理結果のデータ形式のことである。出力形式には、例えば、ファイル一覧等のデータのリストを示す「list」、電子ファイルを示す「file」等がある。
Webサービス処理部120は、ユーザが機器20のブラウザ210を用いて各種サービスを利用するための処理を行う。すなわち、Webサービス処理部120は、ブラウザ210に対してWebアプリケーション(アプリ情報1000)を提供するアプリケーションサーバとして機能する。ここで、Webサービス処理部120は、画面構成部121と、アプリ実行部122とを有する。
画面構成部121は、ブラウザ210からの要求に応じて、アプリ画面情報記憶部160に記憶されているアプリ画面情報2000と、アプリ情報記憶部150に記憶されているアプリ設定情報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等を有する。
OCR処理部131は、電子ファイルに対してOCR処理を行って、OCR処理で認識されたテキストを付与したPDF(Portable Document Format)ファイルを作成する。
なお、ドキュメントサービス部130には、これら以外にも、例えば、電子ファイルを圧縮又は解凍するための圧縮・解凍処理部、電子ファイルのファイル形式等を変換するためのファイル形式変換部等、種々の機能部が含まれていても良い。
ポータルサービス部140は、ユーザがPC端末30のブラウザ310を用いてアプリケーションの登録等を行うための処理を行う。ここで、ポータルサービス部140は、UI提供部141と、アプリ登録部142とを有する。
UI提供部141は、ブラウザ310からの要求に応じて、ポータル画面情報記憶部170に記憶されているポータル画面情報3000を返信する。ここで、ポータルとは、ブラウザ310を用いて、アプリケーションの登録等を行うことができるWebサイトである。
なお、ポータル画面情報3000とは、ポータルの各種画面(例えば、ポータルのトップ画面やアプリケーション登録画面等)が定義された情報である。ポータル画面情報3000は、例えば、HTML、XML、CSS、JavaScript等で各種画面が定義された情報である。
これにより、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には、1以上の処理フロー情報1100と、アプリ設定情報1200とが含まれる。
例えば、外部ファイル印刷サービスを提供するアプリ情報1000(外部ファイル印刷アプリケーション)には、ファイル一覧取得フローが定義された処理フロー情報1100と、ファイルダウンロードフローが定義された処理フロー情報1100とが含まれる。また、外部ファイル印刷サービスを提供するアプリ情報1000には、当該アプリ情報1000の各種設定が定義されたアプリ設定情報1200が含まれる。
なお、アプリ情報1000には、2以上のアプリ設定情報1200が含まれていても良い。
処理フロー情報1100は、上述したように、アプリ情報1000により提供されるサービスを実現する一連の処理(処理フロー)が定義された情報である。処理フロー情報1100の詳細については後述する。
また、アプリ設定情報1200は、上述したように、アプリケーション(アプリ情報1000)の各種設定が定義された情報である。アプリ設定情報1200の詳細については後述する。
アプリ画面情報記憶部160は、アプリ画面情報2000を記憶する。アプリ画面情報2000は、アプリIDと関連付けてアプリ画面情報記憶部160に記憶されている。なお、アプリ画面情報記憶部160では、1つのアプリIDに対して、1以上のアプリ画面情報2000が関連付けられている。例えば、外部ファイル印刷アプリケーションのアプリIDには、フォルダ選択画面のアプリ画面情報2000と、ファイル一覧画面のアプリ画面情報2000と、プレビュー画面のアプリ画面情報2000とが関連付けられている。
ポータル画面情報記憶部170は、ポータル画面情報3000を記憶する。ポータル画面情報3000は、アプリケーション登録画面等のURLと関連付けてポータル画面情報記憶部170に記憶されている。
レイアウト情報記憶部180は、レイアウト情報を記憶する。コンポーネント詳細情報記憶部190は、コンポーネント詳細情報5000を記憶する。
なお、入出力サービス処理部110、Webサービス処理部120、ドキュメントサービス部130、及びポータルサービス部140等は、それぞれが異なる情報処理装置により実現されていても良い。
ここで、ロジック処理部112の詳細な機能構成について、図6を参照しながら説明する。図6は、本実施形態に係るロジック処理部112の機能構成の一例を示す図である。
図6に示すロジック処理部112は、フロー実行部301と、コンポーネント管理部302と、コンポーネント群303と、型変換管理部304と、型変換群305とを有する。
フロー実行部301は、アプリ実行部122からアプリケーションの実行要求を受信すると、当該実行要求に対応する処理フロー情報1100をアプリ管理部111から取得する。そして、フロー実行部301は、アプリ管理部111から取得した処理フロー情報1100に基づく一連の処理(処理フロー)を実行する。
ここで、処理フロー情報1100に基づく一連の処理は、当該一連の処理に含まれる各処理を実行するためのコンポーネントを組み合わせることにより実行される。なお、コンポーネントは、所定の機能を実現する処理を実行するためのプログラムやモジュール等により実現され、例えばクラスや関数等で定義される。
コンポーネント管理部302は、コンポーネントを管理する。コンポーネント管理部302は、フロー実行部301からの要求に応じて、コンポーネントを生成すると共に、生成したコンポーネントをフロー実行部301に返信する。なお、コンポーネントの生成とは、例えばクラスや関数等で定義されたコンポーネントを、メモリ(例えばRAM14)上に展開することである。
コンポーネント群303は、コンポーネントの集合である。コンポーネント群303には、外部ストレージコンポーネント1310と、バーコードコンポーネント1320とが含まれる。
外部ストレージコンポーネント1310は、予め設定された外部ストレージシステム40に格納されているファイル一覧の取得やファイルのダウンロード、外部ストレージシステム40へのファイルのアップロード等を行うためのコンポーネントである。
バーコードコンポーネント1320は、電子ファイルに対してバーコード等を付与するためのコンポーネントである。
このように、各コンポーネントは、所定の機能を実現する処理を実行する。なお、コンポーネント群303には、上記のコンポーネント以外にも、例えば、電子ファイルの暗号化や復号を行うための暗号化・復号コンポーネント、電子ファイルを圧縮するための圧縮コンポーネント等の各種のコンポーネントが含まれる。
また、コンポーネント群303に含まれる各コンポーネントは、コンポーネント共通I/F1300を有する。コンポーネント共通I/F1300は、各コンポーネントに対して共通に定義されたAPI(Application Programming Interface)であり、コンポーネントを生成するためのAPIと、コンポーネントの処理を実行するためのAPIとが含まれる。
このように、各コンポーネントがコンポーネント共通I/F1300を有することで、コンポーネントの追加等に伴う影響を局所化することができる。すなわち、例えば、フロー実行部301やコンポーネント管理部302等に影響を与えることなく、コンポーネントの追加等を行うことができる。これにより、本実施形態に係るサービス提供システム10では、所定の機能の追加等(すなわち、当該機能を実現する処理を実行するためのコンポーネントの追加等)に伴う開発工数を削減することができる。
型変換管理部304は、データ型の型変換を管理する。ここで、各コンポーネントは、自身が扱えるデータ型が予め決まっている。したがって、型変換管理部304は、コンポーネントからの要求に応じて、例えば図7に示す型変換情報テーブル4000を参照して、型変換群305に含まれる型変換を生成する。
そして、型変換管理部304は、生成された型変換に型変換処理の実行を要求する。なお、型変換は、データ型の型変換処理を実行するプログラムやモジュール等により実現され、例えばクラスや関数等で定義される。また、型変換の生成とは、例えばクラスや関数等で定義された型変換を、メモリ(例えばRAM14上)に展開することである。
なお、データ型には、例えば、ストリームデータを示すデータ型「InputStream」、記憶装置等に格納されている電子ファイルのパス(アドレス)を示す「LocalFilePath」、及び電子ファイルの実体を示す「File」等が挙げられる。
ここで、型変換情報テーブル4000について、図7を参照しながら説明する。図7は、型変換情報テーブル4000の一例を示す図である。
図7に示す型変換情報テーブル4000は、データ項目として、変換前のデータ型と、変換後のデータ型と、生成する型変換とを有する。すなわち、型変換情報テーブル4000に格納されている型変換情報は、変換前のデータ型及び変換後のデータ型毎に、当該変換前のデータ型を、当該変換後のデータ型に変換するための型変換が関連付けられた情報である。
型変換群305は、型変換の集合である。型変換群305には、データ型「InputStream」を「LocalFilePath」に変換するための第1の型変換1410が含まれる。なお、型変換群305には、これ以外にも、例えば、データ型「LocalFilePath」を「File」に変換するための第2の型変換等が含まれる。
また、型変換群305に含まれる各型変換は、型変換共通I/F1400を有する。型変換共通I/F1400は、各型変換に対して共通に定義されたAPIであり、型変換を生成するためのAPIと、型変換の型変換処理を実行するためのAPIとが含まれる。
このように、各型変換が型変換共通I/F1400を有することで、型変換の追加等に伴う影響を局所化することができる。すなわち、例えば、型変換管理部304等に影響を与えることなく、型変換の追加等を行うことができる。これにより、本実施形態に係るサービス提供システム10では、型変換の追加等に伴う開発工数を削減することができる。
ここで、外部ファイル印刷サービスを提供するアプリ情報1000に含まれる処理フロー情報1100について、図8を参照しながら説明する。図8は、処理フロー情報1100の一例を示す図である。
図8(a)に示す処理フロー情報1100は、ファイル一覧取得フローが定義された情報である。また、図8(b)に示す処理フロー情報1100は、ファイルダウンロードフローが定義された情報である。
図8(a)及び図8(b)に示す処理フロー情報1100には、処理フロー情報1100を識別するフロー名1101と、処理フローに含まれる各処理の処理内容が定義されたフロー詳細1102とが含まれる。
また、フロー詳細1102には、詳細処理定義1110が含まれる。詳細処理定義1110には、詳細処理定義を識別する詳細処理名を示す「"detailName"」と、処理を実行するためのコンポーネントのコンポーネント名を示す「"component"」とが含まれる。また、詳細処理定義1110には、当該コンポーネントが実行するオペレーションを示す「"operationName"」と、パラメータ情報が定義される「"parameters"」とが含まれる。
なお、オペレーションとはコンポーネントが実行する処理のことであり、各コンポーネントは、1以上のオペレーションを実行することが可能である。
具体的には、図8(a)に示す処理フロー情報1100のフロー詳細1102に含まれる詳細処理定義1110の「"detailName"」には、「"detail0"」が定義されている。また、「"component"」には、外部ストレージコンポーネント1310のコンポーネント名「"storage"」が定義されている。「"operationName"」には、外部ストレージコンポーネント1310がファイル一覧の取得処理を実行することを示すオペレーション名「"getFilelist"」が定義されている。「"parameters"」には、ファイル一覧の取得処理に用いられるパラメータ情報が定義されている。
同様に、図8(b)に示す処理フロー情報1100のフロー詳細1102に含まれる詳細処理定義1110の「"detailName"」には、「"detail0"」が定義されている。また、「"component"」には、外部ストレージコンポーネント1310のコンポーネント名「"storage"」が定義されている。「"operationName"」には、外部ストレージコンポーネント1310がファイルダウンロード処理を実行することを示すオペレーション名「"downloadFile"」が定義されている。「"parameters"」には、ファイルダウンロード処理に用いられるパラメータ情報が定義されている。
なお、図8(a)及び図8(b)に示す処理フロー情報1100では、フロー詳細1102に1つの詳細処理定義1110が含まれている例を示したが、処理フローに2以上の処理が含まれる場合には、フロー詳細1102には2以上の詳細処理定義が含まれる。
また、フロー詳細1102に2以上の詳細処理定義が含まれる場合、これら2以上の詳細処理定義にそれぞれ定義された処理の実行順は、フロー詳細1102において上から定義されている順となる。ただし、これに限られず、処理フロー情報1100には、例えば、各詳細処理定義に定義された処理の実行順を示す情報が定義されていても良い。
次に、レイアウト情報記憶部180に記憶されているレイアウト情報について、図9を参照しながら説明する。図9は、レイアウト情報の一例を示す図である。
図9に示すように、レイアウト情報記憶部180には、1以上のレイアウト情報が記憶されている。また、各レイアウト情報では、レイアウト名と、入力形式とが関連付けられている。
レイアウト名とは、アプリ画面のレイアウトを識別する情報である。入力形式とは、レイアウト名により示されるレイアウトで表示可能なデータ形式である。
例えば、レイアウト名「one−column−list」には、入力形式「list」が関連付けられている。これは、レイアウト名「one−column−list」により示されるレイアウトのアプリ画面では、データ形式が「list」であるデータを表示可能であることを示している。すなわち、レイアウト名「one−column−list」により示されるレイアウトのアプリ画面では、出力形式が「list」である処理フローの処理結果が表示可能である。
また、例えば、レイアウト名「preview」には、入力形式「file」が関連付けられている。これは、レイアウト名「preview」により示されるレイアウトのアプリ画面では、データ形式が「file」であるデータを表示可能であることを示している。すなわち、レイアウト名「preview」により示されるレイアウトのアプリ画面では、出力形式が「file」である処理フローの処理結果が表示可能である。
このように、レイアウト情報には、レイアウトを示すレイアウト名と、当該レイアウトで表示可能なデータ形式を示す入力形式とが関連付けられている。
次に、コンポーネント詳細情報記憶部190に記憶されているコンポーネント詳細情報5000のうち、一例として、外部ストレージコンポーネント1310のコンポーネント詳細情報5000について、図10を参照しながら説明する。図10は、コンポーネント詳細情報5000の一例を示す図である。
図10に示すコンポーネント詳細情報5000には、外部ストレージコンポーネント1310を識別するコンポーネント名「storage」が定義されたコンポーネント名5001が含まれる。また、図10に示すコンポーネント詳細情報5000には、外部ストレージコンポーネント1310が実行可能なオペレーションの内容が定義されたオペレーション定義5002が含まれる。
オペレーション定義5002には、ファイル一覧の取得処理が定義されたオペレーション内容5010と、ファイルダウンロード処理の内容が定義されたオペレーション内容5020とが含まれる。また、各オペレーション内容5010及び5020には、オペレーション名を示す「"operationName"」と、出力される処理結果のデータ形式を示す「"list"」と、オペレーションに用いられるパラメータ情報とが定義されている。
具体的には、オペレーション内容5010の「"operationName"」には、ファイル一覧の取得処理を実行するオペレーションを示す「"getFileList"」が定義されている。また、オペレーション内容5010の「outputFormat」には、ファイル一覧の取得処理の処理結果のデータ形式「"list"」が定義されている。更に、オペレーション内容5010の「"parameters"」には、ファイル一覧の取得処理に用いられるパラメータ情報が定義されている。
同様に、オペレーション内容5020の「"operationName"」には、ファイルダウンロード処理を実行するオペレーションを示す「"downloadFile"」が定義されている。また、オペレーション内容5020の「outputFormat」には、ファイルダウンロード処理の処理結果のデータ形式「"file"」が定義されている。更に、オペレーション内容5020の「"parameters"」には、ファイルダウンロード処理に用いられるパラメータ情報が定義されている。
このように、コンポーネント詳細情報5000には、コンポーネント名と、当該コンポーネント名のコンポーネントが実行可能な1以上のオペレーションの内容とが関連付けられている。また、オペレーションの内容には、オペレーション名と、オペレーションの処理結果のデータ形式と、当該オペレーションの実行に用いられるパラメー情報とが定義されている。
<処理の詳細>
次に、本実施形態に係る情報処理システム1の処理の詳細について説明する。まず、PC端末30のユーザが、アプリケーションをサービス提供システム10に登録する処理について、図11を参照しながら説明する。図11は、アプリケーション登録の全体処理の一例を示すシーケンス図である。
まず、PC端末30のブラウザ310は、アプリケーション登録画面を表示させるための操作(アプリケーション登録画面の表示操作)を受け付ける(ステップS1101)。なお、PC端末30のユーザは、例えば、ポータルのトップ画面において、アプリケーション登録画面へのリンクを押下することで、アプリケーション登録画面の表示操作を行うことができる。
PC端末30のブラウザ310は、アプリケーション登録画面の表示操作を受け付けると、アプリケーション登録画面の表示要求を、ポータルサービス部140のUI提供部141に送信する(ステップS1102)。
ポータルサービス部140のUI提供部141は、アプリケーション登録画面の表示要求を受信すると、アプリケーション登録画面のポータル画面情報3000をポータル画面情報記憶部170から取得する(ステップS1103)。そして、UI提供部141は、ポータル画面情報記憶部170から取得したポータル画面情報3000をブラウザ310に返信する。
PC端末30のブラウザ310は、アプリケーション登録画面のポータル画面情報3000を受信すると、アプリケーションのアプリ画面及び処理フローの設定処理を行う(ステップS1104)。
ここで、上記のステップS1104において、外部印刷アプリケーションのアプリ画面及び処理フローを設定する処理(すなわち、3つのアプリ画面と、2つの処理フローとを設定する場合の処理)について、図12を参照しながら説明する。図12は、外部印刷アプリケーションのアプリ画面及び処理フローの設定処理の一例を示すシーケンス図である。
まず、PC端末30のブラウザ310は、アプリケーション登録画面のポータル画面情報3000を受信すると、選択可能レイアウト一覧の取得要求を、入出力サービス処理部110のレイアウト管理部113に送信する(ステップS1201)。
入出力サービス処理部110のレイアウト管理部113は、選択可能レイアウト一覧の取得要求を受信すると、レイアウト情報をレイアウト情報記憶部180から取得する(ステップS1202)。このとき、レイアウト管理部113は、レイアウト情報記憶部180に記憶されている全てのレイアウト情報を取得すれば良い。
そして、レイアウト管理部113は、レイアウト情報記憶部180から取得したレイアウト情報をブラウザ310に返信する。
PC端末30のブラウザ310は、アプリケーション登録画面のポータル画面情報3000に基づいて、例えば図13(a)に示すアプリケーション登録画面G110を表示する(ステップS1203)。
図13(a)に示すアプリケーション登録画面G110には、スクリーン追加ボタンG111が含まれている。1つのスクリーンでは、1つのアプリ画面と、1つの処理フローとを登録することができる。ユーザは、スクリーン追加ボタンG111の押下操作(スクリーンの追加操作)を行うことで、スクリーン一覧G112にスクリーンを追加することができる。
外部ファイル印刷アプリケーションには、3つのアプリ画面と、2つの処理フローとが含まれる。このため、ユーザは、例えば、スクリーン追加ボタンG111を3回押下することにより、「Screen1」、「Screen2」、及び「Screen3」の3つのスクリーンをスクリーン一覧G112に追加することができる。なお、アプリケーション登録画面G110にデフォルトで「Screen1」が含まれる場合には、ユーザは、スクリーン追加ボタンG111を2回押下する。
ユーザによりスクリーンの追加操作が行われると、PC端末30のブラウザ310は、当該追加操作を受け付ける(ステップS1204)。これにより、「Screen1」、「Screen2」、及び「Screen3」の3つのスクリーンがスクリーン一覧G112に追加される。
また、図13(a)に示すアプリケーション登録画面G110には、表示切替欄G113が含まれる。ユーザは、表示切替欄G113に含まれる「Layout」ボタンを押下することで、アプリ画面のレイアウトを選択するための画面を表示することができる。一方で、ユーザは、表示切替欄G113に含まれる「Flow」ボタンを押下することで、アプリ画面で実行させる処理フローを選択するための画面を表示することができる。
ユーザは、レイアウト検索欄G114に所望の文字列を入力することで、レイアウト管理部113から返信されたレイアウト情報が示すレイアウトのうち、レイアウト候補欄G115に表示されるレイアウトを絞り込むことができる。そして、ユーザは、レイアウト候補欄G115の中から所望のレイアウトを選択することができる。
このように、ユーザは、レイアウト管理部113から返信されたレイアウト情報が示すレイアウト(すなわち、選択可能レイアウト)の中から、アプリ画面に用いる所望のレイアウトを選択することができる。
なお、レイアウト候補欄G115に表示されるレイアウトをユーザが選択した場合、当該選択されたレイアウトの概要がレイアウト概要欄G116に表示される。
ここで、ユーザによりレイアウト「select−folders」を選択する操作(レイアウトの選択操作)が行われたものとする。すると、PC端末30のブラウザ310は、当該選択操作を受け付ける(ステップS1205)。これにより、外部ファイル印刷アプリケーションに対してフォルダ選択画面のレイアウト情報が設定される。
表示切替欄G113に含まれる「Flow」ボタンをユーザが押下した場合、ブラウザ310により、図13(b)に示すアプリケーション登録画面G120が表示される。図13(b)に示すアプリケーション登録画面G120では、ユーザは、処理フロー検索欄G121に所望の文字列を入力することで、処理フロー候補欄G122に表示される処理フローを絞り込むことができる。そして、ユーザは、処理フロー候補欄G122の中から所望の処理フローを選択することができる。
このように、ユーザは、処理フロー候補欄G122の中から所望の処理フローを選択することで、上記のステップS1205で選択したレイアウトのアプリ画面で実行させることが可能な処理フローを選択することができる。
なお、処理フロー候補欄G122に表示される処理フローをユーザが選択した場合、当該選択された処理フローの概要が処理フロー概要欄G123に表示される。
ここで、ユーザにより処理フロー「storage−files」を選択する操作(処理フローの選択操作)が行われたものとする。すると、PC端末30のブラウザ310は、当該選択操作を受け付ける(ステップS1206)。これにより、外部ファイル印刷アプリケーションに対して、フォルダ選択画面で実行可能な処理フロー(フロー名「storage−files」の処理フロー)の処理フロー情報1100が設定される。
PC端末30のブラウザ310は、処理フローの選択操作を受け付けると、処理フローの出力形式の特定要求を、入出力サービス処理部110の処理情報管理部114に送信する(ステップS1207)。なお、当該特定要求には、ユーザにより選択された処理フローのフロー名(すなわち、この場合は、「storage−files」)が含まれる。
入出力サービス処理部110の処理情報管理部114は、処理フローの出力形式の特定要求を受信すると、処理フロー情報の取得要求をアプリ管理部111に送信する(ステップS1208)。なお、当該取得要求には、ユーザにより選択された処理フローのフロー名「storage−files」が含まれる。
入出力サービス処理部110のアプリ管理部111は、処理フロー情報の取得要求を受信すると、当該取得要求に含まれるフロー名「storage−files」の処理フロー情報1100をアプリ情報記憶部150から取得する(ステップS1209)。そして、アプリ管理部111は、アプリ情報記憶部150から取得した処理フロー情報1100を処理情報管理部114に返信する。
入出力サービス処理部110の処理情報管理部114は、コンポーネント詳細情報記憶部190に記憶されているコンポーネント詳細情報5000を参照して、アプリ管理部111から返信された処理フロー情報1100に基づく一連の処理の出力形式を特定する(ステップS1210)。
すなわち、処理情報管理部114は、コンポーネント詳細情報記憶部190に記憶されているコンポーネント詳細情報5000を参照して、アプリ管理部111から返信された処理フロー情報1100に定義されているコンポーネントのうち、最後に実行されるコンポーネントのオペレーションの出力形式を特定する。
例えば、図8(a)に示す処理フロー情報1100(フロー名「storage−files」の処理フロー情報1100)では、最後に実行されるコンポーネントのオペレーションは、コンポーネント名「storage」のオペレーション名「getFilelist」である。したがって、処理情報管理部114は、図10に示すコンポーネント詳細情報5000を参照して、コンポーネント名「storage」のオペレーション名「getFilelist」の出力形式「list」を特定する。
そして、処理情報管理部114は、特定した出力形式をブラウザ310に返信する。
ここで、ユーザがスクリーン一覧G112から「Screen2」を選択する操作(スクリーン2への切替操作)を行ったものとする。すると、ブラウザ310は、当該切替操作を受け付ける(ステップS1211)。
PC端末30のブラウザ310は、スクリーン2への切替操作を受け付けると、選択可能レイアウト一覧の取得要求を、入出力サービス処理部110のレイアウト管理部113に送信する(ステップS1212)。なお、当該取得要求には、上記のステップS1210で処理情報管理部114から返信された出力形式(すなわち、この場合、「list」)が含まれる。
このように、選択可能レイアウト一覧の取得要求には、1つ前のスクリーンで設定された処理フローの出力形式が含まれる。すなわち、Nを2以上の整数として、現在のスクリーンが「ScreenN」である場合、「Screen(N−1)」で設定された処理フローの出力形式が含まれる。
入出力サービス処理部110のレイアウト管理部113は、選択可能レイアウト一覧の取得要求を受信すると、レイアウト情報をレイアウト情報記憶部180から取得する(ステップS1213)。このとき、レイアウト管理部113は、レイアウト情報記憶部180に記憶されているレイアウト情報のうち、当該取得要求に含まれる出力形式が入力形式に設定されているレイアウト情報を取得する。
すなわち、レイアウト管理部113は、レイアウト情報記憶部180に記憶されているレイアウト情報のうち、入力形式に「list」が設定されているレイアウト情報を取得する。
そして、レイアウト管理部113は、レイアウト情報記憶部180から取得したレイアウト情報をブラウザ310に返信する。
レイアウト情報が返信されると、ブラウザ310により、図14(a)に示すアプリケーション登録画面G210が表示される。図14(a)に示すアプリケーション登録画面G210では、ユーザは、レイアウト検索欄G211に所望の文字列を入力することで、レイアウト管理部113から返信されたレイアウト情報が示すレイアウトのうち、レイアウト候補欄G212に表示されるレイアウトを絞り込むことができる。そして、ユーザは、レイアウト候補欄G212の中から所望の処理フローを選択することができる。
このように、ユーザは、レイアウト管理部113から返信されたレイアウト情報が示すレイアウト(すなわち、選択可能レイアウト)の中から、アプリ画面に用いる所望のレイアウトを選択することができる。ここでの選択可能レイアウトとは、レイアウト情報が示すレイアウトのうち、1つ前のスクリーンで設定された処理フローの出力形式と入力形式が一致するレイアウトのことである。
なお、レイアウト候補欄G212に表示されるレイアウトをユーザが選択した場合、当該選択されたレイアウトの概要がレイアウト概要欄G213に表示される。
ここで、ユーザによりレイアウト「one−column−list」を選択する操作(レイアウト選択操作)が行われたものとする。すると、PC端末30のブラウザ310は、当該選択操作を受け付ける(ステップS1214)。これにより、外部ファイル印刷アプリケーションに対してファイル一覧画面のレイアウト情報が設定される。
表示切替欄G113に含まれる「Flow」ボタンをユーザが押下した場合、ブラウザ310により、図14(b)に示すアプリケーション登録画面G220が表示される。図14(b)に示すアプリケーション登録画面G220では、ユーザは、処理フロー検索欄G221に所望の文字列を入力することで、処理フロー候補欄G222に表示される処理フローを絞り込むことができる。そして、ユーザは、処理フロー候補欄G222の中から所望の処理フローを選択することができる。
このように、ユーザは、処理フロー候補欄G222の中から所望の処理フローを選択することで、上記のステップS1214で選択したレイアウトのアプリ画面で実行させることが可能な処理フローを選択することができる。
なお、処理フロー候補欄G222に表示される処理フローをユーザが選択した場合、当該選択された処理フローの概要が処理フロー概要欄G223に表示される。
ここで、ユーザにより処理フロー「storage−download」を選択する操作(処理フローの選択操作)が行われたものとする。すると、PC端末30のブラウザ310は、当該選択操作を受け付ける(ステップS1215)。これにより、外部ファイル印刷アプリケーションに対して、ファイル一覧画面で実行可能な処理フロー(フロー名「storage−download」の処理フロー)の処理フロー情報1100が設定される。
PC端末30のブラウザ310は、処理フローの選択操作を受け付けると、処理フローの出力形式の特定要求を、入出力サービス処理部110の処理情報管理部114に送信する(ステップS1216)。なお、当該特定要求には、ユーザにより選択された処理フローのフロー名(すなわち、この場合は、「storage−download」)が含まれる。
入出力サービス処理部110の処理情報管理部114は、処理フローの出力形式の特定要求を受信すると、処理フロー情報の取得要求をアプリ管理部111に送信する(ステップS1217)。なお、当該取得要求には、ユーザにより選択された処理フローのフロー名「storage−download」が含まれる。
入出力サービス処理部110のアプリ管理部111は、処理フロー情報の取得要求を受信すると、当該取得要求に含まれるフロー名「storage−download」の処理フロー情報1100をアプリ情報記憶部150から取得する(ステップS1218)。そして、アプリ管理部111は、アプリ情報記憶部150から取得した処理フロー情報1100を処理情報管理部114に返信する。
入出力サービス処理部110の処理情報管理部114は、コンポーネント詳細情報記憶部190に記憶されているコンポーネント詳細情報5000を参照して、アプリ管理部111から返信された処理フロー情報1100に基づく一連の処理の出力形式を特定する(ステップS1219)。
すなわち、処理情報管理部114は、コンポーネント詳細情報記憶部190に記憶されているコンポーネント詳細情報5000を参照して、アプリ管理部111から返信された処理フロー情報1100に定義されているコンポーネントのうち、最後に実行されるコンポーネントのオペレーションの出力形式を特定する。
例えば、図8(b)に示す処理フロー情報1100(フロー名「storage−download」の処理フロー情報1100)では、最後に実行されるコンポーネントのオペレーションは、コンポーネント名「storage」のオペレーション名「downloadFile」である。したがって、処理情報管理部114は、図10に示すコンポーネント詳細情報5000を参照して、コンポーネント名「storage」のオペレーション名「downloadFile」の出力形式「file」を特定する。
そして、処理情報管理部114は、特定した出力形式をブラウザ310に返信する。
ここで、ユーザがスクリーン一覧G112から「Screen3」を選択する操作(スクリーン3への切替操作)を行ったものとする。すると、ブラウザ310は、当該切替操作を受け付ける(ステップS1220)。
PC端末30のブラウザ310は、スクリーン3への切替操作を受け付けると、選択可能レイアウト一覧の取得要求を、入出力サービス処理部110のレイアウト管理部113に送信する(ステップS1221)。なお、当該取得要求には、上記のステップS1220で処理情報管理部114から返信された出力形式(すなわち、この場合、「file」)が含まれる。
入出力サービス処理部110のレイアウト管理部113は、選択可能レイアウト一覧の取得要求を受信すると、レイアウト情報をレイアウト情報記憶部180から取得する(ステップS1222)。このとき、レイアウト管理部113は、レイアウト情報記憶部180に記憶されているレイアウト情報のうち、当該取得要求に含まれる出力形式が入力形式に設定されているレイアウト情報を取得する。
そして、レイアウト管理部113は、レイアウト情報記憶部180から取得したレイアウト情報をブラウザ310に返信する。
レイアウト情報が返信されると、ブラウザ310により、図15に示すアプリケーション登録画面G310が表示される。図15に示すアプリケーション登録画面G310では、ユーザは、レイアウト検索欄G311に所望の文字列を入力することで、レイアウト管理部113から返信されたレイアウト情報が示すレイアウトのうち、レイアウト候補欄G312に表示されるレイアウトを絞り込むことができる。そして、ユーザは、レイアウト候補欄G312の中から所望の処理フローを選択することができる。
このように、ユーザは、レイアウト管理部113から返信されたレイアウト情報が示すレイアウト(すなわち、選択可能レイアウト)の中から、アプリ画面に用いる所望のレイアウトを選択することができる。ここでの選択可能レイアウトとは、レイアウト情報が示すレイアウトのうち、1つ前のスクリーンで設定された処理フローの出力形式と入力形式が一致するレイアウトのことである。
なお、レイアウト候補欄G312に表示されるレイアウトをユーザが選択した場合、当該選択されたレイアウトの概要がレイアウト概要欄G313に表示される。
ここで、ユーザによりレイアウト「preview」を選択する操作(レイアウト選択操作)が行われたものとする。すると、PC端末30のブラウザ310は、当該選択操作を受け付ける(ステップS1223)。これにより、外部ファイル印刷アプリケーションに対してプレビュー画面のレイアウト情報が設定される。
そして、ユーザは、OKボタンG314を押下して、アプリケーションの登録を行う操作(アプリ登録操作)を行ったものとする。すると、ブラウザ310は、当該操作を受け付ける(ステップS1224)。これにより、外部ファイル印刷アプリケーションのアプリ画面及び処理フローを設定するための操作が完了する。なお、外部ファイル印刷アプリケーションのプレビュー画面では処理フローを実行させないことから、処理フローの選択は行われない。
図11に戻る。ステップS1104に続いて、ブラウザ310は、上記のステップS1224のアプリ登録操作を受け付けると、例えば図16に示すアプリ設定情報1200を作成する(ステップS1105)。
ここで、アプリ設定情報1200について、図16を参照しながら説明する。図16は、アプリ設定情報1200の一例を示す図である。
図16に示すアプリ設定情報1200には、アプリタイプ1201と、アプリ名1202と、ビュー定義1203とが含まれる。
アプリタイプ1201には、アプリケーションのタイプが定義される。アプリケーションのタイプには、例えば、プリントタイプ、スキャンタイプ、FAXタイプ、メール送信タイプ等がある。図16に示す例では、アプリケーションのタイプがプリントタイプであることを示す「"app_type":"print"」が定義されている。
アプリ名1202には、アプリケーションの名称が定義される。図16に示す例では、アプリ名が「外部ファイル印刷アプリケーション」であることを示す「"appName":"外部ファイル印刷アプリケーション"」が定義されている。
ビュー定義1203には、アプリ画面と、当該アプリ画面で実行可能な処理フローと、当該処理フローの実行に用いられるパラメータ情報とが含まれるビュー内容が定義される。
図16に示すアプリ設定情報1200のビュー定義1203には、ビュー情報1210〜1230が定義されている。各ビュー情報1210〜1230には、ビュー情報を識別するビュー名を示す「"name"」と、アプリ画面のレイアウト名を示す「"layoutName"」と、当該アプリ画面で実行可能な処理フローのフロー名を示す「"flowName"」とが含まれる。
また、ビュー情報1210及び1220には、当該処理フローの実行に用いられるパラメータ情報のうち、デフォルトのパラメータ値が設定されるパラメータ情報を示す「"defaultParameters"」が含まれる。同様に、ビュー情報1210及び1230には、当該処理フローの実行に用いられるパラメータ情報のうち、ユーザにより入力されたパラメータ値が設定されるパラメータ情報を示す「"userInputParameters"」が含まれる。
具体的には、図16に示すアプリ設定情報1200のビュー定義1203のビュー情報1210の「"name"」には、「view1」が定義されている。また、「"layoutName"」には、図13(a)に示すアプリケーション登録画面G110で選択されたレイアウト名「select−folder」が定義されている。また、「"flowName"」には、図13(b)に示すアプリケーション登録画面G120で選択されたフロー名「storage−files」が定義されている。なお、「"defaultParameters"」及び「"userInputParameters"」には、フロー名「storage−files」の処理フロー情報1100に基づく一連の処理に用いられるパラメータ情報が定義されている。
同様に、図16に示すアプリ設定情報1200のビュー定義1203のビュー情報1220の「"name"」には、「view2」が定義されている。また、「"layoutName"」には、図14(a)に示すアプリケーション登録画面G210で選択されたレイアウト名「one−column−list」が定義されている。また、「"flowName"」には、図14(b)に示すアプリケーション登録画面G220で選択されたフロー名「storage−download」が定義されている。なお、「"defaultParameters"」及び「"userInputParameters"」には、フロー名「storage−download」の処理フロー情報1100に基づく一連の処理に用いられるパラメータ情報が定義されている。
また、同様に、図16に示すアプリ設定情報1200のビュー定義1203のビュー情報1230の「"name"」には、「view3」が定義されている。また、「"layoutName"」には、図15に示すアプリケーション登録画面G310で選択されたレイアウト名「preview」が定義されている。なお、「"flowName"」には、処理フローが設定されていないことを示す「null」が定義されている。
以上のように、アプリ設定情報1200には、アプリケーションを利用するための1以上のアプリ画面と、これらのアプリ画面で実行可能な処理フローと、当該処理フローの実行に用いられるパラメータ情報とが定義されている。
ブラウザ310は、アプリ設定情報1200を作成すると、アプリケーションの登録要求を、ポータルサービス部140のアプリ登録部142に送信する(ステップS1106)。なお、アプリケーションの登録要求には、ステップS1105で作成されたアプリ設定情報1200が含まれる。
ポータルサービス部140のアプリ登録部142は、アプリケーションの登録要求を受信すると、当該登録要求を、入出力サービス処理部110のアプリ管理部111に送信する(ステップS1107)。
入出力サービス処理部110のアプリ管理部111は、アプリケーションの登録要求を受信すると、アプリケーションを登録する(ステップS1108)。そして、アプリ管理部111は、登録結果をブラウザ310に返信する。
すなわち、アプリ管理部111は、アプリケーションの登録要求に含まれるアプリ設定情報1200をアプリIDと関連付けてアプリ情報記憶部150に記憶する。そして、アプリ管理部111は、アプリ登録部142を介して、当該アプリIDが含まれる登録結果をブラウザ310に返信する。
以上により、本実施形態に係る情報処理システム1では、ユーザがPC端末30を用いて、サービス提供システム10にアプリケーションを登録することができる。しかも、本実施形態に係る情報処理システム1では、ユーザがPC端末30を用いて、例えば、アプリケーションを利用するための1以上のアプリ画面のレイアウトと、これらのアプリ画面で実行させる処理フローとを設定することで、容易にアプリケーション(アプリ情報1000)を登録することができる。
したがって、本実施形態に係る情報処理システム1によれば、例えば、プログラミング言語等の専門的な知識や経験を有しないユーザ(例えば、企画担当者等)であっても、各種サービスを提供するアプリケーション(アプリ情報1000)を登録することができる。
次に、機器20のユーザが外部ファイル印刷サービスを利用する場合について、図17を参照しながら説明する。図17は、外部ファイル印刷サービスを利用する場合の全体処理の一例を示すシーケンス図である。
まず、機器20のブラウザ210は、外部ファイル印刷サービスのアプリ画面を表示させるための操作(表示操作)を受け付ける(ステップS1701)。なお、機器20のユーザは、例えば、外部ファイル印刷サービスのアプリ画面のURLをブラウザ210のアドレスバーに入力することで、アプリ画面の表示操作を行うことができる。
機器20のブラウザ210は、外部ファイル印刷サービスのアプリ画面の表示操作を受け付けると、フォルダ選択画面の表示要求を、Webサービス処理部120の画面構成部121に送信する(ステップS1702)。なお、フォルダ選択画面の表示要求には、外部ファイル印刷サービスを提供するアプリ情報1000のアプリIDが含まれる。
Webサービス処理部120の画面構成部121は、フォルダ選択画面の表示要求を受信すると、アプリ設定の取得要求を、入出力サービス処理部110のアプリ管理部111に送信する(ステップS1703)。なお、アプリ設定の取得要求には、外部ファイル印刷サービスを提供するアプリ情報1000のアプリIDが含まれる。
入出力サービス処理部110のアプリ管理部111は、アプリ設定の取得要求を受信すると、当該取得要求に含まれるアプリIDに関連付けて記憶されているアプリ設定情報1200をアプリ情報記憶部150から取得する(ステップS1704)。そして、アプリ管理部111は、アプリ情報記憶部150から取得したアプリ設定情報1200を画面構成部121に返信する。
次に、Webサービス処理部120の画面構成部121は、当該アプリIDと関連付けて記憶されているアプリ画面情報2000のうち、フォルダ選択画面のアプリ画面情報2000をアプリ画面情報記憶部160から取得する(ステップS1705)。画面構成部121は、アプリ管理部111から返信されたアプリ設定情報1200に含まれるビュー情報1210の「"layoutName"」に定義されている「"select−folder"」からフォルダ選択画面のアプリ画面情報2000を特定することができる。
そして、画面構成部121は、アプリ画面情報記憶部160から取得したアプリ画面情報2000と、上記のステップS1704で返信されたアプリ設定情報1200とをブラウザ210に返信する。
機器20のブラウザ210は、画面構成部121から受信したアプリ画面情報2000とアプリ設定情報1200とに基づいて、例えば図18に示すフォルダ選択画面G410を表示する(ステップS1706)。
ここで、図18に示すフォルダ選択画面G410は、機器20のユーザが外部ストレージシステム40のフォルダを選択するための画面である。
図18に示すフォルダ選択画面G410には、フォルダ一覧G411が含まれる。ユーザは、フォルダ一覧G411の中から所望のフォルダを選択することができる。以降では、ユーザにより「folder2」を選択する操作(フォルダ選択操作)が行われたものとする。すると、機器20のブラウザ210は、当該選択操作を受け付ける(ステップS1707)。
機器20のブラウザ210は、フォルダ選択操作を受け付けると、アプリケーションの実行要求を、Webサービス処理部120のアプリ実行部122に送信する(ステップS1708)。なお、アプリケーションの実行要求には、アプリ設定情報1200に含まれるビュー情報1210の「"flowName"」に定義されているフロー名「"storage−files"」と、パラメータ情報とが含まれる。パラメータ情報には、図18に示すフォルダ選択画面G410のフォルダ一覧G411からユーザにより選択されたフォルダ「folder2」のフォルダID等が含まれる。
Webサービス処理部120のアプリ実行部122は、アプリケーションの実行要求を受信すると、当該実行要求を、入出力サービス処理部110のロジック処理部112に送信する(ステップS1709)。
入出力サービス処理部110のロジック処理部112は、アプリケーションの実行要求を受信すると、ファイル一覧取得フローの実行処理を行う(ステップS1710)。すなわち、ロジック処理部112は、当該実行要求に含まれるパラメータ情報を用いて、フロー名「storage−files」の処理フロー情報1100に基づく一連の処理を実行する。なお、ファイル一覧取得フローの実行処理の詳細については後述する。
そして、ロジック処理部112は、ファイル一覧取得フローの実行処理の処理結果を、Webサービス処理部120を介して、ブラウザ210に返信する。なお、当該処理結果は、外部ストレージシステム40のフォルダ「folder2」に格納されているファイルの一覧であり、データ形式は「list」である。
機器20のブラウザ210、ファイル一覧取得フローの処理結果を受信すると、ファイル一覧画面の表示要求を、Webサービス処理部120の画面構成部121に送信する(ステップS1711)。
Webサービス処理部120の画面構成部121は、ファイル一覧画面の表示要求を受信すると、外部ファイル印刷アプリケーションのアプリIDと関連付けて記憶されているアプリ画面情報2000のうち、ファイル一覧画面のアプリ画面情報2000をアプリ画面情報記憶部160から取得する(ステップS1712)。画面構成部121は、アプリ管理部111から返信されたアプリ設定情報1200に含まれるビュー情報1220の「"layoutName"」に定義されている「"one−column−list"」からファイル一覧画面のアプリ画面情報2000を特定することができる。
そして、画面構成部121は、アプリ画面情報記憶部160から取得したアプリ画面情報2000をブラウザ210に返信する。
機器20のブラウザ210は、画面構成部121から受信したアプリ画面情報2000とアプリ設定情報1200とに基づいて、例えば図18に示すファイル一覧画面G420を表示する(ステップS1713)。
ここで、図18に示すファイル一覧画面G420は、図18に示すフォルダ選択画面G410で選択したフォルダ内に格納されているファイルをユーザが選択するための画面である。
図18に示すファイル一覧画面G420には、ファイル一覧G421が含まれる。ファイル一覧G421は、ファイル一覧取得フローの処理結果(すなわち、外部ストレージシステム40のフォルダ「folder2」に格納されているファイルの一覧)に基づき表示される。ユーザは、ファイル一覧G421の中から所望のファイルを選択することができる。以降では、ユーザにより「File2.pdf」を選択する操作(ファイル選択操作)が行われたものとする。すると、機器20のブラウザ210は、当該選択操作を受け付ける(ステップS1714)。
機器20のブラウザ210は、ファイル選択操作を受け付けると、アプリケーションの実行要求を、Webサービス処理部120のアプリ実行部122に送信する(ステップS1715)。なお、アプリケーションの実行要求には、アプリ設定情報1200に含まれるビュー情報1220の「"flowName"」に定義されているフロー名「"storage−download"」と、パラメータ情報とが含まれる。パラメータ情報には、図18に示すファイル一覧画面G420のファイル一覧G421からユーザにより選択されたファイル「File2.pdf」のファイルID等が含まれる。
Webサービス処理部120のアプリ実行部122は、アプリケーションの実行要求を受信すると、当該実行要求を、入出力サービス処理部110のロジック処理部112に送信する(ステップS1716)。
入出力サービス処理部110のロジック処理部112は、アプリケーションの実行要求を受信すると、ファイルダウンロードフローの実行処理を行う(ステップS1717)。すなわち、ロジック処理部112は、当該実行要求に含まれるパラメータ情報を用いて、フロー名「storage−download」の処理フロー情報1100に基づく一連の処理を実行する。なお、ファイルダウンロードフローの実行処理の詳細については後述する。
そして、ロジック処理部112は、ファイルダウンロードフローの実行処理の処理結果を、Webサービス処理部120を介して、ブラウザ210に返信する。なお、当該処理結果は、ユーザにより選択されたファイル「File2.pdf」の電子ファイルであり、データ形式は「file」である。
機器20のブラウザ210、ファイルダウンロードフローの処理結果を受信すると、プレビュー画面の表示要求を、Webサービス処理部120の画面構成部121に送信する(ステップS1718)。
Webサービス処理部120の画面構成部121は、プレビュー画面の表示要求を受信すると、外部ファイル印刷アプリケーションのアプリIDと関連付けて記憶されているアプリ画面情報2000のうち、プレビュー画面のアプリ画面情報2000をアプリ画面情報記憶部160から取得する(ステップS1719)。画面構成部121は、アプリ管理部111から返信されたアプリ設定情報1200に含まれるビュー情報1230の「"layoutName"」に定義されている「"preview"」からプレビュー画面のアプリ画面情報2000を特定することができる。
そして、画面構成部121は、アプリ画面情報記憶部160から取得したアプリ画面情報2000をブラウザ210に返信する。
機器20のブラウザ210は、画面構成部121から受信したアプリ画面情報2000とアプリ設定情報1200とに基づいて、例えば図18に示すプレビュー画面G430を表示する(ステップS1720)。
ここで、図18に示すプレビュー画面G430は、図18に示すファイル一覧画面G420で選択したファイルの内容がプレビュー表示される画面である。
図18に示すプレビュー画面G430には、ユーザにより選択されたファイルの内容が表示されるプレビュー欄G431が含まれる。また、図18に示すプレビュー画面G430には、プレビュー欄G431に表示されているファイルを印刷するための印刷ボタンG432が含まれる。ユーザは、印刷ボタンG432を押下する操作(印刷開始操作)を行うことで、プレビュー欄G431に表示されているファイルを印刷することができる。
以降では、ユーザにより印刷開始操作が行われたものとする。すると、機器20のブラウザ210は、当該印刷開始操作を受け付ける(ステップS1721)。
機器20のブラウザ210は、印刷開始操作を受け付けると、プリンタ25を制御して、プレビュー欄G431に表示されているファイルを印刷する(ステップS1722)。
これにより、本実施形態に係るサービス提供システム10は、外部ファイル印刷サービスを提供することができる。
なお、本実施形態では、外部ファイル印刷アプリケーションのファイル一覧画面として、図18に示すファイル一覧画面G420が表示される場合について説明したが、例えば図19(a)に示すファイル一覧画面G500が表示されても良い。図19(a)に示すファイル一覧画面G500では、2列のファイル名が表示されるファイル一覧G501が含まれる。
図19(a)に示すファイル一覧画面G500は、例えば、外部ファイル印刷アプリケーションのアプリ設定情報1200に含まれるビュー情報1220の「"layoutName"」に「"two−column−list"」が定義されることで表示することができる。
また、外部ファイル印刷アプリケーションのファイル一覧画面として、例えば図19(b)に示すファイル一覧画面G600が表示されても良い。図19(b)に示すファイル一覧画面G600では、各ファイルを示すアイコンが表示されるファイル一覧G601が含まれる。
図19(b)に示すファイル一覧画面G600は、例えば、外部ファイル印刷アプリケーションのアプリ設定情報1200に含まれるビュー情報1220の「"layoutName"」に「"icon−list"」が定義されることで表示することができる。
次に、上記のステップS1710の処理(ファイル一覧取得フローの実行処理)の詳細について、図20を参照しながら説明する。図20は、ファイル一覧取得フローの実行処理の一例を示すシーケンス図である。
まず、フロー実行部301は、アプリ実行部122からアプリケーションの実行要求を受信すると、処理フローの取得要求をアプリ管理部111に送信する(ステップS2001)。なお、当該取得要求には、フロー名「storage−files」が含まれる。
アプリ管理部111は、処理フローの取得要求を受信すると、当該取得要求に含まれるフロー名「storage−files」の処理フロー情報1100をアプリ情報記憶部150から取得する(ステップS2002)。そして、アプリ管理部111は、アプリ情報記憶部150から取得した処理フロー情報1100をフロー実行部301に返信する。
ここで、以降では、アプリ管理部111は、図8(a)に示す処理フロー情報1100をフロー実行部301に返信したものとして説明する。
次に、フロー実行部301は、処理フロー情報1100に基づくコンポーネントの取得要求をコンポーネント管理部302に送信する(ステップS2003)。
すなわち、フロー実行部301は、図8(a)に示す処理フロー情報1100の詳細処理定義1110に含まれる「"component"」に定義されているコンポーネント名「"storage"」のコンポーネントの取得要求をコンポーネント管理部302に送信する。
コンポーネント管理部302は、コンポーネントの取得要求を受信すると、コンポーネント名「"storage"」のコンポーネント(すなわち、外部ストレージコンポーネント1310)を生成する(ステップS2004)。なお、外部ストレージコンポーネント1310の生成は、コンポーネント共通I/F1300に定義されたコンポーネントを生成するためのAPIを用いて行うことができる。
そして、コンポーネント管理部302は、生成した外部ストレージコンポーネント1310をフロー実行部301に返信する。すなわち、コンポーネント管理部302は、例えば、外部ストレージコンポーネント1310が展開されたメモリ(例えばRAM14)上のアドレスをフロー実行部301に返信する。
次に、フロー実行部301は、コンポーネント実行要求を外部ストレージコンポーネント1310に送信する(ステップS2005)。なお、当該実行要求には、データと、パラメータ情報とが含まれる。また、コンポーネント実行要求には、例えば、外部ストレージコンポーネント1310に実行を要求するオペレーションのオペレーション名「getFilelist」が指定される。
ここで、データは、データ型「InputStream」としてブラウザ210等から受信した、コンポーネントの処理対象となる電子ファイル等である。すなわち、フロー実行部301は、コンポーネントの処理対象となる電子ファイル等を、単に「データ」として(データ型を意識することなく)、コンポーネントに渡して処理の実行を要求する。本実施形態では、このようにデータ型を意識しない電子ファイル等の各種の情報を、単に「データ」と表す。
ただし、ファイル一覧取得フローでは、電子ファイル等の処理対象をブラウザ210等から受信しない。このため、データには、例えば、NULL等が設定されている。
また、パラメータ情報は、アプリケーションの実行要求に含まれるパラメータ情報である。
外部ストレージコンポーネント1310は、コンポーネント実行要求を受信すると、型変換要求を型変換管理部304に送信する(ステップS2006)。なお、当該型変換要求には、データと、外部ストレージコンポーネント1310が扱うことができるデータ型を示す「LocalFilePath」の指定とが含まれる。
型変換管理部304は、型変換要求を受信すると、当該型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するか否かをチェックする(ステップS2007)。
ここで、型変換要求に含まれるデータのデータ型は「InputStream」である一方、指定されたデータ型は「LocalFilePath」である。したがって、型変換管理部304は、型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致しないものと判断する。
すると、型変換管理部304は、型変換情報テーブル4000を参照して、データ型「InputStream」を「LocalFilePath」に変換するための型変換を特定する(ここでは、第1の型変換1410が特定される。)。そして、型変換管理部304は、特定した第1の型変換1410を生成する(ステップS2008)。なお、第1の型変換1410の生成は、型変換共通I/F1400を用いて行うことができる。
次に、型変換管理部304は、型変換処理の実行要求を第1の型変換1410に送信する(ステップS2009)。なお、当該実行要求には、データが含まれる。
第1の型変換1410は、型変換の実行要求を受信すると、当該実行要求に含まれるデータのデータ型を「InputStream」から「LocalFilePath」に変換する型変換処理を行う(ステップS2010)。そして、第1の型変換1410は、データ型が変換されたデータを型変換管理部304に返信する。
型変換管理部304は、第1の型変換1410からデータを受信すると、当該データを外部ストレージコンポーネント1310に送信する(ステップS2011)。
外部ストレージコンポーネント1310は、型変換管理部304からデータを受信すると、パラメータ情報を用いて、データに対して、指定されたオペレーション名の処理を実行する(ステップS2012)。
すなわち、外部ストレージコンポーネント1310は、フォルダ「folder2」に格納されているファイル一覧の取得要求を外部ストレージシステム40に送信する。これにより、外部ストレージシステム40からファイル一覧が返信される。外部ストレージコンポーネント1310は、外部ストレージシステム40からファイル一覧が返信されると、当該ファイル一覧をデータとしてフロー実行部301に返信する。
以上により、図8(a)に示す処理フロー情報1100に基づく一連の処理(処理フロー)の実行が完了し、ユーザにより選択されたフォルダに格納されているファイルの一覧を外部ストレージシステム40から取得することができる。
次に、上記のステップS1717の処理(ファイルダウンロードフローの実行処理)の詳細について、図21を参照しながら説明する。図21は、ファイルダウンロードフローの実行処理の一例を示すシーケンス図である。
まず、フロー実行部301は、アプリ実行部122からアプリケーションの実行要求を受信すると、処理フローの取得要求をアプリ管理部111に送信する(ステップS2101)。なお、当該取得要求には、フロー名「storage−download」が含まれる。
アプリ管理部111は、処理フローの取得要求を受信すると、当該取得要求に含まれるフロー名「storage−download」の処理フロー情報1100をアプリ情報記憶部150から取得する(ステップS2102)。そして、アプリ管理部111は、アプリ情報記憶部150から取得した処理フロー情報1100をフロー実行部301に返信する。
ここで、以降では、アプリ管理部111は、図8(b)に示す処理フロー情報1100をフロー実行部301に返信したものとして説明する。
次に、フロー実行部301は、処理フロー情報1100に基づくコンポーネントの取得要求をコンポーネント管理部302に送信する(ステップS2103)。
すなわち、フロー実行部301は、図8(a)に示す処理フロー情報1100の詳細処理定義1110に含まれる「"component"」に定義されているコンポーネント名「"storage"」のコンポーネントの取得要求をコンポーネント管理部302に送信する。
コンポーネント管理部302は、コンポーネントの取得要求を受信すると、コンポーネント名「"storage"」のコンポーネント(すなわち、外部ストレージコンポーネント1310)を生成する(ステップS2104)。なお、外部ストレージコンポーネント1310の生成は、コンポーネント共通I/F1300に定義されたコンポーネントを生成するためのAPIを用いて行うことができる。
そして、コンポーネント管理部302は、生成した外部ストレージコンポーネント1310をフロー実行部301に返信する。すなわち、コンポーネント管理部302は、例えば、外部ストレージコンポーネント1310が展開されたメモリ(例えばRAM14)上のアドレスをフロー実行部301に返信する。
次に、フロー実行部301は、コンポーネント実行要求を外部ストレージコンポーネント1310に送信する(ステップS2105)。なお、当該実行要求には、データと、パラメータ情報とが含まれる。また、コンポーネント実行要求には、例えば、外部ストレージコンポーネント1310に実行を要求するオペレーションのオペレーション名「downloadFile」が指定される。
外部ストレージコンポーネント1310は、コンポーネント実行要求を受信すると、型変換要求を型変換管理部304に送信する(ステップS2106)。なお、当該型変換要求には、データと、外部ストレージコンポーネント1310が扱うことができるデータ型を示す「LocalFilePath」の指定とが含まれる。
型変換管理部304は、型変換要求を受信すると、当該型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するか否かをチェックする(ステップS2107)。
ここで、型変換要求に含まれるデータのデータ型は「InputStream」である一方、指定されたデータ型は「LocalFilePath」である。したがって、型変換管理部304は、型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致しないものと判断する。
すると、型変換管理部304は、型変換情報テーブル4000を参照して、データ型「InputStream」を「LocalFilePath」に変換するための型変換を特定する(ここでは、第1の型変換1410が特定される。)。そして、型変換管理部304は、特定した第1の型変換1410を生成する(ステップS2108)。なお、第1の型変換1410の生成は、型変換共通I/F1400を用いて行うことができる。
次に、型変換管理部304は、型変換処理の実行要求を第1の型変換1410に送信する(ステップS2109)。なお、当該実行要求には、データが含まれる。
第1の型変換1410は、型変換の実行要求を受信すると、当該実行要求に含まれるデータのデータ型を「InputStream」から「LocalFilePath」に変換する型変換処理を行う(ステップS2010)。そして、第1の型変換1410は、データ型が変換されたデータを型変換管理部304に返信する。
型変換管理部304は、第1の型変換1410からデータを受信すると、当該データを外部ストレージコンポーネント1310に送信する(ステップS2111)。
外部ストレージコンポーネント1310は、型変換管理部304からデータを受信すると、パラメータ情報を用いて、データに対して、指定されたオペレーション名の処理を実行する(ステップS2112)。
すなわち、外部ストレージコンポーネント1310は、ファイル「File2.pdf」のダウンロード要求を外部ストレージシステム40に送信する。これにより、外部ストレージシステム40からファイル「File2.pdf」がダウンロードされる。外部ストレージコンポーネント1310は、外部ストレージシステム40からファイル「File2.pdf」をダウンロードすると、当該ファイルをデータとしてフロー実行部301に返信する。
以上により、図8(b)に示す処理フロー情報1100に基づく一連の処理(処理フロー)の実行が完了し、ユーザにより選択されたファイルを外部ストレージシステム40からダウンロードすることができる。
ここで、機器20のユーザが外部ファイル印刷サービスを利用する場合の他の例について、図22を参照しながら説明する。図22は、外部ファイル印刷サービスを利用する場合の全体処理の他の例を示すシーケンス図である。
まず、機器20のブラウザ210は、図17のステップS1701と同様に、外部ファイル印刷サービスのアプリ画面を表示させるための操作(表示操作)を受け付ける(ステップS2201)。
機器20のブラウザ210は、外部ファイル印刷サービスのアプリ画面の表示操作を受け付けると、アプリ画面の表示要求を、Webサービス処理部120の画面構成部121に送信する(ステップS2202)。なお、アプリ画面の表示要求には、外部ファイル印刷サービスを提供するアプリ情報1000のアプリIDが含まれる。
Webサービス処理部120の画面構成部121は、アプリ画面の表示要求を受信すると、ビュー情報の取得要求を、入出力サービス処理部110のアプリ管理部111に送信する(ステップS2203)。なお、ビュー情報の取得要求には、外部ファイル印刷サービスを提供するアプリ情報1000のアプリIDが含まれる。
入出力サービス処理部110のアプリ管理部111は、ビュー情報の取得要求を受信すると、当該取得要求に含まれるアプリIDに関連付けて記憶されているアプリ設定情報1200のビュー情報を取得する(ステップS2204)。すなわち、アプリ管理部111は、図16に示すアプリ設定情報1200のビュー情報1210を取得する。
そして、アプリ管理部111は、アプリ情報記憶部150から取得したビュー情報1210を画面構成部121に返信する。このように、アプリ管理部111は、ブラウザ210がアプリ画面を表示するのに必要なビュー情報を返信する。
次に、Webサービス処理部120の画面構成部121は、当該アプリIDと関連付けて記憶されているアプリ画面情報2000のうち、フォルダ選択画面のアプリ画面情報2000をアプリ画面情報記憶部160から取得する(ステップS2205)。画面構成部121は、アプリ管理部111から返信されたビュー情報1210の「"layoutName"」に定義されている「"select−folder"」からフォルダ選択画面のアプリ画面情報2000を特定することができる。
そして、画面構成部121は、アプリ画面情報記憶部160から取得したアプリ画面情報2000と、上記のステップS2204で返信されたビュー情報1210とをブラウザ210に返信する。
以降のステップS2206〜ステップS2210の処理は、図17のステップS1706〜ステップS1710とそれぞれ同様であるため、その説明を省略する。
機器20のブラウザ210は、ファイル一覧取得フローの処理結果を受信すると、アプリ画面の表示要求を、Webサービス処理部120の画面構成部121に送信する(ステップS2211)。
Webサービス処理部120の画面構成部121は、アプリ画面の表示要求を受信すると、ビュー情報の取得要求を、入出力サービス処理部110のアプリ管理部111に送信する(ステップS2212)。なお、ビュー情報の取得要求には、外部ファイル印刷サービスを提供するアプリ情報1000のアプリIDが含まれる。
入出力サービス処理部110のアプリ管理部111は、ビュー情報の取得要求を受信すると、当該取得要求に含まれるアプリIDに関連付けて記憶されているアプリ設定情報1200のビュー情報を取得する(ステップS2213)。すなわち、アプリ管理部111は、図16に示すアプリ設定情報1200のビュー情報1220を取得する。
そして、アプリ管理部111は、アプリ情報記憶部150から取得したビュー情報1220を画面構成部121に返信する。このように、アプリ管理部111は、ブラウザ210がアプリ画面を表示するのに必要なビュー情報を返信する。
次に、Webサービス処理部120の画面構成部121は、当該アプリIDと関連付けて記憶されているアプリ画面情報2000のうち、ファイル一覧画面のアプリ画面情報2000をアプリ画面情報記憶部160から取得する(ステップS2214)。画面構成部121は、アプリ管理部111から返信されたビュー情報1220の「"layoutName"」に定義されている「"one−column−list"」からファイル一覧画面のアプリ画面情報2000を特定することができる。
そして、画面構成部121は、アプリ画面情報記憶部160から取得したアプリ画面情報2000と、上記のステップS2213で返信されたビュー情報1220とをブラウザ210に返信する。
以降のステップS2215〜ステップS2219の処理は、図17のステップS1713〜ステップS1717とそれぞれ同様であるため、その説明を省略する。
機器20のブラウザ210は、ファイルダウンロードフローの処理結果を受信すると、アプリ画面の表示要求を、Webサービス処理部120の画面構成部121に送信する(ステップS2220)。
Webサービス処理部120の画面構成部121は、アプリ画面の表示要求を受信すると、ビュー情報の取得要求を、入出力サービス処理部110のアプリ管理部111に送信する(ステップS2221)。なお、ビュー情報の取得要求には、外部ファイル印刷サービスを提供するアプリ情報1000のアプリIDが含まれる。
入出力サービス処理部110のアプリ管理部111は、ビュー情報の取得要求を受信すると、当該取得要求に含まれるアプリIDに関連付けて記憶されているアプリ設定情報1200のビュー情報を取得する(ステップS2222)。すなわち、アプリ管理部111は、図16に示すアプリ設定情報1200のビュー情報1230を取得する。
そして、アプリ管理部111は、アプリ情報記憶部150から取得したビュー情報1220を画面構成部121に返信する。このように、アプリ管理部111は、ブラウザ210がアプリ画面を表示するのに必要なビュー情報を返信する。
次に、Webサービス処理部120の画面構成部121は、当該アプリIDと関連付けて記憶されているアプリ画面情報2000のうち、プレビュー画面のアプリ画面情報2000をアプリ画面情報記憶部160から取得する(ステップS2223)。画面構成部121は、アプリ管理部111から返信されたビュー情報1220の「"layoutName"」に定義されている「"preview"」からファイル一覧画面のアプリ画面情報2000を特定することができる。
そして、画面構成部121は、アプリ画面情報記憶部160から取得したアプリ画面情報2000と、上記のステップS2222で返信されたビュー情報1230とをブラウザ210に返信する。
以降のステップS2224〜ステップS2226の処理は、図17のステップS1720〜ステップS1722とそれぞれ同様であるため、その説明を省略する。
このように、本実施形態に係るサービス提供システム10は、ブラウザ210がアプリ画面を表示するために必要なビュー情報をアプリ管理部111が取得して、当該ブラウザ210返信することもできる。
<サービス提供システムが提供する他のサービス>
ここで、外部ファイル印刷サービス以外の他のサービスの一例として、バーコード付与サービスの概要について説明する。バーコード付与サービスは、スキャンにより生成された電子ファイルにバーコードを付与した上で、外部ストレージシステム40にアップロードするサービスである。
バーコード付与サービスを提供するアプリケーション(バーコード付与アプリケーション)は、図23に示すように、1以上のアプリ画面と、1以上の処理フローとが含まれる。
すなわち、バーコード付与アプリケーションは、ユーザがバーコードに埋め込む情報を指定するための埋め込み情報入力画面と、スキャンにより生成された電子ファイルにバーコードを付与するための処理フロー(バーコード付与フロー)とが対応付けられている。また、バーコード付与アプリケーションは、バーコードが付与された電子ファイルをプレビュー表示するためのプレビュー画面と、電子ファイルを外部ストレージシステム40にアップロードするための処理フロー(ファイルアップロードフロー)とが対応付けられている。
図24に示すように、埋め込み情報入力画面G700には、ユーザが埋め込み情報を指定するための埋め込み情報欄G701が含まれている。ユーザは、埋め込み情報欄G701に所望の情報を指定して上で、スキャンボタンG702を押下する。これにより、バーコード付与フローが実行され、ユーザにより指定された情報が埋め込まれたバーコードが、スキャンにより生成された電子ファイルに付与される。
また、図24に示すように、プレビュー画面G800には、バーコードが付与された電子ファイルの内容がプレビュー表示されるプレビュー表示欄G801と、当該電子ファイルをアップロードするためのアップロードボタンG802とが含まれている。ユーザによりアップロードボタンG802が押下されると、ファイルアップロードフローが実行され、当該電子ファイルが外部ストレージシステム40にアップロードされる。
このように。本実施形態に係るサービス提供システム10は、1以上のアプリ画面と、当該アプリ画面で実行可能な処理フローとが含まれるアプリケーションにより、機器20のユーザに対して様々なサービスを提供することができる。
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。