JP5842693B2 - プログラム選択装置、プログラム選択方法、及び選択プログラム - Google Patents

プログラム選択装置、プログラム選択方法、及び選択プログラム Download PDF

Info

Publication number
JP5842693B2
JP5842693B2 JP2012062741A JP2012062741A JP5842693B2 JP 5842693 B2 JP5842693 B2 JP 5842693B2 JP 2012062741 A JP2012062741 A JP 2012062741A JP 2012062741 A JP2012062741 A JP 2012062741A JP 5842693 B2 JP5842693 B2 JP 5842693B2
Authority
JP
Japan
Prior art keywords
program
unit
selection
application
programs
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.)
Expired - Fee Related
Application number
JP2012062741A
Other languages
English (en)
Other versions
JP2013196371A (ja
Inventor
木曽野 正篤
正篤 木曽野
拓 南雲
拓 南雲
雄一郎 作田
雄一郎 作田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2012062741A priority Critical patent/JP5842693B2/ja
Publication of JP2013196371A publication Critical patent/JP2013196371A/ja
Application granted granted Critical
Publication of JP5842693B2 publication Critical patent/JP5842693B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、プログラム選択装置、プログラム選択方法、及び選択プログラムに関する。
従来、PC(Personal Computer)等のコンピュータ、又は固有の機能を有する各種機器(以下、「機器」として総称する。)において利用可能なアプリケーションプログラムには、大きく分けて二つの形式がある。第一の形式のアプリケーションプログラムは、機器自体にインストールされ、当該アプリケーションプログラムの機能を機器のCPUに実行させるアプリケーションプログラムである。例えば、特定のハードウェア環境及びソフトウェア環境に特化したネイティブアプリケーションは、第一の形式のアプリケーションプログラムの代表例であるといえる。第一の形式のアプリケーションプログラムは、その処理が機器の内部で完結するものが多いため、処理性能に対する通信負荷による影響が小さいという利点がある。
第二の形式のアプリケーションプログラムは、機器とネットワークを介して通信可能なコンピュータにインストールされ、機器からの要求に応じた処理を当該コンピュータのCPUに実行させるアプリケーションプログラムである。例えば、Webアプリケーションは、第二の形式のアプリケーションプログラムの代表例であるといえる。第二の形式のアプリケーションプログラムは、機器ごとにインストールされないため、バージョンアップが容易であるという利点がある。
機能面においては、従来、第一の形式のアプリケーションプログラムは、機器に固有のハードウェアを利用した機能を提供可能であるという利点を有していた。しかし、このような利点による第一のアプリケーションプログラムの優位性は、希薄になりつつある。
例えば、Webアプリケーションを利用するために機器が備えるブラウザソフトの中には、画面を表示するだけでなく、機器制御用に拡張されたスクリプト(以下、「拡張スクリプト」という。)を解釈して機器制御を実行することが可能なものも有る(例えば、特許文献1)。画像形成装置用の拡張スクリプトの一例として、スキャン命令を示すスクリプトが挙げられる。したがって、第一の形式のアプリケーションプログラムと同様の機能を第二の形式のアプリケーションプログラムでも提供可能な場合が多くなってきている。換言すれば、第一の形式及び第二の形式の双方によって、同一の機能を実現するアプリケーションプログラムを提供することができるようになっている。
以上のような状況は、ユーザにとっては、選択肢の増加といった観点においては好ましい状況であるといえる。しかし、用途又は機能が共通するアプリケーションプログラムが複数存在する場合、ユーザは、どのアプリケーションプログラムを機器へのインストール対象として選択すべきであるのかについて、困惑したり、選択が煩わしかったりする。
本発明は、上記の点に鑑みてなされたものであって、インストール先に適したプログラムを自動的に選択することを目的とする。
そこで上記課題を解決するため、本発明は、相互に機能の一部又は全部が共通する複数のプログラムのいずれかの取得要求を受信する受信部と、前記複数のプログラムを実行させ、それぞれのプログラムの処理時間を計測する計測部と、計測結果に基づいて、前記取得要求に対して返信するプログラムを選択する選択部とを有し、前記計測部は、前記プログラムが当該プログラムのインストール先の機器に実行させる外部装置との通信の回数を計数し、前記回数に、所定値を乗じた値によって、前記処理時間を補正する。
インストール先に適したプログラムを自動的に選択することができる。
本発明の実施の形態におけるプログラム提供システムの構成例を示す図である。 本発明の実施の形態におけるプログラム提供装置のハードウェア構成例を示す図である。 本発明の実施の形態におけるプログラム提供装置の機能構成例を示す図である。 プログラム提供装置が実行する処理手順の一例を説明するためのフローチャートである。 機能分類情報記憶部の構成例を示す図である。 プログラム提供装置が複数のコンピュータによって構成される例を示す図である。 統合開発環境の一例を示す図である。
以下、図面に基づいて本発明の実施の形態を説明する。図1は、本発明の実施の形態におけるプログラム提供システムの構成例を示す図である。図1のプログラム提供システム1おいて、機器メーカ環境E2は、開発環境E3、及びユーザ環境E1のそれぞれと、インターネット等のネットワークN1を介して接続されている。
機器メーカ環境E2は、例えば、ユーザ環境E1において利用される複合機10a、プリンタ10b、及びプロジェクタ10c等の機器や、会議システム10d(例えば、ビデオ会議システム10d)等を製造及び販売する機器メーカが運営するシステム環境である。本実施の形態において、機器メーカ環境E2は、プログラム提供装置20を含む。プログラム提供装置20は、ユーザ環境E1における機器にインストール可能なアプリケーションプログラム(以下、単に、「アプリケーション」という。)のダウンロードサービスを、ネットワークN1を介して提供する。
ユーザ環境E1は、複合機10a、プリンタ10b、プロジェクタ10c、及び会議システム10d等のユーザのシステム環境である。ユーザ環境E1において、複合機10a、プリンタ10b、プロジェクタ10c、及び会議システム10d等は、LAN(Local Area Network)等のネットワークを介して接続されている。
開発環境E3は、機器にインストールされるアプリケーションを開発する企業(ソフトウェアベンダ)におけるシステム環境である。開発環境E3では、機器に実装されているアプリケーションプラットフォームにおいて公開されているAPI(Application Program Interface)を利用して、アプリケーションの開発が行われている。開発環境E3は、一以上の開発者端末30等を含む。開発者端末30は、アプリケーションの開発者が利用するPC(Personal Computer)等の情報処理装置である。
なお、本実施の形態においては、便宜上、開発者という用語を用いるが、開発者とは、実際に開発を行っているものでなくてもよい。窓口の担当者や管理者等、機器における障害の通知先となりうる者であってもよい。また、開発者は、個人でなくてもよい。通常、一つのアプリケーションの開発又は障害対応は、複数の個人又は組織によって行われる。したがって、開発者は、開発環境E3(ソフトウェアベンダ)全体であってもよいし、開発の委託先であってもよい。また、開発者は、必ずしも開発を業務としている組織でなくてもよい。機器に関する障害を受け付けるコールセンタ等であってもよい。
図2は、本発明の実施の形態におけるプログラム提供装置のハードウェア構成例を示す図である。図2のプログラム提供装置20は、それぞれバスBで相互に接続されているドライブ装置200、補助記憶装置202、メモリ装置203、CPU204、及びインタフェース装置205等を有する。
プログラム提供装置20での処理を実現するプログラムは、CD−ROM等の記録媒体201によって提供される。プログラムを記憶した記録媒体201がドライブ装置200にセットされると、プログラムが記録媒体201からドライブ装置200を介して補助記憶装置202にインストールされる。但し、プログラムのインストールは必ずしも記録媒体201より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置202は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
メモリ装置203は、プログラムの起動指示があった場合に、補助記憶装置202からプログラムを読み出して格納する。CPU204は、メモリ装置203に格納されたプログラムに従ってプログラム提供装置20に係る機能を実行する。インタフェース装置205は、ネットワークに接続するためのインタフェースとして用いられる。
図3は、本発明の実施の形態におけるプログラム提供装置の機能構成例を示す図である。
図3において、プログラム提供装置20は、要求受信部211、返信候補判定部212、返信対象選択部213、評価環境構築部214、自動評価部215、及び応答返信部216等を有する。これら各部は、プログラム提供装置20にインストールされたプログラムが、CPU204に実行させる処理により実現される。但し、各部は、複数のコンピュータに分散されてもよい。
プログラム提供装置20は、また、機能分類情報記憶部221及びモジュール記憶部222等を利用する。これら各記憶部は、例えば、補助記憶装置202、又はプログラム提供装置20にネットワークを介して接続される記憶装置等を用いて実現可能である。
要求受信部211は、複合機10aからのアプリケーションのダウンロード要求を受信する。なお、本実施の形態では、アプリケーションのインストール先の複合機10aよりダウンロード要求が送信される例が説明されるが、例えば、アプリケーションのダウンロードは、PC(Personal Computer)等によって代行されてもよい。
返信候補判定部212は、ダウンロード要求に対して返信対象となりうるアプリケーションの候補(以下、「返信候補」という。)を、機能分類情報記憶部221を参照して判定する。
機能分類情報記憶部221は、機能を基準としてアプリケーションを分類(グループ分け)した情報を記憶する。換言すれば、機能分類情報記憶部221は、機能とアプリケーションとの対応情報を記憶する。
評価環境構築部214は、ダウンロード要求に対する返信候補となるアプリケーションが複数有る場合、各返信候補の性能(処理時間)を評価するための環境(以下、「評価環境250」という。)を構築(生成)する。評価環境250は、ダウンロード要求元の複合機10aと同様又はほぼ同様のハードウェア構成及びソフトウェア構成等を模倣又は有する仮想環境である。仮想環境という表現は、実際の複合機10aを利用して構築される環境ではなく、仮想的(ソフトウェア的)に複合機10aと同様のハードウェア構成及びソフトウェア構成が再現される環境であることに基づく。
図3に示されるように、評価環境250は、ハードウェア模倣部251及びプラットフォーム模倣部252等を含む。ハードウェア模倣部251は、複合機10aのハードウェアを模倣する。ハードウェア模倣部251は、複合機10aのハードウェアを表面的に模倣可能なものであってもよい。すなわち、ハードウェア模倣部251は、複合機10aのハードウェアと同様のインタフェースを提供し、当該インタフェースの呼び出しに応じた動作は、ダミーであってもよい。プラットフォーム模倣部252は、複合機10aが有するアプリケーションプラットフォームと同一のプログラム群によって実現されてもよいし、当該アプリケーションプラットフォームと同一のプログラム群が、ハードウェア模倣部251上での動作用に改変されたプログラム群によって実現されてもよい。すなわち、プラットフォーム模倣部252は、表面上の振る舞いのみならず、内部ロジックまでに関しても、実際のアプリケーションプラットフォームを模倣する。
なお、プログラム提供装置20は、例えば、複合機10aの機種ごとに、コンピュータをハードウェア模倣部251として機能させるプログラム(以下、「ハードウェア模倣プログラム」という。)を有する。または、当該プログラムは一つであり、機種に応じた違いは、当該プログラムに対する設定情報とされてもよい。また、プログラム提供装置20は、例えば、複合機10aが有するアプリケーションプラットフォームのバージョンごとに、コンピュータを当該バージョンに対応するプラットフォーム模倣部252として機能させるプログラム(以下、「プラットフォーム模倣プログラム」という。)を有する。プラットフォーム模倣部252は、ダウンロード要求元の複合機10a機種に対応するハードウェア模倣プログラムと、当該複合機10aのアプリケーションプラットフォーム122のバージョンに対応するプラットフォーム模倣プログラムとを選択し、これらのプログラムを起動させることにより、評価環境250を生成する。ハードウェア模倣プログラム及びプラットフォーム模倣プログラムは、一般的に、エミュレータ又はシミュレータと呼ばれるソフトウェアによって実現されてもよい。
評価環境構築部214は、更に、ダウンロード要求元の複合機10aの機種に対応するハードウェア模倣部251、及び当該複合機10aが有するアプリケーションプラットフォームのバージョンに対応するプラットフォーム模倣部252等を組み合わせた評価環境250に対し、返信候補の各アプリケーションをインストールする。インストールされるアプリケーションは、モジュール記憶部222に記憶されている。モジュール記憶部222は、これまでに販売され、保守期間に有る各アプリケーションの実体(プログラムモジュール)を記憶する。
なお、評価環境250が構築される場所(ハードウェア模倣プログラム及びプラットフォーム模倣プログラムが起動される場所)は、プログラム提供装置20でなくてもよい。プログラム提供装置20にネットワークを介して接続されるコンピュータであってもよい。または、プログラム提供装置20若しくは当該コンピュータにおいて仮想マシンを動作させ、そのうちの一つの仮想マシン上で、評価環境250が構築されてもよい。
自動評価部215は、評価環境250において、返信候補の各アプリケーションを実行させ、その処理性能を評価する。本実施の形態において、処理性能の評価は、処理時間の計測に相当する。
返信対象選択部213は、自動評価部215による各返信候補の評価結果に基づいて、ダウンロード要求元の複合機10aに適したアプリケーションをダウンロード対象として選択する。応答返信部216は、返信対象選択部213によって選択されたアプリケーションのモジュールを、モジュール記憶部222より取得し、ダウンロード要求元に返信する。
以下、プログラム提供装置20が実行する処理手順について説明する。図4は、プログラム提供装置が実行する処理手順の一例を説明するためのフローチャートである。
ステップS101において、要求受信部211は、複合機10aより送信されたダウンロード要求を受信する。
ダウンロード要求は、例えば、複合機10aの操作パネルに表示される、ダウンロード可能なアプリケーションの一覧が表示されている画面に対する、アプリケーションの選択操作に応じて送信される。ダウンロード要求には、選択されたアプリケーションの識別情報(以下、「アプリID」という。)が含まれる。又は、アプリケーション単位ではなく、機能単位でダウンロード対象が選択されてもよい。すなわち、どのような機能を実行するアプリケーションを所望するのかをユーザに選択させてもよい。この場合、選択された機能の識別情報(以下、「機能ID」という。)が、ダウンロード要求に含まれてもよい。
ダウンロード要求には、更に、複合機10aのハードウェアの構成情報及びソフトウェアの構成情報等が含まれる。複合機10aのハードウェアの構成情報は、例えば、複合機10aの機種を示す機種情報である。複合機10aのソフトウェアの構成情報は、例えば、複合機10aが有するアプリケーションプラットフォームのバージョン情報である。
続いて、返信候補判定部212は、ダウンロード要求に指定されているアプリID又は機能IDと、機能分類情報記憶部221とに基づいて、返信候補を判定する(S102)。
図5は、機能分類情報記憶部の構成例を示す図である。図5において、機能分類情報記憶部221は、機能IDごとに、当該機能IDが示す機能を有するアプリケーション(厳密には、当該機能を複合機10aに実行させることのできるアプリケーション)のアプリIDの一覧を記憶する。すなわち、同一の機能IDに対応づけられているアプリIDに係るアプリケーションの集合は、相互に機能の一部又は全部が共通するアプリケーションの集合であるといえる。
なお、図5において、機能IDは、便宜上、「スキャン」、「印刷」等、日本語によって表記されているが、数字又は符号の羅列であってもよい。また、機能の分類の粒度(細かさ)は、適宜変更されてもよい。
例えば、ダウンロード要求においてアプリIDが指定されている場合、当該アプリIDと同じ機能IDに対応付けられている各アプリIDに係るアプリケーションが、返信候補として判定される。一方、ダウンロード要求において機能IDが指定されている場合、当該機能IDに対応付けられている各アプリIDに係るアプリケーションが、返信候補として判定される。
なお、同一の機能IDに対応づけられているアプリIDに係るアプリケーションは、その実装形態又は実装形式が異なっていてもよい。例えば、全ての処理が複合機10a上で完結するアプリケーション、一部の処理を外部サービスに委譲するアプリケーション、又は全ての処理が非図示のWebサーバ上で実行され、画面表示のみ複合機10aのウェブブラウザで実行されるアプリケーションが、同一の機能IDに対応付けられていてもよい。
続いて、評価環境構築部214は、評価環境250を生成する(S103)。具体的には、ダウンロード要求に含まれている機種情報が示す機種(複合機10aの機種)に対応するハードウェア模倣部251と、アプリケーションプラットフォームのバージョン情報に対応するプラットフォーム模倣部252とを含む仮想環境が、評価環境250として生成される。評価環境250の生成先は、プログラム提供装置20にネットワークを介して接続される非図示のコンピュータであってもよいし、当該コンピュータ又はプログラム提供装置20において稼動する仮想マシンであってもよい。
続いて、評価環境構築部214は、返信候補の各アプリケーションのプログラムモジュールをモジュール記憶部222より取得し、評価環境250にインストールする(S104)。すなわち、モジュール記憶部222は、アプリIDに関連付けて、各アプリケーションのプログラムモジュールを記憶する。
このように、評価環境250は、ダウンロード要求元の複合機10aのハードウェア構成及びソフトウェア構成を擬似的に再現するハードウェア構成及びソフトウェア構成を有するように生成される。したがって、アプリケーションのインストール先の複合機10aにより近い状態で、各返信候補の処理時間を計測することができる。
続くステップS105〜S109は、返信候補ごとのループ処理である。ステップS105において、自動評価部215は、一つの返信候補を評価対象とする。なお、ステップS104は、ステップS105の後に実行されてもよい。この場合、ステップS104では、評価対象とされた一つの返信候補がインストールされればよい。また、評価対象が代わる度に、直前の評価対象のアプリケーションに関して、評価環境250からのアンインストールが実行されてもよい。
続いて、自動評価部215は、評価環境250において、評価対象のアプリケーションを自動実行させる(S106)。自動実行において、自動評価部215は、アプリケーションの処理時間を計測する。例えば、実行指示が入力されてから、実行結果が出力されるまでの所要時間が計測される。計測値(処理時間)は、評価対象のアプリIDに関連付けられて、例えば、メモリ装置203に記憶される。
なお、アプリケーションに対して入力パラメータ(設定情報等)が必要される場合、入力パラメータは、予めテストシナリオとして、アプリケーションごとに、例えば、補助記憶装置202等に記憶されていてもよい。バッチ的なアプリケーションであれば、テストシナリオは最初に与えられるパラメータ群であればよい。対話的なアプリケーションであれば、テストシナリオは、ユーザによって行われる操作指示を示す情報であればよい。
また、処理時間の計測の開始のタイミングを示す情報と、終了のタイミングを示す情報についても、アプリケーションごとに、例えば、補助記憶装置202等に記憶されていてもよい。処理時間の計測の開始のタイミングを示す情報とは、例えば、テストシナリオにおいて、いずれの入力が行われた後に計測を開始するのかを示す情報である。処理時間の計測の終了を示す情報とは、例えば、評価対象のアプリケーションからどのような出力が得られたら、計測を終了させるかを示す情報である。なお、自動評価部215は、公知の自動評価システムを用いて実現されてもよい。
自動評価部215は、また、アプリケーションの自動実行中において、アプリケーションによるネットワーク通信の回数を計数(カウント)する。すなわち、処理要求を外部サービスに送信したり、処理を外部に委譲したりするアプリケーションの場合は、ネットワーク通信が発生する。通信回数は、例えば、アプリケーションによる所定のAPIの呼び出し回数等を数えることにより、計数されてもよい。
処理時間の計測が完了すると、自動評価部215は、通信回数は1以上であったか否かを判定する(S107)。通信回数が1以上であった場合、自動評価部215は、通信回数に所定値αを乗じることによって得られる値を、計測された処理時間に加算することにより、処理時間を補正する(S108)。すなわち、通信処理に要する時間は、評価環境250と、複合機10aとでは異なりうる。通信相手との距離や通信経路等が、評価環境250と複合機10aとでは異なるからである。したがって、アプリケーションが複合機10aにおいて実行された場合の処理時間により近い処理時間が得られるように、ステップS108では処理時間の補正が行われる。なお、ステップS108の詳細については後述される。
ステップS105〜S109が、全ての返信候補に関して実行されると(S109でYes)、返信対象選択部213は、例えば、アプリIDに関連付けられてメモリ装置204に記憶されている処理時間に基づいて、返信対象を選択する(S110)。具体的には、処理時間が最小であるアプリIDが、返信対象として選択される。
続いて、応答返信部216は、返信対象選択部213によって選択されたアプリIDに係るプログラムモジュールをモジュール記憶部222より取得し、当該プログラムモジュールを含む応答を、複合機10aに返信する(S111)。
なお、ステップS111では、アプリケーションごとに処理時間の計測結果を示す画面を表示させる表示用データ(例えば、HTMLデータ)が、複合機10aに返信されてもよい。複合機10aの操作パネルにおいて表示される当該画面を介して選択されたアプリケーションが、複合機10aにダウンロードされるようにしてもよい。
続いて、ステップS108の詳細について説明する。本実施の形態では、三つの形態について説明する。なお、いずれの形態においても、アプリケーションの自動実行中における通信は、エミュレートされずに実際に行われることとする。
第一の形態では、アプリケーションの通信相手となる外部サービスが実装されたコンピュータが、例えば、プログラム提供装置20自身である場合、又はプログラム提供装置20と同一LAN(Local Area Network)に接続されている場合を想定する。この場合、アプリケーションの自動実行中における通信による遅延時間は、無視できる程小さいと考えられる。換言すれば、自動実行において計測された処理時間には、通信時間はほとんど含まれていないと考えられる。
そこで、第一の形態のステップS108では、複合機10aと外部サービスとの一回の通信時間の推定値が所定値αとされる。例えば、複合機10aと外部サービスとの1回の通信時間がpingコマンド等によって予め計測され、当該計測値が、複合機10aと外部サービとの通信時間の推定値とされてもよい。この場合、当該計測値が、ダウンロード要求に指定されてもよい。または、複合機10aからのダウンロード要求が、プログラム提供装置20に到達するまでの時間が計測され、当該計測値に基づいて、上記推定値が決定されてもよい。プログラム提供装置20と外部サービスとの通信時間が無視出来る程小さいのであれば、複合機10aとプログラム提供装置20との通信時間を、複合機10aと外部サービスとの通信時間としてみなすことも可能であると考えるからである。
第二の形態では、外部サービスが実装されたコンピュータが、例えば、プログラム提供装置20とインターネット等を介して接続されている場合を想定する。この場合、アプリケーションの自動実行において計測された処理時間には、通信による遅延時間が或る程度含まれていると考えられる。但し、プログラム提供装置20と外部サービスとの間の通信時間と、複合機10aと外部サービスとの間の通信時間とは、必ずしも同じであるとは限らない。
そこで、第二の形態のステップS108では、第一の形態と同様に決定される、複合機10aと外部サービスとの一回の通信時間の推定値から、プログラム提供装置20と外部サービスとの間の1回の通信時間を差し引いた値が、所定値αとされる。
例えば、複合機10aと外部サービスとの通信時間の推定値が100m秒であり、プログラム提供装置20と外部サービスとの間の一回の通信時間が10m秒であった場合、100−10=90m秒が、所定値αとされる。
第三の形態も、第二の形態と同様に、外部サービスが実装されたコンピュータが、例えば、プログラム提供装置20とインターネット等を介して接続されている場合を想定する。第三の形態では、複合機10aと外部サービスとの通信時間は、複合機10aとプログラム提供装置20との通信時間と、プログラム提供装置20と外部サービスとの通信時間との和であるとみなす。
したがって、この場合、所定値αには、プログラム提供装置20と複合機10aとの一回の通信時間が当てはめられればよい。当該通信時間は、例えば、複合機10aからのダウンロード要求が、プログラム提供装置20に到達するまでの時間に基づいて決定されてもよい。
第三の形態は、複合機10aと外部サービスとの通信時間を予め計測する必要が無い点において有利である。
上述したように、本実施の形態によれば、アプリケーションのインストール先である複合機10aに適したプログラムを自動的に選択することができる。
なお、本実施の形態では、機器の一例として複合機10aを用いて説明したが、プリンタ10b等の他の画像形成装置や、プロジェクタ10c等の他の機器に関して、本実施の形態が適用されてもよい。また、デジタルカメラ等、非図示の機器に関して本実施の形態が適用されてもよい。更に、会議システム10d等、情報処理システムに関して、本実施の形態が適用されてもよい。
また、プログラム提供装置20は、一台のコンピュータによって構成されてもよいし、ネットワーク上において分散された複数のコンピュータによって構成されてもよい。また、プログラム提供サービスは、クラウドサービスとして提供されてもよい。
例えば、図6は、プログラム提供装置が複数のコンピュータによって構成される例を示す図である。図6では、プログラム提供装置20が、複数のコンピュータに分散されて構成されている例が示されている。なお、図6は、プログラム提供装置20が、4台以上のコンピュータによって構成されている例が示されているが、4台未満のコンピュータによって構成されてもよい。
また、プログラム提供装置20が有する機能は、統合開発環境の一部を構成してもよい。図7は、統合開発環境の一例を示す図である。図7中、図3と同一部分には同一符号を付し、その説明は省略する。また、図7において、要求受信部211、返信候補判定部212、返信対象選択部213、応答返信部216、及び機能分類情報記憶部221は、便宜上、省略されている。
図7において、統合開発環境40は、更に、フロントエンド部217、認証部218、認証情報記憶部223、ソースコード記憶部231、ソースコード編集部232、ビルド部233、テスト部234、デバッグ部235、及び継続的インテグレーション部236等を含む。
フロントエンド部217は、統合開発環境40のGUI(Graphical User Interface)を提供する。例えば、当該GUIは、HTML(HyperText Markup Language)によって記述されたHTMLデータによって構成される。但し、HTMLデータ以外のデータ形式によって、当該GUIが構成されてもよい。
認証部218は、統合開発環境40の利用を要求するユーザの認証を実行する。具体的には、本実施の形態では、アプリケーションの開発者が、統合開発環境40のユーザとなる。したがって、認証部218は、開発者端末30において入力された認証情報(例えば、ユーザ名及びパスワード)を、認証情報記憶部223に記憶されている認証情報と照合することにより、開発者の認証を実行する。認証情報記憶部223には、統合開発環境40の利用契約を結んでいる各ユーザ(開発者)の認証情報が記憶されている。
ソースコード記憶部231は、アプリケーションのソースコードを記憶する。ソースコード編集部232は、開発者端末30に表示されるソースコード編集画面を介して入力される指示に応じ、編集対象とされているソースコードを編集する。ビルド部233は、ソースコード記憶部231に記憶されているソースコードについてビルド(コンパイル及びリンク等)を実行する。テスト部234は、ビルド後のアプリケーションに関するテストの実施の支援を行う。デバッグ部235は、ビルド後のアプリケーションに関するデバッグの支援を行う。継続的インテグレーション部236は、例えば、ソースコード編集部232によって編集された後、ビルドされていないソースコードに関して、自動的にビルド及びテスト等を実行し、ビルド後のアプリケーションのプログラムモジュールをモジュール記憶部222にアップロードする。
プログラム提供装置20の機能が、統合開発環境40の一部とされることにより、開発者に対してより利便性の高いサービスを提供することができる。すなわち、開発者は、同一の仮想空間内において、評価環境250の構築、評価環境250における自動評価の実行、自動評価の実行結果を受けたアプリケーションのソースコードの編集、編集後のソースコードのビルド、ビルド後のテスト及びデバッグ等を実行することができる。
なお、図7に示される統合開発環境40は、プログラム提供装置20と同じコンピュータ又はコンピュータ群によって実現されてもよいし、プログラム提供装置20に対して更なるコンピュータ又はコンピュータ群が接続されることにより実現されてもよい。
なお、本実施の形態において、プログラム提供装置20は、プログラム選択装置の一例である。要求受信部211は、受信部の一例である。自動評価部215は、計測部の一例である。返信対象選択部213は、選択部の一例である。
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
1 プログラム提供システム
10a 複合機
10b プリンタ
10c プロジェクタ
10d 会議システム
20 プログラム提供装置
30 開発者端末
200 ドライブ装置
201 記録媒体
202 補助記憶装置
203 メモリ装置
204 CPU
205 インタフェース装置
211 要求受信部
212 返信候補判定部
213 返信対象選択部
214 評価環境構築部
215 自動評価部
216 応答返信部
217 フロントエンド部
218 認証部
221 機能分類情報記憶部
222 モジュール記憶部
223 認証情報記憶部
231 ソースコード記憶部
232 ソースコード編集部
233 ビルド部
234 テスト部
235 デバッグ部
236 継続的インテグレーション部
B バス
N1 ネットワーク
特開2006−352845号公報

Claims (7)

  1. 相互に機能の一部又は全部が共通する複数のプログラムのいずれかの取得要求を受信する受信部と、
    前記複数のプログラムを実行させ、それぞれのプログラムの処理時間を計測する計測部と、
    計測結果に基づいて、前記取得要求に対して返信するプログラムを選択する選択部とを有し、
    前記計測部は、前記プログラムが当該プログラムのインストール先の機器に実行させる外部装置との通信の回数を計数し、前記回数に、所定値を乗じた値によって、前記処理時間を補正するプログラム選択装置。
  2. 前記取得要求に指定されている、前記プログラムのインストール先の機器の機種情報及び前記機器のソフトウェア構成情報に基づいて、前記機器のハードウェア環境及びソフトウェア環境を模倣する仮想環境を生成する生成部を有し、
    前記計測部は、前記複数のプログラムを前記仮想環境において実行させ、それぞれのプログラムの処理時間を計測する請求項1記載のプログラム選択装置。
  3. 機能を識別する機能識別情報と、当該機能を有する一以上のプログラムのそれぞれを識別するプログラム識別情報とを対応付けて記憶する記憶部を有し、
    前記計測部は、前記取得要求に指定されているプログラム識別情報と同一の機能識別情報に対応付けられているプログラム識別情報に係るプログラム、又は前記取得要求に指定されている機能識別情報に対応付けられているプログラム識別情報に係るプログラムのそれぞれを実行させ、それぞれのプログラムの処理時間を計測する請求項1又は2記載のプログラム選択装置。
  4. 前記所定値は、前記機器と前記外部装置との通信時間に基づく値である請求項1乃至3いずれか一項記載のプログラム選択装置。
  5. 前記所定値は、前記機器と当該プログラム選択装置との通信時間と、当該プログラム選択装置と前記外部装置との通信時間とに基づく値である請求項1乃至3いずれか一項記載のプログラム選択装置。
  6. 相互に機能の一部又は全部が共通する複数のプログラムのいずれかの取得要求を受信する受信手順と、
    前記複数のプログラムを実行させ、それぞれのプログラムの処理時間を計測する計測手順と、
    計測結果に基づいて、前記取得要求に対して返信するプログラムを選択する選択手順とをコンピュータが実行し、
    前記計測手順は、前記プログラムが当該プログラムのインストール先の機器に実行させる外部装置との通信の回数を計数し、前記回数に、所定値を乗じた値によって、前記処理時間を補正するプログラム選択方法。
  7. 相互に機能の一部又は全部が共通する複数のプログラムのいずれかの取得要求を受信する受信手順と、
    前記複数のプログラムを実行させ、それぞれのプログラムの処理時間を計測する計測手順と、
    計測結果に基づいて、前記取得要求に対して返信するプログラムを選択する選択手順とをコンピュータに実行させ、
    前記計測手順は、前記プログラムが当該プログラムのインストール先の機器に実行させる外部装置との通信の回数を計数し、前記回数に、所定値を乗じた値によって、前記処理時間を補正する選択プログラム。
JP2012062741A 2012-03-19 2012-03-19 プログラム選択装置、プログラム選択方法、及び選択プログラム Expired - Fee Related JP5842693B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012062741A JP5842693B2 (ja) 2012-03-19 2012-03-19 プログラム選択装置、プログラム選択方法、及び選択プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012062741A JP5842693B2 (ja) 2012-03-19 2012-03-19 プログラム選択装置、プログラム選択方法、及び選択プログラム

Publications (2)

Publication Number Publication Date
JP2013196371A JP2013196371A (ja) 2013-09-30
JP5842693B2 true JP5842693B2 (ja) 2016-01-13

Family

ID=49395233

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012062741A Expired - Fee Related JP5842693B2 (ja) 2012-03-19 2012-03-19 プログラム選択装置、プログラム選択方法、及び選択プログラム

Country Status (1)

Country Link
JP (1) JP5842693B2 (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2792452B2 (ja) * 1995-02-06 1998-09-03 日本電気株式会社 マルチメディア通信システム
JP5553070B2 (ja) * 2009-07-02 2014-07-16 富士通株式会社 アルゴリズム選択プログラム、アルゴリズム選択装置及び方法

Also Published As

Publication number Publication date
JP2013196371A (ja) 2013-09-30

Similar Documents

Publication Publication Date Title
CN108959068B (zh) 软件界面测试方法、设备及存储介质
US9274935B1 (en) Application testing system with application programming interface
KR102341154B1 (ko) 모바일 장치들의 원격 구성을 허용하기 위해 모바일 장치들 상에 설치되는 고속 어플리케이션
US20140211021A1 (en) Test system for evaluating mobile device and driving method thereof
US20070220494A1 (en) A Method of Rapid Software Application Development for a Wireless Mobile Device
CN109885480B (zh) 一种基于调试桥的自动化界面兼容性测试方法及装置
US9454388B2 (en) Information processing device, information processing system, and recording medium
JP6024126B2 (ja) 障害対応支援装置、障害対応支援システム、障害対応支援方法、及び障害対応支援プログラム
CN105302722B (zh) Cts自动测试方法及装置
CN107656872B (zh) 软件测试方法、装置、设备和计算机存储介质
CN111651366A (zh) Sdk测试方法、装置、设备及存储介质
CN110011875B (zh) 拨测方法、装置、设备及计算机可读存储介质
JP2008276690A (ja) 開発システム、開発システムのサーバ、開発方法
CN112231206A (zh) 应用程序测试的脚本编辑方法、计算机可读存储介质及测试平台
CN117112060A (zh) 组件库构建方法、装置、电子设备及存储介质
CN114448823A (zh) Nfs服务测试方法、***及电子设备
JP2018156294A (ja) ソフトウェア検証装置およびソフトウェア検証プログラム
JP5842693B2 (ja) プログラム選択装置、プログラム選択方法、及び選択プログラム
CN111104331A (zh) 软件管理方法、终端设备及计算机可读存储介质
CN110874278A (zh) 外部***的嵌入方法、工作流***、设备及存储介质
CN105339974B (zh) 模拟传感器
CN115599683A (zh) 自动化测试方法、装置、设备及存储介质
JP2014056547A (ja) 障害対応支援装置、障害対応支援システム、障害対応支援方法、及び障害対応支援プログラム
Göth Testing techniques for mobile device applications
JP2011053729A (ja) プログラム開発支援装置及びシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150218

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151015

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20151020

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151102

R151 Written notification of patent or utility model registration

Ref document number: 5842693

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees