JP2020144580A - Program distribution device and program distribution method - Google Patents
Program distribution device and program distribution method Download PDFInfo
- Publication number
- JP2020144580A JP2020144580A JP2019040401A JP2019040401A JP2020144580A JP 2020144580 A JP2020144580 A JP 2020144580A JP 2019040401 A JP2019040401 A JP 2019040401A JP 2019040401 A JP2019040401 A JP 2019040401A JP 2020144580 A JP2020144580 A JP 2020144580A
- Authority
- JP
- Japan
- Prior art keywords
- source code
- terminal
- program
- language
- programming language
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 94
- 238000006243 chemical reaction Methods 0.000 claims abstract description 47
- 230000008569 process Effects 0.000 claims description 75
- 238000012795 verification Methods 0.000 claims description 62
- 238000010276 construction Methods 0.000 claims description 12
- 238000009826 distribution Methods 0.000 abstract description 21
- 230000002542 deteriorative effect Effects 0.000 abstract description 6
- 238000012545 processing Methods 0.000 description 26
- 238000011161 development Methods 0.000 description 18
- 238000004891 communication Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 17
- 230000005856 abnormality Effects 0.000 description 16
- 238000003860 storage Methods 0.000 description 16
- 238000004458 analytical method Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 12
- 230000004044 response Effects 0.000 description 11
- 230000002159 abnormal effect Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000009434 installation Methods 0.000 description 4
- 238000003754 machining Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000000593 degrading effect Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
Images
Abstract
Description
本発明は、プログラム配信装置及びプログラム配信方法に関する。 The present invention relates to a program distribution device and a program distribution method.
従来、プラットフォームの種類が異なる端末に対して同一コードのアプリケーションプログラムを提供するシステムが知られている(特許文献1など参照)。
Conventionally, a system for providing an application program having the same code to terminals having different platform types is known (see
このシステムでは、各端末のプラットフォームの違いを仮想マシンレイヤで吸収している。 In this system, the difference in the platform of each terminal is absorbed by the virtual machine layer.
しかしながら、仮想マシン上でのプログラムの実行は、中間言語コードの解釈に負荷がかかるため、実行速度の低下及びI/Oアクセスの低下を招く。 However, the execution of the program on the virtual machine imposes a load on the interpretation of the intermediate language code, which causes a decrease in execution speed and a decrease in I / O access.
本発明はかかる点に鑑みてなされたものであり、端末の機能及び性能を落とすことなく、実行環境が異なる端末に同一のプログラムを提供できるプログラム配信装置及びプログラム配信方法を提供することを目的の1つとする。 The present invention has been made in view of the above points, and an object of the present invention is to provide a program distribution device and a program distribution method capable of providing the same program to terminals having different execution environments without deteriorating the functions and performance of the terminals. Let it be one.
本発明に係るプログラム配信装置の一態様は、一つのプログラムに対し、異なるプログラミング言語を用いたソースコードを管理する管理部から、端末の使用言語情報に基づき、前記端末の実行環境で実行可能な使用プログラミング言語を特定し、前記使用プログラミング言語を用いた前記ソースコードを前記管理部から取得するソースコード取得部と、前記使用プログラミング言語がコンパイル言語である場合、前記ソースコードを前記実行環境で実行可能な実行可能形式ファイルに変換する変換部と、前記使用プログラミング言語がスクリプト言語である場合は前記ソースコードを、前記使用プログラミング言語が前記コンパイル言語である場合は前記実行可能形式ファイルを、前記端末に送信する送信部と、を具備することを特徴とする。 One aspect of the program distribution device according to the present invention can be executed in the execution environment of the terminal based on the language information of the terminal from the management unit that manages the source code using different programming languages for one program. A source code acquisition unit that specifies the programming language to be used and acquires the source code using the programming language from the management unit, and when the programming language used is a compilation language, executes the source code in the execution environment. A conversion unit that converts into a possible executable format file, the source code if the programming language used is a script language, the executable format file if the programming language used is the compilation language, and the terminal. It is characterized by having a transmission unit for transmitting to.
本発明に係るプログラム配信方法の一態様は、端末の使用言語情報に基づき、前記端末の実行環境で実行可能な使用プログラミング言語を特定し、一つのプログラムに対し、異なるプログラミング言語を用いたソースコードを管理する管理部から前記使用プログラミング言語を用いた前記ソースコードを取得する工程と、前記使用プログラミング言語がコンパイル言語である場合、前記ソースコードを前記実行環境で実行可能な実行可能形式ファイルに変換する工程と、前記使用プログラミング言語がスクリプト言語である場合は前記ソースコードを、前記使用プログラミング言語が前記コンパイル言語である場合は前記実行可能形式ファイルを、前記端末に送信する工程と、を具備することを特徴とする。 One aspect of the program distribution method according to the present invention is to specify a programming language to be used that can be executed in the execution environment of the terminal based on the language information of the terminal, and source code using a different programming language for one program. The process of acquiring the source code using the programming language used from the management unit that manages the above, and converting the source code into an executable file that can be executed in the execution environment when the programming language used is a compilation language. If the programming language used is a script language, the source code is transmitted to the terminal, and if the programming language used is the compilation language, the executable file is transmitted to the terminal. It is characterized by that.
本発明によれば、端末の機能及び性能を落とすことなく、実行環境が異なる端末に同一のプログラムを提供できるプログラム配信装置及びプログラム配信方法を提供することができる。 According to the present invention, it is possible to provide a program distribution device and a program distribution method capable of providing the same program to terminals having different execution environments without deteriorating the functions and performance of the terminals.
以下、本実施の形態に係るプログラム配信装置及びプログラム配信方法について、図面を参照して説明する。 Hereinafter, the program distribution device and the program distribution method according to the present embodiment will be described with reference to the drawings.
<概要>
端末においてプログラムが実行される実行環境(プラットフォーム)は様々である。そのうちの一つが、実行環境上で使用されるプログラミング言語(以下、使用プログラミング言語と記載する)である。
<Overview>
There are various execution environments (platforms) in which programs are executed on terminals. One of them is the programming language used in the execution environment (hereinafter referred to as the programming language used).
プログラミング言語のうち高級言語は、その変換形式によって、「コンパイラ言語」と「スクリプト言語」とに大別される。「コンパイラ言語」は、ソースコードを事前に実行環境上で実行可能な形式にコンパイルしておくプログラミング言語であり、例えば、C、C++、Java(登録商標)である。「スクリプト言語」は、ソースコードを実行環境上で解釈しながら実行するプログラミング言語であり、例えば、Python、Perl、PHP、Ruby、JavaScript(登録商標)である。 High-level languages among programming languages are roughly classified into "compiler languages" and "script languages" according to their conversion formats. A "compiler language" is a programming language in which source code is compiled in advance in a format that can be executed on an execution environment, and is, for example, C, C ++, or Java (registered trademark). A "script language" is a programming language that executes while interpreting source code on an execution environment, and is, for example, Python, Perl, PHP, Ruby, and Javascript (registered trademark).
コンパイラ言語のうち、C、C++など(以下、「C言語など」と記載する)は、ソースコードを、事前に実行可能形式ファイル(Executable file、単に「実行形式」ともいう)に変換する。より具体的には、ソースコードを、機械語等で記述されたオブジェクトファイルにコンパイルし、オブジェクトファイルとライブラリとをリンクし、実行可能形式ファイルを生成する。 Among the compiler languages, C, C ++, etc. (hereinafter, referred to as "C language, etc.") convert the source code into an executable file (executable file, also simply referred to as "executable format") in advance. More specifically, the source code is compiled into an object file described in machine language or the like, the object file and the library are linked, and an executable file is generated.
このようなC言語などは、端末での実行速度が速く、負荷も少ないという利点がある。しかし、コンパイル及びリンクが端末のプロセッサ(CPU)、オペレーションシステム(OS)のようなアーキティクチャに依存する。 Such C language and the like have advantages that the execution speed on the terminal is high and the load is small. However, compilation and linking depends on architecture such as the terminal processor (CPU) and operating system (OS).
また、コンパイラ言語のうち、Javaなどは、仮想マシンの上で実行される点で、C、C++などと相違する。Javaなどでは、ソースコードをコンパイルして中間言語コードを生成する。中間言語ファイルは、端末上で実行される仮想マシンにより解釈され、実行される。 In addition, among compiler languages, Java and the like are different from C, C ++ and the like in that they are executed on a virtual machine. In Java etc., the source code is compiled to generate the intermediate language code. The intermediate language file is interpreted and executed by the virtual machine running on the terminal.
仮想マシンには、中間言語コードを逐次解析しながら実行するインタプリタ型と、中間言語コードを読み込むときに機械語等にコンパイルし、実行するコンパイラ型と、があり、両者を組み合わせて使用されることもある。 There are two types of virtual machines: an interpreter type that executes while sequentially analyzing the intermediate language code, and a compiler type that compiles and executes the intermediate language code into a machine language when it is read, and both are used in combination. There is also.
このタイプの高級言語は、仮想マシンが端末のアーキティクチャの違いを吸収するため、中間言語コードを、実行環境が異なる端末どうしで共通化できるという利点がある。しかし、仮想マシンを端末上で実行させる必要があり、仮想マシン上でのプログラムの実行は、中間言語コードの解釈に負荷がかかるため、実行速度の低下及びI/Oアクセスの低下を招く。 This type of high-level language has the advantage that the virtual machine absorbs the difference in the architecture of the terminals, so that the intermediate language code can be shared between terminals with different execution environments. However, it is necessary to execute the virtual machine on the terminal, and the execution of the program on the virtual machine imposes a load on the interpretation of the intermediate language code, which causes a decrease in execution speed and a decrease in I / O access.
一方、スクリプト言語は、端末上で実行されるインタプリタにより逐次解釈しながら実行されるため、事前にソースコードから他の形式に変換する必要はない。また、インタプリタが端末のアーキティクチャの違いを吸収するため、ソースコードを、実行環境が異なる端末どうしで共通化できるという利点がある。しかし、インタプリタにソースコードを逐次解釈しながら実行させるため、実行速度が遅い。 On the other hand, since the script language is executed while being sequentially interpreted by the interpreter executed on the terminal, it is not necessary to convert the source code to another format in advance. In addition, since the interpreter absorbs the difference in the architecture of the terminals, there is an advantage that the source code can be shared between terminals having different execution environments. However, the execution speed is slow because the interpreter executes the source code while interpreting it sequentially.
上述のような高級言語は、そのタイプによって利点及び欠点がある。従来は、実行速度が高速なC言語などの、事前の変換にコンパイラ及びリンカを用いる言語が多く使われていた。しかし、CPUの高速化に伴い、スクリプト言語やJavaなどのインタプリタ又は仮想マシンを用いる言語が採用されるようになってきた。その理由として、スクリプト言語やJavaなどは、端末の実行環境にインタプリタ及び仮想マシンが存在しなくても、ネットワークを介した配信により、インタプリタ又は仮想マシンを追加し、プログラムの追加及び実行が可能になることが挙げられる。 High-level languages such as those mentioned above have advantages and disadvantages depending on their type. Conventionally, many languages that use a compiler and a linker for prior conversion, such as C language, which has a high execution speed, have been used. However, as the speed of CPUs has increased, languages using script languages, interpreters such as Java, or virtual machines have come to be adopted. The reason is that scripting languages, Java, etc. can add interpreters or virtual machines and add and execute programs by distribution via the network even if there are no interpreters and virtual machines in the execution environment of the terminal. Can be mentioned.
このような背景から、インターネット等の通信ネットワークを介して端末からの要求に応じてプログラムを配信するプログラム配信システムには、実行環境が異なる端末に同一のプログラムを提供できることが望まれる。しかしながら、端末の機能及び性能を落とすことなく、実行環境が異なる端末に同一のプログラムを提供できるものは知られていない。 Against this background, it is desired that a program distribution system that distributes a program in response to a request from a terminal via a communication network such as the Internet can provide the same program to terminals having different execution environments. However, there is no known one that can provide the same program to terminals having different execution environments without deteriorating the functions and performance of the terminals.
さらに、プログラム配信システムにおいて、端末とサーバとで実行環境が異なるため、端末にアプリケーションを配信後、再度検証を行わなくてはならないという課題もあった。 Further, in the program distribution system, since the execution environment differs between the terminal and the server, there is also a problem that the application must be distributed to the terminal and then verified again.
そこで、本発明者らは、上記課題を解決すべく鋭意検討した結果、一つのプログラムに対し、異なるプログラミング言語を用いたソースコードを用意しておき、端末の使用言語情報に基づき、端末の実行環境で実行可能な使用プログラミング言語を特定し、使用プログラミング言語に応じて前記端末の実行環境で実行可能な形式でプログラムを端末に送信することにより、端末の機能及び性能を落とさないことに寄与することを見出だし、本発明を完成した。 Therefore, as a result of diligent studies to solve the above problems, the present inventors prepare source codes using different programming languages for one program, and execute the terminal based on the language information of the terminal. By specifying the programming language that can be executed in the environment and sending the program to the terminal in a format that can be executed in the execution environment of the terminal according to the programming language used, it contributes to not degrading the functions and performance of the terminal. I found that and completed the present invention.
すなわち、本実施の形態に係るプログラム配信装置は、一つのプログラムに対し、異なるプログラミング言語を用いたソースコードを管理する管理部から、端末の使用言語情報に基づき、前記端末の実行環境で実行可能な使用プログラミング言語を特定し、前記使用プログラミング言語を用いた前記ソースコードを前記管理部から取得するソースコード取得部と、前記使用プログラミング言語がコンパイル言語である場合、前記ソースコードを前記実行環境で実行可能な実行可能形式ファイルに変換する変換部と、前記使用プログラミング言語がスクリプト言語である場合は前記ソースコードを、前記使用プログラミング言語が前記コンパイル言語である場合は前記実行可能形式ファイルを、前記端末に送信する送信部と、を具備することを特徴とする。 That is, the program distribution device according to the present embodiment can be executed in the execution environment of the terminal from the management unit that manages the source code using different programming languages for one program based on the language information of the terminal. A source code acquisition unit that specifies a programming language to be used and acquires the source code using the programming language from the management unit, and when the programming language used is a compilation language, the source code is obtained in the execution environment. The conversion unit that converts to an executable executable format file, the source code if the programming language used is a script language, and the executable format file if the programming language used is the compilation language. It is characterized by including a transmission unit for transmitting to a terminal.
すなわち、本実施の形態に係るプログラム配信方法は、端末の使用言語情報に基づき、前記端末の実行環境で実行可能な使用プログラミング言語を特定し、一つのプログラムに対し、異なるプログラミング言語を用いたソースコードを管理する管理部から前記使用プログラミング言語を用いた前記ソースコードを取得する工程と、前記使用プログラミング言語がコンパイル言語である場合、前記ソースコードを前記実行環境で実行可能な実行可能形式ファイルに変換する工程と、前記使用プログラミング言語がスクリプト言語である場合は前記ソースコードを、前記使用プログラミング言語が前記コンパイル言語である場合は前記実行可能形式ファイルを、前記端末に送信する工程と、を具備することを特徴とする。 That is, in the program distribution method according to the present embodiment, the programming language used that can be executed in the execution environment of the terminal is specified based on the language information used by the terminal, and a source using a different programming language is used for one program. The process of acquiring the source code using the programming language used from the management unit that manages the code, and when the programming language used is a compilation language, the source code is converted into an executable file that can be executed in the execution environment. It includes a step of converting and a step of transmitting the source code when the programming language used is a script language, and the executable format file when the programming language used is the compilation language to the terminal. It is characterized by doing.
また、本発明者らは、さらに検討を加えた結果、端末の実行環境情報に基づいて、端末の実行環境と同等の検証環境を構築し、検証環境上でのソースコード又は実行可能形式ファイルを実行し、プログラムの検証を行うにより、配信前に実行環境と同等の検証環境下で検証を行った上でプログラムを配信することを想到するに至った。 In addition, as a result of further studies, the present inventors have constructed a verification environment equivalent to the execution environment of the terminal based on the execution environment information of the terminal, and created the source code or the executable file on the verification environment. By executing and verifying the program, we came up with the idea of distributing the program after verifying it in the same verification environment as the execution environment before distribution.
以下、図1〜図14を参照して、本実施の形態に係るプログラム配信装置及びプログラム配信方法について詳細に説明する。以下の説明では、本発明のプログラムとして、アプリケーションプログラムを例に挙げるが、これに特に限定されず、システムプログラムであってもよい。 Hereinafter, the program distribution device and the program distribution method according to the present embodiment will be described in detail with reference to FIGS. 1 to 14. In the following description, an application program will be taken as an example of the program of the present invention, but the program is not particularly limited to this and may be a system program.
<第1の実施形態>
(システム)
図1は、第1の実施形態に係るプログラム配信システムを示す全体構成図である。図1に示すプログラム配信システム1は、プログラム配信サーバ11と、ネットワーク12と、複数の端末13a〜13nと、で構成されている。
<First Embodiment>
(system)
FIG. 1 is an overall configuration diagram showing a program distribution system according to the first embodiment. The
プログラム配信サーバ11は、ネットワーク12を介して、端末13a〜13nにアプリケーションプログラムを配信する情報処理装置である。
The
端末13a〜13nは、プログラム配信サーバ11から配信されたアプリケーションプログラムを実行する情報処理装置である。端末13a〜13nは、例えば、携帯電話、スマートフォン、タブレット型端末などの携帯端末(移動通信端末)、又は、パーソナルコンピュータ(PC:Personal Computer)などの固定通信端末であってもよい。
The
ネットワーク12は、インターネット、モバイルネットワーク、LAN(Local Area Network)、WAN(Wide Area Network)などの様々なネットワークを含む。なお、ネットワークは、無線、有線又はこれらの組み合わせで構成されてもよい。例えば、無線通信方式としては、Bluetooth(登録商標)、無線LAN(例えば、IEEE802.11規格に準拠)、LTE(Long Term Evolution)、又はその他の無線通信方式を利用することができる。
The
(プログラム配信サーバ)
図2は、第1の実施形態に係るプログラム配信サーバ11を示す機能ブロック図である。図2に示すように、本発明のプログラム配信装置の一例であるプログラム配信サーバ11は、アーキティクチャ情報取得部101、ソースコード取得部102、コード変換部103及び配信部104で構成されている。
(Program distribution server)
FIG. 2 is a functional block diagram showing the
アーキティクチャ情報取得部101は、ネットワーク12(図1参照)を介して、端末13(図1に示す端末13a〜13nを代表する)からアーキティクチャ情報を取得する処理(以下、「アーキティクチャ情報取得処理」と記載する)を行うように構成されている。アーキティクチャ情報は、端末13を構成するコンピュータの設計思想及び構造に関する情報である。アーキティクチャ情報の詳細は後述する。
The architecture
ソースコード取得部102は、ネットワーク12を介して、プログラム管理サーバ14からソースコードを取得する。
The source
プログラム管理サーバ14は、本発明の管理部の一例であり、一つのアプリケーションプログラムに対し、異なるプログラミング言語を用いたソースコードを記憶している。より具体的には、プログラム管理サーバ14は、ストレージ1003(図8参照)に、ソースコードを、以下の項目を含むレコードを複数格納したデータベースを備えている。
・ソースコードID
・アプリケーションプログラムID
・開発言語ID
・ソースコードファイル
・適合するインタプリタ又は仮想マシンに関する情報
The
・ Source code ID
・ Application program ID
・ Development language ID
-Source code files-Information about compatible interpreters or virtual machines
ソースコードIDは、ソースコードに対してユニークに付与された識別情報である。また、アプリケーションプログラムIDは、アプリケーションプログラムに対してユニークに付与された識別情報である。また、開発言語IDは、ソースコードに用いられているプログラミング言語に対してユニークに付与された識別情報である。これらの識別情報は、シリアルナンバー、英数字の組み合わせからなるコード、文字列のいずれであってもよく、特に限定されない。 The source code ID is identification information uniquely assigned to the source code. The application program ID is identification information uniquely given to the application program. The development language ID is identification information uniquely assigned to the programming language used in the source code. These identification information may be a serial number, a code consisting of a combination of alphanumeric characters, or a character string, and is not particularly limited.
ソースコードファイルは、アプリケーションプログラムのためのソースコードの本体である。ソースコードファイルに代えて、ソースコードファイルの保存場所を示すパスを記憶しておいてもよい。 A source code file is the body of source code for an application program. Instead of the source code file, the path indicating the storage location of the source code file may be stored.
適合するインタプリタ又は仮想マシンに関する情報とは、ソースコードファイルに、スクリプト言語又は仮想マシンを使用するコンパイラ言語が用いられている場合に用いられ、例えば、インタプリタの名称及びバージョン、又は、仮想マシンの名称及びバージョンであるが、特に限定されない。 Information about a compatible interpreter or virtual machine is used when the source code file uses a scripting language or a compiler language that uses the virtual machine, for example, the name and version of the interpreter, or the name of the virtual machine. And the version, but are not particularly limited.
プログラム管理サーバ14は、プログラム配信サーバ11からの要求に応じ、アプリケーションプログラムID及び開発言語IDをキーとして、データベースを参照し、ソースコードファイルを検索し、プログラム配信サーバ11に送信することができる。また、ソースコードファイルを検索した結果、該当するものがなかった場合には、その旨を示す通知を送信することができる。
In response to a request from the
コード変換部103は、本発明の変換部の一例であり、ソースコードファイルを実行可能形式ファイルに変換する処理(以下、「コード変換処理」と記載する)を行うように構成されている。コード変換処理の詳細については、後述する。
The
配信部104は、本発明の送信部の一例であり、ネットワーク12(図2参照)を介して、実行可能形式ファイル又はソースコードファイルを、端末13に送信する処理(以下、「配信処理」と記載する)を行うように構成されている。
The
(端末)
図3は、第1の実施形態に係る端末13を示す機能ブロック図である。図3A〜図3Cに示す端末13A、13B、13Cは、実行環境が異なる点で相違する。まず図3Aを参照して、端末13A、13B、13Cに共通する構成について説明する。図3B、図3Cにおいて、図3Aに示す端末13Aと同じ構成については同一の符号を付与し、説明を省略する。
(Terminal)
FIG. 3 is a functional block diagram showing the terminal 13 according to the first embodiment. The
図3Aに示すように、端末13Aは、アプリケーションプログラムを実行するための実行環境として、ハードウェア(HW)21、及び、オペレーションシステム(OS)22を備えている。また、アーキティクチャ情報23が、ストレージ1003(図8参照)に記憶されている。
As shown in FIG. 3A, the
図3Aに示す端末13Aは、プログラミング言語がC言語である実行環境を備えている。C言語が用いられたアプリケーションプログラム(以下、「Cアプリ」と記載する)24は、OS22上で実行可能である。
The terminal 13A shown in FIG. 3A has an execution environment in which the programming language is C language. The application program (hereinafter, referred to as “C application”) 24 in which the C language is used can be executed on the
図3Bに示す端末13Bは、使用するプログラミング言語がPythonである実行環境を備えている。Python言語が用いられたアプリケーションプログラム(以下、「Pythonアプリ」と記載する)25は、OS22により実行されるインタプリタ(以下、「Pythonインタプリタ」と記載する)26により実行可能である。
The terminal 13B shown in FIG. 3B has an execution environment in which the programming language used is Python. The application program (hereinafter, referred to as “Python application”) 25 using the Python language can be executed by the interpreter (hereinafter, referred to as “Python interpreter”) 26 executed by the
図3Cに示す端末13Cは、使用するプログラミング言語がJavaである実行環境を備えている。Java言語が用いられたアプリケーションプログラム(以下、「Javaアプリ」と記載する)27は、OS22により実行される仮想マシン(以下、「Java VM」と記載する)28により実行可能である。
The terminal 13C shown in FIG. 3C has an execution environment in which the programming language used is Java. The application program (hereinafter, referred to as “Java application”) 27 using the Java language can be executed by the virtual machine (hereinafter, referred to as “Java VM”) 28 executed by the
(アーキティクチャ情報)
図4は、第1の実施形態に係る端末13A、13B、13Cのアーキティクチャ情報を示す説明図である。
(Architecture information)
FIG. 4 is an explanatory diagram showing the architecture information of the
図4に示すように、アーキティクチャ情報は、インストールアプリケーション情報と、エンジニアリング情報と、を含む。インストールアプリケーション情報は、本発明の実行環境情報の一例であり、端末13A、13B、13Cにインストールされているアプリケーションプログラムに関する情報であり、例えば、アプリケーションプログラムが行う処理内容情報(例えば、計測処理、演算処理、入力処理、出力処理)、アプリケーションプログラムのバージョン情報を含む。
As shown in FIG. 4, the architecture information includes installation application information and engineering information. The installed application information is an example of the execution environment information of the present invention, and is information about an application program installed in the
また、エンジニアリング情報は、本発明の使用言語情報の一例である開発言語、本発明の実行環境情報の一例であるインタプリタ情報(名称及びバージョン)、コンパイル条件及びリンク条件を含む。 In addition, the engineering information includes a development language which is an example of the language information used in the present invention, an interpreter information (name and version) which is an example of the execution environment information of the present invention, a compilation condition, and a link condition.
(プログラム配信方法)
以下、上述のような構成からなるプログラム配信システム1におけるプログラム配信方法について説明する。図5は、第1の実施形態に係るプログラム配信サーバ11が行う各処理を示すフローチャートである。
(Program distribution method)
Hereinafter, the program distribution method in the
図5に示すように、アーキティクチャ情報取得部101(図2参照)は、端末13に、ネットワーク12を介して、接続要求を送信する(S1)。 As shown in FIG. 5, the architecture information acquisition unit 101 (see FIG. 2) transmits a connection request to the terminal 13 via the network 12 (S1).
次に、アーキティクチャ情報取得部101は、端末13からアーキティクチャ情報を受信できたか否か判定する(S2)。S2において判定がNoであった場合、異常として終了する(S3)。一方、S2において判定がYesであった場合、ソースコード取得部102(図2参照)は、プログラム管理サーバ14からソースコードファイルを取得する(S4)。
Next, the architecture
具体的には、ソースコード取得部102は、取得要求を、プログラム管理サーバ14に送信する。取得要求は、S1の接続要求に応じて端末13から送信されたアーキティクチャ情報(図4参照)に含まれる開発言語に対応する開発言語ID、及び、配信対象のアプリケーションプログラムに対応するアプリケーションプログラムIDを含む。プログラム管理サーバ(図2参照)は、取得要求に含まれる開発言語ID及びアプリケーションプログラムIDをキーとして、データベースを検索し、検索されたソースコードファイルを、ソースコード取得部102に送信する。
Specifically, the source
なお、ソースコードファイルの取得の要否は、ソースコード取得部102が、アーキティクチャ情報に含まれるインストールアプリケーション情報に基づいて判定することができる。具体的には、端末13にインストールされていないアプリケーションプログラムがあったとき、又は、インストール済みのアプリケーションプログラムのバージョンが古いときに、ソースコードファイルの取得を行うと判定することができる。このような判定により、アプリケーションプログラムの配信の要否を決めることができる。
The source
次に、コード変換部103(図2参照)が、取得されたソースコードファイルを必要に応じて適切な形式に変換するコード変換処理を実行する(S5)。 Next, the code conversion unit 103 (see FIG. 2) executes a code conversion process for converting the acquired source code file into an appropriate format as needed (S5).
(コード変換処理)
図6は、第1の実施の形態に係るプログラム配信サーバ11におけるコード変換処理の各工程を示すフローチャートである。図6に示すように、まず、コード変換部103(図2参照)は、開発言語IDに基づいて、ソースコードファイルに用いられているプログラム言語(以下、「使用プログラミング言語」と記載する)が、C言語か否か判定する(S10)。
(Code conversion process)
FIG. 6 is a flowchart showing each step of the code conversion process in the
S10における判定がYesであった場合、コード変換部103は、コンパイル・リンク処理を実施する(S11)。コンパイル・リンク処理の詳細については後述する。次いで、コード変換部103は、コンパイル・リンク処理を正常に終了できたか否か判定する(S12)。S12において判定がNoであった場合、異常として終了する(S13)。S12において判定がYesであった場合、コンパイル・リンク処理で生成された実行可能形式ファイルから配信のためのパッケージを作成する(S14)。その後、コード変換処理を正常に終了する(S15)。
If the determination in S10 is Yes, the
一方、S10における判定がNoであった場合、コード変換部103は、開発言語IDに基づいて、使用プログラミング言語がPythonであるか否か判定する(S16)。
On the other hand, when the determination in S10 is No, the
S16における判定がYesであった場合、コード変換部103は、Phthonインタプリタのバージョンチェック処理を実施する(S17)。バージョンチェック処理の詳細については後述する。次いで、コード変換部103は、バージョンチェック処理を正常に終了できたか否か判定する(S18)。S18において判定がNoであった場合、異常として終了する(S19)。S18において判定がYesであった場合、ソースコードファイルからパッケージを作成する(S14)。その後、コード変換処理を正常に終了する(S15)。
If the determination in S16 is Yes, the
一方、S16における判定がNoであった場合、コード変換部103は、開発言語IDに基づいて、使用プログラミング言語がJavaであるか否か判定する(S20)。
On the other hand, when the determination in S16 is No, the
S20における判定がYesであった場合、コード変換部103は、バイトコード変換処理を実施する(S21)。バイトコード変換処理の詳細については後述する。次いで、コード変換部103は、バイトコード変換処理を正常に終了できたか否か判定する(S22)。S22において判定がNoであった場合、異常として終了する(S23)。S22において判定がYesであった場合、生成されたバイトコードファイルからパッケージを作成する(S14)。その後、コード変換処理を正常に終了する(S15)。一方、S20における判定がNoであった場合、コード変換部103は、異常として終了する(S23)。
If the determination in S20 is Yes, the
図5に戻り、コード変換処理(S5)が正常に終了したならば、配信部104は、パッケージを端末13(図2参照)に配信する(S6)。次いで、配信部104は、パッケージを受信した端末13からの配信されたアプリケーションプログラムを起動した結果(OK又はNG)を受信し、アプリ起動が成功したか否か判定する(S7)。S7における判定がYesであった場合、配信部104は、正常に処理を終了する(S8)。S7における判定がNoであった場合、配信部104は、異常として終了する(S9)。
Returning to FIG. 5, when the code conversion process (S5) is completed normally, the
(C言語コンパイル・リンク処理)
図6に示すコンパイル・リンク処理(S11)の詳細について説明する。コンパイル・リンク処理(S11)は、コード変換部103(図2参照)に含まれるコンパイラ及びリンカにより行われる。コンパイラ及びリンカは、当業者であればその名称から容易に理解できるであろう。
(C language compilation / link processing)
The details of the compile / link process (S11) shown in FIG. 6 will be described. The compilation / link processing (S11) is performed by the compiler and linker included in the code conversion unit 103 (see FIG. 2). Compilers and linkers will be easily understood by those skilled in the art by their names.
コンパイラによるコンパイルは、アーキティクチャ情報の、エンジニアリング情報に含まれるコンパイル条件に従って行われる。コンパイル条件は、例えば、プロセッサ名、コンパイラソフトウェア名、バージョン、メーカ名及びコンパイルオプションであるが、特に限定されない。 Compilation by the compiler is performed according to the compilation conditions included in the engineering information of the architecture information. The compilation conditions are, for example, a processor name, a compiler software name, a version, a manufacturer name, and compilation options, but are not particularly limited.
また、リンカによるリンクは、アーキティクチャ情報の、エンジニアリング情報に含まれるリンク条件に従って行われる。リンク条件は、例えば、リンカソフトウェア名、バージョン、メーカ名及びリンクオプションであるが、特に限定されない。 In addition, the link by the linker is performed according to the link condition included in the engineering information of the architecture information. The link conditions are, for example, the linker software name, version, manufacturer name, and link option, but are not particularly limited.
S11で、端末13A(図3A参照)から取得したアーキティクチャ情報のエンジニアリング情報内のコンパイル条件とリンク条件を使用することで、端末13Aに適合した実行可能形式のバイナリコードファイル(実行可能形式ファイル)が生成できる。
By using the compile condition and the link condition in the engineering information of the architecture information acquired from the
より具体的には、コンパイル条件を参照し、コンパイラソフトウェア名、バージョン及びメーカ名が一致するコンパイラを準備し、プロセッサ名とコンパイルオプションを指定して、コンパイルを実行する。 More specifically, refer to the compilation conditions, prepare a compiler with the same compiler software name, version, and manufacturer name, specify the processor name and compilation options, and execute compilation.
また、リンクは、リンク条件を参照し、リンカソフト名及びバージョンが一致するリンカを準備して、リンクオプションを指定して、リンクを実行する。その後、図6のS14において、コンパイルとリンク後のバイナリーコード化された実行可能形式ファイルを、配信パッケージ化する。 For the link, refer to the link condition, prepare a linker with the same linker software name and version, specify the link option, and execute the link. Then, in S14 of FIG. 6, the binary-coded executable file after compilation and linking is packaged for distribution.
(Pythonバージョンチェック処理)
Python言語のインタプリタ上で動作するプログラム(ソースコードファイル)は、インタプリタのバージョンによって使用できるライブラリや関数が追加及び廃止があるので、一致させておかないと、端末でプログラムを動作させることができない。そこで、プログラム管理サーバ14のデータベースにあるPython言語で記述されたプログラムが、端末13B(図3B参照)に実装されているインタプリタ26で動作するバージョンか否かを確認することが好ましい。
(Python version check process)
Programs (source code files) that run on the Python language interpreter have additional and abolished libraries and functions that can be used depending on the version of the interpreter, so the programs cannot be run on the terminal unless they are matched. Therefore, it is preferable to confirm whether or not the program written in the Python language in the database of the
このため、Pythonバージョンチェック処理(S17)において、エンジニアリング情報(図4参照)内のインタプリタ名及びインタプリタバージョンが、プログラム管理サーバ14からソースコード取得部102が取得したソースコードファイルのものと一致するか否かを確認する。
Therefore, in the Python version check process (S17), does the interpreter name and interpreter version in the engineering information (see FIG. 4) match those of the source code file acquired by the source
本実施の形態では、一致しない場合(S18における判定でNo)に異常として終了している(S19)が、これに限定されない。例えば、ソースコード取得部102が取得したソースコードファイルに適合するインタプリタを、ソースコードファイルと共に配信パッケージ化し、端末13Bに配信してもよい。
In the present embodiment, if they do not match (No in the determination in S18), the process ends as an abnormality (S19), but the present invention is not limited to this. For example, an interpreter matching the source code file acquired by the source
(Java言語のバイトコード変換処理)
Java言語の仮想マシン(Java VM)上で動作するバイトコードが用いられたプログラム(バイトコードファイル又は中間言語ファイル)は、仮想マシンのバージョンによって使用できるライブラリや関数が追加及び廃止があるので、一致させておかないと、端末でプログラムを動作させることができない。そこで、プログラム管理サーバ14のデータベースにあるJava言語で記述されたソースコードファイルが、端末13C(図3C参照)に実装されているJava VM28で動作するバージョンか否かを確認することが好ましい。
(Java language bytecode conversion process)
Programs (bytecode files or intermediate language files) that use bytecode that runs on the Java language virtual machine (Java VM) match because the libraries and functions that can be used are added or abolished depending on the virtual machine version. If you do not, you will not be able to run the program on the terminal. Therefore, it is preferable to confirm whether or not the source code file described in the Java language in the database of the
このため、バイトコード変換処理(S21参照)において、エンジニアリング情報(図4参照)内の仮想マシン名及びバージョンが、プログラム管理サーバ14からソースコード取得部102が取得したソースコードファイルのものと一致するか否かを確認する。
Therefore, in the bytecode conversion process (see S21), the virtual machine name and version in the engineering information (see FIG. 4) match those of the source code file acquired by the source
本実施の形態では、一致しない場合(S22における判定でNo)に異常として終了している(S23)が、これに限定されない。例えば、ソースコード取得部102が取得したソースコードファイルに適合する仮想マシンを、ソースコードファイルと共に配信パッケージ化し、端末13Cに配信してもよい。
In the present embodiment, if they do not match (No in the determination in S22), the process ends as an abnormality (S23), but the present invention is not limited to this. For example, a virtual machine matching the source code file acquired by the source
バージョンチェックが完了したならば、コード変換部103は、Java言語が用いられたソースコードファイルをコンパイルし、バイトコードを生成する。
When the version check is completed, the
(プログラム配信サーバと端末とのデータトランザクション)
図7は、第1の実施形態に係るプログラム配信サーバ11と端末13との間のデータトランザクションを示すシーケンス図である。図7に示すように、まず、プログラム配信サーバ11(図2参照)のアーキティクチャ情報取得部101が、端末13へ「接続要求」を送信する(S101)。端末13は、アプリケーションプログラムを受入れ可能としたときに、レスポンス「OK」をプログラム配信サーバ11へ返信する(S102)。ここで、受け入れ可能とは、通信をプログラム配信だけに使用し、他になにも通信していない状態をいう。例えば、端末13において、プログラム配信に関係がないアプリケーションが通信をしていない状態を含む。
(Data transaction between program distribution server and terminal)
FIG. 7 is a sequence diagram showing a data transaction between the
次に、端末13は、記憶部(不図示)に記憶する「アーキティクチャ情報」を、プログラム配信サーバ11へ送信する(S103)。これに対し、プログラム配信サーバ11のアーキティクチャ情報取得部101は、アーキティクチャ情報の受信が完了すると、端末13にレスポンス「OK」を送信する(S104)。また、プログラム配信サーバ11は、アーキティクチャ情報を受信できなかった場合や、不明な応答を受け取った場合は、タイムアウトで異常終了する。
Next, the terminal 13 transmits the "architecture information" stored in the storage unit (not shown) to the program distribution server 11 (S103). On the other hand, the architecture
次に、プログラム配信サーバ11の配信部104は、端末13に対し、パッケージ配信を行う(S105)。端末13は、パッケージを受信してプログラムの書換えを完了すると、レスポンス「OK」を返信する(S106)。プログラムの書換えとは、プログラムの配信を受けた端末13が、パッケージを読み解き、チェックコードにより正しく受信できたかをチェックし、機器の記憶部(例えば、ROM)に新しいアプリケーションを記録することをいう。
Next, the
次に、プログラム配信サーバ11の配信部104は、配信したアプリケーションプログラムを起動するために、「アプリ起動」を端末13へ送信する(S107)。端末13は、アプリケーションプログラムを正常に起動したならば、レスポンス「OK」を返信する(S108)。
Next, the
図7を参照して説明したプログラム配信サーバ11と端末13との間のデータトランザクションは一例に過ぎず、順番等を適宜変更することができる。
The data transaction between the
(サーバの構成)
次に、図8を参照して、プログラム配信サーバ11(図2参照)、プログラム管理サーバ14のようなサーバ(以下、単に「サーバ」と記載する)を実現するためのコンピュータ装置のハードウェア構成について説明する。図8は、第1の実施形態に係るサーバを実現するためのコンピュータ装置のハードウェア構成を示すブロック図である。
(Server configuration)
Next, with reference to FIG. 8, the hardware configuration of the computer device for realizing a server such as the program distribution server 11 (see FIG. 2) and the program management server 14 (hereinafter, simply referred to as “server”). Will be described. FIG. 8 is a block diagram showing a hardware configuration of a computer device for realizing the server according to the first embodiment.
第1の実施形態の説明に用いた図2は、機能単位のブロックを示している。これらの機能ブロック(構成部)は、ハードウェア及び/又はソフトウェアの任意の組み合わせによって実現される。また、各機能ブロックの実現手段は特に限定されない。すなわち、各機能ブロックは、物理的に結合した1つの装置により実現されてもよいし、物理的に分離した2つ以上の装置を有線又は無線で接続し、これら複数の装置により実現されてもよい。 FIG. 2 used in the description of the first embodiment shows a block of functional units. These functional blocks (components) are realized by any combination of hardware and / or software. Further, the means for realizing each functional block is not particularly limited. That is, each functional block may be realized by one physically connected device, or may be realized by connecting two or more physically separated devices by wire or wirelessly and these plurality of devices. Good.
例えば、第1の実施形態におけるサーバは、本発明のプログラム配信方法の各工程を実施するコンピュータとして機能してもよい。図8に示すサーバ1000は、物理的には、プロセッサ1001、メモリ1002、ストレージ1003、通信装置1004、入力装置1005、出力装置1006、バス1008などを含むコンピュータ装置として構成されてもよい。
For example, the server in the first embodiment may function as a computer that implements each step of the program distribution method of the present invention. The
なお、以下の説明では、「装置」という文言は、回路、デバイス、ユニットなどに読み替えることができる。サーバ1000などのハードウェア構成は、図に示した各装置を1つ又は複数含むように構成されてもよいし、一部の装置を含まずに構成されてもよい。
In the following description, the word "device" can be read as a circuit, a device, a unit, or the like. The hardware configuration of the
例えば、プロセッサ1001は1つだけ図示されているが、複数のプロセッサがあってもよい。また、処理は、1のプロセッサで実行されてもよいし、処理が同時に、逐次に、又はその他の手法で、1以上のプロセッサで実行されてもよい。
For example, although only one
プログラム配信サーバ11、プログラム管理サーバ14などにおける各機能は、プロセッサ1001、メモリ1002などのハードウェア上に所定のソフトウェア(プログラム)を読み込ませることで、プロセッサ1001が演算を行い、通信装置1004による通信や、メモリ1002及びストレージ1003におけるデータの読み出し及び/又は書き込みを制御することで実現される。
For each function of the
プロセッサ1001は、例えば、オペレーティングシステムを動作させてコンピュータ全体を制御する。プロセッサ1001は、周辺装置とのインターフェース、制御装置、演算装置、レジスタなどを含む中央処理装置(CPU:Central Processing Unit)で構成されてもよい。なお、上述のアーキティクチャ情報取得部101、ソースコード取得部102、コード変換部103及び配信部104などの各部は、プロセッサ1001で実現されてもよい。プロセッサ1001は、1以上のチップで実装されてもよい。
また、プロセッサ1001は、プログラム(プログラムコード)、ソフトウェアモジュールやデータを、ストレージ1003及び/又は通信装置1004からメモリ1002に読み出し、これらに従って各種の処理を実行する。プログラムとしては、上述の実施形態で説明した動作の少なくとも一部をコンピュータに実行させるプログラムが用いられる。例えば、アーキティクチャ情報取得部101、ソースコード取得部102、コード変換部103及び配信部104は、メモリ1002に格納され、プロセッサ1001で動作する制御プログラムによって実現されてもよく、他の機能ブロックについても同様に実現されてもよい。
Further, the
メモリ1002は、コンピュータ読み取り可能な記録媒体であり、例えば、ROM(Read Only Memory)、EPROM(Erasable Programmable ROM)、EEPROM(Electrically EPROM)、RAM(Random Access Memory)、その他の適切な記憶媒体の少なくとも1つで構成されてもよい。メモリ1002は、レジスタ、キャッシュ、メインメモリ(主記憶装置)などと呼ばれてもよい。メモリ1002は、本発明の一実施形態に係るプログラム配信方法を実施するために実行可能なプログラム(プログラムコード)、ソフトウェアモジュールなどを保存することができる。
The
ストレージ1003は、コンピュータ読み取り可能な記録媒体であり、例えば、フレキシブルディスク、フロッピー(登録商標)ディスク、光磁気ディスク(例えば、コンパクトディスク(CD−ROM(Compact Disc ROM)など)、デジタル多用途ディスク、Blu−ray(登録商標)ディスク)、リムーバブルディスク、ハードディスクドライブ、スマートカード、フラッシュメモリデバイス(例えば、カード、スティック、キードライブ)、磁気ストライプ、データベース、サーバ、その他の適切な記憶媒体の少なくとも1つで構成されてもよい。ストレージ1003は、補助記憶装置と呼ばれてもよい。
The
通信装置1004は、有線及び/又は無線ネットワークを介してコンピュータ間の通信を行うためのハードウェア(送受信デバイス)であり、例えばネットワークデバイス、ネットワークコントローラ、ネットワークカード、通信モジュールなどともいう。
The
入力装置1005は、外部からの入力を受け付ける入力デバイス(例えば、キーボード、マウスなど)である。出力装置1006は、外部への出力を実施する出力デバイス(例えば、ディスプレイ、スピーカーなど)である。なお、入力装置1005及び出力装置1006は、一体となった構成(例えば、タッチパネル)であってもよい。サーバ1000は、入力装置1005及び出力装置1006を備えていてなくてもよい。
The
また、プロセッサ1001やメモリ1002などの各装置は、情報を通信するためのバス1008で接続される。バス1008は、単一のバスで構成されてもよいし、装置間で異なるバスで構成されてもよい。
Further, each device such as the
また、サーバ1000は、マイクロプロセッサ、デジタル信号プロセッサ(DSP:Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)、FPGA(Field Programmable Gate Array)などのハードウェアを含んで構成されてもよく、当該ハードウェアにより、各機能ブロックの一部又は全てが実現されてもよい。例えば、プロセッサ1001は、これらのハードウェアの少なくとも1つで実装されてもよい。
Further, the
なお、上述のようなハードウェア構成からなるコンピュータ装置により、端末13(図2参照)を実現することもできる。 The terminal 13 (see FIG. 2) can also be realized by a computer device having the hardware configuration as described above.
以上説明したように、上記第1の実施形態によれば、一つのアプリケーションプログラムに対し、異なるプログラミング言語を用いたソースコードファイルをプログラム管理サーバ14(図2参照)に用意し、プログラム配信サーバ11は、端末13から取得したアーキテクィチャ情報に含まれる開発言語(使用言語情報)に基づいてソースコードファイルを取得し、開発言語に適合するように、実行可能形式ファイルに変換し、又は、ソースコードファイルのままで、端末13に配信する。これにより、端末13の機能及び性能を落とすことなく、実行環境が異なる端末に同一のプログラムを提供できるという効果を発揮する。
As described above, according to the first embodiment, source code files using different programming languages are prepared in the program management server 14 (see FIG. 2) for one application program, and the
<第2の実施形態>
図9〜図14を参照して、第2の実施形態に係る、検証処理を含むプログラム配信システムについて説明する。以下の説明では、第1の実施形態と相違する点について説明し、同じ点については説明を省略する。また、図1〜図8に用いた符号は、同一の構成又は工程については同一の符号を付して説明を省略する。
<Second embodiment>
The program distribution system including the verification process according to the second embodiment will be described with reference to FIGS. 9 to 14. In the following description, the differences from the first embodiment will be described, and the same points will be omitted. Further, the reference numerals used in FIGS. 1 to 8 are designated by the same reference numerals for the same configuration or process, and the description thereof will be omitted.
第1の実施形態に係るプログラム配信システム1では、図7に示すように、プログラム配信サーバ11から端末13(図2参照)にアプリケーションプログラムを配信した後、端末13にアプリケーションプログラムを起動させ、それが成功したことを示すレスポンス「OK」を受信したことにより、アプリケーションプログラムの検証を行なっている。このため、端末13でのアプリケーションプログラムの検証により、端末13にインストール済みで且つ起動中の他のアプリケーションプログラムとの干渉により、アプリケーションプログラムが起動できなくなるような事象があれば、プログラム配信サーバ11側で異常終了として検知することができる。しかし、端末13でのアプリケーションプログラムの検証は、端末13を異常停止させたり、再起動が必要になったり等の不都合を招くことが懸念される。
In the
そこで、第2の実施形態では、アプリケーションプログラムの配信前に、プログラム配信サーバにおいて、端末13の実行環境と同等の評価環境を構築し、アプリケーションプログラムの検証を行なっている。 Therefore, in the second embodiment, before distribution of the application program, an evaluation environment equivalent to the execution environment of the terminal 13 is constructed on the program distribution server, and the application program is verified.
<アプリケーション検証処理>
図9は、第2の実施形態に係るプログラム配信サーバを示す機能ブロック図である。図9に示すように、プログラム配信サーバ201は、検証環境構築部202及び検証部203をさらに具備する。
<Application verification process>
FIG. 9 is a functional block diagram showing a program distribution server according to the second embodiment. As shown in FIG. 9, the
図10は、第2の実施形態に係るプログラム配信サーバ201が行うアプリケーション検証処理の各工程を示すフローチャートである。プログラム配信サーバ201(図9参照)は、図5〜図7を参照して説明した第1の実施形態に係るプログラム配信サーバ11と同様の処理を行う。しかし、パッケージを配信する(図5中、S6参照)前に、端末13のアーキティクチャ情報に基づいてアプリケーションプログラムの検証環境下での検証(以下、「アプリケーション検証処理」と記載する)を行う点で相違する。
FIG. 10 is a flowchart showing each step of the application verification process performed by the
(検証環境構築処理)
図10に示すように、まず、検証環境構築部202が検証環境構築処理を実施する(S61)。検証環境構築処理(S61)では、プログラム配信サーバ201上に、アーキティクチャ情報に基づいて、端末13(図9参照)と同等の実行環境である検証環境を仮想的に構築する。
(Verification environment construction process)
As shown in FIG. 10, first, the verification
図11は、第2の実施形態に係るプログラム配信サーバ201における検証環境構築処理の各工程を示すフローチャートである。図11に示すように、端末13(図9参照)のうち、評価対象の端末(以下、対象端末と記載する)について、事前に取得しているアーキティクチャ情報を解析し(S81)、対象端末と同等の検証環境が構築可能か否かを判定する(S82)。
FIG. 11 is a flowchart showing each process of the verification environment construction process in the
S82の判定方法は、特に限定されないが、対象端末のアーキティクチャ情報に示された環境を構築できない場合に構築不可と判定し、そうでない場合に構築可能と判断することができる。具体的には、例えば、コンパイラのライセンス期限切れにより、再コンパイルがかけられない場合、及び、開発言語におけるバージョンの差異(例:Java、Pythonのバージョン違い)がある場合が挙げられるが、特に限定されない。 The determination method of S82 is not particularly limited, but it can be determined that the environment indicated in the architecture information of the target terminal cannot be constructed, and that it can be constructed if it is not. Specifically, for example, there are cases where recompilation cannot be performed due to the expiration of the license of the compiler, and there are cases where there is a version difference in the development language (example: Java, Python version difference), but the present invention is not particularly limited. ..
S82において判定がNoであれば、異常として終了する(S83)。S82において判定がYesであれば、検証環境を構築する(S84)。検証環境の構築は、具体的には、以下のようにして行うことができる。 If the determination is No in S82, the process ends as abnormal (S83). If the determination is Yes in S82, a verification environment is constructed (S84). Specifically, the verification environment can be constructed as follows.
検証環境の構築は、仮想化技術(コンテナ型仮想化技術等)、バッチ処理による自動化環境を用いることで実現できる。対象端末のアーキティクチャ情報を基に、プログラム配信サーバ201に格納されているCPUアーキティクチャ(x86、ARM等)、OS(Debian、Ubuntu、CentOS等)、開発言語(Java、Python等)などの仮想環境を構築するためのイメージを取得し、各イメージを基に、対象端末と同様の検証環境を自動構築する。
The construction of the verification environment can be realized by using virtualization technology (container type virtualization technology, etc.) and automation environment by batch processing. CPU architecture (x86, ARM, etc.), OS (Debian, Ubuntu, CentOS, etc.), development language (Java, Python, etc.), etc. stored in the
検証環境の構築を行った後、構築ができたか否かを判定する(S85)。S85における判定がNoであれば、異常として終了する(S86)。一方、S85における判定がYesであれば、図10に示すS62に進む。 After constructing the verification environment, it is determined whether or not the construction has been completed (S85). If the determination in S85 is No, the process ends as abnormal (S86). On the other hand, if the determination in S85 is Yes, the process proceeds to S62 shown in FIG.
S62では、検証部203は、関連アプリケーション(図10中、「関連アプリ」と記載する)がプログラム管理サーバ14から取得可能か否か判定する。
In S62, the
(関連アプリケーション)
関連アプリケーションとは、配信対象のアプリケーションプログラム(以下、対象アプリケーションという)が複数のアプリケーションで構成されるアプリケーション群の一部であった場合、同アプリケーション群を構成するその他のアプリケーションプログラムをいう。
(Related application)
The related application means, when the application program to be distributed (hereinafter referred to as a target application) is a part of an application group composed of a plurality of applications, other application programs constituting the application group.
図12は、第2の実施形態における対象アプリケーションと関連アプリケーションとの関係を示す模式図である。図12中、「加工アプリケーション」を「加工アプリ」、「分析アプリケーション」を「分析アプリ」と記載する。具体的には、図12に示すように、対象端末において、あるデータ(加工データ)を加工する「加工アプリケーション」と、分析する「分析アプリケーション」が存在すると想定する。さらに、「加工アプリケーション」と「分析アプリケーション」はデータフォーマットを共有していると想定する。「分析アプリケーション」は、共有されたデータフォーマットを基に加工データの分析処理を実行するため、「加工アプリケーション」との依存性が発生する。また、「加工アプリケーション」は加工データを「分析アプリケーション」に送信後、「分析アプリケーション」から受信完了の応答を受け取る。 FIG. 12 is a schematic diagram showing the relationship between the target application and the related application in the second embodiment. In FIG. 12, the “processing application” is referred to as a “processing application” and the “analysis application” is referred to as an “analysis application”. Specifically, as shown in FIG. 12, it is assumed that there are a "processing application" for processing a certain data (processing data) and an "analysis application" for analyzing the target terminal. Furthermore, it is assumed that the "processing application" and the "analysis application" share a data format. Since the "analysis application" executes the analysis processing of the processing data based on the shared data format, a dependency with the "processing application" occurs. Further, the "machining application" sends the machining data to the "analysis application" and then receives a reception completion response from the "analysis application".
このように、依存関係にある2つのアプリケーションのうち、一方を対象アプリケーションと、他方を関連アプリケーションと定義する。 In this way, of the two dependent applications, one is defined as the target application and the other is defined as the related application.
S62での判定は、例えば、対象端末のアーキティクチャ情報内の、本発明の実行環境情報の一例であるインストールアプリケーション情報を用いて関連アプリケーションのソースコードファイルをプログラム管理サーバ14のデータベースから検索し、検索結果が得られたか否かで行うことができる。
In the determination in S62, for example, the source code file of the related application is searched from the database of the
S62において判定がNoであった場合、異常として終了する(S63)。S62において判定がYesであった場合、ソースコード取得部102(図9参照)は、関連アプリケーションのソースコードファイルをプログラム管理サーバ14から取得する(S64)。 If the determination is No in S62, the process ends as abnormal (S63). If the determination is Yes in S62, the source code acquisition unit 102 (see FIG. 9) acquires the source code file of the related application from the program management server 14 (S64).
次に、コード変換部103(図9参照)は、関連アプリケーションのソースコードファイルに対し、第1の実施形態と同様に、コード変換処理を実施する(S65)。その後、コード変換処理が正常終了したか否かを判定する(S66)。 Next, the code conversion unit 103 (see FIG. 9) performs a code conversion process on the source code file of the related application in the same manner as in the first embodiment (S65). After that, it is determined whether or not the code conversion process is normally completed (S66).
S66において判定がNoであった場合、異常として終了する(S67)。S66において判定がYesであった場合、検証部203(図9参照)は、関連アプリケーションを検証環境へデプロイする(S68)。ここでデプロイとは、関連アプリケーションを、検証環境上で実行可能な状態に配置することをいう。 If the determination is No in S66, the process ends as an abnormality (S67). If the determination is Yes in S66, the verification unit 203 (see FIG. 9) deploys the related application to the verification environment (S68). Here, deploying means arranging the related application in a state in which it can be executed on the verification environment.
(検証処理)
次いで、検証部203は、検証処理を実施する(S69)。図13は、第2の実施形態に係るプログラム配信サーバ201における検証処理の各工程を示すフローチャートである。図13に示すように、まず、検証部203(図9参照)は、対象アプリケーションの単体検証を実施する(S91)。
(Verification process)
Next, the
単体検証は、具体的には、対象アプリケーション単体での配信予定端末との適合性(CPUアーキティクチャ、OS、開発言語等)の確認を実施する。より具体的には、検証環境構築処理で構築した対象端末と同様の実行環境(CPUアーキティクチャ、OS、開発言語、等)において、対象アプリケーションの実行、実行結果のログ解析を実施する。この出力ログが、プログラム配信サーバ201にてあらかじめ定義されている正常値と一致すれば正常応答と判断する。また、異常の場合にはエラーコードを出力し、プログラム配信サーバ201にあらかじめ定義されているエラーコード表と照らし合わせることで不適合となる原因(CPUアーキティクチャ、OS、開発言語等)を配信前に確認することが可能となる。これにより、配信予定の対象アプリケーションが対象端末の実行環境と同等の環境下で実行可能であることが確認できる。
Specifically, in the unit verification, the compatibility (CPU architecture, OS, development language, etc.) of the target application alone with the terminal to be distributed is confirmed. More specifically, in the same execution environment (CPU architecture, OS, development language, etc.) as the target terminal constructed by the verification environment construction process, the target application is executed and the log analysis of the execution result is performed. If this output log matches the normal value defined in advance in the
次に、対象アプリケーションの単体検証の結果が正常か否かを判定する(S92)。S92における判定がNoである場合、異常であり、エラー出力を行い、処理を終了する(S93)。S92における判定がYesである場合、正常であり、次の接続検証(S94)を行う。 Next, it is determined whether or not the result of the unit verification of the target application is normal (S92). If the determination in S92 is No, it is abnormal, an error is output, and the process ends (S93). If the determination in S92 is Yes, it is normal and the next connection verification (S94) is performed.
(接続検証)
接続検証(S94)では、対象アプリケーションと関連アプリケーションとを接続させ、アプリケーション間の検証を実施する。
(Connection verification)
In connection verification (S94), the target application and the related application are connected, and verification between the applications is performed.
上述のように、対象アプリケーションと関連アプリケーションとは依存性が存在する。接続検証では、その依存する項目において、不一致等の異常がある場合、異常の判定となる。 As described above, there is a dependency between the target application and the related application. In the connection verification, if there is an abnormality such as a mismatch in the dependent items, the abnormality is determined.
具体的には、アプリケーション間における接続・通信におけるプロトコル又は設定の違いなどが挙げられる。 Specific examples include differences in protocols or settings for connection / communication between applications.
図14は、第2の実施形態における対象アプリケーションと関連アプリケーションとの接続における正常及び異常を示す模式図である。図14を参照して、対象アプリケーションを「加工アプリケーション」、関連アプリケーションを「分析アプリケーション」として具体例を説明する。アプリケーション間にて通信を行う場合、同じ通信プロトコルの使用、アプリケーション同士で通信設定(例:port番号等)の相互認識が必要となる。また、「加工アプリケーション」及び「分析アプリケーション」で共有しているデータフォーマットに準じていない場合等においても検証時異常(NG)となる。「加工アプリケーション」及び「分析アプリケーション」間の接続検証時における判定は、図14に示す通り、例えば、通信プロトコル(HTTPとMQTT)の一致又は不一致、データフォーマット(text、JSON)の一致又は不一致に基づいて行うことができる。 FIG. 14 is a schematic diagram showing normality and abnormality in the connection between the target application and the related application in the second embodiment. A specific example will be described with reference to FIG. 14, where the target application is a “machining application” and the related application is an “analysis application”. When communicating between applications, it is necessary to use the same communication protocol and mutual recognition of communication settings (eg, port number, etc.) between applications. In addition, even if the data format shared by the "processing application" and the "analysis application" is not followed, an abnormality (NG) will occur at the time of verification. As shown in FIG. 14, the determination at the time of connection verification between the "processing application" and the "analysis application" is, for example, a match or mismatch of communication protocols (HTTP and MQTT), and a match or mismatch of data formats (text, JSON). Can be done on the basis.
次に、接続検証の結果が正常か否かを判定する(S95)。S95における判定がNoである場合、異常であり、エラー出力を行い、処理を終了する(S96)。S95における判定がYesである場合、正常であり、検証処理を終了し、図10のS70に進む。 Next, it is determined whether or not the result of the connection verification is normal (S95). If the determination in S95 is No, it is abnormal, an error output is performed, and the process ends (S96). If the determination in S95 is Yes, it is normal, the verification process is completed, and the process proceeds to S70 in FIG.
S70では、検証処理の結果が正常か否かを判定する。S70における判定がNoである場合、異常として処理を終了する(S71)。S70における判定がYesである場合、正常であり、アプリケーション検証処理を終了し、対象端末へのパッケージの配信を行う(図5中、S6)。 In S70, it is determined whether or not the result of the verification process is normal. If the determination in S70 is No, the process ends as an abnormality (S71). If the determination in S70 is Yes, it is normal, the application verification process is terminated, and the package is distributed to the target terminal (S6 in FIG. 5).
本実施の形態では、対象端末でのアプリケーションプログラムの起動による検証は必要ないが実施しても構わない。 In the present embodiment, verification by starting the application program on the target terminal is not necessary, but it may be performed.
以上説明したように、上記第2の実施形態によれば、第1の実施形態の同様の効果に加えて、対象端末の実行環境情報(例えば、インストールアプリケーション情報)に基づいて、対象端末の実行環境と同等の検証環境を構築し、検証環境上でのソースコード又は実行可能形式ファイルを実行し、プログラムの検証を行う。これにより、対象端末で使用されるアプリケーションプログラムの管理、検証及び配信をプログラム配信サーバ201で行い、アプリケーションプログラムの開発及びデプロイを短期に、且つ、適切に行うことが可能になる。また、対象端末の実行環境に適合したアプリケーションプログラムを配信前に実行環境とバイナリレベルまで同等の検証環境下で検証を行った上で配信することが可能となるため、品質高いアプリケーションプログラムを提供することができ、対象端末はアプリケーション実行時間及び機能を落とさず、アプリケーションプログラムの実行が可能となる等の効果を奏する。
As described above, according to the second embodiment, in addition to the same effect of the first embodiment, execution of the target terminal based on the execution environment information (for example, installation application information) of the target terminal. Build a verification environment equivalent to the environment, execute the source code or executable file on the verification environment, and verify the program. As a result, the application program used in the target terminal can be managed, verified, and distributed by the
なお、本発明は上記実施形態に限定されず、種々変更して実施することが可能である。上記実施の形態において、添付図面に図示されている構成要素の大きさや形状、機能などについては、これに限定されず、本発明の効果を発揮する範囲内で適宜変更することが可能である。その他、本発明の目的の範囲を逸脱しない限りにおいて適宜変更して実施することが可能である。 The present invention is not limited to the above embodiment, and can be modified in various ways. In the above embodiment, the size, shape, function, and the like of the components shown in the accompanying drawings are not limited to this, and can be appropriately changed within the range in which the effects of the present invention are exhibited. In addition, it can be appropriately modified and implemented as long as it does not deviate from the scope of the object of the present invention.
例えば、上記第1、第2の実施形態では、アプリケーションプログラム(パッケージ)の配信は、プログラム配信サーバ11、201(図2、図9参照)からの要求により行っているが、端末13からの要求により行われてもよい。
For example, in the first and second embodiments, the application program (package) is distributed by the request from the
また、上記第1、第2の実施形態では、ソースコードファイルはプログラム管理サーバ14のデータベースにより管理されているが、プログラム配信サーバ11、201(図2、図9参照)がデータベースを、例えば、ストレージ1003(図8参照)に備え、プログラム管理サーバ14と同様にソースコードファイルを管理させてもよい。すなわち、本発明の管理部は、プログラム配信サーバ11、201(図2、図9参照)が備えていてもよい。
Further, in the first and second embodiments, the source code file is managed by the database of the
また、上記第2の実施形態では、ソースコード取得部(図2、図9参照)がソースコードファイルを取得してから、ソースコードファイルのバージョンチェックを行っているが、ソースコードファイルを取得する前に、プログラム管理サーバ14から適合するインタプリタ又は仮想マシンに関する情報を取得し、バージョンチェックを行なってもよい。
Further, in the second embodiment, the source code acquisition unit (see FIGS. 2 and 9) acquires the source code file and then checks the version of the source code file. However, the source code file is acquired. Before, the information about the matching interpreter or virtual machine may be acquired from the
本発明は、端末の機能及び性能を落とすことなく、実行環境が異なる端末に同一のプログラムを提供できるという効果を奏し、例えば、アプリケーションプログラムの配信及び検証のためのシステムに適用して好適である。 The present invention has an effect that the same program can be provided to terminals having different execution environments without deteriorating the functions and performance of the terminals, and is suitable for application to, for example, a system for distribution and verification of an application program. ..
1 プログラム配信システム
11、201 プログラム配信サーバ(プログラム配信装置)
12 ネットワーク
13(13a〜13c、13n、13A〜13C) 端末
14 プログラム管理サーバ(管理部)
23 アーキティクチャ情報
26 インタプリタ
28 Java VM(仮想マシン)
101 アーキティクチャ情報取得部
102 ソースコード取得部(取得部)
103 コード変換部(変換部)
104 配信部(送信部)
202 検証環境構築部
203 検証部
1000 サーバ
1001 プロセッサ
1002 メモリ
1003 ストレージ
1004 通信装置
1005 入力装置
1006 出力装置
1008 バス
1 Program distribution system 11,201 Program distribution server (program distribution device)
12 Network 13 (13a to 13c, 13n, 13A to 13C)
23
101 Architecture
103 Code conversion unit (conversion unit)
104 Distribution section (transmitter section)
202 Verification
Claims (5)
前記使用プログラミング言語がコンパイル言語である場合、前記ソースコードを前記実行環境で実行可能な実行可能形式ファイルに変換する変換部と、
前記使用プログラミング言語がスクリプト言語である場合は前記ソースコードを、前記使用プログラミング言語が前記コンパイル言語である場合は前記実行可能形式ファイルを、前記端末に送信する送信部と、
を具備することを特徴とするプログラム配信装置。 From the management unit that manages the source code using different programming languages for one program, the programming language used that can be executed in the execution environment of the terminal is specified based on the language information used by the terminal, and the programming language used is defined. A source code acquisition unit that acquires the used source code from the management unit, and
When the programming language used is a compilation language, a conversion unit that converts the source code into an executable file that can be executed in the execution environment, and a conversion unit.
When the programming language used is a script language, the source code is transmitted, and when the programming language used is the compilation language, the executable file is transmitted to the terminal.
A program distribution device characterized by comprising.
前記検証環境上での前記ソースコード又は前記実行可能形式ファイルを実行し、前記プログラムの検証を行う検証部と、
をさらに具備することを特徴とする請求項1に記載のプログラム配信装置。 A verification environment construction unit that builds a verification environment equivalent to the execution environment of the terminal based on the execution environment information of the terminal, and
A verification unit that executes the source code or the executable file in the verification environment and verifies the program.
The program distribution device according to claim 1, further comprising.
前記端末のコンパイル条件及びリンク条件に基づき、前記ソースコードから前記実行可能形式ファイルとしてバイナリコードファイルを生成することを特徴とする請求項1又は請求項2に記載のプログラム配信装置。 The conversion unit includes a compiler and a linker.
The program distribution device according to claim 1 or 2, wherein a binary code file is generated as the executable file from the source code based on the compilation condition and the link condition of the terminal.
前記使用プログラミング言語がコンパイル言語である場合、前記ソースコードを前記実行環境で実行可能な実行可能形式ファイルに変換する工程と、
前記使用プログラミング言語がスクリプト言語である場合は前記ソースコードを、前記使用プログラミング言語が前記コンパイル言語である場合は前記実行可能形式ファイルを、前記端末に送信する工程と、
を具備することを特徴とするプログラム配信方法。 Based on the language information of the terminal, the programming language that can be executed in the execution environment of the terminal is specified, and the programming language used is used from the management unit that manages the source code using different programming languages for one program. The process of acquiring the source code
When the programming language used is a compilation language, the process of converting the source code into an executable file that can be executed in the execution environment, and
When the programming language used is a script language, the source code is transmitted, and when the programming language used is the compilation language, the executable format file is transmitted to the terminal.
A program distribution method characterized by comprising.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019040401A JP7367312B2 (en) | 2019-03-06 | 2019-03-06 | Program distribution device and program distribution method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019040401A JP7367312B2 (en) | 2019-03-06 | 2019-03-06 | Program distribution device and program distribution method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020144580A true JP2020144580A (en) | 2020-09-10 |
JP7367312B2 JP7367312B2 (en) | 2023-10-24 |
Family
ID=72354264
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019040401A Active JP7367312B2 (en) | 2019-03-06 | 2019-03-06 | Program distribution device and program distribution method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7367312B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022022077A (en) * | 2020-09-23 | 2022-02-03 | ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド | Method and device for deploying application, electronic apparatus, readable storage medium, and computer program |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000122871A (en) * | 1998-10-14 | 2000-04-28 | Hitachi Ltd | Application distributing method |
JP2002041465A (en) * | 1999-11-22 | 2002-02-08 | Mitsubishi Electric Corp | Communication system, database server, controller, processing terminal, relay server and manufacturing method of semiconductor device |
JP2013020506A (en) * | 2011-07-12 | 2013-01-31 | Ricoh Co Ltd | Communication device, update method and update program |
JP2014035744A (en) * | 2012-08-10 | 2014-02-24 | Nippon Telegr & Teleph Corp <Ntt> | Verification management device, verification management method, and verification management program |
-
2019
- 2019-03-06 JP JP2019040401A patent/JP7367312B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000122871A (en) * | 1998-10-14 | 2000-04-28 | Hitachi Ltd | Application distributing method |
JP2002041465A (en) * | 1999-11-22 | 2002-02-08 | Mitsubishi Electric Corp | Communication system, database server, controller, processing terminal, relay server and manufacturing method of semiconductor device |
JP2013020506A (en) * | 2011-07-12 | 2013-01-31 | Ricoh Co Ltd | Communication device, update method and update program |
JP2014035744A (en) * | 2012-08-10 | 2014-02-24 | Nippon Telegr & Teleph Corp <Ntt> | Verification management device, verification management method, and verification management program |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022022077A (en) * | 2020-09-23 | 2022-02-03 | ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド | Method and device for deploying application, electronic apparatus, readable storage medium, and computer program |
KR20220040352A (en) * | 2020-09-23 | 2022-03-30 | 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. | Method, device, electronic device and readable storage medium for deploying application |
JP7421511B2 (en) | 2020-09-23 | 2024-01-24 | ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド | Methods and apparatus, electronic devices, readable storage media and computer programs for deploying applications |
KR102648742B1 (en) * | 2020-09-23 | 2024-03-19 | 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. | Method, device, electronic device and readable storage medium for deploying application |
Also Published As
Publication number | Publication date |
---|---|
JP7367312B2 (en) | 2023-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102521081B (en) | Repair destroyed software | |
CN109062617B (en) | Application method of platform supporting multiple types of equipment and mobile terminal | |
US9244709B2 (en) | Automatic recognition of web application | |
KR102485935B1 (en) | Electronic device and operating method thereof | |
US7536599B2 (en) | Methods and systems for validating a system environment | |
US8826307B2 (en) | Extensible private driver interface | |
US20210072971A1 (en) | Method and apparatus for improving runtime performance after application update in electronic device | |
JP2007511816A (en) | Dynamic addressing (DA) using centralized DA manager | |
CN111782523A (en) | Cloud service deployment test method and device, electronic equipment and storage medium | |
CN112182584A (en) | Security verification method and device, electronic equipment and storage medium | |
CN106796521B (en) | API version control independent of product release | |
CN115185550A (en) | Service deployment method, device, computer equipment and storage medium | |
CN112965731B (en) | Method, device, equipment and storage medium for Flutter hot update based on Tinker | |
JP7367312B2 (en) | Program distribution device and program distribution method | |
CN110806891B (en) | Method and device for generating software version of embedded device | |
US9135055B2 (en) | Transparent network substrate system | |
JP2021036370A (en) | Information processing system, information processing device, information processing program, and information processing method | |
CN113672238B (en) | Operation method, device and equipment based on real-time operating system modularized management | |
CN116991427B (en) | Application compiling method and device, computing equipment and storage medium | |
US20230037753A1 (en) | Code Execution Method and Device | |
JP6217078B2 (en) | System configuration management apparatus, system configuration management method, and system configuration management program | |
CN115840617A (en) | Debugging method, system and related device | |
CN115878197A (en) | Starting optimization method, system, chip, device and medium based on device tree | |
CN117130591A (en) | Code generation method, system and related equipment | |
JP2023128865A (en) | Installation support program, installation support device, and installation support method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220214 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20221102 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20221108 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20221223 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230418 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230612 |
|
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: 20230912 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230925 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7367312 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |