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

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

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

特許7559347情報処理システム、サーバ装置、情報処理方法、及びプログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-24
(45)【発行日】2024-10-02
(54)【発明の名称】情報処理システム、サーバ装置、情報処理方法、及びプログラム
(51)【国際特許分類】
   G06F 8/38 20180101AFI20240925BHJP
   H04N 1/00 20060101ALI20240925BHJP
   G06F 3/0481 20220101ALI20240925BHJP
   G06F 9/451 20180101ALI20240925BHJP
   B41J 29/42 20060101ALI20240925BHJP
【FI】
G06F8/38
H04N1/00 127A
H04N1/00 350
G06F3/0481
G06F9/451
B41J29/42 F
【請求項の数】 12
(21)【出願番号】P 2020079580
(22)【出願日】2020-04-28
(65)【公開番号】P2020205031
(43)【公開日】2020-12-24
【審査請求日】2023-02-13
(31)【優先権主張番号】P 2019108935
(32)【優先日】2019-06-11
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000006747
【氏名又は名称】株式会社リコー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】井上 祐輔
【審査官】久々宇 篤志
(56)【参考文献】
【文献】特開2002-366479(JP,A)
【文献】Danny Goodman,JavaScript & DHTMLクックブック,第1版,株式会社オライリー・ジャパン,2004年01月26日,頁18、177~200
【文献】竹下 和人 ほか,WordPressのやさしい教科書,第1版,株式会社エムディエヌコーポレーション,2019年06月01日,頁102、130~145、216~219
【文献】choco*tip,iframeで子から親の関数を呼び出したい,blogspot.com [オンライン],2017年,[検索日 2024.02.28]インターネット<URL:https://chocotip.blogspot.com/2017/05/iframechild.html>
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/38
H04N 1/00
G06F 3/0481
G06F 9/451
B41J 29/42
(57)【特許請求の範囲】
【請求項1】
アプリケーションを管理するサーバ装置と、前記サーバ装置と通信ネットワークを介して通信可能な少なくとも1以上の機能を有する電子機器とを含む情報処理システムであって、
前記電子機器は、前記サーバ装置から提供されるウェブページを表示するウェブブラウザを有し、
前記サーバ装置は、
表示画面をカスタマイズしたアプリケーションの登録を受け付けるアプリ登録部と、
前記ウェブページに含まれるiframe内に、前記アプリケーションの前記表示画面を表示させる画面表示処理部と、
前記iframe内に表示させた前記表示画面に対する入力の受け付けに応じて、前記iframeの外側のスクリプトから、前記1以上の機能を利用するためのインターフェースを介して前記機能の実行要求を受け付け、前記1以上の機能の実行を制御するアプリ実行部と、
を有し、
前記iframeのsandboxの設定は有効である、情報処理システム。
【請求項2】
前記アプリケーションは、ウェブアプリケーションであり、
前記画面表示処理部は、前記ウェブアプリケーションに対する操作を受け付ける前記表示画面を前記iframe内に表示させる、請求項1に記載の情報処理システム。
【請求項3】
前記電子機器は、画像形成装置であり、
前記アプリ実行部は、前記画像形成装置が備える画像形成機能を利用するためのインターフェースを、前記アプリケーションに提供する、請求項1又は2に記載の情報処理システム。
【請求項4】
前記サーバ装置は、前記アプリケーションが利用する一時的な情報を、前記アプリケーション毎に管理する情報管理部を有する、請求項1乃至3のいずれか一項に記載の情報処理システム。
【請求項5】
前記サーバ装置は、前記アプリケーションの脆弱性を検査する脆弱性検査部を有する、請求項1乃至4のいずれか一項に記載の情報処理システム。
【請求項6】
前記サーバ装置は、開発者によって前記サーバ装置に登録された前記アプリケーションの公開を許可するか否かを示す設定情報を管理し、前記アプリケーションの公開が許可されている場合、前記開発者とは異なる開発者による前記アプリケーションの表示画面の表示を許可する公開管理部を有する、請求項1乃至5のいずれか一項に記載の情報処理システム。
【請求項7】
前記電子機器は、
前記表示画面をカスタマイズした前記アプリケーションを作成するためのテンプレートを提供し、作成された前記アプリケーションを前記サーバ装置に登録する作成部を有する、請求項1乃至6のいずれか一項に記載の情報処理システム。
【請求項8】
前記情報処理システムは、前記サーバ装置と前記通信ネットワークを介して通信可能な情報端末を含み、
前記情報端末は、
前記表示画面をカスタマイズした前記アプリケーションを作成するためのテンプレートを提供し、作成された前記アプリケーションを前記サーバ装置に登録する作成部を有する、請求項1乃至6のいずれか一項に記載の情報処理システム。
【請求項9】
前記電子機器が有する前記1以上の機能は、印刷機能及びスキャン機能のうち、少なくとも1つを含む、請求項1乃至8のいずれか一項に記載の情報処理システム。
【請求項10】
所定の処理を実行するアプリケーションを管理するサーバ装置であって、
表示画面をカスタマイズしたアプリケーションの登録を受け付けるアプリ登録部と、
前記サーバ装置と通信ネットワークを介して通信可能な電子機器にウェブページを表示させるとともに、前記ウェブページに含まれるiframe内に、前記アプリケーションの表示画面を表示させる画面表示処理部と、
前記iframe内に表示させた前記表示画面に対する入力の受け付けに応じて、前記iframeの外側のスクリプトから前記電子機器が備える1以上の機能を利用するためのインターフェースを介して前記機能の実行要求を受け付け、前記機能の実行を制御するアプリ実行部と、
を有し、
前記iframeのsandboxの設定は有効である、サーバ装置。
【請求項11】
所定の処理を実行するアプリケーションを管理するサーバ装置が、
表示画面をカスタマイズしたアプリケーションの登録を受け付ける処理と、
前記サーバ装置と通信ネットワークを介して通信可能な電子機器にウェブページを表示させる処理と、
前記ウェブページに含まれるiframe内に、前記アプリケーションの表示画面を表示させる処理と、
前記iframe内に表示させた前記表示画面に対する入力の受け付けに応じて、前記iframeの外側のスクリプトから前記電子機器が備える1つ以上の機能を利用するためのインターフェースを介して前記機能の実行要求を受け付け、前記機能の実行を制御する処理と、
を実行し、
前記iframeのsandboxの設定は有効である、情報処理方法。
【請求項12】
所定の処理を実行するアプリケーションを管理するサーバ装置に、
表示画面をカスタマイズしたアプリケーションの登録を受け付ける処理と、
前記サーバ装置と通信ネットワークを介して通信可能な電子機器にウェブページを表示させる処理と、
前記ウェブページに含まれるiframe内に、前記アプリケーションの表示画面を表示させる処理と、
前記iframe内に表示させた前記表示画面に対する入力の受け付けに応じて、前記iframeの外側のスクリプトから前記電子機器が備える1つ以上の機能を利用するためのインターフェースを介して前記機能の実行要求を受け付け、前記機能の実行を制御する処理と、
を実行させ
前記iframeのsandboxの設定は有効である、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システム、サーバ装置、情報処理方法、及びプログラムに関する。
【背景技術】
【0002】
ウェブページのUI(User Interface)の表示方法をユーザ毎にカスタマイズし、カスタマイズされた表示方法でUIを表示する技術が知られている。
【0003】
例えば、ウェブページを表示するアプリケーションを作成するときに、ユーザ毎にカスタマイズできる項目、範囲等を登録可能なウェブページ生成装置が知られている(例えば、特許文献1参照)。
【発明の概要】
【発明が解決しようとする課題】
【0004】
サービス提供サーバ等のサーバ装置を用いて、画像形成装置等の電子機器に所定の処理を実行するアプリケーションを提供する情報処理システムにおいて、アプリケーションの表示画面を自由にカスタマイズしたいという要求がある。
【0005】
しかし、例えば、特許文献1に示されるような従来の技術では、アプリケーションを開発する開発者によって予め定められた項目、範囲内でカスタマイズを行う必要があり、アプリケーションの表示画面を自由にカスタマイズすることができないという問題がある。
【0006】
本発明の一実施形態は、上記の問題点に鑑みてなされたものであって、サーバ装置を用いて、電子機器に所定の処理を実行するアプリケーションを提供する情報処理システムにおいて、アプリケーションの表示画面を自由にカスタマイズできるようにする。
【課題を解決するための手段】
【0007】
上記目的を達成するため、本発明の一実施形態に係る情報処理システムは、アプリケーションを管理するサーバ装置と、前記サーバ装置と通信ネットワークを介して通信可能な少なくとも1以上の機能を有する電子機器とを含む情報処理システムであって、前記電子機器は、前記サーバ装置から提供されるウェブページを表示するウェブブラウザを有し、前記サーバ装置は、表示画面をカスタマイズしたアプリケーションの登録を受け付けるアプリ登録部と、前記ウェブページに含まれるiframe内に、前記アプリケーションの前記表示画面を表示させる画面表示処理部と、前記iframe内に表示させた前記表示画面に対する入力の受け付けに応じて、前記iframeの外側のスクリプトから前記1以上の機能を利用するためのインターフェースを介して前記機能の実行要求を受け付け、前記1以上機能の実行を制御するアプリ実行部と、を有し、前記iframeのsandboxの設定は有効である。
【発明の効果】
【0008】
本発明の一実施形態によれば、サーバ装置を用いて、電子機器に所定の処理を実行するアプリケーションを提供する情報処理システムにおいて、アプリケーションの表示画面を自由にカスタマイズできるようになる。
【図面の簡単な説明】
【0009】
図1】一実施形態に係る情報処理システムのシステム構成の例を示す図である。
図2】一実施形態に係る操作画面の表示方法の概要について説明するための図である。
図3】一実施形態に係るコンピュータのハードウェア構成の例を示す図である。
図4】一実施形態に係る画像形成装置のハードウェア構成の例を示す図である。
図5】第1の実施形態に係るサービス提供サーバの機能構成の例を示す図である。
図6A】第1の実施形態に係るウェブサービス部の機能構成の例を示す図である。
図6B】第1の実施形態に係るカスタムUIアプリ、及びカスタムUIライブラリのイメージを示す図である。
図7】第1の実施形態に係る画像形成装置、及び情報端末の機能構成の例を示す図である。
図8A】第1の実施形態に係るアプリケーションの登録処理の例を示すシーケンス図である。
図8B】第1の実施形態に係るカスタムUI情報の登録処理の例を示すシーケンス図である。
図9A】第1の実施形態に係るアプリ画面の表示処理の例を示すシーケンス図である。
図9B】第1の実施形態に係るアプリケーションの一覧画面のイメージを示す図である。
図9C】第1の実施形態に係るアプリケーションの一覧情報の例を示す図である。
図10】第1の実施形態に係るスキャン実行時の処理の例を示すシーケンス図である。
図11】第2の実施形態に係るウェブサービス部の機能構成の例を示す図である。
図12】第3の実施形態に係るポータルサービス部の機能構成の例を示す図である。
図13】第4の実施形態に係るポータルサービス部の機能構成の例を示す図である。
【発明を実施するための形態】
【0010】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
【0011】
<システム構成>
図1は、一実施形態に係る情報処理システムのシステム構成の例を示す図である。情報処理システム100は、例えば、サービス提供サーバ101、情報端末102、及び1つ以上の電子機器103等が、インターネットやLAN(Local Area Network)等の通信ネットワーク104を介して通信可能に接続されている。
【0012】
サービス提供サーバ(サーバ装置)101は、コンピュータの構成を有する情報処理装置、又は複数の情報処理装置を含むシステムである。サービス提供サーバ101は、所定の処理を実行するウェブアプリケーション(アプリケーション)を管理し、通信ネットワーク104を介して接続される電子機器103等にウェブアプリケーションを提供する。
【0013】
サービス提供サーバ101が提供するウェブアプリケーションは、例えば、複数の処理が定義されたワークフロー(処理手順)を実行するウェブアプリケーション、又は電子機器103が備える1つ以上の機能を実行するウェブアプリケーション等である。ただし、これに限られず、サービス提供サーバ101が提供するウェブアプリケーションは、様々な処理を実行するウェブアプリケーションであっても良い。
【0014】
ここで、ワークフローとは、例えば、画像データ等の処理対象となる電子データに対して、入力処理、変換処理、出力処理等の所定の処理を実行する複数のコンポーネントを組み合わせた一連の処理を定義した情報である。また、コンポーネントは、ワークフローに含まれる各処理を実行するプログラムであり、プラグインと呼ばれる場合もある。
【0015】
情報端末102は、デスクトップPC(Personal Computer)、ノートPC、スマートフォン、タブレット端末等の情報処理装置である。アプリケーションを開発する開発者(又はユーザ)等は、情報端末102が備えるウェブブラウザを利用して、サービス提供サーバ101が提供するウェブページにアクセスし、アプリケーションや、ワークフローの設定を行うことができる。
【0016】
また、情報端末102は、例えば、サービス提供サーバ101を運営するサービス提供者等から提供されるカスタマイズ用のツールを用いて、操作画面をカスタマイズしたウェブアプリケーションを、サービス提供サーバ101に登録することができる。
【0017】
電子機器103は、サービス提供サーバ101から提供されるウェブページを表示するウェブブラウザを備え、サービス提供サーバ101が提供するウェブページにアクセスして、アプリケーションを利用する装置である。ここでは、一例として、電子機器103が、スキャン機能、コピー機能、プリンタ機能、ファクシミリ機能等を一つの筐体に搭載したMFP(Multifunction Peripheral)等の画像形成装置であるものとして、以下の説明を行う。
【0018】
ただし、電子機器103は、画像形成装置に限られず、ウェブブラウザを備え、サービス提供サーバ101が提供するウェブページにアクセス可能な様々な機器であって良い。例えば、電子機器103は、PJ(Projector:プロジェクタ)、IWB(Interactive White Board:相互通信が可能な電子式の黒板機能を有する白板)、デジタルサイネージ、HUD(Head Up Display)装置等の出力装置であっても良い。また、電子機器103は、例えば、産業機械、撮像装置、集音装置、医療機器、ネットワーク家電、自動車(Connected Car)、デジタルカメラ、ウェアラブル端末等の機器であっても良い。さらに、電子機器103は、例えば、ノートPC、携帯電話、スマートフォン、タブレット端末、ゲーム機、PDA(Personal Digital Assistant)、デジタルカメラ、ウェアラブルPCデスクトップPC等の汎用の情報処理装置であっても良い。
【0019】
<処理の概要>
図2は、一実施形態に係る操作画面の表示方法の概要について説明するための図である。
【0020】
開発者等は、例えば、情報端末102等にインストールされたカスタマイズ用のツール210を用いて、電子機器103等が表示する操作画面に含まれるiframe200内に表示するウェブアプリケーションの表示画面を、自由にカスタマイズすることができる。
【0021】
ここで、iframeとは、ウェブページ内の所定の領域(フレーム)内に、別のウェブページを表示させる機能である。なお、iframeは、電子機器103等が表示するウェブページに含まれるフレームの一例である。
【0022】
例えば、開発者等は、カスタマイズ用のツール210を用いて、図2に示すような、カスタマイズされた表示画面201を表示するウェブアプリケーション(以下、アプリAと呼ぶ)を作成し、サービス提供サーバ101に登録することができる。
【0023】
サービス提供サーバ101は、表示画面をカスタマイズしたアプリAの登録を受け付けると、登録されたアプリAをカスタムUI記憶部220等に記憶しておく。また、サービス提供サーバ101は、画像形成装置等の電子機器103からアプリAの開始要求を受け付けると、カスタムUI記憶部220等に記憶したアプリAを用いて、電子機器103が表示する操作画面230aに含まれるiframe200内にアプリAの表示画面201を表示させる。
【0024】
同様に、開発者等は、カスタマイズ用のツール210を用いて、例えば、図2に示すような、カスタマイズされた表示画面202を表示するウェブアプリケーション(以下、アプリBと呼ぶ)を作成し、サービス提供サーバ101に登録することができる。
【0025】
サービス提供サーバ101は、表示画面をカスタマイズしたアプリBの登録を受け付けると、登録されたアプリBをカスタムUI記憶部220等に記憶しておく。また、サービス提供サーバ101は、画像形成装置等の電子機器103からアプリBの開始要求を受け付けると、カスタムUI記憶部220等に記憶したアプリBを用いて、電子機器103が表示する操作画面230aに含まれるiframe200内にアプリBの表示画面202を表示させる。
【0026】
このように、サービス提供サーバ101は、画像形成装置等の電子機器103が表示するウェブページに含まれるiframe200内に、開発者等が作成したウェブアプリケーションの表示画面(UI:User Interface)を表示させることができる。
【0027】
ただし、iframe200内に表示されるアプリA、アプリB等は、画像形成装置等の電子機器103に対して、例えば、印刷、スキャンなどの実行命令を、直接出すことができない。これは、本実施形態でフレームに利用している「iframe」において、セキュリティの観点から、「sandbox」というオプションを有効に設定しているためである。このオプションを有効にすることにより、iframe内のコンテンツ(カスタムUIアプリ)による不正な処理の実行を抑制することができる。一方、このオプションを有効にすることにより、iframe内のコンテンツから、情報処理システム100が備える機能を直接利用することができなくなる。そこで、サービス提供サーバ101は、iframe200内に表示されるアプリA、アプリB等に対して、情報処理システム100が備える1つ以上の機能を利用するためのインターフェースを提供する。
【0028】
これにより、画像形成装置等の電子機器103を利用するユーザは、iframe200内に表示されたウェブアプリケーションの表示画面に対して、所定の操作を行うことにより、情報処理システム100に所定の処理を実行させることができるようになる。
【0029】
また、上記の構成により、複数の開発者(ベンダー等)が、カスタマイズされた表示画面を表示するウェブアプリケーション(カスタムUIアプリ)を作成し、サービス提供サーバ101に登録することができるようになる。
【0030】
なお、上記の情報処理システム100のシステム構成は一例である。例えば、開発者等は、電子機器103が備えるウェブブラウザを利用して、アプリケーションの設定、登録等を行うことも可能である。また、ユーザは、情報端末102が備えるウェブブラウザを利用して、サービス提供サーバ101が提供するアプリケーションを実行することも可能である。さらに、サービス提供サーバ101の機能は、複数のサーバ装置に分散して設けられていても良い。例えば、アプリケーションを管理するサーバ装置と、ワークフローを実行するサーバ装置とは異なるサーバ装置であっても良い。
【0031】
<ハードウェア構成>
続いて、情報処理システム100に含まれる各装置のハードウェア構成について説明する。
【0032】
(サービス提供サーバ、及び情報端末のハードウェア構成)
図3は、一実施形態に係るコンピュータのハードウェア構成の例を示す図である。
【0033】
サービス提供サーバ101は、例えば、図3に示すようなコンピュータ300のハードウェア構成を有している。或いは、サービス提供サーバ101は、図3に示すようなハードウェア構成を有する複数のコンピュータ300によって実現される。また、情報端末102は、例えば、図3に示すようなコンピュータ300のハードウェア構成を有している。
【0034】
コンピュータ300は、例えば、図2に示されるように、CPU(Central Processing Unit)301、ROM(Read Only Memory)302、RAM(Random Access Memory)303、HD(Hard Disk)304、HDD(Hard Disk Drive)コントローラ305、ディスプレイ306、外部機器接続I/F(Interface)307、ネットワークI/F308、キーボード309、ポインティングデバイス310、DVD-RW(Digital Versatile Disk Rewritable)ドライブ312、メディアI/F314、及びバスライン315等を備えている。
【0035】
これらのうち、CPU301は、コンピュータ300全体の動作を制御する。ROM302は、例えば、IPL(Initial Program Loader)等のCPU301の起動に用いられるプログラムを記憶する。RAM303は、CPU301のワークエリアとして使用される。HD304は、プログラム等の各種データを記憶する。HDDコントローラ305は、CPU301の制御に従ってHD304に対する各種データの読み出し又は書き込みを制御する。
【0036】
ディスプレイ306は、カーソル、メニュー、ウィンドウ、文字、又は画像などの各種情報を表示する。外部機器接続I/F307は、各種の外部機器を接続するためのインターフェースである。この場合の外部機器は、例えば、USB(Universal Serial Bus)メモリやプリンタ等が含まれる。ネットワークI/F308は、通信ネットワーク104を利用してデータ通信をするためのインターフェースである。
【0037】
キーボード309は、文字、数値、各種指示などの入力のための複数のキーを備えた入力手段の一種である。ポインティングデバイス310は、各種指示の選択や実行、処理対象の選択、カーソルの移動などを行う入力手段の一種である。DVD-RWドライブ312は、着脱可能な記録媒体の一例としてのDVD-RW311に対する各種データの読み出し又は書き込みを制御する。なお、DVD-RW311は、DVD-RWに限らず、DVD-R等であっても良い。メディアI/F314は、フラッシュメモリ等のメディア313に対するデータの読み出し又は書き込み(記憶)を制御する。バスライン315は、上記の各構成要素を電気的に接続するためのアドレスバス、データバス及び各種の制御信号等を含む。
【0038】
(電子機器のハードウェア構成)
図4は、一実施形態に係る画像形成装置のハードウェア構成の例を示す図である。ここでは、電子機器103のハードウェア構成の一例として、画像形成装置400のハードウェア構成について説明する。ただし、これに限られず、電子機器103は、コンピュータの構成を備える他の装置であっても良い。
【0039】
画像形成装置400は、例えば、図4に示されるように、コントローラ410、近距離通信回路420、エンジン制御部430、操作パネル440、ネットワークI/F450等を備えている。
【0040】
これらのうち、コントローラ410は、コンピュータの主要部であるCPU401、システムメモリ(MEM-P)402、ノースブリッジ(NB)403、サウスブリッジ(SB)404、ASIC(Application Specific Integrated Circuit)405、記憶部であるローカルメモリ(MEM-C)406、HDDコントローラ407、及び、記憶部であるHD408等を有し、NB403とASIC405との間をAGP(Accelerated Graphics Port)バス411で接続した構成となっている。
【0041】
これらのうち、CPU401は、画像形成装置400の全体制御を行う制御部である。NB403は、CPU401と、MEM-P402、SB404、及びAGPバス411とを接続するためのブリッジであり、MEM-P402に対する読み書きなどを制御するメモリコントローラと、PCI(Peripheral Component Interconnect)マスタ及びAGPターゲットとを有する。
【0042】
MEM-P402は、コントローラ410の各機能を実現させるプログラムやデータの格納用メモリであるROM402a、プログラムやデータの展開、及びメモリ印刷時の描画用メモリなどとして用いるRAM402bとからなる。なお、RAM402bに記憶されているプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD-ROM、CD-R、DVD等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成しても良い。
【0043】
SB404は、NB403とPCIデバイス、周辺デバイスとを接続するためのブリッジである。ASIC405は、画像処理用のハードウェア要素を有する画像処理用途向けのIC(Integrated Circuit)であり、AGPバス411、PCIバス412、HDDコントローラ407、及びMEM-C406をそれぞれ接続するブリッジの役割を有する。このASIC405は、PCIターゲット及びAGPマスタ、ASIC405の中核をなすアービタ(ARB)、MEM-C406を制御するメモリコントローラ、ハードウェアロジック等により画像データの回転などを行う複数のDMAC(Direct Memory Access Controller)、並びに、スキャナ部431及びプリンタ部432との間でPCIバス412を介したデータ転送を行うPCIユニットとからなる。なお、ASIC405には、USBのインターフェースや、IEEE1394(Institute of Electrical and Electronics Engineers 1394)のインターフェースを接続するようにしても良い。
【0044】
MEM-C406は、コピー用画像バッファ及び符号バッファとして用いるローカルメモリである。HD408は、画像データの蓄積、印刷時に用いるフォントデータの蓄積、フォームの蓄積を行うためのストレージである。HDDコントローラ407は、CPU401の制御に従ってHD408に対するデータの読出又は書込を制御する。AGPバス411は、グラフィック処理を高速化するために提案されたグラフィックスアクセラレータカード用のバスインタフェースであり、MEM-P402に高スループットで直接アクセスすることにより、グラフィックスアクセラレータカードを高速にすることができる。
【0045】
近距離通信回路420は、NFC(Near Field Communication)、Bluetooth(登録商標)等の通信回路である。近距離通信回路420は、例えば、アンテナ420aを介して、近距離無線通信を行う。
【0046】
エンジン制御部430は、例えば、スキャナ部431及びプリンタ部432等によって構成されている。スキャナ部431は、原稿等を読み取る読取装置である。プリンタ部432は、印刷データを印刷媒体に印刷する印刷装置である。スキャナ部431又はプリンタ部432には、例えば、誤差拡散やガンマ変換等の画像処理部分が含まれている。
【0047】
操作パネル440は、操作画面等を表示し、操作画面に対する入力操作等を受け付けるタッチパネル等のパネル表示部440a、並びに、濃度の設定条件などの画像形成に関する条件の設定値を受け付けるテンキー及びコピー開始指示を受け付けるスタートキー等からなる操作ボタン440bを備えている。コントローラ410は、画像形成装置400の全体の制御を行い、例えば、描画、通信、操作パネル440からの入力等を制御する。
【0048】
なお、画像形成装置400は、操作パネル440のアプリケーション切り替えキーにより、ドキュメントボックス機能、コピー機能、プリンタ機能、及びファクシミリ機能を順次に切り替えて選択することが可能となる。ドキュメントボックス機能の選択時にはドキュメントボックスモードとなり、コピー機能の選択時にはコピーモードとなり、プリンタ機能の選択時にはプリンタモードとなり、ファクシミリモードの選択時にはファクシミリモードとなる。
【0049】
また、ネットワークI/F450は、通信ネットワーク104を利用してデータ通信をするためのインターフェースである。近距離通信回路420及びネットワークI/F450は、例えば、PCIバス412を介して、ASIC405に電気的に接続されている。
【0050】
[第1の実施形態]
<機能構成>
続いて、第1の実施形態に係る情報処理システム100に含まれる各装置の機能構成について説明する。なお、ここでは、電子機器103が画像形成装置400であるものとして、以下の説明を行う。
【0051】
(サービス提供サーバの機能構成)
図5は、一実施形態に係るサービス提供サーバの機能構成の例を示す図である。
【0052】
サービス提供サーバ101は、例えば、図3のCPU301、又は複数のコンピュータ300で1つ以上のプログラムを実行することにより、入出力サービス部510、ウェブサービス部520、ドキュメントサービス部530、及びポータルサービス部540等を実現している。なお、上記の各機能構成のうち、少なくとも一部は、ハードウェアによって実現されるものであっても良い。
【0053】
また、サービス提供サーバ101は、カスタムUI記憶部220、アプリ情報記憶部550、及びポータル画面情報記憶部560等の記憶部を有する。カスタムUI記憶部220、アプリ情報記憶部550、及びポータル画面情報記憶部560は、例えば、図3のHD304等によって実現される。また、カスタムUI記憶部220、アプリ情報記憶部550、及びポータル画面情報記憶部560のうちの少なくとも一部は、例えば、ストレージサーバ等の外部装置によって実現されるものであっても良い。
【0054】
入出力サービス部510は、サービス提供サーバ101が提供するウェブアプリケーション(以下、アプリケーションと呼ぶ)の管理、及びアプリケーションの実行等に関する処理を行う。入出力サービス部510は、例えば、図5に示すようにアプリ管理部511、ロジック処理部512、フロー管理部513、及びコンポーネント管理部514等を含む。
【0055】
アプリ管理部511は、サービス提供サーバ101が提供する複数のアプリケーションを管理する。例えば、アプリ管理部511は、複数のアプリケーションの情報(以下、アプリ情報551と呼ぶ)を、アプリ情報記憶部550に記憶して管理する。このアプリ情報551には、例えば、アプリケーションを識別する識別情報(以下、アプリケーションIDと呼ぶ)や、ワークフロー(処理手順)情報等が含まれる。
【0056】
アプリ管理部511は、例えば、ロジック処理部512、画面表示処理部521等からの要求に応じて、アプリ情報記憶部550に記憶しているアプリ情報551を提供する。また、アプリ管理部511は、例えば、ポータルサービス部540のアプリ登録部542等からの要求に応じて、アプリケーションのアプリ情報551を、アプリ情報記憶部550に記憶する。
【0057】
ロジック処理部512は、例えば、ウェブサービス部520等からの要求に応じて、アプリ管理部511が管理するアプリ情報551を取得する。また、ロジック処理部512は、アプリ管理部511から取得したアプリ情報551に基づいて、アプリケーションを実行する。例えば、ロジック処理部512は、アプリ情報551に含まれるワークフロー情報に定義された一連の処理を、ドキュメントサービス部530等に、順次に実行させる。
【0058】
フロー管理部513は、アプリ管理部511によって、アプリ情報記憶部550に記憶されるアプリ情報551に含まれるワークフローを管理する。例えば、フロー管理部513は、開発者、ユーザ等によって変更されたアプリケーションのワークフローを確認し、ワークフローの修正が必要な場合、ワークフローの実行に必要な処理(コンポーネント)をワークフローに追加する処理等を行う。
【0059】
コンポーネント管理部514は、ワークフローで実行可能な様々な処理を実行する複数のコンポーネントを管理する。例えば、コンポーネント管理部514は、ドキュメントサービス部530に含まれるOCR(Optical Character Recognition/Reader)531、ファイル変換532、・・・等のコンポーネントを管理する。例えば、フロー管理部513は、コンポーネント管理部514から、サービス提供サーバ101で利用可能なコンポーネントの情報を取得することができる。
【0060】
ウェブサービス部520は、画像形成装置400(又は情報端末102)が備えるウェブブラウザから、サービス提供サーバ101が提供するアプリケーションを利用するための処理を行う。例えば、ウェブサービス部520は、図5に示すように画面表示処理部521、及びアプリ実行部522を含み、ウェブブラウザに対してウェブアプリケーションを提供するアプリケーションサーバとして機能する。
【0061】
画面表示処理部521は、画像形成装置400(又は情報端末102)のウェブブラウザからの要求に応じて、ウェブブラウザにサービス提供サーバ101が提供するアプリケーションの表示画面(以下、アプリ画面と呼ぶ)を表示させる。このアプリ画面は、例えば、HTML(Hyper Text Markup Language)、XML(Extensible Markup Language)、css(Cascading Style Sheets)、JavaScript(登録商標)等の言語によって作成されている。したがって、ユーザは、アプリ画面に対して操作を行うことにより、アプリケーションに対する様々な操作を行うことができる。画面表示処理部521は、例えば、図6Aに示すように、フレーム外側表示処理部601、及びフレーム内側表示処理部602を含む。
【0062】
フレーム外側表示処理部601は、例えば、図2の操作画面230a、230bに示すような、iframe200を含む操作画面を作成し、作成した操作画面を画像形成装置400等が備えるウェブブラウザに表示させる。
【0063】
フレーム内側表示処理部602は、アプリ管理部511から、アプリケーションのアプリ情報551、及びカスタムUI情報221を取得し、取得した情報を用いてアプリ画面を作成する。また、フレーム内側表示処理部602は、例えば、図2の操作画面230a、230bに示すように、操作画面に含まれるiframe200内に、カスタマイズされたアプリ画面を表示させる。
【0064】
なお、アプリ情報551には、例えば、前述したように、アプリケーションを識別するアプリケーションIDや、ワークフロー(処理手順)情報等が含まれる。また、カスタムUI情報221には、例えば、開発者等によって登録された、カスタマイズされた表示画面(UI)を表示するアプリケーション(以下、カスタムUIアプリと呼ぶ)、アプリケーションを識別するアプリケーションID等が含まれる。したがって、アプリケーションIDを用いて、アプリ情報551とカスタムUI情報221との対応関係を特定することができる。
【0065】
アプリ実行部522は、アプリ画面に対するユーザの操作に応じて、アプリケーションの実行を制御する。例えば、アプリ実行部522は、図6Aに示すように、インターフェース部603を含む。
【0066】
インターフェース部603は、アプリ実行部522が提供する、情報処理システム100が備える1つ以上の機能を利用するためのインターフェースであり、例えば、CPU301で実行されるカスタムUIライブラリ222等によって実現される。このカスタムUIライブラリ222には、iframe200内から利用可能な1つ以上のスクリプト(例えば、コピー処理用のスクリプト、スキャン処理用のスクリプト等)が含まれ、例えば、カスタムUI記憶部220等に予め記憶されている。
【0067】
なお、情報処理システム100が備える1つ以上の機能には、例えば、前回実行したジョブIDの取得、ジョブIDから結果の取得、スキャン/印刷の実行、ホーム画面への遷移、ジョブ履歴画面への遷移、及び状態の保存・取得等の様々な機能が含まれる。また、情報処理システム100が備える1つ以上の機能には、例えば、ドキュメントサービス部530に含まれるOCR531、ファイル変換532、・・・等の機能が含まれる。
【0068】
iframe200内に表示されるカスタムUIアプリは、情報処理システム100が備える上記の各機能を直接制御することはできないが、インターフェース部603を利用して、上記の各機能を利用することができる。
【0069】
図6Bは、第1の実施形態に係るカスタムUIアプリ、及びカスタムUIライブラリのイメージを示す図である。カスタムUIアプリ610には、例えば、アプリ画面に表示する表示要素を定義する情報611、及び当該表示要素に対応する動作内容を定義するスクリプト612等が含まれている。図6Bの例では、表示要素の一例である「スタートボタン」が選択されると、カスタムUIライブラリ222に含まれる、スキャン処理を実行するための関数621を呼び出すスクリプトが実行されるようになっている。
【0070】
複数のベンダーの開発者等は、このようなカスタムUIアプリ610を作成することにより、例えば、図2に示すような、カスタマイズされた表示画面201、又は表示画面202等を、画像形成装置400の操作画面に表示させることができる。
【0071】
これにより、アプリ実行部522は、例えば、iframe200内に表示されたアプリケーションの表示画面で選択されたワークフローの実行を、ロジック処理部512に要求することができる。また、アプリ実行部522は、例えば、iframe200内に表示されたアプリケーションの表示画面で選択された画像形成処理の実行を、画像形成装置400に要求することができる。
【0072】
このように、アプリ実行部522は、iframe200内に表示させた表示画面に対する受付に応じて、インターフェース部603を介して機能の実行要求を受け付け、機能の実行を制御する。
【0073】
ドキュメントサービス部530は、ロジック処理部512からの制御に応じて、例えば、OCR531、ファイル変換532、・・・等のコンポーネントを用いて、ワークフローに定義された処理を実行する。
【0074】
OCR531は、例えば、スキャナで原稿を読み取った画像等から、文字を読み取り、テキストデータに変換するOCR処理を実行するコンポーネントである。ファイル変換532は、電子データのデータ形式を変換するファイル変換処理を実行するコンポーネントである。なお、OCR531、ファイル変換532等は、ドキュメントサービス部530に含まれるコンポーネントの一例である。ドキュメントサービス部530は、上記の各コンポーネントとは異なる様々なコンポーネントを有していても良い。
【0075】
ポータルサービス部540は、アプリケーションを開発する開発者等が、情報端末102(又は画像形成装置400)のウェブブラウザを用いてアプリケーションの登録、設定等を行うための処理を行う。なお、ポータルサービス部540には、例えば、図5に示すように、設定画面提供部541、及びアプリ登録部542等が含まれる。
【0076】
設定画面提供部541は、情報端末102(又は画像形成装置400)等のウェブブラウザ等からの要求に応じて、ポータル画面情報記憶部560に記憶されているポータル画面情報561等を用いてアプリ設定画面を作成する。また、設定画面提供部541は、作成したアプリ設定画面を情報端末102等のウェブブラウザに表示させる。
【0077】
このアプリ設定画面は、例えば、HTML、XML、css、JavaScript等の言語によって作成されている。したがって、開発者等は、アプリ設定画面に対して所定の操作を行うことにより、設定操作等を行うことができる。
【0078】
ここで作成されるアプリケーション(以下、WFアプリと呼ぶ)には、例えば、前述したカスタムUIアプリの表示画面(UI)で選択された処理の具体的な処理(例えば、ワークフロー、処理内容、設定情報等)が設定される。
【0079】
アプリ登録部542は、設定画面提供部541からの要求に応じて、WFアプリの登録、設定、変更等をアプリ管理部511に要求する。例えば、アプリ登録部542は、設定画面提供部541が提供するアプリ設定画面において、WFアプリの登録操作等が行われると、WFアプリの登録をアプリ管理部511に要求する。
【0080】
カスタムUI記憶部220は、前述したカスタムUI情報221、カスタムUIライブラリ222等を記憶する。アプリ情報記憶部550は、前述したアプリ情報551等を記憶する。ポータル画面情報記憶部560は、情報端末102(又は画像形成装置400)等のウェブブラウザに、アプリ設定画面等を表示させるために用いる情報であるポータル画面情報561を記憶する。
【0081】
(画像形成装置の機能構成)
図7(A)は、第1の実施形態に係る画像形成装置の機能構成の例を示している。画像形成装置400は、例えば、図4のCPU401で1つ以上のプログラムを実行することにより、ウェブブラウザ701、カスタムUI作成部702、記憶部703、ウェブAPI704、及び画像形成部705等を実現している。なお、上記の各機能構成のうち、少なくとも一部は、ハードウェアによって実現されるものであっても良い。
【0082】
ウェブブラウザ701は、一般的なウェブブラウザの機能を有し、例えば、サービス提供サーバ101から提供されるウェブページを表示するとともに、ユーザによるウェブページへの操作を受け付ける。前述したように、サービス提供サーバ101のウェブサービス部520から提供されるアプリ画面は、HTML、XML、css、JavaScript等の言語によって作成されている。ウェブブラウザ701は、このようなアプリ画面を表示することにより、ウェブサービス部520の機能をウェブブラウザ701にロードし、スクリプトの形で実行することができる。
【0083】
カスタムUI作成部(作成部)702は、例えば、図4のCPU401で実行されるプログラム(例えば、カスタマイズ用のツール210やSDK等)によって実現され、開発者等が、カスタムUIアプリを作成ために用いられる。また、カスタムUI作成部702は、開発者等によって作成されたカスタムUIアプリを、サービス提供サーバ101に登録(アップロード)し、利用できるようにするデプロイ処理を実行する。
【0084】
記憶部703は、例えば、カスタムUI作成部702が作成した、カスタムUIアプリ等の様々な情報を記憶する。
【0085】
ウェブAPI(Application Programming Interface)704は、画像形成装置400が備える、スキャン、印刷、コピー、ファクス等の画像形成機能を利用するためのAPIを、サービス提供サーバ101に提供する。これにより、サービス提供サーバ101は、ウェブAPI704を利用して、画像形成装置400に画像形成処理を実行させることができる。
【0086】
画像形成部705は、例えば、図4のCPU401で実行されるプログラム、及びエンジン制御部430等によって実現され、スキャン、印刷、コピー、ファクス等の画像形成処理を実行する。
【0087】
(情報端末の機能構成)
図7(B)は、第1の実施形態に係る情報端末の機能構成の例を示している。情報端末102は、例えば、図3のCPU301で1つ以上のプログラムを実行することにより、ウェブブラウザ701、カスタムUI作成部702、及び記憶部703等を実現している。なお、ウェブブラウザ701、カスタムUI作成部702、及び記憶部703は、画像形成装置400が備えるウェブブラウザ701、カスタムUI作成部702、及び記憶部703と同様なので、説明を省略する。
【0088】
<処理の流れ>
続いて、第1の実施形態に係る情報処理方法の処理の流れについて説明する。
【0089】
(アプリケーションの登録処理)
図8Aは、第1の実施形態に係るアプリケーションの登録処理の例を示すシーケンス図である。この処理は、開発者等が、情報端末102(又は画像形成装置400)等を用いて、カスタムUIアプリ、WFアプリ等を作成し、作成したアプリケーションをサービス提供サーバ101に登録する処理の例を示している。なお、図7のウェブブラウザ701、及びカスタムUI作成部702は、情報端末102に備えられていても良いし、画像形成装置400に備えられていても良い。
【0090】
ステップS801において、開発者等は、アプリケーションの表示画面をカスタマイズするためのテンプレートの展開操作を行う。例えば、開発者等は、情報端末102等にインストールされたカスタマイズ用のツール210を起動し、テンプレートの展開コマンドを実行させる。
【0091】
ステップS802において、カスタムUI作成部702は、テンプレートの展開操作を受け付けると、予め記憶したテンプレートファイルを展開し、表示する。なお、テンプレートは、カスタマイズ用の雛形となるサンプルアプリ等であり、例えば、HTML、css、JavaScript等の言語によって作成されている。
【0092】
ステップS803において、開発者等は、展開されたテンプレートを利用して、カスタムUIアプリの作成操作を行う。例えば、開発者等は、図6Bに示すような、カスタムUIアプリ610を作成(実装)する。
【0093】
なお、ステップS802、S803示す処理は一例であり、開発者等は、テンプレートを利用せずに、カスタムUIアプリを作成(実装)しても良い。
【0094】
開発者等は、カスタムUIアプリの作成した後に、例えば、ステップS804~S815に示すような、WFアプリの作成、登録処理を行う。なお、WFアプリの作成、登録処理は、例えば、特許文献2(特開2018-01479)等に開示された従来技術と同様なので、ここでは詳細な説明は省略する。
【0095】
例えば、ステップS804において、開発者等は、ウェブブラウザ701を用いて、アプリ設定画面の表示操作を行う。
【0096】
ステップS805において、ウェブブラウザ701は、開発者等によるアプリ設定画面の表示操作を受け付けると、アプリ設定画面の取得要求をポータルサービス部540に送信する。
【0097】
ステップS806において、ポータルサービス部540の設定画面提供部541は、ウェブブラウザ701から、アプリ設定画面の取得要求を受け付けると、アプリ設定画面をウェブブラウザ701に送信する。
【0098】
ステップS807において、ウェブブラウザ701は、設定画面提供部541から受信したアプリ設定画面を表示する。
【0099】
ステップS808において、開発者等は、ウェブブラウザ701に表示されたアプリ設定画面を用いて、WFアプリの作成、登録操作を行う。例えば、開発者等は、各操作ボタンが選択されたときに実行する処理(例えば、スキャン、印刷等)、ワークフロー、設定情報等を設定してWFアプリを作成し、WFアプリの登録操作を行う。
【0100】
ステップS809において、ウェブブラウザ701は、開発者等によるWFアプリの作成、登録操作を受け付けると、WFアプリの登録を要求するアプリの登録要求を、ポータルサービス部540に送信する。
【0101】
ステップS810において、ポータルサービス部540の設定画面提供部541は、ウェブブラウザ701からアプリ登録要求を受け付けると、受け付けたアプリ登録要求をアプリ登録部542に通知する。
【0102】
ステップS811において、アプリ登録部542は、通知されたアプリ登録要求を、入出力サービス部510のアプリ管理部511に送信して、WFアプリの登録を要求する。
【0103】
ステップS812において、アプリ管理部511は、WFアプリの登録を要求するアプリの登録要求を受け付けると、WFアプリのアプリ情報551を、アプリ情報記憶部550に記憶(登録)する。また、アプリ管理部511は、アプリ情報記憶部550に記憶したWFアプリに対応するアプリケーションIDを発行する。
【0104】
ステップS813~S815において、アプリ管理部511は、例えば、WFアプリの登録が完了したことを示す完了通知を、ポータルサービス部540を介してウェブブラウザ701に通知する。この完了通知には、例えば、アプリ情報記憶部550に記憶したWFアプリに対応するアプリケーションIDが含まれる。
【0105】
ステップS816において、ウェブブラウザ701は、WFアプリの登録が完了したことを示す登録完了画面を表示する。この登録完了画面には、例えば、アプリ管理部511から通知されたアプリケーションIDが表示される。これにより、開発者等は、登録したWFアプリに対応するアプリケーションIDを確認することができる。
【0106】
(カスタムUI情報の登録処理)
図8Bは、第1の実施形態に係るカスタムUI情報の登録処理の例を示すシーケンス図である。この処理は、例えば、図8Aに示したアプリケーションの登録処理に続いて実行しても良いし、図8Aに示したアプリケーションの登録処理を実行した後に、任意のタイミングで実行しても良い。
【0107】
ステップS821において、開発者等は、カスタマイズしたアプリケーション(カスタムUIアプリ)を利用できるようにするデプロイコマンドの実行操作を行う。開発者等は、例えば、図8AのステップS816で確認したアプリケーションIDを入力して、デプロイコマンドの実行操作を行う。
【0108】
ステップS822において、カスタムUI作成部702は、管理者等によるデプロイコマンドの実行操作を受け付けると、カスタムUIアプリの圧縮ファイルを作成する。
【0109】
ステップS823において、カスタムUI作成部702は、作成した圧縮ファイルと、アプリケーションIDとを含むデプロイ要求を、ポータルサービス部540に送信する。
【0110】
ステップS824において、ポータルサービス部540のアプリ登録部542は、カスタムUI作成部702からデプロイ要求を受け付けると、デプロイ要求に含まれる圧縮ファイルを解凍する。
【0111】
ステップS825において、アプリ登録部542は、解凍されたファイルを検証する。例えば、アプリ登録部542は、解凍されたファイルのファイルサイズ、内包するファイル数、必須ファイルの有無等の確認を行う。例えば、本実施形態に係る情報処理システム100においては、「index.html」というファイル名のファイルを必須ファイルとしている。例えば、ウェブサービス部520の画面表示処理部521は、iframe200内にアプリ画面を表示するときに、「index.html」というファイル名のファイルを必ず読み込む必須ファイルとしている。従って、アプリ登録部542は、例えば、解凍されたファイルに、「index.html」というファイル名のファイルが含まれていない場合、解凍されたファイルに問題があると判断する。
【0112】
解凍されたファイルに問題がない場合、ステップS826以降の処理が実行される。一方、解凍されたファイルに問題がある場合、アプリ登録部542は、圧縮ファイルに問題があることをカスタムUI作成部702に通知して、ステップS826以降の処理の実行を中止する。
【0113】
ステップS826において、アプリ登録部542は、カスタムUIアプリを含むカスタムUI情報221を、カスタムUI記憶部220に記憶する。このカスタムUI情報221には、ステップS821で入力されたアプリケーションIDが含まれる。
【0114】
ステップS827において、アプリ登録部542は、入出力サービス部510のアプリ管理部511に、カスタムUI情報221の記憶先の情報、及びアプリケーションID等の情報を通知する。
【0115】
ステップS828において、アプリ管理部511は、アプリ登録部542から通知された、カスタムUI情報221の記憶先、及びアプリケーションID等を、例えば、ステップS812で記憶したアプリ情報551に追加して記憶する。
【0116】
なお、図8AのステップS813~S815において、アプリ管理部511は、ウェブブラウザ701に通知する完了通知にアプリケーションIDを含めて送信する。また、開発者等は、図8BのステップS821において、ウェブブラウザ701に表示されたアプリケーションIDを用いて、デプロイコマンドの実行操作を行う。これにより、アプリ登録部542は、ステップS823において、カスタムUI情報221の記憶先を追加するアプリ情報551を容易に特定することができる。
【0117】
ステップS829、S830において、アプリ管理部511は、アプリ登録部542を介して、カスタムUI作成部702に、デプロイ処理が完了したことを示す完了通知を通知する。
【0118】
上記の図8A図8Bの処理により、開発者等によって作成、登録された、カスタムUIアプリが、情報処理システム100で利用できるようになる。
【0119】
(アプリ画面の表示処理)
図9Aは、第1の実施形態に係るアプリ画面の表示処理の例を示すシーケンス図である。この処理は、画像形成装置400を利用するユーザが、図8A図8Bに示した処理で作成、登録した、カスタムUIアプリのアプリ画面(例えば、図2に示すような操作画面230a、230b等)を、画像形成装置400に表示する処理の例を示している。
【0120】
ステップS901において、画像形成装置400のウェブブラウザ701には、例えば、図9Bに示すような、1つ以上のカスタムUIアプリを選択可能に表示するアプリケーションの一覧画面920が表示されているものとする。
【0121】
図9Bは、第1の実施形態に係るアプリケーションの一覧画面のイメージを示す図である。アプリケーションの一覧画面920には、例えば、図9Bに示すように、サービス提供サーバ101に登録されているカスタムUIアプリを選択するための複数の選択ボタン921a~921fが表示されている。
【0122】
このアプリケーションの一覧画面920は、例えば、画像形成装置400のメニュー画面を表示するメニュー表示アプリケーション等が、ウェブサービス部520から通知されるアプリケーションの一覧情報に基づいて、ウェブブラウザ701に表示する。
【0123】
図9Cは、第1の実施形態に係るアプリケーションの一覧情報の例を示す図である。図9Cの例では、アプリケーションの一覧情報930には、複数のアプリケーションの情報931a~931fが含まれる。なお、以下の説明において、複数のアプリケーションの情報931a~931fのうち、任意のアプリケーションの情報を示す場合、「アプリケーションの情報931」を用いる。
【0124】
アプリケーションの情報931には、例えば、カスタムUIアプリのURL情報932、名前情報933、及びアイコン情報934等が含まれる。例えば、メニュー表示アプリケーションは、アプリケーションの情報931aに含まれる名前情報933、及びアイコン情報934を用いて、図9Bのアプリケーションの一覧画面920に、「アプリ1」を選択する選択ボタン921aを表示する。
【0125】
また、メニュー表示アプリケーションは、選択ボタン921aが選択されると、アプリケーションの情報931aに含まれるURL情報932を含むアプリ画面の表示要求を、ウェブサービス部520に送信する。本実施形態では、URL情報932には、カスタムUIアプリを特定するための情報として、アプリケーションID935が含まれる。ただし、カスタムUIアプリを特定するための情報は、アプリケーションID935に限られず、例えば、アプリケーション名等のアプリケーションID以外の情報を用いるものであっても良い。
【0126】
なお、メニュー表示アプリケーションは、他の選択ボタン921b~921fについても同様に、アプリケーションの情報932b~932fに基づいて、図9Bのアプリケーションの一覧画面920に表示する。
【0127】
ここで、図9Aに戻り、シーケンス図の説明を続ける。
【0128】
ステップS902において、ユーザは、カスタムUIアプリの開始操作を行う。例えば、ユーザは、図9Bに示すようなアプリケーションの一覧画面920において、「アプリ1」を開始したい場合、「アプリ1」の選択ボタン921aを選択する。
【0129】
ステップS903において、画像形成装置400のウェブブラウザ701は、ユーザによるカスタムUIアプリの開始操作を受け付けると、ウェブサービス部520の画面表示処理部521に対して、アプリ画面の表示要求を送信する。このアプリ画面の表示要求には、選択されたカスタムUIアプリのアプリケーションID935を含むURL情報932が含まれる。
【0130】
ステップS904において、画面表示処理部521のフレーム外側表示処理部601は、アプリ画面の表示要求を受け付けると、カスタムUI記憶部220からカスタムUIライブラリ222を取得する。このカスタムUIライブラリ222には、iframe200内に表示されるカスタムUIアプリから利用可能な共通のスクリプト(例えば、コピー処理用のスクリプト、スキャン処理用のスクリプト等)等が含まれる。
【0131】
ステップS905において、画面表示処理部521のフレーム外側表示処理部601は、フレーム内側表示処理部602に対して、フレーム内要素(カスタムUIアプリのアプリ画面)の表示を要求する表示要求を通知する。このフレーム内要素の表示要求には、例えば、アプリ画面の表示要求に含まれるURL情報932から取得したアプリケーションIDが含まれる。或いは、フレーム内要素の表示要求には、アプリケーションIDに代えて、アプリ画面の表示要求に含まれるURL情報932が含まれていても良い。
【0132】
ステップS906において、フレーム内側表示処理部602は、カスタムUI記憶部220から、フレーム内要素の表示要求に含まれるアプリケーションIDに対応するカスタムUI情報221を取得する。
【0133】
ステップS907において、フレーム内側表示処理部602は、フレーム外側表示処理部601に対して、カスタムUIアプリに対応するアプリ情報551の取得を要求するアプリ情報の取得要求を通知する。このアプリ情報の取得要求には、例えば、フレーム内要素の表示要求から取得したアプリケーションIDが含まれる。
【0134】
ステップS908において、フレーム外側表示処理部601は、フレーム内側表示処理部602から通知されたアプリ情報の取得要求を、アプリ実行部522のインターフェース部603に通知する。
【0135】
ステップS909において、インターフェース部603は、フレーム外側表示処理部601からアプリ情報の取得要求を受け付けると、入出力サービス部510のアプリ管理部511に対して、アプリケーションIDに対応するアプリ情報の取得を要求する。
【0136】
ステップS910において、アプリ管理部511は、要求されたアプリケーションIDに対応するアプリ情報を、アプリ実行部522のインターフェース部603に通知する。例えば、アプリ管理部511は、アプリ情報記憶部550に記憶しているアプリ情報551のうち、要求されたアプリケーションIDを含むアプリ情報を取得して、インターフェース部603に通知する。このアプリ情報には、例えば、カスタムUIアプリが実行するワークフロー(処理手順)等の情報が含まれる。
【0137】
ステップS911、S912において、インターフェース部603は、取得したアプリ情報を、フレーム外側表示処理部601を介して、フレーム内側表示処理部602に通知する。
【0138】
ステップS913において、フレーム内側表示処理部602は、取得したアプリ情報と、カスタムUI情報とを用いて、フレーム内に表示するアプリの表示画面を構築する。例えば、フレーム内側表示処理部602は、図2に示すようなカスタマイズされた表示画面201(カスタムUIアプリのアプリ画面)を作成する。
【0139】
ステップS914において、フレーム内側表示処理部602は、フレーム内要素(カスタムUIアプリのアプリ画面)を表示する。
【0140】
ステップS915において、フレーム外側表示処理部601は、カスタムUIアプリのアプリ画面を、ウェブブラウザ701に送信する。例えば、フレーム外側表示処理部601は、図2の操作画面230aに示すように、iframe200内に、カスタムUIアプリのアプリ画面を表示する操作画面230aを、ウェブブラウザ701に送信して表示させる。
【0141】
ステップS916において、画像形成装置400のウェブブラウザ701は、フレーム外側表示処理部601から送信されたアプリ画面を表示する。ウェブブラウザ701は、例えば、図2の操作画面230aに示すように、iframe200内に、カスタマイズされた表示画面201(カスタムUIアプリのアプリ画面)を表示するアプリ画面(操作画面230a)を表示する。
【0142】
(スキャン実行時の処理)
図10は、第1の実施形態に係るスキャン実行時の処理の例を示すシーケンス図である。この処理は、例えば、図9Aに示すアプリ画面の表示処理によって表示されたアプリ画面に対するユーザの操作に応じて、情報処理システム100が実行する所定の処理の一例を示している。ここでは、画像形成装置400のウェブブラウザ701のiframe200内に表示された、カスタムUIアプリのアプリ画面に、スキャン処理の実行を要求する「スキャン開始」ボタンが表示されているものとして、以下の説明を行う。
【0143】
ステップS1001において、ユーザは、画像形成装置400のウェブブラウザ701が表示する、カスタムUIアプリのアプリ画面に表示された「スキャン開始」ボタンを押下する。
【0144】
ステップS1002において、ウェブブラウザ701から、画面表示処理部521のフレーム内側表示処理部602に対して、「スキャン開始」ボタンが押下されたことが通知される。
【0145】
ステップS1003において、フレーム内側表示処理部602は、画像形成装置400によるスキャン処理の実行を要求するスキャン実行要求を、フレーム外側表示処理部601に通知する。
【0146】
ステップS1004において、フレーム外側表示処理部601は、フレーム内側表示処理部602から受け付けたスキャン実行要求を、アプリ実行部522のインターフェース部603に通知する。なお、フレーム外側表示処理部601は、上述したカスタムUIライブラリ222のスクリプトを実行することで、この処理を行っている。
【0147】
ステップS1005において、アプリ実行部522のインターフェース部603は、画像形成装置400のウェブAPI704が備えるスキャン実行APIを実行する。
【0148】
なお、ステップS1005に示す処理は一例である。例えば、アプリ実行部522は、入出力サービス部510のロジック処理部512を介して、画像形成装置400のスキャン実行APIを実行しても良い。或いは、アプリ実行部522は、サービス提供サーバ101が備える、画像形成装置400のAPIを利用するためのSDK(Smart SDK JS)等を介して、画像形成装置400のスキャン実行APIを実行しても良い。
【0149】
ステップS1006において、画像形成装置400のウェブAPI704は、スキャン実行APIが実行されると、画像形成部705に対してスキャン実行命令を通知する。
【0150】
ステップS1007において、画像形成部705は、ウェブAPI704から、スキャン実行命令を受け付けると、スキャン処理を実行する。
【0151】
ステップS1008、S1009において、アプリ実行部522のインターフェース部603は、スキャン処理を実行したことを示す完了通知を、フレーム外側表示処理部601を介して、フレーム内側表示処理部602に通知する。
【0152】
ステップS1010において、画面表示処理部521のフレーム内側表示処理部602は、画像形成装置400のウェブブラウザ701に、スキャン処理を実行したことを通知する。
【0153】
図9A図10に示すように、フレーム内側表示処理部602は、フレーム外側表示処理部601、及びインターフェース部603を介して、情報処理システム100が備える機能(例えば、アプリ情報の取得処理、スキャン実行処理等)を利用する。
【0154】
これは、前述したように、本実施形態でフレームに利用している「iframe」において、セキュリティの観点から、「sandbox」というオプションを有効に設定しているためである。このオプションを有効にすることにより、iframe内のコンテンツ(カスタムUIアプリ)による不正な処理の実行を抑制することができる。一方、このオプションを有効にすることにより、iframe内のコンテンツから、情報処理システム100が備える機能を直接利用することができなくなる。
【0155】
そこで、本実施形態では、フレーム外側表示処理部601が、フレーム内側表示処理部602からの要求を受け付けて、カスタムUIライブラリ222のスクリプトを実行することで、iframe200内のカスタムUIアプリから、情報処理システム100の機能を利用できるようにしている。
【0156】
以上、本実施形態によれば、開発者等は、表示画面をカスタマイズしたカスタムUIアプリを作成することにより、画像形成装置400等の電子機器103が表示するアプリケーションの表示画面を自由にカスタマイズすることができるようになる。
【0157】
[第2の実施形態]
第2の実施形態では、サービス提供サーバ101が、アプリケーションが利用する一時的な情報を、アプリケーション毎に管理する情報管理部を有する場合の例について説明する。
【0158】
図11は、第2の実施形態に係るウェブサービス部の機能構成の例を示す図である。第2の実施形態に係るウェブサービス部520は、図5に示す第1の実施形態に係るウェブサービス部520の機能構成に加えて、情報管理部1101を備えている。
【0159】
情報管理部1101は、例えば、図3のCPU301で実行されるiframe200外のアプリケーションによって実現される。情報管理部1101は、iframe200内のアプリケーション(カスタムUIアプリ)が利用する一時的な情報を、アプリケーション毎に管理する。
【0160】
具体的な一例として、A社が開発した第1のカスタムUIアプリがiframe200内に読み込まれており、この第1のカスタムUIアプリは、入力されたメールアドレスに対してスキャンした文章を送信する処理(ワークフロー)を実行可能であるものとする。また、この第1のカスタムUIアプリは、一度入力されたメールアドレス(一時的な情報)を、iframe200外の情報管理部1101に一時的に記憶する。これにより、iframe200内に、他のカスタムUIアプリ(例えば、B社が開発した第2のカスタムUIアプリ)が読み込まれた場合、第1のカスタムUIアプリが情報管理部1101に一時的に記憶した情報を再利用することができる。
【0161】
情報管理部1101は、カスタムUIアプリが利用する一時的な情報を管理するために、例えば、ウェブブラウザ701の「localStorage(ローカルストレージ)」を利用することができる。localStorageは、JavaScriptを利用して、任意のデータをクライアント側(ウェブブラウザ701)に保存する機能である。例えば、localStorage内に、A社のカスタムUIアプリ用の保存領域、B社のカスタムUIアプリ用の保存領域といったように、各カスタムUIアプリに対応する保存領域を用意する。なお、A社のカスタムUIアプリ用の保存領域に記憶された情報は、A社のカスタムUIアプリから再利用可能であるが、他社のカスタムUIアプリからは利用できないようになっている。
【0162】
例えば、情報管理部1101は、iframe200内に、第2のカスタムUIアプリが読み込まれたときに、第1のカスタムUIアプリが一時的に記憶した情報にはアクセスできないように管理する。このように、カスタムUIアプリが利用する一時的な情報を、カスタムUIアプリ毎に管理することにより、例えば、第1のカスタムUIアプリが記憶した一時的な情報が、第2のカスタムUIアプリにより、書き換えられること等を効果的に抑制することができる。
【0163】
[第3の実施形態]
第3の実施形態では、サービス提供サーバ101が、開発者等によりサービス提供サーバ101に登録されるカスタムUIアプリの脆弱性を検査する脆弱性検査部を有する場合の例について説明する。
【0164】
図12は、第3の実施形態に係るポータルサービス部の機能構成の例を示す図である。第3の実施形態に係るポータルサービス部540は、図5に示す第1の実施形態に係るポータルサービス部540の機能構成に加えて、脆弱性検査部1201を備えている。なお、脆弱性検査部1201は、アプリ登録部542に含まれていても良い。
【0165】
脆弱性検査部1201は、例えば、図3のCPU301で実行されるプログラムによって実現され、開発者等によりサービス提供サーバ101に登録されるカスタムUIアプリの脆弱性を検査する。
【0166】
例えば、脆弱性検査部1201は、図8BのステップS825において、アプリ登録部542が、解凍されたファイルを検証する際に、解凍されたカスタムUIアプリの脆弱性を検査する。例えば、解凍されたカスタムUIアプリに入力フォームがある場合、脆弱性検査部1201は、インジェクション攻撃(クロスサイトスクリプティングやSQLインジェクション等)や、その他の脆弱性がないかを検証する。
【0167】
具体的な一例として、脆弱性検査部1201は、脆弱性検査に関して、どのような条件が成り立つときに、どのような処理を実行すべきか、という問題解決に必要な知識を予めルールとして登録しておく。また、脆弱性検査部1201は、登録されたルールに該当する場合に脆弱性を検出するといったルールベースで、解凍されたカスタムUIアプリの脆弱性を検出しても良い。
【0168】
脆弱性検査部1201により、カスタムUIアプリに脆弱性が見つかった場合、アプリ登録部542は、例えば、脆弱性が見つかったカスタムUIアプリの登録を中止する。
【0169】
なお、脆弱性検査部1201は、サービス提供サーバ101が備えていれば良く、例えば、ポータルサービス部540の外部に設けられていても良い。また、脆弱性検査部1201が、カスタムUIアプリの脆弱性を検査するタイミングは、例えば、iframe200内にカスタムUIアプリを読み込むとき等、カスタムUIアプリの登録時以外のタイミングであっても良い。
【0170】
また、第3の実施形態は、第2の実施形態と組み合わせて実施することができる。
【0171】
[第4の実施形態]
第4の実施形態では、サービス提供サーバ101が、開発者によって登録されたカスタムUIアプリの公開を許可するか否かを示す設定情報を管理する公開管理部を有する場合の例について説明する。ここで、公開の範囲とは、カスタムUIアプリを開発する開発者間における公開の範囲を示す。この機能により、カスタムUIアプリを開発する開発者は、自身でカスタムUIアプリを全て開発するか、他の開発者が開発したカスタムUIアプリを利用してカスタムUIアプリを開発するかを選択することができるようになる。
【0172】
図13は、第4の実施形態に係るポータルサービス部の機能構成の例を示す図である。第4の実施形態に係るポータルサービス部540は、図5に示す第1の実施形態に係るポータルサービス部540の機能構成に加えて、公開管理部1301を備えている。なお、公開管理部1301は、設定画面提供部541に含まれていても良い。
【0173】
公開管理部1301は、例えば、図3のCPU301で実行されるプログラムによって実現され、開発者等によってサービス提供サーバ101に登録されたカスタムUIアプリの公開を許可するか否かを示す設定情報を管理する。
【0174】
例えば、公開管理部1301は、開発者等によりサービス提供サーバ101に登録されたカスタムUIアプリの公開を許可するか否かを設定する設定画面を、情報端末102(又は画像形成装置400)等のウェブブラウザ701に表示させることができる。また、公開管理部1301は、管理者等によって設定された、カスタムUIアプリの公開を許可するか否かを示す設定情報を、例えば、図4のHD304等に記憶して管理する。
【0175】
また、公開管理部1301は、サービス提供サーバ101に登録されたカスタムUIアプリの公開が許可されている場合、他の開発者等による、カスタムUIアプリの利用を許可する。
【0176】
これにより、開発者等は、他の開発者等がサービス提供サーバ101に登録し、公開を許可するように設定したカスタムUIアプリをベースにして、新たなカスタムUIアプリを作成することができるようになる。
【0177】
なお、第4の実施形態は、第2の実施形態、第3の実施形態等と組み合わせて実施することができる。
【0178】
以上、本発明の各実施形態によれば、サービス提供サーバ(サーバ装置)101を用いて、電子機器103にアプリケーションを提供する情報処理システム100において、アプリケーションの表示画面を自由にカスタマイズできるようになる。
【0179】
<補足>
上記で説明した各実施形態の各機能は、一又は複数の処理回路によって実現することが可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたASIC(Application Specific Integrated Circuit)、DSP(digital signal processor)、FPGA(field programmable gate array)や従来の回路モジュール等のデバイスを含むものとする。
【符号の説明】
【0180】
100 情報処理システム
101 サービス提供サーバ(サーバ装置)
103 電子機器
200 iframe(フレームの一例)
521 画面表示処理部
522 アプリ実行部
542 アプリ登録部
603 インターフェース部(インターフェース)
701 ウェブブラウザ
702 カスタムUI作成部(作成部)
1101 情報管理部
1201 脆弱性検査部
1301 公開管理部
【先行技術文献】
【特許文献】
【0181】
【文献】特開平07-110763号公報
【文献】特開2018-014079
図1
図2
図3
図4
図5
図6A
図6B
図7
図8A
図8B
図9A
図9B
図9C
図10
図11
図12
図13