特許第6222058号(P6222058)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ 京セラドキュメントソリューションズ株式会社の特許一覧

<>
  • 特許6222058-画像形成装置 図000002
  • 特許6222058-画像形成装置 図000003
  • 特許6222058-画像形成装置 図000004
  • 特許6222058-画像形成装置 図000005
  • 特許6222058-画像形成装置 図000006
  • 特許6222058-画像形成装置 図000007
  • 特許6222058-画像形成装置 図000008
  • 特許6222058-画像形成装置 図000009
  • 特許6222058-画像形成装置 図000010
  • 特許6222058-画像形成装置 図000011
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6222058
(24)【登録日】2017年10月13日
(45)【発行日】2017年11月1日
(54)【発明の名称】画像形成装置
(51)【国際特許分類】
   B41J 29/38 20060101AFI20171023BHJP
   H04N 1/00 20060101ALI20171023BHJP
   G06F 3/12 20060101ALI20171023BHJP
   G06F 9/44 20060101ALI20171023BHJP
【FI】
   B41J29/38 Z
   H04N1/00 C
   G06F3/12 303
   G06F3/12 329
   G06F9/06 620A
【請求項の数】4
【全頁数】14
(21)【出願番号】特願2014-237557(P2014-237557)
(22)【出願日】2014年11月25日
(65)【公開番号】特開2016-97621(P2016-97621A)
(43)【公開日】2016年5月30日
【審査請求日】2016年10月26日
(73)【特許権者】
【識別番号】000006150
【氏名又は名称】京セラドキュメントソリューションズ株式会社
(74)【代理人】
【識別番号】110001933
【氏名又は名称】特許業務法人 佐野特許事務所
(72)【発明者】
【氏名】上野 敏昭
【審査官】 大関 朋子
(56)【参考文献】
【文献】 特開2010−050569(JP,A)
【文献】 特開2010−081183(JP,A)
【文献】 特開2002−222081(JP,A)
【文献】 特開2006−085620(JP,A)
【文献】 米国特許出願公開第2005/0076064(US,A1)
【文献】 特開2002−108627(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B41J 29/38
G06F 3/12
G06F 9/44
H04N 1/00
G03G 21/00
(57)【特許請求の範囲】
【請求項1】
画像形成装置が有する機能の実行に必要なアプリケーションプログラムのプログラム部分と、前記アプリケーションプログラムのプログラム部分の関数名と前記アプリケーションプログラムのプログラム部分の記憶部上のアドレスとを対応付けた変換テーブルと、タグを用いる所定のデータ記述言語で作成されたデータを解析するための構文解析プログラムと、
前記アプリケーションプログラムのデータ部分を示すデータである機能データを外部から取得し、前記アプリケーションプログラムのプログラム部分とは別個に格納する取得部と、
前記アプリケーションプログラムに基づき前記機能を実行するための処理を行う処理部と、を備え、
前記機能データは、前記所定のデータ記述言語で作成されるとともに、コンパイルされずに前記記憶部に格納され、
前記機能データには、対応する前記アプリケーションプログラムのプログラム部分の関数名が定義されており、
前記処理部は、前記機能を実行するための処理を行うとき、前記構文解析プログラムに基づき前記機能データを解析するとともに、前記変換テーブルを参照することによって前記機能データに定義された前記アプリケーションプログラムのプログラム部分の関数名に対応する前記記憶部上のアドレスを判別し、判別した前記記憶部上のアドレスに記憶された前記アプリケーションプログラムのプログラム部分を読み出すことを特徴とする画像形成装置。
【請求項2】
前記アプリケーションプログラムのプログラム部分は、複数の機種間で共通して使用できるプログラムであることを特徴とする請求項1に記載の画像形成装置。
【請求項3】
前記変換テーブルは、コンパイルされる前は、前記アプリケーションプログラムのプログラム部分の関数名に関数ポインタを対応付けたテーブルとなっており、コンパイルされることによって、前記アプリケーションプログラムのプログラム部分の関数名に前記アプリケーションプログラムのプログラム部分の前記記憶部上のアドレスが対応付けられたテーブルとなることを特徴とする請求項1または2に記載の画像形成装置。
【請求項4】
前記所定のデータ記述言語は、XMLであることを特徴とする請求項1〜3のいずれか1項に記載の画像形成装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機能の実行に必要なアプリケーションプログラムを格納する画像形成装置に関する。
【背景技術】
【0002】
画像形成装置には、搭載機能(アプリケーション)に対応するアプリケーションプログラムが格納される。そして、画像形成装置の処理部(CPU)は、機能の実行指示を受けると、実行対象の機能に対応するアプリケーションプログラムを読み出し、そのアプリケーションプログラムに基づき機能を実行するための処理を行う。
【0003】
ところで、コピー機能やプリンター機能など複数種の機能を搭載する画像形成装置(複合機)では、複数種の機能にそれぞれ対応する複数のアプリケーションプログラムが必要となるが、各アプリケーションプログラムをそれぞれ別個に開発(作成)すると、ソフトウェアの開発効率が低下する。
【0004】
そこで、特許文献1では、各アプリケーションプログラムのうち共通する部分を共通プログラムとして括りだし、その共通プログラムを画像形成装置に格納するようにしている。このようにすると、或る機能に対応するアプリケーションプログラムを作成した後、別の機能に対応するアプリケーションプログラムを作成するときには、共通プログラム以外の部分を作成するだけでよくなるので、ソフトウェアの開発を効率的に行える。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2002−84383号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
通常、画像形成装置のアプリケーションプログラムはC言語やC++言語などのプログラミング言語で作成されるが、そのようなプログラミング言語は構文が複雑であるため、アプリケーションプログラムの作成には時間がかかる。したがって、特許文献1のように、アプリケーションプログラムを共通部分とそれ以外の部分とに分離しても、ソフトウェアの開発効率は大きくは向上しない。また、構文が複雑なプログラミング言語でアプリケーションプログラムを作成すると、アプリケーションプログラムに不具合が発生し易くなり、品質の低下に繋がる。さらに、メンテナンス性も悪い。
【0007】
本発明は、上記課題を解決するためになされたものであり、ソフトウェアの開発効率、品質およびメンテナンス性を向上させることが可能な画像形成装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するために、本発明の画像形成装置は、画像形成装置が有する機能の実行に必要なアプリケーションプログラムのプログラム部分と、アプリケーションプログラムのプログラム部分の関数名とアプリケーションプログラムのプログラム部分の記憶部上のアドレスとを対応付けた変換テーブルと、タグを用いる所定のデータ記述言語で作成されたデータを解析するための構文解析プログラムと、アプリケーションプログラムのデータ部分を示すデータである機能データを外部から取得し、アプリケーションプログラムのプログラム部分とは別個に格納する取得部と、アプリケーションプログラムに基づき機能を実行するための処理を行う処理部と、を備える。機能データは、所定のデータ記述言語で作成されるとともに、コンパイルされずに記憶部に格納される。機能データには、対応するアプリケーションプログラムのプログラム部分の関数名が定義されている。そして、処理部は、機能を実行するための処理を行うとき、構文解析プログラムに基づき機能データを解析するとともに、変換テーブルを参照することによって機能データに定義されたアプリケーションプログラムのプログラム部分の関数名に対応する記憶部上のアドレスを判別し、判別した記憶部上のアドレスに記憶されたアプリケーションプログラムのプログラム部分を読み出す。なお、タグを用いる所定のデータ記述言語としては、たとえば、XML(Extensible Markup Language)などがある。
【0009】
本発明の構成では、アプリケーションプログラムのプログラム部分の関数名(テキスト)と、アプリケーションプログラムのプログラム部分の記憶部上のアドレスとが対応付けられた変換テーブルが記憶部に記憶されるので、記憶部に格納されたアプリケーションプログラムのデータ部分(機能データ)の記述言語が所定のデータ記述言語であっても、変換テーブルを参照することにより、機能データに対応するアプリケーションプログラムのプログラム部分の記憶部上のアドレスを判別することができる。すなわち、機能データに対応するアプリケーションプログラムのプログラム部分を読み出すことができる。これにより、プログラム作成者からすると、アプリケーションプログラムのデータ部分については、所定のデータ記述言語で作成した機能データをそのまま記憶部に格納するだけでよくなる(コンパイルが不要となる)ので、利便性が良い。
【0010】
ここで、所定のデータ記述言語(XMLなど)はプログラミング言語(C言語やC++言語など)のように複雑ではなく、所定のデータ記述言語でのアプリケーションプログラム(データ部分)の作成は簡単な規則(タグの使い方など)を覚えておくだけで行える。これにより、アプリケーションプログラムの作成にかかる時間が短縮され、ソフトウェアの開発効率が向上する。
【0011】
また、所定のデータ記述言語は制御コード(分岐や反復など)を含まないので、アプリケーションプログラム(データ部分)に不具合が発生し難くなり、品質が向上する。さらに、所定のデータ記述言語は制御コードを含まないので、アプリケーションプログラム(データ部分)の可読性が向上する。すなわち、メンテナンス性が向上する。
【0012】
なお、仮にアプリケーションプログラムのデータ部分にデバッグの必要が生じた場合には、機能データを修正し、その修正した機能データを記憶部に格納するだけでよく、アプリケーションプログラムのプログラム部分(分岐や反復などの制御コード)を修正する必要はない。このため、デグレードが発生し難くなる。また、修正した機能データのコンパイルは不要であるので、作業工数が短縮される。
【発明の効果】
【0013】
以上のように、本発明によれば、ソフトウェアの開発効率、品質およびメンテナンス性を向上させることができる。
【図面の簡単な説明】
【0014】
図1】本発明の一実施形態による複合機の概略図
図2】本発明の一実施形態による複合機のハードウェア構成の一例を示した図
図3】本発明の一実施形態による複合機のソフトウェア構成の一例を示した図
図4】本発明の一実施形態による複合機に格納される機能データ(XMLデータ)の一例を示した図
図5】本発明の一実施形態による複合機に格納される機能データの一例を示した図(図4の続き)
図6】本実施形態の一実施形態による複合機にて機能を実行するときに参照される変換テーブルの一例を示した図
図7】本発明の一実施形態による複合機においてレポート機能が実行されるときの処理の流れを説明するためのフローチャート
図8】本発明の一実施形態による複合機でのレポート機能の実行により印刷出力されるレポートの一例を示した図
図9】本発明の一実施形態による複合機に格納される機能データの修正例を示した図
図10】本発明の一実施形態による複合機でのレポート機能の実行により印刷出力されるレポートの一例を示した図(機能データ修正前のレポートと機能データ修正後のレポート)
【発明を実施するための形態】
【0015】
以下、本発明の一実施形態について、複合機を例にとって説明する。
【0016】
[複合機の全体構成]
図1に示すように、複合機100(「画像形成装置」に相当)は、画像読取部101、印刷部102および操作パネル103を備える。
【0017】
画像読取部101は、原稿を読み取り、原稿の画像データを生成する。たとえば、画像読取部101の読み取りによって得られた原稿の画像データは、後述する主制御部110により各種処理が施される。そして、その画像データは、印刷画像の基データや、ファクシミリデータの基データとなる。
【0018】
印刷部102は、給紙部21、用紙搬送部22、画像形成部23および定着部24によって構成される。給紙部21は、用紙カセットPCに収容された用紙を用紙搬送路PPに供給する。用紙搬送部22は、用紙搬送路PPに沿って用紙を搬送する。画像形成部23は、感光体ドラム1、帯電装置2、露光装置3、現像装置4、転写ローラー5およびクリーニング装置6を含む。そして、画像形成部23は、画像データに基づきトナー像を形成し、そのトナー像を用紙に転写する。定着部24は、用紙に転写されたトナー像を加熱および加圧して定着させる。
【0019】
操作パネル103は、タッチパネル付きの液晶表示パネル31を含む。液晶表示パネル31は、各種設定などを受け付けるためのソフトキーやメッセージを表示する。また、操作パネル103には、スタートキー32やテンキー33などのハードキーが設けられる。たとえば、操作パネル103は、複合機100が有する機能の実行指示(操作)を受け付ける。
【0020】
なお、複合機100は、コピー機能やプリンター機能など標準的な機能以外に、たとえば、装置状態などを示すレポートRP(図8参照)を印刷出力する機能、メンテナンスや調整を行うための機能、および、オプション装置やオプション言語を使用する機能などが備えられる。
【0021】
[複合機のハードウェア構成]
図2に示すように、複合機100は、主制御部110を備える。主制御部110は、CPU111、画像処理部112および記憶部113を含む。画像処理部112は、画像処理専用のASICなどからなり、画像データに対して画像処理(拡大/縮小、濃度変換およびデータ形式変換など)を施す。記憶部113は、ROM113aおよびRAM113bなどからなる。この記憶部113(ROM113a)には、制御用のプログラムやデータが格納される。なお、以下の説明では、複合機100が有する機能の実行に必要な制御用のプログラムをアプリケーションプログラム100Pと称する場合がある。これは、図3のアプリケーション層が外部装置200または外部メモリー300により、複合機100の記憶部113にダウンロードされたものである。
【0022】
そして、主制御部110は、記憶部113に記憶されたプログラムやデータに基づき、複合機100の動作を制御する。具体的には、主制御部110は、画像読取部101に接続され、画像読取部101の読取動作を制御する。また、主制御部110は、印刷部102に接続され、印刷部102の印刷動作を制御する。さらに、主制御部110は、操作パネル103に接続され、操作パネル103の表示動作を制御したり、操作パネル103に対して行われた操作を検知したりする。
【0023】
また、複合機100は、通信部120および接続部130を備える。通信部120および接続部130は、主制御部110に接続される。
【0024】
通信部120は、外部装置200(パーソナルコンピューターやサーバーなど)と通信可能に接続される。そして、通信部120は、主制御部110から指示を受け、外部装置200との間でファクシミリデータなど各種データの送受信を行う。
【0025】
接続部130は、USBメモリーなどの外部メモリー300を接続するためのインターフェースである。たとえば、外部メモリー300には、画像データなど各種データが格納される。そして、主制御部110は、接続部130への外部メモリー300の接続を認識すると、その外部メモリー300に格納されたデータを取得するための処理を行う。
【0026】
[複合機のソフトウェア構成]
図3に示すように、複合機100のソフトウェア構成は、プラットフォーム層の上位にアプリケーション層が配置されたものとなっている。アプリケーション層のプログラムやデータは外部装置200または外部メモリー300から読み出され、ROM113aに格納される。
【0027】
プラットフォーム層には、DLL(ダイナミックリンクライブラリー)ファイル510が備えられる。
【0028】
また、プラットフォーム層には、オペレーティングシステム(OS)520などの基本プログラムも備えられる。
【0029】
アプリケーション層には、ライブラリー530や機能データ540などが備えられる。ライブラリー530は、複数種の機能にそれぞれ対応する各アプリケーションプログラム100Pのプログラム部分のうち機能特有の処理を行うための部分を一つのファイルにまとめたものである。たとえば、レポート機能の実行時には、ライブラリー530から、レポート機能の実行に必要なアプリケーションプログラム100Pのプログラム部分が読み出される。なお、ライブラリー530に含まれるアプリケーションプログラム100Pのプログラム部分は、複数の機種間で共通して使用できるものである。
【0030】
機能データ540は、複数種の機能にそれぞれ対応する各アプリケーションプログラム100Pのデータ部分を示すデータである。この機能データ540には、対応する機能特有のパラメータなどが定義される。レポート機能を例にとると、印字内容、印字位置、印字フォント、印字サイズおよび印字色などが機能特有のパラメータに相当する。
【0031】
ここで、アプリケーションプログラム100Pのプログラム部分は、C言語やC++言語などのプログラミング言語で作成されたものである。一方で、機能データ540は、タグを用いる所定のデータ記述言語で作成されたものである。たとえば、機能データ540は、XML(Extensible Markup Language)形式で作成されたXMLデータである。そして、機能データ540は、コンパイルされず、XMLデータのまま記憶部113(ROM113a)に格納される。
【0032】
以下に、図4および図5を参照し、機能データ540(XMLデータ)について、レポート機能(1番目のブロックA)を例にとって説明する。
【0033】
<Function>function_a</Function>
この記述は、「関数名(プログラム名)」が「function_a」であることを示している。「function_a」に対応するプログラム(関数)は、後述の「メッセージ」の内容を印字するためのアプリケーションプログラム100Pのプログラム部分である。すなわち、機能データ540(XMLデータ)には、対応するアプリケーションプログラム100Pのプログラム部分の関数名が定義されている。
【0034】
<Message>ジョブエラーレポート</Message>
この記述は、「メッセージ」として「ジョブエラーレポート」という文字列を印字することを示している。「ジョブエラーレポート」という文字列は、「function_a」に対応するアプリケーションプログラム100Pによって印字される。
【0035】
<Position>0,0</Position>
この記述は、「メッセージ」としての文字列を(X座標,Y座標)=(0,0)の位置で印字することを示している。
【0036】
<Variable></Variable>
この記述は、参照する変数が無いことを示している。なお、参照する変数が有る場合には、その変数が記述される。
【0037】
<Font>MS Pゴシック</Font>
この記述は、「メッセージ」としての文字列の印字フォントをMSPゴシックにするということを示している。
【0038】
<FontSize>16</FontSize>
この記述は、「メッセージ」としての文字列の印字サイズを16ポイントにするということを示している。
【0039】
<FontColor>Blue</FontColor>
この記述は、「メッセージ」としての文字列の印字色を青色にするということを示している。
【0040】
<ExtFunction></ExtFunction>
この記述は、外部関数を使用しないことを示している。使用する外部関数が有る場合には、その外部関数名が記述される。
【0041】
なお、2番のブロックBから7番目のブロックGについては、詳細な内容は1番目のブロックAと異なるが、タグの定義の仕方など基本的な内容は1番目のブロックAと同様である。
【0042】
図3に戻って、アプリケーション層には、パーサープログラムなどと称される構文解析プログラム550が備えられる。構文解析プログラム550は、所定のデータ記述言語で作成された機能データ(XMLデータ)を解析し、単なるテキストをアプリケーションプログラム100Pで扱えるようなデータ構造の集合体に変換するためのプログラムである。このような構文解析プログラム550を備えることにより、機能データがXMLデータであっても、その機能データで定義された内容(パラメータなど)を認識することができる。
【0043】
また、アプリケーション層には、変換テーブル560が備えられる。この変換テーブル560では、複数種の機能にそれぞれ対応する各アプリケーションプログラム100Pについて、アプリケーションプログラム100Pのプログラム部分の関数名(プログラム名)を示すテキストデータ(文字列)と、そのアプリケーションプログラム100Pのプログラム部分の記憶部113上のアドレスとが対応付けられている。なお、変換テーブル560は、ライブラリー530とセットになっており、コンパイルされている。
【0044】
ここで、図6に示すように、コンパイルされる前の変換テーブル560は、アプリケーションプログラム100Pのプログラム部分の関数名(テキスト)に関数ポインタを対応付けたテーブルとなっている。たとえば、関数名「function_a」に対応する関数ポインタは「(*function_a)()」である。
【0045】
そして、この変換テーブル560は、コンパイルされることによって、アプリケーションプログラム100Pのプログラム部分の関数名にアプリケーションプログラム100Pのプログラム部分の記憶部113上のアドレス(番地)が対応付けられたテーブルとなる。たとえば、図6に示す例では、変換テーブル560がコンパイルされると、関数名「function_a」にアドレス「1200番地」が対応付けられる。
【0046】
なお、アプリケーションプログラム100Pのプログラム部分を書き換えた場合には、アプリケーションプログラム100Pのプログラム部分の記憶部113上のアドレスが変更されることがある。この場合には、変換テーブル560をコンパイルし直すことにより、アプリケーションプログラム100Pのプログラム部分の関数名に変更後のアドレスが対応付けられる。
【0047】
[機能を実行するための処理]
アプリケーションプログラム100Pのプログラム部分(ライブラリー530、変換テーブル560、構文解析プログラム550)と機能データ540(XMLデータ)は、別個に記憶部113に格納される。すなわち、機能データ540は、対応するアプリケーションプログラム100Pのプログラム部分と共にコンパイルされるわけではない。なお、アプリケーションプログラム100Pのプログラム部分(ライブラリー530、変換テーブル560、構文解析プログラム550)と機能データ540は、装置出荷前に記憶部113に格納される場合もあれば、装置出荷後にオプションとして記憶部113に格納される場合もある。
【0048】
たとえば、機能データ540(XMLデータ)は、外部装置200からダウンロードされる。あるいは、機能データ540は、外部メモリー300からダウンロードされる。機能データ540が外部装置200からダウンロードされる場合では、機能データ540は通信部120により取得され、記憶部113に格納される。この場合には、通信部120が「取得部」に相当する。また、機能データ540が外部メモリー300からダウンロードされる場合では、機能データ540は接続部130により取得され、記憶部113に格納される。この場合には、接続部130が「取得部」に相当する。
【0049】
そして、このように機能データがXMLデータのまま記憶部113に格納されることにより、対応する機能の実行が可能となる。すなわち、コンパイルは不要である。以下に、図7のフローチャートを参照し、レポート機能を例にとって、機能を実行するときの処理の流れを説明する。
【0050】
まず、図7のフローチャートのスタート時点では、レポート機能の実行に必要なアプリケーションプログラム100Pのプログラム部分(ライブラリー530、変換テーブル560、構文解析プログラム550)と、実行対象の機能に対応する機能データ540(XMLデータ)が外部装置200または外部メモリー300からダウンロードされ、記憶部113に格納されているとする。この状態において、レポート機能の実行指示を受けたとき、図7のフローチャートがスタートする。
【0051】
ステップS1において、CPU111は、構文解析プログラム550に基づき機能データ540を解析し、タグ間のテキストを抽出する。たとえば、図4に示すブロックAを例にとると、「function_a」、「ジョブエラーレポート」「0,0」、「MS Pゴシック」、「16」および「Blue」の各テキストが抽出される。そして、アプリケーションプログラム100Pで扱えるようなデータ構造の集合体に変換される(RAM113bに読み出される)。
【0052】
続いて、ステップS2において、CPU111は、変換テーブル560を参照し、抽出した関数名(ここでは、「function_a」となる)に対応付けられた記憶部113上のアドレスを判別する。すなわち、CPU111は、実行対象のアプリケーションプログラム100Pの記憶部113上のアドレスを判別する。
【0053】
その後、ステップS3において、CPU111は、判別したアドレスに記憶されたアプリケーションプログラム100Pのプログラム部分を読み出す。そして、CPU111は、構文解析プログラム550による解析結果(機能データ540で定義されたパラメータなど)をアプリケーションプログラム100Pに渡し、そのアプリケーションプログラム100Pに基づきレポート機能を実行するための処理を行う。すなわち、レポート機能を実行するための処理は、機能データ540で定義された内容を反映したものとなる。これにより、図8に示すようなレポートRPが印刷出力される。
【0054】
ここで、印刷出力されたレポートRPの印刷内容がユーザー(装置開発者や装置出荷先ユーザー)の意図とは異なっていることがある。この場合には、レポートRPの印刷内容が正しいもとのなるようデバッグする必要がある。
【0055】
たとえば、「ジョブエラーレポート」というメッセージ内容が誤りで、正しくは「エラーレポート」であったとする。この場合のデバッグでは、図9に示すように、機能データ540(XMLデータ)の<Message>〜</Message>というタグ間に記述された「ジョブエラーレポート」を「エラーレポート」に変更する。そして、変更後の機能データ540をダウンロードし、変更前の機能データ540を変更後の機能データ540に書き換える。これにより、図10に示すように、レポートRPのメッセージ内容が「ジョブエラーレポート」から「エラーレポート」に変更される。
【0056】
なお、デバッグを行うときには、アプリケーションプログラム100Pのプログラム部分に修正を加える必要はない。すなわち、機能データ540(XMLデータ)の書き換えだけでよく、結果として、コンパイルも不要となる。
【0057】
本実施形態の複合機100(画像形成装置)は、機能(レポート機能など)の実行に必要なアプリケーションプログラム100Pのプログラム部分(ライブラリー530、変換テーブル560)と、XML(タグを用いる所定のデータ記述言語)で作成されたデータを解析するための構文解析プログラム550と、アプリケーションプログラム100Pのデータ部分を示すデータである機能データ540を外部から取得し、記憶部113に別個に格納する通信部120(取得部)または接続部130(取得部)と、アプリケーションプログラム100Pに基づき機能を実行するための処理を行うCPU111(処理部)と、を備える。機能データ540は、XMLで作成されるとともに、コンパイルされずに記憶部113に格納される。機能データ540には、対応するアプリケーションプログラム100Pのプログラム部分の関数名が定義されている。記憶部113には、アプリケーションプログラム100Pのプログラム部分の関数名と、アプリケーションプログラム100Pのプログラム部分の記憶部113上のアドレスとを対応付けた変換テーブル560が記憶される。そして、CPU111は、機能を実行するための処理を行うときに、構文解析プログラム550に基づき機能データ540を解析するとともに、変換テーブル560を参照することによって機能データ540に定義されたアプリケーションプログラム100Pのプログラム部分の関数名に対応する記憶部113上のアドレスを判別し、判別した記憶部113上のアドレスに記憶されたアプリケーションプログラム100Pのプログラム部分を読み出す。
【0058】
本実施形態の構成では、アプリケーションプログラム100Pのプログラム部分の関数名(テキスト)と、アプリケーションプログラム100Pのプログラム部分の記憶部113上のアドレスとが対応付けられた変換テーブル560が記憶部113に記憶されるので、記憶部113に格納されたアプリケーションプログラム100Pのデータ部分(機能データ540)の記述言語がXMLであっても、変換テーブル560を参照することにより、機能データ540に対応するアプリケーションプログラム100Pのプログラム部分の記憶部113上のアドレスを判別することができる。すなわち、機能データ540に対応するアプリケーションプログラム100Pのプログラム部分を読み出すことができる。これにより、プログラム作成者からすると、アプリケーションプログラム100Pのデータ部分については、XMLで作成した機能データ540をそのまま記憶部113に格納するだけでよくなる(コンパイルが不要となる)ので、利便性が良い。
【0059】
ここで、XMLはC言語やC++言語などのように複雑ではなく、XMLでのアプリケーションプログラム100P(データ部分)の作成は簡単な規則(タグの使い方など)を覚えておくだけで行える。これにより、アプリケーションプログラム100Pの作成にかかる時間が短縮され、ソフトウェアの開発効率が向上する。
【0060】
また、XMLは制御コード(分岐や反復など)を含まないので、アプリケーションプログラム100P(データ部分)に不具合が発生し難くなり、品質が向上する。さらに、XMLは制御コードを含まないので、アプリケーションプログラム100P(データ部分)の可読性が向上する。すなわち、メンテナンス性が向上する。
【0061】
なお、仮にアプリケーションプログラム100Pのデータ部分にデバッグの必要が生じた場合には、機能データ540(XMLデータ)を修正し、その修正した機能データ540を記憶部113に格納するだけでよく、アプリケーションプログラム100Pのプログラム部分(分岐や反復などの制御コード)を修正する必要はない。このため、デグレードが発生し難くなる。また、修正した機能データ540のコンパイルは不要であるので、作業工数が短縮される。
【0062】
また、本実施形態では、上記のように、アプリケーションプログラム100Pのプログラム部分は、複数の機種間で共通して使用できるプログラムである。このように構成すれば、或る複合機100のアプリケーションプログラム1000Pを作成した後、機種が異なる別の複合機100のアプリケーションプログラム100Pを作成する場合、アプリケーションプログラム100Pのプログラム部分については、既に作成されたアプリケーションプログラム100Pのプログラム部分を流用することができる。すなわち、アプリケーションプログラム100Pのデータ部分だけを作成すればよい。これにより、ソフトウェアの開発効率がより向上する。
【0063】
今回開示された実施形態は、すべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記実施形態の説明ではなく特許請求の範囲によって示され、さらに、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれる
【0064】
たとえば、制御コード(if文などの分岐処理やfor文などのループ処理)を構文解析プログラムで解釈できるようにしてもよい。これにより、たとえば、「オプション機能が搭載されているときには所定テキストを印刷し、オプション機能が搭載されていないときには所定テキストを印刷しない」といった処理を機能データの中で定義することができるようになる。
【符号の説明】
【0065】
100 複合機(画像形成装置)
100P アプリケーションプログラム
111 CPU(処理部)
113 記憶部
120 通信部(取得部)
130 接続部(取得部)
540 機能データ
550 構文解析プログラム
560 変換テーブル
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10