JP2013145502A - Information processing apparatus, control method and program thereof - Google Patents
Information processing apparatus, control method and program thereof Download PDFInfo
- Publication number
- JP2013145502A JP2013145502A JP2012006201A JP2012006201A JP2013145502A JP 2013145502 A JP2013145502 A JP 2013145502A JP 2012006201 A JP2012006201 A JP 2012006201A JP 2012006201 A JP2012006201 A JP 2012006201A JP 2013145502 A JP2013145502 A JP 2013145502A
- Authority
- JP
- Japan
- Prior art keywords
- simulator
- application
- image forming
- api
- forming apparatus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Accessory Devices And Overall Control Thereof (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
本発明は、アプリケーションのソースファイルを編集可能な情報処理装置、制御方法、およびそのプログラムに関する。 The present invention relates to an information processing apparatus capable of editing a source file of an application, a control method, and a program thereof.
従来技術として、画像形成装置のリアルタイムOS上にさらに別の組み込みシステム向けの実行環境(例えばJava(登録商標)など)を構築し、画像形成装置の制御を行うことのできるアプリケーションを外部からダウンロードして追加できるアプリケーション・プラットフォームを搭載することが知られている。このようなアプリケーション・プラットフォーム上でアプリケーションを開発する際、動作確認には、テスト工数や開発費削減の観点からPC上で動作するシミュレータを使用することが一般的である。また、画像形成装置のような機器ごとに異なる特有の機能を持つ組込み機器においては、その組込み機器に対応したシミュレータを用いる必要がある。一方で、アプリケーションが機器に特化した機能を利用するにあたって、アプリケーションの実行中に利用できる機能を動的に判別して制御する技術が特許文献1に開示されている。
As a conventional technique, an execution environment (for example, Java (registered trademark)) for another embedded system is constructed on the real-time OS of the image forming apparatus, and an application capable of controlling the image forming apparatus is downloaded from the outside. It is known to have an application platform that can be added. When developing an application on such an application platform, it is common to use a simulator that operates on a PC from the viewpoint of test man-hours and development cost reduction for operation confirmation. Further, in an embedded device having a unique function that varies from device to device such as an image forming apparatus, it is necessary to use a simulator corresponding to the embedded device. On the other hand,
デバイスに特化した機能をアプリケーションが実装している場合、シミュレータではサポートできない場合がある。例えば、ハードウェアに依存した機能(温度センサーに基づいて発生するイベントや原稿を検知した時のイベントなど)は、PC上で動作するシミュレータでの再現は困難である。 If an application implements device-specific functions, the simulator may not be able to support it. For example, hardware-dependent functions (such as an event that occurs based on a temperature sensor or an event that occurs when a document is detected) are difficult to reproduce on a simulator that runs on a PC.
その他の課題として次の様な課題が考えられる。一般的に、アプリケーション提供者は、販売機会を増やすために1つのアプリケーションを複数のデバイスで動作するように作りこむ。この時、開発者は、画像形成装置に対応したシミュレータを用いて動作確認を行う。しかしながら、シミュレータの精度は、対応する画像形成装置ごとにばらつきがある。例えば、従来サポートしていなかった機能でも、開発者の要望や重要度に応じて、新しい画像形成装置向けのシミュレータでは利用できるようになることがある。このため、新しい画像形成装置向けのシミュレータ上では、アプリケーションが正しく動作する一方で、古い画像形成装置向けのシミュレータ上では、正しく動作しないことがある。 The following issues can be considered as other issues. In general, an application provider creates one application to operate on a plurality of devices in order to increase sales opportunities. At this time, the developer confirms the operation using a simulator corresponding to the image forming apparatus. However, the accuracy of the simulator varies for each corresponding image forming apparatus. For example, even functions that have not been supported in the past may become available in a new simulator for an image forming apparatus, depending on a developer's request and importance. For this reason, while the application operates correctly on the simulator for the new image forming apparatus, the application may not operate correctly on the simulator for the old image forming apparatus.
しかし、動作しなかった原因が、アプリケーションの実装ミスなのか、シミュレータの精度の違いによるものなのかの判別も難しい。つまり、開発者は、機器に特化した機能の動作確認を、実際の画像形成装置で実施すべきなのか、シミュレータで実施しても問題がないのかを実施前に把握する必要がある。 However, it is difficult to determine whether the cause of the malfunction is due to an application mounting error or due to a difference in simulator accuracy. In other words, the developer needs to grasp whether the operation check of the function specialized for the device should be performed by the actual image forming apparatus or if there is no problem even if it is performed by the simulator.
本願発明は、上述した課題の内、少なくとも1つを解決する開発環境を備えた情報処理装置を提供することを目的とする。 An object of the present invention is to provide an information processing apparatus including a development environment that solves at least one of the above-described problems.
本発明の一実施形に係る情報処理装置は、画像処理ユニットを利用したサービスを提供するアプリケーションのソースファイルを編集可能な情報処理装置であって、画像形成装置ごとに用意された、アプリケーションをテスト動作させるためのシミュレータと、ソースファイルを編集するためのソースファイル編集画面を介して前記アプリケーションに対応するソースファイルにアプリケーションプログラミングインターフェース(以後、APIと称する)が加えられた場合、前記シミュレータごとに設定された前記APIに対するサポートレベルを読み込む読み込み手段と、前記読み込み手段により読み込まれた各シミュレータのAPIに対するサポートレベルを基に、前記APIに対する画像形成装置とシミュレータとの動作差分が認識できるように前記ソースファイル編集画面を表示することを特徴とする。 An information processing apparatus according to an embodiment of the present invention is an information processing apparatus capable of editing a source file of an application that provides a service using an image processing unit, and tests an application prepared for each image forming apparatus When an application programming interface (hereinafter referred to as API) is added to a source file corresponding to the application via a simulator for operating and a source file editing screen for editing the source file, settings are made for each simulator. Based on the reading means for reading the supported level for the API and the support level for the API of each simulator read by the reading means, an operation difference between the image forming apparatus and the simulator for the API is recognized. Characterized in that it displays the source file editing screen to kill.
本発明によれば、開発者は、アプリケーションの開発中に、該当する機能がシミュレータで動作可能かどうかを判別できるようになる。 According to the present invention, a developer can determine whether or not a corresponding function can be operated by a simulator during application development.
以下、図面を参照して本発明の実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る発明を限定するものでなく、また実施の形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. The following embodiments do not limit the invention according to the scope of claims, and all combinations of features described in the embodiments are not necessarily essential to the solution means of the invention.
図1は、本発明の実施形態に係る画像形成装置の内部構成の一例を表すブロック図である。図1に表す画像形成装置は、基本的な構成として、画像形成装置内の各部を制御するコントローラユニット100と、操作部112と、画像処理ユニットであるスキャナ部123とプリンタ部125と、を備える。操作部112は、例えば、数字を入力するためのテンキーや処理の実行を行うためのスタートキーなどのハードキーや液晶タッチパネルで構成され、ユーザが画像形成装置を操作するためのユーザインターフェースを提供する。操作部112のタッチパネルに表示される各設定項目を表すアイコンやボタン(もしくはハードキー)をタッチ(押下)することで、画像形成装置に設定や情報の入力を行うことが可能である。
FIG. 1 is a block diagram illustrating an example of an internal configuration of an image forming apparatus according to an embodiment of the present invention. The image forming apparatus illustrated in FIG. 1 includes, as a basic configuration, a
スキャナ部123は、原稿等の画像を画像データとして読み取る。プリンタ部125は、記録用紙を搬送し、その記録用紙に画像データを可視画像として印刷する。コントローラユニット100は、バス122を介してスキャナ部123に接続され、またバス124を介してプリンタ部125に接続される。また、コントローラユニット100は、LAN113やWAN(公衆回線)114やWIRELESS(無線)115を介して他の機器に接続して、画像情報やデバイス情報の入出力制御を行う。
The
CPU101は、システム全体を制御するコントローラである。RAM102は、CPU101が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。ROM103はブートROMである。ROM103には、システムのブートプログラムが格納されている。HDD104は、ハードディスクドライブであり、システムソフトウェアや画像データ、後述する通信部111が有するすべての無線通信に関する情報(無線通信の仕様)を格納する。
The
画像形成装置は、使用したい機能を実装したアプリケーション(以下、「アプリ」と呼ぶ。)をインストールすることで画像処理ユニットを利用した機能を増やすことができる。アプリのインストールにより、画像形成装置上で各種機能を動かすためのアプリプログラムがRAM102やHDD104に記憶される。
The image forming apparatus can increase the functions using the image processing unit by installing an application (hereinafter referred to as “application”) in which a function to be used is installed. By installing the application, an application program for operating various functions on the image forming apparatus is stored in the
操作部I/F106は、ユーザインターフェース(UI)である操作部112との間のインターフェース部であり、操作部112に表示すべきデータを操作部112に対して出力する。また、操作部112からユーザが入力した情報を、CPU101に伝える役割を行う。Network部109は、LAN113に接続され、情報の入出力を行う。モデム110は、WAN114に接続され、情報の入出力を行う。
The operation unit I /
通信部111は、不図示のアンテナを介してWIRELESS115に接続され、情報の入出力を行う。また、通信部111は、複数種類の無線通信を行うことが可能である。上記各デバイスがシステムバス107上に配置される。イメージバスI/F105は、システムバス107と、画像データを高速で転送する画像バス108とを接続し、データ構造を変換するバスブリッジである。画像バス108は、PCIバスまたはIEEE1394等で規定されるバスである。画像バス108上に配置される各デバイスにおいて、RIP(ラスターイメージプロセッサ)116は、PDLコードをビットマップイメージに展開する。デバイスI/F部117は、スキャナ部123またはプリンタ部125をコントローラユニット100に接続し、画像データの同期系/非同期系の変換を行う。
The communication unit 111 is connected to the WIRELESS 115 via an antenna (not shown) and inputs / outputs information. The communication unit 111 can perform a plurality of types of wireless communication. Each of the above devices is arranged on the
スキャナ画像処理部118は、入力画像データに対して補正、加工、または編集を行う。プリンタ画像処理部119は、プリント出力画像データに対して、プリンタ部125に合った補正、解像度変換等を行う。画像回転部120は、画像データの回転を行う。画像処理部121は、画像データに対する、JPEG、JBIG、MMR、MH等の圧縮伸張処理や、PDF、TIFF、OCR、暗号化等のフォーマット変換処理を行う。
The scanner
図2(A)および図2(B)は本発明の画像形成装置および対応するシミュレータのソフトウェア構造図の一例である。画像形成装置のソフトウェアは、HDD104に、シミュレータのソフトウェアは、後述する開発用PC300のHDD304に格納されている。また、画像形成装置とシミュレータで同じ符号を有するものは、完全に同一もしくは機能的に同一であることを表す。よって、アプリケーションをテスト動作させるためのシミュレータは画像形成装置ごとに用意されている。 2A and 2B are examples of software structure diagrams of the image forming apparatus of the present invention and a corresponding simulator. The software for the image forming apparatus is stored in the HDD 104, and the software for the simulator is stored in the HDD 304 of the development PC 300 described later. Further, the image forming apparatus and the simulator having the same reference sign indicate that they are completely identical or functionally identical. Therefore, a simulator for causing the application to perform a test operation is prepared for each image forming apparatus.
OS201には一般的はリアルタイムOSが使用されるが、昨今ではLinux(登録商標)等の汎用OSが使用されることもある。Nativeライブラリ202は、イメージバスI/F105を介して行われ画像形成処理や暗号化処理などの画像形成装置特有の機能を提供する。
Although a real-time OS is generally used as the
203は、Java(登録商標)に代表される仮想マシンであり、アプリの実行環境を提供するものである。仮想マシン203を搭載した装置は、OSとは別に他のアプリケーションの実行環境を備えていると言える。アプリフレームワーク204は、アプリのライフサイクルを管理する機能を提供するものである。システムサービス205は、画像形成装置に事前に登録されているアプリであり、他のアプリに機能を提供するものや、単独で機能するものがある。他のアプリに機能を提供するものとして、例えば、エラー発生時の処理を代替するエラーリカバリーサービス(ERS206)や操作部112を制御するアプレットビュワーサービス(AVS207)などがある。また、単独で機能するものとして、PCからブラウザを使用してアクセスされ、所定のアプリ・ファイルを受信するサービスマネジメントサービス(SMS208)などがある。アプリA209,アプリB210は、SMS208によってインストールされたアプリであり、画像形成装置上で様々な機能を提供するものである。換言すれば、アプリA209、アプリBは画像処理ユニットを利用したサービスを提供するアプリケーションと言える。アプリA209,アプリB210はAVS206を実行時に参照し、操作部112を介してユーザとやり取りを行うことが可能である。また、アプリA209、アプリB210は、アプリケーションプログラミングインターフェースであるAPI(Application Program Interface)211を介して、画像形成装置が提供するシステムライブラリ212を参照できる。システムライブラリ212には、例えば、プリント処理やコピー処理やスキャン処理といったジョブ制御ライブラリ213が含まれる。アプリA209、アプリB210は、ジョブ制御系ライブラリ213を利用することで画像形成装置が持つNetwork部109を介して、PCなどからデータを受信し、プリンタ部125を使って印刷することも可能である。実際には、システムライブラリ212は、JNI(Java Native Interface)と呼ばれるJava(登録商標)で記述されたプログラムと、他の言語で書かれた、実際のCPU上で動作するコードとを連携するインターフェースを介して、Nativeライブラリ202を利用する。これにより、システムライブラリ212は、画像形成装置の機能をアプリに提供している。一方、シミュレータ上で動作するダミーライブラリ220は、Nativeライブラリ202を疑似的に再現する機能を持つ。例えば、画像形成装置では、プリントジョブが投入されると、画像形成装置の状態が、準備中、実行待ち、実行中といったように遷移することで、正常に画像形成が行われる。この状態遷移は、実際のところ、プリンタ部125やスキャナ部123の状態(印刷可能であるのか、用紙はあるのか、など)に基づいて決定される。しかし、シミュレータには、プリンタ部125やスキャナ部123といったハードウェア資源がないため、画像形成装置の状態遷移を本物と同じように再現できない。そこで、ダミーライブラリ220は、このような画像形成装置の状態遷移を、時間が経過することで変化させるように表現し、画像形成装置特有の機能のうち代表的な処理を模倣している。一方で、異常系の処理や、ハードウェアに依存した機能、重要度の低い機能などはサポートしない、もしくは、サポートしていても再現度が低いものもある。このような、再現度のことを、「サポートレベル」と呼ぶことにする。換言すると、API211の動作は、画像形成装置とシミュレータで異なる場合があり、各APIでサポートレベルに違いがある。画像形成装置とシミュレータとの差異が少なければ少ないほどサポートレベルが高く、多ければサポートレベルが低いことになる。
図3は、画像形成装置とネットワークで接続された情報処理装置である開発用PC300のハードウェア構成を表す図である。画像形成装置用アプリの開発を行う場合、通常、開発用PC300にて統合開発環境を動作させてプログラム作成・テスト・デバッグなどを行う。また、アプリのテストを行う場合は、開発PC300から画像形成装置にNetwork部109経由でアプリをインストールして画像形成装置上でアプリを動作させてテストを行う。
FIG. 3 is a diagram illustrating a hardware configuration of a
CPU301は本装置上の各処理をつかさどる中央演算装置である。ROM302は本装置の各処理に関わるプログラムやデータを記憶する。RAM303は、本装置の各処理に関わる一時的なデータを記憶する。HDD304は、本装置の各処理に関わるプログラムやデータ、および一時的なデータ、本発明に関わるプログラムモジュールが格納される。入力装置305は、本装置への指示入力を受け付けるキーボードやポインティングデバイスである。表示部306は、本装置の動作状況や、本装置上で動作する各プログラムが出力する情報を表示する。ネットワークI/F307は、ネットワーク経由でLANおよびインタネットに接続し、外部と情報交換を行う。USBH I/F308はUSBホストインターフェースであり、さまざまなUSBデバイスを接続する。それら要素がシステムバス309により結び付き、データをやりとりしている。
The
図4は本発明の統合開発システムの一例である統合開発環境システム400のソフトウェア構成図である。統合開発環境システム400を実現するためのソフトウェアは、開発用PC300のHDD304に保存されており、そのソフトウェアがRAM303にロードされCPU301により実行されることで統合開発環境システム400は実現する。ユーザは、統合開発環境システム400を利用することでアプリケーションのソースファイルを編集可能になる。
FIG. 4 is a software configuration diagram of an integrated
統合開発環境システム400は、統合開発基盤401と、統合開発基盤401に利用される内部ツールA402並びに外部ツールB404と連携する内部ツールB403と、これら内部ツールと同様の位置づけで組込みアプリ開発支援ツール405と、を有する。
The integrated
統合開発環境システム400は、例えば、Eclipse(Eclipseは登録商標)が利用できるが、これに限定されない。なお、ここで、Eclipseとは、オープンソースの統合ソフトウェア開発環境であり、ソフトウェア開発の共通プラットフォームである。Eclipseは、プラグインとして登録・提供されている内部ツールと、Windows(登録商標)、UNIX(登録商標)などが提供するデバッガやコンパイラといったEclipse内には存在しない外部ツールとの2種類のツールを利用することで様々な機能を提供する。
As the integrated
統合開発基盤401は、開発しているアプリの管理や各ツールを連携させるためのインターフェースなどを含んでいる。外部ツールの例としては、Java(登録商標)のコンパイルやデバッグを行うために用いられるJDK(Java Development Kit)がある。内部ツールは、統合開発基盤401が提供するインターフェースを介して、外部ツールの機能を利用することもできる。なお、本実施形態においては、開発者によって統合開発環境システム400に外部ツールとしてJDKが既に設定済みであり、内部ツールから統合開発基盤401を介して利用できる。なお、図4で示している統合開発環境システム400が持つ内部ツールや外部ツールの構成などは、1つの例にすぎず、これに限定されない。ここで、組込みアプリ開発支援ツール405は、例えば、画像形成装置のような組込み機器で動作可能なアプリの開発やテスト支援の機能を有する。動作差分解析手段406は、開発中のアプリが参照しているAPI211のうちシミュレータでのサポートレベルを判別し、画像形成装置との動作差分を指摘する機能を有する。マニフェストファイル参照手段407は、統合開発基盤401を介してアプリが持つ設定ファイルであるマニフェストファイルをRAM303に読み込む。そして、組込みアプリ開発支援ツール405内の他の構成要素から参照できるようにする。動作差分情報テーブル408は、API211のシミュレータごとのサポートレベルに関する情報を保持している。API利用状況情報テーブル409は、アプリが利用しているAPI211の一覧を保持している。エディター更新手段410は、アプリが利用しているAPI211のシミュレータでのサポートレベルに関する情報を操作部306に表示する。シミュレータランチャー起動手段411は、画像形成装置に対応するシミュレータを選択的に起動するものである。API利用状況表示手段412は、シミュレータ起動前に、サポートレベルに応じた動作確認対象アプリが利用しているAPI211の一覧を表示部306に表示する。差分情報指摘設定手段413は、アプリが利用しているAPI211を、動作差分解析手段406が解析する際に、参照する差分情報指摘設定ファイル416を生成する。
The integrated
ワークスペース414は、統合開発環境システム400が参照するものであり、プロジェクトと呼ばれる単位でアプリを管理する領域である。また、ワークスペース414には複数のプロジェクトが格納されても構わない。ここで、プロジェクトは、マニフェストファイル417、ソースファイル418、クラスファイル、JARファイルなどから構成される。ここで、マニフェストファイル417とは、アプリの持つ各種情報が記載されたファイルであり、詳細については後述する。一方、組込みアプリ開発支援ツール405を利用して、アプリを開発すると、差分情報指摘設定ファイル416がプロジェクトに生成される。差分情報指摘設定ファイル416は、動作差分解析手段406が指摘対象とする画像形成装置の種類や、指摘するサポートレベルが格納されている。
The
図5は、表示部306に表示される統合開発環境システム400の操作画面の一例である。ソースファイル編集画面501では、プロジェクト内のソースファイル418が表示される。この際、統合開発環境システム400の設定によって、行番号や、警告マークやエラーマークなどを合わせて表示することもできる。なお、本実施例では、サポートレベルに関する情報をサポートレベルマーク1200として表示するが、詳細については後述する。プロジェクト・エクスプローラ502には、開発中のアプリの一覧がプロジェクトの単位で表示されている。また、入力装置305を介してプロジェクト・エクスプローラ502内の開発対象プロジェクトを選択するとプロパティウィンドウが表示され、差分情報指摘設定ボタン503およびシミュレータランチャー起動ボタン504が表示される。差分情報指摘設定ボタン503は、入力装置305から選択の通知を受け付けると差分情報指摘設定手段413を内部的に呼び出し、表示部306に差分情報指摘設定画面900を表示する。シミュレータランチャー起動ボタン504は、選択されるとシミュレータランチャー起動手段411を内部的に呼び出す。API動作差分情報プロパティ画面505は、アプリが利用しているAPI211のサポートレベルを表示する領域であり、詳細は後述する。
FIG. 5 is an example of an operation screen of the integrated
図6は、マニフェストファイル417の構成要素を表す。各要素は、属性と属性値が対になって列挙されたものである。アプリの情報を表すアプリ名602は、アプリの名称を記入する要素である。デバイス仕様ID(DID)603は、機種ごとに割り当てられている識別子を記入するための要素である。DID603には、アプリが動作対象とするDIDを、列挙する。なお、画像形成装置のDIDが、DID603に含まれているときに限り、アプリのインストールが可能である。仕様バージョン604は、アプリが利用可能な画像形成装置ごとに定義されている機能に割り当てられた番号である。例えば、SSL機能であれば5、画像変換処理機能であれば10、といったものである。開発者は、アプリが使用する上述した機能の番号を仕様バージョンとして列挙する。なお、マニフェストファイル417が持つ属性情報は上述した要素に限定されない。
FIG. 6 shows the components of the
図7は、動作差分情報テーブル408の構造を表している。動作差分情報テーブル408は、API211の一覧と、シミュレータごとのサポートレベルを格納しているものである。なお、サポートレベルは、4段階に分かれており、フルサポート、シミュレーションサポート、一部サポート、非サポートと表現する。フルサポートは、画像形成装置と完全に同じ動作をすることを表す。シミュレーションサポートは、固定的な状態遷移に基づいて動作することを表す。即ち、画像形成ユニット等のハードウェア資源の状態に応じた状態遷移ではなく、時間経過に応じた状態遷移に基づく動作である。よって、疑似的な動作のため、画像形成装置でシミュレーションした場合と齟齬が発生する可能性はある。一部サポートは、一部の処理を除いて動作することを表す。例えば、画像形成装置の状態に基づいて様々なイベントを受け付けるAPIの場合、シミュレータでは、発生しないイベント(用紙トレイのオープンや原稿検知など)はサポートできない。非サポートは、シミュレータでは動作しないことを表す。ここでは、便宜上、フルサポートを◎、シミュレーションサポートを○、一部サポートを△、非サポートを×と表す。図7では、copy APIはシミュレータAでは、一部サポート、シミュレータBでは、シミュレーションサポート、シミュレータC、シミュレータZでは一部サポートであることを表す。なお、シミュレータAやシミュレータBは、それぞれ、画像形成装置A、画像形成装置Bに対応するシミュレータを指す。以後、シミュレータに応じて取得したサポートレベルのことを動作差分情報と呼ぶことにする。
FIG. 7 shows the structure of the operation difference information table 408. The operation difference information table 408 stores a list of
図8は、API利用状況情報テーブル409の構造を表している。API利用状況情報テーブル409は、アプリごとに、アプリが使用しているAPI211に関する情報の一覧をアプリ−API対応詳細情報800として格納している。図8では、アプリ1が、copy APIをApp1Class1.java(登録商標)ファイルの123行目で利用しており、getCopyDeviceというアプリが定義したAPIから呼び出していることを表している。
FIG. 8 shows the structure of the API usage status information table 409. The API usage status information table 409 stores a list of information regarding the
図9(A)は、差分情報指摘設定ボタン503の選択通知に基づいて統合開発環境システム400が表示部306に表示する動作差分情報指摘設定画面900である。動作差分情報指摘設定画面900では、動作差分解析手段406がシミュレータとの動作差分を指摘する際に、どのサポートレベルのAPIを指摘するかを、指摘レベル設定901で行える。ここでは、指摘レベル設定901が、非サポート・一部のみサポートのものとなっている。このため、アプリが利用しているシミュレーションサポートおよびフルサポートとなっているAPIについては、指摘対象外となる。また、動作差分解析手段406は、標準では、動作差分情報テーブル408からアプリのマニフェストファイル417のDID603に基づいた画像形成装置の情報を取得してサポートレベルに応じた指摘を行う。一方、動作差分情報指摘設定画面900では、対象画像形成装置設定902で指摘対象となる画像形成装置を選択できる。これにより、開発者が意図して新しい画像形成装置向けにアプリを実装しているときに、古い画像形成装置向けの指摘を抑制できるようになる。ここでは、指定されたシミュレータが複数存在する。具体的には、画像形成装置A、画像形成装置B、画像形成装置Cが選択指定されており、画像形成装置Dの動作差分に関しては指摘対象外となる。また、動作差分解析手段406には、後述するようにアプリを動作させるシミュレータが決定した時点で、仕様バージョンが確定し、アプリの実行スコープが決定されることを利用して、指摘の精度を向上させる、動的解析機能903がある。ただし、動的解析機能903は、アプリの規模によっては処理に時間がかかり、開発者を待たせる可能性がある。このため、動作差分情報指摘設定画面900では動的解析機能の有効・無効を設定できる。これらの指摘設定情報が、図9(B)に示すような構造で差分情報指摘設定ファイル416に格納される。
FIG. 9A shows an operation difference information
図10は、ソースファイル編集画面501にて、ソースファイル418の変更が発生した時の処理を表すフローチャートである。なお、組込みアプリ開発支援ツール405は、統合開発環境システム400の起動時に、初期化が開始される。その際、組込みアプリ開発支援ツール405は、統合開発基盤401に対してソースファイル418の変更時にその変更情報を通知するように要求してある。
FIG. 10 is a flowchart showing processing when the source file 418 is changed on the source
ステップ1001では、動作差分解析手段406は、統合開発基盤401から変更のあったソースファイル418の属するプロジェクト415に関する情報を取得する。ステップ1002では、動作差分解析手段406は、取得したプロジェクト情報から差分情報指摘設定ファイル416をRAM303に読み込む。このとき、RAM303には、指摘レベル設定901、対象画像形成装置設定902と動的解析機能903に関する設定情報が読み込まれる。ステップ1003では、動作差分解析手段406は、RAM303に読み込まれた対象画像形成装置設定902の情報を元に、動作差分情報テーブル408から、API211に関する動作差分情報を取得し、RAM303に読み込む。ステップ1004では、動作差分解析手段406は、統合開発基盤401から取得したソースファイル418の変更情報に、RAM303に読み込んだ動作差分情報に存在するAPI211が含まれているかを確認する。API211が含まれていなければ、ソースファイル編集画面501を更新する必要がないため処理を終了する。API211が含まれている場合は、ステップ1005に処理を移す。ステップ1005では、動作差分解析手段406は、API利用状況情報テーブル409に、該当するAPI211に関する諸情報を登録し、HDD304にAPI利用状況情報テーブル409の内容を書き込む。なお、登録するAPI211に関する諸情報として、本実施例では、API名称、ファイル名称、APIの呼び出し行番号、API211の呼び出し元APIを挙げているが、これらに限定されるわけではないことに注意されたい。
In
ステップ1006では、動作差分解析手段406は、RAM303に読み込まれた指摘レベル設定901と動作差分情報から図11に示す表示制御テーブル1100を生成する。表示制御テーブル1100は、シミュレータごとのサポートレベルと、ソースファイル編集画面501にサポートレベルマーク1200を表示するか、しないかを表す表示可否情報1101を格納したものである。図11の表示制御テーブル1100の生成について説明する。動作差分解析手段406は、RAM303に読み込まれた各シミュレータのAPIに対するサポートレベルから、動作差分情報指摘設定画面900を介して指定されたシミュレータのAPIに対するサポートレベルを特定する。図11では、API211に含まれるimagingToCompressedPDFという、スキャンした画像を圧縮率の高いPDF(Portable Document Format)ファイルに変換するAPIが、ソースファイル418に追記されたときの制御状態を示している。なお、この例では、指摘レベル設定901には、非サポートおよび一部のみサポートが、対象画像形成装置設定902には、シミュレータA、シミュレータB、シミュレータCが設定されている。ここで、シミュレータAでは、imagingToCompressedPDFが非サポートであり、指摘レベル設定901の範囲内であるため、本APIについては、サポートレベルマーク1200として表示する、という判断になる。同様に、シミュレータCでは、imagingToCompressedPDFが一部サポートであり、指摘レベル設定901の範囲内であるため、本APIについては、サポートレベルマーク1200として表示する、という判断になる。一方で、シミュレータBでは、imagingToCompressedPDFがシミュレーションサポートであり、指摘レベル設定901の範囲外であるため、本APIについては、サポートレベルマーク1200として表示しない、という判断になる。ステップ1007では、動作差分解析手段406は、表示制御テーブル1100の情報をエディター更新手段410に通知する。ステップ1008では、エディター更新手段410は、表示可否情報1101が「表示」となっている対象シミュレータのうち、サポートレベルが全て同一であるかを確認する。このとき、サポートレベルが全て同一である場合、ステップ1009に処理を進める。逆に、例えば、図11では、シミュレータAおよびシミュレータCが表示対象となっているが、サポートレベルはそれぞれ異なっている。このような場合は、ステップ1010に処理を進めることになる。ステップ1009では、エディター更新手段410は、サポートレベル情報をアイコン情報に変換し、統合開発基盤401にソースファイル編集画面501にサポートレベルマーク1200を表示するように要求する。ステップ1010では、エディター更新手段410は、最も低いサポートレベル情報をアイコン情報に変換し、付加情報をつけて、ソースファイル編集画面501にサポートレベルマークを表示するように要求する。
In step 1006, the motion difference analysis means 406 generates the display control table 1100 shown in FIG. 11 from the indication level setting 901 and the motion difference information read into the
図12、ソースファイル編集画面501およびAPI動作差分情報プロパティ画面505を表しており、アプリがAPI211を利用している箇所を抜粋したものである。この例では、imagingToPDF、imagingToCompressedPDF、imagingToCompressedSearchablePDFがAPI211に該当する。なお、指摘レベル設定901は、非サポート、一部のみサポート、対象画像形成装置設定902は、画像形成装置A、画像形成装置B、画像形成装置Yが有効になっている。ここで、imagingToPDFに対して、サポートレベルマーク1200の表示がないのは、本APIがシミュレーションサポートあるためである。一方で、imagingToCompressedPDFは、シミュレータAおよびシミュレータCでは、指摘レベル設定901に該当するサポートレベルとなっており、サポートレベルマーク1200が横に表示されている。即ち、シミュレータAおよびシミュレータCは、特定されたシミュレータであり、特定されたサポートレベルが動作差分情報指摘設定画面900を介して指定されたシミュレータのAPIに対するサポートレベルに含まれる場合にサポートレベルマークが表示される。加えて、シミュレータAおよびシミュレータCでは、サポートレベルが異なっているためサポートレベルマークに付加情報として「!」が記されている。これにより、ソースファイルの該当箇所は画像形成装置ごとにサポートレベルが異なることが認識できる。表示として「!」を表示したが、夫々のサポートレベルに対応するサポートレベルマークを同時に表示しても良い。
FIG. 12 shows a source
また、imagingToCompressedSearchablePDFは、シミュレータAおよびシミュレータCでは非サポートであるため、サポートレベルマーク1200が表示されている。この時、シミュレータAおよびシミュレータCのサポートレベルは同一であるため、非サポートを示すマークのみ表示される。API動作差分情報プロパティ画面505には、このような、APIごとのサポートレベルに関する情報が表示される。なお、ソースファイル編集画面501にて選択中の行(図12では、imagingToCompressedPDF(stream);)に関する情報は、反転して表示される。なお、実施例1ではサポートレベルマークを表示する形態としたが必ずしもこのような表示である必要はない。例えば、APIに該当する部分をサポートレベルに応じて色を変更して表示する形態であっても良い。このように、APIに対する画像形成装置とシミュレータとの動作差分が認識でるように表示することができれば、どのような表示形態であっても良い。
Further, since imagingToCompressedSearchablePDF is not supported in simulator A and simulator C, a
図13(A)は、シミュレータランチャー起動ボタン504の選択通知に基づいてシミュレータランチャー起動手段411が操作部306に出力されている状況を表している。選択されたシミュレータが起動対象のシミュレータとなる。
FIG. 13A shows a situation in which the simulator
図13(B)は、シミュレータランチャー起動手段411からシミュレータを起動するときに、注意事項確認画面1400および注意事項確認画面1401を操作部306に出力するまでのフローチャートである。ステップ1300では、シミュレータランチャー起動手段411は、選択された画像形成装置名をAPI利用状況表示手段412に通知する。ステップ1301では、API利用状況表示手段412は、動作差分解析手段406に、選択された画像形成装置に対応したAPIの利用状況を生成するように要求する。ステップ1302では、動作差分解析手段406は、動作差分情報テーブル408から選択された画像形成装置に対応するシミュレータに関する動作差分情報を取得しRAM303に読み込む。ステップ1303では、動作差分解析手段406は、差分情報指摘設定ファイル416をRAM303に読み込み、動的解析機能903が無効であるかを確認する。無効の場合、ステップ1304へ、有効の場合、ステップ1308へ処理をすすめる。ステップ1304では、動作差分解析手段406は、統合開発基盤401に対して、プロジェクト・エクスプローラ502で選択中のプロジェクト415に関する情報を取得する。そして、動作差分解析手段406は、API利用状況情報テーブル409から、取得したアプリのプロジェクト415の情報を元に対応するアプリ−API対応詳細情報800を取得する。ステップ1305では、動作差分解析手段406は、アプリに対応するアプリ−API対応詳細情報800から取得したAPIと動作差分情報を照らし合わせてフルサポート以外のアプリ−API対応詳細情報800を抽出する。そして、動作差分解析手段406は、抽出した情報をAPI利用状況表示手段412に返す。ステップ1306では、API利用状況表示手段412は、動作差分解析手段406から受け取った結果を、表示するように統合開発基盤401に要求する。その結果、図14(A)の注意事項確認画面1400が表示される。注意事項確認画面1400には、起動するシミュレータ(図14(A)では、シミュレータA)上でフルサポートではないAPIに関する諸情報が表示されている。一方、ステップX1308では、動的解析機能903が有効であるため、動作差分解析手段406は、選択中のプロジェクトの全てのソースに対して、仕様バージョン604による分岐制御を考慮して、アプリ−API対応詳細情報800を生成しなおす。具体的には、画像形成装置Aで定義されている仕様バージョン604が10のみの場合、図12のソースファイル418上では、以下の制御文によるスコープ内の処理しか画像形成装置A上では実行されることがない。
FIG. 13B is a flowchart up to outputting the caution confirmation screen 1400 and the caution confirmation screen 1401 to the
if(System.getProperty(“SpecID”). indexOf(“10”)) {
imagingToPDF(stream);
}
なお、System.getProperty(“SpecID”)は、画像形成装置で定義されている仕様バージョン604を取得するための記述である。そして、System.getProperty(“SpecID”).indexOf(“10”)は、取得した仕様バージョン604に10が含まれているかどうかの真偽値を返すものである。この動的解析機能903により、imagingToCompressedPDF、imagingToCompressedSearchablePDFは、同一ソースファイル418上に存在するものの、画像形成装置A上では処理されないため、図14(B)の注意事項確認画面1401上では、指摘されなくなる。
if (System.getProperty (“SpecID”). indexOf (“10”)) {
imagingToPDF (stream);
}
Note that System. getProperty (“SpecID”) is a description for acquiring a
以上により、画像形成装置のアプリ開発者は、統合開発環境システム400に登録された組込みアプリ開発支援ツール405を使うことで、開発中のアプリが利用しているAPI211が動作確認対象としているシミュレータで利用可能かを実行前に判断できる。例えば、開発者が、画像形成装置Aで動作するアプリがシミュレータAでは利用できないAPI211をソースファイル編集画面501で追記した場合、サポートレベルマーク1200として表示される。このため、開発者は、該当箇所に関する動作確認はシミュレータでも十分なのか、実際の画像形成装置で行うべきなのかを容易に判断できる。これにより、画像形成装置上での動作確認作業を削減できる。また、アプリが複数の画像形成装置上で動作することを想定している場合に、組込みアプリ開発支援ツール405は、シミュレータごとのサポートレベルの差異がわかるように表示する。このため、例えば、同一の動作確認をシミュレータAおよびシミュレータBで実施するときに、シミュレータAでは動いたから、シミュレータBでも動くという開発者の思い込みによる誤った動作確認作業を未然に防げるようになる。また、シミュレータ起動前に、シミュレータ上で動作を保証しないAPIに関する情報を注意事項確認画面1400として表示する。これにより、開発者は、実際に動作確認作業をする直前に、シミュレータでのサポートレベルに応じてアプリが利用しているAPI211に関する情報を確認できる。また、動的解析機能903を有効にすると、アプリが仕様バージョンによるAPI211の利用を分岐制御している場合、動作確認を実施するシミュレータに基づいてソースファイル418上の指摘するスコープを制限できる。これにより、注意事項確認画面1401での不要な指摘を削減できるため、開発者の視認性が向上する。
As described above, the application developer of the image forming apparatus uses the embedded application
406 動作差分解析手段
408 動作差分情報テーブル
409 API利用状況情報テーブル
410 エディター更新手段
412 API利用状況表示手段
406 Operation difference analysis means 408 Operation difference information table 409 API usage status information table 410 Editor update means 412 API usage status display means
Claims (8)
画像形成装置ごとに用意された、アプリケーションをテスト動作させるためのシミュレータと、
ソースファイルを編集するためのソースファイル編集画面を介して前記アプリケーションに対応するソースファイルにアプリケーションプログラミングインターフェース(以後、APIと称する)が加えられた場合、前記シミュレータごとに設定された前記APIに対するサポートレベルを読み込む読み込み手段と、
前記読み込み手段により読み込まれた各シミュレータのAPIに対するサポートレベルを基に、前記APIに対する画像形成装置とシミュレータとの動作差分が認識できるように前記ソースファイル編集画面を表示する表示制御手段と、を有する情報処理装置。 An information processing apparatus capable of editing a source file of an application that provides a service using an image processing unit,
A simulator prepared for each image forming apparatus to test the application;
When an application programming interface (hereinafter referred to as API) is added to the source file corresponding to the application via the source file editing screen for editing the source file, the support level for the API set for each simulator Means to read
Display control means for displaying the source file editing screen so that an operation difference between the image forming apparatus and the simulator for the API can be recognized based on the support level for the API of each simulator read by the reading means. Information processing device.
前記読み込み手段により読み込まれた各シミュレータのAPIに対するサポートレベルから前記受け付け手段により受け付けられたシミュレータのAPIに対するサポートレベルを特定する特定手段と、を有し、
前記表示制御手段は、特定された前記サポートレベルが前記受け付け手段により受け付けられたサポートレベルの指定に含まれる場合に、特定された前記サポートに対応するサポートレベルマークを表示することを特徴とする請求項1に記載の情報処理装置。 Accepting means for accepting designation of a support level for displaying a support level mark on the source file editing screen and designation of a simulator for performing the test operation of the application;
Specifying means for specifying a support level for the API of the simulator received by the receiving means from a support level for the API of each simulator read by the reading means;
The display control means displays a support level mark corresponding to the specified support when the specified support level is included in the specification of the support level received by the receiving means. Item 4. The information processing apparatus according to Item 1.
前記表示制御手段は、前記特定手段により特定された複数のサポートレベルが、前記受け付け手段により受け付けられた複数のシミュレータの指定に含まれる場合、前記特定手段により特定された複数のサポートレベルに対応する夫々のサポートレベルマークを同時に表示することを特徴とする請求項2に記載の情報処理装置。 When there are a plurality of simulator designations received by the receiving means, and there are a plurality of support levels specified by the specifying means,
The display control unit corresponds to the plurality of support levels specified by the specifying unit when the plurality of support levels specified by the specifying unit are included in the designation of the plurality of simulators received by the receiving unit. The information processing apparatus according to claim 2, wherein each support level mark is displayed simultaneously.
前記表示制御手段は、前記起動手段により起動対象のシミュレータが起動される前に、前記APIに対する前記画像形成装置と前記シミュレータとに動作差分が存在することを認識させる注意事項確認画面を表示することを特徴とする請求項1乃至3の何れか1項に記載の情報処理装置。 Starting means for starting a simulator designated by the user from among the simulators;
The display control means displays a precaution check screen for recognizing that an operation difference exists between the image forming apparatus and the simulator for the API before the activation target simulator is activated by the activation means. The information processing apparatus according to any one of claims 1 to 3.
前記シミュレータの中からユーザにより指定されたシミュレータに対応する画像形成装置であって、当該画像形成装置に搭載された仮想マシンの仕様バージョンを前記取得手段により取得された際、取得された前記仕様バージョンによる分岐制御を考慮し、前記アプリケーションに対応するソースファイルに含まれるAPIが実行されないことが確認された場合は、前記注意事項確認画面に前記APIに対する前記画像形成装置と前記シミュレータとに動作差分が存在することを表示しないように制御することを特徴とする請求項4に記載の情報処理装置。 Having an acquisition means for acquiring a specification version of the virtual machine included in an image forming apparatus equipped with a virtual machine that operates the application;
The image forming apparatus corresponding to the simulator designated by the user from among the simulators, and the specification version acquired when the specification version of the virtual machine mounted on the image forming apparatus is acquired by the acquisition unit If it is confirmed that the API included in the source file corresponding to the application is not executed in consideration of the branch control by the 5. The information processing apparatus according to claim 4, wherein control is performed so as not to display the presence.
画像形成装置ごとに用意されたシミュレータは、アプリケーションをテスト動作させ、
読み込み手段は、ソースファイルを編集するためのソースファイル編集画面を介して前記アプリケーションに対応するソースファイルにアプリケーションプログラミングインターフェース(以後、APIと称する)が加えられた場合、前記シミュレータごとに設定された前記APIに対するサポートレベルを読み込み、
表示制御手段は、前記読み込み手段により読み込まれた各シミュレータのAPIに対するサポートレベルを基に、前記APIに対する画像形成装置とシミュレータとの動作差分が認識できるように前記ソースファイル編集画面を表示することを特徴とする情報処理装置を制御する制御方法。 A control method for controlling an information processing apparatus capable of editing a source file of an application that provides a service using an image processing unit,
The simulator prepared for each image forming device runs the application as a test,
When an application programming interface (hereinafter referred to as API) is added to the source file corresponding to the application via the source file editing screen for editing the source file, the reading unit is configured to Read the support level for the API,
The display control means displays the source file editing screen so that an operation difference between the image forming apparatus and the simulator for the API can be recognized based on the support level for the API of each simulator read by the reading means. A control method for controlling a characteristic information processing apparatus.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012006201A JP2013145502A (en) | 2012-01-16 | 2012-01-16 | Information processing apparatus, control method and program thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012006201A JP2013145502A (en) | 2012-01-16 | 2012-01-16 | Information processing apparatus, control method and program thereof |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013145502A true JP2013145502A (en) | 2013-07-25 |
Family
ID=49041254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012006201A Pending JP2013145502A (en) | 2012-01-16 | 2012-01-16 | Information processing apparatus, control method and program thereof |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2013145502A (en) |
-
2012
- 2012-01-16 JP JP2012006201A patent/JP2013145502A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20130074048A1 (en) | System, information processing apparatus and control method thereof, image forming apparatus and control method thereof, and computer-readable medium | |
US9632754B2 (en) | Auto generation and linkage of source code to test cases | |
JP5440252B2 (en) | Information processing apparatus, external apparatus, information processing system, information processing method, and program | |
JP6024126B2 (en) | Failure response support apparatus, failure response support system, failure response support method, and failure response support program | |
JP2004185595A (en) | Information processor and program therefor | |
JP2004185593A (en) | Image forming apparatus and application execution method | |
JP2013149026A (en) | Information processing apparatus, control method, and program thereof | |
JP2013145502A (en) | Information processing apparatus, control method and program thereof | |
JP2014056547A (en) | Counter-failure support device, counter-failure support system, counter-failure support method, and counter-failure support program | |
JP2009223577A (en) | User interface emulation device and user interface emulation program | |
JP2008198097A (en) | Information processor, control device, script processing method, storage medium, and program | |
JP2011053729A (en) | Program development support device and system | |
CN112272820A (en) | Support device and support program | |
JP2011060236A (en) | Information processor, development support program, and software integrated development environment | |
JP7328922B2 (en) | Setting device, setting method, and program | |
JP6740632B2 (en) | Information processing system, screen display information generation method, electronic device and browser program | |
JP2010218469A (en) | Information processor, information processing method, program and recording medium | |
JP5630556B2 (en) | Information processing apparatus, external apparatus, information processing system, information processing method, and program | |
US20210042131A1 (en) | Information processing apparatus, method of controlling the same, and storage medium | |
JP4080739B2 (en) | Application generating method for image forming apparatus and program causing computer to execute the method | |
US20220300269A1 (en) | Information processing apparatus, information processing system, and information processing method | |
JP5250518B2 (en) | Operation check system and target device | |
JP5337686B2 (en) | Application program generation method and image forming apparatus | |
JP5144624B2 (en) | Image forming apparatus | |
JP2009054148A (en) | Image forming apparatus, program, and recording medium |