(57)【特許請求の範囲】
【請求項１】
１以上の情報処理装置を含む情報処理システムであって、
電子データを用いた一連の処理を、該一連の処理それぞれを実行するコンポーネントを組み合わせて実行する処理フロー毎に、該処理フローを識別するフロー識別情報と、前記一連の処理に関する情報とを関連付けて記憶する記憶手段と、
前記情報処理システムに接続される１以上の機器のうちの第１の機器に表示された第１の画面において、ユーザにより選択された処理フローにより実行される一連の処理が、前記コンポーネントと該コンポーネントが実行可能な処理のうちの一の処理との組み合わせを順に複数選択するユーザ操作により作成されると、該作成された一連の処理に関する情報を、前記選択された処理フローを識別するフロー識別情報と関連付けて前記記憶手段に記憶させる登録手段と、
前記１以上の機器のうちの第２の機器から、一連の処理に用いられる電子データに関する情報を含む要求を受け付けると、該要求に含まれる前記電子データに関する情報に基づく電子データを用いて、前記フロー識別情報に関連付けて前記記憶手段に記憶されている前記一連の処理に関する情報に基づく一連の処理を、該一連の処理それぞれを実行するコンポーネントを組み合わせて実行する処理実行手段と、
を有する情報処理システム。
【請求項２】
前記登録手段は、
前記第１の機器に表示された第２の画面において、ユーザにより選択された処理フローにより実行される一連の処理のコンポーネントと前記コンポーネントが実行する処理との組み合わせが、ユーザ操作により変更されると、前記選択された処理フローを識別するフロー識別情報と関連付けて前記記憶手段に記憶されている前記一連の処理に関する情報を、前記変更された一連の処理に関する情報に更新する、請求項１に記載の情報処理システム。
【請求項３】
前記登録手段は、
前記第１の機器に表示された第３の画面において、ユーザにより選択された処理フローにより実行される一連の処理の削除が指示されると、前記選択された処理フローを識別するフロー識別情報と関連付けて前記記憶手段に記憶されている前記一連の処理に関する情報を削除する、請求項１又は２に記載の情報処理システム。
【請求項４】
前記処理実行手段は、
電子データに対して、該電子データのデータ型を所定のデータ型に変換する型変換手段を１以上有し、
前記電子データのデータ型を前記型変換手段により前記コンポーネントが処理可能なデータ型に変換した後、前記コンポーネントの処理を実行することにより、前記電子データを用いた前記一連の処理を実行する、請求項１ないし３のいずれか１項に記載の情報処理システム。
【請求項５】
前記コンポーネントは、複数の外部サービスに関する処理をそれぞれ実行する複数の外部サービスコンポーネントを含み、
前記複数の外部サービスコンポーネントは、
外部サービスに対して電子データをアップロードする処理を実行する複数のコンポーネントを少なくとも含み、
前記登録手段は、
前記情報処理システムに接続される１以上の機器のうちの第１の機器に表示された第１の画面において、前記一連の処理が、前記コンポーネントと該コンポーネントが実行可能な処理のうちの一の処理との組み合わせを順に複数選択するユーザ操作により作成されると、該作成された一連の処理に関する情報を、前記選択された処理フローを識別するフロー識別情報と関連付けて前記記憶手段に記憶させ、
前記順に複数選択された組み合わせの中には、前記外部サービスコンポーネントと該外部サービスコンポーネントが実行可能な処理のうちの一の処理との組み合わせが少なくとも含まれる、請求項１ないし４のいずれか１項に記載の情報処理システム。
【請求項６】
情報処理装置であって、
電子データを用いた一連の処理を、該一連の処理それぞれを実行するコンポーネントを組み合わせて実行する処理フロー毎に、該処理フローを識別するフロー識別情報と、前記一連の処理に関する情報とを関連付けて記憶する記憶手段と、
前記情報処理装置に接続される１以上の機器のうちの第１の機器に表示された第１の画面において、ユーザにより選択された処理フローにより実行される一連の処理が、前記コンポーネントと該コンポーネントが実行可能な処理のうちの一の処理との組み合わせを順に複数選択するユーザ操作により作成されると、該作成された一連の処理に関する情報を、前記選択された処理フローを識別するフロー識別情報と関連付けて前記記憶手段に記憶させる登録手段と、
前記１以上の機器のうちの第２の機器から、一連の処理に用いられる電子データに関する情報を含む要求を受け付けると、該要求に含まれる前記電子データに関する情報に基づく電子データを用いて、前記フロー識別情報に関連付けて前記記憶手段に記憶されている前記一連の処理に関する情報に基づく一連の処理を、該一連の処理それぞれを実行するコンポーネントを組み合わせて実行する処理実行手段と、
を有する情報処理装置。
【請求項７】
１以上の情報処理装置を含む情報処理システムであって、電子データを用いた一連の処理を、該一連の処理それぞれを実行するコンポーネントを組み合わせて実行する処理フロー毎に、該処理フローを識別するフロー識別情報と、前記一連の処理に関する情報とを関連付けて記憶する記憶手段を有する情報処理システムに用いられる情報処理方法であって、
前記情報処理システムに接続される１以上の機器のうちの第１の機器に表示された第１の画面において、ユーザにより選択された処理フローにより実行される一連の処理が、前記コンポーネントと該コンポーネントが実行可能な処理のうちの一の処理との組み合わせを順に複数選択するユーザ操作により作成されると、該作成された一連の処理に関する情報を、前記選択された処理フローを識別するフロー識別情報と関連付けて前記記憶手段に記憶させる登録手順と、
前記１以上の機器のうちの第２の機器から、一連の処理に用いられる電子データに関する情報を含む要求を受け付けると、該要求に含まれる前記電子データに関する情報に基づく電子データを用いて、前記フロー識別情報に関連付けて前記記憶手段に記憶されている前記一連の処理に関する情報に基づく一連の処理を、該一連の処理それぞれを実行するコンポーネントを組み合わせて実行する処理実行手順と、
を有する情報処理方法。
【請求項８】
電子データを用いた一連の処理を、該一連の処理それぞれを実行するコンポーネントを組み合わせて実行する処理フロー毎に、該処理フローを識別するフロー識別情報と、前記一連の処理に関する情報とを関連付けて記憶する記憶手段を有する情報処理装置に、
前記情報処理装置に接続される１以上の機器のうちの第１の機器に表示された第１の画面において、ユーザにより選択された処理フローにより実行される一連の処理が、前記コンポーネントと該コンポーネントが実行可能な処理のうちの一の処理との組み合わせを順に複数選択するユーザ操作により作成されると、該作成された一連の処理に関する情報を、前記選択された処理フローを識別するフロー識別情報と関連付けて前記記憶手段に記憶させる登録手順、
前記１以上の機器のうちの第２の機器から、一連の処理に用いられる電子データに関する情報を含む要求を受け付けると、該要求に含まれる前記電子データに関する情報に基づく電子データを用いて、前記フロー識別情報に関連付けて前記記憶手段に記憶されている前記一連の処理に関する情報に基づく一連の処理を、該一連の処理それぞれを実行するコンポーネントを組み合わせて実行する処理実行手順、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、クラウドコンピューティング等により多種多様な外部サービスが提供されるようになった。例えば、ユーザにより指定された電子データを外部ストレージに保管する外部サービス等が知られている。
【０００３】
また、例えば、画像形成装置で原稿をスキャンして取得した画像データを外部ストレージに保管する技術が知られている（例えば特許文献１参照）。このように、画像形成装置と外部サービスとが連携して処理を行う技術が従来から知られている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記の従来技術においては、外部サービスと連携した一連の処理を行うためには画像形成装置に搭載されるアプリケーションの開発が必要となる。また、ある外部サービスが固有の機能（他の外部サービスが提供していない機能）を提供するようになった場合には、当該固有の機能を利用するためのモジュールやプラグイン等を開発する必要がある。
【０００５】
したがって、画像形成装置に搭載されるアプリケーションの追加や修正等の開発に要する工数が大きくなる場合があった。
【０００６】
本発明の一実施形態は、上記の点に鑑みてなされたもので、一連の処理を行うためのアプリケーションの開発を支援することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明の一実施形態は、１以上の情報処理装置を含む情報処理システムであって、電子データを用いた一連の処理を、該一連の処理それぞれを実行するコンポーネントを組み合わせて実行するアプリケーション毎に、該アプリケーションを識別するアプリ識別情報と、前記一連の処理に関する情報とを関連付けて記憶する記憶手段と、前記情報処理システムに接続される１以上の機器のうちの第１の機器に表示された第１の画面において、ユーザにより選択されたアプリケーションにより実行される一連の処理が、前記コンポーネントを組み合わせるユーザ操作により作成されると、該作成された一連の処理に関する情報を、前記選択されたアプリケーションを識別するアプリ識別情報と関連付けて前記記憶手段に記憶させる登録手段と、前記１以上の機器のうちの第２の機器から、一連の処理に用いられる電子データに関する情報と、アプリ識別情報とを含む要求を受け付けると、該要求に含まれる前記電子データに関する情報に基づく電子データを用いて、前記アプリ識別情報に関連付けて前記記憶手段に記憶されている前記一連の処理に関する情報に基づく一連の処理を、該一連の処理それぞれを実行するコンポーネントを組み合わせて実行する処理実行手段と、を有する。
【発明の効果】
【０００８】
本発明の一実施形態によれば、一連の処理を行うためのアプリケーションの開発を支援することができる。
【図面の簡単な説明】
【０００９】
【図１】第一の実施形態に係る情報処理システムの一例の構成を示す図である。
【図２】第一の実施形態に係るサービス提供システム及びＰＣ端末の一例のハードウェア構成を示す図である。
【図３】第一の実施形態に係る画像形成装置の一例のハードウェア構成を示す図である。
【図４】第一の実施形態に係る情報処理システムの一例の機能構成を示す図である。
【図５】共通Ｉ／Ｆ及び固有Ｉ／Ｆの一例を説明するための図である。
【図６】第一の実施形態に係るロジック処理部の一例の機能構成を示す図である。
【図７】コンポーネント情報テーブルの一例を示す図である。
【図８】型変換情報テーブルの一例を示す図である。
【図９】処理フロー情報の一例を示す図である。
【図１０】第一の実施形態に係る処理フローの登録処理の一例を示すシーケンス図である。
【図１１】アプリ一覧画面から処理フロー作成画面への画面遷移の一例を示す図である。
【図１２】処理フロー作成の一例を示す図である（その１）。
【図１３】処理フロー作成の一例を示す図である（その２）。
【図１４】処理フロー作成の他の例を示す図である。
【図１５】第一の実施形態に係るサービス利用の全体処理の一例を示すシーケンス図である。
【図１６】サービス一覧画面からサービス画面への画面遷移の一例を示す図である。
【図１７】第一の実施形態に係る処理フローの実行処理の一例を示すシーケンス図である。
【図１８】第二の実施形態に係る処理フローの登録処理の一例を示すシーケンス図である。
【図１９】アプリ情報画面の一例を示す図である。
【図２０】処理フロー更新画面の一例を示す図である。
【図２１】第三の実施形態に係る処理フローの登録処理の一例を示すシーケンス図である。
【図２２】処理フロー作成画面の他の例を示す図である。
【図２３】第四の実施形態に係る情報処理システムの一例の機能構成を示す図である。
【図２４】第四の実施形態に係る処理フローの登録処理の一例を示すシーケンス図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態について図面を参照しながら詳細に説明する。
【００１１】
［第一の実施形態］
＜システム構成＞
まず、第一の実施形態に係る情報処理システム１の構成について、図１を参照しながら説明する。図１は、第一の実施形態に係る情報処理システムの一例の構成を示す図である。
【００１２】
本実施形態に係る情報処理システム１は、サービス提供環境Ｅ１と、ユーザ環境Ｅ２と、外部ストレージシステム４０とを含み、インターネット等の広域的なネットワークＮ１を介して通信可能に接続されている。
【００１３】
サービス提供環境Ｅ１は、ネットワークを介して、クラウドサービス等の外部サービスと連携した所定のサービスを提供するシステム環境である。なお、本実施形態では、外部サービスの具体例としてクラウドサービスを採用して説明するが、ＡＳＰ（Application Service Provider）によって提供されるサービスやＷｅｂサービス等、ネットワークを介して提供される各種のサービスに関して本実施形態が適用されても良い。
【００１４】
サービス提供環境Ｅ１は、一台以上の情報処理装置で実現されるサービス提供システム１０を有する。サービス提供システム１０は、ネットワークを介して所定のサービスを提供する。
【００１５】
例えば、サービス提供システム１０は、ユーザ環境Ｅ２の画像形成装置２０において原稿をスキャンして生成された電子ファイルを、ＯＣＲ（Optical Character Reader）処理して、外部ストレージシステム４０に保存するサービス（ＯＣＲ配信）を提供する。また、例えば、サービス提供システム１０は、外部ストレージシステム４０に保存されている電子ファイルを、ユーザ環境Ｅ２の画像形成装置２０で印刷するサービスを提供する。
【００１６】
本実施形態に係るサービス提供システム１０は、上述したＯＣＲ配信を提供するものとして説明する。
【００１７】
ただし、サービス提供システム１０により提供されるサービスは、これらに限られない。例えば、サービス提供システム１０は、外部ストレージシステム４０に保存されている電子ファイルを、ユーザ環境Ｅ２に設置されたプロジェクタで投影するサービスを提供しても良い。また、例えば、サービス提供システム１０は、画像形成装置２０において原稿をスキャンして生成された電子ファイルを、ＯＣＲ処理した後、所定の言語に翻訳（例えば、英語を日本語に翻訳）して、外部ストレージシステム４０に保存するサービスを提供しても良い。
【００１８】
なお、サービス提供システム１０の全部又は一部は、ユーザ環境Ｅ２に設置されていても良い。すなわち、サービス提供システム１０を構成する情報処理装置の全部又は一部は、ユーザ環境Ｅ２に包含されていても良い。
【００１９】
ユーザ環境Ｅ２は、例えば、画像形成装置２０やＰＣ端末３０等の機器を使用するユーザである企業等におけるシステム環境である。ユーザ環境Ｅ２は、一台以上の画像形成装置２０と、一台以上のＰＣ端末３０とが、例えばＬＡＮ（Local Area Network）等のネットワークを介して接続されている。
【００２０】
ただし、画像形成装置２０とＰＣ端末３０とは、同一のユーザ環境Ｅ２に設置されていなくても良い。すなわち、画像形成装置２０とＰＣ端末３０とが、それぞれ異なるユーザ環境Ｅ２に設置されていても良い。
【００２１】
本実施形態に係る画像形成装置２０は、スキャン機能やプリント機能等を有するＭＦＰ（Multifunction Peripheral）である。また、本実施形態に係るＰＣ端末３０は、例えば、デスクトップＰＣ、ノート型ＰＣ、スマートフォン、タブレット端末等である。なお、画像形成装置２０は、例えば、コピー機能やファクス（ＦＡＸ）通信機能等の各種機能を有していても良い。
【００２２】
外部ストレージシステム４０は、ネットワークを介してストレージサービス（又はオンラインストレージ）と呼ばれるクラウドサービスを提供するコンピュータシステムである。ストレージサービスとは、外部ストレージシステム４０のストレージの記憶領域を貸し出すサービスである。
【００２３】
本実施形態に係るサービス提供システム１０により提供されるＯＣＲ配信では、外部ストレージシステム４０によって貸し出される記憶領域に、ＯＣＲ処理された電子ファイルが保存（アップロード）される。
【００２４】
なお、以降では、複数の外部ストレージシステム４０について、各々を区別するときは、「外部ストレージシステム４０１」、「外部ストレージシステム４０２」等と添え字を用いて記載する。また、外部ストレージシステム４０１によって提供されるストレージサービスの名称を「外部ストレージＡ」、外部ストレージシステム４０２によって提供されるストレージサービスの名称を「外部ストレージＢ」等とする。
【００２５】
なお、外部ストレージシステム４０は、複数台の情報処理装置によって実現されるシステムであっても良い。また、図１に示される情報処理システム１の構成は一例であって、他の構成であっても良い。例えば、ユーザ環境Ｅ２には、画像形成装置２０に加えて又は画像形成装置２０に代えて、プロジェクタ、電子黒板、デジタルカメラ等の各種機器が含まれていても良い。すなわち、本実施形態に係る情報処理システム１のユーザ環境Ｅ２には、電子データの入力及び出力の少なくとも一方を行う各種機器が含まれ、これらの機器がサービス提供システム１０により提供される各種サービスを利用しても良い。
【００２６】
＜ハードウェア構成＞
次に、本実施形態に係る情報処理システム１に含まれるサービス提供システム１０及びＰＣ端末３０のハードウェア構成について、図２を参照しながら説明する。図２は、第一の実施形態に係るサービス提供システム及びＰＣ端末の一例のハードウェア構成を示す図である。なお、サービス提供システム１０及びＰＣ端末３０は、同様のハードウェア構成を有しているため、以降では、主に、サービス提供システム１０のハードウェア構成について説明する。
【００２７】
サービス提供システム１０は、入力装置１１と、表示装置１２と、外部Ｉ／Ｆ１３と、ＲＡＭ（Random Access Memory）１４とを有する。また、サービス提供システム１０は、ＲＯＭ（Read Only Memory）１５と、ＣＰＵ（Central Processing Unit）１６と、通信Ｉ／Ｆ１７と、ＨＤＤ（Hard Disk Drive）１８とを有する。これらの各ハードウェアは、それぞれがバスＢで接続されている。
【００２８】
入力装置１１は、キーボードやマウス、タッチパネル等を含み、ユーザが各操作信号を入力するのに用いられる。表示装置１２は、ディスプレイ等を含み、サービス提供システム１０による処理結果を表示する。なお、入力装置１１及び表示装置１２の少なくとも一方は、必要なときにサービス提供システム１０に接続して利用する形態であっても良い。
【００２９】
通信Ｉ／Ｆ１７は、サービス提供システム１０をネットワークＮ１に接続するインタフェースである。これにより、サービス提供システム１０は、通信Ｉ／Ｆ１７を介してデータ通信を行うことができる。
【００３０】
ＨＤＤ１８は、プログラムやデータを格納している不揮発性の記憶装置である。ＨＤＤ１８に格納されるプログラムやデータには、サービス提供システム１０全体を制御する基本ソフトウェアであるＯＳ（Operating System）、ＯＳ上において各種機能を提供するアプリケーションソフトウェア等がある。
【００３１】
なお、サービス提供システム１０は、ＨＤＤ１８に代え、記憶媒体としてフラッシュメモリを用いるドライブ装置（例えばソリッドステートドライブ：ＳＳＤ）を利用するものであっても良い。また、ＨＤＤ１８は、格納しているプログラムやデータを所定のファイルシステムやＤＢにより管理している。
【００３２】
外部Ｉ／Ｆ１３は、外部装置とのインタフェースである。外部装置には、記録媒体１３ａ等がある。これにより、サービス提供システム１０は、外部Ｉ／Ｆ１３を介して記録媒体１３ａの読み取りや書き込みを行うことができる。記録媒体１３ａには、フレキシブルディスク、ＣＤ、ＤＶＤ、ＳＤメモリカード、ＵＳＢメモリ等がある。
【００３３】
ＲＯＭ１５は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。ＲＯＭ１５には、サービス提供システム１０の起動時に実行されるＢＩＯＳ（Basic Input/Output System）、ＯＳ設定、及びネットワーク設定等のプログラムやデータが格納されている。ＲＡＭ１４は、プログラムやデータを一時保持する揮発性の半導体メモリである。
【００３４】
ＣＰＵ１６は、ＲＯＭ１５やＨＤＤ１８等の記憶装置からプログラムやデータをＲＡＭ１４上に読み出し、処理を実行することで、サービス提供システム１０全体の制御や機能を実現する演算装置である。
【００３５】
本実施形態に係るサービス提供システム１０及びＰＣ端末３０は、図２に示すハードウェア構成を有することにより、後述するような各種処理を実現できる。
【００３６】
次に、本実施形態に係る情報処理システム１に含まれる画像形成装置２０のハードウェア構成について、図３を参照しながら説明する。図３は、第一の実施形態に係る画像形成装置の一例のハードウェア構成を示す図である。
【００３７】
画像形成装置２０は、コントローラ２１と、操作パネル２２と、外部Ｉ／Ｆ２３と、通信Ｉ／Ｆ２４と、プリンタ２５と、スキャナ２６とを有する。また、コントローラ２１は、ＣＰＵ３１と、ＲＡＭ３２と、ＲＯＭ３３と、ＮＶＲＡＭ３４と、ＨＤＤ３５とを有する。
【００３８】
ＲＯＭ３３は、各種プログラムやデータを格納している。ＲＡＭ３２は、プログラムやデータを一時保持する。ＮＶＲＡＭ３４は、例えば設定情報等を格納している。また、ＨＤＤ３５は、各種プログラムやデータを格納している。
【００３９】
ＣＰＵ３１は、ＲＯＭ３３やＮＶＲＡＭ３４、ＨＤＤ３５等からプログラムやデータ、設定情報等をＲＡＭ３２上に読み出し、処理を実行することで、画像形成装置２０全体の制御や機能を実現する。
【００４０】
操作パネル２２は、ユーザからの入力を受け付ける入力部と、表示を行う表示部とを備えている。外部Ｉ／Ｆ２３は、外部装置とのインタフェースである、外部装置には、記録媒体２３ａ等がある。これにより、画像形成装置２０は、外部Ｉ／Ｆ２３を介して記録媒体２３ａの読み取りや書き込みを行うことができる。なお、記録媒体２３ａには、例えば、ＩＣカード、フレキシブルディスク、ＣＤ、ＤＶＤ、ＳＤメモリカード、ＵＳＢメモリ等がある。
【００４１】
通信Ｉ／Ｆ２４は、画像形成装置２０をネットワークＮ１に接続するインタフェースである。これにより、画像形成装置２０は、通信Ｉ／Ｆ２４を介してデータ通信を行うことができる。プリンタ２５は、印刷データを印刷する印刷装置である。スキャナ２６は、原稿を読み取って画像ファイル（電子ファイル）を生成する読取装置である。
【００４２】
本実施形態に係る画像形成装置２０は、図３に示すハードウェア構成を有することにより、後述するような各種処理を実現できる。
【００４３】
＜機能構成＞
次に、本実施形態に係る情報処理システム１の機能構成について、図４を参照しながら説明する。図４は、第一の実施形態に係る情報処理システムの一例の機能構成を示す図である。
【００４４】
画像形成装置２０は、ＵＩ制御部２１０と、スキャン処理部２２０とを有する。これら各機能部は、画像形成装置２０にインストールされた１以上のプログラムが、ＣＰＵ３１に実行させる処理により実現される。
【００４５】
ＵＩ制御部２１０は、操作パネル２２に各種画面を表示させる。また、ＵＩ制御部２１０は、操作パネル２２に表示された各種画面におけるユーザの各種操作を受け付ける。
【００４６】
スキャン処理部２２０は、ＵＩ制御部２１０により受け付けられたユーザの操作に応じて、スキャナ２６で原稿をスキャンして電子ファイル（画像ファイル）を生成する。
【００４７】
ＰＣ端末３０は、ＵＩ制御部３１０を有する。当該機能部は、ＰＣ端末３０にインストールされた１以上のプログラムが、ＣＰＵ１６に実行させる処理により実現される。
【００４８】
ＵＩ制御部３１０は、表示装置１２に各種画面を表示させる。また、ＵＩ制御部２１０は、表示装置１２に表示された各種画面において、入力装置１１により入力されたユーザの各種操作を受け付ける。
【００４９】
サービス提供システム１０は、サービス処理部１１０と、ドキュメントサービス部１６０と、外部ストレージ連携部１７０とを有する。これら各機能部は、サービス提供システム１０にインストールされた１以上のプログラムが、ＣＰＵ１６に実行させる処理により実現される。
【００５０】
また、サービス提供システム１０は、アプリ情報記憶部１８０を有する。当該記憶部は、ＨＤＤ１８を用いて実現可能である。なお、アプリ情報記憶部１８０は、サービス提供システム１０とネットワークを介して接続される記憶装置等を用いて実現されても良い。
【００５１】
サービス処理部１１０は、画像形成装置２０のＵＩ制御部２１０からの要求に応じて、後述するアプリ情報１０００により提供される各種のサービスに関する処理を行う。また、サービス処理部１１０は、ＰＣ端末３０のＵＩ制御部３１０からの要求に応じて、アプリ情報１０００に含まれる処理フロー情報１２００の作成に関する処理を行う。
【００５２】
なお、処理フロー情報１２００とは、アプリ情報１０００により提供されるサービスを実現するための一連の処理（処理フロー）に関する情報である。
【００５３】
ここで、サービス処理部１１０は、アプリ管理部１２０と、ロジック処理部１３０と、フロー作成処理部１４０と、データＩ／Ｆ部１５０とを有する。
【００５４】
アプリ管理部１２０は、アプリ情報記憶部１８０に記憶されているアプリ情報１０００を管理する。アプリ管理部１２０は、画像形成装置２０のＵＩ制御部２１０やＰＣ端末３０のＵＩ制御部３１０からの要求に応じて、アプリ情報１０００に基づく各種の情報を返信する。
【００５５】
例えば、アプリ管理部１２０は、画像形成装置２０のＵＩ制御部２１０からの要求に応じて、アプリ情報１０００に含まれる画面定義情報１１００を返信する。なお、画面定義情報１１００とは、アプリ情報１０００により提供されるサービスを利用するための画面であるサービス画面を表示するための情報である。
【００５６】
また、アプリ管理部１２０は、ロジック処理部１３０からの要求に応じて、アプリ情報１０００に含まれる処理フロー情報１２００を返信する。処理フロー情報１２００は、上述したように、アプリ情報１０００により提供されるサービス（例えば、ＯＣＲ配信等）を実現する一連の処理に関する情報である。
【００５７】
さらに、アプリ管理部１２０は、フロー作成処理部１４０からの要求に応じて、ＰＣ端末３０において作成された処理フロー情報１２００をアプリ情報記憶部１８０に記憶させる。
【００５８】
ロジック処理部１３０は、画像形成装置２０のＵＩ制御部２１０からの要求に応じて、アプリ管理部１２０を介して、アプリ情報１０００に含まれる処理フロー情報１２００を取得する。そして、ロジック処理部１３０は、取得した処理フロー情報１２００に基づいて、ドキュメントサービス部１６０や外部ストレージ連携部１７０のファイル処理部１７１等に処理の実行を要求することで、当該処理フロー情報１２００に基づく一連の処理を実行する。
【００５９】
なお、ロジック処理部１３０は、後述するコンポーネントを組み合わせることにより、処理フロー情報１２００に基づく一連の処理を実行する。
【００６０】
これにより、本実施形態に係るサービス提供システム１０では、アプリ情報１０００により提供される各種のサービスが実現される。ロジック処理部１３０の詳細については後述する。
【００６１】
フロー作成処理部１４０は、ＰＣ端末３０のＵＩ制御部３１０からの要求に応じて、処理フロー作成画面情報を返信する。なお、処理フロー作成画面情報とは、処理フロー情報１２００を作成するための画面である処理フロー作成画面を表示するための情報である。
【００６２】
そして、フロー作成処理部１４０は、処理フロー作成画面において作成された処理フローを示す処理フロー情報１２００の登録をアプリ管理部１２０に要求する。
【００６３】
このように、本実施形態では、ＰＣ端末３０において作成された処理フローをサービス提供システム１０に登録することができる。
【００６４】
データＩ／Ｆ部１５０は、画像形成装置２０のＵＩ制御部２１０からの要求に応じて、外部ストレージ連携部１７０のデータ処理部１７２に対して、各種の要求（例えば、フォルダ一覧の取得要求等）を行う。
【００６５】
ドキュメントサービス部１６０は、各種処理を実行するプログラム（モジュール）群である。これらのプログラムは、ロジック処理部１３０からの要求に応じて、後述するコンポーネントにより実行される。
【００６６】
ドキュメントサービス部１６０には、例えば、電子ファイルに対してＯＣＲ処理を実行するＯＣＲ処理１６１、電子ファイルを画像形成装置２０が印刷可能な印刷データに変換する印刷変換処理１６２等が含まれる。
【００６７】
なお、ドキュメントサービス部１６０には、これら以外にも、例えば、電子ファイルの圧縮又は解凍するためのプログラム、言語の翻訳を行うためのプログラム、画像ファイルのサイズ変換を行うためのプログラム等の各種プログラムが含まれても良い。
【００６８】
外部ストレージ連携部１７０は、ロジック処理部１３０やデータＩ／Ｆ部１５０からの要求に応じて、外部ストレージシステム４０に対して、各種の要求（例えば、フォルダ一覧の取得要求等）を行う。
【００６９】
本実施形態に係るサービス提供システム１０は、当該サービス提供システム１０と連携して処理を行う外部ストレージシステム４０毎に、それぞれの外部ストレージシステム４０に対応する外部ストレージ連携部１７０を有する。すなわち、本実施形態に係るサービス提供システム１０は、外部ストレージシステム４０１に対して各種の要求を行うための外部ストレージＡ連携部１７０１を有する。同様に、本実施形態に係るサービス提供システム１０は、外部ストレージシステム４０２に対して各種の要求を行うための外部ストレージＢ連携部１７０２等を有する。
【００７０】
なお、以降では、複数の外部ストレージ連携部１７０について、各々を区別するときは、上記のように、「外部ストレージＡ連携部１７０１」、「外部ストレージＢ連携部１７０２」等と添え字を用いて表す。
【００７１】
ここで、外部ストレージ連携部１７０は、ロジック処理部１３０からの要求を受け付けるファイル処理部１７１と、データＩ／Ｆ部１５０からの要求を受け付けるデータ処理部１７２とを有する。
【００７２】
ファイル処理部１７１は、外部ストレージシステム４０に保存されている電子ファイルに対する操作（例えば、取得、保存、編集等）を行うためのＡＰＩ（Application Programming Interface）が定義された共通Ｉ／Ｆ１７１１及び固有Ｉ／Ｆ１７１２を有する。
【００７３】
共通Ｉ／Ｆ１７１１は、複数の外部ストレージシステム４０間で共通に利用できるＡＰＩであり、例えば図５（ａ）に示すＡＰＩが挙げられる。すなわち、ファイル処理部１７１の共通Ｉ／Ｆ１７１１は、全ての外部ストレージシステム４０が利用できるファイル操作に関する機能（例えば、ファイルの取得、保存等）を利用するためのＡＰＩ群である。
【００７４】
一方、固有Ｉ／Ｆ１７１２は、特定の外部ストレージシステム４０において利用できるＡＰＩであり、例えば図５（ｂ）に示すＡＰＩが挙げられる。すなわち、ファイル処理部１７１の固有Ｉ／Ｆ１７１２は、ある特定の外部ストレージシステム４０において利用できるファイル操作に関する機能（例えば、ドキュメントにファイルを付加等）を利用するためのＡＰＩ群である。
【００７５】
したがって、共通Ｉ／Ｆ１７１１は、全ての外部ストレージ連携部１７０に対して同様に定義される。一方で、固有Ｉ／Ｆ１７１２は、当該固有Ｉ／Ｆ１７１２で定義されるＡＰＩが利用可能な特定の外部ストレージシステム４０に対応する外部ストレージ連携部１７０に対して定義される。
【００７６】
データ処理部１７２は、外部ストレージシステム４０に保存されている電子ファイルの書誌情報等のメタデータ（例えば、ファイル一覧やフォルダ一覧等）を取得等するためのＡＰＩが定義された共通Ｉ／Ｆ１７２１及び固有Ｉ／Ｆ１７２２を有する。
【００７７】
共通Ｉ／Ｆ１７２１は、複数の外部ストレージシステム４０間で共通に利用できるＡＰＩであり、例えば図５（ｃ）に示すＡＰＩが挙げられる。すなわち、データ処理部１７２の共通Ｉ／Ｆ１７２１は、全ての外部ストレージシステム４０で利用できるメタデータ取得に関する機能（例えば、ファイル一覧の取得、フォルダ一覧の取得等）を利用するためのＡＰＩ群である。
【００７８】
一方、固有Ｉ／Ｆ１７２２は、ある特定の外部ストレージシステム４０において利用できるＡＰＩであり、例えば図５（ｄ）に示すＡＰＩが挙げられる。すなわち、データ処理部１７２の固有Ｉ／Ｆ１７２２は、ある特定の外部ストレージシステム４０において利用できるメタデータ取得等に関する機能（例えば、画像ファイル一覧の取得等）を利用するためのＡＰＩ群である。
【００７９】
したがって、共通Ｉ／Ｆ１７２１は、全ての外部ストレージ連携部１７０に対して同様に定義される。一方で、固有Ｉ／Ｆ１７２２は、当該固有Ｉ／Ｆ１７２２で定義されるＡＰＩが利用可能な特定の外部ストレージシステム４０に対応する外部ストレージ連携部１７０に対して定義される。
【００８０】
以上のように、本実施形態に係るサービス提供システム１０は、当該サービス提供システム１０と連携して処理を行う外部ストレージシステム４０毎に、それぞれの外部ストレージシステム４０に対応する外部ストレージ連携部１７０を有する。このため、連携先となる外部ストレージシステム４０を追加や削除（以降、「追加等」と表す。）する場合、当該追加等される外部ストレージシステム４０に対応する外部ストレージ連携部１７０をサービス提供システム１０に追加等すれば良い。
【００８１】
これにより、本実施形態に係るサービス提供システム１０では、連携先となる外部ストレージシステム４０の追加等に伴う影響を局所化することができる。換言すれば、本実施形態に係るサービス提供システム１０では、他の機能部（サービス処理部１１０やドキュメントサービス部１６０等）に影響を与えることなく、連携先となる外部ストレージシステム４０の追加等を行うことができる。なお、外部ストレージ連携部１７０の追加等は、ＳＤＫ（Software Development Kit）を用いて行うことができる。
【００８２】
また、外部ストレージ連携部１７０のファイル処理部１７１は、共通Ｉ／Ｆ１７１１と固有Ｉ／Ｆ１７１２とを異なるモジュール等で定義している。また、共通Ｉ／Ｆ１７１１及び固有Ｉ／Ｆ１７１２で定義されるＡＰＩは、「外部ストレージ名」を指定することで利用できる（すなわち、「外部ストレージ名」が可変部分となっている。）。
【００８３】
これにより、外部ストレージ連携部１７０を追加する場合、他の外部ストレージ連携部１７０のファイル処理部１７１に定義されている共通Ｉ／Ｆ１７１１を再利用することができる。換言すれば、外部ストレージ連携部１７０を追加する場合、当該追加する外部ストレージ連携部１７０のファイル処理部１７１は、固有Ｉ／Ｆ１７２２のみを開発すれば良い。このことは、データ処理部１７２の共通Ｉ／Ｆ１７２１及び固有Ｉ／Ｆ１７２２についても同様である。
【００８４】
アプリ情報記憶部１８０は、画像形成装置２０に各種のサービスを提供するためのアプリケーションであるアプリ情報１０００を記憶する。アプリ情報１０００には、画像形成装置２０にサービス画面を表示させるための画面定義情報１１００と、サービスを実現するための一連の処理（処理フロー）に関する情報である処理フロー情報１２００とが含まれる。
【００８５】
アプリ情報１０００には、当該アプリ情報１０００を一意に識別するためのアプリＩＤと、当該アプリ情報１０００のアプリ名とが関連付けられている。本実施形態では、画像形成装置２０のスキャン機能を利用するアプリ情報１０００を「アプリ情報１０００Ａ」と表し、アプリＩＤを「app001」、アプリ名を「スキャンアプリ」とする。また、アプリ情報１０００Ａには、画面定義情報１１００Ａと、処理フロー情報１２００Ａとが含まれるものとする。処理フロー情報１２００Ａの詳細については後述する。
【００８６】
なお、アプリ情報記憶部１８０には、これ以外にも、画像形成装置２０のプリント機能を利用するアプリ情報１０００Ｂ（アプリＩＤ「app002」、アプリ名「プリントアプリ」）が含まれる。また、アプリ情報１０００には、複数の画面定義情報１１００と、複数の処理フロー情報１２００とが含まれていても良い。
【００８７】
ここで、ロジック処理部１３０の詳細な機能構成について、図６を参照しながら説明する。図６は、第一の実施形態に係るロジック処理部の一例の機能構成を示す図である。
【００８８】
ロジック処理部１３０は、フロー実行部１３１と、コンポーネント管理部１３２と、コンポーネント群１３３と、型変換管理部１３４と、型変換群１３５とを有する。また、ロジック処理部１３０は、コンポーネント情報テーブル２０００と、型変換情報テーブル３０００とを利用する。
【００８９】
フロー実行部１３１は、画像形成装置２０のＵＩ制御部２１０からの要求に応じて、アプリ管理部１２０を介して、アプリ情報１０００に含まれる処理フロー情報１２００を取得する。そして、フロー実行部１３１は、取得した処理フロー情報１２００に基づいてコンポーネントに対して処理の実行を要求する。
【００９０】
ここで、コンポーネントとは、処理フロー情報１２００に基づく一連の処理（処理フロー）に含まれる一の処理を実行するためのモジュール等である。したがって、処理フロー情報１２００に基づく一連の処理は、１以上のコンポーネントにより実行される処理が組み合わされることで実現される。なお、コンポーネントは、例えばクラスや関数等で定義される。
【００９１】
コンポーネント管理部１３２は、フロー実行部１３１からの要求に応じて、コンポーネントの生成を行う。コンポーネントの生成とは、例えばクラスや関数等で定義されているコンポーネントを、メモリ（例えばＲＡＭ１４）上に展開することである。
【００９２】
また、コンポーネント管理部１３２は、ＵＩ制御部３１０からの要求に応じて、コンポーネント情報テーブル２０００に格納されているコンポーネント情報を返信する。
【００９３】
ここで、コンポーネント情報テーブル２０００の詳細について、図７を参照しながら説明する。図７は、コンポーネント情報テーブルの一例を示す図である。
【００９４】
図７に示すコンポーネント情報テーブル２０００に格納されているコンポーネント情報は、データ項目として、コンポーネント名と、コンポーネントＩＤと、オペレーション名と、オペレーションＩＤと、パラメータとを有する。
【００９５】
コンポーネント名は、コンポーネントの名称である。コンポーネントＩＤは、コンポーネントを一意に識別するための識別情報である。オペレーション名は、コンポーネントにより実行される処理を示すオペレーションの名称である、オペレーションＩＤは、オペレーションを識別する情報である。パラメータは、コンポーネントにより実行される処理に設定される各種情報である。
【００９６】
例えば、コンポーネント名「外部ストレージＡコンポーネント」（コンポーネントＩＤ「storageA」）は、オペレーション名「配信」（オペレーションＩＤ「uploadFile」）及び「取得」（オペレーションＩＤ「getFiles」）を有する。これは、外部ストレージＡコンポーネントは、外部ストレージＡに電子ファイルを配信（アップロード）するための配信オペレーションと、外部ストレージＡから電子ファイルを取得（ダウンロード）するための取得オペレーションとを有していることを示している。
【００９７】
また、配信オペレーションには、外部ストレージＡにおける配信先のフォルダＩＤを示す「folderID」をパラメータとして指定されることを示している。さらに、取得オペレーションには、外部ストレージＡにおける取得対象のファイルＩＤを示す「fileID」をパラメータとして指定されることを示している。
【００９８】
同様に、例えば、コンポーネント名「ＯＣＲコンポーネント」（コンポーネントＩＤ「ocr」）は、オペレーション名「ＯＣＲ」（オペレーションＩＤ「process」）を有する。これは、ＯＣＲコンポーネントは、電子ファイルにＯＣＲ処理を行うためのＯＣＲオペレーションを有していることを示している。
【００９９】
また、ＯＣＲオペレーションには、ＯＣＲ処理の対象となる言語を示す「language」と、ＯＣＲ処理後の電子ファイルのデータ形式を示す「outputType」とをパラメータとして指定されることを示している。
【０１００】
このように、各コンポーネントには、１以上のオペレーションが含まれる。そして、コンポーネントは、オペレーションと、当該オペレーションに対するパラメータとが指定されることで、指定されたオペレーションにより示される処理を実行することができる。
【０１０１】
コンポーネント群１３３は、コンポーネントの集合である。コンポーネント群１３３には、外部ストレージシステム４０１（外部ストレージＡ）と連携して処理を行うための外部ストレージＡコンポーネント１３３１が含まれる。また、コンポーネント群１３３には、外部ストレージシステム４０２（外部ストレージＢ）と連携して処理を行うための外部ストレージＢコンポーネント１３３２が含まれる。
【０１０２】
さらに、コンポーネント群１３３は、電子ファイルにＯＣＲ処理を行うためのＯＣＲコンポーネント１３３３や電子ファイルを印刷データに変換するための印刷変換コンポーネント１３３４が含まれる。
【０１０３】
なお、コンポーネント群１３３には、これら以外にも、例えば、画像ファイルのサイズを変換するためのサイズ変換コンポーネントや言語の翻訳を行うための翻訳コンポーネント等が含まれても良い。
【０１０４】
ここで、各コンポーネントは、コンポーネント共通Ｉ／Ｆ１３３０を有する。コンポーネント共通Ｉ／Ｆ１３３０は、各コンポーネントに対して共通に定義されたＡＰＩであり、コンポーネントを生成するためのＡＰＩと、コンポーネントに対して処理の実行を要求するためのＡＰＩとが含まれる。
【０１０５】
各コンポーネントがコンポーネント共通Ｉ／Ｆ１３３０を有することで、コンポーネントの追加等に伴う影響を局所化することができる。すなわち、本実施形態に係るサービス提供システム１０では、例えば、フロー実行部１３１やコンポーネント管理部１３２等に影響を与えることなく、コンポーネントの追加等を行うことができる。
【０１０６】
型変換管理部１３４は、データ型の型変換を管理する。ここで、各コンポーネントは、自身が扱えるデータ型が予め決まっている。したがって、型変換管理部１３４は、コンポーネントからの要求に応じて、型変換情報テーブル３０００を参照して、型変換群１３５に定義されている型変換を生成する。そして、型変換管理部１３４は、生成された型変換に対して型変換処理の実行を要求する。これにより、型変換管理部１３４は、要求元のコンポーネントが扱えるデータ型に型変換を行う。
【０１０７】
ここで、型変換情報テーブル３０００の詳細について、図８を参照しながら説明する。図８は、型変換情報テーブルの一例を示す図である。
【０１０８】
図８に示す型変換情報テーブル３０００に格納されている型変換情報は、データ項目として、変換前のデータ型と、変換後のデータ型と、生成する型変換とを有する。すなわち、型変換情報は、変換前のデータ型及び変換後のデータ型毎に、当該変換前のデータ型を当該変換後のデータ型に型変換するための型変換が関連付けられた情報である。
【０１０９】
これにより、例えば、ストリームデータを示すデータ型「InputStream」のデータを、記憶装置等に格納されている電子ファイルのパス（アドレス）を示すデータ型「LocalFilePath」に型変換する場合、第１の型変換を生成すれば良い。
【０１１０】
なお、型変換の生成とは、例えばクラスで定義された型変換を、メモリ（例えばＲＡＭ１４）上に展開することである。また、データ型には、上述した「InputStream」や「LocalFilePath」以外に、例えば、電子ファイルの実体を示すデータ型「File」等が挙げられる。
【０１１１】
型変換群１３５は、型変換の集合である。型変換群１３５には、データ型「InputStream」のデータを、データ型「LocalFilePath」のデータに変換する第１の型変換１３５１が含まれる。また、型変換群１３５には、データ型「LocalFilePath」のデータを、データ型「File」のデータに変換する第２の型変換１３５２等が含まれる。
【０１１２】
ここで、各型変換は、型変換共通Ｉ／Ｆ１３５０を有する。型変換共通Ｉ／Ｆ１３５０は、各型変換に対して共通に定義されたＡＰＩであり、型変換を生成するためのＡＰＩと、型変換に対して処理の実行を要求するためのＡＰＩとが含まれる。
【０１１３】
各型変換が型変換共通Ｉ／Ｆ１３５０を有することで、型変換の追加等に伴う影響を局所化することができる。すなわち、本実施形態に係るサービス提供システム１０では、例えば、型変換管理部１３４等に影響を与えることなく、型変換の追加等を行うことができる。
【０１１４】
ここで、アプリ情報１０００に含まれる処理フロー情報１２００の詳細について説明する。以降では、アプリ情報１０００Ａに含まれる処理フロー情報１２００Ａの一例について、図９を参照しながら説明する。図９は、処理フロー情報の一例を示す図である。
【０１１５】
図９に示す処理フロー情報１２００Ａは、画像形成装置２０でスキャンして生成された電子ファイルを、ＯＣＲ処理して、外部ストレージＡに保存するサービス（ＯＣＲ配信）を実現するための一連の処理に関する情報である。
【０１１６】
処理フロー情報１２００Ａには、当該処理フロー情報１２００Ａの識別情報を示すフローＩＤ１２０１Ａと、当該処理フロー情報１２００Ａの名称を示すフロー名１２０２Ａと、一連の処理の処理内容を示すフロー詳細１２０３Ａとが含まれる。
【０１１７】
また、フロー詳細１２０３Ａには、ＯＣＲ処理を示す処理内容１２１３Ａと、外部ストレージＡに配信（アップロード）することを示す処理内容１２２３Ａとが含まれる。
【０１１８】
ここで、処理内容１２１３Ａには、ＯＣＲ処理を実行するコンポーネントのコンポーネントＩＤ「ocr」、オペレーションＩＤ「process」、及びパラメータ「language」、「outputType」が指定されている。同様に、処理内容１２２３Ａでは、外部ストレージＡと連携した処理を実行するコンポーネントのコンポーネントＩＤ「storageA」、配信処理を示すオペレーションＩＤ「uploadFile」、及びパラメータ「folderID」が指定されている。
【０１１９】
これにより、処理フロー情報１２００に基づく一連の処理では、電子ファイルをＯＣＲ処理した後、当該ＯＣＲ処理後の電子ファイルを外部ストレージＡに保存することができる。このように、本実施形態に係るサービス提供システム１０では、コンポーネントＩＤ、オペレーションＩＤ、及びパラメータを指定した処理内容を含む処理フロー情報１２００により一連の処理が実現される。
【０１２０】
＜処理の詳細＞
次に、本実施形態に係る情報処理システム１の処理の詳細について説明する。
【０１２１】
まず、ユーザＵがＰＣ端末３０を用いて処理フローを作成し、当該作成した処理フローの処理フロー情報１２００をサービス提供システム１０に登録する場合の処理について、図１０を参照しながら説明する。図１０は、第一の実施形態に係る処理フローの登録処理の一例を示すシーケンス図である。
【０１２２】
ユーザＵは、ＰＣ端末３０を用いて、処理フローの作成開始操作を行う（ステップＳ１００１）。例えば、ユーザＵは、ＰＣ端末３０を用いて、サービス提供システム１０にログインした後、当該ログイン後に表示されるポータル画面等において、「処理フロー作成」ボタン等を選択することにより、処理フローの作成開始操作を行うことができる。
【０１２３】
ＰＣ端末３０のＵＩ制御部３１０は、処理フローの作成開始操作を受け付けると、サービス提供システム１０のフロー作成処理部１４０に対して、アプリ一覧画面の取得要求を送信する（ステップＳ１００２）。そして、フロー作成処理部１４０は、当該取得要求を受け取ると、アプリ一覧画面情報を返信する。
【０１２４】
なお、アプリ一覧画面情報とは、サービスを提供するためのアプリケーション（アプリ情報１０００）の一覧を表示するための情報であり、例えばＨＴＭＬ（HyperText Markup Language）等のデータ形式により表される。
【０１２５】
ＰＣ端末３０のＵＩ制御部３１０は、アプリ一覧画面情報を受け取ると、サービス提供システム１０のアプリ管理部１２０に対して、アプリ一覧情報の取得要求を送信する（ステップＳ１００３）。そして、アプリ管理部１２０は、当該取得要求を受け取ると、アプリ情報記憶部１８０に記憶されているアプリ情報１０００のアプリＩＤ及びアプリ名を取得して、アプリ一覧情報として返信する。
【０１２６】
ＰＣ端末３０のＵＩ制御部３１０は、アプリ一覧情報を受け取ると、当該アプリ一覧情報をアプリ一覧画面情報に反映させて、例えば図１１（ａ）に示すアプリ一覧画面４０００を表示装置１２に表示させる（ステップＳ１００４）。図１１（ａ）に示すアプリ一覧画面４０００には、アプリ一覧情報に基づいてアプリ名の一覧が表示されるアプリ名一覧４００１が含まれる。
【０１２７】
次に、ユーザＵは、アプリ一覧画面４０００のアプリ名一覧４００１から、処理フローを作成するアプリケーションを選択する操作を行う（ステップＳ１００５）。ここで、以降では、アプリ一覧画面４０００のアプリ名一覧４００１から「スキャンアプリ」がユーザＵにより選択されたものとして説明する。
【０１２８】
ＰＣ端末３０のＵＩ制御部３１０は、アプリケーションの選択操作を受け付けると、サービス提供システム１０のフロー作成処理部１４０に対して、処理フロー作成画面の取得要求を送信する（ステップＳ１００６）。なお、当該取得要求には、ユーザＵにより選択されたアプリケーションを識別するための情報（例えば、アプリ名一覧４００１に含まれる各表示部品を識別する情報等）が含まれる。ただし、当該取得要求には、ユーザＵにより選択されたアプリケーション（アプリ情報１０００）のアプリＩＤが含まれても良い。
【０１２９】
そして、フロー作成処理部１４０は、処理フロー作成画面の取得要求を受け取ると、処理フロー作成画面情報を返信する。なお、処理フロー作成画面情報とは、選択されたアプリケーションの処理フロー作成画面を表示するための情報であり、例えばＨＴＭＬ等のデータ形式により表される。
【０１３０】
ＰＣ端末３０のＵＩ制御部３１０は、処理フロー作成画面情報を受け取ると、サービス提供システム１０のコンポーネント管理部１３２に対して、コンポーネント情報の取得要求を送信する（ステップＳ１００７）。そして、コンポーネント管理部１３２は、当該取得要求を受け取ると、コンポーネント情報テーブル２０００に格納されているコンポーネント情報を返信する。
【０１３１】
ＰＣ端末３０のＵＩ制御部３１０は、コンポーネント情報を受け取ると、当該コンポーネント情報を処理フロー作成画面情報に反映させて、例えば図１１（ｂ）に示す処理フロー作成画面４１００を表示装置１２に表示させる（ステップＳ１００８）。すなわち、アプリ一覧画面４０００において、ユーザＵにより「スキャンアプリ」が選択されると、ＵＩ制御部３１０は、処理フロー作成画面４１００に画面遷移させる。
【０１３２】
図１１（ｂ）に示す処理フロー作成画面４１００は、スキャンアプリの処理フローを作成するための画面であり、コンポーネント情報に基づいてコンポーネント名の一覧が表示されるコンポーネント一覧４１０１が含まれる。また、処理フロー作成画面４１００には、処理フローをグラフィカルに作成するための作成領域４１０２と、処理フローのフロー名を指定するフロー名入力欄４１０３と、作成された処理フローを登録するための登録ボタン４１０４とが含まれる。
【０１３３】
ユーザＵは、図１１（ｂ）に示す処理フロー作成画面４１００において、スキャンアプリの処理フローを作成することができる。
【０１３４】
次に、ユーザＵは、処理フロー作成画面４１００において、スキャンアプリの処理フローを作成する操作を行う（ステップＳ１００９）。
【０１３５】
ここで、一例として、スキャンアプリの処理フロー作成画面４１００において、ユーザＵにより処理フロー情報１２００Ａを示す処理フローが作成される場合について、図１２及び図１３を参照しながら説明する。図１２及び図１３は、処理フロー作成の一例を示す図である。
【０１３６】
まず、図１２（ａ）に示す処理フロー作成画面４２００において、コンポーネント一覧４２０１から「外部ストレージＡコンポーネント」をユーザＵが選択すると、外部ストレージＡコンポーネントのオペレーション一覧４２０３が表示される。このように、コンポーネント一覧４２０１からコンポーネントが選択されると、選択されたコンポーネントのオペレーション一覧が表示される。
【０１３７】
次に、オペレーション一覧４２０３から「配信」をユーザＵが選択し、作成領域４２０２内の所望の位置を選択すると、アイコンＰ１１が表示される。ここで、アイコンＰ１１は、コンポーネント名「外部ストレージＡコンポーネント」のオペレーション名「配信」により示される処理を表している。
【０１３８】
このように、ユーザＵは、コンポーネントとオペレーションとを選択した上で、作成領域４２０２内の所望の位置を選択すると、選択されたコンポーネント及びオペレーションにより示される処理を表すアイコンが表示される。
【０１３９】
次に、上記と同様に、図１２（ｂ）に示す処理フロー作成画面４３００において、コンポーネント一覧４３０１から「ＯＣＲコンポーネント」をユーザＵが選択すると、ＯＣＲコンポーネントのオペレーション一覧４３０３が表示される。
【０１４０】
次に、オペレーション一覧４３０３から「ＯＣＲ」をユーザＵが選択し、作成領域４３０２内の所望の位置を選択すると、アイコンＰ１２が表示される。ここで、アイコンＰ１２は、コンポーネント名「ＯＣＲコンポーネント」のオペレーション名「ＯＣＲ」により示される処理を表している。
【０１４１】
続いて、図１２（ｂ）に示す処理フロー作成画面４３００の作成領域４３０２において、ユーザＵが、アイコンＰ１２とアイコンＰ１１との先後関係を指定する操作を行うことで、矢印Ｐ１３が表示される。これにより、ユーザＵにより、アイコンＰ１２が示す処理の次にアイコンＰ１１が示す処理を行うことが指定される。
【０１４２】
次に、図１３（ａ）に示す処理フロー作成画面４４００において、例えば、ユーザＵがアイコンＰ１２を選択すると、ウインドウＰ１４が表示される。ウインドウＰ１４は、ＯＣＲコンポーネントのオペレーション「ＯＣＲ」のパラメータＰ１４１及びパラメータＰ１４２を設定するための設定画面である。ここで、ユーザＵは、例えば、パラメータＰ１４１及びパラメータＰ１４２を、それぞれ「English」及び「pdf」に設定したものとする。
【０１４３】
なお、ユーザＵは、例えば、アイコンＰ１１を選択して、外部ストレージＡコンポーネントのオペレーション「配信」のパラメータを設定するための設定画面を表示させ、当該パラメータを設定しても良い。
【０１４４】
そして、図１３（ｂ）に示す処理フロー作成画面４５００において、ユーザＵは、フロー名入力欄４５０１に、作成された処理フローＦ１１のフロー名を入力し、登録ボタン４５０２を押下する。これにより、ユーザＵにより作成された処理フローＦ１１を示す処理フロー情報１２００Ａが作成される。なお、処理フローＦ１１のフローＩＤは、例えば、アプリ情報１０００Ａにおいて一意となるように生成されれば良い。
【０１４５】
なお、上記では、コンポーネント一覧からコンポーネント名及びオペレーション名をユーザＵが選択した上で、作成領域の所望の位置を選択することで、当該コンポーネント及びオペレーションを示すアイコンが表示されたが、これに限られない。例えば、コンポーネント一覧からコンポーネント名及びオペレーション名を、作成領域にドラックアンドドロップすることで、当該コンポーネント及びオペレーションを示すアイコンが表示されても良い。
【０１４６】
図１０に戻る。ＰＣ端末３０のＵＩ制御部３１０は、ユーザＵにより処理フローが作成されると、サービス提供システム１０のフロー作成処理部１４０に対して、処理フローの登録要求を送信する（ステップＳ１０１０）。なお、当該登録要求には、ユーザＵにより作成された処理フローＦ１１の作成情報（例えば、作成領域に作成されたコンポーネント及びオペレーションを示すアイコンの識別情報や当該アイコン同士の関連を示す関連情報等）が含まれる。また、当該登録要求には、スキャンアプリを識別するための情報（例えば、処理フロー作成画面４５００を識別する情報等）が含まれる。
【０１４７】
ただし、ＵＩ制御部３１０は、ユーザＵにより作成された処理フローＦ１１を示す処理フロー情報１２００Ａを作成し、当該登録要求に含めて、サービス提供システム１０に送信しても良い。また、ＵＩ制御部３１０は、当該登録要求にスキャンアプリのアプリＩＤ「app001」を含めても良い。
【０１４８】
サービス提供システム１０のフロー作成処理部１４０は、処理フローの登録要求を受け取ると、当該登録要求に含まれる処理フローＦ１１の作成情報に基づいて、当該処理フローＦ１１を示す処理フロー情報１２００Ａを作成する。また、フロー作成処理部１４０は、当該登録要求に含まれるスキャンアプリを識別するための情報から当該スキャンアプリのアプリ情報１０００ＡのアプリＩＤ「app001」を特定する。
【０１４９】
そして、フロー作成処理部１４０は、処理フロー情報１２００Ａと、アプリＩＤ「app001」とを含む処理フローの登録要求をアプリ管理部１２０に送信する（ステップＳ１０１１）。なお、フロー作成処理部１４０は、処理フロー作成画面情報に基づいて、スキャンアプリを識別するための情報からアプリＩＤ「app001」を特定すれば良い。
【０１５０】
アプリ管理部１２０は、処理フローの登録要求を受け取ると、当該登録要求に含まれる処理フロー情報１２００Ａを、アプリＩＤ「app001」と関連付けてアプリ情報記憶部１８０に記憶させる。これにより、処理フロー情報１２００Ａがサービス提供システム１０に登録される。
【０１５１】
そして、アプリ管理部１２０は、処理フロー情報１２００Ａが登録されたことを示す登録結果を、フロー作成処理部１４０を介してＵＩ制御部３１０に返信する。
【０１５２】
以上により、本実施形態に係る情報処理システム１では、ユーザにより作成された処理フローを示す処理フロー情報１２００をサービス提供システム１０に登録することができる。
【０１５３】
しかも、本実施形態に係る情報処理システム１では、コンポーネント一覧から所望のコンポーネント及びオペレーションを選択した上で、先後関係を指定することで、処理フローを作成することができる。したがって、ユーザは、容易に処理フローを作成することができるようになる。
【０１５４】
ここで、処理フロー情報１２００は、例えば、ＪＳＯＮ（JavaScript Object Notation）やＸＭＬ（Extensible Markup Language）、ＤＳＬ（Domain-Specific Language）等により記述される。したがって、本実施形態に係る情報処理システム１によれば、これらＪＳＯＮやＸＭＬ、ＤＳＬ等の仕様や形式を理解していないユーザでも容易に処理フローを作成することができるようになる。
【０１５５】
ここで、上記では、先後関係が１つである処理フローを作成する場合について説明したが、これに限られず、処理フローの先後関係は複数であっても良い。
【０１５６】
例えば、図１４（ａ）に示す処理フロー作成画面５１００では、後続の処理が複数である処理フローＦ１２が作成領域５１０１に作成された場合を示している。処理フローＦ１２では、アイコンＰ２３の後続の処理としてアイコンＰ２１及びアイコンＰ２２が作成されている。このような処理フローＦ１２によれば、例えば、画像形成装置２０でスキャンして生成された電子ファイルを、ＯＣＲ処理した後、外部ストレージＡと外部ストレージＢに配信（アップロード）することができる。
【０１５７】
また、例えば、図１４（ｂ）に示す処理フロー作成画面５２００では、先行の処理が複数である処理フローＦ１３が作成領域５２０１に作成された場合を示している。処理フローＦ１３では、アイコンＰ３１の先行の処理としてアイコンＰ３２及びアイコンＰ３３が作成されている。このような処理フローＦ１３によれば、例えば、画像形成装置２０でスキャンして生成された電子ファイルをＯＣＲ処理した電子ファイルと、当該スキャンして生成された電子ファイルを印刷データに変換した電子ファイルとを外部ストレージＡに配信することができる。
【０１５８】
次に、ユーザＵが画像形成装置２０を用いて、サービス提供システム１０のアプリケーション（アプリ情報１０００）により提供されるサービスを利用する場合の処理について、図１５を参照しながら説明する。図１５は、第一の実施形態に係るサービス利用の全体処理の一例を示すシーケンス図である。
【０１５９】
ユーザＵは、画像形成装置２０を用いて、アプリ情報１０００により提供されるサービスの一覧を表示させるための表示操作を行う（ステップＳ１５０１）。
【０１６０】
画像形成装置２０のＵＩ制御部２１０は、サービスの一覧を表示させるための表示操作を受け付けると、サービス提供システム１０のアプリ管理部１２０に対して、サービス一覧の取得要求を送信する（ステップＳ１５０２）。そして、アプリ管理部１２０は、当該取得要求を受け取ると、サービス一覧画面情報を返信する。
【０１６１】
なお、サービス一覧画面情報とは、アプリ情報１０００により提供されるサービスの一覧を表示するための情報であり、例えばＨＴＭＬ等のデータ形式により表される。また、サービス一覧画面情報には、アプリ情報１０００のアプリＩＤと、当該アプリ情報１０００に含まれる処理フロー情報１２００のフローＩＤ及びフロー名とが含まれる。
【０１６２】
画像形成装置２０のＵＩ制御部２１０は、サービス一覧画面情報を受け取ると、当該サービス一覧画面情報に基づいて、例えば図１６（ａ）に示すサービス一覧画面６１００を操作パネル２２に表示させる（ステップＳ１５０３）。図１６（ａ）に示すサービス一覧画面６１００には、サービス一覧画面情報に含まれるフローＩＤ及びフロー名に基づいてサービス名の一覧が表示されるサービス名一覧６１０１が含まれる。
【０１６３】
なお、図１６（ａ）に示すサービス一覧画面６１００では、アプリ情報１０００に含まれる処理フロー情報１２００のフロー名をサービス名としたが、これに限られず、任意のサービス名が表示されても良い。
【０１６４】
次に、ユーザＵは、サービス一覧画面６１００のサービス名一覧６１０１から、所望のサービスを選択する操作を行う（ステップＳ１５０４）。ここで、以降では、サービス一覧画面６１００のサービス名一覧６１０１から「ＯＣＲ配信１」がユーザＵにより選択されたものとして説明する。
【０１６５】
画像形成装置２０のＵＩ制御部２１０は、サービスの選択操作を受け付けると、サービス提供システム１０のアプリ管理部１２０に対して、サービス画面の取得要求を送信する（ステップＳ１５０５）。なお、当該取得要求には、ユーザＵにより選択されたサービスを提供するアプリ情報１０００ＡのアプリＩＤ「app001」と、当該サービスを実現する処理フロー情報１２００ＡのフローＩＤ「flow001」とが含まれる。
【０１６６】
そして、アプリ管理部１２０は、サービス画面の取得要求を受け取ると、当該取得要求に含まれるアプリＩＤ「app001」とフローＩＤ「flow001」に対応する画面定義情報１１００Ａを取得し、当該取得した画面定義情報１１００Ａを返信する。
【０１６７】
画像形成装置２０のＵＩ制御部２１０は、画面定義情報１１００Ａを受け取ると、サービス提供システム１０のデータＩ／Ｆ部１５０に対して、サービス画面の表示用情報の取得要求を送信する（ステップＳ１５０６）。
【０１６８】
なお、表示用情報とは、サービス画面における選択欄の各選択要素等のことであり、例えば、外部ストレージにおける保存先のフォルダの候補となるフォルダ一覧（フォルダ名及びフォルダＩＤの一覧）等である。以降では、表示用情報の取得要求は、外部ストレージＡにおける保存先のフォルダの候補を示すフォルダ一覧の取得要求であるものとして説明する。
【０１６９】
ここで、フォルダ一覧の取得要求は、図５（ｃ）に示すＡＰＩ「/外部ストレージ名/data/folders」を用いて行うことができる。すなわち、ＵＩ制御部２１０は、データＩ／Ｆ部１５０に対して、例えば、「/storage-a/data/folders」としてＨＴＴＰ（Hypertext Transfer Protocol）リクエストを送信することで、外部ストレージＡのフォルダ一覧の取得を要求することができる。
【０１７０】
サービス提供システム１０のデータＩ／Ｆ部１５０は、表示用情報の取得要求を受け取ると、当該取得要求を対応する外部ストレージ連携部１７０のデータ処理部１７２に転送する（ステップＳ１５０７）。すなわち、データＩ／Ｆ部１５０は、受け取った表示用情報の取得要求を外部ストレージＡ連携部１７０１のデータ処理部１７２１に転送する。
【０１７１】
外部ストレージＡ連携部１７０１のデータ処理部１７２１は、表示用情報の取得要求を受け取ると、外部ストレージＡに対してフォルダ一覧の取得要求を送信して、フォルダ一覧を示すフォルダ一覧情報を取得する（ステップＳ１５０８）。すなわち、データ処理部１７２１は、共通Ｉ／Ｆ１７２１１に定義されているＡＰＩを用いて、外部ストレージＡからフォルダ一覧情報を取得する。
【０１７２】
そして、データ処理部１７２１は、データＩ／Ｆ部１５０を介して、フォルダ一覧情報をＵＩ制御部２１０に返信する。
【０１７３】
画像形成装置２０のＵＩ制御部２１０は、フォルダ一覧情報を受け取ると、当該フォルダ一覧情報を画面定義情報１１００Ａに反映させて、例えば図１６（ｂ）に示すサービス画面６２００を操作パネル２２に表示させる（ステップＳ１５０９）。
【０１７４】
図１６（ｂ）に示すサービス画面６２００は、ユーザＵにより選択されたサービス名「ＯＣＲ配信１」のサービスを利用するための画面であり、ファイル名入力欄６２０１と、保存先フォルダ選択欄６２０２と、スキャン実行ボタン６２０５とを有する。
【０１７５】
また、サービス画面６２００には、サービス名「ＯＣＲ配信１」に対応する処理フロー情報１２００Ａに基づき、予め設定されたパラメータがＯＣＲ言語６２０３及びデータ形式６２０４に表示されている。
【０１７６】
なお、サービス画面６２００において、保存先フォルダ選択欄６２０２の各選択要素は、上記のステップＳ１５０７で外部ストレージＡから取得されたフォルダ一覧情報に基づいて設定される。
【０１７７】
次に、ユーザＵは、サービス画面６２００において、ファイル名入力欄６２０１を所望のファイル名を入力するとともに、保存先フォルダ選択欄６２０２から所望の保存先フォルダを選択する。そして、画像形成装置２０のスキャナ２６に原稿をセットした上で、スキャン実行ボタン６２０５を押下する（ステップＳ１５１０）。ここで、以降では、ユーザＵにより、ファイル名入力欄６２０１にファイル名「test」が入力されるとともに、保存先フォルダ選択欄６２０２から「FolderB」が選択された上で、スキャン実行ボタン６２０５が押下されたものとして説明する。
【０１７８】
画像形成装置２０のＵＩ制御部２１０は、スキャン実行ボタン６２０５の押下を受け付けると、スキャン処理部２２０に対して、スキャンの実行要求を送信する（ステップＳ１５１１）。
【０１７９】
画像形成装置２０のスキャン処理部２２０は、スキャンの実行要求を受け取ると、スキャナ２６を制御して、セットされた原稿を読み取って、ファイル名「test」の電子ファイルを作成する（ステップＳ１５１２）。そして、スキャン処理部２２０は、スキャンが終了したことを示すスキャン結果を返信する。
【０１８０】
画像形成装置２０のＵＩ制御部２１０は、スキャン結果を受け取ると、サービス提供システム１０のロジック処理部１３０に対して、サービス名「ＯＣＲ配信１」を実現する処理フローの実行要求を送信する（ステップＳ１５１３）。なお、当該実行要求には、アプリ情報１０００ＡのアプリＩＤ「app001」と、処理フロー情報１２００ＡのフローＩＤ「flow001」と、ファイル名「test」の電子ファイルと、ユーザＵにより選択された保存先フォルダ「FolderB」を示すフォルダＩＤとが含まれる。
【０１８１】
サービス提供システム１０のロジック処理部１３０は、受け取った処理フローの実行要求に含まれるアプリＩＤ及びフローＩＤに対応する処理フロー情報１２００Ａを取得して、当該処理フロー情報１２００Ａに基づく一連の処理を実行する（ステップＳ１５１４）。そして、ロジック処理部１３０は、当該一連の処理の処理結果を返信する。
【０１８２】
これにより、本実施形態に係るサービス提供システム１０において、サービス名「ＯＣＲ配信１」を実現する一連の処理が実行され、画像形成装置２０に対して、「ＯＣＲ配信１」が提供される。
【０１８３】
ここで、上記のステップＳ１５１４の処理フローの実行処理の詳細な処理について、図１７を参照しながら説明する。図１７は、第一の実施形態に係る処理フローの実行処理の一例を示すシーケンス図である。
【０１８４】
フロー実行部１３１は、処理フローの実行要求を受け取ると、アプリ管理部１２０に対して、処理フロー情報の取得要求を送信する（ステップＳ１７０１）。なお、当該取得要求には、受け取った処理フローの実行要求に含まれるアプリＩＤ「app001」と、フローＩＤ「flow001」とが含まれる。
【０１８５】
そして、アプリ管理部１２０は、受け取った処理フロー情報の取得要求に含まれるアプリＩＤ「app001」及びフローＩＤ「flow001」に対応する処理フロー情報１２００Ａをアプリ情報記憶部１８０から取得して、当該処理フロー情報１２００Ａを返信する。これにより、フロー実行部１３１には、図９に示す処理フロー情報１２００Ａが返信される。
【０１８６】
次に、フロー実行部１３１は、処理フロー情報１２００Ａを受け取ると、コンポーネント管理部１３２に対して、当該処理フロー情報１２００Ａに基づくコンポーネントの取得要求を送信する（ステップＳ１７０２）。
【０１８７】
すなわち、フロー実行部１３１は、処理フロー情報１２００Ａのフロー詳細１２０３Ａにおける処理内容１２１３Ａに指定されたコンポーネントＩＤ「ocr」を含むコンポーネントの取得要求をコンポーネント管理部１３２に送信する。
【０１８８】
コンポーネント管理部１３２は、コンポーネントの取得要求を受け取ると、当該取得要求に含まれるコンポーネントＩＤ「ocr」に対応するＯＣＲコンポーネント１３３３を生成する（ステップＳ１７０３）。なお、ＯＣＲコンポーネント１３３３の生成は、コンポーネント共通Ｉ／Ｆ１３３０に定義されたＡＰＩを用いて行うことができる。
【０１８９】
そして、コンポーネント管理部１３２は、フロー実行部１３１に対して、生成したＯＣＲコンポーネント１３３３を返信する。すなわち、コンポーネント管理部１３２は、例えば、ＯＣＲコンポーネント１３３３が展開されたメモリ（例えばＲＡＭ１４）上のアドレスをフロー実行部１３１に返信する。
【０１９０】
次に、フロー実行部１３１は、生成されたＯＣＲコンポーネント１３３３に対して、処理フロー情報１２００Ａに基づく処理の実行要求を送信する（ステップＳ１７０４）。
【０１９１】
すなわち、フロー実行部１３１は、処理フロー情報１２００Ａのフロー詳細１２０３Ａにおける処理内容１２１３Ａに指定されたオペレーションＩＤ「process」と、データとを含む処理の実行要求をＯＣＲコンポーネント１３３３に送信する。
【０１９２】
なお、当該処理の実行要求に含まれるデータは、データ型「InputStream」としてＵＩ制御部２１０から受け取った電子ファイルである。
【０１９３】
すなわち、フロー実行部１３１は、ＵＩ制御部２１０からデータ型「InputStream」として受け取った電子ファイルを、単に「データ」として（データ型を指定することなく）、ＯＣＲコンポーネント１３３３に送信する。図１７では、このようにデータ型を指定することなく送受信される電子ファイル等を、単に「データ」と表す。
【０１９４】
ＯＣＲコンポーネント１３３３は、処理の実行要求を受け取ると、型変換管理部１３４に対して、型変換要求を送信する（ステップＳ１７０５）。なお、当該型変換要求には、データと、ＯＣＲコンポーネント１３３３が扱うことができるデータ型である「LocalFilePath」の指定とが含まれる。
【０１９５】
型変換管理部１３４は、型変換要求を受け取ると、当該型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するか否かをチェックする（ステップＳ１７０６）。
【０１９６】
ここで、受け取った型変換要求に含まれるデータのデータ型は「InputStream」である一方、指定されたデータ型は「LocalFilePath」である。したがって、型変換管理部１３４は、型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致しないものと判断する。
【０１９７】
すると、型変換管理部１３４は、型変換情報テーブル３０００を参照して、データ型「InputStream」をデータ型「LocalFilePath」に変換するための第１の型変換１３５１を特定する。そして、型変換管理部１３４は、特定した第１の型変換１３５１を生成する（ステップＳ１７０７）。なお、第１の型変換１３５１の生成は、型変換共通Ｉ／Ｆ１３５０に定義されたＡＰＩを用いて行うことができる。
【０１９８】
次に、型変換管理部１３４は、生成された第１の型変換１３５１に対して、型変換処理の実行要求を送信する（ステップＳ１７０８）。なお、当該実行要求には、データが含まれる。
【０１９９】
第１の型変換１３５１は、型変換処理の実行要求を受け取ると、当該実行要求に含まれるデータのデータ型を「InputStream」から「LocalFilePath」に変換する（ステップＳ１７０９）。そして、第１の型変換１３５１は、型変換後のデータを返信する。
【０２００】
型変換管理部１３４は、型変換後のデータを受け取ると、当該型変換後のデータをＯＣＲコンポーネント１３３３に送信する（ステップＳ１７１０）。
【０２０１】
ＯＣＲコンポーネント１３３３は、型変換後のデータを受け取ると、処理を実行する（ステップＳ１７１１）。すなわち、ＯＣＲコンポーネント１３３３は、データ型「LocalFilePath」のデータ（パス又はアドレス）により示される電子ファイルに対して、ＯＣＲ処理を実行する。
【０２０２】
より具体的には、ＯＣＲコンポーネント１３３３は、ドキュメントサービス部１６０のＯＣＲ処理１６１に対して処理の実行を要求し、当該ＯＣＲ処理１６１が当該電子ファイルに対して処理を実行する。
【０２０３】
そして、ＯＣＲコンポーネント１３３３は、ＯＣＲ処理後の電子ファイルを示すデータをフロー実行部１３１に返信する。なお、ＯＣＲコンポーネント１３３３により返信されるデータは、ＯＣＲ処理後の電子ファイルのパス又はアドレスを示すデータ（すなわち、データ型「LocalFilePath」のデータ）である。
【０２０４】
次に、フロー実行部１３１は、データを受け取ると、コンポーネント管理部１３２に対して、処理フロー情報１２００Ａに基づくコンポーネントの取得要求を送信する（ステップＳ１７１２）。
【０２０５】
すなわち、フロー実行部１３１は、処理フロー情報１２００Ａのフロー詳細１２０３Ａにおける処理内容１２２３Ａに指定されたコンポーネントＩＤ「storageA」を含むコンポーネントの取得要求をコンポーネント管理部１３２に送信する。
【０２０６】
コンポーネント管理部１３２は、コンポーネントの取得要求を受け取ると、当該取得要求に含まれるコンポーネントＩＤ「storageA」に対応する外部ストレージＡコンポーネント１３３１を生成する（ステップＳ１７１３）。なお、外部ストレージＡコンポーネント１３３１の生成は、コンポーネント共通Ｉ／Ｆ１３３０に定義されたＡＰＩを用いて行うことができる。
【０２０７】
そして、コンポーネント管理部１３２は、フロー実行部１３１に対して、生成した外部ストレージＡコンポーネント１３３１を返信する。すなわち、コンポーネント管理部１３２は、例えば、外部ストレージＡコンポーネント１３３１が展開されたメモリ（例えばＲＡＭ１４）上のアドレスをフロー実行部１３１に返信する。
【０２０８】
次に、フロー実行部１３１は、生成された外部ストレージＡコンポーネント１３３１に対して、処理フロー情報１２００Ａに基づく処理の実行要求を送信する（ステップＳ１７１４）。
【０２０９】
すなわち、フロー実行部１３１は、処理フロー情報１２００Ａのフロー詳細１２０３Ａにおける処理内容１２２３Ａに指定されたオペレーションＩＤ「uploadFile」と、データとを含む処理の実行要求を外部ストレージＡコンポーネント１３３１に送信する。
【０２１０】
なお、当該処理の実行要求に含まれるデータは、データ型「LocalFilePath」としてＯＣＲコンポーネント１３３３から返信されたデータ（すなわち、ＯＣＲ処理後の電子ファイルを示すパス又はアドレス）である。
【０２１１】
外部ストレージＡコンポーネント１３３１は、処理の実行要求を受け取ると、型変換管理部１３４に対して、型変換要求を送信する（ステップＳ１７１５）。なお、当該型変換要求には、データと、外部ストレージＡコンポーネント１３３１が扱うことができるデータ型である「LocalFilePath」の指定とが含まれる。
【０２１２】
型変換管理部１３４は、型変換要求を受け取ると、当該型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するか否かをチェックする（ステップＳ１７１６）。
【０２１３】
ここで、受け取った型変換要求に含まれるデータのデータ型は「LocalFilePath」であり、指定されたデータ型も「LocalFilePath」である。したがって、型変換管理部１３４は、型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するものと判断する。
【０２１４】
すると、型変換管理部１３４は、型変換要求に含まれるデータを外部ストレージＡコンポーネント１３３１に送信する（ステップＳ１７１７）。このように、データ型のチェック（ステップＳ１７１６の処理）においてデータ型が一致すると判断された場合、型変換管理部１３４は、型変換の生成を行わない。
【０２１５】
外部ストレージＡコンポーネント１３３１は、型変換管理部１３４からデータを受け取ると、処理を実行する（ステップＳ１７１８）。すなわち、外部ストレージＡコンポーネント１３３１は、外部ストレージＡのフォルダ名「FolderB」のフォルダに対して、受け取ったデータにより示される電子ファイルを配信（アップロード）する。
【０２１６】
より具体的には、外部ストレージＡコンポーネント１３３１は、外部ストレージＡ連携部１７０１のファイル処理部１７１１に対して、図５（ａ）に示すＡＰＩ「/外部ストレージ名/process/folder」を用いて行うことができる。すなわち、外部ストレージＡコンポーネント１３３１は、ファイル処理部１７１１に対して、例えば、「/storage-a/process/folder」としてデータを送信する。
【０２１７】
これにより、ファイル名「test」の電子ファイル（スキャンにより生成された電子ファイルをＯＣＲ処理した電子ファイル）が、外部ストレージＡのフォルダ名「FolderB」のフォルダに保存される。
【０２１８】
そして、外部ストレージＡコンポーネント１３３１は、処理結果を示すデータをフロー実行部１３１に返信する。
【０２１９】
以上により、本実施形態に係るサービス提供システム１０は、画像形成装置２０に対して、外部ストレージと連携した一連の処理により実現されるサービスを提供することができる。このとき、本実施形態に係るサービス提供システム１０は、処理フロー情報１２００に基づいて、１以上のコンポーネントを組み合わせることにより、一連の処理を実行することができる。
【０２２０】
［第二の実施形態］
次に、第二の実施形態に係る情報処理システム１について説明する。第二の実施形態では、処理フローの登録処理において、処理フローの登録（追加）に加えて、処理フローの更新又は削除をすることができる点が第一の実施形態と異なる。なお、以降では、第一の実施形態と実質的に同一の機能を有する箇所及び同一の処理を行う箇所については、第一の実施形態と同一の符号を用いて、その説明を省略する。
【０２２１】
＜処理の詳細＞
以降では、第二の実施形態に係る処理フローの登録処理について、図１８を参照しながら説明する。図１８は、第二の実施形態に係る処理フローの登録処理の一例を示すシーケンス図である。
【０２２２】
ＰＣ端末３０のＵＩ制御部３１０は、アプリ一覧画面４０００のアプリ名一覧４００１から、処理フローを登録、更新、又は削除するアプリケーションの選択操作を受け付けると、選択されたアプリケーションのアプリ情報画面を表示させる（ステップＳ１８０１）。
【０２２３】
例えば、アプリ一覧画面４０００のアプリ名一覧４００１から「スキャンアプリ」がユーザＵにより選択された場合、ＵＩ制御部３１０は、例えば図１９に示すアプリ情報画面７１００を表示装置１２に表示させる。
【０２２４】
図１９に示すアプリ情報画面７１００は、「スキャンアプリ」であるアプリ情報１０００Ａの処理フローの登録、更新、又は削除を行うための画面である。
【０２２５】
アプリ情報画面７１００には、アプリ情報１０００Ａに含まれる処理フロー情報１２００Ａの一覧であるフロー名一覧７１０１が含まれる。また、アプリ情報画面７１００には、処理フローを登録するための登録ボタン７１０２と、登録されている処理フローを更新するための更新ボタン７１０３と、登録されている処理フローを削除するための削除ボタン７１０４とが含まれる。
【０２２６】
以降では、ユーザＵにより、登録ボタン７１０２が選択される場合、更新ボタン７１０３が選択された場合、削除ボタン７１０４が選択される場合について、それぞれ説明する。
【０２２７】
ユーザＵによりアプリ情報画面７１００において登録ボタン７１０２が選択された場合、図１０のステップＳ１００７〜ステップＳ１００８と同様の処理を行う。これらの処理の詳細については省略する。
【０２２８】
ユーザＵによりアプリ情報画面７１００において、フロー名一覧７１０１から更新対象のフロー名が選択された上で、更新ボタン７１０３が選択された場合について、以降で説明する。なお、以降では、フロー名一覧７１０１から「ＯＣＲ配信１」が選択された上で、更新ボタン７１０３が選択されたものとして説明する。
【０２２９】
まず、ＰＣ端末３０のＵＩ制御部３１０は、更新ボタン７１０３の選択操作を受け付けると、フロー作成処理部１４０に対して、処理フローの更新画面の取得要求を送信する（ステップＳ１８０２）。なお、当該取得要求には、アプリ一覧画面４０００のアプリ名一覧４００１から選択されたアプリ情報１０００ＡのアプリＩＤ「app001」と、フロー名一覧７１０１から選択された更新対象の処理フロー「ＯＣＲ配信１」のフローＩＤ「flow001」が含まれる。
【０２３０】
そして、フロー作成処理部１４０は、処理フローの更新画面の取得要求を受け取ると、当該取得要求に含まれるフローＩＤに対応する処理フロー更新画面情報を返信する。
【０２３１】
ＰＣ端末３０のＵＩ制御部３１０は、処理フロー更新画面情報を受け取ると、コンポーネント管理部１３２に対して、コンポーネント情報の取得要求を送信する（ステップＳ１８０３）。そして、コンポーネント管理部１３２は、当該取得要求を受け取ると、コンポーネント情報テーブル２０００に格納されているコンポーネント情報を返信する。
【０２３２】
ＰＣ端末３０のＵＩ制御部３１０は、コンポーネント情報を受け取ると、当該コンポーネント情報を処理フロー更新画面に反映させて、例えば図２０に示す処理フロー更新画面８１００を表示装置１２に表示させる（ステップＳ１８０５）。すなわち、アプリ情報画面７１００において、フロー名一覧７１０１から更新対象の処理フローが選択された上で、更新ボタン７１０３が選択されると、ＵＩ制御部３１０は、処理フロー更新画面８１００に画面遷移させる。
【０２３３】
図２０に示す処理フロー更新画面８１００は、「ＯＣＲ配信１」の処理フローを更新するための画面であり、コンポーネント情報に基づいてコンポーネント名の一覧が表示されるコンポーネント一覧８１０２が含まれる。また、処理フロー更新画面８１００には、ユーザＵにより選択された「ＯＣＲ配信１」の処理フローＦ２１を更新するための作成領域８１０１が含まれる。さらに、ユーザＵにより選択された「ＯＣＲ配信１」のフロー名を更新するためのフロー名入力欄８１０３と、更新内容を確定するための更新ボタン８１０４とが含まれる。
【０２３４】
次に、ユーザＵは、処理フロー更新画面８１００において、処理フローＦ２１を更新する操作を行う（ステップＳ１８０６）。なお、ユーザＵは、図２０に示す処理フロー更新画面８１００において、処理フローを作成する場合と同様の方法で、選択した「ＯＣＲ配信１」の処理フローを更新することができる。すなわち、ユーザＵは、処理フローＦ２１に対して、処理の追加又は削除を行うことにより、処理フローＦ２１を更新することができる。
【０２３５】
次に、ＰＣ端末３０のＵＩ制御部３１０は、ユーザＵにより処理フローＦ２１が更新されると、サービス提供システム１０のフロー作成処理部１４０に対して、処理フローの更新要求を送信する（ステップＳ１８０７）。なお、当該更新要求には、ユーザＵにより更新された処理フローＦ２１の更新情報（例えば、作成領域に作成されたコンポーネント及びオペレーションを示すアイコンの識別情報や当該アイコン同士の関連を示す関連情報等）が含まれる。また、当該更新要求には、スキャンアプリを識別するための情報（例えば、処理フロー更新画面８１００を識別する情報等）が含まれる。
【０２３６】
ただし、ＵＩ制御部３１０は、ユーザＵにより更新された処理フローＦ２１を示す処理フロー情報１２００Ａを作成し、当該登録要求に含めて、サービス提供システム１０に送信しても良い。また、ＵＩ制御部３１０は、当該登録要求にスキャンアプリのアプリＩＤ「app001」を含めても良い。
【０２３７】
サービス提供システム１０のフロー作成処理部１４０は、処理フローの更新要求を受け取ると、当該更新要求に含まれる処理フローＦ２１の更新情報に基づいて、当該処理フローＦ２１を示す処理フロー情報１２００Ａを作成する。また、フロー作成処理部１４０は、当該更新要求に含まれるスキャンアプリを識別するための情報から当該スキャンアプリのアプリ情報１０００ＡのアプリＩＤ「app001」を特定する。
【０２３８】
そして、フロー作成処理部１４０は、処理フロー情報１２００Ａと、アプリＩＤ「app001」とを含む処理フローの更新要求をアプリ管理部１２０に送信する（ステップＳ１８０７）。なお、フロー作成処理部１４０は、処理フロー作成更新情報に基づいて、スキャンアプリを識別するための情報からアプリＩＤ「app001」を特定すれば良い。
【０２３９】
アプリ管理部１２０は、処理フローの更新要求を受け取ると、当該更新要求に含まれる処理フロー情報１２００Ａを、アプリＩＤ「app001」と関連付けてアプリ情報記憶部１８０に記憶させる（ステップＳ１８０８）。これにより、サービス提供システム１０に登録されている処理フロー情報１２００Ａが更新される。
【０２４０】
そして、アプリ管理部１２０は、処理フロー情報１２００Ａが更新されたことを示す更新結果を、フロー作成処理部１４０を介してＵＩ制御部３１０に返信する。
【０２４１】
ユーザＵによりアプリ情報画面７１００において、フロー名一覧７１０１から削除対象のフロー名が選択された上で、削除ボタン７１０４が選択された場合について、以降で説明する。なお、以降では、フロー名一覧７１０１から「ＯＣＲ配信２」が選択された上で、削除ボタン７１０４が選択されたものとして説明する。
【０２４２】
ＰＣ端末３０のＵＩ制御部３１０は、削除ボタン７１０４の選択操作を受け付けると、フロー作成処理部１４０に対して、処理フローの削除要求を送信する（ステップＳ１８０９）。なお、当該取得要求には、ユーザＵにより選択されたアプリケーションを識別するための情報（例えば、アプリ名一覧４００１に含まれる各表示部品を識別する情報等）が含まれる。また、当該取得要求には、ユーザＵにより選択された削除対象の処理フローを識別するための情報（例えば、フロー名一覧７１０１に含まれる各表示部品を識別する情報等）が含まれる。
【０２４３】
ただし、ＵＩ制御部３１０は、ユーザＵにより選択されたアプリケーション（アプリ情報１０００Ａ）のアプリＩＤ「app001」や削除対象の処理フロー「ＯＣＲ配信２」のフローＩＤ「flow002」を、処理フローの削除要求に含めても良い。
【０２４４】
フロー作成処理部１４０は、処理フローの削除要求を受け取ると、当該削除要求に含まれるアプリケーションを識別するための情報及び削除対象の処理フローを識別するための情報から、それぞれアプリＩＤ「app001」及びフローＩＤ「flow002」を特定する。
【０２４５】
そして、フロー作成処理部１４０は、アプリＩＤ「app001」及びフローＩＤ「flow002」を含む処理フローの削除要求をアプリ管理部１２０に送信する（ステップＳ１８１０）。
【０２４６】
アプリ管理部１２０は、処理フローの削除要求を受け取ると、当該削除要求に含まれるアプリＩＤ「app001」及びフローＩＤ「flow002」により示される処理フロー情報１２００をアプリ情報記憶部１８０から削除する。そして、アプリ管理部１２０は、フロー作成処理部１４０を介して、削除結果を返信する。
【０２４７】
以上により、本実施形態に係る情報処理システム１では、サービス提供システム１０に登録されている処理フローの更新及び削除を行うことができる。
【０２４８】
［第三の実施形態］
次に、第三の実施形態に係る情報処理システム１について説明する。第三の実施形態では、自然言語により処理フローを作成及び登録することができる点が第一の実施形態と異なる。なお、以降では、第一の実施形態と実質的に同一の機能を有する箇所及び同一の処理を行う箇所については、第一の実施形態と同一の符号を用いて、その説明を省略する。
【０２４９】
＜処理の詳細＞
以降では、第三の実施形態に係る処理フローの登録処理について、図２１を参照しながら説明する。図２１は、第三の実施形態に係る処理フローの登録処理の一例を示すシーケンス図である。
【０２５０】
ＰＣ端末３０のＵＩ制御部３１０は、処理フロー作成画面情報を受け取ると、例えば図２２に示す処理フロー作成画面９１００を表示装置１２に表示させる（ステップＳ２１０１）。
【０２５１】
図２２に示す処理フロー作成画面９１００は、スキャンアプリの処理フローを作成するための画面であり、自然言語の選択欄９１０１〜９１０３が含まれる。また、処理フロー作成画面９１００には、処理フローのフロー名を指定するフロー名入力欄９１０４と、処理フローを登録するための登録ボタン９１０５とが含まれる。
【０２５２】
ユーザＵは、処理フロー作成画面９１００において、スキャンアプリの処理フローを作成する操作を行う（ステップＳ２１０２）。
【０２５３】
ここで、本実施形態に係る処理フロー作成画面９１００では、自然言語の選択欄９１０１〜９１０３からユーザＵが所望の自然言語を選択することで、処理フローを作成することができる。
【０２５４】
例えば、ユーザＵは、自然言語の選択欄９１０１において、当該選択欄９１０１の選択要素の一覧９１１１から所望の選択要素を選択する。同様に、ユーザＵは、自然言語の選択欄９２０２及び９２０３において、それぞれの選択要素の一覧９１１２及び９１１３から所望の選択要素を選択する。
【０２５５】
このように、本実施形態では、ユーザＵが所望の自然言語を選択することにより処理フローを作成することができる。
【０２５６】
例えば、自然言語の選択欄９１０１〜９１０３において、それぞれ「ＯＣＲ処理」、「外部ストレージＢ」、及び「配信」が選択されたとする。この場合、ＵＩ制御部３１０は、画像形成装置２０でスキャンして生成された電子ファイルを、ＯＣＲ処理した後、外部ストレージＢに配信するための処理フロー情報１２００を作成する。
【０２５７】
なお、図２２に示す処理フロー作成画面９１００では、自然言語の選択欄９１０１〜９１０３の３つの選択欄が含まれる場合について示したが、これに限られず、自然言語の選択欄は任意の個数含まれていても良い。
【０２５８】
そして、ユーザＵは、フロー名入力欄９１０４に所望のフロー名を入力した上で、登録ボタン９１０５を選択することで、処理フローを作成することができる。
【０２５９】
ＰＣ端末３０のＵＩ制御部３１０は、ユーザＵにより処理フローが作成されると、フロー作成処理部１４０に対して、処理フローの登録要求を送信する（ステップＳ２１０３）。なお、当該登録要求には、ユーザＵにより作成された処理フローの作成情報と、スキャンアプリを識別するための情報とが含まれる。
【０２６０】
以上により、本実施形態に係る情報処理システム１では、ユーザにより作成された処理フローの処理フロー情報１２００をサービス提供システム１０に登録することができる。
【０２６１】
しかも、本実施形態に係る情報処理システム１では、ユーザが自然言語を選択して、組み合わせることにより、処理フローを作成することができる。したがって、ユーザは、容易に処理フローを作成することができるようになる。
【０２６２】
［第四の実施形態］
次に、第四の実施形態に係る情報処理システム１について説明する。第四の実施形態では、処理フローの登録処理において、画面を表示させるための各種情報の取得方法が第一の実施形態と異なる。なお、以降では、第一の実施形態と実質的に同一の機能を有する箇所及び同一の処理を行う箇所については、第一の実施形態と同一の符号を用いて、その説明を省略する。
【０２６３】
＜機能構成＞
まず、本実施形態に係る情報処理システム１の機能構成について、図２３を参照しながら説明する。図２３は、第四の実施形態に係る情報処理システムの一例の機能構成を示す図である。
【０２６４】
本実施形態に係るＰＣ端末３０は、ＵＩ制御部３１０Ａを有する。ＵＩ制御部３１０Ａは、操作パネル２２に各種画面を表示させる。このとき、ＵＩ制御部３１０Ａは、フロー作成処理部１４０Ａから各種画面を表示させるための各種情報を取得する。すなわち、本実施形態に係るＵＩ制御部３１０Ａは、第一の実施形態と異なり、アプリ一覧情報やコンポーネント情報をアプリ管理部１２０やロジック処理部１３０から直接取得しない。
【０２６５】
本実施形態に係るサービス提供システム１０は、フロー作成処理部１４０Ａを有する。フロー作成処理部１４０Ａは、アプリ管理部１２０やロジック処理部１３０からアプリ一覧情報やコンポーネント情報を取得する。
【０２６６】
＜処理の詳細＞
以降では、第四の実施形態に係る処理フローの登録処理について、図２４を参照しながら説明する。図２４は、第四の実施形態に係る処理フローの登録処理の一例を示すシーケンス図である。
【０２６７】
サービス提供システム１０のフロー作成処理部１４０Ａは、アプリ一覧画面の取得要求を受け取ると、アプリ管理部１２０に対して、アプリ一覧情報の取得要求を送信する（ステップＳ２４０１）。そして、アプリ管理部１２０は、当該取得要求を受け取ると、アプリ一覧情報をフロー作成処理部１４０Ａに返信する。その後、フロー作成処理部１４０Ａは、アプリ管理部１２０から返信されたアプリ一覧情報とともに、アプリ一覧画面情報をＵＩ制御部３１０Ａに返信する。
【０２６８】
サービス提供システム１０のフロー作成処理部１４０Ａは、フロー作成画面の取得要求を受け取ると、コンポーネント管理部１３２に対して、コンポーネント情報の取得要求を送信する（ステップＳ２４０２）。そして、コンポーネント管理部１３２は、当該取得要求を受け取ると、コンポーネント情報テーブル２０００に格納されているコンポーネント情報をフロー作成処理部１４０Ａに返信する。その後、フロー作成処理部１４０Ａは、コンポーネント管理部１３２から返信されたコンポーネント情報とともに、処理フロー作成画面情報をＵＩ制御部３１０Ａに返信する。
【０２６９】
以上により、本実施形態に係る情報処理システム１では、処理フローの登録処理において、アプリ一覧画面や処理フロー作成画面をＰＣ端末３０に表示する際に、ＰＣ端末３０とサービス提供システム１０との間の通信回数を削減することができる。
【０２７０】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【０２７１】
１        情報処理システム
１０      サービス提供システム
２０      画像形成装置
３０      ＰＣ端末
４０      外部ストレージシステム
１１０    サービス処理部
１２０    アプリ管理部
１３０    ロジック処理部
１３１    フロー実行部
１３２    コンポーネント管理部
１３３    コンポーネント群
１３４    型変換管理部
１３５    型変換群
１４０    フロー作成処理部
１５０    データＩ／Ｆ部
１６０    ドキュメントサービス部
１７０    外部ストレージ連携部
１８０    アプリ情報記憶部
２１０    ＵＩ制御部
２２０    スキャン処理部
３１０    ＵＩ制御部
１０００  アプリ情報
１１００  画面定義情報
１２００  処理フロー情報
２０００  コンポーネント情報テーブル
３０００  型変換情報テーブル
【先行技術文献】
【特許文献】
【０２７２】
【特許文献１】特開２０１４−０３２６５９号公報
【図１】
0006756270.tif 000002
【図２】
0006756270.tif 000003
【図３】
0006756270.tif 000004
【図４】
0006756270.tif 000005
【図５】
0006756270.tif 000006
【図６】
0006756270.tif 000007
【図７】
0006756270.tif 000008
【図８】
0006756270.tif 000009
【図９】
0006756270.tif 000010
【図１０】
0006756270.tif 000011
【図１１】
0006756270.tif 000012
【図１２】
0006756270.tif 000013
【図１３】
0006756270.tif 000014
【図１４】
0006756270.tif 000015
【図１５】
0006756270.tif 000016
【図１６】
0006756270.tif 000017
【図１７】
0006756270.tif 000018
【図１８】
0006756270.tif 000019
【図１９】
0006756270.tif 000020
【図２０】
0006756270.tif 000021
【図２１】
0006756270.tif 000022
【図２２】
0006756270.tif 000023
【図２３】
0006756270.tif 000024
【図２４】
0006756270.tif 000025