説明

情報処理装置およびその制御方法、並びにプログラム

【課題】画像形成装置のアプリケーションの動作を確認するにあたり、動作可能なシミュレータのみ選択できるようにする。
【解決手段】複数のデバイスのシミュレータを有する開発環境を提供する情報処理装置は、開発するアプリケーションの設定情報を参照する参照手段と、前記複数のデバイスそれぞれのデバイス情報を管理するデバイス情報管理手段と、前記参照手段にて参照したアプリケーションの設定情報と前記デバイス情報管理手段にて管理されているデバイス情報とを比較し、当該アプリケーションが動作可能なデバイスを特定する特定手段と、前記開発環境が有する複数のシミュレータのうち、前記特定手段により特定されたデバイスに対応しないシミュレータは選択できず、前記特定手段により特定されたデバイスに対応するシミュレータは選択できる選択画面を表示する表示手段とを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像形成装置にて動作させるアプリケーションの開発環境を提供する情報処理装置およびその制御方法、並びにプログラムに関する。
【背景技術】
【0002】
従来、画像形成装置、及び画像形成装置の制御においては、リアルタイムOS上にさらに別の組み込みシステム向けの実行環境(例えばJava(登録商標)など)を構築することを可能にしている。さらには、画像形成装置の制御を行うことのできるアプリケーションを外部からダウンロードして追加できるアプリケーション・プラットフォームが搭載されるようになった(非特許文献1)。
【0003】
このようなアプリケーション・プラットフォーム上でアプリケーションを開発する際、動作確認には、テスト工数や開発費削減の観点からPC上で動作するシミュレータを使用する。画像形成装置のような機種ごとに異なる機能を持つ組込み機器においては、その組込み機器に対応したシミュレータを用いる必要がある。従来、開発者がメニュー画面にて動作確認を実施したいシミュレータを選択することで、シミュレータを構成する各モジュールをサーバから収集し、シミュレータを生成する仕組みを提供しているものがある(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2011−53729号公報
【非特許文献】
【0005】
【非特許文献1】キヤノン株式会社、“MEAP ADVANCEとは”、[online]、2011年、キヤノン株式会社、[平成23年9月6日検索]、インターネット<URL:http://cweb.canon.jp/meap/advance/meap.html>
【発明の概要】
【発明が解決しようとする課題】
【0006】
開発者が、アプリケーションの動作を確認するにあたり、選択対象のシミュレータが増えるにつれて、動作対象外のシミュレータを選択してしまうことがある。このような場合、アプリケーションのインストールに失敗することもあるし、動作確認時にエラーが見つかって初めて間違ったシミュレータを選択したことに気づくことになる。こうなると、シミュレータの起動および動作確認を最初からやり直す必要があり、手戻りが発生する。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本発明は以下の構成を有する。すなわち、デバイスにて動作するアプリケーションの開発を行う際に用いられ、複数のデバイスのシミュレータを有する開発環境を提供する情報処理装置であって、開発するアプリケーションの設定情報を参照する参照手段と、前記複数のデバイスそれぞれのデバイス情報を管理するデバイス情報管理手段と、前記参照手段にて参照したアプリケーションの設定情報と前記デバイス情報管理手段にて管理されているデバイス情報とを比較し、当該アプリケーションが動作可能なデバイスを特定する特定手段と、前記開発環境が有する複数のシミュレータのうち、前記特定手段により特定されたデバイスに対応しないシミュレータは選択できず、前記特定手段により特定されたデバイスに対応するシミュレータは選択できる選択画面を表示する表示手段とを有する。
【発明の効果】
【0008】
本発明によれば、開発者が開発しているアプリケーションが特定の組込み機器で動作するかをアプリケーションの生成時に確認する。そして、アプリケーションの動作確認時には、動作可能なシミュレータのみ選択できるようになる。これにより、シミュレータの選択間違いによる手戻りを防げる。
【図面の簡単な説明】
【0009】
【図1】画像形成装置の内部構成の一例を表すブロック図。
【図2】画像形成装置のHDDに記憶されたソフトウェア構造の例を示す図。
【図3】画像形成装置と接続された開発用PCのハードウェア構成例を示す図。
【図4】統合開発環境システムのソフトウェア構成の例を示す図。
【図5】統合開発環境システムの操作画面例を示す図。
【図6】マニフェストファイルの構成要素の例を示す図。
【図7】アプリ生成手段によるアプリ生成処理のフローチャート。
【図8】アプリとアプリが動作対象とする画像形成装置との対応関係を示す図。
【図9】画像形成装置が有する属性値を画像形成装置ごとに示す図。
【図10】整合性確認手段の構成様子を示す図。
【図11】DIDチェッカーの処理に係るフローチャート。
【図12】DIDチェッカーの処理に関する画面例を示す図。
【図13】APIチェッカーの処理に係るフローチャート。
【図14】APIチェッカーの処理に関するテーブルおよび画面例を示す図。
【図15】サービスチェッカーの処理に係るフローチャート。
【図16】サービスチェッカーの処理に係るテーブルおよび画面例を示す図。
【図17】仕様バージョンチェッカーの処理に係るフローチャート。
【図18】仕様バージョンチェッカーの処理に係るテーブルおよび画面例を示す図。
【図19】シミュレータランチャーの起動処理に係るフローチャート。
【図20】シミュレータの起動用ランチャーの例を示す図。
【発明を実施するための形態】
【0010】
以下、図面を参照して本発明の実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る発明を限定するものでなく、また実施の形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
【0011】
[画像形成装置のハードウェア構成]
以下、本発明の実施の形態について図面を参照して詳細に説明する。図1は、本発明の実施形態に係る画像形成装置の内部構成の一例を示すブロック図である。
【0012】
図1に示す画像形成装置1は、基本的な構成として、画像形成装置1内の各部を制御するコントローラユニット100と、操作部112と、スキャナ部123と、プリンタ部125とを備える。操作部112は、例えば、数字を入力するためのテンキーや処理の実行を行うためのスタートキーなどのハードキーや液晶タッチパネルで構成され、ユーザが画像形成装置1を操作するためのユーザインタフェースを提供する。操作部112のタッチパネルに表示される各設定項目を表すアイコンやボタン(もしくはハードキー)をタッチ(押下)することで、画像形成装置1に設定や情報の入力を行うことが可能である。
【0013】
スキャナ部123は、原稿等の画像を画像データとして読み取る。プリンタ部125は、記録用紙を搬送し、その記録用紙に画像データを可視画像として印刷する。
【0014】
コントローラユニット100は、バス122を介してスキャナ部123に接続され、またバス124を介してプリンタ部125に接続される。また、コントローラユニット100は、LAN113や公衆回線(WAN)114や無線115を介して他の機器に接続して、画像情報やデバイス情報の入出力制御を行う。
【0015】
CPU101は、システム全体を制御するコントローラである。RAM102は、CPU101が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。ROM103はブートROMである。ROM103には、システムのブートプログラムが格納されている。HDD104は、ハードディスクドライブであり、システムソフトウェアや画像データ、後述する通信部111が有するすべての無線通信に関する情報(無線通信の仕様)を格納する。
【0016】
画像形成装置1では、使用したい機能を実装したアプリケーション(以下、「アプリ」と呼ぶ)をインストールすることで機能を増やすことができる。アプリのインストールにより、画像形成装置上で各種機能を動かすためのアプリプログラムがRAM102やHDD104に記憶される。
【0017】
操作部I/F106は、ユーザインタフェース(UI)である操作部112との間のインタフェース部であり、操作部112に表示すべきデータを操作部112に対して出力する。また、操作部112からユーザが入力した情報を、CPU101に伝える役割を行う。Network部109は、LAN113に接続され、情報の入出力を行う。MODEM110は、公衆回線114に接続され、情報の入出力を行う。
【0018】
通信部111は、不図示のアンテナを介して無線(WIRELESS)115に接続され、情報の入出力を行う。また、通信部111は、複数種類の無線通信を行うことが可能である。上記各デバイスがシステムバス107上に配置される。
【0019】
イメージバス(ImageBus)I/F105は、システムバス107と、画像データを高速で転送する画像バス108とを接続し、データ構造を変換するバスブリッジである。画像バス108は、PCIバスまたはIEEE1394等で規定されるバスである。
【0020】
画像バス108上に配置される各デバイスにおいて、ラスターイメージプロセッサ(RIP)116は、PDLコードをビットマップイメージに展開する。デバイスI/F部117は、スキャナ部123またはプリンタ部125をコントローラユニット100に接続し、画像データの同期系/非同期系の変換を行う。
【0021】
スキャナ画像処理部118は、入力画像データに対して補正、加工、または編集を行う。プリンタ画像処理部119は、プリント出力画像データに対して、プリンタ部125に合った補正、解像度変換等を行う。画像回転部120は、画像データの回転を行う。画像処理部121は、画像データに対する、JPEG、JBIG、MMR、MH等の圧縮伸張処理や、PDF、TIFF、OCR、暗号化等のフォーマット変換処理を行う。
【0022】
[画像形成装置のソフトウェア構成]
図2は本発明の画像形成装置の一例である画像形成装置のHDD104に記憶されたソフトウェア構造図である。OS(オペレーティングシステム)201には、一般的なリアルタイムOSが使用される。また、OSとして、Linux(登録商標)等の汎用OSが使用されても構わない。仮想マシン202は、Java(登録商標)に代表される仮想マシンであり、アプリの実行環境を提供する。
【0023】
アプリフレームワーク203は、アプリのライフサイクルを管理する機能を提供する。システムサービス204は、画像形成装置1に事前に登録されているアプリであり、他のアプリに機能を提供するものや、単独で機能するものがある。他のアプリに機能を提供するものとして、例えば、エラー発生時の処理を代替するエラーリカバリーサービス(以下、「ERS」と呼ぶ)205や操作部112を制御するアプレットビュワーサービス(以下、「AVS」と呼ぶ)206などがある。また、電源等を制御するシステムインタフェースサービス(以下、「SIS」と呼ぶ)207がある。また、単独で機能するものとして、PCからブラウザを使用してアクセスされ、所定のアプリファイルを受信するサービスマネジメントサービス(以下、「SMS」と呼ぶ)208などがある。アプリA209およびアプリB210は、SMS208によってインストールされたアプリであり、画像形成装置1上で様々な機能を提供する。アプリA209およびアプリB210はAVS206を実行時に参照し、操作部112を介してユーザとやり取りを行うことが可能である。
【0024】
また、アプリA209およびアプリB210は、API(Application Program Interface)211を介して、画像形成装置1が提供するシステムライブラリ212を参照できる。システムライブラリ212には、例えば、プリント処理やコピー処理やスキャン処理といったジョブ制御ライブラリ213が含まれる。アプリA209およびアプリB210は、ジョブ制御ライブラリ213を利用することで画像形成装置1が持つNetwork部109を介して、PCなどからデータを受信し、プリンタ部125を使って印刷することも可能である。
【0025】
[PCのハードウェア構成]
図3は、画像形成装置1とネットワークで接続された情報処理装置としての開発用PC300のハードウェア構成を示す図である。画像形成装置用アプリの開発を行う場合、通常、開発用PC300にて統合開発環境を動作させてプログラム作成・テスト・デバッグなどを行う。また、アプリのテストを行う場合は、開発用PC300から画像形成装置1にNetwork部109経由でアプリをインストールして画像形成装置1上でアプリを動作させてテストを行う。
【0026】
CPU301は、開発用PC300上の各処理を司る中央演算装置である。ROM302は、開発用PC300の各処理に関わるプログラムやデータを記憶する。RAM303は、開発用PC300の各処理に関わる一時的なデータを記憶する。HDD304は、開発用PC300の各処理に関わるプログラムやデータ、および一時的なデータ、本発明に関わるプログラムモジュールが格納される。入力装置305は、開発用PC300への指示入力を受け付けるキーボードやポインティングデバイスである。表示部306は、開発用PC300の動作状況や、開発用PC300上で動作する各プログラムが出力する情報を表示する。ネットワークI/F307は、ネットワーク経由でLANおよびインタネットに接続し、外部と情報交換を行う。USBH I/F308は、USBホストインタフェースであり、さまざまなUSBデバイスを接続する。上記の要素がシステムバス309により結び付き、データの送受信を行う。
【0027】
[統合開発環境システムにおけるソフトウェア構成]
図4は本発明の統合開発システムの一例である統合開発環境システム400のソフトウェア構成図である。本実施形態において、この統合開発環境システム400は、開発用PC300上で構成される。統合開発環境システム400は、統合開発基盤401、統合開発基盤401に利用される内部ツールA402、並びに外部ツール404と連携する内部ツールB403を有する。さらには、これら内部ツールと同様の位置づけで組み込みアプリ開発支援ツール405を有する。
【0028】
統合開発環境システム400は、例えば、Eclipse(登録商標)が利用できるが、これに限定されない。なお、Eclipse(登録商標)とは、オープンソースの統合ソフトウェア開発環境であり、ソフトウェア開発の共通プラットフォームである。Eclipse(登録商標)は、2種類のツールを利用することで様々な機能を提供する。2種類のツールとは、Eclipseにプラグインとして登録・提供されている内部ツールと、Windows(登録商標)、UNIX(登録商標)などが提供するデバッガやコンパイラといったEclipse(登録商標)内には存在しない外部ツールである。
【0029】
統合開発基盤401は、開発しているアプリの管理や各ツールを連携させるためのインタフェースなどを含んでいる。外部ツールの例としては、Java(登録商標)のコンパイルやデバッグを行うために用いられるJDK(登録商標)(Java Development kit)がある。
【0030】
内部ツールは、統合開発基盤401が提供するインタフェースを介して、外部ツール404の機能を利用することもできる。なお、本実施形態においては、開発者によって統合開発環境システム400に外部ツール404としてJDKが既に設定済みであり、内部ツールから統合開発基盤401を介して利用できる。なお、図4で示している統合開発環境システム400が持つ内部ツールや外部ツールの構成などは、一つの例にすぎず、これに限定されない。
【0031】
ここで、組込みアプリ開発支援ツール405は、例えば、画像形成装置のような組込み機器で動作可能なアプリの生成やテスト支援の機能を有する。アプリ操作手段406は、開発しているアプリを画像形成装置もしくは対応するシミュレータへインストールする機能を有する。その他、画像形成装置および画像形成装置向けシミュレータで動作しているアプリの開始、停止、デバッグ機能を有する。アプリ生成手段407は、開発中のアプリが動作対象としている画像形成装置で動作可能かどうかを整合性確認手段408で判断し、アプリを生成する。ここで、アプリを生成するとは、デバイス(もしくは、デバイスのシミュレータ)にて実行可能な形式にすることを意味する。さらに、アプリ生成手段407は、アプリが正しく生成された際には、アプリ情報テーブル410に、生成したアプリと動作可能な画像形成装置との組み合わせ情報を保存する。
【0032】
整合性確認手段408は、デバイス情報テーブル411を参照し、アプリが動作可能な画像形成装置を判断する。整合性確認手段408の詳細については後述する。シミュレータランチャー起動手段409は、アプリ情報テーブル410を参照し、アプリが動作可能な画像形成装置の一覧を含んだシミュレータランチャーを起動する。マニフェストファイル参照手段412は、統合開発基盤401を介して後述するアプリが持つ設定ファイルであるマニフェストファイルをRAM303に格納する。そして、マニフェストファイル参照手段412は、組込みアプリ開発支援ツール405内の構成要素から参照できるようにする。
【0033】
[統合開発環境システムにおける操作画面]
図5は、表示部306に表示される統合開発環境システム400の操作画面の一例である。マニフェストファイル編集画面501では、アプリを構成するJARファイルに含まれるマニフェストファイルの編集ができる。ここで、「マニフェストファイル」とは、アプリの持つ各種の設定情報が記載されたファイルであり、本実施形態にて用いられる各種情報の詳細については後述する。また、「JARファイル」とは、Java(登録商標)のソースファイルをコンパイルして生成されるクラスファイルとマニフェストファイルがパッケージングして圧縮されたファイルである。JARファイルは、ファイルの拡張子が“.jar”として示される。
【0034】
プロジェクト・エクスプローラ502には、開発中のアプリの一覧が表示されている。なお、開発中のアプリは、「プロジェクト」という単位で扱われ、ソースファイル、マニフェストファイル、クラスファイル、JARファイルなどが管理される。また、入力装置305を介してプロジェクト・エクスプローラ502内の開発対象プロジェクトを選択すると表示されるプロパティウィンドウに、アプリ生成ボタン503およびシミュレータランチャー起動ボタン504が表示される。アプリ生成ボタン503が選択されると、統合開発環境システム400は、アプリ生成手段407を内部的に呼び出し、アプリを画像形成装置1で利用可能なJARファイル形式にする。シミュレータランチャー起動ボタン504が選択されると、シミュレータランチャー起動手段409を内部的に呼び出す。
【0035】
[マニフェストファイル]
図6は、マニフェストファイル601の構成要素を表す。各要素は、属性と属性値とが対になって列挙されたものである。アプリ名602は、アプリの名称を記述する要素である。デバイス仕様ID(以下、「DID」と呼ぶ)603は、画像形成装置の機種ごとに割り当てられている、機種を一意に識別するための識別子を記述するための要素である。開発者は、アプリに対応する画像形成装置の属性値として、アプリの動作対象となるDIDを、列挙する。アプリは、マニフェストファイルに記述されたDID以外の画像形成装置にはインストールができない。
【0036】
インポートサービス605は、アプリが利用するシステムサービス204を記述するための要素である。開発者は、利用するシステムサービス204を列挙する。インポートサービス605に、対応する画像形成装置にて利用できないシステムサービスが記述された場合、アプリの実行時にエラーとなる。仕様バージョン604は、アプリが利用可能な画像形成装置ごとに定義されている機能に割り当てられた番号である。例えば、SSL機能であれば“5”、画像変換処理機能であれば“10”、といったものである。開発者は、アプリが使用する上述した機能の番号を仕様バージョンとして列挙する。なお、列挙された仕様バージョンが、1つも画像形成装置に割り当てられていない場合、そのアプリはインストールできない。
【0037】
最小コンソールサイズ606は、アプリがAVS206を用いて操作部112上で制御可能なGUI(Graphical User Interface)を提供する場合に必要な要素であり、動作に必要な最低限値を記述する。ここで、コンソールサイズとは、アプリが利用可能な操作部112上の領域を表す。アプリは、記述されたコンソールサイズより小さい画像形成装置にはインストールできない。なお、マニフェストファイル601が持つ属性情報は上述した要素に限定されない。
【0038】
[アプリ生成フロー]
図7は、アプリ生成手段407が、統合開発基盤401より選択通知を受けたアプリ生成ボタン503により要求を受けて、アプリを生成する処理を示したフローチャートである。なお、本処理フローは、開発用PC300が備えるCPU301が、記憶部であるHDD304等に格納されたプログラムを読み出し、実行することによって実現される。
【0039】
S701では、アプリ生成手段407は、マニフェストファイル参照手段412を介して統合開発基盤401に対して、プロジェクト・エクスプローラ502で選択されているプロジェクトのマニフェストファイルの所在を問い合わせる。その結果を受けて、アプリ生成手段407は、HDD304に格納されたマニフェストファイルをRAM303に読み込む。
【0040】
S702からS705では、整合性確認手段408がアプリのマニフェストファイルとデバイス情報テーブル411を比較し、整合性の確認を行う。なお、デバイス情報テーブル411の詳細については、図9で後述する。さらに、整合性確認手段408は、ソースファイルから利用している機能を解析し、対象とする画像形成装置で、その機能が利用可能かを確認する。S702からS705は、それぞれ、DIDチェッカー1001、APIチェッカー1002、サービスチェッカー1003、および仕様バージョンチェッカー1004を実行することで実現している。各種チェッカーの処理の詳細は後述する。
【0041】
S706では、アプリ生成手段407は、統合開発基盤401に対して、アプリのビルドを要求する。統合開発基盤401は、内部ツールからJDK(登録商標)を呼び出し、CPU301を介してJava(登録商標)のソースファイルをRAM303に読み込み、コンパイルする。さらに、統合開発基盤401は、コンパイルして生成されたクラスファイルとマニフェストファイルおよび必要に応じてアプリが有する画像ファイルや音声ファイルなどをひとまとめにするようにJARファイルの形式に変換する。そして、統合開発基盤401は、変換したJARファイルをHDD304に保存する。S707では、アプリ生成手段407は、後述する図8で表すようにアプリ情報テーブル410を更新する。
【0042】
[テーブル構造]
図8は、アプリと当該アプリが動作可能な画像形成装置との対応関係を示すアプリ情報テーブル410の構造を表す。図8では、アプリAは、画像形成装置A、画像形成装置B、画像形成装置Dで動作可能であることを表す。アプリBは、画像形成装置Cのみで動作可能であることを表す。アプリNは、画像形成装置A、画像形成装置C、画像形成装置Nで動作可能であることを表す。このように、アプリ情報テーブル410は、統合開発環境システム400に登録されている画像形成装置向けプロジェクトで管理されるアプリごとに、動作可能な画像形成装置の組み合わせ情報を保存している。
【0043】
図9は、各画像形成装置が備える各サービスや仕様を示すデバイス情報テーブル411の構造を表す。本実施形態では、このデバイス情報テーブル411を用いて、デバイス情報管理を行う。図9では、例えば、DIDが“1”である画像形成装置Aは、コンソールサイズが“640x480”であり、インポートサービスとして、“サービスA、サービスB、サービスC”が利用可能である。さらに、仕様バージョンとして、“5、10”が割り当てられている。
【0044】
また、ジョブ制御仕様901は、ジョブ制御ライブラリ213で利用可能なジョブ制御の種類や、ジョブ制御において設定可能な上限値などを表す属性である。例えば、DIDが“1”である画像形成装置Aでは、両面印刷、両面原稿の読み取り、A3サイズの用紙まで出力可能であることを表す。一方で、DIDが“n−1”である画像形成装置Yでは、両面印刷が可能である一方で、両面/片面いずれの読み取り機能も持たず、A4サイズの用紙まで出力可能であることを表している。
【0045】
このようにデバイス情報テーブル411は、DIDが“1”である画像形成装置を画像形成装置A、DIDが“2”である画像形成装置を画像形成装置B、といったようにDIDが割り当てられた画像形成装置ごとの属性情報を保存している。なお、図9で示したデバイス情報テーブル411の構成は一例にすぎず、各属性に対応する値は、上述した内容に限定されるものではない。例えば、ジョブ制御仕様901として、FAXが利用可能であることを表す「FAX送受信」といった値が設定されていてもかまわない。
【0046】
[チェッカーの動作]
図10では、整合性確認手段408が、DIDチェッカー1001、APIチェッカー1002、サービスチェッカー1003、仕様バージョンチェッカー1004から構成されることを表す。各チェッカーの動作について以下で説明する。
【0047】
(DIDチェッカー)
図11は、アプリ生成手段407から実行通知を受けたDIDチェッカー1001の処理であり、図7のS702の詳細を表すフローチャートである。本実施形態において、DIDチェッカー1001は、識別子判定を行う。S1101では、DIDチェッカー1001は、デバイス情報テーブル411からすべてのDIDをRAM303に読み込み、D−DIDとして参照できるようにする。S1102では、DIDチェッカー1001は、RAM303に格納されたマニフェストファイルのDIDを、M−DIDとして参照できるようにする。S1103では、DIDチェッカー1001は、CPU301にM−DIDとD−DIDの読み取りを指示し、M−DIDに列挙されたすべてのDIDがD−DIDに存在するかを確認する。つまり、M−DIDにて示されるDIDの全てが、D−DIDに含まれるDIDのいずれかと一致するか否かを判定する。
【0048】
確認の結果、M−DIDがD−DIDに含まれる場合(S1103にてYES)、DIDチェッカー1001は、DIDのチェックを正常終了する。この場合、図7に示す以降の処理が継続されることとなる。
【0049】
一方で、M−DIDがD−DIDに含まれない場合(S1103にてNO)、DIDチェッカー1001は、S1104にて、統合開発環境システム400を介して図12に示すエラー画面1110を表示部306に表示する。そして、DIDチェッカー1001は、DIDのチェックに失敗したものとして異常終了する。この場合、図7に示す以降の処理は、中止されることとなる。なお、図12に示したエラー画面の構成は一例であり、他の表示画面であっても構わない。
【0050】
(APIチェッカー)
図13は、アプリ生成手段407から実行通知を受けたAPIチェッカー1002の処理であり、図7のS703の詳細を表すフローチャートである。本実施形態において、APIチェッカー1002は、アプリのプログラムに含まれる設定値の確認を行う。これにより、プログラム確認を行う。S1201では、APIチェッカー1002は、統合開発基盤401に対して、入力装置305を介して選択されたプロジェクトのすべてのソースファイルのHDD304上の所在を問い合わせる。APIチェッカー1002は、その結果から得られたHDD304上のソースファイルをRAM303上に読み込む。
【0051】
S1202では、APIチェッカー1002は、デバイス情報テーブル411からジョブ制御仕様901をRAM303上に読み込む。S1203では、APIチェッカー1002は、RAM303上に読み込まれたソースファイルの解析をCPU301に要求する。このとき、CPU301は、ソースファイルを1ステートメントごとに分解し、RAM303上に保存する。なお、「ステートメント」とは、ソースファイルに含まれる一つの命令文を指す。
【0052】
S1204では、APIチェッカー1002は、解析により抽出されたすべてのステートメントに対して、ジョブ制御ライブラリ213で利用する属性値が含まれているかを確認する。つまり、各画像形成装置のジョブ制御仕様901にて指定された属性値が利用されているかを判定する。属性値が含まれていれば(S1204にてYES)、S1205へ進む。例えば、抽出したステートメントが以下であった場合、属性値が含まれると判定される。
【0053】
該当するステートメント例 new Plex().setPlex(Plex.PLEX_DUPLEX);
ここで、Plexというのは、ジョブに対する属性値を設定するためのジョブ制御ライブラリ213に含まれるクラスの1つで、両面印刷を表す、Plex.PLEX_DUPLEXという属性値が設定されていることを表す。
【0054】
一方、ソースファイルに一切の属性値が含まれないのであれば(S1204にてNO)、ジョブ制御に関しては、画像形成装置の種類に関わらず影響を受けないため、APIチェッカー1002は、処理を正常終了する。
【0055】
S1205では、APIチェッカー1002は、RAM303に格納されたマニフェストファイルのDIDを、M−DIDとして参照できるようにする。S1206では、APIチェッカー1002は、抽出された属性値がM−DIDに対応する画像形成装置のジョブ制御仕様901に存在するかを比較し、結果をRAM303に保存する。このとき、結果は、図14(A)のようなテーブル形式で格納される。
【0056】
図14(A)に示すテーブル1215は、アプリがジョブ制御ライブラリ213に対して設定している属性値と、アプリが動作対象としている画像形成装置のジョブ制御仕様901の対応関係を示している。この場合、アプリは、両面印刷、両面読み込み、A3出力に対応する属性値をソースファイルに記述している。そして、アプリが動作対象としている画像形成層装置Aでは、この3つの機能がすべて利用できるのに対し、画像形成装置Yでは、両面読み込みが利用できないことを表す。ここで、ある画像形成装置において、利用できない機能をNG項目として示す。
【0057】
S1207では、APIチェッカー1002は、RAM303に保存された結果にNG項目があるかを確認する。NG項目がなければ(S1207にてNO)、APIチェッカー1002は、ジョブ制御に関しては、動作対象としているすべての画像形成装置で違反がないため正常終了する。NG項目がある場合(S1207にてYES)、S1208で、APIチェッカー1002は、統合開発環境システム400を介して図14(B)の警告画面1220を表示部306に表示する。
【0058】
なお、ソースファイル上に特定の画像形成装置で利用不可能な属性値が記述されていたとしても、開発者が画像形成装置ごとに処理を分岐させてアプリを生成する場合がある。この場合、実行中には、利用不可能な属性値は参照されることがない。このため、ここでは、APIチェッカー1002は、エラー画面ではなく、警告画面を表示する。S1209では、APIチェッカー1002は、図14(B)に示す警告画面1220を介したユーザからの指示を判定する。ユーザがOKボタン1221を押下した場合(S1209にてYES)、APIチェッカー1002は、処理を正常終了する。ユーザがcancelボタン1222を押下した場合(S1209にてNO)、APIチェッカー1002は、S1210にて、エラー画面(不図示)を表示し、異常終了する。ここでのエラー画面は、例えば、図12に示すエラー画面1110に相当するような構成としてもよい。
【0059】
なお、本処理フローにおいて、正常終了した場合には、図7に示す以降の処理を継続する。一方、異常終了した場合には、図7に示す以降の処理を中止する。
【0060】
(サービスチェッカー)
図15は、アプリ生成手段407から実行通知を受けたサービスチェッカー1003の処理であり、図7のS704の詳細を表すフローチャートである。本実施形態では、サービスチェッカー1003は、画像形成装置にて提供可能なサービスがアプリにて指定されているか、もしくは類似するサービスにて代行できるかを確認する。これにより、サービス確認を行う。S1301では、サービスチェッカー1003は、デバイス情報テーブル411からアプリが動作対象とする各画像形成装置のインポートサービスをD−Service1、D−Service2、・・・、D−ServiceNとしてRAM303に保存する。サービスチェッカー1003は、D−Serviceをアプリが動作対象とする画像形成装置の数だけ用意する。そして、それぞれのD−Serviceには、デバイス情報テーブル411を参照して対応する画像形成装置のインポートサービスが格納される。
【0061】
S1302では、サービスチェッカー1003は、マニフェストファイル601に列挙されているインポートサービスをRAM303に読み込み、M−Serviceとして参照できるようにする。S1303では、サービスチェッカー1003は、M−Serviceに列挙されたすべてのインポートサービスがD−Serviceそれぞれに対して存在するかを確認する。このとき、サービスチェッカー1003は、図16(A)のようなテーブル形式でサービスの対応関係をRAM303に格納する。すべてのインポートサービスが存在する場合は(S1303にてYES)、インポートサービスに関しては問題がないため、処理を正常終了する。インポートサービスが存在しない場合は(S1303にてNO)、S1304へ進む。
【0062】
図16(A)に示すテーブル1310は、アプリがマニフェストファイル601で設定したインポートサービス605と、アプリが動作対象としている画像形成装置で利用可能なインポートサービス605の対応関係を示している。テーブル1310に示す例の場合、アプリは、AVS206、SIS207、ERS205をインポートしている。そして、アプリが動作対象としている画像形成層装置Aでは、この3つのサービスがすべて利用できるのに対し、画像形成装置Yでは、AVS206、SIS207が利用できないことを表す。ここで、ある画像形成装置において利用できないサービスをNG項目として示している。
【0063】
S1304では、サービスチェッカー1003は、該当する画像形成装置において利用できないサービスに類似する類似サービスが、当該画像形成装置にて利用できるかを確認する。類似サービスが存在しない場合(S1304にてNO)、S1306に処理を進める。なお、ここでの類似サービスとは、同様な機能を提供するシステムサービス204を指す。
【0064】
例えば、AVS206は、画面全体を制御できるフレームバッファを備えた画像形成装置の操作部112を制御可能である。一方で、AVS206は、走査線1本分ずつでしか制御できないラインバッファを備えた低価格な画像形成装置の操作部112を制御できない。このため、システムサービス204として同じ画面制御であったとしてもラインバッファに特化したLAVS(Lightweight AVS)が画像形成装置に組み込まれている。このように、画像形成装置には同様な処理であっても異なるシステムサービスが備えられている。
【0065】
サービスチェッカー1003は、このような、サービス間における類似サービスの対応関係を類似サービス対応情報テーブル1320として、図16(B)のようなテーブル形式で、予め保持している。図16(B)の類似サービス対応情報テーブル1320では、AVSに対応する類似サービスとして、LAVSが存在することを示している。同様に、SISに対しては、LSISが存在する。なお、図16(B)の類似サービス対応情報テーブル1320に示した対応関係は、類似サービスの一例でありこれに限定されない。この類似サービス対応情報テーブル1320により、類似サービス情報管理を行う。
【0066】
S1305では、サービスチェッカー1003によって検出された類似サービスが、該当する画像形成層装置に存在するかを確認する。類似サービスが存在しなければ(S1305にてNO)、S1306に処理を進める。S1306にて、サービスチェッカー1003は、統合開発環境システム400を介して、図16(C)のエラー画面1330を表示部306に表示し、異常終了する。一方で、類似サービスが、該当する画像形成装置に存在する場合(S1305にてYES)、S1307で、サービスチェッカー1003は、統合開発環境システム400を介して、図16(D)の代替サービス提案画面1340を表示部306に表示する。
【0067】
S1308では、サービスチェッカー1003は、図16(D)に示す代替サービス提案画面1340を介したユーザからの指示を判定する。ユーザがcancelボタン1342を押下した場合(S1308にてNO)、サービスチェッカー1003は、S1306へ進む。ユーザがOKボタン1341を押下した場合(S1308にてYES)、S1309へ進む。S1309にて、サービスチェッカー1003は、RAM303上に読み込んだマニフェストファイル601のインポートサービスを類似サービスに変更し、HDD304上にファイルとして出力し、処理を正常終了する。
【0068】
なお、本処理フローにおいて、正常終了した場合には、図7に示す以降の処理を継続する。一方、異常終了した場合には、図7に示す以降の処理を中止する。
【0069】
(仕様バージョンチェッカー)
図17は、アプリ生成手段407から実行通知を受けた仕様バージョンチェッカー1004の処理であり、図7のS705の詳細を表すフローチャートである。本実施形態では、仕様バージョンチェッカー1004は、アプリにて指定されたデバイスの機能と使用するデバイスとの機能とが一致するか否かを判定する。これにより、機能判定を行う。S1401では、仕様バージョンチェッカー1004は、デバイス情報テーブル411からアプリが動作対象とする画像形成装置ごとの仕様バージョンをRAM303に、D−Spec1、D−Spec2、・・・、D−SpecNとして保存する。仕様バージョンチェッカー1004は、D−Specをアプリが動作対象とする画像形成装置の数だけ用意する。そして、それぞれのD−Specには、デバイス情報テーブル411を参照して対応する画像形成装置の仕様バージョンが格納される。
【0070】
S1402では、仕様バージョンチェッカー1004は、マニフェストファイル601に列挙されている仕様バージョン604をRAM303に読み込み、M−Specとして参照できるようにする。S1403では、仕様バージョンチェッカー1004は、M−Specに列挙された仕様バージョンのうち1つでもD−Specに含まれるかを確認する。このとき、仕様バージョンチェッカー1004は、図18(A)のようなテーブル形式で仕様バージョンの対応関係をRAM303に格納する。1つでも対応する仕様バージョンがD−Specに存在する場合は(S1403にてYES)、仕様バージョンに関しては問題がないため、仕様バージョンチェッカー1004は、処理を正常終了する。仕様バージョンが存在しない場合は(S1403にてNO)、S1404へ進む。
【0071】
ここで、図18(A)の仕様バージョンテーブル1410は、アプリがマニフェストファイル601で設定した仕様バージョンと、アプリが動作対象としている画像形成装置で利用可能な仕様バージョンの対応関係を示している。この場合、アプリは5,10,50を仕様バージョンとして設定している。そして、アプリが動作対象としている画像形成層装置Aでは、5、10が定義されているが、画像形成装置Yでは、50が定義されている。この場合、画像形成装置Aおよび画像形成装置Yともに少なくとも1つ以上の項目でOKとなっているため、仕様バージョンが存在すると判断する。
【0072】
一方、S1404では、仕様バージョンチェッカー1004は、統合開発環境システム400を介して、図18(B)のエラー画面1420を表示部306に表示し、異常終了する。なお、図18(B)に示すエラー画面1420の構成は一例であり、これに限定するものではない。
【0073】
なお、本処理フローにおいて、正常終了した場合には、図7に示す以降の処理を継続する。一方、異常終了した場合には、図7に示す以降の処理を中止する。
【0074】
[シミュレータランチャーの起動処理]
図19は、シミュレータランチャー起動手段409が、統合開発環境システム400上で、開発者からの選択通知を受けたシミュレータランチャー起動ボタン504によりシミュレータランチャーの起動要求を受けた時のフローチャートである。S1501では、シミュレータランチャー起動手段409は、統合開発環境システム400上で選択されているプロジェクト情報を、統合開発基盤401を介して取得し、RAM303に保存する。シミュレータランチャー起動手段409は、プロジェクト情報からマニフェストファイルのアプリ名602を参照し、アプリ情報テーブル410からアプリに対応する画像形成装置情報を取得する。
【0075】
S1502では、シミュレータランチャー起動手段409は、画像形成装置の情報をランチャーに登録して、シミュレータの起動用ランチャーコンポーネントを生成する。シミュレータランチャー起動手段409は、生成した起動用ランチャーコンポーネントを用い、統合開発環境システム400を介して、図20に示したシミュレータの起動用ランチャー1510を表示部306に表示する。この画像形成装置の選択画面としての起動用ランチャー1510を用いて、ユーザは、開発するアプリのシミュレータを呼び出すこととなる。図20に示すシミュレータの起動用ランチャー1510は、アプリ情報テーブル410のアプリAが選択された状態で起動した場合の構成を示している。ここでは、アプリ情報テーブル410のアプリAに対応する画像形成装置である、画像形成装置A、画像形成装置Bおよび画像形成装置Dのみ選択できる状態になっている。
【0076】
また、図20に示す表示例では、選択できるシミュレータのみを表示するようにしているが、これに限定するものではない。例えば、搭載している全てのシミュレータを表示しつつ、選択できないものは、グレーアウトするように、対応していない旨を表示する構成であっても構わない。また、選択までは可能としても、起動ボタンが押下された時点でエラー等の警告を表示するような構成であっても構わない。つまり、誤ったシミュレータの防止が可能であれば、どのような表示形態であっても構わない。
【0077】
以上により、画像処理装置のアプリ開発者は、統合開発環境システム400に登録された組込みアプリ開発支援ツール405を使うことで、動作対象としている画像処理装置に則したアプリを生成できる。例えば、DIDチェッカー1001により、開発者が対象としている画像形成装置が実存するものであるかを事前に確認できる。このため、誤ったDIDをマニフェストファイルに記載してしまい、アプリを生成し直すといった状況を回避できる。
【0078】
また、APIチェッカー1002を用いることで、開発中のアプリが対象としている画像形成装置上で利用できないジョブ制御に関する属性を設定しているかどうかを確認できるようになる。これにより、アプリ実行時になってから定義されていない属性を利用していたことに気づくという状況を回避できるため、誤った属性の設定によるテストやり直しを防げる。
【0079】
さらに、サービスチェッカー1003を用いることで、対象とする画像形成装置に搭載されていないシステムサービス204を利用することを回避できる。これにより、誤ったシステムサービスをマニフェストファイルに記載してしまい、アプリのインストールに失敗するという状況を回避できる。
【0080】
また、マニフェストファイルに誤って記述されたサービスに対して、サービスチェッカー1003は必要に応じて類似サービスを提案できる。さらに、統合開発環境システム側で、マニフェストファイルを自動で修正することにより、ユーザによる類似サービスを探すための作業や、手動で直す手間を省ける。
【0081】
また、仕様バージョンチェッカー1004を用いることで、マニフェストファイルに記述されたすべての仕様バージョンが画像形成装置に割り当てられていないかを確認できる。これにより、確実に誤った仕様バージョンを事前に検出できるようになり、誤った仕様バージョンの記述によるアプリのインストール失敗という状況を回避できる。
【0082】
また、マニフェストファイルに含まれる他の記述に基づいたチェッカーを更に設けても構わない。例えば、最小コンソールサイズの値に基づいて、画像形成装置にて対応しているか否かのチェッカーを設けても構わない。また、図7に示した各チェッカーによる確認の順番は、これに限定されるものではなく、必要に応じて並び替えても構わない。
【0083】
そして、アプリ開発者は、シミュレータ起動ランチャーをアプリと画像処理装置の対応関係から、動作可能な画像形成装置のシミュレータのみが選択できる状態で起動できる。このため、動作対象外のシミュレータを選択したことによる、アプリのインストールの失敗や、テストのやり直しといった手戻りを防げる。
【0084】
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

【特許請求の範囲】
【請求項1】
デバイスにて動作するアプリケーションの開発を行う際に用いられ、複数のデバイスのシミュレータを有する開発環境を提供する情報処理装置であって、
開発するアプリケーションの設定情報を参照する参照手段と、
前記複数のデバイスそれぞれのデバイス情報を管理するデバイス情報管理手段と、
前記参照手段にて参照したアプリケーションの設定情報と前記デバイス情報管理手段にて管理されているデバイス情報とを比較し、当該アプリケーションが動作可能なデバイスを特定する特定手段と、
前記開発環境が有する複数のシミュレータのうち、前記特定手段により特定されたデバイスに対応しないシミュレータは選択できず、前記特定手段により特定されたデバイスに対応するシミュレータは選択できる選択画面を表示する表示手段と
を有することを特徴とする情報処理装置。
【請求項2】
前記アプリケーションの設定情報は、前記アプリケーションを動作させるデバイスの識別子、前記アプリケーションが利用するサービス、前記アプリケーションを動作させるデバイスの機能のうちの少なくとも一つが設定されていることを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記特定手段は、前記アプリケーションの設定情報に設定されたデバイスの識別子が、前記デバイス情報管理手段にて管理されたデバイスの識別子と一致するか否かを判定する識別子判定手段を備えることを特徴とする請求項2に記載の情報処理装置。
【請求項4】
前記識別子判定手段は、識別子が一致しないと判定した場合、当該アプリケーションにエラーがあるとして、その旨を示すエラー画面を表示することを特徴とする請求項3に記載の情報処理装置。
【請求項5】
前記特定手段は、前記設定情報に設定された、前記アプリケーションが利用するデバイスの機能と、デバイスが提供可能な機能とにおいて、少なくとも一つが一致しているか否かを判定する機能判定手段を備えることを特徴とする請求項2乃至4のいずれか一項に記載の情報処理装置。
【請求項6】
前記機能判定手段は、デバイスの機能が一つも一致しないと判定した場合、当該アプリケーションにエラーがあるとして、その旨を示すエラー画面を表示することを特徴とする請求項5に記載の情報処理装置。
【請求項7】
前記特定手段は、前記設定情報にて設定された、当該アプリケーションが利用するすべてのサービスが、デバイスに登録された別のアプリケーションにより利用可能であるかどうかを確認するサービス確認手段を備えることを特徴とする請求項2乃至6のいずれか一項に記載の情報処理装置。
【請求項8】
前記サービス確認手段は、
類似するサービス間の対応情報を管理する類似サービス情報管理手段と、
前記アプリケーションの設定情報に設定されたサービスを、前記対応情報に従って、対応する類似サービスに変更する変更手段と
を備え、
前記変更手段は、前記設定情報に設定されたサービスがデバイスにて利用できず、かつ、当該設定されたサービスの類似サービスが当該デバイスにて利用可能である場合、前記類似サービスに変更するか否かの指示をユーザから受け付けるための画面を表示し、当該画面を介して変更すると指示された際に、当該アプリケーションの設定情報のサービスを前記類似サービスに変更することを特徴とする請求項7に記載の情報処理装置。
【請求項9】
前記特定手段は、アプリケーションを構成する命令文において、デバイスの機能にて利用可能な設定値が設定されているか否かを、前記デバイス情報に基づき確認するプログラム確認手段を備えることを特徴とする請求項1乃至8のいずれか一項に記載の情報処理装置。
【請求項10】
前記プログラム確認手段は、デバイスの機能にて利用可能な設定値が設定されていない場合、その旨を通知する警告画面を表示することを特徴とする請求項9に記載の情報処理装置。
【請求項11】
前記特定手段は、前記アプリケーションのプログラムをデバイスもしくは当該デバイスに対応するシミュレータにて用いられる形式に変換する際に実行され、
前記特定手段にてエラーが発生した場合に、当該形式への変換を中止することを特徴とする請求項1乃至10のいずれか一項に記載の情報処理装置。
【請求項12】
デバイスにて動作するアプリケーションの開発を行う際に用いられ、複数のデバイスのシミュレータを有する開発環境を提供する情報処理装置の制御方法であって、
参照手段が、開発するアプリケーションの設定情報を参照する参照工程と、
デバイス情報管理手段が、前記複数のデバイスそれぞれのデバイス情報を管理するデバイス情報管理工程と、
特定手段が、前記参照工程にて参照したアプリケーションの設定情報と前記デバイス情報管理工程にて管理されているデバイス情報とを比較し、当該アプリケーションが動作可能なデバイスを特定する特定工程と、
表示手段が、前記開発環境が有する複数のシミュレータのうち、前記特定手段により特定されたデバイスに対応しないシミュレータは選択できず、前記特定手段により特定されたデバイスに対応するシミュレータは選択できる選択画面を表示する表示工程と
を有することを特徴とする制御方法。
【請求項13】
コンピュータを、
開発するアプリケーションの設定情報を参照する参照手段、
複数のデバイスそれぞれのデバイス情報を管理するデバイス情報管理手段、
前記参照手段にて参照したアプリケーションの設定情報と前記デバイス情報管理手段にて管理されているデバイス情報とを比較し、当該アプリケーションが動作可能なデバイスを特定する特定手段、
複数のデバイスのシミュレータのうち、前記特定手段により特定されたデバイスに対応しないシミュレータは選択できず、前記特定手段により特定されたデバイスに対応するシミュレータは選択できる選択画面を表示する表示手段
として機能させるためのプログラム。

【図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

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate


【公開番号】特開2013−69078(P2013−69078A)
【公開日】平成25年4月18日(2013.4.18)
【国際特許分類】
【出願番号】特願2011−206560(P2011−206560)
【出願日】平成23年9月21日(2011.9.21)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】