JP2013235504A - ソフトウェア配信システム、ソフトウェア配信方法 - Google Patents
ソフトウェア配信システム、ソフトウェア配信方法 Download PDFInfo
- Publication number
- JP2013235504A JP2013235504A JP2012108671A JP2012108671A JP2013235504A JP 2013235504 A JP2013235504 A JP 2013235504A JP 2012108671 A JP2012108671 A JP 2012108671A JP 2012108671 A JP2012108671 A JP 2012108671A JP 2013235504 A JP2013235504 A JP 2013235504A
- Authority
- JP
- Japan
- Prior art keywords
- software
- distribution
- inspection
- inspection program
- computer
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/145—Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
【課題】ソフトウェアが保護されていない状態を短くすることができるソフトウェア配信システムを提供する。
【解決手段】第一の配信装置から、ソフトウェアを受信する第一のソフトウェア受信手段と、第二の配信装置から、前記ソフトウェアを検証するプログラムである検査プログラムを受信する第二のソフトウェア受信手段と、実行形式で記述された前記ソフトウェアと、前記検査プログラムとを合成し、実行するソフトウェア実行手段を有し、前記第二のソフトウェア受信手段は、前記第一のソフトウェア受信手段が前記ソフトウェアを受信したタイミングで前記ソフトウェアに対応する検査プログラムの取得を試み、前記検査プログラムが取得できない場合は、所定の間隔をおいて再試行を繰り返し、前記ソフトウェア実行手段は、前記第二のソフトウェア受信手段が前記検査プログラムを受信したタイミングで、前記ソフトウェアおよび前記検査プログラムを合成する。
【選択図】図1
【解決手段】第一の配信装置から、ソフトウェアを受信する第一のソフトウェア受信手段と、第二の配信装置から、前記ソフトウェアを検証するプログラムである検査プログラムを受信する第二のソフトウェア受信手段と、実行形式で記述された前記ソフトウェアと、前記検査プログラムとを合成し、実行するソフトウェア実行手段を有し、前記第二のソフトウェア受信手段は、前記第一のソフトウェア受信手段が前記ソフトウェアを受信したタイミングで前記ソフトウェアに対応する検査プログラムの取得を試み、前記検査プログラムが取得できない場合は、所定の間隔をおいて再試行を繰り返し、前記ソフトウェア実行手段は、前記第二のソフトウェア受信手段が前記検査プログラムを受信したタイミングで、前記ソフトウェアおよび前記検査プログラムを合成する。
【選択図】図1
Description
本発明は、ソフトウェア配信システムに関する。
近年、インターネットに接続可能な機器がネットワークを通してソフトウェアを取得する形態が普及している。このような機器には、例えばスマートフォンのような携帯端末から、パーソナルコンピュータ、自動車の車載端末といった様々なものがある(これらの端末を以下、クライアント端末と称する)。開発者によって作成されたソフトウェアは、配布を行うためのサーバにアップロードされ、システムによって自動的に、または利用者の操作によってクライアント端末にダウンロードされる。
一方で、悪意のあるソフトウェアや設計ミスを含むソフトウェアがサーバにアップロードされると、当該ソフトウェアをダウンロードしたクライアント端末に動作不良を引き起こしたり、端末内の情報が漏洩するなどといった被害が出る恐れがある。
そこで、ソフトウェアの安全性を確保するため、開発されたソフトウェアの動作テストを認証機関が行い、テストに合格したソフトウェアのみを流通させるという手法がある。特許文献1に記載された発明は、当該手法に関連するアクセス制御方法である。当該発明では、認定機関が、ソフトウェアが安全であると証明する認定情報を生成し、ソフトウェアとともにクライアント端末に送信する。クライアント端末は、当該認定情報に基づいてプログラムへのアクセス許可を決定する。このようにすることで、安全であると認定されていないソフトウェアをクライアント端末上で動作させることができなくなる。
しかしながら、スマートフォンや車載端末といったクライアント端末にはさまざまな実行環境があるため、認証機関の固定された動作テスト環境では十分な動作検証を行うことができない場合がある。例えば、クライアント端末が自動車に車載された情報端末である場合、自動車の様々な走行状態を再現しなければテストが行えないため、完全な動作検証を行うことが難しいという問題がある。
そこで本出願人は、プログラムを実行しながら当該プログラムの動作監視を行うことができるソフトウェア作成方法を提案している(特願2011−214992)。具体的には、監視対象プログラムの入出力状態や変数などが、仕様通りとなっているか検証するための監視プログラムを同時に実行させ、監視対象プログラムの推奨されない動作を検出している。監視対象は、アプリケーションプログラムであってもよいし、オペレーティングシステム(OS)本体であってもよい。
ところで、クライアント端末で動作するソフトウェアは、頻繁に更新(アップデート)される場合が多い。ソフトウェアのアップデートは、セキュリティ対策や不具合の解消、機能追加等のために行われる。ネットワークを通じてソフトウェアやソフトウェアのアップデートを配信する形態に前述の手法を適用しようとした場合、配信対象のプログラムと、当該プログラムに対応する監視プログラムをその都度同時に配布しなければならないと
いう制約がある。
いう制約がある。
すなわち、配布対象のソフトウェアと、対応する監視プログラムをセットで提供しなければ、クライアント端末で動作するソフトウェアが保護されていない状態が生じる可能性がある。例えば、クライアント端末のOSをバージョンアップした際、新しいバージョンのOSに対応する監視プログラムの配布が遅れてしまうと、監視プログラムの配信を受けるまでの間はOSが監視されない状態となってしまうため、もしバージョンアップしたOSに問題のあるコードが含まれていた場合、クライアント端末上で実行されてしまう危険がある。このような場合は、監視プログラムが準備され次第、取得して適用することが望ましい。しかし、従来のソフトウェア配信サービスでは、既に配信したソフトウェアと同時に実行されるべき別のプログラムを後追いで補充することは想定されていない。つまり、利用者が時期を見計らって手動で監視プログラムをダウンロードし、対象ソフトウェアの監視を開始させない限り、ソフトウェアを保護された状態とすることができないという問題があった。
本発明は上記の問題点を考慮してなされたものであり、ソフトウェアが保護されていない状態を短くすることができるソフトウェア配信システムを提供することを目的とする。
本発明に係るソフトウェア配信システムは、ソフトウェアの動作を検証する機能を備えたコンピュータと、前記コンピュータにソフトウェアの配信を行う第一の配信装置と、前記コンピュータに前記ソフトウェアを検証するプログラムである検査プログラムの配信を行う第二の配信装置と、からなるソフトウェア配信システムである。なお第一の配信装置と、第二の配信装置は必ずしも分かれている必要はなく、同一の配信装置であってもよい。
前述した課題を解決するために、前記コンピュータは、前記第一の配信装置から、前記ソフトウェアを受信する第一のソフトウェア受信手段と、前記第二の配信装置から、前記ソフトウェアに対応する前記検査プログラムを受信する第二のソフトウェア受信手段と、実行形式で記述された前記ソフトウェアと、前記検査プログラムとを合成し、実行するソフトウェア実行手段を有し、前記第二のソフトウェア受信手段は、前記第一のソフトウェア受信手段が前記ソフトウェアを受信したタイミングで前記ソフトウェアに対応する検査プログラムの取得を試み、前記検査プログラムが取得できない場合は、所定の間隔をおいて再試行を繰り返し、前記ソフトウェア実行手段は、前記第二のソフトウェア受信手段が前記検査プログラムを受信したタイミングで、前記ソフトウェアおよび前記検査プログラムを合成することを特徴とする。
配信装置から配信されるソフトウェアとは、コンピュータによって実行されるプログラム、もしくはプログラムから呼び出されるライブラリである。配信されるソフトウェアはオペレーティングシステムであってもよいし、アプリケーションプログラムであってもよい。また、配信されるソフトウェアは単独で動作するものである必要はなく、たとえばプログラムから呼び出されるライブラリのみであってもよいし、バイナリコードの差分などであってもよい。
ソフトウェアの配信を受けるコンピュータは、配信装置から新しいソフトウェアを受信したタイミングで、対応する検査プログラムの取得を配信装置に対して要求する。この取得要求は、対応する検査プログラムが得られるまで繰り返し発行される。このように構成することにより、検査プログラムがソフトウェア本体の配信よりも遅れて準備されるようなケースであっても、コンピュータはこれを自動的に取得することができるため、配信されたソフトウェアが保護されていない時間を短くすることができる。
プログラムの合成とは、検査対象のソフトウェアを実行した際に、対応する検査プログラムが同時に実行されるような事前処理を行うことを指す。例えば、検査対象のソフトウェアに検査プログラムを足し合わせ、実行形式の一つのプログラムを生成する。検査プログラムを足し合わせる際には、対応する検査プログラムを自動で実行するようにソフトウェアの処理内容を変更する。このようにすることで、検査対象のソフトウェアと同時に検査プログラムを実行させることが可能となる。この他にも、例えば検査対象のソフトウェアと、対応する検査プログラムとを同時に起動させるためのプログラムを新規に生成してもよい。
クライアント端末側で、配布されたソフトウェアと検査プログラムとを合成することで、ソフトウェアを実行する際は必ず検査プログラムも実行されるようになるため、より強固にソフトウェアを保護できるようになる。
クライアント端末側で、配布されたソフトウェアと検査プログラムとを合成することで、ソフトウェアを実行する際は必ず検査プログラムも実行されるようになるため、より強固にソフトウェアを保護できるようになる。
また、前記第二の配信装置は、配信するソフトウェアのそれぞれ異なる一部の機能に対応する複数の前記検査プログラムを個別に配信することを特徴としてもよい。
例えば、ソフトウェアの特定の機能に不具合が見つかり、当該不具合を解消するためのバージョンアップを行った場合、当該バージョンアップによって解消された不具合に関連する機能のみを監視する検査プログラムを配信する。その他の機能を監視する検査プログラムは既に配信済みであるため、配信を行わない。このようにすることで、検査プログラムのデータサイズを小さくすることができ、検査プログラムの配信時間を短縮することができる。また、検査プログラムを個別に作成することで、検査プログラムを開発して配信するまでの時間を短くすることができる。なお、配信される検査プログラムは、対象機能のみを監視する独立したプログラムであってもよいし、既に配信済みである検査プログラムをアップデートするための差分であってもよい。
また、前記第二のソフトウェア受信手段は、前記第一のソフトウェア受信手段がソフトウェアの受信を行った際、受信した前記ソフトウェアを必要とする他のソフトウェアに対応する検査プログラムを前記第二の配信装置から取得することを特徴としてもよい。
例えば、任意のソフトウェアをアップデートした場合、実行のために当該ソフトウェアを必要とする他のソフトウェアが正常に動作しなくなる可能性がある。これに対応するため、当該他のソフトウェアに対応する検査プログラムを自動で取得するようにすることができる。
また、前記第一および前記第二の配信装置は同一の配信装置であり、前記配信装置は、配信対象のソフトウェアと前記ソフトウェアに対応する検査プログラムとを合成した合成ソフトウェアを生成するソフトウェア合成手段と、前記合成ソフトウェアを前記コンピュータに配信する合成ソフトウェア配信手段をさらに有し、配信対象のソフトウェアに対応する検査プログラムが、前記配信装置に記憶されている場合に、前記ソフトウェア合成手段が、前記配信対象のソフトウェアと前記検査プログラムから合成ソフトウェアを生成し、前記合成ソフトウェア配信手段が、前記合成ソフトウェアを配信することを特徴としてもよい。
このように構成することで、配信対象のソフトウェアに対応する検査プログラムが配信装置上に準備されている場合は、双方を事前に合成して配信することができる。また、ソフトウェアと検査プログラムとを別々に配信することも可能であるため、ソフトウェアの配信段階で、対応する検査プログラムが準備されていない場合は、ソフトウェアを単独で配信することもできる。
なお、本発明は、上記手段の少なくとも一部を含むソフトウェア配信システムとして特定することができる。また、本発明は、上記手段が行う処理の少なくとも一部を含むソフトウェア配信方法として特定することもできる。上記処理や手段は、技術的な矛盾が生じない限りにおいて、自由に組み合わせて実施することができる。
本発明によれば、ソフトウェアが保護されていない状態を短くすることができるソフトウェア配信システムを提供することができる。
(第一の実施形態)
<システム構成>
第一の実施形態に係るソフトウェア配信システムについて説明する。第一の実施形態に係るソフトウェア配信システムは、ネットワーク経由でオペレーティングシステムをアップデートする機能を有したコンピュータ100と、当該コンピュータに対してオペレーティングシステムを配信する配信装置200Aと、当該コンピュータに対してシステム検査コードを配信する配信装置200Bからなる。なお、本実施形態の説明において、システムライブラリとはコンピュータ100を動作させるためのオペレーティングシステムの一部または全部を、システム検査コードとはオペレーティングシステムの動作を監視するための検査プログラムを指す。
<システム構成>
第一の実施形態に係るソフトウェア配信システムについて説明する。第一の実施形態に係るソフトウェア配信システムは、ネットワーク経由でオペレーティングシステムをアップデートする機能を有したコンピュータ100と、当該コンピュータに対してオペレーティングシステムを配信する配信装置200Aと、当該コンピュータに対してシステム検査コードを配信する配信装置200Bからなる。なお、本実施形態の説明において、システムライブラリとはコンピュータ100を動作させるためのオペレーティングシステムの一部または全部を、システム検査コードとはオペレーティングシステムの動作を監視するための検査プログラムを指す。
図1は、本実施形態に係るソフトウェア配信システムのシステム構成図である。コンピュータ100は、CPUと主記憶装置、補助記憶装置(いずれも不図示)を有している。補助記憶装置に記憶されたプログラムが主記憶装置にロードされ、CPUによって実行されることによって図1に図示した各手段が機能する。配信装置200Aまたは200Bもコンピュータによって実現することができるが、配信装置200Aまたは200Bの全部または一部は、専用に設計された回路を用いて実行されてもよい。
まず、コンピュータ100について説明する。コンピュータ100は、システムライブラリ受信部101、検査コード配信要求部102、システム検査コード受信部103、コード合成部104、コード実行部105を有している。コンピュータ100は、パーソナルコンピュータであってもよいし、車載端末や、携帯情報端末などであってもよい。オペレーティングシステムやミドルウェア、ユーザアプリケーション等を含む任意のソフトウェアを実行することができるコンピュータであればよい。
システムライブラリ受信部101は、ネットワーク経由で、更新対象となるシステムライブラリを受信する手段であり、本発明における第一のソフトウェア受信手段である。受信するシステムライブラリには、システムをアップデートする際に必要となる全てのソフトウェアが含まれている。
検査コード配信要求部102は、更新されたシステムに対応するシステム検査コードの
配信を配信装置に要求する手段である。また、システム検査コード受信部103は、検査コード配信要求部102が要求したシステム検査コードを配信装置200Bから受信する手段である。検査コード配信要求部102およびシステム検査コード受信部103が、本発明における第二のソフトウェア受信手段である。
配信を配信装置に要求する手段である。また、システム検査コード受信部103は、検査コード配信要求部102が要求したシステム検査コードを配信装置200Bから受信する手段である。検査コード配信要求部102およびシステム検査コード受信部103が、本発明における第二のソフトウェア受信手段である。
コード合成部104は、受信したシステム検査コードをオペレーティングシステムに合成する手段である。コードの合成は、受信したシステムライブラリに対して行ってもよいし、受信したシステムライブラリを用いてコンピュータが記憶しているオペレーティングシステムをアップデートし、アップデートしたオペレーティングシステムに対して行ってもよい。
コードの合成とは、前述したように検査対象のソフトウェアと、検査プログラムの双方が同時に実行されるような処理を施すことを指す。本実施形態では、アップデートを行ったオペレーティングシステムのコードにシステム検査コードを足し合わせ、オペレーティングシステムの実行と同時にシステム検査コードを実行する処理を付加する。具体的な方法について後述する。
なお、コード合成は、オペレーティングシステムと検査プログラムとを同時に起動させるための処理であれば、必ずしもプログラムを足し合わせる必要はない。例えば、システムの起動と同時に検査プログラムを起動する処理を生成してもよい。
コードの合成とは、前述したように検査対象のソフトウェアと、検査プログラムの双方が同時に実行されるような処理を施すことを指す。本実施形態では、アップデートを行ったオペレーティングシステムのコードにシステム検査コードを足し合わせ、オペレーティングシステムの実行と同時にシステム検査コードを実行する処理を付加する。具体的な方法について後述する。
なお、コード合成は、オペレーティングシステムと検査プログラムとを同時に起動させるための処理であれば、必ずしもプログラムを足し合わせる必要はない。例えば、システムの起動と同時に検査プログラムを起動する処理を生成してもよい。
コード実行部105は、コード合成部104によって合成されたプログラムを実行する手段である。コード合成部104によって足し合わされたプログラムを実行することで、検査対象ソフトウェアの検査を開始する。コード合成部104およびコード実行部105が、本発明におけるソフトウェア実行手段である。
次に、配信装置200Aおよび200Bについて説明する。配信装置200Aが本発明における第一の配信装置であり、配信装置200Bが本発明における第二の配信装置である。
システムライブラリ配信部201は、コンピュータ100上で動作するシステムライブラリを記憶し、コンピュータ100に配信する手段である。記憶され、配信されるシステムライブラリは、前述したようにオペレーティングシステム全体であってもよいし、オペレーティングシステムのアップデートに必要なモジュールのみであってもよい。
システムライブラリ配信部201は、コンピュータ100上で動作するシステムライブラリを記憶し、コンピュータ100に配信する手段である。記憶され、配信されるシステムライブラリは、前述したようにオペレーティングシステム全体であってもよいし、オペレーティングシステムのアップデートに必要なモジュールのみであってもよい。
システム検査コード配信部202は、配信対象のシステムライブラリを監視するためのプログラムであるシステム検査コードを記憶し、コンピュータ100に配信する手段である。システム検査コード配信部202には、システムライブラリ配信部201が配信するシステムライブラリのバージョンと対応するバージョンのシステム検査コードが記憶されるが、必ずしも対応するバージョンのシステム検査コードが記憶されている必要は無い。たとえば、システムの不具合修正を優先するため、システムライブラリの配信を先に行い、システム検査コードは後から記憶させてもよい。
<処理フロー>
本実施形態に係るソフトウェア配信システムが行う処理の詳細を説明する。図2は、コンピュータ100が、配信装置200Aからシステムライブラリを、配信装置200Bからシステム検査コードを受信し、実行モジュールを生成するまでの処理を表したフローチャートである。
本実施形態に係るソフトウェア配信システムが行う処理の詳細を説明する。図2は、コンピュータ100が、配信装置200Aからシステムライブラリを、配信装置200Bからシステム検査コードを受信し、実行モジュールを生成するまでの処理を表したフローチャートである。
まず、システムライブラリ受信部101が、システムライブラリ配信部201に対してシステムライブラリの配信を要求し、配信されたシステムライブラリを受信する(S11)。受信したシステムライブラリは、コード合成部104へ送信される。
次に、検査コード配信要求部102が、システム検査コード配信部202に対して、受
信したシステムライブラリに対応するシステム検査コードの有無を問い合わせる(S12)。具体的には、コンピュータ100に既に記憶されているシステム検査コードのバージョンと、配信を受けたシステムライブラリのバージョンを配信装置に送信し、システム検査コード配信部202が、更新が必要なシステム検査コードがあるかを判断する。
次に、検査コード配信要求部102が、システム検査コード配信部202に対して、受
信したシステムライブラリに対応するシステム検査コードの有無を問い合わせる(S12)。具体的には、コンピュータ100に既に記憶されているシステム検査コードのバージョンと、配信を受けたシステムライブラリのバージョンを配信装置に送信し、システム検査コード配信部202が、更新が必要なシステム検査コードがあるかを判断する。
ステップS12でシステム検査コード配信部202が行う判断の結果は、以下の三種類に分類できる。
(1)システム検査コードを更新する必要があり、適合するバージョンのシステム検査コードが配信できる状態であるため、その旨を通知する
(2)システム検査コードを更新する必要は無いため、その旨を通知する
(3)システム検査コードを更新する必要があるが、配信準備ができていないため、その旨を通知する
システム検査コードの更新が必要であり、配信が可能である場合は、処理はステップS14へ遷移し、配信すべきバージョンのシステム検査コードの配信を開始する。(前記(1)のケース)
また、システムライブラリの機能が大幅に追加・変更されていない場合など、システム検査コードの更新が必要ない場合は、配信不要である旨を応答として返す。この場合、処理は終了する。(前記(2)のケース)
(1)システム検査コードを更新する必要があり、適合するバージョンのシステム検査コードが配信できる状態であるため、その旨を通知する
(2)システム検査コードを更新する必要は無いため、その旨を通知する
(3)システム検査コードを更新する必要があるが、配信準備ができていないため、その旨を通知する
システム検査コードの更新が必要であり、配信が可能である場合は、処理はステップS14へ遷移し、配信すべきバージョンのシステム検査コードの配信を開始する。(前記(1)のケース)
また、システムライブラリの機能が大幅に追加・変更されていない場合など、システム検査コードの更新が必要ない場合は、配信不要である旨を応答として返す。この場合、処理は終了する。(前記(2)のケース)
一方、システムのアップデートを行う場合、不具合解消のために緊急に行うリリースがあり、そのような場合はシステムライブラリの修正が優先され、検査コードの準備が間に合わない場合がある。検査コードの準備ができていない場合は、検査コード配信要求部102から問い合わせがあっても、対応する検査コードのバージョンを応答として返すことができない。このような場合は、システム検査コード配信部202は検査コード配信要求部102に対して、配信準備ができていない旨の応答を返す。この場合、処理はステップS12に戻り、数分から数時間といった間隔をおいたうえで再度の問い合わせを行う。この間隔は任意の時間とすることができる。(前記(3)のケース)
ステップS14では、システム検査コード受信部103が、対応するバージョンのシステム検査コードを受信する。受信が成功した場合(S15−Yes)、受信したシステム検査コードはコード合成部104へ送信される。失敗した場合(S15−No)、所定の時間の後に再試行される。
次に、コード合成部104が、受信したシステムライブラリを用いてオペレーティングシステムの更新を行う。更新が完了すると、コード合成部104がオペレーティングシステムとシステム検査コードとの合成を行う(S16)。実行形式のプログラムコードに別のプログラムコードを足し合わせ、その実行を制御する技術は、たとえば特開2002−229790号公報に記載されている。
より具体的には、検査対象のプログラムの末尾に検査プログラムを付加し、実行ファイルのヘッダに保持されているエントリポイント(実行開始アドレス)を検査プログラムのアドレスに変更する。検査プログラムは、合成されたコードのうち自己を除く部分、すなわち検査対象のプログラムのみを主記憶装置にコピーし、実行させる。このようにすることで、検査対象のプログラムを実行しようとすると、まず検査プログラムが起動し、検査プログラムが検査対象のプログラムを起動するため、双方を同時に実行することができる。
生成した実行モジュールはコード実行部105へ送信され、処理が終了する。コード実行部105によってオペレーティングシステムが実行されると、システム検査コードが起動され、システムの監視が開始される。
第一の実施形態によると、システムをアップデートしたタイミングで、対応する検査コードを配信装置に対して要求する。もし検査コードが準備できていない場合は、取得できるまで定期的に配信要求を繰り返し、取得できたタイミングで検査コードの合成を実施する。このように構成することで、システムが検査コードによって保護されていない時間を最短にすることができる。
(第二の実施形態)
第二の実施形態に係るソフトウェア配信システムは、配信装置がネットワーク経由でアプリケーションプログラムをクライアント端末に配信する形態である。また、第二の実施形態は、検査コードを配信する際に、必要とされる最小限のコードのみを配信する形態である。受信するソフトウェアの種類が異なるのみで、ソフトウェアと検査プログラムを配信するという目的は第一の実施形態と同様である。第一の実施形態と同じ手段については、同じ符号を付して説明を省略する。また、以下で説明するステップ以外の動作は第一の実施形態と同様である。
第二の実施形態に係るソフトウェア配信システムは、配信装置がネットワーク経由でアプリケーションプログラムをクライアント端末に配信する形態である。また、第二の実施形態は、検査コードを配信する際に、必要とされる最小限のコードのみを配信する形態である。受信するソフトウェアの種類が異なるのみで、ソフトウェアと検査プログラムを配信するという目的は第一の実施形態と同様である。第一の実施形態と同じ手段については、同じ符号を付して説明を省略する。また、以下で説明するステップ以外の動作は第一の実施形態と同様である。
図3は、第二の実施形態に係るソフトウェア配信システムのシステム構成図である。
アプリケーション受信部111は、配信装置200Aから配信されるアプリケーションプログラムを受信する手段である。受信するソフトウェアの種類が異なるのみで、処理の内容はシステムライブラリ受信部101と同様である。
検査コード配信要求部112は、更新されたアプリケーションプログラムに対応する検査プログラムであるアプリ検査コードの配信を配信装置200Bに要求する手段である。要求する検査コードの種類が異なるのみで、処理の内容は検査コード配信要求部102と同様である。
アプリ検査コード受信部113は、配信装置200Bから配信されるアプリケーション検査コードを受信する手段である。検査コードが対象とするソフトウェアが異なるのみで、処理の内容はシステム検査コード受信部103と同様である。
コード合成部114は、受信したアプリ検査コードをアプリケーションプログラムに合成する手段である。対象のソフトウェアの種類が異なるのみで、処理の内容はコード合成部104と同様である。
アプリケーション受信部111は、配信装置200Aから配信されるアプリケーションプログラムを受信する手段である。受信するソフトウェアの種類が異なるのみで、処理の内容はシステムライブラリ受信部101と同様である。
検査コード配信要求部112は、更新されたアプリケーションプログラムに対応する検査プログラムであるアプリ検査コードの配信を配信装置200Bに要求する手段である。要求する検査コードの種類が異なるのみで、処理の内容は検査コード配信要求部102と同様である。
アプリ検査コード受信部113は、配信装置200Bから配信されるアプリケーション検査コードを受信する手段である。検査コードが対象とするソフトウェアが異なるのみで、処理の内容はシステム検査コード受信部103と同様である。
コード合成部114は、受信したアプリ検査コードをアプリケーションプログラムに合成する手段である。対象のソフトウェアの種類が異なるのみで、処理の内容はコード合成部104と同様である。
アプリケーション配信部211は、コンピュータ100上で動作するアプリケーションプログラムを記憶し、コンピュータ100に配信する手段である。配信するアプリケーションプログラムは、アプリケーション全体であってもよいし、アップデートに必要なモジュールまたは差分のみであってもよい。配信するソフトウェアの種類が異なるのみで、処理の内容はシステムライブラリ配信部201と同様である。
アプリ検査コード配信部212は、アプリケーションプログラムを監視するためのプログラムであるアプリ検査コードを記憶し、コンピュータ100に配信する手段である。その機能は、第一の実施形態におけるシステム検査コード配信部202と同様であるが、アプリ検査コードを記憶する方法が異なる。システム検査コード配信部202は、配信するシステムライブラリ全体に対応する検査コードを記憶するが、本実施形態におけるアプリ検査コード配信部212は、配信するアプリケーションプログラムが有する機能のうち、一部に対応する検査コードを個別に記憶しているという点で第一の実施形態と異なる。
この点について説明する。ソフトウェアのアップデートは、機能の追加や不具合の解消のために行われる場合が多く、更新されていない機能に対して同一の検査コードを再度送信すると通信帯域を無駄に消費することになる。そこで、検査コードを対応する機能やモジュールに分割して記憶し、アップデートによって変更された部分に対応する検査コードのみを送信する。検査コードの分割は、任意の単位で行うことができる。
第二の実施形態においてコンピュータ100が行う処理内容の、第一の実施形態との差異点は以下の通りである。
ステップS11では、アプリケーション受信部111がアプリケーション配信部211に対してアプリケーションプログラムの配信を要求し、アプリケーションプログラムを受信する。
ステップS12では、受信したアプリケーションプログラムのバージョンに対応するアプリ検査コードの有無を、第一の実施形態と同様の方法でアプリ検査コード配信部212に問い合わせる。配信すべきアプリ検査コードのバージョンが何であるかという情報は、例えば、図4に示したようなテーブル形式でアプリ検査コード配信部212が保持していてもよい。本実施形態では、アプリケーションプログラムの変更された機能に対応する検査コードのみを配信するため、更新前のアプリケーションのバージョンが新しいほど、取得するアプリ検査コードも少なくなる。図4の例の場合、例えば更新前のアプリケーションプログラムのバージョンが1.5であった場合、2.0および2.1というバージョンを持つアプリ検査コードが配信対象となる。
ステップS11では、アプリケーション受信部111がアプリケーション配信部211に対してアプリケーションプログラムの配信を要求し、アプリケーションプログラムを受信する。
ステップS12では、受信したアプリケーションプログラムのバージョンに対応するアプリ検査コードの有無を、第一の実施形態と同様の方法でアプリ検査コード配信部212に問い合わせる。配信すべきアプリ検査コードのバージョンが何であるかという情報は、例えば、図4に示したようなテーブル形式でアプリ検査コード配信部212が保持していてもよい。本実施形態では、アプリケーションプログラムの変更された機能に対応する検査コードのみを配信するため、更新前のアプリケーションのバージョンが新しいほど、取得するアプリ検査コードも少なくなる。図4の例の場合、例えば更新前のアプリケーションプログラムのバージョンが1.5であった場合、2.0および2.1というバージョンを持つアプリ検査コードが配信対象となる。
ステップS13の処理は、第一の実施形態と同様である。
ステップS14では、アプリ検査コード受信部113が、対象のアプリ検査コードを受信する。ステップS15〜16の処理は、第一の実施形態と同様である。
ステップS14では、アプリ検査コード受信部113が、対象のアプリ検査コードを受信する。ステップS15〜16の処理は、第一の実施形態と同様である。
第二の実施形態では、アップデートによって変更された機能やモジュールに対応する検査コードのみを配信するため、検査コードのサイズを抑えることができ、通信帯域の消費を抑えることができるという利点がある。また、検査プログラムの開発規模が小さくなるため、配信の準備が完了するまでの時間を短くすることができる。
(第三の実施形態)
第三の実施形態は、第一の実施形態に係る配信装置に、システムライブラリとシステム検査コードを合成する機能を追加した形態である。システムライブラリの配信を開始する際、対応するシステム検査コードが準備されている場合は、配信装置側でシステム検査コードとシステムライブラリを合成して配信し、準備されていない場合は個別に配信する。第一の実施形態と同じ手段については、同じ符号を付して説明を省略する。また、以下で説明するステップ以外の動作は第一の実施形態と同様である。
第三の実施形態は、第一の実施形態に係る配信装置に、システムライブラリとシステム検査コードを合成する機能を追加した形態である。システムライブラリの配信を開始する際、対応するシステム検査コードが準備されている場合は、配信装置側でシステム検査コードとシステムライブラリを合成して配信し、準備されていない場合は個別に配信する。第一の実施形態と同じ手段については、同じ符号を付して説明を省略する。また、以下で説明するステップ以外の動作は第一の実施形態と同様である。
図5は、第三の実施形態に係るソフトウェア配信システムのシステム構成図である。
システムライブラリ配信部201およびシステム検査コード配信部202の動作は、第一の実施形態と類似しているが、配信対象のシステムライブラリおよびシステム検査コードを、コード合成部203を経由して送信するという点で第一の実施形態と相違する。また、本実施形態においては、システムライブラリを配信する配信装置と、システム検査コードを配信する配信装置は同一の配信装置200である。
システムライブラリ配信部201およびシステム検査コード配信部202の動作は、第一の実施形態と類似しているが、配信対象のシステムライブラリおよびシステム検査コードを、コード合成部203を経由して送信するという点で第一の実施形態と相違する。また、本実施形態においては、システムライブラリを配信する配信装置と、システム検査コードを配信する配信装置は同一の配信装置200である。
コード合成部203は、コード合成部104と同様に、システムライブラリと、システム検査コードとを合成し、ひとつの実行モジュールを生成したのちに、合成されたプログラムをコンピュータ100へ配信する手段である。ただし、コード合成は、システムライブラリの配信を開始する際に、対応するシステム検査コードが配信装置に存在している場合にのみ行われる。対応するシステム検査コードが準備できていない場合は、コード合成は行われず、第一の実施形態と同様の配信を行う。コード合成部203が、本発明におけるソフトウェア合成手段および合成ソフトウェア配信手段である。
第三の実施形態においてコンピュータ100が行う処理内容の、第一の実施形態との差異点は以下の通りである。
ステップS11では、システムライブラリ受信部101がコード合成部203に対してシステムライブラリの配信を要求する。コード合成部203は、要求されたバージョンのシステムライブラリに対応するシステム検査コードが配信装置に記憶されている場合は、当該システムライブラリと、対応するシステム検査コードとを合成し配信する。そうでない場合は、合成を行わずにシステムライブラリのみを配信する。
ステップS11では、システムライブラリ受信部101がコード合成部203に対してシステムライブラリの配信を要求する。コード合成部203は、要求されたバージョンのシステムライブラリに対応するシステム検査コードが配信装置に記憶されている場合は、当該システムライブラリと、対応するシステム検査コードとを合成し配信する。そうでない場合は、合成を行わずにシステムライブラリのみを配信する。
次に、ステップS12では、第一の実施形態と同様に、検査コード配信要求部102が、受信したシステムライブラリに対応するシステム検査コードの有無を配信装置に問い合わせる。ただし、受信したシステムライブラリが配信装置にて合成されたものであった場合、対応するシステム検査コードは既に取得済みであるため、ステップS12〜S16をスキップし、処理を終了させる。
受信したシステムライブラリが配信装置にて合成されていない場合であって、対応するシステム検査コードが配信装置に存在する場合(すなわち、後からシステム検査コードが追加された場合)はステップS14へ遷移し、システム検査コード受信部103がシステム検査コードを取得する。また、受信したシステムライブラリが配信装置にて合成されていない場合であって、対応するシステム検査コードの配信準備ができていない場合、再度ステップS12へ遷移する。ステップS15〜16の処理は第一の実施形態と同様である。
受信したシステムライブラリが配信装置にて合成されていない場合であって、対応するシステム検査コードが配信装置に存在する場合(すなわち、後からシステム検査コードが追加された場合)はステップS14へ遷移し、システム検査コード受信部103がシステム検査コードを取得する。また、受信したシステムライブラリが配信装置にて合成されていない場合であって、対応するシステム検査コードの配信準備ができていない場合、再度ステップS12へ遷移する。ステップS15〜16の処理は第一の実施形態と同様である。
第三の実施形態によると、システムライブラリの配信開始時に、対応するシステム検査コードが準備されている場合は配信装置側でコードを合成し、準備ができていない場合は個別に配信することができる。これにより、クライアント端末の負荷を軽減することが可能になり、かつ、システム検査コードの準備が後回しになるケースにも対応することができる。
(第四の実施形態)
第四の実施形態は、システムライブラリを受信してオペレーティングシステムをアップデートした際に、アプリケーションプログラムに対する検査コードも同時に要求する形態である。
オペレーティングシステムをアップデートした場合、互換性の問題によりアプリケーションプログラムが正常に動作しなくなる場合がある。例えば、アプリケーションにて使用しているAPIの仕様が、オペレーティングシステムのバージョンアップによって変更された場合などである。このような場合、アプリ検査コードが最新のオペレーティングシステムに対応していないと、アプリケーションプログラムがシステム上の制限のために正常に動作しないのか、単なる不具合のため正常に動作しないのかが判別できなくなる。このようなケースに対応するため、アプリケーションに対する最新の検査コードの取得をシステムのアップデートと同時に試みるのが第四の実施形態である。第一の実施形態と同じ手段については、同じ符号を付して説明を省略する。
第四の実施形態は、システムライブラリを受信してオペレーティングシステムをアップデートした際に、アプリケーションプログラムに対する検査コードも同時に要求する形態である。
オペレーティングシステムをアップデートした場合、互換性の問題によりアプリケーションプログラムが正常に動作しなくなる場合がある。例えば、アプリケーションにて使用しているAPIの仕様が、オペレーティングシステムのバージョンアップによって変更された場合などである。このような場合、アプリ検査コードが最新のオペレーティングシステムに対応していないと、アプリケーションプログラムがシステム上の制限のために正常に動作しないのか、単なる不具合のため正常に動作しないのかが判別できなくなる。このようなケースに対応するため、アプリケーションに対する最新の検査コードの取得をシステムのアップデートと同時に試みるのが第四の実施形態である。第一の実施形態と同じ手段については、同じ符号を付して説明を省略する。
図6は、第四の実施形態に係るソフトウェア配信システムのシステム構成図である。
検査コード配信要求部102は、更新されたシステムに対応するシステム検査コードの配信を配信装置200に要求する手段であるが、更新されたシステムに対応するアプリ検査コードの配信を同時に配信装置200に要求するという点で、第一の実施形態と異なる。本実施形態においては、システムライブラリを配信する配信装置と、システム検査コードを配信する配信装置は同一の配信装置200として構成される。
検査コード配信要求部102は、更新されたシステムに対応するシステム検査コードの配信を配信装置200に要求する手段であるが、更新されたシステムに対応するアプリ検査コードの配信を同時に配信装置200に要求するという点で、第一の実施形態と異なる。本実施形態においては、システムライブラリを配信する配信装置と、システム検査コードを配信する配信装置は同一の配信装置200として構成される。
図7は、第四の実施形態に係るコンピュータ100が行う処理のフローチャートである。ステップS11からS16までの処理は、システムを更新するための処理であり、第一の実施形態と同様である。
ステップS11の完了後、検査コード配信要求部102は、第二の実施形態と同様に、
必要なアプリ検査コードの有無を配信装置に問い合わせる(S22)。問い合わせの概要は「更新したシステムのバージョンに対応するアプリ検査コードがあるか」である。すなわち検査コード配信要求部102は、受信したシステムライブラリのバージョンを同時に送信し、記憶している全てのアプリ検査コードについて、更新が必要であるかチェックを行う。
ステップS11の完了後、検査コード配信要求部102は、第二の実施形態と同様に、
必要なアプリ検査コードの有無を配信装置に問い合わせる(S22)。問い合わせの概要は「更新したシステムのバージョンに対応するアプリ検査コードがあるか」である。すなわち検査コード配信要求部102は、受信したシステムライブラリのバージョンを同時に送信し、記憶している全てのアプリ検査コードについて、更新が必要であるかチェックを行う。
ここで、対応するアプリ検査コードの配信準備ができていなかった場合は、検査コード配信要求部102は処理をステップS22に戻し、第一の実施形態と同様の方法で再度の要求を試みる。対応するアプリ検査コードが準備されていた場合、ステップS24で、対応するバージョンの全てのアプリ検査コードを取得する。受信したアプリ検査コードはコード合成部104へ送信され、コード合成が行われる(S26)。なお、複数のアプリ検査コードのうち、一部のみが準備できていた場合、取得可能なものを先に取得してもよい。
このように第四の実施形態では、システムのアップデートと連動して最新のアプリ検査コードを取得する。このようにすることで、オペレーティングシステムのバージョンアップを行った際に、アプリケーションプログラムの監視が正常に行えなくなる事態を防止することができる。
(変形例)
各実施形態の説明は本発明を説明する上での例示であり、本発明は、発明の趣旨を逸脱しない範囲で適宜変更または組み合わせて実施することができる。例えば、第一および第二の実施形態では、ソフトウェアを配信する配信装置と、検査プログラムを配信する配信装置を別の装置としたが、ソフトウェアおよび検査プログラムは同一の配信装置から配信されてもよい。また、第一の実施形態ではオペレーティングシステムに対して検査を行う形態について述べたが、アプリケーションプログラムを検査対象としてもよい。同様に、第二の実施形態ではアプリケーションプログラムに対して検査を行う形態について述べたが、オペレーティングシステムを検査対象としてもよい。また、各実施形態で述べた処理の内容を併用してもよい。
各実施形態の説明は本発明を説明する上での例示であり、本発明は、発明の趣旨を逸脱しない範囲で適宜変更または組み合わせて実施することができる。例えば、第一および第二の実施形態では、ソフトウェアを配信する配信装置と、検査プログラムを配信する配信装置を別の装置としたが、ソフトウェアおよび検査プログラムは同一の配信装置から配信されてもよい。また、第一の実施形態ではオペレーティングシステムに対して検査を行う形態について述べたが、アプリケーションプログラムを検査対象としてもよい。同様に、第二の実施形態ではアプリケーションプログラムに対して検査を行う形態について述べたが、オペレーティングシステムを検査対象としてもよい。また、各実施形態で述べた処理の内容を併用してもよい。
また、各実施形態で述べた検査プログラムは、実行されるソフトウェアの妥当性を検証するものであれば、どのようなものであってもよい。例えば、使用されるAPI(Application Programming Interface)の呼び出し方法が正しいかを検証して記録するものであ
ってもよいし、認められていないリソースへのアクセスを検出してブロックするものであってもよい。
ってもよいし、認められていないリソースへのアクセスを検出してブロックするものであってもよい。
100 コンピュータ
200 配信装置
101 システムライブラリ受信部
102 検査コード配信要求部
103 システム検査コード受信部
104 コード合成部
105 コード実行部
111 アプリケーション受信部
112 検査コード配信要求部
113 アプリ検査コード受信部
201 システムライブラリ配信部
202 システム検査コード配信部
203 コード合成部
211 アプリケーション配信部
212 アプリ検査コード配信部
200 配信装置
101 システムライブラリ受信部
102 検査コード配信要求部
103 システム検査コード受信部
104 コード合成部
105 コード実行部
111 アプリケーション受信部
112 検査コード配信要求部
113 アプリ検査コード受信部
201 システムライブラリ配信部
202 システム検査コード配信部
203 コード合成部
211 アプリケーション配信部
212 アプリ検査コード配信部
Claims (5)
- ソフトウェアの動作を検証する機能を備えたコンピュータと、
前記コンピュータにソフトウェアの配信を行う第一の配信装置と、
前記コンピュータに前記ソフトウェアを検証するプログラムである検査プログラムの配信を行う第二の配信装置と、
からなるソフトウェア配信システムであって、
前記コンピュータは、
前記第一の配信装置から、前記ソフトウェアを受信する第一のソフトウェア受信手段と、
前記第二の配信装置から、前記ソフトウェアに対応する前記検査プログラムを受信する第二のソフトウェア受信手段と、
実行形式で記述された前記ソフトウェアと、前記検査プログラムとを合成し、実行するソフトウェア実行手段を有し、
前記第二のソフトウェア受信手段は、前記第一のソフトウェア受信手段が前記ソフトウェアを受信したタイミングで前記ソフトウェアに対応する検査プログラムの取得を試み、前記検査プログラムが取得できない場合は、所定の間隔をおいて再試行を繰り返し、
前記ソフトウェア実行手段は、前記第二のソフトウェア受信手段が前記検査プログラムを受信したタイミングで、前記ソフトウェアおよび前記検査プログラムを合成する
ことを特徴とするソフトウェア配信システム。 - 前記第二の配信装置は、配信するソフトウェアのそれぞれ異なる一部の機能に対応する複数の検査プログラムを配信する
ことを特徴とする、請求項1に記載のソフトウェア配信システム。 - 前記第二のソフトウェア受信手段は、前記第一のソフトウェア受信手段がソフトウェアの受信を行った際、受信した前記ソフトウェアを必要とする他のソフトウェアに対応する検査プログラムを前記第二の配信装置から取得する
ことを特徴とする、請求項1または2に記載のソフトウェア配信システム。 - 前記第一および前記第二の配信装置は同一の配信装置であり、
前記配信装置は、配信対象のソフトウェアと前記ソフトウェアに対応する検査プログラムとを合成した合成ソフトウェアを生成するソフトウェア合成手段と、
前記合成ソフトウェアを前記コンピュータに配信する合成ソフトウェア配信手段
をさらに有し、
配信対象のソフトウェアに対応する検査プログラムが、前記配信装置に記憶されている場合に、
前記ソフトウェア合成手段が、前記配信対象のソフトウェアと前記検査プログラムから合成ソフトウェアを生成し、前記合成ソフトウェア配信手段が、前記合成ソフトウェアを配信する
ことを特徴とする、請求項1から3のいずれかに記載のソフトウェア配信システム。 - ソフトウェアの動作を検証する機能を備えたコンピュータと、前記コンピュータにソフトウェアの配信を行う第一の配信装置と、前記コンピュータに前記ソフトウェアを検証するプログラムである検査プログラムの配信を行う第二の配信装置が行うソフトウェア配信方法であって、
前記第一の配信装置が、前記コンピュータに対して、ソフトウェアを配信し、
前記第二の配信装置が、前記コンピュータに対して、前記ソフトウェアに対応する前記検査プログラムを配信し、
前記コンピュータが、前記ソフトウェアを受信したタイミングで前記ソフトウェアに対
応する検査プログラムの取得を試み、前記検査プログラムが取得できない場合は、所定の間隔をおいて再試行を繰り返し、前記検査プログラムを受信したタイミングで、前記ソフトウェアおよび前記検査プログラムを合成する
ことを特徴とするソフトウェア配信方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012108671A JP5533935B2 (ja) | 2012-05-10 | 2012-05-10 | ソフトウェア配信システム、ソフトウェア配信方法 |
CN201380024385.9A CN104272318B (zh) | 2012-05-10 | 2013-05-10 | 软件分发系统、软件分发方法 |
EP13788603.2A EP2849113B1 (en) | 2012-05-10 | 2013-05-10 | Software distribution system and software distribution method |
PCT/JP2013/063162 WO2013168797A1 (ja) | 2012-05-10 | 2013-05-10 | ソフトウェア配信システム、ソフトウェア配信方法 |
US14/399,750 US9208320B2 (en) | 2012-05-10 | 2013-05-10 | Software distribution system and software distribution method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012108671A JP5533935B2 (ja) | 2012-05-10 | 2012-05-10 | ソフトウェア配信システム、ソフトウェア配信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013235504A true JP2013235504A (ja) | 2013-11-21 |
JP5533935B2 JP5533935B2 (ja) | 2014-06-25 |
Family
ID=49550829
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012108671A Active JP5533935B2 (ja) | 2012-05-10 | 2012-05-10 | ソフトウェア配信システム、ソフトウェア配信方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9208320B2 (ja) |
EP (1) | EP2849113B1 (ja) |
JP (1) | JP5533935B2 (ja) |
CN (1) | CN104272318B (ja) |
WO (1) | WO2013168797A1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019537179A (ja) * | 2016-11-14 | 2019-12-19 | インテグリティ セキュリティ サービシーズ エルエルシー | 機器の安全なプロビジョニングと管理 |
JP6789458B1 (ja) * | 2020-02-14 | 2020-11-25 | 三菱電機株式会社 | プログラム提供装置、プログラム提供方法およびプログラム提供システム |
US11997220B2 (en) | 2016-11-14 | 2024-05-28 | Integrity Security Services Llc | Scalable certificate management system architectures |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104793940A (zh) * | 2015-04-27 | 2015-07-22 | 柳州市网中网络策划中心 | 一种自主升级软件开发的通用方法 |
CN104793943A (zh) * | 2015-04-27 | 2015-07-22 | 柳州市一呼百应科技有限公司 | 一种软件开发的通用方法 |
TWI599905B (zh) * | 2016-05-23 | 2017-09-21 | 緯創資通股份有限公司 | 惡意碼的防護方法、系統及監控裝置 |
CN113282311A (zh) * | 2020-02-19 | 2021-08-20 | 北京小米移动软件有限公司 | 系统升级方法及装置、存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10254840A (ja) * | 1997-03-13 | 1998-09-25 | Fujitsu Ltd | モーバイルコード実行システム |
JP2002229790A (ja) * | 2001-01-30 | 2002-08-16 | Ffc:Kk | プログラム合成方法、プログラム合成プログラム、不正使用防止機能追加方法、及び不正使用防止機能追加プログラム |
WO2004075056A1 (ja) * | 2003-02-21 | 2004-09-02 | National Institute Of Advanced Industrial Science And Technology | ウイルスチェック装置及びシステム |
Family Cites Families (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4168796A (en) * | 1978-04-13 | 1979-09-25 | Ncr Corporation | Tester with driver/sensor circuit having programmable termination devices |
US4194113A (en) * | 1978-04-13 | 1980-03-18 | Ncr Corporation | Method and apparatus for isolating faults in a logic circuit |
US5371851A (en) * | 1989-04-26 | 1994-12-06 | Credence Systems Corporation | Graphical data base editor |
US6038378A (en) * | 1993-07-29 | 2000-03-14 | Digital Esquipment Corporation | Method and apparatus for testing implementations of software specifications |
US5390194A (en) * | 1993-11-17 | 1995-02-14 | Grumman Aerospace Corporation | ATG test station |
JPH10500787A (ja) * | 1994-03-14 | 1998-01-20 | グリーン・ヒルズ・ソフトウェア・インコーポレーテッド | 高レベル言語プログラムの時間及び試験の最適化 |
DE69518996T2 (de) * | 1994-04-26 | 2001-03-29 | Sun Microsystems, Inc. | Verfahren und Vorrichtung zur selbstbeschreibenden Datenkodierung |
US5950004A (en) * | 1996-09-13 | 1999-09-07 | The United States Of America As Represented By The Secretary Of The Navy | Model-based process for translating test programs |
US6212532B1 (en) * | 1998-10-22 | 2001-04-03 | International Business Machines Corporation | Text categorization toolkit |
US6353904B1 (en) * | 1998-12-17 | 2002-03-05 | Vlsi Technology, Inc. | Method of automatically generating new test programs for mixed-signal integrated circuit based on reusable test-block templates according to user-provided driver file |
US8099758B2 (en) * | 1999-05-12 | 2012-01-17 | Microsoft Corporation | Policy based composite file system and method |
US8121874B1 (en) * | 1999-05-27 | 2012-02-21 | Accenture Global Services Limited | Phase delivery of components of a system required for implementation technology |
US7315826B1 (en) * | 1999-05-27 | 2008-01-01 | Accenture, Llp | Comparatively analyzing vendors of components required for a web-based architecture |
US6721713B1 (en) * | 1999-05-27 | 2004-04-13 | Andersen Consulting Llp | Business alliance identification in a web architecture framework |
US7139999B2 (en) * | 1999-08-31 | 2006-11-21 | Accenture Llp | Development architecture framework |
US7020697B1 (en) * | 1999-10-01 | 2006-03-28 | Accenture Llp | Architectures for netcentric computing systems |
US7610233B1 (en) * | 1999-12-22 | 2009-10-27 | Accenture, Llp | System, method and article of manufacture for initiation of bidding in a virtual trade financial environment |
US7403901B1 (en) * | 2000-04-13 | 2008-07-22 | Accenture Llp | Error and load summary reporting in a health care solution environment |
DE10160607A1 (de) * | 2001-12-10 | 2003-06-26 | Oce Printing Systems Gmbh | Verfahren, Gerätesystem und Computerprogrammprodukt zur Erzeugung eines gedruckten Dokuments aus mehreren Eingangsdateien |
JP2003283494A (ja) | 2002-03-27 | 2003-10-03 | Ntt Docomo Inc | 通信端末のアクセス制御方法、認定プログラム提供装置、管理装置および通信端末 |
WO2003085513A2 (en) * | 2002-04-11 | 2003-10-16 | International Business Machines Corporation | A software distribution method and system |
US7366951B2 (en) * | 2002-05-24 | 2008-04-29 | Fujitsu, Limited | Method and apparatus for test program generation based on an instruction set description of a processor |
US6970798B1 (en) * | 2004-05-06 | 2005-11-29 | International Business Machines Corporation | Method, apparatus and computer program product for high speed memory testing |
US20090055896A1 (en) * | 2004-07-20 | 2009-02-26 | Osamu Aoki | Network connection control program, network connection control method, and network connection control system |
US7730452B1 (en) * | 2005-11-01 | 2010-06-01 | Hewlett-Packard Development Company, L.P. | Testing a component of a distributed system |
US7598523B2 (en) * | 2007-03-19 | 2009-10-06 | Taiwan Semiconductor Manufacturing Company, Ltd. | Test structures for stacking dies having through-silicon vias |
KR100918626B1 (ko) * | 2007-08-02 | 2009-09-25 | 주식회사 플랜티넷 | 어플리케이션 프로그램 검증 및 실행 제어 방법 |
US7996805B2 (en) * | 2008-01-08 | 2011-08-09 | National Semiconductor Corporation | Method of stitching scan flipflops together to form a scan chain with a reduced wire length |
US9164859B2 (en) * | 2009-09-25 | 2015-10-20 | Qualcomm Incorporated | Computing device for enabling concurrent testing |
US8234618B2 (en) * | 2009-11-03 | 2012-07-31 | Freescale Semiconductor, Inc. | Trace reconstruction for silicon validation of asynchronous systems-on-chip |
US8726394B2 (en) * | 2009-12-15 | 2014-05-13 | Seeker Security Ltd. | Method and system of runtime analysis |
US8893112B2 (en) * | 2009-12-21 | 2014-11-18 | Intel Corporation | Providing software distribution and update services regardless of the state or physical location of an end point machine |
JP5384412B2 (ja) | 2010-03-31 | 2014-01-08 | 日置電機株式会社 | 検査装置および検査方法 |
US8578344B2 (en) * | 2010-06-17 | 2013-11-05 | Microsoft Corporation | Incremental compositional dynamic test generation |
CN102195978A (zh) * | 2011-04-26 | 2011-09-21 | 深圳市共济科技有限公司 | 一种软件分布部署方法及系统 |
JP5680514B2 (ja) | 2011-09-29 | 2015-03-04 | トヨタ自動車株式会社 | 自己診断機能を備えたコンピュータ、ソフトウェア作成方法、およびソフトウェア作成装置 |
-
2012
- 2012-05-10 JP JP2012108671A patent/JP5533935B2/ja active Active
-
2013
- 2013-05-10 US US14/399,750 patent/US9208320B2/en active Active
- 2013-05-10 WO PCT/JP2013/063162 patent/WO2013168797A1/ja active Application Filing
- 2013-05-10 CN CN201380024385.9A patent/CN104272318B/zh active Active
- 2013-05-10 EP EP13788603.2A patent/EP2849113B1/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10254840A (ja) * | 1997-03-13 | 1998-09-25 | Fujitsu Ltd | モーバイルコード実行システム |
JP2002229790A (ja) * | 2001-01-30 | 2002-08-16 | Ffc:Kk | プログラム合成方法、プログラム合成プログラム、不正使用防止機能追加方法、及び不正使用防止機能追加プログラム |
WO2004075056A1 (ja) * | 2003-02-21 | 2004-09-02 | National Institute Of Advanced Industrial Science And Technology | ウイルスチェック装置及びシステム |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019537179A (ja) * | 2016-11-14 | 2019-12-19 | インテグリティ セキュリティ サービシーズ エルエルシー | 機器の安全なプロビジョニングと管理 |
JP2021022395A (ja) * | 2016-11-14 | 2021-02-18 | インテグリティ セキュリティ サービシーズ エルエルシー | 機器の安全なプロビジョニングと管理 |
JP7018109B2 (ja) | 2016-11-14 | 2022-02-09 | インテグリティ セキュリティ サービシーズ エルエルシー | 機器の安全なプロビジョニングと管理 |
JP2022058749A (ja) * | 2016-11-14 | 2022-04-12 | インテグリティ セキュリティ サービシーズ エルエルシー | 機器の安全なプロビジョニングと管理 |
JP7280396B2 (ja) | 2016-11-14 | 2023-05-23 | インテグリティ セキュリティ サービシーズ エルエルシー | 機器の安全なプロビジョニングと管理 |
US11997220B2 (en) | 2016-11-14 | 2024-05-28 | Integrity Security Services Llc | Scalable certificate management system architectures |
JP7534483B2 (ja) | 2016-11-14 | 2024-08-14 | インテグリティ セキュリティ サービシーズ エルエルシー | 機器の安全なプロビジョニングと管理 |
JP6789458B1 (ja) * | 2020-02-14 | 2020-11-25 | 三菱電機株式会社 | プログラム提供装置、プログラム提供方法およびプログラム提供システム |
WO2021161534A1 (ja) * | 2020-02-14 | 2021-08-19 | 三菱電機株式会社 | プログラム提供装置、プログラム提供方法およびプログラム提供システム |
CN115104088A (zh) * | 2020-02-14 | 2022-09-23 | 三菱电机株式会社 | 程序提供装置、程序提供方法及程序提供系统 |
US11703833B2 (en) | 2020-02-14 | 2023-07-18 | Mitsubishi Electric Corporation | Program providing device, program providing method, and program providing system |
CN115104088B (zh) * | 2020-02-14 | 2024-02-06 | 三菱电机株式会社 | 程序提供装置、程序提供方法及程序提供系统 |
Also Published As
Publication number | Publication date |
---|---|
EP2849113A1 (en) | 2015-03-18 |
EP2849113B1 (en) | 2019-06-26 |
US20150128259A1 (en) | 2015-05-07 |
US9208320B2 (en) | 2015-12-08 |
EP2849113A4 (en) | 2015-06-10 |
CN104272318B (zh) | 2016-11-02 |
WO2013168797A1 (ja) | 2013-11-14 |
JP5533935B2 (ja) | 2014-06-25 |
CN104272318A (zh) | 2015-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5533935B2 (ja) | ソフトウェア配信システム、ソフトウェア配信方法 | |
CN108551487B (zh) | PaaS平台的应用部署方法、装置、服务器及存储介质 | |
CN106572372B (zh) | 一种机顶盒升级方法及机顶盒 | |
US9569197B2 (en) | Method of disseminating updated drivers to mobile computing devices and a dissemination system therefor | |
CN108027741A (zh) | 基于补丁升级的文件处理方法、装置、终端以及存储介质 | |
US8495615B2 (en) | Method, system and computer program for distributing software patches | |
US9081596B2 (en) | Information processing device, virtual machine creation method, and application distribution system | |
US20160378458A1 (en) | Method and device for system application installation package, and terminal | |
CN107391104B (zh) | 一种客户端与react native代码的更新依赖管理方法、装置及系统 | |
EP2876865B1 (en) | Communication apparatus, communication system, communication method and recording medium | |
US20210011707A1 (en) | Method and system for a client to server deployment via an online distribution platform | |
JP6581859B2 (ja) | 情報処理装置、ソフトウェア配信システム、およびソフトウェア配信方法 | |
JPWO2009078285A1 (ja) | 無線端末、無線端末の不揮発性メモリ、および診断情報のフェイルセーフ保存方法 | |
CN105530130A (zh) | 一种空中下载技术的升级方法及装置 | |
CN106775873B (zh) | 更新手机软件、获取补丁文件的方法及设备 | |
CN106293790B (zh) | 基于Firefox操作系统的应用程序升级方法和装置 | |
CN110147246A (zh) | 空间下载技术的版本检查方法及装置、存储介质和终端 | |
KR101083229B1 (ko) | 이동 단말의 필요 어플리케이션 다운로드 방법, 장치, 시스템, 및 기록 매체 | |
CN109428936B (zh) | App的升级方法、装置、系统、电子设备及存储介质 | |
CN110659052B (zh) | 网络设备中系统软件的更新方法、系统及可读存储介质 | |
CN110673869B (zh) | 库文件的加载方法、装置及系统 | |
CN113867756A (zh) | 软件升级方法、终端设备及可读存储介质 | |
CN108234414B (zh) | 一种app应用的升级方法及装置 | |
CN110825406A (zh) | 一种软件升级的方法及相关设备 | |
CN113391852B (zh) | 一种平台软件扩展方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20140401 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5533935 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140414 |