JP5842693B2 - Program selection device, program selection method, and selection program - Google Patents
Program selection device, program selection method, and selection program Download PDFInfo
- 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
Links
Images
Landscapes
- Stored Programmes (AREA)
Description
本発明は、プログラム選択装置、プログラム選択方法、及び選択プログラムに関する。 The present invention relates to a program selection device, a program selection method, and a selection program.
従来、PC(Personal Computer)等のコンピュータ、又は固有の機能を有する各種機器(以下、「機器」として総称する。)において利用可能なアプリケーションプログラムには、大きく分けて二つの形式がある。第一の形式のアプリケーションプログラムは、機器自体にインストールされ、当該アプリケーションプログラムの機能を機器のCPUに実行させるアプリケーションプログラムである。例えば、特定のハードウェア環境及びソフトウェア環境に特化したネイティブアプリケーションは、第一の形式のアプリケーションプログラムの代表例であるといえる。第一の形式のアプリケーションプログラムは、その処理が機器の内部で完結するものが多いため、処理性能に対する通信負荷による影響が小さいという利点がある。 2. Description of the Related Art Conventionally, application programs that can be used in computers such as PCs (Personal Computers) or various devices having specific functions (hereinafter collectively referred to as “devices”) are roughly divided into two types. The application program of the first format is an application program that is installed in the device itself and causes the CPU of the device to execute the function of the application program. For example, a native application specialized in a specific hardware environment and software environment can be said to be a representative example of the first type of application program. The application program of the first format has an advantage that the influence of the communication load on the processing performance is small because the processing is often completed inside the device.
第二の形式のアプリケーションプログラムは、機器とネットワークを介して通信可能なコンピュータにインストールされ、機器からの要求に応じた処理を当該コンピュータのCPUに実行させるアプリケーションプログラムである。例えば、Webアプリケーションは、第二の形式のアプリケーションプログラムの代表例であるといえる。第二の形式のアプリケーションプログラムは、機器ごとにインストールされないため、バージョンアップが容易であるという利点がある。 The application program of the second format is an application program that is installed in a computer that can communicate with a device via a network, and that causes the CPU of the computer to execute processing in response to a request from the device. For example, it can be said that a Web application is a typical example of an application program of the second format. Since the application program of the second format is not installed for each device, there is an advantage that version upgrade is easy.
機能面においては、従来、第一の形式のアプリケーションプログラムは、機器に固有のハードウェアを利用した機能を提供可能であるという利点を有していた。しかし、このような利点による第一のアプリケーションプログラムの優位性は、希薄になりつつある。 Conventionally, in terms of functions, the first type of application program has the advantage of being able to provide functions using hardware unique to the device. However, the superiority of the first application program due to such advantages is becoming sparse.
例えば、Webアプリケーションを利用するために機器が備えるブラウザソフトの中には、画面を表示するだけでなく、機器制御用に拡張されたスクリプト(以下、「拡張スクリプト」という。)を解釈して機器制御を実行することが可能なものも有る(例えば、特許文献1)。画像形成装置用の拡張スクリプトの一例として、スキャン命令を示すスクリプトが挙げられる。したがって、第一の形式のアプリケーションプログラムと同様の機能を第二の形式のアプリケーションプログラムでも提供可能な場合が多くなってきている。換言すれば、第一の形式及び第二の形式の双方によって、同一の機能を実現するアプリケーションプログラムを提供することができるようになっている。 For example, in browser software included in a device for using a Web application, not only displays a screen but also interprets a script extended for device control (hereinafter referred to as “extended script”). There is also a thing which can perform control (for example, patent documents 1). An example of an extension script for an image forming apparatus is a script indicating a scan command. Therefore, in many cases, functions similar to those of the first format application program can be provided by the second format application program. In other words, an application program that realizes the same function can be provided by both the first format and the second format.
以上のような状況は、ユーザにとっては、選択肢の増加といった観点においては好ましい状況であるといえる。しかし、用途又は機能が共通するアプリケーションプログラムが複数存在する場合、ユーザは、どのアプリケーションプログラムを機器へのインストール対象として選択すべきであるのかについて、困惑したり、選択が煩わしかったりする。 The above situation can be said to be a favorable situation for the user in terms of an increase in options. However, when there are a plurality of application programs having a common use or function, the user may be confused or troublesome about which application program should be selected as an installation target on the device.
本発明は、上記の点に鑑みてなされたものであって、インストール先に適したプログラムを自動的に選択することを目的とする。 The present invention has been made in view of the above points, and an object thereof is to automatically select a program suitable for an installation destination.
そこで上記課題を解決するため、本発明は、相互に機能の一部又は全部が共通する複数のプログラムのいずれかの取得要求を受信する受信部と、前記複数のプログラムを実行させ、それぞれのプログラムの処理時間を計測する計測部と、計測結果に基づいて、前記取得要求に対して返信するプログラムを選択する選択部とを有し、前記計測部は、前記プログラムが当該プログラムのインストール先の機器に実行させる外部装置との通信の回数を計数し、前記回数に、所定値を乗じた値によって、前記処理時間を補正する。 Therefore, in order to solve the above-described problem, the present invention causes a receiving unit that receives an acquisition request for any of a plurality of programs that share some or all of the functions to each other, and causes the plurality of programs to be executed. And a selection unit that selects a program to be returned in response to the acquisition request based on the measurement result, and the measurement unit is a device to which the program is installed. The number of times of communication with an external device to be executed is counted, and the processing time is corrected by a value obtained by multiplying the number of times by a predetermined value.
インストール先に適したプログラムを自動的に選択することができる。 A program suitable for the installation destination can be automatically selected.
以下、図面に基づいて本発明の実施の形態を説明する。図1は、本発明の実施の形態におけるプログラム提供システムの構成例を示す図である。図1のプログラム提供システム1おいて、機器メーカ環境E2は、開発環境E3、及びユーザ環境E1のそれぞれと、インターネット等のネットワークN1を介して接続されている。 Hereinafter, embodiments of the present invention will be described with reference to the drawings. FIG. 1 is a diagram illustrating a configuration example of a program providing system according to an embodiment of the present invention. In the program providing system 1 of FIG. 1, the device manufacturer environment E2 is connected to the development environment E3 and the user environment E1 via a network N1 such as the Internet.
機器メーカ環境E2は、例えば、ユーザ環境E1において利用される複合機10a、プリンタ10b、及びプロジェクタ10c等の機器や、会議システム10d(例えば、ビデオ会議システム10d)等を製造及び販売する機器メーカが運営するシステム環境である。本実施の形態において、機器メーカ環境E2は、プログラム提供装置20を含む。プログラム提供装置20は、ユーザ環境E1における機器にインストール可能なアプリケーションプログラム(以下、単に、「アプリケーション」という。)のダウンロードサービスを、ネットワークN1を介して提供する。
The device manufacturer environment E2 is, for example, a device manufacturer that manufactures and sells devices such as the multifunction peripheral 10a, the
ユーザ環境E1は、複合機10a、プリンタ10b、プロジェクタ10c、及び会議システム10d等のユーザのシステム環境である。ユーザ環境E1において、複合機10a、プリンタ10b、プロジェクタ10c、及び会議システム10d等は、LAN(Local Area Network)等のネットワークを介して接続されている。
The user environment E1 is a system environment of users such as the
開発環境E3は、機器にインストールされるアプリケーションを開発する企業(ソフトウェアベンダ)におけるシステム環境である。開発環境E3では、機器に実装されているアプリケーションプラットフォームにおいて公開されているAPI(Application Program Interface)を利用して、アプリケーションの開発が行われている。開発環境E3は、一以上の開発者端末30等を含む。開発者端末30は、アプリケーションの開発者が利用するPC(Personal Computer)等の情報処理装置である。
The development environment E3 is a system environment in a company (software vendor) that develops applications installed in devices. In the development environment E3, an application is developed using an API (Application Program Interface) published on an application platform mounted on the device. The development environment E3 includes one or
なお、本実施の形態においては、便宜上、開発者という用語を用いるが、開発者とは、実際に開発を行っているものでなくてもよい。窓口の担当者や管理者等、機器における障害の通知先となりうる者であってもよい。また、開発者は、個人でなくてもよい。通常、一つのアプリケーションの開発又は障害対応は、複数の個人又は組織によって行われる。したがって、開発者は、開発環境E3(ソフトウェアベンダ)全体であってもよいし、開発の委託先であってもよい。また、開発者は、必ずしも開発を業務としている組織でなくてもよい。機器に関する障害を受け付けるコールセンタ等であってもよい。 In this embodiment, the term developer is used for convenience, but the developer does not have to be actually developing. It may be a person who can be a notification destination of a failure in a device, such as a person in charge of a window or an administrator. Further, the developer does not have to be an individual. Usually, development of one application or failure handling is performed by a plurality of individuals or organizations. Therefore, the developer may be the entire development environment E3 (software vendor) or may be a contractor for development. Further, the developer does not necessarily have to be an organization that conducts development. It may be a call center or the like that accepts a failure related to a device.
図2は、本発明の実施の形態におけるプログラム提供装置のハードウェア構成例を示す図である。図2のプログラム提供装置20は、それぞれバスBで相互に接続されているドライブ装置200、補助記憶装置202、メモリ装置203、CPU204、及びインタフェース装置205等を有する。
FIG. 2 is a diagram illustrating a hardware configuration example of the program providing apparatus according to the embodiment of the present invention. 2 includes a
プログラム提供装置20での処理を実現するプログラムは、CD−ROM等の記録媒体201によって提供される。プログラムを記憶した記録媒体201がドライブ装置200にセットされると、プログラムが記録媒体201からドライブ装置200を介して補助記憶装置202にインストールされる。但し、プログラムのインストールは必ずしも記録媒体201より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置202は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
A program that realizes processing in the
メモリ装置203は、プログラムの起動指示があった場合に、補助記憶装置202からプログラムを読み出して格納する。CPU204は、メモリ装置203に格納されたプログラムに従ってプログラム提供装置20に係る機能を実行する。インタフェース装置205は、ネットワークに接続するためのインタフェースとして用いられる。
The
図3は、本発明の実施の形態におけるプログラム提供装置の機能構成例を示す図である。 FIG. 3 is a diagram illustrating a functional configuration example of the program providing apparatus according to the embodiment of the present invention.
図3において、プログラム提供装置20は、要求受信部211、返信候補判定部212、返信対象選択部213、評価環境構築部214、自動評価部215、及び応答返信部216等を有する。これら各部は、プログラム提供装置20にインストールされたプログラムが、CPU204に実行させる処理により実現される。但し、各部は、複数のコンピュータに分散されてもよい。
In FIG. 3, the
プログラム提供装置20は、また、機能分類情報記憶部221及びモジュール記憶部222等を利用する。これら各記憶部は、例えば、補助記憶装置202、又はプログラム提供装置20にネットワークを介して接続される記憶装置等を用いて実現可能である。
The
要求受信部211は、複合機10aからのアプリケーションのダウンロード要求を受信する。なお、本実施の形態では、アプリケーションのインストール先の複合機10aよりダウンロード要求が送信される例が説明されるが、例えば、アプリケーションのダウンロードは、PC(Personal Computer)等によって代行されてもよい。
The
返信候補判定部212は、ダウンロード要求に対して返信対象となりうるアプリケーションの候補(以下、「返信候補」という。)を、機能分類情報記憶部221を参照して判定する。
The reply
機能分類情報記憶部221は、機能を基準としてアプリケーションを分類(グループ分け)した情報を記憶する。換言すれば、機能分類情報記憶部221は、機能とアプリケーションとの対応情報を記憶する。
The function classification
評価環境構築部214は、ダウンロード要求に対する返信候補となるアプリケーションが複数有る場合、各返信候補の性能(処理時間)を評価するための環境(以下、「評価環境250」という。)を構築(生成)する。評価環境250は、ダウンロード要求元の複合機10aと同様又はほぼ同様のハードウェア構成及びソフトウェア構成等を模倣又は有する仮想環境である。仮想環境という表現は、実際の複合機10aを利用して構築される環境ではなく、仮想的(ソフトウェア的)に複合機10aと同様のハードウェア構成及びソフトウェア構成が再現される環境であることに基づく。
The evaluation
図3に示されるように、評価環境250は、ハードウェア模倣部251及びプラットフォーム模倣部252等を含む。ハードウェア模倣部251は、複合機10aのハードウェアを模倣する。ハードウェア模倣部251は、複合機10aのハードウェアを表面的に模倣可能なものであってもよい。すなわち、ハードウェア模倣部251は、複合機10aのハードウェアと同様のインタフェースを提供し、当該インタフェースの呼び出しに応じた動作は、ダミーであってもよい。プラットフォーム模倣部252は、複合機10aが有するアプリケーションプラットフォームと同一のプログラム群によって実現されてもよいし、当該アプリケーションプラットフォームと同一のプログラム群が、ハードウェア模倣部251上での動作用に改変されたプログラム群によって実現されてもよい。すなわち、プラットフォーム模倣部252は、表面上の振る舞いのみならず、内部ロジックまでに関しても、実際のアプリケーションプラットフォームを模倣する。
As shown in FIG. 3, the
なお、プログラム提供装置20は、例えば、複合機10aの機種ごとに、コンピュータをハードウェア模倣部251として機能させるプログラム(以下、「ハードウェア模倣プログラム」という。)を有する。または、当該プログラムは一つであり、機種に応じた違いは、当該プログラムに対する設定情報とされてもよい。また、プログラム提供装置20は、例えば、複合機10aが有するアプリケーションプラットフォームのバージョンごとに、コンピュータを当該バージョンに対応するプラットフォーム模倣部252として機能させるプログラム(以下、「プラットフォーム模倣プログラム」という。)を有する。プラットフォーム模倣部252は、ダウンロード要求元の複合機10a機種に対応するハードウェア模倣プログラムと、当該複合機10aのアプリケーションプラットフォーム122のバージョンに対応するプラットフォーム模倣プログラムとを選択し、これらのプログラムを起動させることにより、評価環境250を生成する。ハードウェア模倣プログラム及びプラットフォーム模倣プログラムは、一般的に、エミュレータ又はシミュレータと呼ばれるソフトウェアによって実現されてもよい。
Note that the
評価環境構築部214は、更に、ダウンロード要求元の複合機10aの機種に対応するハードウェア模倣部251、及び当該複合機10aが有するアプリケーションプラットフォームのバージョンに対応するプラットフォーム模倣部252等を組み合わせた評価環境250に対し、返信候補の各アプリケーションをインストールする。インストールされるアプリケーションは、モジュール記憶部222に記憶されている。モジュール記憶部222は、これまでに販売され、保守期間に有る各アプリケーションの実体(プログラムモジュール)を記憶する。
The evaluation
なお、評価環境250が構築される場所(ハードウェア模倣プログラム及びプラットフォーム模倣プログラムが起動される場所)は、プログラム提供装置20でなくてもよい。プログラム提供装置20にネットワークを介して接続されるコンピュータであってもよい。または、プログラム提供装置20若しくは当該コンピュータにおいて仮想マシンを動作させ、そのうちの一つの仮想マシン上で、評価環境250が構築されてもよい。
Note that the place where the
自動評価部215は、評価環境250において、返信候補の各アプリケーションを実行させ、その処理性能を評価する。本実施の形態において、処理性能の評価は、処理時間の計測に相当する。
The
返信対象選択部213は、自動評価部215による各返信候補の評価結果に基づいて、ダウンロード要求元の複合機10aに適したアプリケーションをダウンロード対象として選択する。応答返信部216は、返信対象選択部213によって選択されたアプリケーションのモジュールを、モジュール記憶部222より取得し、ダウンロード要求元に返信する。
The reply
以下、プログラム提供装置20が実行する処理手順について説明する。図4は、プログラム提供装置が実行する処理手順の一例を説明するためのフローチャートである。
Hereinafter, a processing procedure executed by the
ステップS101において、要求受信部211は、複合機10aより送信されたダウンロード要求を受信する。
In step S101, the
ダウンロード要求は、例えば、複合機10aの操作パネルに表示される、ダウンロード可能なアプリケーションの一覧が表示されている画面に対する、アプリケーションの選択操作に応じて送信される。ダウンロード要求には、選択されたアプリケーションの識別情報(以下、「アプリID」という。)が含まれる。又は、アプリケーション単位ではなく、機能単位でダウンロード対象が選択されてもよい。すなわち、どのような機能を実行するアプリケーションを所望するのかをユーザに選択させてもよい。この場合、選択された機能の識別情報(以下、「機能ID」という。)が、ダウンロード要求に含まれてもよい。 The download request is transmitted, for example, in response to an application selection operation on a screen displayed on the operation panel of the multifunction peripheral 10a and displaying a list of downloadable applications. The download request includes identification information of the selected application (hereinafter referred to as “application ID”). Alternatively, the download target may be selected in units of functions, not in units of applications. That is, the user may be allowed to select what function is desired to be executed. In this case, identification information (hereinafter referred to as “function ID”) of the selected function may be included in the download request.
ダウンロード要求には、更に、複合機10aのハードウェアの構成情報及びソフトウェアの構成情報等が含まれる。複合機10aのハードウェアの構成情報は、例えば、複合機10aの機種を示す機種情報である。複合機10aのソフトウェアの構成情報は、例えば、複合機10aが有するアプリケーションプラットフォームのバージョン情報である。
The download request further includes hardware configuration information and software configuration information of the multifunction peripheral 10a. The hardware configuration information of the
続いて、返信候補判定部212は、ダウンロード要求に指定されているアプリID又は機能IDと、機能分類情報記憶部221とに基づいて、返信候補を判定する(S102)。
Subsequently, the reply
図5は、機能分類情報記憶部の構成例を示す図である。図5において、機能分類情報記憶部221は、機能IDごとに、当該機能IDが示す機能を有するアプリケーション(厳密には、当該機能を複合機10aに実行させることのできるアプリケーション)のアプリIDの一覧を記憶する。すなわち、同一の機能IDに対応づけられているアプリIDに係るアプリケーションの集合は、相互に機能の一部又は全部が共通するアプリケーションの集合であるといえる。
FIG. 5 is a diagram illustrating a configuration example of the function classification information storage unit. In FIG. 5, the function classification
なお、図5において、機能IDは、便宜上、「スキャン」、「印刷」等、日本語によって表記されているが、数字又は符号の羅列であってもよい。また、機能の分類の粒度(細かさ)は、適宜変更されてもよい。 In FIG. 5, for convenience, the function ID is written in Japanese such as “scan” and “print”, but may be an enumeration of numbers or symbols. Moreover, the granularity (fineness) of the function classification may be changed as appropriate.
例えば、ダウンロード要求においてアプリIDが指定されている場合、当該アプリIDと同じ機能IDに対応付けられている各アプリIDに係るアプリケーションが、返信候補として判定される。一方、ダウンロード要求において機能IDが指定されている場合、当該機能IDに対応付けられている各アプリIDに係るアプリケーションが、返信候補として判定される。 For example, when an application ID is specified in the download request, an application related to each application ID associated with the same function ID as the application ID is determined as a reply candidate. On the other hand, when the function ID is specified in the download request, the application related to each application ID associated with the function ID is determined as a reply candidate.
なお、同一の機能IDに対応づけられているアプリIDに係るアプリケーションは、その実装形態又は実装形式が異なっていてもよい。例えば、全ての処理が複合機10a上で完結するアプリケーション、一部の処理を外部サービスに委譲するアプリケーション、又は全ての処理が非図示のWebサーバ上で実行され、画面表示のみ複合機10aのウェブブラウザで実行されるアプリケーションが、同一の機能IDに対応付けられていてもよい。
Note that the applications related to the application IDs associated with the same function ID may have different mounting forms or mounting forms. For example, an application in which all processes are completed on the
続いて、評価環境構築部214は、評価環境250を生成する(S103)。具体的には、ダウンロード要求に含まれている機種情報が示す機種(複合機10aの機種)に対応するハードウェア模倣部251と、アプリケーションプラットフォームのバージョン情報に対応するプラットフォーム模倣部252とを含む仮想環境が、評価環境250として生成される。評価環境250の生成先は、プログラム提供装置20にネットワークを介して接続される非図示のコンピュータであってもよいし、当該コンピュータ又はプログラム提供装置20において稼動する仮想マシンであってもよい。
Subsequently, the evaluation
続いて、評価環境構築部214は、返信候補の各アプリケーションのプログラムモジュールをモジュール記憶部222より取得し、評価環境250にインストールする(S104)。すなわち、モジュール記憶部222は、アプリIDに関連付けて、各アプリケーションのプログラムモジュールを記憶する。
Subsequently, the evaluation
このように、評価環境250は、ダウンロード要求元の複合機10aのハードウェア構成及びソフトウェア構成を擬似的に再現するハードウェア構成及びソフトウェア構成を有するように生成される。したがって、アプリケーションのインストール先の複合機10aにより近い状態で、各返信候補の処理時間を計測することができる。
As described above, the
続くステップS105〜S109は、返信候補ごとのループ処理である。ステップS105において、自動評価部215は、一つの返信候補を評価対象とする。なお、ステップS104は、ステップS105の後に実行されてもよい。この場合、ステップS104では、評価対象とされた一つの返信候補がインストールされればよい。また、評価対象が代わる度に、直前の評価対象のアプリケーションに関して、評価環境250からのアンインストールが実行されてもよい。
The subsequent steps S105 to S109 are a loop process for each reply candidate. In step S105, the
続いて、自動評価部215は、評価環境250において、評価対象のアプリケーションを自動実行させる(S106)。自動実行において、自動評価部215は、アプリケーションの処理時間を計測する。例えば、実行指示が入力されてから、実行結果が出力されるまでの所要時間が計測される。計測値(処理時間)は、評価対象のアプリIDに関連付けられて、例えば、メモリ装置203に記憶される。
Subsequently, the
なお、アプリケーションに対して入力パラメータ(設定情報等)が必要される場合、入力パラメータは、予めテストシナリオとして、アプリケーションごとに、例えば、補助記憶装置202等に記憶されていてもよい。バッチ的なアプリケーションであれば、テストシナリオは最初に与えられるパラメータ群であればよい。対話的なアプリケーションであれば、テストシナリオは、ユーザによって行われる操作指示を示す情報であればよい。
When input parameters (setting information or the like) are required for an application, the input parameters may be stored in advance as a test scenario for each application, for example, in the
また、処理時間の計測の開始のタイミングを示す情報と、終了のタイミングを示す情報についても、アプリケーションごとに、例えば、補助記憶装置202等に記憶されていてもよい。処理時間の計測の開始のタイミングを示す情報とは、例えば、テストシナリオにおいて、いずれの入力が行われた後に計測を開始するのかを示す情報である。処理時間の計測の終了を示す情報とは、例えば、評価対象のアプリケーションからどのような出力が得られたら、計測を終了させるかを示す情報である。なお、自動評価部215は、公知の自動評価システムを用いて実現されてもよい。
In addition, information indicating the start timing of processing time measurement and information indicating the end timing may also be stored, for example, in the
自動評価部215は、また、アプリケーションの自動実行中において、アプリケーションによるネットワーク通信の回数を計数(カウント)する。すなわち、処理要求を外部サービスに送信したり、処理を外部に委譲したりするアプリケーションの場合は、ネットワーク通信が発生する。通信回数は、例えば、アプリケーションによる所定のAPIの呼び出し回数等を数えることにより、計数されてもよい。
The
処理時間の計測が完了すると、自動評価部215は、通信回数は1以上であったか否かを判定する(S107)。通信回数が1以上であった場合、自動評価部215は、通信回数に所定値αを乗じることによって得られる値を、計測された処理時間に加算することにより、処理時間を補正する(S108)。すなわち、通信処理に要する時間は、評価環境250と、複合機10aとでは異なりうる。通信相手との距離や通信経路等が、評価環境250と複合機10aとでは異なるからである。したがって、アプリケーションが複合機10aにおいて実行された場合の処理時間により近い処理時間が得られるように、ステップS108では処理時間の補正が行われる。なお、ステップS108の詳細については後述される。
When the measurement of the processing time is completed, the
ステップS105〜S109が、全ての返信候補に関して実行されると(S109でYes)、返信対象選択部213は、例えば、アプリIDに関連付けられてメモリ装置204に記憶されている処理時間に基づいて、返信対象を選択する(S110)。具体的には、処理時間が最小であるアプリIDが、返信対象として選択される。
When steps S105 to S109 are executed for all reply candidates (Yes in S109), the reply
続いて、応答返信部216は、返信対象選択部213によって選択されたアプリIDに係るプログラムモジュールをモジュール記憶部222より取得し、当該プログラムモジュールを含む応答を、複合機10aに返信する(S111)。
Subsequently, the
なお、ステップS111では、アプリケーションごとに処理時間の計測結果を示す画面を表示させる表示用データ(例えば、HTMLデータ)が、複合機10aに返信されてもよい。複合機10aの操作パネルにおいて表示される当該画面を介して選択されたアプリケーションが、複合機10aにダウンロードされるようにしてもよい。
In step S111, display data (for example, HTML data) for displaying a screen showing the measurement result of the processing time for each application may be returned to the multi-function peripheral 10a. The application selected via the screen displayed on the operation panel of the
続いて、ステップS108の詳細について説明する。本実施の形態では、三つの形態について説明する。なお、いずれの形態においても、アプリケーションの自動実行中における通信は、エミュレートされずに実際に行われることとする。 Next, details of step S108 will be described. In this embodiment, three modes will be described. In any form, communication during automatic execution of an application is actually performed without being emulated.
第一の形態では、アプリケーションの通信相手となる外部サービスが実装されたコンピュータが、例えば、プログラム提供装置20自身である場合、又はプログラム提供装置20と同一LAN(Local Area Network)に接続されている場合を想定する。この場合、アプリケーションの自動実行中における通信による遅延時間は、無視できる程小さいと考えられる。換言すれば、自動実行において計測された処理時間には、通信時間はほとんど含まれていないと考えられる。
In the first embodiment, for example, a computer provided with an external service as a communication partner of an application is the
そこで、第一の形態のステップS108では、複合機10aと外部サービスとの一回の通信時間の推定値が所定値αとされる。例えば、複合機10aと外部サービスとの1回の通信時間がpingコマンド等によって予め計測され、当該計測値が、複合機10aと外部サービとの通信時間の推定値とされてもよい。この場合、当該計測値が、ダウンロード要求に指定されてもよい。または、複合機10aからのダウンロード要求が、プログラム提供装置20に到達するまでの時間が計測され、当該計測値に基づいて、上記推定値が決定されてもよい。プログラム提供装置20と外部サービスとの通信時間が無視出来る程小さいのであれば、複合機10aとプログラム提供装置20との通信時間を、複合機10aと外部サービスとの通信時間としてみなすことも可能であると考えるからである。
Therefore, in step S108 of the first form, the estimated value of one communication time between the
第二の形態では、外部サービスが実装されたコンピュータが、例えば、プログラム提供装置20とインターネット等を介して接続されている場合を想定する。この場合、アプリケーションの自動実行において計測された処理時間には、通信による遅延時間が或る程度含まれていると考えられる。但し、プログラム提供装置20と外部サービスとの間の通信時間と、複合機10aと外部サービスとの間の通信時間とは、必ずしも同じであるとは限らない。
In the second mode, it is assumed that a computer on which an external service is installed is connected to the
そこで、第二の形態のステップS108では、第一の形態と同様に決定される、複合機10aと外部サービスとの一回の通信時間の推定値から、プログラム提供装置20と外部サービスとの間の1回の通信時間を差し引いた値が、所定値αとされる。
Therefore, in step S108 of the second form, the estimated time of one communication time between the multifunction peripheral 10a and the external service determined in the same manner as in the first form, between the
例えば、複合機10aと外部サービスとの通信時間の推定値が100m秒であり、プログラム提供装置20と外部サービスとの間の一回の通信時間が10m秒であった場合、100−10=90m秒が、所定値αとされる。
For example, if the estimated value of the communication time between the
第三の形態も、第二の形態と同様に、外部サービスが実装されたコンピュータが、例えば、プログラム提供装置20とインターネット等を介して接続されている場合を想定する。第三の形態では、複合機10aと外部サービスとの通信時間は、複合機10aとプログラム提供装置20との通信時間と、プログラム提供装置20と外部サービスとの通信時間との和であるとみなす。
Similarly to the second embodiment, the third embodiment assumes a case where a computer on which an external service is mounted is connected to the
したがって、この場合、所定値αには、プログラム提供装置20と複合機10aとの一回の通信時間が当てはめられればよい。当該通信時間は、例えば、複合機10aからのダウンロード要求が、プログラム提供装置20に到達するまでの時間に基づいて決定されてもよい。
Therefore, in this case, it is only necessary to apply one communication time between the
第三の形態は、複合機10aと外部サービスとの通信時間を予め計測する必要が無い点において有利である。
The third form is advantageous in that it is not necessary to previously measure the communication time between the
上述したように、本実施の形態によれば、アプリケーションのインストール先である複合機10aに適したプログラムを自動的に選択することができる。
As described above, according to the present embodiment, it is possible to automatically select a program suitable for the
なお、本実施の形態では、機器の一例として複合機10aを用いて説明したが、プリンタ10b等の他の画像形成装置や、プロジェクタ10c等の他の機器に関して、本実施の形態が適用されてもよい。また、デジタルカメラ等、非図示の機器に関して本実施の形態が適用されてもよい。更に、会議システム10d等、情報処理システムに関して、本実施の形態が適用されてもよい。
In the present embodiment, the
また、プログラム提供装置20は、一台のコンピュータによって構成されてもよいし、ネットワーク上において分散された複数のコンピュータによって構成されてもよい。また、プログラム提供サービスは、クラウドサービスとして提供されてもよい。
The
例えば、図6は、プログラム提供装置が複数のコンピュータによって構成される例を示す図である。図6では、プログラム提供装置20が、複数のコンピュータに分散されて構成されている例が示されている。なお、図6は、プログラム提供装置20が、4台以上のコンピュータによって構成されている例が示されているが、4台未満のコンピュータによって構成されてもよい。
For example, FIG. 6 is a diagram illustrating an example in which the program providing apparatus includes a plurality of computers. FIG. 6 shows an example in which the
また、プログラム提供装置20が有する機能は、統合開発環境の一部を構成してもよい。図7は、統合開発環境の一例を示す図である。図7中、図3と同一部分には同一符号を付し、その説明は省略する。また、図7において、要求受信部211、返信候補判定部212、返信対象選択部213、応答返信部216、及び機能分類情報記憶部221は、便宜上、省略されている。
Moreover, the function which the
図7において、統合開発環境40は、更に、フロントエンド部217、認証部218、認証情報記憶部223、ソースコード記憶部231、ソースコード編集部232、ビルド部233、テスト部234、デバッグ部235、及び継続的インテグレーション部236等を含む。
7, the integrated
フロントエンド部217は、統合開発環境40のGUI(Graphical User Interface)を提供する。例えば、当該GUIは、HTML(HyperText Markup Language)によって記述されたHTMLデータによって構成される。但し、HTMLデータ以外のデータ形式によって、当該GUIが構成されてもよい。
The
認証部218は、統合開発環境40の利用を要求するユーザの認証を実行する。具体的には、本実施の形態では、アプリケーションの開発者が、統合開発環境40のユーザとなる。したがって、認証部218は、開発者端末30において入力された認証情報(例えば、ユーザ名及びパスワード)を、認証情報記憶部223に記憶されている認証情報と照合することにより、開発者の認証を実行する。認証情報記憶部223には、統合開発環境40の利用契約を結んでいる各ユーザ(開発者)の認証情報が記憶されている。
The
ソースコード記憶部231は、アプリケーションのソースコードを記憶する。ソースコード編集部232は、開発者端末30に表示されるソースコード編集画面を介して入力される指示に応じ、編集対象とされているソースコードを編集する。ビルド部233は、ソースコード記憶部231に記憶されているソースコードについてビルド(コンパイル及びリンク等)を実行する。テスト部234は、ビルド後のアプリケーションに関するテストの実施の支援を行う。デバッグ部235は、ビルド後のアプリケーションに関するデバッグの支援を行う。継続的インテグレーション部236は、例えば、ソースコード編集部232によって編集された後、ビルドされていないソースコードに関して、自動的にビルド及びテスト等を実行し、ビルド後のアプリケーションのプログラムモジュールをモジュール記憶部222にアップロードする。
The source
プログラム提供装置20の機能が、統合開発環境40の一部とされることにより、開発者に対してより利便性の高いサービスを提供することができる。すなわち、開発者は、同一の仮想空間内において、評価環境250の構築、評価環境250における自動評価の実行、自動評価の実行結果を受けたアプリケーションのソースコードの編集、編集後のソースコードのビルド、ビルド後のテスト及びデバッグ等を実行することができる。
By making the function of the program providing apparatus 20 a part of the integrated
なお、図7に示される統合開発環境40は、プログラム提供装置20と同じコンピュータ又はコンピュータ群によって実現されてもよいし、プログラム提供装置20に対して更なるコンピュータ又はコンピュータ群が接続されることにより実現されてもよい。
Note that the integrated
なお、本実施の形態において、プログラム提供装置20は、プログラム選択装置の一例である。要求受信部211は、受信部の一例である。自動評価部215は、計測部の一例である。返信対象選択部213は、選択部の一例である。
In the present embodiment, the
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。 As mentioned above, although the Example of this invention was explained in full detail, this invention is not limited to such specific embodiment, In the range of the summary of this invention described in the claim, various deformation | transformation・ Change is possible.
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 ネットワーク
1
205
Claims (7)
前記複数のプログラムを実行させ、それぞれのプログラムの処理時間を計測する計測部と、
計測結果に基づいて、前記取得要求に対して返信するプログラムを選択する選択部とを有し、
前記計測部は、前記プログラムが当該プログラムのインストール先の機器に実行させる外部装置との通信の回数を計数し、前記回数に、所定値を乗じた値によって、前記処理時間を補正するプログラム選択装置。 A receiving unit that receives an acquisition request for any of a plurality of programs that share some or all of their functions;
A measurement unit that executes the plurality of programs and measures the processing time of each program;
A selection unit that selects a program to reply to the acquisition request based on the measurement result;
The measurement unit counts the number of times of communication with an external device that the program causes the installation target device of the program to execute, and corrects the processing time by a value obtained by multiplying the number by a predetermined value. .
前記計測部は、前記複数のプログラムを前記仮想環境において実行させ、それぞれのプログラムの処理時間を計測する請求項1記載のプログラム選択装置。 A generation unit that generates a virtual environment that imitates the hardware environment and software environment of the device based on the model information of the installation destination device of the program and the software configuration information of the device specified in the acquisition request Have
The program selection device according to claim 1, wherein the measurement unit causes the plurality of programs to be executed in the virtual environment and measures a processing time of each program.
前記計測部は、前記取得要求に指定されているプログラム識別情報と同一の機能識別情報に対応付けられているプログラム識別情報に係るプログラム、又は前記取得要求に指定されている機能識別情報に対応付けられているプログラム識別情報に係るプログラムのそれぞれを実行させ、それぞれのプログラムの処理時間を計測する請求項1又は2記載のプログラム選択装置。 A storage unit that stores function identification information for identifying a function and program identification information for identifying each of one or more programs having the function in association with each other;
The measurement unit is associated with the program related to the program identification information associated with the same function identification information as the program identification information specified in the acquisition request, or the function identification information specified in the acquisition request. 3. The program selection apparatus according to claim 1, wherein each of the programs related to the program identification information is executed, and the processing time of each program is measured.
前記複数のプログラムを実行させ、それぞれのプログラムの処理時間を計測する計測手順と、
計測結果に基づいて、前記取得要求に対して返信するプログラムを選択する選択手順とをコンピュータが実行し、
前記計測手順は、前記プログラムが当該プログラムのインストール先の機器に実行させる外部装置との通信の回数を計数し、前記回数に、所定値を乗じた値によって、前記処理時間を補正するプログラム選択方法。 A reception procedure for receiving an acquisition request for any of a plurality of programs having some or all of the functions in common with each other;
A measurement procedure for executing the plurality of programs and measuring the processing time of each program;
The computer executes a selection procedure for selecting a program to reply to the acquisition request based on the measurement result,
The measurement procedure includes: a program selection method that counts the number of times of communication with an external device that is executed by a device to which the program is installed, and corrects the processing time by a value obtained by multiplying the number by a predetermined value. .
前記複数のプログラムを実行させ、それぞれのプログラムの処理時間を計測する計測手順と、
計測結果に基づいて、前記取得要求に対して返信するプログラムを選択する選択手順とをコンピュータに実行させ、
前記計測手順は、前記プログラムが当該プログラムのインストール先の機器に実行させる外部装置との通信の回数を計数し、前記回数に、所定値を乗じた値によって、前記処理時間を補正する選択プログラム。 A reception procedure for receiving an acquisition request for any of a plurality of programs having some or all of the functions in common with each other;
A measurement procedure for executing the plurality of programs and measuring the processing time of each program;
Based on the measurement result, let the computer execute a selection procedure for selecting a program to reply to the acquisition request,
The measurement procedure is a selection program in which the program counts the number of times of communication with an external device to be executed by a device to which the program is installed, and the processing time is corrected by a value obtained by multiplying the number by a predetermined value.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012062741A JP5842693B2 (en) | 2012-03-19 | 2012-03-19 | Program selection device, program selection method, and selection program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012062741A JP5842693B2 (en) | 2012-03-19 | 2012-03-19 | Program selection device, program selection method, and selection program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013196371A JP2013196371A (en) | 2013-09-30 |
JP5842693B2 true JP5842693B2 (en) | 2016-01-13 |
Family
ID=49395233
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012062741A Expired - Fee Related JP5842693B2 (en) | 2012-03-19 | 2012-03-19 | Program selection device, program selection method, and selection program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5842693B2 (en) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2792452B2 (en) * | 1995-02-06 | 1998-09-03 | 日本電気株式会社 | Multimedia communication system |
WO2011001527A1 (en) * | 2009-07-02 | 2011-01-06 | 富士通株式会社 | Algorithm selection program, algorithm selection device, and method |
-
2012
- 2012-03-19 JP JP2012062741A patent/JP5842693B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2013196371A (en) | 2013-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108959068B (en) | Software interface testing method, device and storage medium | |
US9274935B1 (en) | Application testing system with application programming interface | |
KR102341154B1 (en) | High-speed application for installation on mobile devices for permitting remote configuration of such mobile devices | |
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 (en) | Automatic interface compatibility testing method and device based on debugging bridge | |
US9454388B2 (en) | Information processing device, information processing system, and recording medium | |
JP6024126B2 (en) | Failure response support apparatus, failure response support system, failure response support method, and failure response support program | |
JP2014510482A (en) | System and method for testing content of a mobile communication device | |
CN105302722B (en) | CTS automatic testing method and device | |
CN107656872B (en) | Software testing method, device, equipment and computer storage medium | |
CN111651366A (en) | SDK test method, device, equipment and storage medium | |
CN110011875B (en) | Dial testing method, device, equipment and computer readable storage medium | |
JP2008276690A (en) | Development system, server for development system, and development method | |
CN117112060A (en) | Component library construction method and device, electronic equipment and storage medium | |
CN112231206A (en) | Script editing method for application program test, computer readable storage medium and test platform | |
CN114448823A (en) | NFS service testing method and system and electronic equipment | |
CN108717357B (en) | Page display code conversion method, device, equipment and computer storage medium | |
JP2018156294A (en) | Software verification apparatus and software verification program | |
JP5842693B2 (en) | Program selection device, program selection method, and selection program | |
CN111104331A (en) | Software management method, terminal device and computer-readable storage medium | |
CN110874278A (en) | Embedding method of external system, workflow system, device and storage medium | |
CN105339974B (en) | Analog sensor | |
CN115599683A (en) | Automatic testing method, device, equipment and storage medium | |
JP2014056547A (en) | Counter-failure support device, counter-failure support system, counter-failure support method, and counter-failure support program |
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 |