(57)【要約】【課題】アプリケーションの利用を一時的に停止可能にする。【解決手段】所定の処理を実行する複数のプログラムを有する情報処理システムであって、電子データを用いた一連の処理を実行するためのアプリ毎に、該一連の処理を実行する１以上の前記プログラムを識別するプログラム識別情報と、実行順とが定義されたフロー情報を記憶する第１の記憶手段と、前記アプリ毎に、アプリ状態情報を記憶する第２の記憶手段と、機器からの要求に応じて、前記アプリ状態情報が利用可能な状態である前記アプリが選択可能な画面を、前記要求元の機器に表示させる表示手段と、前記画面における前記アプリの選択に応じて、選択された前記アプリの前記フロー情報に基づいて、該フロー情報に定義されている前記プログラム識別情報により識別される前記プログラムを前記実行順に従って実行させることで、前記一連の処理を実行する実行手段と、を有することを特徴とする。【選択図】図４
2019061384.tif 000002
【特許請求の範囲】
【請求項１】
１以上の情報処理装置を含み、所定の処理をそれぞれ実行する複数のプログラムを有する情報処理システムであって、
電子データを用いた一連の処理を実行するためのアプリケーション毎に、該一連の処理のそれぞれの処理を実行する１以上の前記プログラムを識別するプログラム識別情報と、１以上の前記プログラムの実行順とが定義されたフロー情報を記憶する第１の記憶手段と、
前記アプリケーション毎に、該アプリケーションが利用可能な状態か否かを示すアプリ状態情報を記憶する第２の記憶手段と、
前記情報処理システムに接続される機器からの要求に応じて、前記アプリ状態情報が利用可能な状態である前記アプリケーションが選択可能な画面を、前記要求元の機器に表示させる表示手段と、
前記画面における前記アプリケーションの選択に応じて、選択された前記アプリケーションの前記フロー情報に基づいて、該フロー情報に定義されている前記プログラム識別情報により識別される前記プログラムを前記実行順に従って実行させることで、前記電子データを用いた一連の処理を実行する実行手段と、
を有することを特徴とする情報処理システム。
【請求項２】
前記表示手段は、
前記アプリ状態情報が利用可能な状態でない前記アプリケーションを選択することができない前記画面を、前記要求元の機器に表示させる、ことを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記第１の記憶手段には、前記アプリケーション毎に、更に、該アプリケーションの設定が定義されたアプリ設定情報が記憶され、
前記アプリ状態情報には、更に、前記アプリ設定情報が編集可能か否かを示す、ことを特徴とする請求項１又は２に記載の情報処理システム。
【請求項４】
前記情報処理システムに接続される端末からの前記アプリ設定情報の変更要求に応じて、該アプリ設定情報に対応する前記アプリケーションの前記アプリ状態情報が、前記アプリ設定情報が編集可能であることを示すものであるか否かを判定する編集可否判定手段と、
前記編集可否判定手段により前記アプリ設定情報が編集可能であることを示すものであると判定された場合、前記第１の記憶手段に記憶されている前記アプリ設定情報を、前記変更要求に応じて変更する設定変更手段と、
を有することを特徴とする請求項３に記載の情報処理システム。
【請求項５】
前記端末からの前記アプリ状態情報の変更要求に応じて、前記第２の記憶手段に記憶されている前記アプリ状態情報を、前記変更要求に応じて変更する状態変更手段を有する、ことを特徴とする請求項４に記載の情報処理システム。
【請求項６】
前記端末のユーザの権限を判定する権限判定手段を有し、
前記状態変更手段は、
前記権限判定手段により前記端末のユーザに対して所定の第１の権限が付与されていると判定された場合、前記アプリ状態情報を、前記変更要求に応じて変更する、ことを特徴とする請求項５に記載の情報処理システム。
【請求項７】
前記編集可否判定手段は、
前記権限判定手段により前記端末のユーザに対して所定の第２の権限が付与されていると判定された場合、前記アプリ状態情報が、前記アプリ設定情報が編集可能であることを示すものであるか否かを判定する、ことを特徴とする請求項６に記載の情報処理システム。
【請求項８】
所定の処理をそれぞれ実行する複数のプログラムを有する情報処理装置であって、
電子データを用いた一連の処理を実行するためのアプリケーション毎に、該一連の処理のそれぞれの処理を実行する１以上の前記プログラムを識別するプログラム識別情報と、１以上の前記プログラムの実行順とが定義されたフロー情報を記憶する第１の記憶手段と、
前記アプリケーション毎に、該アプリケーションが利用可能な状態か否かを示すアプリ状態情報を記憶する第２の記憶手段と、
前記情報処理装置に接続される機器からの要求に応じて、前記アプリ状態情報が利用可能な状態である前記アプリケーションが選択可能な画面を、前記要求元の機器に表示させる表示手段と、
前記画面における前記アプリケーションの選択に応じて、選択された前記アプリケーションの前記フロー情報に基づいて、該フロー情報に定義されている前記プログラム識別情報により識別される前記プログラムを前記実行順に従って実行させることで、前記電子データを用いた一連の処理を実行する実行手段と、
を有することを特徴とする情報処理装置。
【請求項９】
１以上の情報処理装置を含み、所定の処理をそれぞれ実行する複数のプログラムを有する情報処理システムであって、電子データを用いた一連の処理を実行するためのアプリケーション毎に、該一連の処理のそれぞれの処理を実行する１以上の前記プログラムを識別するプログラム識別情報と、１以上の前記プログラムの実行順とが定義されたフロー情報を記憶する第１の記憶手段と、前記アプリケーション毎に、該アプリケーションが利用可能な状態か否かを示すアプリ状態情報を記憶する第２の記憶手段とを有する情報処理システムが用いる情報処理方法において、
前記情報処理システムに接続される機器からの要求に応じて、前記アプリ状態情報が利用可能な状態である前記アプリケーションが選択可能な画面を、前記要求元の機器に表示させる表示手順と、
前記画面における前記アプリケーションの選択に応じて、選択された前記アプリケーションの前記フロー情報に基づいて、該フロー情報に定義されている前記プログラム識別情報により識別される前記プログラムを前記実行順に従って実行させることで、前記電子データを用いた一連の処理を実行する実行手順と、
を有することを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理装置及び情報処理方法に関する。
【背景技術】
【０００２】
近年、複数の機能（例えば、スキャンやプリント、メール配信等）を組み合わせた機能を提供するサービス等が知られるようになった。例えば、スキャンにより生成された電子ファイル（画像ファイル）に所定の処理を行った上で、メール配信するサービス等が知られている。このようなサービスは、各機能を実現する１以上の処理が一連の処理として実行されることにより実現される。
【０００３】
ところで、１以上の処理を一連の処理として表した処理情報等が含まれる指示書に基づいて、当該一連の処理を実行する画像形成装置が知られている（例えば特許文献１参照）。また、ソフトウェアのインストール状況をチェックする技術が知られている（例えば特許文献２参照）。更に、アプリケーションに対する利用権とネットワークアクセス権とを統合して制御するアクセス統合制御装置が知られている（例えば特許文献３参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記の従来技術では、一度リリースしたアプリケーションについて、このアプリケーションの利用を一時的に停止させることができなかった。このため、例えば、アプリケーションのバグ修正等のために、アプリケーションの利用を一時的に停止させたい場合等に対応することができなかった。
【０００５】
本発明の実施の形態は、上記の点に鑑みてなされたもので、アプリケーションの利用を一時的に停止可能にすることを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明の実施の形態は、１以上の情報処理装置を含み、所定の処理をそれぞれ実行する複数のプログラムを有する情報処理システムであって、電子データを用いた一連の処理を実行するためのアプリケーション毎に、該一連の処理のそれぞれの処理を実行する１以上の前記プログラムを識別するプログラム識別情報と、１以上の前記プログラムの実行順とが定義されたフロー情報を記憶する第１の記憶手段と、前記アプリケーション毎に、該アプリケーションが利用可能な状態か否かを示すアプリ状態情報を記憶する第２の記憶手段と、前記情報処理システムに接続される機器からの要求に応じて、前記アプリ状態情報が利用可能な状態である前記アプリケーションが選択可能な画面を、前記要求元の機器に表示させる表示手段と、前記画面における前記アプリケーションの選択に応じて、選択された前記アプリケーションの前記フロー情報に基づいて、該フロー情報に定義されている前記プログラム識別情報により識別される前記プログラムを前記実行順に従って実行させることで、前記電子データを用いた一連の処理を実行する実行手段と、を有することを特徴とする。
【発明の効果】
【０００７】
アプリケーションの利用を一時的に停止可能にすることができる。
【図面の簡単な説明】
【０００８】
【図１】本実施形態に係る情報処理システムのシステム構成の一例を示す図である。
【図２】本実施形態に係るサービス提供システム及びＰＣ端末のハードウェア構成の一例を示す図である。
【図３】本実施形態に係る機器のハードウェア構成の一例を示す図である。
【図４】本実施形態に係る情報処理システムの機能構成の一例を示す図である。
【図５】アプリ状態情報の一例を示す図である。
【図６】アプリ状態間の遷移を模式的に説明する図である。
【図７】権限情報の一例を示す図である。
【図８】本実施形態に係るロジック処理部の機能構成の一例を示す図である。
【図９】型変換情報テーブルの一例を示す図である。
【図１０】処理フロー情報の一例を示す図である。
【図１１】アプリケーションの登録処理の一例を示すシーケンス図である。
【図１２】アプリケーション登録画面（１／４）の一例を示す図である。
【図１３】アプリケーション登録画面（２／４）の一例を示す図である。
【図１４】アプリケーション登録画面（３／４）の一例を示す図である。
【図１５】アプリケーション登録画面（４／４）の一例を示す図である。
【図１６】アプリ設定情報の一例を示す図である。
【図１７】アプリ状態の変更処理の一例を示すシーケンス図である。
【図１８】アプリ状態変更画面の一例を示す図である。
【図１９】アプリ状態変更画面の他の例を示す図である。
【図２０】アプリ設定の変更処理の一例を示すシーケンス図である。
【図２１】ＱＲコード印刷サービスを利用する場合の全体処理の一例を示すシーケンス図である。
【図２２】アプリ画面の一例を示す図である。
【図２３】ＱＲコード印刷サービスを実現する処理フローの実行処理の一例を示すシーケンス図である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。
【００１０】
＜システム構成＞
まず、本実施形態に係る情報処理システム１のシステム構成について、図１を参照しながら説明する。図１は、本実施形態に係る情報処理システム１のシステム構成の一例を示す図である。
【００１１】
図１に示す情報処理システム１は、サービス提供システム１０と、機器２０と、ＰＣ端末３０とを含み、インターネット等の広域的なネットワークＮ１を介して通信可能に接続されている。
【００１２】
サービス提供システム１０は、一台以上の情報処理装置で実現され、ネットワークＮ１を介して、種々の機能をそれぞれ実現する複数の処理のうちの１以上の処理を組み合わせた一連の処理により実現される各種のサービスを提供する。
【００１３】
ここで、機能とは、文書ファイルや画像ファイル等の電子ファイルに関する機能である。機能には、例えば、プリント、スキャン、ファクシミリ送信、データ形式の変換、メール配信、ＯＣＲ（Optical character recognition）処理、加工や圧縮・解凍、リポジトリへの格納等が挙げられる。
【００１４】
本実施形態に係るサービス提供システム１０が提供するサービスの具体例については後述する。なお、以降では、一連の処理を「処理フロー」とも表す。
【００１５】
機器２０は、ユーザが使用する各種の電子機器である。すなわち、機器２０は、例えば、ＭＦＰ（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）等でアプリケーションの各種設定が定義された情報である。
【００５９】
これにより、機器２０には、ブラウザ２１０により、サービス提供システム１０が提供するサービスを利用するためのアプリ画面が表示される。
【００６０】
アプリ実行部１２２は、ブラウザ２１０からの要求に応じて、入出力サービス処理部１１０に対して、アプリケーション（アプリ情報１０００）の実行要求を送信する。
【００６１】
ドキュメントサービス部１３０は、処理フロー情報１１００に基づく一連の処理（処理フロー）に含まれる所定の処理を実行する。ドキュメントサービス部１３０は、例えば、電子ファイルに対してＯＣＲ処理を行うＯＣＲ処理部１３１と、電子ファイルを添付したメールを作成した上で、当該メールを指定されたメールアドレス宛に配信するメール配信部１３２とを有する。
【００６２】
なお、ドキュメントサービス部１３０には、これら以外にも、例えば、電子ファイルの圧縮又は解凍するための圧縮・解凍処理部、電子ファイルのデータ形式を変換するためのデータ形式変換部等、種々の機能部が含まれていても良い。
【００６３】
ポータルサービス部１４０は、ユーザがＰＣ端末３０のブラウザ３１０を用いてアプリケーションの登録等を行うための処理を行う。ポータルサービス部１４０は、ＵＩ提供部１４１と、アプリ登録部１４２とを有する。
【００６４】
ＵＩ提供部１４１は、ブラウザ３１０からの要求に応じて、ポータル画面情報記憶部１９０に記憶されているポータル画面情報３０００を返信する。ポータルとは、ブラウザ３１０を用いて、アプリケーションの登録等を行うことができるＷｅｂサイトである。
【００６５】
ポータル画面情報３０００とは、ポータルのトップ画面（ポータルトップ画面）やアプリケーション登録画面等の各種画面が定義された情報である。ポータル画面情報３０００は、例えば、ＨＴＭＬ、ＸＭＬ、ＣＳＳ、ＪａｖａＳｃｒｉｐｔ等のブラウザ２１０で各種画面が定義された情報である。
【００６６】
これにより、ＰＣ端末３０には、ブラウザ３１０により、ポータルトップ画面やアプリケーション登録画面が表示される。したがって、ＰＣ端末３０のユーザは、アプリケーション登録画面において、アプリケーション（アプリ情報１０００）の登録操作を行うことができる。
【００６７】
アプリ登録部１４２は、ＵＩ提供部１４１からの要求に応じて、アプリケーション（アプリ情報１０００）の登録をアプリ管理部１１１に要求する。すなわち、アプリ登録部１４２は、アプリケーション登録画面において、アプリケーションの登録操作が行われると、アプリケーションの登録をアプリ管理部１１１に要求する。
【００６８】
また、アプリ登録部１４２は、アプリケーションが登録されると、当該アプリケーションの状態（アプリ状態）の登録をアプリ状態サービス部１５０に要求する。アプリ状態とは、アプリケーションがリリースされたか否か、利用可能であるか否か等の状態を表し、後述するように、例えば、「未リリース」、「利用可能」、「一時停止」、及び「新規ライセンス適用禁止」の４つの状態がある。
【００６９】
アプリ状態サービス部１５０は、アプリ登録部１４２からの要求に応じて、アプリケーションの初期のアプリ状態を示すアプリ状態情報をアプリ状態情報記憶部１５１に記憶させる。これにより、アプリケーション（アプリ情報１０００）のアプリ状態がサービス提供システム１０に登録される。なお、初期のアプリ状態としては、例えば、アプリケーションが未だリリースされていないことを示す「未リリース」が挙げられる。
【００７０】
また、アプリ状態サービス部１５０は、ＰＣ端末３０のブラウザ３１０からの要求に応じて、サービス提供システム１０に登録されているアプリ状態を変更する。アプリ状態は、アプリ状態情報記憶部１５１に記憶されているアプリ状態情報を更新することで変更される。
【００７１】
権限サービス部１６０は、アプリ管理部１１１やアプリ状態サービス部１５０からの要求に応じて、権限情報記憶部１６１を参照して、ＰＣ端末３０のユーザの権限を確認する。権限には、例えば、「管理者権限」、「開発者権限」、及び「一般権限」の４つの権限がある。「管理者権限」とは、例えば、サービス提供システム１０全体の管理や各ユーザの管理等を行うユーザに付与される権限である。「開発者権限」とは、例えば、アプリケーションの開発者に付与される権限である。「一般権限」とは、例えば、アプリケーションの利用者に付与される権限である。
【００７２】
アプリ状態情報記憶部１５１は、アプリ状態情報を記憶する。ここで、アプリ状態情報記憶部１５１に記憶されているアプリ状態情報について、図５を参照しながら説明する。図５は、アプリ状態情報の一例を示す図である。
【００７３】
図５に示すように、アプリ状態情報には、データ項目として、「アプリＩＤ」と、「アプリ状態」とが含まれる、「アプリＩＤ」には、アプリケーション（アプリ情報１０００）を識別するアプリＩＤが設定される。「アプリ状態」には、当該アプリケーションの状態を示すアプリ状態が設定される。
【００７４】
アプリ状態には、例えば、「未リリース」、「利用可能」、「一時停止」、及び「新規ライセンス適用禁止」の４つの状態がある。「未リリース」とは、アプリケーションが未だリリースされていないことを示すアプリ状態である。「利用可能」とは、アプリケーションがリリース中で、利用可能であることを示すアプリ状態である。「一時停止」とは、アプリケーションがリリース中であるが、利用を一時的に停止させていることを示すアプリ状態である。「新規ライセンス適用禁止」とは、アプリケーションの廃止に向けた状態であり、利用可能であるが、ライセンスの新規適用を禁止していることを示すアプリ状態である。
【００７５】
また、「利用可能」は、更に、アプリケーションの編集が不可能であることを示す「利用可能（編集不可）」と、「開発者権限」が付与されたユーザがアプリケーションを編集可能であることを示す「利用可能（編集可）」とに分けることができる。同様に、「一時停止」は、更に、アプリケーションの編集が不可能であることを示す「一時停止（編集不可）」と、「開発者権限」が付与されたユーザがアプリケーションを編集可能であることを示す「一時停止（編集可）」とに分けることができる。ただし、「利用可能」を「利用可能（編集不可）」と「利用可能（編集可）」とに分けることができなくても良い。同様に、「一時停止」を「一時停止（編集不可）」と「一時停止（編集可）」とに分けることができなくても良い。
【００７６】
アプリケーションは、これら４つのアプリ状態（「編集可」及び「編集不可」も考慮すれば、６つのアプリ状態）を相互に遷移することができる。ここで、「編集可」及び「編集不可」を考慮した６つのアプリ状態間の遷移について、図６を参照しながら説明する。図６は、アプリ状態間の遷移を模式的に説明する図である。
【００７７】
図６に示すように、アプリケーションの初期のアプリ状態は「未リリース」となる。アプリ状態が「未リリース」から「利用可能（編集可）」又は「利用可能（編集不可）」に更新されることで、アプリケーションがリリースされ、機器２０のユーザが当該アプリケーションを利用することができるようになる。一方で、アプリ状態が「利用可能（編集可）」又は「利用可能（編集不可）」から「未リリース」に更新されることで、アプリケーションのリリースが解除され、機器２０のユーザが当該アプリケーションを利用することができなくなる。
【００７８】
アプリ状態「利用可能（編集可）」と「利用可能（編集不可）」とは相互に遷移させることができる。これにより、例えば、リリース後は基本的にアプリ状態を「利用可能（編集不可）」としつつ、アプリケーションの軽微な修正等が必要になった場合に一時的にアプリ状態を「利用可能（編集可）」として、アプリケーションの編集を行うことができるようになる。
【００７９】
アプリ状態が「利用可能（編集可）」又は「利用可能（編集不可）」から「一時停止（編集可）」又は「一時停止（編集不可）」に更新されることで、アプリケーションの利用を一時的に停止させることができる。これにより、例えば、リリース後に、アプリケーションにバグ等が発見された場合に、アプリ状態を「一時停止（編集可）」に遷移させることで、アプリケーションの利用を一時的に停止させた上で、バグ等の修正を行うことができるようになる。
【００８０】
一方で、アプリ状態が「一時停止（編集可）」又は「一時停止（編集不可）」から「利用可能（編集可）」又は「利用可能（編集不可）」に更新されることで、アプリケーションの利用を再開させることができる。
【００８１】
アプリ状態「一時停止（編集可）」と「一時停止（編集不可）」とは相互に遷移させることができる。なお、アプリケーションのアプリ状態が「一時停止」である場合、機器２０のユーザは、当該アプリケーションを利用することができないため、「一時停止（編集可）」と「一時停止（編集可）」とに分けずに、「一時停止（編集可）」のみであっても良い。
【００８２】
アプリ状態が「利用可能（編集可）」、「利用可能（編集不可）」、「一時停止（編集可）」、又は「一時停止（編集不可）」から「新規ライセンス適用禁止」に更新されることで、アプリケーションの廃止準備をすることができる。これにより、例えば、アプリケーションを廃止が予定された場合、当該アプリケーションのライセンスが新規に適用されることを禁止することができる。
【００８３】
一方で、アプリ状態が「新規ライセンス適用禁止」から「利用可能（編集可）」又は「利用可能（編集不可）」に更新されることで、アプリケーションのライセンスの新規適用を再開することができる。これにより、例えば、アプリケーションの廃止が予定されたものの、この予定が中止になったような場合に、当該アプリケーションのライセンスの新規適用を再開することができる。
【００８４】
このように、サービス提供システム１０に登録されているアプリケーションは、６つのアプリ状態を遷移させることができる。なお、サービス提供システム１０に登録されているアプリケーションが取り得るアプリ状態は、これら６つのアプリ状態に限られない。サービス提供システム１０に登録されているアプリケーションが取り得るアプリ状態としては、例えば、アプリケーションをインストールしている全てのユーザが利用できなくなる「利用停止状態」等があっても良い。
【００８５】
権限情報記憶部１６１は、権限情報を記憶する。ここで、権限情報記憶部１６１に記憶されているアプリ状態情報について、図７を参照しながら説明する。図７は、権限情報の一例を示す図である。
【００８６】
図７に示すように、権限情報には、データ項目として、「ユーザＩＤ」と、「権限」とが含まれる。「ユーザＩＤ」には、機器２０又はＰＣ端末３０のユーザを識別するユーザＩＤが設定される。「権限」には、当該ユーザの権限が設定される。権限には、上述したように、例えば、「管理者権限」、「開発者権限」、及び「一般権限」の４つの権限がある。
【００８７】
アプリ情報記憶部１７０は、アプリ情報１０００を記憶する。アプリ情報１０００は、当該アプリ情報１０００を識別するアプリＩＤと関連付けてアプリ情報記憶部１７０に記憶されている。アプリＩＤは、例えば、アプリ情報１０００のＵＲＬ（Uniform Resource Locator）、又はアプリ情報１０００のＵＲＬに含まれる識別情報等である。
【００８８】
ここで、アプリ情報１０００には、処理フロー情報１１００と、アプリ設定情報１２００とが含まれる。例えば、ＱＲコード印刷サービスを提供するアプリ情報１０００には、当該サービスを実現する一連の処理が定義された処理フロー情報１１００と、当該アプリ情報１０００の各種設定が定義されたアプリ設定情報１２００とが含まれる。以降では、ＱＲコード印刷サービスを提供するアプリ情報１０００を「ＱＲコード印刷アプリケーション」とも表す。
【００８９】
なお、アプリ情報１０００には、２以上の処理フロー情報１１００と、２以上のアプリ設定情報１２００とが含まれていても良い。
【００９０】
処理フロー情報１１００は、上述したように、アプリ情報１０００により提供されるサービスを実現する一連の処理（処理フロー）が定義された情報である。なお、処理フロー情報１１００の詳細については後述する。
【００９１】
また、アプリ設定情報１２００は、上述したように、アプリケーション（アプリ情報１０００）の各種設定が定義された情報である。なお、アプリ設定情報１２００の詳細については後述する。
【００９２】
アプリ画面情報記憶部１８０は、アプリ画面情報２０００を記憶する。アプリ画面情報２０００には、ライセンスが適用されたアプリケーションの一覧を表示するアプリ一覧画面のアプリ画面情報２０００と、アプリ一覧画面で選択されたアプリケーションを利用するためのアプリ利用画面のアプリ画面情報２０００とが含まれる。
【００９３】
ポータル画面情報記憶部１９０は、ポータル画面情報３０００を記憶する。ポータル画面情報３０００は、ポータルトップ画面やアプリケーション登録画面等のＵＲＬと関連付けてポータル画面情報記憶部１９０に記憶されている。
【００９４】
なお、入出力サービス処理部１１０、Ｗｅｂサービス処理部１２０、ドキュメントサービス部１３０、ポータルサービス部１４０、アプリ状態サービス部１５０、及び権限サービス部１６０等は、それぞれが異なる情報処理装置により実現されていても良い。
【００９５】
ここで、ロジック処理部１１２の詳細な機能構成について、図８を参照しながら説明する。図８は、本実施形態に係るロジック処理部１１２の機能構成の一例を示す図である。
【００９６】
図８に示すロジック処理部１１２は、フロー実行部３０１と、コンポーネント管理部３０２と、コンポーネント群３０３と、型変換管理部３０４と、型変換群３０５とを有する。また、ロジック処理部１１２は、型変換情報テーブル４０００を有する。
【００９７】
フロー実行部３０１は、アプリ実行部１２２からアプリケーションの実行要求を受信すると、当該実行要求に対応する処理フロー情報１１００をアプリ管理部１１１から取得する。そして、フロー実行部３０１は、アプリ管理部１１１から取得した処理フロー情報１１００に基づく一連の処理（処理フロー）を実行する。
【００９８】
ここで、処理フロー情報１１００に基づく一連の処理は、当該一連の処理に含まれる各処理を実行するためのコンポーネントを組み合わせることにより実行される。なお、コンポーネントは、所定の機能を実現する処理を実行するためのプログラムやモジュール等により実現され、例えばクラスや関数等で定義される。
【００９９】
コンポーネント管理部３０２は、コンポーネントを管理する。コンポーネント管理部３０２は、フロー実行部３０１からの要求に応じて、コンポーネントを生成すると共に、生成したコンポーネントをフロー実行部３０１に返信する。なお、コンポーネントの生成とは、例えばクラスや関数等で定義されたコンポーネントを、メモリ（例えばＲＡＭ１４）上に展開することである。
【０１００】
コンポーネント群３０３は、コンポーネントの集合である。コンポーネント群３０３には、例えば、コードコンポーネント１３１０と、スタンプコンポーネント１３２０とが含まれる。
【０１０１】
コードコンポーネント１３１０は、パラメータとして指定された情報（例えば文字列）が埋め込まれたＱＲコードを作成するためのコンポーネントである。なお、コードコンポーネント１３１０は、ＱＲコードに限られず、例えば、バーコード等の種々のコードを作成しても良い。
【０１０２】
スタンプコンポーネント１３２０は、例えば画像ファイルやＰＤＦ（Portable Document Format）ファイル等の電子ファイルに対して、例えばＱＲコード等のコードを重畳させるためのコンポーネントである。
【０１０３】
このように、各コンポーネントは、所定の機能を実現する処理を実行する。なお、コンポーネント群３０３には、上記のコンポーネント以外にも、例えば、電子ファイルの暗号化や復号を行うための暗号化・復号コンポーネント、電子ファイルを圧縮するための圧縮コンポーネント等の各種のコンポーネントが含まれる。
【０１０４】
また、コンポーネント群３０３に含まれる各コンポーネントは、コンポーネント共通Ｉ／Ｆ１３００を有する。コンポーネント共通Ｉ／Ｆ１３００は、各コンポーネントに対して共通に定義されたＡＰＩ（Application Programming Interface）であり、コンポーネントを生成するためのＡＰＩと、コンポーネントの処理を実行するためのＡＰＩとが含まれる。
【０１０５】
各コンポーネントがコンポーネント共通Ｉ／Ｆ１３００を有することで、コンポーネントの追加等に伴う影響を局所化することができる。すなわち、例えば、フロー実行部３０１やコンポーネント管理部３０２等に影響を与えることなく、コンポーネントの追加等を行うことができる。これにより、本実施形態に係るサービス提供システム１０では、所定の機能の追加等（すなわち、当該機能を実現する処理を実行するためのコンポーネントの追加等）に伴う開発工数を削減することができる。
【０１０６】
型変換管理部３０４は、データ型の型変換を管理する。各コンポーネントは、自身が扱えるデータ型が予め決まっている。したがって、型変換管理部３０４は、コンポーネントからの要求に応じて、例えば図９に示す型変換情報テーブル４０００を参照して、型変換群３０５に含まれる型変換を生成する。
【０１０７】
そして、型変換管理部３０４は、生成された型変換に型変換処理の実行を要求する。なお、型変換は、データ型の型変換処理を実行するプログラムやモジュール等により実現され、例えばクラスや関数等で定義される。また、型変換の生成とは、例えばクラスや関数等で定義された型変換を、メモリ（例えばＲＡＭ１４上）に展開することである。
【０１０８】
データ型には、例えば、ストリームデータを示すデータ型「ＩｎｐｕｔＳｔｒｅａｍ」、記憶装置等に格納されている電子ファイルのパス（アドレス）を示す「ＬｏｃａｌＦｉｌｅＰａｔｈ」、及び電子ファイルの実体を示す「Ｆｉｌｅ」等が挙げられる。
【０１０９】
ここで、型変換情報テーブル４０００について、図９を参照しながら説明する。図９は、型変換情報テーブルの一例を示す図である。
【０１１０】
図９に示す型変換情報テーブル４０００は、データ項目として、「変換前のデータ型」と、「変換後のデータ型」と、「生成する型変換」とを有する。すなわち、型変換情報テーブル４０００に格納されている型変換情報は、変換前のデータ型及び変換後のデータ型毎に対して、当該変換前のデータ型を、当該変換後のデータ型に変換するための型変換が関連付けられた情報である。
【０１１１】
型変換群３０５は、型変換の集合である。型変換群３０５には、データ型「ＩｎｐｕｔＳｔｒｅａｍ」を「ＬｏｃａｌＦｉｌｅＰａｔｈ」に変換するための第１の型変換１４１０が含まれる。型変換群３０５には、これ以外にも、例えば、データ型「ＬｏｃａｌＦｉｌｅＰａｔｈ」を「Ｆｉｌｅ」に変換するための第２の型変換等が含まれる。
【０１１２】
また、型変換群３０５に含まれる各型変換は、型変換共通Ｉ／Ｆ１４００を有する。型変換共通Ｉ／Ｆ１４００は、各型変換に対して共通に定義されたＡＰＩであり、型変換を生成するためのＡＰＩと、型変換の型変換処理を実行するためのＡＰＩとが含まれる。
【０１１３】
各型変換が型変換共通Ｉ／Ｆ１４００を有することで、型変換の追加等に伴う影響を局所化することができる。すなわち、例えば、型変換管理部３０４等に影響を与えることなく、型変換の追加等を行うことができる。これにより、本実施形態に係るサービス提供システム１０では、型変換の追加等に伴う開発工数を削減することができる。
【０１１４】
ここで、ＱＲコード印刷サービスを提供するアプリ情報１０００に含まれる処理フロー情報１１００について、図１０を参照しながら説明する。図１０は、処理フロー情報１１００の一例を示す図である。
【０１１５】
図１０に示す処理フロー情報１１００は、ＱＲコード印刷サービスを実現する一連の処理（処理フロー）が定義された情報である。
【０１１６】
図１０に示す処理フロー情報１１００には、処理フロー情報１１００を識別するフロー名１１０１と、処理フローに含まれる各処理の処理内容が定義されたフロー詳細１１０２とが含まれる。
【０１１７】
フロー名１１０１には、フロー名が定義される「ｆｌｏｗＮａｍｅ」が含まれる。図１０に示す処理フロー情報１１００の「ｆｌｏｗＮａｍｅ」には、ＱＲコード印刷サービスを実現する一連の処理のフロー名「ｃｏｄｅ−ｐｒｉｎｔ」が定義されている。
【０１１８】
フロー詳細１１０２には、処理フローに含まれる各処理をそれぞれ定義した詳細処理定義１１１０〜１１２０が含まれる。詳細処理定義１１１０〜１１２０には、詳細処理定義を識別する詳細処理名が定義される「ｄｅｔａｉｌＮａｍｅ」が含まれる。また、詳細処理定義１１１０〜１１２０には、処理を実行するコンポーネントのコンポーネント名が定義される「ｃｏｍｐｏｎｅｎｔ」と、当該コンポーネントに対するパラメータ情報が定義される「ｐａｒａｍｅｔｅｒｓ」とが含まれる。
【０１１９】
詳細処理定義１１１０の「ｄｅｔａｉｌＮａｍｅ」には、「ｄｅｔａｉｌ０」が定義されている。また、詳細処理定義１１１０の「ｃｏｍｐｏｎｅｎｔ」には、コードコンポーネント１３１０のコンポーネント名「ｃｏｄｅ」が定義されている。更に、詳細処理定義１１１０の「ｐａｒａｍｅｔｅｒｓ」には、コードコンポーネント１３１０に対する各種パラメータ情報が定義されている。
【０１２０】
同様に、詳細処理定義１１２０の「ｄｅｔａｉｌＮａｍｅ」には、「ｄｅｔａｉｌ１」が定義されている。また、詳細処理定義１１２０の「ｃｏｍｐｏｎｅｎｔ」には、スタンプコンポーネント１３２０のコンポーネント名「ｓｔａｍｐ」が定義されている。更に、詳細処理定義１１１０の「ｐａｒａｍｅｔｅｒｓ」には、スタンプコンポーネント１３２０に対する各種パラメータ情報が定義されている。
【０１２１】
なお、各詳細処理定義に定義された処理の実行順は、フロー詳細１１０２において、上から順に定義される。すなわち、図１０に示す処理フロー情報１１００に基づく一連の処理（処理フロー）では、詳細処理定義１１１０に定義された処理、詳細処理定義１１２０に定義された処理の順で実行される。ただし、これに限られず、処理フロー情報１１００には、例えば、各詳細処理定義に定義された処理の実行順を示す情報が定義されていても良い。
【０１２２】
＜処理の詳細＞
次に、本実施形態に係る情報処理システム１の処理の詳細について説明する。
【０１２３】
≪アプリケーションの登録≫
以降では、ＰＣ端末３０のユーザが、ＱＲコード印刷アプリケーションをサービス提供システム１０に登録する処理について、図１１を参照しながら説明する。図１１は、アプリケーションの登録処理の一例を示すシーケンス図である。
【０１２４】
まず、ＰＣ端末３０のブラウザ３１０は、アプリケーション登録画面を表示させるための操作（アプリケーション登録画面の表示操作）を受け付ける（ステップＳ１１０１）。なお、ＰＣ端末３０のユーザは、例えば、ポータルトップ画面において、アプリケーション登録画面へのリンクボタン等を押下することで、アプリケーション登録画面の表示操作を行うことができる。
【０１２５】
ＰＣ端末３０のブラウザ３１０は、アプリケーション登録画面の表示操作を受け付けると、ポータルサービス部１４０のＵＩ提供部１４１に対して、アプリケーション登録画面の表示要求を送信する（ステップＳ１１０２）。
【０１２６】
ポータルサービス部１４０のＵＩ提供部１４１は、アプリケーション登録画面の表示要求を受信すると、アプリケーション登録画面のポータル画面情報３０００をポータル画面情報記憶部１９０から取得する（ステップＳ１１０３）。すなわち、ＵＩ提供部１４１は、後述するアプリケーション登録画面Ｇ１００〜Ｇ４００を表示するためのポータル画面情報３０００をポータル画面情報記憶部１９０から取得する。
【０１２７】
そして、ＵＩ提供部１４１は、ポータル画面情報記憶部１９０から取得したポータル画面情報３０００をブラウザ３１０に返信する。
【０１２８】
ＰＣ端末３０のブラウザ３１０は、アプリケーション登録画面のポータル画面情報３０００を受信すると、当該ポータル画面情報３０００に基づいて、例えば図１２に示すアプリケーション登録画面Ｇ１００を表示する（ステップＳ１１０４）。
【０１２９】
ここで、以降では、図１２〜図１５を参照しながら、ユーザがアプリケーションの登録操作を行う場合について説明する。
【０１３０】
図１２に示すアプリケーション登録画面Ｇ１００には、プリントタイプのアプリケーションを登録するための「プリント」ボタンＧ１１０と、スキャンタイプのアプリケーションを登録するための「スキャン」ボタンＧ１２０とが含まれる。また、図１２に示すアプリケーション登録画面Ｇ１００には、スキャン＆プリントタイプのアプリケーションを登録するための「スキャン＆プリント」ボタンＧ１３０が含まれる。
【０１３１】
プリントタイプのアプリケーションとは、一連の処理による実行結果を示す電子ファイルを画像形成装置等で印刷させるタイプのアプリケーションである。また、スキャンタイプのアプリケーションとは、画像形成装置等においてスキャンにより生成された電子ファイルを入力とした一連の処理を実行させるタイプのアプリケーションである。更に、スキャン＆プリントタイプのアプリケーションとは、画像形成装置等においてスキャンにより生成された電子ファイルを入力とした一連の処理を実行し、この実行結果を示す電子ファイルを画像形成装置等で印刷させるタイプのアプリケーションである。
【０１３２】
ユーザが、図１２に示すアプリケーション登録画面Ｇ１００において、「スキャン＆プリント」ボタンＧ１３０を選択した上で、「次へ」ボタンＧ１４０を押下する操作を行うと、スキャン＆プリントタイプのアプリケーションを登録するための各種画面に遷移する。このような各種画面には、図１３に示すアプリケーション登録画面Ｇ２００と、図１４に示すアプリケーション登録画面Ｇ３００とが含まれる。
【０１３３】
図１３に示すアプリケーション登録画面Ｇ２００は、スキャン設定（例えば、「用紙向き」や「片面・両面」等）のデフォルト値を設定するための画面である。ユーザは、デフォルト値設定欄Ｇ２１０において、各スキャン設定のデフォルト値を設定することができる。
【０１３４】
また、ユーザは、設定可否欄Ｇ２２０において、アプリケーションの利用時にスキャン設定の変更を許可するか否かを設定することができる。設定可否欄Ｇ２２０がチェックされたスキャン設定は、アプリケーションの利用時に設定値を変更することができる。一方で、設定可否欄Ｇ２２０がチェックされていないスキャン設定は、アプリケーションの利用時に設定値を変更することができない。したがって、ユーザは、設定可否欄Ｇ２２０をチェックしないことで、当該チェックされていないスキャン設定に対して、アプリケーション固有の設定値をデフォルト値として指定することができるようになる。
【０１３５】
図１４に示すアプリケーション登録画面Ｇ３００は、プリント設定（例えば、「印刷部数」や「印刷カラーモード」等）のデフォルト値を設定するための画面である。ユーザは、デフォルト値設定欄Ｇ３１０において、各プリント設定のデフォルト値を設定することができる。
【０１３６】
また、ユーザは、設定可否欄Ｇ３２０において、アプリケーションの利用時にプリント設定の変更を許可するか否かを設定することができる。設定可否欄Ｇ３２０がチェックされたプリント設定は、アプリケーションの利用時に設定値を変更することができる。一方で、設定可否欄Ｇ３２０がチェックされていないプリント設定は、アプリケーションの利用時に設定値を変更することができない。したがって、ユーザは、スキャン設定の場合と同様に、設定可否欄Ｇ３２０をチェックしないことで、当該チェックされていないプリント設定に対して、アプリケーション固有の設定値をデフォルト値として指定することができるようになる。
【０１３７】
なお、ユーザは、スキャン設定及びプリント設定以外にも、基本設定や詳細設定を行うことができる。基本設定では、アプリ名や表示言語等を設定することができる。詳細設定では、アプリケーションを実現する処理フローの選択や当該処理フローのパラメータ情報等を設定することができる。
【０１３８】
基本設定、詳細設定、スキャン設定及びプリント設定が行われると、例えば図１５に示すアプリケーション登録画面Ｇ４００が表示される。図１５に示すアプリケーション登録画面Ｇ４００には、基本設定、詳細設定、スキャン設定及びプリント設定の内容が表示される確認欄Ｇ４１０が含まれる。ユーザは、確認欄Ｇ４１０を参照することで、基本設定、詳細設定、スキャン設定及びプリント設定の内容を確認することができる。
【０１３９】
ここで、ユーザは、確認欄Ｇ４１０を確認した上で、「登録」ボタンＧ４２０を押下する操作（アプリケーションの登録操作）を行ったものとする。すると、ブラウザ３１０は、アプリケーションの登録操作を受け付ける（ステップＳ１１０５）。
【０１４０】
ＰＣ端末３０のブラウザ３１０は、アプリケーションの登録操作を受け付けると、例えば図１６に示すアプリ設定情報１２００を作成する（ステップＳ１１０６）。図１６は、アプリ設定情報１２００の一例を示す図である。
【０１４１】
図１６に示すアプリ設定情報１２００には、スキャン＆プリントタイプであることを示す「ｓｃａｎ＆ｐｒｉｎｔ」が設定されたアプリケーションタイプ１２０１が含まれる。また、図１６に示すアプリ設定情報１２００には、アプリケーションを実現する一連の処理が定義された処理フロー情報１１００のフロー名「ｃｏｄｅ−ｐｒｉｎｔ」が設定されたフロー名１２０２が含まれる。更に、図１６に示すアプリ設定情報１２００には、スキャン設定デフォルトパラメータ１２０３と、プリント設定デフォルトパラメータ１２０４とが含まれる。
【０１４２】
スキャン設定デフォルトパラメータ１２０３には、図１３に示すアプリケーション登録画面Ｇ２００において設定されたスキャン設定のデフォルト値を示すパラメータが設定される。また、プリント設定デフォルトパラメータ１２０４には、図１４に示すアプリケーション登録画面Ｇ３００において設定されたプリント設定のデフォルト値を示すパラメータが設定される。これにより、ユーザにより登録されたアプリケーションは、スキャン設定デフォルトパラメータ１２０３及びプリント設定デフォルトパラメータ１２０４を、それぞれスキャン設定のデフォルト値及びプリント設定のデフォルト値として用いることができる。
【０１４３】
ステップＳ１１０６に続いて、ＰＣ端末３０のブラウザ３１０は、ポータルサービス部１４０のアプリ登録部１４２に対して、アプリケーションの登録要求を送信する（ステップＳ１１０７）。アプリケーションの登録要求には、上記のステップＳ１１０６で作成したアプリ設定情報１２００が含まれる。
【０１４４】
ポータルサービス部１４０のアプリ登録部１４２は、アプリケーションの登録要求を受信すると、入出力サービス処理部１１０のアプリ管理部１１１に対して、当該登録要求を送信する（ステップＳ１１０８）。
【０１４５】
入出力サービス処理部１１０のアプリ管理部１１１は、アプリケーションの登録要求を受信すると、アプリケーションを登録する（ステップＳ１１０９）。すなわち、アプリ管理部１１１は、アプリケーションの登録要求に含まれるアプリ設定情報１２００をアプリＩＤと関連付けてアプリ情報記憶部１７０に記憶する。これにより、当該アプリ設定情報１２００と、当該アプリ設定情報１２００のフロー名１２０２に設定されたフロー名の処理フロー情報１１００とが含まれるアプリ情報１０００がサービス提供システム１０に登録される。
【０１４６】
次に、ポータルサービス部１４０のアプリ登録部１４２は、アプリ状態サービス部１５０に対して、アプリ状態の登録要求を送信する（ステップＳ１１１０）。アプリ状態の登録要求には、上記のステップＳ１１０９で登録されたアプリ情報１０００のアプリＩＤが含まれる。
【０１４７】
アプリ状態サービス部１５０は、アプリ状態の登録要求を受信すると、当該登録要求に含まれるアプリＩＤと、初期のアプリ状態（例えば「未リリース」）とを関連付けたアプリ状態情報を作成し、アプリ状態情報記憶部１５１に記憶させる（ステップＳ１１１１）。これにより、上記のステップＳ１１０９で登録されたアプリケーションの初期のアプリ状態がサービス提供システム１０に登録される。
【０１４８】
そして、アプリ状態サービス部１５０は、入出力サービス処理部１１０のアプリ管理部１１１に対して、登録結果を返信する。
【０１４９】
以上により、本実施形態に係る情報処理システム１では、ユーザがＰＣ端末３０を用いて、サービス提供システム１０にアプリケーションを登録することができる。しかも、本実施形態に係る情報処理システム１では、ユーザがＰＣ端末３０を用いて、例えば、フロー名、スキャン設定やプリント設定等のデフォルト値等を設定することで、容易にアプリケーション（アプリ情報１０００）を登録することができる。
【０１５０】
したがって、本実施形態に係る情報処理システム１によれば、例えば、プログラミング言語等の専門的な知識や経験を有しないユーザ（例えば企画担当者等）であっても、各種サービスを提供するアプリケーション（アプリ情報１０００）を登録することができる。
【０１５１】
≪アプリ状態の変更≫
以降では、サービス提供システム１０に登録されているアプリケーションのアプリ状態を変更する処理について、図１７を参照しながら説明する。図１７は、アプリ状態の変更処理の一例を示すシーケンス図である。
【０１５２】
まず、ＰＣ端末３０のブラウザ３１０は、アプリ状態変更画面を表示させるための操作（アプリ状態変更画面の表示操作）を受け付ける（ステップＳ１７０１）。なお、ＰＣ端末３０のユーザは、例えば、ポータルトップ画面において、アプリ状態の変更を所望するアプリケーションを指定した上で、アプリ状態変更画面へのリンクボタン等を押下することで、アプリ状態変更画面の表示操作を行うことができる。
【０１５３】
ＰＣ端末３０のブラウザ３１０は、アプリ状態変更画面の表示操作を受け付けると、ポータルサービス部１４０のＵＩ提供部１４１に対して、アプリ状態変更画面の表示要求を送信する（ステップＳ１７０２）。アプリ状態変更画面の表示要求には、ユーザにより指定されたアプリケーションのアプリＩＤが含まれる。
【０１５４】
ポータルサービス部１４０のＵＩ提供部１４１は、アプリ状態変更画面の表示要求を受信すると、アプリ状態サービス部１５０に対して、アプリ状態の取得要求を送信する（ステップＳ１７０３）。アプリ状態の取得要求には、上記のアプリＩＤが含まれる。
【０１５５】
アプリ状態サービス部１５０は、アプリ状態の取得要求を受信すると、当該取得要求に含まれるアプリＩＤと関連付けられているアプリ状態をアプリ状態情報記憶部１５１から取得する（ステップＳ１７０４）。そして、アプリ状態サービス部１５０は、ＵＩ提供部１４１に対して、取得したアプリ状態を返信する。これにより、ユーザにより指定されたアプリケーションの現在のアプリ状態が返信される。
【０１５６】
ポータルサービス部１４０のＵＩ提供部１４１は、アプリ状態サービス部１５０からアプリ状態が返信されると、アプリ状態変更画面のポータル画面情報３０００をポータル画面情報記憶部１９０から取得する（ステップＳ１７０５）。
【０１５７】
そして、ＵＩ提供部１４１は、ポータル画面情報記憶部１９０から取得したポータル画面情報３０００をブラウザ３１０に返信する。
【０１５８】
ＰＣ端末３０のブラウザ３１０は、アプリ状態変更画面のポータル画面情報３０００及びアプリ状態を受信すると、当該ポータル画面情報３０００及びアプリ状態に基づいて、例えば図１８に示すアプリ状態変更画面Ｇ５００を表示する（ステップＳ１７０６）。
【０１５９】
図１８に示すアプリ状態変更画面Ｇ５００は、アプリ状態の変更を行うための画面であり、「アプリ状態の変更」ボタンＧ５１０が含まれる。ユーザにより「アプリ状態の変更」ボタンＧ５１０が押下されると、アプリ状態一覧Ｇ５２０が表示される。ユーザは、アプリ状態一覧Ｇ５２０の中から所望のアプリ状態を選択した上で、ＯＫボタンＧ５３０を押下することで、アプリ状態の変更操作を行うことができる。なお、図１８に示す例では、現在のアプリ状態が「未リリース」であるため、アプリ状態一覧Ｇ５２０において、「未リリース」が選択できないようにグレーアウトされている。
【０１６０】
ここで、アプリケーションが、「編集可」又は「編集不可」を考慮したアプリ状態を取り得る場合、上記のステップＳ１７０６において、ブラウザ３１０は、図１９に示すアプリ状態変更画面Ｇ６００を表示しても良い。
【０１６１】
図１９に示すアプリ状態変更画面Ｇ６００は、上記の図１８に示すアプリ状態変更画面Ｇ５００に対して、「編集可否」ボタンＧ６１０が含まれる。現在のアプリ状態が「利用可能（編集可）」、「利用可能（編集不可）」、「一時停止（編集可）」又は「一時停止（編集不可）」である場合、ユーザは、「編集可否」ボタンＧ６１０を押下することができる。ユーザにより「編集可否」ボタンＧ６１０が押下されると、編集可否一覧Ｇ６２０が表示される。ユーザは、編集可否一覧Ｇ６２０の中から「編集可」又は「編集不可」を選択した上で、ＯＫボタンＧ６３０を押下することで、アプリ状態の変更操作を行うことができる。なお、図１９に示す例では、現在のアプリ状態が「利用可能（編集不可）」であるため、編集可否一覧Ｇ６２０において、「編集不可」が選択できないようにグレーアウトされている。
【０１６２】
ステップＳ１７０６に続いて、ＰＣ端末３０のブラウザ３１０は、アプリ状態の変更操作を受け付ける（ステップＳ１７０７）。
【０１６３】
ＰＣ端末３０のブラウザ３１０は、アプリ状態の変更操作を受け付けると、アプリ状態サービス部１５０に対して、アプリ状態の変更要求を送信する（ステップＳ１７０８）。アプリ状態の変更要求には、アプリ状態の変更操作を行ったユーザのユーザＩＤと、変更対象のアプリケーションのアプリＩＤと、変更後のアプリ状態とが含まれる。
【０１６４】
アプリ状態サービス部１５０は、アプリ状態の変更要求を受信すると、権限サービス部１６０に対して、権限の確認要求を送信する（ステップＳ１７０９）。権限の確認要求には、上記のユーザＩＤが含まれる。
【０１６５】
権限サービス部１６０は、権限の確認要求を受信すると、権限情報記憶部１６１を参照して、当該確認要求に含まれるユーザＩＤと関連付けられている権限を確認する（ステップＳ１７１０）。そして、権限サービス部１６０は、アプリ状態サービス部１５０に対して、確認した権限を示す確認結果を返信する。
【０１６６】
「管理者権限」を示す確認結果が返信された場合、アプリ状態サービス部１５０は、アプリ状態を変更する（ステップＳ１７１１）。すなわち、アプリ状態サービス部１５０は、アプリ状態情報記憶部１５１に記憶されているアプリ状態のうち、当該アプリＩＤが含まれるアプリ状態情報のアプリ状態を、変更後のアプリ状態に更新する。これにより、アプリケーションのアプリ状態が変更される。
【０１６７】
そして、アプリ状態サービス部１５０は、ＰＣ端末３０のブラウザ３１０に対して、アプリ状態が変更されたことを示す変更結果を返信する。
【０１６８】
一方で、「開発者権限」又は「一般権限」を示す確認結果が返信された場合、アプリ状態サービス部１５０は、ＰＣ端末３０のブラウザ３１０に対して、アプリ状態が変更できないことを示す変更不可エラーを返信する。このように、ＰＣ端末３０のユーザの権限が「開発者権限」又は「一般権限」である場合、アプリ状態サービス部１５０は、アプリ状態の変更を許可しない。
【０１６９】
以上により、本実施形態に係る情報処理システム１では、管理者権限が付与されたユーザがＰＣ端末３０を用いて、サービス提供システム１０に登録されているアプリケーションのアプリ状態を変更することができる。
【０１７０】
アプリ状態の変更する場合には、例えば、サービス提供システム１０に登録したアプリケーションをリリースする場合が挙げられる。この場合、例えば、アプリ状態を「未リリース」から「利用可能（編集不可）」に変更すれば良い。これにより、機器２０のユーザは、当該アプリケーションを利用することができるようになる。
【０１７１】
また、例えば、リリースされたアプリケーションに対して軽微な修正を行う場合が挙げられる。この場合、例えば、アプリ状態を「利用可能（編集不可）から「利用可能（編集可）」に変更すれば良い。これにより、機器２０のユーザに対して当該アプリケーションを利用させつつ、開発者権限が付与されたユーザが当該アプリケーションを編集することができるようになる。
【０１７２】
更に、例えば、リリースされたアプリケーションにバグや何等かの問題（例えば、セキュリティに関する問題や著作権等の法的な問題等）が発見され、調査や修正等が必要となった場合が挙げられる。この場合、例えば、アプリ状態を「利用可能（編集不可）」（又は「利用可能（編集可能）」）から「一時停止（編集可）」に変更すれば良い。これにより、機器２０のユーザが当該アプリケーションを利用することを一時的に停止した上で、開発者権限が付与されたユーザが当該アプリケーションを編集することができるようになる。
【０１７３】
なお、図１７では、管理者権限が付与されたユーザに限りアプリ状態の変更を許可したが、これに限られない。例えば、管理者権限が付与されたユーザに加えて、開発者権限が付与されたユーザもアプリ状態の変更が許可されても良い。又は、例えば、アプリ状態の変更を行うための特別な権限（例えばアプリ状態変更権限）が付与されたユーザに限りアプリ状態の変更が許可されても良い。
【０１７４】
≪アプリ設定の変更≫
以降では、サービス提供システム１０に登録されているアプリケーションのアプリ設定（すなわち、アプリ設定情報１２００）を変更する処理について、図２０を参照しながら説明する。図２０は、アプリ設定の変更処理の一例を示すシーケンス図である。
【０１７５】
まず、ＰＣ端末３０のブラウザ３１０は、アプリ設定変更画面を表示させるための操作（アプリ設定変更画面の表示操作）を受け付ける（ステップＳ２００１）。なお、ＰＣ端末３０のユーザは、例えば、ポータルトップ画面において、アプリ設定の変更を所望するアプリケーションを指定した上で、アプリ設定変更画面へのリンクボタン等を押下することで、アプリ設定変更画面の表示操作を行うことができる。
【０１７６】
ＰＣ端末３０のブラウザ３１０は、アプリ設定変更画面の表示操作を受け付けると、ポータルサービス部１４０のＵＩ提供部１４１に対して、アプリ設定変更画面の表示要求を送信する（ステップＳ２００２）。アプリ設定変更画面の表示要求には、ユーザにより指定されたアプリケーションのアプリＩＤが含まれる。
【０１７７】
ポータルサービス部１４０のＵＩ提供部１４１は、アプリ設定変更画面の表示要求を受信すると、入出力サービス処理部１１０のアプリ管理部１１１に対して、アプリ設定の取得要求を送信する（ステップＳ２００３）。アプリ設定の取得要求には、上記のアプリＩＤが含まれる。
【０１７８】
入出力サービス処理部１１０のアプリ管理部１１１は、アプリ設定の取得要求を受信すると、当該取得要求に含まれるアプリＩＤと関連付けられているアプリ設定情報１２００をアプリ情報記憶部１７０から取得する（ステップＳ２００４）。そして、アプリ管理部１１１は、ＵＩ提供部１４１に対して、取得したアプリ設定情報１２００を返信する。これにより、ユーザにより指定されたアプリケーションの現在のアプリ設定が返信される。
【０１７９】
ポータルサービス部１４０のＵＩ提供部１４１は、アプリ管理部１１１からアプリ設定情報１２００が返信されると、アプリ設定変更画面のポータル画面情報３０００をポータル画面情報記憶部１９０から取得する（ステップＳ２００５）。
【０１８０】
そして、ＵＩ提供部１４１は、ポータル画面情報記憶部１９０から取得したポータル画面情報３０００をブラウザ３１０に返信する。
【０１８１】
ＰＣ端末３０のブラウザ３１０は、アプリ設定変更画面のポータル画面情報３０００を受信すると、当該ポータル画面情報３０００に基づいて、アプリ設定変更画面を表示する（ステップＳ２００６）。アプリ設定変更画面とは、例えば、図１３に示すアプリケーション登録画面Ｇ２００や図１４に示すアプリケーション登録画面Ｇ３００のように、スキャン設定やプリント設定のデフォルト値等を変更するための画面である。ユーザは、アプリ設定変更画面において、所望のアプリ設定の設定値を指定することで、アプリ設定の変更操作を行うことができる。
【０１８２】
ＰＣ端末３０のブラウザ３１０は、アプリ設定の変更操作を受け付ける（ステップＳ２００７）。
【０１８３】
ＰＣ端末３０のブラウザ３１０は、アプリ設定の変更操作を受け付けると、入出力サービス処理部１１０のアプリ管理部１１１に対して、アプリ設定の変更要求を送信する（ステップＳ２００８）。アプリ設定の変更要求には、アプリ設定の変更操作を行ったユーザのユーザＩＤと、変更対象のアプリケーションのアプリＩＤと、変更後のアプリ設定情報１２００とが含まれる。
【０１８４】
入出力サービス処理部１１０のアプリ管理部１１１は、アプリ設定の変更要求を受信すると、権限サービス部１６０に対して、権限の確認要求を送信する（ステップＳ２００９）。権限の確認要求には、上記のユーザＩＤが含まれる。
【０１８５】
権限サービス部１６０は、権限の確認要求を受信すると、権限情報記憶部１６１を参照して、当該確認要求に含まれるユーザＩＤと関連付けられている権限を確認する（ステップＳ２０１０）。そして、権限サービス部１６０は、アプリ管理部１１１に対して、確認した権限を示す確認結果を返信する。
【０１８６】
「開発者権限」を示す確認結果が返信された場合、入出力サービス処理部１１０のアプリ管理部１１１は、アプリ状態サービス部１５０に対して、編集可否の確認要求を送信する（ステップＳ２０１１）。編集可否の確認要求には、変更対象のアプリケーションのアプリＩＤが含まれる。
【０１８７】
アプリ状態サービス部１５０は、編集可否の確認要求を受信すると、アプリ状態情報記憶部１５１を参照して、当該確認要求に含まれるアプリＩＤと関連付けられているアプリ状態を確認する（ステップＳ２０１２）。そして、アプリ状態サービス部１５０は、アプリ管理部１１１に対して、確認したアプリ状態を示す確認結果を返信する。
【０１８８】
「利用可能（編集可）」又は「一時停止（編集可）」を示す確認結果が返信された場合、入出力サービス処理部１１０のアプリ管理部１１１は、アプリ設定を変更する（ステップＳ２０１３）。すなわち、アプリ管理部１１１は、アプリ情報記憶部１７０に記憶されているアプリ設定情報１２００のうち、当該アプリＩＤと関連付けられているアプリ設定情報１２００を、変更後のアプリ設定情報１２００に更新する。これによりアプリケーションのアプリ設定が変更される。
【０１８９】
そして、入出力サービス処理部１１０のアプリ管理部１１１は、ＰＣ端末３０のブラウザ３１０に対して、アプリ設定が変更されたことを示す変更結果を返信する。
【０１９０】
一方で、「管理者権限」又は「一般権限」を示す確認結果が権限サービス部１６０から返信された場合、入出力サービス処理部１１０のアプリ管理部１１１は、ＰＣ端末３０のブラウザ３１０に対して、アプリ設定が変更できないことを示す変更不可エラーを返信する。同様に、「利用可能（編集不可）」又は「一時停止（編集不可）」を示す確認結果がアプリ状態サービス部１５０から返信された場合、入出力サービス処理部１１０のアプリ管理部１１１は、ＰＣ端末３０のブラウザ３１０に対して、変更不可エラーを返信する。このように、ＰＣ端末３０のユーザの権限が「管理者権限」若しくは「一般権限」である場合、又は、アプリ状態が「利用可能（編集不可）」若しくは「一時停止（編集不可）」である場合、アプリ管理部１１１は、アプリ設定の変更を許可しない。
【０１９１】
以上により、本実施形態に係る情報処理システム１では、アプリ状態が「利用可能（編集可）」又は「一時停止（編集可）」である場合に、開発者権限が付与されたユーザがＰＣ端末３０を用いて、サービス提供システム１０に登録されているアプリケーションのアプリ設定を変更することができる。なお、図２１では、開発者権限が付与されたユーザに限りアプリ設定の変更を許可したが、これに限られない。例えば、開発者権限が付与されたユーザに加えて、管理者権限が付与されたユーザもアプリ設定の変更が許可されても良い。又は、例えば、アプリ設定の変更を行うための特別な権限（例えばアプリ設定変更権限）が付与されたユーザに限りアプリ設定の変更が許可されても良い。
【０１９２】
≪サービスの利用≫
以降では、機器２０のユーザが、ＱＲコード印刷アプリケーションにより提供されるＱＲコード印刷サービスを利用する場合について、図２１を参照しながら説明する。図２１は、ＱＲコード印刷サービスを利用する場合の全体処理の一例を示すシーケンス図である。
【０１９３】
まず、機器２０のブラウザ２１０は、アプリ画面を表示させるための操作（アプリ画面の表示操作）を受け付ける（ステップＳ２１０１）。なお、機器２０のユーザは、例えば、アプリ画面のＵＲＬが設定されたショートカットボタン等を押下することで、アプリ画面の表示操作を行うことができる。
【０１９４】
機器２０のブラウザ２１０は、アプリ画面の表示操作を受け付けると、Ｗｅｂサービス処理部１２０の画面構成部１２１に対して、アプリ画面の表示要求を送信する（ステップＳ２１０２）。アプリ画面の表示要求には、ユーザが属するテナントに適用されたライセンスで利用可能なアプリケーションのアプリＩＤが含まれる。
【０１９５】
Ｗｅｂサービス処理部１２０の画面構成部１２１は、アプリ画面の表示要求を受信すると、入出力サービス処理部１１０のアプリ管理部１１１に対して、アプリ設定及びアプリ状態の取得要求を送信する（ステップＳ２１０３）。アプリ設定及びアプリ状態の取得要求には、上記のアプリＩＤが含まれる。
【０１９６】
入出力サービス処理部１１０のアプリ管理部１１１は、アプリ設定及びアプリ状態の取得要求を受信すると、アプリ状態サービス部１５０に対して、アプリ状態の取得要求を送信する（ステップＳ２１０４）。アプリ状態の取得要求には、上記のアプリＩＤが含まれる。
【０１９７】
アプリ状態サービス部１５０は、アプリ状態の取得要求を受信すると、当該取得要求に含まれるアプリＩＤと関連付けられているアプリ状態をアプリ状態情報記憶部１５１から取得する（ステップＳ２１０５）。なお、アプリ状態サービス部１５０は、当該取得要求に複数のアプリＩＤが含まれている場合、これら複数のアプリＩＤとそれぞれ関連付けられているアプリ状態をアプリ状態情報記憶部１５１から取得する。
【０１９８】
そして、アプリ状態サービス部１５０は、アプリ管理部１１１に対して、取得したアプリ状態を返信する。
【０１９９】
入出力サービス処理部１１０のアプリ管理部１１１は、アプリ状態がアプリ状態サービス部１５０から返信されると、当該取得要求に含まれるアプリＩＤと関連付けられているアプリ設定情報１２００をアプリ情報記憶部１７０から取得する（ステップＳ２１０６）。なお、アプリ管理部１１１は、アプリ設定及びアプリ状態の取得要求に複数のアプリＩＤが含まれている場合、これら複数のアプリＩＤとそれぞれ関連付けられているアプリ設定情報１２００をアプリ情報記憶部１７０から取得する。
【０２００】
そして、アプリ管理部１１１は、画面構成部１２１に対して、アプリ設定情報１２００及びアプリ状態を返信する。
【０２０１】
Ｗｅｂサービス処理部１２０の画面構成部１２１は、アプリ設定情報１２００及びアプリ状態がアプリ管理部１１１から返信されると、アプリ画面情報２０００をアプリ画面情報記憶部１８０から取得する（ステップＳ２１０７）。そして、画面構成部１２１は、機器２０のブラウザ２１０に対して、アプリ画面情報記憶部１８０から取得したアプリ画面情報２０００と、アプリ設定情報１２００と、アプリ状態とを返信する。
【０２０２】
機器２０のブラウザ２１０は、受信したアプリ画面情報２０００とアプリ設定情報１２００とアプリ状態とに基づいて、例えば図２２に示すアプリ画面Ｇ７００を表示する（ステップＳ２１０８）。このとき、ブラウザ２１０は、アプリ状態が「一時停止（編集可）」又は「一時停止（編集不可）」であるアプリケーションをユーザが選択できないようにする。
【０２０３】
図２２に示すアプリ画面Ｇ７００は、ユーザが属するテナントに適用されたライセンスで利用可能なアプリケーションが表示される画面である。図２２に示すアプリ画面Ｇ７００では、「○○アプリ」を示すアイコンＧ７１０と、「△△アプリ」を示すアイコンＧ７２０と、「ＱＲコード印刷アプリ」を示すアイコンＧ７３０とが含まれる。このとき、例えば、「○○アプリ」のアプリ状態が「一時停止（編集可）」又は「一時停止（編集不可）」であった場合、「○○アプリ」を示すアイコンＧ７１０は、ユーザが選択できないようにグレーアウトされる。
【０２０４】
このように、図２２に示すアプリ画面Ｇ７００では、アプリ状態が「一時停止（編集可）」又は「一時停止（編集不可）」であるアプリケーションがグレーアウトされる。これにより、ユーザは、アプリ状態が「一時停止（編集可）」又は「一時停止（編集不可）」であるアプリケーションを選択することができなくなる。このように、ユーザは、自身が属するテナントに適用されているライセンスで利用可能なアプリケーションのうち、アプリ状態が「一時停止（編集可）」又は「一時停止（編集不可）」のアプリケーションを選択することができなくなる。
【０２０５】
なお、グレーアウトする場合に限られず、例えば、アプリ状態が「一時停止（編集可）」又は「一時停止（編集不可）」であるアプリケーションが表示されないようにしても良い。又は、例えば、アプリ状態が「一時停止（編集可）」又は「一時停止（編集不可）」であるアプリケーションが選択された場合に、当該アプリケーションは利用できない旨を表示するようにしても良い。
【０２０６】
ここで、例えば、アイコンＧ７３０をユーザが選択した場合、ブラウザ２１０により、例えば図２２に示すアプリ画面Ｇ８００が表示される。図２２に示すアプリ画面Ｇ８００は、ＱＲコード印刷アプリを利用するための画面である。
【０２０７】
図２２に示すアプリ画面Ｇ８００には、パラメータ入力エリアＧ８１０と、「スタート」ボタンＧ８２０とが含まれる。また、パラメータ入力エリアＧ８１０には、埋め込み文字列入力欄Ｇ８１１と、位置入力欄Ｇ８１２とが含まれる。
【０２０８】
ユーザは、ＱＲコードに埋め込む文字列を埋め込み文字列入力欄Ｇ８１１に入力すると共に、ＱＲコードを重畳させる電子ファイル上の位置を位置入力欄Ｇ８１２に入力した上で、「スタート」ボタンＧ８２０を押下することで、実行操作を行うことができる。
【０２０９】
なお、図２２に示すアプリ画面Ｇ８００において、「読み取り設定」ボタンを押下することで、ユーザは、スキャン設定をデフォルト値から変更するための画面に遷移することができる。同様に、図２２に示すアプリ画面Ｇ８００において、「印刷設定」ボタンを押下することで、ユーザは、プリント設定をデフォルト値から変更するための画面に遷移することができる。
【０２１０】
機器２０のブラウザ２１０は、実行操作を受け付ける（ステップＳ２１０９）。機器２０のブラウザ２１０は、実行操作を受け付けると、スキャナ２６を制御して、原稿を読み取ることで、電子ファイル（画像ファイル）を生成する（ステップＳ２１１０）。なお、このとき、アプリ設定情報１２００のスキャン設定デフォルトパラメータ１２０３に設定されたデフォルト値又はユーザにより指定された設定値を用いて原稿の読み取りが行われる。
【０２１１】
機器２０のブラウザ２１０は、電子ファイル（画像ファイル）が生成されると、Ｗｅｂサービス処理部１２０のアプリ実行部１２２に対して、アプリケーションの実行要求を送信する（ステップＳ２１１１）。アプリケーションの実行要求には、アプリ設定情報１２００に定義されたフロー名と、上記のステップＳ２１１０で生成された電子ファイルと、パラメータ設定情報とが含まれる。
【０２１２】
ここで、アプリケーションの実行要求に含まれるフロー名は、ＱＲコード印刷サービスを実現する一連の処理の処理フロー情報１１００を示す「ｃｏｄｅ−ｐｒｉｎｔ」である。また、パラメータ設定情報は、アプリ画面Ｇ８００でパラメータ値が指定されたパラメータ情報（すなわち、パラメータ入力エリアＧ８１０に入力されたパラメータ値が指定されたパラメータ情報）である。
【０２１３】
Ｗｅｂサービス処理部１２０のアプリ実行部１２２は、アプリケーションの実行要求を受信すると、入出力サービス処理部１１０のロジック処理部１１２に対して、当該実行要求を送信する（ステップＳ２１１２）。
【０２１４】
入出力サービス処理部１１０のロジック処理部１１２は、アプリケーションの実行要求を受信すると、処理フローの実行処理を行う（ステップＳ２１１３）。すなわち、ロジック処理部１１２は、当該実行要求に含まれるフロー名の処理フロー情報１１００に基づく一連の処理を実行する。なお、処理フローの実行処理の詳細については後述する。
【０２１５】
そして、ロジック処理部１１２は、アプリ実行部１２２に対して、処理フローの実行処理の処理結果を返信する。また、アプリ実行部１２２は、ブラウザ２１０に対して、当該処理結果を返信する。ブラウザ２１０に返信される処理結果は、ＱＲコードが重畳された電子ファイルである。
【０２１６】
機器２０のブラウザ２１０は、処理結果がアプリ実行部１２２から返信されると、プリンタ２５を制御して、ＱＲコードが重畳された電子ファイルを印刷する（ステップＳ２１１４）。これにより、本実施形態に係るサービス提供システム１０は、ＱＲコード印刷サービスを提供することができる。
【０２１７】
ここで、処理フローの実行処理（図２１のステップＳ２１１３の処理）の詳細について、図２３を参照しながら説明する。図２３は、ＱＲコード印刷サービスを実現する処理フローの実行処理の一例を示すシーケンス図である。
【０２１８】
フロー実行部３０１は、アプリ実行部１２２からアプリケーションの実行要求を受信すると、アプリ管理部１１１に対して、処理フロー情報の取得要求を送信する（ステップＳ２３０１）。処理フロー情報の取得要求には、フロー名「ｃｏｄｅ−ｐｒｉｎｔ」が含まれる。
【０２１９】
アプリ管理部１１１は、処理フローの取得要求を受信すると、当該取得要求に含まれるフロー名「ｃｏｄｅ−ｐｒｉｎｔ」の処理フロー情報１１００をアプリ情報記憶部１７０から取得する（ステップＳ２３０２）。そして、アプリ管理部１１１は、フロー実行部３０１に対して、アプリ情報記憶部１７０から取得した処理フロー情報１１００（すなわち、図１０に示す処理フロー情報１１００）を返信する。
【０２２０】
次に、フロー実行部３０１は、コンポーネント管理部３０２に対して、処理フロー情報１１００に基づくコンポーネントの取得要求を送信する（ステップＳ２３０３）。すなわち、フロー実行部３０１は、コンポーネント管理部３０２に対して、図１０に示す処理フロー情報１１００の詳細処理定義１１１０に含まれる「ｃｏｍｐｏｎｅｎｔ」に定義されているコンポーネント名「ｃｏｄｅ」のコンポーネントの取得要求を送信する。
【０２２１】
コンポーネント管理部３０２は、コンポーネントの取得要求を受信すると、コンポーネント名「ｃｏｄｅ」のコンポーネント（すなわち、コードコンポーネント１３１０）を生成する（ステップＳ２３０４）。コードコンポーネント１３１０の生成は、コンポーネント共通Ｉ／Ｆ１３００に定義されたコンポーネントを生成するためのＡＰＩを用いて行うことができる。
【０２２２】
そして、コンポーネント管理部３０２は、フロー実行部３０１に対して、生成したコードコンポーネント１３１０を返信する。すなわち、コンポーネント管理部３０２は、フロー実行部３０１に対して、例えば、コードコンポーネント１３１０が展開されたメモリ（例えばＲＡＭ１４）上のアドレスを返信する。
【０２２３】
次に、フロー実行部３０１は、コードコンポーネント１３１０に対して、コンポーネント実行要求を送信する（ステップＳ２３０５）。コンポーネント実行要求には、データと、パラメータ情報とが含まれる。
【０２２４】
ここで、データとは、データ型「ＩｎｐｕｔＳｔｒｅａｍ」として、ブラウザ２１０から受信した電子ファイルである。すなわち、フロー実行部３０１は、ブラウザ２１０から受信した電子ファイルを、単に「データ」として（データ型を意識することなく）、コードコンポーネント１３１０に渡して処理の実行を要求する。本実施形態では、このようにデータ型を意識しない電子ファイル等の各種情報を、単に「データ」と表す。
【０２２５】
また、パラメータ情報は、アプリケーションの実行要求に含まれるパラメータ情報のうち、コードコンポーネント１３１０が用いるパラメータ情報（すなわち、文字列入力欄Ｇ８１１に入力されたパラメータ値が指定されたパラメータ情報）である。
【０２２６】
コードコンポーネント１３１０は、コンポーネント実行要求を受信すると、型変換管理部３０４に対して、型変換要求を送信する（ステップＳ２３０６）。型変換要求には、データと、コードコンポーネント１３１０が扱うことができるデータ型を示す「ＬｏｃａｌＦｉｌｅＰａｔｈ」の指定とが含まれる。
【０２２７】
型変換管理部３０４は、型変換要求を受信すると、当該型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するか否かをチェックする（ステップＳ２３０７）。
【０２２８】
ここで、型変換要求に含まれるデータのデータ型は「ＩｎｐｕｔＳｔｒｅａｍ」である一方、指定されたデータ型は「ＬｏｃａｌＦｉｌｅＰａｔｈ」である。したがって、型変換管理部３０４は、型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致しないものと判断する。
【０２２９】
すると、型変換管理部３０４は、型変換情報テーブル４０００を参照して、データ型「ＩｎｐｕｔＳｔｒｅａｍ」を「ＬｏｃａｌＦｉｌｅＰａｔｈ」に変換するための型変換を特定する（ここでは、第１の型変換１４１０が特定される。）。そして、型変換管理部３０４は、特定した第１の型変換１４１０を生成する（ステップＳ２３０８）。なお、第１の型変換１４１０の生成は、型変換共通Ｉ／Ｆ１４００を用いて行うことができる。
【０２３０】
次に、型変換管理部３０４は、第１の型変換１４１０に対して、型変換処理の実行要求を送信する（ステップＳ２３０９）。第１の型変換１４１０は、型変換の実行要求を受信すると、当該実行要求に含まれるデータのデータ型を「ＩｎｐｕｔＳｔｒｅａｍ」から「ＬｏｃａｌＦｉｌｅＰａｔｈ」に変換する型変換処理を行う（ステップＳ２３１０）。そして、第１の型変換１４１０は、型変換管理部３０４に対して、データ型が変換されたデータを返信する。
【０２３１】
型変換管理部３０４は、第１の型変換１４１０からデータ（データ型が変換されたデータ）を受信すると、コードコンポーネント１３１０に対して、当該データを送信する（ステップＳ２３１１）。
【０２３２】
コードコンポーネント１３１０は、型変換管理部３０４からデータを受信すると、パラメータ情報を用いて、データに対して処理を実行する（ステップＳ２３１２）。すなわち、コードコンポーネント１３１０は、図２２に示すアプリ画面Ｇ８００の埋め込み文字列入力欄Ｇ８１１に入力された文字列が埋め込まれたＱＲコードを生成する。
【０２３３】
そして、コードコンポーネント１３１０は、フロー実行部３０１に対して、処理結果（すなわち、ＱＲコード）と、電子ファイル（すなわち、ブラウザ２１０から受信した電子ファイル）とを示すデータを返信する。
【０２３４】
次に、フロー実行部３０１は、コンポーネント管理部３０２に対して、処理フロー情報１１００に基づくコンポーネントの取得要求を送信する（ステップＳ２３１３）。すなわち、フロー実行部３０１は、コンポーネント管理部３０２に対して、図１０に示す処理フロー情報１１００の詳細処理定義１１２０に含まれる「ｃｏｍｐｏｎｅｎｔ」に定義されているコンポーネント名「ｓｔａｍｐ」のコンポーネントの取得要求を送信する。
【０２３５】
コンポーネント管理部３０２は、コンポーネントの取得要求を受信すると、コンポーネント名「ｓｔａｍｐ」のコンポーネント（すなわち、スタンプコンポーネント１３２０）を生成する（ステップＳ２３１４）。スタンプコンポーネント１３２０の生成は、コンポーネント共通Ｉ／Ｆ１３００に定義されたコンポーネントを生成するためのＡＰＩを用いて行うことができる。
【０２３６】
そして、コンポーネント管理部３０２は、フロー実行部３０１に対して、生成したスタンプコンポーネント１３２０を返信する。すなわち、コンポーネント管理部３０２は、フロー実行部３０１に対して、例えば、スタンプコンポーネント１３２０が展開されたメモリ（例えばＲＡＭ１４）上のアドレスを返信する。
【０２３７】
次に、フロー実行部３０１は、スタンプコンポーネント１３２０に対して、コンポーネント実行要求を送信する（ステップＳ２３１５）。なお、当該実行要求には、データ型「ＬｏｃａｌＦｉｌｅＰａｔｈ」のデータと、パラメータ情報とが含まれる。パラメータ情報は、アプリケーションの実行要求に含まれるパラメータ情報のうち、スタンプコンポーネント１３２０が用いるパラメータ情報（すなわち、位置入力欄Ｇ８１２に入力されたパラメータ値が指定されたパラメータ情報）である。
【０２３８】
スタンプコンポーネント１３２０は、コンポーネント実行要求を受信すると、型変換管理部３０４に対して、型変換要求を送信する（ステップＳ２３１６）。型変換要求には、データと、スタンプコンポーネント１３２０が扱うことができるデータ型を示す「ＬｏｃａｌＦｉｌｅＰａｔｈ」の指定とが含まれる。
【０２３９】
型変換管理部３０４は、型変換要求を受信すると、当該型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するか否かをチェックする（ステップＳ２３１７）。
【０２４０】
ここで、型変換要求に含まれるデータのデータ型は「ＬｏｃａｌＦｉｌｅＰａｔｈ」であり、指定されたデータ型も「ＬｏｃａｌＦｉｌｅＰａｔｈ」である。したがって、型変換管理部３０４は、型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するものと判断する。
【０２４１】
すると、型変換管理部３０４は、スタンプコンポーネント１３２０に対して、型変換要求に含まれるデータを送信する（ステップＳ２３１８）。
【０２４２】
スタンプコンポーネント１３２０は、型変換管理部３０４からデータを受信すると、パラメータ情報を用いて、データに対して処理を実行する（ステップＳ２３１９）。すなわち、スタンプコンポーネント１３２０は、電子ファイルについて、図２２に示すアプリ画面Ｇ８００の位置入力欄Ｇ８１２に入力された位置にＱＲコードを重畳させる。これにより、指定された位置にＱＲコードが重畳された電子ファイルが作成される。
【０２４３】
そして、スタンプコンポーネント１３２０は、フロー実行部３０１に対して、ＱＲコードが重畳された電子ファイルを示すデータを返信する。
【０２４４】
以上により、図１０に示す処理フロー情報１１００に基づく一連の処理（処理フロー）の実行が完了する。これにより、本実施形態に係るサービス提供システム１０は、機器２０に対して、ＱＲコードが重畳された電子ファイルを送信することができる。そして、機器２０で当該電子ファイルを印刷することで、ＱＲコード印刷サービスをユーザ提供することができる。
【０２４５】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【０２４６】
１          情報処理システム
１０        サービス提供システム
２０        機器
１１０      入出力サービス処理部
１１１      アプリ管理部
１１２      ロジック処理部
１２０      Ｗｅｂサービス処理部
１２１      画面構成部
１２２      アプリ実行部
１３０      ドキュメントサービス部
１３１      ＯＣＲ処理部
１３２      メール配信部
１４０      ポータルサービス部
１４１      ＵＩ提供部
１４２      アプリ登録部
１５０      アプリ状態サービス部
１５１      アプリ状態情報記憶部
１６０      権限サービス部
１６１      権限情報記憶部
１７０      アプリ情報記憶部
１８０      アプリ画面情報記憶部
１９０      ポータル画面情報記憶部
２１０      ブラウザ
３１０      ブラウザ
３０１      フロー実行部
３０２      コンポーネント管理部
３０３      コンポーネント群
３０４      型変換管理部
３０５      型変換群
１０００    アプリ情報
１１００    処理フロー情報
１２００    アプリ設定情報
２０００    アプリ画面情報
３０００    ポータル画面情報
４０００    型変換情報テーブル
【先行技術文献】
【特許文献】
【０２４７】
【特許文献１】特許第４０３９１９１号公報
【特許文献２】特開２０００−３０５７７６号公報
【特許文献３】特許第３９２９９１２号公報
【図１】
2019061384.tif 000003
【図２】
2019061384.tif 000004
【図３】
2019061384.tif 000005
【図４】
2019061384.tif 000006
【図５】
2019061384.tif 000007
【図６】
2019061384.tif 000008
【図７】
2019061384.tif 000009
【図８】
2019061384.tif 000010
【図９】
2019061384.tif 000011
【図１０】
2019061384.tif 000012
【図１１】
2019061384.tif 000013
【図１２】
2019061384.tif 000014
【図１３】
2019061384.tif 000015
【図１４】
2019061384.tif 000016
【図１５】
2019061384.tif 000017
【図１６】
2019061384.tif 000018
【図１７】
2019061384.tif 000019
【図１８】
2019061384.tif 000020
【図１９】
2019061384.tif 000021
【図２０】
2019061384.tif 000022
【図２１】
2019061384.tif 000023
【図２２】
2019061384.tif 000024
【図２３】
2019061384.tif 000025