以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
<システム構成>
まず、本実施形態に係る情報処理システム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が画像形成装置であるものとして説明する。
本実施形態に係るサービス提供システム10は、例えば、PC端末30において指定された電子ファイルを印刷データに変換するサービス(プリント変換サービス)を提供する。これにより、ユーザは、画像形成装置である機器20を用いて、印刷データの印刷を行うことができるようになる。なお、印刷データは、PDL(Page Description Language)等で表され、機器20のプリンタ25で印刷可能なデータ形式のことである。
以降では、本実施形態に係るサービス提供システム10は、上述したプリント変換サービスを提供するものとして説明する。
ただし、サービス提供システム10により提供されるサービスは、これらに限られない。サービス提供システム10は、例えば、PC端末30において指定された電子ファイルを、プロジェクタである機器20で投影可能なデータ形式に変換するサービスを提供しても良い。これにより、ユーザは、プロジェクタである機器20を用いて、電子ファイルの内容を投影表示することができるようになる。
同様に、サービス提供システム10は、例えば、PC端末30において指定された電子ファイルを、デジタルサイネージである機器20で表示可能なデータ形式に変換するサービスを提供しても良い。これにより、ユーザは、デジタルサイネージである機器20を用いて、電子ファイルの内容を表示することができるようになる。
<機能構成>
次に、本実施形態に係る情報処理システム1の機能構成について、図4を参照しながら説明する。図4は、本実施形態に係る情報処理システム1の一例の機能構成を示す図である。
図4に示すPC端末30は、例えばCPU16等により実行されるブラウザ310を有する。PC端末30のユーザは、ブラウザ310を介して、サービス提供システム10が提供する各種のサービスを利用することができる。このように、本実施形態に係るPC端末30は、ブラウザ310が搭載されていれば良い。
図4に示す機器20は、印刷処理部210を有する。当該機能部は、機器20にインストールされた1以上のプログラムが、CPU31に実行させる処理により実現される。
印刷処理部210は、サービス提供システム10から取得した印刷データを印刷する。すなわち、印刷処理部210は、プリンタ25を制御して、サービス提供システム10から取得した印刷データを、例えば紙等の印刷媒体に印刷する。
図4に示すサービス提供システム10は、入出力サービス処理部110と、Webサービス処理部120と、ドキュメントサービス部130と、ストレージサービス部140と、中間結果削除部150とを有する。これら各機能部は、サービス提供システム10にインストールされた1以上のプログラムが、CPU31に実行させる処理により実現される。
また、サービス提供システム10は、アプリ情報記憶部160と、画面情報記憶部170と、ファイル記憶部180と、中間結果記憶部190とを有する。これら各記憶部は、HDD18を用いて実現可能である。なお、これら各記憶部のうちの少なくとも1つの記憶部が、サービス提供システム10とネットワークを介して接続される記憶装置等により実現されていても良い。
入出力サービス処理部110は、サービス提供システム10が提供するサービスに関する処理を行う。ここで、入出力サービス処理部110は、アプリ管理部111と、ロジック処理部112とを有する。
アプリ管理部111は、アプリ情報記憶部160に記憶されているアプリ情報1000を管理する。なお、アプリ情報1000とは、一連の処理により実現されるサービスを提供するためのアプリケーションである。すなわち、サービス提供システム10が提供する各種のサービスは、アプリ情報1000により提供される。
また、アプリ管理部111は、ロジック処理部112からの要求に応じて、アプリ情報1000に含まれる処理フロー情報1100を返信する。なお、処理フロー情報1100とは、アプリ情報1000により提供されるサービスを実現する一連の処理が定義された情報である。
ロジック処理部112は、Webサービス処理部120からの要求に応じて、アプリ情報1000に含まれる処理フロー情報1100をアプリ管理部111から取得する。そして、ロジック処理部112は、アプリ管理部111から取得した処理フロー情報1100に基づいて、当該アプリ情報1000が提供するサービスを実現する一連の処理(処理フロー)を実行する。これにより、本実施形態に係るサービス提供システム10は、各種のサービスを提供することができる。
また、ロジック処理部112は、一連の処理(処理フロー)の実行に用いる電子ファイル(例えば、一連の処理に含まれる各処理の処理対象の電子ファイルや処理結果として出力される電子ファイル等)の保存をストレージサービス部140に要求する。さらに、ロジック処理部112は、処理フロー情報1100に基づいて、一連の処理に含まれる各処理の処理結果として出力された電子ファイルを示す中間結果情報190Dを中間結果記憶部190に保存(記憶)させる。
なお、中間結果情報190Dとは、処理結果として出力された電子ファイルの保存先パス(例えば、電子ファイルの保存先を示すURL(Uniform Resource Locator)、ローカルパス等)や、当該中間結果情報190Dの有効期限等が含まれる情報である。
そして、ロジック処理部112は、一連の処理の実行が完了した場合に、中間結果記憶部190に記憶された中間結果情報190Dにより示される電子ファイル以外の電子ファイルの削除をストレージサービス部140に要求する。
このように、ロジック処理部112は、一連の処理を実行すると共に、当該一連の処理の実行に用いられる電子ファイルの保存要求や削除要求等を行う。なお、ロジック処理部112の詳細については後述する。
Webサービス処理部120は、サービス提供システム10が提供するサービスを、ユーザがブラウザ310を用いて利用するための処理を行う。すなわち、Webサービス処理部120は、ブラウザ310に対してWebアプリケーション(アプリ情報1000)を提供するアプリケーションサーバとして機能する。ここで、Webサービス処理部120は、画面構成部121と、アプリ実行部122とを有する。
画面構成部121は、ブラウザ310からの要求に応じて、画面情報記憶部170に記憶されている画面情報2000を返信する。なお、画面情報2000とは、アプリ情報1000により提供されるサービスを利用するための画面(アプリ画面)が定義された情報である。画面情報2000は、例えば、HTML(HyperText Markup Language)、XHTML(Extensible HyperText Markup Language)、CSS(Cascading Style Sheets)、JavaScript(登録商標)等のブラウザ310が解釈可能な形式でアプリ画面が定義されている。
これにより、PC端末30の表示装置12には、ブラウザ310により、サービス提供システム10が提供するサービスを利用するためのアプリ画面が表示される。
アプリ実行部122は、ブラウザ310からの要求に応じて、入出力サービス処理部110に対して、アプリケーション(アプリ情報1000)の実行要求を送信する。
ドキュメントサービス部130は、処理フロー情報1100に基づく一連の処理(処理フロー)に含まれる各処理を実行する。ここで、ドキュメントサービス部130は、PDL変換部131と、OCR処理部132と、メール配信部133とを有する。
PDL変換部131は、電子ファイルを印刷データに変換する処理を行う。OCR処理部132は、電子ファイル(画像ファイル)に対してOCR処理を行う。メール配信部133は、電子ファイルを添付したメールを作成して、当該メールを指定されたメールアドレス宛に配信する。
なお、ドキュメントサービス部130は、例えば、電子ファイルを暗号化又は復号する暗号化・復号部、電子ファイルを圧縮又は解凍する圧縮・解凍部等を有していても良い。
このように、ドキュメントサービス部130には、一連の処理(処理フロー)に含まれる各処理を実行する種々の機能部が含まれる。したがって、ドキュメントサービス部130は、これら種々の機能を提供するプログラム(モジュール)群により実現される。
ストレージサービス部140は、ロジック処理部112等からの保存要求に応じて、電子ファイルをファイル記憶部180に保存(記憶)する。そして、ストレージサービス部140は、電子ファイルの保存先パスを要求元に返信する。
また、ストレージサービス部140は、ロジック処理部112等からの削除要求に応じて、ファイル記憶部180に記憶されている電子ファイルを削除する。
中間結果削除部150は、例えば、所定の時間毎に、中間結果情報190Dの削除をロジック処理部112に要求する。これにより、後述するように、有効期限が経過した中間結果情報190Dを中間結果記憶部190から削除することができる。
アプリ情報記憶部160は、アプリ情報1000を記憶する。アプリ情報1000は、当該アプリ情報1000を識別するアプリIDと関連付けてアプリ情報記憶部160に記憶されている。なお、アプリ情報1000には、さらに、当該アプリ情報1000のアプリケーション名(アプリ名)が関連付けられていても良い。
ここで、アプリ情報1000には、処理フロー情報1100が含まれる。例えば、プリント変換サービスを提供するアプリ情報1000には、当該サービスを実現する一連の処理が定義された処理フロー情報1100が含まれる。すなわち、プリント変換サービスを提供するアプリ情報1000には、PC端末30において指定された電子ファイルを印刷データに変換する一連の処理が定義された処理フロー情報1100が含まれる。
なお、アプリ情報1000には、2以上の処理フロー情報1100が含まれていても良い。
処理フロー情報1100は、上述したように、アプリ情報1000により提供されるサービスを実現する一連の処理(処理フロー)が定義された情報である。なお、処理フロー情報1100の詳細については後述する。
画面情報記憶部170は、画面情報2000を記憶する。画面情報2000は、アプリIDと関連付けて画面情報記憶部170に記憶されている。なお、画面情報2000の詳細については後述する。
ファイル記憶部180は、一連の処理(処理フロー)の実行に用いる電子ファイルを記憶する。
中間結果記憶部190は、一連の処理に含まれる各処理の処理結果として出力された電子ファイル(すなわち、ファイル記憶部180に記憶されている電子ファイル)の保存先パス等が含まれる中間結果情報190Dを記憶する。なお、中間結果情報190Dの詳細については後述する。
なお、入出力サービス処理部110、Webサービス処理部120、ドキュメントサービス部130、ストレージサービス部140、及び中間結果削除部150等は、それぞれが異なる情報処理装置により実現されていても良い。特に、Webサービス処理部120をアプリケーションサーバとして、一台の情報処理装置で実現しても良い。
ここで、ロジック処理部112の詳細な機能構成について、図5を参照しながら説明する。図5は、本実施形態に係るロジック処理部112の一例の機能構成を示す図である。
図5に示すロジック処理部112は、フロー実行部301と、コンポーネント管理部302と、コンポーネント群303と、型変換管理部304と、型変換群305と、中間結果管理部306とを有する。また、ロジック処理部112は、型変換情報テーブル3000を有する。
フロー実行部301は、アプリ実行部122からアプリケーションの実行要求を受信すると、当該実行要求に対応するアプリ情報1000に含まれる処理フロー情報1100をアプリ管理部111から取得する。そして、フロー実行部301は、アプリ管理部111から取得した処理フロー情報1100に基づく一連の処理(処理フロー)を実行する。
また、フロー実行部301は、電子ファイルの保存要求や削除要求等をストレージサービス部140に要求する。さらに、フロー実行部301は、処理フロー情報1100に基づいて、中間結果情報190Dの保存要否を判定する。そして、フロー実行部301は、中間結果情報190Dの保存が必要と判定した場合、中間結果情報190Dの保存を中間結果管理部306に要求する。
ここで、処理フロー情報1100に基づく一連の処理は、当該一連の処理に含まれる各処理を実行するためのコンポーネントを組み合わせることにより実行される。なお、コンポーネントは、所定の機能を実現する処理を実行するためのプログラムやモジュール等により実現され、例えばクラスや関数等で定義される。
コンポーネント管理部302は、コンポーネントを管理する。コンポーネント管理部302は、フロー実行部301からの要求に応じて、コンポーネントを生成すると共に、生成したコンポーネントをフロー実行部301に返信する。なお、コンポーネントの生成とは、例えばクラスや関数等で定義されたコンポーネントを、メモリ(例えばRAM14)上に展開することである。
コンポーネント群303は、コンポーネントの集合である。コンポーネント群303には、印刷サービスコンポーネント1310と、PDLコンポーネント1320と、OCRコンポーネント1330と、メール配信コンポーネント1340とが含まれる。
印刷サービスコンポーネント1310は、機器20等に印刷サービスを提供するためのコンポーネントである。すなわち、印刷サービスコンポーネント1310は、PDLコンポーネント1320等により作成された印刷データの印刷を機器20等に要求する。
PDLコンポーネント1320は、電子ファイルから印刷データを作成するためのコンポーネントである。PDLコンポーネント1320は、ドキュメントサービス部130のPDL変換部131に、電子ファイルのPDL変換を要求することにより、印刷データを作成する。
OCRコンポーネント1330は、電子ファイルをOCR処理するためのコンポーネントである。OCRコンポーネント1330は、ドキュメントサービス部130のOCR処理部132にOCR処理を要求することにより、電子ファイルのOCR処理を行う。
メール配信コンポーネント1340は、指定されたメールアドレス宛にメール配信するためのコンポーネントである。メール配信コンポーネント1340は、ドキュメントサービス部130のメール配信部133にメール配信処理を要求することにより、指定されたメールアドレス宛にメールを配信する。
このように、各コンポーネントは、所定の機能を実現する処理を実行する。なお、コンポーネント群303には、上記のコンポーネント以外にも、例えば、電子ファイルの暗号化や復号を行うための暗号化・復号コンポーネント、電子ファイルを圧縮するための圧縮コンポーネント等の各種のコンポーネントが含まれる。
また、コンポーネント群303に含まれる各コンポーネントは、コンポーネント共通I/F1300を有する。コンポーネント共通I/F1300は、各コンポーネントに対して共通に定義されたAPI(Application Programming Interface)であり、コンポーネントを生成するためのAPIと、コンポーネントの処理を実行するためのAPIとが含まれる。
このように、各コンポーネントがコンポーネント共通I/F1300を有することで、コンポーネントの追加等に伴う影響を局所化することができる。すなわち、例えば、フロー実行部301やコンポーネント管理部302等に影響を与えることなく、コンポーネントの追加等を行うことができる。これにより、本実施形態に係るサービス提供システム10では、所定の機能の追加等(すなわち、当該機能を実現する処理を実行するためのコンポーネントの追加等)に伴う開発工数を削減することができる。
型変換管理部304は、データ型の型変換を管理する。ここで、各コンポーネントは、自身が扱えるデータ型が予め決まっている。したがって、型変換管理部304は、コンポーネントからの要求に応じて、例えば図6に示す型変換情報テーブル3000を参照して、型変換群305に含まれる型変換を生成する。
そして、型変換管理部304は、生成された型変換に型変換処理の実行を要求する。なお、型変換は、データ型の型変換処理を実行するプログラムやモジュール等により実現され、例えばクラスや関数等で定義される。また、型変換の生成とは、例えばクラスや関数等で定義された型変換を、メモリ(例えばRAM14上)に展開することである。
なお、データ型には、例えば、ストリームデータを示すデータ型「InputStream」、記憶装置等に格納されている電子ファイルのパス(アドレス)を示す「LocalFilePath」、及び電子ファイルの実体を示す「File」等が挙げられる。
ここで、型変換情報テーブル3000について、図6を参照しながら説明する。図6は、型変換情報テーブル3000の一例を示す図である。
図6に示す型変換情報テーブル3000は、データ項目として、変換前のデータ型と、変換後のデータ型と、生成する型変換とを有する。すなわち、型変換情報テーブル3000に格納されている型変換情報は、変換前のデータ型及び変換後のデータ型毎に、当該変換前のデータ型を、当該変換後のデータ型に変換するための型変換が関連付けられた情報である。
型変換群305は、型変換の集合である。型変換群305には、データ型「InputStream」を「LocalFilePath」に変換するための第1の型変換1410が含まれる。なお、型変換群305には、これ以外にも、例えば、データ型「LocalFilePath」を「File」に変換するための第2の型変換等が含まれる。
また、型変換群305に含まれる各型変換は、型変換共通I/F1400を有する。型変換共通I/F1400は、各型変換に対して共通に定義されたAPIであり、型変換を生成するためのAPIと、型変換の型変換処理を実行するためのAPIとが含まれる。
このように、各型変換が型変換共通I/F1400を有することで、型変換の追加等に伴う影響を局所化することができる。すなわち、例えば、型変換管理部304等に影響を与えることなく、型変換の追加等を行うことができる。これにより、本実施形態に係るサービス提供システム10では、型変換の追加等に伴う開発工数を削減することができる。
中間結果管理部306は、中間結果記憶部190に記憶されている中間結果情報190Dを管理する。すなわち、中間結果管理部306は、フロー実行部301からの保存要求に応じて、中間結果情報190Dを作成した上で、作成した中間結果情報190Dを中間結果記憶部190に保存(記憶)する。また、中間結果管理部306は、フロー実行部301からの削除要求に応じて、中間結果記憶部190に記憶されている中間結果情報190Dを削除する。
さらに、中間結果管理部306は、中間結果削除部150からの要求に応じて、中間結果記憶部190に記憶されている中間結果情報190Dのうち、有効期限が経過した中間結果情報190Dを削除する。
ここで、プリント変換サービスを提供するアプリ情報1000に含まれる処理フロー情報1100について、図7を参照しながら説明する。図7は、処理フロー情報1100の一例を示す図である。
図7に示す処理フロー情報1100は、プリント変換サービスを実現する一連の処理(処理フロー)が定義された情報である。
図7に示す処理フロー情報1100には、処理フロー情報1100を識別するフローID1101と、処理フローに含まれる各処理の処理内容が定義されたフロー詳細1102と、中間結果情報190Dの有効期限を算出するための有効秒数1103とが含まれる。
フロー詳細1102には、処理フローに含まれる各処理をそれぞれ定義した処理定義1110及び処理定義1120が含まれる。処理定義1110及び処理定義1120には、処理を実行するためのコンポーネントのコンポーネント名を示す「"component"」と、当該コンポーネントに対するパラメータ情報が定義される「"parameters"」とが含まれる。
具体的には、処理定義1110の「"component"」には、PDLコンポーネント1320のコンポーネント名「"pdl"」が定義されている。また、「"parameters"」には、パラメータ名「"type"」のパラメータ情報と、パラメータ名「"paperSize"」のパラメータ情報と、パラメータ名「"save"」のパラメータ情報が定義されている。
パラメータ名「"type"」のパラメータ情報は、PDLのデータ形式を定義するためのパラメータ情報である。図7に示す例では、パラメータ値「"rpcs"」が定義されている。また、パラメータ名「"paperSize"」のパラメータ情報は、印刷データが印刷される印刷媒体のサイズを定義するためのパラメータ情報である。図7に示す例では、パラメータ値「"A4"」が定義されている。
さらに、パラメータ名「"save"」のパラメータ情報は、中間結果情報190Dを保存するか否かを定義するためのパラメータ情報である。図7に示す例では、中間結果情報190Dを保存することを示すパラメータ値「"true"」が定義されている。これにより、PDLコンポーネント1320の処理結果として出力される電子ファイル(すなわち、印刷データ)を示す中間結果情報190Dを中間結果記憶部190に保存させることができるようになる。
なお、処理定義1110の「"parameters"」には、これら以外にも、例えば、両面印刷するか否かを定義するためのパラメータ情報や集約印刷するか否かを定義するためのパラメータ情報等、種々のパラメータ情報が含まれていても良い。
同様に、処理定義1120の「"component"」には、印刷サービスコンポーネント1310のコンポーネント名「"print_service"」が定義されている。また、「"parameters"」には、パラメータ名「"type"」のパラメータ情報と、パラメータ名「"save"」のパラメータ情報とが含まれる。
パラメータ名「"type"」のパラメータ情報は、PDLのデータ形式を定義するためのパラメータ情報である。図7に示す例では、パラメータ値「"rpcs"」が定義されている。また、パラメータ名「"save"」のパラメータ情報は、中間結果情報190Dを保存するか否かを定義するためのパラメータ情報である。図7に示す例では、中間結果情報190Dを保存しないことを示すパラメータ値「"false"」が定義されている。
なお、各処理定義に定義された処理の実行順は、フロー詳細1102において、上から順に実行される。すなわち、図7に示す処理フロー情報1100に基づく一連の処理(処理フロー)では、処理定義1110に定義された処理、処理定義1120に定義された処理の順で実行される。ただし、これに限られず、処理フロー情報1100には、例えば、各処理定義に定義された処理の実行順を示す情報が定義されていても良い。
また、図7に示す例では、中間結果情報190Dの有効期限を算出するための秒数が有効秒数1103として定義されているが、これに限られず、例えば、中間結果情報190Dの有効期限を算出するための時、分、日付等が定義されていても良い。さらに、これらの有効期限を算出するための情報(時、分、秒、日付等)は、例えば、処理フロー情報1100に基づく一連の処理により実現されるサービスを利用する際に、ユーザが指定することができても良い。
<処理の詳細>
次に、本実施形態に係る情報処理システム1の処理の詳細について説明する。まず、PC端末30のユーザがプリント変換サービスを利用して、印刷データを作成する場合の全体的な処理について、図8を参照しながら説明する。図8は、本実施形態に係るサービス利用の全体処理の一例を示すシーケンス図である。
まず、PC端末30のブラウザ310は、プリント変換サービスのアプリ画面を表示させるための操作(表示操作)を受け付ける(ステップS801)。
PC端末30のブラウザ310は、当該表示操作を受け付けると、プリント変換サービスのアプリ画面を表示するための画面情報の取得要求を、Webサービス処理部120の画面構成部121に送信する(ステップS802)。なお、当該取得要求には、プリント変換サービスを提供するアプリ情報1000のアプリIDが含まれる。
Webサービス処理部120の画面構成部121は、画面情報の取得要求を受信すると、当該取得要求に含まれるアプリIDと関連付けられている画面情報2000を画面情報記憶部170から取得する(ステップS803)。そして、Webサービス処理部120の画面構成部121は、画面情報記憶部170から取得した画面情報2000をブラウザ310に返信する。
ここで、プリント変換サービスのアプリ画面を表示するための画面情報2000について、図9を参照しながら説明する。図9は、画面情報2000の一例を示す図である。
図9に示す画面情報2000は、HTML形式で定義された情報であり、見出し定義2001と、ファイル名選択欄定義2002と、実行ボタン定義2003とが含まれる。このように、画面情報2000は、HTMLタグ等のブラウザ310が解釈可能な形式によりアプリ画面が定義されている。これにより、ブラウザ310は、図9に示す画面情報2000に基づいて、後述するアプリ画面2100を表示することができる。
次に、PC端末30のブラウザ310は、画面構成部121から画面情報2000を受信すると、当該画面情報2000に基づいて、例えば図10に示すアプリ画面2100を表示する(ステップS804)。
図10に示すアプリ画面2100は、図9に示す画面情報2000に基づいて、ブラウザ310により表示された画面である。図10に示すアプリ画面2100には、タイトル2101と、ファイル名選択欄2102と、実行ボタン2103とが含まれる。
ここで、タイトル2101は、例えば、プリント変換サービスを提供するアプリ情報1000のアプリ名である。ファイル名選択欄2102は、印刷データに変換する電子ファイル(すなわち、印刷対象の電子ファイル)を選択するための選択欄である。
なお、タイトル2101及びファイル名選択欄2102は、見出し定義2001及びファイル名選択欄定義2002をブラウザ310がそれぞれ解釈することにより表示される。また、同様に、実行ボタン2103は、実行ボタン定義2003をブラウザ310が解釈することにより表示される。
このように、本実施形態に係るサービス提供システム10は、PC端末30のブラウザ310からの要求に応じて、HTML形式等のブラウザ310が解釈可能な形式で定義された画面情報2000を返信する。そして、PC端末30は、サービス提供システム10から返信された画面情報2000に基づいて、サービスを利用するためのアプリ画面を表示する。したがって、ユーザは、一般的なブラウザ310が搭載されたPC端末30を用いて、サービス提供システム10が提供するサービスを利用することができる。
なお、上記のステップS803において、画面構成部121は、画面情報記憶部170から画面情報2000を取得するものとしたが、これに限られない。画面構成部121は、例えば、アプリ情報1000に基づいて、画面情報2000を生成しても良い。
すなわち、画面構成部121は、例えば、アプリ管理部111を介して、画面情報の取得要求に含まれるアプリIDに関連付けられているアプリ情報1000をアプリ情報記憶部160から取得する。そして、画面構成部121は、アプリ情報1000に含まれる情報(例えば、アプリ名、処理フロー情報1100に定義されているパラメータ情報等)を、予め記憶されている画面情報の雛形に対して定義することで、画面情報2000を生成しても良い。
ここで、図10に示すアプリ画面2100において、ユーザにより、ファイル名選択欄2102からファイル名が選択された上で、実行ボタン2103を押下する操作(実行操作)がなされたものとする。なお、ユーザは、ファイル名選択欄2102において、例えば、PC端末30のHDD18等に記憶された電子ファイルや所定の記憶装置に記憶された電子ファイルのファイル名を選択することができる。
すると、PC端末30のブラウザ310は、当該実行操作を受け付ける(ステップS805)。そして、PC端末30のブラウザ310は、アプリケーションの実行要求を、Webサービス処理部120のアプリ実行部122に送信する(ステップS806)。
なお、当該実行要求には、プリント変換サービスを実現する処理フロー情報1100のフローIDと、ユーザにより選択された電子ファイルとが含まれる。ここで、フローIDは、例えば、図10に示すアプリ画面2100の実行ボタン2103に関連付けられており、ユーザが当該実行ボタン2103を押下することで取得される。
Webサービス処理部120のアプリ実行部122は、アプリケーションの実行要求を受信すると、当該要求を、入出力サービス処理部110のロジック処理部112に送信する(ステップS807)。
次に、入出力サービス処理部110のロジック処理部112は、アプリケーションの実行要求を受信すると、処理フローの実行処理を行う(ステップS808)。すなわち、ロジック処理部112は、当該要求に含まれるフローIDの処理フロー情報1100に基づく一連の処理を実行する。なお、処理フローの実行処理の詳細については後述する。
そして、ロジック処理部112は、処理フローの実行処理の処理結果を、Webサービス処理部120を介して、ブラウザ310に返信する。これにより、本実施形態に係るサービス提供システム10は、処理フロー情報1100に基づく一連の処理(処理フロー)により実現される各種のサービスを提供することができる。
なお、図8に示すサービス利用の全体処理では、ブラウザ310は、Webサービス処理部120を介して、ロジック処理部112にアプリケーションの実行要求を送信しているが、これに限られない。ブラウザ310は、例えば、画面情報2000に定義されたJavaScript等に基づいてWebAPIを呼び出すことにより、直接、ロジック処理部112にアプリケーションの実行要求を送信しても良い。
以降では、処理フローの実行処理(図8のステップS808の処理)の詳細について、図11を参照しながら説明する。図11は、本実施形態に係る処理フローの実行処理の一例を示すシーケンス図である。
まず、フロー実行部301は、アプリ実行部122からアプリケーションの実行要求を受信すると、当該実行要求から電子ファイルを取得する。そして、フロー実行部301は、当該電子ファイルを含むファイルの保存要求をストレージサービス部140に送信する(ステップS1101)。
ストレージサービス部140は、ファイルの保存要求を受信すると、当該保存要求に含まれる電子ファイルをファイル記憶部180に保存する(ステップS1102)。そして、ストレージサービス部140は、当該電子ファイルの保存先パスをフロー実行部301に返信する。
なお、ストレージサービス部140は、ファイルの保存要求を受信すると、例えば、当該保存要求に含まれる電子ファイルの保存先パスを決定した上で、当該保存先パスにより示される記憶領域に電子ファイルを保存する。
次に、フロー実行部301は、アプリケーションの実行要求からフローIDを取得する。そして、フロー実行部301は、当該フローIDを含む処理フローの取得要求をアプリ管理部111に送信する(ステップS1103)。
アプリ管理部111は、処理フローの取得要求を受信すると、当該取得要求に含まれるフローIDの処理フロー情報1100をアプリ情報記憶部160から取得する(ステップS1104)。そして、アプリ管理部111は、アプリ情報記憶部160から取得した処理フロー情報1100をフロー実行部301に返信する。
ここで、以降では、アプリ管理部111は、図7に示す処理フロー情報1100をフロー実行部301に返信したものとして説明する。
フロー実行部301は、処理フロー情報1100をアプリ管理部111から受信すると、当該処理フロー情報1100に基づく一連の処理を識別するジョブIDと、当該一連の処理に含まれる各処理を識別する詳細ジョブIDとを採番する(ステップS1105)。
次に、フロー実行部301は、処理フロー情報1100に基づくコンポーネントの取得要求をコンポーネント管理部302に送信する(ステップS1106)。
すなわち、フロー実行部301は、図7に示す処理フロー情報1100の処理定義1110に含まれる「"component"」に定義されているコンポーネント名「"pdl"」のコンポーネントの取得要求をコンポーネント管理部302に送信する。
コンポーネント管理部302は、コンポーネントの取得要求を受信すると、コンポーネント名「"pdl"」のコンポーネント(すなわち、PDLコンポーネント1320)を生成する(ステップS1107)。なお、PDLコンポーネント1320の生成は、コンポーネント共通I/F1300に定義されたコンポーネントを生成するためのAPIを用いて行うことができる。
そして、コンポーネント管理部302は、生成したPDLコンポーネント1320をフロー実行部301に返信する。すなわち、コンポーネント管理部302は、例えば、PDLコンポーネント1320が展開されたメモリ(例えばRAM14)上のアドレスをフロー実行部301に返信する。
次に、フロー実行部301は、コンポーネント実行要求をPDLコンポーネント1320に送信する(ステップS1108)。なお、当該実行要求には、データと、パラメータ情報とが含まれる。
ここで、データは、データ型「InputStream」として、ストレージサービス部140から返信された保存先パスである。すなわち、フロー実行部301は、ストレージサービス部140から返信された保存先パスを、単に「データ」として(データ型を意識することなく)、PDLコンポーネント1320に渡して処理の実行を要求する。本実施形態では、このようにデータ型を意識しない各種の情報(例えば、保存先パスや各コンポーネントの処理結果を示す情報等)を、単に「データ」と表す。
また、パラメータ情報は、図7に示す処理フロー情報1100の処理定義1110に含まれる「"parameters"」に定義されている各パラメータ情報である。すなわち、パラメータ名「"type"」のパラメータ情報、パラメータ名「"paperSize"」のパラメータ情報、及びパラメータ名「"save"」のパラメータ情報である。
PDLコンポーネント1320は、コンポーネント実行要求を受信すると、型変換要求を型変換管理部304に送信する(ステップS1109)。なお、当該型変換要求には、データと、PDLコンポーネント1320が扱うことができるデータ型を示す「LocalFilePath」の指定とが含まれる。
型変換管理部304は、型変換要求を受信すると、当該型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するか否かをチェックする(ステップS1110)。
ここで、型変換要求に含まれるデータのデータ型は「InputStream」である一方、指定されたデータ型は「LocalFilePath」である。したがって、型変換管理部304は、型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致しないものと判断する。
すると、型変換管理部304は、型変換情報テーブル3000を参照して、データ型「InputStream」を「LocalFilePath」に変換するための型変換を特定する(ここでは、第1の型変換1410が特定される。)。そして、型変換管理部304は、特定した第1の型変換1410を生成する(ステップS1111)。なお、第1の型変換1410の生成は、型変換共通I/F1400を用いて行うことができる。
次に、型変換管理部304は、型変換処理の実行要求を第1の型変換1410に送信する(ステップS1112)。なお、当該実行要求には、データが含まれる。
第1の型変換1410は、型変換の実行要求を受信すると、当該実行要求に含まれるデータのデータ型を「InputStream」から「LocalFilePath」に変換する型変換処理を行う(ステップS1113)。そして、第1の型変換1410は、データ型が変換されたデータを型変換管理部304に返信する。
そして、型変換管理部304は、第1の型変換1410からデータを受信すると、当該データをPDLコンポーネント1320に送信する(ステップS1114)。
PDLコンポーネント1320は、型変換管理部304からデータを受信すると、ファイルの取得要求をストレージサービス部140に送信する(ステップS1115)。なお、当該取得要求には、保存先パス(すなわち、型変換管理部304から受信したデータ)が含まれる。
ストレージサービス部140は、ファイルの取得要求を受信すると、当該取得要求に含まれる保存先パスにより示される電子ファイルをファイル記憶部180から取得する(ステップS1116)。これにより、上記のステップS1106において、ファイル記憶部180に保存された電子ファイルが取得される。
そして、ストレージサービス部140は、取得した電子ファイルをPDLコンポーネント1320に返信する。
次に、PDLコンポーネント1320は、電子ファイルを受信すると、当該電子ファイルに対して処理を実行する(ステップS1117)。すなわち、PDLコンポーネント1320は、パラメータ情報を用いて、ドキュメントサービス部130のPDL変換部131により、当該電子ファイルを変換して、印刷データを作成する。なお、パラメータ名「"type"」のパラメータ情報に含まれるパラメータ値「"rpcs"」より、PDLコンポーネント1320は、データ形式が「RPCS」である印刷データを作成する。
次に、PDLコンポーネント1320は、処理を実行すると、ファイルの保存要求をストレージサービス部140に送信する(ステップS1118)。なお、当該保存要求には、上記のステップS1117で作成された印刷データを示す電子ファイルが含まる。
ストレージサービス部140は、ファイルの保存要求を受信すると、当該保存要求に含まれる電子ファイルをファイル記憶部180に保存する(ステップS1119)。そして、ストレージサービス部140は、当該電子ファイルの保存先パスをフロー実行部301に返信する。
その後、PDLコンポーネント1320は、保存先パスを受信すると、当該保存先パスを示すデータをフロー実行部301に返信する。
次に、フロー実行部301は、処理フロー情報1100に基づいて、中間結果の保存要否を判定する(ステップS1120)。すなわち、フロー実行部301は、処理フロー情報1100の処理定義1110に含まれる「"parameters"」に定義されているパラメータ名「"save"」のパラメータ情報について、パラメータ値が「"true"」であるか否かを判定する。
ここで、図7に示す処理フロー情報1100の処理定義1110に含まれる「"parameters"」に定義されているパラメータ名「"save"」のパラメータ情報について、パラメータ値は、「"true"」である。したがって、フロー実行部301は、中間結果の保存が必要であると判定する。
そして、中間結果の保存が必要であると判定した場合、フロー実行部301は、中間結果の保存要求を中間結果管理部306に送信する(ステップS1121)。なお、当該保存要求には、フローIDと、ジョブIDと、詳細ジョブIDと、データ(すなわち、印刷データの保存先パス)と、有効期限とが含まれる。ここで、有効期限は、図7に示す処理フロー情報1100の有効秒数1103から算出される。すなわち、有効期限は、例えば、現在の日時に対して、有効秒数1103を加算することで算出される。
なお、中間結果管理部306は、例えば、中間結果の保存要求に含まれる保存先パスと同一の保存先パスを含む中間結果情報190Dが中間結果記憶部190に記憶されている場合、中間結果の保存を行わないようにしても良い。
中間結果管理部306は、中間結果の保存要求を受信すると、当該保存要求に含まれるフローIDと、ジョブIDと、詳細ジョブIDと、データと、有効期限と基づいて中間結果情報190Dを作成する。そして、中間結果管理部306は、作成した中間結果情報190Dを中間結果記憶部190に保存する(ステップS1122)。その後、中間結果管理部306は、保存結果をフロー実行部301に返信する。
ここで、中間結果記憶部190に保存されている中間結果情報190Dの詳細について、図12を参照しながら説明する。図12は、中間結果情報190Dの一例を示す図である。
図12に示す中間結果情報190Dは、フローIDと、ジョブIDと、詳細ジョブIDと、有効期限と、保存先パスとが関連付けられた情報である。ここで、保存先パスには、中間結果の保存要求に含まれるデータが格納される。
なお、図12に示す中間結果情報190Dには、ファイル記憶部180に記憶されている電子ファイルの保存先パスが含まれるものとしたが、これに限られない。中間結果情報190Dは、例えば、保存先パスの代わりに、当該保存先パスにより示される電子ファイルが含まれていても良い。
次に、フロー実行部301は、処理フロー情報1100に基づくコンポーネントの取得要求をコンポーネント管理部302に送信する(ステップS1123)。
すなわち、フロー実行部301は、図7に示す処理フロー情報1100の処理定義1120に含まれる「"component"」に定義されているコンポーネント名「"print_service"」のコンポーネントの取得要求をコンポーネント管理部302に送信する。
コンポーネント管理部302は、コンポーネントの取得要求を受信すると、コンポーネント名「"print_service"」のコンポーネント(すなわち、印刷サービスコンポーネント1310)を生成する(ステップS1124)。なお、印刷サービスコンポーネント1310の生成は、コンポーネント共通I/F1300に定義されたコンポーネントを生成するためのAPIを用いて行うことができる。
そして、コンポーネント管理部302は、生成した印刷サービスコンポーネント1310をフロー実行部301に返信する。すなわち、コンポーネント管理部302は、例えば、印刷サービスコンポーネント1310が展開されたメモリ(例えばRAM14)上のアドレスをフロー実行部301に返信する。
次に、フロー実行部301は、コンポーネント実行要求を印刷サービスコンポーネント1310に送信する(ステップS1125)。なお、当該実行要求には、データと、パラメータ情報とが含まれる。
ここで、データは、PDLコンポーネント1320から返信されたデータ(すなわち、印刷データの保存先パス)である。
また、パラメータ情報は、図7に示す処理フロー情報1100の処理定義1120に含まれる「"parameters"」に定義されている各パラメータ情報である。すなわち、パラメータ名「"type"」のパラメータ情報、及びパラメータ名「"save"」のパラメータ情報である。
印刷サービスコンポーネント1310は、コンポーネント実行要求を受信すると、型変換要求を型変換管理部304に送信する(ステップS1126)。なお、当該型変換要求には、データと、印刷サービスコンポーネント1310が扱うことができるデータ型を示す「LocalFilePath」の指定とが含まれる。
型変換管理部304は、型変換要求を受信すると、当該型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するか否かをチェックする(ステップS1127)。
ここで、型変換要求に含まれるデータのデータ型は「LocalFilePath」であり、指定されたデータ型も「LocalFilePath」である。したがって、型変換管理部304は、型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するものと判断する。
すると、型変換管理部304は、型変換要求に含まれるデータを印刷サービスコンポーネント1310に送信する(ステップS1128)。このように、データ型のチェック(ステップS1127の処理)において、データのデータ型と、指定されたデータ型とが一致すると判断された場合には、型変換管理部304は、型変換の生成を行わない。
印刷サービスコンポーネント1310は、型変換管理部304からデータを受信すると、処理を実行する(ステップS1129)。すなわち、印刷サービスコンポーネント1310は、データにより示される保存先パスを所定の記憶領域に記憶させる。
そして、印刷サービスコンポーネント1310は、処理結果を示すデータをフロー実行部301に返信する。
次に、フロー実行部301は、処理フロー情報1100に基づいて、中間結果の保存要否を判定する(ステップS1130)。すなわち、フロー実行部301は、処理フロー情報1100の処理定義1120に含まれる「"parameters"」に定義されているパラメータ名「"save"」のパラメータ情報について、パラメータ値が「"true"」であるか否かを判定する。
ここで、図7に示す処理フロー情報1100の処理定義1110に含まれる「"parameters"」に定義されているパラメータ名「"save"」のパラメータ情報について、パラメータ値は、「"false"」である。したがって、フロー実行部301は、中間結果の保存が不要であると判定する。
以上により、図7に示す処理フロー情報1100に基づく一連の処理の実行が完了する。そして、一連の処理の実行が完了した場合、フロー実行部301は、中間結果を保存していないファイルの削除要求をストレージサービス部140に送信する(ステップS1131)。なお、当該削除要求には、削除対象の電子ファイルの保存先パスが含まれる。
すなわち、フロー実行部301は、例えば、処理フロー情報1100を参照して、パラメータ名「"save"」のパラメータ情報のパラメータ値が「"false"」である処理により保存された電子ファイルの保存先パスを含む削除要求を送信する。換言すれば、フロー実行部301は、一連の処理によりファイル記憶部180に保存された電子ファイルのうち、中間結果記憶部190に記憶された中間結果情報190Dに含まれる保存先パスにより示される電子ファイル以外の電子ファイルの削除を要求する。
そして、ストレージサービス部140は、ファイルの削除要求を受信すると、当該削除要求に含まれる保存先パスにより示される電子ファイルをファイル記憶部180から削除する(ステップS1132)。これにより、一連の処理に含まれる各処理により保存された電子ファイルのうち、中間結果情報190Dを保存していない電子ファイルがファイル記憶部180から削除される。
したがって、本実施形態に係るサービス提供システム10では、プリント変換サービスを実現する一連の処理が完了した後に、上記のステップS1119でファイル記憶部180に保存された電子ファイル(印刷データ)が削除されないようにすることができる。
次に、画像形成装置である機器20を用いて、ユーザが印刷データを印刷する場合について、図13を参照しながら説明する。図13は、本実施形態に係る印刷処理の一例を示すシーケンス図である。
まず、印刷サービスコンポーネント1310は、ファイルの取得要求をストレージサービス部140に送信する(ステップS1301)。なお、当該取得要求には、上記のステップ1129で所定の記憶領域に記憶された保存先パスが含まれる。
次に、ストレージサービス部140は、ファイルの取得要求を受信すると、当該取得要求に含まれる保存先パスにより示される電子ファイル(すなわち、印刷データ)をファイル記憶部180から取得する(ステップS1302)。そして、ストレージサービス部140は、取得した印刷データを印刷サービスコンポーネント1310に返信する。
次に、印刷サービスコンポーネント1310は、印刷データを受信すると、印刷要求を印刷処理部210に送信する(ステップS1303)。なお、印刷要求には、印刷データが含まれる。
ここで、上記のステップS1301〜ステップS1303では、印刷サービスコンポーネント1310は、印刷データを取得した上で、印刷要求を機器20に送信するものとしたが、これに限られない。例えば、印刷サービスコンポーネント1310は、機器20からの印刷要求に応じて、ストレージサービス部140から印刷データを取得して、当該印刷データを機器20に返信しても良い。このように、本実施形態に係るサービス提供システム10は、機器20に対して、印刷データを含む印刷要求を送信しても良いし(プッシュプリント)、機器20から印刷要求を受信したことに応じて、印刷データを返信しても良い(プルプリント)。
機器20の印刷処理部210は、印刷要求を受信すると、当該印刷要求に含まれる印刷データを、印刷媒体に印刷する(ステップS1304)。そして、印刷処理部210は、印刷結果を印刷サービスコンポーネント1310に返信する。これにより、画像形成装置である機器20において、印刷データの印刷を行うことができる。
なお、本実施形態では、画像形成装置である機器20において印刷データを印刷する場合について説明したが、これに限られず、例えば、機器20は、プロジェクタやデジタルサイネージ等であっても良い。この場合、例えば、上記のステップS1303において、表示サービスコンポーネントが、表示データ等を含む表示要求を、プロジェクタやデジタルサイネージ等である機器20に送信すれば良い。
次に、有効期限が経過した中間結果情報190Dを中間結果記憶部190から削除する場合について、図14を参照しながら説明する。図14は、本実施形態に係る中間結果情報の削除処理の一例を示すシーケンス図である。なお、図14に示す中間結果情報の削除処理は、例えば、所定の時間毎に実行される。ただし、これに限られず、例えば、所定のスケジュールに従って、図14に示す中間結果情報の削除処理が実行されても良い。
まず、中間結果削除部150は、有効期限を経過した中間結果の削除要求を、ロジック処理部112の中間結果管理部306に送信する(ステップS1401)。
次に、中間結果管理部306は、有効期限が経過した中間結果情報190Dを中間結果記憶部190から取得する(ステップS1402)。すなわち、中間結果管理部306は、中間結果記憶部190に記憶されている中間結果情報190Dのうち、有効期限が経過している中間結果情報190Dを取得する。
中間結果情報190Dが中間結果記憶部190から取得されると、中間結果管理部306は、取得した中間結果情報190D毎に、ファイルの削除要求をストレージサービス部140に送信する(ステップS1403)。なお、当該削除要求には、中間結果情報190Dの保存先パスが含まれる。
次に、ストレージサービス部140は、ファイルの削除要求を受信すると、当該削除要求に含まれる保存先パスにより示される電子ファイルをファイル記憶部180から削除する(ステップS1404)。これにより、有効期限が経過した中間結果情報190Dの保存先パスにより示される電子ファイルが削除される。そして、ストレージサービス部140は、削除結果を中間結果管理部306に返信する。
次に、中間結果管理部306は、上記のステップS1402で取得された中間結果情報190Dを中間結果記憶部190から削除する(ステップS1405)。これにより、有効期限が経過した中間結果情報190Dが中間結果記憶部190から削除される。
以上のように、本実施形態に係るサービス提供システム10では、処理フロー情報1100に定義されたパラメータ情報に応じて、当該処理フロー情報1100に基づく一連の処理に含まれる各処理の処理結果を保存することができる。このため、本実施形態に係るサービス提供システム10では、一連の処理に含まれる各処理の処理結果が、当該一連の処理の実行後に削除される場合であっても、任意の処理結果を利用したサービスを提供することができるようになる。
ここで、処理フロー情報1100の他の例(その1)について、図15を参照しながら説明する。図15は、処理フロー情報1100の他の例(その1)を示す図である。
図15に示す処理フロー情報1100には、処理定義毎に有効秒数が定義されている。すなわち、処理定義1110に含まれる「"parameters"」には、有効秒数1111が定義されている。同様に、処理定義1120に含まれる「"parameters"」には、有効秒数1121が定義されている。これにより、図15に示す処理フロー情報1100に基づく一連の処理では、当該一連の処理に含まれる各処理毎に、異なる有効期限の中間結果情報190Dを作成することができるようになる。
また、処理フロー情報1100の他の例(その2)について、図16を参照しながら説明する。図16は、処理フロー情報1100の他の例(その2)を示す図である。
図16に示す処理フロー情報1100には、処理定義1110に含まれる「"parameters"」にファイル定義1112が定義されている。ファイル定義1112には、例えば、各コンポーネントの処理結果を示す電子ファイルがファイル記憶部180に保存される場合におけるファイル名等を定義することができる。なお、ファイル定義1112には、これ以外にも、例えば、ファイルサイズ等の種々の書誌情報を定義することができる。
これにより、図16に示す処理フロー情報1100に基づく一連の処理では、PDLコンポーネント1320の処理結果としてファイル記憶部180に保存される電子ファイルのファイル名等を指定することができるようになる。
ここで、図16に示す処理フロー情報1100に基づく一連の処理において、PDLコンポーネント1320の中間結果情報190Dについて、図17を参照しながら説明する。図17は、中間結果情報190Dの他の例を示す図である。
図17に示す中間結果情報190Dには、さらに、テキストが含まれる。テキストには、処理定義1110に含まれる「"parameters"」に定義されたファイル定義1112の内容が格納される。また、保存先パスには、ファイル定義1112に定義されたファイル名(すなわち、「"fileXYZ"」)の印刷データの保存先パスが格納されている。
このように、本実施形態に係るサービス提供システム10では、処理フロー情報1100にファイル定義を定義することで、当該ファイル定義に定義されたファイル名等の電子ファイルをファイル記憶部180に保存することができるようになる。
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。