説明

画像形成装置のアプリケーション開発方法及び画像形成装置

【課題】コンピュータ知識の十分ではない一般ユーザも容易にアプリケーションを開発できる環境を提供しつつ、アプリケーションのアップロード過程及びダウンロード過程が不要な、画像形成装置のアプリケーションを開発する方法を提供する。
【解決手段】画像形成装置のアプリケーションを開発するためのツールを提供するソリューションが画像形成装置に保存されており、このアプリケーション開発ソリューションの実行によって、画像形成装置の機能を表示する。ユーザの入力情報に基づいて、画像形成装置の機能を組み合わせることによって、ユーザの入力情報に対応するアプリケーションを生成した後に画像形成装置に保存する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像形成装置のアプリケーション開発方法及び装置に関する。
【背景技術】
【0002】
最近、携帯電話機能とコンピュータ機能とが結合されたスマートフォン(smart phone)が一般化されるにつれ、スマートフォンのアプリケーション開発への関心が高まっている。特に、殆どのスマートフォンのメーカーやベンダー(vendor)は、アプリケーション開発を活発に行うために、一般人にスマートフォンの内部構造、例えば、API(application programming interface)を公開する開放型構造(open architecture)を採択している。かようなスマートフォンのアプリケーション開発政策が成功裏に進められることによって、テレビ(TV)分野でも、スマートフォンと同様に、スマートTVに係わる開発がなされている。ただ、プリンタのような画像形成装置分野では、まだアプリケーション開発への研究が微弱な状態である。
【0003】
該画像形成装置におけるアプリケーション開発に関わる先行技術文献としては、特許文献1、2及び3などがある
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2007−174400
【特許文献2】特開2005−080019
【特許文献3】特開2009−065713
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明の課題は、コンピュータ知識の十分ではない一般ユーザも容易にアプリケーションを開発できる環境を提供しつつ、アプリケーションのアップロード過程及びダウンロード過程が不要な、画像形成装置のアプリケーションを開発する方法及びその装置を提供することである。また、かようなアプリケーションを開発する方法及びその装置を具現するための記録媒体を提供することである。また、前記のような技術的課題に限定されるものではなく、本明細書の内容から類推される他の技術的課題を含む。
【課題を解決するための手段】
【0006】
本発明の一側面による画像形成装置のアプリケーションを開発する方法は、前記画像形成装置に保存され、前記画像形成装置のアプリケーションを開発するためのツールを提供するソリューションを実行する段階、前記ソリューションの実行によって、前記画像形成装置の機能を表示する段階、ユーザの入力情報に基づいて、前記機能を組み合わせることにより、前記入力情報に対応するアプリケーションを生成する段階、及び前記生成されたアプリケーションを前記画像形成装置に保存する段階を含む。
【0007】
本発明の他の側面による画像形成装置は、少なくとも画像を形成する機能を含む複数個の機能を有するハードウェア要素と、前記画像形成装置のアプリケーションを開発するためのツールを提供するソリューション、及び、前記ソリューションを使用して開発された少なくとも一つのアプリケーション、が保存されているストレージと、前記ストレージに保存されたアプリケーションを実行することによって、前記アプリケーションによって、前記ハードウェア要素の動作を制御するプロセッサと、を含み、前記アプリケーションは、前記ソリューションの実行によって表示される前記画像形成装置の機能の組み合わせから生成される。
【0008】
本発明のさらに他の側面による画像形成装置の記録媒体には、前記画像形成装置のネイティブ関数(native function)を含むファームウェア(firmware)に該当するファームウェア・ブロックと、前記ネイティブ関数と前記画像形成装置のAPI関数とを連結するラッパ関数(wrapper function)の集合に該当するラッパ・ブロックと、前記画像形成装置のAPI関数の集合に該当するAPIブロックと、前記API関数を利用し、前記画像形成装置のアプリケーションを開発するためのツールを提供するソリューションに該当するソリューション・ブロックと、を含む階層的構造のデータブロックが記録される。
【発明の効果】
【0009】
アプリケーション開発ソリューションが画像形成装置に保存されており、該アプリケーション開発ソリューションを利用して開発されたアプリケーションが、画像形成装置に直ちに保存されるので、アプリケーションのアップロード過程及びダウンロード過程がなくなる。また、ユーザがグラフィック形態で表示された画像形成装置の機能を組み合わせてアプリケーションを開発できるので、コンピュータ知識の十分ではない一般ユーザも、容易にアプリケーションを開発できる環境を提供する。これにより、画像形成装置に対するユーザ要求事項が即座に充足される。
【図面の簡単な説明】
【0010】
【図1】本発明の一実施形態によるプリンタのアプリケーション開発環境を示した図面である。
【図2】本発明の一実施形態によるプリンタの構成図である。
【図3】本発明の一実施形態によるプリンタのアプリケーション開発装置を示した図面である。
【図4】図3に示したAPIブロックとモジュール・ブロックとの連結関係の一例を示した図面である。
【図5】本発明の他の実施形態によるプリンタのアプリケーション開発装置を示した図面である。
【図6】図5のAPIブロックとソリューション・ブロックとの連結関係の一例を示した図面である。
【図7】本発明の一実施形態によるプリンタのアプリケーション開発方法のフローチャートである。
【図8】本発明の一実施形態によるプリンタのアプリケーション実行方法のフローチャートである。
【図9】本発明の他の実施形態によるプリンタのアプリケーション開発方法のフローチャートである。
【図10】本発明の他の実施形態によるプリンタのアプリケーション実行方法のフローチャートである。
【図11】本発明の一実施形態によるプリンタのアプリケーションを開発するためのグラフィック・ツールを含むウィンドウを示した図面である。
【図12】図11に示したウィンドウのグラフィック・ツールを利用してアプリケーションを開発する一例を示した図面である。
【図13】図11に示したウィンドウのグラフィック・ツールを利用してアプリケーションを開発する他の例を示した図面である。
【発明を実施するための形態】
【0011】
以下、図面を参照しつつ、本発明の実施形態について詳細に説明する。特に、以下では、特許請求の範囲に示す画像形成装置の具体的な例として、用紙に物理的な画像を形成する印刷機能、用紙に記録された画像を検出するスキャン機能などを有するプリンタについて、本発明の一実施形態として説明する。ただし、かようなプリンタは、複合機(MFP、multifunctional peripheral)のような他の名称で呼称される場合もある。また、特許請求の範囲の画像形成装置は、以下で記述するプリンタ以外にも、他種の画像形成装置にも適用される。
【0012】
図1は、本発明の一実施形態によるプリンタのアプリケーション開発環境を示した図面である。図1には、プリンタ100の一例として印刷機能、スキャン機能などを有する複合機が示されている。しかし、これは一例であって、プリンタ100は、かような複合機以外にも、他種のプリンタ、例えば、スキャン機能を有さないプリンタになる場合がある。また、図1には、ホスト200の一例としてPC(personal computer)が示されている。しかし、これは一例であって、ホスト200は、PC以外にも他種のホスト、例えば、スマートフォンのように、コンピュータ機能を有する携帯電話になる場合がある。
【0013】
プリンタ100は、ホスト200から伝送されたテキスト、イメージのようなコンテンツを印刷する機能を基本的に遂行せねばならないので、プリンタ100とホスト200は、ほぼ常に有線又は無線で連結されている。従って、ホスト200は、スマートフォン、TVのような他の電子機器に比べて、プリンタ100にさらに容易に接続される。かようなプリンタ100のアクセス容易性は、ホスト200でプリンタ100のアプリケーションを開発する際に要求される優秀な環境を提供できる。
【0014】
一方、スマートフォンのような埋め込みシステム(embedded system)の場合、アプリケーション開発を活発に行うために、ハードウェアメーカーやベンダーが一般人にAPIを公開する開放型構造を採択している。一般的に、アプリケーション開発は、埋め込みシステムでない、アプリケーション開発に要求されるハードウェア性能を支援するPCでなされる。PCで、スマートフォンのアプリケーションを開発するためには、アプリケーションを、スマートフォンで実行(execute)可能なコードで構成されたバイナリファイル(binary file)に翻訳するクロスコンパイラ(cross compiler)と、アプリケーションをPCで仮想的に実行するためのエミュレータ(emulator)と、がPCに設置されていなければならない。このように、PCで開発されたアプリケーションは、オンライン・アプリケーションストア(online application store)にアップロード(upload)される。ユーザは、このように、アップロードされたアプリケーションを、自身のスマートフォンにダウンロード(download)して使用する。
【0015】
前記のように、既存のアプリケーション開発環境では、アプリケーション開発者が、PCにクロスコンパイラ、エミュレータのようなプログラムを設置して使用せねばならない。このことは、コンピュータに係わる知識が十分ではない殆どの一般人には、アプリケーションを開発するにあたって障害として作用する。また、オンライン・アプリケーションストアにアプリケーションをアップロードし、オンライン・アプリケーションストアからアプリケーションをダウンロードする過程は、スマートフォンとPCとをUSB(Universal Serial Bus)やネットワークで連結する過程などが要求されるので、ユーザにとって、使い勝手が思わしくない。特に、コンピュータ知識が十分ではない一般ユーザの場合、スマートフォンのような埋め込みシステムについて、いかなる要求事項が生じても、これを充足させるファームウェア・アップデートやアプリケーション公開がなされるまで待たなければならなかった。
【0016】
以下で説明する実施形態では、プリンタ100のアクセス容易性を利用し、PCにクロスコンパイラ、エミュレータのようなプログラムを設置せずとも、PCの画面上のグラフィック・ツールを利用し、コンピュータ知識の十分ではない一般ユーザも、容易にアプリケーションを開発できる環境を提供するものである。これにより、プリンタ100に対するユーザの要求事項が即座に充足される。また、以下で説明する実施形態では、オンライン・アプリケーションストアにアプリケーションをアップロードし、オンライン・アプリケーションストアからアプリケーションをダウンロードする過程を除去することにより、ユーザの不便さを最小化できる。
【0017】
図2は、本発明の一実施形態によるプリンタ100の構成図である。図2を参照すれば、本実施形態によるプリンタ100は、プロセッサ110、ストレージ120、印刷部130、スキャン部140、通信部150、及びユーザインターフェース(UI)パネル160から構成される。図2に示したプリンタ100は、印刷機能、スキャン機能などを有する。しかし、これは一例であって、以下で記述する実施形態の技術的特徴は、他種のプリンタ、例えば、スキャン機能を有さないプリンタにも適用される。また、前記のようなハードウェア要素は、プリンタの一般的な機能を有する基本的な構成要素の例示であって、図2に示したプリンタ100に、他のハードウェア要素がさらに追加される場合がある。例えば、プリンタ100は、FAX機能を支援するために、PSTN(public switched telephone network)ベースの電話機能を有するハードウェア要素をさらに含んでもよい。
【0018】
プロセッサ110は、ストレージ120に保存されたアプリケーションを実行することにより、このアプリケーションによって、プリンタ100のハードウェア要素の動作を制御する。さらに詳細に説明すれば、プロセッサ110は、OS(operating system)、デバイスドライバ(device driver)のようなプリンタ100のファームウェアに基づいて、アプリケーションの命令(instructions)を実行することによって、このアプリケーションの命令によって、プリンタ100のハードウェア要素、例えば、ストレージ120、通信部150、印刷部130、スキャン部140、UIパネル160の動作を制御する。これにより、アプリケーションは、プリンタ100のある機能を遂行(perform)できる。本実施形態で、用語「実行」は、プロセッサ110がアプリケーションの命令を履行(carry out)することを意味し、用語「遂行」は、アプリケーションのようなコンピュータ・プログラムが実行され、プリンタ100のある機能を遂行することを意味する。かようなプロセッサ110は、1つのチップ(chip)から具現されるか、又は、CPU(central processing unit)や専用プロセッサのような複数個のチップに分離されて具現される。専用プロセッサは、プリンタ100の特定作業を専門的に担当するプロセッサであり、ネットワークを介して送受信されるデータパケットを処理するネットワーク・プロセッサなどを例に挙げることができる。
【0019】
ストレージ120は、プロセッサ110の制御によってデータを保存及び提供する。ストレージ120には、OS、デバイスドライバなどのファームウェア、アプリケーションのような実行ファイル、印刷部130に印刷が要請されたテキスト、イメージのようなコンテンツなどの多様なデータが保存される。ストレージ120は、不揮発性メモリの一種であるフラッシュメモリ(flash memory)のような1つの記録媒体で具現されるか、又は、RAM(random−access memory)、ROM(read−only memory)、ハードディスク(hard disk)のようなさまざまな記録媒体に分割して具現される。さらに、ストレージ120は、プリンタ100に着脱可能なメモリ装置も含み得る。以下で記述するアプリケーション開発ソリューションというプログラムは、例えば、プリンタ100に着脱可能なメモリ装置に保存される。
【0020】
印刷部130は、プロセッサ110の制御によって、プロセッサ110から入力されたテキスト、イメージのようなコンテンツを印刷する。印刷部130は、用紙を移送する機械的な部分と、この用紙に画像を形成するエンジン部分と、に区分される。スキャン部140は、プロセッサ110の制御によって、スキャン部140に挿入された用紙上の画像を検出する。スキャン部140は、用紙上の画像を検出するイメージセンサと、イメージセンサを移送する機械的な部分と、に区分される。印刷部130とスキャン部140との具体的な構造と動作は、本実施形態の特徴に該当せず、図2に示した実施形態が属する技術分野で周知の事項であるから、これらについての詳細な説明は省略する。
【0021】
通信部150は、プロセッサ110の制御によって、ホスト200など他の装置との通信を遂行する。例えば、通信部150は、ホスト200が伝送したコンテンツと、これについてのホスト200からの印刷命令とを受信し、ホスト200に、その処理結果を示す応答を伝送できる。通信部150は、USBケーブル、ネットワーク・ケーブルのような通信ケーブルが挿入されるコネクタ(connector)のような機械的な部分と、USB規格、ネットワーク通信規格のようなさまざまな通信方式によって、データ伝送を制御する回路的な部分と、に区分される。前記のUSB、ネットワークなどは、現在使用中である多様な通信方式のうち一例に過ぎず、通信部150は、他の通信方式、例えば、ブルートゥース(Bluetooth(登録商標))を支援することもできる。
【0022】
本実施形態では、ホスト200で開発されたアプリケーションを、そのアップロード過程及びダウンロード過程なしに、ストレージ120にすぐに保存させるために、ホスト200は、プリンタ100のアプリケーションを開発するためのツールを提供するアプリケーション開発ソリューションを、ストレージ120から読み取って実行し、このアプリケーション開発ソリューションを使用して開発されたアプリケーションを、ストレージ120に保存できる。このために、通信部150は、ホスト200によって、ストレージ120が認識されることができるように、ストレージ120とホスト200とを連結する機能を保有できる。もしホスト200ではないプリンタ100でアプリケーションを開発する場合であるならば、通信部150は、かような機能を有する必要がない。
【0023】
プリンタ100は、ワード作業、インターネット・サーフィング(web surfing)などの一般的なデータ処理作業を遂行するPCとは異なり、印刷作業やスキャン作業を処理するための制限された資源を有する埋め込みシステムの形態に設計されるので、プリンタ100には、マウス、キーボード、モニタのような一般的な入出力装置が一般的には装着されない。以下で記述する実施形態によれば、アプリケーションを開発するためのツールが、GUI(graphic user interface)の形態で提供され、テキスト入力が要求されないので、UIパネル160のタッチスクリーンを利用してアプリケーションを開発可能である。この場合、むしろ、アプリケーション開発が可能なほどのプリンタ100のハードウェア性能、例えば、プロセッサ110の性能及びストレージ120の容量のサポートがなければならない。
【0024】
通信部150が、ストレージ120とホスト200とを連結する機能を有する場合、ストレージ120に保存されたアプリケーション開発ソリューションは、通信部150を介して、ホスト200によって読み取られて実行される。例えば、プリンタ100とホスト200とがUSBによって連結されている場合、通信部150は、USBのMSC(mass storage class)プロトコルを利用し、ストレージ120とホスト200とを連結する。その場合、ストレージ120は、ホスト200によって、MSCプロトコルを介して、移動式ディスク(removable disk)として認識される。また、プリンタ100とホスト200とがネットワークによって連結されている場合、通信部150は、ネックワークのSMB(server message block)プロトコルを利用し、ストレージ120とホスト200とを連結する。その場合、ストレージ120は、ホスト200によって、SMBプロトコルを介して、ネットワークドライブとして認識される。
【0025】
前記のUSB、ネットワークなどは、現在使用中である多様な通信媒体のうち一例に過ぎず、ホスト200とプリンタ100のストレージ120は、他の通信媒体を介して連結されもする。ホスト200と、プリンタ100のストレージ120とを連結する通信媒体を介して、プリンタ100のアプリケーション開発のために使われるデータ、例えば、アプリケーション開発ソリューション、ユーザ入力情報、及び、これを使用して生成されたアプリケーションが伝送される。また、ホスト200が印刷しようとするコンテンツデータなどのような、プリンタ100のある機能遂行のためのデータを伝送するための通信媒体も要求される。前者の通信媒体と後者の通信媒体は、別途に存在するか、又は、1つの媒体である。例えば、ホスト200とプリンタ100は、USBを介して、アプリケーション開発と関連したデータを伝送しつつ、ネットワークを介して、プリンタ100の印刷作業と関連したデータを伝送する。あるいは、ホスト200とプリンタ100は、1つのUSBを介して、アプリケーション開発と関連したデータと、プリンタ100の印刷作業と関連したデータとを同時に伝送する。その場合、通信部150は、USBのプリンタクラス(printer class)・プロトコルを利用し、プリンタ100とホスト200とを連結し、ホスト200は、プリンタクラス・プロトコルを利用し、プリンタ100の印刷作業と関連したデータを伝送する。
【0026】
UIパネル160は、プロセッサ110の制御によって、ユーザとプリンタ100とのインターフェーシングを遂行する。例えば、UIパネル160は、プロセッサ110の制御によって、ユーザをしてプリンタ100の機能の選択及び組み合わせを行わせるためのツールをグラフィック形態で表示できる。ユーザがこのツールを利用し、ある命令又は情報をUIパネル160に入力すると、UIパネル160は、この命令又は情報を、プロセッサ110に伝達する。UIパネル160は、ユーザにプリンタ100の機能を利用するためのツールをグラフィック形態で表示するので、プリンタ100の機能をアイコン形態で表示できる。ここで、プリンタ100の機能は、API関数の機能でもあり、API関数の組み合わせに該当するモジュールの機能でもある。前述のように、プリンタ100は、印刷作業やスキャン作業を処理するための制限された資源を有する埋め込みシステムの形態で設計されるので、一般にプリンタ100には、マウス、キーボード、モニタのような一般的な入出力装置が装着されない。そこで一般にUIパネル160は、タッチスクリーン(touch screen)や、小さいLCD(liquid crystal display)画面や、いくつの入力ボタンによって具現される。
【0027】
図3は、本発明の一実施形態によるプリンタ100のアプリケーション開発装置を示した図面である。図3に示した実施形態は、API関数の組み合わせが、あらかじめクロスコンパイルされた形態のバイナリファイルであるモジュールを利用し、プリンタ100のアプリケーションを開発する場合である。ホスト200に保存されたクロスコンパイラによってコンパイルされる場合とは異なり、あらかじめクロスコンパイルされた形態のバイナリファイルであるモジュールの組み合わせに該当するアプリケーションが生成され、プリンタ100のストレージ120に自動的に保存されるので、ホスト200にクロスコンパイラとエミュレータとを設置する必要がなく、アプリケーションのアップロード過程及びダウンロード過程も不要になる。図3を参照すれば、ストレージ120には、F/W(firmware)ブロック31、ラッパ(wrapper)・ブロック32、APIブロック33、モジュール(module)・ブロック34、及びソリューション(solution)・ブロック35の階層的構造を有するデータブロックが保存されている。前述のように、ストレージ120には、かようなデータブロック以外にも、テキスト、イメージなどのコンテンツやアプリケーションなど多様なデータが保存される。
【0028】
F/Wブロック31は、プロセッサ110によって実行され、プリンタ100のハードウェア要素を駆動することによって、プリンタ100の多様な機能を遂行(perform)するファームウェアに該当するデータブロックである。かようなファームウェアの代表的な例としては、プリンタ100のプラットホーム(platform)を構成するOS、デバイスドライバなどを挙げることができる。プリンタ100のハードウェア要素の例としては、通信部150、印刷部130、スキャン部140、UIパネル160などを挙げることができる。ファームウェアは、プリンタ100の多様な機能それぞれを遂行するためのプリンタ100のハードウェア要素の動作を、プロセッサ110で実行可能なバイナリコード(binary code)で記述し、プロセッサ110は、かようなファームウェアによって、プリンタ100の構成要素の動作を制御する。F/Wブロック31は、プロセッサ110によって実行され、プリンタ100の単位機能それぞれを遂行するネイティブ関数(native function)を含む。1つのネイティブ関数は、プリンタ100の1つの単位機能を遂行するためのプリンタ100のハードウェア構成要素の動作を、バイナリコードで記述する。例えば、1つのネイティブ関数は、スキャン部140のスキャン開始のような大きい機能を遂行し、別の1つのネイティブ関数は、印刷部130での用紙移送のためのモータの1°回転のような小さい機能を遂行する。プロセッサ110は、F/Wブロック31に含まれたネイティブ関数それぞれによって、各ネイティブ関数に対応する機能が遂行されるように、プリンタ100の少なくとも1つの構成要素の動作を制御する。
【0029】
ラッパ・ブロック32は、F/Wブロック31のネイティブ関数と、APIブロック33のAPI関数とを1対1で連結するラッパ関数(wrapper function)の集合に該当するデータブロックである。APIブロック33は、ラッパ・ブロック32のラッパ関数を介して、F/Wブロック31のネイティブ関数に1対1で連結され、プロセッサ110によって実行され、プリンタ100の単位機能それぞれを遂行するAPI関数の集合に該当するデータブロックである。かようなAPI関数は、ネイティブ関数の上位階層に存在し、ネイティブ関数とは異なり、アプリケーション内で直接呼び出し(call)され、いかなるコンピュータシステムのOSにも関係なく使われてもよい。それにより、アプリケーション開発者は、PCでかようなAPI関数を使用し、PCではない他の埋め込みシステムのアプリケーションを開発できる。即ち、本実施形態でAPI関数は、アプリケーションが、プリンタ100のファームウェアで、ある機能を遂行することを要請できるように、ファームウェアとアプリケーションとのインターフェーシングを行う役割を果たす。
【0030】
モジュール・ブロック34は、プロセッサ110によって実行され、APIブロック33のAPI関数のうちの一部のAPI関数の組み合わせに該当する機能を遂行するモジュールの集合に該当するデータブロックである。従来は、アプリケーション開発者がPC上で、開発言語として指定されたプログラミング言語で、ハードウェアメーカーやベンダーから提供されたAPI関数を組み合わせ、スマートフォンのような埋め込みシステムのアプリケーションを作成した。それにより、プログラミング言語で作成されたアプリケーションを、埋め込みシステムで実行可能なバイナリファイルに翻訳するクロスコンパイルが要求される。本実施形態では、かようなクロスコンパイル過程を除去するために、モジュールそれぞれは、APIブロック33のAPI関数のうちの一部のAPI関数の組み合わせが、あらかじめクロスコンパイルされた形態のバイナリファイルである。即ち、本実施形態でのモジュールそれぞれは、APIブロック33のAPI関数のうちの一部のAPI関数の組み合わせを利用し、この組み合わせに該当するプリンタ100の機能を、プリンタ100で実行可能なバイナリコードで記述する。ここで、プリンタ100で実行可能なバイナリコードとは、プリンタ100のファームウェアによって実行可能なバイナリコードを意味し、結局、プロセッサ110によって実行可能なバイナリコードを意味する。
【0031】
図4は、図3に示したAPIブロック33と、モジュール・ブロック34との連結関係の一例を示した図面である。図4を参照すれば、モジュール1は、API_1とAPI_2との組み合わせに該当し、モジュール2は、API_2、API_3及びAPI_4の組み合わせに該当し、モジュール3は、API_3とAPI_5との組み合わせに該当する。例えば、プリンタ100のストレージ120に保存されたアドレスブックから、ユーザのメールアドレスを読み取るAPI関数、メールアドレスのうち一部を指定するAPI関数、及びあるメールアドレスを介して受信された電子メールを検出するAPI関数を組み合わせて、プリンタ100のユーザのうち、あらかじめ指定された少なくとも1ユーザのメールアドレスを介して受信されたメールを検出するモジュールを生成できる。
【0032】
再び図3を参照すれば、ソリューション・ブロック35は、プリンタ100のAPI関数を利用し、プリンタ100のアプリケーションを開発するためのツールを、GUI(graphical user interface)の形態で提供するアプリケーション開発ソリューションに該当するデータブロックである。図3に示した実施形態で、アプリケーション開発ソリューションは、ユーザが、API関数の組み合わせに該当するモジュールのうち一部を選択して組み合わせることができるようにするためのグラフィック・ツールを提供する。さらに詳細に説明すれば、アプリケーション開発ソリューションは、ユーザとのインタラクション(interaction)を担当する最上位階層であり、この実行によって、モジュール・ブロック34からモジュールの情報を読み取ることができ、モジュールの情報を、ユーザに提供できる。例えば、アプリケーション開発ソリューションは、モジュールの情報をアイコンの形態でユーザに表示できる。ユーザは、かようなモジュールの情報を参照し、モジュールを多様に組み合わせ、多様なアプリケーションを作成できる。さらに、アプリケーション開発ソリューションは、ユーザがモジュールを修正するか、あるいは新しいモジュールを生成できるようにする機能を提供する。例えば、アプリケーション開発ソリューションは、APIブロック33から、API関数の情報を読み取ることができ、API関数の情報をユーザに提供できる。ユーザは、かようなAPI関数の情報を参照し、モジュールを修正し、あるいは新しいモジュールを生成できる。
【0033】
図3に示した実施形態でのアプリケーション開発ソリューションは、プリンタ100のアプリケーションを開発するためのツールを、ホスト200のOSで実行可能なバイナリコードで記述でき、アプリケーション開発ソリューションが、ホスト200によって実行されるのである。あるいは、アプリケーション開発ソリューションは、プリンタ100のアプリケーションを開発するためのツールを、プリンタ100のOSで実行可能なバイナリコードで記述でき、アプリケーション開発ソリューションが、プリンタ100によって実行されるのである。
【0034】
図5は、本発明の他の実施形態によるプリンタ100のアプリケーション開発装置を示した図面である。図5に示した実施形態は、ユーザによって開発されたアプリケーションが、プリンタ100のストレージ120に保存されたクロスコンパイラによってコンパイルされる場合である。ホスト200に保存されたクロスコンパイラによってコンパイルされる場合とは異なり、ユーザによって開発されたアプリケーションは、プリンタ100のストレージ120に自動的に保存されてコンパイルされるので、ホスト200にクロスコンパイラとエミュレータとを設置する必要がなく、アプリケーションのアップロード過程及びダウンロード過程も不要となる。図5を参照すれば、ストレージ120には、F/Wブロック51、ラッパ・ブロック52、コンパイラ・ブロック53、APIブロック54及びソリューション・ブロック55の階層的構造を有するデータブロックが保存されている。F/Wブロック51、ラッパ・ブロック52及びAPIブロック54は、図3に示したF/Wブロック31、ラッパ・ブロック32及びAPIブロック33と同じデータブロックであるから、これらについての説明は省略する。
【0035】
コンパイラ・ブロック53は、アプリケーション開発ソリューションを使用して開発されたアプリケーションのプログラミングコードを、プリンタ100で実行可能なバイナリコードに翻訳するためのクロスコンパイラに該当するデータブロックである。ソリューション・ブロック55は、プリンタ100のAPI関数を利用し、プリンタ100のアプリケーションを開発するためのツールを、GUIの形態で提供するアプリケーション開発ソリューションに該当するデータブロックである。図5に示した実施形態で、アプリケーション開発ソリューションは、ユーザがAPI関数のうち、一部を選択して組み合わせることができるようにするためのグラフィック・ツールを提供する。さらに詳細に説明すれば、アプリケーション開発ソリューションは、ユーザとのインタラクションを担当する最上位階層であり、APIブロック54から、この実行によって、APIの情報を読み取ることができ、APIの情報をユーザに提供できる。例えば、アプリケーション開発ソリューションは、APIの情報をアイコンの形態でユーザに表示できる。ユーザは、かようなAPIの情報を参照し、APIを多様に組み合わせて多様なアプリケーションを作ることができる。
【0036】
図5に示した実施形態でのアプリケーション開発ソリューションは、プリンタ100のアプリケーションを開発するためのツールを、ホスト200のOSで実行可能なバイナリコードで記述でき、アプリケーション開発ソリューションが、ホスト200によって実行されるのである。あるいは、アプリケーション開発ソリューションは、プリンタ100のアプリケーションを開発するためのツールを、プリンタ100のOSで実行可能なバイナリコードで記述でき、アプリケーション開発ソリューションが、プリンタ100によって実行できるのである。
【0037】
図6は、図5に示したAPIブロック54と、ソリューション・ブロック55との連結関係の一例を示した図面である。図6を参照すれば、アプリケーション(APP)1は、API_1とAPI_2との組み合わせに該当し、アプリケーション2は、API_2、API_3及びAPI_4の組み合わせに該当し、アプリケーション3は、API_3とAPI_5との組み合わせに該当する。例えば、プリンタ100のストレージ120に保存されたアドレスブックから、ユーザのメールアドレスを読み取るAPI関数、メールアドレスのうち一部を指定するAPI関数、あるメールアドレスを介して受信された電子メールを検出するAPI関数、電子メールのコンテンツを印刷可能な形態に変換するAPI関数、印刷用紙を移送するAPI関数、印刷可能な形態のデータを印刷するAPI関数などを組み合わせ、プリンタ100のユーザのうち、あらかじめ指定された少なくとも1ユーザのメールアドレスを介して受信されたメールを印刷するアプリケーションを生成できる。前記のAPI関数は、一例に過ぎず、ハードウェアメーカーやベンダーによって、多様なAPI関数が提供される。
【0038】
図7は、本発明の一実施形態によるプリンタ100のアプリケーション開発方法のフローチャートである。図7に示したプリンタ・アプリケーション開発方法は、API関数の組み合わせが、あらかじめクロスコンパイルされた形態のバイナリファイルであるモジュールを利用し、プリンタ100のアプリケーションを開発する場合であり、図3に示したプリンタ100及びホスト200で、時系列的に処理される段階から構成される。従って、以下省略された内容であっても、図3に示したプリンタ100及びホスト200について、以上で説明された内容は、図7に示したプリンタ・アプリケーション開発方法にも適用される。
【0039】
71段階で、ユーザによって、プリンタ100の電源がオン(ON)になれば、プリンタ100のハードウェア要素に電力が供給になる。プリンタ100は、ホスト200と、USBケーブル、ネットワーク・ケーブルのような通信ケーブルによって連結されている。
72段階でホスト200は、プリンタ100を認識する。例えば、ホスト200には、プリンタ100のドライバが設置されており、ホスト200のOSは、このドライバによって、プリンタ100を認識できる。ホスト200とプリンタ100とが1対1で連結されていれば、ホスト200は、プリンタ100をローカルプリンタと認識する。ホスト200とプリンタ100とが、ネットワークを介して連結されていれば、ホスト200は、プリンタ100をネットワークプリンタと認識する。
【0040】
図3に示した実施形態で、プリンタ100のアプリケーション開発ソリューションなど、プリンタ100のアプリケーション開発のためのデータは、プリンタ100のストレージ120に保存されている。ホスト200は、プリンタ100のストレージ120から、プリンタ100のアプリケーション開発ソリューションを読み取って実行する。ホスト200は、プリンタ100のアプリケーション開発ソリューションを利用して生成されたアプリケーションを、プリンタ100のストレージ120に保存する。このように、ホスト200がプリンタ100のストレージ120からあるデータを読み込み、又は、プリンタ100のストレージ120にあるデータを保存するためには、ホスト200は、プリンタ100のストレージ120を、ホスト200のローカルストレージのように認識できねばならない。即ち、図7に示した実施形態でホスト200は、プリンタ100をローカルプリンタ又はネットワークプリンタと認識すると同時に、プリンタ100のストレージ120を認識する。
【0041】
ホスト200がプリンタ100のストレージ120を認識するためには、ホスト200が、ホスト200と、プリンタ100のストレージ120とを連結する通信媒体が何かであるかを識別せねばならず、この通信媒体のタイプによって、ホスト200と、プリンタ100のストレージ120とを連結する通信プロトコルが変わる。それにより、73段階でホスト200は、ホスト200と、プリンタ100のストレージ120との連結方式を識別する。例えば、ホスト200と、プリンタ100のストレージ120とが、USBで連結されている場合、73段階でホスト200は、ホスト200と、プリンタ100のストレージ120との連結方式をUSBと識別し、74段階に進む。もしホスト200と、プリンタ100のストレージ120とがネットワークで連結されている場合、73段階でホスト200は、ホスト200と、プリンタ100のストレージ120との連結方式をネットワークと識別し、75段階に進む。74段階でホスト200は、USBのMSCプロトコルを介して、プリンタ100のストレージ120を移動式ディスクとして認識する。75段階でホスト200は、SMBプロトコルを介して、プリンタ100のストレージ120をネットワークドライブとして認識する。
【0042】
76段階で、ホスト200がユーザからプリンタ100のアプリケーション開発ソリューションに対する実行命令を入力され、これをプリンタ100に伝達すると、プリンタ100は、プリンタ100のストレージ120のAPIブロック33に含まれたAPI関数の実行、モジュール・ブロック34に含まれたモジュールの実行、及び、ソリューション・ブロック35に含まれたアプリケーション開発ソリューションの実行に必要なストレージ120のメモリ空間を確保し、API関数、モジュール、アプリケーション開発ソリューションを初期化することによって、アプリケーション開発に要求されるプリンタ100の環境を設定する。
例えば、ホスト200の画面には、プリンタ100のアプリケーション開発ソリューションを示すアイコンが表示される。ユーザが、マウスのような入力装置を利用してこのアイコンをクリックすれば、ホスト200は、ユーザからプリンタ100のアプリケーション開発ソリューションに対する実行命令を入力され、このように入力された実行命令をプリンタ100に伝達する。API関数、モジュール、アプリケーション開発ソリューションの初期化の例としては、API関数、モジュール、アプリケーション開発ソリューションのプログラム内部変数を初期値に設定することを挙げることができる。76段階でのプリンタ100の環境設定が完了すれば、プリンタ100のストレージ120に保存されたアプリケーション開発ソリューションは、ホスト200によって読み取り可能な状態に置かれる。76段階でのプリンタ100の環境設定過程は、プリンタ100のハードウェア性能、プリンタ100のAPI関数の特性などによっては省略できる。
【0043】
77段階でホスト200は、74段階又は75段階で認識されたプリンタ100のストレージ120から、プリンタ100のアプリケーション開発ソリューションを読み取って実行する。即ち、アプリケーション開発ソリューションの実行によって、プリンタ100のアプリケーションを開発するためのグラフィック・ツールが表示されたウィンドウ(window)が、ホスト200の画面上に現れる。78段階でホスト200は、プリンタ100のアプリケーションを開発するためのグラフィック・ツールを含むウィンドウ内で、74段階又は75段階で認識されたプリンタ100のストレージ120から、プリンタ100の機能を示すモジュールを読み取ってアイコンで表示する。
【0044】
79段階でホスト200は、ユーザから入力された情報によって、78段階で表示されたモジュールのうちの一部のモジュールを組み合わせることによって、ユーザの入力情報に対応するアプリケーションを生成する。ユーザが、77段階で表示されたウィンドウ内のモジュールに対応するアイコンそれぞれの機能を認知すると、ユーザは、マウスのような入力装置を利用し、ユーザが所望するアプリケーションの構成要素に該当するモジュールを組み合わせる。前述のように、各モジュールは、API関数の特定組み合わせに該当するプリンタ100の機能を、プリンタ100で実行可能なバイナリコードで記述する。ホスト200は、ユーザによって指定されたモジュールの組み合わせによって、このモジュールそれぞれによって、バイナリコードで記述されたプリンタ100の機能を組み合わせることによって、バイナリコードで記述されたアプリケーションを生成できる。710段階でホスト200は、79段階で生成されたアプリケーションを、74段階又は75段階で認識されたプリンタ100のストレージ120に保存する。
【0045】
一方、ホスト200ではないプリンタ100で、アプリケーションを開発する場合には、ホスト200が、プリンタ100及びプリンタ100のストレージを認識する必要がないので、72段階ないし75段階は省略され、76段階ないし710段階は、ホスト200ではないプリンタ100によって遂行される。例えば、プリンタ100が、ユーザからプリンタ100のアプリケーション開発ソリューションに対する実行命令を入力されれば、アプリケーション開発に要求されるプリンタ100の環境を設定した後、アプリケーション開発ソリューションを実行する。
【0046】
図8は、本発明の一実施形態によるプリンタ100のアプリケーション実行方法のフローチャートである。図8に示したプリンタ・アプリケーション実行方法は、API関数の組み合わせが、あらかじめクロスコンパイルされた形態のバイナリファイルであるモジュールを利用して開発されたプリンタ100のアプリケーションを実行する場合であり、図3に示したプリンタ100で、時系列的に処理される段階から構成される。従って、以下で省略された内容であっても、図3に示したプリンタ100について、以上で説明した内容は、図8に示したプリンタ・アプリケーション実行方法にも適用される。
【0047】
81段階でプリンタ100は、プリンタ100のストレージ120に保存されたアプリケーションを表示する。アプリケーションは、UIパネル160上にアイコン形態で表示される。
82段階でプリンタ100は、ユーザから81段階で表示されたアプリケーションのうちいずれか一つを指示する情報を入力されると、ユーザによって選択されたアプリケーションを実行する。ユーザは、UIパネル160上に表示されたアイコンのうちいずれか一つをタッチすることによって、アプリケーションを選択できる。
83段階でプリンタ100は、82段階でのアプリケーションの実行によって、このアプリケーションに含まれたモジュールをそのモジュールの組み合わせ順序に従って、順序通りモジュール・ブロック34から読み取って実行する。
84段階でプリンタ100は、84段階でのモジュールの実行によって、このモジュールそれぞれに含まれたAPI関数を、このAPI関数の組み合わせ順序に従って順序通りAPIブロック33から読み取って実行する。85段階でプリンタ100は、84段階でのAPI関数の実行によって、このAPI関数それぞれをネイティブ関数それぞれに連結するラッパ関数を介して、API関数それぞれに対応するネイティブ関数を、F/Wブロック31から順序通り読み取って実行することによって、プリンタ100のハードウェア要素を駆動させる。このように、プリンタ100のハードウェア要素が駆動されることによって、アプリケーションが示すプリンタ100の機能が遂行される。
【0048】
図9は、本発明の他の実施形態によるプリンタ100のアプリケーション開発方法のフローチャートである。図9に示したプリンタ・アプリケーション開発方法は、ユーザによって開発されたアプリケーションが、プリンタ100のストレージ120に保存されたクロスコンパイラによってコンパイルされる場合であり、図5に示したプリンタ100及びホスト200で、時系列的に処理される段階から構成される。従って、以下で省略された内容であっても、図5に示したプリンタ100及びホスト200について、以上で説明した内容は、図9に示したプリンタ・アプリケーション開発方法にも適用される。
【0049】
ホスト200がプリンタ100及びプリンタ100のストレージを認識する過程は、図8に示したアプリケーション開発方法と同一であるので、91段階ないし95段階についての説明は、71段階ないし75段階の説明を引用する。また、残りの段階についても、図8に示したアプリケーション開発方法と違いのある部分を中心に説明する。
【0050】
96段階で、ホスト200がユーザからプリンタ100のアプリケーション開発ソリューションに対する実行命令を入力され、これをプリンタ100に伝達すると、プリンタ100は、プリンタ100のストレージ120のコンパイラ・ブロック53に含まれたクロスコンパイラの実行、APIブロック33に含まれたAPI関数の実行、及び、ソリューション・ブロック35に含まれたアプリケーション開発ソリューションの実行に必要なストレージ120のメモリ空間を確保して、クロスコンパイラ、API関数、アプリケーション開発ソリューションを初期化することによって、アプリケーション開発に要求されるプリンタ100の環境を設定する。
97段階でホスト200は、94段階又は95段階で認識されたプリンタ100のストレージ120から、プリンタ100のアプリケーション開発ソリューションを読み取って実行する。
98段階でホスト200は、プリンタ100のアプリケーションを開発するためのグラフィック・ツールを含むウィンドウ内で、94段階又は95段階で認識されたプリンタ100のストレージ120からプリンタ100の機能それぞれを示すAPIを読み取ってアイコンで表示する。
99段階でホスト200は、ユーザから入力された情報によって、98段階で表示されたAPIのうち、一部APIを組み合わせることによって、ユーザの入力情報に対応するアプリケーションを生成する。
910段階でホスト200は、99段階で生成されたアプリケーションを、94段階又は95段階で認識されたプリンタ100のストレージ120に保存する。
911段階でプリンタ100は、910段階で保存されたアプリケーションに係わるクロスコンパイルを遂行することによって、プリンタ100で実行可能なバイナリコードを有するアプリケーションを生成し、プリンタ100のストレージ120に保存する。
【0051】
図7に示したアプリケーション開発方法と同様に、ホスト200ではないプリンタ100で、アプリケーションを開発する場合であるならば、ホスト200がプリンタ100及びプリンタ100のストレージを認識する必要がないので、92段階ないし95段階は省略され、96段階ないし910段階は、ホスト200ではないプリンタ100によって遂行される。
【0052】
図10は、本発明の他の実施形態によるプリンタ100のアプリケーション実行方法のフローチャートである。図10に示したプリンタ・アプリケーション実行方法は、プリンタ100のストレージ120に保存されたクロスコンパイラによって、アプリケーションがコンパイルされて実行される場合であり、図5に示したプリンタ100で、時系列的に処理される段階から構成される。従って、以下で省略された内容であっても、図5に示したプリンタ100について、以上で説明した内容は、図10に示したプリンタ・アプリケーション実行方法にも適用される。
【0053】
ユーザによってアプリケーションが選択される過程は、図8に示したアプリケーション実行方法と同一であるので、101段階及び102段階についての説明は、81段階及び82段階の説明を引用する。また、残りの段階についても、図8に示したアプリケーション実行方法と違いのある部分を中心に説明する。
【0054】
103段階でプリンタ100は、102段階でのアプリケーションの実行によって、このアプリケーションに含まれたAPI関数を、そのAPI関数の組み合わせ順序に従って順序通りAPIブロック33から読み取って実行する。
104段階でプリンタ100は、103段階でのAPI関数の実行によって、このAPI関数それぞれをネイティブ関数それぞれに連結するラッパ関数を介して、API関数それぞれに対応するネイティブ関数をF/Wブロック31から順序通り読み取って実行することによって、プリンタ100のハードウェア要素を駆動する。
【0055】
図11は、本発明の一実施形態によるプリンタ100のアプリケーションを開発するためのグラフィック・ツールを含むウィンドウ11を示した図面である。図11に示したウィンドウ11は、プリンタ100の機能それぞれを記述するモジュールを示すアイコンが表示されているモジュール領域114、このアイコンを組み合わせてモジュールの組み合わせに該当するアプリケーションを生成するべき作業領域115、及び残りのツールから構成される。
前記残りのツールの例を挙げれば、図11に示しているように、ウィンドウ11の上端には、アプリケーションの目録が表示されている「Application List」(アプリケーションリスト)ボックス111、アプリケーション目録に新たなアプリケーションを追加するための「Add Item」(アイテム追加)ボタン112、アプリケーション目録から既存のアプリケーションを削除するための「Delete Item」(アイテム削除)ボタン113がある。また、ウィンドウ11の下端には、アプリケーションの生成を完了するための「OK」ボタン116、アプリケーションの生成作業を取消すための「Cancel」ボタン117が表示される。
【0056】
モジュール領域114に表示されるアイコンの例を挙げれば、図11に示しているように、モジュール領域114には、プリンタ100に投入された文書をスキャンする機能を具現する「Document Scan」モジュール、プリンタ100に保存されたデータ、例えば、テキスト、イメージなどを印刷する機能を具現する「Data Print」モジュール、及び、プリンタ100に投入された文書をスキャンして印刷することによって、この文書を複写する機能を具現する「Document Copy」モジュール、の各アイコンが表示される。
【0057】
さらに、モジュール領域114には、プリンタ100に保存されたデータ、例えば、テキスト、イメージなどを含むメールを作成する機能を具現する「Mail Make」モジュール、プリンタ100のユーザのうちあらかじめ指定された少なくとも1ユーザのメールアドレスにメールを発送する機能を具現する「Mail Transmit」モジュール、及び、プリンタ100のユーザのうちあらかじめ指定された少なくとも1ユーザのメールアドレスを介して受信されたメールを検出する「Mail Receive」モジュール、の各アイコンが表示される。
【0058】
アイコンは、一般的に同じ大きさの四角形ないし円形の特定形態で表示されるので、あるアイコン上にこのアイコンに対応するモジュールの情報を示すには限界がある。従って、ユーザによって、あるアイコンがダブルクリックされた場合、このアイコンの周辺に別途の風船状に、このアイコンに対応するモジュールの詳細情報ないし追加情報が表示されるように設定できる。あるいは、ユーザによって、あるアイコンがダブルクリックされた場合、このアイコンの周辺でない、ウィンドウ11の特定領域に、このアイコンに対応するモジュールの詳細情報が表示されるように設定できる。例えば、プリンタ100のユーザのうち、あらかじめ指定された少なくとも1ユーザのメールアドレスにメールを発送する機能を遂行する「Mail Transmit」モジュールのアイコンがダブルクリックされれば、プリンタ100のアドレスブックに登録されているユーザのメールアドレスが風船状に表示されるように設定できる。
【0059】
プリンタ100のアプリケーション開発者、即ち、ホスト200のユーザは、モジュール領域114に表示されたアイコンをクリックした状態で、作業領域115に移動させ、このように移動したアイコンをユーザが所望の順序に整列した後、「OK」ボタン116をクリックすることによって、アプリケーションを生成できる。図11に示したウィンドウ11の作業領域115でのアイコンの整列順序は、アイコンに対応するモジュール間のデータ入出力関係を示している。例えば、次のような方式で、アイコンに対応するモジュール間のデータ入出力関係を定義できる。Aアイコンの左側ないし上側にBアイコンを位置させれば、Aアイコンに対応するモジュールに、Bアイコンに対応するモジュールから出力されたデータが入力され、Aアイコンの右側ないし下側にCアイコンを位置させれば、Aアイコンに対応するモジュールから出力されたデータが、Bアイコンに対応するモジュールに入力されるように、アイコンに対応するモジュール間のデータ入出力関係を定義できる。ユーザがアイコンに対応するモジュール間のデータ入出力関係を容易に識別できるように、アイコン間には、データ入出力関係を示す矢印が表示される。
【0060】
図12は、図11に示したウィンドウ11のグラフィック・ツールを利用し、アプリケーションを開発する一例を示した図面である。図12に示した例は、プリンタ100に投入された文書をスキャンした後、このようにスキャンされた文書をプリンタ100のアドレスブックに登録されているユーザのうち、あらかじめ指定されたユーザに自動的に発送するアプリケーションを開発する場合である。プリンタ100のアプリケーション開発者、即ち、ホスト200のユーザが、ホスト200の画面上で、プリンタ100のアプリケーション開発ソリューションを示すアイコンをクリックすると、そのアプリケーション開発ソリューションが実行開始され、ホスト200の画面上には、図11に示したウィンドウ11が表示される。
【0061】
次に、ホスト200のユーザは、例えば前記のような機能を遂行するアプリケーションを生成するために、「Document Scan」モジュールのアイコン、「Mail Make」モジュールのアイコン、「Mail Transmit」モジュールのアイコンを作業領域115に移動させて整列させた後、「OK」ボタン116をクリックする。さらに詳細に説明すれば、図12に示しているように、ホスト200のユーザは、プリンタ100に投入された文書のスキャンイメージを含むメールが作成されるようにするために、「Document Scan」モジュールのアイコンの右側に、「Mail Make」モジュールのアイコンを位置させる。それにより、「Document Scan」モジュールの、当該アプリケーション生成後の実行により出力された文書のスキャンイメージは、「Mail Make」モジュールに入力され、「Mail Make」モジュールの、当該アプリケーション生成後の実行により文書のスキャンイメージを含むメールを作成する。また、ホスト200のユーザは、プリンタ100に投入された文書のスキャンイメージを含むメールを、プリンタ100のアドレスブックに登録されているユーザのうち、ホスト200のユーザによって指定された少なくとも1ユーザのメールアドレスに発送するために、「Mail Make」モジュールのアイコンの右側に、「Mail Transmit」モジュールのアイコンを位置させる。ホスト200のユーザが「Mail Transmit」モジュールをダブルクリックすれば、プリンタ100のアドレスブックに登録されているユーザのメールアドレスが表示される。次に、ホスト200のユーザは、このメールアドレスのうち少なくとも一つをクリックすることによって、メールのあて先に該当する少なくとも1つのメールアドレスを選択する。それにより、「Mail Make」モジュールの実行により出力されたメールは、「Mail Transmit」モジュールに入力され、「Mail Transmit」モジュールの、当該アプリケーション生成後の実行により、このメールは、ユーザによって選択された少なくとも1つのメールアドレスに発送される。
【0062】
次に、ホスト200のユーザは、「OK」ボタン116をクリックすることによって、前記のような機能を遂行するアプリケーションの生成が完了し、ウィンドウ11の作業領域115に「New_Application」(新たなアプリケーション)アイコンが表示される。ホスト200のユーザが、ウィンドウ11の作業領域115に表示された該アイコンをダブルクリックすれば、アプリケーションの名称を入力できるボックスが生成され、このボックスにアプリケーションの名称を入力する。例えば、ホスト200のユーザによって選択されたユーザが、Aグループであるならば、「Aグループ文書発送」という名称を入力できる。次に、ホスト200のユーザは、「Add Item」ボタン112をクリックすることによって、アプリケーション目録に新たなアプリケーションを追加できる。アプリケーション目録に新たなアプリケーションが追加されれば、プリンタ100のUIパネル160には、このアプリケーションが表示される。プリンタ100のユーザは、プリンタ100のUIパネル160を介して、アプリケーションを実行できる。
【0063】
例えば、プリンタ100のUIパネル160は、タッチスクリーンに具現され、ユーザは、タッチスクリーン上のアプリケーションを指でタッチすることによって、このアプリケーションを実行できる。プリンタ100のユーザが、プリンタ100にある文書を投入し、プリンタ100のUIパネル160に表示された前記のアプリケーションをタッチすると、あらかじめ指定されたユーザに、この文書の複写が自動的に発送される。
【0064】
図13は、図11に示したウィンドウのグラフィック・ツールを利用し、アプリケーションを開発する他の例を示した図面である。図13に示した例は、あらかじめ指定されたメールアドレスを介して、プリンタ100にメールが受信された場合、このメールを自動的に印刷するアプリケーションを開発する場合である。プリンタ100のアプリケーション開発のために、プリンタ100のアプリケーション開発ソリューションを実行し、完成したアプリケーションを追加する部分は、図12に示した例と同一であるので、以下では、ウィンドウ11の作業領域115で、アプリケーションを生成する過程だけについて説明する。
【0065】
ホスト200のユーザは、前記のような機能を遂行するアプリケーションを生成するために、「Mail Receive」モジュールのアイコン、及び「Data Print」モジュールのアイコンを、作業領域115に移動させて整列させた後、「OK」ボタン116をクリックする。さらに詳細に説明すれば、図13に示しているように、あらかじめ指定されたメールアドレスを介して、プリンタ100に受信されたメールを印刷するために、「Mail Receive」モジュールのアイコンの右側に、「Data Print」モジュールのアイコンを位置させる。それにより、「Mail Receive」モジュールの、当該アプリケーション生成後の実行により出力されたメールは、「Data Print」モジュールに入力され、「Data Print」モジュールの、当該アプリケーション生成後の実行により、このメールは印刷される。
【0066】
図11ないし図13に示したアプリケーション開発例は、図5に示したアプリケーション開発装置及び図9に示したアプリケーション開発方法にも適用される。例えば、ウィンドウ11には、プリンタ100の機能それぞれを記述するモジュールを示すアイコンが表示されているモジュール領域114の代わりに、プリンタ100の機能それぞれを記述するAPI関数を示すアイコンが表示されるAPI領域が含まれてもよい。一方、このように開発されたアプリケーションは、プリンタ100と同一のプロセッサやファームウェアを使用する他種の製品でも実行できるので、DLNA(digital living network alliance)技術などを利用し、プリンタ100が保有したアプリケーションを、他種製品と共有することも可能である。
【0067】
前記のような実施形態によれば、アプリケーション開発ソリューションが、プリンタ100に保存されており、このアプリケーション開発ソリューションを利用して開発されたアプリケーションが、プリンタ100に即、保存されるので、アプリケーションのアップロード過程及びダウンロード過程がなくなる。また、ユーザが、グラフィック形態で表示されたプリンタ100の機能を組み合わせてアプリケーションを開発できるので、コンピュータ知識が十分ではない一般ユーザも、容易にアプリケーションを開発できる環境を提供できる。また、あらかじめクロスコンパイルされた形態のバイナリファイルであるモジュールを組み合わせることによってアプリケーションを生成し、プリンタ100に保存されたクロスコンパイラを利用してアプリケーションをコンパイルすることによって、ホスト200にクロスコンパイラとエミュレータとが設置される必要がなく、コンピュータ知識が十分ではない一般ユーザも、容易にアプリケーションを開発できる環境を提供できる。それにより、プリンタ100に対するユーザ要求事項が即座に充足される。
【0068】
一方、前記のようなアプリケーション開発方法及びアプリケーション実行方法は、コンピュータで実行できるプログラムで作成可能であり、コンピュータで読み取り可能な記録媒体を利用し、前記プログラムを動作させる汎用デジタルコンピュータで具現される。前記コンピュータで読み取り可能な記録媒体は、マグネチック記録媒体(例えば、ROM(read−only memory)、フロッピー(登録商標)ディスク、ハードディスクなど)、光学的判読媒体(例えば、CD−ROM、DVD)のような記録媒体を含む。
【0069】
以上、本発明についてその望ましい実施形態を中心に説明した。本発明が属する技術分野で当業者であるならば、本発明が、本発明の本質的な特性からはずれない範囲で変形された形態で具現可能であるということを理解できるであろう。従って、開示された実施形態は、限定的な観点でなく、説明的な観点から考慮されねばならない。本発明の範囲は、前述の説明でなく特許請求の範囲に示されており、それと同等な範囲内にあるあらゆる差異点は、本発明に含まれたものであると解釈されねばならない。
【産業上の利用可能性】
【0070】
本発明の画像形成装置のアプリケーションを開発する方法及びその装置は、PCのようなホストや、プリンタのような画像形成装置に係わる技術分野に効果的に適用可能である。
【符号の説明】
【0071】
11 ウィンドウ
31,51 F/Wブロック
32,52 ラッパ・ブロック
33,54 APIブロック
34 モジュール・ブロック
35,55 ソリューション・ブロック
53 コンパイラ・ブロック
100 プリンタ
110 プロセッサ
111 「Application List」ボックス
112 「Add Item」ボタン
113 「Delete Item」ボタン
114 モジュール領域
115 作業領域
116 「OK」ボタン
117 「Cancel」ボタン
120 ストレージ
130 印刷部
140 スキャン部
150 通信部
160 ユーザインターフェース(UI)パネル
200 ホスト

【特許請求の範囲】
【請求項1】
画像形成装置のアプリケーションを開発する方法において、
前記画像形成装置に保存され、前記画像形成装置のアプリケーションを開発するためのツールを提供するソリューションを実行する段階と、
前記ソリューションの実行によって、前記画像形成装置の機能を表示する段階と、
ユーザの入力情報に基づいて、前記機能を組み合わせることによって、前記入力情報に対応するアプリケーションを生成する段階と、
前記生成されたアプリケーションを前記画像形成装置に保存する段階と、を含むアプリケーション開発方法。
【請求項2】
前記表示する段階は、前記画像形成装置のAPI(application programming interface)関数のうちの一部のAPI関数の組み合わせに該当する前記画像形成装置の機能を記述するモジュールを表示し、
前記生成する段階は、前記入力情報に基づいて、前記表示されたモジュールのうちの一部のモジュールを組み合わせることによって、前記入力情報に対応するアプリケーションを生成することを特徴とする請求項1に記載のアプリケーション開発方法。
【請求項3】
前記モジュールそれぞれは、前記画像形成装置のAPI関数のうちの一部のAPI関数の組み合わせを利用し、前記組み合わせに該当する前記画像形成装置の機能を前記画像形成装置で実行可能なコードで記述することを特徴とする請求項1に記載のアプリケーション開発方法。
【請求項4】
前記表示する段階は、前記画像形成装置の機能を記述するAPI関数を表示し、
前記生成する段階は、前記入力情報に基づいて、前記表示されたAPI関数のうちの一部のAPI関数を組み合わせることによって、前記入力情報に対応するアプリケーションを生成することを特徴とする請求項1に記載のアプリケーション開発方法。
【請求項5】
前記生成されたアプリケーションに係わるクロスコンパイリングを遂行することによって、前記画像形成装置によって実行可能なコードを有するアプリケーションを生成する段階をさらに含むことを特徴とする請求項4に記載のアプリケーション開発方法。
【請求項6】
前記画像形成装置に連結されたホストで、前記画像形成装置のストレージを認識する段階をさらに含み、
前記実行する段階は、前記ホストで前記認識された画像形成装置のストレージから、前記ソリューションを読み取って実行することを特徴とする請求項1に記載のアプリケーション開発方法。
【請求項7】
前記画像形成装置のストレージと前記ホストは、USB(Universal Serial Bus)によって連結され、
前記認識する段階は、前記画像形成装置のストレージを、前記USBのMSC(mass storage class)プロトコルを介して認識することを特徴とする請求項6に記載のアプリケーション開発方法。
【請求項8】
前記画像形成装置と前記ホストは、ネックワークによって連結され、
前記認識する段階は、前記画像形成装置のストレージを、前記ネックワークのSMB(server message block)プロトコルを介して認識することを特徴とする請求項6に記載のアプリケーション開発方法。
【請求項9】
画像形成装置において、
少なくとも画像を形成する機能を含む複数個の機能を有するハードウェア要素と、
前記画像形成装置のアプリケーションを開発するためのツールを提供するソリューション、及び、前記ソリューションを使用して開発された少なくとも1つのアプリケーション、が保存されているストレージと、
前記ストレージに保存されたアプリケーションを実行することによって、前記アプリケーションによって、前記ハードウェア要素の動作を制御するプロセッサと、を含み、
前記アプリケーションは、前記ソリューションの実行によって表示される前記画像形成装置の機能の組み合わせから生成される画像形成装置。
【請求項10】
前記ストレージには、前記画像形成装置のAPI関数、及び、前記API関数のうちの一部のAPI関数の組み合わせを利用し前記画像形成装置の機能を前記画像形成装置において実行可能なコードで記述するモジュール、がさらに保存されており、
前記プロセッサは、前記モジュールのうちの一部のモジュールの組み合わせから生成されたアプリケーションを実行することを特徴とする請求項9に記載の画像形成装置。
【請求項11】
前記ストレージには、前記画像形成装置のAPI関数と、前記画像形成装置のアプリケーションとを、前記画像形成装置で実行可能なコードに翻訳するためのクロスコンパイラがさらに保存されており、
前記プロセッサは、前記クロスコンパイラを実行することによって、前記API関数のうちの一部のAPI関数の組み合わせから生成されたアプリケーションをコンパイルし、前記コンパイルされたアプリケーションを実行することを特徴とする請求項9に記載の画像形成装置。
【請求項12】
前記ハードウェア要素は、ホストによって前記ストレージが認識されるように、前記ストレージとホストとを連結する機能を有する通信部を含み、
前記ストレージに保存されたソリューションは、前記通信部を介して、前記ホストによって読み取られて実行されることを特徴とする請求項9に記載の画像形成装置。
【請求項13】
前記通信部は、USBのMSCプロトコルを利用し、前記ストレージとホストとを連結し、
前記ストレージは、前記ホストによって、前記MSCプロトコルを介して認識されることを特徴とする請求項12に記載の画像形成装置。
【請求項14】
前記通信部は、ネックワークのSMBプロトコルを利用し、前記ストレージとホストとを連結し、
前記ストレージは、前記ホストによって、前記SMBプロトコルを介して認識されることを特徴とする請求項12に記載の画像形成装置。
【請求項15】
画像形成装置の記録媒体において、
前記画像形成装置のネイティブ関数を含むファームウェアに該当するファームウェア・ブロックと、
前記ネイティブ関数と、前記画像形成装置のAPI関数とを連結するラッパ関数の集合に該当するラッパ・ブロックと、
前記画像形成装置のAPI関数の集合に該当するAPIブロックと、
前記API関数を利用し、前記画像形成装置のアプリケーションを開発するためのツールを提供するソリューションに該当するソリューション・ブロックと、を含む階層的構造のデータブロックが記録された記録媒体。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2012−252706(P2012−252706A)
【公開日】平成24年12月20日(2012.12.20)
【国際特許分類】
【出願番号】特願2012−127059(P2012−127059)
【出願日】平成24年6月4日(2012.6.4)
【出願人】(390019839)三星電子株式会社 (8,520)
【氏名又は名称原語表記】Samsung Electronics Co.,Ltd.
【住所又は居所原語表記】129,Samsung−ro,Yeongtong−gu,Suwon−si,Gyeonggi−do,Republic of Korea
【Fターム(参考)】