(57)【要約】【課題】アプリケーションの開発を支援する。【解決手段】所定の処理を実行するプログラムを有し、アプリ毎に、１以上のプログラム識別情報と実行順とが定義されたフロー情報を、フロー識別情報とアプリ利用画面情報とを対応付けて複数定義されたアプリ設定情報に関連付けたアプリを記憶する記憶手段と、第１の電子機器から、アプリ識別情報が含まれる第１の要求を受信する第１の受信手段と、第１の要求に含まれるアプリ識別情報のアプリのアプリ設定情報に定義されているアプリ利用画面情報に応じたアプリ利用画面を送信する送信手段と、アプリ利用画面における実行に応じて送信され、アプリ利用画面に対応するフロー識別情報が含まれる第２の要求を受信する第２の受信手段と、第２の要求に含まれるフロー識別情報のフロー情報を取得する取得手段と、フロー情報に定義されているプログラム識別情報のプログラムを実行順に従って実行する実行手段と、を有する。【選択図】図４
2018205933.tif 000002
【特許請求の範囲】
【請求項１】
１以上の情報処理装置を含み、所定の処理をそれぞれ実行する複数のプログラムを有する情報処理システムであって、
電子データを用いた一連の処理を実行するアプリケーション毎に、該一連の処理のそれぞれの処理を実行する１以上の前記プログラムを識別するプログラム識別情報と、１以上の前記プログラムの実行順とが定義されたフロー情報を、該フロー情報を識別するフロー識別情報と、該フロー識別情報により識別されるフロー情報に基づく一連の処理を実行するためのアプリ利用画面を示す情報とを対応付けて複数定義されたアプリ設定情報に関連付けた前記アプリケーションを記憶するアプリ記憶手段と、
前記情報処理システムに接続される１以上の電子機器のうちの第１の電子機器から、前記アプリケーションを識別するアプリ識別情報が含まれる第１の要求を受信する第１の受信手段と、
前記第１の受信手段により受信した前記第１の要求に含まれる前記アプリ識別情報により識別される前記アプリケーションの前記アプリ設定情報に定義されている前記アプリ利用画面を示す情報に応じたアプリ利用画面を、前記第１の電子機器に送信する送信手段と、
前記第１の電子機器に表示された前記アプリ利用画面における前記一連の処理の実行に応じて送信され、前記アプリ利用画面に対応するフロー識別情報が含まれる第２の要求を受信する第２の受信手段と、
前記第２の受信手段により受信した前記第２の要求に含まれる前記フロー識別情報により識別される前記フロー情報を前記アプリ記憶手段から取得する取得手段と、
前記取得手段により取得された前記フロー情報に定義されている前記プログラム識別情報により識別される１以上の前記プログラムそれぞれを、前記フロー情報に定義されている前記実行順に従って実行させることで、前記一連の処理を実行する実行手段と、
を有する情報処理システム。
【請求項２】
前記１以上の電子機器のうちの第２の機器において作成された前記アプリ設定情報が含まれる登録要求を受信する第３の受信手段と、
前記第３の受信手段により受信した前記登録要求に含まれる前記アプリ設定情報を、アプリ設定情報に定義された複数のフロー識別情報によりそれぞれ識別される複数のフロー情報と関連付けて前記アプリ記憶手段に記憶させるアプリ登録手段と、
を有することを特徴する、請求項１に記載の情報処理システム。
【請求項３】
前記アプリ設定情報には、前記フロー識別情報と、前記アプリ利用画面を示す情報とを対応付けて、順に複数定義されており、
前記送信手段は、
前記実行手段により前記一連の処理が実行された場合、前記アプリ設定情報において、前記一連の処理に対応するフロー情報を識別するフロー識別情報の次に定義されているフロー識別情報に対応付けられている前記アプリ利用画面を示す情報に応じたアプリ画面を、前記第１の電子機器に送信する、ことを特徴とする請求項１又は２に記載の情報処理システム。
【請求項４】
前記アプリ利用画面を示す情報は、該アプリ利用画面のレイアウトを示す情報であり、
前記アプリ設定情報には、前記フロー識別情報と、該フロー識別情報の１つ前のフロー識別情報により識別されるフロー情報に基づく一連の処理の処理結果のデータ形式と同一のデータ形式を入力可能な前記レイアウトを示す情報とが対応付けられている、ことを特徴とする請求項３に記載の情報処理システム。
【請求項５】
所定の処理をそれぞれ実行する複数のプログラムを有する情報処理装置であって、
電子データを用いた一連の処理を実行するアプリケーション毎に、該一連の処理のそれぞれの処理を実行する１以上の前記プログラムを識別するプログラム識別情報と、１以上の前記プログラムの実行順とが定義されたフロー情報を、該フロー情報を識別するフロー識別情報と、該フロー識別情報により識別されるフロー情報に基づく一連の処理を実行するためのアプリ利用画面を示す情報とを対応付けて複数定義されたアプリ設定情報に関連付けた前記アプリケーションを記憶するアプリ記憶手段と、
前記情報処理装置に接続される１以上の電子機器のうちの第１の電子機器から、前記アプリケーションを識別するアプリ識別情報が含まれる第１の要求を受信する第１の受信手段と、
前記第１の受信手段により受信した前記第１の要求に含まれる前記アプリ識別情報により識別される前記アプリケーションの前記アプリ設定情報に定義されている前記アプリ利用画面を示す情報に応じたアプリ利用画面を、前記第１の電子機器に送信する送信手段と、
前記第１の電子機器に表示された前記アプリ利用画面における前記一連の処理の実行に応じて送信され、前記アプリ利用画面に対応するフロー識別情報が含まれる第２の要求を受信する第２の受信手段と、
前記第２の受信手段により受信した前記第２の要求に含まれる前記フロー識別情報により識別される前記フロー情報を前記アプリ記憶手段から取得する取得手段と、
前記取得手段により取得された前記フロー情報に定義されている前記プログラム識別情報により識別される１以上の前記プログラムそれぞれを、前記フロー情報に定義されている前記実行順に従って実行させることで、前記一連の処理を実行する実行手段と、
を有する情報処理装置。
【請求項６】
１以上の情報処理装置を含み、所定の処理をそれぞれ実行する複数のプログラムを有する情報処理システムであって、電子データを用いた一連の処理を実行するアプリケーション毎に、該一連の処理のそれぞれの処理を実行する１以上の前記プログラムを識別するプログラム識別情報と、１以上の前記プログラムの実行順とが定義されたフロー情報を、該フロー情報を識別するフロー識別情報と、該フロー識別情報により識別されるフロー情報に基づく一連の処理を実行するためのアプリ利用画面を示す情報とを対応付けて複数定義されたアプリ設定情報に関連付けた前記アプリケーションを記憶するアプリ記憶手段を有する情報処理システムに用いられる情報処理方法において、
前記情報処理システムに接続される１以上の電子機器のうちの第１の電子機器から、前記アプリケーションを識別するアプリ識別情報が含まれる第１の要求を受信する第１の受信手順と、
前記第１の受信手順により受信した前記第１の要求に含まれる前記アプリ識別情報により識別される前記アプリケーションの前記アプリ設定情報に定義されている前記アプリ利用画面を示す情報に応じたアプリ利用画面を、前記第１の電子機器に送信する送信手順と、
前記第１の電子機器に表示された前記アプリ利用画面における前記一連の処理の実行に応じて送信され、前記アプリ利用画面に対応するフロー識別情報が含まれる第２の要求を受信する第２の受信手順と、
前記第２の受信手順により受信した前記第２の要求に含まれる前記フロー識別情報により識別される前記フロー情報を前記アプリ記憶手段から取得する取得手順と、
前記取得手順により取得された前記フロー情報に定義されている前記プログラム識別情報により識別される１以上の前記プログラムそれぞれを、前記フロー情報に定義されている前記実行順に従って実行させることで、前記一連の処理を実行する実行手順と、
を有する情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理装置及び情報処理方法に関する。
【背景技術】
【０００２】
近年、複数の機能（例えば、スキャンやプリント、メール配信等）を組み合わせた機能を提供するサービス等が知られるようになった。例えば、スキャンにより生成された電子ファイル（画像ファイル）に所定の処理を行った上で、メール配信するサービス等が知られている。このようなサービスは、各機能を実現する１以上の処理が一連の処理として実行されることにより実現される。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記の従来技術では、ユーザがサービスを利用するためには、例えば、一連の処理を実行させるためのアプリケーションの開発が必要であった。一方で、アプリケーションの開発には、例えば、プログラミング言語等に関する専門的な知識や経験を必要とする場合があった。
【０００４】
本発明の実施の形態は、上記の点に鑑みてなされたもので、アプリケーションの開発を支援することを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するため、本発明の実施の形態は、１以上の情報処理装置を含み、所定の処理をそれぞれ実行する複数のプログラムを有する情報処理システムであって、電子データを用いた一連の処理を実行するアプリケーション毎に、該一連の処理のそれぞれの処理を実行する１以上の前記プログラムを識別するプログラム識別情報と、１以上の前記プログラムの実行順とが定義されたフロー情報を、該フロー情報を識別するフロー識別情報と、該フロー識別情報により識別されるフロー情報に基づく一連の処理を実行するためのアプリ利用画面を示す情報とを対応付けて複数定義されたアプリ設定情報に関連付けた前記アプリケーションを記憶するアプリ記憶手段と、前記情報処理システムに接続される１以上の電子機器のうちの第１の電子機器から、前記アプリケーションを識別するアプリ識別情報が含まれる第１の要求を受信する第１の受信手段と、前記第１の受信手段により受信した前記第１の要求に含まれる前記アプリ識別情報により識別される前記アプリケーションの前記アプリ設定情報に定義されている前記アプリ利用画面を示す情報に応じたアプリ利用画面を、前記第１の電子機器に送信する送信手段と、前記第１の電子機器に表示された前記アプリ利用画面における前記一連の処理の実行に応じて送信され、前記アプリ利用画面に対応するフロー識別情報が含まれる第２の要求を受信する第２の受信手段と、前記第２の受信手段により受信した前記第２の要求に含まれる前記フロー識別情報により識別される前記フロー情報を前記アプリ記憶手段から取得する取得手段と、前記取得手段により取得された前記フロー情報に定義されている前記プログラム識別情報により識別される１以上の前記プログラムそれぞれを、前記フロー情報に定義されている前記実行順に従って実行させることで、前記一連の処理を実行する実行手段と、を有する。
【発明の効果】
【０００６】
本発明の実施の形態によれば、アプリケーションの開発を支援することができる。
【図面の簡単な説明】
【０００７】
【図１】本実施形態に係る情報処理システムのシステム構成の一例を示す図である。
【図２】本実施形態に係るサービス提供システム及びＰＣ端末のハードウェア構成の一例を示す図である。
【図３】本実施形態に係る機器のハードウェア構成の一例を示す図である。
【図４】外部ファイル印刷アプリケーションを模式的に説明する図である。
【図５】本実施形態に係る情報処理システムの機能構成の一例を示す図である。
【図６】本実施形態に係るロジック処理部の機能構成の一例を示す図である。
【図７】型変換情報テーブルの一例を示す図である。
【図８】処理フロー情報の一例を示す図である。
【図９】レイアウト情報の一例を示す図である。
【図１０】コンポーネント詳細情報の一例を示す図である。
【図１１】アプリケーション登録の全体処理の一例を示すシーケンス図である。
【図１２】外部印刷アプリケーションのアプリ画面及び処理フローの設定処理の一例を示すシーケンス図である。
【図１３】アプリケーション登録画面（１／３）の一例を示す図である。
【図１４】アプリケーション登録画面（２／３）の一例を示す図である。
【図１５】アプリケーション登録画面（３／３）の一例を示す図である。
【図１６】アプリ設定情報の一例を示す図である。
【図１７】外部ファイル印刷サービスを利用する場合の全体処理の一例を示すシーケンス図である。
【図１８】外部ファイル印刷アプリケーションにおけるアプリ画面の画面遷移の一例を示す図である。
【図１９】アプリ画面の他の例を示す図である。
【図２０】ファイル一覧取得フローの実行処理の一例を示すシーケンス図である。
【図２１】ファイルダウンロードフローの実行処理の一例を示すシーケンス図である。
【図２２】外部ファイル印刷サービスを利用する場合の全体処理の他の例を示すシーケンス図である。
【図２３】バーコード付与アプリケーションを模式的に説明する図である。
【図２４】バーコード付与アプリケーションにおけるアプリ画面の画面遷移の一例を示す図である。
【発明を実施するための形態】
【０００８】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
【０００９】
＜システム構成＞
まず、本実施形態に係る情報処理システム１のシステム構成について、図１を参照しながら説明する。図１は、本実施形態に係る情報処理システム１のシステム構成の一例を示す図である。
【００１０】
図１に示す情報処理システム１は、サービス提供システム１０と、機器２０と、ＰＣ端末３０と、外部ストレージシステム４０とを含み、インターネット等の広域的なネットワークＮ１を介して通信可能に接続されている。
【００１１】
サービス提供システム１０は、一台以上の情報処理装置で実現され、ネットワークＮ１を介して、クラウドサービス等の外部サービスと連携した一連の処理により実現される各種のサービスを提供する。
【００１２】
本実施形態に係るサービス提供システム１０が提供するサービスの具体例については後述する。なお、以降では、一連の処理を「処理フロー」とも表す。
【００１３】
なお、本実施形態では、外部サービスの具体例としてクラウドサービスを採用して説明するが、これに限られない。本実施形態は、例えば、ＡＳＰ（Application Service Provider）によって提供されるサービスやＷｅｂサービス等のネットワークを介して提供される各種の外部サービスに関して適用されても良い。
【００１４】
機器２０は、ユーザが使用する各種の電子機器である。すなわち、機器２０は、例えば、ＭＦＰ（Multifunction Peripheral）等の画像形成装置、ＰＣ（パーソナルコンピュータ）、プロジェクタ、電子黒板、デジタルカメラ等である。ユーザは、機器２０を用いて、サービス提供システム１０が提供する各種のサービスを利用することができる。
【００１５】
なお、以降では、複数の機器２０について、各々を区別するときは、「機器２０１」、「機器２０２」等と添え字を用いて記載する。
【００１６】
ＰＣ端末３０は、例えば、ユーザが使用するデスクトップＰＣ、ノート型ＰＣ、スマートフォン、タブレット端末等である。ユーザは、ＰＣ端末３０を用いて、サービス提供システム１０が提供する各種のサービスを利用することができる。
【００１７】
なお、以降では、複数のＰＣ端末３０について、各々を区別するときは、「ＰＣ端末３０１」、「ＰＣ端末３０２」等と添え字を用いて記載する。
【００１８】
外部ストレージシステム４０は、ネットワークＮ１を介してストレージサービス（又はオンラインストレージ）と呼ばれるクラウドサービスを提供するコンピュータシステムである。ストレージサービスとは、外部ストレージシステム４０のストレージの記憶領域を貸し出すサービスである。
【００１９】
なお、以降では、複数の外部ストレージシステム４０について、各々を区別するときは、「外部ストレージシステム４０１」、「外部ストレージシステム４０２」等と添え字を用いて記載する。また、外部ストレージシステム４０１により提供されるストレージサービスの名称を「ストレージＡ」、外部ストレージシステム４０１により提供されるストレージサービスの名称を「ストレージＢ」等とする。
【００２０】
なお、外部ストレージシステム４０は、複数台の情報処理装置によって実現されるシステムであっても良い。
【００２１】
また、図１に示す情報処理システム１の構成は一例であって、他の構成であっても良い。例えば、本実施形態に係る情報処理システム１には、電子データの入力及び出力の少なくとも一方を行う各種機器が含まれ、これらの機器がサービス提供システム１０により提供される各種サービスを利用しても良い。
【００２２】
＜ハードウェア構成＞
次に、本実施形態に係る情報処理システム１に含まれるサービス提供システム１０及びＰＣ端末３０のハードウェア構成について、図２を参照しながら説明する。図２は、本実施形態に係るサービス提供システム１０及びＰＣ端末３０のハードウェア構成の一例を示す図である。なお、サービス提供システム１０及びＰＣ端末３０は、同様のハードウェア構成を有しているため、以降では、主に、サービス提供システム１０のハードウェア構成について説明する。
【００２３】
図２に示すサービス提供システム１０は、入力装置１１と、表示装置１２と、外部Ｉ／Ｆ１３と、ＲＡＭ（Random Access Memory）１４とを有する。また、サービス提供システム１０は、ＲＯＭ（Read Only Memory）１５と、ＣＰＵ（Central Processing Unit）１６と、通信Ｉ／Ｆ１７と、ＨＤＤ（Hard Disk Drive）１８とを有する。これらの各ハードウェアは、それぞれがバスＢで接続されている。
【００２４】
入力装置１１は、キーボードやマウス、タッチパネル等を含み、ユーザが各操作信号を入力するのに用いられる。表示装置１２は、ディスプレイ等を含み、サービス提供システム１０による処理結果を表示する。なお、入力装置１１及び表示装置１２の少なくとも一方は、必要なときにサービス提供システム１０に接続して利用する形態であっても良い。
【００２５】
通信Ｉ／Ｆ１７は、サービス提供システム１０をネットワークＮ１に接続するインタフェースである。これにより、サービス提供システム１０は、通信Ｉ／Ｆ１７を介して通信を行うことができる。
【００２６】
ＨＤＤ１８は、プログラムやデータを格納している不揮発性の記憶装置である。ＨＤＤ１８に格納されるプログラムやデータには、サービス提供システム１０全体を制御する基本ソフトウェアであるＯＳ（Operating System）、ＯＳ上において各種機能を提供するアプリケーションソフトウェア等がある。
【００２７】
なお、サービス提供システム１０は、ＨＤＤ１８に代え、記憶媒体としてフラッシュメモリを用いるドライブ装置（例えばソリッドステートドライブ：ＳＳＤ）を利用するものであっても良い。また、ＨＤＤ１８は、格納しているプログラムやデータを所定のファイルシステム及び／又はＤＢにより管理している。
【００２８】
外部Ｉ／Ｆ１３は、外部装置とのインタフェースである。外部装置には、記録媒体１３ａ等がある。これにより、サービス提供システム１０は、外部Ｉ／Ｆ１３を介して記録媒体１３ａの読み取りや書き込みを行うことができる。記録媒体１３ａには、フレキシブルディスク、ＣＤ、ＤＶＤ、ＳＤメモリカード、ＵＳＢメモリ等がある。
【００２９】
ＲＯＭ１５は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。ＲＯＭ１５には、サービス提供システム１０の起動時に実行されるＢＩＯＳ（Basic Input/Output System）、ＯＳ設定、及びネットワーク設定等のプログラムやデータが格納されている。ＲＡＭ１４は、プログラムやデータを一時保持する揮発性の半導体メモリである。
【００３０】
ＣＰＵ１６は、ＲＯＭ１５やＨＤＤ１８等の記憶装置からプログラムやデータをＲＡＭ１４上に読み出し、処理を実行することで、サービス提供システム１０全体の制御や機能を実現する演算装置である。
【００３１】
本実施形態に係るサービス提供システム１０及びＰＣ端末３０は、図２に示すハードウェア構成を有することにより、後述するような各種処理を実現できる。
【００３２】
次に、本実施形態に係る情報処理システム１に含まれる機器２０が画像形成装置である場合のハードウェア構成について、図３を参照しながら説明する。図３は、本実施形態に係る機器２０のハードウェア構成の一例を示す図である。
【００３３】
図３に示す機器２０は、コントローラ２１と、操作パネル２２と、外部Ｉ／Ｆ２３と、通信Ｉ／Ｆ２４と、プリンタ２５と、スキャナ２６とを有する。また、コントローラ２１は、ＣＰＵ３１と、ＲＡＭ３２と、ＲＯＭ３３と、ＮＶＲＡＭ３４と、ＨＤＤ３５とを有する。
【００３４】
ＲＯＭ３３は、各種プログラムやデータを格納している不揮発性の半導体メモリである。ＲＡＭ３２は、プログラムやデータを一時保持する揮発性の半導体メモリである。ＮＶＲＡＭ３４は、例えば設定情報等を格納している。また、ＨＤＤ３５は、各種プログラムやデータを格納している不揮発性の記憶装置である。
【００３５】
ＣＰＵ３１は、ＲＯＭ３３やＮＶＲＡＭ３４、ＨＤＤ３５等からプログラムやデータ、設定情報等をＲＡＭ３２上に読み出し、処理を実行することで、機器２０全体の制御や機能を実現する演算装置である。
【００３６】
操作パネル２２は、ユーザからの入力を受け付ける入力部と、表示を行う表示部とを備えている。外部Ｉ／Ｆ２３は、外部装置とのインタフェースである。外部装置には、記録媒体２３ａ等がある。これにより、機器２０は、外部Ｉ／Ｆ２３を介して記録媒体２３ａの読み取り及び／又は書き込みを行うことができる。なお、記録媒体２３ａには、例えば、ＩＣカード、フレキシブルディスク、ＣＤ、ＤＶＤ、ＳＤメモリカード、ＵＳＢメモリ等がある。
【００３７】
通信Ｉ／Ｆ２４は、機器２０をネットワークに接続するインタフェースである。これにより、機器２０は、通信Ｉ／Ｆ２４を介して通信を行うことができる。プリンタ２５は、印刷データを印刷する印刷装置である。スキャナ２６は、原稿を読み取って電子ファイル（画像ファイル）を生成する読取装置である。
【００３８】
本実施形態に係る機器２０は、図３に示すハードウェア構成を有することにより、後述するような各種処理を実現できる。
【００３９】
＜サービス提供システムが提供するサービス＞
ここで、本実施形態に係るサービス提供システム１０が提供するサービスについて説明する。なお、以降では、機器２０が画像形成装置であるものとして説明する。
【００４０】
本実施形態では、外部ストレージシステム４０に格納されているファイルの一覧を取得した上で、ユーザにより選択されたファイルをダウンロードして、機器２０で印刷するサービスを「外部ファイル印刷サービス」と表す。そして、本実施形態では、サービス提供システム１０が外部ファイル印刷サービスを提供する場合について説明する。
【００４１】
サービス提供システム１０が外部ファイル印刷サービスを提供するには、機器２０が外部ファイル印刷サービスを利用するためのアプリケーション（後述するアプリ情報１０００）をサービス提供システム１０に登録する必要がある。
【００４２】
したがって、本実施形態では、外部ファイル印刷サービスを利用するためのアプリケーション（以降では、「外部ファイル印刷アプリケーション」とも表す。）をＰＣ端末３０が登録する場合と、外部ファイル印刷サービスを機器２０が利用する場合とを説明する。
【００４３】
ここで、本実施形態に係る外部ファイル印刷アプリケーションは、図４に示すように、１以上の画面と、１以上の処理フローとが含まれるものとする。
【００４４】
すなわち、外部ファイル印刷アプリケーションは、ユーザがフォルダを選択するためのフォルダ選択画面と、選択されたフォルダに格納されているファイルの一覧を取得するための処理フロー（ファイル一覧取得フロー）とが対応付けられている。また、外部ファイル印刷アプリケーションは、ファイル一覧取得フローで取得されたファイル一覧を表示するためのファイル一覧画面と、当該画面で選択されたファイルをダウンロードするための処理フロー（ファイルダウンロードフロー）とが対応付けられている。更に、外部ファイル印刷アプリケーションは、ファイルダウンロードフローでダウンロードされたファイルのプレビュー表示するためのプレビュー画面が含まれる。ユーザは、プレビュー画面にプレビュー表示されているファイルを機器２０で印刷することができる。なお、プレビュー画面には、処理フローは対応付けられていない。
【００４５】
このように、サービス提供システム１０に登録されるアプリケーションには、１以上の画面を含めることができると共に、当該画面を用いて実行させることができる処理フローを含めることができる。
【００４６】
なお、サービス提供システム１０により提供されるサービスは、外部ファイル印刷サービスに限られない。サービス提供システム１０は、例えば、機器２０において原稿をスキャンすることにより生成された電子ファイルを暗号化した上で、メール配信するサービスを提供しても良い。
【００４７】
同様に、サービス提供システム１０は、例えば、機器２０において原稿をスキャンすることにより生成された電子ファイルに所定の情報を付加した上で、ＦＡＸ送信するサービスを提供しても良い。
【００４８】
＜機能構成＞
次に、本実施形態に係る情報処理システム１の機能構成について、図５を参照しながら説明する。図５は、本実施形態に係る情報処理システム１の機能構成の一例を示す図である。
【００４９】
図５に示すＰＣ端末３０は、例えばＣＰＵ１６等により実行されるブラウザ３１０を有する。ＰＣ端末３０のユーザは、ブラウザ３１０を用いて、「外部ファイル印刷サービス」等の各種サービスを利用するためのアプリケーションをサービス提供システム１０に登録することができる。
【００５０】
図５に示す機器２０は、例えばＣＰＵ３１等により実行されるブラウザ２１０を有する。機器２０のユーザは、ブラウザ２１０を用いて、「外部ファイル印刷サービス」等の各種サービスを利用することができる。すなわち、機器２０は、ブラウザ２１０を有していれば良く、例えば、サービス提供システム１０が提供する各種サービスを利用するための専用のアプリケーションプログラム等を有している必要はない。
【００５１】
図５に示すサービス提供システム１０は、入出力サービス処理部１１０と、Ｗｅｂサービス処理部１２０と、ドキュメントサービス部１３０と、ポータルサービス部１４０とを有する。これら各機能部は、サービス提供システム１０にインストールされた１以上のプログラムが、ＣＰＵ１６に実行させる処理により実現される。
【００５２】
また、サービス提供システム１０は、アプリ情報記憶部１５０と、アプリ画面情報記憶部１６０と、ポータル画面情報記憶部１７０と、レイアウト情報記憶部１８０と、コンポーネント詳細情報記憶部１９０とを有する。これら各記憶部は、ＨＤＤ１８を用いて実現可能である。なお、これら各記憶部のうちの少なくとも１つの記憶部が、サービス提供システム１０とネットワークを介して接続される記憶装置等を用いて実現されていても良い。
【００５３】
入出力サービス処理部１１０は、サービス提供システム１０が提供するサービスに関する処理を行う。ここで、入出力サービス処理部１１０は、アプリ管理部１１１と、ロジック処理部１１２と、レイアウト管理部１１３と、処理情報管理部１１４とを有する。
【００５４】
アプリ管理部１１１は、アプリ情報記憶部１５０に記憶されているアプリ情報１０００を管理する。なお、アプリ情報１０００とは、一連の処理により実現されるサービスを利用するためのアプリケーションである。換言すれば、サービス提供システム１０が提供する各種サービスは、アプリ情報１０００により提供される。
【００５５】
また、アプリ管理部１１１は、ロジック処理部１１２からの要求に応じて、アプリ情報１０００に含まれる処理フロー情報１１００を返信する。なお、処理フロー情報１１００とは、アプリ情報１０００により提供されるサービスを実現する一連の処理が定義された情報である。処理フロー情報１１００の詳細については後述する。
【００５６】
更に、アプリ管理部１１１は、ポータルサービス部１４０からの要求に応じて、アプリ情報１０００をアプリ情報記憶部１５０に記憶させる。これにより、サービスを提供するアプリ情報１０００（アプリケーション）がサービス提供システム１０に登録される。
【００５７】
ロジック処理部１１２は、Ｗｅｂサービス処理部１２０からの要求に応じて、アプリ情報１０００に含まれる処理フロー情報１１００をアプリ管理部１１１から取得する。そして、ロジック処理部１１２は、アプリ管理部１１１から取得した処理フロー情報１１００に基づいて、当該アプリ情報１０００が提供するサービスを実現する一連の処理（処理フロー）を実行する。これにより、本実施形態に係るサービス提供システム１０は、「外部ファイル印刷サービス」等の各種サービスを提供することができる。なお、ロジック処理部１１２の詳細については後述する。
【００５８】
レイアウト管理部１１３は、レイアウト情報記憶部１８０に記憶されているレイアウト情報を管理する。なお、レイアウト情報とは、アプリ情報１０００により提供されるサービスを利用するための画面（アプリ画面）のレイアウトに関する情報である。レイアウト情報の詳細については後述する。
【００５９】
また、レイアウト管理部１１３は、ユーザがアプリケーションを登録する場合において、ブラウザ３１０からの要求に応じて、ユーザが選択可能なレイアウトのレイアウト情報をレイアウト情報記憶部１８０から取得する。
【００６０】
処理情報管理部１１４は、コンポーネント詳細情報記憶部１９０に記憶されているコンポーネント詳細情報５０００を管理する。なお、コンポーネント詳細情報５０００とは、処理フローに含まれる各処理を実行するコンポーネントに関する情報である。コンポーネント詳細情報５０００の詳細については後述する。
【００６１】
また、処理情報管理部１１４は、コンポーネント詳細情報記憶部１９０に記憶されているコンポーネント詳細情報５０００を参照して、ユーザにより選択された処理フロー情報１１００の出力形式を特定する。出力形式とは、処理フロー情報１１００に基づく一連の処理が出力する処理結果のデータ形式のことである。出力形式には、例えば、ファイル一覧等のデータのリストを示す「ｌｉｓｔ」、電子ファイルを示す「ｆｉｌｅ」等がある。
【００６２】
Ｗｅｂサービス処理部１２０は、ユーザが機器２０のブラウザ２１０を用いて各種サービスを利用するための処理を行う。すなわち、Ｗｅｂサービス処理部１２０は、ブラウザ２１０に対してＷｅｂアプリケーション（アプリ情報１０００）を提供するアプリケーションサーバとして機能する。ここで、Ｗｅｂサービス処理部１２０は、画面構成部１２１と、アプリ実行部１２２とを有する。
【００６３】
画面構成部１２１は、ブラウザ２１０からの要求に応じて、アプリ画面情報記憶部１６０に記憶されているアプリ画面情報２０００と、アプリ情報記憶部１５０に記憶されているアプリ設定情報１２００とを返信する。
【００６４】
なお、アプリ画面情報２０００とは、アプリ情報１０００により提供されるサービスを利用するための画面（アプリ画面）の雛形が定義された情報である。アプリ画面情報２０００は、例えば、ＨＴＭＬ（HyperText Markup Language）、ＸＨＴＭＬ（Extensible HyperText Markup Language）、ＣＳＳ（Cascading Style Sheets）、ＪａｖａＳｃｒｉｐｔ（登録商標）等でアプリ画面の雛形が定義された情報である。
【００６５】
また、アプリ設定情報１２００は、アプリケーション（アプリ情報１０００）の各種設定が定義された情報である。例えば、アプリ設定情報１２００には、一連の処理の実行に用いられるパラメータ情報のうち、ユーザによりパラメータ値が入力されるパラメータ情報やデフォルトでパラメータ値が設定されるパラメータ情報等が定義されている。また、例えば、アプリ設定情報１２００には、ユーザがアプリ画面においてパラメータ情報を入力するための入力項目やアプリ画面における表示情報（例えば、アプリケーション名）等が定義されている。アプリ設定情報１２００は、例えば、ＪＳＯＮ（JavaScript Object Notation）等でアプリケーションの各種設定が定義された情報である。
【００６６】
これにより、機器２０には、ブラウザ２１０により、サービス提供システム１０が提供するサービスを利用するためのアプリ画面が表示される。
【００６７】
アプリ実行部１２２は、ブラウザ２１０からの要求に応じて、入出力サービス処理部１１０に対して、アプリケーション（アプリ情報１０００）の実行要求を送信する。
【００６８】
ドキュメントサービス部１３０は、処理フロー情報１１００に基づく一連の処理（処理フロー）に含まれる所定の処理を実行する。ここで、ドキュメントサービス部１３０は、ＯＣＲ処理部１３１等を有する。
【００６９】
ＯＣＲ処理部１３１は、電子ファイルに対してＯＣＲ処理を行って、ＯＣＲ処理で認識されたテキストを付与したＰＤＦ（Portable Document Format）ファイルを作成する。
【００７０】
なお、ドキュメントサービス部１３０には、これら以外にも、例えば、電子ファイルを圧縮又は解凍するための圧縮・解凍処理部、電子ファイルのファイル形式等を変換するためのファイル形式変換部等、種々の機能部が含まれていても良い。
【００７１】
ポータルサービス部１４０は、ユーザがＰＣ端末３０のブラウザ３１０を用いてアプリケーションの登録等を行うための処理を行う。ここで、ポータルサービス部１４０は、ＵＩ提供部１４１と、アプリ登録部１４２とを有する。
【００７２】
ＵＩ提供部１４１は、ブラウザ３１０からの要求に応じて、ポータル画面情報記憶部１７０に記憶されているポータル画面情報３０００を返信する。ここで、ポータルとは、ブラウザ３１０を用いて、アプリケーションの登録等を行うことができるＷｅｂサイトである。
【００７３】
なお、ポータル画面情報３０００とは、ポータルの各種画面（例えば、ポータルのトップ画面やアプリケーション登録画面等）が定義された情報である。ポータル画面情報３０００は、例えば、ＨＴＭＬ、ＸＭＬ、ＣＳＳ、ＪａｖａＳｃｒｉｐｔ等で各種画面が定義された情報である。
【００７４】
これにより、ＰＣ端末３０には、ブラウザ３１０により、アプリケーション登録画面等が表示される。したがって、ＰＣ端末３０のユーザは、アプリケーション登録画面において、アプリケーション（アプリ情報１０００）の登録操作を行うことができる。
【００７５】
アプリ登録部１４２は、ＵＩ提供部１４１からの要求に応じて、アプリケーション（アプリ情報１０００）の登録をアプリ管理部１１１に要求する。すなわち、アプリ登録部１４２は、アプリケーション登録画面において、アプリケーションの登録操作が行われると、アプリケーションの登録をアプリ管理部１１１に要求する。
【００７６】
アプリ情報記憶部１５０は、アプリ情報１０００を記憶する。アプリ情報１０００は、当該アプリ情報１０００を識別するアプリＩＤと関連付けてアプリ情報記憶部１５０に記憶されている。なお、アプリＩＤは、例えば、アプリ情報１０００のＵＲＬ（Uniform Resource Locator）、又はアプリ情報１０００のＵＲＬに含まれる識別情報等である。
【００７７】
ここで、アプリ情報１０００には、１以上の処理フロー情報１１００と、アプリ設定情報１２００とが含まれる。
【００７８】
例えば、外部ファイル印刷サービスを提供するアプリ情報１０００（外部ファイル印刷アプリケーション）には、ファイル一覧取得フローが定義された処理フロー情報１１００と、ファイルダウンロードフローが定義された処理フロー情報１１００とが含まれる。また、外部ファイル印刷サービスを提供するアプリ情報１０００には、当該アプリ情報１０００の各種設定が定義されたアプリ設定情報１２００が含まれる。
【００７９】
なお、アプリ情報１０００には、２以上のアプリ設定情報１２００が含まれていても良い。
【００８０】
処理フロー情報１１００は、上述したように、アプリ情報１０００により提供されるサービスを実現する一連の処理（処理フロー）が定義された情報である。処理フロー情報１１００の詳細については後述する。
【００８１】
また、アプリ設定情報１２００は、上述したように、アプリケーション（アプリ情報１０００）の各種設定が定義された情報である。アプリ設定情報１２００の詳細については後述する。
【００８２】
アプリ画面情報記憶部１６０は、アプリ画面情報２０００を記憶する。アプリ画面情報２０００は、アプリＩＤと関連付けてアプリ画面情報記憶部１６０に記憶されている。なお、アプリ画面情報記憶部１６０では、１つのアプリＩＤに対して、１以上のアプリ画面情報２０００が関連付けられている。例えば、外部ファイル印刷アプリケーションのアプリＩＤには、フォルダ選択画面のアプリ画面情報２０００と、ファイル一覧画面のアプリ画面情報２０００と、プレビュー画面のアプリ画面情報２０００とが関連付けられている。
【００８３】
ポータル画面情報記憶部１７０は、ポータル画面情報３０００を記憶する。ポータル画面情報３０００は、アプリケーション登録画面等のＵＲＬと関連付けてポータル画面情報記憶部１７０に記憶されている。
【００８４】
レイアウト情報記憶部１８０は、レイアウト情報を記憶する。コンポーネント詳細情報記憶部１９０は、コンポーネント詳細情報５０００を記憶する。
【００８５】
なお、入出力サービス処理部１１０、Ｗｅｂサービス処理部１２０、ドキュメントサービス部１３０、及びポータルサービス部１４０等は、それぞれが異なる情報処理装置により実現されていても良い。
【００８６】
ここで、ロジック処理部１１２の詳細な機能構成について、図６を参照しながら説明する。図６は、本実施形態に係るロジック処理部１１２の機能構成の一例を示す図である。
【００８７】
図６に示すロジック処理部１１２は、フロー実行部３０１と、コンポーネント管理部３０２と、コンポーネント群３０３と、型変換管理部３０４と、型変換群３０５とを有する。
【００８８】
フロー実行部３０１は、アプリ実行部１２２からアプリケーションの実行要求を受信すると、当該実行要求に対応する処理フロー情報１１００をアプリ管理部１１１から取得する。そして、フロー実行部３０１は、アプリ管理部１１１から取得した処理フロー情報１１００に基づく一連の処理（処理フロー）を実行する。
【００８９】
ここで、処理フロー情報１１００に基づく一連の処理は、当該一連の処理に含まれる各処理を実行するためのコンポーネントを組み合わせることにより実行される。なお、コンポーネントは、所定の機能を実現する処理を実行するためのプログラムやモジュール等により実現され、例えばクラスや関数等で定義される。
【００９０】
コンポーネント管理部３０２は、コンポーネントを管理する。コンポーネント管理部３０２は、フロー実行部３０１からの要求に応じて、コンポーネントを生成すると共に、生成したコンポーネントをフロー実行部３０１に返信する。なお、コンポーネントの生成とは、例えばクラスや関数等で定義されたコンポーネントを、メモリ（例えばＲＡＭ１４）上に展開することである。
【００９１】
コンポーネント群３０３は、コンポーネントの集合である。コンポーネント群３０３には、外部ストレージコンポーネント１３１０と、バーコードコンポーネント１３２０とが含まれる。
【００９２】
外部ストレージコンポーネント１３１０は、予め設定された外部ストレージシステム４０に格納されているファイル一覧の取得やファイルのダウンロード、外部ストレージシステム４０へのファイルのアップロード等を行うためのコンポーネントである。
【００９３】
バーコードコンポーネント１３２０は、電子ファイルに対してバーコード等を付与するためのコンポーネントである。
【００９４】
このように、各コンポーネントは、所定の機能を実現する処理を実行する。なお、コンポーネント群３０３には、上記のコンポーネント以外にも、例えば、電子ファイルの暗号化や復号を行うための暗号化・復号コンポーネント、電子ファイルを圧縮するための圧縮コンポーネント等の各種のコンポーネントが含まれる。
【００９５】
また、コンポーネント群３０３に含まれる各コンポーネントは、コンポーネント共通Ｉ／Ｆ１３００を有する。コンポーネント共通Ｉ／Ｆ１３００は、各コンポーネントに対して共通に定義されたＡＰＩ（Application Programming Interface）であり、コンポーネントを生成するためのＡＰＩと、コンポーネントの処理を実行するためのＡＰＩとが含まれる。
【００９６】
このように、各コンポーネントがコンポーネント共通Ｉ／Ｆ１３００を有することで、コンポーネントの追加等に伴う影響を局所化することができる。すなわち、例えば、フロー実行部３０１やコンポーネント管理部３０２等に影響を与えることなく、コンポーネントの追加等を行うことができる。これにより、本実施形態に係るサービス提供システム１０では、所定の機能の追加等（すなわち、当該機能を実現する処理を実行するためのコンポーネントの追加等）に伴う開発工数を削減することができる。
【００９７】
型変換管理部３０４は、データ型の型変換を管理する。ここで、各コンポーネントは、自身が扱えるデータ型が予め決まっている。したがって、型変換管理部３０４は、コンポーネントからの要求に応じて、例えば図７に示す型変換情報テーブル４０００を参照して、型変換群３０５に含まれる型変換を生成する。
【００９８】
そして、型変換管理部３０４は、生成された型変換に型変換処理の実行を要求する。なお、型変換は、データ型の型変換処理を実行するプログラムやモジュール等により実現され、例えばクラスや関数等で定義される。また、型変換の生成とは、例えばクラスや関数等で定義された型変換を、メモリ（例えばＲＡＭ１４上）に展開することである。
【００９９】
なお、データ型には、例えば、ストリームデータを示すデータ型「ＩｎｐｕｔＳｔｒｅａｍ」、記憶装置等に格納されている電子ファイルのパス（アドレス）を示す「ＬｏｃａｌＦｉｌｅＰａｔｈ」、及び電子ファイルの実体を示す「Ｆｉｌｅ」等が挙げられる。
【０１００】
ここで、型変換情報テーブル４０００について、図７を参照しながら説明する。図７は、型変換情報テーブル４０００の一例を示す図である。
【０１０１】
図７に示す型変換情報テーブル４０００は、データ項目として、変換前のデータ型と、変換後のデータ型と、生成する型変換とを有する。すなわち、型変換情報テーブル４０００に格納されている型変換情報は、変換前のデータ型及び変換後のデータ型毎に、当該変換前のデータ型を、当該変換後のデータ型に変換するための型変換が関連付けられた情報である。
【０１０２】
型変換群３０５は、型変換の集合である。型変換群３０５には、データ型「ＩｎｐｕｔＳｔｒｅａｍ」を「ＬｏｃａｌＦｉｌｅＰａｔｈ」に変換するための第１の型変換１４１０が含まれる。なお、型変換群３０５には、これ以外にも、例えば、データ型「ＬｏｃａｌＦｉｌｅＰａｔｈ」を「Ｆｉｌｅ」に変換するための第２の型変換等が含まれる。
【０１０３】
また、型変換群３０５に含まれる各型変換は、型変換共通Ｉ／Ｆ１４００を有する。型変換共通Ｉ／Ｆ１４００は、各型変換に対して共通に定義されたＡＰＩであり、型変換を生成するためのＡＰＩと、型変換の型変換処理を実行するためのＡＰＩとが含まれる。
【０１０４】
このように、各型変換が型変換共通Ｉ／Ｆ１４００を有することで、型変換の追加等に伴う影響を局所化することができる。すなわち、例えば、型変換管理部３０４等に影響を与えることなく、型変換の追加等を行うことができる。これにより、本実施形態に係るサービス提供システム１０では、型変換の追加等に伴う開発工数を削減することができる。
【０１０５】
ここで、外部ファイル印刷サービスを提供するアプリ情報１０００に含まれる処理フロー情報１１００について、図８を参照しながら説明する。図８は、処理フロー情報１１００の一例を示す図である。
【０１０６】
図８（ａ）に示す処理フロー情報１１００は、ファイル一覧取得フローが定義された情報である。また、図８（ｂ）に示す処理フロー情報１１００は、ファイルダウンロードフローが定義された情報である。
【０１０７】
図８（ａ）及び図８（ｂ）に示す処理フロー情報１１００には、処理フロー情報１１００を識別するフロー名１１０１と、処理フローに含まれる各処理の処理内容が定義されたフロー詳細１１０２とが含まれる。
【０１０８】
また、フロー詳細１１０２には、詳細処理定義１１１０が含まれる。詳細処理定義１１１０には、詳細処理定義を識別する詳細処理名を示す「"ｄｅｔａｉｌＮａｍｅ"」と、処理を実行するためのコンポーネントのコンポーネント名を示す「"ｃｏｍｐｏｎｅｎｔ"」とが含まれる。また、詳細処理定義１１１０には、当該コンポーネントが実行するオペレーションを示す「"ｏｐｅｒａｔｉｏｎＮａｍｅ"」と、パラメータ情報が定義される「"ｐａｒａｍｅｔｅｒｓ"」とが含まれる。
【０１０９】
なお、オペレーションとはコンポーネントが実行する処理のことであり、各コンポーネントは、１以上のオペレーションを実行することが可能である。
【０１１０】
具体的には、図８（ａ）に示す処理フロー情報１１００のフロー詳細１１０２に含まれる詳細処理定義１１１０の「"ｄｅｔａｉｌＮａｍｅ"」には、「"ｄｅｔａｉｌ０"」が定義されている。また、「"ｃｏｍｐｏｎｅｎｔ"」には、外部ストレージコンポーネント１３１０のコンポーネント名「"ｓｔｏｒａｇｅ"」が定義されている。「"ｏｐｅｒａｔｉｏｎＮａｍｅ"」には、外部ストレージコンポーネント１３１０がファイル一覧の取得処理を実行することを示すオペレーション名「"ｇｅｔＦｉｌｅｌｉｓｔ"」が定義されている。「"ｐａｒａｍｅｔｅｒｓ"」には、ファイル一覧の取得処理に用いられるパラメータ情報が定義されている。
【０１１１】
同様に、図８（ｂ）に示す処理フロー情報１１００のフロー詳細１１０２に含まれる詳細処理定義１１１０の「"ｄｅｔａｉｌＮａｍｅ"」には、「"ｄｅｔａｉｌ０"」が定義されている。また、「"ｃｏｍｐｏｎｅｎｔ"」には、外部ストレージコンポーネント１３１０のコンポーネント名「"ｓｔｏｒａｇｅ"」が定義されている。「"ｏｐｅｒａｔｉｏｎＮａｍｅ"」には、外部ストレージコンポーネント１３１０がファイルダウンロード処理を実行することを示すオペレーション名「"ｄｏｗｎｌｏａｄＦｉｌｅ"」が定義されている。「"ｐａｒａｍｅｔｅｒｓ"」には、ファイルダウンロード処理に用いられるパラメータ情報が定義されている。
【０１１２】
なお、図８（ａ）及び図８（ｂ）に示す処理フロー情報１１００では、フロー詳細１１０２に１つの詳細処理定義１１１０が含まれている例を示したが、処理フローに２以上の処理が含まれる場合には、フロー詳細１１０２には２以上の詳細処理定義が含まれる。
【０１１３】
また、フロー詳細１１０２に２以上の詳細処理定義が含まれる場合、これら２以上の詳細処理定義にそれぞれ定義された処理の実行順は、フロー詳細１１０２において上から定義されている順となる。ただし、これに限られず、処理フロー情報１１００には、例えば、各詳細処理定義に定義された処理の実行順を示す情報が定義されていても良い。
【０１１４】
次に、レイアウト情報記憶部１８０に記憶されているレイアウト情報について、図９を参照しながら説明する。図９は、レイアウト情報の一例を示す図である。
【０１１５】
図９に示すように、レイアウト情報記憶部１８０には、１以上のレイアウト情報が記憶されている。また、各レイアウト情報では、レイアウト名と、入力形式とが関連付けられている。
【０１１６】
レイアウト名とは、アプリ画面のレイアウトを識別する情報である。入力形式とは、レイアウト名により示されるレイアウトで表示可能なデータ形式である。
【０１１７】
例えば、レイアウト名「ｏｎｅ−ｃｏｌｕｍｎ−ｌｉｓｔ」には、入力形式「ｌｉｓｔ」が関連付けられている。これは、レイアウト名「ｏｎｅ−ｃｏｌｕｍｎ−ｌｉｓｔ」により示されるレイアウトのアプリ画面では、データ形式が「ｌｉｓｔ」であるデータを表示可能であることを示している。すなわち、レイアウト名「ｏｎｅ−ｃｏｌｕｍｎ−ｌｉｓｔ」により示されるレイアウトのアプリ画面では、出力形式が「ｌｉｓｔ」である処理フローの処理結果が表示可能である。
【０１１８】
また、例えば、レイアウト名「ｐｒｅｖｉｅｗ」には、入力形式「ｆｉｌｅ」が関連付けられている。これは、レイアウト名「ｐｒｅｖｉｅｗ」により示されるレイアウトのアプリ画面では、データ形式が「ｆｉｌｅ」であるデータを表示可能であることを示している。すなわち、レイアウト名「ｐｒｅｖｉｅｗ」により示されるレイアウトのアプリ画面では、出力形式が「ｆｉｌｅ」である処理フローの処理結果が表示可能である。
【０１１９】
このように、レイアウト情報には、レイアウトを示すレイアウト名と、当該レイアウトで表示可能なデータ形式を示す入力形式とが関連付けられている。
【０１２０】
次に、コンポーネント詳細情報記憶部１９０に記憶されているコンポーネント詳細情報５０００のうち、一例として、外部ストレージコンポーネント１３１０のコンポーネント詳細情報５０００について、図１０を参照しながら説明する。図１０は、コンポーネント詳細情報５０００の一例を示す図である。
【０１２１】
図１０に示すコンポーネント詳細情報５０００には、外部ストレージコンポーネント１３１０を識別するコンポーネント名「ｓｔｏｒａｇｅ」が定義されたコンポーネント名５００１が含まれる。また、図１０に示すコンポーネント詳細情報５０００には、外部ストレージコンポーネント１３１０が実行可能なオペレーションの内容が定義されたオペレーション定義５００２が含まれる。
【０１２２】
オペレーション定義５００２には、ファイル一覧の取得処理が定義されたオペレーション内容５０１０と、ファイルダウンロード処理の内容が定義されたオペレーション内容５０２０とが含まれる。また、各オペレーション内容５０１０及び５０２０には、オペレーション名を示す「"ｏｐｅｒａｔｉｏｎＮａｍｅ"」と、出力される処理結果のデータ形式を示す「"ｌｉｓｔ"」と、オペレーションに用いられるパラメータ情報とが定義されている。
【０１２３】
具体的には、オペレーション内容５０１０の「"ｏｐｅｒａｔｉｏｎＮａｍｅ"」には、ファイル一覧の取得処理を実行するオペレーションを示す「"ｇｅｔＦｉｌｅＬｉｓｔ"」が定義されている。また、オペレーション内容５０１０の「ｏｕｔｐｕｔＦｏｒｍａｔ」には、ファイル一覧の取得処理の処理結果のデータ形式「"ｌｉｓｔ"」が定義されている。更に、オペレーション内容５０１０の「"ｐａｒａｍｅｔｅｒｓ"」には、ファイル一覧の取得処理に用いられるパラメータ情報が定義されている。
【０１２４】
同様に、オペレーション内容５０２０の「"ｏｐｅｒａｔｉｏｎＮａｍｅ"」には、ファイルダウンロード処理を実行するオペレーションを示す「"ｄｏｗｎｌｏａｄＦｉｌｅ"」が定義されている。また、オペレーション内容５０２０の「ｏｕｔｐｕｔＦｏｒｍａｔ」には、ファイルダウンロード処理の処理結果のデータ形式「"ｆｉｌｅ"」が定義されている。更に、オペレーション内容５０２０の「"ｐａｒａｍｅｔｅｒｓ"」には、ファイルダウンロード処理に用いられるパラメータ情報が定義されている。
【０１２５】
このように、コンポーネント詳細情報５０００には、コンポーネント名と、当該コンポーネント名のコンポーネントが実行可能な１以上のオペレーションの内容とが関連付けられている。また、オペレーションの内容には、オペレーション名と、オペレーションの処理結果のデータ形式と、当該オペレーションの実行に用いられるパラメー情報とが定義されている。
【０１２６】
＜処理の詳細＞
次に、本実施形態に係る情報処理システム１の処理の詳細について説明する。まず、ＰＣ端末３０のユーザが、アプリケーションをサービス提供システム１０に登録する処理について、図１１を参照しながら説明する。図１１は、アプリケーション登録の全体処理の一例を示すシーケンス図である。
【０１２７】
まず、ＰＣ端末３０のブラウザ３１０は、アプリケーション登録画面を表示させるための操作（アプリケーション登録画面の表示操作）を受け付ける（ステップＳ１１０１）。なお、ＰＣ端末３０のユーザは、例えば、ポータルのトップ画面において、アプリケーション登録画面へのリンクを押下することで、アプリケーション登録画面の表示操作を行うことができる。
【０１２８】
ＰＣ端末３０のブラウザ３１０は、アプリケーション登録画面の表示操作を受け付けると、アプリケーション登録画面の表示要求を、ポータルサービス部１４０のＵＩ提供部１４１に送信する（ステップＳ１１０２）。
【０１２９】
ポータルサービス部１４０のＵＩ提供部１４１は、アプリケーション登録画面の表示要求を受信すると、アプリケーション登録画面のポータル画面情報３０００をポータル画面情報記憶部１７０から取得する（ステップＳ１１０３）。そして、ＵＩ提供部１４１は、ポータル画面情報記憶部１７０から取得したポータル画面情報３０００をブラウザ３１０に返信する。
【０１３０】
ＰＣ端末３０のブラウザ３１０は、アプリケーション登録画面のポータル画面情報３０００を受信すると、アプリケーションのアプリ画面及び処理フローの設定処理を行う（ステップＳ１１０４）。
【０１３１】
ここで、上記のステップＳ１１０４において、外部印刷アプリケーションのアプリ画面及び処理フローを設定する処理（すなわち、３つのアプリ画面と、２つの処理フローとを設定する場合の処理）について、図１２を参照しながら説明する。図１２は、外部印刷アプリケーションのアプリ画面及び処理フローの設定処理の一例を示すシーケンス図である。
【０１３２】
まず、ＰＣ端末３０のブラウザ３１０は、アプリケーション登録画面のポータル画面情報３０００を受信すると、選択可能レイアウト一覧の取得要求を、入出力サービス処理部１１０のレイアウト管理部１１３に送信する（ステップＳ１２０１）。
【０１３３】
入出力サービス処理部１１０のレイアウト管理部１１３は、選択可能レイアウト一覧の取得要求を受信すると、レイアウト情報をレイアウト情報記憶部１８０から取得する（ステップＳ１２０２）。このとき、レイアウト管理部１１３は、レイアウト情報記憶部１８０に記憶されている全てのレイアウト情報を取得すれば良い。
【０１３４】
そして、レイアウト管理部１１３は、レイアウト情報記憶部１８０から取得したレイアウト情報をブラウザ３１０に返信する。
【０１３５】
ＰＣ端末３０のブラウザ３１０は、アプリケーション登録画面のポータル画面情報３０００に基づいて、例えば図１３（ａ）に示すアプリケーション登録画面Ｇ１１０を表示する（ステップＳ１２０３）。
【０１３６】
図１３（ａ）に示すアプリケーション登録画面Ｇ１１０には、スクリーン追加ボタンＧ１１１が含まれている。１つのスクリーンでは、１つのアプリ画面と、１つの処理フローとを登録することができる。ユーザは、スクリーン追加ボタンＧ１１１の押下操作（スクリーンの追加操作）を行うことで、スクリーン一覧Ｇ１１２にスクリーンを追加することができる。
【０１３７】
外部ファイル印刷アプリケーションには、３つのアプリ画面と、２つの処理フローとが含まれる。このため、ユーザは、例えば、スクリーン追加ボタンＧ１１１を３回押下することにより、「Ｓｃｒｅｅｎ１」、「Ｓｃｒｅｅｎ２」、及び「Ｓｃｒｅｅｎ３」の３つのスクリーンをスクリーン一覧Ｇ１１２に追加することができる。なお、アプリケーション登録画面Ｇ１１０にデフォルトで「Ｓｃｒｅｅｎ１」が含まれる場合には、ユーザは、スクリーン追加ボタンＧ１１１を２回押下する。
【０１３８】
ユーザによりスクリーンの追加操作が行われると、ＰＣ端末３０のブラウザ３１０は、当該追加操作を受け付ける（ステップＳ１２０４）。これにより、「Ｓｃｒｅｅｎ１」、「Ｓｃｒｅｅｎ２」、及び「Ｓｃｒｅｅｎ３」の３つのスクリーンがスクリーン一覧Ｇ１１２に追加される。
【０１３９】
また、図１３（ａ）に示すアプリケーション登録画面Ｇ１１０には、表示切替欄Ｇ１１３が含まれる。ユーザは、表示切替欄Ｇ１１３に含まれる「Ｌａｙｏｕｔ」ボタンを押下することで、アプリ画面のレイアウトを選択するための画面を表示することができる。一方で、ユーザは、表示切替欄Ｇ１１３に含まれる「Ｆｌｏｗ」ボタンを押下することで、アプリ画面で実行させる処理フローを選択するための画面を表示することができる。
【０１４０】
ユーザは、レイアウト検索欄Ｇ１１４に所望の文字列を入力することで、レイアウト管理部１１３から返信されたレイアウト情報が示すレイアウトのうち、レイアウト候補欄Ｇ１１５に表示されるレイアウトを絞り込むことができる。そして、ユーザは、レイアウト候補欄Ｇ１１５の中から所望のレイアウトを選択することができる。
【０１４１】
このように、ユーザは、レイアウト管理部１１３から返信されたレイアウト情報が示すレイアウト（すなわち、選択可能レイアウト）の中から、アプリ画面に用いる所望のレイアウトを選択することができる。
【０１４２】
なお、レイアウト候補欄Ｇ１１５に表示されるレイアウトをユーザが選択した場合、当該選択されたレイアウトの概要がレイアウト概要欄Ｇ１１６に表示される。
【０１４３】
ここで、ユーザによりレイアウト「ｓｅｌｅｃｔ−ｆｏｌｄｅｒｓ」を選択する操作（レイアウトの選択操作）が行われたものとする。すると、ＰＣ端末３０のブラウザ３１０は、当該選択操作を受け付ける（ステップＳ１２０５）。これにより、外部ファイル印刷アプリケーションに対してフォルダ選択画面のレイアウト情報が設定される。
【０１４４】
表示切替欄Ｇ１１３に含まれる「Ｆｌｏｗ」ボタンをユーザが押下した場合、ブラウザ３１０により、図１３（ｂ）に示すアプリケーション登録画面Ｇ１２０が表示される。図１３（ｂ）に示すアプリケーション登録画面Ｇ１２０では、ユーザは、処理フロー検索欄Ｇ１２１に所望の文字列を入力することで、処理フロー候補欄Ｇ１２２に表示される処理フローを絞り込むことができる。そして、ユーザは、処理フロー候補欄Ｇ１２２の中から所望の処理フローを選択することができる。
【０１４５】
このように、ユーザは、処理フロー候補欄Ｇ１２２の中から所望の処理フローを選択することで、上記のステップＳ１２０５で選択したレイアウトのアプリ画面で実行させることが可能な処理フローを選択することができる。
【０１４６】
なお、処理フロー候補欄Ｇ１２２に表示される処理フローをユーザが選択した場合、当該選択された処理フローの概要が処理フロー概要欄Ｇ１２３に表示される。
【０１４７】
ここで、ユーザにより処理フロー「ｓｔｏｒａｇｅ−ｆｉｌｅｓ」を選択する操作（処理フローの選択操作）が行われたものとする。すると、ＰＣ端末３０のブラウザ３１０は、当該選択操作を受け付ける（ステップＳ１２０６）。これにより、外部ファイル印刷アプリケーションに対して、フォルダ選択画面で実行可能な処理フロー（フロー名「ｓｔｏｒａｇｅ−ｆｉｌｅｓ」の処理フロー）の処理フロー情報１１００が設定される。
【０１４８】
ＰＣ端末３０のブラウザ３１０は、処理フローの選択操作を受け付けると、処理フローの出力形式の特定要求を、入出力サービス処理部１１０の処理情報管理部１１４に送信する（ステップＳ１２０７）。なお、当該特定要求には、ユーザにより選択された処理フローのフロー名（すなわち、この場合は、「ｓｔｏｒａｇｅ−ｆｉｌｅｓ」）が含まれる。
【０１４９】
入出力サービス処理部１１０の処理情報管理部１１４は、処理フローの出力形式の特定要求を受信すると、処理フロー情報の取得要求をアプリ管理部１１１に送信する（ステップＳ１２０８）。なお、当該取得要求には、ユーザにより選択された処理フローのフロー名「ｓｔｏｒａｇｅ−ｆｉｌｅｓ」が含まれる。
【０１５０】
入出力サービス処理部１１０のアプリ管理部１１１は、処理フロー情報の取得要求を受信すると、当該取得要求に含まれるフロー名「ｓｔｏｒａｇｅ−ｆｉｌｅｓ」の処理フロー情報１１００をアプリ情報記憶部１５０から取得する（ステップＳ１２０９）。そして、アプリ管理部１１１は、アプリ情報記憶部１５０から取得した処理フロー情報１１００を処理情報管理部１１４に返信する。
【０１５１】
入出力サービス処理部１１０の処理情報管理部１１４は、コンポーネント詳細情報記憶部１９０に記憶されているコンポーネント詳細情報５０００を参照して、アプリ管理部１１１から返信された処理フロー情報１１００に基づく一連の処理の出力形式を特定する（ステップＳ１２１０）。
【０１５２】
すなわち、処理情報管理部１１４は、コンポーネント詳細情報記憶部１９０に記憶されているコンポーネント詳細情報５０００を参照して、アプリ管理部１１１から返信された処理フロー情報１１００に定義されているコンポーネントのうち、最後に実行されるコンポーネントのオペレーションの出力形式を特定する。
【０１５３】
例えば、図８（ａ）に示す処理フロー情報１１００（フロー名「ｓｔｏｒａｇｅ−ｆｉｌｅｓ」の処理フロー情報１１００）では、最後に実行されるコンポーネントのオペレーションは、コンポーネント名「ｓｔｏｒａｇｅ」のオペレーション名「ｇｅｔＦｉｌｅｌｉｓｔ」である。したがって、処理情報管理部１１４は、図１０に示すコンポーネント詳細情報５０００を参照して、コンポーネント名「ｓｔｏｒａｇｅ」のオペレーション名「ｇｅｔＦｉｌｅｌｉｓｔ」の出力形式「ｌｉｓｔ」を特定する。
【０１５４】
そして、処理情報管理部１１４は、特定した出力形式をブラウザ３１０に返信する。
【０１５５】
ここで、ユーザがスクリーン一覧Ｇ１１２から「Ｓｃｒｅｅｎ２」を選択する操作（スクリーン２への切替操作）を行ったものとする。すると、ブラウザ３１０は、当該切替操作を受け付ける（ステップＳ１２１１）。
【０１５６】
ＰＣ端末３０のブラウザ３１０は、スクリーン２への切替操作を受け付けると、選択可能レイアウト一覧の取得要求を、入出力サービス処理部１１０のレイアウト管理部１１３に送信する（ステップＳ１２１２）。なお、当該取得要求には、上記のステップＳ１２１０で処理情報管理部１１４から返信された出力形式（すなわち、この場合、「ｌｉｓｔ」）が含まれる。
【０１５７】
このように、選択可能レイアウト一覧の取得要求には、１つ前のスクリーンで設定された処理フローの出力形式が含まれる。すなわち、Ｎを２以上の整数として、現在のスクリーンが「ＳｃｒｅｅｎＮ」である場合、「Ｓｃｒｅｅｎ（Ｎ−１）」で設定された処理フローの出力形式が含まれる。
【０１５８】
入出力サービス処理部１１０のレイアウト管理部１１３は、選択可能レイアウト一覧の取得要求を受信すると、レイアウト情報をレイアウト情報記憶部１８０から取得する（ステップＳ１２１３）。このとき、レイアウト管理部１１３は、レイアウト情報記憶部１８０に記憶されているレイアウト情報のうち、当該取得要求に含まれる出力形式が入力形式に設定されているレイアウト情報を取得する。
【０１５９】
すなわち、レイアウト管理部１１３は、レイアウト情報記憶部１８０に記憶されているレイアウト情報のうち、入力形式に「ｌｉｓｔ」が設定されているレイアウト情報を取得する。
【０１６０】
そして、レイアウト管理部１１３は、レイアウト情報記憶部１８０から取得したレイアウト情報をブラウザ３１０に返信する。
【０１６１】
レイアウト情報が返信されると、ブラウザ３１０により、図１４（ａ）に示すアプリケーション登録画面Ｇ２１０が表示される。図１４（ａ）に示すアプリケーション登録画面Ｇ２１０では、ユーザは、レイアウト検索欄Ｇ２１１に所望の文字列を入力することで、レイアウト管理部１１３から返信されたレイアウト情報が示すレイアウトのうち、レイアウト候補欄Ｇ２１２に表示されるレイアウトを絞り込むことができる。そして、ユーザは、レイアウト候補欄Ｇ２１２の中から所望の処理フローを選択することができる。
【０１６２】
このように、ユーザは、レイアウト管理部１１３から返信されたレイアウト情報が示すレイアウト（すなわち、選択可能レイアウト）の中から、アプリ画面に用いる所望のレイアウトを選択することができる。ここでの選択可能レイアウトとは、レイアウト情報が示すレイアウトのうち、１つ前のスクリーンで設定された処理フローの出力形式と入力形式が一致するレイアウトのことである。
【０１６３】
なお、レイアウト候補欄Ｇ２１２に表示されるレイアウトをユーザが選択した場合、当該選択されたレイアウトの概要がレイアウト概要欄Ｇ２１３に表示される。
【０１６４】
ここで、ユーザによりレイアウト「ｏｎｅ−ｃｏｌｕｍｎ−ｌｉｓｔ」を選択する操作（レイアウト選択操作）が行われたものとする。すると、ＰＣ端末３０のブラウザ３１０は、当該選択操作を受け付ける（ステップＳ１２１４）。これにより、外部ファイル印刷アプリケーションに対してファイル一覧画面のレイアウト情報が設定される。
【０１６５】
表示切替欄Ｇ１１３に含まれる「Ｆｌｏｗ」ボタンをユーザが押下した場合、ブラウザ３１０により、図１４（ｂ）に示すアプリケーション登録画面Ｇ２２０が表示される。図１４（ｂ）に示すアプリケーション登録画面Ｇ２２０では、ユーザは、処理フロー検索欄Ｇ２２１に所望の文字列を入力することで、処理フロー候補欄Ｇ２２２に表示される処理フローを絞り込むことができる。そして、ユーザは、処理フロー候補欄Ｇ２２２の中から所望の処理フローを選択することができる。
【０１６６】
このように、ユーザは、処理フロー候補欄Ｇ２２２の中から所望の処理フローを選択することで、上記のステップＳ１２１４で選択したレイアウトのアプリ画面で実行させることが可能な処理フローを選択することができる。
【０１６７】
なお、処理フロー候補欄Ｇ２２２に表示される処理フローをユーザが選択した場合、当該選択された処理フローの概要が処理フロー概要欄Ｇ２２３に表示される。
【０１６８】
ここで、ユーザにより処理フロー「ｓｔｏｒａｇｅ−ｄｏｗｎｌｏａｄ」を選択する操作（処理フローの選択操作）が行われたものとする。すると、ＰＣ端末３０のブラウザ３１０は、当該選択操作を受け付ける（ステップＳ１２１５）。これにより、外部ファイル印刷アプリケーションに対して、ファイル一覧画面で実行可能な処理フロー（フロー名「ｓｔｏｒａｇｅ−ｄｏｗｎｌｏａｄ」の処理フロー）の処理フロー情報１１００が設定される。
【０１６９】
ＰＣ端末３０のブラウザ３１０は、処理フローの選択操作を受け付けると、処理フローの出力形式の特定要求を、入出力サービス処理部１１０の処理情報管理部１１４に送信する（ステップＳ１２１６）。なお、当該特定要求には、ユーザにより選択された処理フローのフロー名（すなわち、この場合は、「ｓｔｏｒａｇｅ−ｄｏｗｎｌｏａｄ」）が含まれる。
【０１７０】
入出力サービス処理部１１０の処理情報管理部１１４は、処理フローの出力形式の特定要求を受信すると、処理フロー情報の取得要求をアプリ管理部１１１に送信する（ステップＳ１２１７）。なお、当該取得要求には、ユーザにより選択された処理フローのフロー名「ｓｔｏｒａｇｅ−ｄｏｗｎｌｏａｄ」が含まれる。
【０１７１】
入出力サービス処理部１１０のアプリ管理部１１１は、処理フロー情報の取得要求を受信すると、当該取得要求に含まれるフロー名「ｓｔｏｒａｇｅ−ｄｏｗｎｌｏａｄ」の処理フロー情報１１００をアプリ情報記憶部１５０から取得する（ステップＳ１２１８）。そして、アプリ管理部１１１は、アプリ情報記憶部１５０から取得した処理フロー情報１１００を処理情報管理部１１４に返信する。
【０１７２】
入出力サービス処理部１１０の処理情報管理部１１４は、コンポーネント詳細情報記憶部１９０に記憶されているコンポーネント詳細情報５０００を参照して、アプリ管理部１１１から返信された処理フロー情報１１００に基づく一連の処理の出力形式を特定する（ステップＳ１２１９）。
【０１７３】
すなわち、処理情報管理部１１４は、コンポーネント詳細情報記憶部１９０に記憶されているコンポーネント詳細情報５０００を参照して、アプリ管理部１１１から返信された処理フロー情報１１００に定義されているコンポーネントのうち、最後に実行されるコンポーネントのオペレーションの出力形式を特定する。
【０１７４】
例えば、図８（ｂ）に示す処理フロー情報１１００（フロー名「ｓｔｏｒａｇｅ−ｄｏｗｎｌｏａｄ」の処理フロー情報１１００）では、最後に実行されるコンポーネントのオペレーションは、コンポーネント名「ｓｔｏｒａｇｅ」のオペレーション名「ｄｏｗｎｌｏａｄＦｉｌｅ」である。したがって、処理情報管理部１１４は、図１０に示すコンポーネント詳細情報５０００を参照して、コンポーネント名「ｓｔｏｒａｇｅ」のオペレーション名「ｄｏｗｎｌｏａｄＦｉｌｅ」の出力形式「ｆｉｌｅ」を特定する。
【０１７５】
そして、処理情報管理部１１４は、特定した出力形式をブラウザ３１０に返信する。
【０１７６】
ここで、ユーザがスクリーン一覧Ｇ１１２から「Ｓｃｒｅｅｎ３」を選択する操作（スクリーン３への切替操作）を行ったものとする。すると、ブラウザ３１０は、当該切替操作を受け付ける（ステップＳ１２２０）。
【０１７７】
ＰＣ端末３０のブラウザ３１０は、スクリーン３への切替操作を受け付けると、選択可能レイアウト一覧の取得要求を、入出力サービス処理部１１０のレイアウト管理部１１３に送信する（ステップＳ１２２１）。なお、当該取得要求には、上記のステップＳ１２２０で処理情報管理部１１４から返信された出力形式（すなわち、この場合、「ｆｉｌｅ」）が含まれる。
【０１７８】
入出力サービス処理部１１０のレイアウト管理部１１３は、選択可能レイアウト一覧の取得要求を受信すると、レイアウト情報をレイアウト情報記憶部１８０から取得する（ステップＳ１２２２）。このとき、レイアウト管理部１１３は、レイアウト情報記憶部１８０に記憶されているレイアウト情報のうち、当該取得要求に含まれる出力形式が入力形式に設定されているレイアウト情報を取得する。
【０１７９】
そして、レイアウト管理部１１３は、レイアウト情報記憶部１８０から取得したレイアウト情報をブラウザ３１０に返信する。
【０１８０】
レイアウト情報が返信されると、ブラウザ３１０により、図１５に示すアプリケーション登録画面Ｇ３１０が表示される。図１５に示すアプリケーション登録画面Ｇ３１０では、ユーザは、レイアウト検索欄Ｇ３１１に所望の文字列を入力することで、レイアウト管理部１１３から返信されたレイアウト情報が示すレイアウトのうち、レイアウト候補欄Ｇ３１２に表示されるレイアウトを絞り込むことができる。そして、ユーザは、レイアウト候補欄Ｇ３１２の中から所望の処理フローを選択することができる。
【０１８１】
このように、ユーザは、レイアウト管理部１１３から返信されたレイアウト情報が示すレイアウト（すなわち、選択可能レイアウト）の中から、アプリ画面に用いる所望のレイアウトを選択することができる。ここでの選択可能レイアウトとは、レイアウト情報が示すレイアウトのうち、１つ前のスクリーンで設定された処理フローの出力形式と入力形式が一致するレイアウトのことである。
【０１８２】
なお、レイアウト候補欄Ｇ３１２に表示されるレイアウトをユーザが選択した場合、当該選択されたレイアウトの概要がレイアウト概要欄Ｇ３１３に表示される。
【０１８３】
ここで、ユーザによりレイアウト「ｐｒｅｖｉｅｗ」を選択する操作（レイアウト選択操作）が行われたものとする。すると、ＰＣ端末３０のブラウザ３１０は、当該選択操作を受け付ける（ステップＳ１２２３）。これにより、外部ファイル印刷アプリケーションに対してプレビュー画面のレイアウト情報が設定される。
【０１８４】
そして、ユーザは、ＯＫボタンＧ３１４を押下して、アプリケーションの登録を行う操作（アプリ登録操作）を行ったものとする。すると、ブラウザ３１０は、当該操作を受け付ける（ステップＳ１２２４）。これにより、外部ファイル印刷アプリケーションのアプリ画面及び処理フローを設定するための操作が完了する。なお、外部ファイル印刷アプリケーションのプレビュー画面では処理フローを実行させないことから、処理フローの選択は行われない。
【０１８５】
図１１に戻る。ステップＳ１１０４に続いて、ブラウザ３１０は、上記のステップＳ１２２４のアプリ登録操作を受け付けると、例えば図１６に示すアプリ設定情報１２００を作成する（ステップＳ１１０５）。
【０１８６】
ここで、アプリ設定情報１２００について、図１６を参照しながら説明する。図１６は、アプリ設定情報１２００の一例を示す図である。
【０１８７】
図１６に示すアプリ設定情報１２００には、アプリタイプ１２０１と、アプリ名１２０２と、ビュー定義１２０３とが含まれる。
【０１８８】
アプリタイプ１２０１には、アプリケーションのタイプが定義される。アプリケーションのタイプには、例えば、プリントタイプ、スキャンタイプ、ＦＡＸタイプ、メール送信タイプ等がある。図１６に示す例では、アプリケーションのタイプがプリントタイプであることを示す「"ａｐｐ＿ｔｙｐｅ"："ｐｒｉｎｔ"」が定義されている。
【０１８９】
アプリ名１２０２には、アプリケーションの名称が定義される。図１６に示す例では、アプリ名が「外部ファイル印刷アプリケーション」であることを示す「"ａｐｐＮａｍｅ"："外部ファイル印刷アプリケーション"」が定義されている。
【０１９０】
ビュー定義１２０３には、アプリ画面と、当該アプリ画面で実行可能な処理フローと、当該処理フローの実行に用いられるパラメータ情報とが含まれるビュー内容が定義される。
【０１９１】
図１６に示すアプリ設定情報１２００のビュー定義１２０３には、ビュー情報１２１０〜１２３０が定義されている。各ビュー情報１２１０〜１２３０には、ビュー情報を識別するビュー名を示す「"ｎａｍｅ"」と、アプリ画面のレイアウト名を示す「"ｌａｙｏｕｔＮａｍｅ"」と、当該アプリ画面で実行可能な処理フローのフロー名を示す「"ｆｌｏｗＮａｍｅ"」とが含まれる。
【０１９２】
また、ビュー情報１２１０及び１２２０には、当該処理フローの実行に用いられるパラメータ情報のうち、デフォルトのパラメータ値が設定されるパラメータ情報を示す「"ｄｅｆａｕｌｔＰａｒａｍｅｔｅｒｓ"」が含まれる。同様に、ビュー情報１２１０及び１２３０には、当該処理フローの実行に用いられるパラメータ情報のうち、ユーザにより入力されたパラメータ値が設定されるパラメータ情報を示す「"ｕｓｅｒＩｎｐｕｔＰａｒａｍｅｔｅｒｓ"」が含まれる。
【０１９３】
具体的には、図１６に示すアプリ設定情報１２００のビュー定義１２０３のビュー情報１２１０の「"ｎａｍｅ"」には、「ｖｉｅｗ１」が定義されている。また、「"ｌａｙｏｕｔＮａｍｅ"」には、図１３（ａ）に示すアプリケーション登録画面Ｇ１１０で選択されたレイアウト名「ｓｅｌｅｃｔ−ｆｏｌｄｅｒ」が定義されている。また、「"ｆｌｏｗＮａｍｅ"」には、図１３（ｂ）に示すアプリケーション登録画面Ｇ１２０で選択されたフロー名「ｓｔｏｒａｇｅ−ｆｉｌｅｓ」が定義されている。なお、「"ｄｅｆａｕｌｔＰａｒａｍｅｔｅｒｓ"」及び「"ｕｓｅｒＩｎｐｕｔＰａｒａｍｅｔｅｒｓ"」には、フロー名「ｓｔｏｒａｇｅ−ｆｉｌｅｓ」の処理フロー情報１１００に基づく一連の処理に用いられるパラメータ情報が定義されている。
【０１９４】
同様に、図１６に示すアプリ設定情報１２００のビュー定義１２０３のビュー情報１２２０の「"ｎａｍｅ"」には、「ｖｉｅｗ２」が定義されている。また、「"ｌａｙｏｕｔＮａｍｅ"」には、図１４（ａ）に示すアプリケーション登録画面Ｇ２１０で選択されたレイアウト名「ｏｎｅ−ｃｏｌｕｍｎ−ｌｉｓｔ」が定義されている。また、「"ｆｌｏｗＮａｍｅ"」には、図１４（ｂ）に示すアプリケーション登録画面Ｇ２２０で選択されたフロー名「ｓｔｏｒａｇｅ−ｄｏｗｎｌｏａｄ」が定義されている。なお、「"ｄｅｆａｕｌｔＰａｒａｍｅｔｅｒｓ"」及び「"ｕｓｅｒＩｎｐｕｔＰａｒａｍｅｔｅｒｓ"」には、フロー名「ｓｔｏｒａｇｅ−ｄｏｗｎｌｏａｄ」の処理フロー情報１１００に基づく一連の処理に用いられるパラメータ情報が定義されている。
【０１９５】
また、同様に、図１６に示すアプリ設定情報１２００のビュー定義１２０３のビュー情報１２３０の「"ｎａｍｅ"」には、「ｖｉｅｗ３」が定義されている。また、「"ｌａｙｏｕｔＮａｍｅ"」には、図１５に示すアプリケーション登録画面Ｇ３１０で選択されたレイアウト名「ｐｒｅｖｉｅｗ」が定義されている。なお、「"ｆｌｏｗＮａｍｅ"」には、処理フローが設定されていないことを示す「ｎｕｌｌ」が定義されている。
【０１９６】
以上のように、アプリ設定情報１２００には、アプリケーションを利用するための１以上のアプリ画面と、これらのアプリ画面で実行可能な処理フローと、当該処理フローの実行に用いられるパラメータ情報とが定義されている。
【０１９７】
ブラウザ３１０は、アプリ設定情報１２００を作成すると、アプリケーションの登録要求を、ポータルサービス部１４０のアプリ登録部１４２に送信する（ステップＳ１１０６）。なお、アプリケーションの登録要求には、ステップＳ１１０５で作成されたアプリ設定情報１２００が含まれる。
【０１９８】
ポータルサービス部１４０のアプリ登録部１４２は、アプリケーションの登録要求を受信すると、当該登録要求を、入出力サービス処理部１１０のアプリ管理部１１１に送信する（ステップＳ１１０７）。
【０１９９】
入出力サービス処理部１１０のアプリ管理部１１１は、アプリケーションの登録要求を受信すると、アプリケーションを登録する（ステップＳ１１０８）。そして、アプリ管理部１１１は、登録結果をブラウザ３１０に返信する。
【０２００】
すなわち、アプリ管理部１１１は、アプリケーションの登録要求に含まれるアプリ設定情報１２００をアプリＩＤと関連付けてアプリ情報記憶部１５０に記憶する。そして、アプリ管理部１１１は、アプリ登録部１４２を介して、当該アプリＩＤが含まれる登録結果をブラウザ３１０に返信する。
【０２０１】
以上により、本実施形態に係る情報処理システム１では、ユーザがＰＣ端末３０を用いて、サービス提供システム１０にアプリケーションを登録することができる。しかも、本実施形態に係る情報処理システム１では、ユーザがＰＣ端末３０を用いて、例えば、アプリケーションを利用するための１以上のアプリ画面のレイアウトと、これらのアプリ画面で実行させる処理フローとを設定することで、容易にアプリケーション（アプリ情報１０００）を登録することができる。
【０２０２】
したがって、本実施形態に係る情報処理システム１によれば、例えば、プログラミング言語等の専門的な知識や経験を有しないユーザ（例えば、企画担当者等）であっても、各種サービスを提供するアプリケーション（アプリ情報１０００）を登録することができる。
【０２０３】
次に、機器２０のユーザが外部ファイル印刷サービスを利用する場合について、図１７を参照しながら説明する。図１７は、外部ファイル印刷サービスを利用する場合の全体処理の一例を示すシーケンス図である。
【０２０４】
まず、機器２０のブラウザ２１０は、外部ファイル印刷サービスのアプリ画面を表示させるための操作（表示操作）を受け付ける（ステップＳ１７０１）。なお、機器２０のユーザは、例えば、外部ファイル印刷サービスのアプリ画面のＵＲＬをブラウザ２１０のアドレスバーに入力することで、アプリ画面の表示操作を行うことができる。
【０２０５】
機器２０のブラウザ２１０は、外部ファイル印刷サービスのアプリ画面の表示操作を受け付けると、フォルダ選択画面の表示要求を、Ｗｅｂサービス処理部１２０の画面構成部１２１に送信する（ステップＳ１７０２）。なお、フォルダ選択画面の表示要求には、外部ファイル印刷サービスを提供するアプリ情報１０００のアプリＩＤが含まれる。
【０２０６】
Ｗｅｂサービス処理部１２０の画面構成部１２１は、フォルダ選択画面の表示要求を受信すると、アプリ設定の取得要求を、入出力サービス処理部１１０のアプリ管理部１１１に送信する（ステップＳ１７０３）。なお、アプリ設定の取得要求には、外部ファイル印刷サービスを提供するアプリ情報１０００のアプリＩＤが含まれる。
【０２０７】
入出力サービス処理部１１０のアプリ管理部１１１は、アプリ設定の取得要求を受信すると、当該取得要求に含まれるアプリＩＤに関連付けて記憶されているアプリ設定情報１２００をアプリ情報記憶部１５０から取得する（ステップＳ１７０４）。そして、アプリ管理部１１１は、アプリ情報記憶部１５０から取得したアプリ設定情報１２００を画面構成部１２１に返信する。
【０２０８】
次に、Ｗｅｂサービス処理部１２０の画面構成部１２１は、当該アプリＩＤと関連付けて記憶されているアプリ画面情報２０００のうち、フォルダ選択画面のアプリ画面情報２０００をアプリ画面情報記憶部１６０から取得する（ステップＳ１７０５）。画面構成部１２１は、アプリ管理部１１１から返信されたアプリ設定情報１２００に含まれるビュー情報１２１０の「"ｌａｙｏｕｔＮａｍｅ"」に定義されている「"ｓｅｌｅｃｔ−ｆｏｌｄｅｒ"」からフォルダ選択画面のアプリ画面情報２０００を特定することができる。
【０２０９】
そして、画面構成部１２１は、アプリ画面情報記憶部１６０から取得したアプリ画面情報２０００と、上記のステップＳ１７０４で返信されたアプリ設定情報１２００とをブラウザ２１０に返信する。
【０２１０】
機器２０のブラウザ２１０は、画面構成部１２１から受信したアプリ画面情報２０００とアプリ設定情報１２００とに基づいて、例えば図１８に示すフォルダ選択画面Ｇ４１０を表示する（ステップＳ１７０６）。
【０２１１】
ここで、図１８に示すフォルダ選択画面Ｇ４１０は、機器２０のユーザが外部ストレージシステム４０のフォルダを選択するための画面である。
【０２１２】
図１８に示すフォルダ選択画面Ｇ４１０には、フォルダ一覧Ｇ４１１が含まれる。ユーザは、フォルダ一覧Ｇ４１１の中から所望のフォルダを選択することができる。以降では、ユーザにより「ｆｏｌｄｅｒ２」を選択する操作（フォルダ選択操作）が行われたものとする。すると、機器２０のブラウザ２１０は、当該選択操作を受け付ける（ステップＳ１７０７）。
【０２１３】
機器２０のブラウザ２１０は、フォルダ選択操作を受け付けると、アプリケーションの実行要求を、Ｗｅｂサービス処理部１２０のアプリ実行部１２２に送信する（ステップＳ１７０８）。なお、アプリケーションの実行要求には、アプリ設定情報１２００に含まれるビュー情報１２１０の「"ｆｌｏｗＮａｍｅ"」に定義されているフロー名「"ｓｔｏｒａｇｅ−ｆｉｌｅｓ"」と、パラメータ情報とが含まれる。パラメータ情報には、図１８に示すフォルダ選択画面Ｇ４１０のフォルダ一覧Ｇ４１１からユーザにより選択されたフォルダ「ｆｏｌｄｅｒ２」のフォルダＩＤ等が含まれる。
【０２１４】
Ｗｅｂサービス処理部１２０のアプリ実行部１２２は、アプリケーションの実行要求を受信すると、当該実行要求を、入出力サービス処理部１１０のロジック処理部１１２に送信する（ステップＳ１７０９）。
【０２１５】
入出力サービス処理部１１０のロジック処理部１１２は、アプリケーションの実行要求を受信すると、ファイル一覧取得フローの実行処理を行う（ステップＳ１７１０）。すなわち、ロジック処理部１１２は、当該実行要求に含まれるパラメータ情報を用いて、フロー名「ｓｔｏｒａｇｅ−ｆｉｌｅｓ」の処理フロー情報１１００に基づく一連の処理を実行する。なお、ファイル一覧取得フローの実行処理の詳細については後述する。
【０２１６】
そして、ロジック処理部１１２は、ファイル一覧取得フローの実行処理の処理結果を、Ｗｅｂサービス処理部１２０を介して、ブラウザ２１０に返信する。なお、当該処理結果は、外部ストレージシステム４０のフォルダ「ｆｏｌｄｅｒ２」に格納されているファイルの一覧であり、データ形式は「ｌｉｓｔ」である。
【０２１７】
機器２０のブラウザ２１０、ファイル一覧取得フローの処理結果を受信すると、ファイル一覧画面の表示要求を、Ｗｅｂサービス処理部１２０の画面構成部１２１に送信する（ステップＳ１７１１）。
【０２１８】
Ｗｅｂサービス処理部１２０の画面構成部１２１は、ファイル一覧画面の表示要求を受信すると、外部ファイル印刷アプリケーションのアプリＩＤと関連付けて記憶されているアプリ画面情報２０００のうち、ファイル一覧画面のアプリ画面情報２０００をアプリ画面情報記憶部１６０から取得する（ステップＳ１７１２）。画面構成部１２１は、アプリ管理部１１１から返信されたアプリ設定情報１２００に含まれるビュー情報１２２０の「"ｌａｙｏｕｔＮａｍｅ"」に定義されている「"ｏｎｅ−ｃｏｌｕｍｎ−ｌｉｓｔ"」からファイル一覧画面のアプリ画面情報２０００を特定することができる。
【０２１９】
そして、画面構成部１２１は、アプリ画面情報記憶部１６０から取得したアプリ画面情報２０００をブラウザ２１０に返信する。
【０２２０】
機器２０のブラウザ２１０は、画面構成部１２１から受信したアプリ画面情報２０００とアプリ設定情報１２００とに基づいて、例えば図１８に示すファイル一覧画面Ｇ４２０を表示する（ステップＳ１７１３）。
【０２２１】
ここで、図１８に示すファイル一覧画面Ｇ４２０は、図１８に示すフォルダ選択画面Ｇ４１０で選択したフォルダ内に格納されているファイルをユーザが選択するための画面である。
【０２２２】
図１８に示すファイル一覧画面Ｇ４２０には、ファイル一覧Ｇ４２１が含まれる。ファイル一覧Ｇ４２１は、ファイル一覧取得フローの処理結果（すなわち、外部ストレージシステム４０のフォルダ「ｆｏｌｄｅｒ２」に格納されているファイルの一覧）に基づき表示される。ユーザは、ファイル一覧Ｇ４２１の中から所望のファイルを選択することができる。以降では、ユーザにより「Ｆｉｌｅ２．ｐｄｆ」を選択する操作（ファイル選択操作）が行われたものとする。すると、機器２０のブラウザ２１０は、当該選択操作を受け付ける（ステップＳ１７１４）。
【０２２３】
機器２０のブラウザ２１０は、ファイル選択操作を受け付けると、アプリケーションの実行要求を、Ｗｅｂサービス処理部１２０のアプリ実行部１２２に送信する（ステップＳ１７１５）。なお、アプリケーションの実行要求には、アプリ設定情報１２００に含まれるビュー情報１２２０の「"ｆｌｏｗＮａｍｅ"」に定義されているフロー名「"ｓｔｏｒａｇｅ−ｄｏｗｎｌｏａｄ"」と、パラメータ情報とが含まれる。パラメータ情報には、図１８に示すファイル一覧画面Ｇ４２０のファイル一覧Ｇ４２１からユーザにより選択されたファイル「Ｆｉｌｅ２．ｐｄｆ」のファイルＩＤ等が含まれる。
【０２２４】
Ｗｅｂサービス処理部１２０のアプリ実行部１２２は、アプリケーションの実行要求を受信すると、当該実行要求を、入出力サービス処理部１１０のロジック処理部１１２に送信する（ステップＳ１７１６）。
【０２２５】
入出力サービス処理部１１０のロジック処理部１１２は、アプリケーションの実行要求を受信すると、ファイルダウンロードフローの実行処理を行う（ステップＳ１７１７）。すなわち、ロジック処理部１１２は、当該実行要求に含まれるパラメータ情報を用いて、フロー名「ｓｔｏｒａｇｅ−ｄｏｗｎｌｏａｄ」の処理フロー情報１１００に基づく一連の処理を実行する。なお、ファイルダウンロードフローの実行処理の詳細については後述する。
【０２２６】
そして、ロジック処理部１１２は、ファイルダウンロードフローの実行処理の処理結果を、Ｗｅｂサービス処理部１２０を介して、ブラウザ２１０に返信する。なお、当該処理結果は、ユーザにより選択されたファイル「Ｆｉｌｅ２．ｐｄｆ」の電子ファイルであり、データ形式は「ｆｉｌｅ」である。
【０２２７】
機器２０のブラウザ２１０、ファイルダウンロードフローの処理結果を受信すると、プレビュー画面の表示要求を、Ｗｅｂサービス処理部１２０の画面構成部１２１に送信する（ステップＳ１７１８）。
【０２２８】
Ｗｅｂサービス処理部１２０の画面構成部１２１は、プレビュー画面の表示要求を受信すると、外部ファイル印刷アプリケーションのアプリＩＤと関連付けて記憶されているアプリ画面情報２０００のうち、プレビュー画面のアプリ画面情報２０００をアプリ画面情報記憶部１６０から取得する（ステップＳ１７１９）。画面構成部１２１は、アプリ管理部１１１から返信されたアプリ設定情報１２００に含まれるビュー情報１２３０の「"ｌａｙｏｕｔＮａｍｅ"」に定義されている「"ｐｒｅｖｉｅｗ"」からプレビュー画面のアプリ画面情報２０００を特定することができる。
【０２２９】
そして、画面構成部１２１は、アプリ画面情報記憶部１６０から取得したアプリ画面情報２０００をブラウザ２１０に返信する。
【０２３０】
機器２０のブラウザ２１０は、画面構成部１２１から受信したアプリ画面情報２０００とアプリ設定情報１２００とに基づいて、例えば図１８に示すプレビュー画面Ｇ４３０を表示する（ステップＳ１７２０）。
【０２３１】
ここで、図１８に示すプレビュー画面Ｇ４３０は、図１８に示すファイル一覧画面Ｇ４２０で選択したファイルの内容がプレビュー表示される画面である。
【０２３２】
図１８に示すプレビュー画面Ｇ４３０には、ユーザにより選択されたファイルの内容が表示されるプレビュー欄Ｇ４３１が含まれる。また、図１８に示すプレビュー画面Ｇ４３０には、プレビュー欄Ｇ４３１に表示されているファイルを印刷するための印刷ボタンＧ４３２が含まれる。ユーザは、印刷ボタンＧ４３２を押下する操作（印刷開始操作）を行うことで、プレビュー欄Ｇ４３１に表示されているファイルを印刷することができる。
【０２３３】
以降では、ユーザにより印刷開始操作が行われたものとする。すると、機器２０のブラウザ２１０は、当該印刷開始操作を受け付ける（ステップＳ１７２１）。
【０２３４】
機器２０のブラウザ２１０は、印刷開始操作を受け付けると、プリンタ２５を制御して、プレビュー欄Ｇ４３１に表示されているファイルを印刷する（ステップＳ１７２２）。
【０２３５】
これにより、本実施形態に係るサービス提供システム１０は、外部ファイル印刷サービスを提供することができる。
【０２３６】
なお、本実施形態では、外部ファイル印刷アプリケーションのファイル一覧画面として、図１８に示すファイル一覧画面Ｇ４２０が表示される場合について説明したが、例えば図１９（ａ）に示すファイル一覧画面Ｇ５００が表示されても良い。図１９（ａ）に示すファイル一覧画面Ｇ５００では、２列のファイル名が表示されるファイル一覧Ｇ５０１が含まれる。
【０２３７】
図１９（ａ）に示すファイル一覧画面Ｇ５００は、例えば、外部ファイル印刷アプリケーションのアプリ設定情報１２００に含まれるビュー情報１２２０の「"ｌａｙｏｕｔＮａｍｅ"」に「"ｔｗｏ−ｃｏｌｕｍｎ−ｌｉｓｔ"」が定義されることで表示することができる。
【０２３８】
また、外部ファイル印刷アプリケーションのファイル一覧画面として、例えば図１９（ｂ）に示すファイル一覧画面Ｇ６００が表示されても良い。図１９（ｂ）に示すファイル一覧画面Ｇ６００では、各ファイルを示すアイコンが表示されるファイル一覧Ｇ６０１が含まれる。
【０２３９】
図１９（ｂ）に示すファイル一覧画面Ｇ６００は、例えば、外部ファイル印刷アプリケーションのアプリ設定情報１２００に含まれるビュー情報１２２０の「"ｌａｙｏｕｔＮａｍｅ"」に「"ｉｃｏｎ−ｌｉｓｔ"」が定義されることで表示することができる。
【０２４０】
次に、上記のステップＳ１７１０の処理（ファイル一覧取得フローの実行処理）の詳細について、図２０を参照しながら説明する。図２０は、ファイル一覧取得フローの実行処理の一例を示すシーケンス図である。
【０２４１】
まず、フロー実行部３０１は、アプリ実行部１２２からアプリケーションの実行要求を受信すると、処理フローの取得要求をアプリ管理部１１１に送信する（ステップＳ２００１）。なお、当該取得要求には、フロー名「ｓｔｏｒａｇｅ−ｆｉｌｅｓ」が含まれる。
【０２４２】
アプリ管理部１１１は、処理フローの取得要求を受信すると、当該取得要求に含まれるフロー名「ｓｔｏｒａｇｅ−ｆｉｌｅｓ」の処理フロー情報１１００をアプリ情報記憶部１５０から取得する（ステップＳ２００２）。そして、アプリ管理部１１１は、アプリ情報記憶部１５０から取得した処理フロー情報１１００をフロー実行部３０１に返信する。
【０２４３】
ここで、以降では、アプリ管理部１１１は、図８（ａ）に示す処理フロー情報１１００をフロー実行部３０１に返信したものとして説明する。
【０２４４】
次に、フロー実行部３０１は、処理フロー情報１１００に基づくコンポーネントの取得要求をコンポーネント管理部３０２に送信する（ステップＳ２００３）。
【０２４５】
すなわち、フロー実行部３０１は、図８（ａ）に示す処理フロー情報１１００の詳細処理定義１１１０に含まれる「"ｃｏｍｐｏｎｅｎｔ"」に定義されているコンポーネント名「"ｓｔｏｒａｇｅ"」のコンポーネントの取得要求をコンポーネント管理部３０２に送信する。
【０２４６】
コンポーネント管理部３０２は、コンポーネントの取得要求を受信すると、コンポーネント名「"ｓｔｏｒａｇｅ"」のコンポーネント（すなわち、外部ストレージコンポーネント１３１０）を生成する（ステップＳ２００４）。なお、外部ストレージコンポーネント１３１０の生成は、コンポーネント共通Ｉ／Ｆ１３００に定義されたコンポーネントを生成するためのＡＰＩを用いて行うことができる。
【０２４７】
そして、コンポーネント管理部３０２は、生成した外部ストレージコンポーネント１３１０をフロー実行部３０１に返信する。すなわち、コンポーネント管理部３０２は、例えば、外部ストレージコンポーネント１３１０が展開されたメモリ（例えばＲＡＭ１４）上のアドレスをフロー実行部３０１に返信する。
【０２４８】
次に、フロー実行部３０１は、コンポーネント実行要求を外部ストレージコンポーネント１３１０に送信する（ステップＳ２００５）。なお、当該実行要求には、データと、パラメータ情報とが含まれる。また、コンポーネント実行要求には、例えば、外部ストレージコンポーネント１３１０に実行を要求するオペレーションのオペレーション名「ｇｅｔＦｉｌｅｌｉｓｔ」が指定される。
【０２４９】
ここで、データは、データ型「ＩｎｐｕｔＳｔｒｅａｍ」としてブラウザ２１０等から受信した、コンポーネントの処理対象となる電子ファイル等である。すなわち、フロー実行部３０１は、コンポーネントの処理対象となる電子ファイル等を、単に「データ」として（データ型を意識することなく）、コンポーネントに渡して処理の実行を要求する。本実施形態では、このようにデータ型を意識しない電子ファイル等の各種の情報を、単に「データ」と表す。
【０２５０】
ただし、ファイル一覧取得フローでは、電子ファイル等の処理対象をブラウザ２１０等から受信しない。このため、データには、例えば、ＮＵＬＬ等が設定されている。
【０２５１】
また、パラメータ情報は、アプリケーションの実行要求に含まれるパラメータ情報である。
【０２５２】
外部ストレージコンポーネント１３１０は、コンポーネント実行要求を受信すると、型変換要求を型変換管理部３０４に送信する（ステップＳ２００６）。なお、当該型変換要求には、データと、外部ストレージコンポーネント１３１０が扱うことができるデータ型を示す「ＬｏｃａｌＦｉｌｅＰａｔｈ」の指定とが含まれる。
【０２５３】
型変換管理部３０４は、型変換要求を受信すると、当該型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するか否かをチェックする（ステップＳ２００７）。
【０２５４】
ここで、型変換要求に含まれるデータのデータ型は「ＩｎｐｕｔＳｔｒｅａｍ」である一方、指定されたデータ型は「ＬｏｃａｌＦｉｌｅＰａｔｈ」である。したがって、型変換管理部３０４は、型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致しないものと判断する。
【０２５５】
すると、型変換管理部３０４は、型変換情報テーブル４０００を参照して、データ型「ＩｎｐｕｔＳｔｒｅａｍ」を「ＬｏｃａｌＦｉｌｅＰａｔｈ」に変換するための型変換を特定する（ここでは、第１の型変換１４１０が特定される。）。そして、型変換管理部３０４は、特定した第１の型変換１４１０を生成する（ステップＳ２００８）。なお、第１の型変換１４１０の生成は、型変換共通Ｉ／Ｆ１４００を用いて行うことができる。
【０２５６】
次に、型変換管理部３０４は、型変換処理の実行要求を第１の型変換１４１０に送信する（ステップＳ２００９）。なお、当該実行要求には、データが含まれる。
【０２５７】
第１の型変換１４１０は、型変換の実行要求を受信すると、当該実行要求に含まれるデータのデータ型を「ＩｎｐｕｔＳｔｒｅａｍ」から「ＬｏｃａｌＦｉｌｅＰａｔｈ」に変換する型変換処理を行う（ステップＳ２０１０）。そして、第１の型変換１４１０は、データ型が変換されたデータを型変換管理部３０４に返信する。
【０２５８】
型変換管理部３０４は、第１の型変換１４１０からデータを受信すると、当該データを外部ストレージコンポーネント１３１０に送信する（ステップＳ２０１１）。
【０２５９】
外部ストレージコンポーネント１３１０は、型変換管理部３０４からデータを受信すると、パラメータ情報を用いて、データに対して、指定されたオペレーション名の処理を実行する（ステップＳ２０１２）。
【０２６０】
すなわち、外部ストレージコンポーネント１３１０は、フォルダ「ｆｏｌｄｅｒ２」に格納されているファイル一覧の取得要求を外部ストレージシステム４０に送信する。これにより、外部ストレージシステム４０からファイル一覧が返信される。外部ストレージコンポーネント１３１０は、外部ストレージシステム４０からファイル一覧が返信されると、当該ファイル一覧をデータとしてフロー実行部３０１に返信する。
【０２６１】
以上により、図８（ａ）に示す処理フロー情報１１００に基づく一連の処理（処理フロー）の実行が完了し、ユーザにより選択されたフォルダに格納されているファイルの一覧を外部ストレージシステム４０から取得することができる。
【０２６２】
次に、上記のステップＳ１７１７の処理（ファイルダウンロードフローの実行処理）の詳細について、図２１を参照しながら説明する。図２１は、ファイルダウンロードフローの実行処理の一例を示すシーケンス図である。
【０２６３】
まず、フロー実行部３０１は、アプリ実行部１２２からアプリケーションの実行要求を受信すると、処理フローの取得要求をアプリ管理部１１１に送信する（ステップＳ２１０１）。なお、当該取得要求には、フロー名「ｓｔｏｒａｇｅ−ｄｏｗｎｌｏａｄ」が含まれる。
【０２６４】
アプリ管理部１１１は、処理フローの取得要求を受信すると、当該取得要求に含まれるフロー名「ｓｔｏｒａｇｅ−ｄｏｗｎｌｏａｄ」の処理フロー情報１１００をアプリ情報記憶部１５０から取得する（ステップＳ２１０２）。そして、アプリ管理部１１１は、アプリ情報記憶部１５０から取得した処理フロー情報１１００をフロー実行部３０１に返信する。
【０２６５】
ここで、以降では、アプリ管理部１１１は、図８（ｂ）に示す処理フロー情報１１００をフロー実行部３０１に返信したものとして説明する。
【０２６６】
次に、フロー実行部３０１は、処理フロー情報１１００に基づくコンポーネントの取得要求をコンポーネント管理部３０２に送信する（ステップＳ２１０３）。
【０２６７】
すなわち、フロー実行部３０１は、図８（ａ）に示す処理フロー情報１１００の詳細処理定義１１１０に含まれる「"ｃｏｍｐｏｎｅｎｔ"」に定義されているコンポーネント名「"ｓｔｏｒａｇｅ"」のコンポーネントの取得要求をコンポーネント管理部３０２に送信する。
【０２６８】
コンポーネント管理部３０２は、コンポーネントの取得要求を受信すると、コンポーネント名「"ｓｔｏｒａｇｅ"」のコンポーネント（すなわち、外部ストレージコンポーネント１３１０）を生成する（ステップＳ２１０４）。なお、外部ストレージコンポーネント１３１０の生成は、コンポーネント共通Ｉ／Ｆ１３００に定義されたコンポーネントを生成するためのＡＰＩを用いて行うことができる。
【０２６９】
そして、コンポーネント管理部３０２は、生成した外部ストレージコンポーネント１３１０をフロー実行部３０１に返信する。すなわち、コンポーネント管理部３０２は、例えば、外部ストレージコンポーネント１３１０が展開されたメモリ（例えばＲＡＭ１４）上のアドレスをフロー実行部３０１に返信する。
【０２７０】
次に、フロー実行部３０１は、コンポーネント実行要求を外部ストレージコンポーネント１３１０に送信する（ステップＳ２１０５）。なお、当該実行要求には、データと、パラメータ情報とが含まれる。また、コンポーネント実行要求には、例えば、外部ストレージコンポーネント１３１０に実行を要求するオペレーションのオペレーション名「ｄｏｗｎｌｏａｄＦｉｌｅ」が指定される。
【０２７１】
外部ストレージコンポーネント１３１０は、コンポーネント実行要求を受信すると、型変換要求を型変換管理部３０４に送信する（ステップＳ２１０６）。なお、当該型変換要求には、データと、外部ストレージコンポーネント１３１０が扱うことができるデータ型を示す「ＬｏｃａｌＦｉｌｅＰａｔｈ」の指定とが含まれる。
【０２７２】
型変換管理部３０４は、型変換要求を受信すると、当該型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するか否かをチェックする（ステップＳ２１０７）。
【０２７３】
ここで、型変換要求に含まれるデータのデータ型は「ＩｎｐｕｔＳｔｒｅａｍ」である一方、指定されたデータ型は「ＬｏｃａｌＦｉｌｅＰａｔｈ」である。したがって、型変換管理部３０４は、型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致しないものと判断する。
【０２７４】
すると、型変換管理部３０４は、型変換情報テーブル４０００を参照して、データ型「ＩｎｐｕｔＳｔｒｅａｍ」を「ＬｏｃａｌＦｉｌｅＰａｔｈ」に変換するための型変換を特定する（ここでは、第１の型変換１４１０が特定される。）。そして、型変換管理部３０４は、特定した第１の型変換１４１０を生成する（ステップＳ２１０８）。なお、第１の型変換１４１０の生成は、型変換共通Ｉ／Ｆ１４００を用いて行うことができる。
【０２７５】
次に、型変換管理部３０４は、型変換処理の実行要求を第１の型変換１４１０に送信する（ステップＳ２１０９）。なお、当該実行要求には、データが含まれる。
【０２７６】
第１の型変換１４１０は、型変換の実行要求を受信すると、当該実行要求に含まれるデータのデータ型を「ＩｎｐｕｔＳｔｒｅａｍ」から「ＬｏｃａｌＦｉｌｅＰａｔｈ」に変換する型変換処理を行う（ステップＳ２０１０）。そして、第１の型変換１４１０は、データ型が変換されたデータを型変換管理部３０４に返信する。
【０２７７】
型変換管理部３０４は、第１の型変換１４１０からデータを受信すると、当該データを外部ストレージコンポーネント１３１０に送信する（ステップＳ２１１１）。
【０２７８】
外部ストレージコンポーネント１３１０は、型変換管理部３０４からデータを受信すると、パラメータ情報を用いて、データに対して、指定されたオペレーション名の処理を実行する（ステップＳ２１１２）。
【０２７９】
すなわち、外部ストレージコンポーネント１３１０は、ファイル「Ｆｉｌｅ２．ｐｄｆ」のダウンロード要求を外部ストレージシステム４０に送信する。これにより、外部ストレージシステム４０からファイル「Ｆｉｌｅ２．ｐｄｆ」がダウンロードされる。外部ストレージコンポーネント１３１０は、外部ストレージシステム４０からファイル「Ｆｉｌｅ２．ｐｄｆ」をダウンロードすると、当該ファイルをデータとしてフロー実行部３０１に返信する。
【０２８０】
以上により、図８（ｂ）に示す処理フロー情報１１００に基づく一連の処理（処理フロー）の実行が完了し、ユーザにより選択されたファイルを外部ストレージシステム４０からダウンロードすることができる。
【０２８１】
ここで、機器２０のユーザが外部ファイル印刷サービスを利用する場合の他の例について、図２２を参照しながら説明する。図２２は、外部ファイル印刷サービスを利用する場合の全体処理の他の例を示すシーケンス図である。
【０２８２】
まず、機器２０のブラウザ２１０は、図１７のステップＳ１７０１と同様に、外部ファイル印刷サービスのアプリ画面を表示させるための操作（表示操作）を受け付ける（ステップＳ２２０１）。
【０２８３】
機器２０のブラウザ２１０は、外部ファイル印刷サービスのアプリ画面の表示操作を受け付けると、アプリ画面の表示要求を、Ｗｅｂサービス処理部１２０の画面構成部１２１に送信する（ステップＳ２２０２）。なお、アプリ画面の表示要求には、外部ファイル印刷サービスを提供するアプリ情報１０００のアプリＩＤが含まれる。
【０２８４】
Ｗｅｂサービス処理部１２０の画面構成部１２１は、アプリ画面の表示要求を受信すると、ビュー情報の取得要求を、入出力サービス処理部１１０のアプリ管理部１１１に送信する（ステップＳ２２０３）。なお、ビュー情報の取得要求には、外部ファイル印刷サービスを提供するアプリ情報１０００のアプリＩＤが含まれる。
【０２８５】
入出力サービス処理部１１０のアプリ管理部１１１は、ビュー情報の取得要求を受信すると、当該取得要求に含まれるアプリＩＤに関連付けて記憶されているアプリ設定情報１２００のビュー情報を取得する（ステップＳ２２０４）。すなわち、アプリ管理部１１１は、図１６に示すアプリ設定情報１２００のビュー情報１２１０を取得する。
【０２８６】
そして、アプリ管理部１１１は、アプリ情報記憶部１５０から取得したビュー情報１２１０を画面構成部１２１に返信する。このように、アプリ管理部１１１は、ブラウザ２１０がアプリ画面を表示するのに必要なビュー情報を返信する。
【０２８７】
次に、Ｗｅｂサービス処理部１２０の画面構成部１２１は、当該アプリＩＤと関連付けて記憶されているアプリ画面情報２０００のうち、フォルダ選択画面のアプリ画面情報２０００をアプリ画面情報記憶部１６０から取得する（ステップＳ２２０５）。画面構成部１２１は、アプリ管理部１１１から返信されたビュー情報１２１０の「"ｌａｙｏｕｔＮａｍｅ"」に定義されている「"ｓｅｌｅｃｔ−ｆｏｌｄｅｒ"」からフォルダ選択画面のアプリ画面情報２０００を特定することができる。
【０２８８】
そして、画面構成部１２１は、アプリ画面情報記憶部１６０から取得したアプリ画面情報２０００と、上記のステップＳ２２０４で返信されたビュー情報１２１０とをブラウザ２１０に返信する。
【０２８９】
以降のステップＳ２２０６〜ステップＳ２２１０の処理は、図１７のステップＳ１７０６〜ステップＳ１７１０とそれぞれ同様であるため、その説明を省略する。
【０２９０】
機器２０のブラウザ２１０は、ファイル一覧取得フローの処理結果を受信すると、アプリ画面の表示要求を、Ｗｅｂサービス処理部１２０の画面構成部１２１に送信する（ステップＳ２２１１）。
【０２９１】
Ｗｅｂサービス処理部１２０の画面構成部１２１は、アプリ画面の表示要求を受信すると、ビュー情報の取得要求を、入出力サービス処理部１１０のアプリ管理部１１１に送信する（ステップＳ２２１２）。なお、ビュー情報の取得要求には、外部ファイル印刷サービスを提供するアプリ情報１０００のアプリＩＤが含まれる。
【０２９２】
入出力サービス処理部１１０のアプリ管理部１１１は、ビュー情報の取得要求を受信すると、当該取得要求に含まれるアプリＩＤに関連付けて記憶されているアプリ設定情報１２００のビュー情報を取得する（ステップＳ２２１３）。すなわち、アプリ管理部１１１は、図１６に示すアプリ設定情報１２００のビュー情報１２２０を取得する。
【０２９３】
そして、アプリ管理部１１１は、アプリ情報記憶部１５０から取得したビュー情報１２２０を画面構成部１２１に返信する。このように、アプリ管理部１１１は、ブラウザ２１０がアプリ画面を表示するのに必要なビュー情報を返信する。
【０２９４】
次に、Ｗｅｂサービス処理部１２０の画面構成部１２１は、当該アプリＩＤと関連付けて記憶されているアプリ画面情報２０００のうち、ファイル一覧画面のアプリ画面情報２０００をアプリ画面情報記憶部１６０から取得する（ステップＳ２２１４）。画面構成部１２１は、アプリ管理部１１１から返信されたビュー情報１２２０の「"ｌａｙｏｕｔＮａｍｅ"」に定義されている「"ｏｎｅ−ｃｏｌｕｍｎ−ｌｉｓｔ"」からファイル一覧画面のアプリ画面情報２０００を特定することができる。
【０２９５】
そして、画面構成部１２１は、アプリ画面情報記憶部１６０から取得したアプリ画面情報２０００と、上記のステップＳ２２１３で返信されたビュー情報１２２０とをブラウザ２１０に返信する。
【０２９６】
以降のステップＳ２２１５〜ステップＳ２２１９の処理は、図１７のステップＳ１７１３〜ステップＳ１７１７とそれぞれ同様であるため、その説明を省略する。
【０２９７】
機器２０のブラウザ２１０は、ファイルダウンロードフローの処理結果を受信すると、アプリ画面の表示要求を、Ｗｅｂサービス処理部１２０の画面構成部１２１に送信する（ステップＳ２２２０）。
【０２９８】
Ｗｅｂサービス処理部１２０の画面構成部１２１は、アプリ画面の表示要求を受信すると、ビュー情報の取得要求を、入出力サービス処理部１１０のアプリ管理部１１１に送信する（ステップＳ２２２１）。なお、ビュー情報の取得要求には、外部ファイル印刷サービスを提供するアプリ情報１０００のアプリＩＤが含まれる。
【０２９９】
入出力サービス処理部１１０のアプリ管理部１１１は、ビュー情報の取得要求を受信すると、当該取得要求に含まれるアプリＩＤに関連付けて記憶されているアプリ設定情報１２００のビュー情報を取得する（ステップＳ２２２２）。すなわち、アプリ管理部１１１は、図１６に示すアプリ設定情報１２００のビュー情報１２３０を取得する。
【０３００】
そして、アプリ管理部１１１は、アプリ情報記憶部１５０から取得したビュー情報１２２０を画面構成部１２１に返信する。このように、アプリ管理部１１１は、ブラウザ２１０がアプリ画面を表示するのに必要なビュー情報を返信する。
【０３０１】
次に、Ｗｅｂサービス処理部１２０の画面構成部１２１は、当該アプリＩＤと関連付けて記憶されているアプリ画面情報２０００のうち、プレビュー画面のアプリ画面情報２０００をアプリ画面情報記憶部１６０から取得する（ステップＳ２２２３）。画面構成部１２１は、アプリ管理部１１１から返信されたビュー情報１２２０の「"ｌａｙｏｕｔＮａｍｅ"」に定義されている「"ｐｒｅｖｉｅｗ"」からファイル一覧画面のアプリ画面情報２０００を特定することができる。
【０３０２】
そして、画面構成部１２１は、アプリ画面情報記憶部１６０から取得したアプリ画面情報２０００と、上記のステップＳ２２２２で返信されたビュー情報１２３０とをブラウザ２１０に返信する。
【０３０３】
以降のステップＳ２２２４〜ステップＳ２２２６の処理は、図１７のステップＳ１７２０〜ステップＳ１７２２とそれぞれ同様であるため、その説明を省略する。
【０３０４】
このように、本実施形態に係るサービス提供システム１０は、ブラウザ２１０がアプリ画面を表示するために必要なビュー情報をアプリ管理部１１１が取得して、当該ブラウザ２１０返信することもできる。
【０３０５】
＜サービス提供システムが提供する他のサービス＞
ここで、外部ファイル印刷サービス以外の他のサービスの一例として、バーコード付与サービスの概要について説明する。バーコード付与サービスは、スキャンにより生成された電子ファイルにバーコードを付与した上で、外部ストレージシステム４０にアップロードするサービスである。
【０３０６】
バーコード付与サービスを提供するアプリケーション（バーコード付与アプリケーション）は、図２３に示すように、１以上のアプリ画面と、１以上の処理フローとが含まれる。
【０３０７】
すなわち、バーコード付与アプリケーションは、ユーザがバーコードに埋め込む情報を指定するための埋め込み情報入力画面と、スキャンにより生成された電子ファイルにバーコードを付与するための処理フロー（バーコード付与フロー）とが対応付けられている。また、バーコード付与アプリケーションは、バーコードが付与された電子ファイルをプレビュー表示するためのプレビュー画面と、電子ファイルを外部ストレージシステム４０にアップロードするための処理フロー（ファイルアップロードフロー）とが対応付けられている。
【０３０８】
図２４に示すように、埋め込み情報入力画面Ｇ７００には、ユーザが埋め込み情報を指定するための埋め込み情報欄Ｇ７０１が含まれている。ユーザは、埋め込み情報欄Ｇ７０１に所望の情報を指定して上で、スキャンボタンＧ７０２を押下する。これにより、バーコード付与フローが実行され、ユーザにより指定された情報が埋め込まれたバーコードが、スキャンにより生成された電子ファイルに付与される。
【０３０９】
また、図２４に示すように、プレビュー画面Ｇ８００には、バーコードが付与された電子ファイルの内容がプレビュー表示されるプレビュー表示欄Ｇ８０１と、当該電子ファイルをアップロードするためのアップロードボタンＧ８０２とが含まれている。ユーザによりアップロードボタンＧ８０２が押下されると、ファイルアップロードフローが実行され、当該電子ファイルが外部ストレージシステム４０にアップロードされる。
【０３１０】
このように。本実施形態に係るサービス提供システム１０は、１以上のアプリ画面と、当該アプリ画面で実行可能な処理フローとが含まれるアプリケーションにより、機器２０のユーザに対して様々なサービスを提供することができる。
【０３１１】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【０３１２】
１          情報処理システム
１０        サービス提供システム
２０        機器
３０        ＰＣ端末
４０        外部ストレージシステム
１１０      入出力サービス処理部
１１１      アプリ管理部
１１２      ロジック処理部
１１３      レイアウト管理部
１１４      処理情報管理部
１２０      Ｗｅｂサービス処理部
１２１      画面構成部
１２２      アプリ実行部
１３０      ドキュメントサービス部
１３１      ＯＣＲ処理部
１４０      ポータルサービス部
１４１      ＵＩ提供部
１４２      アプリ登録部
１５０      アプリ情報記憶部
１６０      アプリ画面情報記憶部
１７０      ポータル画面情報記憶部
１８０      レイアウト情報記憶部
１９０      コンポーネント詳細情報記憶部
２１０      ブラウザ
３１０      ブラウザ
３０１      フロー実行部
３０２      コンポーネント管理部
３０３      コンポーネント群
３０４      型変換管理部
３０５      型変換群
１０００    アプリ情報
１１００    処理フロー情報
１２００    アプリ設定情報
２０００    アプリ画面情報
３０００    ポータル画面情報
４０００    型変換情報テーブル
５０００    コンポーネント詳細情報
【先行技術文献】
【特許文献】
【０３１３】
【特許文献１】特許第４０３９１９１号公報
【図１】
2018205933.tif 000003
【図２】
2018205933.tif 000004
【図３】
2018205933.tif 000005
【図４】
2018205933.tif 000006
【図５】
2018205933.tif 000007
【図６】
2018205933.tif 000008
【図７】
2018205933.tif 000009
【図８】
2018205933.tif 000010
【図９】
2018205933.tif 000011
【図１０】
2018205933.tif 000012
【図１１】
2018205933.tif 000013
【図１２】
2018205933.tif 000014
【図１３】
2018205933.tif 000015
【図１４】
2018205933.tif 000016
【図１５】
2018205933.tif 000017
【図１６】
2018205933.tif 000018
【図１７】
2018205933.tif 000019
【図１８】
2018205933.tif 000020
【図１９】
2018205933.tif 000021
【図２０】
2018205933.tif 000022
【図２１】
2018205933.tif 000023
【図２２】
2018205933.tif 000024
【図２３】
2018205933.tif 000025
【図２４】
2018205933.tif 000026