JP2009157732A - プログラムの配信サーバ、配信システム、配信方法、および、配信対象プログラム - Google Patents

プログラムの配信サーバ、配信システム、配信方法、および、配信対象プログラム Download PDF

Info

Publication number
JP2009157732A
JP2009157732A JP2007336443A JP2007336443A JP2009157732A JP 2009157732 A JP2009157732 A JP 2009157732A JP 2007336443 A JP2007336443 A JP 2007336443A JP 2007336443 A JP2007336443 A JP 2007336443A JP 2009157732 A JP2009157732 A JP 2009157732A
Authority
JP
Japan
Prior art keywords
trial
distribution
program
target program
terminal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2007336443A
Other languages
English (en)
Other versions
JP5024036B2 (ja
Inventor
Mayaka Otsuki
麻耶日 大月
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP2007336443A priority Critical patent/JP5024036B2/ja
Publication of JP2009157732A publication Critical patent/JP2009157732A/ja
Application granted granted Critical
Publication of JP5024036B2 publication Critical patent/JP5024036B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】プログラムのバージョンアップに伴う試行の手間を低減すること。
【解決手段】配信サーバ2は、所定端末1に対して既に配信されている配信対象プログラムのバージョン情報と、記憶装置に記憶されている最新版の配信対象プログラムのバージョン情報と、を照合することで、配信が必要か否かを判定し、配信が必要と判定されたとき、最新版の配信対象プログラムの試行履歴データを参照し、所定台数以上の端末1が既に試行を成功している旨の試行要否条件を満たすか否かを判定し、試行要否条件を満たすときには、配信する最新版の配信対象プログラムに対して、試行せずに運用する旨を所定端末1に通知する。
【選択図】図1

Description

本発明は、プログラムの配信サーバ、配信システム、配信方法、および、配信対象プログラムに関する。
コンピュータにインストールされ、実行されるプログラムは、機能の追加や、セキュリティのための修正などの理由により、バージョンアップが行われる。最新のバージョンアップの結果が反映された最新版のプログラムは、プログラムの配信サーバからプログラムがインストールされる端末へと配信される。
ユーザは、プログラムのバージョンアップがなされたことを配信サーバに対して毎回確認する作業を、面倒と感じることもある。そこで、特許文献1には、起動時にプログラムのバージョンを自動で確認し、常に最新版をダウンロードする技術が、開示されている。
特開平9−292980号公報
多くの場合、プログラムのバージョンアップは、プログラムの供給元であるベンダが、プログラムのユーザにとって利益があると考えられる修正を行うことで実現される。しかし、プログラムのバージョンアップが、ユーザにとって不利益となってしまうケースが発生する。以下、不利益となる事例を列挙する。
例えば、バージョンアップにより、プログラムが扱うデータ形式が変更されたため、データの互換性が無くなってしまった場合であって、ユーザは既に旧形式のデータを多く保持しており、今後も旧形式のデータを使い続けたいと思っている場合である。
別の例では、バージョンアップにより、プログラムが動作するOS(Operating System)が新しいOSに変更された場合である。新しいOSは、古いOSと比較すると、同じ機能を実現するために消費するメモリ量などが増大してしまうので、新しいOS上でのプログラムの動作は、実行時間が長くかかってしまうなどの性能劣化が発生する。
そこで、ユーザは、最新版のプログラムを無条件に受け入れてしまうのではなく、最新版のプログラムを一時的に試行し、ユーザの要求が満たされていることを確認してから、その最新版のプログラムを運用する。つまり、試行とは、各プログラムを用いて行う業務が一通り実行できるか否かを点検する作業を指す。業務は1つ以上の業務シナリオに細分化され、業務シナリオごとにプログラムが試行される。しかし、運用前の試行期間を設けることは、最新版のプログラムの導入を遅らせる上、試行のためのインストール、運用のためのインストールと、2度手間をユーザに強いてしまい、不便である。
そこで、本発明は、前記した問題を解決し、プログラムのバージョンアップに伴う試行の手間を低減することを主な目的とする。
前記課題を解決するため、本発明は、配信対象プログラムを実行する端末に対して、最新版の前記配信対象プログラムを配信する配信サーバであって、
前記配信サーバが、
前記最新版の配信対象プログラムについて、そのバージョン情報と、1台以上の前記端末による試行履歴データと、を対応づけて記憶装置に記憶し、
所定端末から前記配信対象プログラムの更新チェック依頼を受信すると、
前記所定端末に対して既に配信されている前記配信対象プログラムの前記バージョン情報と、前記記憶装置に記憶されている前記最新版の配信対象プログラムの前記バージョン情報と、を照合することで、配信が必要か否かを判定し、
配信が必要と判定されたとき、前記最新版の配信対象プログラムの前記試行履歴データを参照し、所定台数以上の端末が既に試行を成功している旨の試行要否条件を満たすか否かを判定し、
前記試行要否条件を満たすときには、配信する前記最新版の配信対象プログラムに対して、試行せずに運用する旨を前記所定端末に通知するとともに、前記試行要否条件を満たさないときには、配信する前記最新版の配信対象プログラムに対して、試行を要する旨を前記所定端末に通知することを特徴とする。
その他の手段は、後記する。
本発明によれば、プログラムのバージョンアップに伴う試行の手間を低減することが可能になった。
以下に、本発明が適用されるプログラム配信システムの一実施形態について、図面を参照して詳細に説明する。
図1は、プログラム配信システムを示す構成図である。プログラム配信システムは、配信対象プログラム(以下、単にプログラムとする)を実行する1台以上の端末1と、プログラムを端末1へと配信する配信サーバ2とがネットワーク9で接続されて構成される。端末1には、それぞれ他の端末1と区別するための端末IDが割り当てられている。なお、図1では3台の端末1(T1,T2,T3)のうち、T3の端末1の内部構成を示しているが、他の端末1(T1,T2)の内部構成も同様であるため、図示を省略している。
なお、プログラム配信システムにおける端末1は、例えば、金融機関などの自動取引装置や無人契約機などに応用が可能である。そのときには、端末1のユーザは、金融機関に勤務するオペレータでもよいし、金融機関に口座を有する取引者でもよい。
プログラム配信システムを構成する各装置(端末1および配信サーバ2)は、それぞれ演算処理を行う際に用いられる記憶手段としてのメモリと、前記演算処理を行う演算処理装置とを少なくとも備えるコンピュータとして構成される。なお、メモリは、RAM(Random Access Memory)などにより構成される。演算処理は、CPU(Central Processing Unit)によって構成される演算処理装置が、メモリ上の配信動作プログラムを実行することで、実現される。
端末1は、記憶装置10、端末制御部18、通信装置19a、入力装置19b、表示装置19cを備える。
記憶装置10は、メモリやハードディスクなどの記憶手段により構成される。記憶装置10には、試行判定条件管理部11、試行判定管理部12、試行記憶部13aのプログラム、および、運用記憶部13bのプログラムが記憶される。これらの各データの詳細は、後記する。
端末制御部18は、演算処理を行う演算処理装置であり、端末1の各処理を制御する。
通信装置19aは、ネットワーク9へ接続するための通信用のインタフェースである。
入力装置19bは、マウスやキーボードなどの入力手段により構成され、ユーザからインストールの許可指示などのデータの入力を受け付ける。
表示装置19cは、ディスプレイなどにより構成され、ユーザに通知メッセージなどのデータを提示する。
配信サーバ2は、記憶装置20、サーバ制御部28、通信装置29a、入力装置29b、表示装置29cを備える。
記憶装置20は、メモリやハードディスクなどの記憶手段により構成される。記憶装置20には、プログラム更新DB21、端末状態DB22、試行履歴DB23、リポジトリ24が記憶される。これらの各データの詳細は、後記する。
サーバ制御部28は、演算処理を行う演算処理装置であり、配信サーバ2の各処理を制御する。
通信装置29aは、ネットワーク9へ接続するための通信用のインタフェースである。
入力装置29bは、マウスやキーボードなどの入力手段により構成され、管理者から最新版プログラムの登録などのデータの入力を受け付ける。
表示装置29cは、ディスプレイなどにより構成され、管理者にプログラムの各端末1への配信度合いなどのデータを提示する。
Figure 2009157732
表1に示す試行判定条件管理部11は、業務と、業務シナリオと、プログラムと、試行判定条件と、を対応づけて管理する。
「業務」は、1つ以上の「業務シナリオ」により構成される。
「プログラム」は、対応する「業務シナリオ」を実施するために実行されるプログラムのIDを格納する。
「試行判定条件」は、「プログラム」で示されたプログラムの実行結果をもとに、その実行が「業務シナリオ」への試行として成功しているのか(試行OK)、失敗してしまったのか(試行NG)を判定するための条件である。
例えば、業務(B1)の業務シナリオ(B1a)は、プログラム(P1)および試行判定条件(正常動作)と対応づけられている。この対応付けは、業務(B1)の業務シナリオ(B1a)を実施するためには、プログラム(P1)を実行する必要があり、その実行結果が「正常動作」であれば、試行OKである旨を示す。
なお、試行判定条件の「正常動作」とは、プログラムの実行内容に異常が発生しない旨を示す。例えば、プログラムが実行中に暴走してしまった場合や、プログラムが所定の業務データの読み込みに失敗してしまった場合には、プログラムが正常動作しないこととする。「正常動作」の確認方法としては、例えば、プログラムをシミュレータ上で動作させることによりプログラムの暴走を検知する方法が挙げられる。または、正しい入力データおよび出力データの組を学習データとして記憶装置10に記憶させた後、学習データの入力データをプログラムに入力して実行させた結果、学習データの出力データと同じデータが出力されたときに、「正常動作」とする方法が挙げられる。
また、試行判定条件の「実行時間<1分」とは、プログラムの実行時間(実行に要する時間)が1分未満であるときに試行判定条件を満たす旨を示す。なお、プログラムの実行時間を検知する方法として、例えば、プログラムの実行を監視するプロファイラが、プログラムの実行時間を計測する手法がある。
ここで、業務(B3)は、その業務シナリオ(B3a)を実施するために実行されるプログラム(P1)と、その業務シナリオ(B3b)を実施するために実行されるプログラム(P2)と、が連動する一例である。そして、業務シナリオ(全部)に対応するレコードは、全部の業務シナリオの実行結果をもとに、試行判定が行われることを示す。つまり、業務(B3)全体として各プログラムが連動して正常に動作し、かつ、実行時間の合計が10分未満であるときに、試行OKと判定される。
Figure 2009157732
表2に示す試行判定管理部12は、業務と、業務シナリオと、プログラムと、ver.と、試行履歴と、試行判定と、を対応づけて管理する。
「業務、業務シナリオ、プログラム」は、試行判定条件管理部11のものと同じ意味である。
「ver.」は、対応するプログラムのバージョン番号を示す。
「試行履歴」は、対応するプログラムの「ver.」で示されるバージョンを試行した結果を示す。
「試行判定」は、対応する「試行履歴」が試行判定条件管理部11の「試行判定条件」を満たすか(試行OK)、満たさないか(試行NG)を示す。
例えば、プログラム(P1)のバージョン(1.2)は、2つの業務シナリオ(B1c、B2c)でそれぞれ試行されている。このプログラムの実行時間が3分であるとき、試行判定条件管理部11を参照すると、業務シナリオ(B1c)の試行判定条件(正常動作のみで実行時間に関する条件は存在しない)を満たすが、業務シナリオ(B2c)の試行判定条件(実行時間が1分未満)を満たさない。よって、同じ「試行履歴」である「実行時間=3分」であっても、緩い試行判定条件が設定されている業務シナリオ(B1c)では「試行OK」となり、厳しい試行判定条件が設定されている業務シナリオ(B2c)では「試行NG」となる。
試行記憶部13a、および、運用記憶部13bは、それぞれ更新対象として受信したプログラムのインストール先となる記憶部である。試行記憶部13aには、試行のためのプログラムが一時的(試行期間中)にインストールされる。運用記憶部13bには、運用のためのプログラムがインストールされる。
なお、試行記憶部13aにプログラムをインストールするときには、インストールされたプログラムが一時的に実行されるという特性を活かした技術を、適宜採用してもよい。例えば、特開2001−331230号公報には、プログラム本来の機能と、プログラムを一時的にインストールするための機能(試行プログラムの試行期間や動作環境の設定)とを分離し、後者の機能を環境制御用プログラムとして、配布する旨が記載されている。
Figure 2009157732
表3に示すプログラム更新DB21は、プログラムと、ver.と、重要度と、通知内容と、を対応づけて管理する。プログラム更新DB21は、リポジトリ24に反映されている最新版のプログラムを説明する情報を格納する。
「プログラム、ver.」は、試行判定管理部12のものと同じ意味である。
「重要度」は、対応するプログラムの「ver.」で示されるバージョンについて、更新を行うか否かを判断する際の更新を行った方がいい度合いである。
「通知内容」は、対応するプログラムの「ver.」で示されるバージョンについて、更新時(試行開始時および運用開始時)に表示装置19cを介してユーザに通知されるメッセージである。このメッセージは、更新により得られるメリットが、主な内容である。
Figure 2009157732
表4に示す端末状態DB22は、端末と、プログラムと、ver.と、状態と、更新日と、を対応づけて管理する。
「端末」は、対応するプログラムの「ver.」で示されるバージョンについて、試行または運用としてインストールされている端末1の端末IDを示す。
「プログラム、ver.」は、プログラム更新DB21のものと同じ意味である。
「状態」は、プログラムのインストールが、「試行」か「運用」かのいずれかを示す。
「更新日」には、プログラムのインストールが行われた日を記録する。この記録は、管理者がプログラムの各端末1への配信度合いを知るためのログとして、表示装置19cに表示される。
Figure 2009157732
表5に示す試行履歴DB23は、プログラムと、ver.と、試行OKの端末と、試行NGの端末と、試行要否条件と、試行要否と、を対応づけて管理する。
「プログラム、ver.」は、端末状態DB22のものと同じ意味である。
「試行OKの端末」、「試行NGの端末」は、対応する「プログラム、ver.」のプログラムを試行した結果、「試行OK」または、「試行NG」となった端末1の端末IDを列挙したものである。
「試行要否条件」は、対応する「試行OKの端末」、「試行NGの端末」の試行結果をもとに、これから試行する必要があるか否かを判断するための条件である。
「試行要否」は、対応する「試行OKの端末」、「試行NGの端末」の試行結果を、対応する「試行要否条件」により判断した結果を示す。
例えば、プログラム(P1)のバージョン(1.2)は、「試行OKの端末」が2台(T1,T2)存在するので、「試行要否条件」(試行OKの端末が2台以上なら試行不要)を満たし、「試行要否」が「不要」となる。これにより、プログラム(P1)のバージョン(1.2)をまだ試行していない端末1(端末ID=T3)は、他の端末1の試行結果により試行がうまくいっているので、自ら試行することをせず、迅速に運用することができる。
Figure 2009157732
表6に示す試行履歴DB23は、表5に示す試行履歴DB23の別の一例である。表6は、表5と比較すると、列「業務」が追加されている。これにより、同じ「プログラム、ver.」の試行でも、「業務」が異なると、試行結果が異なることになる。例えば、表5のプログラム(P1)のバージョン(1.2)は、「試行OKの端末」が2台(T1,T2)であるのに対し、表6の同じプログラムでは「試行OKの端末」が1台ずつに分散されている。このように、列「業務」ごとに試行結果を分割することにより、自端末1の「業務」と他端末1の「業務」とが一致する試行結果に絞り込んで、他端末1の試行結果を活用することができる。つまり、「業務」ごとに試行結果を分割する理由は、表1の試行判定条件管理部11で示したように、同じプログラムを試行するときに、「業務」ごとに多様な試行判定条件が設定されているからである。
リポジトリ24は、CVS(Concurrent Versions System)などのバージョン管理システムにおいて、バージョン毎にプログラムファイルを管理する記憶領域である。リポジトリ24に対してプログラムをライト(書き込み)することをチェックイン、リード(読み込み)することをチェックアウトと呼ぶ。
図2は、プログラム配信システムの動作を示すフローチャートである。このフローチャートは、端末1が電源投入などにより起動されたとき、または、あらかじめ所定間隔で発生する定期的なイベントを契機に、実行が開始される。
なお、図2における端末1の各動作は、端末1のメモリ上に読み込まれた配信動作プログラムを実行することで、実現される。配信動作プログラムは、配信サーバ2から配信される配信対象プログラムとは別々のプログラムとしてもよいし、配信対象プログラムに組み込まれたプログラムとしてもよい。配信対象プログラムに組み込まれた配信動作プログラムは、配信対象プログラムの実行が指示されると、配信対象プログラムの各処理のうちの最初の処理として実行される。
なお、端末1側の前準備として、ユーザにより試行判定条件管理部11の業務シナリオを実施するために実行されるプログラムを示す「業務、業務シナリオ、プログラム」の対応情報、および、業務シナリオごとの試行可否を判断するための「試行判定条件」が、入力されている。
また、配信サーバ2側の前準備として、管理者によりリポジトリ24には最新版のプログラムがチェックインされるとともに、そのチェックインに関する情報が、プログラム更新DB21の各列に登録される。
まず、端末1の端末制御部18は、配信サーバ2のサーバ制御部28に対して、プログラムの更新チェックを依頼する(S11)。この依頼時に通信装置19aを介して送信される依頼メッセージには、少なくとも端末1の端末IDが含まれる。さらに、依頼メッセージには、送信元の端末1にインストールされている更新チェック対象のプログラムIDとそのバージョンとの組を含めてもよい。
サーバ制御部28は、受信した依頼メッセージをもとに、プログラムの更新チェックを実行する(S12)。このS12の処理の詳細は、後記する図3において詳説する。なお、更新チェックの対象となるプログラムは、以下に示すいずれかの手法により、特定される。
・受信した依頼メッセージで指定されるプログラムIDのプログラム。
・受信した端末IDを検索キーとして端末状態DB22を検索し、検索結果の各レコードの対応する「プログラム」列のプログラム。
そして、更新チェックの結果として、端末1に返信する通知メッセージが、以下の(1)〜(3)のいずれかとして特定される。
通知メッセージ(1)「更新不要」:現在の端末1が最新版を運用しているか否かにかかわらず、最新版へのプログラムの更新は不要である。
通知メッセージ(2)「更新必要」&「試行不要」:現在の端末1は最新版を運用していないため、最新版へのプログラムの更新が必要である。ただし、その最新版のプログラムは、既に試行履歴において信頼性が保証されているので、今回は試行を不要(省略)として運用を開始する。
通知メッセージ(3)「更新必要」&「試行必要」:現在の端末1は最新版を運用していないため、最新版へのプログラムの更新が必要である。そして、その最新版のプログラムは、信頼性が保証されていないので、今回は運用前に試行を必要とする。
サーバ制御部28は、通知メッセージ(2)を作成したときには端末状態DB22の「状態」に「運用」を、通知メッセージ(3)を作成したときには端末状態DB22の「状態」に「試行」を、それぞれ書き込む。さらに、サーバ制御部28は、端末状態DB22の「端末」に依頼メッセージの送信元の端末IDを、端末状態DB22の「プログラム、ver.」にプログラム更新DB21より取得した更新チェック対象のプログラムとそのバージョンを、端末状態DB22の「更新日」にプログラムの配信日(S13の実行日)を、それぞれ書き込む。
サーバ制御部28は、S12の処理により作成された通知メッセージと、更新対象の最新版のプログラムと、を端末1に送信する(S13)。なお、通知メッセージが(1)「更新不要」の場合には、更新が不要なのでプログラムの送信を省略できる。
端末制御部18は、S13で受信した通知メッセージが「更新必要」でない(S14,No)、つまり、(1)「更新不要」の場合には、処理を終了する。一方、通知メッセージが「更新必要」である(S14,Yes)、つまり、(2)または(3)の場合には、処理をS15に進める。
端末制御部18は、S13で受信した通知メッセージが「試行必要」でない(S15,No)、つまり、(2)の場合には、S13で受信した最新版のプログラムを試行せずに運用する(S21)。具体的には、端末制御部18は、最新版のプログラムを運用記憶部13bにインストールしてから実行する。一方、通知メッセージが「試行必要」である(S15,Yes)、つまり、(3)の場合には、処理をS16に進める。
端末制御部18は、S13で受信した最新版のプログラムを試行記憶部13aにインストールしてから実行することで、プログラムを試行する(S16)。そして、S16の試行結果について、端末1の記憶装置10に登録する(S17)。具体的には、試行判定管理部12の「試行履歴」に対して、S16の試行結果を書き込み、試行判定管理部12の「試行判定」に対して、書き込んだ「試行履歴」と試行判定条件管理部11の「試行判定条件」との照合結果(試行OKまたは試行NG)を書き込む。
さらに、端末制御部18は、S16の試行結果(プログラム、ver.、試行判定の対応情報)を配信サーバ2に通知して、記憶装置20に登録させる(S18)。具体的には、通知された試行判定に応じて、試行履歴DB23の「試行OKの端末」、または、「試行NGの端末」のいずれかに、試行結果を通知した端末1の端末IDを追加する。その結果、試行履歴DB23の追加されたレコードについて、更新された「試行OKの端末、試行NGの端末」のデータと、対応する「試行要否条件」とを再評価し、対応する「試行要否」を更新する。
ここで、端末制御部18は、S16の試行結果について、S17の「試行判定」で書き込んだ値が試行OKなら(S19,Yes)、その試行したプログラムを試行記憶部13aから運用記憶部13bに移動してから実行することで、運用する(S21)。ここで、プログラムの移動に伴い、サーバ制御部28は、端末状態DB22の「状態」を「試行」から「運用」に、「更新日」を運用の開始日に、それぞれ更新する。
一方、S16の試行結果について、試行NGなら(S19,No)、その試行したプログラムをアンインストールすることで、プログラムを試行前に戻す(S20)。ここで、S20において、試行したプログラムに関するデータをS12で端末状態DB22に書き込んだため、試行したプログラムのアンインストールに伴い、端末状態DB22をS12で書き込む前の状態に書き戻す。
以上、図2の各処理について説明した。なお、プログラムの試行(S16)および運用(S21)前に、それぞれプログラム更新DB21の「通知内容」に記載されている更新内容を示すメッセージを表示装置19cに表示するとともに、入力装置19bを介して、試行の許可をユーザに入力させることが望ましい。なお、更新内容を示すメッセージは、メッセージに併せて表示された確認ボタンを押すまでは、メッセージを画面上に表示し続けるようにするとよい。これにより、ユーザが重要事項を見逃すことを抑制できる。
図3は、プログラムの更新チェックの詳細を示すフローチャートである。このフローチャートは、図2のS12から呼び出されて実行が開始されるサブルーチンであり、実行が終了すると図2のS13に処理が戻る。
まず、サーバ制御部28は、S11でプログラムの更新チェックを依頼した端末1に、既にプログラム更新DB21に登録されている最新版がインストールされているか、つまり、端末1が最新版を保持しているか否かを判定する(S121)。この判定は、以下に示すいずれかの手法により、実現される。
・受信した依頼メッセージに含まれている、送信元の端末1にインストールされている更新チェック対象のプログラムIDとそのバージョンとの組が、プログラム更新DB21に登録されている組と一致するときに、最新版を保持していると判定する。
・更新チェックを依頼した端末1の端末IDに対応する端末状態DB22に格納されている「プログラムID、バージョン(ver.)」の組が、プログラム更新DB21に登録されている組と一致するときに、最新版を保持していると判定する。
サーバ制御部28は、最新版を保持しているときには(S121,Yes)、最新版のプログラムを繰り返し端末1に配信することは無駄になるので、通知メッセージ(1)「更新不要」に決定する(S124)。一方、最新版を保持していないとき(S121,No)には、試行履歴DB23に記録されている試行履歴を参照する処理を実行する。ここで、プログラム更新DB21の「重要度」が「緊急」であるときには、「更新必要」となる通知メッセージ(2)または(3)を選択するようにしてもよい。
次に、サーバ制御部28は、S11でプログラムの更新チェックを依頼した端末1が、過去にプログラム更新DB21に登録されている最新版を試行した結果、つまり、自端末1の試行履歴の内容を判定する(S121)。この判定は、端末1の端末IDが、試行履歴DB23の更新対象のプログラムのレコードの「試行OKの端末」または「試行NGの端末」に存在するか否かを検索することにより、実現される。この判定により、最新版を保持していない端末1が過去に自端末1で試行NGとなった最新版を受信してしまうことを防ぐことができる。
なお、試行履歴DB23のレコードを特定する検索キーは、業務毎に分かれていない試行履歴DB23(表5)では「プログラム、ver.」の組、業務毎に分かれている試行履歴DB23(表6)では「業務、プログラム、ver.」の組、となる。これらの検索キーは、更新チェックの依頼メッセージまたは端末状態DB22に登録されたデータから取得する。
サーバ制御部28は、試行履歴が「試行OK」なら(S122,試行OK)、再度の試行は不要なので、通知メッセージ(2)「更新必要」&「試行不要」に決定する(S125)。
サーバ制御部28は、試行履歴が「試行NG」なら(S122,試行NG)、更新は不要なので、通知メッセージ(1)「更新不要」に決定する(S124)。
サーバ制御部28は、試行履歴がないときには(S122,試行履歴なし)、処理をS123に進める。
サーバ制御部28は、他端末1の試行履歴をもとに、通知メッセージを選択する(S123)。つまり、他端末1の試行履歴が反映された試行履歴DB23の「試行要否」の内容により、分岐する。
サーバ制御部28は、試行要否が「試行不要」なら(S123,試行不要)、他端末1の試行履歴によりプログラムの信頼性が保証されているので、通知メッセージ(2)「更新必要」&「試行不要」に決定する(S125)。
サーバ制御部28は、試行要否が「試行必要」なら(S123,試行必要)、他端末1の試行履歴が不充分なので、通知メッセージ(3)「更新必要」&「試行必要」に決定する(S126)。そして、図3に示したルーチンが終了する。
以上、図3の各処理を説明した。この図3の処理により、通知メッセージ(1)〜(3)の中からいずれか1つのメッセージが選択される。
ここで、S123の分岐では、通知メッセージ(2)または(3)のいずれかが選択されることとした。しかし、試行履歴DB23において多くの(例えば10台以上の)端末1で「試行NG」となってしまった所定プログラムの所定バージョンは、今後も異常をきたすおそれがある。よって、そのような所定プログラムの所定バージョンは、通知メッセージ(1)を選択してもよい。さらに、そのような所定プログラムの所定バージョンをプログラム更新DB21およびリポジトリ24から削除するとともに、削除したプログラムを既に運用している端末1には削除前のバージョンのプログラムを配布しなおすようにしてもよい。
以下、図2の試行NG(S19,No)であるときの、プログラムを試行前に戻す(S20)処理について、試行が失敗した要因を解析することで、試行前に戻す処理を選択する例を説明する。
Figure 2009157732
表7に示す試行判定管理部12は、表2の試行判定管理部12と比較すると、説明用の列(ケース)が追加されている。この4つのケースは、2つのプログラム「P1,P2」が連動する例である。各ケースにおいて、「業務、業務シナリオ、プログラム」の値は、互いに同じ値である。
ケース(1)は、2つのプログラムがともにバージョンアップする前を示す。表7のプログラムの「試行履歴」と、表1の試行判定条件管理部11の「試行判定条件」とを比較すると、プログラム「P1」の実行時間=3分<8分、かつ、プログラム「P2」の実行時間=5分<8分、かつ、プログラムの実行時間の合計=8分<10分なので、すべて試行OKである。
残りのケース(2)からケース(4)までは、ともに、プログラム「P2」のバージョンはそのまま(1.0)で、プログラム「P1」のバージョンが1.1から1.2にバージョンアップした例である。
ケース(2)は、最新版プログラム「P1」が試行OK、かつ、連動するプログラム「P2」が試行NGである例である。このときには、端末制御部18は、プログラム「P1」のバージョンを更新前(1.1)に戻すか、連動するプログラム「P2」のバージョンアップを行うかを、ユーザに選択させる。
ケース(3)は、最新版プログラム「P1」が試行NG、かつ、連動するプログラム「P2」が試行OKである例である。このときには、端末制御部18は、プログラム「P1」のバージョンを更新前(1.1)に戻す。
ケース(4)は、最新版プログラム「P1」、および、連動するプログラム「P2」が試行OKであるが、トータルで試行NG(実行時間の超過)が発生した例である。端末制御部18は、最新版プログラム「P1」の実行時間(7分)が、更新前のプログラム「P1」の実行時間(3分)より4分のびてしまったことが試行NGの主要因であると解析し、プログラム「P1」のバージョンを更新前(1.0)に戻す。
Figure 2009157732
表8に示す試行判定管理部12は、表7と同様に、説明用の列(ケース)が追加されている。表の各データの意味は、表7と同じである。ケース(1)は、表7と同様に、2つのプログラムがともにバージョンアップする前を示す。ケース(5)からケース(7)までは、ともに、双方のプログラム「P1,P2」をバージョンアップした例である。
ケース(5)およびケース(6)は、片方のプログラムのみ試行NGとなる例である。この場合は、試行NGとなったプログラムのみ、バージョンを更新前に戻す。
ケース(7)は、双方の最新版プログラム「P1,P2」がそれぞれ単体では試行OKであるが、トータルで試行NG(実行時間の超過)が発生した例である。端末制御部18は、プログラム「P1」の実行時間(7分)と、プログラム「P2」の実行時間(5分)とを比較し、試行NGの発生要因となるプログラムを特定する。その結果、実行時間の長いプログラム「P1」を特定し、そのプログラム「P1」のバージョンを更新前(1.1)に戻す。
本発明の一実施形態に関するプログラム配信システムを示す構成図である。 本発明の一実施形態に関するプログラム配信システムの動作を示すフローチャートである。 本発明の一実施形態に関するプログラムの更新チェックの詳細を示すフローチャートである。
符号の説明
1 端末
10 記憶装置
11 試行判定条件管理部
12 試行判定管理部
13a 試行記憶部
13b 運用記憶部
18 端末制御部
2 配信サーバ
20 記憶装置
21 プログラム更新DB
22 端末状態DB
23 試行履歴DB
24 リポジトリ
28 サーバ制御部

Claims (7)

  1. 配信対象プログラムを実行する端末に対して、最新版の前記配信対象プログラムを配信する配信サーバであって、
    前記配信サーバは、
    前記最新版の配信対象プログラムについて、そのバージョンを示す第1バージョン情報と、1台以上の前記端末による試行履歴データと、を対応づけて記憶装置に記憶し、
    所定端末から前記配信対象プログラムの更新チェック依頼を受信すると、
    前記所定端末に対して既に配信されている前記配信対象プログラムのバージョンを示す第2バージョン情報と、前記記憶装置に記憶されている前記第1バージョン情報と、を照合することで、配信が必要か否かを判定し、
    配信が必要と判定されたとき、前記最新版の配信対象プログラムの前記試行履歴データを参照し、所定台数以上の端末が既に試行を成功している旨の試行要否条件を満たすか否かを判定し、
    前記試行要否条件を満たすときには、配信する前記最新版の配信対象プログラムに対して、試行せずに運用する旨を前記所定端末に通知するとともに、前記試行要否条件を満たさないときには、配信する前記最新版の配信対象プログラムに対して、試行を要する旨を前記所定端末に通知することを特徴とする
    配信サーバ。
  2. 前記配信サーバは、前記配信対象プログラムの前記試行履歴データを、前記端末が前記配信対象プログラムを実行することにより実施する業務ごとに分けて前記記憶装置に記憶し、
    前記試行要否条件を満たすか否かを判定するときに、前記試行履歴データにおける試行が成功した端末の台数のうちの前記所定端末が実施する業務を実施した端末の台数が、所定台数以上であるときに、前記試行要否条件を満たすと判定することを特徴とする
    請求項1に記載の配信サーバ。
  3. 配信対象プログラムを実行する端末に対して、最新版の前記配信対象プログラムを配信する配信サーバであって、
    前記配信サーバは、
    前記最新版の配信対象プログラムについて、そのバージョンを示す第1バージョン情報と、1台以上の前記端末による試行履歴データと、を対応づけて記憶装置に記憶し、
    所定端末から前記配信対象プログラムの更新チェック依頼を受信すると、
    前記所定端末に対して既に配信されている前記配信対象プログラムのバージョンを示す第2バージョン情報と、前記記憶装置に記憶されている前記第1バージョン情報と、を照合することで、配信が必要か否かを判定し、
    配信が必要と判定されたとき、前記最新版の配信対象プログラムの前記試行履歴データを参照し、
    前記所定端末の試行が成功した旨の履歴が存在するときには、配信する前記最新版の配信対象プログラムに対して、試行せずに運用する旨を前記所定端末に通知するとともに、前記所定端末の試行が失敗した旨の履歴が存在するときには、配信する前記最新版の配信対象プログラムに対して、試行を要する旨を前記所定端末に通知することを特徴とする
    配信サーバ。
  4. 前記配信サーバは、さらに、前記最新版の配信対象プログラムに対応づけられている前記試行履歴データにおいて、前記所定台数以上の端末が既に試行を失敗しているときには、配信が不要と判定することを特徴とする
    請求項1ないし請求項3のいずれか1項に記載の配信サーバ。
  5. 請求項1ないし請求項4のいずれか1項に記載の配信サーバと、前記端末とを有することを特徴とする
    配信システム。
  6. 配信対象プログラムを実行する端末に対して、最新版の前記配信対象プログラムを配信する配信サーバによる配信方法であって、
    前記配信サーバは、
    前記最新版の配信対象プログラムについて、バージョンを示す第1バージョン情報と、1台以上の前記端末による試行履歴データと、を対応づけて記憶装置に記憶し、
    所定端末から前記配信対象プログラムの更新チェック依頼を受信すると、
    前記所定端末に対して既に配信されている前記配信対象プログラムのバージョンを示す第2バージョン情報と、前記記憶装置に記憶されている前記第1バージョン情報とを照合することで、前記所定端末に前記最新版の配信対象プログラムが配信されているか否かを判定し、
    前記所定端末に前記最新版の配信対象プログラムが配信されていないとき、前記最新版の配信対象プログラムの前記試行履歴データを参照し、所定台数以上の端末が既に試行を成功している旨の試行要否条件を満たすか否かを判定し、
    前記試行要否条件を満たすときには、配信する前記最新版の配信対象プログラムに対して、試行せずに運用する旨を前記所定端末に通知するとともに、前記試行要否条件を満たさないときには、配信する前記最新版の配信対象プログラムに対して、試行を要する旨を前記所定端末に通知することを特徴とする
    配信方法。
  7. 配信サーバから端末に対して配信される配信対象プログラムであって、
    前記配信対象プログラムに組み込まれている配信動作プログラムは、前記端末に読み込まれ、実行されることにより、前記端末に、
    前記配信サーバに対して、前記配信対象プログラムのバージョンを最新バージョンに更新するためのチェックを依頼させ、
    前記配信サーバから、前記チェックへの返答である通知メッセージを受信すると、
    前記通知メッセージが試行不要であるとき、前記配信サーバから前記通知メッセージとともに配信された最新版の前記配信対象プログラムを、前記端末の記憶装置内の運用のための記憶領域に記憶して実行させ、
    前記通知メッセージが試行必要であるとき、前記配信サーバから前記通知メッセージとともに配信された最新版の前記配信対象プログラムを、前記端末の記憶装置内の試行のための記憶領域に記憶して実行し、その実行結果を前記配信サーバに通知させ、
    前記実行結果が試行成功のとき、前記試行のための記憶領域に記憶した最新版の前記配信対象プログラムを、前記端末の記憶装置内の運用のための記憶領域に記憶して実行させ、
    前記実行結果が試行失敗のとき、前記試行のための記憶領域に記憶した最新版の前記配信対象プログラムを、削除させることを特徴とする
    配信対象プログラム。
JP2007336443A 2007-12-27 2007-12-27 プログラムの配信サーバ、配信システム、配信方法、および、配信対象プログラム Active JP5024036B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007336443A JP5024036B2 (ja) 2007-12-27 2007-12-27 プログラムの配信サーバ、配信システム、配信方法、および、配信対象プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007336443A JP5024036B2 (ja) 2007-12-27 2007-12-27 プログラムの配信サーバ、配信システム、配信方法、および、配信対象プログラム

Publications (2)

Publication Number Publication Date
JP2009157732A true JP2009157732A (ja) 2009-07-16
JP5024036B2 JP5024036B2 (ja) 2012-09-12

Family

ID=40961676

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007336443A Active JP5024036B2 (ja) 2007-12-27 2007-12-27 プログラムの配信サーバ、配信システム、配信方法、および、配信対象プログラム

Country Status (1)

Country Link
JP (1) JP5024036B2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013030865A (ja) * 2011-07-27 2013-02-07 Eqs Kk プログラム
CN103678391A (zh) * 2012-09-19 2014-03-26 黑快马股份有限公司 信息交换系统及其交换方法
JP2016218664A (ja) * 2015-05-19 2016-12-22 株式会社東芝 保護制御装置のソフトウェア変更装置、変更プログラム及び保護制御装置
US9658843B2 (en) 2014-01-20 2017-05-23 Canon Kabushiki Kaisha Distribution system and its control method
US10157050B2 (en) 2013-10-18 2018-12-18 Fujitsu Limited Method for confirming correction program and information processing apparatus
JP2020013389A (ja) * 2018-07-19 2020-01-23 富士ゼロックス株式会社 プログラム配信システム、管理者装置、ユーザ端末、及びプログラム
JP2021166099A (ja) * 2017-06-23 2021-10-14 カシオ計算機株式会社 電子機器、プログラム、サーバ、グラフ画像生成システムおよび画像生成方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002007256A (ja) * 2000-06-23 2002-01-11 Canon Inc 情報処理システム及びその制御方法、コンピュータ可読メモリ
JP2005250732A (ja) * 2004-03-03 2005-09-15 Fujitsu Ltd バージョンアップ制御プログラムおよびバージョンアップ制御方法
JP2006302174A (ja) * 2005-04-25 2006-11-02 Olympus Corp 端末機能更新システム
JP2007199947A (ja) * 2006-01-25 2007-08-09 Hitachi Ltd インストール支援方法、インストール支援システム、及びプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002007256A (ja) * 2000-06-23 2002-01-11 Canon Inc 情報処理システム及びその制御方法、コンピュータ可読メモリ
JP2005250732A (ja) * 2004-03-03 2005-09-15 Fujitsu Ltd バージョンアップ制御プログラムおよびバージョンアップ制御方法
JP2006302174A (ja) * 2005-04-25 2006-11-02 Olympus Corp 端末機能更新システム
JP2007199947A (ja) * 2006-01-25 2007-08-09 Hitachi Ltd インストール支援方法、インストール支援システム、及びプログラム

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013030865A (ja) * 2011-07-27 2013-02-07 Eqs Kk プログラム
CN103678391A (zh) * 2012-09-19 2014-03-26 黑快马股份有限公司 信息交换系统及其交换方法
US10157050B2 (en) 2013-10-18 2018-12-18 Fujitsu Limited Method for confirming correction program and information processing apparatus
US9658843B2 (en) 2014-01-20 2017-05-23 Canon Kabushiki Kaisha Distribution system and its control method
JP2016218664A (ja) * 2015-05-19 2016-12-22 株式会社東芝 保護制御装置のソフトウェア変更装置、変更プログラム及び保護制御装置
JP2021166099A (ja) * 2017-06-23 2021-10-14 カシオ計算機株式会社 電子機器、プログラム、サーバ、グラフ画像生成システムおよび画像生成方法
JP7201031B2 (ja) 2017-06-23 2023-01-10 カシオ計算機株式会社 電子機器、プログラム、グラフ画像生成システムおよび画像生成方法
JP2020013389A (ja) * 2018-07-19 2020-01-23 富士ゼロックス株式会社 プログラム配信システム、管理者装置、ユーザ端末、及びプログラム
JP7187859B2 (ja) 2018-07-19 2022-12-13 富士フイルムビジネスイノベーション株式会社 プログラム配信システム、管理者装置、ユーザ端末、及びプログラム

Also Published As

Publication number Publication date
JP5024036B2 (ja) 2012-09-12

Similar Documents

Publication Publication Date Title
JP5024036B2 (ja) プログラムの配信サーバ、配信システム、配信方法、および、配信対象プログラム
JP5058450B2 (ja) 効率的なパッチ当て
US9213534B2 (en) Method for restoring software applications on desktop computers
CN102216905B (zh) 为运行在计算系统中的应用创建应用还原点的方法和系统
EP2040162B1 (en) Systems and methods for patching computer programs
US7958210B2 (en) Update management method and update management unit
US8296756B1 (en) Patch cycle master records management and server maintenance system
US8370825B2 (en) Program-update prioritization according to program-usage tracking
US6421671B1 (en) Method and system for automated distribution of software
US20090328026A1 (en) Update system, program execution device, and computer program
US20100192147A1 (en) Method of installing software, program, and information processing apparatus
JP2005327276A (ja) 効率的なパッチ当て
CN1965295A (zh) 发布管理方法
US7181739B1 (en) Installation relationship database
US20050144617A1 (en) Automatic configuration of reinstall information
US20110088025A1 (en) Use of software update policies
US20190087170A1 (en) Method For Installing And Updating Software Programs, Corresponding Server And Software Package
US20090276779A1 (en) Job management apparatus
JP5279981B2 (ja) 更新制御プログラム、更新制御方法および更新制御装置
US20060200589A1 (en) Automated driver reset for an information handling system
TWI466049B (zh) 客製化生產(cto)軟體部署及管理
JP2002318694A (ja) インストール方法、インストールシステム、処理装置、コンピュータプログラム、及び記録媒体
JPH11272451A (ja) ソフトウェアのインストール制御システムと方法およびそのプログラムを記録した記録媒体
JP2000003271A (ja) ソフトウェア管理装置及びプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2008090485A (ja) ジョブ管理装置、システムおよびプログラム

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090617

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100811

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120514

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: 20120522

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120604

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150629

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5024036

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150