JP2013196371A - Program selection device, program selection method, and selection program - Google Patents

Program selection device, program selection method, and selection program Download PDF

Info

Publication number
JP2013196371A
JP2013196371A JP2012062741A JP2012062741A JP2013196371A JP 2013196371 A JP2013196371 A JP 2013196371A JP 2012062741 A JP2012062741 A JP 2012062741A JP 2012062741 A JP2012062741 A JP 2012062741A JP 2013196371 A JP2013196371 A JP 2013196371A
Authority
JP
Japan
Prior art keywords
program
unit
selection
application
processing time
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.)
Granted
Application number
JP2012062741A
Other languages
Japanese (ja)
Other versions
JP5842693B2 (en
Inventor
Masaatsu Kisono
正篤 木曽野
Taku Nagumo
拓 南雲
Yuichiro Sakuta
雄一郎 作田
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/en
Publication of JP2013196371A publication Critical patent/JP2013196371A/en
Application granted granted Critical
Publication of JP5842693B2 publication Critical patent/JP5842693B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

PROBLEM TO BE SOLVED: To automatically select a program which is suitable for installation destination.SOLUTION: The program selection device includes: a reception unit for receiving an acquisition request of any of a plurality of programs whose functions are partially or fully common to each other; a measurement unit for making the plurality of programs execute, and measuring the processing time of each program; and a selection unit for selecting a program to be returned in response to the acquisition request on the basis of the measurement result. The measurement unit counts the number of times of communication with an external device which the program makes a device at the installation destination of the program execute, and corrects the processing time on the basis of a value calculated by multiplying the number of times by a predetermined value.

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.

本発明の実施の形態におけるプログラム提供システムの構成例を示す図である。It is a figure which shows the structural example of the program provision system in embodiment of this invention. 本発明の実施の形態におけるプログラム提供装置のハードウェア構成例を示す図である。It is a figure which shows the hardware structural example of the program provision apparatus in embodiment of this invention. 本発明の実施の形態におけるプログラム提供装置の機能構成例を示す図である。It is a figure which shows the function structural example of the program provision apparatus in embodiment of this invention. プログラム提供装置が実行する処理手順の一例を説明するためのフローチャートである。It is a flowchart for demonstrating an example of the process sequence which a program provision apparatus performs. 機能分類情報記憶部の構成例を示す図である。It is a figure which shows the structural example of a function classification information storage part. プログラム提供装置が複数のコンピュータによって構成される例を示す図である。It is a figure which shows the example with which a program provision apparatus is comprised by several computers. 統合開発環境の一例を示す図である。It is a figure which shows an example of integrated development environment.

以下、図面に基づいて本発明の実施の形態を説明する。図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 printer 10b, and the projector 10c used in the user environment E1, a conference system 10d (for example, a video conference system 10d), and the like. It is a system environment that operates. In the present embodiment, the device manufacturer environment E2 includes a program providing device 20. The program providing apparatus 20 provides a download service of an application program (hereinafter simply referred to as “application”) that can be installed in a device in the user environment E1 via the network N1.

ユーザ環境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 multifunction machine 10a, the printer 10b, the projector 10c, and the conference system 10d. In the user environment E1, the multifunction machine 10a, the printer 10b, the projector 10c, the conference system 10d, and the like are connected via a network such as a LAN (Local Area Network).

開発環境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 more developer terminals 30 and the like. The developer terminal 30 is an information processing apparatus such as a PC (Personal Computer) used by an application developer.

なお、本実施の形態においては、便宜上、開発者という用語を用いるが、開発者とは、実際に開発を行っているものでなくてもよい。窓口の担当者や管理者等、機器における障害の通知先となりうる者であってもよい。また、開発者は、個人でなくてもよい。通常、一つのアプリケーションの開発又は障害対応は、複数の個人又は組織によって行われる。したがって、開発者は、開発環境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 drive device 200, an auxiliary storage device 202, a memory device 203, a CPU 204, an interface device 205, and the like that are mutually connected by a bus B.

プログラム提供装置20での処理を実現するプログラムは、CD−ROM等の記録媒体201によって提供される。プログラムを記憶した記録媒体201がドライブ装置200にセットされると、プログラムが記録媒体201からドライブ装置200を介して補助記憶装置202にインストールされる。但し、プログラムのインストールは必ずしも記録媒体201より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置202は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。   A program that realizes processing in the program providing apparatus 20 is provided by a recording medium 201 such as a CD-ROM. When the recording medium 201 storing the program is set in the drive device 200, the program is installed from the recording medium 201 to the auxiliary storage device 202 via the drive device 200. However, it is not always necessary to install the program from the recording medium 201, and the program may be downloaded from another computer via a network. The auxiliary storage device 202 stores the installed program and stores necessary files and data.

メモリ装置203は、プログラムの起動指示があった場合に、補助記憶装置202からプログラムを読み出して格納する。CPU204は、メモリ装置203に格納されたプログラムに従ってプログラム提供装置20に係る機能を実行する。インタフェース装置205は、ネットワークに接続するためのインタフェースとして用いられる。   The memory device 203 reads the program from the auxiliary storage device 202 and stores it when there is an instruction to start the program. The CPU 204 executes a function related to the program providing apparatus 20 according to a program stored in the memory device 203. The interface device 205 is used as an interface for connecting to a network.

図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 program providing apparatus 20 includes a request receiving unit 211, a reply candidate determining unit 212, a reply target selecting unit 213, an evaluation environment building unit 214, an automatic evaluation unit 215, a response reply unit 216, and the like. Each of these units is realized by processing executed by the CPU 204 by a program installed in the program providing apparatus 20. However, each unit may be distributed over a plurality of computers.

プログラム提供装置20は、また、機能分類情報記憶部221及びモジュール記憶部222等を利用する。これら各記憶部は、例えば、補助記憶装置202、又はプログラム提供装置20にネットワークを介して接続される記憶装置等を用いて実現可能である。   The program providing apparatus 20 also uses a function classification information storage unit 221 and a module storage unit 222. Each of these storage units can be realized using, for example, the auxiliary storage device 202 or a storage device connected to the program providing device 20 via a network.

要求受信部211は、複合機10aからのアプリケーションのダウンロード要求を受信する。なお、本実施の形態では、アプリケーションのインストール先の複合機10aよりダウンロード要求が送信される例が説明されるが、例えば、アプリケーションのダウンロードは、PC(Personal Computer)等によって代行されてもよい。   The request receiving unit 211 receives an application download request from the multifunction machine 10a. In the present embodiment, an example in which a download request is transmitted from the multifunction machine 10a to which the application is installed is described. However, for example, the application may be downloaded by a PC (Personal Computer) or the like.

返信候補判定部212は、ダウンロード要求に対して返信対象となりうるアプリケーションの候補(以下、「返信候補」という。)を、機能分類情報記憶部221を参照して判定する。   The reply candidate determination unit 212 determines application candidates (hereinafter referred to as “reply candidates”) that can be a reply target for the download request with reference to the function classification information storage unit 221.

機能分類情報記憶部221は、機能を基準としてアプリケーションを分類(グループ分け)した情報を記憶する。換言すれば、機能分類情報記憶部221は、機能とアプリケーションとの対応情報を記憶する。   The function classification information storage unit 221 stores information obtained by classifying (grouping) applications based on functions. In other words, the function classification information storage unit 221 stores correspondence information between functions and applications.

評価環境構築部214は、ダウンロード要求に対する返信候補となるアプリケーションが複数有る場合、各返信候補の性能(処理時間)を評価するための環境(以下、「評価環境250」という。)を構築(生成)する。評価環境250は、ダウンロード要求元の複合機10aと同様又はほぼ同様のハードウェア構成及びソフトウェア構成等を模倣又は有する仮想環境である。仮想環境という表現は、実際の複合機10aを利用して構築される環境ではなく、仮想的(ソフトウェア的)に複合機10aと同様のハードウェア構成及びソフトウェア構成が再現される環境であることに基づく。   The evaluation environment construction unit 214 constructs (generates) an environment (hereinafter referred to as “evaluation environment 250”) for evaluating the performance (processing time) of each reply candidate when there are a plurality of applications as reply candidates for the download request. ) The evaluation environment 250 is a virtual environment that imitates or has a hardware configuration and a software configuration similar to or substantially the same as the multifunction peripheral 10a that is the download request source. The expression “virtual environment” is not an environment constructed using the actual multifunction device 10a, but an environment in which the hardware configuration and software configuration similar to those of the multifunction device 10a are reproduced virtually (in software). Based.

図3に示されるように、評価環境250は、ハードウェア模倣部251及びプラットフォーム模倣部252等を含む。ハードウェア模倣部251は、複合機10aのハードウェアを模倣する。ハードウェア模倣部251は、複合機10aのハードウェアを表面的に模倣可能なものであってもよい。すなわち、ハードウェア模倣部251は、複合機10aのハードウェアと同様のインタフェースを提供し、当該インタフェースの呼び出しに応じた動作は、ダミーであってもよい。プラットフォーム模倣部252は、複合機10aが有するアプリケーションプラットフォームと同一のプログラム群によって実現されてもよいし、当該アプリケーションプラットフォームと同一のプログラム群が、ハードウェア模倣部251上での動作用に改変されたプログラム群によって実現されてもよい。すなわち、プラットフォーム模倣部252は、表面上の振る舞いのみならず、内部ロジックまでに関しても、実際のアプリケーションプラットフォームを模倣する。   As shown in FIG. 3, the evaluation environment 250 includes a hardware imitation unit 251, a platform imitation unit 252, and the like. The hardware imitation unit 251 imitates the hardware of the multifunction machine 10a. The hardware imitation unit 251 may be capable of imitating the hardware of the multifunction machine 10a on the surface. That is, the hardware imitation unit 251 provides an interface similar to that of the hardware of the multifunction peripheral 10a, and the operation corresponding to the calling of the interface may be a dummy. The platform imitation unit 252 may be realized by the same program group as the application platform included in the multifunction machine 10a, or the same program group as the application platform is modified for operation on the hardware imitation unit 251. It may be realized by a program group. That is, the platform imitation unit 252 imitates the actual application platform not only on the surface behavior but also on the internal logic.

なお、プログラム提供装置20は、例えば、複合機10aの機種ごとに、コンピュータをハードウェア模倣部251として機能させるプログラム(以下、「ハードウェア模倣プログラム」という。)を有する。または、当該プログラムは一つであり、機種に応じた違いは、当該プログラムに対する設定情報とされてもよい。また、プログラム提供装置20は、例えば、複合機10aが有するアプリケーションプラットフォームのバージョンごとに、コンピュータを当該バージョンに対応するプラットフォーム模倣部252として機能させるプログラム(以下、「プラットフォーム模倣プログラム」という。)を有する。プラットフォーム模倣部252は、ダウンロード要求元の複合機10a機種に対応するハードウェア模倣プログラムと、当該複合機10aのアプリケーションプラットフォーム122のバージョンに対応するプラットフォーム模倣プログラムとを選択し、これらのプログラムを起動させることにより、評価環境250を生成する。ハードウェア模倣プログラム及びプラットフォーム模倣プログラムは、一般的に、エミュレータ又はシミュレータと呼ばれるソフトウェアによって実現されてもよい。   Note that the program providing apparatus 20 includes, for example, a program that causes a computer to function as the hardware imitation unit 251 (hereinafter, referred to as “hardware imitation program”) for each model of the multifunction peripheral 10a. Or the said program is one, and the difference according to a model may be made into the setting information with respect to the said program. Further, the program providing apparatus 20 includes, for example, a program that causes the computer to function as the platform imitation unit 252 corresponding to the version (hereinafter referred to as “platform imitation program”) for each version of the application platform included in the multifunction peripheral 10a. . The platform imitation unit 252 selects a hardware imitation program corresponding to the download request source multifunction device 10a model and a platform imitation program corresponding to the version of the application platform 122 of the multifunction device 10a, and activates these programs. As a result, the evaluation environment 250 is generated. The hardware imitation program and the platform imitation program may be generally realized by software called an emulator or a simulator.

評価環境構築部214は、更に、ダウンロード要求元の複合機10aの機種に対応するハードウェア模倣部251、及び当該複合機10aが有するアプリケーションプラットフォームのバージョンに対応するプラットフォーム模倣部252等を組み合わせた評価環境250に対し、返信候補の各アプリケーションをインストールする。インストールされるアプリケーションは、モジュール記憶部222に記憶されている。モジュール記憶部222は、これまでに販売され、保守期間に有る各アプリケーションの実体(プログラムモジュール)を記憶する。   The evaluation environment construction unit 214 further combines a hardware imitation unit 251 corresponding to the model of the multifunction peripheral 10a as a download request source, a platform imitation unit 252 corresponding to the version of the application platform included in the multifunction peripheral 10a, and the like. For the environment 250, each reply candidate application is installed. The installed application is stored in the module storage unit 222. The module storage unit 222 stores the entity (program module) of each application that has been sold so far and is in the maintenance period.

なお、評価環境250が構築される場所(ハードウェア模倣プログラム及びプラットフォーム模倣プログラムが起動される場所)は、プログラム提供装置20でなくてもよい。プログラム提供装置20にネットワークを介して接続されるコンピュータであってもよい。または、プログラム提供装置20若しくは当該コンピュータにおいて仮想マシンを動作させ、そのうちの一つの仮想マシン上で、評価環境250が構築されてもよい。   Note that the place where the evaluation environment 250 is constructed (where the hardware imitation program and the platform imitation program are activated) may not be the program providing apparatus 20. It may be a computer connected to the program providing apparatus 20 via a network. Alternatively, a virtual machine may be operated on the program providing apparatus 20 or the computer, and the evaluation environment 250 may be constructed on one of the virtual machines.

自動評価部215は、評価環境250において、返信候補の各アプリケーションを実行させ、その処理性能を評価する。本実施の形態において、処理性能の評価は、処理時間の計測に相当する。   The automatic evaluation unit 215 causes each reply candidate application to be executed in the evaluation environment 250 and evaluates its processing performance. In the present embodiment, evaluation of processing performance corresponds to measurement of processing time.

返信対象選択部213は、自動評価部215による各返信候補の評価結果に基づいて、ダウンロード要求元の複合機10aに適したアプリケーションをダウンロード対象として選択する。応答返信部216は、返信対象選択部213によって選択されたアプリケーションのモジュールを、モジュール記憶部222より取得し、ダウンロード要求元に返信する。   The reply target selection unit 213 selects an application suitable for the download request source multifunction peripheral 10a as a download target based on the evaluation result of each reply candidate by the automatic evaluation unit 215. The response reply unit 216 acquires the module of the application selected by the reply target selection unit 213 from the module storage unit 222 and sends it back to the download request source.

以下、プログラム提供装置20が実行する処理手順について説明する。図4は、プログラム提供装置が実行する処理手順の一例を説明するためのフローチャートである。   Hereinafter, a processing procedure executed by the program providing apparatus 20 will be described. FIG. 4 is a flowchart for explaining an example of a processing procedure executed by the program providing apparatus.

ステップS101において、要求受信部211は、複合機10aより送信されたダウンロード要求を受信する。   In step S101, the request reception unit 211 receives a download request transmitted from the multifunction machine 10a.

ダウンロード要求は、例えば、複合機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 multifunction machine 10a is model information indicating the model of the multifunction machine 10a, for example. The software configuration information of the multifunction machine 10a is, for example, version information of the application platform that the multifunction machine 10a has.

続いて、返信候補判定部212は、ダウンロード要求に指定されているアプリID又は機能IDと、機能分類情報記憶部221とに基づいて、返信候補を判定する(S102)。   Subsequently, the reply candidate determination unit 212 determines a reply candidate based on the application ID or function ID specified in the download request and the function classification information storage unit 221 (S102).

図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 information storage unit 221 lists, for each function ID, a list of application IDs of applications having the function indicated by the function ID (strictly speaking, applications that can cause the multifunction peripheral 10a to execute the function). Remember. That is, it can be said that the set of applications related to the application IDs associated with the same function ID is a set of applications that share some or all of the functions.

なお、図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 MFP 10a, an application that delegates some processes to an external service, or all processes are executed on a Web server (not shown), and only the screen display is displayed on the Web of the MFP 10a. Applications executed in the browser may be associated with the same function ID.

続いて、評価環境構築部214は、評価環境250を生成する(S103)。具体的には、ダウンロード要求に含まれている機種情報が示す機種(複合機10aの機種)に対応するハードウェア模倣部251と、アプリケーションプラットフォームのバージョン情報に対応するプラットフォーム模倣部252とを含む仮想環境が、評価環境250として生成される。評価環境250の生成先は、プログラム提供装置20にネットワークを介して接続される非図示のコンピュータであってもよいし、当該コンピュータ又はプログラム提供装置20において稼動する仮想マシンであってもよい。   Subsequently, the evaluation environment construction unit 214 generates an evaluation environment 250 (S103). Specifically, a virtual including a hardware imitation unit 251 corresponding to the model (model of the multifunction peripheral 10a) indicated by the model information included in the download request and a platform imitation unit 252 corresponding to the version information of the application platform. An environment is generated as the evaluation environment 250. The generation destination of the evaluation environment 250 may be a computer (not shown) connected to the program providing apparatus 20 via a network, or may be a virtual machine that operates on the computer or the program providing apparatus 20.

続いて、評価環境構築部214は、返信候補の各アプリケーションのプログラムモジュールをモジュール記憶部222より取得し、評価環境250にインストールする(S104)。すなわち、モジュール記憶部222は、アプリIDに関連付けて、各アプリケーションのプログラムモジュールを記憶する。   Subsequently, the evaluation environment construction unit 214 acquires the program module of each reply candidate application from the module storage unit 222 and installs it in the evaluation environment 250 (S104). That is, the module storage unit 222 stores the program module of each application in association with the application ID.

このように、評価環境250は、ダウンロード要求元の複合機10aのハードウェア構成及びソフトウェア構成を擬似的に再現するハードウェア構成及びソフトウェア構成を有するように生成される。したがって、アプリケーションのインストール先の複合機10aにより近い状態で、各返信候補の処理時間を計測することができる。   As described above, the evaluation environment 250 is generated so as to have a hardware configuration and a software configuration that simulates a hardware configuration and a software configuration of the multifunction peripheral 10a as a download request source. Therefore, it is possible to measure the processing time of each reply candidate in a state closer to the multifunction machine 10a where the application is installed.

続くステップ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 automatic evaluation unit 215 sets one reply candidate as an evaluation target. Note that step S104 may be executed after step S105. In this case, in step S104, one reply candidate to be evaluated may be installed. Further, every time the evaluation target is changed, the uninstallation from the evaluation environment 250 may be executed for the application to be evaluated immediately before.

続いて、自動評価部215は、評価環境250において、評価対象のアプリケーションを自動実行させる(S106)。自動実行において、自動評価部215は、アプリケーションの処理時間を計測する。例えば、実行指示が入力されてから、実行結果が出力されるまでの所要時間が計測される。計測値(処理時間)は、評価対象のアプリIDに関連付けられて、例えば、メモリ装置203に記憶される。   Subsequently, the automatic evaluation unit 215 automatically executes the application to be evaluated in the evaluation environment 250 (S106). In automatic execution, the automatic evaluation unit 215 measures the processing time of the application. For example, the time required from when the execution instruction is input until the execution result is output is measured. The measurement value (processing time) is associated with the app ID to be evaluated and stored in the memory device 203, for example.

なお、アプリケーションに対して入力パラメータ(設定情報等)が必要される場合、入力パラメータは、予めテストシナリオとして、アプリケーションごとに、例えば、補助記憶装置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 auxiliary storage device 202 or the like. In the case of a batch application, the test scenario may be a parameter group given first. In the case of an interactive application, the test scenario may be information indicating an operation instruction given by the user.

また、処理時間の計測の開始のタイミングを示す情報と、終了のタイミングを示す情報についても、アプリケーションごとに、例えば、補助記憶装置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 auxiliary storage device 202 or the like for each application. The information indicating the start timing of processing time measurement is, for example, information indicating which input is performed and then measurement is started in a test scenario. The information indicating the end of processing time measurement is, for example, information indicating what kind of output is obtained from the application to be evaluated and the measurement is ended. Note that the automatic evaluation unit 215 may be realized using a known automatic evaluation system.

自動評価部215は、また、アプリケーションの自動実行中において、アプリケーションによるネットワーク通信の回数を計数(カウント)する。すなわち、処理要求を外部サービスに送信したり、処理を外部に委譲したりするアプリケーションの場合は、ネットワーク通信が発生する。通信回数は、例えば、アプリケーションによる所定のAPIの呼び出し回数等を数えることにより、計数されてもよい。   The automatic evaluation unit 215 also counts the number of network communications by the application during automatic execution of the application. That is, in the case of an application that transmits a processing request to an external service or delegates processing to the outside, network communication occurs. The number of communications may be counted, for example, by counting the number of calls of a predetermined API by the application.

処理時間の計測が完了すると、自動評価部215は、通信回数は1以上であったか否かを判定する(S107)。通信回数が1以上であった場合、自動評価部215は、通信回数に所定値αを乗じることによって得られる値を、計測された処理時間に加算することにより、処理時間を補正する(S108)。すなわち、通信処理に要する時間は、評価環境250と、複合機10aとでは異なりうる。通信相手との距離や通信経路等が、評価環境250と複合機10aとでは異なるからである。したがって、アプリケーションが複合機10aにおいて実行された場合の処理時間により近い処理時間が得られるように、ステップS108では処理時間の補正が行われる。なお、ステップS108の詳細については後述される。   When the measurement of the processing time is completed, the automatic evaluation unit 215 determines whether or not the communication count is 1 or more (S107). When the communication count is 1 or more, the automatic evaluation unit 215 corrects the processing time by adding a value obtained by multiplying the communication count by the predetermined value α to the measured processing time (S108). . In other words, the time required for the communication process can be different between the evaluation environment 250 and the multifunction peripheral 10a. This is because the distance to the communication partner, the communication path, and the like are different between the evaluation environment 250 and the multifunction peripheral 10a. Therefore, in step S108, the processing time is corrected so that a processing time closer to the processing time when the application is executed in the multifunction peripheral 10a is obtained. Details of step S108 will be described later.

ステップ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 target selecting unit 213, for example, based on the processing time stored in the memory device 204 in association with the application ID, A reply target is selected (S110). Specifically, the application ID having the shortest processing time is selected as a reply target.

続いて、応答返信部216は、返信対象選択部213によって選択されたアプリIDに係るプログラムモジュールをモジュール記憶部222より取得し、当該プログラムモジュールを含む応答を、複合機10aに返信する(S111)。   Subsequently, the response reply unit 216 acquires the program module related to the application ID selected by the reply target selection unit 213 from the module storage unit 222, and sends a response including the program module back to the multifunction peripheral 10a (S111). .

なお、ステップ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 multifunction machine 10a may be downloaded to the multifunction machine 10a.

続いて、ステップ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 program providing apparatus 20 itself, or connected to the same LAN (Local Area Network) as the program providing apparatus 20 Assume a case. In this case, the delay time due to communication during automatic execution of the application is considered to be negligibly small. In other words, it is considered that the processing time measured in automatic execution hardly includes communication time.

そこで、第一の形態のステップ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 MFP 10a and the external service is set to a predetermined value α. For example, one communication time between the multifunction device 10a and the external service may be measured in advance by a ping command or the like, and the measured value may be an estimated value of the communication time between the multifunction device 10a and the external service. In this case, the measurement value may be specified in the download request. Alternatively, the time until the download request from the multifunction machine 10a reaches the program providing device 20 may be measured, and the estimated value may be determined based on the measured value. If the communication time between the program providing device 20 and the external service is negligibly small, the communication time between the multifunction device 10a and the program providing device 20 can be regarded as the communication time between the multifunction device 10a and the external service. It is because it thinks that there is.

第二の形態では、外部サービスが実装されたコンピュータが、例えば、プログラム提供装置20とインターネット等を介して接続されている場合を想定する。この場合、アプリケーションの自動実行において計測された処理時間には、通信による遅延時間が或る程度含まれていると考えられる。但し、プログラム提供装置20と外部サービスとの間の通信時間と、複合機10aと外部サービスとの間の通信時間とは、必ずしも同じであるとは限らない。   In the second mode, it is assumed that a computer on which an external service is installed is connected to the program providing apparatus 20 via the Internet or the like, for example. In this case, it is considered that the processing time measured in the automatic execution of the application includes a certain amount of delay time due to communication. However, the communication time between the program providing device 20 and the external service and the communication time between the multifunction peripheral 10a and the external service are not necessarily the same.

そこで、第二の形態のステップ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 program providing apparatus 20 and the external service. A value obtained by subtracting one communication time is set to a predetermined value α.

例えば、複合機10aと外部サービスとの通信時間の推定値が100m秒であり、プログラム提供装置20と外部サービスとの間の一回の通信時間が10m秒であった場合、100−10=90m秒が、所定値αとされる。   For example, if the estimated value of the communication time between the MFP 10a and the external service is 100 milliseconds, and the one-time communication time between the program providing apparatus 20 and the external service is 10 milliseconds, 100−10 = 90 m The second is set to a predetermined value α.

第三の形態も、第二の形態と同様に、外部サービスが実装されたコンピュータが、例えば、プログラム提供装置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 program providing apparatus 20 via the Internet or the like, for example. In the third mode, the communication time between the multifunction device 10a and the external service is regarded as the sum of the communication time between the multifunction device 10a and the program providing device 20 and the communication time between the program providing device 20 and the external service. .

したがって、この場合、所定値αには、プログラム提供装置20と複合機10aとの一回の通信時間が当てはめられればよい。当該通信時間は、例えば、複合機10aからのダウンロード要求が、プログラム提供装置20に到達するまでの時間に基づいて決定されてもよい。   Therefore, in this case, it is only necessary to apply one communication time between the program providing apparatus 20 and the multifunction peripheral 10a to the predetermined value α. The communication time may be determined based on, for example, the time until a download request from the multifunction machine 10a reaches the program providing apparatus 20.

第三の形態は、複合機10aと外部サービスとの通信時間を予め計測する必要が無い点において有利である。   The third form is advantageous in that it is not necessary to previously measure the communication time between the multifunction machine 10a and the external service.

上述したように、本実施の形態によれば、アプリケーションのインストール先である複合機10aに適したプログラムを自動的に選択することができる。   As described above, according to the present embodiment, it is possible to automatically select a program suitable for the multifunction machine 10a that is the installation destination of the application.

なお、本実施の形態では、機器の一例として複合機10aを用いて説明したが、プリンタ10b等の他の画像形成装置や、プロジェクタ10c等の他の機器に関して、本実施の形態が適用されてもよい。また、デジタルカメラ等、非図示の機器に関して本実施の形態が適用されてもよい。更に、会議システム10d等、情報処理システムに関して、本実施の形態が適用されてもよい。   In the present embodiment, the multifunction device 10a has been described as an example of the device. However, the present embodiment is applied to other image forming apparatuses such as the printer 10b and other devices such as the projector 10c. Also good. Further, the present embodiment may be applied to a device (not shown) such as a digital camera. Furthermore, the present embodiment may be applied to an information processing system such as the conference system 10d.

また、プログラム提供装置20は、一台のコンピュータによって構成されてもよいし、ネットワーク上において分散された複数のコンピュータによって構成されてもよい。また、プログラム提供サービスは、クラウドサービスとして提供されてもよい。   The program providing apparatus 20 may be configured by a single computer or may be configured by a plurality of computers distributed on a network. Further, the program providing service may be provided as a cloud service.

例えば、図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 program providing device 20 is configured to be distributed among a plurality of computers. FIG. 6 shows an example in which the program providing device 20 is configured by four or more computers, but the program providing device 20 may be configured by less than four computers.

また、プログラム提供装置20が有する機能は、統合開発環境の一部を構成してもよい。図7は、統合開発環境の一例を示す図である。図7中、図3と同一部分には同一符号を付し、その説明は省略する。また、図7において、要求受信部211、返信候補判定部212、返信対象選択部213、応答返信部216、及び機能分類情報記憶部221は、便宜上、省略されている。   Moreover, the function which the program provision apparatus 20 has may comprise a part of integrated development environment. FIG. 7 is a diagram illustrating an example of an integrated development environment. In FIG. 7, the same parts as those of FIG. Further, in FIG. 7, the request receiving unit 211, the reply candidate determining unit 212, the reply target selecting unit 213, the response reply unit 216, and the function classification information storage unit 221 are omitted for convenience.

図7において、統合開発環境40は、更に、フロントエンド部217、認証部218、認証情報記憶部223、ソースコード記憶部231、ソースコード編集部232、ビルド部233、テスト部234、デバッグ部235、及び継続的インテグレーション部236等を含む。   7, the integrated development environment 40 further includes a front end unit 217, an authentication unit 218, an authentication information storage unit 223, a source code storage unit 231, a source code editing unit 232, a build unit 233, a test unit 234, and a debug unit 235. And a continuous integration unit 236 and the like.

フロントエンド部217は、統合開発環境40のGUI(Graphical User Interface)を提供する。例えば、当該GUIは、HTML(HyperText Markup Language)によって記述されたHTMLデータによって構成される。但し、HTMLデータ以外のデータ形式によって、当該GUIが構成されてもよい。   The front end unit 217 provides a GUI (Graphical User Interface) of the integrated development environment 40. For example, the GUI is composed of HTML data described in HTML (HyperText Markup Language). However, the GUI may be configured by a data format other than HTML data.

認証部218は、統合開発環境40の利用を要求するユーザの認証を実行する。具体的には、本実施の形態では、アプリケーションの開発者が、統合開発環境40のユーザとなる。したがって、認証部218は、開発者端末30において入力された認証情報(例えば、ユーザ名及びパスワード)を、認証情報記憶部223に記憶されている認証情報と照合することにより、開発者の認証を実行する。認証情報記憶部223には、統合開発環境40の利用契約を結んでいる各ユーザ(開発者)の認証情報が記憶されている。   The authentication unit 218 performs authentication of a user who requests use of the integrated development environment 40. Specifically, in the present embodiment, an application developer is a user of the integrated development environment 40. Therefore, the authentication unit 218 verifies the developer by comparing the authentication information (for example, the user name and password) input at the developer terminal 30 with the authentication information stored in the authentication information storage unit 223. Run. The authentication information storage unit 223 stores authentication information of each user (developer) who has a contract for using the integrated development environment 40.

ソースコード記憶部231は、アプリケーションのソースコードを記憶する。ソースコード編集部232は、開発者端末30に表示されるソースコード編集画面を介して入力される指示に応じ、編集対象とされているソースコードを編集する。ビルド部233は、ソースコード記憶部231に記憶されているソースコードについてビルド(コンパイル及びリンク等)を実行する。テスト部234は、ビルド後のアプリケーションに関するテストの実施の支援を行う。デバッグ部235は、ビルド後のアプリケーションに関するデバッグの支援を行う。継続的インテグレーション部236は、例えば、ソースコード編集部232によって編集された後、ビルドされていないソースコードに関して、自動的にビルド及びテスト等を実行し、ビルド後のアプリケーションのプログラムモジュールをモジュール記憶部222にアップロードする。   The source code storage unit 231 stores application source code. The source code editing unit 232 edits the source code to be edited in response to an instruction input via the source code editing screen displayed on the developer terminal 30. The build unit 233 executes build (compile, link, etc.) for the source code stored in the source code storage unit 231. The test unit 234 supports execution of tests related to the application after the build. The debugging unit 235 supports debugging related to the application after the build. For example, the continuous integration unit 236 automatically executes a build and a test on a source code that has not been built after being edited by the source code editing unit 232, and stores a program module of the application after the build as a module storage unit. Upload to 222.

プログラム提供装置20の機能が、統合開発環境40の一部とされることにより、開発者に対してより利便性の高いサービスを提供することができる。すなわち、開発者は、同一の仮想空間内において、評価環境250の構築、評価環境250における自動評価の実行、自動評価の実行結果を受けたアプリケーションのソースコードの編集、編集後のソースコードのビルド、ビルド後のテスト及びデバッグ等を実行することができる。   By making the function of the program providing apparatus 20 a part of the integrated development environment 40, it is possible to provide a more convenient service to the developer. That is, the developer builds the evaluation environment 250, executes the automatic evaluation in the evaluation environment 250, edits the source code of the application that receives the execution result of the automatic evaluation, and builds the edited source code in the same virtual space. , Post-build testing and debugging can be performed.

なお、図7に示される統合開発環境40は、プログラム提供装置20と同じコンピュータ又はコンピュータ群によって実現されてもよいし、プログラム提供装置20に対して更なるコンピュータ又はコンピュータ群が接続されることにより実現されてもよい。   Note that the integrated development environment 40 shown in FIG. 7 may be realized by the same computer or computer group as the program providing device 20, or by connecting a further computer or computer group to the program providing device 20. It may be realized.

なお、本実施の形態において、プログラム提供装置20は、プログラム選択装置の一例である。要求受信部211は、受信部の一例である。自動評価部215は、計測部の一例である。返信対象選択部213は、選択部の一例である。   In the present embodiment, the program providing apparatus 20 is an example of a program selection apparatus. The request receiving unit 211 is an example of a receiving unit. The automatic evaluation unit 215 is an example of a measurement unit. The reply target selection unit 213 is an example of a selection unit.

以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。   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 Program Providing System 10a Multifunction Machine 10b Printer 10c Projector 10d Conference System 20 Program Providing Device 30 Developer Terminal 200 Drive Device 201 Recording Medium 202 Auxiliary Storage Device 203 Memory Device 204 CPU
205 Interface Device 211 Request Reception Unit 212 Reply Candidate Determination Unit 213 Reply Target Selection Unit 214 Evaluation Environment Construction Unit 215 Automatic Evaluation Unit 216 Response Reply Unit 217 Front End Unit 218 Authentication Unit 221 Function Classification Information Storage Unit 222 Module Storage Unit 223 Authentication Information Storage unit 231 Source code storage unit 232 Source code editing unit 233 Build unit 234 Test unit 235 Debug unit 236 Continuous integration unit B Bus N1 network

特開2006−352845号公報JP 2006-352845 A

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.
前記所定値は、前記機器と前記外部装置との通信時間に基づく値である請求項1乃至3いずれか一項記載のプログラム選択装置。   The program selection device according to any one of claims 1 to 3, wherein the predetermined value is a value based on a communication time between the device and the external device. 前記所定値は、前記機器と当該プログラム選択装置との通信時間と、当該プログラム選択装置と前記外部装置との通信時間とに基づく値である請求項1乃至3いずれか一項記載のプログラム選択装置。   4. The program selection device according to claim 1, wherein the predetermined value is a value based on a communication time between the device and the program selection device and a communication time between the program selection device and the external device. . 相互に機能の一部又は全部が共通する複数のプログラムのいずれかの取得要求を受信する受信手順と、
前記複数のプログラムを実行させ、それぞれのプログラムの処理時間を計測する計測手順と、
計測結果に基づいて、前記取得要求に対して返信するプログラムを選択する選択手順とをコンピュータが実行し、
前記計測手順は、前記プログラムが当該プログラムのインストール先の機器に実行させる外部装置との通信の回数を計数し、前記回数に、所定値を乗じた値によって、前記処理時間を補正するプログラム選択方法。
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.
JP2012062741A 2012-03-19 2012-03-19 Program selection device, program selection method, and selection program Expired - Fee Related JP5842693B2 (en)

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 true JP2013196371A (en) 2013-09-30
JP5842693B2 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)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08214285A (en) * 1995-02-06 1996-08-20 Nec Corp Multi-media communication system
WO2011001527A1 (en) * 2009-07-02 2011-01-06 富士通株式会社 Algorithm selection program, algorithm selection device, and method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08214285A (en) * 1995-02-06 1996-08-20 Nec Corp Multi-media communication system
WO2011001527A1 (en) * 2009-07-02 2011-01-06 富士通株式会社 Algorithm selection program, algorithm selection device, and method

Also Published As

Publication number Publication date
JP5842693B2 (en) 2016-01-13

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
CN109885480B (en) Automatic interface compatibility testing method and device based on debugging bridge
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
JP6024126B2 (en) Failure response support apparatus, failure response support system, failure response support method, and failure response support program
CN111651366A (en) SDK test method, device, equipment and storage medium
Grønli et al. Meeting quality standards for mobile application development in businesses: A framework for cross-platform testing
JP2008276690A (en) Development system, server for development system, and development method
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
She et al. Hermes: A tool for testing mobile device applications
CN117041111A (en) Vehicle cloud function test method and device, electronic equipment and storage medium
JP5842693B2 (en) Program selection device, program selection method, and selection program
CN111414309A (en) Automatic test method of application program, computer equipment 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
Göth Testing techniques for mobile device applications
CN114860570B (en) Development board evaluation method and device for SaaS mode
JP2011053729A (en) Program development support device and system

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