JPWO2017150472A1 - システムおよび情報処理方法 - Google Patents

システムおよび情報処理方法 Download PDF

Info

Publication number
JPWO2017150472A1
JPWO2017150472A1 JP2018503306A JP2018503306A JPWO2017150472A1 JP WO2017150472 A1 JPWO2017150472 A1 JP WO2017150472A1 JP 2018503306 A JP2018503306 A JP 2018503306A JP 2018503306 A JP2018503306 A JP 2018503306A JP WO2017150472 A1 JPWO2017150472 A1 JP WO2017150472A1
Authority
JP
Japan
Prior art keywords
information
server
application
unit
connection
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2018503306A
Other languages
English (en)
Other versions
JP6673464B2 (ja
Inventor
松島 弘幸
弘幸 松島
楽 竹本
楽 竹本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Publication of JPWO2017150472A1 publication Critical patent/JPWO2017150472A1/ja
Application granted granted Critical
Publication of JP6673464B2 publication Critical patent/JP6673464B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1204Improving or facilitating administration, e.g. print management resulting in reduced user or operator actions, e.g. presetting, automatic actions, using hardware token storing data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1224Client or server resources management
    • G06F3/1226Discovery of devices having required properties
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1236Connection management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1253Configuration of print job parameters, e.g. using UI at the client
    • G06F3/1257Configuration of print job parameters, e.g. using UI at the client by using pre-stored settings, e.g. job templates, presets, print styles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/128Direct printing, e.g. sending document file, using memory stick, printing from a camera
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • G06F3/1287Remote printer device, e.g. being remote from client or server via internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/0035User-machine interface; Control console
    • H04N1/00405Output means
    • H04N1/00408Display of information to the user, e.g. menus
    • H04N1/00464Display of information to the user, e.g. menus using browsers, i.e. interfaces based on mark-up languages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)
  • Facsimiles In General (AREA)

Abstract

第1サーバは、地域情報を少なくとも含み、かつ、該地域情報に対応する機器が利用可能なアプリケーションを示す表示情報と、機器から該アプリケーションに関する処理を機器に実行させるアプリケーションコマンドと、を少なくとも含むWebコンテンツデータを、機器からの要求に応じて、機器に送信する制御部を備え、機器は、地域情報を少なくとも含み、かつ、表示情報を要求する表示情報要求を送信し、第1サーバから受信したWebコンテンツデータに基づく画面を表示部に表示させる制御を行う表示制御部と、画面を介したユーザの操作に応じてWebコンテンツデータに含まれるアプリケーションコマンドを実行することによる、該アプリケーションコマンドに対応したアプリケーションに関する処理の実行を機器に要求する実行部と、を含むWebブラウザと、Webブラウザからの要求に基づいてアプリケーションに関する処理を実行する処理実行部と、を備える。

Description

本発明は、システムおよび情報処理方法に関する。
近年、携帯電話や情報携帯端末を代表とする様々な通信機器の普及により、通信機器上で利用可能なアプリケーションの開発が盛んになってきている。これらのアプリケーションの利用を促進するため、アプリケーションを紹介し、そのまま通信機器にダウンロードやインストールすることができるウェブサイトやアプリケーションも開発されている。
例えば特許文献1では、サーバが保持している複数のアプリケーションごとに、当該アプリケーションのダウンロードを要求するダウンロードボタン(仮想ボタン)が表示されたアプリケーション説明ページが、サーバからコンピュータデバイス(クライアントデバイス)に提供され、コンピュータデバイスの表示部に表示される。そして、アプリケーション説明ページのダウンロードボタンが選択された場合、選択されたアプリケーションがコンピュータデバイスによってサポートされている場合に限り、ダウンロードを許可する技術が開示されている。
しかしながら、例えば特許文献1に開示された技術では、サーバ側で、機器が利用可能なアプリケーションを紹介するページ(Webページ)の表示内容を変更する場合、その変更に合わせて機器側のプログラムも変更する必要がある。すなわち、従来においては、機器が利用可能なアプリケーションを紹介するページを提供(ページ自体を提供する形態、および、機器側でページを生成するために必要な情報を提供する形態の両方を含む)するサーバが、例えば地域ごとに表示内容の異なるページを構築するための仕組みは存在しなかった。
また、機器から利用可能なアプリケーションを紹介するページの提供の要求があった場合、機器が設置されている地域で公開されているアプリケーションだけを選択して、機器が利用可能なアプリケーションを紹介するページを提供するという仕組みも存在しなかった。
本発明は、上記に鑑みてなされたものであり、機器が利用可能なアプリケーションを紹介するページを提供するサーバが、表示内容の異なるページを構築可能で、機器が設置されている地域で公開されているアプリケーションだけを紹介するページを提供することができる、システムおよび情報処理方法を提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、複数の第1サーバと、ネットワークを介して前記第1サーバの各々に接続される機器と、を備えるシステムであって、前記第1サーバは、前記機器から該機器が設置されている地理的位置を示す地域情報を少なくとも含み、かつ、該地域情報に対応する前記機器が利用可能なアプリケーションを示す表示情報と、前記機器から該アプリケーションに関する処理を前記機器に実行させるアプリケーションコマンドと、を少なくとも含むWebコンテンツデータを、前記機器からの要求に応じて、前記機器に送信する制御部を備え、前記第1サーバから受信した前記Webコンテンツデータに基づく画面を表示部に表示させる制御を行う表示制御部と、前記画面を介したユーザの操作に応じて前記Webコンテンツデータに含まれる前記アプリケーションコマンドを実行することによる、該アプリケーションコマンドに対応した前記アプリケーションに関する処理の実行を前記機器に要求する実行部と、を含むWebブラウザと、前記Webブラウザからの要求に基づいて、該要求に応じたアプリケーションに関する処理を実行する処理実行部と、を備える。
本発明によれば、機器が利用可能なアプリケーションを紹介するページを提供するサーバは、表示内容が異なるページを構築可能で、機器が設置されている地域で公開されているアプリケーションだけを紹介するページを提供することができる。
図1は、本実施形態のシステムの構成の一例を示す図である。 図2は、サーバのハードウェア構成の一例を示す図である。 図3は、サーバが有する機能の一例を示す図である。 図4は、アプリ情報管理モジュールが有する機能の一例を示す図である。 図5は、第1の対応情報の一例を示す図である。 図6は、第2の対応情報の一例を示す図である。 図7は、第3の対応情報の一例を示す図である。 図8は、第4の対応情報の一例を示す図である。 図9は、第5の対応情報の一例を示す図である。 図10は、第6の対応情報の一例を示す図である。 図11は、制御部が有する機能の一例を示す図である。 図12は、ライセンス管理モジュールが有する機能の一例を示す図である。 図13は、第7の対応情報の一例を示す図である。 図14は、第8の対応情報の一例を示す図である。 図15は、第9の対応情報の一例を示す図である。 図16は、制御部が有する機能の一例を示す図である。 図17は、アプリダウンロード管理モジュールが有する機能の一例を示す図である。 図18は、サーバの変形例を示す図である。 図19は、接続先提供サーバが有する機能の一例を示す図である。 図20は、サービス検索モジュールが有する機能の一例を示す図である。 図21は、第10の対応情報の一例を示す図である。 図22は、第11の対応情報の一例を示す図である。 図23は、制御部が有する機能の一例を示す図である。 図24は、MFPのハードウェア構成の一例を示すブロック図である。 図25は、MFPのソフトウェア構成の一例を示す模式図である。 図26は、操作部が有する機能の一例を示す図である。 図27は、サーバの接続情報の取得要求の一例を示す図である。 図28は、サーバの接続情報の一例を示す図である。 図29は、各モジュールの接続情報の取得要求の一例を示す図である。 図30は、各モジュールの接続情報の一例を示す図である。 図31は、サーバの接続情報と、接続先提供サーバの接続情報との取得要求の一例を示す図である。 図32は、サーバの接続情報と、複数の接続先提供サーバの接続情報の一例を示す図である。 図33は、操作画面の一例を示す図である。 図34は、地域情報設定画面の一例を示す図である。 図35は、地域情報設定ダイアログ画面の一例を示す図である。 図36は、販社情報入力画面の一例を示す図である。 図37は、エラー画面の一例を示す図である。 図38は、アプリケーション一覧画面の一例を示す図である。 図39は、表示情報要求の一例を示す図である。 図40は、表示情報要求に対する応答として受信した情報の一例を示す図である。 図41は、インストール指示画面の一例を示す図である。 図42は、インストール確認画面の一例を示す図である。 図43は、実行部から処理実行部へ通知される情報の一例を示す図である。 図44は、入力画面の一例を示す図である。 図45は、アプリケーション管理情報の一例を示す図である。 図46は、アプリケーション詳細情報の一例を示す図である。 図47は、更新指示画面の一例を示す図である。 図48は、実行部から処理実行部へ通知される情報の一例を示す図である。 図49は、削除指示画面の一例を示す図である。 図50は、削除確認画面の一例を示す図である。 図51は、実行部から処理実行部へ通知される情報の一例を示す図である。 図52は、システムの動作手順の一例を示すシーケンス図である。 図53は、MFPの動作例を示すフローチャートである。 図54は、サーバの動作例を示すフローチャートである。 図55は、システムの動作手順の一例を示すシーケンス図である。 図56は、システムの動作手順の一例を示すシーケンス図である。 図57は、システムの動作手順の一例を示すシーケンス図である。 図58は、ショートカット作成指示画面の一例を示す図である。 図59は、変形例のアプリケーション一覧画面の一例を示す図である。
以下、添付図面を参照しながら、本発明に係るシステムおよび情報処理方法の実施形態を詳細に説明する。以下では、システムに含まれる機器の一例として、画像形成装置の一態様である複合機(MFP:Multifunction Peripheral)を例に挙げて説明するが、これに限られるものではない。なお、複合機とは、コピー機能、スキャナ機能、プリンタ機能、ファクス機能などの複数の異なる機能を有する装置である。
図1は、本実施形態のシステム(情報処理システム)1の構成の一例を示す図である。図1に示すように、システム1は、サーバ2と、サーバ3と、サーバ4と、接続先提供サーバ5と、例えばインターネットなどのネットワーク7を介してサーバ2〜4および接続先提供サーバ5に接続されるMFP6と、を備える。なお、サーバ2〜4や接続先提供サーバ5は、複数のサーバから構成されるサーバ装置群を有しているクラウドコンピューティング型の形態である。図1に示すクラウドを構成するサーバの数は、一例を示したものであり、使用するサーバの数はこれに限定されない。
なお、図1の例では、クラウド側から見るとクライアントとなるシステム1に含まれる機器として、1台のMFP6のみを例示しているが、これに限られるものではなく、システム1に含まれる機器の台数および種類は任意である。例えばクライアントとなる機器として、PC(Personal Computer)がシステム1に含まれる形態であってもよい。また、システム1に含まれるサーバ(第1サーバ)として、3台のサーバ2〜4を例示しているが、これに限られるものではなく、システム1に含まれるサーバの台数および種類は任意である。また、システム1に含まれる接続先提供サーバ(第2サーバ)として、1台の接続先提供サーバ5を例示しているが、これに限られるものではなく、システム1に含まれる接続先提供サーバの台数および種類は任意である。なお以下では、「機器」を「MFP」とも表記する。なお、請求項の「第1サーバ」は「サーバ2〜4」に対応し、請求項の「第2サーバ」は「接続先提供サーバ5」に対応する。
接続先提供サーバ5は、MFP6からサーバ2〜4の接続情報(URL)の取得要求に応じてサーバ2〜4の接続情報をMFP6へ送信する。サーバ2〜4は、MFP6からの要求に応じて、MFP6が利用可能なアプリケーションを示す情報を含む表示情報と、アプリケーションに関する処理をMFP6に実行させるコマンドを示すアプリケーションコマンドとを含む画面情報とで構成されるWebコンテンツデータをMFP6へ送信する。サーバ2〜4は、サーバが設置されている地理的位置を示す地域が異なるだけであるので、以下では、サーバ2〜4を区別する必要がない場合、サーバ2と表記する。なお図1の例において、サーバ2の地域は日本であり、サーバ3の地域はアメリカであり、サーバ4の地域はヨーロッパである。以下、サーバ2の具体的な構成を説明する。
図2は、サーバ2のハードウェア構成の一例を示す図である。図2に示すように、サーバ2は、CPU301と、ROM302と、RAM303と、通信I/F304と、入力装置305と、表示装置306と、補助記憶装置307とを備える。CPU301は、サーバ2の動作を統括的に制御する。ROM302は、プログラム等の各種のデータを記憶する不揮発性のメモリである。RAM303は、CPU301が実行する各種の処理の作業領域(ワークエリア)として機能する揮発性のメモリである。通信I/F304は、ネットワーク7と接続するためのインタフェースである。入力装置305は、ユーザによる操作の入力に用いられるデバイスであり、例えばマウスやキーボードなどで構成される。表示装置306は各種の情報を表示するデバイスであり、例えば液晶型ディスプレイ装置などで構成される。補助記憶装置307は、例えばHDD(Hard Disk Drive)などで構成される。
図3は、サーバ2が有する機能の一例を示す図である。図3に示すように、サーバ2は、アプリ情報管理モジュール210と、ライセンス管理モジュール220と、アプリダウンロード管理モジュール230とを有する。図3の例では、本実施形態に関するモジュール(機能)のみを例示しているが、サーバ2が有するモジュールはこれらに限られるものではない。
図4は、アプリ情報管理モジュール210が有する機能の一例を示す図である。アプリ情報管理モジュール210は、記憶部211と、制御部212と、画面提供部213と、設定部214と、を有している。なお、図4の例では、本実施形態に関する機能を主に例示しているが、アプリ情報管理モジュール210が有する機能はこれらに限られるものではない。
図4に示すように、記憶部211は、アプリ情報データベース(以下、「アプリ情報DB」と称する)261と、ユーザ情報データベース(以下、「ユーザ情報DB」と称する)262とを有する。
アプリ情報DB261は、機器(MFP6)が設置されている地理的位置を示す地域情報、または機器の販売店を示す販社情報に対応するアプリケーションを提供する組織を識別する組織IDに紐付いている複数のアプリケーションごとに、公開されている状態であるか否かを示す公開状態情報と、該アプリケーションを利用可能な機器の機種を識別する機種情報とを対応付けて記憶する。本実施形態では、アプリ情報DB261は、図5に示す第1の対応情報と、図6に示す第2の対応情報と、図7に示す第3の対応情報と、図8に示す第4の対応情報と、図9に示す第5の対応情報と、図10に示す第6の対応情報とを記憶している。
図5に示すように、第1の対応情報は、機器(MFP6)の機種ごとに割り当てられた機種IDと、機器の機種名と、機器の機種を識別する機種コード(「機種情報」)とを対応付けた情報である。なお、1つの機種IDに、複数の機種コードを対応付けてもよい。図6に示すように、第2の対応情報は、アプリケーションを識別するアプリIDと、アプリケーションの使用権限(ライセンス)の認証に用いられるライセンスキーと、機種IDと、該アプリIDで識別されるアプリケーションの最新のバージョンを示すバージョン情報とを対応付けた情報である。なお、この例では、無償のアプリケーションのアプリIDに対しては、ライセンスの認証が不要であるために予めライセンスキーが対応付けられているが、有償のアプリケーションのアプリIDに対しては、ライセンスの認証が必要になるのでライセンスキーは対応付けられない構成となる。
図7に示すように、第3の対応情報は、アプリケーションを提供する組織ごとに割り当てられた組織IDと、該組織IDで識別される組織名称と、該組織の種別と、該組織が位置する地理的位置を示す地域情報と、機器(MFP6)の販売店を示す販社情報とを対応付けた情報である。図8に示すように、第4の対応情報は、組織IDと、アプリIDと、アプリケーションが公開されている状態であるか否かを示す公開状態情報とを対応付けた情報である。以上の第1の対応情報と第2の対応情報と第3の対応情報と第4の情報との組み合わせにより、地域情報、または販社情報に対応するアプリケーションを提供する組織IDに紐付いている複数のアプリケーションごとに、公開されている状態であるか否かを示す公開状態情報と、該アプリケーションを利用可能な機器の機種を識別する機種情報とを対応付けていると考えることができる。
また、図9に示すように、第5の対応情報は、アプリIDと、機器が使用される国や地域の言語を示す言語情報と、該アプリIDで識別されるアプリケーションの表示名称と、該アプリIDで識別されるアプリケーションを紹介する紹介メッセージとを対応付けた情報である。以下の説明では、表示名称と紹介メッセージとの組み合わせを、アプリケーションを説明するための「アプリ説明情報」と称する場合がある。
また、図10に示すように、第6の対応情報は、組織IDと、アプリIDと、言語情報と、該アプリIDで識別されるアプリケーションの価格と、該アプリIDで識別されるアプリケーションの価格説明とを対応付けた情報である。以下の説明では、価格と価格説明との組合せを、アプリケーションの価格を説明するための「アプリ価格情報」と称する場合がある。
図4に戻って記憶部211の説明を続ける。ユーザ情報DB262は、例えば後述の設定部214による設定のための操作を行う権限を有するユーザの認証に必要な情報を記憶する。
次に、制御部212が有する機能を説明する。ここでは、制御部212が有する機能は、サーバ2側のアプリケーションプログラミングインタフェース(API)により提供される。
ここで、説明の便宜上、制御部212が有する機能を説明する前に、画面提供部213の機能を説明する。画面提供部213は、機器(MFP6)から、画面情報を要求する画面情報要求を受信した場合に、アプリケーションコマンドを少なくとも含むWebコンテンツデータ(画面情報)を生成し、画面情報要求に対する応答として、Webコンテンツデータ(画面情報)を機器(MFP6)へ送信する。Webコンテンツデータ(画面情報)は、例えばHTMLと、HTMLに含まれる(あるいはHTMLから参照される)CSS、JavaScript(登録商標)などを含む。これを、機器(MFP6)のWebブラウザ(後述の表示制御部273)が表示して、JavaScriptのAjaxと呼ばれる技術で、サーバ2のAPI(制御部212)に表示情報を依頼する。例えばアプリケーションコマンドがJavaScriptである場合、HTMLにスクリプト自体を埋め込む形態であってもよいし、リンクだけを記載する形態であってもよい。この例では、送信元の機器(MFP6)の機種コードを含み、かつ、表示情報を要求する表示情報要求が、制御部212へ送信される。本実施形態のアプリケーションコマンドの種類として、インストール命令、更新命令、アンインストール命令などが挙げられる。インストール命令は、アプリケーションをインストールする命令を示す。更新命令は、アプリケーションを更新する命令を示す。アンインストール命令は、インストール済みのアプリケーションを削除して、MFP4の状態を、該アプリケーションをインストールする前の状態に戻す命令を示す。
図11は、制御部212が有する機能の一例を示す図である。図11に示すように、制御部212は、特定部216と、表示情報生成部217と、設定制御部219とを有する。
特定部216は、機器(MFP6)から、該機器が設置されている地理的位置を示す地域情報と、該機器の機種を識別する機種コードとを少なくとも含み、かつ、表示情報を要求する表示情報要求を受信した場合に、記憶部211(この例ではアプリ情報DB261)に記憶された情報を参照して、表示情報要求に含まれる地域情報と、機種コードと、地域情報に紐付いた組織IDで公開されている状態を示す公開状態情報との組み合わせに対応するアプリケーションを特定する。より具体的には、特定部216は、機器から表示情報要求を受信した場合、図7に示す第3の対応情報を参照して、その受信した表示情報要求に含まれる地域情報または販社情報に対応付けられた組織IDを選択する。なお、販社情報が含まれている場合は販社情報に対応付けられた組織IDを優先的に選択し、販社情報が含まれていない場合は地域情報に対応付けられた組織IDを選択する。次に、特定部216は、図8に示す第4の対応情報を参照して、その選択した組織IDに対応付けられた1以上のアプリIDの中から、公開されている状態を示す公開状態情報が対応付けられたアプリIDを選択する。次に、特定部216は、図5に示す第1の対応情報を参照して、その受信した表示情報要求に含まれる機種コードに対応付けられた機種IDを選択する。次に、特定部216は、図6に示す第2の対応情報を参照して、その選択した機種IDに対応付けられた1以上のアプリIDを選択する。次に、特定部216は、図8で選択した組織IDに対応付けられた1以上のアプリIDの中で公開されているアプリIDと、図6で選択した機種IDに対応付けられた1以上のアプリIDとを比較して一致するアプリIDを特定する。以上のようにして特定したアプリIDで識別されるアプリケーションを、機器(MFP6)から受信した表示情報要求に含まれる地域情報と、機種コードと、地域情報に紐付いた組織IDで公開されている状態を示す公開状態情報との組み合わせに対応するアプリケーションとして(つまり、表示情報要求の要求元の機器で利用可能なアプリケーションとして)特定する。
また、本実施形態における表示情報要求の中には、該表示情報要求の要求元の機器が使用される国または地域の言語を示す言語情報(ロケール情報)が含まれているので、特定部216は、図9に示す第5の対応情報を参照して、以上のようにして特定したアプリIDと、機器から受信した表示情報要求に含まれる言語情報との組み合わせに対応するアプリ説明情報を特定することができる。同様に、本実施形態における表示情報要求の中には、該表示情報要求の要求元の機器が使用される国または地域の言語を示す言語情報(ロケール情報)が含まれているので、特定部216は、図10に示す第6の対応情報を参照して、以上のようにして特定した組織IDごとのアプリIDと、機器から受信した表示情報要求に含まれる言語情報との組み合わせに対応するアプリ価格情報を特定することができる。なお、上記言語情報は、HTTPのAccept−Languageヘッダで記載するのが一般的である。
図11の説明を続ける。表示情報生成部217は、特定部216により特定されたアプリケーションを示すWebコンテンツデータ(表示情報)を生成し、その生成したWebコンテンツデータ(表示情報)を、表示情報要求に対する応答として機器(MFP6)へ送信する。本実施形態のWebコンテンツデータ(表示情報)は、表示情報要求の要求元の機器(MFP6)が利用可能なアプリケーションごとに(例えばアプリIDごとに)、該アプリケーションの詳細を示す詳細情報を対応付けたアプリケーション詳細情報を含んでいる。詳細情報としては、ライセンスキー、バージョン情報、アプリ説明情報、アプリ価格情報などが含まれる。
設定制御部219は、設定部214による設定を、記憶部211に記憶された情報に反映させる制御を行う。つまり、設定制御部219は、設定部214による設定に応じて、記憶部211に記憶された情報を更新する制御を行う。この例では、設定部214は、ユーザの操作に応じて、表示情報を可変に設定する機能を有する。例えば設定部214は、ユーザの操作に応じて、アプリ説明情報やアプリ価格情報、画面上の表示部品の配置などを示すレイアウト情報を可変に設定することができる。これにより、例えば地域ごとに異なる表示内容とすることもできる。
以上に説明した制御部212、画面提供部213および設定部214の各々の機能は、CPU301がROM302等の記憶装置に格納されたプログラムを実行することにより実現可能である。また、以上に説明した記憶部211は、ROM302またはHDD等の補助記憶装置307などにより実現可能である。この例では、制御部212と画面提供部213との組み合わせが、機器(MFP6)からの要求に応じて、機器(MFP6)が利用可能なアプリケーションを示す表示情報と、アプリケーションコマンドを少なくとも含む画面情報とで構成されるWebコンテンツデータを送信する機能(「制御部」)に対応していると考えることができる。
次に、ライセンス管理モジュール220が有する機能を説明する。図12は、ライセンス管理モジュール220が有する機能の一例を示す図である。図12に示すように、ライセンス管理モジュール220は、記憶部221と、制御部222と、ライセンス発行部223とを有している。なお、図12の例では、本実施形態に関する機能を主に例示しているが、ライセンス管理モジュール220が有する機能はこれらに限られるものではない。
図12に示すように、記憶部221は、ライセンス情報データベース(以下、「ライセンス情報DB」と称する)224と、ユーザ情報データベース(以下、「ユーザ情報DB」と称する)225と、を有する。
ライセンス情報DB224は、複数のアプリケーションごとに、該アプリケーションの使用権限(ライセンス)に関する情報を対応付けて記憶する。本実施形態では、ライセンス情報DB224は、図13に示す第7の対応情報と、図14に示す第8の対応情報と、図15に示す第9の対応情報とを記憶している。
図13に示すように、第7の対応情報は、アプリIDと、ライセンスの種別を示すライセンス種別と、ライセンスの形態(この例では、有償、無償、トライアルのうちの何れか)を示すライセンス形態と、ライセンスが有効な期間を示す有効期限と、ライセンスを付与可能な数を示すボリューム数とを対応付けた情報である。また、図14に示すように、第8の対応情報は、ライセンス種別と、ライセンスキーと、使用中のライセンスの数を示す使用中ライセンス数と、使用済みのライセンスの数を示す使用済みライセンス数とを対応付けた情報である。さらに、図15に示すように、第9の対応情報は、ライセンスキーと、機番と、有効期限と、ライセンスが有効であるか無効であるかを示す有効状態情報とを対応付けた情報である。
図12に戻って記憶部221の説明を続ける。ユーザ情報DB225は、例えばライセンスを発行するための操作を行うことができるユーザの認証に必要な情報を記憶する。このユーザ情報DB225は、アプリ情報管理モジュール210のユーザ情報DB262と共通であってもよい。
次に、制御部222が有する機能を説明する。ここでは、制御部222が有する機能は、サーバ2側のアプリケーションプログラミングインタフェース(API)により提供される。図16は、制御部222が有する機能の一例を示す図である。図16に示すように、制御部222は、登録制御部226と、ライセンス有効化部227と、ライセンス無効化部228とを有する。
登録制御部226は、ライセンス発行部223により発行されたライセンスに関する情報を記憶部221(ライセンス情報DB224)に登録する制御を行う。本実施形態では、ライセンス発行部223は、ライセンスを発行するための操作を行う権限を有するユーザから、ライセンスを発行する対象となるアプリケーションのアプリIDと、ライセンス種別を選択する操作を受け付けた場合、その受け付けた操作により選択されたアプリIDとライセンス種別に対応するライセンスキーを発行する。なお、ライセンス発行部223は、HTMLなどで記述されるUIを作るだけにして、ユーザの操作に応じてライセンスを発行する機能は、制御部222が有する形態であってもよい。登録制御部226は、ライセンス発行部223により発行されたライセンスキーと、該ライセンスキーに対応するライセンス種別とを示す情報をライセンス情報DB224に登録する制御を行う。より具体的には、登録制御部226は、ライセンス発行部223から、ライセンスキーと、該ライセンスキーに対応するライセンス種別とを受け取った場合、図14に示す第8の対応情報の中に、その受け取ったライセンスキーとライセンス種別とを含む新たなレコード(単位情報、この例では行単位の情報)を追加する。
ライセンス有効化部227は、機器(MFP6)からの要求に応じて、ライセンスを有効化するための制御を行う。この例では、ライセンス有効化部227は、アプリIDとライセンスキーと機番とを少なくとも含み、かつ、ライセンスの有効化を要求する有効化要求を機器(MFP6)から受信した場合、ライセンス情報DB224に記憶された第8の対応情報(図14参照)の中に、その受信した有効化要求に含まれるライセンスキーが存在するか否かを確認する。その確認結果が肯定の場合、ライセンス有効化部227は、ライセンス情報DB224に記憶された第7の対応情報(図13参照)を参照して、その受信した有効化要求に含まれるアプリIDに対応付けられた有効期限を特定する。そして、図15に示す第9の対応情報の中に、受信した有効化要求に含まれるライセンスキーおよび機番と、特定した有効期限と、有効を示す有効状態情報とを対応付けた新たなレコードを追加する。また、ライセンス有効化部227は、図14に示す第8の対応情報を参照して、機器(MFP6)から受信した有効化要求に含まれるライセンスキーに対応付けられた使用中ライセンス数を「1」だけインクリメントして更新する。そして、ライセンス有効化部227は、有効化要求に対する応答として、ライセンスの状態が有効である旨を機器(MFP6)へ送信する。この通知を受けた機器(MFP6)は、有効化要求に含まれるアプリIDで識別されるアプリケーションを利用することができる。
なお、例えばライセンス情報DB224に記憶された情報の中に、機器(MFP6)から受信した有効化要求に含まれるライセンスキーが存在しない場合や、機器(MFP6)から受信した有効化要求に含まれるライセンスキーに対応するボリューム数が既に上限に到達している場合は、ライセンス有効化部227は、機器(MFP6)からの有効化要求に対して、エラーを返すことになる。
ライセンス無効化部228は、機器(MFP6)からの要求に応じて、ライセンスを無効化するための制御を行う。この例では、ライセンス無効化部228は、ライセンスキーと機番とを少なくとも含み、かつ、ライセンスの無効化を要求する無効化要求を機器(MFP6)から受信した場合、ライセンス情報DB224に記憶された第9の対応情報(図15参照)を参照して、その受信した無効化要求に含まれるライセンスキーと機番との組み合わせに対応付けられた有効状態情報を、無効を示す情報に変更する。また、ライセンス情報DB224に記憶された第8の対応情報(図14参照)を参照して、機器(MFP6)から受信した無効化要求に含まれるライセンスキーに対応付けられた使用中ライセンス数を「1」だけデクリメントし、使用済みライセンス数を「1」だけインクリメントして更新する。そして、ライセンス無効化部228は、無効化要求に対する応答として、ライセンスの状態が無効である旨を機器(MFP6)へ送信する。この通知を受けた機器(MFP6)は、無効化要求に含まれるアプリIDで識別されるアプリケーションを利用することはできなくなる。
以上に説明した制御部222およびライセンス発行部223の各々の機能は、CPU301がROM302等の記憶装置に格納されたプログラムを実行することにより実現可能である。また、以上に説明した記憶部221は、ROM302またはHDD等の補助記憶装置307により実現可能である。
次に、アプリダウンロード管理モジュール230が有する機能を説明する。図17は、アプリダウンロード管理モジュール230が有する機能の一例を示す図である。図17に示すように、アプリダウンロード管理モジュール230は、アプリストレージ231と、ダウンロード部232とを有している。なお、図17の例では、本実施形態に関する機能を主に例示しているが、アプリダウンロード管理モジュール230が有する機能はこれらに限られるものではない。
アプリストレージ231は、機器(MFP6)に提供するための複数のアプリケーションを記憶している。この例では、アプリストレージ231は、複数のアプリIDごとに、アプリケーション本体を含むデータファイルを対応付けて記憶している。ダウンロード部232は、機器(MFP6)からの要求に応じて、アプリストレージ231に記憶された何れかのアプリケーションをMFP6へ送信(ダウンロード)する制御を行う。この例では、ダウンロード部232は、アプリIDを少なくとも含み、かつ、アプリケーションのダウンロードを要求するダウンロード要求を機器(MFP6)から受信した場合、その受信したダウンロード要求に含まれるアプリIDに対応するアプリケーションを機器(MFP6)へ送信する。より具体的には、ダウンロード部232は、アプリストレージ231を参照して、機器(MFP6)から受信したダウンロード要求に含まれるアプリIDに対応するデータファイルを特定し、その特定したデータファイルを機器(MFP6)へ送信する。
以上に説明したダウンロード部232の機能は、CPU301がROM302等の記憶装置に格納されたプログラムを実行することにより実現可能である。また、以上に説明したアプリストレージ231は、ROM302またはHDD等の補助記憶装置307により実現可能である。
以上がサーバ2の構成となる。なお、サーバ2は、図1に示したように、複数のサーバから構成される形態であってもよい。例えば図18に示すように、サーバ2は、アプリケーションサーバ240と、データベースサーバ250とから構成される形態であってもよい。例えばアプリケーションサーバ240は、上述の制御部212、画面提供部213、設定部214、制御部222、ライセンス発行部223を有する形態であってもよい。また、例えばアプリケーションサーバ240は、複数のサーバで構成され、上述の制御部212、画面提供部213、設定部214、制御部222、ライセンス発行部223、ダウンロード部232の各々は、何れかのサーバに分散して搭載される形態であってもよい。
また、例えばデータベースサーバ250は、上述の記憶部211および記憶部221を有する形態であってもよい。また、例えばデータベースサーバ250は、複数のサーバで構成され、上述のアプリ情報DB261、ユーザ情報DB262、ライセンス情報DB224、ユーザ情報DB225、アプリストレージ231の各々は、何れかのサーバに分散して搭載される形態であってもよい。
また、図1の例で説明したように、例えばサーバ2の地域は日本であり、サーバ3の地域はアメリカであり、サーバ4の地域はヨーロッパである。このような場合、上記のサーバ2〜4の構成はすべて同じ構成であってもよい。また例えば、サーバ2(日本)だけがライセンス管理モジュールを備え、サーバ3(アメリカ)、サーバ4(ヨーロッパ)はライセンス管理モジュールを備えない構成であってもよい。また例えば、サーバ2(日本)、サーバ4(ヨーロッパ)がアプリケーションサーバ240と、データベースサーバ250とを備え、サーバ3(アメリカ)は、アプリケーションサーバ240と、データベースサーバ250とを備えない構成であってもよい。
また、アプリダウンロード管理モジュール230は、応答性を向上させるために、例えば、サーバ2〜4に備えるようにし、ライセンス管理モジュール220は、一極集中管理を行うために、例えば、サーバ2(日本)に備えるようにしてもよい。また、アプリ情報管理モジュール210は、応答性を向上させるためや、データ保護の観点からサーバ2(日本)、サーバ4(ヨーロッパ)に備えるようにし、アプリ情報管理モジュール210のサブモジュール(設定部214)は、業務効率の向上のためにサーバ2(日本)に備えるようにしてもよい。
次に、接続先提供サーバ5の機能構成について説明する。なお、接続先提供サーバ5のハードウェア構成の一例は、上記の図2を用いて説明した、サーバ2のハードウェア構成の一例と同様であるため詳細な説明は省略する。図19は、接続先提供サーバ5が有する機能の一例を示す図である。図19に示すように、接続先提供サーバ5は、サービス検索モジュール310を有する。図19の例では、本実施形態に関するモジュール(機能)のみを例示しているが、接続先提供サーバ5が有するモジュールはこれに限られるものではない。
図20は、サービス検索モジュール310が有する機能の一例を示す図である。サービス検索モジュール310は、記憶部311と、制御部312と、を有している。なお、図20の例では、本実施形態に関する機能を主に例示しているが、サービス検索モジュール310が有する機能はこれらに限られるものではない。
図20に示すように、記憶部311は、接続情報データベース(以下、「接続情報DB」と称する)321を有する。
接続情報DB321は、少なくとも、アプリケーションを提供する組織ごとに割り当てられた組織IDと、該組織が位置する地理的位置を示す地域情報と、機器(MFP6)の販売店を示す販社情報とを対応付けた情報を記憶する。
接続情報DB321は、少なくとも、機器(MFP6)が設置されている地理的位置を示す地域情報または機器(MFP6)の販売店を示す販社情報に対応付けられた組織IDと、アプリケーションを提供するサーバ2の接続情報とを対応付けた情報を記憶する。
また、接続情報DB321は、少なくとも、機器(MFP6)を識別する機器情報(機番)と、アプリケーションを提供するサーバの接続情報とを対応付けた情報を記憶する。本実施形態では、接続情報DB321は、図7に示した第3の対応情報と、図21に示す第10の対応情報と、図22に示す第11の対応情報とを記憶している。なお、接続情報DB321は、第3の対応情報および第10の対応情報、または第11の対応情報のどちらか一方を記憶するようにしてもよい。
図21に示すように、第10の対応情報は、アプリケーションを提供する組織ごとに割り当てられた組織IDと、組織IDで識別される組織で公開されているアプリケーションを提供するサーバの接続情報とを対応付けた情報である。図7に示す第3の対応情報および図21に示す第10の対応情報を用いることで、機器(MFP6)が設置されている地域情報または販社情報に基づいて、地域情報または販社情報に対応する組織IDで識別される組織で公開されているアプリケーションを提供するサーバの接続情報(URL)を特定することができる。これにより、接続先提供サーバ5は、機器(MFP6)に一番近いロケーションにあるサーバに接続させることができる。
図22に示すように、第11の対応情報は、機器(MFP6)を識別する機番と、アプリケーションを提供するサーバの接続情報とを対応付けた情報である。第11の対応情報を用いることで、機番から、アプリケーションを提供するサーバの接続情報(URL)を特定することができる。これにより、機番ごとに、アプリケーションを提供するサーバの接続情報を管理する場合には、接続先提供サーバ5は、機器(MFP6)の機番に対応付いた所定のサーバに接続させることができる。例えば、特定の機器だけを特別に所定のサーバに接続させたい場合、具体的には、複数地域にまたがる企業のユーザに対して、地域情報(地域コード)または販社情報(販社コード)は、契約元の本社所在地に基づいて設定されていたとしても、機器(MFP6)に接続させるサーバは機器(MFP6)の設置されている場所に近いところのサーバに接続させたい場合には、第11の対応情報を用いることで、接続先提供サーバ5は、機器(MFP6)の機番に対応付いた所定のサーバに接続させることができる。このように、接続先提供サーバ5は、機器(MFP6)から地域情報または販社情報と、機器情報(機番)とを少なくとも含む、接続情報取得要求を受け付けた場合、地域情報または販社情報に拠らず、機器(MFP6)ごとに所定の接続情報を特定することができる。
上記の第10の対応情報および第11の対応情報の用い方として、例えば通常は機器(MFP6)が設置されている地域情報(地域コード)または販社情報(販社コード)に基づいて、第10の対応情報を用いて、地域情報または販社情報に対応する組織IDで識別される組織で公開されているアプリケーションを提供するサーバの接続情報(URL)を特定し、特定の機器だけを所定のサーバに接続させたい場合には、第11の対応情報を用いて、機器(MFP6)の機番に対応付いた所定のサーバを特定する。なお、図22に示した第11の対応情報に機番が登録されている場合は第11の対応情報を用いてサーバの接続情報を特定し、第11の対応情報に機番が登録されていない場合には、第10の対応情報を用いて地域情報または販社情報に基づいてサーバの接続情報を特定するようにしてもよい。
次に、制御部312が有する機能を説明する。制御部312は、機器(MFP6)から該機器(MFP6)が設置されている地理的位置を示す地域情報または機器(MFP6)の販売店を示す販社情報と、該機器(MFP6)を識別する機器情報(機番)とを少なくとも含み、サーバ2の接続情報の取得を要求する接続情報取得要求に応じて、記憶部311に記憶された情報を参照し、サーバ2の接続情報を特定し、該サーバ2の接続情報を機器(MFP6)に送信する制御を行う。ここでは、制御部312が有する機能は、接続先提供サーバ5側のアプリケーションプログラミングインタフェース(API)により提供される。
図23は、制御部312が有する機能の一例を示す図である。図23に示すように、制御部312は、接続情報特定部322と、リスト生成部323とを有する。
まず、接続情報特定部322とリスト生成部323の役割分担について説明する。本実施形態では、接続情報特定部322がサーバ2の接続情報(URL)を特定してリスト生成部323に受け渡し、リスト生成部323が所定の条件に従って並べた複数のサーバの接続情報の接続一覧情報(リスト)を生成して接続情報特定部322に受け渡し、接続情報特定部322が接続情報の接続一覧情報(サーバ2の接続情報の接続一覧情報)を機器(MFP6)に送信する。なお、所定の条件は任意に設定できる。また、本実施形態において、接続情報特定部322が特定するサーバ2の接続情報(URL)が1つだけの場合と、複数ある場合とがある。サーバ2の接続情報(URL)が1つだけの場合にはリスト生成部323は、接続情報(URL)が1つの接続一覧情報(リスト)を生成する。また、サーバ2の接続情報(URL)が複数ある場合にはリスト生成部323は、所定の条件に従って並べた複数の接続情報(URL)の接続一覧情報(リスト)を生成する。なお、「接続情報特定部」は請求項の「接続情報送信部」の機能を含んでいる。以下では、接続一覧情報を「リスト」とも表記する。
また、本実施形態の変形例として、リスト生成部323が生成した複数のサーバの接続情報の接続一覧情報(リスト)を、リスト生成部323から機器(MFP6)に送信させるようにすることも可能である。この場合、接続情報特定部322がサーバ2の接続情報(URL)を特定してリスト生成部323に受け渡し、リスト生成部323が所定の条件に従って並べた複数のサーバの接続情報の接続一覧情報(リスト)を生成して、リスト生成部323が接続情報の接続一覧情報(サーバ2の接続情報の接続一覧情報)を機器(MFP6)に送信する。
(接続情報が1つの場合)
接続情報特定部322は、機器(MFP6)から地域情報または販社情報と、該機器(MFP6)を識別する機器情報(機番)とを少なくとも含み、サーバ2の接続情報の取得を要求する接続情報取得要求を受け付けて、記憶部311(この例では接続情報DB321)に記憶された情報を参照して、サーバ2の接続情報の取得要求に含まれる地域情報または販社情報に対応する組織IDで識別される組織で公開されているアプリケーションを提供するサーバ2の接続情報(URL)を特定し、サーバ2の接続情報(URL)をリスト生成部323に受け渡し、リスト生成部323で生成された接続情報(URL)のリストを受け取って機器(MFP6)に送信する。具体的には、接続情報特定部322は、機器(MFP6)からサーバ2の接続情報取得要求を受信した場合、図7に示す第3の対応情報を参照して、その受信したサーバ2の接続情報取得要求に含まれる地域情報または販社情報に対応付けられた組織IDを選択する。例えば、サーバ2の接続情報取得要求に地域情報「JP」が含まれていた場合、接続情報特定部322は、組織ID「O0002」を選択する。なお、販社情報が含まれている場合は販社情報に対応付けられた組織IDを優先的に選択し、販社情報が含まれていない場合は地域情報に対応付けられた組織IDを選択する。そして、接続情報特定部322は、図21に示す第10の対応情報の中で、選択した組織IDで識別される組織で公開されているアプリケーションを提供するサーバ2の接続情報(この例では、組織ID「O0002」(日本支社)の接続情報、https://jp.example.com/apps)を特定し、特定したサーバ2の接続情報(https://jp.example.com/apps)をリスト生成部323に受け渡す。そして、接続情報特定部322は、リスト生成部323で生成された接続情報(URL)の接続一覧情報(リスト)を受け取って機器(MFP6)に送信する。この際に接続情報取得要求のパラメータに、自身(接続先提供サーバ5)の接続情報の取得要求が含まれていた場合には、接続情報特定部322は、接続情報(URL)のリストと、自身(接続先提供サーバ5)の接続情報(https://jp.example.com/apps/discov)を併せて機器(MFP6)に送信する。なお、各接続情報を送信するか、送信しないかは、接続情報取得要求のパラメータとして指定される。パラメータとは、後述する図27に示す接続情報の取得要求の「service」パラメータである。この接続情報取得要求のパラメータに応じて、それぞれの接続情報(URL)を機器(MFP6)に送信する。
(接続情報が複数ある場合)
また、接続情報特定部322は、地域情報または販社情報に対応する組織IDのサーバ2の接続情報(URL)を特定した際に、さらにサーバ2の地域情報に地理的位置が近い組織IDを特定する。次に、地理的位置が近い組織IDのサーバの接続情報(URL)を特定する。このようにして、特定した複数のサーバの接続情報(URL)をリスト生成部323に受け渡す。具体的には、例えば、サーバ2の接続情報の取得要求に含まれる販社情報が「JA5」の場合には図7の第3の対応情報を参照し、組織ID「O0005」を特定し、図21の第10の対応情報を参照し、組織ID「O0005」の接続情報(https://ja5.jp.example.com/apps)を特定する。次に、図7の第3の対応情報の中で組織ID「O0005」の地域情報「JP」と同じ地域情報を持つ組織ID「O0006」と「O0002」を特定し、図21の第10の対応情報を参照し、組織ID「O0006」の接続情報(https://ja6.jp.example.com/apps)、「O0002」の接続情報(https://jp.example.com/apps)を特定する。そして、接続情報特定部322は、特定した組織ID「O0005」、「O0006」、「O0002」の接続情報(URL)をリスト生成部323に受け渡す。また、例えば、接続情報の取得要求に含まれる地域情報が「EU」の場合には図7の第3の対応情報を参照し、組織ID「O0004」を特定し、図21の第10の対応情報を参照し、組織ID「O0004」の接続情報(https://eu.example.com/apps)を特定する。図7の第3の対応情報で組織ID「O0004」の地域情報「EU」と同じ地域情報である組織IDは存在しないので、他の地域情報「US」または「JP」の地域情報を持つ組織ID「O0003」、「O0007」や「O0002」、「O0005」、「O0006」を特定し、図21の第10の対応情報を参照し、組織ID「O0003」、「O0007」や「O0002」、「O0005」、「O0006」の接続情報(URL)を特定する。そして、接続情報特定部322は、特定した組織ID「O0003」、「O0007」や「O0002」、「O0005」、「O0006」の接続情報(URL)をリスト生成部323に受け渡す。そして、接続情報特定部322は、リスト生成部323で生成された接続情報(URL)のリストを受け取って機器(MFP6)に送信する。
なお、上記の説明では、接続情報特定部322が複数のサーバの接続情報を特定する場合、接続情報の取得要求に含まれている地域情報に地理的位置が近い組織IDのサーバの接続情報(URL)を特定したが、これに限ることはなく、異なる地域情報の組織IDのサーバの接続情報(URL)を特定してもよいし、すべての地域情報の組織IDのサーバの接続情報(URL)を特定するようにしてもよい。
ここで、「地理的位置が近い」、「遠い」について補足説明をする。ネットワークシステムにおける応答性能(ネットワーク遅延)と地理的な位置は必ずしも関係しない。例えば、日本と欧州の通信は米国経由になることが多いので、通信の距離としては日本と欧州は、日本と米国よりも遠いことになる。従って、サーバ2の接続情報取得要求が、日本からのアクセスであれば、日本→米国→欧州の順に特定し、リストを生成することになる。サーバ2の接続情報取得要求が、米国からであれば米国→欧州→日本の順に特定し、リストを生成することになる。また、サーバ2の接続情報取得要求が、欧州からであれば欧州→米国→日本の順に特定し、リストを生成することになる。但し、欧州からのアクセスに関しては、米国との通信を嫌う傾向があるので、欧州→日本の順だけのリストを生成してもよい。なお、順位の決定に関する仕組みは任意である。
(所定の接続情報の場合)
また、接続情報特定部322は、機器(MFP6)からサーバ2の接続情報取得要求を受け付けた場合、記憶部311(この例では接続情報DB321)に記憶された情報を参照して、サーバ2の接続情報取得要求に含まれる機番に対応するアプリケーションを提供するサーバの接続情報(URL)を特定し、該サーバの接続情報を機器(MFP6)に送信するようにすることもできる。より具体的には、接続情報特定部322は、機器(MFP6)からサーバ2の接続情報取得要求を受信した場合、図22に示す第11の対応情報に機番が登録されていた場合(この例では機番「3F08−00001」が登録されている)には、アプリケーションを提供するサーバの接続情報(https://jp.example.com/apps)を特定し、特定したサーバの接続情報(URL)をリスト生成部323に受け渡す。そして、接続情報特定部322は、リスト生成部323で生成された接続情報(URL)の接続一覧情報(リスト)を受け取って機器(MFP6)に送信する。
(サーバの接続情報のリスト)
図23の説明を続ける。リスト生成部323は、上述したように、接続情報特定部322から、1つのサーバの接続情報または複数のサーバの接続情報を受け取ることになる。リスト生成部323は、サーバ2の接続情報が1つだけの場合には、サーバの接続情報が1つだけのリストを生成して接続情報特定部322に受け渡す。また、リスト生成部323は、サーバ2の接続情報が複数ある場合には、接続情報特定部322から受け取った複数のサーバの接続情報の中で、機器(MFP6)が設置されている地域情報に地理的位置が近い接続情報から該地理的位置が遠い接続情報の順に並べた複数のサーバの接続情報のリストを生成して接続情報特定部322に受け渡す。すなわち、上述したようにリスト生成部323は、接続情報特定部322で特定した複数のサーバ2の接続情報の中で、機器(MFP6)と通信に要する時間が短い接続情報から該通信に要する時間が長い接続情報の順に並べた複数のサーバ2の接続情報の接続一覧情報(リスト)を生成して接続情報特定部322に受け渡す。なお、上述した本実施形態の変形例として、リスト生成部323が所定の条件に従って並べた複数のサーバの接続情報の接続一覧情報(リスト)を生成して、リスト生成部323が接続情報の接続一覧情報(サーバ2の接続情報の接続一覧情報)を機器(MFP6)に送信するようにすることもできる。
(接続先提供サーバの接続情報のリスト)
また、リスト生成部323は、接続先提供サーバが複数存在する場合には、複数のサーバの接続情報のリストを生成すると共に、複数の接続先提供サーバの接続情報のリストを併せて生成する。そして、生成した2つのリスト(複数のサーバの接続情報のリストおよび複数の接続先提供サーバの接続情報のリスト)を接続情報特定部322に受け渡す。ここで、2つのリストの生成は、上述したように接続情報取得要求のパラメータとして指定される。パラメータとは、後述する図27に示す接続情報の取得要求の「service」パラメータである。なお、リスト生成部323は、複数の接続先提供サーバの接続情報の中で、機器(MFP6)が設置されている地域情報に地理的位置が近い接続情報から該地理的位置が遠い接続情報の順に並べた複数の接続先提供サーバの接続情報のリストを生成するが、これに限ることはなくリストの順は任意である。例えば、上述したようにリスト生成部は、複数の接続先提供サーバの接続情報の中で、機器(MFP6)と通信に要する時間が短い接続情報から該通信に要する時間が長い接続情報の順に並べた複数の接続先提供サーバの接続情報の接続一覧情報(リスト)を生成する。なお、上述した本実施形態の変形例として、リスト生成部323が所定の条件に従って並べた複数の接続先提供サーバの接続情報の接続一覧情報(リスト)を生成して、リスト生成部323が接続情報の接続一覧情報(接続先提供サーバ5の接続情報の接続一覧情報)を機器(MFP6)に送信するようにすることもできる。
以上が接続先提供サーバ5の構成である。接続先提供サーバ5を設置する地域としては、図1の例で説明したサーバ2(日本)、サーバ3(アメリカ)、サーバ4(ヨーロッパ)が設置される各地域に接続先提供サーバ5を設置するようにしてもよいし、ユーザの数が多い地域、例えば日本には接続先提供サーバ5を複数台設置するようにしてもよい。
次に、図24を用いて、MFP6のハードウェア構成について説明する。図24に示すように、MFP6は、コピー機能、スキャナ機能、ファクス機能、プリンタ機能などの各種の機能を実現可能な本体10と、ユーザの操作を受け付ける操作部20とを備える。なお、ユーザの操作を受け付けるとは、ユーザの操作に応じて入力される情報(画面の座標値を示す信号等を含む)を受け付けることを含む概念である。本体10と操作部20は、専用の通信路30を介して相互に通信可能に接続されている。通信路30は、例えばUSB(Universal Serial Bus)規格のものを用いることもできるが、有線か無線かを問わず任意の規格のものであってよい。
なお、本体10は、操作部20で受け付けた操作に応じた動作を行うことができる。また、本体10は、クライアントPC(パーソナルコンピュータ)等の外部装置とも通信可能であり、外部装置から受信した指示に応じた動作を行うこともできる。
まず、本体10のハードウェア構成について説明する。図24に示すように、本体10は、CPU11と、ROM12と、RAM13と、HDD(ハードディスクドライブ)14と、通信I/F(インタフェース)15と、接続I/F16と、エンジン部17とを備え、これらがシステムバス18を介して相互に接続されている。
CPU11は、本体10の動作を統括的に制御する。CPU11は、RAM13をワークエリア(作業領域)としてROM12またはHDD14等に格納されたプログラムを実行することで、本体10全体の動作を制御し、上述したコピー機能、スキャナ機能、ファクス機能、プリンタ機能などの各種機能を実現する。
通信I/F15は、ネットワーク7と接続するためのインタフェースである。接続I/F16は、通信路30を介して操作部20と通信するためのインタフェースである。
エンジン部17は、コピー機能、スキャナ機能、ファクス機能、および、プリンタ機能を実現させるための、汎用的な情報処理及び通信以外の処理を行うハードウェアである。例えば、原稿の画像をスキャンして読み取るスキャナ(画像読取部)、用紙等のシート材への印刷を行うプロッタ(画像形成部)、ファクス通信を行うファクス部などを備えている。更に、印刷済みシート材を仕分けるフィニッシャや、原稿を自動給送するADF(自動原稿給送装置)のような特定のオプションを備えることもできる。
次に、操作部20のハードウェア構成について説明する。図24に示すように、操作部20は、CPU21と、ROM22と、RAM23と、フラッシュメモリ24と、通信I/F25と、接続I/F26と、操作パネル27とを備え、これらがシステムバス28を介して相互に接続されている。
CPU21は、操作部20の動作を統括的に制御する。CPU21は、RAM23をワークエリア(作業領域)としてROM22またはフラッシュメモリ24等に格納されたプログラムを実行することで、操作部20全体の動作を制御し、ユーザから受け付けた入力に応じた情報(画像)の表示などの後述する各種機能を実現する。
通信I/F25は、ネットワーク7と接続するためのインタフェースである。接続I/F26は、通信路30を介して本体10と通信するためのインタフェースである。
操作パネル27は、ユーザの操作に応じた各種の入力を受け付けるとともに、各種の情報(例えば受け付けた操作に応じた情報、MFP6の動作状況を示す情報、設定状態などを示す情報など)を表示する。この例では、操作パネル27は、タッチパネル機能を搭載した液晶表示装置(LCD)で構成されるが、これに限られるものではない。例えばタッチパネル機能が搭載された有機EL表示装置で構成されてもよい。さらに、これに加えて又はこれに代えて、ハードウェアキー等の操作部やランプ等の表示部を設けることもできる。
次に、MFP6のソフトウェア構成について説明する。図25は、MFP6のソフトウェア構成の一例を示す模式図である。図25に示すように、本体10は、アプリ層101と、サービス層102と、OS層103とを有する。アプリ層101、サービス層102、および、OS層103の実体は、ROM12やHDD14等に格納されている各種ソフトウェアである。CPU11が、これらのソフトウェアを実行することにより、各種の機能が提供される。
アプリ層101のソフトウェアは、ハードウェア資源を動作させて所定の機能を提供するためのアプリケーションソフトウェア(以下の説明では、単に「アプリ」と称する場合がある)である。例えばアプリとしては、コピー機能を提供するためのコピーアプリ、スキャナ機能を提供するためのスキャナアプリ、ファクス機能を提供するためのファクスアプリ、プリンタ機能を提供するためのプリンタアプリなどが挙げられる。
サービス層102のソフトウェアは、アプリ層101とOS層103との間に介在し、アプリに対し、本体10が備えるハードウェア資源を利用するためのインタフェースを提供するためのソフトウェアである。より具体的には、ハードウェア資源に対する動作要求の受け付け、動作要求の調停を行う機能を提供するためのソフトウェアである。サービス層102が受け付ける動作要求としては、スキャナによる読み取りやプロッタによる印刷等の要求が考えられる。
なお、サービス層102によるインタフェースの機能は、本体10のアプリ層101だけではなく、操作部20のアプリ層201に対しても提供される。すなわち、操作部20のアプリ層201(アプリ)も、サービス層102のインタフェース機能を介して、本体10のハードウェア資源(例えばエンジン部17)を利用した機能を実現することができる。
OS層103のソフトウェアは、本体10が備えるハードウェアを制御する基本機能を提供するための基本ソフトウェア(オペレーティングシステム(OS))である。サービス層102のソフトウェアは、各種アプリからのハードウェア資源の利用要求を、OS層103が解釈可能なコマンドに変換してOS層103に渡す。そして、OS層103のソフトウェアによりコマンドが実行されることで、ハードウェア資源は、アプリの要求に従った動作を行う。
同様に、操作部20は、アプリ層201と、サービス層202と、OS層203とを有する。操作部20が備えるアプリ層201、サービス層202及びOS層203も、階層構造については本体10側と同様である。ただし、アプリ層201のアプリにより提供される機能や、サービス層202が受け付け可能な動作要求の種類は、本体10側とは異なる。アプリ層201のアプリは、操作部20が備えるハードウェア資源を動作させて所定の機能を提供するためのソフトウェアであってもよいが、主として本体10が備える機能(コピー機能、スキャナ機能、ファクス機能、プリンタ機能)やインストール済みのアプリケーションのライセンスファイルを更新する機能等に関する操作や表示を行うためのUI(ユーザインタフェース)の機能を提供するためのソフトウェアである。この例では、アプリ層201のアプリには、Webブラウザの機能を提供するためのアプリ(以下、「ブラウザアプリ」と称する場合がある)や、上述のWebコンテンツデータに含まれるアプリケーションコマンドを実行する機能を提供するためのアプリ(以下、「インストーラ」と称する場合がある)などが含まれる。
なお、本実施形態では、機能の独立性を保つために、本体10側のOS層103のソフトウェアと操作部20側のOS層203のソフトウェアが互いに異なる。つまり、本体10と操作部20は、別々のオペレーティングシステムで互いに独立して動作する。例えば本体10側のOS層103のソフトウェアとしてLinux(登録商標)を用い、操作部20側のOS層203のソフトウェアとしてAndroid(登録商標)を用いることも可能である。
以上のように、本実施形態のMFP6において、本体10と操作部20は別々のオペレーティングシステムで動作するため、本体10と操作部20との間の通信は、共通の装置内のプロセス間通信ではなく、異なる装置間の通信として行われる。操作部20が受け付けた情報(ユーザからの指示内容)を本体10へ伝達する動作(コマンド通信)や、本体10が操作部20へイベントを通知する動作などがこれに該当する。ここでは、操作部20が本体10へコマンド通信を行うことにより、本体10の機能を使用することができる。また、本体10から操作部20に通知するイベントには、本体10における動作の実行状況、本体10側で設定された内容などが挙げられる。
また、本実施形態では、操作部20に対する電力供給は、本体10から通信路30を経由して行われているので、操作部20の電源制御を、本体10の電源制御とは別に(独立して)行うことができる。
図26は、本実施形態の操作部20が有する機能の一例を示す図である。図26に示すように、操作部20は、接続情報取得部271と、起動部272と、表示制御部273と、実行部274と、処理実行部275と、を有する。なお、図26の例では、本実施形態に関する機能を主に例示しているが、操作部20が有する機能はこれらに限られるものではない。また、図26に示すように、表示制御部273および実行部274は、Webブラウザにおいて実現されている。
接続情報取得部271は、後述する起動部272がユーザの操作に応じて、ブラウザ機能を提供するブラウザアプリを起動する際に接続するサーバ2の接続情報(URL)を取得するために、機器情報(機番)と、地域情報または販社情報とを少なくとも含み、かつサーバ2の接続情報の取得を要求する接続先取得要求を接続先提供サーバ5に対して送信する。そして、接続情報取得部271は、接続先提供サーバ5から送信されたアプリケーションを提供するサーバ2の接続情報(URL)と接続先提供サーバ5の接続情報(URL)とを取得して記憶部(フラッシュメモリ24)に記憶させると共に後述する起動部272に受け渡す。なお、接続情報取得部271は、デフォルトとして最初に接続する少なくとも1つの接続先提供サーバ5の接続情報を予め保持している。そして、2回目以降からは他の接続先提供サーバの設置状況に応じて接続先提供サーバ5の接続情報は更新されることになる。なお、接続情報取得部271がサーバ2の接続情報(URL)を取得するタイミングとしては、起動部272がブラウザアプリを起動する前に取得してもよいし、起動部272がブラウザアプリを起動する際に(起動中に)取得してもよい。
本実施形態において、接続情報取得部271が接続先提供サーバ5に送信するサーバ2の接続情報の取得要求の一例として下記の3つのパターンを例示することができるが、これに限られることはなく任意である。
(サイト全体の接続情報を取得)
第1のパターンは、図3で示した、サーバ2にアプリ情報管理モジュール210と、ライセンス管理モジュール220と、アプリダウンロード管理モジュール230とが含まれている場合であって、各モジュールを含むアプリダウンロードサイト全体(サーバ2)の接続情報(URL)を取得する例である。図27は、サーバの接続情報の取得要求の一例を示す図であり、図28は、サーバの接続情報の取得要求に対する応答として受信したサーバの接続情報(URL)の一例を示す図である。図27に示す接続情報の取得要求のパラメータ「service」は接続情報を要求するサーバの識別子を示し、「device_id」は機番を示し、「region_code」は地域コード(地域情報)を示し、「dealer_code」は販社コード(販社情報)を示している。なお、「?」の後ろに「パラメータ名=値」を「&」でつないで並べるのはQUERYパラメータと呼ばれる標準の記法である。また、「Host:www.example.com」は記憶部(フラッシュメモリ24等)に記憶されているデフォルトとして接続するホスト名の一例を示すものである。接続情報取得部271は、図28に示すサーバ2の接続情報を記憶部(フラッシュメモリ24等)に記憶させる。
(サイトの接続情報を、サブモジュールごとに取得)
第2のパターンは、図4、図12、図17で示した、アプリ情報管理モジュール210、ライセンス管理モジュール220、アプリダウンロード管理モジュール230の各モジュールが備えるサブモジュールごとに接続情報(URL)を取得する例である。図29は、各モジュールの接続情報の取得要求の一例を示す図であり、図30は、各モジュールの接続情報の取得要求に対する応答として受信した各モジュールの接続情報(URL)の一例を示す図である。図29に示す接続情報の取得要求のパラメータ「service」の値は特殊文字をエンコードしたものである。すなわち、「appsdownload/api appsdownload/top appsdownload/operation appsdownload/storage」はスペース区切りでサーバの識別子を並べた文字列であり、これをエンコードした結果が、図29に示した「appsdownload%2Fapi+appsdownload%2Ftop+appsdownload%2Foperation+appsdownload%2Fstorage」である。また、「Host:www.example.com」は記憶部(フラッシュメモリ24等)に記憶されているデフォルトとして接続するホスト名の一例を示すものである。図30に示す「appsdownload/api」は、図4に示したアプリ情報管理モジュール210の制御部212の接続情報の一例であり、「appsdownload/top」は、図4に示したアプリ情報管理モジュール210の画面提供部213の接続情報の一例であり、「appsdownload/operation」は、図4に示したアプリ情報管理モジュール210の設定部214の接続情報の一例であり、「appsdownload/storage」は、図17に示したアプリダウンロード管理モジュール230のダウンロード部232の接続情報の一例である。接続情報取得部271は、図30に示す各モジュールの接続情報を記憶部(フラッシュメモリ24等)に記憶させる。
(サイトの接続情報および複数の接続先提供サーバの接続情報を取得)
第3のパターンは、図3で示した、サーバ2にアプリ情報管理モジュール210と、ライセンス管理モジュール220と、アプリダウンロード管理モジュール230とが含まれている場合であって、各モジュールを含むアプリダウンロードサイト全体(サーバ2)の接続情報(URL)と、複数の接続先提供サーバの接続情報を取得する例である。図31は、サーバの接続情報と、接続先提供サーバの接続情報との取得要求の一例を示す図であり、図32は、サーバの接続情報と、接続先提供サーバの接続情報との取得要求に対する応答として受信したサーバの接続情報(URL)と、複数の接続先提供サーバの接続情報(URL)の一例を示す図である。図31に示す接続情報の取得要求のパラメータ「service」の値は、上記の図29で説明したものと同様で、特殊文字をエンコードしたものである。また、「Host:www.example.com」は記憶部(フラッシュメモリ24等)に記憶されているデフォルトとして接続するホスト名の一例を示すものである。図32に示す「discovery」は接続先提供サーバを示し、先頭の「https://jp.example.com/discov」は地域情報「JP」にある接続先提供サーバの接続情報の一例であり、2番目の「https://us.example.com/discov」は地域情報「US」にある接続先提供サーバの接続情報の一例である。なお図32の応答例では、接続情報の取得要求元の機器(MFP6)の地域情報が「JP」の場合であり、地域情報「JP」に基づいて、地理的位置が近い「JP」にある接続先提供サーバの接続情報を先頭にしている。なお、上述したように、接続情報の並べ順は販社情報に基づいて決めるようにしてもよいし、機番(機器情報)に基づいて決めるようにしてもよい。接続情報取得部271は、図32に示すサーバ2の接続情報と、接続先提供サーバの接続情報とを記憶部(フラッシュメモリ24等)に記憶させる。
図26に戻り説明を続ける。起動部272は、ユーザの操作に応じて、Webブラウザの機能を提供するブラウザアプリを起動する。この時、起動部272は、ブラウザアプリを起動する際に自身の機器(MFP6)の販社情報を保持しているか否かを確認し、販社情報(販社コード情報)が保持されていない場合には、表示制御部273が販社情報を入力するUI画面を操作パネル27に表示させる。ただし、図7で示した組織ID「O0002」のように販社情報が設定されないケースがあるので、別途、販社情報設定済みフラグの設定を保存するようにして、販社情報設定済みフラグが未設定の場合のみUI画面を表示するようにしてもよい。なお、機器(MFP6)の出荷時に仕向け地設定として地域情報の初期値は予め記憶部に記憶させている。この販社情報を入力するUI画面の表示は最初の1回目だけであり、販社情報が入力されて保持されたら次回からUI画面は表示されない。
なお、上記で接続情報取得部271の説明を先にしたが、処理フローの実行順としては、起動部272での販社情報(販社コード)の設定が先であり、次に接続情報取得部271でのサーバ2の接続情報(URL)の取得が実行される。つまり、起動部272で先に設定された販社情報の設定に従って、接続情報取得部271で接続情報を取得するためである。
例えば、図33に示す操作画面が操作パネル27(表示部)に表示された状態で、「アプリマーケット」という名称のアイコン8の押下を受け付けた場合、起動部272が自身の機器(MFP6)の販社情報を保持していないことを確認した場合、表示制御部273は、図34に示す地域情報設定画面を操作パネル27(表示部)に表示させる。図34は、地域情報設定画面の一例を示す図である。図34の例では、地域情報設定画面は、地域情報を選択するための地域情報選択ボタン401と、販社情報を設定するための販社情報設定ボタン402と、次の画面に遷移するための次へボタン403と、図33に示す操作画面に戻るための戻るボタン404とを少なくとも表示する。地域情報選択ボタン401に表示されている「地域:日本(JP)」は出荷時に仕向け地設定として予め記憶している地域情報である。この地域情報を変更する場合に地域情報選択ボタン401を選択すると、図35に示す地域情報設定ダイアログ画面が表示される。図35は、地域情報設定ダイアログ画面の一例を示す図である。図35の例では、地域情報設定ダイアログ画面は、「日本(JP)411」、「アメリカ(US)412」、「ヨーロッパ(EU)」、「アジア(ASIA)」などの地域を示す地域情報を表示する。図35において、「アメリカ(US)412」が選択され、「OK」ボタンが押下されると、図34に示す地域情報設定画面に戻り、「地域:アメリカ(US)」に変更される。
次に、図34に示す販社情報設定ボタン402を選択すると、図36に示す販社情報入力画面が表示される。図36は、販社情報入力画面の一例を示す図である。図36の例では、販社コード(販社情報を示すコード情報)を入力するためのテンキーボタンを少なくとも表示する。図36の例で示している販社コード「11234516」は任意に設定できるが、例えば、最初の1文字「1」は「地域」を表し、「1:日本(JP)」、「2:アメリカ(US)」、「3:ヨーロッパ(EU)」、「4:アジア(ASIA)」が割り当てられている。次の5文字「12345」は「販社情報」を表し、例えば、販売店を識別するための任意の乱数が予め割り当てられている。任意の乱数を割り当てているのは、入力ミスで他の販社コードを入力する危険性を下げるためである。最後の2文字「16」は「チェックサム」を表し、例えば、販社コードの入力ミスを検知するためである。なお、販社コードは、コード全体を暗号化する方式などでもよい。図36において、販社コードを入力して「OK」ボタンが押下されると、誤り検出が行われ(この例では、販社情報入力画面で受け付けたコード情報から特定される地域情報(1文字目)と、図35の地域情報設定ダイアログ画面で設定された地域情報の値が同一であるか否かを判断し、同一でない場合(値が異なる場合)にはエラーと判断する。または、販社情報入力画面で受け付けたコード情報の6文字目まで(地域情報+販社情報)に対するチェックサムを計算し、最後の2文字と比較して値が同一であるか否かを判断し、同一でない場合(値が異なる場合)にはエラーと判断する。このチェックサムでは、コード情報に含まれる所定の情報が予め設定された情報と同一であるかを判断することになる)、エラーの場合には図37に示すエラー画面が表示される。図37は、エラー画面の一例を示す図である。図37において、「閉じる」ボタンが押下されると再度販社コード(販社情報を示すコード情報)を入力するための画面が表示される(図36参照)。図36において、販社コードが正しく入力された場合、図34に示す地域情報設定画面が表示される。なお起動部272は、上記のように入力された地域情報および販社情報(販社コード)を記憶部(フラッシュメモリ24等)に記憶させる。
次に、図34に示す、次の画面に遷移するための次へボタン403が押下されると、図38に示すアプリケーション一覧画面が表示される。図38は、アプリケーション一覧画面の一例を示す図である。なお、アプリケーション一覧画面の詳細については後述する。
図33に戻り説明を続ける。例えば図33に示す操作画面が操作パネル27に表示された状態で、「アプリマーケット」という名称のアイコン8の押下を受け付けた場合、起動部272は、接続情報取得部271にアイコン8の押下を通知し、接続情報取得部271は、記憶部(フラッシュメモリ24等)に記憶されている接続先提供サーバ5の接続情報(URL)を参照して、サーバ2の接続情報の取得要求を送信し、ネットワーク7上のサーバ2の所在を示すURLを取得して、サーバ2の所在を示すURLを起動部272に受け渡す。そして起動部272はブラウザアプリを起動する制御を行う。なお、接続情報取得部271は、取得したサーバ2の接続情報(URL)を保持または更新する。
起動したブラウザアプリ(画面情報取得部)は、起動部272から受け取ったURLで指定されるサーバ2に対して、HTTPリクエストとして上述の画面情報要求を送信し、画面情報要求に対する応答(HTTPレスポンス)として、Webコンテンツデータ(画面情報)を受信する。この例では、Webコンテンツデータ(画面情報)として、HTMLと、HTMLに含まれる(あるいは、HTMLから参照される)CSS/JavaScriptを受信する。ブラウザアプリ(表示情報取得部)は、JavaScriptを解釈、実行し、Ajaxを用いて、HTTPリクエストとして上述の表示情報要求をサーバ2へ送信し、表示情報要求に対する応答(HTTPレスポンス)として、アプリケーションコマンドを少なくとも含むWebコンテンツデータ(表示情報)を受信する。なお、請求項の「表示情報取得部」、「画面情報取得部」の機能はブラウザアプリにより提供される。図39は、表示情報要求の一例を示す図であり、図40は、表示情報要求に対する応答として受信した情報の一例を示す図である。
そして、ブラウザアプリは、サーバ2から受信したWebコンテンツデータ(画面情報と表示情報)に基づいて構成される画面を操作パネル27(表示部)に表示する制御を行う。ここでは、表示制御部273の機能はブラウザアプリにより提供される。また、前述したように、この例では、表示制御部273は、サーバ2から受信したWebコンテンツデータ(画面情報と表示情報)に基づいて画面を生成し、その生成した画面を操作パネル27に表示する。表示制御部273は、サーバ2から受信したWebコンテンツデータ(画面情報および表示情報)をフラッシュメモリ24等の記憶装置に保持しておき、必要に応じてWebコンテンツデータ(画面情報および表示情報)を読み出し、その読み出したWebコンテンツデータ(画面情報および表示情報)を用いて画面を生成することができる。
この例では、表示制御部273は、操作パネル27に表示された画面(Webコンテンツデータ(画面情報と表示情報)に基づいて構成される画面)に対するユーザの操作に応じて選択されたアプリケーションコマンドを特定し、その特定したアプリケーションコマンドを実行部274へ通知することができる。例えば表示制御部273は、JavaScript(登録商標)、カスタムスキームとして、ユーザによって選択されたアプリケーションコマンドを特定することができる。
実行部274は、Webコンテンツデータに含まれるアプリケーションコマンドのうち、操作パネル27に表示された画面を介したユーザの操作に応じてWebコンテンツデータに含まれるアプリケーションコマンド(表示制御部273から通知されたアプリケーションコマンド)を実行して、該アプリケーションコマンドに対応したアプリケーションに関する処理の実行をMFP6に要求する。ここでは、実行部274の機能は、MFP6側のアプリケーションプログラミングインタフェース(API)により提供される。MFP6は、アプリケーションプログラミングインタフェース(API)を、操作部20のブラウザアプリで利用可能としてサーバ2に配置したWebアプリケーションから呼び出せる。
処理実行部275は、Webブラウザ(実行部274)からの要求に基づいて、該要求に応じたアプリケーションに関する処理を実行する。
前述したように、サーバ2から受信したWebコンテンツデータに含まれるアプリケーションコマンドとしては、インストール命令、更新命令、アンインストール命令などが挙げられる。
以下では、サーバ2から受信したWebコンテンツデータ(画面情報と表示情報)に基づいて構成される画面に対するユーザの操作に応じてインストール命令が選択される場合を例に挙げて説明する。この場合、実行部274は、ユーザの操作に応じて選択されたインストール命令を処理実行部275へ通知し、処理実行部275は、実行部274から通知されたインストール命令を実行する。より具体的には以下のとおりである。
この例では、表示制御部273は、サーバ2から受信したWebコンテンツデータ(画面情報と表示情報)を用いて、機器(MFP6)で利用可能なアプリケーションの一覧を示すアプリケーション一覧画面(図38参照)を操作パネル27に表示する制御を行う。図38の例では、アプリケーション一覧画面は、機器(MFP6)で利用可能なアプリケーションごとに、該アプリケーションの名称と、該アプリケーションを選択するためのアプリケーション選択ボタン331とを少なくとも表示する。また、図38の例では、アプリケーション一覧画面は、アプリケーションの更新を選択するための更新選択ボタン325と、アプリケーションの削除を選択するための削除選択ボタン326とを表示する。これらの具体的な内容については後述する。
表示制御部273は、何れかのアプリケーション選択ボタン331の押下を受け付けた場合、サーバ2から受信した画面情報を用いて、対応するアプリケーションの詳細な内容を示すとともにインストールの実行指示を受け付けるためのインストール指示画面を操作パネル27に表示する制御を行う。図41は、インストール指示画面の一例を示す図である。図41の例では、インストール指示画面は、対応するアプリケーションのアプリ説明情報とアプリ価格情報と、インストールの実行を指示するためのインストールボタン332とを表示する。この例では、インストールボタン332の押下は、インストール命令の選択(インストールしたいアプリケーションの選択であると考えてもよい)を意味する。
この例では、表示制御部273は、インストールボタン332の押下を受け付けた場合、インストールの実行を最終的に確認するためのインストール確認画面を操作パネル27に表示する制御を行う。図42は、インストール確認画面の一例を示す図である。図42の例では、インストール確認画面は、インストールの実行を最終的に承諾したことを指示するための確認ボタン(OK)333を表示する。この例では、確認ボタン333に対して、インストール命令がJavaScript形式で貼り付けられている。確認ボタン333の押下を受け付けると、実行部274は、押下された確認ボタン333に貼り付けられていたインストール命令を処理実行部275へ通知する。そして、処理実行部275が、このインストール命令を実行することになる。図43は、この場合に、実行部274から処理実行部275へ通知される情報(確認ボタン333に貼り付けられているJavaScript)の一例を示す図である。
また、本実施形態では、実行部274は、サーバ2から受信した表示情報の中に、ユーザの操作に応じて選択されたインストール命令の対象となるアプリケーションの使用権限の認証に用いられるライセンスキーが含まれている場合は、該ライセンスキーと、該インストール命令とを処理実行部275へ通知し、該ライセンスキーが含まれていない場合は、ライセンスキーの入力を促す入力画面を表示する制御を行う。より具体的には、表示制御部273は、サーバ2から受信した表示情報内のアプリケーション詳細情報のうち、ユーザの操作に応じて選択されたインストール命令の対象となるアプリケーションに対応する詳細情報の中に、該アプリケーションの使用権限を認証するためのライセンスキーが含まれていない場合は、ライセンスキーの入力を促す入力画面を表示する制御を行い、ライセンスキーが含まれている場合は、該ライセンスキーと、インストール命令とを処理実行部275へ通知する。より具体的には、表示制御部273は、上述のインストールボタン332の押下を受け付けた場合、サーバ2から受信した表示情報内のアプリケーション詳細情報のうち、ユーザによって選択されたアプリケーションに対応する詳細情報の中に、ライセンスキーが含まれているか否かを確認する。ライセンスキーが含まれていない場合は、表示制御部273は、図42のインストール確認画面を表示せず、ライセンスキーの入力を促す入力画面を表示する制御を行い、実行部274は、入力されたライセンスキーと、選択されたインストール命令とを処理実行部275へ通知する。図44は、入力画面の一例を示す図である。図44のOKボタンに対しても、図43と同様のインストール命令が貼り付けられている。この場合、ライセンスキー入力領域に入力された文字列をappMgmt.install関数の第2引数として渡すようにする。
次に、サーバ2から受信したWebコンテンツデータ(画面情報と表示情報)に基づいて構成される画面に対するユーザの操作に応じて更新命令が選択される場合を例に挙げて説明する。この例では、表示制御部273は、ユーザの操作に応じて、インストール済みのアプリケーションのうち、該アプリケーションの現在のバージョンと、サーバ2から受信した表示情報に含まれるアプリケーション詳細情報のうち該アプリケーションに対応する詳細情報が示すバージョンとが異なるアプリケーションを特定する。そして、実行部274は、ユーザの操作に応じて、その特定したアプリケーションに対応する更新命令が選択された場合、その選択された更新命令を処理実行部275へ通知する。処理実行部275は、実行部274から通知された更新命令を実行する。より具体的には以下のとおりである。
表示制御部273は、図38に示すアプリケーション一覧画面に表示された更新選択ボタン325の押下を受け付けた場合、サーバ2から受信した表示情報と、機器(MFP6)にインストール済みのアプリケーションごとに、該アプリケーションの現在のバージョンを対応付けたアプリケーション管理情報と、を取得する。この例では、処理実行部275が上述のアプリケーション管理情報を管理しているので、実行部274は、処理実行部275に対してアプリケーション管理情報を要求し、表示制御部273は、アプリケーション管理情報を取得する。そして、表示制御部273は、インストール済みのアプリケーションのうち、アプリケーション管理情報において該アプリケーションに対応する現在のバージョンと、サーバ2から受信した表示情報に含まれるアプリケーション詳細情報のうち該アプリケーションに対応する詳細情報が示すバージョンとが異なるアプリケーションを、更新対象のアプリケーションとして特定する。例えばアプリケーション管理情報が図45の態様であり、サーバ2から受信した表示情報に含まれるアプリケーション詳細情報が図46の態様である場合を想定する。この場合、更新対象のアプリケーションとして、アプリID「S001」およびアプリID「S003」が特定されることになる。
そして、表示制御部273は、以上のようにして特定したアプリケーションごとに、該アプリケーションの更新指示を受け付けるための更新指示画面を操作パネル27に表示する制御を行う。図47は、更新指示画面の一例を示す図である。更新指示画面は、複数のアプリケーションごとに、該アプリケーションの更新指示を受け付けるための更新指示ボタン341を表示する。この例では、更新対象のアプリケーション(以上のようにして特定したアプリケーション)に対応する更新指示ボタン341に対しては、該アプリケーションを更新する命令を示す更新命令が貼り付けられている。図47の例では、更新指示画面は、更新対象のアプリケーション(図47の例ではアプリ1、3)と更新対象外のアプリケーション(図47の例ではアプリ2)の両方が表示され、更新対象外のアプリケーションに対応する更新指示ボタン341は操作不能な状態(押下を受け付けることができない状態)になっている。つまり、更新指示画面は、更新対象のアプリケーション(以上のようにして特定されたアプリケーション)と、更新対象外のアプリケーションとを区別して表示しているが、これに限らず、例えば更新指示画面は、更新対象のアプリケーションのみを、操作可能な状態の更新指示ボタン341と対応付けて表示する形態であってもよい。また、例えば表示制御部273は、以上のようにして特定したアプリケーション(更新対象のアプリケーション)の数を示す情報を表示する制御を行うこともできる。つまり、表示制御部273は、機器(MFP6)にインストール済みのアプリケーションのうち、該アプリケーションの現在のバージョンと、アプリケーション詳細情報のうち該アプリケーションに対応する詳細情報が示すバージョンとが異なるアプリケーションの数を示す情報を表示する制御を行うこともできる。実行部274は、更新指示ボタン341の押下を受け付けた場合、該更新指示ボタン341に貼り付けられた更新命令を処理実行部275へ通知する。図48は、この場合に、実行部274から処理実行部275へ通知される情報の一例を示す図である。
なお、この例では、更新対象のアプリケーションごとに、上述の更新指示ボタン341が個別に設けられているが、これに限らず、例えば更新対象のアプリケーションの更新を一括で実行することを指示するためのボタンが設けられる形態であってもよい。この場合、該ボタンの押下を受け付けた場合、更新対象の全てのアプリケーションの更新命令が一括して選択されることになる。要するに、アプリケーションコマンドは、機器(MFP6)にインストール済みのアプリケーションのうち、該アプリケーションの現在のバージョンと、アプリケーション詳細情報のうち該アプリケーションに対応する詳細情報が示すバージョンとが異なるアプリケーションを一括して更新する命令を示す一括更新命令を含んでいてもよい。この場合、表示制御部273は、一括更新命令が選択された場合(更新対象のアプリケーションの更新を一括で実行することを指示するためのボタンの押下を受け付けた場合)、機器(MFP6)にインストール済みのアプリケーションのうち、該アプリケーションの現在のバージョンと、アプリケーション詳細情報のうち該アプリケーションに対応する詳細情報が示すバージョンとが異なるアプリケーションを特定し、実行部274は、該特定したアプリケーションに対応する更新命令を処理実行部275へ通知する形態であってもよい。
また、例えばサーバ2が、更新対象のアプリケーションを特定する機能を有する形態であってもよい。この場合、例えば表示制御部273は、上述の表示情報要求の送信前に、処理実行部275から上述のアプリケーション管理情報を取得し、その取得したアプリケーション管理情報を付加した表示情報要求をサーバ2へ送信することもできる。サーバ2は、MFP6から受信したアプリケーション管理情報に含まれるアプリIDごとに、該アプリケーション管理情報において該アプリIDに対応付けられたバージョンと、サーバ2が管理するアプリ情報DB261(第2の対応情報)において該アプリIDに対応付けられたバージョンとを比較し、差異があるアプリIDを更新対象のアプリIDとして特定することができる。そして、サーバ2は、更新対象として特定したアプリIDを示す情報を表示情報に含めてMFP6へ送信する形態であってもよい。さらに、例えばサーバ2側でMFP6にインストール済みのアプリケーションを管理する(上述のアプリケーション管理情報を管理する)形態であってもよい。この場合、例えばサーバ2は、ライセンスの有効化または無効化のタイミングでアプリケーション管理情報を更新することができるし、アプリケーションを更新するタイミングでもアプリケーション管理情報を更新することもできる。この場合、MFP6にインストール済みのアプリケーションの現在のバージョンをMFP6から取得する必要は無いので、サーバ2のみで更新対象のアプリケーションを判断できるとともにMFP6の処理負担を減らすことができる。
次に、サーバ2から受信したWebコンテンツデータ(画面情報と表示情報)に基づいて構成される画面に対するユーザの操作に応じてアンインストール命令が選択される場合を例に挙げて説明する。この例では、実行部274は、ユーザの操作に応じて選択されたアンインストール命令を処理実行部275へ通知し、処理実行部275は、実行部274から通知されたアンインストール命令を実行する。より具体的には以下のとおりである。
表示制御部273は、図38に示すアプリケーション一覧画面に表示された削除選択ボタン326の押下を受け付けた場合、MFP6にインストール済みのアプリケーションごとに、該アプリケーションの削除指示を受け付けるための削除指示画面を操作パネル27に表示する制御を行う。図49は、削除指示画面の一例を示す図である。削除指示画面は、MFP6にインストール済みのアプリケーションごとに、該アプリケーションの削除指示を受け付けるための削除指示ボタン351を表示する。表示制御部273は、削除指示ボタン351の押下を受け付けた場合、アンインストールの実行を最終的に確認するための削除確認画面を操作パネル27に表示する制御を行う。図50は、削除確認画面の一例を示す図である。削除確認画面は、アンインストールの実行を最終的に承諾したことを指示するための確認ボタン(OK)361を表示する。この例では、確認ボタン361に対しては、該確認ボタン361に対応する1以上のアプリケーションを削除する命令を示す削除命令が貼り付けられている。確認ボタン361の押下を受け付けると、実行部274は、押下された確認ボタン361に貼り付けられていたアンインストール命令を処理実行部275へ通知する。図51は、この場合に、実行部274から処理実行部275へ通知される情報の一例を示す図である。
この例では、MFP6にインストール済みのアプリケーションごとに、上述の削除指示ボタン351が個別に設けられているが、これに限らず、例えばMFP6にインストール済みのアプリケーションを一括で削除することを指示するためのボタンが設けられる形態であってもよい。この形態では、該ボタンの押下を受け付けた場合、MFP6にインストール済みの全てのアプリケーションのアンインストール命令が一括して選択されることになる。要するに、アプリケーションコマンドは、MFP6にインストール済みのアプリケーションを一括して削除する命令を示す一括アンインストール命令を含み、実行部274は、一括アンインストール命令が選択された場合、MFP6にインストール済みのアプリケーションに対応するアンインストール命令(インストール済みの1以上のアプリケーションと1対1に対応する1以上のアンインストール命令)を処理実行部275へ通知する形態であってもよい。
以上に説明した接続情報取得部271、起動部272、表示制御部273、実行部274、および、処理実行部275の各々の機能は、CPU21がROM22やフラッシュメモリ24等の記憶装置に記憶されたプログラムを実行することにより実現可能である。
図52は、本実施形態のシステム1の動作手順の一例を示すシーケンス図である。まず、接続先提供サーバ5は、機器(MFP6)が設置されている地理的位置を示す地域情報または機器(MFP6)の販売店を示す販社情報と、アプリケーションを提供するサーバ2の接続情報とを対応付けた情報を保持する。また、MFP6の起動部272は、地域情報または販社情報を保持する。なお、MFP6の接続情報取得部271は、出荷時に予め1つの接続先提供サーバ5の接続情報を記憶している。
上述したように、MFP6の起動部272は、操作画面上の「アプリマーケット」という名称のアイコン8の押下を受け付けた場合(ステップS1)、アイコン8が押下されたことを接続情報取得部271に通知する(ステップS2)。接続情報取得部271は、機器情報(機番)と、地域情報または販社情報とを少なくとも含み、かつサーバ2の接続情報の取得を要求する接続情報の取得要求を接続先提供サーバ5に対して送信する(ステップS3)。接続先提供サーバ5の接続情報特定部322は、機器(MFP6)から地域情報または販社情報と、機器情報(機番)とを少なくとも含み、かつサーバ2の接続情報の取得を要求する接続情報取得要求を受け付けて、記憶部311(この例では接続情報DB321)に記憶された接続対応情報を参照して、接続情報取得要求に含まれる地域情報または販社情報に対応する組織IDで識別される組織で公開されているアプリケーションを提供するサーバ2の接続情報(URL)を特定する(ステップS4)。接続情報特定部322は、特定したサーバ2の接続情報(URL)と、自身(接続先提供サーバ5)の接続情報(URL)を接続情報取得要求の送信元のMFP6の接続情報取得部271に送信する(ステップS5)。
接続情報取得部271は、接続先提供サーバ5からサーバ2の接続情報取得要求に対する応答を受信することでサーバ2の接続情報(URL)と、接続先提供サーバ5の接続情報(URL)を取得して記憶部(フラッシュメモリ24等)に記憶させ(ステップS6)、上記の2つの接続情報(URL)を起動部272に送信する(ステップS7)。起動部272は、Webブラウザであるブラウザアプリ(表示制御部273および実行部274)に対して、起動指令とともにサーバ2のURLを送信する(ステップS8)。起動指令を受けて起動したブラウザアプリ(表示制御部273および実行部274)は、受け取ったURLで指定されるサーバ2に対して、HTTPリクエストとして上述の画面情報要求を送信する(ステップS9)。
次に、サーバ2は、MFP6からの要求に応じてWebコンテンツデータ(画面情報)を生成し(ステップS10)、その生成したWebコンテンツデータ(画面情報)をHTTPレスポンスとしてMFP6へ送信する(ステップS11)。MFP6(表示制御部273)は、HTTPリクエストである画面情報要求に対する応答として、Webコンテンツデータ(画面情報)を受信する。例えば、MFP6(表示制御部273)は、Webコンテンツデータ(画面情報)として、HTMLと、HTMLに含まれる(あるいは、HTMLから参照される)CSS/JavaScriptを受信する。
次に、画面情報を受信したMFP6のブラウザアプリは、JavaScriptを解釈、実行し、Ajaxを用いて、サーバ2に対して、HTTPリクエストとして上述の表示情報要求(図39参照)を送信する(ステップS12)。
サーバ2は、MFP6からの要求に応じて表示情報を生成し(ステップS13)、その生成したWebコンテンツデータ(表示情報)をHTTPレスポンスとしてMFP6へ送信する(ステップS14)。MFP6(表示制御部273)は、HTTPリクエストである表示情報要求に対する応答として、Webコンテンツデータ(表示情報)を受信する。
MFP6(表示制御部273)は、サーバ2から受信したWebコンテンツデータ(画面情報と表示情報)に基づいて構成される画面を生成し(ステップS15)、生成した画面を操作パネル27に表示する(ステップS16)。この例では、表示制御部273は、サーバ2から受信したWebコンテンツデータ(画面情報と表示情報)を、フラッシュメモリ24等の記憶装置に格納するとともに、その受信したWebコンテンツデータ(画面情報および表示情報)を用いて、図38に示すアプリケーション一覧画面を最初に生成する。そして、その生成したアプリケーション一覧画面を操作パネル27(表示部)に表示する制御を行う。
図53は、MFP6がアイコン8の押下を受け付けてからアプリケーション一覧画面を取得するまでのMFP6の動作例を示すフローチャートである。つまり、上述の図52のステップS1〜ステップS9、ステップS11〜ステップS12、ステップS14のMFP6の処理の一例である。
MFP6の接続情報取得部271は、アイコン8の押下通知(ステップS1)を受け付けた場合、接続先提供サーバ5の接続情報(URL)を記憶部(フラッシュメモリ24等)に保持(記憶)しているか否かを判断する(ステップS21)。接続情報取得部271は、出荷時に予め1つの接続先提供サーバ5のURLを記憶しているが、仮に接続先提供サーバ5のURLを記憶部(フラッシュメモリ24等)に保持(記憶)していない場合(ステップS21:No)、ステップS26の処理に移行する。
接続先提供サーバ5のURLを記憶部(フラッシュメモリ24等)に保持(記憶)している場合(ステップS21:Yes)、接続情報取得部271は、サーバ2のURLの取得要求を接続先提供サーバ5のURLに送信する(ステップS22)。次に、接続情報取得部271は、接続先提供サーバ5からサーバ2のURLが取得できたか否かを判断する(ステップS23)。サーバ2のURLが取得できない場合(ステップS23:No)、接続情報取得部271は、次の接続先提供サーバ5のURLを記憶部(フラッシュメモリ24等)に保持(記憶)しているか否かを判断する(ステップS24)。上記の接続情報特定部322及びリスト生成部323で説明したように、接続情報取得部271は、接続先提供サーバ5から1つの接続先提供サーバ5のURLを取得する場合と、複数の接続先提供サーバのURLのリストを取得する場合とがあるので、ステップS24の判断処理を行う。なお、サーバ2のURLが取得できない原因の例として、サーバダウン、ネットワークダウン等によりサーバ2への接続が失敗した場合が挙げられる。
次の接続先提供サーバ5のURLを記憶部(フラッシュメモリ24等)に保持(記憶)している場合(ステップS24:Yes)、ステップS22に戻り、サーバ2のURLの取得要求の処理を継続する。次の接続先提供サーバ5のURLを記憶部(フラッシュメモリ24等)に保持(記憶)していない場合(ステップS24:No)、ステップS26の処理に移行する。
ステップS23に戻り、サーバ2のURLが取得できた場合(ステップS23:Yes)、接続情報取得部271は、サーバ2のURLを記憶部(フラッシュメモリ24等)に記憶させる(ステップS25)。
次に、起動部272は、サーバ2のURLを記憶部(フラッシュメモリ24等)に保持(記憶)しているか否かを判断する(ステップS26)。サーバ2のURLを記憶部(フラッシュメモリ24等)に保持(記憶)していない場合(ステップS26:No)、ステップS30に移行し、エラー画面を操作パネル27(表示部)に表示させて(ステップS30)処理を終了する。すなわち、サーバ2のURLを記憶部(フラッシュメモリ24等)に保持(記憶)していない場合とは、接続先提供サーバ5からサーバ2のURLが取得できなかったことを示す。なお、サーバ2のURLが取得できない原因の例として、サーバダウン、ネットワークダウン等によりサーバ2への接続が失敗した場合が挙げられる。
サーバ2のURLを記憶部(フラッシュメモリ24等)に保持(記憶)している場合(ステップS26:Yes)、起動部272は、サーバ2のURLをブラウザアプリに受け渡し、ブラウザアプリは起動部272から受け取ったURLで指定されるサーバ2に対して、MFP6の機種を識別する機種情報と地域情報とロケール情報(言語情報)とを含み、かつ、画面情報および表示情報(アプリケーション一覧画面)を要求する画面情報要求、および表示情報要求を送信する(ステップS27)。
次に、起動部272は、サーバ2から画面情報および表示情報を取得できたか否かを判断する(ステップS28)。画面情報および表示情報を取得できた場合(ステップS28:Yes)、処理を終了する。つまり、図52のステップS15で画面を生成してステップS16で画面を表示する。
画面情報および表示情報を取得できない場合(ステップS28:No)、起動部272は、次のサーバのURLを記憶部(フラッシュメモリ24等)に保持(記憶)しているか否かを判断する(ステップS29)。上記の接続情報特定部322及びリスト生成部323で説明したように、接続情報取得部271は、接続先提供サーバ5から1つのサーバ2のURLを取得する場合と、複数のサーバのURLのリストを取得する場合とがあるので、ステップS29の判断処理を行う。
次のサーバ2のURLを記憶部(フラッシュメモリ24等)に保持(記憶)している場合(ステップS29:Yes)、ステップS27に戻り、画面情報および表示情報の取得要求の処理を継続する。次のサーバ2のURLを記憶部(フラッシュメモリ24等)に保持(記憶)していない場合(ステップS29:No)、エラー画面を操作パネル27(表示部)に表示させて(ステップS30)処理を終了する。すなわち、次のサーバ2のURLを記憶部(フラッシュメモリ24等)に保持(記憶)していない場合とは、接続先提供サーバ5から取得した1つのサーバ2又は複数のサーバのURLを用いても、サーバから画面情報が取得できなかったことを示す。なお、サーバ2のURLが取得できない原因の例として、サーバダウン、ネットワークダウン等によりサーバ2への接続が失敗した場合が挙げられる。
図54は、上述の図52のステップS13において、サーバ2が、地域情報または販社情報に対応するアプリケーションを提供する組織に紐付いている、MFP6が利用可能なアプリケーションごとに、該アプリケーションの詳細を示す詳細情報を対応付けたアプリケーション詳細情報を生成するサーバ2の動作例を示すフローチャートである。図54に示すように、特定部216は、MFP6から上述の表示情報要求を受信した場合、図7に示す第3の対応情報を参照して、その受信した表示情報要求に含まれる地域情報または販社情報に対応する組織IDを選択する(ステップS41)。次に、特定部216は、図8に示す第4の対応情報を参照して、その選択した組織IDに対応付けられた1以上のアプリIDの中から、公開されている状態を示す公開状態情報が対応付けられたアプリIDを選択する(ステップS42)。次に、特定部216は、図5に示す第1の対応情報を参照して、その受信した表示情報要求に含まれる機種コードに対応付けられた機種IDを選択する(ステップS43)。次に、特定部216は、図6に示す第2の対応情報を参照して、その選択した機種IDに対応付けられた1以上のアプリIDを選択する(ステップS44)。このとき、特定部216は、図6に示す第2の対応情報のうち、ステップS44で選択したアプリIDに対応付けられたバージョン情報も特定しておく。次に、特定部216は、図8で選択した組織IDに対応付けられた1以上のアプリIDの中で公開されているアプリIDと、図6で選択した機種IDに対応付けられた1以上のアプリIDとを比較して一致するアプリIDを特定する(ステップS45)。次に、特定部216は、図9に示す第5の対応情報を参照して、ステップS45で特定したアプリIDと、MFP6から受信した表示情報要求に含まれる言語情報(ロケール情報)との組み合わせに対応するアプリ説明情報を特定する(ステップS46)。次に、特定部216は、図10に示す第6の対応情報を参照して、ステップS45で選択したアプリIDと、MFP6から受信した表示情報要求に含まれる言語情報(ロケール情報)との組み合わせに対応するアプリ価格情報を特定する(ステップS47)。そして、生成部217は、ステップS45で特定したアプリIDごとに、ステップS46で特定したアプリ説明情報と、図6に示す第2の対応情報のうち、ステップS44で選択したアプリIDに対応付けられたバージョン情報と、ライセンスキーが設定されている場合はライセンスキーと、ステップS47で特定したアプリ価格情報と、を含む詳細情報を対応付けてアプリケーション詳細情報を生成することができる(ステップS48)。
図55は、図38に示すアプリケーション一覧画面に表示された何れかのアプリケーション選択ボタン331が押下された場合のシステム1の動作手順の一例を示すシーケンス図である。上述したように、表示制御部273は、何れかのアプリケーション選択ボタン331の押下を受け付けた場合、上述のインストール指示画面(図41参照)を操作パネル27に表示する制御を行う(ステップS51)。次に、表示制御部273は、インストールボタン332の押下を受け付けた場合、サーバ2から受信済みの画面情報を参照して、該画面情報に含まれる表示情報内のアプリケーション詳細情報のうち、ユーザの操作に応じて選択されたインストール命令の対象となるアプリケーションに対応する詳細情報の中に、ライセンスキーが含まれているか否かを確認する(ステップS52)。ステップS52の確認の結果、ライセンスキーが含まれている場合、上述のインストール確認画面(図42参照)を操作パネル27に表示する制御を行う(ステップS53)。
上述のステップS52の確認の結果、ライセンスキーが含まれていない場合(つまり、インストール命令の対象となるアプリケーションが有償のアプリケーションの場合)、表示制御部273は、上述の図44の入力画面を操作パネル27に表示する制御を行い(ステップS54)、ユーザからのライセンスキーの入力を受け付ける。ここでは、ユーザは、購入済みのアプリケーションに対応するライセンスキーを事前に把握していることを前提とする。例えばアプリケーションの管理者から、該アプリケーションを購入したユーザに対して、郵送やメール等でライセンスキーを通知する形態であってもよい。
次に、実行部274は、ユーザの操作に応じて選択されたインストール命令と、アプリID(選択されたアプリケーション命令の対象となるアプリケーションのアプリID)と、ライセンスキー(選択されたアプリケーション命令の対象となるアプリケーションのライセンスキー)とを処理実行部275へ通知する(ステップS55)。処理実行部275は、実行部274から通知されたライセンスキーを用いて、実行部274から通知されたインストール命令を実行する。より具体的には以下のとおりである。まず、処理実行部275は、サーバ2に対して、インストール命令の対象となるアプリケーションのアプリIDを少なくとも含み、かつ、該アプリケーションのダウンロードを要求する上述のダウンロード要求を送信する(ステップS56)。ダウンロード要求を受信したサーバ2(ダウンロード部232)は、その受信したダウンロード要求に含まれるアプリIDに対応するアプリケーションを選択し(ステップS57)、その選択したアプリケーションをMFP6へ送信する(ステップS58)。
次に、処理実行部275は、サーバ2に対して、アプリIDとライセンスキーと機番とを少なくとも含み、かつ、ライセンスの有効化を要求する上述の有効化要求を送信する(ステップS59)。有効化要求を受信したサーバ2(ライセンス有効化部227)は、ライセンスを有効化するための制御を行った後(ステップS60)、有効化要求に対する応答をMFP6へ返す(ステップS61)。ステップS60の具体的な内容は上述したとおりであるが、ライセンス有効化部227は、MFP6から上述の有効化要求を受信した場合、ライセンス情報DB224の中に、その受信した有効化要求に含まれるライセンスキーが存在するか否かを確認する。ライセンスキーが存在する場合は、ライセンス有効化部227は、上述したようにライセンス情報DB224に記憶された情報を更新する。また、ライセンス有効化部227は、MFP6から受信した有効化要求に含まれるアプリIDで識別されるアプリケーションの有効期限などのライセンス(使用権限)を定めたライセンスファイルを発行し、有効化要求に対する応答として、ライセンスの状態が有効である旨に加えて該ライセンスファイルを送信することもできる。一方、ライセンス情報DB224の中に、その受信した有効化要求に含まれるライセンスキーが存在しない場合は、有効化要求に対する応答としてエラーを送信する。
MFP6(処理実行部275)は、有効化要求に対する応答として、ライセンスの状態が有効である旨を受信した場合、ステップS58でサーバ2からダウンロードしたアプリケーションをインストールする制御を行う(ステップS62)。インストールが完了した後、処理実行部275は、そのインストールが完了したアプリケーションのアプリIDと、インストール時の該アプリケーションのバージョンとを対応付けて上述のアプリケーション管理情報に追加することで、アプリケーション管理情報を更新する(ステップS63)。
図56は、図38に示すアプリケーション一覧画面に表示された更新選択ボタン325が押下された場合のシステム1の動作手順の一例を示すシーケンス図である。上述したように、表示制御部273は、更新選択ボタン325の押下を受け付けた場合、MFP6にインストール済みのアプリケーションのうち、更新対象のアプリケーションを特定する(ステップS71)。そして、ステップS71で特定したアプリケーションごとに、該アプリケーションの更新指示を受け付けるための更新指示画面(図47参照)を操作パネル27に表示する制御を行う(ステップS72)。これらの具体的な内容は上述したとおりである。
次に、実行部274は、何れかの更新指示ボタン341の押下を受け付けた場合、該更新指示ボタン341に貼り付けられた更新命令を処理実行部275へ通知する(ステップS73)。処理実行部275は、実行部274から通知された更新命令を実行する。より具体的には以下のとおりである。まず、処理実行部275は、サーバ2に対して、更新対象のアプリIDを少なくとも含み、かつ、最新のバージョンのアプリケーションを要求する更新要求を送信する(ステップS74)。更新要求を受信したサーバ2は、その受信した更新要求に含まれるアプリIDに対応するアプリケーションを選択し(ステップS75)、その選択したアプリケーションをMFP6へ送信する(ステップS76)。
次に、MFP6(処理実行部275)は、更新要求に対する応答として、サーバ2から受信した(新たにダウンロードしたアプリケーション)をインストールする制御を行う(ステップS77)。インストールが完了した後、処理実行部275は、そのインストールが完了したアプリケーションのアプリIDと、インストール時(更新時)の該アプリケーションのバージョンとを対応付けて上述のアプリケーション管理情報に追加することで、アプリケーション管理情報を更新する(ステップS78)。
図57は、図38に示すアプリケーション一覧画面に表示された削除選択ボタン326が押下された場合のシステム1の動作手順の一例を示すシーケンス図である。上述したように、表示制御部273は、削除選択ボタン326の押下を受け付けた場合、上述の削除指示画面(図49参照)を操作パネル27に表示する制御を行う(ステップS81)。次に、表示制御部273は、何れかの削除指示ボタン351の押下を受け付けた場合、上述の削除確認画面(図50参照)を操作パネル27に表示する制御を行う(ステップS82)。次に、実行部274は、削除確認画面に表示された確認ボタン361の押下を受け付けた場合、ユーザの操作に応じて選択されたアンインストール命令(押下された確認ボタン361に貼り付けられたアンインストール命令)を処理実行部275へ通知する(ステップS83)。
処理実行部275は、実行部274から通知されたアンインストール命令を実行する。より具体的には以下のとおりである。まず、処理実行部275は、サーバ2に対して、アンインストール命令の対象となるアプリケーションに対応するライセンスキーと、機番とを少なくとも含み、かつ、ライセンスの無効化を要求する上述の無効化要求を送信する(ステップS84)。無効化要求を受信したサーバ2(ライセンス無効化部228)は、ライセンスを無効化するための制御を行った後(ステップS85)、無効化要求に対する応答(ここではライセンスの状態が無効である旨を示す応答)をMFP6へ返す(ステップS86)。ステップS85の具体的な内容は上述したとおりであるが、ライセンス無効化部228は、MFP6から上述の無効化要求を受信した場合、ライセンス情報DB224に記憶された情報のうち、その受信した無効化要求に含まれるライセンスキーと機番との組み合わせに対応付けられた有効状態情報を「無効」を示す情報に変更し、その受信した無効化要求に含まれるライセンスキーに対応付けられた使用中ライセンス数を「1」だけデクリメントし、使用済みライセンス数を「1」だけインクリメントする。
MFP6(処理実行部275)は、無効化要求に対する応答として、ライセンスの状態が無効である旨を受信した場合、無効化要求に含まれるライセンスキーに対応するアプリケーションをアンインストールする制御を行う(ステップS87)。アンインストールが完了した後、処理実行部275は、上述のアプリケーション管理情報のうち、該アンインストールが完了したアプリケーションに対応する情報を削除することで、アプリケーション管理情報を更新する(ステップS88)。
以上に説明したように、本実施形態では、サーバ2は、ネットワーク7を介して接続されるMFP6からの要求に応じて、MFP6が設置されている地域情報に紐付いた、MFP6が利用可能なアプリケーションを示す表示情報と、アプリケーションに関する処理をMFP6に実行させるアプリケーションコマンドと、を少なくとも含むWebコンテンツデータをMFP6に送信する制御を行う制御部212を備え、MFP6は、起動部272がブラウザアプリを起動する際に接続するサーバ2の接続情報を取得する接続情報取得部271と、サーバ2から受信したWebコンテンツデータに基づく画面を操作パネル27に表示する制御を行う表示制御部273と、操作パネル27に表示された画面を介したユーザの操作に応じてWebコンテンツデータに含まれるアプリケーションコマンドを実行して、該アプリケーションコマンドに対応したアプリケーションに関する処理の実行をMFP6に要求する実行部274と、を備える。これにより、サーバ2側で表示情報を自由に変更しても、Webコンテンツデータに含まれるアプリケーションコマンドをMFP6に実行させることができるので、表示情報の変更に合わせてMFP6側のプログラムを変更する必要は無い。すなわち、本実施形態によれば、MFP6が利用可能なアプリケーションを紹介するページを提供するサーバ2が、例えば地域ごとに表示内容が異なるページを構築するための仕組みを実現できる。また、MFP6は、接続先提供サーバ5の接続情報を記憶しており、画面情報および表示情報を取得するサーバ2の接続情報を接続先提供サーバ5から取得して保持するので、例えば、サーバ2の数が増加した場合や、地域ごとのサーバ2の設置位置が変更になった場合でもMFP6側のプログラムを変更する必要は無い。さらに、上述したようにMFP6は、複数のサーバ2の接続情報を記憶することで、サーバ2に接続できない場合には、同等の機能を有する他のサーバ2に切り替えて通信を行うことができるため、可用性が向上するという有意な効果を奏する。
以上、本発明に係る実施形態について説明したが、本発明は、上述の実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上述の実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
例えば図38に示すアプリケーション一覧画面に表示されるアプリケーションの中に(MFP6が利用可能なアプリケーションの中に)、サーバ2に配置したアプリケーションを、操作部20のブラウザアプリで利用する形態のアプリケーション(つまり、Webアプリ)が含まれていてもよい。このようなWebアプリについては、MFP6にインストールする必要は無いので、Webアプリに対応するアプリケーション選択ボタン331の押下を受け付けた場合、表示制御部273は、例えば図58に示すようなショートカット作成指示画面を操作パネル27に表示する制御を行う形態であってもよい。ショートカット作成指示画面は、対応するアプリケーション(Webアプリ)のアプリ説明情報とアプリ価格情報と、Webアプリの機能を呼び出すためのショートカットアイコンの作成を指示するためのショートカット作成ボタン371とを表示する。この例では、ショートカット作成ボタン371に対して、ショートカットを作成する命令を示すショートカット作成命令が貼り付けられている。実行部274は、ショートカット作成ボタン371の押下を受け付けた場合、処理実行部275に対して、該ショートカット作成ボタン371に貼り付けられたショートカット作成命令を通知する。そして、処理実行部275は、実行部274から通知されたショートカット作成命令を実行する。要するに、アプリケーションコマンドは、Webアプリの機能を呼び出すためのショートカットアイコンを作成する命令を示すショートカットアイコン作成命令を含んでいてもよい。この場合、実行部274は、ユーザの操作に応じてショートカットアイコン作成命令が選択された場合(例えば上述のショートカット作成ボタン371が押下された場合)、その選択されたショートカットアイコン作成命令(押下されたショートカット作成ボタン371に貼り付けられたショートカット作成命令)を処理実行部275へ通知し、処理実行部275は、実行部274から通知されたショートカットアイコン作成命令を実行する形態であってもよい。MFP6がサーバ2から受信した表示情報の中に、インストールが必要なアプリとWebアプリが混在している場合、図40の詳細情報における「appType」を参照して、値が「install」の場合インストールが必要なアプリと判断して図41を表示し、値が「web」の場合Webアプリと判断して図58を表示するようにしてもよい。
また、例えば操作部20(MFP6)は、複数のユーザごとに、該ユーザの権限を対応付けた権限情報を管理する機能(権限情報管理部)をさらに備える形態であってもよい。表示制御部273は、権限情報管理部から取得した権限情報を参照して、MFP6を使用中のユーザ(MFP6を使用する権限を有すると認められたユーザ、ログイン中のユーザ)に対応付けられた権限が、例えばインストールの実行を指示できない形態である場合は、図41に示すインストールボタン332を非表示にすることもできる。同様に、MFP6を使用中のユーザに対応付けられた権限が、例えば更新の実行を指示できない形態である場合は、図47に示す更新指示ボタン341を非表示にすることもできる。また、MFP6を使用中のユーザに対応付けられた権限が、例えばアンインストールの実行を指示できない形態である場合は、図49に示す削除指示ボタン351を非表示にすることもできる。
また、上述の実施形態では、本体10と操作部20は、別々のオペレーティングシステムで互いに独立して動作しているが、これに限らず、例えば本体10と操作部20が同じオペレーティングシステムで動作する形態であってもよい。つまり、本体10と操作部20とを一体とした構成であってもよい。
また、上述したアプリケーション一覧画面の形態は任意であり、例えば図59に示すような、以上の例を組み合わせた形態であってもよい。
また、例えば上述の画面提供部213は、MFP6を含む画像形成装置から上述の画面情報要求を受信した場合に限り、上述のアプリケーションコマンドを含むWebコンテンツデータを生成する形態であってもよい。つまり、画面提供部213は、画像形成装置以外の機器(PC、タブレット等)から画面情報要求を受信した場合は、アプリケーションコマンドを含まないWebコンテンツデータを生成し、画面情報要求に対する応答として、その生成したWebコンテンツデータを機器へ送信する形態であってもよい。この形態において、上述の画面提供部213は、画像形成装置以外の機器から画面情報要求を受信した場合は、アプリケーションコマンドを含まないWebコンテンツデータを生成し、画面情報要求に対する応答として、その生成したWebコンテンツデータを機器へ送信する形態であってもよい。この形態において、上述の画面提供部213は、画像形成装置以外の機器から画面情報要求を受信した場合、アプリケーションコマンド(インストール命令、更新命令、アンインストール命令等)を選択するための情報(ボタン)を含まないWebコンテンツデータを生成し、その生成したWebコンテンツデータを、画面情報要求に対する応答として機器へ送信する形態であってもよい。また、機器から受信した画面情報要求が、MFP6からの画面情報要求であるか否かを判断する方法は任意であるが、例えばUser−Agentヘッダで判断する方法であってもよいし、MFP6からの最初のアクセスの際に機器認証を行う(MFP6であるか否かを認証する)といった方法であってもよい。また、例えばJavaScriptでMFP6向けのコマンドを実行してみて、エラーが発生した場合はMFP6以外の機器であると判断する方法であってもよい。
また、上述した実施形態のシステム1(サーバ2、MFP6等)で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよいし、インターネット等のネットワーク経由で提供または配布するように構成してもよい。また、各種プログラムを、ROM等に予め組み込んで提供するように構成してもよい。
1 システム
2、3、4 サーバ
5 接続先提供サーバ
6 MFP
7 ネットワーク
8 アイコン
10 本体
11 CPU
12 ROM
13 RAM
14 HDD
15 通信I/F
16 接続I/F
17 エンジン部
18 システムバス
20 操作部
21 CPU
22 ROM
23 RAM
24 フラッシュメモリ(記憶部)
25 通信I/F
26 接続I/F
27 操作パネル
28 システムバス
30 通信路
101 アプリ層
102 サービス層
103 OS層
201 アプリ層
202 サービス層
203 OS層
210 アプリ情報管理モジュール
211 記憶部
212 制御部
213 画面提供部
214 設定部
216 特定部
217 表示情報生成部
219 設定制御部
220 ライセンス管理モジュール
221 記憶部
222 制御部
223 ライセンス発行部
224 ライセンス情報DB
225 ユーザ情報DB
226 登録制御部
227 ライセンス有効化部
228 ライセンス無効化部
230 アプリダウンロード管理モジュール
231 アプリストレージ
232 ダウンロード部
240 アプリケーションサーバ
250 データベースサーバ
261 アプリ情報DB
262 ユーザ情報DB
271 接続情報取得部
272 起動部
273 表示制御部
274 実行部
275 処理実行部
301 CPU
302 ROM
303 RAM
304 通信I/F
305 入力装置
306 表示装置
310 サービス検索モジュール
311 記憶部
312 制御部
321 接続情報DB
322 接続情報特定部
323 リスト生成部
特開2010−182309号公報

Claims (14)

  1. 複数の第1サーバと、ネットワークを介して前記第1サーバの各々に接続される機器と、を備えるシステムであって、
    前記第1サーバは、
    前記機器から該機器が設置されている地理的位置を示す地域情報を少なくとも含み、かつ、該地域情報に対応する前記機器が利用可能なアプリケーションを示す表示情報と、前記機器から該アプリケーションに関する処理を前記機器に実行させるアプリケーションコマンドと、を少なくとも含むWebコンテンツデータを、前記機器からの要求に応じて、前記機器に送信する制御部を備え、
    前記機器は、
    前記第1サーバから受信した前記Webコンテンツデータに基づく画面を表示部に表示させる制御を行う表示制御部と、前記画面を介したユーザの操作に応じて前記Webコンテンツデータに含まれる前記アプリケーションコマンドを実行することによる、該アプリケーションコマンドに対応した前記アプリケーションに関する処理の実行を前記機器に要求する実行部と、を含むWebブラウザと、
    前記Webブラウザからの要求に基づいて、該要求に応じたアプリケーションに関する処理を実行する処理実行部と、
    を備える、
    ことを特徴とするシステム。
  2. 前記実行部は、アプリケーションプログラミングインタフェースにより提供される、
    ことを特徴とする請求項1に記載のシステム。
  3. 前記システムは、ネットワークを介して前記第1サーバおよび前記機器の各々と接続される第2サーバをさらに備え、
    前記第2サーバは、
    前記機器が設置されている地理的位置を示す地域情報または前記機器の販売店を示す販社情報と、前記アプリケーションを提供する前記第1サーバに接続するための情報を示す接続情報とを対応付けた接続対応情報を記憶する記憶部と、
    前記機器から、前記地域情報または前記販社情報を少なくとも含み、かつ前記第1サーバの前記接続情報の取得を要求する接続情報取得要求を受け付けて、前記接続対応情報を参照し、前記第1サーバの前記接続情報を特定する接続情報特定部と、
    特定した前記第1サーバの前記接続情報を前記機器に送信する接続情報送信部と、を備え、
    前記機器は、
    前記接続情報取得要求を前記第2サーバに送信し、前記第1サーバの前記接続情報を取得する接続情報取得部を備える、
    ことを特徴とする請求項1または2に記載のシステム。
  4. 前記第2サーバは、
    前記第1サーバの前記接続情報の一覧を示す接続一覧情報を生成するリスト生成部を備え、
    前記第2サーバの前記接続情報特定部は、前記接続情報取得要求を受け付けて、前記第1サーバの前記接続情報を特定して前記リスト生成部に受け渡し、前記リスト生成部で生成した前記第1サーバの前記接続一覧情報を前記機器に送信し、
    前記リスト生成部は、前記接続情報特定部で特定した前記第1サーバの前記接続情報の中で、前記機器と通信に要する時間が短い接続情報から該通信に要する時間が長い接続情報の順に並べた複数の前記第1サーバの前記接続一覧情報を生成して前記接続情報特定部に受け渡し、
    前記機器の前記接続情報取得部は、前記第2サーバから受信した前記第1サーバの前記接続一覧情報を保持し、
    前記機器の前記接続情報取得部は、前記第2サーバから前記第1サーバの前記接続情報が受信できない場合、または前記第1サーバから前記Webコンテンツデータの取得要求に対する応答がない場合、前記第1サーバの前記接続一覧情報の順に前記表示情報要求および前記画面情報要求を前記第1サーバに送信する、
    ことを特徴とする請求項3に記載のシステム。
  5. 前記第2サーバの前記記憶部は、前記機器を識別する機器情報をさらに対応付けた前記接続対応情報を記憶し、
    前記第2サーバの前記接続情報特定部は、前記機器から、前記機器情報を少なくとも含み、かつ、前記第1サーバの前記接続情報の取得を要求する接続情報取得要求を受け付けて、前記接続対応情報を参照し、前記第1サーバの前記接続情報を特定し、
    前記第2サーバの前記接続情報送信部は、特定した前記第1サーバの前記接続情報を前記機器に送信し、
    前記機器の接続情報取得部は、前記接続情報取得要求を前記第2サーバに送信し、前記第1サーバの前記接続情報を取得する、
    ことを特徴とする請求項3または4に記載のシステム。
  6. 前記第2サーバの前記接続情報特定部は、前記第1サーバの前記接続情報と共に該第2サーバに接続するための情報を示す接続情報を前記機器に送信し、
    前記機器の前記接続情報取得部は、受信した前記第1サーバの前記接続情報と共に前記第2サーバの前記接続情報を記憶部に記憶させる、
    ことを特徴とする請求項5に記載のシステム。
  7. 前記システムは、複数の第2サーバを備え、
    前記第2サーバの前記リスト生成部は、前記第1サーバの前記接続一覧情報を生成すると共に前記第2サーバの接続情報の接続一覧情報を生成し、生成した2つの該接続一覧情報を前記機器に送信し、
    前記機器の前記接続情報取得部は、前記第2サーバの前記接続情報特定部から受信した前記第1サーバの前記接続一覧情報と共に前記第2サーバの前記接続一覧情報を記憶部に記憶させておき、
    前記機器の前記接続情報取得部は、前記第2サーバから前記第1サーバの前記接続情報が受信できない場合、前記記憶部に記憶されている前記第2サーバの前記接続一覧情報の順に前記接続情報取得要求を前記第2サーバに送信する、
    ことを特徴とする請求項6に記載のシステム。
  8. 前記地域情報は、前記機器の販売店を示す販社情報に含まれており、
    前記機器の表示制御部は、前記表示情報取得部が前記表示情報要求を送信する際に、前記地域情報を含んだ該販社情報が保持されていない場合、該販社情報を示すコード情報の入力を受け付けるUI画面を表示部に表示させ、
    ユーザの操作に応じて、ブラウザ機能を提供するブラウザアプリを起動する起動部は、前記UI画面で受け付けた前記コード情報から特定される販社情報と地域情報とを記憶部に記憶させる、
    ことを特徴とする請求項1から7の何れか1項に記載のシステム。
  9. 前記表示制御部は、前記UI画面で受け付けた前記コード情報から特定される地域情報と、予め記憶している販社情報に対応付けられたコード情報から特定された地域情報とが同一であるかを判断する、または該コード情報に含まれる所定の情報が予め設定された情報と同一であるかを判断する、の何れか一方または両方を行って、同一でない場合には、エラーを示す画面を前記表示部に表示させた後、再度前記販社情報を示すコード情報の入力を受け付けるUI画面を表示部に表示させる、
    ことを特徴とする請求項8に記載のシステム。
  10. 前記第1サーバは、
    前記地域情報、または前記機器の販売店を示す販社情報に対応するアプリケーションを提供する組織を識別する組織IDに紐付いている複数のアプリケーションごとに、公開されている状態であるか否かを示す公開状態情報と、該アプリケーションを利用可能な前記機器の機種を識別する機種情報とを対応付けて記憶する記憶部をさらに備え、
    前記制御部は、
    前記機器から、前記画面情報を要求する画面情報要求を受信した場合に、前記画面情報を生成し、前記画面情報要求に対する応答として、その生成した前記画面情報を前記機器へ送信する画面提供部と、
    前記機器から、前記地域情報と前記機種情報を含み、かつ、前記表示情報を要求する表示情報要求を受信した場合に、前記記憶部に記憶された情報を参照して、前記表示情報要求に含まれる前記地域情報と、前記機種情報と、公開されている状態を示す前記公開状態情報とに基づいて構成されるアプリケーションを特定する特定部と、
    前記特定部により特定されたアプリケーションを示す前記表示情報を生成し、その生成した前記表示情報を、前記表示情報要求に対する応答として前記機器へ送信する表示情報生成部と、を含む、
    ことを特徴とする請求項1から9の何れか1項に記載のシステム。
  11. 前記アプリケーションコマンドは、アプリケーションをインストールする命令を示すインストール命令を含み、
    前記実行部は、前記ユーザの操作に応じて前記インストール命令が選択された場合、その選択された前記インストール命令を前記処理実行部へ通知し、
    前記処理実行部は、前記実行部から通知された前記インストール命令を実行する、
    ことを特徴とする請求項1から10の何れか1項に記載のシステム。
  12. 前記アプリケーションコマンドは、アプリケーションを更新する命令を示す更新命令を含み、
    前記表示情報は、前記機器が利用可能なアプリケーションごとに、該アプリケーションの最新のバージョンを少なくとも示す詳細情報を対応付けたアプリケーション詳細情報を含み、
    前記実行部は、
    前記ユーザの操作に応じて、前記機器にインストール済みのアプリケーションのうち、該アプリケーションの現在のバージョンと、前記アプリケーション詳細情報のうち該アプリケーションに対応する前記詳細情報が示すバージョンとが異なるアプリケーションを特定し、該特定したアプリケーションに対応する前記更新命令が選択された場合、その選択された前記更新命令を前記処理実行部へ通知し、
    前記処理実行部は、前記実行部から通知された前記更新命令を実行する、
    ことを特徴とする請求項1から11の何れか1項に記載のシステム。
  13. 前記アプリケーションコマンドは、インストール済みのアプリケーションを削除して、前記機器の状態を、該アプリケーションをインストールする前の状態に戻す命令を示すアンインストール命令を含み、
    前記実行部は、前記ユーザの操作に応じて選択された前記アンインストール命令を前記処理実行部へ通知し、
    前記処理実行部は、前記実行部から通知された前記アンインストール命令を実行する、
    ことを特徴とする請求項1から12の何れか1項に記載のシステム。
  14. 複数の第1サーバと、ネットワークを介して前記第1サーバの各々に接続される機器と、を備えるシステムの情報処理方法であって、
    前記第1サーバは、
    前記機器から該機器が設置されている地理的位置を示す地域情報を少なくとも含み、かつ、該地域情報に対応する前記機器が利用可能なアプリケーションを示す表示情報と、前記機器から該アプリケーションに関する処理を前記機器に実行させるアプリケーションコマンドと、を少なくとも含むWebコンテンツデータを、前記機器からの要求に応じて、前記機器に送信する制御ステップを含み、
    前記機器は、
    前記第1サーバから受信した前記Webコンテンツデータに基づく画面を表示部に表示させる制御を行う表示制御ステップと、
    前記画面を介したユーザの操作に応じて前記Webコンテンツデータに含まれる前記アプリケーションコマンドを実行することによる、該アプリケーションコマンドに対応した前記アプリケーションに関する処理の実行を前記機器に要求する実行ステップと、
    前記要求に基づいて、該要求に応じたアプリケーションに関する処理を実行する処理実行ステップと、
    を含む、
    ことを特徴とする情報処理方法。
JP2018503306A 2016-02-29 2017-02-27 システム、システムの方法および画像形成装置 Active JP6673464B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2016038046 2016-02-29
JP2016038046 2016-02-29
PCT/JP2017/007562 WO2017150472A1 (ja) 2016-02-29 2017-02-27 システムおよび情報処理方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2020038268A Division JP6881639B2 (ja) 2016-02-29 2020-03-05 システム、システムの方法および画像形成装置

Publications (2)

Publication Number Publication Date
JPWO2017150472A1 true JPWO2017150472A1 (ja) 2018-10-11
JP6673464B2 JP6673464B2 (ja) 2020-03-25

Family

ID=59743927

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2018503306A Active JP6673464B2 (ja) 2016-02-29 2017-02-27 システム、システムの方法および画像形成装置
JP2020038268A Active JP6881639B2 (ja) 2016-02-29 2020-03-05 システム、システムの方法および画像形成装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2020038268A Active JP6881639B2 (ja) 2016-02-29 2020-03-05 システム、システムの方法および画像形成装置

Country Status (5)

Country Link
US (1) US11132149B2 (ja)
EP (1) EP3425515B1 (ja)
JP (2) JP6673464B2 (ja)
CN (1) CN108701097A (ja)
WO (1) WO2017150472A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10033898B2 (en) * 2016-03-17 2018-07-24 Ricoh Company, Ltd. Information processing system, image forming apparatus, and method of processing information
JP7060876B2 (ja) * 2018-06-22 2022-04-27 株式会社クロスビート 資産管理装置及び資産管理プログラム
JP7302181B2 (ja) * 2019-01-28 2023-07-04 株式会社リコー 情報処理システム及び情報処理方法
US11372951B2 (en) * 2019-12-12 2022-06-28 EMC IP Holding Company LLC Proxy license server for host-based software licensing
JP2022080128A (ja) 2020-11-17 2022-05-27 株式会社リコー 情報処理システム、機器、表示方法、プログラム
JP2023039685A (ja) 2021-09-09 2023-03-22 株式会社リコー 画像形成装置及び画像形成方法
US11989466B2 (en) 2022-04-08 2024-05-21 Brother Kogyo Kabushiki Kaisha Device and computer-readable storage medium for providing appropriate error notification
JP2023155006A (ja) 2022-04-08 2023-10-20 ブラザー工業株式会社 デバイス、および、コンピュータプログラム
JP2023176540A (ja) * 2022-05-31 2023-12-13 キヤノン株式会社 情報処理装置及びその制御方法、並びにプログラム

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002328855A (ja) * 2001-05-02 2002-11-15 Sony Corp 情報処理装置および方法、記録媒体、並びにプログラム
US20080235680A1 (en) * 2007-03-21 2008-09-25 Yahoo! Inc. In-Page Installer
US20110016400A1 (en) * 2009-07-14 2011-01-20 Canon Kabushiki Kaisha Transmission system, transmission apparatus, and method
US20120042036A1 (en) * 2010-08-10 2012-02-16 Microsoft Corporation Location and contextual-based mobile application promotion and delivery
US20140171116A1 (en) * 2012-12-14 2014-06-19 Anthony G. LaMarca Location-aware mobile application management
WO2015178422A1 (ja) * 2014-05-23 2015-11-26 株式会社コナミデジタルエンタテインメント 管理装置、ユーザ端末、管理装置プログラム及び端末プログラム

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS54869B1 (ja) 1970-05-07 1979-01-17
JPH08314872A (ja) * 1995-05-12 1996-11-29 Hitachi Tohoku Software Kk アプリケーションプログラム間連携処理方法
JP2008293196A (ja) * 2007-05-23 2008-12-04 Brother Ind Ltd 情報配信システム、同システムに用いる端末装置及びその情報処理プログラム、並びに情報処理方法
US10255580B2 (en) 2008-05-05 2019-04-09 Apple Inc. Network-based distribution of application products
US9342287B2 (en) 2008-05-05 2016-05-17 Apple Inc. Software program ratings
US9076176B2 (en) 2008-05-05 2015-07-07 Apple Inc. Electronic submission of application programs for network-based distribution
US20090276333A1 (en) 2008-05-05 2009-11-05 Cortes Ricardo D Electronic submission and management of digital products for network-based distribution
US8745153B2 (en) 2009-02-09 2014-06-03 Apple Inc. Intelligent download of application programs
US8773676B2 (en) * 2011-03-07 2014-07-08 Sharp Kabushiki Kaisha Multifunction peripheral, multifunction peripheral control system, and multifunction peripheral control method for preparing information display screen including changing default conditions
JP5408230B2 (ja) * 2011-11-04 2014-02-05 オムロン株式会社 ネットワークシステム、ノード装置群、センサ装置群およびセンサデータ送受信方法
JP2013161450A (ja) * 2012-02-08 2013-08-19 Canon Inc ネットワークプリンター管理システム、ネットワークプリンター管理装置及びその制御方法
CN103455505B (zh) 2012-05-31 2017-06-27 华为技术有限公司 一种媒体获取方法、装置及系统
JP5974364B2 (ja) * 2012-07-24 2016-08-23 セイコーエプソン株式会社 デバイス制御装置、デバイス装置、制御方法および制御プログラム
JP6456028B2 (ja) * 2014-02-07 2019-01-23 キヤノン株式会社 情報処理装置、情報処理方法、およびプログラム
JP6376851B2 (ja) * 2014-06-06 2018-08-22 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、及びプログラム
JP6638183B2 (ja) 2014-10-28 2020-01-29 株式会社リコー 情報処理システム、情報処理装置、情報処理方法およびプログラム
US9971883B2 (en) 2014-11-20 2018-05-15 Ricoh Company, Ltd. Information processing device to install applications using installation screen associated with a user
JP2016105266A (ja) 2014-11-20 2016-06-09 株式会社リコー 情報処理装置、情報処理システム、情報処理方法およびプログラム
US9661171B2 (en) * 2014-12-09 2017-05-23 Ricoh Company, Ltd. Information processing system, information processing apparatus, and information processing method for providing application information
US10642547B2 (en) * 2016-07-20 2020-05-05 Ricoh Company, Ltd. Information processing system and information processing method for generating an application providing screen for display at a requesting device

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002328855A (ja) * 2001-05-02 2002-11-15 Sony Corp 情報処理装置および方法、記録媒体、並びにプログラム
US20080235680A1 (en) * 2007-03-21 2008-09-25 Yahoo! Inc. In-Page Installer
KR20090127138A (ko) * 2007-03-21 2009-12-09 야후! 인크. 인-페이지 인스톨러
CN101689193A (zh) * 2007-03-21 2010-03-31 雅虎公司 页面内安装器
JP2010522398A (ja) * 2007-03-21 2010-07-01 ヤフー! インコーポレイテッド ページ内インストーラ
US20110016400A1 (en) * 2009-07-14 2011-01-20 Canon Kabushiki Kaisha Transmission system, transmission apparatus, and method
JP2011022712A (ja) * 2009-07-14 2011-02-03 Canon Inc 配信システム、配信装置、及び配信方法
US20120042036A1 (en) * 2010-08-10 2012-02-16 Microsoft Corporation Location and contextual-based mobile application promotion and delivery
US20140171116A1 (en) * 2012-12-14 2014-06-19 Anthony G. LaMarca Location-aware mobile application management
WO2015178422A1 (ja) * 2014-05-23 2015-11-26 株式会社コナミデジタルエンタテインメント 管理装置、ユーザ端末、管理装置プログラム及び端末プログラム

Also Published As

Publication number Publication date
EP3425515A1 (en) 2019-01-09
US11132149B2 (en) 2021-09-28
JP6673464B2 (ja) 2020-03-25
WO2017150472A1 (ja) 2017-09-08
EP3425515A4 (en) 2019-01-09
EP3425515B1 (en) 2023-10-25
JP2020091913A (ja) 2020-06-11
JP6881639B2 (ja) 2021-06-02
CN108701097A (zh) 2018-10-23
US20210072931A1 (en) 2021-03-11

Similar Documents

Publication Publication Date Title
JP6881639B2 (ja) システム、システムの方法および画像形成装置
US10129428B2 (en) System, image forming device, and information processing method
US10382640B2 (en) Information processing system, information processing apparatus, image forming apparatus, information processing method, and computer program product
JP6822172B2 (ja) システム、画像形成装置、情報処理方法および情報処理装置
JP6720519B2 (ja) 情報処理装置、プログラムおよび情報処理システム
US10735614B2 (en) Information processing system, information processing apparatus, image forming apparatus, information processing method, and computer program product
JP6859870B2 (ja) サーバ、システムおよび情報処理方法
JP2016057697A (ja) 情報処理システム、情報処理装置、及びその制御方法とプログラム
JP2016115285A (ja) 情報処理システム、情報処理装置、情報処理方法およびプログラム
JP6620530B2 (ja) 情報処理システム、情報処理装置、情報処理方法およびプログラム
JP2016105579A (ja) 情報処理システム、情報処理装置および情報処理方法
JP6641928B2 (ja) プログラム
JP6547531B2 (ja) コンテンツ指定プログラム及び携帯端末
JP6819320B2 (ja) 情報処理システム、および情報処理方法
JP6819386B2 (ja) 画像処理装置、システムおよび情報処理方法
JP2017120582A (ja) システム、情報処理方法、情報処理装置およびプログラム
JP6648523B2 (ja) 情報処理装置、プログラム、情報処理システムおよび情報処理方法
JP6988930B2 (ja) 情報処理装置、プログラム、情報処理システムおよび情報処理方法
JP2018156467A (ja) 情報処理システム、情報処理装置および情報処理方法
JP6725036B2 (ja) プログラム及び端末装置
JP6879335B2 (ja) コンテンツ指定プログラム及び携帯端末
JP2017117238A (ja) 情報処理システム、情報処理装置および情報処理方法
JP2020107357A (ja) 起動元プログラム、及び端末装置
JP2020074120A (ja) プログラムおよび端末装置
JP2017199216A (ja) 情報処理システム、情報処理装置、情報処理方法およびプログラム

Legal Events

Date Code Title Description
A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A527

Effective date: 20180618

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180618

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190813

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191011

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200204

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200217

R151 Written notification of patent or utility model registration

Ref document number: 6673464

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151