(57)【特許請求の範囲】
【請求項１】
アプリケーションを動作させる情報処理装置と、前記情報処理装置に情報を提供する情報提供サーバとを含む情報処理システムであって、
前記情報処理装置は、
前記アプリケーションを前記情報処理装置上で動作させるシミュレータと、
前記アプリケーションが動作時に使用するメモリの使用量であるメモリ使用量を測定するメモリ使用量監視手段と、
前記情報提供サーバが提供する、前記メモリ使用量を判定するための判定情報を使用して、前記アプリケーションが許容されるメモリ使用量上限値を決定するメモリ使用量決定手段とを含み、
前記メモリ使用量監視手段は、前記メモリ使用量がメモリ使用量上限値を超えているか否か判定し、判定結果を通知し、
前記判定情報は、前記アプリケーションが使用するＡＰＩの種別と、前記ＡＰＩが使用される際に許容されるメモリ使用量上限値とが関連付けて登録された第１のデータテーブルを含み、
前記メモリ使用量決定手段は、前記第１のデータテーブルと、前記アプリケーションが使用したＡＰＩの種別情報と、前記メモリ使用量とを使用して、前記メモリ使用量上限値を決定する、情報処理システム。
【請求項２】
前記判定情報は、前記アプリケーションの起動形式と、前記アプリケーションの起動形式別のメモリ使用量上限値とが登録された第２のデータテーブルを含み、
前記メモリ使用量決定手段は、前記第２のデータテーブルと、前記アプリケーションの起動形式を示す情報とを使用して、前記メモリ使用量上限値を決定する、請求項１に記載の情報処理システム。
【請求項３】
アプリケーションを動作させる情報処理装置と、前記情報処理装置に情報を提供する情報提供サーバとを含む情報処理システムであって、
前記情報処理装置は、
前記アプリケーションを前記情報処理装置上で動作させるシミュレータと、
前記アプリケーションが動作時に使用するメモリの使用量であるメモリ使用量を測定するメモリ使用量監視手段と、
前記情報提供サーバが提供する、前記メモリ使用量を判定するための判定情報を使用して、前記アプリケーションが許容されるメモリ使用量上限値を決定するメモリ使用量決定手段とを含み、
前記メモリ使用量監視手段は、前記メモリ使用量がメモリ使用量上限値を超えているか否か判定し、判定結果を通知し、
前記判定情報は、前記アプリケーションの起動形式と、前記アプリケーションの起動形式別のメモリ使用量上限値とが登録された第２のデータテーブルを含み、
前記メモリ使用量決定手段は、前記第２のデータテーブルと、前記アプリケーションの起動形式を示す情報とを使用して、前記メモリ使用量上限値を決定する、情報処理システム。
【請求項４】
アプリケーションを動作させる情報処理装置と、前記情報処理装置に情報を提供する情報提供サーバとを含む情報処理システムであって、
前記情報処理装置は、
前記アプリケーションを前記情報処理装置上で動作させるシミュレータと、
前記アプリケーションが動作時に使用するメモリの使用量であるメモリ使用量を測定するメモリ使用量監視手段と、
前記情報提供サーバが提供する、前記メモリ使用量を判定するための判定情報を使用して、前記アプリケーションが許容されるメモリ使用量上限値を決定するメモリ使用量決定手段とを含み、
前記メモリ使用量監視手段は、前記メモリ使用量がメモリ使用量上限値を超えているか否か判定し、判定結果を通知し、
前記判定情報は、
前記アプリケーションが使用するＡＰＩの種別と、前記ＡＰＩが組み込み機器で使用されるＡＰＩであるか否かを示す情報とが関連付けて登録された第３のデータテーブルと、
前記組み込み機器上で前記アプリケーションが動作する際に許容されるメモリ使用量上限値と、前記組み込み機器以外の機器上で前記アプリケーションが動作する際に許容されるメモリ使用量上限値とが登録された第４のデータテーブルとを含み、
前記メモリ使用量決定手段は、
前記第３のデータテーブルと、前記アプリケーションが使用したＡＰＩの種別情報とを使用して、前記アプリケーションが組み込み機器に実装されるか否か判定し、
前記判定の結果と、前記第４のデータテーブルと、前記メモリ使用量とを使用して、前記メモリ使用量上限値を決定する、情報処理システム。
【請求項５】
アプリケーションを動作させる情報処理装置と、前記情報処理装置に情報を提供する情報提供サーバとを含む情報処理システムであって、
前記情報処理装置は、
前記アプリケーションを前記情報処理装置上で動作させるシミュレータと、
前記アプリケーションが動作時に使用するメモリの使用量であるメモリ使用量を測定するメモリ使用量監視手段と、
前記情報提供サーバが提供する、前記メモリ使用量を判定するための判定情報を使用して、前記アプリケーションが許容されるメモリ使用量上限値を決定するメモリ使用量決定手段とを含み、
前記メモリ使用量監視手段は、前記メモリ使用量がメモリ使用量上限値を超えているか否か判定し、判定結果を通知し、
前記判定情報は、
前記アプリケーションが使用するＡＰＩの種別と、前記ＡＰＩが組み込み機器で使用されるＡＰＩであるか否かを示す情報とが関連付けて登録された第３のデータテーブルと、
前記組み込み機器および前記組み込み機器のバージョン情報と、前記組み込み機器上で前記アプリケーションが動作する際に許容されるメモリ使用量上限値とが登録された第５のデータテーブルとを含み、
前記メモリ使用量決定手段は、前記第３のデータテーブルと、前記アプリケーションが使用したＡＰＩの種別情報とを使用して、前記アプリケーションが組み込み機器に実装されるか否か判定し、
前記メモリ使用量監視手段は、前記アプリケーションが組み込み機器に実装される場合に、前記第５のデータテーブルと、前記メモリ使用量とを使用して、前記アプリケーションのメモリ使用量が前記メモリ使用量上限値を超えているか否か判定する、情報処理システム。
【請求項６】
前記情報処理装置は、前記判定結果を表示する表示手段を備えている、請求項１〜５のいずれか１項に記載の情報処理システム。
【請求項７】
アプリケーションを動作させる情報処理装置と、前記情報処理装置に情報を提供する情報提供サーバとを含む情報処理システムであって、
前記情報処理装置は、
前記アプリケーションを前記情報処理装置上で動作させるシミュレータと、
前記アプリケーションが動作時に使用するメモリの使用量であるメモリ使用量を測定し、前記アプリケーションが使用するＡＰＩの種別情報が記録されるログに前記メモリ使用量を記録するメモリ使用量監視手段と、
前記ログを前記情報提供サーバに提供する手段とを含み、
前記情報提供サーバは、
前記メモリ使用量を判定するための判定情報が保存されるデータベースと、
前記判定情報および前記情報処理装置が提供するログを使用して、前記アプリケーションが組み込み機器に実装されるか否か判定し、前記アプリケーションが組み込み機器に実装される場合に、前記アプリケーションのメモリ使用量が前記アプリケーションの許容されるメモリ使用量上限値を超えているか否か判定する手段と、
前記判定する手段による判定結果を通知する手段とを含み、
前記判定情報は、
前記アプリケーションが使用するＡＰＩの種別と、前記ＡＰＩが組み込み機器で使用されるＡＰＩであるか否かを示す情報とが関連付けて登録された第３のデータテーブルと、
前記組み込み機器および前記組み込み機器のバージョン情報と、前記組み込み機器上で前記アプリケーションが動作する際に許容されるメモリ使用量上限値とが登録された第５のデータテーブルとを含む、情報処理システム。
【請求項８】
前記情報提供サーバは、
前記判定情報を更新する手段をさらに含み、
前記更新する手段が前記判定情報を更新すると、前記判定する手段は、前記アプリケーションのメモリ使用量が前記メモリ使用量上限値を超えているか否か判定し、前記通知する手段は前記判定の結果を通知する、請求項７に記載の情報処理システム。
【請求項９】
アプリケーションを動作させる情報処理装置であって、
前記アプリケーションを前記情報処理装置上で動作させるシミュレータと、
前記アプリケーションが動作時に使用するメモリの使用量であるメモリ使用量を測定するメモリ使用量監視手段と、
前記メモリ使用量を判定するための判定情報を使用して、前記アプリケーションが許容されるメモリ使用量上限値を決定するメモリ使用量決定手段とを含み、
前記メモリ使用量監視手段は、前記メモリ使用量が前記メモリ使用量上限値を超えているか否か判定し、判定結果を通知し、
前記判定情報は、前記アプリケーションが使用するＡＰＩの種別と、前記ＡＰＩが使用される際に許容されるメモリ使用量上限値とが関連付けて登録された第１のデータテーブルを含み、
前記メモリ使用量決定手段は、前記第１のデータテーブルと、前記アプリケーションが使用したＡＰＩの種別情報と、前記メモリ使用量とを使用して、前記メモリ使用量上限値を決定する、情報処理装置。
【請求項１０】
前記判定情報は、前記アプリケーションの起動形式と、前記アプリケーションの起動形式別のメモリ使用量上限値とが登録された第２のデータテーブルを含み、
前記メモリ使用量決定手段は、前記第２のデータテーブルと、前記アプリケーションの起動形式を示す情報とを使用して、前記メモリ使用量上限値を決定する、請求項９に記載の情報処理装置。
【請求項１１】
アプリケーションを動作させる情報処理装置であって、
前記アプリケーションを前記情報処理装置上で動作させるシミュレータと、
前記アプリケーションが動作時に使用するメモリの使用量であるメモリ使用量を測定するメモリ使用量監視手段と、
前記メモリ使用量を判定するための判定情報を使用して、前記アプリケーションが許容されるメモリ使用量上限値を決定するメモリ使用量決定手段とを含み、
前記メモリ使用量監視手段は、前記メモリ使用量が前記メモリ使用量上限値を超えているか否か判定し、判定結果を通知し、
前記判定情報は、前記アプリケーションの起動形式と、前記アプリケーションの起動形式別のメモリ使用量上限値とが登録された第２のデータテーブルを含み、
前記メモリ使用量決定手段は、前記第２のデータテーブルと、前記アプリケーションの起動形式を示す情報とを使用して、前記メモリ使用量上限値を決定する、情報処理装置。
【請求項１２】
アプリケーションを動作させる情報処理装置であって、
前記アプリケーションを前記情報処理装置上で動作させるシミュレータと、
前記アプリケーションが動作時に使用するメモリの使用量であるメモリ使用量を測定するメモリ使用量監視手段と、
前記メモリ使用量を判定するための判定情報を使用して、前記アプリケーションが許容されるメモリ使用量上限値を決定するメモリ使用量決定手段とを含み、
前記メモリ使用量監視手段は、前記メモリ使用量が前記メモリ使用量上限値を超えているか否か判定し、判定結果を通知し、
前記判定情報は、
前記アプリケーションが使用するＡＰＩの種別と、前記ＡＰＩが組み込み機器で使用されるＡＰＩであるか否かを示す情報とが関連付けて登録された第３のデータテーブルと、
前記組み込み機器上で前記アプリケーションが動作する際に許容されるメモリ使用量上限値と、前記組み込み機器以外の機器上で前記アプリケーションが動作する際に許容されるメモリ使用量上限値とが登録された第４のデータテーブルとを含み、
前記メモリ使用量決定手段は、
前記第３のデータテーブルと、前記アプリケーションが使用したＡＰＩの種別情報とを使用して、前記アプリケーションが組み込み機器に実装されるか否か判定し、
前記判定結果と、前記第４のデータテーブルと、前記メモリ使用量とを使用して、前記メモリ使用量上限値を決定する、情報処理装置。
【請求項１３】
アプリケーションを動作させる情報処理装置であって、
前記アプリケーションを前記情報処理装置上で動作させるシミュレータと、
前記アプリケーションが動作時に使用するメモリの使用量であるメモリ使用量を測定するメモリ使用量監視手段と、
前記メモリ使用量を判定するための判定情報を使用して、前記アプリケーションが許容されるメモリ使用量上限値を決定するメモリ使用量決定手段とを含み、
前記メモリ使用量監視手段は、前記メモリ使用量が前記メモリ使用量上限値を超えているか否か判定し、判定結果を通知し、
前記判定情報は、
前記アプリケーションが使用するＡＰＩの種別と、前記ＡＰＩが組み込み機器で使用されるＡＰＩであるか否かを示す情報とが関連付けて登録された第３のデータテーブルと、
前記組み込み機器および前記組み込み機器のバージョン情報と、前記組み込み機器上で前記アプリケーションが動作する際に許容されるメモリ使用量上限値とが登録された第５のデータテーブルとを含み、
前記メモリ使用量決定手段は、前記第３のデータテーブルと、前記アプリケーションが使用したＡＰＩの種別情報とを使用して、前記アプリケーションが組み込み機器に実装されるか否か判定し、
前記メモリ使用量監視手段は、前記アプリケーションが組み込み機器に実装される場合に、前記第５のデータテーブルと、前記メモリ使用量とを使用して、前記アプリケーションのメモリ使用量が前記メモリ使用量上限値を超えているか否か判定する、情報処理装置。
【請求項１４】
前記情報処理装置は、前記判定結果を表示する表示手段を備えている、請求項９〜１３のいずれか１項に記載の情報処理装置。
【請求項１５】
アプリケーションを動作させる情報処理装置が実行する方法であって、前記方法は、前記情報処理装置が、
前記アプリケーションを前記情報処理装置上で動作させるステップと、
前記アプリケーションが動作時に使用するメモリの使用量であるメモリ使用量を測定するステップと、
前記メモリ使用量を判定するための判定情報を使用して、前記アプリケーションが許容されるメモリ使用量上限値を決定するステップと、
前記メモリ使用量が前記メモリ使用量上限値を超えているか否か判定するステップと、
前記判定するステップの判定結果を通知するステップと
を含み、
前記判定情報は、前記アプリケーションが使用するＡＰＩの種別と、前記ＡＰＩが使用される際に許容されるメモリ使用量上限値とが関連付けて登録された第１のデータテーブルを含み、
前記メモリ使用量上限値を決定するステップは、
前記第１のデータテーブルと、前記アプリケーションが使用したＡＰＩの種別情報と、前記メモリ使用量とを使用して、前記メモリ使用量上限値を決定するステップを含む、請方法。
【請求項１６】
前記判定情報は、前記アプリケーションの起動形式と、前記アプリケーションの起動形式別のメモリ使用量上限値とが登録された第２のデータテーブルを含み、
前記メモリ使用量上限値を決定するステップは、
前記第２のデータテーブルと、前記アプリケーションの起動形式を示す情報とを使用して、前記メモリ使用量上限値を決定するステップを含む、請求項１５に記載の方法。
【請求項１７】
アプリケーションを動作させる情報処理装置が実行する方法であって、前記方法は、前記情報処理装置が、
前記アプリケーションを前記情報処理装置上で動作させるステップと、
前記アプリケーションが動作時に使用するメモリの使用量であるメモリ使用量を測定するステップと、
前記メモリ使用量を判定するための判定情報を使用して、前記アプリケーションが許容されるメモリ使用量上限値を決定するステップと、
前記メモリ使用量が前記メモリ使用量上限値を超えているか否か判定するステップと、
前記判定するステップの判定結果を通知するステップと
を含み、
前記判定情報は、前記アプリケーションの起動形式と、前記アプリケーションの起動形式別のメモリ使用量上限値とが登録された第２のデータテーブルを含み、
前記メモリ使用量上限値を決定するステップは、
前記第２のデータテーブルと、前記アプリケーションの起動形式を示す情報とを使用して、前記メモリ使用量上限値を決定するステップを含む、方法。
【請求項１８】
アプリケーションを動作させる情報処理装置が実行する方法であって、前記方法は、前記情報処理装置が、
前記アプリケーションを前記情報処理装置上で動作させるステップと、
前記アプリケーションが動作時に使用するメモリの使用量であるメモリ使用量を測定するステップと、
前記メモリ使用量を判定するための判定情報を使用して、前記アプリケーションが許容されるメモリ使用量上限値を決定するステップと、
前記メモリ使用量が前記メモリ使用量上限値を超えているか否か判定するステップと、
前記判定するステップの判定結果を通知するステップと
を含み、
前記判定情報は、
前記アプリケーションが使用するＡＰＩの種別と、前記ＡＰＩが組み込み機器で使用されるＡＰＩであるか否かを示す情報とが関連付けて登録された第３のデータテーブルと、
前記組み込み機器上で前記アプリケーションが動作する際に許容されるメモリ使用量上限値と、前記組み込み機器以外の機器上で前記アプリケーションが動作する際に許容されるメモリ使用量上限値とが登録された第４のデータテーブルとを含み、
前記メモリ使用量上限値を決定するステップは、
前記第３のデータテーブルと、前記アプリケーションが使用したＡＰＩの種別情報とを使用して、前記アプリケーションが組み込み機器に実装されるか否か判定し、
前記判定の結果と、前記第４のデータテーブルと、前記メモリ使用量とを使用して、前記メモリ使用量上限値を決定するステップを含む、方法。
【請求項１９】
アプリケーションを動作させる情報処理装置が実行する方法であって、前記方法は、前記情報処理装置が、
前記アプリケーションを前記情報処理装置上で動作させるステップと、
前記アプリケーションが動作時に使用するメモリの使用量であるメモリ使用量を測定するステップと、
前記メモリ使用量を判定するための判定情報を使用して、前記アプリケーションが許容されるメモリ使用量上限値を決定するステップと、
前記メモリ使用量が前記メモリ使用量上限値を超えているか否か判定するステップと、
前記判定するステップの判定結果を通知するステップと
を含み、
前記判定情報は、
前記アプリケーションが使用するＡＰＩの種別と、前記ＡＰＩが組み込み機器で使用されるＡＰＩであるか否かを示す情報とが関連付けて登録された第３のデータテーブルと、
前記組み込み機器および前記組み込み機器のバージョン情報と、前記組み込み機器上で前記アプリケーションが動作する際に許容されるメモリ使用量上限値とが登録された第５のデータテーブルとを含み、
前記メモリ使用量上限値を決定するステップは、
前記第３のデータテーブルと、前記アプリケーションが使用したＡＰＩの種別情報とを使用して、前記アプリケーションが組み込み機器に実装されるか否か判定するステップを含み、
前記判定するステップは、
前記アプリケーションが組み込み機器に実装される場合に、前記メモリ使用量と、前記第５のデータテーブルとを使用して、前記アプリケーションのメモリ使用量が前記メモリ使用量上限値を超えているか否か判定するステップを含む、方法。
【請求項２０】
請求項１５〜１９のいずれか１項に記載の各ステップを情報処理装置が実行するためのコンピュータ実行可能なプログラム。
【請求項２１】
前記コンピュータ実行可能なプログラムがソフトウェア開発キットである、請求項２０に記載のプログラム。
【請求項２２】
請求項２０または２１に記載されたプログラムを記録したコンピュータ可読な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア開発キット（Software Development Kit：ＳＤＫ）に関し、より詳細には、ＳＤＫを使用して動作するソフトウェアの品質を向上させる情報処理システム、情報処理装置、方法、プログラムおよび記録媒体に関する。
【背景技術】
【０００２】
近年、ソフトウェア開発においてＳＤＫを利用したソフトウェア製品の開発が行われている。ＳＤＫは、ソフトウェア製品に組み込まれるＡＰＩ（Application Program Interface）が登録されたライブラリやデバックツール、シミュレータ等を備えており、ソフトウェア開発者は、開発対象のソフトウェア製品が使用するＡＰＩを選択して容易に組み込むことができ、また、デバックツールやシミュレータ等を使用してソフトウェア製品の各種テストを行うことができる。
【０００３】
現在、このようなＳＤＫを使用して様々なソフトウェア製品が開発されている一方、ＳＤＫを使用して開発されたソフトウェア製品であるアプリケーションプログラムを検証・評価する技術が提案されている。このような技術の一例として、特許文献１は、ＡＰ開発元がＳＤＫを使用して開発したアプリケーションプログラムのソースを、第三者である検証機関がソース解析ツールを用いて解析し、アプリケーションプログラムが使用するＡＰＩの正当性を確認する検証システムを開示する。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１が開示する検証システムは、アプリケーションが使用を予定するＡＰＩの使用が許可されているか否か判定することによってＡＰＩの正当性を確認するに止まり、ＳＤＫを使用して開発されたアプリケーション自体の性能や品質を検証・評価することができない。
【０００５】
一方、現在のアプリケーション開発では、顧客に対して付加価値のある商品を提供すべく、高機能かつ多機能のアプリケーション開発が求められており、アプリケーションの高機能化および多機能化に伴い、その開発規模が増大している。このような規模の大きなアプリケーション開発を行う場合、一つの企業のみでアプリケーション開発をするのではなく、複数のグループ企業や協力会社、ベンダ等に開発を委託することが主流となっている。このため、開発を受託した総てのベンダ等が、開発すべきアプリケーションが実装される様々な機器の仕様や性能等の動作環境を考慮して開発を容易に行うことが困難であり、その結果、アプリケーションの動作環境に不適切な仕様の製品を開発してしまい、製品不具合を生じさせる虞がある。特に、開発されたアプリケーションが、許容されるメモリ使用量を超えて動作する場合には、そのアプリケーションが実装された機器のシステムの動作が不安定になり、またはシステム全体の動作が停止し、重大な不具合を招来する虞がある。
【０００６】
本発明は、上記従来技術の問題に鑑みてなされたものであり、開発対象のアプリケーションの動作環境に適したアプリケーションのメモリ使用量を判定可能な情報処理システム、情報処理装置、方法、プログラムおよび記録媒体を提供することを目的とするものである。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明の情報処理システムに含まれるアプリケーションの開発をする情報処理装置は、当該情報処理装置上でアプリケーションを動作させて、そのメモリの使用量を測定する。そして、情報提供サーバが提供する判定情報を使用して、アプリケーションが許容されるメモリ使用量上限値を決定し、アプリケーションのメモリの使用量がメモリ使用量の上限値を超えているか否か判定し、その判定結果を通知する。これにより、本発明は、開発対象のアプリケーションの動作環境に適したアプリケーションのメモリ使用量を判定することができる。
【０００８】
また、本発明は、開発対象のアプリケーションの動作環境に適したアプリケーションのメモリ使用量を判定可能な方法、プログラムおよび記録媒体を提供する。
【図面の簡単な説明】
【０００９】
【図１】本実施形態の情報処理システムを示す概略図。
【図２】本実施形態の情報処理システムに含まれる情報処理装置および情報提供サーバの機能構成図。
【図３】本実施形態の情報処理システムを使用してターゲットアプリケーションのメモリ使用量を判定する場合に実行される一連の処理を示すシーケンス図。
【図４】本実施形態のＳＤＫが実行するターゲットアプリケーションのメモリ使用量の判定処理を示すフローチャート。
【図５】本実施形態の情報提供サーバが提供する判定情報であるメモリ使用量判定テーブルの一実施形態を示す図。
【図６】本実施形態のＳＤＫが生成するログおよびＳＤＫが有するＡＰＩライブラリに含まれるＡＰＩに実装されるログ出力手段を示す図。
【図７】本実施形態のＳＤＫが実行するターゲットアプリケーションのメモリ使用量の判定処理の他の実施形態を示すフローチャート。
【図８】図７に示す実施形態において情報提供サーバが提供する判定情報であるメモリ使用量判定テーブルの実施形態を示す図。
【図９】本実施形態のＳＤＫが実行するターゲットアプリケーションのメモリ使用量の判定処理のさらに他の実施形態を示すフローチャート。
【図１０】図９に示す実施形態において情報提供サーバが提供する判定情報である機器種別判定テーブルおよびメモリ使用量判定テーブルの実施形態を示す図。
【図１１】本実施形態のＳＤＫが実行するターゲットアプリケーションのメモリ使用量の判定処理のさらに他の実施形態を示すフローチャート。
【図１２】図１１に示す実施形態において情報提供サーバが提供する判定情報である機器種別判定テーブルおよびメモリ使用量判定テーブルの実施形態を示す図。
【図１３】他の実施形態の情報処理システムに含まれる情報処理装置および情報提供サーバの機能構成を示す図。
【図１４】図１３に示す実施形態のＳＤＫが実行する処理を示すフローチャート。
【図１５】図１３に示す実施形態の情報提供サーバが実行する処理を示すフローチャート。
【図１６】図１３に示す実施形態の情報提供サーバがデータベースを更新する際に実行する処理を示すフローチャート。
【発明を実施するための形態】
【００１０】
以下、本発明について実施形態をもって説明するが、本発明は、後述する実施形態に限定されるものではない。図１は、本実施形態の情報処理システム１００を示す概略図である。情報処理システム１００は、ネットワーク１１０に接続された情報処理装置１１２ａ，１１２ｂ、情報提供サーバ１１４およびアプリケーション提供サーバ１１６と、ネットワーク１２０に接続された画像形成装置１２２ａ，１２２ｂとを含んで構成される。
【００１１】
ネットワーク１１０は、イーサネット（登録商標）およびＴＣＰ／ＩＰプロトコルを使用したネットワークとして構成されており、例えば、インターネットやワイドエリアネットワーク（ＷＡＮ）などの公共ネットワークを適宜含ませて実装することができる。ネットワーク１２０は、イーサネット（登録商標）およびＴＣＰ／ＩＰプロトコルを使用したネットワークとして構成されており、例えば、ローカルエリアネットワーク（ＬＡＮ）として実装することができる。ネットワーク１１０および１２０は、図示しないルータ等の図示しないルータなどを介して相互接続される。
【００１２】
情報処理装置１１２ａ，１１２ｂは、ＳＤＫを使用してメモリ使用量を評価すべきアプリケーションプログラム（以下、「ターゲットアプリケーション」とする。）を動作可能な情報処理装置である。本実施形態では、情報処理装置１１２ａ，１１２ｂは、ノート型やデスクトップ型等のパーソナルコンピュータ等の情報処理装置を採用することができる。ユーザは、情報処理装置１１２にインストールされたＳＤＫを使用して、画像形成装置１２２ａ，１２２ｂに実装すべきターゲットアプリケーションの作成やメモリ使用量の評価を行うことができる。
【００１３】
情報処理装置１１２は、ＰＥＮＴＩＵＭ（登録商標）プロセッサまたは互換プロセッサを搭載し、ＷＩＮＤＯＷＳ（登録商標）シリーズ、ＭＡＣ（登録商標）ＯＳ、ＵＮＩＸ（登録商標）、ＬＩＮＵＸ（登録商標）などのＯＳの管理下で、アセンブラ、Ｃ、Ｃ＋＋、Ｊａｖａ（登録商標）、Ｊａｖａ（登録商標）Ｓｃｒｉｐｔ、ＰＥＲＬ、ＲＵＢＹ、ＰＹＴＨＯＮなどのプログラム言語で記述された本実施形態のプログラムを実行する。
【００１４】
また、情報処理装置１１２は、プログラムを実行するための実行空間を提供するＲＡＭ、プログラムやデータなどを持続的に保持するためのハードディスク装置（以下、単に「ＨＤＤ」とする。）などを含んでおり、本実施形態の各機能手段をプログラムの実行により、当該情報処理装置上に実現する。
【００１５】
情報提供サーバ１１４は、情報処理装置１１２に対して、ターゲットアプリケーションのメモリ使用量を判定するのに必要な判定情報を提供する情報処理装置である。本実施形態では、情報提供サーバ１１４は、情報処理装置１１２の要求に応じて、情報処理装置１１２上で動作するアプリケーションのメモリ使用量を判定するメモリ使用量判定テーブル等のメモリ使用量判定情報や当該アプリケーションが実装される機器の種別を判定する機器種別判定情報を、判定情報として情報処理装置１１２に提供する。
【００１６】
情報提供サーバ１１４は、ＰＥＮＴＩＵＭ（登録商標）プロセッサまたは互換プロセッサを搭載し、ＷＩＮＤＯＷＳ（登録商標）シリーズ、ＭＡＣ（登録商標）ＯＳ、ＵＮＩＸ（登録商標）、ＬＩＮＵＸ（登録商標）などのＯＳの管理下で、アセンブラ、Ｃ、Ｃ＋＋、Ｊａｖａ（登録商標）、Ｊａｖａ（登録商標）Ｓｃｒｉｐｔ、ＰＥＲＬ、ＲＵＢＹ、ＰＹＴＨＯＮなどのプログラム言語で記述された本実施形態のプログラムを実行する。
【００１７】
また、情報提供サーバ１１４は、プログラムを実行するための実行空間を提供するＲＡＭ、プログラムやデータなどを持続的に保持するためのＨＤＤなどを含んでおり、本実施形態の各機能手段をプログラムの実行により、情報提供サーバ上に実現する。
【００１８】
アプリケーション提供サーバ１１６は、ＳＤＫを使用してメモリ使用量を判定されたターゲットアプリケーションを提供する情報処理装置である。アプリケーション提供サーバ１１６は、当該アプリケーションプログラムを実装すべき画像形成装置１２２ａ，１２２ｂの要求に応じてアプリケーションプログラムを提供する。なお、本実施形態では、ターゲットアプリケーションを画像形成装置１２２ａ，１２２ｂに実装するが、他の実施形態では、ＰＣ等の情報処理装置や印刷装置等に実装してもよい。
【００１９】
アプリケーション提供サーバ１１６は、ＰＥＮＴＩＵＭ（登録商標）プロセッサまたは互換プロセッサを搭載し、ＷＩＮＤＯＷＳ（登録商標）シリーズ、ＭＡＣ（登録商標）ＯＳ、ＵＮＩＸ（登録商標）、ＬＩＮＵＸ（登録商標）などのＯＳの管理下で、アセンブラ、Ｃ、Ｃ＋＋、Ｊａｖａ（登録商標）、Ｊａｖａ（登録商標）Ｓｃｒｉｐｔ、ＰＥＲＬ、ＲＵＢＹ、ＰＹＴＨＯＮなどのプログラム言語で記述されたプログラムを実行し、アプリケーションプログラムを提供する。
【００２０】
画像形成装置１２２ａ，１２２ｂは、ＣＣＤ（Charge Coupled Device）センサなどを含んで構成されるスキャナ装置を含むＭＦＰ（Multi-Function Peripheral）などの画像形成装置である。画像形成装置１２２ａ，１２２ｂは、ユーザが画像形成装置にスキャニングやコピー、ＦＡＸ送信等の各種処理を実行させるためアプリケーションプログラムを実装する。画像形成装置１２２ａ，１２２ｂは、アプリケーション提供サーバ１１６からネットワーク１１０，１２０を介して当該アプリケーションプログラムを取得して、内蔵するＨＤＤにインストールすることができる。
【００２１】
図２は、本実施形態の情報処理システム１００に含まれる情報処理装置１１２ａおよび情報提供サーバ１１４の機能構成を示す図である。以下、図２を参照して、情報処理装置１１２ａおよび情報提供サーバ１１４が実装する処理機能について説明する。なお、情報処理装置１１２ｂについては、情報処理装置１１２ａと同様の機能を実装するので、以下、より詳細な説明は省略する。
【００２２】
情報処理装置１１２は、オペレーションシステム（以下、単に「ＯＳ」とする。）２１０と、ＳＤＫ２１２と、通信部２２４とを含む。
【００２３】
ＯＳ２１０は、情報処理装置１１２ａの全体制御を行う機能手段である。ＯＳ２１０は、ユーザからのＳＤＫ２１２のインストール要求によってＳＤＫ２１２をインストールし、ＳＤＫ２１２が情報処理装置１１２ａに実装される。ＯＳ２１０は、ユーザからのＳＤＫ２１２の起動要求を受領するとＳＤＫ２１２を起動し、ＳＤＫ２１２の要求に応じて、情報提供サーバ１１４に対して判定情報の取得要求を送信し、そのレスポンスとして受信した判定情報をＳＤＫ２１２に提供する。
【００２４】
ＳＤＫ２１２は、ターゲットアプリケーションの作成や評価が可能な機能手段であり、メモリ使用量監視部２１４と、シミュレータ２１６と、メモリ使用量決定部２１８と、ＡＰＩライブラリ２２０と、ソースコードエディタ２２２とを含んで構成される。
【００２５】
メモリ使用量監視部２１４は、ターゲットアプリケーションが使用するメモリ使用量を測定し、メモリ使用量が所定の上限値を超えていないか監視する機能手段である。メモリ使用量監視部２１４は、ターゲットアプリケーションが情報処理装置１１２ａ上で起動されると、ターゲットアプリケーションが使用する情報処理装置１１２ａのメモリの使用量を定期的に測定し、測定結果をログに記録する。
【００２６】
メモリ使用量監視部２１４は、ユーザが発行したメモリ使用量の判定指示を受信すると、ログに記録されたメモリ使用量と、後述するメモリ使用量決定部２１８が決定するメモリ使用量の上限値とを使用して、ターゲットアプリケーションのメモリ使用量が上限値を超えていないか判定する。メモリ使用量監視部２１４は、当該判定結果を情報処理装置１１２ａの表示装置に表示する。
【００２７】
シミュレータ２１６は、情報処理装置１１２ａ上でターゲットアプリケーションを動作させる機能手段である。シミュレータ２１６は、ターゲットアプリケーションに対して、当該アプリケーションが使用するＡＰＩを実行させるコマンドを受け付け、当該ＡＰＩをターゲットアプリケーションに使用させる。本実施形態では、ユーザがＧＵＩ（Graphical User Interface）を使用して１以上のコマンドを選択し、当該コマンドを一括または個別に発行することができる。他の実施形態では、シミュレータ２１６が、複数のコマンドが記述されたバッチファイルを使用して、一括してコマンドを発行することもできる。
【００２８】
メモリ使用量決定部２１８は、ターゲットアプリケーションが使用するメモリ使用量の上限値（以下、「メモリ使用量上限値」とする。）を決定する機能手段である。メモリ使用量決定部２１８は、情報提供サーバ１１４が提供するソフトウェア判定情報であるメモリ消費量判定テーブルと、ターゲットアプリケーションが使用したＡＰＩによってログに記録されるＡＰＩの種別情報とを使用して、当該ターゲットアプリケーションが許容されるメモリ使用量上限値を決定する。なお、情報提供サーバ１１４が提供するソフトウェア判定情報であるメモリ消費量判定テーブルについては、登録されるデータ内容およびメモリ使用量の決定方法とともに、図５を参照してより詳細に説明する。
【００２９】
ＡＰＩライブラリ２２０は、ターゲットアプリケーションが使用するＡＰＩを提供する機能手段である。ＡＰＩライブラリ２２０には、シミュレータ２１６が発行したコマンドに従ってターゲットアプリケーションが呼び出して使用するＡＰＩが含まれる。本実施形態では、ＡＰＩライブラリ２２０に含まれるＡＰＩをＤＬＬとして実装することができる。ＡＰＩライブラリ２２０に含まれるＡＰＩは、ターゲットアプリケーションを実装すべき画像形成装置等の実機に実装されるＡＰＩと同様の機能を有する。
【００３０】
本実施形態では、ＡＰＩライブラリ２２０に含まれるＡＰＩは、ターゲットアプリケーションから呼び出されたときに、ＡＰＩの種別を識別するための情報（以下、「ＡＰＩ種別識別情報」とする。）をログに記録する機能を有する。例えば、プログラミング言語としてＪａｖａ（商標登録）やＣ＋＋等を使用する実施形態では、名前空間（Ｎａｍｅｓｐａｃｅ）を使用してＡＰＩ種別識別情報を管理することができる。なお、ＡＰＩ種別識別情報をログに記録する方法については、図６を参照してより詳細に説明する。
【００３１】
ソースコードエディタ２２２は、情報処理装置１１２ａのユーザがターゲットアプリケーションのソースコードを編集するためのエディタソフトである。本実施形態では、任意のエディタソフトをソースコードエディタ２２２として採用することができる。
【００３２】
通信部２２４は、情報処理装置１１２と、情報提供サーバ１１４との間のデータ通信を行う機能手段である。通信部２２４は、ＳＤＫ２１２からソフトウェア判定情報の取得要求を受信すると、ネットワーク１１０を介して情報提供サーバ１１４に送信する。通信部２２４は、ソフトウェア判定情報の取得要求の応答として情報提供サーバ１１４からソフトウェア判定情報を受信すると、当該ソフトウェア判定情報をＳＤＫ２１２に提供する。
【００３３】
本実施形態では、ＨＴＭＬやＸＭＬ、ＸＨＴＭＬ等のマークアップ言語により記述された構造化文書を使用して、情報処理装置１１２ａと情報提供サーバ１１４との間でＳＯＡＰ（Simple Object Access Protocol）に準拠したソフトウェア判定情報の通信を行うことができる。他の実施形態では、ＦＴＰ（File Transfer Protocol）を使用してソフトウェア判定情報の授受を行ってもよい。
【００３４】
図２に示す情報提供サーバ１１４は、ＯＳ２３０と、情報提供部２３２と、データベース２３４と、通信部２３６とを含んで構成される。
【００３５】
ＯＳ２３０は、情報提供サーバ１１４の全体制御を行う機能手段である。ＯＳ２３０は、通信部２３６が受信した各種要求の種類に応じて、当該要求に関連する機能手段を呼び出して処理を実行させる。本実施形態では、ＯＳ２３０は、ソフトウェア判定情報の取得要求を受信すると、情報提供部２３２を呼び出し、ソフトウェア判定情報の提供処理を実行させる。
【００３６】
情報提供部２３２は、情報処理装置１１２ａに提供する機能手段である。情報提供部２３２は、情報処理装置１１２ａからソフトウェア判定情報の取得要求を受信すると、データベース２３４に登録されたソフトウェア判定情報であるメモリ使用量判定テーブルを取得し、当該取得要求を送信した情報処理装置を送信先に指定して通信部２３６に送信させる。
【００３７】
データベース２３４は、ソフトウェア判定情報であるメモリ使用量判定テーブルが登録されるデータベースである。本実施形態のメモリ使用量判定テーブルについては、図５を参照してより詳細に説明する。
【００３８】
通信部２３６は、情報提供サーバ１１４と情報処理装置１１２との間のデータ通信を行う機能手段である。通信部２３６は、ネットワーク１１０を介して情報処理装置１１２ａからソフトウェア判定情報の取得要求を受信すると、その旨の通知をＯＳ２３０にする。通信部２３６は、情報提供部２３２から直接的またはＯＳ２３０を介して間接的にソフトウェア判定情報の送信要求を受信すると、情報提供部２３２が指定した当該ソフトウェア判定情報の送信先である情報処理装置１１２ａに送信する。
【００３９】
図３は、本実施形態の情報処理システム１００を使用してターゲットアプリケーションのメモリ使用量を判定する場合に実行される一連の処理を示すシーケンス図である。以下、図３を参照してターゲットアプリケーションの判定処理について説明する。
【００４０】
情報処理装置１１２ａ上でターゲットアプリケーションのメモリ使用量を判定する場合、ユーザは、ＳＤＫ２１２を起動し、ＧＵＩ等を用いてメモリ使用量監視部２１４を呼び出す。次いで、メモリ使用量監視部２１４は、シミュレータ２１６およびメモリ使用量決定部２１８を呼び出し、シミュレータ２１６は、ＧＵＩ等を用いてユーザが指定するターゲットアプリケーション３１０を起動する。シミュレータ２１６は、ターゲットアプリケーション３１０から起動完了の通知を受信すると、ターゲットアプリケーション３１０の起動が完了した旨の通知をメモリ使用量監視部２１４に送信する。
【００４１】
メモリ使用量監視部２１４は、当該起動完了の通知を受信すると、情報処理装置１１２ａのメモリ３１２の使用量を定期的に測定し、ログに記録する。本実施形態では、メモリ使用量監視部２１４は、５秒間隔でメモリ３１２の使用量を測定する。他の実施形態では、任意の間隔でメモリの使用量を測定してもよい。
【００４２】
次に、シミュレータ２１６は、ユーザがＧＵＩ等を用いて発行する、ターゲットアプリケーションの機能手段を指定するコマンドを待機する。シミュレータ２１６は、当該コマンドを受信すると、ＡＰＩを使用するターゲットアプリケーション３１０に実装された機能手段を呼び出す。そして、シミュレータ２１６は、当該コマンドを発行した旨の通知をメモリ使用量監視部２１４に送信する。メモリ使用量監視部２１４は、当該通知を受領すると、メモリ３１２のメモリ使用量を測定し、ログに記録する。
【００４３】
本実施形態では、メモリ使用量監視部２１４は、シミュレータ２１６のコマンドの発行直後にメモリ３１２の使用量を測定するため、ターゲットアプリケーション３１０がＡＰＩを使用しているときのメモリ３１２の使用量を正確に測定することができる。他の実施形態では、メモリ使用量監視部２１４は、シミュレータ２１６のコマンドの発行直後にメモリ３１２の使用量を測定せずに、当該メモリ使用量を定期的にのみ測定してもよい。
【００４４】
次いで、メモリ使用量監視部２１４は、ユーザがＧＵＩを使用して発行するメモリ使用量の判定命令を受領すると、メモリ使用量監視部２１４はメモリ使用量の測定を終了し、シミュレータ２１６にターゲットアプリケーション３１０の終了命令を送信すると共に、メモリ使用量決定部２１８にメモリ使用量上限値の決定命令を送信する。
【００４５】
シミュレータ２１６は、ターゲットアプリケーション３１０の終了命令を受信すると、ターゲットアプリケーション３１０を終了させる。一方、メモリ使用量決定部２１８は、メモリ使用量上限値の決定命令を受信すると、情報提供サーバ１１４に対してソフトウェア判定情報の取得要求を送信する。メモリ使用量決定部２１８は、情報提供サーバ１１４からソフトウェア判定情報であるメモリ使用量の判定テーブルを受信すると、当該判定テーブルおよびログを使用してメモリ使用量上限値を決定し、当該メモリ使用量上限値をメモリ使用量監視部２１４に提供する。
【００４６】
メモリ使用量監視部２１４は、当該メモリ使用量上限値およびログを使用して、ターゲットアプリケーション３１０のメモリ使用量が当該メモリ使用量上限値を超えていないか判定し、その判定結果を情報処理装置１１２ａの表示装置に表示する。
【００４７】
本実施形態では、メモリ使用量決定部２１８は、メモリ使用量監視部２１４によって呼び出されるが、他の実施形態では、シミュレータ２１６が呼び出してもよい。また、本実施形態では、メモリ使用量監視部２１４の起動直後にメモリ使用量決定部２１８が呼び出されるが、他の実施形態では、メモリ使用量の監視処理が終了した直後にメモリ使用量決定部２１８を呼び出してもよい。
【００４８】
図４は、本実施形態のＳＤＫが実行するターゲットアプリケーションのメモリ使用量の判定処理を示すフローチャートである。以下、図４を参照して、ＳＤＫ２１２が実行するターゲットアプリケーションのメモリ使用量の判定処理について説明する。
【００４９】
図４の処理は、ステップＳ４００でユーザがＳＤＫ２１２のＧＵＩ等を用いてメモリ使用量監視部２１４を呼び出することにより開始する。ステップＳ４０１では、メモリ使用量監視部２１４がシミュレータ２１６を呼び出し、ステップＳ４０２で、シミュレータ２１６がターゲットアプリケーションを起動する。ステップＳ４０３では、メモリ使用量監視部２１４はメモリ使用量決定部２１８を呼び出す。
【００５０】
ステップＳ４０４では、メモリ使用量監視部２１４は、シミュレータ２１６からターゲットアプリケーションの起動完了通知を受信したか否か判定し、当該通知を受信していない場合には（ｎｏ）、ステップＳ４０４の処理を反復させて当該通知を待機する。一方、起動完了通知を受信した場合には（ｙｅｓ）、処理をステップＳ４０５に分岐させる。ステップＳ４０５では、メモリ使用量監視部２１４がメモリ使用量の測定を開始し、測定結果をログに記録する。
【００５１】
ステップＳ４０６では、シミュレータ２１６がユーザからコマンドの発行指示を受信したか否か判定し、コマンドの発行指示を受信していない場合には（ｎｏ）、ステップＳ４０６の処理を反復させてコマンドの発行指示を待機する。一方、コマンドの発行指示を受信した場合には（ｙｅｓ）、処理をステップＳ４０７に分岐させ、ステップＳ４０７では、シミュレータ２１６は、当該コマンド発行指示が指定するコマンドをターゲットアプリケーションに発行して、ターゲットアプリケーションにＡＰＩを使用する処理を実行させる。ステップＳ４０８では、メモリ使用量監視部２１４は、ターゲットアプリケーションが動作する情報処理装置のメモリ使用量を測定する。
【００５２】
ステップＳ４０９では、メモリ使用量監視部２１４は、ユーザからメモリ使用量の判定命令を受信したか否か判定し、当該判定命令を受信していない場合には（ｎｏ）、ステップＳ４０９の処理を反復させて判定命令を待機する。一方、メモリ使用量の判定命令を受信した場合には（ｙｅｓ）、処理をステップＳ４１０に分岐させる。
【００５３】
ステップＳ４１０では、メモリ使用量監視部２１４がメモリ使用量を測定すると共に、シミュレータ２１６に終了命令を送信し、メモリ使用量決定部２１８にメモリ使用量上限値の決定命令を送信する。ステップＳ４１１では、シミュレータ２１６がターゲットアプリケーションを停止させる。ステップＳ４１２では、メモリ使用量決定部２１８が、情報提供サーバ１１４にメモリ使用量判定テーブルの取得要求を送信する。
【００５４】
ステップＳ４１３では、メモリ使用量決定部２１８は、ステップＳ４１２の取得要求の応答として受信したメモリ使用量判定テーブルとログを使用してメモリ使用量上限値を決定する。
【００５５】
本実施形態では、メモリ使用量決定部２１８は、ＳＤＫ２１２が生成したログを参照し、当該ログに記録されたターゲットアプリケーションが使用した１または複数のＡＰＩの種別を判定する。そして、図５を参照して説明するメモリ使用量判定テーブルを参照し、当該ターゲットアプリケーションが使用したＡＰＩに関連付けられたメモリ使用量上限値を合算した値を、メモリ使用量上限値として決定する。
【００５６】
ステップＳ４１４では、メモリ使用量監視部２１４はログを参照し、ターゲットアプリケーションのメモリ使用量がメモリ使用量上限値を超えているか否か判定する。
【００５７】
本実施形態では、ログに記録されたターゲットアプリケーションの各メモリ使用量からターゲットアプリケーションの起動直後に測定されたメモリ使用量（すなわち、ターゲットアプリケーションがアイドル状態のときのメモリ使用量）を減算した値と、上記メモリ使用量上限値とを比較して、ターゲットアプリケーションのメモリ使用量がメモリ使用量上限値を超えているか否か判定する。
【００５８】
ステップＳ４１５では、メモリ使用量監視部２１４は、ステップＳ４１４で得られた判定結果を情報処理装置の表示装置に表示し、ステップＳ４１６で処理が終了する。
【００５９】
図５は、本実施形態の情報提供サーバ１１４が提供する判定情報であるメモリ使用量判定テーブルの一実施形態を示す図である。以下、図５を参照して、メモリ使用量判定テーブル５００について説明する。
【００６０】
メモリ使用量判定テーブル５００は、ＡＰＩ種別５１０とメモリ使用量上限値５１２とが関連付けて登録される。ＡＰＩ種別５１０は、ターゲットアプリケーションが使用するＡＰＩの種別情報である。図５に示す実施形態では、ＡＰＩの種別情報として、ターゲットアプリケーションが実装される装置のＵＩ制御に関するＵＩ用ＡＰＩ、当該装置が有する認証機能に関する認証機能用ＡＰＩ、当該装置が有する設定機能に関する設定機能用ＡＰＩ、当該装置が有するデータベース操作機能に関するデータベース操作用ＡＰＩおよび当該装置が有する画像処理機能に関する画像処理用ＡＰＩが登録される。
【００６１】
メモリ使用量上限値５１２は、ターゲットアプリケーションがＡＰＩを使用する際に許容されるメモリ使用量上限値であり、図５に示す実施形態では、種々のメモリ使用量上限値が、各種ＡＰＩに関連付けて登録されている。
【００６２】
なお、本実施形態に示すＡＰＩ種別とメモリ使用量上限値は例示であり、他の実施形態では、図７に示すＡＰＩ種別およびメモリ使用量上限値以外のＡＰＩ種別およびメモリ使用量上限値を使用することができる。
【００６３】
図６は、本実施形態のＳＤＫが生成するログおよびＳＤＫが有するＡＰＩライブラリに含まれるＡＰＩに実装されるログ出力手段６１２を示す図である。以下、図６を参照して、ＳＤＫ２１２が生成するログ６１０およびＳＤＫ２１２によるログの出力方法について説明する。
【００６４】
ログ６１０には、ＳＤＫ２１２が測定した情報処理装置のメモリの使用量と、ターゲットアプリケーションが使用したＡＰＩの種別情報および当該ＡＰＩが使用されたことを示す情報（以下、これらの情報を「ＡＰＩ使用情報」とする。）とが記録される。図６に示す実施形態では、例えば、「２０１０／１０／２０  １７：１０：１０」に測定したメモリの使用量が「５２，０００，０００［ｂｙｔｅ］」であることを示している。本実施形態では、メモリの使用量が定期的、すなわち５秒間隔で測定される他、ＡＰＩが使用された直後（例えば、２０１０／１０／２０  １７：１０：１１等）にもメモリ使用量が測定される。
【００６５】
また、ログ６１０には、ＡＰＩ使用情報として、ＵＩ用ＡＰＩに含まれるダイアログを表示するＡＰＩが使用されたことを示す［ｓｄｋ．ｕｉ．Ｄｉａｌｏｇ  ｏｕｔ  ｕｓｅｄ］、ＵＩ用ＡＰＩに含まれるテキストを表示するＡＰＩが使用されたことを示す［ｓｄｋ．ｕｉ．Ｔｅｘｔ  ｏｕｔ  ｕｓｅｄ］および画像処理用用ＡＰＩに含まれるスキャン処理を実行するＡＰＩが使用されたことを示す［ｓｄｋ．ｓｃａｎ．Ｊｏｂ  ｏｕｔ  ｕｓｅｄ］が記録されている。
【００６６】
ログ出力手段６１２には、ＳＤＫ２１２がＡＰＩ使用情報を出力する方法が記載されている。図６に示す実施形態はＪａｖａ（登録商標）を使用した例であり、Ｊａｖａ（登録商標）の標準パッケージであるｊａｖａ（登録商標）．ｕｔｉｌのＬｏｇｇｅｒを使用してＡＰＩ使用情報を出力することができる。また、本実施形態では、メソッド「ｔｈｉｓ．ｇｅｔＣｌａｓｓ（）」およびメソッド「ｔｈｉｓ．ｇｅｔＮａｍｅ（）」を使用することにより、パッケージ名（例えば、ｓｄｋ．ｕｉやｓｄｋ．ｓｃａｎ等）およびクラス名（例えば、ＪｏｂやＤｉａｌｏｇ等）の結合を出力することができる。これにより、同一のクラス名を有するＡＰＩが呼び出された場合でも、そのパッケージ名を参照することにより、ＡＰＩを固有に識別することができる。
【００６７】
図７は、本実施形態のＳＤＫが実行するターゲットアプリケーションのメモリ使用量の判定処理の他の実施形態を示すフローチャートである。以下、図７を参照して、他の実施形態であるＳＤＫ２１２が実行するターゲットアプリケーションのメモリ使用量の判定処理について説明する。
【００６８】
図７の処理は、ステップＳ７００でユーザがＳＤＫ２１２のＧＵＩ等を用いてメモリ使用量監視部２１４を呼び出することにより開始する。ステップＳ７０１では、メモリ使用量監視部２１４がシミュレータ２１６を呼び出し、ステップＳ７０２で、シミュレータ２１６がターゲットアプリケーションを起動する。ステップＳ７０３では、メモリ使用量監視部２１４はメモリ使用量決定部２１８を呼び出す。
【００６９】
ステップＳ７０４では、シミュレータ２１６がターゲットアプリケーションの起動形式をメモリ使用量決定部２１８に通知する。本実施形態では、ターゲットアプリケーションの起動形式は、ターゲットアプリケーションを構成する設定ファイル等に記載されており、シミュレータ２１６は、当該設定ファイルを参照することにより、ターゲットアプリケーションの起動形式を取得することができる。他の実施形態では、例えば、ＯＳがＷｉｎｄｏｗｓ（登録商標）の場合には、ＭＳＣＯＮＦＩＧの設定やレジストリにターゲットアプリケーションの起動形式を書き込むこができ、ＬＩＮＵＸ（登録商標）の場合には、デーモンの設定用ファイルに書き込むことができる。
【００７０】
そして、シミュレータ２１６は、取得したターゲットアプリケーションの起動形式をメモリ使用量決定部２１８が参照可能なメモリ領域（例えば、グローバル変数やキャッシュメモリの特定領域等）に書き込むことにより、ターゲットアプリケーションの起動形式をメモリ使用量決定部２１８に通知することができる。
【００７１】
ステップＳ７０５では、メモリ使用量監視部２１４は、シミュレータ２１６からターゲットアプリケーションの起動完了通知を受信したか否か判定し、当該通知を受信していない場合には（ｎｏ）、ステップＳ７０５の処理を反復させて当該通知を待機する。一方、起動完了通知を受信した場合には（ｙｅｓ）、処理をステップＳ７０６に分岐させる。ステップＳ７０６では、メモリ使用量監視部２１４がメモリ使用量の測定を開始し、測定結果をログに記録する。
【００７２】
ステップＳ７０７では、シミュレータ２１６がユーザからコマンドの発行指示を受信したか否か判定し、コマンドの発行指示を受信していない場合には（ｎｏ）、ステップＳ７０７の処理を反復させてコマンドの発行指示を待機する。一方、コマンドの発行指示を受信した場合には（ｙｅｓ）、処理をステップＳ７０８に分岐させ、ステップＳ７０８では、シミュレータ２１６は、当該コマンド発行指示が指定するコマンドをターゲットアプリケーションに発行して、ターゲットアプリケーションにＡＰＩを使用する処理を実行させる。ステップＳ７０９では、メモリ使用量監視部２１４は、ターゲットアプリケーションが動作する情報処理装置のメモリ使用量を測定する。
【００７３】
ステップＳ７１０では、メモリ使用量監視部２１４は、ユーザからメモリ使用量の判定命令を受信したか否か判定し、当該判定命令を受信していない場合には（ｎｏ）、ステップＳ７１０の処理を反復させて判定命令を待機する。一方、メモリ使用量の判定命令を受信した場合には（ｙｅｓ）、処理をステップＳ７１１に分岐させる。
【００７４】
ステップＳ７１１では、メモリ使用量監視部２１４がメモリ使用量を測定すると共に、シミュレータ２１６に終了命令を送信し、メモリ使用量決定部２１８にメモリ使用量上限値の決定命令を送信する。ステップＳ７１２では、シミュレータ２１６がターゲットアプリケーションを停止させる。ステップＳ７１３では、メモリ使用量決定部２１８が、情報提供サーバ１１４にメモリ使用量判定テーブルの取得要求を送信する。本実施形態では、メモリ使用量判定テーブルとして、図５に示すメモリ使用量判定テーブルおよび図８を参照して説明するメモリ使用量判定テーブルを使用する。
【００７５】
ステップＳ７１４では、メモリ使用量決定部２１８は、ステップＳ７１３の取得要求の応答として受信したメモリ使用量判定テーブルと、ターゲットアプリケーションの起動形式とを使用してメモリ使用量上限値を決定する。
【００７６】
より詳細には、メモリ使用量決定部２１８は、ターゲットアプリケーションの起動形式を判定し、起動形式が常駐の場合には、図８に示すメモリ使用量判定テーブルに規定されたメモリ使用量上限値をメモリ使用量上限値として決定する。一方、起動形式が非常駐の場合には、メモリ使用量決定部２１８は、ＳＤＫ２１２が生成したログを参照し、当該ログに記録されたターゲットアプリケーションが使用した１または複数のＡＰＩの種別を判定し、図５に示すようなメモリ使用量判定テーブルを参照し、当該ターゲットアプリケーションが使用したＡＰＩに関連付けられたメモリ使用量上限値を合算した値を、メモリ使用量上限値として決定する。
【００７７】
ステップＳ７１５では、メモリ使用量監視部２１４はログを参照し、ターゲットアプリケーションのメモリ使用量がメモリ使用量上限値を超えているか否か判定する。本実施形態では、図４を参照して説明した実施形態と同様に、ログに記録されたターゲットアプリケーションの各メモリ使用量からターゲットアプリケーションの起動直後に測定されたメモリ使用量を減算した値と、上記メモリ使用量上限値とを比較して、ターゲットアプリケーションのメモリ使用量がメモリ使用量上限値を超えているか否か判定する。
【００７８】
ステップＳ７１６では、メモリ使用量監視部２１４は、ステップＳ７１５で得られた判定結果を情報処理装置の表示装置に表示し、ステップＳ７１７で処理が終了する。
【００７９】
図８は、図７に示す実施形態において情報提供サーバが提供する判定情報であるメモリ使用量判定テーブルの実施形態を示す図である。以下、図８を参照して、メモリ使用量判定テーブル８００について説明する。
【００８０】
メモリ使用量判定テーブル８００は、ターゲットアプリケーションの起動形式８１０とメモリ使用量上限値８１２とが関連付けて登録される。起動形式８１０は、本実施形態のＳＤＫを用いてメモリ使用量が判定されるターゲットアプリケーションの起動形式であり、ターゲットアプリケーションが実装される装置の電源投入と共に起動する「常駐」タイプと、ユーザの起動指示によって起動される「非常駐」タイプの２種類がある。
【００８１】
メモリ使用量上限値８１２は、ターゲットアプリケーションがＡＰＩを使用する際に許容されるメモリ使用量上限値であり、図８に示す実施形態では、「常駐」タイプのターゲットアプリケーションのメモリ使用量上限値は「１００ＭＢ」であり、「非常駐」タイプのターゲットアプリケーションのメモリ使用量上限値は「ＮＵＬＬ」、すなわちメモリ使用量の上限がないことを示している。なお、本実施形態に示すメモリ使用量上限値は例示であり、他の実施形態では、メモリ使用量上限値として任意の値を使用することができる。
【００８２】
通常、常駐形式のターゲットアプリケーションは常にメモリを使用するため、非常駐形式と比べ他のソフトウェアの動作等に与える影響が大きく、常駐形式のターゲットアプリケーションを作成する際には、そのメモリ使用量を極力抑える必要がある。一方、非常駐形式のターゲットアプリケーションは、このような制約が少ない。このように、ターゲットアプリケーションが許容されるメモリ使用量は起動形式によって異なる。この点につき、図７および８に示す実施形態では、ターゲットアプリケーションの起動形式に応じてメモリ使用量上限値を決定できるため、起動形式に最適なメモリ使用量のアプリケーションの開発をサポートし、その品質を向上させることができる。
【００８３】
図９は、本実施形態のＳＤＫが実行するターゲットアプリケーションのメモリ使用量の判定処理のさらに他の実施形態を示すフローチャートである。以下、図９を参照して、さらに他の実施形態であるＳＤＫ２１２が実行するターゲットアプリケーションのメモリ使用量の判定処理について説明する。なお、図９に示すステップＳ９００〜Ｓ９１１の処理は、図４に示すステップＳ４００〜Ｓ４１１と同一であるため、以下、相違点を中心に説明する。
【００８４】
ステップＳ９１２では、メモリ使用量決定部２１８が、情報提供サーバ１１４に機器種別判定テーブルの取得要求およびメモリ使用量判定テーブルの取得要求を送信する。ステップＳ９１３では、メモリ使用量決定部２１８は、ステップＳ９１２の取得要求の応答として受信した機器種別判定テーブルおよびログを使用して、ターゲットアプリケーションが実装される機器の種別を判定する。ステップＳ９１４では、メモリ使用量決定部２１８は、ステップＳ９１２の取得要求の応答として受信したメモリ使用量判定テーブルとステップＳ９１４の判定結果とを使用してメモリ使用量上限値を決定する。
【００８５】
ステップＳ９１５では、メモリ使用量監視部２１４はログを参照し、ターゲットアプリケーションのメモリ使用量がメモリ使用量上限値を超えているか否か判定する。本実施形態では、図４を参照して説明した実施形態と同様に、ログに記録されたターゲットアプリケーションの各メモリ使用量からターゲットアプリケーションの起動直後に測定されたメモリ使用量を減算した値と、上記メモリ使用量上限値とを比較して、ターゲットアプリケーションのメモリ使用量がメモリ使用量上限値を超えているか否か判定する。
【００８６】
ステップＳ９１６では、メモリ使用量監視部２１４は、ステップＳ９１５で得られた判定結果を情報処理装置の表示装置に表示し、ステップＳ９１７で処理が終了する。
【００８７】
図１０は、図９に示す実施形態において情報提供サーバが提供する判定情報である機器種別判定テーブルおよびメモリ使用量判定テーブルの実施形態を示す図である。以下、図１０を参照して、機器種別判定テーブル１０１０およびメモリ使用量判定テーブル１０２０について説明する。
【００８８】
機器種別判定テーブル１０１０は、ターゲットアプリケーションが実装される装置の機器種別を判定するためのデータテーブルである。すなわち、当該装置が画像形成装置等の組み込む機器であるか、または汎用ＰＣ等の汎用機器であるか否かを判定するためのデータテーブルである。機器種別判定テーブル１０１０は、ＡＰＩ種別１０１２と組み込み機器の依存性１０１４とが関連付けて登録される。ＡＰＩ種別１０１２は、ターゲットアプリケーションが使用するＡＰＩの種別を示す情報である。組み込み機器の依存性１０１４は、ＡＰＩ種別１０１２に登録されたＡＰＩが組み込み機器で使用されるＡＰＩであるかを示す。
【００８９】
図１０の実施形態では、「スキャン機能用ＡＰＩ」および「印刷機能用ＡＰＩ」は、組み込み機器の依存性として「ＴＲＵＥ」が関連付けて登録されており、これらのＡＰＩが組み込み機器で使用されるＡＰＩであることを示している。一方、「ＵＩ用ＡＰＩ」、「認証機能用ＡＰＩ」および「データベース操作用ＡＰＩ」は、組み込み機器の依存性として「ＦＡＬＳＥ」が関連付けて登録されており、これらのＡＰＩが汎用機器で使用されるＡＰＩであることを示している。
【００９０】
メモリ使用量判定テーブル１０２０は、機器種別判定テーブル１０１０を使用して特定された機器種別の装置にターゲットアプリケーションが実装された場合に許容されるメモリ消費上限値を判定するためのデータテーブルであり、機器種別１０２２とメモリ使用量上限値１０２４とが関連付けて登録される。
【００９１】
機器種別１０２２は、ターゲットアプリケーションが実装される装置の種別情報であり、図１０に示す実施形態では、「組み込み機器」と「その他の機器」との２種類が登録される。メモリ使用量上限値１０２４は、ターゲットアプリケーションがＡＰＩを使用する際に許容されるメモリ使用量上限値であり、図１０に示す実施形態では、「組み込み機器」に実装されるターゲットアプリケーションのメモリ使用量上限値は「１００ＭＢ」であり、「その他の機器」に実装されるターゲットアプリケーションのメモリ使用量上限値は「３００ＭＢ」である。なお、本実施形態に示すメモリ使用量上限値は例示であり、他の実施形態では、メモリ使用量上限値として任意の値を使用することができる。
【００９２】
図９および１０に示す実施形態では、メモリ使用量の制約の強度が異なる種々の機種の種別に応じて、ターゲットアプリケーションのメモリ使用量を判定することができる。
【００９３】
図１１は、本実施形態のＳＤＫが実行するターゲットアプリケーションのメモリ使用量の判定処理のさらに他の実施形態を示すフローチャートである。以下、図１１を参照して、さらに他の実施形態であるＳＤＫ２１２が実行するターゲットアプリケーションのメモリ使用量の判定処理について説明する。なお、図１１に示すステップＳ１１００〜Ｓ１１０９の処理は、図９に示すステップＳ９００〜Ｓ９０９と同一であるため、以下、相違点を中心に説明する。
【００９４】
ステップＳ１１１０では、メモリ使用量監視部２１４がメモリ使用量を測定すると共に、シミュレータ２１６に終了命令を送信し、メモリ使用量決定部２１８にメモリ使用量上限値の決定命令を送信する。ステップＳ１１１１では、シミュレータ２１６がターゲットアプリケーションを停止させる。ステップＳ１１１２では、メモリ使用量決定部２１８が、情報提供サーバ１１４に機器種別判定テーブルおよびメモリ使用量判定テーブルの取得要求を送信する。
【００９５】
ステップＳ１１１３では、メモリ使用量決定部２１８が、ステップＳ１１１２の取得要求の応答として受信した機器種別判定テーブルおよびログを使用して、ターゲットアプリケーションが実装される機器の種別を判定する。本実施形態では、図１０を参照して説明した機器種別判定テーブルを使用して機器種別を判定する。
【００９６】
ステップＳ１１１４では、メモリ使用量決定部２１８は、ステップＳ１１１３の判定結果を参照して、ターゲットアプリケーションが実装される機器が組み込み機器であるか否か判定し、当該機器が組み込み機器でない場合には（ｎｏ）、処理をステップＳ１１１６に分岐させる。一方、ターゲットアプリケーションが実装される機器が組み込み機器である場合には（ｙｅｓ）、処理をステップＳ１１１５に分岐させる。
【００９７】
ステップＳ１１１５では、メモリ使用量監視部２１４が、メモリ使用量決定部２１８が取得したメモリ使用量判定テーブルとログとを使用して、ターゲットアプリケーションを実装可能な機器を判定する。ステップＳ１１１６では、メモリ使用量監視部２１４は、ステップＳ１１１５の判定結果を情報処理装置の表示装置に表示し、ステップＳ１１１７で処理が終了する。
【００９８】
図１２は、図１１に示す実施形態において情報提供サーバが提供する判定情報である機器種別判定テーブルおよびメモリ使用量判定テーブルの実施形態を示す図である。以下、図１２を参照して、メモリ使用量判定テーブル１２２０について説明する。なお、機器種別判定テーブル１２１０は図１０に示す機器種別判定テーブル１０１０と同一であるため、以下、説明を省略する。
【００９９】
メモリ使用量判定テーブル１２２０は、ターゲットアプリケーションが実装される装置の機器種別およびバージョン情報毎のメモリ使用量上限値が登録されるデータテーブルであり、機器種別およびバージョン情報１２２２とメモリ使用量上限値１２２４とが関連付けて登録される。
【０１００】
機器種別およびバージョン情報１２２２は、ターゲットアプリケーションが実装される装置の種別情報およびそのバージョン情報である。図１２に示す実施形態では、機器種別として「複合機Ａ」や「複合機Ｂ」等が使用され、バージョン情報として「ｖｅｒ．１．００」や「ｖｅｒ．１．０１」等が使用されており、これらの結合が機器種別およびバージョン情報して登録される。
【０１０１】
メモリ使用量上限値１２２４は、ターゲットアプリケーションがＡＰＩを使用する際に許容されるメモリ使用量上限値であり、種々のメモリ使用量上限値が登録される。
【０１０２】
図１２に示す実施形態では、機器種別である「複合機Ａ」と、そのバージョン情報「ｖｅｒ．１．００」、「ｖｅｒ．１．０１」および「ｖｅｒ．１．０２」とが結合して登録されており、同一の機器であってもバージョンによって許容可能なメモリ使用量が異なることを示している。なお、本実施形態に示す機器種別やバージョン情報、メモリ使用量上限値は例示であり、他の実施形態では、その他の機器種別やバージョン情報を使用することができ、また、メモリ使用量上限値として任意の値を使用することができる。
【０１０３】
本実施形態では、ターゲットアプリケーションを実装可能な機器を判定する場合、メモリ使用量監視部２１４は、ＳＤＫ２１２が生成したログを取得し、当該ログに記録されたターゲットアプリケーションの各メモリ使用量からターゲットアプリケーションの起動直後に測定されたメモリ使用量を減算した値と、メモリ使用量判定テーブル１２２０に登録された各メモリ使用量上限値とを比較する。当該メモリ使用量がメモリ使用量上限値以下であれば、当該メモリ使用量上限値に対応する機種種別およびバージョン情報が示す機器にターゲットアプリケーションを実装可能であると判定する。一方、当該メモリ使用量がメモリ使用量上限値よりも大きい場合には、当該メモリ使用量上限値に対応する機種種別およびバージョン情報が示す機器にターゲットアプリケーションを実装することができないと判定する。
【０１０４】
図１１および１２に示す実施形態では、ターゲットアプリケーションが実装される機種やそのバージョンに応じて、メモリ使用量を判定することができる。これにより、開発現場に配備されていない種類の機器に実装されるターゲットアプリケーションについてもメモリ使用量を判定することができる。
【０１０５】
図１３は、他の実施形態の情報処理システムに含まれる情報処理装置および情報提供サーバの機能構成を示す図である。以下、図１３を参照して、情報処理装置１３０２および情報提供サーバ１３０４が実装する処理機能について説明する。なお、情報処理装置１３０２および情報提供サーバ１３０４は、図２を参照して説明した情報処理装置１１２ａおよび情報提供サーバ１１４と共通する機能手段を有するため、以下、相違する点を中心に説明する。
【０１０６】
情報処理装置１３０２は、ＯＳ１３１０と、ＳＤＫ１３１２と、通信部１３２４とを含む。
【０１０７】
ＳＤＫ１３１２は、メモリ使用量監視部１３１４と、シミュレータ１３１６と、判定部１３１８と、ＡＰＩライブラリ１３２０と、ソースコードエディタ１３２２とを含んで構成される。
【０１０８】
判定部１３１８は、メモリ使用量監視部１３１４およびＡＰＩライブラリ１３２０が生成したログを提供して、ターゲットアプリケーションを実装可能な組み込み機器を情報提供サーバ１３０４に判定させる機能手段である。判定部１３１８は、上記ログを判定要求とともに情報提供サーバ１３０４に送信し、ターゲットアプリケーションを実装可能な組み込み機器を情報提供サーバ１３０４に判定させる。また、判定部１３１８は、情報提供サーバ１３０４から受信した判定結果を情報処理装置１３０２の表示装置に表示する。
【０１０９】
本実施形態では、判定部１３１８は、情報提供サーバ１３０４に判定要求を送信する場合、ブラウザを立ち上げて情報提供サーバ１３０４が提供するＷＥＢ画面にアクセスし、当該ＷＥＢ画面を介してログおよび判定要求を送信することができる。そして、判定部１３１８は、情報提供サーバ１３０４から判定結果を受信した場合、ブラウザを使用して当該判定結果をＷＥＢ画面上に表示させることができる。
【０１１０】
通信部１３２４は、情報処理装置１３０２と、情報提供サーバ１３０４との間のデータ通信を行う機能手段である。通信部１３２４は、ＳＤＫ１３１２から判定要求を受信すると、ネットワーク１１０を介して情報提供サーバ１３０４に判定要求およびログを送信する。通信部１３２４は、当該判定要求の応答として判定結果を受信すると、当該判定結果をＳＤＫ１３１２に渡す。
【０１１１】
情報提供サーバ１３０４は、ＯＳ１３３０と、メモリ使用量判定部１３３２と、データベース１３３４と、通信部１３３６と、判定結果提供部１３３８と、更新部１３４０とを含んで構成される。
【０１１２】
ＯＳ１３３０は、情報提供サーバ１３０４の全体制御を行う機能手段である。ＯＳ１３３０は、通信部１３３６が受信した各種要求の種類に応じて、当該要求に関連する機能手段を呼び出して処理を実行させる。本実施形態では、ＯＳ１３３０は、通信部１３３６を介して情報処理装置１３０２からログを受信すると、メモリ使用量判定部１３３２を呼び出し、メモリ使用量の判定処理を実行させる。
【０１１３】
通信部１３３６は、情報提供サーバ１３０４と情報処理装置１３０２との間のデータ通信を行う機能手段である。通信部１３３６は、ネットワーク１１０を介して情報処理装置１３０２からＳＤＫ１３１２のログを受信すると、その旨の通知をＯＳ１３３０にする。
【０１１４】
メモリ使用量判定部１３３２は、ログを提供した情報処理装置１３０２でメモリ使用量の測定が行われたターゲットアプリケーションのメモリ使用量の判定を行う機能手段である。メモリ使用量判定部１３３２は、情報処理装置１３０２でＳＤＫ１３１２が生成したログを受信すると、データベース１３３４から機種種別判定テーブルおよびメモリ使用量判定テーブルを取得する。本実施形態では、図１２を参照して説明した機種種別判定テーブル１２１０およびメモリ使用量判定テーブル１２２０と同様の機種種別判定テーブルおよびメモリ使用量判定テーブルが使用される。
【０１１５】
メモリ使用量判定部１３３２は、ＳＤＫ１３１２が生成したログと機種種別判定テーブルとを使用し、ターゲットアプリケーションが使用するＡＰＩの種類に基づいて、当該ターゲットアプリケーションが実装される装置の機器種別を判定する。メモリ使用量判定部１３３２は、当該装置が組み込み機器である場合、ログとメモリ使用量判定テーブルとを使用して、ターゲットアプリケーションを実装可能な組み込み機器を判定する。
【０１１６】
本実施形態では、メモリ使用量判定部１３３２は、情報処理装置１３０２から受信したログを情報提供サーバ１３０４の記憶装置（図示せず）に保存する。当該ログは、後述するようにデータベース１３３４が更新された場合に実行される再判定処理で使用される。
【０１１７】
判定結果提供部１３３８は、メモリ使用量判定部１３３２の判定結果を提供する機能手段である。本実施形態では、判定結果提供部１３３８は、情報提供サーバ１３０４が提供するＷＥＢ画面上に表示させることができる他、ターゲットアプリケーションを作成したユーザの電子メールアドレス宛に当該判定結果を送信することができる。この場合、判定結果を送信すべきユーザ（例えば、ターゲットアプリケーションの開発者等）の電子メールアドレスは、予めデータベースに登録してもよく、また、ＳＤＫ１３１２が生成するログに記述するように構成してもよい。
【０１１８】
更新部１３４０は、データベース１３３４に登録された機種種別判定テーブルおよびメモリ使用量判定テーブルを更新する機能手段である。更新部１３４０は、ネットワークを介して接続された情報提供サーバ１３０４の管理ＰＣまたは当該情報提供サーバ１３０４にローカル接続された管理ＰＣからデータベース１３３４の更新要求を受信すると、当該更新要求と共に受信する更新情報に基づいて、機種種別判定テーブルおよび／またはメモリ使用量判定テーブルを更新する。
【０１１９】
図１４は、図１３に示す実施形態のＳＤＫ１３１２が実行する処理を示すフローチャートである。以下、図１４を参照して、ＳＤＫ１３１２が実行する処理について説明する。
【０１２０】
図１４の処理は、ステップＳ１４００でユーザがＳＤＫ１３１２のＧＵＩ等を用いてメモリ使用量監視部１３１４を呼び出することにより開始する。ステップＳ１４０１では、メモリ使用量監視部１３１４がシミュレータ１３１６を呼び出し、ステップＳ１４０２で、シミュレータ１３１６がターゲットアプリケーションを起動する。
【０１２１】
ステップＳ１４０３では、メモリ使用量監視部１３１４は、シミュレータ１３１６からターゲットアプリケーションの起動完了通知を受信したか否か判定し、当該通知を受信していない場合には（ｎｏ）、ステップＳ１４０３の処理を反復させて当該通知を待機する。一方、起動完了通知を受信した場合には（ｙｅｓ）、処理をステップＳ１４０４に分岐させる。ステップＳ１４０４では、メモリ使用量監視部１３１４がメモリ使用量の測定を開始し、測定結果をログに記録する。
【０１２２】
ステップＳ１４０５では、シミュレータ１３１６がユーザからコマンドの発行指示を受信したか否か判定し、コマンドの発行指示を受信していない場合には（ｎｏ）、ステップＳ１４０５の処理を反復させてコマンドの発行指示を待機する。一方、コマンドの発行指示を受信した場合には（ｙｅｓ）、処理をステップＳ１４０６に分岐させる。ステップＳ１４０６では、シミュレータ１３１６は、当該コマンド発行指示が指定するコマンドをターゲットアプリケーションに発行して、ターゲットアプリケーションにＡＰＩを使用する処理を実行させる。ステップＳ１４０７では、メモリ使用量監視部１３１４は、ターゲットアプリケーションが動作する情報処理装置のメモリ使用量を測定する。
【０１２３】
ステップＳ１４０８では、メモリ使用量監視部１３１４は、ユーザからメモリ使用量の判定命令を受信したか否か判定し、当該判定命令を受信していない場合には（ｎｏ）、ステップＳ１４０８の処理を反復させて判定命令を待機する。一方、メモリ使用量の判定命令を受信した場合には（ｙｅｓ）、処理をステップＳ１４０９に分岐させる。
【０１２４】
ステップＳ１４０９では、メモリ使用量監視部１３１４はメモリ使用量を測定すると共に、シミュレータ１３１６に終了命令を送信し、判定部１３１８にターゲットアプリケーションを実装可能な組み込み機器を判定させる判定命令を送信する。ステップＳ１４１０では、シミュレータ１３１６がターゲットアプリケーションを停止させる。ステップＳ１４１１では、判定部１３１８は、判定要求と共にＳＤＫ１３１２が生成したログを情報提供サーバ１３０４に送信する。
【０１２５】
ステップＳ１４１２では、判定部１３１８は、情報提供サーバ１３０４から判定結果を受信したか否か判定し、受信していない場合には（ｎｏ）、ステップＳ１４１２の処理を反復させる。一方、判定結果を受信した場合には（ｙｅｓ）、処理をステップＳ１４１３に分岐させる。ステップＳ１４１３では、判定部１３１８は、情報提供サーバ１３０４が提供した判定結果を情報処理装置１３０２の表示装置に表示させ、ステップＳ１４１４で処理が終了する。
【０１２６】
図１５は、図１３に示す実施形態の情報提供サーバ１３０４が実行する処理を示すフローチャートである。以下、図１５を参照して、情報提供サーバ１３０４が実行する処理について説明する。
【０１２７】
図１５の処理は、ステップＳ１５００で情報提供サーバ１３０４が情報処理装置１３０２からログを受信することにより開始する。ステップＳ１５０１では、メモリ使用量判定部１３３２が、当該ログに記録されたターゲットアプリケーションが呼び出したＡＰＩを特定し、データベース１３３４に登録された機器種別判定テーブルを参照して、当該ＡＰＩが組み込み機器で使用されるＡＰＩであるか否か判定することにより、ターゲットアプリケーションが実装される装置が組み込み機器であるか否か判定する。
【０１２８】
ステップＳ１５０２では、ステップＳ１５０１の判定結果に基づき、ターゲットアプリケーションが実装される装置が組み込み機器である場合には（ｙｅｓ）、処理をステップＳ１５０３に分岐させ、組み込み機器でない場合には（ｎｏ）、処理をステップＳ１５０４に分岐させる。
【０１２９】
ステップＳ１５０３では、メモリ使用量判定部１３３２が、ログおよびメモリ使用量判定テーブルを参照し、ログに記録されたメモリ使用量の最大値がメモリ使用量判定テーブルに規定されたメモリ使用量上限値を超えるか否か判定して、ターゲットアプリケーションを実装可能な組み込み機器を判定する。
【０１３０】
本実施形態では、メモリ使用量判定部１３３２は、ＳＤＫ１３１２が生成したログを取得し、当該ログに記録されたターゲットアプリケーションの各メモリ使用量からターゲットアプリケーションの起動直後に測定されたメモリ使用量を減算した値をメモリ使用量とし、その最大値とメモリ使用量判定テーブルに登録された各メモリ使用量上限値とを比較する。
【０１３１】
ステップＳ１５０４では、判定結果提供部１３３８が上述した判定結果を情報処理装置１３０２に送信し、ステップＳ１５０５で処理が終了する。本実施形態では、判定結果提供部１３３８は、ターゲットアプリケーションが実装される機器が組み込み機器である場合には、ターゲットアプリケーションを実装可能な組み込み機器や実装不可能な組み込み機器を示す結果を判定結果として提供することができる。一方、ターゲットアプリケーションが実装される機器が組み込み機器でない場合には、その旨を判定結果として提供することができる。
【０１３２】
図１６は、図１３に示す実施形態の情報提供サーバ１３０４がデータベースを更新する際に実行する処理を示すフローチャートである。以下、図１６を参照して、情報提供サーバ１３０４のデータベース１３３４が更新される場合に実行される処理について説明する。
【０１３３】
図１６の処理は、ステップＳ１６００で情報提供サーバ１３０４がデータベース１３３４の更新要求および更新情報を受信することにより開始する。ステップＳ１６０１では、更新部１３４０が、更新要求と共に受信した更新情報に基づいてデータベース１３３４を更新する。ステップＳ１６０２では、メモリ使用量判定部１３３２が、情報提供サーバ１３０４の記憶装置に保存されたＳＤＫ１３１２のログを取得する。本実施形態では、メモリ使用量判定部１３３２は、情報提供サーバ１３０４の記憶装置に保存されたＳＤＫ１３１２の総てのログを取得し、後述する処理を実行する。
【０１３４】
ステップＳ１６０３では、メモリ使用量判定部１３３２は、当該ログに記録されたターゲットアプリケーションが呼び出したＡＰＩを特定し、データベース１３３４に登録された機器種別判定テーブルを参照して、当該ＡＰＩが組み込み機器で使用されるＡＰＩであるか否か判定することにより、ターゲットアプリケーションが実装される装置が組み込み機器であるか否か判定する。
【０１３５】
ステップＳ１６０４では、ステップＳ１６０３の判定結果により、ターゲットアプリケーションが実装される装置が組み込み機器でない場合には（ｎｏ）、ステップＳ１６０７に分岐して処理が終了する。一方、ターゲットアプリケーションが実装される装置が組み込み機器である場合には（ｙｅｓ）、処理をステップＳ１６０５に分岐させる。
【０１３６】
ステップＳ１６０５では、メモリ使用量判定部１３３２が、ログおよびメモリ使用量判定テーブルを参照し、ログに記録されたメモリ使用量の最大値がメモリ使用量判定テーブルに規定されたメモリ使用量上限値を超えるか否か判定して、ターゲットアプリケーションを実装可能な組み込み機器を判定する。
【０１３７】
本実施形態では、メモリ使用量判定部１３３２は、ＳＤＫ１３１２が生成したログを取得し、当該ログに記録されたターゲットアプリケーションの各メモリ使用量からターゲットアプリケーションの起動直後に測定されたメモリ使用量を減算した値をメモリ使用量とし、その最大値とメモリ使用量判定テーブルに登録された各メモリ使用量上限値とを比較する。
【０１３８】
ステップＳ１６０６では、判定結果提供部１３３８が、ステップＳ１６０３の判定結果を情報処理装置１３０２に送信し、ステップＳ１６０７で処理が終了する。
【０１３９】
本実施形態では、判定結果提供部１３３８は、ログに記述されたＳＤＫ１３１２のユーザの電子メールアドレス宛に、ターゲットアプリケーションを実装可能な組み込み機器や実装不可能な組み込み機器を示す結果を判定結果として提供することができる。
【０１４０】
図１３〜１６に示す実施形態では、図１１および１２に示す実施形態と同様に、ターゲットアプリケーションが実装される機種やそのバージョンに応じて、メモリ使用量を判定することができる。また、図１３〜１６に示す実施形態では、情報提供サーバが情報処理装置からメモリ使用量と使用されるＡＰＩが記録されたログを収集するため、新たな機種の登場やバージョンアップがあった場合に、当該ログを使用してターゲットアプリケーションのメモリ使用量を判定して、ユーザに通知することができる。これにより、新たな機種の追加やバージョンアップがあった場合に、各ユーザが自身の情報処理装置を使用して、再度、ターゲットアプリケーションのメモリ使用量を判定する必要がなく、上記通知を確認することにより、自身が作成したターゲットアプリケーションに対する修正の必要性の有無を容易に判定することができる。
【０１４１】
これまで本実施形態につき説明してきたが、本発明は、上述した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【０１４２】
１００…情報処理システム、１１０…ネットワーク、１１２ａ，１１２ｂ…情報処理装置、１１４…情報提供サーバ、１１６…アプリケーション提供サーバ、１２０…ネットワーク、１２２ａ，１２２ｂ…画像形成装置
【先行技術文献】
【特許文献】
【０１４３】
【特許文献１】特開２００６−２９３４１７号公報
【図１】
0005644431.tif 000002
【図２】
0005644431.tif 000003
【図３】
0005644431.tif 000004
【図４】
0005644431.tif 000005
【図５】
0005644431.tif 000006
【図６】
0005644431.tif 000007
【図７】
0005644431.tif 000008
【図８】
0005644431.tif 000009
【図９】
0005644431.tif 000010
【図１０】
0005644431.tif 000011
【図１１】
0005644431.tif 000012
【図１２】
0005644431.tif 000013
【図１３】
0005644431.tif 000014
【図１４】
0005644431.tif 000015
【図１５】
0005644431.tif 000016
【図１６】
0005644431.tif 000017