IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社リコーの特許一覧

特許7127535情報処理システム、情報処理装置、情報処理方法およびプログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-08-22
(45)【発行日】2022-08-30
(54)【発明の名称】情報処理システム、情報処理装置、情報処理方法およびプログラム
(51)【国際特許分類】
   H04L 67/56 20220101AFI20220823BHJP
   H04L 67/75 20220101ALI20220823BHJP
   H04N 1/00 20060101ALI20220823BHJP
【FI】
H04L67/56
H04L67/75
H04N1/00 127A
H04N1/00 127B
【請求項の数】 11
(21)【出願番号】P 2018243514
(22)【出願日】2018-12-26
(65)【公開番号】P2020106972
(43)【公開日】2020-07-09
【審査請求日】2021-09-16
(73)【特許権者】
【識別番号】000006747
【氏名又は名称】株式会社リコー
(74)【代理人】
【識別番号】100089118
【弁理士】
【氏名又は名称】酒井 宏明
(72)【発明者】
【氏名】児玉 快
【審査官】今川 悟
(56)【参考文献】
【文献】特開2016-177447(JP,A)
【文献】特開2004-185138(JP,A)
【文献】特開2017-072890(JP,A)
【文献】特開2004-348715(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 67/56
H04L 67/75
H04N 1/00
(57)【特許請求の範囲】
【請求項1】
外部サービスを利用するための認証情報を使用して、前記外部サービスが停止しているか否かを検知する停止検知処理を実行する停止検知処理部と、
前記外部サービスを利用するアプリケーションの起動時に、前記停止検知処理の最新の検知結果を取得する取得部と、
前記取得部により取得された前記最新の検知結果が、前記外部サービスが停止していることを示す場合、前記アプリケーションの実行を中止するアプリ実行部と、
前記取得部により取得された前記最新の検知結果が、前記外部サービスが停止していることを示す場合、該外部サービスが停止している旨を示す通知情報を、前記アプリケーションを利用対象とする電子機器に表示させるために前記電子機器に送信する通知部と、
を有する情報処理システム。
【請求項2】
前記アプリ実行部は、前記最新の検知結果が、前記外部サービスが停止していないことを示す場合、前記アプリケーションの実行要求を行う請求項1に記載の情報処理システム。
【請求項3】
前記外部サービスを利用するための前記認証情報を予め登録する第1登録部を、さらに有し、
前記停止検知処理部は、前記第1登録部に登録された前記認証情報を取得し、該認証情報を利用して所定のタイミングで前記停止検知処理を実行し、前記検知結果を記憶部に蓄積し、
前記取得部は、前記記憶部から前記最新の検知結果を取得する請求項1または2に記載の情報処理システム。
【請求項4】
前記外部サービスが停止している旨の通知先を示すユーザ情報を登録する第2登録部を、さらに有し、
前記停止検知処理部は、前記取得部により取得された前記最新の検知結果が、前記外部サービスが停止していることを示す場合、該外部サービスが停止している旨を、前記第2登録部に登録された前記ユーザ情報が示す通知先に通知する請求項3に記載の情報処理システム。
【請求項5】
前記停止検知処理部は、実行した前記停止検知処理の検知結果が、前記外部サービスが停止していることを示す場合、前記記憶部から最新の検知結果を取得し、該最新の検知結果が該外部サービスが停止していないことを示す場合、該外部サービスが停止している旨を、前記第2登録部に登録された前記ユーザ情報が示す通知先に通知する請求項4に記載の情報処理システム。
【請求項6】
前記停止検知処理部は、前記停止検知処理による前記検知結果と共に、前記第2登録部により登録された前記ユーザ情報が示す通知先への通知の必要性の有無を示す情報を取得し、前記検知結果が、前記外部サービスが停止していることを示す場合であって、かつ、前記通知の必要性の有無を示す情報が、必要であることを示す場合、該外部サービスが停止している旨を、前記第2登録部に登録された前記ユーザ情報が示す通知先に通知する請求項4に記載の情報処理システム。
【請求項7】
前記停止検知処理部は、前記停止検知処理による前記検知結果と共に、通知メッセージを取得し、
前記通知部は、前記取得部により取得された前記最新の検知結果が、前記外部サービスが停止していることを示す場合、前記通知メッセージを、前記電子機器に送信する請求項4に記載の情報処理システム。
【請求項8】
前記停止検知処理部は、前記外部サービスを利用するためのユーザ個別の認証情報を使用して、該外部サービスが停止しているか否かを検知する前記停止検知処理を実行し、
前記取得部は、前記停止検知処理部が実行した前記停止検知処理の検知結果を前記最新の検知結果として直接取得する請求項1または2に記載の情報処理システム。
【請求項9】
外部サービスを利用するための認証情報を使用して、前記外部サービスが停止しているか否かを検知する停止検知処理を実行する停止検知処理部と、
前記外部サービスを利用するアプリケーションの起動時に、前記停止検知処理の最新の検知結果を取得する取得部と、
前記取得部により取得された前記最新の検知結果が、前記外部サービスが停止していることを示す場合、前記アプリケーションの実行を中止するアプリ実行部と、
前記取得部により取得された前記最新の検知結果が、前記外部サービスが停止していることを示す場合、該外部サービスが停止している旨を示す通知情報を、前記アプリケーションを利用対象とする電子機器に表示させるために前記電子機器に送信する通知部と、
を備えた情報処理装置。
【請求項10】
外部サービスを利用するための認証情報を使用して、前記外部サービスが停止しているか否かを検知する停止検知処理を実行する停止検知処理ステップと、
前記外部サービスを利用するアプリケーションの起動時に、前記停止検知処理の最新の検知結果を取得する取得ステップと、
取得した前記最新の検知結果が、前記外部サービスが停止していることを示す場合、前記アプリケーションの実行を中止する中止ステップと、
取得した前記最新の検知結果が、前記外部サービスが停止していることを示す場合、該外部サービスが停止している旨を示す通知情報を、前記アプリケーションを利用対象とする電子機器に表示させるために前記電子機器に送信する通知ステップと、
を有する情報処理方法。
【請求項11】
コンピュータに、
外部サービスを利用するための認証情報を使用して、前記外部サービスが停止しているか否かを検知する停止検知処理を実行する停止検知処理ステップと、
前記外部サービスを利用するアプリケーションの起動時に、前記停止検知処理の最新の検知結果を取得する取得ステップと、
取得した前記最新の検知結果が、前記外部サービスが停止していることを示す場合、前記アプリケーションの実行を中止する中止ステップと、
取得した前記最新の検知結果が、前記外部サービスが停止していることを示す場合、該外部サービスが停止している旨を示す通知情報を、前記アプリケーションを利用対象とする電子機器に表示させるために前記電子機器に送信する通知ステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システム、情報処理装置、情報処理方法およびプログラムに関する。
【背景技術】
【0002】
近年、複数の機能(例えば、スキャン、プリント、およびメール配信等)を組み合わせた機能を提供するサービス等が知られるようになった。例えば、スキャンにより生成された電子ファイル(画像ファイル)に所定の処理を行った上で、メール配信するサービス等がある。このようなサービスは、各機能を実現する1以上の処理が一連の処理として実行されることにより実現される。
【0003】
このような一連の処理を実行するアプリケーションをプログラミング等の専門的な知識を必要とすることなく作成するツールを提供する技術が開示されている(特許文献1参照)。
【0004】
また、このようなサービスでは、当該サービスを提供するクラウドサービス等が何らかの原因で停止している場合に、その停止状態を検知してユーザに通知する仕組みが求められている。このようなクラウドサービスの停止を検知する技術として、クラウドサービスが停止している場合に、ユーザに迅速に停止を通知して利便性を向上させるために、クラウドサービスの稼動状態を定期的に判定して、ユーザに通知するクライアント装置の構成が開示されている(特許文献2参照)。
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に記載された技術では、アプリケーションから利用されるクラウドサービスが停止している場合でも、アプリケーション起動時にはそれを察知できず、停止状態を検知するためには、ユーザが実際にアプリケーションを利用(スキャンまたはプリント等)してみる必要があるという問題がある。また、特許文献2に記載された技術では、クラウドサービスの停止を検知する動作は行うもののアプリケーションから利用されるクラウドサービスとの疎通しか確認できない。現実的にはクラウドサービスのAPI(Application Program Interface)が期待通りに動作するか等を含めて確認する必要があり、結果としてそのための認証情報(クラウドサービスのアカウント、またはアクセストークン等)をコンポーネントの内部にハードコーディングしなければならないという問題がある。さらに、一般的に認証情報は一定期間で失効することから、認証情報の発行のたびにコンポーネントを作り直さなければならないという問題もある。
【0006】
本発明は、上記に鑑みてなされたものであって、アプリケーションから利用される外部サービスが停止している場合に、アプリケーションを利用させることなく、当該アプリケーションの起動時に当該外部サービスの停止状態を通知することができる情報処理システム、情報処理装置、情報処理方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
上述した課題を解決し、目的を達成するために、本発明は、外部サービスを利用するための認証情報を使用して、前記外部サービスが停止しているか否かを検知する停止検知処理を実行する停止検知処理部と、前記外部サービスを利用するアプリケーションの起動時に、前記停止検知処理の最新の検知結果を取得する取得部と、前記取得部により取得された前記最新の検知結果が、前記外部サービスが停止していることを示す場合、前記アプリケーションの実行を中止するアプリ実行部と、前記取得部により取得された前記最新の検知結果が、前記外部サービスが停止していることを示す場合、該外部サービスが停止している旨を示す通知情報を、前記アプリケーションを利用対象とする電子機器に表示させるために前記電子機器に送信する通知部と、を有することを特徴とする。
【発明の効果】
【0008】
本発明によれば、アプリケーションから利用される外部サービスが停止している場合に、アプリケーションを利用させることなく、当該アプリケーションの起動時に当該外部サービスの停止状態を通知することができる。
【図面の簡単な説明】
【0009】
図1図1は、実施形態に係る情報処理システムのシステム構成の一例を示す図である。
図2図2は、実施形態に係るサービス提供システムおよびPC端末のハードウェア構成の一例を示す図である。
図3図3は、実施形態に係る機器のハードウェア構成の一例を示す図である。
図4図4は、実施形態に係る情報処理システムの機能構成の一例を示す図である。
図5図5は、実施形態に係るロジック処理部の機能構成の一例を示す図である。
図6図6は、コンポーネントが有するオペレーションの一例を示す図である。
図7図7は、型変換情報テーブルの一例を示す図である。
図8図8は、処理フロー情報の一例を示す図である。
図9図9は、アプリケーションの登録処理の一例を示すシーケンス図である。
図10図10は、ポータルトップ画面の一例を示す図である。
図11図11は、アプリケーション登録画面(1/5)を示す図である。
図12図12は、アプリケーション登録画面(2/5)を示す図である。
図13図13は、アプリケーション登録画面(3/5)を示す図である。
図14図14は、アプリケーション登録画面(4/5)を示す図である。
図15図15は、アプリケーション登録画面(5/5)を示す図である。
図16図16は、アプリ設定情報の一例を示す図である。
図17図17は、実施形態に係る情報処理システムの認証情報の登録処理の一例を示すシーケンス図である。
図18図18は、実施形態の入出力サービス処理部の停止検知処理の一例を示すシーケンス図である。
図19図19は、実施形態に係る情報処理システムでアプリケーションを利用する場合において停止検知結果が停止していないことを示すときの全体処理の一例を示すシーケンス図である。
図20図20は、スキャン翻訳アプリケーションのアプリ画面の一例を示す図である。
図21図21は、スキャン翻訳サービスを実現する処理フローの実行処理の一例を示すシーケンス図である。
図22図22は、実施形態に係る情報処理システムでアプリケーションを利用する場合において停止検知結果が停止していることを示すときの処理の一例を示すシーケンス図である。
図23図23は、外部サービスが停止していることを示すサービス停止表示画面の一例を示す図である。
図24図24は、実施形態の変形例1に係る情報処理システムの通知先ユーザの登録処理の一例を示すシーケンス図である。
図25図25は、実施形態の変形例1の入出力サービス処理部の停止検知処理の一例を示すシーケンス図である。
図26図26は、通知先ユーザへの通知内容の一例を示す図である。
図27図27は、実施形態の変形例2の入出力サービス処理部の停止検知処理の一例を示すシーケンス図である。
図28図28は、実施形態の変形例3に係る情報処理システムでアプリケーションを利用する場合において停止検知結果が停止していないことを示すときの全体処理の一例を示すシーケンス図である。
図29図29は、実施形態の変形例3に係る情報処理システムでアプリケーションを利用する場合において停止検知結果が停止していることを示すときの処理の一例を示すシーケンス図である。
図30図30は、実施形態の変形例4に係る入出力サービス処理部の停止検知処理の一例を示すシーケンス図である。
図31図31は、実施形態の変形例4に係る情報処理システムでアプリケーションを利用する場合において停止検知結果が停止していることを示すときの処理の一例を示すシーケンス図である。
【発明を実施するための形態】
【0010】
以下に、図面を参照しながら、本発明に係る情報処理システム、情報処理装置、情報処理方法およびプログラムの実施形態を詳細に説明する。また、以下の実施形態によって本発明が限定されるものではなく、以下の実施形態における構成要素には、当業者が容易に想到できるもの、実質的に同一のもの、およびいわゆる均等の範囲のものが含まれる。さらに、以下の実施形態の要旨を逸脱しない範囲で構成要素の種々の省略、置換、変更および組み合わせを行うことができる。
【0011】
(情報処理システムの構成)
図1は、実施形態に係る情報処理システムのシステム構成の一例を示す図である。図1を参照しながら、本実施形態に係る情報処理システム1のシステム構成について説明する。
【0012】
図1に示す情報処理システム1は、サービス提供システム10と、機器20(電子機器の一例)と、PC端末30とを含み、インターネット等の広域的なネットワークN1を介して通信可能に接続されている。
【0013】
サービス提供システム10は、一台以上の情報処理装置で実現され、ネットワークN1を介して、種々の機能をそれぞれ実現する複数の処理のうちの1以上の処理を組み合わせた一連の処理により実現される各種のサービスを提供する。
【0014】
ここで、機能とは、文書ファイルおよび画像ファイル等の電子データに関する機能である。機能には、例えば、プリント、スキャン、ファクシミリ送信、データ形式の変換、メール配信、OCR(Optical Character Recognition)処理、加工、圧縮・解凍、リポジトリへの格納等が挙げられる。
【0015】
本実施形態に係るサービス提供システム10が提供するサービスの具体例については後述する。なお、以降では、一連の処理を「処理フロー」とも表す。
【0016】
機器20は、ユーザが使用する各種の電子機器である。すなわち、機器20は、例えば、MFP(Multifunction Peripheral)等の画像形成装置、PJ(Projector:プロジェクタ)、IWB(Interactive White Board:相互通信が可能な電子式の黒板機能を有する白板)、デジタルサイネージ等の出力装置、HUD(Head Up Display)装置、産業機械、撮像装置、集音装置、医療機器、ネットワーク家電、ノートPC(Personal Computer)、携帯電話、スマートフォン、タブレット端末、ゲーム機、PDA(Personal Digital Assistant)、デジタルカメラ、ウェアラブルPCまたはデスクトップPC等である。ユーザは、機器20を用いて、サービス提供システム10が提供する各種のサービスを利用することができる。
【0017】
なお、以降では、複数の機器20について、各々を区別するときは、「機器20_1」、「機器20_2」等と添え字を用いて記載する。
【0018】
PC端末30は、例えば、ノートPC、携帯電話、スマートフォン、タブレット端末、PDA、ウェアラブルPCまたはデスクトップPC等である。ユーザは、PC端末30を用いて、サービス提供システム10が提供する各種のサービスを利用することができる。
【0019】
なお、以降では、複数のPC端末30について、各々を区別するときは、「PC端末30_1」、「PC端末30_2」等と添え字を用いて記載する。
【0020】
また、図1に示す情報処理システム1の構成は一例であって、他の構成であってもよい。例えば、本実施形態に係る情報処理システム1には、電子データの入力および出力の少なくとも一方を行う各種機器が含まれ、これらの機器がサービス提供システム10により提供される各種サービスを利用してもよい。
【0021】
(サービス提供システムおよびPC端末のハードウェア構成)
図2は、実施形態に係るサービス提供システムおよびPC端末のハードウェア構成の一例を示す図である。図2を参照しながら、本実施形態に係る情報処理システム1に含まれるサービス提供システム10およびPC端末30のハードウェア構成について説明する。なお、サービス提供システム10およびPC端末30は、同様のハードウェア構成を有しているため、以降では、主に、サービス提供システム10のハードウェア構成について説明する。
【0022】
図2に示すサービス提供システム10は、CPU(Central Processing Unit)11と、RAM(Random Access Memory)12と、ROM(Read Only Memory)13と、補助記憶装置14と、入力装置15と、表示装置16と、外部I/F17と、通信I/F18と、を有する。これらの各ハードウェアは、それぞれがバスBで接続されている。
【0023】
CPU11は、ROM13または補助記憶装置14等の記憶装置からプログラムおよびデータをRAM12上に読み出し、処理を実行することで、サービス提供システム10全体の制御および機能を実現する演算装置である。
【0024】
RAM12は、プログラムおよびデータを一時保持する揮発性の半導体メモリである。ROM13は、電源を切ってもプログラムおよびデータを保持することができる不揮発性の半導体メモリである。ROM13には、サービス提供システム10の起動時に実行されるBIOS(Basic Input/Output System)、OS設定、およびネットワーク設定等のプログラムおよびデータが格納されている。
【0025】
補助記憶装置14は、プログラムおよびデータを格納している不揮発性の記憶装置である。補助記憶装置14は、HDD(Hard Disk Drive)またはSSD(Solid State Drive)等である。補助記憶装置14に格納されるプログラムおよびデータには、サービス提供システム10全体を制御する基本ソフトウェアであるOS(Operating System)、および、OS上において各種機能を提供するアプリケーションソフトウェア等がある。また、補助記憶装置14、格納しているプログラムおよびデータを所定のファイルシステムおよびデータベース等により管理している。
【0026】
入力装置15は、キーボード、マウス、またはタッチパネル等を含み、ユーザが各操作信号を入力するのに用いられる。表示装置16は、ディスプレイ等を含み、サービス提供システム10による処理結果を表示する。表示装置16は、LCD(Liquid Crystal Display)、または有機EL(Electro-Luminescence)ディスプレイ等である。なお、入力装置15および表示装置16の少なくとも一方は、必要なときにサービス提供システム10に接続して利用する形態であってもよい。
【0027】
外部I/F17は、外部装置とのインタフェースである。外部装置には、記録媒体17a等がある。これにより、サービス提供システム10は、外部I/F17を介して記録媒体17aの読み取りおよび書き込みを行うことができる。記録媒体17aには、フレキシブルディスク、CD(Compact Disc)、DVD(Digital Versatile Disc)、SD(Secure Digital)メモリカード、USB(Universal Serial Bus)メモリ等がある。
【0028】
通信I/F18は、サービス提供システム10をネットワークN1に接続するインタフェースである。通信I/F18は、例えば、イーサネット(登録商標)に対応し、TCP(Transmission Control Protocol)/IP(Internet Protocol)等に準拠した通信が可能なインターフェースである。これにより、サービス提供システム10は、通信I/F18を介して通信を行うことができる。
【0029】
なお、サービス提供システム10は、補助記憶装置14に代え、記憶媒体としてフラッシュメモリを用いるドライブ装置(例えばソリッドステートドライブ:SSD)を利用するものであってもよい。
【0030】
本実施形態に係るサービス提供システム10およびPC端末30は、図2に示すハードウェア構成を有することにより、後述するような各種処理を実現できる。
【0031】
(機器のハードウェア構成)
図3は、実施形態に係る機器のハードウェア構成の一例を示す図である。図3を参照しながら、本実施形態に係る情報処理システム1に含まれる機器20が画像形成装置である場合のハードウェア構成について説明する。
【0032】
図3に示す機器20は、コントローラ21と、操作パネル22と、外部I/F23と、通信I/F24と、プリンタ25と、スキャナ26とを有する。また、コントローラ21は、CPU31と、RAM32と、ROM33と、NVRAM(Non-Volatile RAM)34と、補助記憶装置35とを有する。
【0033】
CPU31は、ROM33、NVRAM34、および補助記憶装置35等からプログラム、データ、設定情報等をRAM32上に読み出し、処理を実行することで、機器20全体の制御および機能を実現する演算装置である。
【0034】
RAM32は、プログラムやデータを一時保持する揮発性の半導体メモリである。ROM33は、各種プログラムおよびデータを格納している不揮発性の半導体メモリである。NVRAM34は、例えば設定情報等を格納している。補助記憶装置35は、各種プログラムおよびデータを格納している不揮発性の記憶装置である。補助記憶装置35は、HDDまたはSSD等である。
【0035】
操作パネル22は、ユーザからの入力を受け付ける入力部と、表示を行う表示部とを備えている。操作パネル22は、例えば、タッチパネル機能を搭載した液晶表示装置(LCD(Liquid Crystal Display))で構成される。なお、操作パネル22は、液晶表示装置に限定されるものではなく、例えば、タッチパネル機能が搭載された有機ELの表示装置で構成されていてもよい。また、操作パネル22は、タッチパネル機能に加えてまたはこれに代えて、ハードウェアキー等の操作部、またはランプ等の表示部を設けることもできる。
【0036】
外部I/F23は、外部装置とのインタフェースである。外部装置には、記録媒体23a等がある。これにより、機器20は、外部I/F23を介して記録媒体23aの読み取りおよび書き込みを行うことができる。なお、記録媒体23aには、例えば、ICカード、フレキシブルディスク、CD、DVD、SDメモリカード、USBメモリ等がある。
【0037】
通信I/F24は、機器20をネットワークに接続するインタフェースである。通信I/F24は、例えば、イーサネットに対応し、TCP/IP等に準拠した通信が可能なインターフェースである。これにより、機器20は、通信I/F24を介して通信を行うことができる。
【0038】
プリンタ25は、印刷データを印刷する印刷装置である。スキャナ26は、原稿を読み取って電子ファイル(画像ファイル)を生成する読取装置である。
【0039】
本実施形態に係る機器20は、図3に示すハードウェア構成を有することにより、後述するような各種処理を実現できる。
【0040】
(サービス提供システムが提供するサービス)
ここで、本実施形態に係るサービス提供システム10が提供するサービスについて説明する。なお、以降では、機器20がMFPであるものとして説明する。
【0041】
本実施形態では、機器20において原稿をスキャンすることにより生成された電子ファイル(画像ファイル)にOCR処理を行った上で、所定の言語に翻訳して、メール配信するサービスを「スキャン翻訳サービス」と称する。そして、本実施形態では、サービス提供システム10がスキャン翻訳サービスを提供する場合を例として説明する。
【0042】
ここで、サービス提供システム10がスキャン翻訳サービスを提供するには、機器20がスキャン翻訳サービスを利用するためのアプリケーション(後述するアプリ情報1000)をサービス提供システム10に登録する必要がある。
【0043】
したがって、本実施形態では、スキャン翻訳サービスを利用するためのアプリケーションをPC端末30が登録する場合と、当該アプリケーションを用いてスキャン翻訳サービスを機器20が利用する場合とについて説明する。
【0044】
なお、サービス提供システム10により提供されるサービスは、これらに限られない。サービス提供システム10は、例えば、機器20において原稿をスキャンすることにより生成された電子ファイルを暗号化した上で、メール配信するサービスを提供するサービスを提供してもよい。また、サービス提供システム10は、例えば、機器20において原稿をスキャンすることにより生成された電子ファイルに所定の情報を付加した上で、FAX送信するサービスを提供してもよい。
【0045】
(情報処理システムの機能構成)
図4は、実施形態に係る情報処理システムの機能構成の一例を示す図である。図4を参照しながら、本実施形態に係る情報処理システム1の機能構成について説明する。
【0046】
図4に示すPC端末30は、例えばCPU11等により実行されるブラウザ310を有する。PC端末30のユーザは、ブラウザ310を用いて、「スキャン翻訳サービス」等の各種サービスを利用するためのアプリケーションをサービス提供システム10に登録することができる。
【0047】
図4に示す機器20は、例えばCPU31等により実行されるブラウザ210を有する。機器20のユーザは、ブラウザ210を用いて、「スキャン翻訳サービス」等の各種サービスを利用することができる。すなわち、機器20は、ブラウザ210を有していればよく、例えば、サービス提供システム10が提供する各種サービスを利用するための専用のアプリケーションプログラム等を有している必要はない。
【0048】
図4に示すサービス提供システム10は、入出力サービス処理部110(停止検知処理部)と、Webサービス処理部120と、ドキュメントサービス部130と、ポータルサービス部140とを有する。これら各機能部は、サービス提供システム10にインストールされた1以上のプログラムが、CPU11に実行させる処理により実現される。
【0049】
また、サービス提供システム10は、アプリ情報記憶部150と、アプリ画面情報記憶部160と、ポータル画面情報記憶部170と、認証情報記憶部180と、停止検知結果記憶部190とを有する。これら各記憶部は、補助記憶装置14を用いて実現可能である。なお、これら各記憶部のうちの少なくとも1つの記憶部が、サービス提供システム10とネットワークを介して接続される記憶装置等を用いて実現されていてもよい。
【0050】
入出力サービス処理部110は、サービス提供システム10が提供するサービスに関する処理を行う。ここで、入出力サービス処理部110は、アプリ管理部111と、ロジック処理部112と、認証情報管理部113(第1登録部)と、停止検知オペレーション実行部114(取得部の一例、第2登録部)とを有する。
【0051】
アプリ管理部111は、アプリ情報記憶部150に記憶されているアプリ情報1000を管理する。なお、アプリ情報1000とは、一連の処理により実現されるサービスを利用するためのアプリケーションの情報である。換言すれば、サービス提供システム10が提供する各種サービスは、アプリ情報1000により提供される。
【0052】
また、アプリ管理部111は、ロジック処理部112からの要求に応じて、アプリ情報1000に含まれる処理フロー情報1100を返信する。なお、処理フロー情報1100とは、アプリ情報1000により提供されるサービスを実現する一連の処理が定義された情報である。
【0053】
さらに、アプリ管理部111は、ポータルサービス部140からの要求に応じて、アプリ情報1000をアプリ情報記憶部150に記憶させる。これにより、サービスを提供するアプリ情報1000(アプリケーション)がサービス提供システム10に登録される。
【0054】
ロジック処理部112は、Webサービス処理部120からの要求に応じて、アプリ情報1000に含まれる処理フロー情報1100をアプリ管理部111から取得する。そして、ロジック処理部112は、アプリ管理部111から取得した処理フロー情報1100に基づいて、当該アプリ情報1000が提供するサービスを実現する一連の処理(処理フロー)を実行する。これにより、本実施形態に係るサービス提供システムは、「スキャン翻訳サービス」等の各種サービスを提供することができる。
【0055】
また、ロジック処理部112は、停止検知オペレーション実行部114からの要求に応じて、停止検知オペレーションを実行する。ここで、停止検知オペレーションとは、クラウドサービス等の外部サービスが機能しているか否か、通信が可能か否か、およびサービスのAPIが期待通りに動作するか否か等を、認証情報(クラウドサービスのアカウント、またはアクセストークン等)を利用することによって検知する処理(オペレーション)を示すものとする。なお、ロジック処理部112の詳細については後述する。
【0056】
認証情報管理部113は、クラウドサービス等の外部サービスを利用するための認証情報を管理する。認証情報管理部113は、ユーザによりブラウザ310を介した認証情報の登録要求に基づいて、認証情報を認証情報記憶部180に記憶させる。
【0057】
停止検知オペレーション実行部114は、ロジック処理部112に対して、認証情報に基づく停止検知オペレーションの実行要求を行う。例えば、停止検知オペレーション実行部114は、一定時間ごと(例えば、5分ごと)に停止検知オペレーションの実行要求を行う。停止検知オペレーション実行部114は、ロジック処理部112により実行された停止検知オペレーションによる実行結果(停止検知結果)を停止検知結果記憶部190に蓄積させる。
【0058】
Webサービス処理部120は、ユーザが機器20のブラウザ210を用いて各種サービスを利用するための処理を行う。すなわち、Webサービス処理部120は、ブラウザ210に対してWebアプリケーション(アプリ情報1000)を提供するアプリケーションサーバとして機能する。ここで、Webサービス処理部120は、画面構成部121(取得部の一例、通知部)と、アプリ実行部122とを有する。
【0059】
画面構成部121は、ブラウザ210からの要求に応じて、アプリ画面情報記憶部160に記憶されているアプリ画面情報2000と、アプリ情報記憶部150に記憶されているアプリ情報1000に含まれるアプリ設定情報1200とを返信する。
【0060】
なお、アプリ画面情報2000とは、アプリ情報1000により提供されるサービスを利用するための画面(アプリ画面)の雛形が定義された情報である。アプリ画面情報2000は、例えば、HTML(HyperText Markup Language)、XHTML(Extensible HyperText Markup Language)、CSS(Cascading Style Sheets)、JavaScript(登録商標)等でアプリ画面の雛形が定義された情報である。
【0061】
また、アプリ設定情報1200は、アプリケーション(アプリ情報1000)の各種設定が定義された情報である。例えば、アプリ設定情報1200には、一連の処理の実行に用いられるパラメータ情報のうち、ユーザにより入力されるパラメータ情報、およびデフォルトで設定されるパラメータ情報等が定義されている。また、例えば、アプリ設定情報1200には、ユーザがアプリ画面においてパラメータ情報を入力するための入力項目、およびアプリ画面における表示情報(例えば、アプリケーション名)等が定義されている。アプリ設定情報1200は、例えば、JSON(JavaScript Object Notation)等でアプリケーションの各種設定が定義された情報である。
【0062】
これにより、機器20には、ブラウザ210により、サービス提供システム10が提供するサービスを利用するためのアプリ画面が表示される。
【0063】
アプリ実行部122は、ブラウザ210からの要求に応じて、入出力サービス処理部110に対して、アプリケーション(アプリ情報1000)の実行要求を送信する。
【0064】
ドキュメントサービス部130は、処理フロー情報1100に基づく一連の処理(処理フロー)に含まれる所定の処理を実行する。ここで、ドキュメントサービス部130は、OCR処理部131と、メール配信部132とを有する。
【0065】
OCR処理部131は、電子ファイルに対してOCR処理を行う。メール配信部132は、電子ファイルを添付したメールを作成して、当該メールを指定されたメールアドレス宛に配信する。
【0066】
なお、ドキュメントサービス部130には、これら以外にも、例えば、電子ファイルの圧縮または解凍するための圧縮・解凍処理部、電子ファイルのデータ形式を変換するためのデータ形式変換部等、種々の機能部が含まれていてもよい。
【0067】
ポータルサービス部140は、ユーザがPC端末30のブラウザ310を用いてアプリケーションの登録等を行うための処理を行う。ここで、ポータルサービス部140は、UI(User Interface)提供部141と、アプリ登録部142とを有する。
【0068】
UI提供部141は、ブラウザ310からの要求に応じて、ポータル画面情報記憶部170に記憶されているポータル画面情報3000を返信する。ここで、ポータルとは、ブラウザ310を用いて、アプリケーションの登録等を行うことができるWebサイトである。
【0069】
なお、ポータル画面情報3000とは、ポータルのトップ画面(ポータルトップ画面)、およびアプリケーション登録画面等の各種画面が定義された情報である。ポータル画面情報3000は、例えば、HTML、XML(Extensible Markup Language)、CSS、JavaScript等のブラウザ210で各種画面が定義された情報である。
【0070】
これにより、PC端末30には、ブラウザ310により、ポータルトップ画面およびアプリケーション登録画面等が表示される。したがって、PC端末30のユーザは、アプリケーション登録画面において、アプリケーション(アプリ情報1000)の登録操作を行うことができる。
【0071】
アプリ登録部142は、UI提供部141からの要求に応じて、アプリケーション(アプリ情報1000)の登録をアプリ管理部111に要求する。すなわち、アプリ登録部142は、アプリケーション登録画面において、アプリケーションの登録操作が行われると、アプリケーションの登録をアプリ管理部111に要求する。
【0072】
アプリ情報記憶部150は、アプリ情報1000を記憶する。アプリ情報1000は、当該アプリ情報1000を識別するアプリIDと関連付けてアプリ情報記憶部150に記憶されている。なお、アプリIDは、例えば、アプリ情報1000のURL(Uniform Resource Locator)、またはアプリ情報1000のURLに含まれる識別情報等である。
【0073】
ここで、アプリ情報1000は、処理フロー情報1100と、アプリ設定情報1200とを含む。例えば、スキャン翻訳サービスを提供するアプリ情報1000は、当該サービスを実現する一連の処理が定義された処理フロー情報1100と、当該アプリ情報1000の各種設定が定義されたアプリ設定情報1200とを含む。以降では、スキャン翻訳サービスを提供するアプリ情報1000を「スキャン翻訳アプリケーション」とも表す。
【0074】
なお、アプリ情報1000には、2以上の処理フロー情報1100と、2以上のアプリ設定情報1200とが含まれていてもよい。
【0075】
処理フロー情報1100は、上述したように、アプリ情報1000により提供されるサービスを実現する一連の処理(処理フロー)が定義された情報である。なお、処理フロー情報1100の詳細については後述する。
【0076】
また、アプリ設定情報1200は、上述したように、アプリケーション(アプリ情報1000)の各種設定が定義された情報である。なお、アプリ設定情報1200の詳細については後述する。
【0077】
アプリ画面情報記憶部160は、アプリ画面情報2000を記憶する。アプリ画面情報2000は、アプリIDと関連付けてアプリ画面情報記憶部160に記憶されている。
【0078】
ポータル画面情報記憶部170は、ポータル画面情報3000を記憶する。ポータル画面情報3000は、ポータルトップ画面やアプリケーション登録画面等のURLと関連付けてポータル画面情報記憶部170に記憶されている。
【0079】
認証情報記憶部180は、クラウドサービス等の外部サービスを利用するための認証情報を記憶する。
【0080】
停止検知結果記憶部190は、停止検知オペレーション実行部114による要求に従ってロジック処理部112により実行された停止検知オペレーションの実行結果(停止検知結果)を蓄積する。例えば、停止検知結果記憶部190は、停止検知結果を、停止検知オペレーションが実行された日時等と関連付けて記憶する。これによって、停止検知結果記憶部190に記憶された停止検知結果が、どのタイミングで行われた停止検知オペレーションの実行結果であるのかを確認することができる。
【0081】
なお、入出力サービス処理部110、Webサービス処理部120、ドキュメントサービス部130、およびポータルサービス部140等は、それぞれが異なる情報処理装置により実現されていてもよい。
【0082】
図5は、実施形態に係るロジック処理部の機能構成の一例を示す図である。図6は、コンポーネントが有するオペレーションの一例を示す図である。図5を参照しながら、ロジック処理部112の詳細な機能構成、およびコンポーネントの機能について説明する。
【0083】
図5に示すロジック処理部112は、フロー実行部301と、コンポーネント管理部302と、コンポーネント群303と、型変換管理部304と、型変換群305とを有する。また、ロジック処理部112は、型変換情報テーブル4000を有する。
【0084】
フロー実行部301は、アプリ実行部122からアプリケーションの実行要求を受信すると、当該実行要求に対応する処理フロー情報1100をアプリ管理部111から取得する。そして、フロー実行部301は、アプリ管理部111から取得した処理フロー情報1100に基づく一連の処理(処理フロー)を実行する。
【0085】
ここで、処理フロー情報1100に基づく一連の処理は、当該一連の処理に含まれる各処理を実行するためのコンポーネントを組み合わせることにより実行される。なお、コンポーネントは、所定の機能を実現する処理を実行するためのプログラムおよびモジュール等により実現され、例えばクラスまたは関数等で定義される。
【0086】
コンポーネント管理部302は、コンポーネントを管理する。コンポーネント管理部302は、フロー実行部301からの要求に応じて、コンポーネントを生成すると共に、生成したコンポーネントをフロー実行部301に返信する。なお、コンポーネントの生成とは、例えばクラスまたは関数等で定義されたコンポーネントを、メモリ(例えばRAM12)上に展開することである。
【0087】
コンポーネント群303は、コンポーネントの集合である。コンポーネント群303は、例えば、OCRコンポーネント1310と、翻訳コンポーネント1320と、メール配信コンポーネント1330とを含む。
【0088】
OCRコンポーネント1310は、電子ファイル(画像ファイル)をOCR処理するためのコンポーネントである。OCRコンポーネント1310は、ドキュメントサービス部130のOCR処理部131にOCR処理を要求することにより、電子ファイルのOCR処理を行う。
【0089】
翻訳コンポーネント1320は、テキストファイル等の電子ファイルにおいて、所定の言語で記載されている文書を他の言語に翻訳するためのコンポーネントである。
【0090】
メール配信コンポーネント1330は、指定されたメールアドレス宛にメール配信するためのコンポーネントである。メール配信コンポーネント1330は、ドキュメントサービス部130のメール配信部132もメール配信処理を要求することにより、指定されたメールアドレス宛にメールを配信する。
【0091】
このように、各コンポーネントは、所定の機能を実現する処理を実行する。なお、コンポーネント群303には、上記のコンポーネント以外にも、例えば、電子ファイルの暗号化および復号を行うための暗号化・復号コンポーネント、電子ファイルを圧縮するための圧縮コンポーネント等の各種のコンポーネントが含まれる。
【0092】
例えば、図6にコンポーネントおよび当該コンポーネントの機能の一例を示す。ここで、コンポーネントが有する機能を「オペレーション」とも称する。図6(b)に、コンポーネント群303が有するメール配信コンポーネント1330を示す他、図6(a)に、他のコンポーネントの例としてファイル入出力コンポーネント1340を示す。
【0093】
コンポーネントのオペレーションには、独自オペレーションおよび共通オペレーションの2種類がある。独自オペレーションとは、そのコンポーネントの独自の機能であり、入出力サービスにより自律的には利用されない機能である。すなわち、入出力サービスは、エンドユーザの操作によってそのオペレーションを利用するフローが実行される場合にのみ、その機能を利用する。アプリケーションの開発者は、独自オペレーションの機能が必要であると判断した場合に、それを利用するフローを定義することで当該機能を利用できる。
【0094】
共通オペレーションとは、複数のコンポーネントで共通に保有されている機能である。入出力サービスは、自身が提供する機能を実現するために、定期的または何らかのイベントをトリガとして、共通オペレーションの機能を実行する。また、エンドユーザの操作によって共通オペレーションを利用するフローが実行されるときにも、入出力サービスは当該共通オペレーションの機能を利用する。また、アプリケーションの開発者は、独自オペレーションと同様に、共通オペレーションを利用することができる。
【0095】
図6(b)に示すように、メール配信コンポーネント1330は、独自オペレーションとして、メールの送信機能を有し、共通オペレーションとして、停止検知機能を有する。図6(a)に示すように、ファイル入出力コンポーネント1340は、独自オペレーションとして、ファイルのアップロード機能、およびファイルのダウンロード機能を有し、共通オペレーションとして、フォルダ情報の取得機能、ファイルおよびフォルダの検索機能、ならびに、停止検知機能を有する。
【0096】
また、コンポーネント群303に含まれる各コンポーネントは、コンポーネント共通I/F1300を有する。コンポーネント共通I/F1300は、各コンポーネントに対して共通に定義されたAPI(Application Programming Interface)であり、コンポーネントを生成するためのAPIと、コンポーネントの処理を実行するためのAPIとが含まれる。
【0097】
このように、各コンポーネントがコンポーネント共通I/F1300を有することで、コンポーネントの追加等に伴う影響を局所化することができる。すなわち、例えば、フロー実行部301およびコンポーネント管理部302等に影響を与えることなく、コンポーネントの追加等を行うことができる。これにより、本実施形態に係るサービス提供システム10では、所定の機能の追加等(すなわち、当該機能を実現する処理を実行するためのコンポーネントの追加等)に伴う開発工数を削減することができる。
【0098】
型変換管理部304は、データ型の型変換を管理する。ここで、各コンポーネントは、自身が扱えるデータ型が予め決まっている。したがって、型変換管理部304は、コンポーネントからの要求に応じて、例えば図7に示す型変換情報テーブル4000を参照して、型変換群305に含まれる型変換を生成する。
【0099】
そして、型変換管理部304は、生成された型変換に型変換処理の実行を要求する。なお、型変換は、データ型の型変換処理を実行するプログラムまたはモジュール等により実現され、例えばクラスまたは関数等で定義される。また、型変換の生成とは、例えばクラスや関数等で定義された型変換を、メモリ(例えばRAM12上)に展開することである。
【0100】
なお、データ型には、例えば、ストリームデータを示すデータ型「InputStream」、記憶装置等に格納されている電子ファイルのパス(アドレス)を示す「LocalFilePath」、および電子ファイルの実体を示す「File」等が挙げられる。
【0101】
図7は、型変換情報テーブルの一例を示す図である。図7を参照しながら、型変換情報テーブル4000について説明する。
【0102】
図7に示す型変換情報テーブル4000は、データ項目として、変換前のデータ型と、変換後のデータ型と、生成する型変換とを有する。すなわち、型変換情報テーブル4000に格納されている型変換情報は、変換前のデータ型および変換後のデータ型毎に、当該変換前のデータ型を、当該変換後のデータ型に変換するための型変換が関連付けられた情報である。
【0103】
型変換群305は、型変換の集合である。型変換群305は、データ型「InputStream」を「LocalFilePath」に変換するための第1の型変換1410を含む。なお、型変換群305には、これ以外にも、例えば、データ型「LocalFilePath」を「File」に変換するための第2の型変換等が含まれる。
【0104】
また、型変換群305に含まれる各型変換は、型変換共通I/F1400を有する。型変換共通I/F1400は、各型変換に対して共通に定義されたAPIであり、型変換を生成するためのAPIと、型変換の型変換処理を実行するためのAPIとが含まれる。
【0105】
このように、各型変換が型変換共通I/F1400を有することで、型変換の追加等に伴う影響を局所化することができる。すなわち、例えば、型変換管理部304等に影響を与えることなく、型変換の追加等を行うことができる。これにより、本実施形態に係るサービス提供システム10では、型変換の追加等に伴う開発工数を削減することができる。
【0106】
図8は、処理フロー情報の一例を示す図である。図8を参照しながら、スキャン翻訳サービスを提供するアプリ情報1000に含まれる処理フロー情報1100について説明する。
【0107】
図8に示す処理フロー情報1100は、スキャン翻訳サービスを実現する一連の処理(処理フロー)が定義された情報である。
【0108】
図8に示す処理フロー情報1100は、処理フロー情報1100を識別するフロー名1101と、処理フローに含まれる各処理の処理内容が定義されたフロー詳細1102とを含む。
【0109】
フロー詳細1102は、処理フローに含まれる各処理をそれぞれ定義した詳細処理定義1110と、詳細処理定義1120と、詳細処理定義1130とを含む。詳細処理定義1110~1130は、詳細処理定義を識別する詳細処理名を示す「"detailName"」と、処理を実行するためのコンポーネントのコンポーネント名を示す「"component"」と、当該コンポーネントに対するパラメータ情報が定義される「"parameters"」とを含む。
【0110】
具体的には、詳細処理定義1110の「"detailName"」には、「"detail0"」が定義されている。また、詳細処理定義1110の「"component"」には、OCRコンポーネント1310のコンポーネント名「"ocr"」が定義されている。さらに、詳細処理定義1110の「"parameters"」には、パラメータ名「"language"」のパラメータ情報等が定義されている。
【0111】
パラメータ名「"language"」のパラメータ情報は、OCR処理の言語(例えば、「"Japanese"」や「"English"」等)をパラメータ値として設定するパラメータ情報である。
【0112】
同様に、詳細処理定義1120の「"detailName"」には、「"detail1"」が定義されている。また、詳細処理定義1120の「"component"」には、翻訳コンポーネント1320のコンポーネント名「"translation"」が定義されている。さらに、詳細処理定義1110の「"parameters"」には、パラメータ名「"from"」のパラメータ情報、およびパラメータ名「"to"」のパラメータ情報等が定義されている。
【0113】
パラメータ名「"from"」のパラメータ情報は、翻訳元の言語(例えば、「"English"」)をパラメータ値として設定するパラメータ情報である。また、パラメータ名「"to"」のパラメータ情報は、翻訳先の言語(例えば、「"Japanese"」)をパラメータ値として設定するパラメータ情報である。
【0114】
また、同様に、詳細処理定義1130の「"detailName"」には、「"detai21"」が定義されている。また、詳細処理定義1130の「"component"」には、メール配信コンポーネント1330のコンポーネント名「"mail"」が定義されている。さらに、詳細処理定義1130の「"parameters"」には、パラメータ名「"address"」のパラメータ情報等が定義されている。
【0115】
パラメータ名「"address"」のパラメータ情報は、メール送信先のメールアドレスをパラメータ値として設定するパラメータ情報である。
【0116】
また、各詳細処理定義に定義された処理の実行順は、フロー詳細1102において、上から順に定義される。すなわち、図8に示す処理フロー情報1100に基づく一連の処理(処理フロー)では、詳細処理定義1110に定義された処理、詳細処理定義1120に定義された処理、詳細処理定義1130に定義された処理の順で実行される。なお、これに限られず、処理フロー情報1100には、例えば、各詳細処理定義に定義された処理の実行順を示す情報が定義されていてもよい。
【0117】
なお、図8に示す例では、各パラメータ情報のパラメータ値は設定されていないが、これに限られず、デフォルトとなるパラメータ値が設定されていてもよい。
【0118】
(アプリケーションの登録処理)
図9は、アプリケーションの登録処理の一例を示すシーケンス図である。図9を参照しながら、本実施形態に係る情報処理システム1のアプリケーションの登録処理について説明する。具体的には、PC端末30のユーザが、スキャン翻訳アプリケーションをサービス提供システム10に登録する処理について説明する。
【0119】
まず、PC端末30のブラウザ310は、ポータルトップ画面を表示させるための操作
(ポータルトップ画面の表示操作)を受け付ける(ステップS801)。なお、PC端末30のユーザは、例えば、ポータルトップ画面のURLをブラウザ310のアドレスバーに入力することで、ポータルトップ画面の表示操作を行うことができる。
【0120】
PC端末30のブラウザ310は、ポータルトップ画面の表示操作を受け付けると、ポータルトップ画面の表示要求を、ポータルサービス部140のUI提供部141に送信する(ステップS802)。
【0121】
ポータルサービス部140のUI提供部141は、ポータルトップ画面の取得要求を受信すると、ポータルトップ画面のポータル画面情報をポータル画面情報記憶部170から取得する(ステップS803)。そして、UI提供部141は、ポータル画面情報記憶部170から取得したポータル画面情報をブラウザ310に返信する。
【0122】
PC端末30のブラウザ310は、ポータルトップ画面のポータル画面情報を受信すると、当該ポータル画面情報に基づいて、例えば図10に示すポータルトップ画面G100を表示する(ステップS804)。
【0123】
図10に示すポータルトップ画面G100は、ポータルのトップ画面であり、アプリケーションの登録を行うための「Application」ボタンG110を含む。以降では、ユーザが、図10に示すポータルトップ画面G100において、「Application」ボタンG110を選択する操作(アプリ登録の選択操作)を行ったものとする。
【0124】
また、図10に示すポータルトップ画面G100は、処理フロー情報1100の作成等を行うための「Flow」ボタンG120と、コンポーネントの登録等を行うための「Component」ボタンG130と、を含む。このように、ポータルトップ画面G100では、アプリケーションの登録以外にも、処理フローの作成・実行、コンポーネントの登録・更新等を行うことができる。
【0125】
PC端末30のブラウザ310は、ユーザにより行われたアプリ登録の選択操作を受け付ける(ステップS805)。
【0126】
PC端末30のブラウザ310は、アプリ登録の選択操作を受け付けると、アプリケーション登録画面の表示要求を、ポータルサービス部140のUI提供部141に送信する(ステップS806)。
【0127】
ポータルサービス部140のUI提供部141は、アプリケーション登録画面の表示要求を受信すると、アプリケーション登録画面のポータル画面情報をポータル画面情報記憶部170から取得する(ステップS807)。そして、UI提供部141は、ポータル画面情報記憶部170から取得したポータル画面情報をブラウザ310に返信する。
【0128】
PC端末30のブラウザ310は、アプリケーション登録画面のポータル画面情報を受信すると、当該ポータル画面情報に基づいて、例えば図11に示すアプリケーション登録画面G200を表示する(ステップS808)。
【0129】
ここで、以降では、図11図15を参照しながら、ユーザがアプリケーションの登録操作を行う場合について説明する。
【0130】
まず、図11に示すアプリケーション登録画面G200は、ユーザが登録するアプリケーションのタイプを選択するための画面である。
【0131】
図11に示すアプリケーション登録画面G200は、プリントタイプのアプリケーションを登録するための「プリント」ボタンG210と、スキャンタイプのアプリケーションを登録するための「スキャン」ボタンG220と、を含む。なお、図11に示すアプリケーション登録画面G200には、例えば、FAXタイプのアプリケーションを登録するための「FAX」ボタン、メール受信タイプのアプリケーションを登録するための「メール受信」ボタン等が含まれていてもよい。
【0132】
また、図11に示すアプリケーション登録画面G200は、次の画面に遷移するための「次へ」ボタンG240等を含む。
【0133】
図11に示すアプリケーション登録画面G200では、ユーザが「プリント」ボタンG210または「スキャン」ボタンG220のいずれかを選択すると、それぞれプリントタイプの説明またはスキャンタイプの説明が説明欄G230に表示される。
【0134】
なお、プリントタイプとは、一連の処理による実行結果を示す電子ファイルを画像形成装置等で印刷させるタイプのアプリケーションである。一方、スキャンタイプとは、画像形成装置等においてスキャンにより生成された電子ファイルを入力とした一連の処理を実行させるタイプのアプリケーションである。
【0135】
また、例えば、FAXタイプとは、一連の処理による実行結果を示す電子ファイルを画像形成装置等でFAX送信させるタイプのアプリケーションである。さらに、メール受信タイプとは、画像形成装置等が受信したメールに添付されている電子ファイルを入力とした一連の処理を実行させるタイプのアプリケーションである。
【0136】
以降では、ユーザが、図11に示すアプリケーション登録画面G200において、「スキャン」ボタンG220を選択した上で、「次へ」ボタンG240を押下する操作を行ったものとする。すると、ブラウザ310は、当該操作を受け付けて、例えば図12に示すアプリケーション登録画面G300を表示する。図12に示すアプリケーション登録画面G300は、ユーザがアプリケーションの基本情報を設定するための画面である。
【0137】
図12に示すアプリケーション登録画面G300は、アプリケーションの名称を設定するための「アプリ名」入力設定欄G310と、アプリ画面の画面形式を選択するための「デザインテンプレート」選択欄G320と、を含む。また、図12に示すアプリケーション登録画面G300は、アプリケーションを利用する際の認証を選択するための「認証」選択欄G330と、アプリ画面の表示言語を選択するための「表示言語」選択欄G340と、を含む。さらに、図12に示すアプリケーション登録画面G300は、次の画面に遷移するための「次へ」ボタンG350等を含む。
【0138】
「デザインテンプレート」選択欄G320では、例えば、アプリ画面が一画面で表示される「一画面形式」、アプリ画面を対話形式で表示する「ウィザード形式」等を選択することができる。また、「認証」選択欄G330では、認証を用いないことを示す「なし」、認証を用いることを示す「ユーザ認証」等を選択することができる。
【0139】
以降では、ユーザが、図12に示すアプリケーション登録画面G300のように、アプリケーション名の入力または各種選択を行った上で、「次へ」ボタンG350を押下する操作を行ったものとする。すると、ブラウザ310は、当該操作を受け付けて、例えば図13に示すアプリケーション登録画面G400を表示する。
【0140】
図13に示すアプリケーション登録画面G400は、ユーザがアプリケーションの詳細情報として、登録するアプリケーションに対して一連の処理(処理フロー)を設定するための画面である。
【0141】
図13に示すアプリケーション登録画面G400は、アプリ情報記憶部150に記憶されている処理フロー情報1100のフロー名を検索するための検索欄G410と、フロー名を選択するためのフロー選択欄G420と、を含む。ユーザは、所望のフローの名称等を検索欄G410に入力した上で、フロー選択欄G420から所望のフロー名を選択することができる。
【0142】
また、図13に示すアプリケーション登録画面G400は、フロー選択欄G420で選択されたフロー名の処理フロー情報1100に基づく一連の処理の概要を表示する概要表示欄G430と、次の画面に遷移するための「次へ」ボタンG440と、を含む。
【0143】
さらに、図13に示すアプリケーション登録画面G400は、フロー選択欄G420で選択されたフロー名の処理フロー情報1100の編集および更新を行うための「更新」ボタンG421と、新規に処理フロー情報1100を作成するための「新規」ボタンG422と、を含む。ユーザは、「更新」ボタンG421を押下することで、フロー選択欄G420で選択したフロー名の処理フロー情報1100の編集および更新を行うことができる。また、ユーザは、「新規」ボタンG422を押下することで、処理フロー情報1100を作成した上で、作成した処理フロー情報1100のフロー名をフロー選択欄G420で選択することができる。
【0144】
以降では、ユーザが、フロー名「translate-mail」をフロー選択欄G420で選択した上で、「次へ」ボタンG440を押下する操作を行ったものとする。すると、ブラウザ310は、当該操作を受け付けて、例えば図14に示すアプリケーション登録画面G500を表示する。
【0145】
図14に示すアプリケーション登録画面G500は、ユーザがアプリケーションの詳細情報として、図13に示すアプリケーション登録画面G400で設定された一連の処理(処理フロー)のパラメータ情報を設定するための画面である。
【0146】
図14に示すアプリケーション登録画面G500は、一連の処理に含まれる各処理を実行するコンポーネントを選択するための「コンポーネント」選択欄G510を含む。また、図14に示すアプリケーション登録画面G500は、「コンポーネント」選択欄G510で選択されたコンポーネントのパラメータ情報を設定するための「パラメータ情報」設定欄G520と、次の画面に遷移するための「次へ」ボタンG530と、を含む。
【0147】
ユーザは、「コンポーネント」選択欄G510から所望のコンポーネントを選択した上で、「パラメータ情報」設定欄G520にてパラメータ情報の各種設定を行うことができる。例えば、ユーザが「コンポーネント」選択欄G510から翻訳コンポーネント1320を選択した場合、「パラメータ情報」設定欄G520では、翻訳コンポーネント1320が用いるパラメータ情報の各種設定を行うことができる。
【0148】
具体的には、パラメータ情報の各種設定には、「select」、「displayname」、「name」、「type」、「default」、および「input type」等の設定項目がある。設定項目「name」には、パラメータ情報のパラメータ名が設定される。設定項目「type」には、パラメータ値として設定することができるデータ形式が設定される。設定項目「defalt」には、デフォルトとして設定されるパラメータ値が設定される。
【0149】
また、設定項目「select」には、パラメータ情報のパラメータ値をユーザ(サービスの利用者)に入力させるか否かが設定される。設定項目「select」にチェックが入れられたパラメータ情報は、アプリ画面においてユーザ(サービスの利用者)がパラメータ値を入力することができる。一方で、設定項目「select」にチェックが入れられていないパラメータ情報は、アプリ画面においてユーザがパラメータ値を入力することができず、設定項目「default」に設定されたパラメータ値が用いられる。
【0150】
また、設定項目「input type」には、設定項目「select」にチェックが入れられたパラメータ情報について、アプリ画面における入力方法が設定される。設定項目「iput type」では、例えば、パラメータ値の一覧から所望のパラメータ値を選択する入力方法「list-radio-button」、パラメータ値を直接入力する入力方法「text」等を設定することができる。なお、設定項目「input type」には、これら以外にも、例えば、画面上の座標を入力する入力方法、所望のフォルダやファイルを選択するための入力方法等を選択することができてもよい。
【0151】
さらに、設定項目「displayname」には、アプリ画面に表示される入力項目(パラメータ値を入力させるための項目)の表示名が設定される。設定項目「displayname」には、図12に示すアプリケーション登録画面G300の「表示言語」選択欄G340で選択した言語の表示名を設定することができる。すなわち、例えば、「表示言語」選択欄G340で「Japanese」および「English」が選択された場合、設定項目「displayname」には、例えば、日本語の表示名「翻訳元」と、英語の表示名「Source Language」とを設定することができる。
【0152】
これにより、ユーザは、各コンポーネントが用いるパラメータ情報について、パラメータ情報のパラメータ値をサービスの利用者に入力させるか否か、その入力方法等を設定することができる。
【0153】
以降では、ユーザが、各コンポーネントが用いるパラメータ情報を設定した上で、「次へ」ボタンG530を押下する操作を行ったものとする。すると、ブラウザ310は、当該操作を受け付けて、例えば図15に示すアプリケーション登録画面G600を表示する。
【0154】
図15に示すアプリケーション登録画面G600は、図11図14で設定された各種情報(アプリ設定情報)をユーザが確認するための画面である。
【0155】
図15に示すアプリケーション登録画面G600は、「アプリ設定情報」表示欄G610と、「登録」ボタンG620と、を含む。ユーザは、「アプリ設定情報」表示欄G610において、図11図14で設定した各種情報を確認することができる。
【0156】
ここで、ユーザは、「アプリ設定情報」表示欄G610でアプリ設定情報を確認した上で、「登録」ボタンG620を押下する操作(アプリケーションの登録操作)を行ったものとする。すると、ブラウザ310は、アプリケーションの登録操作を受け付ける(ステップS809)。
【0157】
ブラウザ310は、アプリケーションの登録操作を受け付けると、例えば図16に示すアプリ設定情報1200を作成する(ステップS810)。
【0158】
図16は、アプリ設定情報の一例を示す図である。図16を参照しながら、アプリ設定情報1200について説明する。
【0159】
図16に示すアプリ設定情報1200は、アプリタイプ1201、アプリ名1202、アプリ表示名1203、認証タイプ1204、およびフロー名1205を含む。また、図16に示すアプリ設定情報1200は、デザインテンプレートタイプ1206、デフォルトパラメータ1207、およびユーザ入力パラメータ1208等を含む。
【0160】
アプリタイプ1201は、図11に示すアプリケーション登録画面G200で選択されたアプリケーションのタイプである。図16に示す例では、アプリケーションのタイプがスキャンタイプであることを示す「"app_type":"scan"」が定義されている。
【0161】
アプリ名1202は、図12に示すアプリケーション登録画面G300の「アプリ名」入力設定欄G310に入力されたアプリ名である。図16に示す例では、アプリ名が「スキャン翻訳アプリケーション」であることを示す「"appName":"スキャン翻訳アプリケーション"」が定義されている。
【0162】
アプリ表示名1203は、アプリ画面に表示されるアプリケーション名称(タイトル)である。図16に示す例では、日本語では「スキャン翻訳」、英語では「Translation App」と表示されることが定義される。
【0163】
認証タイプ1204は、図12に示すアプリケーション登録画面G300の「認証」選択欄G330で選択された認証である。図16に示す例では、認証しないことを示す「"loginType":"none"」が定義されている。
【0164】
フロー名1205は、図13に示すアプリケーション登録画面G400のフロー選択欄G420で選択されたフロー名である。図16に示す例では、フロー名が「"translate-mail"」であることを示す「"flowName":"translate-mail"」が定義されている。
【0165】
デザインテンプレートタイプ1206は、図12に示すアプリケーション登録画面G300の「デザインテンプレート」選択欄G320で選択された表示形式である。図16に示す例では、一画面形式でアプリ画面を表示することを示す「"viewTemplate":"一画面形式"」が定義されている。
【0166】
デフォルトパラメータ1207は、アプリ画面においてユーザがパラメータ値を入力しないパラメータ情報が定義されている。すなわち、デフォルトパラメータ1207には、図14に示すアプリケーション登録画面G500の「パラメータ情報」設定欄G520において、設定項目「select」のチェックを入れなかったパラメータ情報が定義される。図16に示す例では、詳細処理名「detail0」(すなわち、図8における詳細処理定義1110)に定義されたパラメータ名「"language"」のパラメータ情報は、デフォルトのパラメータ値として、「"English"」が設定されることが定義されている。
【0167】
このように、デフォルトパラメータ1207には、デフォルトでパラメータ値が設定されるパラメータ情報が定義されている。換言すれば、デフォルトパラメータ1207には、ユーザがパラメータ値を設定しないパラメータ情報が定義されている。
【0168】
ユーザ入力パラメータ1208は、アプリ画面においてユーザによりパラメータ値が入力されるパラメータ情報が定義されている。すなわち、ユーザ入力パラメータ1208には、図14に示すアプリケーション登録画面G500の「パラメータ情報」設定欄G520において、設定項目「select」のチェックを入れたパラメータ情報が定義される。
【0169】
図16に示す例では、詳細処理名「detail1」(すなわち、図8における詳細処理定義1120)に定義されたパラメータ名「"from"」のパラメータ値がユーザに入力されることを示す入力定義1218が定義されている。同様に、詳細処理名「detail1」(すなわち、図8における詳細処理定義1120)に定義されたパラメータ名「"to"」のパラメータ値がユーザに入力されることを示す入力定義1228が定義されている。また、同様に、詳細処理名「detail2」(すなわち、図8における詳細処理定義1130)に定義されたパラメータ名「"address"」のパラメータ値がユーザに入力されることを示す入力定義1238が定義されている。
【0170】
このように、ユーザ入力パラメータ1208には、アプリ画面においてユーザがパラメータ値を入力するパラメータ情報が定義されている。
【0171】
以上のように、アプリ設定情報1200には、アプリ画面に表示される表示情報(例えば、タイトル)、アプリ画面の入力項目(パラメータ値を入力または選択する項目)、および当該入力項目における入力方法等が定義されている。また、アプリ設定情報1200には、パラメータ値がデフォルトで設定されるパラメータ情報(すなわち、アプリ画面でパラメータ値が入力または選択されないパラメータ情報)等が定義されている。
【0172】
ブラウザ310は、アプリ設定情報1200を作成すると、アプリケーションの登録要求を、ポータルサービス部140のアプリ登録部142に送信する(ステップS811)。なお、アプリケーションの登録要求には、ステップS810で作成されたアプリ設定情報1200が含まれる。
【0173】
ポータルサービス部140のアプリ登録部142は、アプリケーションの登録要求を受信すると、当該登録要求を、入出力サービス処理部110のアプリ管理部111に送信する(ステップS812)。
【0174】
入出力サービス処理部110のアプリ管理部111は、アプリケーションの登録要求を受信すると、アプリケーションを登録する(ステップS813)。そして、アプリ管理部111は、登録結果をブラウザ310に返信する。
【0175】
すなわち、アプリ管理部111は、アプリケーションの登録要求に含まれるアプリ設定情報1200をアプリIDと関連付けてアプリ情報記憶部150に記憶する。これにより、当該アプリ設定情報1200と、当該アプリ設定情報1200のフロー名1205に定義されたフロー名の処理フロー情報1100とを含むアプリ情報1000がサービス提供システム10に登録される。
【0176】
以上により、本実施形態に係る情報処理システム1では、ユーザがPC端末30を用いて、サービス提供システム10にアプリケーションを登録することができる。しかも、本実施形態に係る情報処理システム1では、ユーザがPC端末30を用いて、例えば、フロー名や各コンポーネントのパラメータ情報等を設定することで、容易にアプリケーション(アプリ情報1000)を登録することができる。
【0177】
したがって、本実施形態に係る情報処理システム1によれば、例えば、プログラミング言語等の専門的な知識や経験を有しないユーザ(例えば、企画担当者等)であっても、各種サービスを提供するアプリケーション(アプリ情報1000)を登録することができる。
【0178】
(認証情報の登録処理)
図17は、実施形態に係る情報処理システムの認証情報の登録処理の一例を示すシーケンス図である。図17を参照しながら、本実施形態に係る情報処理システム1の認証情報の登録処理について説明する。
【0179】
まず、PC端末30のブラウザ310は、外部サービスの認可画面を表示させるため操作(認可画面の表示操作)を受け付ける。なお、PC端末30のユーザは、例えば、外部サービスの認可画面のURLをブラウザ310のアドレスバーに入力することで、当該認可画面の表示操作を行うことができる。
【0180】
PC端末30のブラウザ310は、認可画面の表示操作を受け付けると、認可画面の表示要求を、ポータルサービス部140のUI提供部141に送信する。ポータルサービス部140のUI提供部141は、認可画面の取得要求を受信すると、認可画面のポータル画面情報をポータル画面情報記憶部170から取得する。そして、UI提供部141は、ポータル画面情報記憶部170から取得したポータル画面情報をブラウザ310に返信する。PC端末30のブラウザ310は、認可画面のポータル画面情報を受信すると、当該ポータル画面情報に基づいて、認可画面を表示する。ブラウザ310は、開発者等であるユーザにより利用される認可画面を経由して、クラウドサービス等の外部サービスを利用するための認証情報を取得する(ステップS901)。
【0181】
PC端末30のブラウザ310は、取得した認証情報の登録要求を、ポータルサービス部140のUI提供部141に送信する(ステップS902)。なお、認証情報の登録要求には、ステップS901で取得された認証情報が含まれる。
【0182】
ポータルサービス部140のUI提供部141は、認証情報の登録要求を受信すると、当該登録要求を、入出力サービス処理部110の認証情報管理部113に送る(ステップS903)。
【0183】
入出力サービス処理部110の認証情報管理部113は、認証情報の登録要求を受け取ると、当該登録要求に含まれる認証情報を認証情報記憶部180に記憶させることにより登録する(ステップS904)。そして、認証情報管理部113は、登録結果をブラウザ310に返信する。
【0184】
以上により、本実施形態に係る情報処理システム1では、ユーザがPC端末30を用いて、サービス提供システム10に外部サービスを利用するための認証情報を登録することができる。これにより、入出力サービス処理部110では、外部サービスに対する停止検知処理において、登録した認証情報を利用して停止検知オペレーションを実行することが可能となる。なお、認証情報が無効となった場合には、開発者等であるユーザは、再度、上述の認証情報の登録処理によって、新たな認証情報を再登録するものとすればよい。
【0185】
(外部サービスに対する停止検知処理)
図18は、実施形態の入出力サービス処理部の停止検知処理の一例を示すシーケンス図である。図18を参照しながら、本実施形態の入出力サービス処理部110による外部サービスに対する停止検知処理について説明する。
【0186】
入出力サービス処理部110の停止検知オペレーション実行部114は、停止検知オペレーションの実行のために利用する認証情報の取得要求を、認証情報管理部113に送る(ステップS1001)。
【0187】
認証情報管理部113は、認証情報の取得要求を受け取ると、認証情報記憶部180に登録されている外部サービスを利用するための認証情報を取得する(ステップS1002)。そして、認証情報管理部113は、認証情報記憶部180から取得した認証情報を停止検知オペレーション実行部114に返信する。
【0188】
停止検知オペレーション実行部114は、認証情報を受け取ると、停止検知オペレーションの実行要求を、ロジック処理部112に送る(ステップS1003)。なお、停止検知オペレーションの実行要求には、ステップS1002で取得された認証情報が含まれる。
【0189】
ロジック処理部112は、停止検知オペレーションの実行要求を受け取ると、当該実行要求に含まれる認証情報を利用して、クラウドサービス等の外部サービスが機能しているか否か、通信が可能か否か、およびサービスのAPIが期待通りに動作するか否か等を検知する停止検知オペレーションを実行する(ステップS1004)。そして、ロジック処理部112は、停止検知オペレーションの実行結果(停止検知結果)を、停止検知オペレーション実行部114に返信する。
【0190】
停止検知オペレーション実行部114は、停止検知オペレーションの停止検知結果を受け取ると、以降のアプリケーションの起動時に利用するため、当該停止検知結果を停止検知結果記憶部190に蓄積させる(ステップS1005)。
【0191】
以上の入出力サービス処理部110による停止検知処理は、例えば、一定時間ごと(例えば、5分ごと)(所定のタイミングの一例)に実行される。なお、一定時間ごとに実行するのは、ステップS1001~S1005の処理全体であってもよく、または、一度取得した認証情報を再利用して、ステップS1003~S1005のみを一定時間ごとに実行するものとしてもよい。また、停止検知処理は、一定時間ごとに実行されることに限定されるものではなく、例えば、所定のスケジュールに従ったタイミング(所定のタイミングの一例)で実行されるものとしてもよい。これによって、外部サービスの最新の状態が停止検知結果として停止検知結果記憶部190に蓄積されるので、当該外部サービスを利用するアプリケーションの起動時に、当該停止検知結果を参照して、アプリケーションの起動を中止するか否かを判断することができる。
【0192】
(アプリケーションを利用する場合の処理)
図19は、実施形態に係る情報処理システムでアプリケーションを利用する場合において停止検知結果が停止していないことを示すときの全体処理の一例を示すシーケンス図である。図20は、スキャン翻訳アプリケーションのアプリ画面の一例を示す図である。まず、図19および図20を参照しながら、アプリケーションの実行前に外部サービスが停止してないことを確認した場合にアプリケーションを実行する処理について説明する。
【0193】
まず、機器20のブラウザ210は、スキャン翻訳サービスのアプリ画面を表示させるための操作(表示操作)を受け付ける(ステップS1601)。機器20のユーザは、例えば、スキャン翻訳サービスのアプリ画面のURLをブラウザ310のアドレスバーに入力することで、アプリ画面の表示操作を行うことができる。
【0194】
機器20のブラウザ210は、スキャン翻訳サービスのアプリ画面の表示操作を受け付けると、スキャン翻訳サービスのアプリ画面の表示要求を、Webサービス処理部120の画面構成部121に送信する(ステップS1602)。スキャン翻訳サービスのアプリ画面の表示要求には、スキャン翻訳サービスを提供するアプリ情報1000のアプリIDが含まれる。
【0195】
Webサービス処理部120の画面構成部121は、スキャン翻訳サービスのアプリ画面の表示要求を受信すると、アプリ設定の取得の前に、外部サービスの状態を取得するための停止検知結果要求を、入出力サービス処理部110の停止検知オペレーション実行部114に送信する(ステップS1603)。
【0196】
入出力サービス処理部110の停止検知オペレーション実行部114は、停止検知結果要求を受け取ると、停止検知結果記憶部190に蓄積されている外部サービスの停止検知結果のうち、最後(すなわち最新)の停止検知結果を取得する(ステップS1604)。ここでは、最後の停止検知結果が、外部サービスが「停止していない」、すなわち正常に稼働していることを示しているものとする。そして、停止検知オペレーション実行部114は、停止検知結果記憶部190から取得した最後の停止検知結果を、Webサービス処理部120の画面構成部121に返信する。
【0197】
Webサービス処理部120の画面構成部121は、最後の停止検知結果を受信すると、当該停止検知結果が「停止していない」ことを示すことを確認し、アプリ設定の取得要求を、入出力サービス処理部110のアプリ管理部111に送信する(ステップS1605)。アプリ設定の取得要求には、スキャン翻訳サービスを提供するアプリ情報1000のアプリIDが含まれる。このように、停止検知結果を取得することによって、外部サービスが停止しているか否かを判断することができ、停止検知結果が、外部サービスが「停止していない」、すなわち正常に稼働していることを示している場合、アプリケーションの実行に移行させることができる。
【0198】
入出力サービス処理部110のアプリ管理部111は、アプリ設定の取得要求を受信すると、当該取得要求に含まれるアプリIDに関連付けて記憶されているアプリ設定情報1200をアプリ情報記憶部150から取得する(ステップS1606)。そして、アプリ管理部111は、アプリ情報記憶部150から取得したアプリ設定情報1200を画面構成部121に返信する。
【0199】
次に、Webサービス処理部120の画面構成部121は、スキャン翻訳サービスを提供するアプリ情報1000のアプリIDと関連付けて記憶されているアプリ画面情報2000をアプリ画面情報記憶部160から取得する(ステップS1607)。そして、画面構成部121は、アプリ画面情報記憶部160から取得したアプリ画面情報2000と、上記のステップS1606で返信されたアプリ設定情報1200とをブラウザ210に返信する。
【0200】
機器20のブラウザ210は、画面構成部121から受信したアプリ画面情報2000とアプリ設定情報1200とに基づいて、例えば図20に示すアプリ画面G700を表示する(ステップS1608)。ここで、図20に示すアプリ画面G700は、機器20のユーザがスキャン翻訳サービスを利用するための画面である。
【0201】
図20に示すアプリ画面G700は、アプリ名G710と、パラメータ入力エリアG720と、「スタート」ボタンG730と、を含む。また、パラメータ入力エリアG720は、翻訳元言語入力欄G721と、翻訳先言語入力欄G722と、メール送信先入力欄G723と、を含む。
【0202】
アプリ名G710は、図16に示すアプリ設定情報1200のアプリ表示名1203に基づいて表示される。また、アプリ表示名1203に複数の言語のアプリケーション名称(タイトル)が定義されている場合、ブラウザ210の言語設定に対応する言語のアプリケーション名称がアプリ名G710に表示される。
【0203】
また、翻訳元言語入力欄G721、翻訳先言語入力欄G722、およびメール送信先入力欄G723は、図16に示すアプリ設定情報1200のユーザ入力パラメータ1208に基づいて表示される。
【0204】
すなわち、翻訳元言語入力欄G721は、ユーザ入力パラメータ1208の入力定義1218に基づいて表示される。同様に、翻訳先言語入力欄G722は、ユーザ入力パラメータ1208の入力定義1228に基づいて表示される。また、同様に、メール送信先入力欄G723は、ユーザ入力パラメータ1208の入力定義1238に基づいて表示される。
【0205】
このように、機器20のユーザがサービスを利用するためのアプリ画面には、アプリ設定情報1200に定義されている情報に基づいて、アプリ名およびパラメータ入力エリアが表示される。
【0206】
ここで、図20に示すアプリ画面G700において、ユーザは、翻訳元言語入力欄G721に「English」、翻訳先言語入力欄G722に「Japanese」、およびメール送信先入力欄G723に「abc@abc.co.jp」を入力したものとする。そして、図20に示すアプリ画面G700において、ユーザは、「スタート」ボタンG730を押下する操作(実行操作)を行ったものとする。
【0207】
すると、機器20のブラウザ210は、実行操作を受け付ける(ステップS1609)。そして、機器20のブラウザ210は、スキャナ26を制御して、原稿を読み取ることで、電子ファイル(画像ファイル)を生成する(ステップS1610)。
【0208】
機器20のブラウザ210は、電子ファイル(画像ファイル)が生成されると、アプリケーションの実行要求を、Webサービス処理部120のアプリ実行部122に送信する(ステップS1611)。アプリケーションの実行要求には、アプリ設定情報1200のフロー名1205に定義されたフロー名「translate-mail」と、上記のステップS1610で生成された電子ファイルと、パラメータ設定情報とが含まれる。
【0209】
ここで、パラメータ設定情報とは、アプリ設定情報1200のデフォルトパラメータ1207に定義されているパラメータ情報、およびユーザによりアプリ画面G700でパラメータ値が設定されたパラメータ情報である。
【0210】
具体的には、デフォルトパラメータ1207に定義されているパラメータ情報は、「"language":"English"」である。また、ユーザによりアプリ画面G700でパラメータ値が設定されたパラメータ情報は、「"from":"English"」、「"to":"Japanese"」、および「"address":"abc@abc.co.jp"」である。
【0211】
Webサービス処理部120のアプリ実行部122は、アプリケーションの実行要求を受信すると、当該実行要求を、入出力サービス処理部110のロジック処理部112に送信する(ステップS1612)。
【0212】
次に、入出力サービス処理部110のロジック処理部112は、アプリケーションの実行要求を受信すると、処理フローの実行処理を行う(ステップS1613)。すなわち、ロジック処理部112は、当該要求に含まれるフロー名の処理フロー情報1100に基づく一連の処理を実行する。なお、処理フローの実行処理の詳細については後述する。
【0213】
そして、ロジック処理部112は、処理フローの実行処理の処理結果を、Webサービス処理部120を介して、ブラウザ210に返信する。これにより、本実施形態に係るサービス提供システム10は、スキャン翻訳サービスを提供することができる。
【0214】
図21は、スキャン翻訳サービスを実現する処理フローの実行処理の一例を示すシーケンス図である。図21を参照しながら、処理フローの実行処理(図19のステップS1613の処理)の詳細について説明する。
【0215】
まず、フロー実行部301は、アプリ実行部122からアプリケーションの実行要求を受信すると、処理フローの取得要求をアプリ管理部111に送信する(ステップS1801)。当該取得要求には、フロー名「translate-mail」が含まれる。
【0216】
アプリ管理部111は、処理フローの取得要求を受信すると、当該取得要求に含まれるフロー名「translate-mail」の処理フロー情報1100をアプリ情報記憶部150から取得する(ステップS1802)。そして、アプリ管理部111は、アプリ情報記憶部150から取得した処理フロー情報1100をフロー実行部301に返信する。
【0217】
ここで、以降では、アプリ管理部111は、図8に示す処理フロー情報1100をフロー実行部301に返信したものとして説明する。
【0218】
次に、フロー実行部301は、処理フロー情報1100に基づくコンポーネントの取得要求をコンポーネント管理部302に送信する(ステップS1803)。
【0219】
すなわち、フロー実行部301は、図8に示す処理フロー情報1100の詳細処理定義1110に含まれる「"component"」に定義されているコンポーネント名「"ocr"」のコンポーネントの取得要求をコンポーネント管理部302に送信する。
【0220】
コンポーネント管理部302は、コンポーネントの取得要求を受信すると、コンポーネント名「"ocr"」のコンポーネント(すなわち、OCRコンポーネント1310)を生成する(ステップS1804)。なお、OCRコンポーネント1310の生成は、コンポーネント共通I/F1300に定義されたコンポーネントを生成するためのAPIを用いて行うことができる。
【0221】
そして、コンポーネント管理部302は、生成したOCRコンポーネント1310をフロー実行部301に返信する。すなわち、コンポーネント管理部302は、例えば、OCRコンポーネント1310が展開されたメモリ(例えばRAM12)上のアドレスをフロー実行部301に返信する。
【0222】
次に、フロー実行部301は、コンポーネント実行要求をOCRコンポーネント1310に送信する(ステップS1805)。当該実行要求には、データと、パラメータ情報とが含まれる。
【0223】
ここで、データは、データ型「InputStream」として、ブラウザ210から受信した電子ファイルである。すなわち、フロー実行部301は、ブラウザ210から受信した電子ファイルを、単に「データ」として(データ型を意識することなく)、OCRコンポーネント1310に渡して処理の実行を要求する。本実施形態では、このようにデータ型を意識しない電子ファイル等の各種の情報を、単に「データ」と表す。
【0224】
また、パラメータ情報は、図8に示す処理フロー情報1100の詳細処理定義1110に含まれる「"parameters"」に定義されている各パラメータ情報のパラメータ値に、パラメータ設定情報の各パラメータ値を設定したものである。すなわち、パラメータ情報は、「"language":"English"」等である。
【0225】
OCRコンポーネント1310は、コンポーネント実行要求を受信すると、型変換要求を型変換管理部304に送信する(ステップS1806)。当該型変換要求には、データと、OCRコンポーネント1310が扱うことができるデータ型を示す「LocalFilePath」の指定とが含まれる。
【0226】
型変換管理部304は、型変換要求を受信すると、当該型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するか否かをチェックする(ステップS1807)。
【0227】
ここで、型変換要求に含まれるデータのデータ型は「InputStream」である一方、指定されたデータ型は「LocalFilePath」である。したがって、型変換管理部304は、型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致しないものと判断する。
【0228】
すると、型変換管理部304は、型変換情報テーブル4000を参照して、データ型「InputStream」を「LocalFilePath」に変換するための型変換を特定する(ここでは、第1の型変換1410が特定される。)。そして、型変換管理部304は、特定した第1の型変換1410を生成する(ステップS1808)。第1の型変換1410の生成は、型変換共通I/F1400を用いて行うことができる。
【0229】
次に、型変換管理部304は、型変換処理の実行要求を第1の型変換1410に送信する(ステップS1809)。当該実行要求には、データが含まれる。
【0230】
第1の型変換1410は、型変換の実行要求を受信すると、当該実行要求に含まれるデータのデータ型を「InputStream」から「LocalFilePath」に変換する型変換処理を行う(ステップS1810)。そして、第1の型変換1410は、データ型が変換されたデータを型変換管理部304に返信する。
【0231】
そして、型変換管理部304は、第1の型変換1410からデータを受信すると、当該データをOCRコンポーネント1310に送信する(ステップS1811)。
【0232】
OCRコンポーネント1310は、型変換管理部304からデータを受信すると、パラメータ情報を用いて、データに対して処理を実行する(ステップS1812)。
【0233】
すなわち、OCRコンポーネント1310は、OCR処理部131により、パラメータ情報「"language":"English"」を用いて、データにより示される電子ファイルに対して、英語でOCR処理を行う。
【0234】
そして、OCRコンポーネント1310は、OCR処理後の電子ファイル(すなわち、テキストファイル)を示すデータをフロー実行部301に返信する。
【0235】
次に、フロー実行部301は、処理フロー情報1100に基づくコンポーネントの取得要求をコンポーネント管理部302に送信する(ステップS1813)。
【0236】
すなわち、フロー実行部301は、図8に示す処理フロー情報1100の詳細処理定義1120に含まれる「"component"」に定義されているコンポーネント名「"translation"」のコンポーネントの取得要求をコンポーネント管理部302に送信する。
【0237】
コンポーネント管理部302は、コンポーネントの取得要求を受信すると、コンポーネント名「"translation"」のコンポーネント(すなわち、翻訳コンポーネント1320)を生成する(ステップS1814)。翻訳コンポーネント1320の生成は、コンポーネント共通I/F1300に定義されたコンポーネントを生成するためのAPIを用いて行うことができる。
【0238】
そして、コンポーネント管理部302は、生成した翻訳コンポーネント1320をフロー実行部301に返信する。すなわち、コンポーネント管理部302は、例えば、翻訳コンポーネント1320が展開されたメモリ(例えばRAM12)上のアドレスをフロー実行部301に返信する。
【0239】
次に、フロー実行部301は、コンポーネント実行要求を翻訳コンポーネント1320に送信する(ステップS1815)。当該実行要求には、データと、パラメータ情報とが含まれる。
【0240】
ここで、データは、OCRコンポーネント1310から返信されたデータ(すなわち、OCR処理後の電子ファイルを示すパス)である。
【0241】
また、パラメータ情報は、図8に示す処理フロー情報1100の詳細処理定義1120に含まれる「"parameters"」に定義されている各パラメータ情報のパラメータ値に、パラメータ設定情報の各パラメータ値を設定したものである。すなわち、パラメータ情報は、「"from":"English"」、および「"to":"Japanese"」等である。
【0242】
翻訳コンポーネント1320は、コンポーネント実行要求を受信すると、型変換要求を型変換管理部304に送信する(ステップS1816)。当該型変換要求には、データと、翻訳コンポーネント1320が扱うことができるデータ型を示す「LocalFilePath」の指定とが含まれる。
【0243】
型変換管理部304は、型変換要求を受信すると、当該型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するか否かをチェックする(ステップS1817)。
【0244】
ここで、型変換要求に含まれるデータのデータ型は「LocalFilePath」であり、指定されたデータ型も「LocalFilePath」である。したがって、型変換管理部304は、型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するものと判断する。
【0245】
すると、型変換管理部304は、型変換要求に含まれるデータを翻訳コンポーネント1320に送信する(ステップS1818)。このように、データ型のチェック(ステップS1817の処理)において、データのデータ型と、指定されたデータ型とが一致すると判断された場合には、型変換管理部304は、型変換の生成を行わない。
【0246】
翻訳コンポーネント1320は、型変換管理部304からデータを受信すると、パラメータ情報を用いて、データに対して処理を実行する(ステップS1819)。すなわち、翻訳コンポーネント1320は、パラメータ情報「"from":"English"」および「"to":"Japanese"」を用いて、データにより示される電子ファイルを英語から日本語に翻訳する処理を行う。
【0247】
そして、翻訳コンポーネント1320は、翻訳処理後の電子ファイルを示すデータをフロー実行部301に返信する。
【0248】
なお、翻訳コンポーネント1320は、例えば、サービス提供システム10とネットワークを介して接続される翻訳サーバ等に翻訳処理を要求することにより、電子ファイルの翻訳を行ってもよい。
【0249】
次に、フロー実行部301は、処理フロー情報1100に基づくコンポーネントの取得要求をコンポーネント管理部302に送信する(ステップS1820)。
【0250】
すなわち、フロー実行部301は、図8に示す処理フロー情報1100の詳細処理定義1130に含まれる「"component"」に定義されているコンポーネント名「"mail"」のコンポーネントの取得要求をコンポーネント管理部302に送信する。
【0251】
コンポーネント管理部302は、コンポーネントの取得要求を受信すると、コンポーネント名「"mail"」のコンポーネント(すなわち、メール配信コンポーネント1330)を生成する(ステップS1821)。なお、メール配信コンポーネント1330の生成は、コンポーネント共通I/F1300に定義されたコンポーネントを生成するためのAPIを用いて行うことができる。
【0252】
そして、コンポーネント管理部302は、生成したメール配信コンポーネント1330をフロー実行部301に返信する。すなわち、コンポーネント管理部302は、例えば、メール配信コンポーネント1330が展開されたメモリ(例えばRAM12)上のアドレスをフロー実行部301に返信する。
【0253】
次に、フロー実行部301は、コンポーネント実行要求をメール配信コンポーネント1330に送信する(ステップS1822)。当該実行要求には、データと、パラメータ情報とが含まれる。
【0254】
ここで、データは、翻訳コンポーネント1320から返信されたデータ(すなわち、翻訳後の電子ファイルを示すパス)である。
【0255】
また、パラメータ情報は、図8に示す処理フロー情報1100の詳細処理定義1130に含まれる「"parameters"」に定義されている各パラメータ情報のパラメータ値に、パラメータ設定情報の各パラメータ値を設定したものである。すなわち、パラメータ情報は、「"address":"abc@abc.co.jp"」等である。
【0256】
メール配信コンポーネント1330は、コンポーネント実行要求を受信すると、型変換要求を型変換管理部304に送信する(ステップS1823)。当該型変換要求には、データと、メール配信コンポーネント1330が扱うことができるデータ型を示す「LocalFilePath」の指定とが含まれる。
【0257】
型変換管理部304は、型変換要求を受信すると、当該型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するか否かをチェックする(ステップS1824)。
【0258】
ここで、型変換要求に含まれるデータのデータ型は「LocalFilePath」であり、指定されたデータ型も「LocalFilePath」である。したがって、型変換管理部304は、型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するものと判断する。
【0259】
すると、型変換管理部304は、型変換要求に含まれるデータをメール配信コンポーネント1330に送信する(ステップS1825)。このように、データ型のチェック(ステップS1824の処理)において、データのデータ型と、指定されたデータ型とが一致すると判断された場合には、型変換管理部304は、型変換の生成を行わない。
【0260】
メール配信コンポーネント1330は、型変換管理部304からデータを受信すると、パラメータ情報を用いて、データに対して処理を実行する(ステップS1826)。
【0261】
すなわち、メール配信コンポーネント1330は、メール配信部132により、データにより示される電子ファイルを添付したメールを作成する。次に、メール配信コンポーネント1330は、パラメータ情報「"address":"abc@abc.co.jp"」を用いて、メール配信部132により、当該メールを「abc@abc.co.jp」宛に送信する。
【0262】
そして、メール配信コンポーネント1330は、メールの送信結果を示すデータをフロー実行部301に返信する。
【0263】
以上により、図8に示す処理フロー情報1100に基づく一連の処理(処理フロー)の実行が完了する。これにより、本実施形態に係るサービス提供システム10は、機器20に対して、スキャン翻訳サービスを提供することができる。
【0264】
このように、本実施形態に係る情報処理システム1では、ユーザがPC端末30を用いて、各種サービスを提供するアプリ情報1000をサービス提供システム10に登録することができる。しかも、本実施形態に係る情報処理システム1では、ユーザがPC端末30を用いて、フロー名を選択した上で、必要なパラメータ情報等を設定することで、容易にアプリ情報1000を登録することができる。したがって、本実施形態に係る情報処理システム1では、例えば、プログラミング言語等の専門的な知識および経験を有しないユーザであっても、容易にアプリケーション(アプリ情報1000)の作成・登録を行うことができる。また、本実施形態に係る情報処理システム1では、ユーザが機器20を用いて、サービス提供システム10に登録されたアプリケーションにより提供される各種サービスを利用することができる。
【0265】
図22は、実施形態に係る情報処理システムでアプリケーションを利用する場合において停止検知結果が停止していることを示すときの処理の一例を示すシーケンス図である。図23は、外部サービスが停止していることを示すサービス停止表示画面の一例を示す図である。次に、図22および図23を参照しながら、アプリケーションの実行前に外部サービスが停止していることを確認した場合にアプリケーションの実行を中止する動作について説明する。
【0266】
まず、機器20のブラウザ210は、スキャン翻訳サービスのアプリ画面を表示させるための操作(表示操作)を受け付ける(ステップS1701)。機器20のユーザは、例えば、スキャン翻訳サービスのアプリ画面のURLをブラウザ310のアドレスバーに入力することで、アプリ画面の表示操作を行うことができる。
【0267】
機器20のブラウザ210は、スキャン翻訳サービスのアプリ画面の表示操作を受け付けると、スキャン翻訳サービスのアプリ画面の表示要求を、Webサービス処理部120の画面構成部121に送信する(ステップS1702)。スキャン翻訳サービスのアプリ画面の表示要求には、スキャン翻訳サービスを提供するアプリ情報1000のアプリIDが含まれる。
【0268】
Webサービス処理部120の画面構成部121は、スキャン翻訳サービスのアプリ画面の表示要求を受信すると、アプリ設定の取得の前に、外部サービスの状態を取得するための停止検知結果要求を、入出力サービス処理部110の停止検知オペレーション実行部114に送信する(ステップS1703)。
【0269】
入出力サービス処理部110の停止検知オペレーション実行部114は、停止検知結果要求を受け取ると、停止検知結果記憶部190に蓄積されている外部サービスの停止検知結果のうち、最後(すなわち最新)の停止検知結果を取得する(ステップS1704)。ここでは、最後の停止検知結果が、外部サービスが「停止している」、すなわち正常に稼働していないことを示しているものとする。そして、停止検知オペレーション実行部114は、停止検知結果記憶部190から取得した最後の停止検知結果を、Webサービス処理部120の画面構成部121に返信する。Webサービス処理部120の画面構成部121は、最後(最新)の停止検知結果を受信すると、当該停止検知結果が「停止している」ことを示すことを確認し、当該停止検知結果を、機器20のブラウザ210に返信する。このように、停止検知結果を取得することによって、外部サービスが停止しているか否かを判断することができ、停止検知結果が、外部サービスが「停止している」、すなわち正常に稼働していないことを示している場合、アプリケーションの実行の中止動作(すなわち、アプリ実行部122は、アプリケーションの実行要求をロジック処理部112へ出力しない)へ移行させることができる。
【0270】
機器20のブラウザ210は、外部サービスが「停止している」ことを示す停止検知結果を受信すると、例えば図23に示すような、利用する外部サービスが停止している旨を示すサービス停止表示画面G800を表示することにより、当該外部サービスが停止していることを通知する(ステップS1705)。これによって、ユーザ(エンドユーザ)は、外部サービスが停止していることによりアプリケーションが実行できない旨を把握することができる。
【0271】
以上のように、本実施形態に係る情報処理システム1では、停止検知オペレーションの実行により外部サービスの状態を停止検知結果として蓄積しておき、当該外部サービスを利用するアプリケーションを利用する場合に、当該停止検知結果を取得するものとしている。そして、停止検知結果が外部サービスが停止していることを示す場合には、アプリケーションを利用させることなく、当該アプリケーションの起動時に当該外部サービスの停止状態を通知することができる。特に、外部サービスに対する停止検知オペレーションでは、当該外部サービスを利用するための認証情報を用いて停止検知オペレーションを行うことにより、クラウドサービス等の外部サービスが機能しているか否か、通信が可能か否か、およびサービスのAPIが期待通りに動作するか否か等の状態を、停止検知結果として取得することができる。
【0272】
(変形例1)
本実施形態の変形例1に係る情報処理システム1について、上述した実施形態に係る情報処理システム1と相違する点を中心に説明する。上述した実施形態では、外部サービスが停止している場合に、当該外部サービスを用いたアプリケーションを利用するエンドユーザに対して、当該外部サービスが停止している旨を通知するものとしている。本変形例では、予め登録したアプリケーション開発者およびコンポーネント開発者等のユーザに対して、外部サービスが停止している旨を通知する動作について説明する。
【0273】
なお、本変形例に係る情報処理システム1に含まれるサービス提供システム10、機器20、およびPC端末30のハードウェア構成および機能構成は、上述の実施形態と同様である
【0274】
<通知先ユーザの登録処理>
図24は、実施形態の変形例1に係る情報処理システムの通知先ユーザの登録処理の一例を示すシーケンス図である。図24を参照しながら、本変形例に係る情報処理システム1の通知先ユーザの登録処理について説明する。
【0275】
まず、PC端末30のブラウザ310は、外部サービスが停止している旨を通知するユーザを登録するための登録画面を表示させるため操作を受け付ける。なお、PC端末30のユーザは、例えば、外部サービスの認可画面のURLをブラウザ310のアドレスバーに入力することで、当該登録画面の表示操作を行うことができる。
【0276】
PC端末30のブラウザ310は、登録画面の表示操作を受け付けると、登録画面の表示要求を、ポータルサービス部140のUI提供部141に送信する。ポータルサービス部140のUI提供部141は、登録画面の取得要求を受信すると、登録画面のポータル画面情報をポータル画面情報記憶部170から取得する。そして、UI提供部141は、ポータル画面情報記憶部170から取得したポータル画面情報をブラウザ310に返信する。PC端末30のブラウザ310は、登録画面のポータル画面情報を受信すると、当該ポータル画面情報に基づいて、登録画面を表示する。ブラウザ310は、ユーザの操作を受け付けることによって、ユーザが所望する外部サービスが停止している旨の通知先となるユーザの登録要求を、ポータルサービス部140のUI提供部141に送信する(ステップS1101)。なお、認証情報の登録要求には、通知先として指定されたユーザ情報(ユーザID、メールアドレス等)が含まれる。
【0277】
ポータルサービス部140のUI提供部141は、通知先となるユーザの登録要求を受信すると、当該登録要求を、入出力サービス処理部110の停止検知オペレーション実行部114に送る(ステップS1102)。
【0278】
入出力サービス処理部110の停止検知オペレーション実行部114は、通知先となるユーザの登録要求を受け取ると、当該登録要求に含まれるユーザ情報を記憶部(認証情報記憶部180等)に記憶させることにより登録する(ステップS1103)。そして、停止検知オペレーション実行部114は、登録結果をブラウザ310に返信する。なお、ユーザ情報を記憶させる記憶部としては、認証情報記憶部180もしくは停止検知結果記憶部190であってもよく、または、別の記憶部であってもよい。
【0279】
以上により、本変形例に係る情報処理システム1では、ユーザがPC端末30を用いて、外部サービスが停止している旨の通知先となるユーザを登録することができる。これにより、入出力サービス処理部110では、外部サービスに対する停止検知処理において、登録したユーザに対して、外部サービスが停止している旨を通知することが可能となる。すなわち、実際のエンドユーザから機器20での表示により障害報告を待つことなく、停止検知処理で通知を受けた開発者等(登録したユーザ)は対応に着手できるため、ダウンタイムを短縮することができる。
【0280】
<外部サービスに対する停止検知処理>
図25は、実施形態の変形例1の入出力サービス処理部の停止検知処理の一例を示すシーケンス図である。図26は、通知先ユーザへの通知内容の一例を示す図である。図25および図26を参照しながら、本変形例の入出力サービス処理部110による外部サービスに対する停止検知処理について説明する。なお、本変形例の停止検知処理のうちステップS1201~S1204の処理は、それぞれ上述した図18に示すステップS1001~S1004の処理と同様である。以下、ステップS1205以降の処理を説明する。
【0281】
入出力サービス処理部110の停止検知オペレーション実行部114は、ロジック処理部112から停止検知オペレーションの停止検知結果を受け取ると、当該停止検知結果が外部サービスの停止しているか否かを判定する。停止検知結果が「停止している」を示している場合、停止検知オペレーション実行部114は、ステップS1103で登録された通知先のユーザ情報を参照し、当該ユーザ情報が示すユーザに停止検知結果を含む情報を通知する(ステップS1205)。例えば、停止検知オペレーション実行部114は、ユーザ情報に含まれるメールアドレスに、例えば、停止検知結果を含む図26に示すドキュメントを送信することによって通知する。図26に示すドキュメントの例では、コンポーネント「AAA Drive」について、フォルダ検索APIが期待通りに動作していない旨を示している。
【0282】
さらに、停止検知オペレーション実行部114は、以降のアプリケーションの起動時に利用するため、停止検知オペレーションの停止検知結果を停止検知結果記憶部190に蓄積させる(ステップS1206)。
【0283】
以上の入出力サービス処理部110による停止検知処理は、例えば、一定時間ごと(例えば、5分ごと)に実行される。なお、一定時間ごとに実行するのは、ステップS1201~S1206の処理全体であってもよく、または、一度取得した認証情報を再利用して、ステップS1203~S1206のみを一定時間ごとに実行するものとしてもよい。また、停止検知処理は、一定時間ごとに実行されることに限定されるものではなく、例えば、所定のスケジュールに従ったタイミングで実行されるものとしてもよい。
【0284】
これによって、外部サービスの最新の状態が停止検知結果として停止検知結果記憶部190に蓄積されると共に、外部サービスが停止している場合には、アプリケーションの起動が行われなくても、当該停止検知処理が実行された場合に、予め登録されているアプリケーション開発者およびコンポーネント開発者等のユーザに対して停止検知結果を通知することができる。したがって、アプリケーション開発者およびコンポーネント開発者等のユーザは、停止検知結果の通知内容に基づいて、いち早く外部サービスの停止に対する措置を取ることが可能となる。
【0285】
(変形例2)
本実施形態の変形例2に係る情報処理システム1について、上述した変形例1に係る情報処理システム1と相違する点を中心に説明する。上述した変形例1では、外部サービスが停止している場合に、停止検知処理が実行される度に、予め登録されたユーザに外部サービスが停止している旨を通知するものとしている。本変形例では、外部サービスが停止した後に初めて実行される停止検知処理において、予め登録されたユーザに外部サービスが停止している旨を通知する動作について説明する。
【0286】
なお、本変形例に係る情報処理システム1に含まれるサービス提供システム10、機器20、およびPC端末30のハードウェア構成および機能構成は、上述の実施形態と同様である。
【0287】
<外部サービスに対する停止検知処理>
図27は、実施形態の変形例2の入出力サービス処理部の停止検知処理の一例を示すシーケンス図である。図27を参照しながら、本変形例の入出力サービス処理部110による外部サービスに対する停止検知処理について説明する。なお、本変形例の停止検知処理のうちステップS1301~S1304の処理は、それぞれ上述した図25に示すステップS1201~S1204の処理(すなわち、図18に示すステップS1001~S1004の処理)と同様である。以下、ステップS1305以降の処理を説明する。
【0288】
入出力サービス処理部110の停止検知オペレーション実行部114は、ロジック処理部112から停止検知オペレーションの停止検知結果を受け取ると、当該停止検知結果が外部サービスの停止しているか否かを判定する。停止検知結果が「停止している」を示している場合、停止検知オペレーション実行部114は、停止検知結果記憶部190に蓄積されている停止検知結果のうち最後(すなわち最新)の停止検知結果を取得する。停止検知オペレーション実行部114は、ロジック処理部112から受け取った停止検知結果が「停止している」を示している場合、かつ、取得した最後の停止検知結果が「停止していない」を示している場合、図24に示すステップS1103で登録された通知先のユーザ情報を参照し、当該ユーザ情報が示すユーザに停止検知結果を含む情報を通知する(ステップS1305)。例えば、停止検知オペレーション実行部114は、ユーザ情報に含まれるメールアドレスに、例えば、停止検知結果を含む図26に示すドキュメントを送信することによって通知する。
【0289】
さらに、停止検知オペレーション実行部114は、以降のアプリケーションの起動時に利用するため、ロジック処理部112から受け取った停止検知オペレーションの停止検知結果を停止検知結果記憶部190に蓄積させる(ステップS1306)。
【0290】
以上の入出力サービス処理部110による停止検知処理は、例えば、一定時間ごと(例えば、5分ごと)に実行される。なお、一定時間ごとに実行するのは、ステップS1301~S1306の処理全体であってもよく、または、一度取得した認証情報を再利用して、ステップS1303~S1306のみを一定時間ごとに実行するものとしてもよい。また、停止検知処理は、一定時間ごとに実行されることに限定されるものではなく、例えば、所定のスケジュールに従ったタイミングで実行されるものとしてもよい。
【0291】
これによって、外部サービスが停止した後に初めて実行される停止検知処理においてのみ、予め登録されたユーザに外部サービスが停止している旨を通知することができる。したがって、予め登録されたユーザへの不要な通知を低減することができる。
【0292】
(変形例3)
本実施形態の変形例3に係る情報処理システム1について、上述した実施形態に係る情報処理システム1と相違する点を中心に説明する。上述した実施形態では、入出力サービス処理部110が一定時間ごとに停止検知処理を実行して停止検知結果を蓄積し、アプリケーションの起動時に停止検知結果を取得して、アプリケーションを実行させるか否かを判断するものとしている。本変形例では、アプリケーションを起動する場合に、入出力サービス処理部110により停止検知処理が行われ、当該停止検知処理の停止検知結果に基づいて、アプリケーションを実行させるか否かを判断する動作について説明する。
【0293】
<アプリケーションを利用する場合の処理>
図28は、実施形態の変形例3に係る情報処理システムでアプリケーションを利用する場合において停止検知結果が停止していないことを示すときの全体処理の一例を示すシーケンス図である。まず、図28を参照しながら、アプリケーションの実行前に外部サービスが停止してないことを確認した場合にアプリケーションを実行する処理について説明する。
【0294】
まず、機器20のブラウザ210は、スキャン翻訳サービスのアプリ画面を表示させるための操作(表示操作)を受け付ける(ステップS1901)。機器20のユーザは、例えば、スキャン翻訳サービスのアプリ画面のURLをブラウザ310のアドレスバーに入力することで、アプリ画面の表示操作を行うことができる。
【0295】
機器20のブラウザ210は、スキャン翻訳サービスのアプリ画面の表示操作を受け付けると、スキャン翻訳サービスのアプリ画面の表示要求を、Webサービス処理部120の画面構成部121に送信する(ステップS1902)。ここで、例えば、ブラウザ210は、ユーザの認証情報を取得しているものとする。したがって、スキャン翻訳サービスのアプリ画面の表示要求には、スキャン翻訳サービスを提供するアプリ情報1000のアプリIDが含まれると共に、認証情報が含まれるものとする。
【0296】
Webサービス処理部120の画面構成部121は、スキャン翻訳サービスのアプリ画面の表示要求を受信すると、アプリ設定の取得の前に、外部サービスの状態を取得するための停止検知結果要求を、入出力サービス処理部110の停止検知オペレーション実行部114に送信する(ステップS1903)。なお、停止検知結果要求には、認証情報が含まれる。
【0297】
入出力サービス処理部110の停止検知オペレーション実行部114は、停止検知結果要求を受け取ると、停止検知オペレーションの実行要求を、ロジック処理部112に送る(ステップS1904)。なお、停止検知オペレーションの実行要求には、認証情報が含まれる。
【0298】
入出力サービス処理部110のロジック処理部112は、停止検知オペレーションの実行要求を受け取ると、当該実行要求に含まれる認証情報を利用して、クラウドサービス等の外部サービスが機能しているか否か、通信が可能か否か、およびサービスのAPIが期待通りに動作するか否か等を検知する停止検知オペレーションを実行する(ステップS1905)。ロジック処理部112は、停止検知オペレーションの実行結果(停止検知結果)を、停止検知オペレーション実行部114に返信する。すなわち、停止検知オペレーション実行部114は、外部サービスの最新の状態を示す停止検知結果(最新の停止検知結果)を直接取得することになる。ここでは、停止検知結果が、外部サービスが「停止していない」、すなわち正常に稼働していることを示しているものとする。そして、停止検知オペレーション実行部114は、受信した停止検知結果を、Webサービス処理部120の画面構成部121に返信する。すなわち、画面構成部121は、外部サービスの最新の状態を示す停止検知結果(最新の停止検知結果)を直接取得することになる。
【0299】
Webサービス処理部120の画面構成部121は、停止検知結果を受信すると、当該停止検知結果が「停止していない」ことを示すことを確認し、アプリ設定の取得要求を、入出力サービス処理部110のアプリ管理部111に送信する(ステップS1906)。アプリ設定の取得要求には、スキャン翻訳サービスを提供するアプリ情報1000のアプリIDが含まれる。このように、停止検知結果を取得することによって、外部サービスが停止しているか否かを判断することができ、停止検知結果が、外部サービスが「停止していない」、すなわち正常に稼働していることを示している場合、アプリケーションの実行に移行させることができる。
【0300】
入出力サービス処理部110のアプリ管理部111は、アプリ設定の取得要求を受信すると、当該取得要求に含まれるアプリIDに関連付けて記憶されているアプリ設定情報1200をアプリ情報記憶部150から取得する(ステップS1907)。そして、アプリ管理部111は、アプリ情報記憶部150から取得したアプリ設定情報1200を画面構成部121に返信する。
【0301】
次に、Webサービス処理部120の画面構成部121は、スキャン翻訳サービスを提供するアプリ情報1000のアプリIDと関連付けて記憶されているアプリ画面情報2000をアプリ画面情報記憶部160から取得する(ステップS1908)。そして、画面構成部121は、アプリ画面情報記憶部160から取得したアプリ画面情報2000と、上記のステップS1907で返信されたアプリ設定情報1200とをブラウザ210に返信する。
【0302】
機器20のブラウザ210は、画面構成部121から受信したアプリ画面情報2000とアプリ設定情報1200とに基づいて、例えば図20に示すアプリ画面G700を表示する(ステップS1909)。
【0303】
以降の処理は、上述した図19のステップS1609~S1613の処理と同様である。なお、ブラウザ210は、ユーザの認証情報を取得しているものとして説明したが、ステップS1904の処理の前に、停止検知オペレーション実行部114が認証情報管理部113から認証情報を取得する動作としてもよい。
【0304】
図29は、実施形態の変形例3に係る情報処理システムでアプリケーションを利用する場合において停止検知結果が停止していることを示すときの処理の一例を示すシーケンス図である。次に、図29を参照しながら、アプリケーションの実行前に外部サービスが停止していることを確認した場合にアプリケーションの実行を中止する動作について説明する。
【0305】
まず、機器20のブラウザ210は、スキャン翻訳サービスのアプリ画面を表示させるための操作(表示操作)を受け付ける(ステップS2001)。機器20のユーザは、例えば、スキャン翻訳サービスのアプリ画面のURLをブラウザ310のアドレスバーに入力することで、アプリ画面の表示操作を行うことができる。
【0306】
機器20のブラウザ210は、スキャン翻訳サービスのアプリ画面の表示操作を受け付けると、スキャン翻訳サービスのアプリ画面の表示要求を、Webサービス処理部120の画面構成部121に送信する(ステップS2002)。ここで、例えば、ブラウザ210は、予め認証情報管理部113等から認証情報を取得しているものとする。したがって、スキャン翻訳サービスのアプリ画面の表示要求には、スキャン翻訳サービスを提供するアプリ情報1000のアプリIDが含まれると共に、認証情報が含まれるものとする。
【0307】
Webサービス処理部120の画面構成部121は、スキャン翻訳サービスのアプリ画面の表示要求を受信すると、アプリ設定の取得の前に、外部サービスの状態を取得するための停止検知結果要求を、入出力サービス処理部110の停止検知オペレーション実行部114に送信する(ステップS2003)。なお、停止検知結果要求には、認証情報が含まれる。
【0308】
入出力サービス処理部110の停止検知オペレーション実行部114は、停止検知結果要求を受け取ると、停止検知オペレーションの実行要求を、ロジック処理部112に送る(ステップS2004)。なお、停止検知オペレーションの実行要求には、認証情報が含まれる。
【0309】
入出力サービス処理部110のロジック処理部112は、停止検知オペレーションの実行要求を受け取ると、当該実行要求に含まれる認証情報を利用して、クラウドサービス等の外部サービスが機能しているか否か、通信が可能か否か、およびサービスのAPIが期待通りに動作するか否か等を検知する停止検知オペレーションを実行する(ステップS2005)。ロジック処理部112は、停止検知オペレーションの実行結果(停止検知結果)を、停止検知オペレーション実行部114に返信する。ここでは、停止検知結果が、外部サービスが「停止している」、すなわち正常に稼働していないことを示しているものとする。そして、停止検知オペレーション実行部114は、受信した停止検知結果を、Webサービス処理部120の画面構成部121に返信する。Webサービス処理部120の画面構成部121は、停止検知結果を受信すると、当該停止検知結果が「停止している」ことを示すことを確認し、当該停止検知結果を、機器20のブラウザ210に返信する。このように、停止検知結果を取得することによって、外部サービスが停止しているか否かを判断することができ、停止検知結果が、外部サービスが「停止している」、すなわち正常に稼働していないことを示している場合、アプリケーションの実行の中止動作へ移行させることができる。
【0310】
機器20のブラウザ210は、外部サービスが「停止している」ことを示す停止検知結果を受信すると、例えば上述の図23に示すような、利用する外部サービスが停止している旨を示すサービス停止表示画面G800を表示することにより、当該外部サービスが停止していることを通知する(ステップS2006)。これによって、ユーザ(エンドユーザ)は、外部サービスが停止していることによりアプリケーションが実行できない旨を把握することができる。
【0311】
以上のように、本変形例に係る情報処理システム1では、アプリケーションを起動時をトリガとして、入出力サービス処理部110により停止検知処理が行われ、当該停止検知処理の停止検知結果に基づいて、アプリケーションを実行させるか否かを判断するものとしている。したがって、アプリ起動時に停止検知を実行するので、ユーザの認証情報を利用することができ、よりリアルタイムで正確な停止検知処理を実行できるので、例えば金融系等のクリティカルなソリューションでは有用になる。そして、停止検知結果が外部サービスが停止していることを示す場合には、アプリケーションを利用させることなく、当該アプリケーションの起動時に当該外部サービスの停止状態を通知することができる。特に、外部サービスに対する停止検知オペレーションでは、当該外部サービスを利用するための認証情報を用いて停止検知オペレーションを行うことにより、クラウドサービス等の外部サービスが機能しているか否か、通信が可能か否か、およびサービスのAPIが期待通りに動作するか否か等の状態を、停止検知結果として取得することができる。
【0312】
(変形例4)
本実施形態の変形例4に係る情報処理システム1について、上述した変形例1に係る情報処理システム1と相違する点を中心に説明する。上述した変形例1では、入出力サービス処理部110における停止検知処理が行われたときに、外部サービスが停止している場合、予め登録されたユーザに外部サービスが停止している旨を通知するものとしている。本変形例では、外部サービスが停止している場合であって、予め登録されたユーザに対して、通知が必要な場合のみ通知を行う動作をについて説明する。
【0313】
<外部サービスに対する停止検知処理>
図30は、実施形態の変形例4に係る入出力サービス処理部の停止検知処理の一例を示すシーケンス図である。図30を参照しながら、本変形例の入出力サービス処理部110による外部サービスに対する停止検知処理について説明する。なお、本変形例の停止検知処理のうちステップS1401~S1403の処理は、それぞれ上述した図25に示すステップS1201~S1203の処理(すなわち、図18に示すステップS1001~S1003の処理)と同様である。以下、ステップS1404以降の処理を説明する。
【0314】
ロジック処理部112は、停止検知オペレーションの実行要求を受け取ると、当該実行要求に含まれる認証情報を利用して、クラウドサービス等の外部サービスが機能しているか否か、通信が可能か否か、およびサービスのAPIが期待通りに動作するか否か等を検知する停止検知オペレーションを実行する(ステップS1404)。そして、ロジック処理部112は、停止検知オペレーションの実行結果(停止検知結果)を取得すると共に、通知が必要であるか否かの情報、およびエンドユーザ向けのメッセージを取得し、これらを停止検知オペレーション実行部114に返信する。
【0315】
入出力サービス処理部110の停止検知オペレーション実行部114は、ロジック処理部112から停止検知オペレーションの停止検知結果、通知が必要であるか否かの情報、およびエンドユーザ向けのメッセージを受け取ると、当該停止検知結果が外部サービスの停止しているか否か、および通知が必要であるか否かを判定する。停止検知結果が「停止している」を示していて、かつ通知が必要であるか否かの情報が通知が必要であることを示している場合、停止検知オペレーション実行部114は、上述の図24のステップS1103で登録された通知先のユーザ情報を参照し、当該ユーザ情報が示すユーザに停止検知結果を含む情報を通知する(ステップS1405)。例えば、停止検知オペレーション実行部114は、ユーザ情報に含まれるメールアドレスに、例えば、停止検知結果を含む上述の図26に示すドキュメントを送信することによって通知する。
【0316】
さらに、停止検知オペレーション実行部114は、以降のアプリケーションの起動時に利用するため、停止検知オペレーションの停止検知結果、およびエンドユーザ向けのメッセージを停止検知結果記憶部190に蓄積させる(ステップS1406)。
【0317】
<アプリケーションを利用する場合の処理>
図31は、実施形態の変形例4に係る情報処理システムでアプリケーションを利用する場合において停止検知結果が停止していることを示すときの処理の一例を示すシーケンス図である。図31を参照しながら、アプリケーションの実行前に外部サービスが停止していることを確認した場合にアプリケーションの実行を中止する動作について説明する。
【0318】
まず、機器20のブラウザ210は、スキャン翻訳サービスのアプリ画面を表示させるための操作(表示操作)を受け付ける(ステップS2101)。機器20のユーザは、例えば、スキャン翻訳サービスのアプリ画面のURLをブラウザ310のアドレスバーに入力することで、アプリ画面の表示操作を行うことができる。
【0319】
機器20のブラウザ210は、スキャン翻訳サービスのアプリ画面の表示操作を受け付けると、スキャン翻訳サービスのアプリ画面の表示要求を、Webサービス処理部120の画面構成部121に送信する(ステップS2102)。スキャン翻訳サービスのアプリ画面の表示要求には、スキャン翻訳サービスを提供するアプリ情報1000のアプリIDが含まれる。
【0320】
Webサービス処理部120の画面構成部121は、スキャン翻訳サービスのアプリ画面の表示要求を受信すると、アプリ設定の取得の前に、外部サービスの状態を取得するための停止検知結果要求を、入出力サービス処理部110の停止検知オペレーション実行部114に送信する(ステップS2103)。
【0321】
入出力サービス処理部110の停止検知オペレーション実行部114は、停止検知結果要求を受け取ると、停止検知結果記憶部190に蓄積されている外部サービスの停止検知結果のうち、最後(すなわち最新)の停止検知結果、およびエンドユーザ向けのメッセージを取得する(ステップS2104)。ここでは、最後の停止検知結果が、外部サービスが「停止している」、すなわち正常に稼働していないことを示しているものとする。そして、停止検知オペレーション実行部114は、停止検知結果記憶部190から取得した最後の停止検知結果、およびエンドユーザ向けのメッセージを、Webサービス処理部120の画面構成部121に返信する。Webサービス処理部120の画面構成部121は、最後の停止検知結果、およびエンドユーザ向けのメッセージを受信すると、当該停止検知結果が「停止している」ことを示すことを確認し、当該停止検知結果、およびエンドユーザ向けのメッセージを、機器20のブラウザ210に返信する。このように、停止検知結果を取得することによって、外部サービスが停止しているか否かを判断することができ、停止検知結果が、外部サービスが「停止している」、すなわち正常に稼働していないことを示している場合、アプリケーションの実行の中止動作へ移行させることができる。
【0322】
機器20のブラウザ210は、外部サービスが「停止している」ことを示す停止検知結果、およびエンドユーザ向けのメッセージを受信すると、サービス停止表示画面に、受信したエンドユーザ向けのメッセージを表示させることによって、外部サービスが停止していることを通知する(ステップS2105)。これによって、ユーザ(エンドユーザ)は、外部サービスが停止していることによりアプリケーションが実行できない旨を把握することができる。
【0323】
以上のように、本変形例に係る情報処理システム1では、停止検知オペレーションによって停止検知結果だけでなく、予め登録したユーザに対して通知が必要であるか否かの情報、およびエンドユーザ向けのメッセージを取得するものとしている。これによって、停止検知処理において、外部サービスが停止している場合、通知が必要であるか否かの情報が必要とすることを示す場合のみに、予め登録したユーザに通知を行うことができる。例えば、外部サービスの計画的な定期メンテナンス等、コンポーネント開発者に通知する必要がない場合には、不必要な通知を避けることができる。また、停止検知結果が外部サービスが停止していることを示す場合には、エンドユーザ向けに作成されたメッセージを表示させることができ、アプリケーションを利用させることなく、当該アプリケーションの起動時に当該外部サービスの停止状態を通知することができる。また、エンドユーザ向けのメッセージとしては、例えば、外部サービスの停止が定期メンテナンスによる場合、そのメンテナンスの終了予定時刻等を含めることによって、エンドユーザの利便性を向上させることができる。
【0324】
なお、上述の実施形態および各変形例の各機能は、一または複数の処理回路によって実現することが可能である。ここで、「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上述した各機能を実行するよう設計されたASIC(Application Specific Integrated Circuit)、DSP(Digital Signal Processor)、FPGA(Field-Programmable Gate Array)、SOC(System on a chip)、GPU(Graphics Processing Unit)や従来の回路モジュール等のデバイスを含むものとする。
【0325】
また、上述の実施形態および各変形例において、サービス提供システム10、機器20、およびPC端末30の各機能部の少なくともいずれかがプログラムの実行によって実現される場合、そのプログラムは、ROM等に予め組み込まれて提供される。また、上述の実施形態および各変形例に係るサービス提供システム10、機器20、およびPC端末30で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでCD-ROM(Compact Disc Read Only Memory)、フレキシブルディスク(FD)、CD-R(Compact Disk-Recordable)、DVD(Digital Versatile Disc)、またはSDカード等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。また、上述の実施形態および各変形例に係るサービス提供システム10、機器20、およびPC端末30で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、上述の実施形態および各変形例に係るサービス提供システム10、機器20、およびPC端末30で実行されるプログラムを、インターネット等のネットワーク経由で提供または配布するように構成してもよい。また、上述の実施形態および各変形例に係るサービス提供システム10、機器20、およびPC端末30で実行されるプログラムは、上述した各機能部のうち少なくともいずれかを含むモジュール構成となっており、実際のハードウェアとしてはCPUが上述の記憶装置からプログラムを読み出して実行することにより、上述の各機能部が主記憶装置上にロードされて生成されるようになっている。
【符号の説明】
【0326】
1 情報処理システム
10 サービス提供システム
11 CPU
12 RAM
13 ROM
14 補助記憶装置
15 入力装置
16 表示装置
17 外部I/F
17a 記録媒体
18 通信I/F
20、20_1、20_2 機器
21 コントローラ
22 操作パネル
23 外部I/F
23a 記録媒体
24 通信I/F
25 プリンタ
26 スキャナ
30、30_1、30_2 PC端末
31 CPU
32 RAM
33 ROM
34 NVRAM
35 補助記憶装置
110 入出力サービス処理部
111 アプリ管理部
112 ロジック処理部
113 認証情報管理部
114 停止検知オペレーション実行部
120 Webサービス処理部
121 画面構成部
122 アプリ実行部
130 ドキュメントサービス部
131 OCR処理部
132 メール配信部
140 ポータルサービス部
141 UI提供部
142 アプリ登録部
150 アプリ情報記憶部
160 アプリ画面情報記憶部
170 ポータブル画面情報記憶部
180 認証情報記憶部
190 停止検知結果記憶部
210 ブラウザ
301 フロー実行部
302 コンポーネント管理部
303 コンポーネント群
304 型変換管理部
305 型変換群
310 ブラウザ
1000 アプリ情報
1100 処理フロー情報
1101 フロー名
1102 フロー詳細
1110、1120、1130 詳細処理定義
1200 アプリ設定情報
1201 アプリタイプ
1202 アプリ名
1203 アプリ表示名
1204 認証タイプ
1205 フロー名
1206 デザインテンプレートタイプ
1207 デフォルトパラメータ
1208 ユーザ入力パラメータ
1218、1228、1238 入力定義
1300 コンポーネント共通I/F
1310 OCRコンポ―ネット
1320 翻訳コンポーネント
1330 メール配信コンポーネント
1340 ファイル入出力コンポーネント
1400 型変換共通I/F
1410 第1の型変換
2000 アプリ画面情報
3000 ポータブル画面情報
4000 型変換情報テーブル
B バス
N1 ネットワーク
【先行技術文献】
【特許文献】
【0327】
【文献】特開2018-014079号公報
【文献】特開2016-177447号公報
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30
図31