(57)【特許請求の範囲】
【請求項１】
言語データアプリケーション及び画像形成装置の機能をカスタマイズするための機能アプリケーションをインストール可能なインストール手段を備え、
前記インストール手段によりインストールされた言語データアプリケーションは、複数の用語を１または複数の言語により表した言語データと、前記機能アプリケーションが前記言語データアプリケーションにアクセスするためのアクセス方法を規定する定義ファイルと、前記言語データアプリケーションへのアクセスを許容する機能アプリケーションとアクセスを拒否する機能アプリケーションを選別するための選別情報と、を含むデータ構造を備え、
前記選別情報により前記言語データアプリケーションへのアクセスが許容され、前記インストール手段によってインストールされた前記機能アプリケーションは、動作時に、前記言語データアプリケーションが有する前記定義ファイルに規定されたアクセス方法により前記言語データアプリケーションにアクセスすることによって、目的の言語による用語を前記言語データから抽出し、該抽出した用語を用いて表示画面を構成するものとなされていることを特徴とする画像形成装置。
【請求項２】
前記言語データアプリケーションと前記機能アプリケーションが直接アクセスできないように仲介するプロキシ機能を備えている請求項１に記載の画像形成装置。
【請求項３】
前記選別情報は前記定義ファイルに含まれている請求項１または２に記載の画像形成装置。
【請求項４】
前記選別情報は、言語データアプリケーションにアクセス可能な機能アプリケーションを示す識別情報である請求項１〜３のいずれかに記載の画像形成装置。
【請求項５】
前記定義ファイルに規定された、前記機能アプリケーションが前記言語データアプリケーションにアクセスするためのアクセス方法は、画像形成装置の内部モジュールの指定である請求項１〜４のいずれかに記載の画像形成装置。
【請求項６】
前記内部モジュールは、前記言語データアプリケーションがインストールされることにより有効となる請求項５に記載の画像形成装置。
【請求項７】
前記選別情報により、前記言語データアプリケーションへのアクセスを拒否する機能アプリケーションに対しては、言語データアプリケーションへのアクセスを拒否しまたはそのインストールを拒否する拒否手段を備えている請求項１〜６のいずれかに記載の画像形成装置。
【請求項８】
画像形成装置のコンピュータで実行可能なプログラムであって、
該プログラムは、
複数の用語を１または複数の言語により表した言語データと、前記画像形成装置にインストールされ画像形成装置の機能をカスタマイズするための機能アプリケーションが、言語データアプリケーションにアクセスするためのアクセス方法を規定する定義ファイルと、前記言語データアプリケーションへのアクセスを許容する機能アプリケーションとアクセスを拒否する機能アプリケーションを選別するための選別情報と、を含む前記言語データアプリケーションのプログラムであり、
前記選別情報により前記言語データアプリケーションへのアクセスが許容された前記機能アプリケーションが、前記言語データアプリケーションが有する前記定義ファイルに規定されたアクセス方法により前記言語データアプリケーションにアクセスしたときに、目的の言語による表示画面を構成するための用語を前記言語データから抽出するステップを前記コンピュータに実行させるプログラム。
【請求項９】
前記選別情報は前記定義ファイルに含まれている請求項８に記載のプログラム。
【請求項１０】
前記選別情報は、言語データアプリケーションにアクセス可能な機能アプリケーションを示す識別情報である請求項８または９に記載のプログラム。
【請求項１１】
前記定義ファイルに規定された、前記機能アプリケーションが前記言語データアプリケーションにアクセスするためのアクセス方法は、画像形成装置の内部モジュールの指定である請求項８〜１０のいずれかに記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えば、コピー機能、プリンタ機能、ファクシミリ機能、スキャン機能等の複数の機能を有する多機能デジタル画像形成装置であるＭＦＰ（Multi Function Peripheral）等の画像形成装置、及びプログラムに関する。
【背景技術】
【０００２】
上記のような画像形成装置として、サードベンダー等により開発された、画像形成装置の機能をカスタマイズするための機能アプリケーション（単に機能アプリともいう）を、ユーザーが購入してインストール可能に構成されたものが知られている。
【０００３】
この様子を図１２に示す。図１２では、Ａ社、Ｂ社、Ｃ社の各機能アプリＡ、Ｂ、Ｃをユーザーが購入して上記のＭＦＰ１０００にインストールしたときに、ＭＦＰ１０００内の記憶装置１１００の各ディレクトリＡ００００００１、Ａ００００００２、Ａ００００００３に各アプリＡ、Ｂ、Ｃがそれぞれ格納された状態が示されている。
【０００４】
ただし、それぞれの機能アプリはセキュリティ上、他の機能アプリにアクセスすることはできない構成になっている。
【０００５】
ところで、機能アプリを実行する場合、機能名や設定名等の各種の用語が表示された設定画面等の表示画面が機能アプリによって生成され、表示パネルに表示されることになる。この場合、ＭＦＰ１０００は言語の異なる各国、各地域で販売され得ることから、機能アプリも、ＭＦＰ１０００が使用される国や地域に応じて、国や地域に対応する言語で表示画面を構成する必要がある。
【０００６】
機能アプリを各言語に対応させる方法として、各機能アプリにそれぞれの言語データを保持させておくことが考えられる。しかし、この場合は次のような問題があった。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０００−２０７３９５号公報
【特許文献２】特開平１−４２７７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
すなわち、ＭＦＰ１０００の機能名や設定名は固定であることから、同じような言語データをそれぞれの機能アプリが重複して保持することになる。これでは、図１３に示すように、各機能アプリＡ〜Ｃがそれぞれ保持されているＭＦＰ１０００の記憶装置１１００のディレクトリＡ００００００１、Ａ００００００２、Ａ００００００３に、同種の言語データ１２００（図１３の例では言語ＩＤで示される用語毎に英語と日本語の文字列が表されている）がリソースデータとしてそれぞれ格納されることになり、記憶装置１２００の容量が無駄に使用され、その分容量を圧迫するという問題がある。また、機能アプリの開発ベンダーがそれぞれ重複した翻訳作業を行う必要があり、効率的でないという問題もある。
【０００９】
一方、ＭＦＰ１０００のファームウェアで言語データを保持することも考えられる。しかし、この場合は言語データの追加、変更ができず、追加するためにはファームウェアの更新が必要になるとか、ＭＦＰ１０００の機種毎のメンテナンスや、言語データの中から必要分だけマッピングするための変換データベースが必要となる、という問題がある。また、機種毎にワーディングや、用語を特定するための言語ＩＤが変わる可能性があるとか、１ヶ国語の地域に向けたＭＦＰに複数言語の言語データが保持され、ハードウェアリソースを無駄に使用することになる、といった問題もある。
【００１０】
なお、前記特許文献１には、仮名漢字変換装置への入力である仮名情報を日本語解析の語義決定処理に利用する場合に、仮名漢字変換、日本語解析を行う際に必要となる辞書の語彙データへのインデックスとして使用するメモリの使用量を削減でき、情報機器における貴重なリソースを節約可能な日本語解析装置が開示されている。
【００１１】
また、前記特許文献２には、辞書構築のための無駄なメモリ容量を必要とせず、言語表記の変換処理とその解析処理とを効果的に実行することのできる言語解析装置が提案されている。
【００１２】
しかし、これらの特許文献に記載の技術は、機能アプリを各言語に対応させるための技術ではなく、従ってこれらの特許文献によっては、各機能アプリにそれぞれの言語データを保持させておくことによる問題点や、画像形成装置のファームウェアで言語データを保持することによる問題点を解決しうるものではなかった。
【００１３】
この発明はこのような技術的背景に鑑みてなされたものであって、各機能アプリケーションにそれぞれの言語データを保持させることなく、しかも画像形成装置のファームウェアで言語データを保持することなく、機能アプリケーションを画像形成装置が使用される国や地域に応じた各言語に対応させることができる画像形成装置、及びプログラムを提供することを課題とする。
【課題を解決するための手段】
【００１４】
上記課題は、以下の手段によって解決される。
（１）言語データアプリケーション及び画像形成装置の機能をカスタマイズするための機能アプリケーションをインストール可能なインストール手段を備え、前記インストール手段によりインストールされた言語データアプリケーションは、複数の用語を１または複数の言語により表した言語データと、前記機能アプリケーションが前記言語データアプリケーションにアクセスするためのアクセス方法を規定する定義ファイルと、前記言語データアプリケーションへのアクセスを許容する機能アプリケーションとアクセスを拒否する機能アプリケーションを選別するための選別情報と、を含むデータ構造を備え、前記選別情報により前記言語データアプリケーションへのアクセスが許容され、前記インストール手段によってインストールされた前記機能アプリケーションは、動作時に、前記言語データアプリケーションが有する前記定義ファイルに規定されたアクセス方法により前記言語データアプリケーションにアクセスすることによって、目的の言語による用語を前記言語データから抽出し、該抽出した用語を用いて表示画面を構成するものとなされていることを特徴とする画像形成装置。
（２）前記言語データアプリケーションと前記機能アプリケーションが直接アクセスできないように仲介するプロキシ機能を備えている前項１に記載の画像形成装置。
（３）前記選別情報は前記定義ファイルに含まれている前項１または２に記載の画像形成装置。
（４）前記選別情報は、言語データアプリケーションにアクセス可能な機能アプリケーションを示す識別情報である前項１〜３のいずれかに記載の画像形成装置。
（５）前記定義ファイルに規定された、前記機能アプリケーションが前記言語データアプリケーションにアクセスするためのアクセス方法は、画像形成装置の内部モジュールの指定である前項１〜４のいずれかに記載の画像形成装置。
（６）前記内部モジュールは、前記言語データアプリケーションがインストールされることにより有効となる前項５に記載の画像形成装置。
（７）前記選別情報により、前記言語データアプリケーションへのアクセスを拒否する機能アプリケーションに対しては、言語データアプリケーションへのアクセスを拒否しまたはそのインストールを拒否する拒否手段を備えている前項１〜６のいずれかに記載の画像形成装置。
（８）画像形成装置のコンピュータで実行可能なプログラムであって、該プログラムは、複数の用語を１または複数の言語により表した言語データと、前記画像形成装置にインストールされ画像形成装置の機能をカスタマイズするための機能アプリケーションが、言語データアプリケーションにアクセスするためのアクセス方法を規定する定義ファイルと、前記言語データアプリケーションへのアクセスを許容する機能アプリケーションとアクセスを拒否する機能アプリケーションを選別するための選別情報と、を含む前記言語データアプリケーションのプログラムであり、前記選別情報により前記言語データアプリケーションへのアクセスが許容された前記機能アプリケーションが、前記言語データアプリケーションが有する前記定義ファイルに規定されたアクセス方法により前記言語データアプリケーションにアクセスしたときに、目的の言語による表示画面を構成するための用語を前記言語データから抽出するステップを前記コンピュータに実行させるプログラム。
（９）前記選別情報は前記定義ファイルに含まれている前項８に記載のプログラム。
（１０）前記選別情報は、言語データアプリケーションにアクセス可能な機能アプリケーションを示す識別情報である前項８または９に記載のプログラム。
（１１）前記定義ファイルに規定された、前記機能アプリケーションが前記言語データアプリケーションにアクセスするためのアクセス方法は、画像形成装置の内部モジュールの指定である前項８〜１０のいずれかに記載のプログラム。
【発明の効果】
【００１５】
前項（１）及び（８）に記載の発明によれば、選別情報により言語アプリケーションへのアクセスが許容され、画像形成装置にインストールされた機能アプリケーションは、動作時に、言語データアプリケーションが有する定義ファイルに規定されたアクセス方法により言語データアプリケーションにアクセスすることによって、目的の言語による用語を言語データから抽出し、この抽出した用語を用いて表示画面を構成する。
【００１６】
つまり、各機能アプリケーションは、言語データアプリケーションの言語データを共用して表示画面を構成するから、各機能アプリケーションにそれぞれ言語データを保持させる必要はなくなり、記憶装置が無駄に使用されてその分容量を圧迫するという問題を解消できる。また、機能アプリケーションの開発ベンダーがそれぞれ重複した翻訳作業を行う手間をなくすことができる。また、各機能アプリケーションが共通の言語データベースを使用するから、機能アプリケーション間で統一したワーディングにより表示画面を構成することができる。
【００１７】
しかも、画像形成装置のファームウェアで言語データを保持するのではなく、言語データアプリケーションに言語データが保持されるから、ファームウェアの更新を必要とすることなく、言語データの追加、変更を行うことができるとともに、画像形成装置の機種毎のメンテナンスや、言語データの中から必要分だけマッピングするための変換データベースが必要となる、という問題も解消できる。
【００１８】
さらには、機能アプリケーションが直接に言語データアプリケーションにアクセスするのではなく、言語データアプリケーションが有する定義ファイルに規定されたアクセス方法によりアクセスし、目的の言語による用語を言語データから抽出するするから、機能アプリケーションがサードパーティによって製作されたものであっても、セキュリティを確保しながら言語データの共有化を図ることができる。
【００１９】
さらにまた、言語データアプリケーションへのアクセスを許容する機能アプリケーションとアクセスを拒否する機能アプリケーションを選別するための選別情報により、アクセスを拒否する機能アプリケーションに対して、言語データアプリケーションへのアクセスを拒否しまたはそのインストールを拒否することができ、さらにセキュリティを確保することができる。
【００２０】
前項（２）に記載の発明によれば、プロキシ機能により言語データアプリケーションと機能アプリケーションが直接アクセスすることはできないから、さらにセキュリティを確保することができる。
【００２１】
前項（３）及び（９）に記載の発明によれば、選別情報は１つの定義ファイル内に含めることができる。
【００２２】
前項（４）及び（１０）に記載の発明によれば、選別情報は、言語データアプリケーションにアクセス可能な機能アプリケーションを示す識別情報であるから、言語データアプリケーションへのアクセスを許容する機能アプリケーションとアクセスを拒否する機能アプリケーションを容易に選別することができる。
【００２３】
前項（５）及び（１１）に記載の発明によれば、機能アプリケーションは画像形成装置内部のモジュールを指定することにより、言語データアプリケーションにアクセスできる。
【００２４】
前項（６）に記載の発明によれば、モジュールは言語データアプリケーションがインストールされることにより有効となるから、言語データアプリケーションがインストールされる前に、モジュールによる意図しないデータの書き換えや削除等を防止できる。
【００２５】
前項（７）に記載の発明によれば、言語データアプリケーションへのアクセスを拒否する機能アプリケーションに対しては、言語データアプリケーションへのアクセスを拒否しまたはそのインストールを拒否することができる。
【図面の簡単な説明】
【００２６】
【図１】この発明の一実施形態に係る画像形成装置を備えたネットワークシステムの構成図である。
【図２】言語データアプリケーションの内容と、言語データアプリケーションが画像形成装置にインストールされた後の画像形成装置の動作を説明するための図である。
【図３】言語データの他の例を示す図である。
【図４】言語データアプリケーション及び機能アプリケーションをサーバーから画像形成装置へダウンロードしたのち、機能アプリケーションが画面を構成するまでの動作の概要を説明するための図である。
【図５】画像形成装置にインストールされた機能アプリケーションによる用語抽出時の言語データアプリケーションとのやりとりを示すシーケンス図である。
【図６】言語データアプリケーションのインストール時の画像形成装置の動作を示すフローチャートである。
【図７】機能アプリケーションのインストール時の画像形成装置の動作を示すフローチャートである。
【図８】この発明の他の実施形態を示すもので、言語データアプリケーション及び機能アプリケーションをサーバーから画像形成装置へダウンロードして、機能アプリケーションが画面を構成するまでの動作の概要を説明するための図であり、図４に対応する図である。
【図９】コピー用の言語データとファクシミリ用の言語データの一例を示す図である。
【図１０】言語毎にまとめられた言語データの一例を示す図である。
【図１１】言語データがオプションデータとして機能毎にまとめられている場合の言語データを、言語データアプリケーションのプログラムに基づいて画像形成装置がインストールする場合の動作を示すフローチャートである。
【図１２】従来の画像形成装置において、機能アプリケーションがインストールされた状態を説明するための図である。
【図１３】従来の画像形成装置における問題点を説明するための図である。
【発明を実施するための形態】
【００２７】
以下、この発明の実施形態を図面に基づいて説明する。
【００２８】
図１はこの発明の一実施形態に係る画像形成装置を備えたネットワークシステムの構成図である。このネットワークシステムは、画像形成装置１とサーバー２がインターネット等のネットワーク３に接続されている。
【００２９】
この実施形態では、画像形成装置１として、コピー機能、プリンタ機能、スキャン機能、ファクシミリ機能等を備えた前述のＭＦＰが用いられている。以下、画像形成装置をＭＦＰともいう。
【００３０】
ＭＦＰ１は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、記憶装置１０４、システム制御部１０５、入力装置管理部１０６、出力装置管理部１０７、操作パネル１０８、ネットワークインターフェース（ネットワークＩ／Ｆ）１０９、外部アプリケーション管理部１１０、外部アプリケーション実行部１１１、言語データアクセス管理部１１２、ウェブ（Web）サーバー部１１３等を備え、これらが互いにシステムバスを介して接続されている。
【００３１】
ＣＰＵ１０１は、ＲＯＭ１０２等に保存されているプログラムを実行することにより、ＭＦＰ１の全体を統括的に制御するほか、後述する言語データアプリケーションや機能アプリケーションを実行する。
【００３２】
ＲＯＭ１０２は、ＣＰＵ１０１が実行するプログラムやその他のデータを格納する。
【００３３】
ＲＡＭ１０３は、ＣＰＵ１０１がプログラムを実行する際の作業領域となるものであり、プログラムやプログラムを実行する際のデータ等を一時的に保存する。
【００３４】
記憶装置１０４はハードディスク（ＨＤＤ）からなり、アプリケーションや各種データ等を保存する。
【００３５】
システム制御部１０５は、前述したＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３等を主要部として構成され、ＭＦＰ１のコピー機能、プリンタ機能、スキャン機能等のシステム全体を制御する。
【００３６】
入力装置管理部１０６は、スキャナ等を備え、プラテンガラス上にセットされた原稿を走査することによって読み取り、読み取った原稿を画像データに変換する。
【００３７】
出力装置管理部１０７はプリンタ部等を備え、生成された複写画像を用紙上に形成する。
【００３８】
操作パネル１０８は、ユーザーがＭＦＰ１へジョブ等の指示や各種設定を行う際に用いられるものであり、タッチパネル付きの表示部１０８ａ等を備えている。
【００３９】
ネットワークインターフェース１０９は、サーバー２との間でデータの送受信を行う通信手段として機能する。
【００４０】
外部アプリケーション管理部１１０は、アプリケーションのインストール、アンインストール等の実行、インストール済みアプリケーションの管理等を行う。また、後述するように、言語データアプリケーションにアクセス可能な機能アプリケーションのみをインストールする制御を行う。
【００４１】
外部アプリケーション実行部１１１は、アプリケーションを実行するためのランタイムや画面表示のためのモジュール群からなり、ウェブブラウザ１１１ａも含まれる。
【００４２】
言語データアクセス管理部１１２は、機能アプリケーションと言語データアプリケーションを仲介するためのモジュール群であり、後述するＤＬＬ等が含まれる。また、後述するように、言語データアプリケーションにアクセス可能な機能アプリケーションに対して、言語データアプリケーションへのアクセスを許可する制御を行う。
【００４３】
ウェブサーバー部１１３は、ＭＦＰ１にウェブサーバーとしての機能を付与するものである。
【００４４】
なお、以下の説明において「アプリケーション」を単に「アプリ」ともいう。
【００４５】
機能アプリはＭＦＰ１の機能、例えば印刷機能やスキャン機能等をカスタマイズするためのアプリであり、ＭＦＰ１の製造販売者の他に、製造販売者以外のサードパーティーによっても提供される。この実施形態では、機能アプリをインストールしたいユーザーは、サーバー２から機能アプリを購入してダウンロードし、ＭＦＰ１にインストールできるようになっている。
【００４６】
言語データアプリは、ＭＦＰ１が異なる国や地域で使用されるときに、各機能アプリが国や地域に対応する言語データベースを保持することなく各機能アプリで共有できるように、１または複数の言語による複数の用語のそれぞれについての言語データを保持するアプリであり、機能アプリが当該言語データアプリにアクセスするためのアクセス方法を規定し、さらに指定した言語による指定した用語を言語データから抽出するための関数を規定する定義ファイルを有している。言語データアプリについては後述する。
【００４７】
言語データアプリは、この実施形態では、ユーザーの指示に基づいてＭＦＰ１がサーバー２からダウンロードしてインストールされるようになっている。
【００４８】
サーバー２はパーソナルコンピュータ等によって構成され、機能的には、ウェブ（Web）サーバー部２１と、アプリ／言語データ管理部２２と、ＣＧＩ処理部２３等を備えている。
【００４９】
ウェブサーバー部２１は、ＭＦＰ１のウェブブラウザ１１１ａの要求に応じて、ネットワーク３を通じ機能アプリや言語データアプリ等をＭＦＰ１に送信する役割を果たす。
【００５０】
アプリ／言語データ管理部２２は、複数の機能アプリ、言語データアプリ、機能毎に用語と複数言語の翻訳がまとめられた言語データ等を備えると共に、機能アプリや言語データアプリのダウンロード先の管理などを行う。
【００５１】
ＣＧＩ（Common Gateway Interface）は、ウェブサーバ−部２１がＭＦＰ１から言語データアプリの取得要求を受けたときに、プログラムを起動してウェブサーバ−２１から要求された処理を実行する。
【００５２】
図２は、言語データアプリ３００の内容と、言語データアプリ３００がＭＦＰ１にインストールされた後のＭＦＰ１の動作を説明するための図である。
【００５３】
言語データアプリ３００は、機能アプリが言語データアプリ３００にアクセスするためのアクセス方法を規定するとともに、指定した言語による指定した用語を言語データから抽出するための関数を規定する定義ファイル３０１と、言語データ（Resource.dat）３０２を有している。
【００５４】
定義ファイル３０１には、図２に示すように、言語データアプリ３００のアプリ識別情報であるアプリＩＤ（ApplicationID)と、バージョン（Version）情報と、モジュール（Module）情報と、ＡＰＩ（Application Programming Interface ）情報と、アクセス可能なアプリＩＤが埋め込まれている。
【００５５】
言語データアプリ３００の識別情報であるアプリＩＤは、言語データアプリ３００を一意に特定すると共に、言語データアプリという種類であることを特定している。アプリＩＤにはあらかじめ指定されたフラグ（図２の例では「ＩＤＢ」）が含まれ、ＭＦＰ１は、このフラグを有するアプリが機能アプリで共有可能なアプリであると認識する。このアプリＩＤによって言語データアプリ３００の偽造を防止している。なお、アプリＩＤを定義ファイル３０１に埋め込むのではなく、アプリＩＤを書き換えられないように証明書に埋め込み、ＭＦＰ１が言語データアプリ３００をインストールするときに、証明書を言語データアプリ３００から取り出してアプリＩＤを確認する構成としても良い。
【００５６】
バージョン情報は、言語データアプリ３００のバージョンを示す情報である。
【００５７】
モジュール情報は、機能アプリが言語データアプリ３００にアクセスするためのアクセス方法として、モジュールであるＤＬＬ（Dynamic Link Library）の指定の仕方を規定している。この実施形態では、「LangData.dll」によりＤＬＬを指定し呼び出す構成となっている。ＤＬＬはＭＦＰ１の言語データアクセス管理部１１２に例えばＭＦＰ１の製造段階で予めインストールされているが、言語データアプリ３００に同梱され、言語データアプリ３００のインストール時にＭＦＰ１にコピーされる構成としても良い。
【００５８】
ＡＰＩ情報は、機能アプリが、指定した言語による指定した用語を言語データ３０２から抽出するための関数を規定するものである。この例では「GetLangData(LangID,lang)」により、言語ＩＤ（LangID）と言語（lang)を指定して言語データアプリ３００にアクセスする。
【００５９】
アクセス可能なアプリＩＤは、言語データアプリ３００へのアクセスを許容する予め設定された機能アプリの識別情報であり、言語データアプリ３００へのアクセスを許容する機能アプリとアクセスを拒否する機能アプリを選別するための選別情報として機能する。
【００６０】
言語データアプリ３００が保持する言語データ３０２は、図２に示すように、用語を特定する言語ＩＤ（LangID）と、各言語ＩＤで示される用語を各言語により表した文字列（図２の例では英語と日本語）からなる。例えば言語ＩＤ１の用語については、英語で「Scan Settings」、日本語で「スキャン設定」が、言語ＩＤ２の用語については、英語で「Paper Size」、日本語で「用紙サイズ」が、言語ＩＤ３の用語については、英語で「Color Setting」、日本語で「カラー設定」が、それぞれ規定されている。
【００６１】
図２に示すように、ユーザーによって言語データアプリ３００がサーバー２からダウンロードされＭＦＰ１にインストールされて、言語データアプリ３００はＭＦＰ１の記憶装置１０４に格納される。言語データアプリ３００の定義ファイル３０１のモジュール情報に規定されたＤＬＬは、言語データアプリ３００がインストールされるまでは無効となっているが、言語データアプリ３００がインストールされると有効となり、ＭＦＰ１のＲＡＭ１０３等のシステム内にロードされ使用可能となる。
【００６２】
このように、ＤＬＬは言語データアプリ３００がインストールされるまでは無効となっているから、意図しないデータの書き換えや削除等を防止できる。また、言語データアプリ３００がインストール後にＭＦＰ１のシステム内にロードされ使用可能となるから、言語データアプリ３００の不使用時はメモリ使用量を削減することができる。
【００６３】
ユーザーは、必要な機能アプリをサーバー２からダウンロードしＭＦＰ１にインストールする。インストールによってＭＦＰ１の記憶装置１０４に格納された機能アプリ（例えば図２のディレクトリＡ００００００１に格納された機能アプリ）が、「Getdata.exe」によって起動すると、モジュールであるＤＬＬが指定され呼び出される。機能アプリは、定義ファイル３０１に規定された関数である「GetLangData(LangID,lang)」を用いて言語ＩＤ及び言語を指定し、言語データアプリ３００にアクセスすると、指定された言語ＩＤの用語についての指定された言語の文字列が言語データ３０２から抽出される。機能アプリは、抽出された文字列を用いて画面を構成し、表示部１０８ａに表示する。
【００６４】
ただし、機能アプリ（例えば図２のディレクトリＢ００００００２に格納された機能アプリ）がアクセス可能な機能アプリとして定義ファイル３０２に規定されていない場合は、言語データアプリ３００へのアクセスが拒否される。また、アクセス可能な機能アプリとして定義ファイル３０２に規定されていない機能アプリについては、ＭＦＰ１はインストールそのものを拒否しても良い。
【００６５】
また、言語データ３０２には、各用語の各言語による文字列のみならず、図３に示すように、その用語をアイコンとして表示するためのアイコン用画像データが含まれていても良い。機能アプリはアイコン用画像データを取得する場合は、言語ＩＤとアイコン用画像データの取得であることを指定する。なお、アイコン用画像データは言語データ３０２とは別に独立したデータとして保持されていても良い。
【００６６】
このようなアイコン用画像データの存在により、言語データだけでなくアイコン用画像データも各機能アプリケーションで共有化することができ、各機能アプリケーションはこのアイコン用画像データに基づくアイコンを表示画面に表示させることができる。
【００６７】
図４は、言語データアプリ３００及び機能アプリ４００をサーバー２からＭＦＰ１へダウンロードしたのち、機能アプリ４００が画面を構成するまでの動作の概要を説明するための図である。
【００６８】
サーバー２には、言語データアプリ３００と機能アプリ４００が保持されている。言語データアプリ３００には、前述した定義ファイル３０１と言語データ３０２が含まれている。
【００６９】
一方、機能アプリ４００は該機能アプリを実行するためのプログラム４０１を備えている。
【００７０】
ＭＦＰ１のユーザーはサーバー２から言語データアプリ３００をダウンロードしＭＦＰ１にインストールする。言語データアプリ３００がインストールされると、ＤＬＬ５０１が本体システム５００にロードされ、使用可能となる。
【００７１】
言語データアプリ３００がＭＦＰ１にインストールされた後、ユーザーは必要に応じて所望の機能アプリ４００をサーバー２からダウンロードし、ＭＦＰ１にインストールする。
【００７２】
ＭＦＰ１にインストールされた機能アプリ４００を実行させると、ＤＬＬが指定され呼び出される。機能アプリ４００は関数「GetLangData(LangID,lang)」により言語ＩＤと言語を指定し、ＤＤＬを介して言語データアプリ３００にアクセスする。すると、言語データアプリ３００の言語データ３０２から、指定された言語ＩＤで示される用語の指定された言語による文字列が抽出される。処理効率の向上のため、言語データ３０２はＲＡＭ１０３上に展開されても良い。
【００７３】
機能アプリ４００は、抽出された用語の文字列６０２を自身のＵＩ６０１により配置して画面を構成し、ＭＦＰ１のＧＵＩ（Graphical User Interface）６００が構成された画面を受け付けて、ブラウザ１１１ａを介して表示部１０８ａに表示する。
【００７４】
この実施形態では、ＭＦＰ１にはプロキシ部５０２が備えられている。このプロキシ部５０２は、機能アプリ４００と言語データアプリ３００、さらには機能アプリ４００同士が直接アクセスできないように仲介する役割を果たす。これによりセキュリティのさらなる強化を図っている。
【００７５】
図５は、ＭＦＰ１にインストールされた機能アプリ４００による用語抽出時の言語データアプリ３００とのやりとりを示すシーケンス図である。
【００７６】
機能アプリ４００がＤＬＬ５０１を呼び出し、関数である「GetLangData(LangID,lang)」によって言語及び用語を指定し、言語データアプリ３００へのアクセスを要求すると（ステップＳ１）、ＤＬＬ５０１は「GetLangData(LangID,lang)」を言語データアプリ３００に送信する（ステップＳ２）。
【００７７】
言語データアプリ３００は、指定された言語ＩＤ、言語に対応する用語の文字列（図５の例ではScan Settings」）を言語データ３０２から抽出してＤＬＬ５０１に返し（ステップＳ３）、ＤＬＬ５０１はさらに機能アプリ４００に返す（ステップＳ４）。この処理を画面構成に必要な全ての用語の抽出が完了するまで繰り返す。必要な全ての用語を抽出すると、機能アプリ４００は画面データを生成し、生成した画面データをウェブサーバー部１１３に送信し（ステップＳ５）、ウェブサーバー部１１３は画面データをブラウザ１１１ａに送信する（ステップＳ６）。ブラウザ１１１ａは画面データを表示部１０８ａに表示する。
【００７８】
なお、機能アプリ４００が必要な用語を抽出するのではなく、言語データに含まれる全ての用語を取得してブラウザ１１１ａに送信しておき、ブラウザ１１１ａ側で機能アプリ４００により指定された用語の文字列を指定された位置に表示することで、画面を表示しても良い。
【００７９】
このように、この実施形態では、言語データアプリ３００は、機能アプリ４００が言語データアプリ３００にアクセスするためのアクセス方法であるＤＬＬ５０１の呼び出し方法を規定し、指定した言語による指定した用語を言語データから抽出するための関数を規定する定義ファイル３０１を含むデータ構造を有している。そして、ＭＦＰ１にインストールされた機能アプリ４００は、動作時に前記ＤＬＬを指定し呼び出して言語データアプリ３００にアクセスし、関数に従って指定した言語による指定した用語を言語データ３０２から抽出し、該抽出した用語を用いて表示画面を構成する。つまり、各機能アプリ４００は、言語データアプリ３００の言語データ３０２を共用して表示画面を構成するから、各機能アプリ４００にそれぞれ言語データを保持させる必要はなくなり、記憶装置１０４が無駄に使用されてその分容量を圧迫するという問題を解消できる。また、機能アプリ４００の開発ベンダーがそれぞれ重複した翻訳作業を行う手間をなくすことができる。また、各機能アプリ４００が共通の言語データベースを使用するから、機能アプリ４００間で統一したワーディングにより表示画面を構成することができる。
【００８０】
しかも、ＭＦＰ１のファームウェアで言語データを保持するのではなく、言語データアプリ３００に言語データ３０２が保持されるから、ファームウェアの更新を必要とすることなく、言語データの追加、変更を行うことができるとともに、ＭＦＰ１の機種毎のメンテナンスや、言語データの中から必要分だけマッピングするための変換データベースが必要となる、という問題も解消できる。
【００８１】
さらには、機能アプリ４００が直接に言語データアプリ３００にアクセスするのではなく、言語データアプリ３００が有する定義ファイル３０１に規定されたアクセス方法によりアクセスし、指定した言語による指定した用語を言語データ３０２から抽出するための関数を用いて、言語データ３０２から用語を抽出するから、機能アプリ４００がサードパーティによって製作されたものであっても、セキュリティを確保しながら言語データ３０２の共有化を図ることができる。
【００８２】
図６は、言語データアプリ３００のインストール時のＭＦＰ１の動作を示すフローチャートである。
【００８３】
ステップＳ０１でアプリインストールの指示を受け付けると、ステップＳ０２で、アプリは言語データアプリかどうかを判断する。言語データアプリかどうかは、定義ファイル３０１のアプリＩＤにより判断する。
【００８４】
言語データアプリ３００であれば（ステップＳ０２でＹＥＳ）、ステップＳ０３で、ＡＰＩ情報による関数（アクセス関数）を有効化したのち、ステップＳ０４でインストールを継続する。ステップＳ０２で、言語データアプリ３００でなければ（ステップＳ０２でＮＯ）、そのままステップＳ０４に進み、インストールを継続する。
【００８５】
図７は、機能アプリ４００のインストール時のＭＦＰ１の動作を示すフローチャートである。
【００８６】
この実施形態では、前述したように、定義ファイル３０１にアクセス可能なアプリＩＤが規定されており、インストールされる機能アプリがアクセス可能なアプリＩＤとして定義ファイル３０２に規定されていない場合は、言語データアプリ３００へのアクセスが拒否され、またはインストールそのものが拒否されるようになっている。
【００８７】
より詳細に説明すると、ＭＦＰ１は言語データアプリ３００の言語データ３０２が適正に利用される環境を構築する必要がある。例えば、言語データ３０２は時期や対応製品により用語が異なる場合がある。機能アプリ４００が想定している用語と言語データ３０２の用語が異なる場合は、ユーザーに間違った用語を表示してしまう恐れがある。また、機能アプリが用語を使用しないにもかかわらず、不具合によって言語データにアクセスし、意図しない動作をＭＦＰ１に与える恐れもある。
【００８８】
そこで、言語データアプリ３００にアクセス可能な機能アプリ４００のＩＤを、定義ファイル３０１に規定し、アクセス可能な機能アプリとして定義ファイル３０２に規定されていない機能アプリ４００については、ＭＦＰ１は機能アプリ４００のインストールを拒否する。また、アクセス可能な機能アプリ４００として定義ファイル３０２に規定されていない機能アプリについては、言語データアプリ３００へのアクセスを拒否しても良い。言語データアプリ３００へのアクセス拒否は、特に言語データアプリ３００が機能アプリ４００よりも後にインストールされた場合に有効である。
【００８９】
さらに、この実施形態では、言語データアプリ３００はバージョン情報を有するとともに、機能アプリ４００は言語データアプリ３００のどのバージョンをサポートしているかの情報を持っている。そして、ＭＦＰ１は機能アプリ４００をサーバー２からダウンロードしインストールするときに、アクセス可能な機能アプリ４００として定義ファイル３０２に規定されている機能アプリ４００であっても、言語データアプリ３００のバージョンと合致するか否かを確認し、合致する場合にのみ機能アプリ４００のインストールを継続するものとなされている。なお、ダウンロードした機能アプリ４００のバージョンが言語データアプリ３００のバージョンと一致しなかった場合、ＭＦＰ１はサーバー２に言語データアプリ３００のバージョン情報を通知し、対応するバージョンの機能アプリ４００をサーバー２から提供してもらう構成としても良い。
【００９０】
図７において、ステップＳ１１で機能アプリ４００のインストールの指示を受け付けると、ステップＳ１２で、機能アプリ４００が言語データアプリ３００を使用可能なアプリかどうかを判断する。言語データアプリ３００を使用可能な機能アプリ４００かどうかは、言語データアプリ３００の定義ファイル３０１に規定されたアクセス可能なアプリＩＤにより判断する。
【００９１】
言語データアプリ３００を使用可能な機能アプリ４００であれば（ステップＳ１２でＹＥＳ）、ステップＳ１３で、機能アプリ４００のバージョンが言語データアプリ３００のバージョンと合致しているかどうかを判断する。合致していれば（ステップＳ１３でＹＥＳ）、ステップＳ０４でインストールを継続する。
【００９２】
ステップＳ１２で、言語データアプリ３００を使用可能な機能アプリ４００でない場合（ステップＳ１２でＮＯ）、及びステップＳ１３で、機能アプリ４００のバージョンが言語データアプリ３００のバージョンと合致していない場合は（ステップＳ１３でＮＯ）、いずれもステップＳ１５でインストールを中止する。
【００９３】
図８はこの発明の他の実施形態を示すもので、言語データアプリ３００及び機能アプリ４００をサーバー２からＭＦＰ１へダウンロードして、機能アプリ４００が画面を構成するまでの動作の概要を説明するための図であり、図４に対応する図である。
【００９４】
この実施形態では、言語データアプリ３００のオプションデータ７００として、ＭＦＰ１の機能毎にパッケージとしてまとめられた言語データを有している。具体的には、コピー用の言語データ７０１、スキャン用の言語データ７０２、ファクシミリ用の言語データ７０３の各グループの言語データを備えている。また、言語データアプリ３００には、定義ファイル３０１の他、各機能に共通する処理に関する言語データ３０２が標準仕様として保持されているとともに、オプションデータ７００である各機能毎の言語データ７０１〜７０３をサーバー２からＭＦＰ１にダウンロードしインストールするためのプログラム３０３が保持されている。なお、言語データアプリ３００に、各機能に共通する処理の言語データ３０２とともに、あるいは当該言語データ３０２に代えて、装置情報に関する言語データを標準仕様として保持していても良い。
【００９５】
図９にコピー用の言語データ７０１とファクシミリ用の言語データ７０３の一例を示す。いずれも、それぞれコピー機能及びファクシミリ機能に関連する用語が各言語ＩＤで示されるとともに、各用語を各言語で表記した文字列が規定されている。なお、コピー用、スキャン用、ファクシミリ用の各言語データの他に、例えば認証処理用のグループの言語データが備えられていても良い。
【００９６】
図８の実施形態では、オプションデータについては、機能アプリ４００の変更やＭＦＰ１の構成の変更等に応じ、ＭＦＰ１にインストールされた言語データアプリ３００のプログラム３０３が実行されることにより、必要な言語データ７０１〜７０３がサーバー２のオプションデータ７００からＭＦＰ１にダウンロードされる。例えば新たにインストールされた機能アプリ４００の使用機能情報に基づいて、機能アプリ４００がコピー機能に関するアプリであるとＭＦＰ１が判断した場合は、コピー用の言語データ７０１がサーバー２のオプションデータ７００からＭＦＰ１にダウンロードされインストールされる。また、機能アプリ４００がスキャン機能に関するアプリの場合は、スキャン用の言語データ７０２がＭＦＰ１にインストールされる。図８の例では、コピー用の言語データ７０１がＭＦＰ１にインストールされている。
【００９７】
また、ＭＦＰ１が自装置に搭載されている標準機能やオプション機能を確認し、搭載機能に応じた言語データをダウンロードしインストールしても良い。例えば、ＭＦＰ１にファクシミリ機能が新たに搭載されたような場合は、ファクシミリ用の言語データ７０３がＭＦＰ１にインストールされる。
【００９８】
なお、ダウンロードされた機能毎の言語データや、言語データアプリ３００に含まれている共通の言語データ３０２から必要な用語の文字列を取得して、機能アプリ４００が画面を構成するまでの動作は、図４で説明した場合と同じである。
【００９９】
図８の例では、オプションデータ７００として言語データ７０１〜７０３がＭＦＰ１の機能毎にまとめられている例を示したが、図１０に示すように、言語毎にパッケージ化された言語データであっても良い。例えば図１０では英語のグループにまとめられた言語データ７０４と日本語のグループにまとめられた言語データ７０５が示されている。言語毎に言語データがまとめられている場合、ＭＦＰ１の使用地域や国に応じて、必要な言語の言語データがサーバー２のオプションデータ７００からからダウンロードされＭＦＰ１にインストールされる。なお、言語毎のデータをさらに機能毎に分類してパッケージ化した言語データであってもよい。
【０１００】
このように、共通処理に関する言語データ、装置情報に関する言語データ、機能毎あるいは言語毎の言語データ等のように、言語データを複数のグループに分割して形成し、複数のグループのうちの一部のグループの言語データを言語データアプリ３００に保持しておき、他のグループの言語データはオプションデータとしてサーバー２に保持しておくとともに、オプションデータをサーバー２からダウンロードしインストールするためのプログラムを言語データアプリ３００に含ませておくことで、必要な言語データはサーバー２からダウンロードしインストールできる。従って、言語データアプリ３００は必要最小限の言語データを保持すれば良く、全ての言語データを保持する場合に較べてその分記憶装置１０４の使用量を少なくできる。これによって、ＭＦＰ１のハードウェアリソースの消費量を少なくできる。
【０１０１】
すなわち、ＭＦＰ１は多くの機能を有するため、言語データのサイズが巨大になる恐れがある。全ての言語データを言語データアプリ３００に保持させて、ＭＦＰ１にインストールすると、ＭＦＰ１のハードウェアリソースを多く消費してしまう。ハードウェアリソースは他のＭＦＰ機能と共有しているため、例えば、スキャンできる画像の最大サイズが制限されるとか、インストールできるアプリが少なくなるとか、記憶領域であるボックスに保存できる文書が少なくなるといったように、場合によっては他の機能に影響を与える可能性がある。そこで、言語データを複数のグループに分割して必要な言語データのみをインストールすることで、ハードウェアリソースを効率的に使用することができる。
【０１０２】
なお、不要になった言語データのグループをアンインストールする構成としても良い。
【０１０３】
図１１は、図８に示したように、言語データがオプションデータ７００として機能毎にまとめられている場合の言語データ７０１〜７０３を、言語データアプリ３００のプログラム３０３に基づいてＭＦＰ１がインストールする場合の動作を示すフローチャートである。
【０１０４】
ステップＳ３１では、ＭＦＰ１の構成または機能アプリ４００に変更があったかどうかを判断する。ＭＦＰ１の構成に変更があった場合とは、例えば新たな機能がＭＦＰ１に追加されたり、既存の機能が削除されたような場合をいい、機能アプリ４００に変更があった場合とは新たな機能アプリ４００がインストールされたり、既存の機能アプリ４００がアンインストールされたようなような場合をいう。
【０１０５】
ＭＦＰ１の構成または機能アプリ４００に変更があった場合（ステップＳ３１でＹＥＳ）、ステップＳ３２で、新たな言語データ７０１〜７０３の取得や不要となった言語データの削除が必要かを、既にインストールされている言語データと、変更があったＭＦＰ１の構成や機能アプリ４００との対比により判断する。
【０１０６】
新たな言語データ７０１〜７０３の取得や不要となった言語データの削除が必要と判断された場合（ステップＳ３２でＹＥＳ）、ステップＳ３３で、新たな言語データ７０１〜７０３をサーバー２からダウンロードしてインストールし、あるいは不要となった言語データをＭＦＰ１からアンインストールする。
【０１０７】
ステップＳ３１で、ＭＦＰ１の構成または機能アプリ４００に変更がなかった場合（ステップＳ３１でＮＯ）、ステップＳ３２で、新たな言語データ７０１〜７０３の取得や不要となった言語データの削除が必要でない場合は（ステップＳ３２でＮＯ）、何もせず処理を終了する。
【０１０８】
以上、本発明の一実施形態を説明したが、本発明は上記実施形態に限定されることはない。
【０１０９】
例えば、言語データアプリ３００をサーバー２からダウンロードしてインストールする例を示したが、予めＲＯＭ１０２内に言語データアプリ３００を保持させておき、ＭＦＰ１内で言語データアプリ３００を実行可能となった場合に、ＲＯＭ１０２から言語データアプリ３００をインストールしても良い。例えば、言語データアプリ３００の実行に必要なランタイム等がデフォルトでオフになっている場合等に有効である。
【符号の説明】
【０１１０】
１      画像形成装置
１０１  ＣＰＵ
１０２  ＲＯＭ
１０４  記憶装置
１０５  システム制御部
１０９  ネットワークインターフェース
１１０  外部アプリケーション管理部
１１１  外部アプリケーション実行部
１１２  言語データアクセス管理部
２      サーバー
【図１】
0006554890.tif 000002
【図２】
0006554890.tif 000003
【図３】
0006554890.tif 000004
【図４】
0006554890.tif 000005
【図５】
0006554890.tif 000006
【図６】
0006554890.tif 000007
【図７】
0006554890.tif 000008
【図８】
0006554890.tif 000009
【図９】
0006554890.tif 000010
【図１０】
0006554890.tif 000011
【図１１】
0006554890.tif 000012
【図１２】
0006554890.tif 000013
【図１３】
0006554890.tif 000014