(57)【要約】      （修正有）【課題】市場への流通後に機能を追加できる画像形成装置を提供する。【解決手段】プログラムを実行することができる画像形成装置であって、プログラムを記憶する記憶手段と、記憶手段に記憶されたプログラムである第一のプログラムを実行し、画像形成装置において実行が許可されたプログラムの識別情報が登録されたプログラム登録情報１３に、記憶手段とは異なり画像形成装置に接続された外部の記憶媒体に記憶されたプログラムの識別情報が登録されている場合、記憶媒体に記憶されたプログラムである第二のプログラムを実行するプログラム実行手段１１と、プログラム実行手段により実行された第一のプログラム及び第二のプログラムの間の通信を可能にする通信手段１２と、を有し、第二のプログラムをプログラム実行手段が実行し、通信手段により第二のプログラムと第一のプログラムとが通信することで画像形成装置に新たな機能を追加することを特徴とする。【選択図】図６
2018106410.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを実行することができる画像形成装置であって、
前記プログラムを記憶する記憶手段と、
前記記憶手段に記憶されたプログラムである第一のプログラムを実行し、前記画像形成装置において実行が許可されたプログラムの識別情報が登録されたプログラム登録情報に、前記記憶手段とは異なり前記画像形成装置に接続された外部の記憶媒体に記憶されたプログラムの前記識別情報が登録されている場合、前記記憶媒体に記憶されたプログラムである第二のプログラムを実行するプログラム実行手段と、
前記プログラム実行手段により実行された前記第一のプログラム及び前記第二のプログラムの間の通信を可能にする通信手段と、を有し、
前記第二のプログラムを前記プログラム実行手段が実行し、前記通信手段により当該第二のプログラムと前記第一のプログラムとが通信することで画像形成装置に新たな機能を追加することを特徴とする画像形成装置。
【請求項２】
前記第二のプログラムは、前記画像形成装置の出荷時に使用され出荷後は使用されない工程プログラムと同じ識別情報を有し、
前記プログラム登録情報には、前記工程プログラムの前記識別情報が登録されている請求項１に記載の画像形成装置。
【請求項３】
前記第一のプログラムは、画像形成装置に設定されている設定データを取得するものであり、
前記第二のプログラムは前記通信手段を介して前記設定データの取得を前記第一のプログラムに要求し、前記第一のプログラムから前記設定データを取得する請求項１又は２に記載の画像形成装置。
【請求項４】
前記記憶媒体に記憶された第三のプログラムが、前記プログラム実行手段が実行する前記第一のプログラムの機能を呼び出すためのインタフェースを有し、
前記第二のプログラムは、前記通信手段を介して前記インタフェースが提供していない機能を前記第一のプログラムから呼び出すことで、前記第一のプログラムから前記設定データを取得する請求項３に記載の画像形成装置。
【請求項５】
前記第二のプログラムは前記画像形成装置から取得できる前記設定データを表示装置に表示し、選択された前記設定データを受け付け、受け付けた前記設定データの取得を前記第一のプログラムに要求する請求項３又は４に記載の画像形成装置。
【請求項６】
前記第一のプログラムが取得した前記設定データをサーバに送信する設定データ送信手段を有する請求項３〜５のいずれか１項に記載の画像形成装置。
【請求項７】
プログラムを記憶する記憶手段を有し、前記プログラムを実行することができる画像形成装置が行う機能追加方法であって、
前記記憶手段に記憶されたプログラムである第一のプログラムを実行し、前記画像形成装置において実行が許可されたプログラムの識別情報が登録されたプログラム登録情報に、前記記憶手段とは異なり前記画像形成装置に接続された外部の記憶媒体に記憶されたプログラムの前記識別情報が登録されている場合、プログラム実行手段が、前記記憶媒体に記憶されたプログラムである第二のプログラムを実行するステップと、
通信手段が、前記プログラム実行手段により実行された前記第一のプログラム及び前記第二のプログラムの間の通信を可能にするステップと、を有し、
前記第二のプログラムを前記プログラム実行手段が実行し、前記通信手段により当該第二のプログラムと前記第一のプログラムとが通信することで画像形成装置に新たな機能を追加することを特徴とする機能追加方法。
【請求項８】
プログラムを記憶する記憶手段を有する画像形成装置にインストールされることで前記画像形成装置を、
前記記憶手段に記憶されたプログラムである第一のプログラムを実行し、前記画像形成装置において実行が許可されたプログラムの識別情報が登録されたプログラム登録情報に、前記記憶手段とは異なり前記画像形成装置に接続された外部の記憶媒体に記憶されたプログラムの前記識別情報が登録されている場合、前記記憶媒体に記憶されたプログラムである第二のプログラムを実行するプログラム実行手段と、
前記プログラム実行手段により実行された前記第一のプログラム及び前記第二のプログラムの間の通信を可能にする通信手段、として機能させるプログラムであって、
前記第二のプログラムを前記プログラム実行手段が実行し、前記通信手段により当該第二のプログラムと前記第一のプログラムとが通信することで画像形成装置に新たな機能を追加することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置、機能追加方法、及びプログラムに関する。
【背景技術】
【０００２】
企業などで多くの電子機器が使用されているが、製品寿命や故障などによりこの電子機器を企業が入れ替える場合がある。古い電子機器は新しい電子機器に入れ替えられるが、電子機器が例えばファクシミリの機能を有する場合、古い電子機器には宛先のＦＡＸ番号が設定されている。また、電子機器がプリンタの機能を有する場合も、古い電子機器には様々な印刷条件が設定されている。これらの設定が引き継がれないと顧客にとって操作性が低下したように感じられてしまう。
【０００３】
電子機器の入れ替えはカスタマーエンジニアが行うが、カスタマーエンジニアにとっても古い電子機器の設定を１つ１つ新しい電子機器に入力することは煩雑である。各種設定の引っ越しの際、サービスエンジニアが設定値をメモするだけでなく、顧客から業務をヒアリングするなどの作業が伴うため、電子機器の入れ替えに多くの時間がかかっていた。
【０００４】
このような不都合に対して、設定データのインポートやエクスポートの機能を備えた電子機器が考案されている（例えば、特許文献１参照。）。特許文献１には、入れ替え元及び入れ替え先の電子機器それぞれの設定項目、設定可能範囲、設定値を端末が取得し、入れ替え元と入れ替え先で項目が異なった場合でも入れ替え先の設定値を決定する方法について開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、機器入れ替えのニーズは電子機器が古くなってから発生するため、必ずしも最新の設計でない市場流通機が設定データの抽出に対応していないという問題がある。市場流通機を設定データの抽出に対応させるランニングチェンジ（設計変更）をメーカが行うことが考えられるが、品質が安定している市場流通機に対してランニングチェンジを行うことは設計面からリスクが大きい。また、市場流通機が製造終了（ディスコン）している場合は、ランニングチェンジも容易でない。
【０００６】
本発明は、上記課題に鑑み、市場への流通後に機能を追加できる画像形成装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、プログラムを実行することができる画像形成装置であって、前記プログラムを記憶する記憶手段と、前記記憶手段に記憶されたプログラムである第一のプログラムを実行し、前記画像形成装置において実行が許可されたプログラムの識別情報が登録されたプログラム登録情報に、前記記憶手段とは異なり前記画像形成装置に接続された外部の記憶媒体に記憶されたプログラムの前記識別情報が登録されている場合、前記記憶媒体に記憶されたプログラムである第二のプログラムを実行するプログラム実行手段と、前記プログラム実行手段により実行された前記第一のプログラム及び前記第二のプログラムの間の通信を可能にする通信手段と、を有し、前記第二のプログラムを前記プログラム実行手段が実行し、前記通信手段により当該第二のプログラムと前記第一のプログラムとが通信することで画像形成装置に新たな機能を追加することを特徴とする。
【発明の効果】
【０００８】
市場への流通後に機能を追加できる画像形成装置を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】設定データの抽出に関する不都合を説明する図である。
【図２】電子機器の動作を模式的に説明する図の一例である。
【図３】データ設定システムの概略構成図の一例である。
【図４】複合機の概略的なハードウェア構成を示したブロック図の一例である。
【図５】クラウドサーバの概略的なハードウェア構成図の一例である。
【図６】電子機器の機能をブロック状に示す機能ブロック図の一例である。
【図７】メモリにロードされる各アプリを模式的に示す図である。
【図８】プロセス間通信を模式的に説明する図の一例である。
【図９】内部用設定データ入替アプリが有するアプリＩＤを示す図の一例である。
【図１０】アプリ管理部が内部用設定データ入替アプリを起動する手順を示すシーケンス図の一例である。
【図１１】内部用設定データ入替部が設定データを取得してクラウドサーバに送信する手順を示すシーケンス図の一例である。
【図１２】内部用設定データ入替アプリが操作パネルに表示するアプリ画面の例とアプリ画面の遷移例を示す図の一例である。
【図１３】クラウドサーバの概略的な動作を説明する図の一例である（実施例２）。
【図１４】データ設定システムの概略構成図の一例である（実施例２）。
【図１５】ユーザＰＣ、クラウドサーバ及び電子機器の機能をブロック状に示す機能ブロック図の一例である（実施例２）。
【図１６】ユーザＰＣのＬＣＤに表示される設定画面の一例である（実施例２）。
【図１７】設定データ変更画面の一例である（実施例２）。
【図１８】クラウドサーバが変更を要求されている項目に依存関係のある項目があるかどうかを判断し、インポートデータを生成する手順を示すフローチャート図の一例である。
【図１９】設定変更要求について説明する図の一例である。
【図２０】インポートデータ生成部が生成したインポートデータについて説明する図の一例である。
【発明を実施するための形態】
【００１０】
以下、本発明を実施する形態の一例として電子機器及び電子機器が行う機能追加方法について図面を参照しながら説明する。
【実施例１】
【００１１】
＜従来の電子機器について＞
まず、市場に流通している電子機器３０が設定データの抽出に対応していない場合に生じる不都合について説明する。図１は、設定データの抽出に関する不都合を説明する図である。図１は電子機器３０Ａのソフトウェア構造を示しており、電子機器３０Ａでは内部アプリ２６とＳＤＫアプリ３１の二種類のアプリが動作する。ＳＤＫとは「Software Development Kit」の略であり、あるシステムに対応したソフトウェアを開発するために必要なプログラムや文書などをひとまとめにしたソフト的なツールである。電子機器３０ＡはＳＤＫアプリ３１が内部アプリ２６と通信するためのＳＤＫアプリ用ＩＦ３２を有している。ＳＤＫアプリ用ＩＦ３２は、ＳＤＫアプリ３１が内部アプリ２６（及びＯＳ２８）の機能を呼び出すためのＡＰＩ（Application Interface）の集合である。ＳＤＫアプリ３１はＡＰＩを呼び出して内部アプリ２６等の機能を利用することができるため、電子機器３０Ａのメーカは市場流通機に対しても比較的容易に機能を追加できる。
【００１２】
そこで、市場流通機に対しメーカが設定データを抽出するためのＳＤＫアプリ３１を作成し、カスタマーエンジニアＣＥなどが顧客側でＳＤＫアプリ３１を電子機器３０Ａにインストールすることが検討される。このＳＤＫアプリ３１をＳＤＫ用設定データ入替アプリ３３と称する。
【００１３】
しかしながら、ＳＤＫアプリ用ＩＦ３２は内部アプリ２６の全ての機能に対応したＡＰＩを提供するわけではなく、ＳＤＫ用設定データ入替アプリ３３では抽出できない設定データが存在する。図１に示すように、設定データにアクセスするには内部アプリ２６が必要であり、各内部アプリ２６が抽出できる設定データも決まっている。例えば、設定データ管理部Ａ（符号は２３）が抽出できる設定データと、設定データ管理部Ｂ（符号は２４）が抽出できる設定データは決まっている。
【００１４】
【表１】
2018106410.tif 000003
表１は、設定データと対応する設定データ管理部、及びＳＤＫアプリ用ＩＦ３２の有無をテーブル状に示す。表１に示すように、設定データはアクセスできる設定データ管理部が決まっている。また、設定データ管理部と設定データの組み合わせによって、ＳＤＫアプリ用ＩＦ３２の有無が変わってくる。このため、ＳＤＫアプリ用ＩＦ３２経由では、引っ越されるべき設定データの全てに対応できない。
【００１５】
例えば図１では、ＳＤＫアプリ用ＩＦ３２が設定データ管理部Ａを呼び出すＡＰＩを提供していても、設定データ管理部Ｂを呼び出すＡＰＩを提供していない場合、ＳＤＫ用設定データ入替アプリ３３は、設定データ管理部Ｂが抽出する設定データを抽出できない。市場流通機であるため、設定データ管理部ＢのＡＰＩをメーカがＳＤＫアプリ用ＩＦ３２に追加することも困難である。
【００１６】
＜本実施形態の電子機器の動作について＞
そこで、本実施形態の電子機器３０Ａは内部アプリ２６として内部用設定データ入替アプリ１４を動作させる。図２は、電子機器３０Ａの動作を模式的に説明する図の一例である。内部用設定データ入替アプリ１４は内部アプリ２６として動作するので設定データ管理部Ａ及び設定データ管理部Ｂと同じメモリ空間で動作する。内部アプリ２６はＳＤＫアプリ用ＩＦ３２を経由しないので、内部用設定データ入替アプリ１４は設定データ管理部Ａ及び設定データ管理部Ｂが有する全ての機能を利用することができる。つまり、内部用設定データ入替アプリ１４は、ＳＤＫアプリ用ＩＦ３２が提供していない機能を内部アプリ２６から呼び出して、内部アプリ２６から設定データを取得する。
【００１７】
従って、内部用設定データ入替アプリ１４がインストールされることで、従来は取得できなかった設定データを取得するという新たな機能を追加できる。
【００１８】
なお、一般的なＰＣ(Personal Computer)でもアプリケーションソフトウェアのインストールは可能であるが、本実施形態の電子機器３０Ａは任意のアプリケーションソフトウェアをインストールできない点で異なっている。詳細は後述される。
【００１９】
＜用語について＞
実行の許可とは電子機器３０がプログラムを実行できること、起動できること、又は、ユーザが使用できることをいう。
【００２０】
機能とは、電子機器３０が提供する情報処理の具体的内容である。機能はデータの入力、加工、出力の１つ以上が組み合わされて提供される。
【００２１】
設定データは、電子機器３０に設定されているデータである。どのようなデータであるかは電子機器３０によって様々である。例えば、アドレス情報、処理のパラメータなどである。
【００２２】
＜システム構成例＞
図３は、データ設定システム１００の概略構成図の一例を示す。データ設定システム１００はネットワークＮを介して通信可能な１台以上の電子機器３０Ａ，３０Ｂとクラウドサーバ５０を有する。以下では、複数の電子機器３０Ａ，３０Ｂのうち任意の電子機器を電子機器３０と称する。
【００２３】
ネットワークＮは、電子機器３０Ａ、３０Ｂが設置されている施設などに構築されているＬＡＮ、ＬＡＮをインターネットに接続するプロバイダのプロバイダネットワーク、及び、回線事業者が提供する回線等により構築されている。ネットワークＮが複数のＬＡＮを有する場合、ネットワークＮはＷＡＮやインターネットと呼ばれる。ネットワークＮは有線又は無線のどちらで構築されてもよく、また、有線と無線が組み合わされていてもよい。また、電子機器３０Ａが直接、公衆回線網に接続する場合は、ＬＡＮを介さずにプロバイダネットワークに接続することができる。
【００２４】
電子機器３０Ａは、動作に関する設定データが設定され、その設定データを他の電子機器３０Ｂが再利用する何らかの装置である。例えば、企業において新しい電子機器３０Ｂに入れ替えられる古い電子機器３０が本実施例の電子機器３０Ａである。一方、設定データが再利用される新しい電子機器３０が電子機器３０Ｂである。電子機器３０Ａ（第一の画像形成装置）はクラウドサーバ５０に設定データをエクスポートし、電子機器３０Ｂ（第二の画像形成装置）は設定データをインポートする。電子機器３０Ｂについては実施例２にて説明する。
【００２５】
電子機器３０Ａとしては、例えば、複合機、プロジェクタ、電子黒板、及びテレビ会議端末などが挙げられる。なお、複合機はＭＦＰ（Multi-Function Peripheral）、複写機、コピー機、画像形成装置、画像処理装置、又はプリンタなどと呼ばれる場合がある。プロジェクタは投影装置と呼ばれる場合がある。電子黒板は電子情報ボード、電子ホワイトボードなどと呼ばれる場合がある。この他、電子機器３０Ａはデジタルサイネージ、デジタルカメラ、ドローンなどでもよい。
【００２６】
更に、本実施形態の電子機器３０Ａは、設定データが設定されるものでなくてもよい。本実施形態の電子機器３０Ａは、市場流通機に対しＳＤＫアプリ３１以外の手段で、機能を追加できる点が特徴の１つであるため、市場流通機にＳＤＫアプリ３１以外の手段で機能が追加できる電子機器３０であればよい。
【００２７】
なお、追加されるアプリ（内部用設定データ入替アプリ１４）は可搬型記憶媒体９に記憶された状態で頒布される。カスタマーエンジニアＣＥが可搬型記憶媒体９を電子機器３０Ａに装着すると、電子機器３０Ａが内部用設定データ入替アプリ１４を読み取って電子機器３０Ａにインストールする。詳細は後述される。可搬型記憶媒体９は、例えば、ＳＤカード（登録商標）、ＵＳＢメモリ、コンパクトフラッシュ（登録商標）、マルチメディアカード 、フロッピー、メモリースティック（登録商標）、外付けのハードディスクドライブ、などである。
【００２８】
一方、内部用設定データ入替アプリ１４はプログラム配信用のサーバに記憶されていてもよい。この場合、カスタマーエンジニアＣＥがプログラム配信用のサーバから電子機器３０Ａに内部用設定データ入替アプリ１４をダウンロードする。
【００２９】
クラウドサーバ５０は、内部用設定データ入替アプリ１４が取得した設定データが送信されるクラウド上の情報処理装置である。内部用設定データ入替アプリ１４が電子機器３０Ａから設定データを取得すること、又は、更にクラウドサーバ５０に送信することを設定データのエクスポートという。新しい電子機器３０Ｂがクラウドサーバ５０から設定データをダウンロードすること、又は、新しい電子機器３０Ｂが設定データを自機に設定することをインポートという。エクスポートされる設定データをエクスポートデータといい、インポートされる設定データをインポートデータという。従って、設定データと、インポートデータ又はエクスポートデータは同じデータの場合がある。
【００３０】
なお、クラウドとはクラウドコンピューティングの略であり、クラウドコンピューティングとは、特定ハードウェア資源が意識されずにネットワーク上のリソースが利用される利用形態をいう。クラウドサーバ５０は社内のネットワークに接続されたサーバでもよい。
【００３１】
＜ハードウェア構成例＞
<<複合機のハードウェア構成について>>
図４は、複合機の概略的なハードウェア構成を示したブロック図の一例である。複合機は、コントローラ４１０とエンジン部（Ｅｎｇｉｎｅ）４１５とをＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ Ｃｏｍｐｏｎｅｎｔ Ｉｎｔｅｒｆａｃｅ）バス４１６で接続した構成となる。
【００３２】
コントローラ４１０は、複合機全体の制御と描画、通信、操作パネル４１１（表示装置、入力装置）からの入力を制御するコントローラである。エンジン部４１５は、ＰＣＩバス４１６に接続可能なプリンタエンジンなどであり、たとえば白黒プロッタ、１ドラムカラープロッタ、４ドラムカラープロッタ、スキャナ又はファックスユニットなどである。
【００３３】
なお、このエンジン部４１５には、プロッタなどのいわゆるエンジン部分に加えて、誤差拡散やガンマ変換などの画像処理部分が含まれる。
【００３４】
コントローラ４１０は、ＣＰＵ４０１と、ノースブリッジ（ＮＢ）４０３と、システムメモリ（ＭＥＭ−Ｐ）４０２と、サウスブリッジ（ＳＢ）４０４と、ローカルメモリ（ＭＥＭ−Ｃ）４０７と、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ Ｓｐｅｃｉｆｉｃ Ｉｎｔｅｇｒａｔｅｄ Ｃｉｒｃｕｉｔ）４０６と、ハードディスクドライブ（ＨＤＤ）４０８とを有し、ノースブリッジ（ＮＢ）４０３とＡＳＩＣ４０６との間をＡＧＰ（Ａｃｃｅｌｅｒａｔｅｄ Ｇｒａｐｈｉｃｓ Ｐｏｒｔ）バス４０５で接続した構成となる。
【００３５】
また、ＭＥＭ−Ｐ４０２は、ＲＯＭ（Ｒｅａｄ Ｏｎｌｙ Ｍｅｍｏｒｙ）４０２ａと、ＲＡＭ（Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ)４０２ｂと、を更に有する。
【００３６】
ＣＰＵ４０１は、複合機の全体制御を行うものであり、ＮＢ４０３、ＭＥＭ−Ｐ４０２及びＳＢ４０４からなるチップセットを有し、このチップセットを介して他の機器と接続される。
【００３７】
ＮＢ４０３は、ＣＰＵ４０１とＭＥＭ−Ｐ４０２、ＳＢ４０４、ＡＧＰバス４０５とを接続するためのブリッジであり、ＭＥＭ−Ｐ４０２に対する読み書きなどを制御するメモリコントローラと、ＰＣＩマスタ及びＡＧＰターゲットとを有する。
【００３８】
ＭＥＭ−Ｐ４０２は、プログラムやデータの格納用メモリ、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いるシステムメモリであり、ＲＯＭ４０２ａとＲＡＭ４０２ｂとからなる。
【００３９】
ＲＯＭ４０２ａは、プログラムやデータの格納用メモリとして用いる読み出し専用のメモリであり、ＲＡＭ４０２ｂは、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いる書き込み及び読み出し可能なメモリである。
【００４０】
ＳＢ４０４は、ＮＢ４０３とＰＣＩデバイス、周辺デバイスとを接続するためのブリッジである。このＳＢ４０４は、ＰＣＩバスを介してＮＢ４０３と接続されており、このＰＣＩバスには、ネットワークＩ／Ｆ４０９なども接続される。ＡＳＩＣ４０６は、画像処理用のハードウェア要素を有する画像処理用途向けのＩＣ（Ｉｎｔｅｇｒａｔｅｄ Ｃｉｒｃｕｉｔ）であり、ＡＧＰバス４０５、ＰＣＩバス４１６、ＨＤＤ４０８及びＭＥＭ−Ｃ４０７をそれぞれ接続するブリッジの役割を有する。
【００４１】
このＡＳＩＣ４０６は、ＰＣＩターゲット及びＡＧＰマスタと、ＡＳＩＣ４０６の中核をなすアービタ（ＡＲＢ）と、ＭＥＭ−Ｃ４０７を制御するメモリコントローラと、ハードウェアロジックなどにより画像データの回転などを行う複数のＤＭＡＣ（Ｄｉｒｅｃｔ Ｍｅｍｏｒｙ Ａｃｃｅｓｓ Ｃｏｎｔｒｏｌｌｅｒ）と、エンジン部４１５との間でＰＣＩバスを介したデータ転送を行うＰＣＩユニットとを有する。
【００４２】
ネットワークＩ／Ｆ４０９はネットワークＮを介してクラウドサーバ５０等と通信するための通信装置であり、例えばＮＩＣ（Network Interface Card）である。
【００４３】
このＡＳＩＣ４０６には、ＰＣＩバスを介してＦＣＵ（Ｆａｃｓｉｍｉｌｅ Ｃｏｎｔｒｏｌ Ｕｎｉｔ）４１２、ＳＤ Ｉ／Ｆ（Ｕｎｉｖｅｒｓａｌ Ｓｅｒｉａｌ Ｂｕｓ）４１３、ＩＥＥＥ１３９４（ｔｈｅ Ｉｎｓｔｉｔｕｔｅ ｏｆ Ｅｌｅｃｔｒｉｃａｌ ａｎｄ Ｅｌｅｃｔｒｏｎｉｃｓ Ｅｎｇｉｎｅｅｒｓ １３９４）インタフェース４１４が接続される。
【００４４】
操作パネル４１１はＡＳＩＣ４０６に直接接続されている。ＭＥＭ−Ｃ４０７は、コピー用画像バッファ、符号バッファとして用いるローカルメモリである。ＨＤＤ４０８は、画像データの蓄積、プログラムの蓄積、フォントデータの蓄積、フォームの蓄積を行うためのストレージである。
【００４５】
また、ＨＤＤ４０８は、複合機で実行されるアプリケーションのライセンスファイルを保存する。ＡＧＰバス４０５は、グラフィック処理を高速化するために提案されたグラフィックスアクセラレーターカード用のバスインターフェースであり、ＭＥＭ−Ｐ４０２に高スループットで直接アクセスすることにより、グラフィックスアクセラレーターカードを高速にするものである。
【００４６】
<<クラウドサーバのハードウェア構成について>>
図５は、クラウドサーバ５０の概略的なハードウェア構成図の一例である。クラウドサーバ５０は、ＣＰＵ２０１と、ＣＰＵ２０１が使用するデータの高速アクセスを可能とするメモリ２０２とを備える。ＣＰＵ２０１及びメモリ２０２は、システム・バス２０３を介して、クラウドサーバ５０の他のデバイス又はドライバ、例えば、グラフィックス・ドライバ２０４及びネットワーク・ドライバ（ＮＩＣ）２０５へと接続されている。
【００４７】
グラフィックス・ドライバ２０４は、バスを介してＬＣＤ（ディスプレイ装置）２０６に接続されて、ＣＰＵ２０１による処理結果をモニタする。また、ネットワーク・ドライバ２０５は、トランスポート層レベル及び物理層レベルでクラウドサーバ５０をネットワークＮへと接続して、複合機とのセッションを確立させている。
【００４８】
システム・バス２０３には、更にＩ／Ｏバス・ブリッジ２０７が接続されている。Ｉ／Ｏバス・ブリッジ２０７の下流側には、ＰＣＩなどのＩ／Ｏバス２０８を介して、ＩＤＥ、ＡＴＡ、ＡＴＡＰＩ、シリアルＡＴＡ、ＳＣＳＩ、ＵＳＢなどにより、ＨＤＤ（ハードディスクドライブ）２０９などの記憶装置が接続されている。ＨＤＤ２０９はクラウドサーバ５０の全体を制御するプログラム２０９ｐを記憶している。ＨＤＤ２０９はＳＳＤ（Solid State Drive）でもよい。
【００４９】
また、Ｉ／Ｏバス２０８には、ＵＳＢなどのバスを介して、キーボード及びマウス（ポインティング・デバイスと呼ばれる）などの入力装置２１０が接続され、システム管理者などのオペレータによる入力及び指令を受け付けている。
【００５０】
なお、図示したクラウドサーバ５０のハードウェア構成は、１つの筐体に収納されていたりひとまとまりの装置として備えられていたりする必要はなく、クラウドサーバ５０が備えていることが好ましいハード的な要素を示す。また、クラウドコンピューティングに対応するため、本実施例のクラウドサーバ５０の物理的な構成は固定的でなくてもよく、負荷に応じてハード的なリソースが動的に接続・切断されることで構成されてよい。
【００５１】
＜機能について＞
図６は、電子機器３０Ａの機能をブロック状に示す機能ブロック図の一例である。電子機器３０Ａはその機能として外部記憶部２５、内部アプリ２６、記憶部２７、及び、ＯＳ２８を有している。外部記憶部２５は、可搬型記憶媒体９が電子機器３０Ａに装着されることで構築されるデータの記憶手段である。可搬型記憶媒体９はサービスエンジニアによりＳＤ Ｉ／Ｆ４１３に装着される。ＣＰＵ４０１は可搬型記憶媒体９の装着を割り込みにより検出して、この割り込みに対応付けられた割り込みプログラムを実行する。例えば、可搬型記憶媒体９のファイルを検索して所定の拡張子のファイルをアプリとして検出するプログラムである。割り込みプログラムは、アプリが見つかるとＯＳ２８のアプリ管理部１１に通知する。このようにして、ＯＳ２８が外部記憶部２５のアプリを検出できる。本実施形態では内部用設定データ入替アプリ１４が検出されるものとして説明する。なお、サービスエンジニアが操作して内部用設定データ入替アプリ１４を起動してもよい。
【００５２】
記憶部２７は、ＨＤＤ４０８、ＭＥＭ−Ｐ４０２及びＭＥＭ−Ｃ４０７の１つ以上により構築されるデータの記憶手段である。記憶部２７には、設定データを記憶する設定データ記憶部１５が構築されている。設定データは永続化領域に記憶されている。永続化領域とは電源がＯＦＦされても消去されないデータであり、保護の対象となるデータの記憶領域である。設定データの一例については後に説明する。
【００５３】
電子機器３０Ａは、内部アプリ２６として動作する内部用設定データ入替部２２、設定データ管理部Ａ（符号は２３）、設定データ管理部Ｂ（符号は２４）、及び通信部２１を有している。これら各機能部は、図４に示された各構成要素のいずれかが、ＨＤＤ４０８からＲＡＭ４０２ｂに展開されたプログラム４０８ｐ（アプリ）に従ったＣＰＵ４０１からの命令により動作することで実現される機能又は手段である。
【００５４】
設定データ管理部Ａは、設定データＡを記憶部２７から読み取ったり、設定したりする。設定データＡを読み書きするために電子機器３０Ａのメーカにより作成されたアプリにより実現される機能である。設定データ管理部Ｂについても同様であり、設定データ管理部Ｂは設定データＢを記憶部から読み取ったり、設定したりする。設定データＢを読み書きするために電子機器３０Ａのメーカにより作成されたアプリにより実現される機能である。設定データは、専用のアプリ（設定データ管理部Ａ，Ｂ）でなければ読み書きできないことで、設定データのセキュリティが高められている。設定データ管理部はＡ，Ｂの２つには限られず３つ以上でもよい。
【００５５】
内部用設定データ入替部２２は内部用設定データ入替アプリ１４により実現される機能である。内部用設定データ入替部２２は設定データ管理部Ａ，Ｂを利用して、記憶部２７の設定データ記憶部１５から設定データを取得する。詳細は図８にて説明する。
【００５６】
内部アプリ２６はＯＳ２８上で動作する。ＯＳ２８は、情報処理装置のハードウェアを機能ごとに抽象化したインタフェースをアプリに提供するプログラムである。基本ソフトウェアと呼ばれる場合がある。内部アプリ２６はＯＳ２８が提供する規則や手続きに従うことによってハードウェアを利用する。電子機器３０Ａが内部アプリ２６を実行する際は、ＯＳ２８は内部アプリ２６のそれぞれをプロセスとして実行する。ＯＳ２８はプロセスに対しメモリ空間などの資源の割り当てし、内部アプリ２６のバイナリコードをメモリ（ＲＡＭ）にロードする。また、プロセスを識別し、他のプロセスから保護する処理などを行う。また、ＯＳ２８はＣＰＵ４０１が実行すべきプロセスの順序と一度に実行する期間を決定するスケジューラと呼ばれる機能を有し、選択したプロセスにＣＰＵ４０１を占有させてそれぞれの内部アプリ２６を実行する。内部アプリ２６の切り替えをコンテキストスイッチといい、ＯＳ２８はＣＰＵ４０１のレジスタの状態を退避し、また復元する。このようにしてＯＳ２８は複数の内部アプリ２６を並行的に実行する。
【００５７】
本実施形態のＯＳ２８は、アプリ管理部１１及びアプリ通信部１２を有している。また、ＯＳ２８はアプリ管理テーブル１３を有している。アプリ管理テーブル１３は、例えばＨＤＤ４０８、ＭＥＭ−Ｐ４０２及びＭＥＭ−Ｃ４０７のいずれかに記憶されている。好ましくは暗号化されており、ＯＳ２８のみがアクセスできることが好ましい。アプリ管理テーブル１３について表２で説明する。
【００５８】
【表２】
2018106410.tif 000004
表２は、アプリ管理テーブル１３の一例を示す。アプリ管理テーブル１３には、アプリＩＤに対応付けて、電子機器３０で実行が許可されたアプリ名が登録されている。例えば、アプリＩＤが００１のアプリ名は「コピーアプリ」である。コピーアプリ、プリントアプリ、ＦＡＸアプリ、及びスキャナアプリは電子機器３０Ａのユーザが使用する可能性があるアプリであるが、工程アプリはユーザが使用する可能性がない。工程アプリは、内部用設定データ入替アプリ１４と同様に設定データ管理部Ａ，Ｂを利用して、記憶部２７に設定データを書き込むためのアプリである。工程アプリは電子機器３０Ａの出荷時に工場などで担当者により、電子機器３０Ａに設定データを設定するために使用される。すなわち、出荷時に設定データの初期値を設定するためのアプリである。
【００５９】
工程アプリがユーザサイド（出荷後）で使用される可能性は極めて少ない。つまり、工程アプリは電子機器３０Ａの出荷時に使用され出荷後は使用されない。本実施形態ではこのことを利用して、内部用設定データ入替アプリ１４に工程アプリのアプリＩＤが付与されている。このため、アプリ管理部１１は内部用設定データ入替アプリ１４を起動することができる。
【００６０】
なお、ＩＤはIdentificationの略であり識別子や識別情報という意味である。ＩＤは複数の対象から、ある特定の対象を一意的に区別するために用いられる名称、符号、文字列、数値又はこれらのうち１つ以上の組み合わせをいう。アプリＩＤ以外のＩＤについても同様である。
【００６１】
アプリ管理部１１は、アプリ管理テーブル１３に登録されているアプリＩＤのアプリを起動する。アプリ管理テーブル１３にアプリＩＤが登録されているアプリでなければ、アプリ管理部１１はアプリを起動できない。
【００６２】
アプリ通信部１２は、異なるアプリ間で通信する機能（プロセス間通信）を提供する。本実施形態では、内部用設定データ入替アプリ１４が設定データ管理部Ａ及び設定データ管理部Ｂと通信して、設定データを取得することを可能にする。
【００６３】
通信部２１は、内部用設定データ入替アプリ１４が取得した設定データＡ及び設定データＢをクラウドサーバ５０に送信する。クラウドサーバ５０のＩＰアドレス等は予め内部用設定データ入替部２２に設定されている。
【００６４】
＜プロセス間通信＞
図７は、メモリにロードされる各アプリを模式的に示す図である。メモリは、例えば図４のＲＡＭ４０２ｂである。実行中のプロセスには専用の仮想アドレス空間が割り当てられ、０番地から順番に命令がロードされる。各プロセスは物理アドレスを意識する必要がないが自プロセスの仮想アドレス範囲にしかアクセスできない。つまり、他のプロセスが記憶されている物理アドレスにアクセスすることができない。
【００６５】
そこで、情報処理装置にはプロセス間通信という仕組みが用意されている。プロセス間通信とは、複数のプロセスの間で情報の共有やメッセージの交換などを行なう機能を提供するための仕組みである。具体的にはり、共有メモリ、同期、メッセージ通信などの実装方法がある。
【００６６】
図８は、プロセス間通信を模式的に説明する図の一例である。
（１）内部用設定データ入替部２２は通信ＩＤ、送信元アプリＩＤ、宛先アプリＩＤ、コマンド、引数、及び戻り値をアプリ通信部１２に送信する。具体的にはアプリ通信部１２が提供する記載形式（データ構造体）にこれらを格納しアプリ通信部１２を呼び出す。通信ＩＤは１回のプロセス間通信を識別するための識別情報である。
（２）アプリ通信部１２は、起動しているアプリＩＤとプロセスＩＤを対応付けるテーブル３０１を保持している。通信ＩＤに送信元アプリＩＤを対応付けて保管する。そして、宛先アプリＩＤに対応付けられたプロセスＩＤのプロセスに通信ＩＤ、コマンド、引数、及び戻り値を送信する。
（３）設定データ管理部Ａは、コマンドと引数に応じて命令を実行し、命令の実行結果を戻り値に格納する。本実施形態の実行結果は設定データ記憶部１５から取得された設定データである。設定データ管理部Ａは通信ＩＤと戻り値をアプリ通信部１２に送信する。
（４）アプリ通信部１２は、通信ＩＤに対応付けられている送信元アプリＩＤを特定し、送信元アプリＩＤに対応付けられているプロセスＩＤを特定する。アプリ通信部１２は通信ＩＤと戻り値を、プロセスＩＤで特定される内部用設定データ入替部２２に送信する。
【００６７】
内部用設定データ入替部２２は通信ＩＤにより戻り値がどの設定データであるかを特定し、要求した設定データを取得できる。なお、図示したプロセス間通信の方法は一例であって、どのような実現方法で実現されてもよい。
【００６８】
外部から内部用設定データ入替アプリ１４が追加される前に電子機器３０には何らかの内部アプリ２６がインストールされている場合が多く、内部用設定データ入替アプリ１４が電子機器３０Ａの機能を利用するためにはこれらの機能が必要となる場合が多い。本実施例ではプロセス間通信を利用することで、内部用設定データ入替アプリ１４が設定データを取得することができる。
【００６９】
＜内部用設定データ入替アプリ１４が有するアプリＩＤ＞
アプリ管理部１１が内部用設定データ入替アプリ１４を実行するためには、アプリ管理テーブル１３に登録されたアプリＩＤかつユーザサイドで使用されないアプリＩＤを内部用設定データ入替アプリ１４が有している必要がある。本実施形態では上記のように工程アプリのアプリＩＤ（００５）を内部用設定データ入替アプリ１４が有するものとする。
【００７０】
図９は、内部用設定データ入替アプリ１４が有するアプリＩＤを示す図の一例である。図９では、内部用設定データ入替アプリ１４のファイル名「００５＋内部用設定データ入替アプリ」に工程アプリのアプリＩＤ（００５）が含まれている。アプリ管理部１１はファイル名の記載形式に従って（例えば、先頭から決まった文字数のアプリＩＤを取得）、アプリＩＤを取り出し、アプリ管理テーブル１３に登録されているか否かを判断する。
【００７１】
なお、内部用設定データ入替アプリ１４がメタデータとしてアプリＩＤを保持していてもよいし、内部用設定データ入替アプリ１４の特定の場所に記述されていてもよい。
【００７２】
＜設定データ＞
設定データ管理部Ａ、Ｂが取得する設定データについて説明する。
(i)ＳＤＫアプリ用ＩＦ３２で取得できる設定データ
アドレス帳：ユーザ名、電話番号、電子メールアドレスなどが対応付けられた情報。
【００７３】
ヘッダー・フッターの印刷位置：ページ番号、日付等の印刷位置
(ii)ＳＤＫアプリ用ＩＦ３２で取得できない設定データ
省エネの設定値：省エネモードへの移行時間
デバックログの設定値：電子機器３０Ａに生じたイベントが記録された電子機器３０Ａをデバッグするためのログ
給紙トレーの順序の設定値：用紙を優先的に使用する給紙トレーの順番を指定する設定値
従って、従来はカスタマーエンジニアＣＥが手作業で取り出していた(ii)のＳＤＫアプリ用ＩＦ３２で取得できない設定データを内部用設定データ入替アプリ１４により、従来よりも少ない作業工程で取得できるようになる。
【００７４】
＜内部用設定データ入替アプリ１４の起動時の手順＞
図１０は、アプリ管理部１１が内部用設定データ入替アプリ１４を起動する手順を示すシーケンス図の一例である。
【００７５】
S1：可搬型記憶媒体９がＳＤ Ｉ／Ｆ４１３に装着されると、ＯＳ２８が可搬型記憶媒体９をマウントする。マウントとは、電子機器３０Ａ（コンピュータ）に接続した周辺機器や外部記憶装置等をＯＳ２８が認識し、利用可能な状態にすること（例えば、重複しないドライブレターを割り当てたり、ディレクトリを割り当てたりする）をいう。 
S2：上記のように割り込みにより、アプリ管理部１１はマウントした可搬型記憶媒体９に記憶されている内部用設定データ入替アプリ１４のオブジェクトを読み取る。
【００７６】
S3：アプリ管理部１１は、内部用設定データ入替アプリ１４の例えばファイル名から取得したアプリＩＤがアプリ管理テーブル１３に登録されているか否かを判断する。ここでは登録されているものとして説明する。
【００７７】
S4：アプリ管理部１１は、読み取ったオブジェクトを記憶部２７の指定ディレクトリに展開する。すなわち、アプリごとに決まったディレクトリにオブジェクトをコピーする。こうすることで読み出し等が高速になる。また、可搬型記憶媒体９は取り外されるおそれがあるが、コピーによりそのおそれがなくなる
S5：アプリ管理部１１は展開した内部用設定データ入替アプリ１４のオブジェクトを記憶部２７から読み取る。具体的にはメモリにロードする。
【００７８】
S6：アプリ管理部１１は内部用設定データ入替アプリ１４を実行する。すなわち、内部用設定データ入替アプリ１４をプロセスとして実行しリソースを割り当てる。これにより、内部用設定データ入替部２２が実現され、電子機器３０Ａ内で動作を開始する。
【００７９】
＜設定データの取得と送信＞
図１１は、内部用設定データ入替部２２が設定データを取得してクラウドサーバ５０に送信する手順を示すシーケンス図の一例である。なお、図１１の説明では簡略化のためアプリ通信部１２は省略した。
【００８０】
S1：カスタマーエンジニアＣＥは設定データを取得する操作を電子機器３０Ａに行う。内部用設定データ入替部２２が操作パネル４１１に表示するアプリ画面を使って設定データを要求する。
【００８１】
S2：内部用設定データ入替部２２は設定データ管理部Ａに設定データの取得を要求する。内部用設定データ入替部２２では設定データごとに設定データを管理するアプリ（設定データ管理部Ａ、Ｂ）が対応付けられているため、カスタマーエンジニアＣＥは設定データ管理部Ａ、Ｂを意識する必要はない。
【００８２】
S3：設定データ管理部Ａは記憶部２７の設定データ記憶部１５から設定データＡを読み出す。
【００８３】
S4：設定データ管理部Ａは読み出した設定データＡを内部用設定データ入替部２２に送出する。
【００８４】
S5：次に、内部用設定データ入替部２２は設定データ管理部Ｂに設定データの取得を要求する。
【００８５】
S6：設定データ管理部Ｂは記憶部２７の設定データ記憶部１５から設定データＢを読み出す。
【００８６】
S7：設定データ管理部Ｂは読み出した設定データＢを内部用設定データ入替部２２に送出する。
【００８７】
S8：内部用設定データ入替部２２は通信部２１に設定データＡ及び設定データＢを送出する。
【００８８】
S9：通信部２１は、予め設定されているクラウドサーバ５０のＩＰアドレスを宛先に設定データＡ及び設定データＢを送信する。
【００８９】
S10：クラウドサーバ５０は送信結果を通信部２１に送信する。
【００９０】
S11：通信部２１は送信結果を内部用設定データ入替部２２に送出する。
【００９１】
＜画面例＞
図１２は、内部用設定データ入替アプリ１４が操作パネルに表示するアプリ画面の例とアプリ画面の遷移例を示す。
【００９２】
図１２（ａ）は内部用設定データ入替アプリ１４が起動した際に表示するメニュー画面４８１の一例である。メニュー画面４８１は、クラウドボタン４８２、ＳＤボタン４８３、フォルダボタン４８４、及びＯＫボタン４８５を有している。クラウドボタン４８２はクラウドサーバ５０へ設定データを電子機器３０Ａがエクスポートするか、又は、クラウドサーバ５０から設定データを電子機器３０Ａがインポートするためのボタンである。ＳＤボタン４８３は可搬型記憶媒体９へ設定データを電子機器３０Ａがエクスポートするか、又は、可搬型記憶媒体９から設定データを電子機器３０Ａがインポートするためのボタンである。フォルダボタン４８４は、フォルダへ設定データを電子機器３０Ａがエクスポートするか、又は、フォルダから設定データを電子機器３０Ａがインポートするためのボタンである。カスタマーエンジニアＣＥはクラウドボタン４８２、ＳＤボタン４８３及びフォルダボタン４８４の１つを選択してＯＫボタン４８５を押下する。図１２（ａ）ではクラウドボタン４８２が選択されている。電子機器３０Ａの内部用設定データ入替部２２はこれらの操作又は入力を受け付ける。
【００９３】
図１２（ｂ）はクラウドログイン画面４９１の一例である。クラウドログイン画面４９１は、ユーザＩＤ入力欄４９２、パスワード入力欄４９３、パスワード再発行ボタン４９４、及びログインボタン４９５を有する。カスタマーエンジニアＣＥはユーザＩＤ入力欄４９２にユーザＩＤを入力し、パスワード入力欄４９３にパスワードを入力しログインボタン４９５を押下する。パスワード再発行ボタン４９４は、パスワードの再発行を電子機器３０Ａがクラウドサーバ５０に要求するためのボタンである。電子機器３０Ａはこれらの操作又は入力を受け付ける。
【００９４】
図１２（ｃ）はクラウドメニュー画面４２１の一例を示す。クラウドメニュー画面４２１は、カスタマーエンジニアＣＥがログインに成功すると表示されるアプリ画面である。クラウドメニュー画面４２１はインポートボタン４２２とエクスポートボタン４２３を有する。設定データをインポートする場合、カスタマーエンジニアＣＥはインポートボタン４２２を押下し、設定データをエクスポートする場合、カスタマーエンジニアＣＥはエクスポートボタン４２３を押下する。ここではエクスポートボタン４２３が押下されたものとして説明する。電子機器３０Ａの内部用設定データ入替部２２はこれらの操作又は入力を受け付ける。
【００９５】
図１２（ｄ）はエクスポート画面４３１の一例を示す。エクスポート画面４３１は機器設定ボタン４３２、アドレス帳ボタン４３３、クラウドメニューボタン４３４、及び、ＯＫボタン４３５を有する。機器設定ボタン４３２とアドレス帳ボタン４３３は、内部用設定データ入替アプリ１４が取得可能な設定データを示す。カスタマーエンジニアＣＥはアドレス帳以外の設定データをエクスポートする場合は機器設定ボタン４３２を押下し、設定データのうちアドレス帳だけをエクスポートする場合はアドレス帳ボタン４３３を押下する。クラウドメニューボタン４３４は、クラウドメニュー画面４２１に戻るためのボタンである。ここでは機器設定ボタン４３２とアドレス帳ボタン４３３が選択されＯＫボタン４３５が押下されたものとする。ＯＫボタン４３５の押下によりエクスポートがスタートする。電子機器３０Ａの内部用設定データ入替部２２はこれらの操作又は入力を受け付ける。
【００９６】
図１２（ｅ）はエクスポート進捗画面４４１の一例である。エクスポート進捗画面４４１は、設定データのエクスポートの進捗状況４４２とアドレス帳のエクスポートの進捗状況４４３を表示する。例えば、エクスポートされる全体の設定データに対し、エクスポートが完了した設定データの割合が表示される。
【００９７】
図１２（ｆ）はエクスポート完了画面４５１の一例である。エクスポート完了画面４５１はエクスポートが完了したことをカスタマーエンジニアＣＥに報知するための画面である。内部用設定データ入替部２２は、例えば「エクスポート完了しました。○○カードを外して主電源のＯＦＦ／ＯＮを実施して下さい。」というメッセージ４５２を表示する。
【００９８】
＜まとめ＞
以上説明したように、本実施例の電子機器３０Ａは内部アプリとして動作する内部用設定データ入替アプリ１４を実行し、内部用設定データ入替アプリ１４はプロセス間通信により設定データＡ、Ｂを取得するので、内部アプリ２６が取得できる設定データを全て取得することができる。また、電子機器３０ＡはアプリＩＤが登録されている内部アプリ２６しか実行できないが、内部用設定データ入替アプリ１４に工程アプリのアプリＩＤが付与されることで、電子機器３０Ａが内部用設定データ入替アプリ１４を実行できる。
【実施例２】
【００９９】
実施例１によれば、電子機器３０Ａの設定データをクラウドサーバ５０にエクスポートすることができた。電子機器３０Ｂはこの設定データをインポートすることで、設定データを引っ越すことができる。
【０１００】
しかしながら、電子機器３０Ａの設定データには依存関係を持つ項目が多くある。例えば、ＦＡＸ送信の際に相手先に関する設定を行う項目（特定相手先設定）がある。特定相手先設定の相手先の名称をカスタマーエンジニアが登録する際、特定相手先設定に情報を「登録する」と設定されていなければ整合性がとれない。このように一方の項目と他方の項目の値（設定値）に齟齬が生じうる関係にあることを依存関係があるという。
【０１０１】
また、インポートの前にカスタマーエンジニアＣＥが設定データの一部の項目を変更したい場合がある。カスタマーエンジニアＣＥは変更する項目と依存関係が項目を変更するため、設定データの全てをインポートして依存関係を考慮して変更する項目と依存関係が項目を変更する必要がある。追加の変更が生じるたびに設定データの全てをインポートすると時間がかかってしまい、顧客にも迷惑をかけるおそれがある。
【０１０２】
そこで、本実施例の電子機器３０Ａは、カスタマーエンジニアＣＥが変更したい設定データの項目と値をクラウドサーバ５０に送信すると、クラウドサーバ５０が変更要求された項目と依存関係にある項目を特定して、適切なインポートデータを生成する。これにより、変更したい項目と依存関係のある他の項目があっても、適切なインポートデータを生成できるため、一部の項目の変更に際しエクスポートされた設定データの全てをインポートする必要がなくインポートに要する時間を短縮できる。
【０１０３】
以下、本発明を実施する形態の一例として電子機器及び電子機器が行うデータ処理方法について図面を参照しながら説明する。
【０１０４】
＜クラウドサーバ５０の概略的動作＞
図１３は、本実施例のクラウドサーバ５０の概略的な動作を説明する図の一例である。クラウドサーバ５０は後述する設定データ管理テーブル７１を管理している。設定データ管理テーブル７１には、設定データの項目ごとに有効条件が設定されている。この有効条件が依存関係を示す。有効条件に項目ＩＤが設定されている項目は、この項目ＩＤの項目が有効条件で示す値でなければならない。図１３で項目ＩＤが「００１」の項目の有効条件は「０００：１」となっている。「０００」は項目ＩＤ、「１」はこの項目の適正値である。つまり、項目ＩＤが「０００」の項目の値が「１」でなければならないことを示している。クラウドサーバ５０は設定データ管理テーブル７１を用いて以下のように処理する。
（１）ユーザＰＣ６０はクラウドサーバ５０に項目ＩＤとその値を含む設定変更要求を送信する。ここでは項目ＩＤが「００１」の項目の設定変更要求が送信されたものとする。
（２）クラウドサーバ５０は、項目ＩＤが「００１」の項目の有効条件を参照する。すると、有効条件は「０００：１」であることが分かる。
（３）クラウドサーバ５０は項目ＩＤが「０００」の項目の値を「１」とするインポートデータを生成する。
【０１０５】
つまり、ユーザが設定変更を要求した項目に有効条件が設定されている場合、クラウドサーバ５０は、設定変更が要求された項目だけでなく、有効条件が指定する項目の設定データを作成しこれらをインポートデータとする。このように有効条件を使って、設定変更の対象でない項目のインポートデータを生成するので、クラウドサーバ５０は、設定変更の対象の項目と依存関係がある他の項目との整合性を取ることができる。
【０１０６】
＜システム構成例＞
図１４は、本実施例のデータ設定システム１００の概略構成図の一例を示す。本実施例において、図３において同一の符号を付した構成要素は同様の機能を果たすので、主に本実施例の主要な構成要素についてのみ説明する場合がある。
【０１０７】
図１４ではネットワークＮにユーザＰＣ６０が接続されている。ユーザＰＣ６０は主にカスタマーエンジニアＣＥが操作する端末装置である。具体的には、例えばＰＣ（Personal Computer）、スマートフォン、タブレット端末、ＰＤＡなどである。この他、情報処理装置としての機能を有する複合機、プロジェクタ、テレビ会議端末などでもよい。
【０１０８】
その他の構成は図３と同様であるが、本実施例では電子機器３０Ｂがインポートデータのインポート先となる。すなわち、実施例１で電子機器３０Ａがエクスポートした設定データ（エクスポートデータ）をクラウドサーバ５０が保持している。カスタマーエンジニアＣＥはユーザＰＣ６０を操作して設定データの任意の項目を変更する場合がある。この時、エクスポートデータをダウンロードする必要はない。ユーザＰＣ６０は設定変更要求をクラウドサーバ５０に送信する。これによりクラウドサーバ５０はエクスポートデータの一部を変更してインポートデータを生成する。
【０１０９】
また、実施例１にて説明した内部用設定データ入替アプリ１４と同等の機能を電子機器３０Ｂが予め有している。これは、電子機器３０Ｂは引っ越し先の電子機器なので、設定データを取得したり書き込んだりする内部アプリを出荷時に搭載できるためである。ただし、電子機器３０Ｂがすでに出荷済の古い機種の場合もあり、その場合は、電子機器３０Ｂが内部用設定データ入替アプリ１４を実行してインポートデータを電子機器３０Ｂにインポートする。従って、旧機種の電子機器３０Ａから新機種の電子機器３０Ｂに設定データが引っ越される場合は、旧機種の電子機器３０Ａが内部用設定データ入替アプリ１４を実行し新機種の電子機器３０Ｂが内部アプリを実行する。旧機種の電子機器３０Ａから旧機種の電子機器３０Ｂに設定データが引っ越される場合は、旧機種の電子機器３０Ａが内部用設定データ入替アプリ１４を実行し旧機種の電子機器３０Ｂも内部用設定データ入替アプリ１４を実行する。
【０１１０】
＜クラウドサーバの機能＞
図１５は、ユーザＰＣ６０、クラウドサーバ５０及び電子機器３０Ｂの機能をブロック状に示す機能ブロック図の一例である。なお、ユーザＰＣ６０のハードウェア構成はクラウドサーバ５０と同様であるか、又は異なっていても本実施例の説明上、支障がないものとする。
【０１１１】
<<電子機器>>
電子機器３０Ｂは、データ送受信部４１、インポート実行部４２、及び設定データ記憶部１５を有する。このうち設定データ記憶部１５は実施例１の図６と同じものである。これら各機能部は、図４に示された各構成要素のいずれかが、ＨＤＤ４０８からＲＡＭ４０２ｂに展開されたプログラム４０８ｐ（アプリ）に従ったＣＰＵ４０１からの命令により動作することで実現される機能又は手段である。
【０１１２】
データ送受信部４１は、主に、クラウドサーバ５０からインポートデータを受信する。データ送受信部４１は、設定データをクラウドサーバ５０に送信する（エクスポート）機能を有していてよい。
【０１１３】
インポート実行部４２は、インポートデータとして受信された設定データの値を、クラウドサーバ５０からインポートする。インポート実行部４２は、実施例１の内部用設定データ入替アプリ１４と同等の機能の内部アプリにより実現される機能である。インポート実行部４２は、項目ＩＤと値を取得すると、設定データ管理部Ａ，Ｂを呼び出して項目ＩＤで特定される設定データに値を設定させる。
【０１１４】
<<ユーザＰＣ６０>>
ユーザＰＣ６０は送受信部６１、操作受付部６２及び画面表示部６３を有している。ユーザＰＣ６０が有するこれらの機能は、図５に示したＣＰＵ２０１がＨＤＤ２０９に記憶されたプログラム２０９ｐを実行することで実現される機能又は手段である。ユーザＰＣ６０が実行するプログラム２０９ｐにはクラウドサーバ５０から送信される画面情報が含まれる。画面情報は、ＨＴＭＬ、スクリプト言語、及びＣＳＳ（cascading style sheet）で記述されたプログラムであり、主にＨＴＭＬによりＷｅｂページの構造が特定され、スクリプト言語によりＷｅｂページの動作が規定され、ＣＳＳによりＷｅｂページのスタイルが特定される。
【０１１５】
ユーザＰＣ６０が画面情報を実行することでＷｅｂアプリが実現される。Ｗｅｂアプリの定義は定かでないが、例えば、クラウドサーバ５０がユーザの要求に応じてＷｅｂページを動的に構築することを指したり、スクリプト言語でＷｅｂページが動作することを指したりする。
【０１１６】
送受信部６１は、図５のＣＰＵ２０１がプログラム２０９ｐを実行してネットワーク・ドライバ２０５を制御すること等により実現され、クラウドサーバ５０と各種のデータを送受信する。
【０１１７】
操作受付部６２は、図５のＣＰＵ２０１がプログラム２０９ｐを実行して入力装置２１０を制御すること等により実現され、ユーザＰＣ６０に対する各種の操作を受け付ける。
【０１１８】
画面表示部６３は、図５のＣＰＵ２０１がプログラム２０９ｐを実行してグラフィックス・ドライバ２０４を制御すること等により実現され、ＬＣＤ２０６に各種の画面を表示する。
【０１１９】
<<クラウドサーバ５０>>
クラウドサーバ５０はユーザＰＣ６０からのリクエスト処理を受け付けたり、インポートする電子機器３０Ｂに適合するように設定データの編集を受け付けたりする。
【０１２０】
クラウドサーバ５０は、データ入出力部５１、機器設定データ管理部５２、インポートデータ生成部５３、設定データ管理テーブル保管部５７、インポートデータ保管部５６、及び、エクスポートデータ保管部５５を有する。クラウドサーバ５０が有するこれらの機能は、図５に示したＣＰＵ２０１がＨＤＤ２０９に記憶されたプログラム２０９ｐを実行することで実現される機能又は手段である。
【０１２１】
エクスポートデータ保管部５５は、図５のＨＤＤ２０９等に構築されるデータベース又は記憶手段であり、電子機器３０を識別する機器ＩＤに対応付けてエクスポートデータを保管する。
【０１２２】
インポートデータ保管部５６は、図５のＨＤＤ２０９等に構築されるデータベース又は記憶手段であり、電子機器３０Ｂにインポートされるインポートデータを機器ＩＤに対応付けて保管する。初期状態のインポートデータはエクスポートデータがコピーされることで生成され、インポートデータ生成部５３により項目ごとに変更される。
【０１２３】
設定データ管理テーブル保管部５７は、図５のＨＤＤ２０９等に構築されるデータベース又は記憶手段であり、表３に示す設定データ管理テーブル７１を記憶する。
【０１２４】
機器設定データ管理部５２は、図５のＣＰＵ２０１がプログラム２０９ｐを実行すること等により実現され、ユーザＰＣ６０に対しＷｅｂサーバとして機能する。ユーザＰＣ６０から設定変更要求を受信すると、インポートデータ生成部５３にインポートデータの生成を要求する。
【０１２５】
データ入出力部５１は、図５のＣＰＵ２０１がプログラム２０９ｐを実行してネットワーク・ドライバ２０５を制御すること等により実現され、電子機器３０Ａからエクスポートデータを受信し、また、電子機器３０Ｂにインポートデータを送信する。
【０１２６】
インポートデータ生成部５３は、図５のＣＰＵ２０１がプログラム２０９ｐを実行すること等により実現される。まず、インポートデータ生成部５３は判断部５４を有する。判断部５４は、設定データ管理テーブル７１を参照して、変更要求された項目が変更可能か否か、またその項目と依存関係の項目があるか否かを判断する。インポートデータ生成部５３は判断部５４の判断結果に応じて、インポートデータを生成する。依存関係がない場合は、設定変更要求の項目のインポートデータを生成し、依存関係がある場合は、更に、有効条件に従ってインポートデータを生成する。インポートデータ生成部５３は生成したインポートデータをインポートデータ保管部５６に保管する。また、インポートデータを生成した際は、項目ＩＤを取得して機器設定データ管理部５２に通知する。この通知はユーザＰＣ６０に送信され、ユーザは依存関係にある項目が生成されたことを把握できる。
【０１２７】
＜設定データ管理テーブル＞
表３に設定データ管理テーブル７１の一例を示す。
【０１２８】
【表３】
2018106410.tif 000005
設定データ管理テーブル７１は、管理モジュール、分類、項目名、項目ＩＤ、値の型、有効条件、最大値、最小値、値、選択肢の各項目を有する。なお、設定データ管理テーブル７１は、機種ごとに用意されている。
・管理モジュールは、電子機器３０において項目を管理する設定データ管理部である。
・分類は、項目がどのような機能で使用されるかを示す。
・項目名は、ユーザが項目の内容を把握するための項目の名称である。
・項目ＩＤは項目を特定するための情報である。
・値の型は、項目のデータ種類（数値、文字、記号など）を示す。
・有効条件は、項目に依存関係がある場合の依存内容を示す（詳細は図１３にて説明した）。
・最大値と最小値は項目の値が取り得る上限値と下限値である。
・値は項目が取り得る値である（最大値、最小値で規定されない場合）。
・選択肢は値が対応する内容である。
【０１２９】
クラウドサーバ５０は、ユーザＰＣ６０から送信された設定変更要求が適切かどうかを、設定データ管理テーブル７１の値の型、最大値、最小値、及び値と比較して判断できる。また、有効条件により依存関係があるかどうか、及び、依存関係がある項目の値（インポートデータ）を生成できる。
【０１３０】
＜ユーザＰＣ６０の画面例＞
図１６は、ユーザＰＣ６０のＬＣＤ２０６に表示される設定画面４６０の一例を示す。カスタマーエンジニアＣＥは、エクスポートデータの一部を変更したい場合、設定画面４６０を表示させる。この設定画面４６０はクラウドサーバ５０が送信する画面情報により生成される。
【０１３１】
設定画面４６０は、モデル名選択欄４６１、移行先欄４６２、及びカスタマー名欄４６３を有する。モデル名選択欄４６１は、インポートデータをインポートする電子機器３０Ｂのモデル名をカスタマーエンジニアＣＥが選択するための欄である。移行先欄４６２は電子機器３０Ｂが存在する国や地域である。カスタマー名欄４６３は電子機器３０Ｂの顧客名をカスタマーエンジニアＣＥが入力するための欄である。
【０１３２】
図１７は、設定データ変更画面４７０の一例を示す。設定データ変更画面４７０には、いくつかのタブ４７１、各タブごとに設定可能な項目４７２が表示される。設定データ変更画面４７０は、カスタマーエンジニアＣＥにより選択された機種で設定可能な値を表示されるので、カスタマーエンジニアＣＥは変更したい項目の値を変更する。すなわち、エクスポートデータをユーザＰＣ６０がダウンロードする必要がない。カスタマーエンジニアＣＥが送信ボタン等を押下すると設定変更要求がクラウドサーバ５０に送信される。
【０１３３】
＜クラウドサーバの動作手順＞
図１８は、クラウドサーバ５０が変更を要求されている項目に依存関係のある項目があるかどうかを判断し、インポートデータを生成する手順を示すフローチャート図の一例である。図１８の処理は、クラウドサーバ５０が設定変更要求を受信するとスタートする。
【０１３４】
機器設定データ管理部５２は設定変更要求を受信し、インポートデータ生成部５３にインポートデータ生成要求を送出する（Ｓ１０）。
【０１３５】
インポートデータ生成部５３の判断部５４は、設定変更要求に含まれる全ての項目について、変更予定の機種で設定できる項目であるか、設定できる値であるかなど、適正であるかを判断する（Ｓ２０）。変更予定の機種で設定できる項目であるかどうかは、変更予定の機種のために用意されている設定データ管理テーブル７１を参照し、設定変更要求に含まれる項目ＩＤがあるかどうかにより判断できる。設定できる値であるかどうかは、変更予定の機種のために用意されている設定データ管理テーブル７１の値の型、最大値、最小値、及び値と、設定変更要求に含まれる各項目の値を比較することで判断できる。すなわち、設定変更要求の項目の値の型が設定データ管理テーブル７１に設定されている値の型と一致するか、設定変更要求の項目の値が設定データ管理テーブル７１の最大値と最小値の範囲に入っているか、設定変更要求の項目の値が設定データ管理テーブル７１の値と一致するか、を判断する。
【０１３６】
ステップＳ２０の判断がＮｏの場合、インポートデータ生成部５３はエラー情報を生成して、インポートデータの生成を終了する（Ｓ３０）。エラー情報は例えば、項目ＩＤとエラー要因であり、ユーザＰＣ６０に送信される。
【０１３７】
ステップＳ２０の判断がＹｅｓの場合、判断部５４は設定変更要求の項目に有効条件が設定されているか否かを判断する（Ｓ４０）。
【０１３８】
ステップＳ４０の判断がＹｅｓの場合、インポートデータ生成部５３は、設定変更要求に含まれる項目と値のインポートデータに加え、有効条件に設定されている項目と有効条件に設定されている適正値のインポートデータを生成する（Ｓ５０）。
【０１３９】
ステップＳ４０の判断がＮｏの場合、インポートデータ生成部５３は、設定変更要求に含まれる項目と値のインポートデータのみを生成する（Ｓ６０）。
【０１４０】
＜インポートデータの生成例＞
有効条件に基づいたインポートデータの生成例を説明する。例えば、表３の設定データ管理テーブル７１では、項目ＩＤが「００５」の項目である「初期設定（FAX）＞受信設定＞特定相手先１：相手先別受信文書印刷部数：部数」の有効条件は、「００４：２」となっている。カスタマーエンジニアがこの項目を変更するには、項目ＩＤが「００４」（初期設定（FAX）＞受信設定＞特定相手先１：相手先別受信文書印刷部数：設定）の設定値が２（部数指定する）になっていなければ、整合性がとれない。このため、インポートデータ生成部５３は、項目ＩＤが「００５」の項目の設定変更要求に対し、項目ＩＤが「００５」の設定変更要求で指定された値のインポートデータと、項目ＩＤが「００４」で値が「２」のインポートデータもセットで（組で）生成する。
【０１４１】
こうすることで、カスタマーエンジニアＣＥが設定変更要求した一部の項目に対し、インポートデータの依存関係を維持できる。
【０１４２】
＜設定変更要求の設定データと生成されるインポートデータ＞
図１９，図２０を用いて、設定変更要求に含まれる項目と生成されるインポートデータについて説明する。図１９は、設定変更要求について説明する図である。図１９では、項目ＩＤが「００１」で値が「２４」、項目ＩＤが「００５」で値が「２」の設定変更要求が示されている。
【０１４３】
項目ＩＤが「００１」で値が「２４」の設定変更要求について説明する。表３の設定データ管理テーブル７１を参照すると、項目ＩＤが「００１」の有効条件は「０００：１」である。このため、インポートデータ生成部５３は、項目ＩＤが「００１」で値が「２４」のインポートデータと、項目ＩＤが「０００」で値が「１」のインポートデータを生成する。
【０１４４】
図２０はインポートデータ生成部５３が生成したインポートデータについて説明する図である。図２０の１行目と行目に、項目ＩＤが「００１」「０００」の２つのインポートデータが作成されている。
【０１４５】
図１９に戻って、項目ＩＤが「００５」で値が「２」の設定変更要求について説明する。表３の設定データ管理テーブル７１を参照すると、項目ＩＤが「００５」の有効条件は「００４：２」である。このため、インポートデータ生成部５３は、項目ＩＤが「００５」で値が「２」のインポートデータと、項目ＩＤが「００４」で値が「２」のインポートデータを生成する。
【０１４６】
図２０の３行目と４行目に示すように、項目ＩＤが「００４」「００５」の２つのインポートデータが作成されている。
【０１４７】
＜まとめ＞
以上のように、本実施例のデータ設定システム１００は、ユーザが設定変更を要求した項目に有効条件が設定されている場合、有効条件が指示する別の項目の設定データを作成しこれをインポートデータとするので、設定変更の対象の項目に依存関係があっても他の項目との整合性を取ることができる。また、一部の項目の変更に対しエクスポートデータの全体をユーザＰＣ６０がダウンロードする必要がないので、設定データのインポートに要する時間を低減できる。
【０１４８】
＜その他の適用例＞
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【０１４９】
例えば、本実施形態では内部用設定データ入替アプリ１４のインストールにより電子機器３０の設定データのエクスポートとインポートについて説明したが、エクスポート又はインポートされるデータは設定データに限られない。電子機器３０に記憶されているデータであればエクスポート又はインポートすることが可能である。
【０１５０】
また、本実施形態では内部用設定データ入替アプリ１４は設定データ管理部Ａ，Ｂと通信しなければ設定データを取得できないが、内部用設定データ入替アプリ１４が単体で設定データを取得してもよい。
【０１５１】
また、データのエクスポート又はインポートに限らず、可搬型記憶媒体９に記憶されたアプリが電子機器３０に新たな機能を提供するためにインストールされてもよい。例えば、電子機器３０を制御するアプリが電子機器３０にインストールされている状態で、このアプリのＵＩを提供するアプリが可搬型記憶媒体９により提供される。例えばユーザ権限に応じて種々のアプリ（ＵＩ）が用意されれば、ユーザによって使用できる機能を制限できる。
【０１５２】
また、図６，１５などの構成例は、電子機器３０，クラウドサーバ５０、及びユーザＰＣ６０による処理の理解を容易にするために、主な機能に応じて分割したものである。処理単位の分割の仕方や名称によって本願発明が制限されることはない。電子機器３０，クラウドサーバ５０、及びユーザＰＣ６０の処理は、処理内容に応じて更に多くの処理単位に分割することもできる。また、１つの処理単位が更に多くの処理を含むように分割することもできる。
【０１５３】
なお、アプリ管理部１１はプログラム実行手段の一例であり、アプリ通信部１２は通信手段の一例であり、アプリ管理テーブル１３はプログラム登録情報の一例であり、設定データ管理部Ａ，Ｂは第一のプログラムの一例であり、内部用設定データ入替アプリは第二のプログラムの一例であり、ＳＤＫ用設定データ入替アプリ３３は第三のプログラムの一例であり、ＳＤＫアプリ用ＩＦ３２はインタフェースの一例である。通信部２１は設定データ送信手段の一例である。
【０１５４】
データ入出力部５１は第一の受信手段の一例であり、機器設定データ管理部５２は第二の受信手段の一例であり、判断部５４は判断手段の一例であり、インポートデータ生成部５３はデータ生成手段の一例である。設定データ管理テーブルは依存関係情報の一例であり、工程プログラムは工程アプリの一例である。
【符号の説明】
【０１５５】
９        可搬型記憶媒体
１１      アプリ管理部
１２      アプリ通信部
１３      アプリ管理テーブル
１４      内部用設定データ入替アプリ
１５      設定データ記憶部
２２      内部用設定データ入替部
３０      電子機器
３３      ＳＤＫ用設定データ入替アプリ
５０      クラウドサーバ
５３      インポートデータ生成部
５４      判断部
６０      ユーザＰＣ
７１      設定データ管理テーブル
１００    データ設定システム
【先行技術文献】
【特許文献】
【０１５６】
【特許文献１】特開2012-252457号公報
【図１】
2018106410.tif 000006
【図２】
2018106410.tif 000007
【図３】
2018106410.tif 000008
【図４】
2018106410.tif 000009
【図５】
2018106410.tif 000010
【図６】
2018106410.tif 000011
【図７】
2018106410.tif 000012
【図８】
2018106410.tif 000013
【図９】
2018106410.tif 000014
【図１０】
2018106410.tif 000015
【図１１】
2018106410.tif 000016
【図１２】
2018106410.tif 000017
【図１３】
2018106410.tif 000018
【図１４】
2018106410.tif 000019
【図１５】
2018106410.tif 000020
【図１６】
2018106410.tif 000021
【図１７】
2018106410.tif 000022
【図１８】
2018106410.tif 000023
【図１９】
2018106410.tif 000024
【図２０】
2018106410.tif 000025