以下、本発明を実施するための形態の一例として、情報処理システムと情報処理システムが行うフロー設定方法について図面を参照しながら説明する。
<処理フローの設定の概略>
本実施形態では、処理内容が類似している複数の処理がある場合に複数の処理フローを作成するのではなく、処理内容が類似している複数の処理を含む1つの処理フローを作成できる情報処理システムについて説明する。これにより、1つの処理フロー内で処理内容が類似している複数の処理を開発者が設定できるため、開発者の作業負担を減らすことができる。なお、この「処理」は後述するコンポーネントに相当する。処理フローとは一連の処理をいう。
図1を用いて、開発者が行う処理フローの設定作業の概略を説明する。図1は、開発者が操作するPC(パーソナルコンピュータ)端末等が表示する処理フロー設定画面G800の一例である。PC端末はWebアプリを実行している。図1(a)では横方向に並んだ3つのアイコンにより以下の処理フローが登録されている。1つのアイコンは1つの処理に対応し、上記のコンポーネントに相当する。
OCR→ファイルアップロード(外部ストレージサービスA)→メール送信
開発者が「外部ストレージサービスA(第1の外部サービスの一例)」とは別のストレージサービスを処理フローに追加したい場合を考える。図1(b)に示すように、開発者は処理のリストから、「外部ストレージサービスB(第2の外部サービスの一例)」というストレージサービスのアイコンをマウスやタッチパネルなどのポインティングデバイス320で選択する。そして、次に、「外部ストレージサービスA」というストレージサービスをポインティングデバイス320で選択する。この2回のポインティングデバイス320の操作が、2つの処理(ストレージサービスに対するファイルアップロード)をまとめて1つの処理フローに設定する操作に対応する。
PC端末はこの操作を受け付けて、「外部ストレージサービスA」と「外部ストレージサービスB」のストレージサービスを1つにまとめる。図1(c)はPC端末が2つのストレージサービスをまとめた状態の画面例である。「外部ストレージサービスA」と「外部ストレージサービスB」のファイルアップロードサービスが枠330で囲まれている。この枠330は、
(i) OCR
(ii) ファイルアップロード(外部ストレージサービスA) 及び/又は ファイルアップロード(外部ストレージサービスB)
(iii) メール送信
という処理フローをエンドユーザが選択的に実行できることを意味している。後述するように、エンドユーザは処理フローでどちらのストレージサービスを使用するか(又は両方)を選択することができる。ストレージサービスとして「外部ストレージサービスA」を選択した場合は、処理フローの実行時に「外部ストレージサービスA」に電子ファイルがアップロードされ、ストレージサービスとして「外部ストレージサービスB」を選択した場合は「外部ストレージサービスB」に電子ファイルがアップロードされる。
このように、本実施形態の情報処理システムは1つの処理フローに、処理内容が類似している複数のサービスをまとめることができ、開発者の負担を低減できる。
<用語について>
サービス提供システムとは複数の処理が組み合わせられた処理フローを実行する1つ以上の情報処理装置である。クラウド上で処理を実行するクラウドサービスでも、ローカルネットワークで処理を実行するオンプレミスサービスでもよい。また、両者が組み合わされてもよい。
処理内容が類似している複数の所定処理とは、異なる提供元が同種のサービスとして提供する処理をいう。類似している処理には同じ処理が含まれていてもよい。エンドユーザから見て目的のサービスを得られる処理であれば類似している所定処理に相当する場合がある。処理内容が類似している複数の所定処理は、例えば後述するオペレーションが同じコンポーネントをいう。
本実施形態では、エンドユーザとは日常業務で処理フローを実行する者をいう。開発者とは主にエンドユーザが機器を円滑に使用できるように保守等を行う者であり、例えばカスタマーエンジニアやソリューションセールスなどをいう。エンドユーザが行う作業は機器を操作したりWebページからアプリケーションを簡単にカスタマイズしたりするなどの作業でよい。開発者が行う作業もWebページを介して処理フロー及びアプリケーションを登録する作業でよく、プログラム言語の知識は不要である。
複数の所定処理を受け付けた旨を表示するとは2つの処理が1つの処理フローにまとめられたことを視覚的に明らかにすることをいう。例えば、上記の枠330で囲む方法がある。
<システム構成>
本実施形態に係る情報処理システム1のシステム構成について、図2を参照しながら説明する。図2は、本実施形態に係る情報処理システム1の一例のシステム構成を示す図である。
図2に示す情報処理システム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」等と添え字を用いて記載する。
また、図2に示す情報処理システム1の構成は一例であって、他の構成であっても良い。例えば、本実施形態に係る情報処理システム1には、電子データの入力及び出力の少なくとも一方を行う各種機器が含まれ、これらの機器がサービス提供システム10により提供される各種サービスを利用しても良い。
<ハードウェア構成>
次に、本実施形態に係る情報処理システム1に含まれるサービス提供システム10及びPC端末30のハードウェア構成について、図3を参照しながら説明する。図3は、本実施形態に係るサービス提供システム10及びPC端末30の一例のハードウェア構成を示す図である。なお、サービス提供システム10及びPC端末30は、同様のハードウェア構成を有しているため、以降では、主に、サービス提供システム10のハードウェア構成について説明する。
図3に示すサービス提供システム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は、図3に示すハードウェア構成を有することにより、後述するような各種処理を実現できる。
次に、本実施形態に係る情報処理システム1に含まれる機器20が画像形成装置である場合のハードウェア構成について、図4を参照しながら説明する。図4は、本実施形態に係る機器20の一例のハードウェア構成を示す図である。
図4に示す機器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は、図4に示すハードウェア構成を有することにより、後述するような各種処理を実現できる。
<サービス提供システムが提供するサービス>
次に、本実施形態に係るサービス提供システム10が提供するサービスについて説明する。なお、以降では、機器20が画像形成装置であるものとして説明する。
本実施形態では、機器20において原稿をスキャンすることにより生成された電子ファイル(画像ファイル)にOCR処理を行った上で、所定の言語に翻訳して、メール配信するサービスを「スキャン翻訳サービス」と表す。また、機器20が原稿をスキャンして生成した電子ファイル(画像ファイル)をストレージサービスにアップロードしてメール配信するサービスを「スキャンアップロードサービス」と表す。そして、本実施形態では、サービス提供システム10がスキャン翻訳サービスとスキャンアップロードサービスを提供する場合について説明する。
ここで、サービス提供システム10がスキャン翻訳サービスを提供するには、機器20がスキャン翻訳サービスを利用するためのアプリケーション(後述するアプリ情報1000)をサービス提供システム10に登録する必要がある。アプリケーションとはエンドユーザが業務に合わせて処理フローのパラメータを設定した、サービスを利用するためのプログラムである。
ただし、サービス提供システム10により提供されるサービスは、これらに限られない。サービス提供システム10は、例えば、機器20において原稿をスキャンすることにより生成された電子ファイルを暗号化した上で、メール配信するサービスを提供しても良い。
同様に、サービス提供システム10は、例えば、機器20において原稿をスキャンすることにより生成された電子ファイルに所定の情報を付加した上で、FAX送信するサービスを提供しても良い。
<機能構成>
次に、本実施形態に係る情報処理システム1の機能構成について、図5を参照しながら説明する。図5は、本実施形態に係る情報処理システムの一例の機能構成を示す図である。
図5に示すPC端末30は、例えばCPU16等により実行されるブラウザ310を有する。PC端末30のユーザは、ブラウザ310を用いて、「スキャン翻訳サービス」等の各種サービスを利用するためのアプリケーションをサービス提供システム10に登録することができる。
ブラウザ310は、通信部311、操作受付部312、表示制御部313、判断部314、及び、フロー作成部315を有している。通信部311はサービス提供システム10と各種の情報を送受信する。例えば、ブラウザ310が表示する画面の画面情報をサービス提供システム10から受信し、開発者が設定した情報をサービス提供システム10に送信する。操作受付部312はPC端末30に対する開発者の各種の操作を受け付ける。表示制御部313は画面情報に基づいて表示装置12に各種の画面を表示する。
判断部314は処理フロー設定画面G800にすでに配置されているコンポーネントと、開発者が配置したコンポーネントのオペレーションが同じかどうかを判断する。オペレーションについては後述する。フロー作成部315はフロー情報を作成する。また、判断部314が2つのコンポーネントが同じオペレーションであると判断するとコンポーネントグループを作成する。
図5に示す機器20は、例えばCPU31等により実行されるブラウザ210を有する。機器20のユーザは、ブラウザ210を用いて、「スキャン翻訳サービス」等の各種サービスを利用することができる。すなわち、機器20は、ブラウザ210を有していれば良く、例えば、サービス提供システム10が提供する各種サービスを利用するための専用のアプリケーションプログラム等を有している必要はない。
ブラウザ210は一般的な機能として、通信部211、操作受付部212、及び、表示制御部213を有している。通信部211はサービス提供システム10と各種の情報を送受信する。例えば、ブラウザ210が表示する画面の画面情報をサービス提供システム10から受信し、エンドユーザが設定した情報をサービス提供システム10に送信する。操作受付部212は機器20に対するエンドユーザの各種の操作を受け付ける。表示制御部213は画面情報に基づいて操作パネル22に各種の画面を表示する。
図5に示すサービス提供システム10は、入出力サービス処理部110と、Webサービス処理部120と、ドキュメントサービス部130と、ポータルサービス部140とを有する。これら各機能部は、サービス提供システム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に要求する。
アプリ情報記憶部150は、アプリ情報1000を記憶する。アプリ情報1000は、当該アプリ情報1000を識別するアプリIDと関連付けてアプリ情報記憶部150に記憶されている。なお、アプリIDは、例えば、アプリ情報1000のURL(Uniform Resource Locator)、又はアプリ情報1000のURLに含まれる識別情報等である。
ここで、アプリ情報1000には、処理フロー情報1100と、アプリ設定情報1200と、アプリ関連情報1300とが含まれる。例えば、スキャン翻訳サービスを提供するアプリ情報1000には、当該サービスを実現する一連の処理が定義された処理フロー情報1100と、当該アプリ情報1000の各種設定が定義されたアプリ設定情報1200とが含まれる。更に、コンポーネントグループを有する処理フローを実行するアプリケーションのアプリ情報1000にはアプリ関連情報1300が含まれる。
以降では、スキャン翻訳サービスを提供するアプリ情報1000を「スキャン翻訳アプリケーション」とも表す。
なお、アプリ情報1000には、2以上の処理フロー情報1100と、2以上のアプリ設定情報1200と、2つ以上のアプリ関連情報1300が含まれていても良い。
処理フロー情報1100は、上述したように、アプリ情報1000により提供されるサービスを実現する一連の処理(処理フロー)が定義された情報である。なお、処理フロー情報1100の詳細については後述する。
また、アプリ設定情報1200は、上述したように、アプリケーション(アプリ情報1000)の各種設定が定義された情報である。なお、アプリ設定情報1200の詳細については後述する。
アプリ関連情報1300は、アプリケーションで実行される処理フローに定義されたコンポーネントグループのうちどのコンポーネントが実行されるかが設定された情報である。なお、アプリ関連情報1300の詳細については後述する。
アプリ画面情報記憶部160は、アプリ画面情報2000を記憶する。アプリ画面情報2000は、アプリIDと関連付けてアプリ画面情報記憶部160に記憶されている。
ポータル画面情報記憶部170は、ポータル画面情報3000を記憶する。ポータル画面情報3000は、ポータルトップ画面やアプリケーション登録画面、管理者用アプリ設定画面、個人用アプリ設定画面(ログイン画面やメイン画面も含む)等のURLと関連付けてポータル画面情報記憶部170に記憶されている。
なお、入出力サービス処理部110、Webサービス処理部120、ドキュメントサービス部130、及びポータルサービス部140等は、それぞれが異なる情報処理装置により実現されていても良い。
ここで、ロジック処理部112の詳細な機能構成について、図6を参照しながら説明する。図6は、本実施形態に係るロジック処理部112の一例の機能構成を示す図である。
図6に示すロジック処理部112は、フロー実行部301と、コンポーネント管理部302と、コンポーネント群303と、型変換管理部304と、型変換群305とを有する。また、ロジック処理部112は、型変換情報テーブル4000を有する。
フロー実行部301は、アプリ実行部122からアプリケーションの実行要求を受信すると、当該実行要求に対応する処理フロー情報1100をアプリ管理部111から取得する。そして、フロー実行部301は、アプリ管理部111から取得した処理フロー情報1100に基づく一連の処理(処理フロー)を実行する。
ここで、処理フロー情報1100に基づく一連の処理は、当該一連の処理に含まれる各処理を実行するためのコンポーネントを組み合わせることにより実行される。なお、コンポーネントは、所定の機能を実現する処理を実行するためのプログラムやモジュール等により実現され、例えばクラスや関数等で定義される。
コンポーネント管理部302は、コンポーネントを管理する。コンポーネント管理部302は、フロー実行部301からの要求に応じて、コンポーネントを生成すると共に、生成したコンポーネントをフロー実行部301に返信する。なお、コンポーネントの生成とは、例えばクラスや関数等で定義されたコンポーネントを、メモリ(例えばRAM14)上に展開することである。
コンポーネント群303は、コンポーネントの集合である。コンポーネント群303には、OCRコンポーネント1501と、翻訳コンポーネント1502と、メール配信コンポーネント1503と、ファイルアップロード(外部ストレージサービスA)コンポーネント1504と、ファイルアップロード(外部ストレージサービスB)コンポーネント1505が含まれる。
OCRコンポーネント1501は、電子ファイル(画像ファイル)をOCR処理するためのコンポーネントである。OCRコンポーネント1501は、ドキュメントサービス部130のOCR処理部131にOCR処理を要求することにより、電子ファイルのOCR処理を行う。
翻訳コンポーネント1502は、テキストファイル等の電子ファイルにおいて、所定の言語で記載されている文書を他の言語に翻訳するためのコンポーネントである。メール配信コンポーネント1503は、指定されたメールアドレス宛にメール配信するためのコンポーネントである。メール配信コンポーネント1503は、ドキュメントサービス部130のメール配信部132もメール配信処理を要求することにより、指定されたメールアドレス宛にメールを配信する。
ファイルアップロード(外部ストレージサービスA)コンポーネント1504は「外部ストレージサービスA」に電子ファイルをアップロードするコンポーネントであり、ファイルアップロード(外部ストレージサービスB)コンポーネント1505は「外部ストレージサービスB」に電子ファイルをアップロードするコンポーネントである。
このように、各コンポーネントは、所定の機能を実現する処理を実行する。なお、コンポーネント群303には、上記のコンポーネント以外にも、例えば、電子ファイルの暗号化や復号を行うための暗号化・復号コンポーネント、電子ファイルを圧縮するための圧縮コンポーネント、電子ファイルをアップロードするファイルアップロードコンポーネント等の各種のコンポーネントが含まれる。
また、コンポーネント群303に含まれる各コンポーネントは、コンポーネント共通I/F1500を有する。コンポーネント共通I/F1500は、各コンポーネントに対して共通に定義されたAPI(Application Programming Interface)であり、コンポーネントを生成するためのAPIと、コンポーネントの処理を実行するためのAPIとが含まれる。
このように、各コンポーネントがコンポーネント共通I/F1500を有することで、コンポーネントの追加等に伴う影響を局所化することができる。すなわち、例えば、フロー実行部301やコンポーネント管理部302等に影響を与えることなく、コンポーネントの追加等を行うことができる。これにより、本実施形態に係るサービス提供システム10では、所定の機能の追加等(すなわち、当該機能を実現する処理を実行するためのコンポーネントの追加等)に伴う開発工数を削減することができる。
型変換管理部304は、データ型の型変換を管理する。ここで、各コンポーネントは、自身が扱えるデータ型が予め決まっている。したがって、型変換管理部304は、コンポーネントからの要求に応じて、例えば図6に示す型変換情報テーブル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に示す処理フロー情報1100は、スキャン翻訳サービスを実現する一連の処理(処理フロー)が定義された情報である。
図8に示す処理フロー情報1100には、処理フロー情報1100を識別するフロー名1101と、処理フローに含まれる各処理の処理内容が定義されたフロー詳細1102とが含まれる。
フロー詳細1102には、処理フローに含まれる各処理をそれぞれ定義した詳細処理定義1110と、詳細処理定義1120と、詳細処理定義1130とが含まれる。詳細処理定義1110~詳細処理定義1130には、詳細処理定義を識別する詳細処理名を示す「"detailName"」と、処理を実行するためのコンポーネントのコンポーネント名を示す「"component"」と、当該コンポーネントに対するパラメータ情報が定義される「"parameters"」とが含まれる。
具体的には、詳細処理定義1110の「"detailName"」には、「"detail0"」が定義されている。また、詳細処理定義1110の「"component"」には、OCRコンポーネント1501のコンポーネント名「"ocr"」が定義されている。更に、詳細処理定義1110の「"parameters"」には、パラメータ名「"language"」のパラメータ情報等が定義されている。
パラメータ名「"language"」のパラメータ情報は、OCR処理の言語(例えば、「"Japanese"」や「"English"」等)をパラメータ値として設定するパラメータ情報である。
同様に、詳細処理定義1120の「"detailName"」には、「"detail1"」が定義されている。また、詳細処理定義1120の「"component"」には、翻訳コンポーネント1502のコンポーネント名「"translation"」が定義されている。更に、詳細処理定義1110の「"parameters"」には、パラメータ名「"from"」のパラメータ情報、及びパラメータ名「"to"」のパラメータ情報等が定義されている。
パラメータ名「"from"」のパラメータ情報は、翻訳元の言語(例えば、「"English"」)をパラメータ値として設定するパラメータ情報である。また、パラメータ名「"to"」のパラメータ情報は、翻訳先の言語(例えば、「"Japanese"」)をパラメータ値として設定するパラメータ情報である。
また、同様に、詳細処理定義1130の「"detailName"」には、「"detai21"」が定義されている。また、詳細処理定義1130の「"component"」には、メール配信コンポーネント1503のコンポーネント名「"mail"」が定義されている。更に、詳細処理定義1130の「"parameters"」には、パラメータ名「"address"」のパラメータ情報等が定義されている。
パラメータ名「"address"」のパラメータ情報は、メール送信先のメールアドレスをパラメータ値として設定するパラメータ情報である。
なお、各詳細処理定義に定義された処理の実行順は、フロー詳細1102において、上から順に定義される。すなわち、図8に示す処理フロー情報1100に基づく一連の処理(処理フロー)では、詳細処理定義1110に定義された処理、詳細処理定義1120に定義された処理、詳細処理定義1130に定義された処理の順で実行される。ただし、これに限られず、処理フロー情報1100には、例えば、各詳細処理定義に定義された処理の実行順を示す情報が定義されていても良い。
また、図8に示す例では、各パラメータ情報のパラメータ値は設定されていないが、これに限られず、デフォルトとなるパラメータ値が設定されていても良い。
<処理の詳細>
次に、本実施形態に係る情報処理システム1の処理の詳細について説明する。開発者がPC端末30を操作して、スキャン翻訳アプリケーションをサービス提供システム10に登録する処理について、図9を参照しながら説明する。図9は、アプリケーションの登録処理の一例を示すシーケンス図である。
まず、PC端末30のブラウザ310の操作受付部312は、ポータルトップ画面を表示させるための操作(ポータルトップ画面の表示操作)を受け付ける(ステップS801)。なお、PC端末30のユーザは、例えば、ポータルトップ画面のURLをブラウザ310のアドレスバーに入力することで、ポータルトップ画面の表示操作を行うことができる。
PC端末30のブラウザ310の操作受付部312がポータルトップ画面の表示操作を受け付けると、通信部311がポータルトップ画面の表示要求を、ポータルサービス部140のUI提供部141に送信する(ステップS802)。
ポータルサービス部140のUI提供部141は、ポータルトップ画面の取得要求を受信すると、ポータルトップ画面のポータル画面情報をポータル画面情報記憶部170から取得する(ステップS803)。そして、UI提供部141は、ポータル画面情報記憶部170から取得したポータル画面情報をブラウザ310に返信する。
PC端末30のブラウザ310の表示制御部313は、ポータルトップ画面のポータル画面情報を受信すると、当該ポータル画面情報に基づいて、例えば図10に示すポータルトップ画面G100を表示する(ステップS804)。
図10に示すポータルトップ画面G100は、ポータルのトップ画面であり、アプリケーションの登録を行うための「Application」ボタンG110が含まれる。以降では、開発者が、図10に示すポータルトップ画面G100において、「Application」ボタンG110を選択する操作(アプリ登録の選択操作)を行ったものとする。
なお、図10に示すポータルトップ画面G100には、処理フロー情報1100の作成等を行うための「Flow」ボタンG120、コンポーネントの登録等を行うための「Component」ボタンG130等も含まれる。このように、ポータルトップ画面G100では、アプリケーションの登録以外にも、処理フローの作成・実行、コンポーネントの登録・更新等を行うことができる。
「Flow」ボタンG120の押下により図1又は後述する図17に示す処理フロー設定画面G800が表示される。しかし、フロー処理の登録は図10に示した「Application」ボタンG110の押下により、アプリケーションの登録作業の中でも可能であるため、本実施形態では「Application」ボタンG110が押下されたものとする。
PC端末30のブラウザ310の操作受付部312は、開発者により行われたアプリ登録の選択操作を受け付ける(ステップS805)。
PC端末30のブラウザ310の操作受付部312がアプリ登録の選択操作を受け付けると、通信部311はアプリケーション登録画面の表示要求を、ポータルサービス部140のUI提供部141に送信する(ステップS806)。
ポータルサービス部140のUI提供部141は、アプリケーション登録画面の表示要求を受信すると、アプリケーション登録画面のポータル画面情報をポータル画面情報記憶部170から取得する(ステップS807)。そして、UI提供部141は、ポータル画面情報記憶部170から取得したポータル画面情報をブラウザ310に返信する。
PC端末30のブラウザ310の通信部311は、アプリケーション登録画面のポータル画面情報を受信すると、表示制御部313が当該ポータル画面情報に基づいて、例えば図11に示すアプリケーション登録画面G200を表示する(ステップS808)。
ここで、以降では、図11~図15を参照しながら、開発者がアプリケーションの登録操作を行う場合について説明する。
まず、図11に示すアプリケーション登録画面G200は、開発者が登録するアプリケーションのタイプを選択するための画面である。
図11に示すアプリケーション登録画面G200には、プリントタイプのアプリケーションを登録するための「プリント」ボタンG210と、スキャンタイプのアプリケーションを登録するための「スキャン」ボタンG220とが含まれる。なお、図11に示すアプリケーション登録画面G200には、例えば、FAXタイプのアプリケーションを登録するための「FAX」ボタン、メール受信タイプのアプリケーションを登録するための「メール受信」ボタン等が含まれていても良い。
また、図11に示すアプリケーション登録画面G200には、次の画面に遷移するための「次へ」ボタンG240等が含まれる。
図11に示すアプリケーション登録画面G200では、開発者が「プリント」ボタンG210又は「スキャン」ボタンG220のいずれかを選択すると、それぞれプリントタイプの説明又はスキャンタイプの説明が説明欄G230に表示される。
なお、プリントタイプとは、一連の処理による実行結果を示す電子ファイルを画像形成装置等で印刷させるタイプのアプリケーションである。一方、スキャンタイプとは、画像形成装置等においてスキャンにより生成された電子ファイルを入力とした一連の処理を実行させるタイプのアプリケーションである。
また、例えば、FAXタイプとは、一連の処理による実行結果を示す電子ファイルを画像形成装置等でFAX送信させるタイプのアプリケーションである。更に、メール受信タイプとは、画像形成装置等が受信したメールに添付されている電子ファイルを入力とした一連の処理を実行させるタイプのアプリケーションである。
以降では、開発者が、図11に示すアプリケーション登録画面G200において、「スキャン」ボタンG220を選択した上で、「次へ」ボタンG240を押下する操作を行ったものとする。すると、ブラウザ310の表示制御部313は、当該操作を受け付けて、例えば図12に示すアプリケーション登録画面G300を表示する。
図12に示すアプリケーション登録画面G300は、開発者がアプリケーションの基本情報を設定するための画面である。
図12に示すアプリケーション登録画面G300には、アプリケーションの名称を設定するための「アプリ名」入力設定欄G310と、アプリ画面の画面形式を選択するための「デザインテンプレート」選択欄G320とが含まれる。また、図12に示すアプリケーション登録画面G300には、アプリケーションを利用する際の認証を選択するための「認証」選択欄G330と、アプリ画面の表示言語を選択するための「表示言語」選択欄G340とが含まれる。更に、図12に示すアプリケーション登録画面G300には、次の画面に遷移するための「次へ」ボタンG350等が含まれる。
なお、「デザインテンプレート」選択欄G320では、例えば、アプリ画面が一画面で表示される「一画面形式」、アプリ画面を対話形式で表示する「ウィザード形式」等を選択することができる。また、「認証」選択欄G330では、認証を用いないことを示す「なし」、認証を用いることを示す「ユーザ認証」等を選択することができる。
以降では、開発者が、図12に示すアプリケーション登録画面G300のように、アプリケーション名の入力や各種選択を行った上で、「次へ」ボタンG350を押下する操作を行ったものとする。すると、ブラウザ310の操作受付部312は当該操作を受け付けて、表示制御部313は例えば図13に示すアプリケーション登録画面G400を表示する。
図13に示すアプリケーション登録画面G400は、開発者がアプリケーションの詳細情報として、登録するアプリケーションに対して一連の処理(処理フロー)を設定するための画面である。
図13に示すアプリケーション登録画面G400には、アプリ情報記憶部150に記憶されている処理フロー情報1100のフロー名を検索するための検索欄G410と、フロー名を選択するためのフロー選択欄G420とが含まれる。ユーザは、所望のフローの名称等を検索欄G410に入力した上で、フロー選択欄G420から所望のフロー名を選択することができる。
また、図13に示すアプリケーション登録画面G400には、フロー選択欄G420で選択されたフロー名の処理フロー情報1100に基づく一連の処理の概要を表示する概要表示欄G430と、次の画面に遷移するための「次へ」ボタンG240とが含まれる。
更に、図13に示すアプリケーション登録画面G400には、フロー選択欄G420で選択されたフロー名の処理フロー情報1100の編集及び更新を行うための「更新」ボタンG421と、新規に処理フロー情報1100を作成するための「新規」ボタンG422とが含まれる。ユーザは、「更新」ボタンG421を押下することで、フロー選択欄G420で選択したフロー名の処理フロー情報1100の編集及び更新を行うことができる。また、ユーザは、「新規」ボタンG422を押下することで、処理フロー情報1100を作成した上で、作成した処理フロー情報1100のフロー名をフロー選択欄G420で選択することができる。このようにアプリケーションの設定の中で処理フローが選択されるので、アプリケーションと処理フローが対応付けられる。アプリケーションは処理フローのフロー名1101で識別する。すなわち、アプリIDとフロー名1101とが対応付けられる。フロー名1101ではなく処理フローIDと対応付けられてもよい。
「更新」ボタンG421又は「新規」ボタンG422が押下された場合、図1又は図17に示す処理フロー設定画面G800が表示される。フロー処理の設定については図17等で説明する。
以降では、開発者が、フロー名「translate-mail」をフロー選択欄G420で選択した上で、「次へ」ボタンG440を押下する操作を行ったものとする。すると、ブラウザ310の操作受付部312は当該操作を受け付けて、表示制御部313が例えば図14に示すアプリケーション登録画面G500を表示する。
図14に示すアプリケーション登録画面G500は、開発者がアプリケーションの詳細情報として、図13に示すアプリケーション登録画面G400で設定された一連の処理(処理フロー)のパラメータ情報を設定するための画面である。
図14に示すアプリケーション登録画面G500には、一連の処理に含まれる各処理を実行するコンポーネントを選択するための「コンポーネント」選択欄G510が含まれる。また、図14に示すアプリケーション登録画面G500には、「コンポーネント」選択欄G510で選択されたコンポーネントのパラメータ情報を設定するための「パラメータ情報」設定欄G520と、次の画面に遷移するための「次へ」ボタンG530とが含まれる。
開発者は、「コンポーネント」選択欄G510から所望のコンポーネントを選択した上で、「パラメータ情報」設定欄G520にてパラメータ情報の各種設定を行うことができる。例えば、開発者が「コンポーネント」選択欄G510から翻訳コンポーネント1502を選択した場合、「パラメータ情報」設定欄G520では、翻訳コンポーネント1502が用いるパラメータ情報の各種設定を行うことができる。
具体的には、パラメータ情報の各種設定には、「select」、「displayname」、「name」、「type」、「default」、及び「input type」等の設定項目がある。設定項目「name」には、パラメータ情報のパラメータ名が設定される。設定項目「type」には、パラメータ値として設定することができるデータ形式が設定される。設定項目「default」には、デフォルトとして設定されるパラメータ値が設定される。
また、設定項目「select」には、パラメータ情報のパラメータ値をエンドユーザ(サービスの利用者)に入力させるか否かが設定される。設定項目「select」にチェックが入れられたパラメータ情報は、アプリ画面においてエンドユーザ(サービスの利用者)がパラメータ値を入力することができる。一方で、設定項目「select」にチェックが入れられていないパラメータ情報は、アプリ画面において開発者がパラメータ値を入力することができず、設定項目「default」に設定されたパラメータ値が用いられる。
また、設定項目「input type」には、設定項目「select」にチェックが入れられたパラメータ情報について、アプリ画面における入力方法が設定される。設定項目「input type」では、例えば、パラメータ値の一覧から所望のパラメータ値を選択する入力方法「list-radio-button」、パラメータ値を直接入力する入力方法「text」等を設定することができる。なお、設定項目「input type」には、これら以外にも、例えば、画面上の座標を入力する入力方法、所望のフォルダやファイルを選択するための入力方法等を選択することができても良い。
更に、設定項目「displayname」には、アプリ画面に表示される入力項目(パラメータ値を入力させるための項目)の表示名が設定される。設定項目「displayname」には、図12に示すアプリケーション登録画面G300の「表示言語」選択欄G340で選択した言語の表示名を設定することができる。すなわち、例えば、「表示言語」選択欄G340で「Japanese」及び「English」が選択された場合、設定項目「displayname」には、例えば、日本語の表示名「翻訳元」と、英語の表示名「Source Language」とを設定することができる。
これにより、開発者は、各コンポーネントが用いるパラメータ情報について、パラメータ情報のパラメータ値をサービスの利用者に入力させるか否か、その入力方法等を設定することができる。
以降では、開発者が、各コンポーネントが用いるパラメータ情報を設定した上で、「次へ」ボタンG530を押下する操作を行ったものとする。すると、ブラウザ310の操作受付部312は当該操作を受け付けて、表示制御部313は例えば図15に示すアプリケーション登録画面G600を表示する。
図15に示すアプリケーション登録画面G600は、図11~図14で設定された各種情報(アプリ設定情報)を開発者が確認するための画面である。
図15に示すアプリケーション登録画面G600には、「アプリ設定情報」表示欄G610と、「登録」ボタンG620とが含まれる。開発者は、「アプリ設定情報」表示欄G610において、図11~図14で設定した各種情報を確認することができる。
ここで、開発者は、「アプリ設定情報」表示欄G610でアプリ設定情報を確認した上で、「登録」ボタンG620を押下する操作(アプリケーションの登録操作)を行ったものとする。すると、ブラウザ310の操作受付部312は、アプリケーションの登録操作を受け付ける(ステップS809)。
ブラウザ310の操作受付部312がアプリケーションの登録操作を受け付けると、ブラウザ310が実行するWebアプリが例えば図16に示すアプリ設定情報1200を作成する(ステップS810)。
アプリ設定情報1200について、図16を参照しながら説明する。図16は、アプリ設定情報1200の一例を示す図である。
図16に示すアプリ設定情報1200には、アプリタイプ1201、アプリ名1202、アプリID1202-2、アプリ表示名1203、認証タイプ1204、及びフロー名1205が含まれる。また、図16に示すアプリ設定情報1200には、デザインテンプレートタイプ1206、デフォルトパラメータ1207、及びユーザ入力パラメータ1208等が含まれる。
アプリタイプ1201は、図11に示すアプリケーション登録画面G200で選択されたアプリケーションのタイプである。図16に示す例では、アプリケーションのタイプがスキャンタイプであることを示す「"app_type":"scan"」が定義されている。
アプリ名1202は、図12に示すアプリケーション登録画面G300の「アプリ名」入力設定欄G310に入力されたアプリ名である。図16に示す例では、アプリ名が「スキャン翻訳アプリケーション」であることを示す「"appName":"スキャン翻訳アプリケーション"」が定義されている。アプリID1202-2は、このアプリケーションの付与されたアプリIDである。
アプリ表示名1203は、アプリ画面に表示されるアプリケーション名称(タイトル)である。日本語では「スキャン翻訳」、英語では「Translation App」と表示されることが定義される。
認証タイプ1204は、図12に示すアプリケーション登録画面G300の「認証」選択欄G330で選択された認証である。図16に示す例では、認証しないことを示す「"loginType":"none"」が定義されている。
フロー名1205は、図13に示すアプリケーション登録画面G400のフロー選択欄G420で選択されたフロー名である。図16に示す例では、フロー名が「"translate-mail"」であることを示す「"flowName":"translate-mail"」が定義されている。
デザインテンプレートタイプ1206は、図12に示すアプリケーション登録画面G300の「デザインテンプレート」選択欄G320で選択された表示形式である。図16に示す例では、一画面形式でアプリ画面を表示することを示す「"viewTemplate":"一画面形式"」が定義されている。
デフォルトパラメータ1207は、アプリ画面において開発者がパラメータ値を入力しないパラメータ情報が定義されている。すなわち、デフォルトパラメータ1207には、図14に示すアプリケーション登録画面G500の「パラメータ情報」設定欄G520において、設定項目「select」のチェックを入れなかったパラメータ情報が定義される。図16に示す例では、詳細処理名「detail0」(すなわち、図8における詳細処理定義1110)に定義されたパラメータ名「"language"」のパラメータ情報は、デフォルトのパラメータ値として、「"English"」が設定されることが定義されている。
このように、デフォルトパラメータ1207には、デフォルトでパラメータ値が設定されるパラメータ情報が定義されている。換言すれば、デフォルトパラメータ1207には、開発者がパラメータ値を設定しないパラメータ情報が定義されている。
ユーザ入力パラメータ1208は、アプリ画面において開発者によりパラメータ値が入力されるパラメータ情報が定義されている。すなわち、ユーザ入力パラメータ1208には、図14に示すアプリケーション登録画面G500の「パラメータ情報」設定欄G520において、設定項目「select」のチェックを入れたパラメータ情報が定義される。
図16に示す例では、詳細処理名「detail1」(すなわち、図8における詳細処理定義1120)に定義されたパラメータ名「"from"」のパラメータ値が開発者に入力されることを示す入力定義1218が定義されている。同様に、詳細処理名「detail1」(すなわち、図8における詳細処理定義1120)に定義されたパラメータ名「"to"」のパラメータ値が開発者に入力されることを示す入力定義1228が定義されている。
また、同様に、詳細処理名「detail2」(すなわち、図8における詳細処理定義1130)に定義されたパラメータ名「"address"」のパラメータ値が開発者に入力されることを示す入力定義1238が定義されている。
このように、ユーザ入力パラメータ1208には、アプリ画面において開発者がパラメータ値を入力するパラメータ情報が定義されている。
以上のように、アプリ設定情報1200には、アプリ画面に表示される表示情報(例えば、タイトル)やアプリ画面の入力項目(パラメータ値を入力又は選択する項目)、当該入力項目における入力方法等が定義されている。また、アプリ設定情報1200には、パラメータ値がデフォルトで設定されるパラメータ情報(すなわち、アプリ画面でパラメータ値が入力又は選択されないパラメータ情報)等が定義されている。
ブラウザ310のWebアプリがアプリ設定情報1200を作成すると、通信部311がアプリケーションの登録要求を、ポータルサービス部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)を登録することができる。
<フロー登録>
続いて、図17を用いてフロー登録時の画面と開発者の操作について説明する。図17は、PC端末30のブラウザ310の表示制御部313が表示する処理フロー設定画面G800の一例を示す。処理フロー設定画面G800は、主に、フロー処理名入力欄401、出力タイプ欄402、コンポーネントリスト欄403、及び、コンポーネント設定欄404を有している。
フロー処理名入力欄401には、フロー処理の名称が入力及び表示される。開発者が新規にフロー処理を作成する場合、開発者が適宜、フロー処理の名称を入力する。開発者がすでに作成済みのフロー処理を編集する場合、作成時に登録されたフロー処理の名称が表示される。出力タイプ欄402には処理フローが出力するデータのタイプ(バイナリ、テキストなど)が一覧表示され、開発者が選択できるようになっている。
コンポーネントリスト欄403には、フロー処理に設定され得るコンポーネントのリストが表示される。つまり、コンポーネントリスト欄403の各コンポーネントは開発者の選択により処理フローに設定される。コンポーネントリスト欄403にはコンポーネントのアイコンと名称が表示される。各コンポーネントはタブ403aにより「Service」「Document」「System」「Dev」等のカテゴリーに区分されている。「Service」はメール送信やファイルアップロードなどの外部サービスを利用するコンポーネントを、「Document」はPDF変換やOCRなど文書を処理するコンポーネントを、「System」はシステム系のコンポーネントをそれぞれ意味している。「All」はカテゴリーを分類せずにコンポーネントを一覧表示するタブである。
コンポーネント設定欄404は、開発者がコンポーネントのアイコン340a~340dを配置する欄である。アイコン340aは「外部ストレージサービスA」というストレージサービスのコンポーネントを表し、アイコン340bは「外部ストレージサービスB」というストレージサービスのコンポーネントを表す。アイコン340cはPDFへ変換するサービスのコンポーネントを表し、アイコン340dはベイツスタンプ(ベイツ番号を設定する)というサービスのコンポーネントを表す。
コンポーネント設定欄404は格子状に区切られており、1つの区画350に1つのコンポーネントを表示する。行方向の複数の区画350に設定されたコンポーネントが1つの処理フローである。横方向に並んだ複数の処理を有する処理フローは左から右の順に実行されるので、1行の区画350において左から右に配置されたコンポーネントの順番が各コンポーネントの実行順を示す。
PC端末30のブラウザ310(Webアプリ)がコンポーネントを配置する規則は以下のようになる。開発者がポインティングデバイス320でコンポーネントリスト欄403のコンポーネントを選択し(クリック又はタップ)、コンポーネント設定欄404の区画350をポインティングデバイス320で選択(クリック又はタップ)することが、コンポーネントの配置操作である。
(i) 表示制御部313は各行のコンポーネントは左詰めに配置する。
(ii) まだコンポーネントが配置されていない区画350に開発者がコンポーネントを配置した場合は、表示制御部313は該区画350にコンポーネントを配置する(表示する)。
(iii) すでにコンポーネントが配置されている区画350に開発者がコンポーネントを配置した場合は、すでに配置されているコンポーネントと、同じ区画350に配置しようとされたコンポーネントのオペレーション(後述する)が同じ場合、表示制御部313は該区画350の下に隣接した区画350に、配置しようとされたコンポーネントを配置する。これにより、2つのコンポーネントがグループ化される。上下に隣接した2つの区画350に配置された2つのコンポーネントをコンポーネントグループという。コンポーネントグループに含まれる各コンポーネントの実行順は同じである。厳密にはどちらかのみが実行されるか、両方が実行される場合はどちらかが先に実行される(例えば、上側のコンポーネントが先に実行される)。しかし、処理フロー内での実行順は同じとして扱われる。
すでに配置されているコンポーネントと、このコンポーネントが配置されている区画350に配置しようとされたコンポーネントのオペレーションが異なる場合、表示制御部313は同じ区画350に配置しようとされたコンポーネントをどの区画にも配置しない。ただし、グループ化せずに下方の区画350に配置してもよい。また、何らかのエラーメッセージを出力してもよい。
(iv) コンポーネントグループが設定された場合、PC端末30の表示制御部313はコンポーネントグループである旨を表示する。すなわち、複数のコンポーネントが同じ順番に設定された旨を表示する。例えば、2つの区画350を枠330で囲んで表示する。この他、区画350を同じ背景色で着色してもよいし、2つの区画のコンポーネントの近くにコンポーネントグループである旨の同じマークを添付してもよい。枠330は、複数の外部サービスのアイコン同士を関連付けて表示する。コンポーネントのオペレーションが同じ場合には、PC端末30は、枠330を用いてアイコン同士をまとめて表示したり、1つの区画350内にアイコン同士を合わせて表示したりすることで、枠330が複数の外部サービスのアイコン同士を関連付けていることをユーザが把握可能とする。
以上のように、開発者がポインティングデバイス320でコンポーネントリスト欄403の「外部ストレージサービスB」のコンポーネント(第一の処理の一例)を選択し(クリック又はタップ)、コンポーネント設定欄404の「外部ストレージサービスA」のコンポーネント(第二の処理の一例)をポインティングデバイス320で選択(クリック又はタップ)すると、図17に示すように、「外部ストレージサービスB」と「外部ストレージサービスA」のコンポーネントグループが作成される。
図17の処理フローは以下のように実行される。
(i) ファイルダウンロード(外部ストレージサービスA)又はファイルダウンロード(外部ストレージサービスB)
(ii) PDF変換
(iii) ベイツ番号の設定
このように、PDF変換とベイツ番号の設定は共通だが、ファイルダウンロードを行うストレージサービスが異なる場合、開発者は異なる部分のコンポーネントだけを追加すればよいので、開発者の負担を低減できる。どちらのストレージサービスを利用するかはエンドユーザが設定できる。
なお、コンポーネントグループの作成時には、開発者がコンポーネントリスト欄403のコンポーネントを、コンポーネント設定欄404の区画350(すでにコンポーネントが配置されている)にドラッグ&ドロップしてもよい。
また、図17では区画350が表示されているが、区画350は開発者の操作を支援するためのものなので区画350はなくてもよい。また区画350は矩形でなく円形や多角形でもよい。
続いて、図18に基づいてオペレーションについて説明する。図18はコンポーネントが有する属性を説明する図の一例である。図18は各コンポーネントが有する属性の一部を示す。属性としては、例えばコンポーネントID、コンポーネント名、オペレーション、及び、カテゴリーがあるが、この他、コンポーネントの作成日時、アイコンなどを有している。
コンポーネントIDは各コンポーネントを識別又は特定するための識別情報である。コンポーネント名はコンポーネントリスト欄403に表示されるコンポーネントの名称である。オペレーションは、コンポーネントの処理内容である。例えば、postFileは電子ファイルのアップロードという処理内容を、convertは変換という処理内容を、sendは送信という処理内容を、それぞれ意味している。カテゴリーについては図17に説明した。
図18のオペレーションが同じコンポーネントは、同じ処理内容をそれぞれが実行する。したがって、開発者が望む場合、PC端末30のブラウザ310はコンポーネントグループとすることができる。なお、各コンポーネントの属性はポータル画面情報3000に記憶されており、UI提供部141からPC端末30のブラウザ310に送信されている。
図19は、PC端末30のブラウザ310が処理フローの配置を受け付ける手順を示すフローチャート図の一例である。図19の処理は図13に示すアプリケーション登録画面G400で「更新」ボタンG421又は「新規」ボタンG422が押下され、図17の処理フロー設定画面G800が表示された場合に実行される。
PC端末30のブラウザ310の操作受付部312はコンポーネントリスト欄403からコンポーネントの選択を受け付ける(S1901)。
次に、操作受付部312は区画350が選択されたか否かを判断する(ステップS1902)。コンポーネントリスト欄403でコンポーネントが選択された後、コンポーネント設定欄404で区画350が選択されたか否かを判断する。
ステップS1902の判断がYesとなると、PC端末30の判断部314は、選択された区画350にすでにコンポーネントが配置されているか否かを判断する(ステップS1903)。
ステップS1903の判断がYesの場合、PC端末30の判断部314は、コンポーネントリスト欄403で選択されたコンポーネントと、選択された区画350にすでに配置されているコンポーネントのオペレーションが同じか否かを判断する(ステップS1904)。
ステップS1904の判断がYesの場合、PC端末30のフロー作成部315はコンポーネントグループを作成する(ステップS1905)。つまり、この処理フローは1行目だけでなく2行目のコンポーネントも含むと判断し、上下に並んだ2つのコンポーネントを同じ順番に設定する。ただし、処理フロー情報1100の記述上は順番があってよい。また、表示制御部313は上下に隣接した区画350を枠330で囲む。
ステップS1903又はS1904でNoと判断された場合、PC端末30の表示制御部313は、開発者が区画350に配置しようとしたコンポーネントを配置しない(ステップS1906)。いずれの区画350にもコンポーネントを配置しなくてもよいし、ステップS1901で開発者が選択した区画350の下側の区画に配置してもよい。ただし、コンポーネントグループは作成されないので、枠330が表示されることはない。この場合、PC端末30の表示制御部313はエラーメッセージを表示してもよい。また、選択した区画350にすでに配置されているコンポーネントと同じ処理内容のコンポーネントのリストを表示してもよい。
このように、PC端末30のブラウザ310は同じオペレーションのコンポーネントであるかを判断するので、開発者が誤って動作が異なる2つのコンポーネントでコンポーネントグループを作成しようとしても誤操作を受け付けることがない。
次に、図20を用いて処理フロー設定画面G800においてコンポーネントグループの別の例を説明する。図20は、PC端末30のブラウザ310が表示する処理フロー設定画面G800の一例である。図20(a)では、左から1つめの区画350には「OCR」のコンポーネントのアイコン340eが配置され、2つめの区画350にはコンポーネントグループの2つのストレージサービスのコンポーネント(アイコン340a、340b)が縮小されて水平に格納されている。3つめの区画350には「メール送信」のコンポーネントのアイコン340fが配置されている。
すなわち、1つの区画350に複数のコンポーネントが表示されることで開発者はコンポーネントグループが作成されたことを確認できる。なお、1つの区画350の複数のコンポーネントは上下に格納されてもよい。
図20(b)は3つ以上のコンポーネントがグループ化された場合の表示例を示す。図20(b)では3つのコンポーネントが縦方向に並び、枠330で囲まれている。すなわち、左から2つめの区画350の一番下にはファイルアップロードのコンポーネントのアイコン340gが配置されている。ファイルアップロードの3つのコンポーネント(アイコン340a、340b、340g)が1つのコンポーネントグループである。
3つ以上のコンポーネントのグループ化の方法は、上記と同様であるが、開発者はすでに区画350に配置されている2つのコンポーネントのどちらかをポインティングデバイス320で選択すればよい。
3つ以上のコンポーネントを含むコンポーネントグループにおいても、図20(a)のように1つの区画350に縮小されたコンポーネントを配置することができる。この場合、1つのコンポーネントのアイコンが小さくなるので、表示制御部313は1つの区画350のコンポーネントの数が所定以上の場合、自動的に図20(b)の縦方向に並べる形態に切り替えて表示してもよい。また、開発者の操作(例えば、区画350のクリック又はタップ)に応じて、表示制御部313が図20(a)の表示と図20(b)の表示を切り替えてもよい。
図21はコンポーネントグループを含む処理フローの処理フロー情報1100の一例である。図21では、図1のように作成されたコンポーネントグループ含む処理フローの処理フロー情報を示す。図8の処理フロー情報と変数名は同様である。図1では4つのコンポーネントが含まれているため、detail0(1510)~detail3(1513)の4つのコンポーネントに関する情報を含んでいる。
このうち、detail1(1511)がグループ化されたファイルアップロード(外部ストレージサービスA)のコンポーネントに対応し、detail2(1512)がファイルアップロード(外部ストレージサービスB)のコンポーネントに対応する。
このように、処理フローの一部のコンポーネントがグループ化されていても処理フロー情報は処理の実行順に記述されていればよい。コンポーネントグループの処理はどちらが先に実行されてもよいため、どちらのコンポーネントが先に記述されていてもよい。後述するように、エンドユーザにより選択されなかったコンポーネントは実行されないだけである。
<エンドユーザ側の操作>
続いて、エンドユーザが行う操作について説明する。エンドユーザは開発者が登録したアプリケーションを日常業務で実際に実行する。ここで、アプリケーションには、共有アプリと個人用アプリの二種類がある。情報処理システム1が提供するワークフローサービスのようなクラウドサービスではテナントという概念があり、テナントごとにクラウドサービスを契約する。テナントとはクラウドサービスの顧客である。企業単位でテナントになる場合だけでなく、部署、グループ等の種々の粒度の組織でテナントとなる場合がある。
このテナントに所属するエンドユーザが共通に使用するアプリケーションが共有アプリであり、テナントに所属するエンドユーザが個別に使用するアプリケーションが個別アプリである。
アプリケーションには認証が必要なサービス(コンポーネント)を利用するものがある。例えば、ファイルアップロード又はファイルダウンロードを行うためのストレージサービスなどである。このため、共有アプリと個別アプリでエンドユーザが設定すべき情報が異なっている。
個別アプリはエンドユーザが個人で使用するためストレージサービスを使用するエンドユーザは一意に定まる。共有アプリの場合、テナントに所属するエンドユーザのうちどのエンドユーザのアカウントでストレージサービスを使用するかをエンドユーザが設定する必要がある。
また、共有アプリか個人用アプリかに関わらず、本実施形態のようにファイルアップロード又はファイルダウンロードでコンポーネントグループが作成された場合、エンドユーザがどちらのコンポーネント(ストレージサービス)を使用するかを設定する。
以上のような設定を、エンドユーザはアプリ情報記憶部150に登録されているアプリケーションに対して行う。なお、共有アプリか個人用アプリかはアプリ設定情報1200に設定されている。また、図11~図15のいずれかの画面で開発者が設定できる。
図22は、エンドユーザがアプリ情報記憶部150に登録されているアプリケーションに対して行う設定の手順を示す一例のシーケンス図である。
まず、PC端末30のブラウザ310の操作受付部312はログイン画面を表示させるための操作をエンドユーザから受け付け、通信部311はUI提供部141に対しログイン画面を要求する。この要求に対し、UI提供部141はログイン画面の画面情報をPC端末30のブラウザ310に送信する(ステップS2201)。なお、エンドユーザは、ログイン画面のURLをブラウザ310のアドレスバーに入力することで、ログイン画面の表示操作を行うことができる。
PC端末30の通信部311はログイン画面の画面情報を受信し、表示制御部313は、ログイン画面の画面情報に基づいて、例えば図23に示すログイン画面を表示する。
図23はログイン画面の一例を示す図である。ログイン画面G900は、テナントログイン欄411とユーザアカウントログイン欄412を有している。テナントログイン欄411はサービス提供システム10のアカウントでエンドユーザがログインするための欄であり、ユーザアカウントログイン欄412はOAUTH認証を利用してエンドユーザがログインするための欄である。
テナントログイン欄411は更にテナントID入力欄413、ユーザID入力欄414、パスワード入力欄415、及び、ログインボタン416を有する。エンドユーザは、テナントID入力欄413にエンドユーザが所属するテナントの識別情報を入力し、ユーザID入力欄414にはエンドユーザのユーザIDを入力し、パスワード入力欄415にはエンドユーザのパスワードを入力する。
ユーザアカウントログイン欄412は、認証サービスを提供するサーバ(認可サーバ)にユーザの認証を要求するためのログインボタン417を有している。
図22に戻って説明する。エンドユーザがログイン画面にログイン情報を入力するので、PC端末30の操作受付部312はログイン情報の入力を受け付ける。PC端末30の通信部311はログイン情報と共にログイン要求をポータルサービス部140に送信する(ステップS2203)。OAUTH認証の場合は所定の認可サーバと通信する。図22の説明ではログインが成功したものとして説明する。
ログインに成功したため、UI提供部141はメイン画面の画面情報をPC端末30のブラウザ310に送信する(ステップS2204)。
PC端末30の通信部311はメイン画面の画面情報を受信して、表示制御部313がメイン画面の画面情報に基づいて、例えば図24に示すメイン画面を表示する。
図24はメイン画面の一例を示す図である。メイン画面G1000は、エンドユーザの管理者メニュー421と一般ユーザメニュー422を表示する。エンドユーザの管理者メニュー421はエンドユーザ側の管理者が使用するメニューである。エンドユーザ側の管理者とはエンドユーザがサービス提供システム10を使用できるように各種の設定を行う者をいう。エンドユーザ側の管理者は共有アプリに関する設定も行う。一般ユーザとは管理者以外のエンドユーザ又は日常的に機器20を使用する者をいう。
管理者メニュー421は、ユーザ管理アイコン423、テナント管理アイコン424、アプリ管理アイコン425、及び、機器管理アイコン426を有している。ユーザ管理アイコン423は、エンドユーザに関する情報(氏名、メールアドレス、ユーザID、パスワードなど)の追加、削除、及び編集をPC端末30のブラウザ310が受け付けるためのアイコンである。テナント管理アイコン424はテナントに関する情報(テナント名、テナントID、管理者、テナントのパスワード、契約内容など)の追加、削除、及び編集をPC端末30のブラウザ310が受け付けるためのアイコンである。アプリ管理アイコン425はアプリケーションに関する情報(アプリケーション設定情報)の追加、削除、及び編集をPC端末30のブラウザ310が受け付けるためのアイコンである。機器管理アイコン426は機器に関する情報(機器でどのアプリケーションが何回、誰によって利用されたかなど)の表示をPC端末30のブラウザ310が受け付けるためのアイコンである。共有アプリに関する設定を行う場合、管理者はアプリ管理アイコン425を押下する。
一般ユーザメニュー422はアプリ一覧アイコン427を有している。アプリ一覧アイコン427は、ログインしたエンドユーザの個人用アプリの一覧をPC端末30のブラウザ310が表示するためのアイコンである。個人用アプリに関する設定を行う場合、一般ユーザはアプリ一覧アイコン427を押下する。
図22に戻って説明する。管理者はメイン画面に対しアプリ管理アイコンを押下し、一般ユーザはアプリ管理アイコンを押下する(ステップS2205)。PC端末30の操作受付部312はこれらの押下を受け付ける。これにより、PC端末30の通信部311は、一般ユーザ又は管理者それぞれが使用できるアプリケーションのリストを受信するので、表示制御部313はアプリケーションのリストを表示する。一般ユーザ又は管理者はコンポーネントグループを有するアプリケーションの設定を行うため、このアプリケーションを選択する。PC端末30の操作受付部312はアプリケーションの選択の操作を受け付ける。
PC端末30の通信部311は、エンドユーザの操作に応じて、選択されたアプリIDを指定して、共有アプリ又は個人用アプリのアプリ設定画面の画面情報を要求する(ステップS2206)。
UI提供部141はアプリ設定画面の画面情報の要求を受信する。UI提供部141は、アプリIDで特定したアプリケーションが共有アプリか個人用アプリかに応じて画面情報を生成する(ステップS2207)。具体的には、処理フローに含まれるコンポーネントによってエンドユーザが設定できる項目が異なるため、UI提供部141は共有アプリ及び個人用アプリのいずれの場合も処理フローに含まれるコンポーネントに応じた画面情報を生成する。また、図25,図26に示すように、ストレージアカウント欄がある画面情報とない画面情報を生成する。
UI提供部141は、共有アプリ又は個人用アプリのアプリ設定画面の画面情報をPC端末30のブラウザ310に送信する(ステップS2208)。 PC端末30の通信部311はアプリ設定画面の画面情報を受信する。一般ユーザが個人用アプリに関するアプリ設定を行う場合、ステップS2209が実行され、管理者が共有アプリに関するアプリ設定を行う場合、ステップS2210、S2211が実行される。
ステップS2209において、PC端末30の通信部311はアプリ設定画面の画面情報を受信して、表示制御部313はアプリ設定画面の画面情報に基づいて、例えば図25に示す個人用アプリ設定画面を表示する。一般ユーザは処理フローで使用するストレージサービスを選択するため、PC端末30の操作受付部312はストレージサービスの選択を受け付ける(ステップS2209)。
図25は、PC端末30のブラウザ310が表示する個人用アプリ設定画面G1100の一例を示す。個人用アプリ設定画面G1100は、共通設定欄431、シングルアプリケーション設定欄432、及び、デフォルトスキャン設定欄433等を有している。共通設定欄431は更にフォルダブラウズのデフォルト画面設定欄431aとフォルダブラウズのデフォルトレイアウト設定欄431bを有している。フォルダブラウズのデフォルト画面設定欄431aでは、フォルダを一覧表示する一覧画面と、フォルダをファイルパスと共に表示する階層表示などが設定される。フォルダブラウズのデフォルトレイアウト設定欄431bでは、フォルダのレイアウトが設定(2列又は3列など)される。
シングルアプリケーション設定欄432はコンポーネントグループのどちらのコンポーネント(ストレージサービス)を使用するかをエンドユーザが設定する欄である。シングルアプリケーション設定欄432はストレージ選択欄432a及びフォルダID設定欄432bを有している。ストレージ選択欄432aにより一般ユーザはコンポーネントグループの2つのストレージサービスのうち、どちらかのストレージサービスを選択する。フォルダID設定欄432bは「外部ストレージサービスA」のストレージサービスが選択された場合に表示される入力欄である。一般ユーザは電子データを保存するフォルダを指定できる。
デフォルトスキャン設定欄433は、処理フローにスキャンが含まれている場合に、スキャンの初期設定である。カラーモード欄433a、及び、原画像欄433bを有している。カラーモード欄433aにはカラー又はモノクロ等が設定され、原画像欄433bには読み取り面を片面とするか両面とするかが設定される。
図22に戻って説明する。ステップS2210において、PC端末30の通信部311はアプリ設定画面の画面情報を受信して、表示制御部313はアプリ設定画面の画面情報に基づいて、例えば図26に示す管理者用アプリ設定画面を表示する。管理者は処理フローで使用するストレージサービスを選択するため、PC端末30の操作受付部312はストレージサービスの選択を受け付ける(ステップS2210)。
また、管理者はストレージサービスの利用にどのエンドユーザのアカウントを使用するかを設定する。PC端末30の操作受付部312はストレージサービスで使用されるアカウントを受け付ける(ステップS2211)。
図26は、PC端末30のブラウザ310が表示する管理者用アプリ設定画面G1200の一例を示す。なお、図26の説明では主に図25との相違を説明する。図26の管理者用アプリ設定画面G1200では、シングルアプリケーション設定欄432がストレージアカウント欄432cを有する。共有アプリであっても、ストレージサービス側は1人のエンドユーザのアカウント(メールアドレス等。アカウント情報の一例)でユーザを識別するため共有アプリの設定では、ストレージアカウント欄432cの設定が必要になる。個人用アプリの場合、エンドユーザはサービス提供システム10にログインして個人用アプリを実行するので個人が特定されており、ストレージサービスを使用するエンドユーザも一意に定まる。
管理者は適切なエンドユーザのユーザIDをストレージアカウント欄に設定する。このユーザIDはストレージサービスがエンドユーザを識別するための識別情報である。
図22に戻って説明する。PC端末30の通信部311は図25又は図26のアプリ設定画面で設定されたアプリ関連情報1300の登録要求をアプリIDと共にアプリ登録部142に送信する(ステップS2212)。
アプリ登録部142はアプリ関連情報1300の登録要求を受信すると、アプリ関連情報1300の登録要求をアプリ管理部111に送信する(ステップS2213)。
アプリ管理部111はアプリIDに基づいてアプリ関連情報1300をアプリケーションに対応付けてアプリ情報記憶部150に記憶させる(ステップS2214)。
<<ストレージサービスに応じたアプリ設定画面>>
図25,図26では個人用アプリか共有アプリかによって異なるアプリ設定画面について説明したが、アプリ設定画面はストレージサービスに応じた項目を表示することができる。PC端末30の表示制御部313はアプリ設定画面で設定されたストレージサービスに応じて、適切な項目を表示する。図27,図28を用いて説明する。
図27は、「外部ストレージサービスA」というストレージサービスが選択された場合の管理者用アプリ設定画面G1200を示し、図28は、「外部ストレージサービスB」というストレージサービスが選択された場合の管理者用アプリ設定画面G1200を示す。なお、図27,図28のいずれもアプリケーションは共有アプリであるとする。
図27に示すようにストレージサービスとして「外部ストレージサービスA」が選択された場合、PC端末30の表示制御部313は追加の項目を表示しない。これは、「外部ストレージサービスA」の場合、エンドユーザが設定できるオプションがないためである。ストレージサービスのオプションとは、例えばフォルダやファイル名である。
これに対し、図28に示すようにストレージサービスとして「外部ストレージサービスB」が選択された場合、PC端末30の表示制御部313は追加の項目を表示しない。図28では、親フォルダーパス設定欄432d、及び、ファイル名設定欄432eが新たに表示されている。つまり、PC端末30の表示制御部313は、ストレージサービスとして「外部ストレージサービスB」が選択されたことを検出すると、親フォルダーパス設定欄432d、及び、ファイル名設定欄432eを表示する。これは、「外部ストレージサービスB」の場合、エンドユーザがこれらのオプションを設定できるためである。親フォルダーパス設定欄432dには電子ファイルのフォルダが設定され、ファイル名設定欄432eには電子ファイルのファイル名が設定される。
このように、選択されたストレージサービスに応じて動的に項目が表示されるので、エンドユーザは過不足なくアプリ関連情報を設定できる。
図29は、PC端末30のブラウザ310が追加の項目を表示する手順を説明するフローチャート図の一例である。図29の処理は図25~図28のアプリ設定画面が表示されると実行される。
まず、PC端末30の操作受付部312はストレージサービスの選択を受け付ける(ステップS2901)。
PC端末30の表示制御部313は選択されたストレージサービスについて設定可能なオプションがあるか否かを判断する(ステップS2902)。
ステップS2902の判断がYesの場合、PC端末30の表示制御部313はオプションの設定欄(図28の例では親フォルダーパス設定欄432d、ファイル名設定欄432e)を表示する(ステップS2903)。
なお、このような表示の制御はアプリ設定画面の画面情報に含まれるスクリプト言語により記述されている。
図30は、図25~図28により設定されたアプリ関連情報1300の一部を抜粋して示す。図30(a)は個人用アプリで「外部ストレージサービスA」というストレージサービスが選択された場合のアプリ関連情報であり、図30(b)は共有アプリで「外部ストレージサービスA」というストレージサービスが選択された場合のアプリ関連情報である。
まず、アプリタイプ1301、アプリ名1302、アプリID1303については図16のアプリ設定情報と同様である。アプリ名1302により又はアプリID1303によりアプリ関連情報1300とアプリ設定情報とが対応付けられる。あるいは、アプリ関連情報1300をアプリ設定情報1200に組み入れてもよい。個人共通区別1304はアプリ関連情報1300が個人用アプリ又は共有アプリのどちらについて設定されているかを示す。
図30(a)(b)の共通設定1305には、図25又は図26の共通設定欄431で設定された情報が記述されている。図30(a)(b)のシングルアプリケーション設定1306には図25又は図26のシングルアプリケーション設定欄432で設定された情報が記述されている。図30(a)(b)では一例としてストレージ設定1307に「外部ストレージサービスA」と「folderID」が設定されている。「外部ストレージサービスA」は図25のストレージ選択欄432aで設定されたストレージサービスである。「folderID」は図25のフォルダID設定欄432bで設定されたフォルダを示す。ロジック処理部112(より正確にはストレージサービスのコンポーネント)はストレージ設定1307を参照してストレージサービスを実行するか判断し、実行する場合は指定されたフォルダに保存する。
また、図30(b)に示すように共有アプリはストレージアカウント設定1309を有し、「taro@sample.co.jp"」というエンドユーザのアカウントが設定されている。ストレージサービスのコンポーネントはストレージアカウント設定1309を参照して、このエンドユーザのアカウントでストレージに電子ファイルを保存する。
図30(c)は共有アプリで「外部ストレージサービスB」というストレージサービスが選択された場合のアプリ関連情報である。共通設定1305とシングルアプリケーション設定1306のうちストレージアカウント設定1309までは図30(a)(b)と同様である。図30(c)は「外部ストレージサービスB」というストレージサービスで設定可能なオプション設定1312を有しており、図28の親フォルダーパス設定欄432dに設定されている親フォルダーパス設定1310、及び、ファイル名設定欄432eに設定されているファイル名設定1311が含まれている。ストレージサービスのコンポーネントはオプション設定1312に基づいて、ストレージに電子ファイルを保存する。
<機器からのアプリケーションの実行>
続いて、機器20のエンドユーザがスキャン翻訳サービスを利用する場合について、図31を参照しながら説明する。図31は、スキャン翻訳サービスを利用する場合の全体処理の一例を示すシーケンス図である。
まず、機器20の操作受付部212は、スキャン翻訳サービスのアプリ画面を表示させるための操作(表示操作)を受け付ける(ステップS3101)。なお、機器20のユーザは、例えば、スキャン翻訳サービスのアプリ画面のURLをブラウザ310のアドレスバーに入力することで、アプリ画面の表示操作を行うことができる。
機器20の操作受付部212は、スキャン翻訳サービスのアプリ画面の表示操作を受け付けると、通信部211がスキャン翻訳サービスのアプリ画面の表示要求を、Webサービス処理部120の画面構成部121に送信する(ステップS3102)。なお、スキャン翻訳サービスのアプリ画面の表示要求には、スキャン翻訳サービスを提供するアプリ情報1000のアプリIDが含まれる。
Webサービス処理部120の画面構成部121は、スキャン翻訳サービスのアプリ画面の表示要求を受信すると、アプリ設定の取得要求を、入出力サービス処理部110のアプリ管理部111に送信する(ステップS3103)。なお、アプリ設定の取得要求には、スキャン翻訳サービスを提供するアプリ情報1000のアプリIDが含まれる。
入出力サービス処理部110のアプリ管理部111は、アプリ設定の取得要求を受信すると、当該取得要求に含まれるアプリIDに関連付けて記憶されているアプリ設定情報1200及びアプリ関連情報1300をアプリ情報記憶部150から取得する(ステップS3104)。そして、アプリ管理部111は、アプリ情報記憶部150から取得したアプリ設定情報1200及びアプリ関連情報1300を画面構成部121に返信する。
次に、Webサービス処理部120の画面構成部121は、スキャン翻訳サービスを提供するアプリ情報1000のアプリIDと関連付けて記憶されているアプリ画面情報2000をアプリ画面情報記憶部160から取得する(ステップS3105)。そして、画面構成部121は、アプリ画面情報記憶部160から取得したアプリ画面情報2000と、上記のステップS3104で返信されたアプリ設定情報1200及びアプリ関連情報1300とをブラウザ210に返信する。
機器20の表示制御部213は、画面構成部121から受信したアプリ画面情報2000とアプリ設定情報1200とに基づいて、例えば図32に示すアプリ画面G700を表示する(ステップS3106)。
ここで、図32に示すアプリ画面G700は、機器20のエンドユーザがスキャン翻訳サービスを利用するための画面である。
図32に示すアプリ画面G700には、アプリ名G710と、パラメータ入力エリアG720と、「スタート」ボタンG740とが含まれる。また、パラメータ入力エリアG720には、翻訳元言語入力欄G721と、翻訳先言語入力欄G722と、メール送信先入力欄G723とが含まれる。
アプリ名G710は、図16に示すアプリ設定情報1200のアプリ表示名1203に基づいて表示される。なお、アプリ表示名1203に複数の言語のアプリケーション名称(タイトル)が定義されている場合、ブラウザ210の言語設定に対応する言語のアプリケーション名称がアプリ名G710に表示される。
また、翻訳元言語入力欄G721、翻訳先言語入力欄G722、及びメール送信先入力欄G723は、図16に示すアプリ設定情報1200のユーザ入力パラメータ1208に基づいて表示される。
すなわち、翻訳元言語入力欄G721は、ユーザ入力パラメータ1208の入力定義1218に基づいて表示される。同様に、翻訳先言語入力欄G722は、ユーザ入力パラメータ1208の入力定義1228に基づいて表示される。また、同様に、メール送信先入力欄G723は、ユーザ入力パラメータ1208の入力定義1238に基づいて表示される。
このように、機器20のエンドユーザがサービスを利用するためのアプリ画面には、アプリ設定情報1200に定義されている情報に基づいて、アプリ名やパラメータ入力エリアが表示される。
ここで、図32に示すアプリ画面G700において、ユーザは、翻訳元言語入力欄G721に「English」、翻訳先言語入力欄G722に「Japanese」、及びメール送信先入力欄G723に「abc@abc.co.jp」を入力したものとする。そして、図32に示すアプリ画面G700において、ユーザは、「スタート」ボタンG740を押下する操作(実行操作)を行ったものとする。
すると、機器20の操作受付部212は、実行操作を受け付ける(ステップS3107)。そして、機器20のブラウザ210は、スキャナ26を制御して、原稿を読み取ることで、電子ファイル(画像ファイル)を生成する(ステップS3108)。
機器20の通信部211は、電子ファイル(画像ファイル)が生成されると、アプリケーションの実行要求を、Webサービス処理部120のアプリ実行部122に送信する(ステップS3109)。なお、アプリケーションの実行要求には、アプリ設定情報1200のフロー名1205に定義されたフロー名「translate-mail」と、上記のステップS1608で生成された電子ファイルと、パラメータ設定情報とが含まれる。
ここで、パラメータ設定情報とは、アプリ設定情報1200のデフォルトパラメータ1207に定義されているパラメータ情報、開発者によりアプリ画面G700でパラメータ値が設定されたパラメータ情報、及び、アプリ関連情報1300に設定された情報である。
具体的には、デフォルトパラメータ1207に定義されているパラメータ情報は、「"language":"English"」である。また、開発者によりアプリ画面G700でパラメータ値が設定されたパラメータ情報は、「"from":"English"」、「"to":"Japanese"」、及び「"address":"abc@abc.co.jp"」である。
Webサービス処理部120のアプリ実行部122は、アプリケーションの実行要求を受信すると、当該実行要求を、入出力サービス処理部110のロジック処理部112に送信する(ステップS3110)。
次に、入出力サービス処理部110のロジック処理部112は、アプリケーションの実行要求を受信すると、処理フローの実行処理を行う(ステップS3111)。すなわち、ロジック処理部112は、当該要求に含まれるフロー名の処理フロー情報1100に基づく一連の処理を実行する。なお、処理フローの実行処理の詳細については後述する。
そして、ロジック処理部112は、処理フローの実行処理の処理結果を、Webサービス処理部120を介して、ブラウザ210に返信する。これにより、本実施形態に係るサービス提供システム10は、スキャン翻訳サービスを提供することができる。
以降では、処理フローの実行処理(図31のステップS3111の処理)の詳細について、図33を参照しながら説明する。図33は、スキャン翻訳サービスを実現する処理フローの実行処理の一例を示すシーケンス図である。
まず、フロー実行部301は、アプリ実行部122からアプリケーションの実行要求を受信すると、処理フローの取得要求をアプリ管理部111に送信する(ステップS3301)。なお、当該取得要求には、フロー名「translate-mail」が含まれる。
アプリ管理部111は、処理フローの取得要求を受信すると、当該取得要求に含まれるフロー名「translate-mail」の処理フロー情報1100をアプリ情報記憶部150から取得する(ステップS3302)。そして、アプリ管理部111は、アプリ情報記憶部150から取得した処理フロー情報1100をフロー実行部301に返信する。
ここで、以降では、アプリ管理部111は、図8に示す処理フロー情報1100をフロー実行部301に返信したものとして説明する。
次に、フロー実行部301は、処理フロー情報1100に基づくコンポーネントの取得要求をコンポーネント管理部302に送信する(ステップS3303)。
すなわち、フロー実行部301は、図8に示す処理フロー情報1100の詳細処理定義1110に含まれる「"component"」に定義されているコンポーネント名「"ocr"」のコンポーネントの取得要求をコンポーネント管理部302に送信する。
コンポーネント管理部302は、コンポーネントの取得要求を受信すると、コンポーネント名「"ocr"」のコンポーネント(すなわち、OCRコンポーネント1501)を生成する(ステップS3304)。なお、OCRコンポーネント1501の生成は、コンポーネント共通I/F1500に定義されたコンポーネントを生成するためのAPIを用いて行うことができる。
そして、コンポーネント管理部302は、生成したOCRコンポーネント1501をフロー実行部301に返信する。すなわち、コンポーネント管理部302は、例えば、OCRコンポーネント1501が展開されたメモリ(例えばRAM14)上のアドレスをフロー実行部301に返信する。
次に、フロー実行部301は、コンポーネント実行要求をOCRコンポーネント1501に送信する(ステップS3305)。なお、当該実行要求には、データと、パラメータ情報とが含まれる。
ここで、データは、データ型「InputStream」として、ブラウザ210から受信した電子ファイルである。すなわち、フロー実行部301は、ブラウザ210から受信した電子ファイルを、単に「データ」として(データ型を意識することなく)、OCRコンポーネント1501に渡して処理の実行を要求する。本実施形態では、このようにデータ型を意識しない電子ファイル等の各種の情報を、単に「データ」と表す。
また、パラメータ情報は、図8に示す処理フロー情報1100の詳細処理定義1110に含まれる「"parameters"」に定義されている各パラメータ情報のパラメータ値に、パラメータ設定情報の各パラメータ値を設定したものである。すなわち、パラメータ情報は、「"language":"English"」等である。
OCRコンポーネント1501は、コンポーネント実行要求を受信すると、型変換要求を型変換管理部304に送信する(ステップS3306)。なお、当該型変換要求には、データと、OCRコンポーネント1501が扱うことができるデータ型を示す「LocalFilePath」の指定とが含まれる。
型変換管理部304は、型変換要求を受信すると、当該型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するか否かをチェックする(ステップS3307)。
ここで、型変換要求に含まれるデータのデータ型は「InputStream」である一方、指定されたデータ型は「LocalFilePath」である。したがって、型変換管理部304は、型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致しないものと判断する。
すると、型変換管理部304は、型変換情報テーブル4000を参照して、データ型「InputStream」を「LocalFilePath」に変換するための型変換を特定する(ここでは、第1の型変換1410が特定される。)。そして、型変換管理部304は、特定した第1の型変換1410を生成する(ステップS3308)。なお、第1の型変換1410の生成は、型変換共通I/F1400を用いて行うことができる。
次に、型変換管理部304は、型変換処理の実行要求を第1の型変換1410に送信する(ステップS3309)。なお、当該実行要求には、データが含まれる。
第1の型変換1410は、型変換の実行要求を受信すると、当該実行要求に含まれるデータのデータ型を「InputStream」から「LocalFilePath」に変換する型変換処理を行う(ステップS3310)。そして、第1の型変換1410は、データ型が変換されたデータを型変換管理部304に返信する。
そして、型変換管理部304は、第1の型変換1410からデータを受信すると、当該データをOCRコンポーネント1501に送信する(ステップS3311)。
OCRコンポーネント1501は、型変換管理部304からデータを受信すると、パラメータ情報を用いて、データに対して処理を実行する(ステップS3312)。
すなわち、OCRコンポーネント1501は、OCR処理部131により、パラメータ情報「"language":"English"」を用いて、データにより示される電子ファイルに対して、英語でOCR処理を行う。
そして、OCRコンポーネント1501は、OCR処理後の電子ファイル(すなわち、テキストファイル)を示すデータをフロー実行部301に返信する。
次に、フロー実行部301は、処理フロー情報1100に基づくコンポーネントの取得要求をコンポーネント管理部302に送信する(ステップS3313)。
すなわち、フロー実行部301は、図8に示す処理フロー情報1100の詳細処理定義1120に含まれる「"component"」に定義されているコンポーネント名「"translation"」のコンポーネントの取得要求をコンポーネント管理部302に送信する。
コンポーネント管理部302は、コンポーネントの取得要求を受信すると、コンポーネント名「"translation"」のコンポーネント(すなわち、翻訳コンポーネント1502)を生成する(ステップS3314)。なお、翻訳コンポーネント1502の生成は、コンポーネント共通I/F1500に定義されたコンポーネントを生成するためのAPIを用いて行うことができる。
そして、コンポーネント管理部302は、生成した翻訳コンポーネント1502をフロー実行部301に返信する。すなわち、コンポーネント管理部302は、例えば、翻訳コンポーネント1502が展開されたメモリ(例えばRAM14)上のアドレスをフロー実行部301に返信する。
次に、フロー実行部301は、コンポーネント実行要求を翻訳コンポーネント1502に送信する(ステップS3315)。なお、当該実行要求には、データと、パラメータ情報とが含まれる。
ここで、データは、OCRコンポーネント1501から返信されたデータ(すなわち、OCR処理後の電子ファイルを示すパス)である。
また、パラメータ情報は、図8に示す処理フロー情報1100の詳細処理定義1120に含まれる「"parameters"」に定義されている各パラメータ情報のパラメータ値に、パラメータ設定情報の各パラメータ値を設定したものである。すなわち、パラメータ情報は、「"from":"English"」、及び「"to":"Japanese"」等である。
翻訳コンポーネント1502は、コンポーネント実行要求を受信すると、型変換要求を型変換管理部304に送信する(ステップS3316)。なお、当該型変換要求には、データと、翻訳コンポーネント1502が扱うことができるデータ型を示す「LocalFilePath」の指定とが含まれる。
型変換管理部304は、型変換要求を受信すると、当該型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するか否かをチェックする(ステップS3317)。
ここで、型変換要求に含まれるデータのデータ型は「LocalFilePath」であり、指定されたデータ型も「LocalFilePath」である。したがって、型変換管理部304は、型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するものと判断する。
すると、型変換管理部304は、型変換要求に含まれるデータを翻訳コンポーネント1502に送信する(ステップS3318)。このように、データ型のチェック(ステップS3317の処理)において、データのデータ型と、指定されたデータ型とが一致すると判断された場合には、型変換管理部304は、型変換の生成を行わない。
翻訳コンポーネント1502は、型変換管理部304からデータを受信すると、パラメータ情報を用いて、データに対して処理を実行する(ステップS3319)。すなわち、翻訳コンポーネント1502は、パラメータ情報「"from":"English"」及び「"to":"Japanese"」を用いて、データにより示される電子ファイルを英語から日本語に翻訳する処理を行う。
そして、翻訳コンポーネント1502は、翻訳処理後の電子ファイルを示すデータをフロー実行部301に返信する。
なお、翻訳コンポーネント1502は、例えば、サービス提供システム10とネットワークを介して接続される翻訳サーバ等に翻訳処理を要求することにより、電子ファイルの翻訳を行っても良い。
次に、フロー実行部301は、処理フロー情報1100に基づくコンポーネントの取得要求をコンポーネント管理部302に送信する(ステップS3320)。
すなわち、フロー実行部301は、図8に示す処理フロー情報1100の詳細処理定義1130に含まれる「"component"」に定義されているコンポーネント名「"mail"」のコンポーネントの取得要求をコンポーネント管理部302に送信する。
コンポーネント管理部302は、コンポーネントの取得要求を受信すると、コンポーネント名「"mail"」のコンポーネント(すなわち、メール配信コンポーネント1503)を生成する(ステップS3321)。なお、メール配信コンポーネント1503の生成は、コンポーネント共通I/F1500に定義されたコンポーネントを生成するためのAPIを用いて行うことができる。
そして、コンポーネント管理部302は、生成したメール配信コンポーネント1503をフロー実行部301に返信する。すなわち、コンポーネント管理部302は、例えば、メール配信コンポーネント1503が展開されたメモリ(例えばRAM14)上のアドレスをフロー実行部301に返信する。
次に、フロー実行部301は、コンポーネント実行要求をメール配信コンポーネント1503に送信する(ステップS3322)。なお、当該実行要求には、データと、パラメータ情報とが含まれる。
ここで、データは、翻訳コンポーネント1502から返信されたデータ(すなわち、翻訳後の電子ファイルを示すパス)である。
また、パラメータ情報は、図8に示す処理フロー情報1100の詳細処理定義1130に含まれる「"parameters"」に定義されている各パラメータ情報のパラメータ値に、パラメータ設定情報の各パラメータ値を設定したものである。すなわち、パラメータ情報は、「"address":"abc@abc.co.jp"」等である。
メール配信コンポーネント1503は、コンポーネント実行要求を受信すると、型変換要求を型変換管理部304に送信する(ステップS3323)。なお、当該型変換要求には、データと、メール配信コンポーネント1503が扱うことができるデータ型を示す「LocalFilePath」の指定とが含まれる。
型変換管理部304は、型変換要求を受信すると、当該型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するか否かをチェックする(ステップS3324)。
ここで、型変換要求に含まれるデータのデータ型は「LocalFilePath」であり、指定されたデータ型も「LocalFilePath」である。したがって、型変換管理部304は、型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するものと判断する。
すると、型変換管理部304は、型変換要求に含まれるデータをメール配信コンポーネント1503に送信する(ステップS3325)。このように、データ型のチェック(ステップS1824の処理)において、データのデータ型と、指定されたデータ型とが一致すると判断された場合には、型変換管理部304は、型変換の生成を行わない。
メール配信コンポーネント1503は、型変換管理部304からデータを受信すると、パラメータ情報を用いて、データに対して処理を実行する(ステップS3326)。
すなわち、メール配信コンポーネント1503は、メール配信部132により、データにより示される電子ファイルを添付したメールを作成する。次に、メール配信コンポーネント1503は、パラメータ情報「"address":"abc@abc.co.jp"」を用いて、メール配信部132により、当該メールを「abc@abc.co.jp」宛に送信する。
そして、メール配信コンポーネント1503は、メールの送信結果を示すデータをフロー実行部301に返信する。
以上により、図8に示す処理フロー情報1100に基づく一連の処理(処理フロー)の実行が完了する。これにより、本実施形態に係るサービス提供システム10は、機器20に対して、スキャン翻訳サービスを提供することができる。
<<アプリケーションが実行する処理フローにコンポーネントグループが設定されている場合>>
続いて、アプリケーションが実行する処理フローにコンポーネントグループが設定されている場合に機器がアプリケーションを実行する手順を説明する。ここでは図1に示したように、「外部ストレージサービスA」と「外部ストレージサービスB」のストレージサービスがコンポーネントグループとして設定されている場合を例に説明する。
(i) OCR
(ii) ファイルアップロード(外部ストレージサービスA)又はファイルアップロード(外部ストレージサービスB)
(iii) メール送信
コンポーネントグループが設定されている場合、ロジック処理部112はコンポーネントグループの複数のコンポーネントのいずれか又は両方を実行する。生成されたコンポーネントはアプリ関連情報1300で自分が選択(指定)されている場合にだけ、ファイルアップロードを行う。
図34は、コンポーネントグループが設定されている場合に機器がアプリケーションを実行する手順の一例を示すシーケンス図である。なお、図34では図33との相違を主に説明する。OCRコンポーネント1501とメール配信のコンポーネントの実行に関しては図33と同様になるため図34では一部の処理が省略されている。
まず、図34のステップS3401~S3404など、OCRコンポーネントに関する処理は図33と同様になる。
次に、フロー実行部301は、図21に示す処理フロー情報1100に基づくコンポーネントの取得要求をコンポーネント管理部302に送信する(ステップS3411)。
すなわち、フロー実行部301は、処理フロー情報1100に定義されているコンポーネント名「fileupload(外部ストレージサービスA)」のコンポーネントの取得要求をコンポーネント管理部302に送信する。
コンポーネント管理部302は、コンポーネントの取得要求を受信すると、コンポーネント名「fileupload(外部ストレージサービスA)」のコンポーネント(ファイルアップロード(外部ストレージサービスA)コンポーネント1504を生成する(ステップS3412)。
そして、コンポーネント管理部302は、生成したファイルアップロード(外部ストレージサービスA)1504をフロー実行部301に返信する。すなわち、コンポーネント管理部302は、例えば、ファイルアップロード(外部ストレージサービスA)コンポーネント1504が展開されたメモリ(例えばRAM14)上のアドレスをフロー実行部301に返信する。
次に、フロー実行部301は、コンポーネント実行要求をファイルアップロード(外部ストレージサービスA)コンポーネント1504に送信する(ステップS3413)。なお、当該実行要求には、データと、パラメータ情報とが含まれる。
ここで、データは、OCRコンポーネント1501から返信されたデータ(すなわち、OCR処理後の電子ファイルを示すパス)である。また、パラメータ情報は、処理フロー情報1100に定義されている情報に加え、アプリ関連情報1300である。
ファイルアップロード(外部ストレージサービスA)コンポーネント1504はこのパラメータ情報に基づいて、要求された処理を実行するか否かを判断する。ファイルアップロード(外部ストレージサービスA)コンポーネント1504は、アプリ関連情報1300のストレージ設定1307に「外部ストレージサービスA」が設定されている場合に実行すると判断し、それ以外の場合は実行しないと判断する。
実行しないと判断した場合、ファイルアップロード(外部ストレージサービスA)コンポーネント1504はファイルアップロードを実行しない旨をフロー実行部301に送出して処理を終える。
実行すると判断した場合、以降のステップS3415~S3418が実行される。ファイルアップロードでは一般に型変換は不要であるが、図33のステップS3317と同様に処理する。
ステップS3418でファイルアップロード(外部ストレージサービスA)コンポーネント1504はデータをストレージサービスに記憶させる。すなわち、実行しているアプリケーションが個人用アプリの場合は、ログイン時に特定されているエンドユーザのアカウントを指定してストレージサービスにフォルダIDを指定してデータを送信する。実行しているアプリケーションが共有アプリの場合は、アプリ関連情報のストレージアカウント設定1309に設定されているエンドユーザのアカウントを指定してストレージサービスにデータを送信する。ファイルアップロード(外部ストレージサービスA)コンポーネント1504は、図30に示した個人共通区別1304を参照して個人用アプリか共有アプリかを判断してよい。実行しているアプリケーションが個人用アプリか否かを判断することなく、アプリ関連情報1300にストレージアカウント設定1309が設定されている場合はこれをログインしているエンドユーザのアカウントよりも優先して使用してもよい。
続いて、フロー実行部301は、処理フロー情報1100に基づくコンポーネントの取得要求をコンポーネント管理部302に送信する(ステップS3419)。すなわち、ステップS3419~S3425では、コンポーネントグループに定義された次のコンポーネントについて、ステップS3411~S3418と同様の処理が行われる。相違点を説明する。
ステップS3420において、コンポーネント管理部302は、コンポーネントの取得要求を受信すると、コンポーネント名「fileupload(外部ストレージサービスB)」のコンポーネント(すなわち、ファイルアップロード(外部ストレージサービスB)コンポーネント1505を生成する(ステップS3420)。
ステップS3421の実行判断についてはステップS3414と同様である。アプリ関連情報1300で「外部ストレージサービスA」と「外部ストレージサービスB」のどちらかが設定されるという前提では、ステップS3421又はステップS3414のどちらかでファイルアップロードが行われる。アプリ関連情報1300で「外部ストレージサービスA」と「外部ストレージサービスB」の両方が設定される場合、ステップS3421及びステップS3414の両方でファイルアップロードが行われてもよい。
ステップS3421において、ファイルアップロード(外部ストレージサービスB)コンポーネント1505はデータをストレージサービスに記憶させる。すなわち、実行しているアプリケーションが個人用アプリの場合は、ログイン時に特定されているエンドユーザのアカウントを指定し、更に、アプリ関連情報1300にオプション設定されている親フォルダーパス設定1310、及び、ファイル名設定1311を指定して、ストレージサービスにデータを送信する。実行しているアプリケーションが共有アプリの場合は、アプリ関連情報1300のストレージアカウント設定1309に設定されているエンドユーザのアカウントを指定し、更に、アプリ関連情報にオプション設定されている親フォルダーパス設定1310、及び、ファイル名設定1311を指定して、ストレージサービスにデータを送信する。
ステップS3426以降の処理は図33のステップS3320~S3326で説明されたメール配信と同様になる。
このように、コンポーネントグループが設定されていても、サービス提供システム10はコンポーネントグループが設定されていない場合とほぼ同様の手順で処理フローを実行できる。
<機器によるアプリケーションの実行時のストレージサービスの選択>
図25、図26においてエンドユーザがアプリケーションの実行前にアプリケーションで使用するストレージサービスを選択できると説明したが、ストレージサービスの選択をアプリケーションの実行時にできれば使い勝手が向上する。以下では、エンドユーザがストレージサービスをアプリケーションの実行時に選択する方法を説明する。
図35は、アプリケーションの実行時の全体処理の一例を示すシーケンス図である。なお、図35では主に図31との相違を説明する。
ステップS3105において、Webサービス処理部120の画面構成部121は、実行するアプリケーションを提供するアプリ情報1000のアプリIDと関連付けて記憶されているアプリ画面情報2000をアプリ画面情報記憶部160から取得する(ステップS3105)。処理フローにコンポーネントグループが含まれている場合は、コンポーネントグループに含まれる複数のコンポーネントを選択する画面情報がアプリ画面情報2000に含まれる。
ステップS3106でアプリ画面が表示されると、エンドユーザはストレージサービスを選択する画面を表示させる。機器20の操作受付部212はこの操作を受け付けて、表示制御部213は複数のコンポーネントを選択する画面情報に基づいてストレージサービスを選択する画面を表示する。
そして、エンドユーザがストレージサービスを選択すると、操作受付部212は機器20のブラウザ210はストレージサービスの選択を受け付ける(ステップS3106-2)。
エンドユーザによるストレージサービスの選択結果はステップS3110でロジック処理部112に送信されるので、図34で説明したように、エンドユーザが選択したストレージサービスにデータが記憶される。
図36は、機器20のブラウザ210が表示するコンポーネントの選択を受け付けるコンポーネント選択画面G1300の一例である。図36(a)のコンポーネント選択画面G1300は、アプリケーション名欄441、及び、コンポーネント選択欄442を有している。アプリケーション名欄441はエンドユーザが実行するアプリケーションの名称が表示される欄である。コンポーネント選択欄442には、コンポーネントグループの複数のコンポーネントがプルダウン形式で表示される。図36(a)では「外部ストレージサービスB」が選択された状態である。
機器20の操作受付部212は「外部ストレージサービスB」の選択を受け付けた場合、表示制御部213はコンポーネントを選択する画面情報に基づいて、親フォルダーパス設定欄443、及び、ファイル名設定欄444を表示する。したがって、エンドユーザは「外部ストレージサービスB」というストレージサービスで設定可能な親フォルダとファイル名を設定できる。
図36(b)のコンポーネント選択欄442では「外部ストレージサービスA」が選択された状態である。このため、機器20の表示制御部213は「外部ストレージサービスA」で設定可能な親フォルダID設定欄445を表示する。
このように、本実施形態のサービス提供システム10では、アプリケーションの実行時にエンドユーザがストレージサービスを選択できる。
<まとめ>
以上説明したように、本実施形態のサービス提供システム10は、1つの処理フローに、処理内容が類似している複数のサービスをまとめることができ、開発者の負担を低減できる。エンドユーザは自分が使用するストレージサービスをアプリケーションの実行前及び実行時に選択できる。
<その他の適用例>
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
<<ユーザが枠を先に設定して後からコンポーネントを区画に配置する方法>>
例えば、図37に示すように、ユーザが枠330を先に設定して後からコンポーネントを区画350に配置してもよい。図37は処理フロー設定画面G800における処理フローの設定方法の一例を示す。図37(a)に示すように、ユーザは実行される順番が同じ縦方向の複数の区画を囲むようにポインティングデバイス320をドラッグして枠330を指定する。この段階では枠330内の区画350にはコンポーネントのアイコンが配置されていない。PC端末30の操作受付部312はこの操作を受けつけ、表示制御部313が枠330を表示する。
次に、ユーザはコンポーネントリスト欄403からコンポーネントを選択する。PC端末30の操作受付部312はこの操作を受けつけ、図37(b)に示すように、表示制御部313が選択されたコンポーネントのアイコン340hを枠330の一番上の区画350に配置する。
次に、ユーザがコンポーネントリスト欄403からコンポーネントグループに所属するコンポーネントを選択する。PC端末30の操作受付部312はこの操作を受けつけ、図37(c)に示すように、表示制御部313が選択されたコンポーネントのアイコン340bを枠330の上から2番目の区画350に配置する。
枠330の大きさはユーザが後から任意に大きくできるため、3つ以上のコンポーネントをグループ化することもできる。
<<その他>>
本実施形態では、「外部ストレージサービスA」と「外部ストレージサービスB」というストレージサービスを説明に使用したが、「Google Drive(登録商標)」、「Sharepoint Online(登録商標)」、「Onedrive(登録商標) for business」など、他のストレージサービスが処理フローに設定されてもよい。
また、本実施形態では機器20として主に画像形成装置を説明に使用したが、アプリケーションを実行する機器は画像形成装置に限られない。例えば、PJ(Projector:プロジェクタ)、IWB(Interactive White Board:相互通信が可能な電子式の黒板機能を有する白板)等であってもよい。
また、図5、図6などの構成例は、サービス提供システム10による処理の理解を容易にするために、主な機能に応じて分割したものである。処理単位の分割の仕方や名称によって本願発明が制限されることはない。サービス提供システム10の処理は、処理内容に応じて更に多くの処理単位に分割することもできる。また、1つの処理単位が更に多くの処理を含むように分割することもできる。
上記で説明した実施形態の各機能は、一又は複数の処理回路によって実現することが可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたASIC(Application Specific Integrated Circuit)、DSP(Digital Signal Processor)、FPGA(Field Programmable Gate Array)や従来の回路モジュール等のデバイスを含むものとする。
なお、UI提供部141は画面情報送信手段の一例であり、操作受付部312は設定受付手段の一例であり、表示制御部313は表示処理手段の一例であり、ロジック処理部112は処理フロー実行手段の一例であり、通信部211は受信手段の一例であり、通信部311は送信手段の一例である。