説明

ソフトウェア管理システム

【課題】システム負荷を増大させることなく、複数の医用装置にソフトウェアを円滑に配信する。
【解決手段】ソフトウェア管理システム1は、医用装置3−1〜3−nとサーバ2を備える。各医用装置3−1〜3−nは、医用ソフトウェア310の動作状況を示すログ情報320を記録するログ記録部32を備える。サーバ2は、障害修正用ソフトウェア210を格納する情報格納部21と、各医用装置3−1〜3−nのログ情報320に基づいて、それら医用装置3−1〜3−nに対する障害修正用ソフトウェア210の配信順序を決定する配信順序決定部22と、決定された配信順序に基づいて医用装置3−1〜3−nに障害修正用ソフトウェア210を配信する配信制御部200とを備える。医用装置3−1〜3−nは、サーバ2から配信された障害修正用ソフトウェア210により医用ソフトウェア310をアップデートする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、医用装置を制御するソフトウェアに発生した障害に対処するためのソフトウェア管理システムに関するもので、特に、ソフトウェアの遠隔アップデート技術に関するものである。
【背景技術】
【0002】
従来、一般に使用されている基本ソフトウェア(オペレーティングシステム)やアプリケーションソフトウェアに障害が発生した場合、ソフトウェア提供側のサービスエンジニアが、そのソフトウェア自身の動作状況や、障害発生時におけるメモリダンプの情報を参照しつつ障害の原因を特定し、その障害を解決するための修正用ソフトウェアや対処手順をユーザに提供していた(たとえば特許文献1参照)。
【0003】
また、近年では、修正用ソフトウェア等のアップデート内容を広域ネットワーク上のサーバに格納しておき、そのアップデート内容を目的のクライアントに対して配信する機能、いわゆる遠隔ソフトウェアアップデート機能を有するソフトウェア管理システムが利用されるようになってきている(たとえば特許文献2参照)。
【0004】
この遠隔ソフトウェアアップデート機能は、たとえば次のように作用する。クライアント(コンピュータ端末等)に電源が投入されると、そのクライアントからサーバに、ソフトウェアのアップデートが必要か否か確認するための信号が送信される。サーバは、この信号に基づいて確認の対象となるアップデート内容が存在するか確認する。アップデート内容が存在する場合、そのアップデート内容をクライアントに送信する。クライアントは、そのアップデート内容を受信して目的のソフトウェアのアップデートを実行する。
【0005】
このようなシステムを利用することにより、複数のクライアントを一元的に管理できるとともに、修正用ソフトウェアの送信処理も一元化することが可能となる。現在では、広域ネットワーク上の多くのクライアントがこのシステムによってアップデートを行うようになっている。
【0006】
このような機能を有するシステムを実際に運用する際には、修正用ソフトウェア等のアップデート内容を円滑に配信すること、そして、クライアントにて発生した障害の内容や原因を正確に特定することが重要になってくる。
【0007】
たとえば、修正用プログラム等のアップデート内容のデータ量が多い場合や、多数のクライアントが同時に起動された場合に、サーバが行うべき処理量が増大して対応できなくなることがあり、また、ネットワーク経由でのデータ送信に時間が掛かってしまうことがある。それにより、サーバに過大な処理負荷が掛かり、また、クライアントの起動時間が長くなるといった問題が発生してしまう。したがって、このような問題を解消するために、アップデート内容のデータ量が多い場合や、多数のクライアントを配信対象とする場合であっても、アップデート内容の配信処理を円滑に行えることが望ましい。
【0008】
現状では、負荷設計、すなわち、配信するソフトウェアのデータ量の最大サイズをあらかじめ想定し、サーバの台数を増加させて各サーバの処理負荷を軽減させたり、ネットワークの通信データの許容量を増大(ネットワーク負荷を軽減)させたりすることによって、配信処理の円滑化を図っている。
【0009】
一方、ソフトウェア障害の内容や原因の特定については、それらを特定しない限り、ソフトウェアの適当な部分に適当な対処を施すことができないことを考慮すると、その重要性は当然である。
【0010】
ところで、近年、各種の医用装置を制御するためのソフトウェアのアップデートについても、上記の遠隔方式で行うようになってきた。そのようなソフトウェア管理システムは、アップデートサービス提供側に設置されたサーバと、医療機関に設置された各種医用装置(クライアント)とを、インターネット等の広域ネットワーク(公衆通信網)で接続した構成を備える。
【0011】
医用装置を制御するソフトウェアは、もし障害が発生すると、誤診や患者取り違えなどの重大な事態を引き起こす可能性を抱えている。そのため、運用前(出荷前)には、通常のオフィス用ないし個人用のソフトウェアと比較して非常に綿密なソフトウェア試験が行われている。したがって、障害の発生頻度は、他分野のソフトウェアと比べて一般に少ない。しかしながら、運用前の試験を徹底的に行ったとしても、時には想定外の障害が発生することがある。そのため、医用目的のソフトウェアに発生する障害は、非常に複雑なものとなる。
【0012】
また、医用装置は、他の医用装置や周辺機器に接続されていることが多いため、障害の内容や原因を特定するためには、障害が発生したソフトウェアの情報だけでなく、他の医用装置や周辺機器からの割り込み処理なども解析する必要がある。また、複数のソフトウェアが同時並行的に動作している場合には、障害が発生したソフトウェアに対する他のソフトウェアとの影響についても解析しなければならない。更に、障害発生前の操作手順など、その他の要素も解析する必要がある。このように、医用目的のソフトウェアの障害の内容や原因を特定するには、障害発生前の様々なイベントを総合的に解析し、障害発生時の状況を再現してやらねばならない。
【0013】
このように、発生する障害自体が複雑であること、更に、他のハードウェアやソフトウェアの影響を考慮する必要があることを勘案すると、医用装置のソフトウェア障害の内容や原因を正確に特定することは非常に困難である。これは、医用分野において遠隔ソフトウェアアップデートを好適に行うための一つの障壁となっている。
【0014】
一方、多くの病院等の医療機関は、同様の時刻(午前8時〜10時くらい)に業務を開始するため、医用装置に電源が投入される時刻が、おおよそ午前7〜9時に集中するという現状がある。そうすると、サーバは、この数時間程度の間に多くの医用装置に対応しなければならないことになる。したがって、当該数時間程度における処理負荷を達成できるように、サーバ台数を増やしたり(サーバ容量の冗長化)、ネットワークの通信データの許容量を増大させたり(ネットワーク容量の拡大)する必要がある。しかし、当該数時間程度の間以外の時間には、そのような負荷設計は明らかに過剰であり、全体として高コスト化してしまう。特に、公衆回線の許容量を増大させると、システム維持費に占める通信費の割合が大きくなり、結果として、ユーザが負担する医用装置の保守費が増加してしまう。
【0015】
また、近年のソフトウェアは、処理実行単位や機能単位毎の複数のソフトウェアモジュールを含んで構成されているのが一般的である。医療分野においても、一つの医用装置に様々な機能を持たせるために、複数のソフトウェアモジュールを含むソフトウェアが広く用いられており、多数の医用装置に共通のソフトウェアモジュールが搭載されていることが多い。
【0016】
このようなソフトウェアに障害が発生した場合、多数の医用装置の品質管理を均一に行うために、障害が発生したソフトウェアモジュールをアップデートするためのソフトウェアを、各医用装置に配布する必要がある。
【0017】
一方、共通のソフトウェアモジュールを搭載していても、医用装置の種類や現場での運用形態などによって、そのソフトウェアモジュールを頻繁に利用する医療機関と、ほとんど(全く)利用しない医療機関とが存在する。障害が発生した場合、当該ソフトウェアモジュールをほとんど利用しない医療機関よりも、頻繁に利用する医療機関の方が、障害修復への緊急性が高いと思われる。しかしながら、従来のソフトウェア配信技術では、このような緊急性の違いを考慮して配信スケジュールを組むことができなかった。
【0018】
【特許文献1】特開平5−165626号公報
【特許文献2】特開2004−265304号公報
【発明の開示】
【発明が解決しようとする課題】
【0019】
本発明は、このような事情に鑑みて為されたもので、サーバ容量の冗長化やネットワーク容量の拡大などのシステム負荷を増大させることなく、アップデート用のソフトウェアを複数の医用装置に円滑に配信することが可能なソフトウェア管理システムを提供することを目的とする。
【0020】
また、本発明は、医用装置を制御するソフトウェアに障害が発生したときに、その医用装置を運用する各医療機関における障害修復の緊急性や必要性に応じて、アップデート用のソフトウェアを配信することが可能なソフトウェア管理システムを提供することを他の目的とするものである。
【0021】
また、本発明は、医用装置を制御するソフトウェアに発生した障害の内容を的確に特定し、適当なアップデート用ソフトウェアを配信することが可能なソフトウェア管理システムを提供することを他の目的とするものである。
【課題を解決するための手段】
【0022】
上記目的を達成するために、請求項1に記載の発明は、広域ネットワークにそれぞれ接続され、ソフトウェアを記憶するソフトウェア記憶手段をそれぞれに備え、該記憶されたソフトウェアによりそれぞれ制御される複数の医用装置と、前記広域ネットワークに接続され、前記ソフトウェアに発生した障害を修正するアップデート用ソフトウェアを、前記広域ネットワークを通じて、前記複数の医用装置に配信するソフトウェア配信サーバと、を含むソフトウェア管理システムであって、前記複数の医用装置のそれぞれについて、前記ソフトウェアの動作状況を示す動作状況情報を記録する記録手段を備え、前記ソフトウェア配信サーバは、アップデート用ソフトウェアをあらかじめ格納する格納手段と、前記記録された動作状況情報に基づいて、前記複数の医用装置に対する前記アップデート用ソフトウェアの配信順序を決定する配信スケジュール決定手段と、前記決定された配信順序に基づいて、前記複数の医用装置に前記アップデート用ソフトウェアを配信する配信制御手段と、を備え、前記複数の医用装置のそれぞれは、前記配信された前記アップデート用ソフトウェアにより前記ソフトウェアのアップデートを行う、ことを特徴とする。
【0023】
また、請求項7に記載の発明は、広域ネットワークにそれぞれ接続され、ソフトウェアを記憶するソフトウェア記憶手段をそれぞれに備え、該記憶されたソフトウェアによりそれぞれ制御される複数の医用装置と、前記広域ネットワークに接続され、前記ソフトウェアに発生した障害を修正するアップデート用ソフトウェアを、前記広域ネットワークを通じて、前記複数の医用装置に配信するソフトウェア配信サーバと、を含むソフトウェア管理システムであって、前記複数の医用装置のそれぞれは、前記ソフトウェアの障害に関連する特定の処理を当該医用装置が実行する度毎に、該特定の処理を識別する特定処理識別情報と、該特定の処理が実行された日時を示す特定処理日時情報とを、互いに関連付けて記録する記録手段と、前記記録された前記特定処理識別情報のうち、所定の期間に属する日時を示す特定処理日時情報に関連付けられた特定処理識別情報の個数をカウントして、前記ソフトウェアにおける障害の発生頻度情報を作成する発生頻度情報作成手段と、を備え、前記ソフトウェア配信サーバは、前記アップデート用ソフトウェアをあらかじめ格納する格納手段と、前記発生頻度情報作成手段の動作を要求する要求信号を、前記広域ネットワークを通じて、前記複数の医用装置のそれぞれに送信する送信手段と、前記送信された要求信号に対応して前記発生頻度情報作成手段により作成された発生頻度情報を、前記広域ネットワークを通じて、前記複数の医用装置のそれぞれから受信する受信手段と、前記複数の医用装置のそれぞれから受信した前記発生頻度情報に示す前記特定処理識別情報の個数を比較し、前記複数の医用装置のそれぞれに対して、前記個数の多い医用装置から順に前記アップデート用ソフトウェアを送信する順位を指定することにより、前記複数の医用装置に対する前記アップデート用ソフトウェアの配信順序を決定する配信スケジュール決定手段と、前記決定された配信順序に基づいて、前記複数の医用装置に前記アップデート用ソフトウェアを配信する配信制御手段と、を備え、前記複数の医用装置のそれぞれは、前記配信された前記アップデート用ソフトウェアにより前記ソフトウェアのアップデートを行う、ことを特徴とする。
【0024】
また、請求項8に記載の発明は、広域ネットワークにそれぞれ接続され、ソフトウェアを記憶するソフトウェア記憶手段をそれぞれに備え、該記憶されたソフトウェアによりそれぞれ制御される複数の医用装置と、前記広域ネットワークに接続され、前記ソフトウェアに発生した障害を修正するアップデート用ソフトウェアを、前記広域ネットワークを通じて、前記複数の医用装置に配信するソフトウェア配信サーバと、を含むソフトウェア管理システムであって、前記複数の医用装置のそれぞれは、当該医用装置が前記ソフトウェアを使用する度毎に、その使用日時を示す使用日時情報を記録する記録手段と、前記記録された使用日時情報のうち、所定の期間に属する使用日時を示す使用日時情報の個数をカウントして、当該医用装置における前記ソフトウェアの使用頻度情報を作成する使用頻度情報作成手段と、を備え、前記ソフトウェア配信サーバは、前記アップデート用ソフトウェアをあらかじめ格納する格納手段と、前記使用頻度情報作成手段の動作を要求する要求信号を、前記広域ネットワークを通じて、前記複数の医用装置のそれぞれに送信する送信手段と、前記送信された要求信号に対応して前記使用頻度情報作成手段により作成された使用頻度情報を、前記広域ネットワークを通じて、前記複数の医用装置のそれぞれから受信する受信手段と、前記複数の医用装置のそれぞれから受信した前記使用頻度情報に示す前記使用日時情報の個数を比較し、前記複数の医用装置のそれぞれに対して、前記個数の多い医用装置から順に前記アップデート用ソフトウェアを送信する順位を指定することにより、前記複数の医用装置に対する前記アップデート用ソフトウェアの配信順序を決定する配信スケジュール決定手段と、前記決定された配信順序に基づいて、前記複数の医用装置に前記アップデート用ソフトウェアを配信する配信制御手段と、を備え、前記複数の医用装置のそれぞれは、前記配信された前記アップデート用ソフトウェアにより前記ソフトウェアのアップデートを行う、ことを特徴とする。
【0025】
また、請求項9に記載の発明は、広域ネットワークにそれぞれ接続され、ソフトウェアを記憶するソフトウェア記憶手段をそれぞれに備え、該記憶されたソフトウェアによりそれぞれ制御される複数の医用装置と、前記広域ネットワークに接続され、前記ソフトウェアに発生した障害を修正するアップデート用ソフトウェアを、前記広域ネットワークを通じて、前記複数の医用装置に配信するソフトウェア配信サーバと、を含むソフトウェア管理システムであって、前記複数の医用装置のそれぞれは、当該医用装置が前記ソフトウェアを使用する度毎に、その使用日時を示す使用日時情報を記録する記録手段と、前記記録された使用日時情報のうち、所定の期間に属する使用日時を示す使用日時情報に基づいて、当該所定の期間における前記ソフトウェアの使用時間を算出して、当該医用装置における前記ソフトウェアの使用頻度情報を作成する使用頻度情報作成手段と、を備え、前記ソフトウェア配信サーバは、前記アップデート用ソフトウェアをあらかじめ格納する格納手段と、前記使用頻度情報作成手段の動作を要求する要求信号を、前記広域ネットワークを通じて、前記複数の医用装置のそれぞれに送信する送信手段と、前記送信された要求信号に対応して前記使用頻度情報作成手段により作成された使用頻度情報を、前記広域ネットワークを通じて、前記複数の医用装置のそれぞれから受信する受信手段と、前記複数の医用装置のそれぞれから受信した前記使用頻度情報に示す前記使用時間の値を比較し、前記複数の医用装置のそれぞれに対して、前記使用時間の値の大きい医用装置から順に前記アップデート用ソフトウェアを送信する順位を指定することにより、前記複数の医用装置に対する前記アップデート用ソフトウェアの配信順序を決定する配信スケジュール決定手段と、前記決定された配信順序に基づいて、前記複数の医用装置に前記アップデート用ソフトウェアを配信する配信制御手段と、を備え、前記複数の医用装置のそれぞれは、前記配信された前記アップデート用ソフトウェアにより前記ソフトウェアのアップデートを行う、ことを特徴とする。
【0026】
また、請求項12に記載の発明は、広域ネットワークにそれぞれ接続され、ソフトウェアを記憶するソフトウェア記憶手段をそれぞれに備え、該記憶されたソフトウェアによりそれぞれ制御される複数の医用装置と、前記広域ネットワークに接続され、前記ソフトウェアに発生した障害を修正するアップデート用ソフトウェアを、前記広域ネットワークを通じて、前記複数の医用装置に配信するソフトウェア配信サーバと、を含むソフトウェア管理システムであって、前記複数の医用装置のそれぞれについて、前記ソフトウェアの動作状況を示す動作状況情報を記録する記録手段と、前記複数の医用装置の一部からなる2以上の医用装置のそれぞれについて前記記録された動作状況情報に基づいて、前記2以上の医用装置のそれぞれの前記ソフトウェアにおける障害の発生頻度を示す発生頻度情報を作成する発生頻度情報作成手段と、を備え、前記ソフトウェア配信サーバは、アップデート用ソフトウェアをあらかじめ格納する格納手段と、前記作成された前記2以上の医用装置のそれぞれの発生頻度情報に基づいて、前記複数の医用装置における前記障害の発生頻度の分布を推定する演算手段と、前記推定された前記障害の発生頻度の分布に基づいて、該分布における前記発生頻度のそれぞれの値について、前記アップデート用ソフトウェアの送信開始日時を決定する送信開始日時決定手段と、前記決定された送信開始日時に基づいて、前記複数の医用装置に前記アップデート用ソフトウェアを配信する配信制御手段と、を備え、当該医用装置は、前記配信された前記アップデート用ソフトウェアにより前記ソフトウェアのアップデートを行う、ことを特徴とする。
【0027】
また、請求項14に記載の発明は、広域ネットワークにそれぞれ接続され、ソフトウェアを記憶するソフトウェア記憶手段をそれぞれに備え、該記憶されたソフトウェアによりそれぞれ制御される複数の医用装置と、前記広域ネットワークに接続され、前記ソフトウェアに発生した障害を修正するアップデート用ソフトウェアを、前記広域ネットワークを通じて、前記複数の医用装置に配信するソフトウェア配信サーバと、を含むソフトウェア管理システムであって、前記複数の医用装置のそれぞれについて、前記ソフトウェアの動作状況を示す動作状況情報を記録する記録手段と、前記複数の医用装置の一部からなる2以上の医用装置のそれぞれについて前記記録された動作状況情報に基づいて、前記2以上の医用装置のそれぞれにおける前記ソフトウェアの使用頻度を示す使用頻度情報を作成する使用頻度情報作成手段と、を備え、前記ソフトウェア配信サーバは、アップデート用ソフトウェアをあらかじめ格納する格納手段と、前記作成された前記2以上の医用装置のそれぞれの使用頻度情報に基づいて、前記複数の医用装置における前記ソフトウェアの使用頻度の分布を推定する演算手段と、前記推定された前記使用頻度の分布に基づいて、該分布における前記使用頻度のそれぞれの値について、前記アップデート用ソフトウェアの送信開始日時を決定する送信開始日時決定手段と、前記決定された送信開始日時に基づいて、前記複数の医用装置に前記アップデート用ソフトウェアを配信する配信制御手段と、を備え、当該医用装置は、前記配信された前記アップデート用ソフトウェアにより前記ソフトウェアのアップデートを行う、ことを特徴とする。
【0028】
また、請求項17に記載の発明は、広域ネットワークにそれぞれ接続され、ソフトウェアを記憶するソフトウェア記憶手段をそれぞれに備え、該記憶されたソフトウェアによりそれぞれ制御される複数の医用装置と、前記広域ネットワークに接続され、前記ソフトウェアに発生した障害を修正するアップデート用ソフトウェアを、前記広域ネットワークを通じて、前記複数の医用装置に配信するソフトウェア配信サーバと、を含むソフトウェア管理システムであって、前記複数の医用装置のそれぞれは、当該医用装置が前記ソフトウェアの障害に関連する特定の処理を実行する度毎に、該特定の処理を識別する特定処理識別情報と、該特定の処理が実行された日時を示す特定処理日時情報とを互いに関連付けて記録する記録手段と、前記記録された特定処理識別情報のうち、所定の期間に属する日時を示す特定処理日時情報に関連付けられた特定処理識別情報の個数をカウントして、当該医用装置における前記障害の発生頻度情報を作成する発生頻度情報作成手段と、を備え、アップデート用ソフトウェアの送信を要求する送信要求信号を、前記広域ネットワークを通じて、前記ソフトウェア配信サーバに送信し、前記ソフトウェア配信サーバは、アップデート用ソフトウェアをあらかじめ格納する格納手段と、前記発生頻度情報作成手段の動作を要求する要求信号を、前記広域ネットワークを通じて、前記複数の医用装置の一部からなる2以上の医用装置のそれぞれに送信する送信手段と、前記送信された要求信号に対応して前記発生頻度情報作成手段により作成された発生頻度情報を、前記広域ネットワークを通じて、前記2以上の医用装置のそれぞれから受信する受信手段と、前記受信した前記発生頻度情報に基づいて、前記2以上の医用装置における前記特定処理識別情報の個数の分布を求めるとともに、該求められた分布と、前記複数の医用装置の装置数に対する前記2以上の医用装置の装置数の比率とに基づいて、前記複数の医用装置における前記特定処理識別情報の個数の分布を推定する演算手段と、前記複数の医用装置の装置数と、所定時間内にアップデート用ソフトウェアを送信可能な医用装置の最大装置数を示すあらかじめ設定された配信可能装置数情報と、前記推定された前記特定処理識別情報の個数の分布とに基づいて、該分布における前記特定処置識別情報の個数のそれぞれの値について、前記アップデート用ソフトウェアの送信開始日時を決定する送信開始日時決定手段と、前記複数の医用装置のいずれかにより送信された前記送信要求信号が受信されたときに、当該医用装置の前記記録手段に記録された特定処理識別情報と特定処理日時情報とに基づいて前記発生頻度作成手段により作成される発生頻度情報に示す特定処理識別情報の個数の値を取得し、現在日時が、該取得された個数の値に対応する送信開始日時以降であるか判断する日時判断手段と、前記現在日時が前記送信開始日以降であると前記判断された場合にのみ、当該医用装置に前記アップデート用ソフトウェアを送信する配信制御手段と、を備え、当該医用装置は、前記送信された前記アップデート用ソフトウェアにより前記ソフトウェアのアップデートを行う、ことを特徴とする。
【0029】
また、請求項18に記載の発明は、広域ネットワークにそれぞれ接続され、ソフトウェアを記憶するソフトウェア記憶手段をそれぞれに備え、該記憶されたソフトウェアによりそれぞれ制御される複数の医用装置と、前記広域ネットワークに接続され、前記ソフトウェアに発生した障害を修正するアップデート用ソフトウェアを、前記広域ネットワークを通じて、前記複数の医用装置に配信するソフトウェア配信サーバと、を含むソフトウェア管理システムであって、前記複数の医用装置のそれぞれは、当該医用装置が前記ソフトウェアを使用する度毎に、その使用日時を示す使用日時情報を記録する記録手段と、前記記録された使用日時情報のうち、所定の期間に属する使用日時を示す使用日時情報の個数をカウントして、当該医用装置における前記ソフトウェアの使用頻度情報を作成する使用頻度情報作成手段と、を備え、アップデート用ソフトウェアの送信を要求する送信要求信号を、前記広域ネットワークを通じて、前記ソフトウェア配信サーバに送信し、前記ソフトウェア配信サーバは、アップデート用ソフトウェアをあらかじめ格納する格納手段と、前記使用頻度情報作成手段の動作を要求する要求信号を、前記広域ネットワークを通じて、前記複数の医用装置の一部からなる2以上の医用装置のそれぞれに送信する送信手段と、前記送信された要求信号に対応して前記使用頻度情報作成手段により作成された使用頻度情報を、前記広域ネットワークを通じて、前記2以上の医用装置のそれぞれから受信する受信手段と、前記受信した前記使用頻度情報に基づいて、前記2以上の医用装置における前記使用日時情報の個数の分布を求めるとともに、該求められた分布と、前記複数の医用装置の装置数に対する前記2以上の医用装置の装置数の比率とに基づいて、前記複数の医用装置における前記使用日時情報の個数の分布を推定する演算手段と、前記複数の医用装置の装置数と、所定時間内にアップデート用ソフトウェアを送信可能な医用装置の最大装置数を示すあらかじめ設定された配信可能装置数情報と、前記推定された前記使用日時情報の個数の分布とに基づいて、該分布における前記使用日時情報の個数のそれぞれの値について、前記アップデート用ソフトウェアの送信開始日時を決定する送信開始日時決定手段と、前記複数の医用装置のいずれかにより送信された前記送信要求信号が受信されたときに、当該医用装置の前記記録手段に記録された使用日時情報に基づいて前記使用頻度作成手段により作成される使用頻度情報に示す使用日時情報の個数の値を取得し、現在日時が、該取得された個数の値に対応する送信開始日時以降であるか判断する日時判断手段と、前記現在日時が前記送信開始日以降であると前記判断された場合にのみ、当該医用装置に前記アップデート用ソフトウェアを送信する配信制御手段と、を備え、当該医用装置は、前記送信された前記アップデート用ソフトウェアにより前記ソフトウェアのアップデートを行う、ことを特徴とする。
【0030】
また、請求項19に記載の発明は、広域ネットワークにそれぞれ接続され、ソフトウェアを記憶するソフトウェア記憶手段をそれぞれに備え、該記憶されたソフトウェアによりそれぞれ制御される複数の医用装置と、前記広域ネットワークに接続され、前記ソフトウェアに発生した障害を修正するアップデート用ソフトウェアを、前記広域ネットワークを通じて、前記複数の医用装置に配信するソフトウェア配信サーバと、を含むソフトウェア管理システムであって、前記複数の医用装置のそれぞれは、当該医用装置が前記ソフトウェアを使用する度毎に、その使用日時を示す使用日時情報を記録する記録手段と、前記記録された使用日時情報のうち、所定の期間に属する使用日時を示す使用日時情報に基づいて、当該所定の期間における前記ソフトウェアの使用時間を算出して、当該医用装置における前記ソフトウェアの使用頻度情報を作成する使用頻度情報作成手段と、を備え、アップデート用ソフトウェアの送信を要求する送信要求信号を、前記広域ネットワークを通じて、前記ソフトウェア配信サーバに送信し、前記ソフトウェア配信サーバは、アップデート用ソフトウェアをあらかじめ格納する格納手段と、前記使用頻度情報作成手段の動作を要求する要求信号を、前記広域ネットワークを通じて、前記複数の医用装置の一部からなる2以上の医用装置のそれぞれに送信する送信手段と、前記送信された要求信号に対応して前記使用頻度情報作成手段により作成された使用頻度情報を、前記広域ネットワークを通じて、前記2以上の医用装置のそれぞれから受信する受信手段と、前記受信した前記使用頻度情報に基づいて、前記2以上の医用装置における前記使用時間の分布を求めるとともに、該求められた分布と、前記複数の医用装置の装置数に対する前記2以上の医用装置の装置数の比率とに基づいて、前記複数の医用装置における前記使用時間の分布を推定する演算手段と、前記複数の医用装置の装置数と、所定時間内にアップデート用ソフトウェアを送信可能な医用装置の最大装置数を示すあらかじめ設定された配信可能装置数情報と、前記推定された前記使用時間の分布とに基づいて、該分布における前記使用時間のそれぞれの値について、前記アップデート用ソフトウェアの送信開始日時を決定する送信開始日時決定手段と、前記複数の医用装置のいずれかにより送信された前記送信要求信号が受信されたときに、当該医用装置の前記記録手段に記録された使用日時情報に基づいて前記使用頻度作成手段により作成される使用頻度情報に示す使用時間の値を取得し、現在日時が、該取得された使用時間の値に対応する送信開始日時以降であるか判断する日時判断手段と、前記現在日時が前記送信開始日以降であると前記判断された場合にのみ、当該医用装置に前記アップデート用ソフトウェアを送信する配信制御手段と、を備え、当該医用装置は、前記送信された前記アップデート用ソフトウェアにより前記ソフトウェアのアップデートを行う、ことを特徴とする。
【0031】
また、請求項20に記載の発明は、広域ネットワークにそれぞれ接続され、ソフトウェアを記憶するソフトウェア記憶手段をそれぞれに備え、該記憶されたソフトウェアによりそれぞれ制御される複数の医用装置と、前記広域ネットワークに接続され、前記ソフトウェアに発生した障害を修正するアップデート用ソフトウェアを、前記広域ネットワークを通じて、前記複数の医用装置に配信するソフトウェア配信サーバと、を含むソフトウェア管理システムであって、前記複数の医用装置のそれぞれは、前記ソフトウェアの障害に関連する特定の処理が実行される度毎に、該特定の処理を識別する特定処理識別情報を記録する記録手段と、前記ソフトウェアに障害が発生したときに、該障害の発生日時の所定時間前から該発生日時までの間に前記記録された特定処理識別情報を、前記広域ネットワークを通じて、前記ソフトウェア配信サーバに送信する特定処理識別情報送信手段と、を備え、前記ソフトウェア配信サーバは、過去に前記ソフトウェアに発生した障害に関連する特定の処理の特定処理識別情報を含む障害履歴情報と、当該障害を修正するアップデート用ソフトウェアとを、互いに関連付けてあらかじめ格納する格納手段と、前記複数の医用装置のいずれかにより送信された前記特定処理識別情報を受信する受信手段と、前記受信された特定処理識別情報と同一の特定処理識別情報を含む障害履歴情報を前記格納手段から検索する検索手段と、障害履歴情報が前記検索された場合に、該検索された障害履歴情報に関連付けられたアップデート用ソフトウェアを、前記広域ネットワークを通じて、前記複数の医用装置に配信する配信制御手段と、を備え、前記複数の医用装置のそれぞれは、前記配信されたアップデート用ソフトウェアにより前記ソフトウェアのアップデートを行う、ことを特徴とする。
【発明の効果】
【0032】
請求項1に記載のソフトウェア管理システムは、ソフトウェア配信サーバと複数の医用装置とを含んで構成され、各医用装置におけるソフトウェアの動作状況情報を記録するとともに、ソフトウェア配信サーバが、記録された動作状況情報に基づいて複数の医用装置に対するアップデート用ソフトウェアの配信順序を決定し、その決定された配信順序に基づいて複数の医用装置にアップデート用ソフトウェアを配信するように動作する。そして、各医用装置は、配信されたアップデート用ソフトウェアによってソフトウェアのアップデートを行うようになっている。
【0033】
このようなソフトウェア管理システムによれば、複数の医用装置に対して無作為にアップデート用ソフトウェアの配信を行っていた従来の構成とは異なり、各医用装置の動作状況(たとえば障害の発生頻度やソフトウェアの使用頻度など)に応じて配信順序を決定することができるので、アップデートの緊急性や必要性の高い医用装置に対して優先的にアップデート用ソフトウェアを送信することができる。また、このような配信処理を実行することにより、サーバ容量の冗長化やネットワーク容量の拡大などのシステム負荷を増大させることなく、円滑な配信処理を実現することができる。
【0034】
請求項12に記載のソフトウェア管理システムは、ソフトウェア配信サーバと複数の医用装置とを含んで構成され、各医用装置におけるソフトウェアの動作状況情報を記録するとともに、複数の医用装置の一部からなる2以上の医用装置の動作状況情報に基づいて、それら2以上の医用装置におけるソフトウェアにおける障害の発生頻度を示す発生頻度情報を作成するようになっている。ソフトウェア配信サーバは、その2以上の医用装置の発生頻度情報に基づいて複数の医用装置全体における障害の発生頻度の分布を推定し、その推定された分布における発生頻度の各値に対してアップデート用ソフトウェアの送信開始日時を決定し、複数の医用装置に対するアップデート用ソフトウェアの配信を行うようになっている。
【0035】
このようなソフトウェア管理システムによれば、請求項1の発明と同様に、アップデートの緊急性や必要性の高い医用装置に対して優先的にアップデート用ソフトウェアを送信することができ、サーバ容量の冗長化やネットワーク容量の拡大などのシステム負荷を増大させることなく、円滑な配信処理を実現することができる。
【0036】
更に、このソフトウェア管理システムによれば、一部の医用装置の発生頻度情報を取得するだけで全ての医用装置に対する配信スケジュールを決定するように作用することから、配信スケジュールの決定処理を効率的に行うことができるという特有の効果が奏される。また、長期間に使用されていない医用装置がある場合など、或る医用装置から発生頻度情報を取得できないような場合であっても、配信スケジュールを有効に決定することができるという特有の効果もある。
【0037】
請求項14に記載のソフトウェア管理システムは、ソフトウェア配信サーバと複数の医用装置とを含んで構成され、各医用装置におけるソフトウェアの動作状況情報を記録するとともに、複数の医用装置の一部からなる2以上の医用装置の動作状況情報に基づいて、それら2以上の医用装置におけるソフトウェアの使用頻度を示す使用頻度情報を作成するようになっている。ソフトウェア配信サーバは、その2以上の医用装置の使用頻度情報に基づいて複数の医用装置全体におけるソフトウェアの使用頻度の分布を推定し、その推定された分布における使用頻度の各値に対してアップデート用ソフトウェアの送信開始日時を決定し、複数の医用装置に対するアップデート用ソフトウェアの配信を行うようになっている。
【0038】
このようなソフトウェア管理システムによれば、請求項12の発明と同様に、アップデートの緊急性や必要性の高い医用装置に対して優先的にアップデート用ソフトウェアを送信することができ、サーバ容量の冗長化やネットワーク容量の拡大などのシステム負荷を増大させることなく、円滑な配信処理を実現することができるとともに、配信スケジュールの決定処理を効率的に行うことができ、或る医用装置から発生頻度情報を取得できないような場合であっても、配信スケジュールを有効に決定することができる。
【0039】
請求項20に記載のソフトウェア管理システムは、ソフトウェア配信サーバと複数の医用装置とを含んで構成され、各医用装置は、ソフトウェア障害に関連する特定の処理を識別する特定処理識別情報を記録し、障害の発生日時の所定時間前から発生日時までの間に記録された特定処理識別情報をソフトウェア配信サーバに送信するように作用する。ソフトウェア配信サーバは、過去のソフトウェア障害に対応する特定処理識別情報を含む障害履歴情報と、その障害を修正するアップデート用ソフトウェアとを互いに関連付けてあらかじめ格納している。そして、複数の医用装置のいずれかから特定処理識別情報を受信すると、その受信した特定処理識別情報と同一の特定処理識別情報を含む障害履歴情報を検索し、その検索された障害履歴情報に関連付けられたアップデート用ソフトウェアを各医用装置に配信するように作用する。
【0040】
このようなソフトウェア管理システムによれば、医用装置のソフトウェアに発生した障害の内容を特定処理識別情報を用いて的確に特定することができるとともに、適当なアップデート用ソフトウェアを医用装置に送信して障害を効果的に修正することが可能である。
【発明を実施するための最良の形態】
【0041】
本発明に係るソフトウェア管理システムの好適な実施の形態の一例について、図面を参照しながら詳細に説明する。以下、本発明に係るソフトウェア管理システムについて、3つの実施形態を説明する。
【0042】
第1、2の実施形態のソフトウェア管理システムは、サーバ容量の冗長化やネットワーク容量の拡大などのシステム負荷を増大させることなく、複数の医用装置に対するアップデート用ソフトウェアの配信の円滑化を図るものであり、アップデートの緊急性や必要性の高い医用装置に対して優先的にアップデート用ソフトウェアを送信することを可能とするものである。
【0043】
一方、第3の実施形態のソフトウェア管理システムは、或る医用装置にソフトウェア障害が発生したときに、その障害の内容を的確に特定することにより、複数の医用装置に対して適当なアップデート用ソフトウェアを配信するものである。
【0044】
なお、本発明において「ソフトウェア」とは、医用装置を制御するソフトウェア全体を表すこともあるし、また、当該ソフトウェアの一部を構成するソフトウェアモジュールを表すこともある。したがって、アップデート用ソフトウェアは、ソフトウェア全体をアップデートするものであってもよいし、その一部のソフトウェアモジュールのみをアップデートするものであってもよい。
【0045】
〈第1の実施形態〉
図1〜図9を参照しつつ、本発明に係るソフトウェア管理システムの第1の実施形態を説明する。図1は、本システムの全体構成の一例を表すブロック図である。図2は、医用装置を制御するソフトウェアの構成の一例を表す概略図である。図3〜図5は、医用装置が記録するログ情報(動作状況情報)の一例を表す図である。図6は、このログ情報を記録する処理の一例を表すフローチャートである。図7は、ソフトウェア障害の発生頻度に基づく配信スケジュール決定処理の一例を表すフローチャートである。図8は、アップデート用ソフトウェアの配信処理の一例を表すフローチャートである。図9は、ソフトウェアの使用頻度に基づく配信スケジュール決定処理の一例を表すフローチャートである。
【0046】
[システム構成]
図1に示すソフトウェア管理システム1は、サーバ2と、複数(n台)の医用装置3−1〜3−nとを備えている。医用装置3−1〜3−nは、それぞれ異なる医療機関(病院、診療所、大学、研究所等)に設置されている。各医用装置3−1〜3−nは、インターネット等の広域ネットワークNを通じて、サーバ2とデータ通信可能に設置されている。
【0047】
図1のソフトウェア管理システム1には、サーバ2が1台しか設けられていないが、実際は、1台以上の任意の台数を設置することが可能である。
【0048】
医用装置3−1〜3−nは、それぞれ同様の構成を具備している。以下、医用装置3−1(3)についてのみ詳細を説明し、他の医用装置3−2〜3−nについては、医用装置3に準ずるものとする。
【0049】
[医用装置の構成]
医用装置3は、医療分野において用いられる任意の装置であって、所定のソフトウェアによる制御にしたがって動作するように構成されている。この医用装置3の具体例としては、電子カルテ管理システム、医用画像管理システム、医事会計管理システム、医用画像診断装置(X線診断装置、X線CT装置、MRI装置等)、検像システム、読影システムなどがある。
【0050】
医用装置3には、所定の外部装置4が接続されている。例えばRIS(Radiology Information System:放射線科情報システム)等の医用画像管理システムを医用装置3として用いる場合、この医用画像管理システムに撮影画像を提供する医用画像診断装置などが外部装置4として設置される(逆の場合もある。)。また、医師が診察室等で使用するコンピュータなども外部装置4の一例である。なお、医用装置3に接続された外部装置4の台数は任意である。
【0051】
さて、本実施形態の医用装置3は、図1に示すように、制御部30、ソフトウェア記憶部31、ログ記録部32、送信情報作成部33、ユーザインターフェイス(ユーザI/F)34及び通信部35を含んで構成される。
【0052】
〔制御部〕
制御部30は、医用装置3の各部の制御や、各種データ処理を実行する。制御部30は、特に、ソフトウェア記憶部31に記憶された医用ソフトウェア310にしたがって、各種の制御処理やデータ処理を実行する。この制御部30は、たとえばCPUやMPU等のマイクロプロセッサとRAM等のメモリを含んで構成される。なお、制御部30の動作の詳細については、適宜後述することにする。
【0053】
〔ソフトウェア記憶部〕
ソフトウェア記憶部31は、本発明の「ソフトウェア記憶手段」の一例に相当するもので、医用ソフトウェア310を初めとする各種のソフトウェア(たとえばオペレーティングシステムや、他のアプリケーションソフトウェア)をあらかじめ記憶している。
【0054】
医用ソフトウェア310は、たとえば、電子カルテ管理ソフトウェア、医用画像管理ソフトウェア、医事会計管理ソフトウェア、医用画像診断ソフトウェア、検像ソフトウェア、読影ソフトウェアなど、医用装置3の用途に応じたソフトウェアである。
【0055】
このソフトウェア記憶部31は、たとえばハードディスクドライブ等の不揮発性記憶装置を含んで構成される。なお、当該医療機関内のLAN等のローカルネットワークに接続されている場合、ローカルサーバ上にソフトウェアを格納しておくようにしてもよい。
【0056】
医用ソフトウェア310は、医用ソフトウェア310の処理実行単位毎にあるいは機能単位毎に設けられた複数のソフトウェアモジュールによって構成されている。たとえば、図2に示すように、医用ソフトウェア310は、全体制御モジュール311、ABC_モジュール312、DEF_モジュール313、GHIモジュール314、JKL_モジュール315、MNO_モジュール316及びPQR_モジュール317を有する。
【0057】
全体制御モジュール311は、各モジュール312〜317の呼び出し処理や、全体制御モジュール311自身若しくは各モジュール312〜317が実行した処理又はユーザによる操作内容等のログを記録する処理などを行う。各モジュール312〜317は、それぞれ特有の機能を有しており、必要に応じて全体制御モジュール311に呼び出されて特有の処理を実行する。
【0058】
たとえば、医用装置3がX線CT装置である場合、ABC_モジュール312は投影データ収集用ソフトウェアモジュール、DEF_モジュールは前処理用ソフトウェアモジュール、GHI_モジュールは再構成処理用ソフトウェアモジュール、JKL_モジュールは後処理用ソフトウェアモジュール、MNO_モジュールは画像表示制御用ソフトウェアモジュール、PQR_モジュールはガントリ駆動用ソフトウェアモジュール、・・・といった具合に、各モジュール311〜317は特有の機能を有している。
【0059】
〔ログ記録部〕
ログ記録部32は、本発明の「記録手段」の一例に相当するもので、医用ソフトウェア31の動作状況を示すログ情報320(動作状況情報)を記録する。ログ記録部32は、たとえばハードディスクドライブ等の不揮発性記憶装置を含んで構成される。
【0060】
制御部30は、医用ソフトウェア310に基づく処理を実行する度毎に、その処理を識別する(その処理の処理内容を示す)処理識別情報や、その処理を実行した日時を示す処理日時情報を、ログ情報320としてログ記録部32に記録する。
【0061】
また、制御部30は、医用ソフトウェア310が使用される度毎に、その使用日時を示す使用日時情報を、ログ情報320としてログ記録部32に記録する。ここで、使用日時情報を記録するタイミングは、たとえば、医用ソフトウェア310が起動されたタイミングや、終了されたタイミングなどとされる。
【0062】
ここで、処理日時情報や使用日時情報として記録される「日時」は、「年、月、日、時刻」を含むものであってもよいし、「月、日、時刻」のみを含むものであってもよいし、「日、時刻」のみを含むものであってもよいし、「日」のみを含むものであってもよいし、「時刻」のみを含むものであってもよい。ここで、「時刻」は、「時、分、秒」や「時、分」からなる。情報の用途などに応じ、これらの選択肢のうちのいずれかを適宜記録する。なお、この「日時」を示す情報は、一般的なマイクロプロセッサに搭載された計時機能に基づいて取得される。
【0063】
ログ記録部32に記録されるログ情報320の一例として、図3に示す無応答ログ情報321、図4に示す強制終了ログ情報322、図5に示すデバッグログ情報323について説明する。各ログ情報321〜323には、ログの種類(無応答ログ、強制終了ログ、デバッグログ)を識別するログ識別情報が付されている。
【0064】
図3に示す無応答ログ情報321には、医用装置3のシステムリセット処理若しくは終了処理(シャットダウン処理)の要求に対して無応答状態になったモジュールのモジュール名(「無応答モジュール名」)と、無応答状態になった日時(「ログ日時」;処理日時情報)とが、互いに関連付けられて記録される。
【0065】
ユーザが、ユーザインターフェイス34を操作してシステムリセットやシャットダウンを要求すると、全体制御モジュール311は、起動中の全てのソフトウェアモジュール(312〜317)に対して終了要求を送る。この終了要求に応答したソフトウェアモジュールは、要求に応じて終了される。一方、応答しないソフトウェアモジュールは、終了することができず、一定時間が経過してもそのまま起動されている。無応答ログ情報312には、この応答しないソフトウェアモジュールのモジュール名とログ日時が記録される。
【0066】
図4に示す強制終了ログ情報322には、医用ソフトウェア310に異常動作が発生したときに強制終了されたモジュールのモジュール名(「強制終了モジュール名」)と、強制終了がなされた日時(「ログ日時」;処理日時情報)とが、互いに関連付けられて記録される。
【0067】
通常、オペレーティングシステムは、医用ソフトウェアの310の動作状況を監視して、想定外のメモリ領域へのアクセスや、大量の要求コマンドやイベントの発生などの異常動作(すなわち障害の発生)を検知し、障害が発生したソフトウェアモジュールを強制的に終了させるようになっている。このようなオペレーティングシステムの機能を利用することにより、強制終了されたソフトウェアモジュールのモジュール名とログ日時とが、強制終了ログ情報322に記録される。なお、当該機能を有するソフトウェアモジュールを別途搭載することにより、同様の作用を実現するようにしてもよい。制御部30は、このようなオペレーティングシステムやソフトウェアモジュールによって、医用ソフトウェア301に発生した障害を検知する。
【0068】
図5に示すデバッグログ情報323は、発生した障害の原因を特定するために参照される情報である。このデバッグログ情報323には、各モジュール311〜317が実行した処理の処理内容が時系列で記録される。具体的には、各処理内容の識別コードを示す「デバッグログ」(処理内容情報)、当該処理を実行したモジュールの「モジュール名」、及び、当該処理が実行された日時を示す「ログ日時」(処理日時情報)とが、互いに関連付けられて記録される。
【0069】
このデバッグログ情報323には、特に、医用ソフトウェア310が使用される度毎に、医用ソフトウェア310が起動、終了されたことを示すデバッグログとともに、起動日時や終了日時など、医用ソフトウェア310の使用に関連するログ日時(使用日時情報)が記録されるようになっている。
【0070】
〔送信情報作成部〕
送信情報作成部33は、デバッグログ情報323に記録されたモジュール311〜317のデバッグログのうち、所定の期間内に実行された特定の処理のデバッグログ(特定処理識別情報)の個数をカウントする。ここで、「特定の処理」は、医用ソフトウェア310の障害に関連する処理であり、「特定処理識別情報」は、この特定の処理を識別するデバッグログ(文字列情報)である。また、この「特定の処理」の「ログ日時」は、「特定処理日時情報」に相当する。
【0071】
「所定の期間」及び「特定処理識別情報」は、後述のようにサーバ2から医用装置3に入力されるか(後述の確認期間情報及び障害特定情報212)、若しくは、少なくとも一方が医用ソフトウェア310にあらかじめ含まれている。送信情報作成部33は、「所定の期間」に関連付けられ、かつ、「特定処理識別情報」に該当するデバッグログを、デバッグログ情報323から検索するとともに、検索されたデバッグログの個数をカウントする。このカウント結果は、当該所定の期間内における障害(上記特定の処理に関連する障害)の発生回数を表すもので、本発明の「発生頻度情報」の一例に相当する情報である。
【0072】
また、送信情報作成部33は、デバッグログ情報323に記録されたログ日時のうち、所定の期間に属する起動日時(又は終了日時)を示すログ日時の個数をカウントする。「所定の期間」は、前述のようにサーバ2から入力される。送信情報作成部33は、入力された「所定の期間」に該当し、かつ、「起動(又は終了)」を示すデバッグログに関連付けられたログ日時を、デバッグログ情報323から検索するとともに、検索されたログ日時の個数をカウントする。このカウント結果は、当該所定の期間における医用ソフトウェア310の使用回数を表すもので、本発明の「使用頻度情報」の一例に相当する情報である。
【0073】
また、送信情報作成部33は、デバッグログ情報323に記録されたログ日時から、所定の期間に属する起動日時を示すログ日時と、終了日時を示すログ日時とをそれぞれ検索するとともに、検索されたログ日時に基づいて当該所定の期間における医用ソフトウェア310の使用時間(累積使用時間)を算出する。より具体的には、送信情報作成部33は、検索されたログ日時に基づいて、医用ソフトウェア310の各使用毎の使用時間を算出するとともに、各使用毎の使用時間を合算することにより、当該所定の期間における累積使用時間を算出する。この算出結果は、本発明の「使用頻度情報」の一例に相当する情報である。
【0074】
以上のように、送信情報作成部33は、本発明の「発生頻度情報作成手段」及び「使用頻度情報作成手段」の一例として動作するものである。この送信情報作成部33は、CPU等をマイクロプロセッサとRAM等のメモリとを含んで構成される。
【0075】
(送信情報作成処理の具体例)
送信情報作成部33による処理の具体例を説明する。ここでは、発生頻度情報の作成処理について説明する。なお、作成の条件の一例として、次の3条件を用いる:(1)登録されたソフトウェアモジュール識別情報211は、「DEF_MODULE」である;(2)障害特定情報212は、無応答ログ情報321のログ識別情報と、デバッグログ“LMLogDlt(ID_FILE_LOG)return sts=999”とを含んでいる;(3)「所定の期間」は30日である。
【0076】
送信情報作成部33は、まず、障害特定情報212のログ識別情報に基づき、無応答ログ情報321を確認対象として認識するとともに、ソフトウェアモジュール識別情報211に基づいて、無応答ログ情報321からモジュール名「DEF_MODULE」を検索する。このとき、現在から30日前までのログ日時、つまり「所定の期間」に属するログ日時に対応するモジュール名を検索する。検索された場合、そのログ日時を取得する。
【0077】
一方、検索されない場合は、この医用装置3には、障害修正用ソフトウェア210により修正されるべき障害は発生していないと判断する(つまり、発生頻度情報「障害の発生頻度=0」が作成される)。
【0078】
たとえば図3に示す無応答ログ情報321には、モジュール名「DEF_MODULE」が記録されており、そのログ日時は「2005/5/18 8:11」となっている。
【0079】
次に、障害特定情報212のデバッグログ“LMLogDlt(ID_FILE_LOG)return sts=999”に一致するデバッグログを、デバッグログ情報323から検索する。検索されない場合、発生頻度情報「障害の発生頻度=0」が作成される。
【0080】
一方、検索された場合には、検索されたデバッグログのログ日時と、無応答ログ情報321から検索されたモジュール名のログ日時とを比較する。そして、モジュール名のログ日時よりも以前かつ一定時間以内に属するログ日時のデバッグログを検索する。検索されない場合、発生頻度情報「障害の発生頻度=0」が作成される。また、検索された場合には、検索されたデバッグログの個数をカウントする。このカウント結果を発生頻度情報とする。なお、上記の「一定時間」は、あらかじめ設定されており、たとえば数分程度とされる。
【0081】
たとえば図5に示すデバッグログ情報323には、“LMLogDlt(ID_FILE_LOG)return sts=999”に一致するデバッグログが記録されており、そのログ日時は「2005/5/18 8:10:03」である。ここで、上記の「一定時間」を2分とすると、無応答ログ情報321から検索されたモジュール名「DEF_MODULE」のログ日時は「2005/5/18 8:11」であるから、「2005/5/18 8:09」〜「2005/5/18 8:11」までの間に属するログ日時のデバッグログを検索する。図5に示す上記ログ日時は「2005/5/18 8:10:03」であり、したがって、当該ログ日時のデバッグログ“LMLogDlt(ID_FILE_LOG)return sts=999”は、カウントに考慮される(つまり、カウントが+1される)。この要領で、「所定の期間(過去30日)」以内における、特定の障害の発生頻度が求められ、そのカウント結果を発生頻度情報として使用する。
【0082】
〔ユーザインターフェイス〕
ユーザインターフェイス34は、ユーザが医用装置3の操作を行ったり、データの設定入力等を行ったりするための操作手段である。このユーザインターフェイス34としては、たとえば、マウス、キーボード、トラックボール、ジョイスティック、操作パネル、タブレットなど、医用装置3の形態や用途に応じた任意の操作デバイスを用いることが可能である。
【0083】
〔通信部〕
通信部35は、広域ネットワークNを通じてデータ通信を行うためのモデム等の通信機器と、外部装置4との間でデータ通信を行うためのLANカード等のネットワークアダプタとを含んで構成される。
【0084】
[サーバの構成]
次に、サーバ2の構成について詳細に説明する。サーバ2は、本発明の「ソフトウェア配信サーバ」の一例に相当するものであり、制御部20、情報格納部21、配信順序決定部22、送信開始日時決定部23、日時判断部24、計時部25及び通信部26を含んで構成されている。
【0085】
〔制御部〕
制御部20は、サーバ2の各部の制御や、各種データ処理を実行する。制御部20は、特に、医用ソフトウェア310をアップデートするソフトウェア(障害修正用ソフトウェア210)を、複数の医用装置3−1〜3−nに配信するための処理を実行する。この制御部20は、たとえばCPUやMPU等のマイクロプロセッサとRAM等のメモリとを含んで構成される。
【0086】
制御部20には、配信制御部200が設けられている。この配信制御部200は、本発明の「配信制御手段」の一例に相当するものであり、後述のようにして決定されるアップデート用ソフトウェアの配信順序に基づいて、複数の医用装置3−1〜3−nにアップデート用ソフトウェアを配信するように作用する。なお、これ以外の制御部20の動作の詳細については、適宜後述することにする。
【0087】
〔情報格納部〕
情報格納部21は、本発明の「格納手段」の一例に相当しアップデート用ソフトウェア及びその配信処理に用いられる各種の情報を格納する。この情報格納部21は、たとえばハードディスクドライブ等の不揮発性記憶装置を含んで構成される。
【0088】
情報格納部21には、障害修正用ソフトウェア210、ソフトウェアモジュール識別情報(ID)211、障害特定情報212、配信先リスト情報213が、あらかじめ格納されている。ソフトウェアモジュール識別情報211、障害特定情報212及び配信先リスト情報213は、それぞれ、障害修正用ソフトウェア210毎に生成され、その障害修正用ソフトウェア210に関連付けられて情報格納部21に格納される。
【0089】
障害修正用ソフトウェア210は、ソフトウェア開発者等が、医用ソフトウェア310に発生した障害を修正するために(若しくは、発生のおそれのある障害に対処するために)作成したソフトウェアであり、本発明の「アップデート用ソフトウェア」に相当するものである。なお、「修正」とは、障害修正用ソフトウェア210を用いて医用ソフトウェア310の全部又は一部を変更し又は入れ替えることにより、医用ソフトウェア310に存在していたバグやモジュール間の連係などの不都合を解消することを意味するものとする。
【0090】
ソフトウェアモジュール識別情報211は、医用ソフトウェア310のソフトウェアモジュール311〜317(図2参照)のうち、障害修正用ソフトウェア210による修正対象となるものを識別する情報である。各ソフトウェアモジュール311〜317のソフトウェアモジュール識別情報211は、たとえば、図3〜図5に示す「モジュール名」を形成する文字列によって構成される。具体的には、たとえばABC_モジュール312のソフトウェアモジュール識別情報211としては、文字列「ABC_MODULE」を用いることができる。
【0091】
障害特定情報212は、障害修正用ソフトウェア210の修正対象となる障害の種類を特定するための情報であり、また、医用ソフトウェア310に発生した障害の種類の特定にも使用可能な情報である。この障害特定情報212は、たとえば、図3〜図5のログ情報321〜323のログ識別情報(前述)と、図5のデバッグログ情報323における「デバッグログ」を形成する文字列(特定処理識別情報)とを含んでいる。
【0092】
障害修正用ソフトウェア210の用途、すなわち、障害修正用ソフトウェア210により修正される障害は、ソフトウェアモジュール識別情報211と障害特定情報212とを組み合わせることにより、次のようにして特定される。
【0093】
障害修正用ソフトウェア210の用途が、たとえば「“LMLogDlt(ID_FILE_LOG)return sts=999”という情報を出力したことを原因とするDEF_モジュール313の無応答状態を修正する」ことである場合、ソフトウェアモジュール識別情報211にはDEF_モジュール313の識別情報「DEF_MODULE」が含まれる。また、障害特定情報212には、無応答ログ情報321のログ識別情報と、デバッグログ“LMLogDlt(ID_FILE_LOG)return sts=999”とが含まれる。
【0094】
配信先リスト情報213は、障害修正用ソフトウェア210を配信する医用装置を特定する情報として、たとえば、医用装置3−1〜3−nのうち配信対象に指定された医用装置の装置種別(モダリティ名、システム名、装置/システムのモデル名、ソフトウェアバージョン名)や、広域ネットワークNにおける当該医用装置のネットワークアドレス(IPアドレス等)などを含む情報である。なお、配信先リスト情報213により特定される配信先は、医用装置3−1〜3−nの全てであってもよいし、一部のみであってもよい。
【0095】
更に、情報格納部21には、配信順序情報214と送信開始日時情報215が格納される。配信順序情報214は、配信順序決定部22により生成されて情報格納部21に格納される。また、送信開始日時情報215は、送信開始日時決定部23により生成されて情報格納部21に格納される(それぞれ詳細は後述する)。
【0096】
情報格納部21には、一般に、複数の障害修正用ソフトウェア210が格納されている。また、これら複数の障害修正用ソフトウェア210のそれぞれに関連付けられたソフトウェアモジュール識別情報211、障害特定情報212及び配信先リスト情報213が格納されている。更に、配信スケジュールの決定後には、これら複数の障害修正用ソフトウェア210のそれぞれに関連付けられた配信順序情報214と送信開始日時情報215とが格納される。
【0097】
〔配信順序決定部〕
配信順序決定部22は、本発明の「配信スケジュール決定手段」に含まれるものであり、複数の医用装置3−1〜3−nに対する障害修正用ソフトウェア210の配信順序を決定するように動作する。決定された配信順序は、制御部20により配信順序情報214として情報格納部21に格納されるとともに、送信開始日時決定部23に送られる。配信順序決定部22は、たとえばCPU等のマイクロプロセッサとRAM等のメモリとを含んで構成される。この配信順序決定部22の具体的な動作内容については後述する(図7に基づく説明を参照)。
【0098】
〔送信開始日時決定部〕
送信開始日時決定部23は、本発明の「配信スケジュール決定手段」に含まれる「送信開始日時決定手段」の一例に相当し、配信先リスト情報213により配信先に指定されている複数の医用装置3−1〜3−n(の一部)のそれぞれについて、障害修正用ソフトウェア210の送信開始日時を決定する。決定された送信開始日時は、制御部20により、送信開始日時情報215として情報格納部21に格納される。送信開始日時決定部23は、たとえばCPU等のマイクロプロセッサとRAM等のメモリとを含んで構成される。
【0099】
ここで、「送信開始日時」とは、当該医用装置に対する障害修正用ソフトウェア210の送信禁止状態が解除される日時を表す。換言すると、送信開始日時とは、送信禁止状態が解除されて障害修正用ソフトウェア210が当該医用装置に送信される日時、あるいは、当該医用装置からの送信要求に応じて障害修正用ソフトウェア210を送信すること許可される日時を表している。
【0100】
医用装置3−i(i=1〜n)に対する送信開始日時は、これら医用装置の装置数(n)と、所定時間内に障害修正用ソフトウェア210を送信可能な医用装置の最大数(M)と、配信順序決定部22により決定された配信順序とに基づいて決定される。
【0101】
この送信開始日時の決定処理を具体的に説明する。情報格納部21には、サーバ2による最大送信能力を示す配信可能装置数情報が、あらかじめ格納されている(図示省略)。この配信可能装置数情報は、サーバ2が、広域ネットワークNを通じて、所定時間内に障害修正用ソフトウェア210を送信することができる医用装置の装置数が記録されている。たとえば、サーバ2が1日(所定時間)に送信可能な装置数が100装置である場合(M=100/日)、「配信可能装置数情報=100(装置/日)」が情報格納部21に格納されている。なお、この数値は、サーバ2の情報処理能力や他の処理の処理負荷、更に広域ネットワークNの通信データの許容量などに基づいて、計算や実測を行うことにより、あらかじめ決定される。
【0102】
配信先リスト情報213に記録された配信先の装置数が1000装置であるとする(説明を簡略化するため、全装置数n=1000とする)。その場合、これら1000の医用装置3−1〜3−1000に対して、1日100装置ずつ、合計10日に亘って配信を行うようにスケジュールが組まれる。
【0103】
一方、配信順序決定部22により決定される配信順序は、これら1000装置に対する配信順序を表すものである。ここでは、説明を簡略化するため、医用装置3−1、3−2、3−3、・・・、3−999、3−1000に対して、当該順序で配信するものとする。
【0104】
送信開始日時決定部23は、まず、配信可能装置数情報(=100装置/日)と、配信先の全装置数(=1000装置)とに基づいて、全装置への配信に必要な日数を算出する(1000÷100=10日)。なお、算出結果が整数にならない場合(つまり割り切れない場合)には、商の値の整数部分に相当する日数に、剰余部分を送信するための1日を追加するなどして、配信に要する日数を算出する。
【0105】
次に、送信開始日時決定部23は、算出された配信日数にしたがって、各医用装置3−1〜3−1000の配信開始日時を決定する。上記の例では、医用装置3−1〜3−100の配信開始日時は、配信第1日目(の例えば午前0時)、医用装置3−101〜3−200の配信開始日時は、配信第2日目(の例えば午前0時)、・・・、医用装置3−901〜3−1000の配信開始日時は、配信第10日目(の例えば午前0時)、となる。
【0106】
なお、配信日時を決定するためには決定時の日時が必要であるが、その情報は、たとえば後述の計時部25から取得することができる。また、現在日時あるいは配信第1目の日付をユーザが手動設定するようにしてもよい。
【0107】
〔日時判断部〕
日時判断部24は、サーバ2が医用装置から障害修正用ソフトウェア210の送信要求を受信したときに動作し、現在日時が、当該医用装置の送信開始日時以降であるか否か判断する。この日時判断部24は、本発明の「日時判断手段」の一例に相当し、たとえばCPU等のマイクロプロセッサとRAM等のメモリとを含んで構成される。
【0108】
或る医用装置から障害修正用ソフトウェア210の送信要求が入力されると、制御部20は、情報格納部21に格納された送信開始日時情報215から、当該医用装置の送信開始日時を検索し、日時判断部24に送る。
【0109】
日時判断部24は、まず、後述の計時部25を参照して現在日時を取得する。次に、日時判断部24は、現在日時と当該医用装置の送信開始日時とを比較し、現在日時が、当該医用装置の送信開始日時以降であるか否か判断する。そして、その判断結果を制御部20に送る。
【0110】
〔計時部〕
計時部25は、計時機能を有する一般的なマイクロプロセッサを含んで構成される。
【0111】
〔通信部〕
通信部26は、広域ネットワークNを通じてデータ通信を行うためのモデム等の通信機器を備えている。
【0112】
[システムの動作態様]
このような構成を備えるソフトウェア管理システム1の動作態様の一例について説明する。以下、ソフトウェア管理システム1の各種の動作形態を説明する。
【0113】
〔医用ソフトウェアの動作状況の記録処理:図6〕
まず、医用装置3による医用ソフトウェア310の動作状況の記録処理について、図6のフローチャートを参照しつつ説明する。
【0114】
まず、医用装置3の電源投入や、ユーザからの起動要求に対応して医用ソフトウェア310が起動されると(S1)、制御部30が、起動されたことを示すデバッグログと、そのログ日時(起動日時)と、起動されたモジュール名とを、デバッグログ情報323に記録する(S2)。
【0115】
医用ソフトウェア310が各種処理を実行する度毎に、制御部30は、当該処理に対応するログ日時、モジュール名及びデバッグログをデバッグログ情報323に記録する(S3)。この処理は、医用ソフトウェア310の使用が終了されるまで逐次行われる。
【0116】
医用装置3の電源が切られたり、ユーザからの終了要求が入力されたりして、医用ソフトウェア310の使用の終了が要求されると(S4;Y)、制御部30は、使用終了を示すデバッグログと、その日時(終了日時)と、終了されたモジュール名とを、デバッグログ情報323に記録する(S5)。この場合における医用ソフトウェア310の動作状況の記録処理は、これで終了となる。
【0117】
一方、医用ソフトウェア310の使用中に(S4;N)、障害が発生すると、制御部30がこれを検知する(S6)。障害が発生した医用ソフトウェア310は、無応答状態に陥るか、或いは、ユーザや全体制御モジュール311やオペレーティングシステムによって強制終了される(S7)。
【0118】
医用ソフトウェア310が無応答状態になった場合(S7;無応答)、制御部30は、無応答状態になった日時を示すログ日時と、無応答状態になったモジュール名とを、無応答ログ情報321に記録し(S8)、処理を終了する。
【0119】
一方、医用ソフトウェア310が強制終了された場合(S7;強制終了)、制御部30は、強制終了された日時を示すログ日時と、強制終了されたモジュール名とを、強制終了ログ情報322に記録し(S9)、処理を終了する。
【0120】
〔障害修正用ソフトウェアの配信スケジュール決定処理(障害発生頻度):図7〕
次に、医用ソフトウェア310の障害発生頻度に基づいて障害修正用ソフトウェア210の配信スケジュールを決定する処理について、図7のフローチャートを参照しつつ説明する。
【0121】
準備段階として、ソフトウェア開発者等が、新たに開発した障害修正用ソフトウェア210と、そのソフトウェアモジュール識別情報211と、障害特定情報312と、配信先リスト情報213とを、サーバ2の情報格納部21に格納し、登録する(S11)。その登録方法としては、メディアに記憶されたこれらの情報210〜213を、サーバ2のドライブ装置(図示せず)に挿入して読み取らせる方法や、ソフトウェア開発者の端末装置(図示せず)からサーバ2にLAN等を経由してアップロードさせる方法などの、任意の方法を適宜に用いることができる。
【0122】
制御部20は、医用ソフトウェア310の障害発生頻度の確認を要求する要求信号と、障害特定情報212と、確認期間情報(図示せず)を通信部26に送り、広域ネットワークNを通じて、全ての医用装置3−1〜3−nにそれぞれ送信する(S12)。
【0123】
なお、確認期間情報は、発生頻度情報や使用頻度情報や使用頻度情報を作成するときに、ログ情報320に記録されたログのうち、どの期間に記録されたログを確認するかを指定する情報である。この期間は、本発明の「所定の期間」に相当し、あらかじめ設定されたものである。なお、この期間を適宜に変更することも可能である。
【0124】
医用装置3−1〜3−nのそれぞれは、サーバ2からの要求信号に対応して送信情報作成部33を動作させ、障害特定情報212と確認期間情報とに基づいて、障害の発生頻度情報を作成させるとともに、作成された発生頻度情報をサーバ2に送信する(S13)。
【0125】
各医用装置3−1〜3−nからの発生頻度情報を受信すると、サーバ2の配信順序決定部22は、これら発生頻度情報に基づいて、医用装置3−1〜3−nに対する障害修正用ソフトウェア210の配信順序を決定する(S14)。
【0126】
具体的には、配信順序決定部22は、医用装置3−1〜3−nの発生頻度情報に示す特定処理識別情報の個数を比較し、個数の多い順に医用装置3−1〜3−nのそれぞれに順位を指定する。このとき、個数が同じ医用装置には、適宜に順位を指定することができる。この順位が、障害修正用ソフトウェア210を送信する順位となる。それにより、医用装置3−1〜3−nに対する障害修正用ソフトウェア210の配信順序が決定される。決定された配信順序は、送信開始日時決定部23に送られる。
【0127】
送信開始日時決定部23は、決定された配信順序に基づき、前述の要領で、各医用装置3−1〜3−nに対する障害修正用ソフトウェア210の送信開始日時を決定する(S15)。
【0128】
制御部20は、ステップS14で決定された配信順序を、配信順序情報214として情報格納部21に格納するとともに、ステップS15で決定された送信開始日時を、送信開始日時情報215として情報格納部21に格納する(S16)。このとき、配信順序情報214と送信開始日時情報215は、それぞれ、障害修正用ソフトウェア210に関連付けられて格納される。以上で、医用ソフトウェア310の障害発生頻度に基づく障害修正用ソフトウェア210の配信スケジュール決定処理は終了となる。
【0129】
〔修正用ソフトウェアの配信処理:図8〕
次に、医用装置3−1〜3−nに対する障害修正用ソフトウェア210の配信処理について、図8のフローチャートを参照しつつ説明する。
【0130】
医用装置3は、医用ソフトウェア310をアップデートするソフトウェアの有無を確認し、それが有る場合にはその送信を要求する信号(送信要求信号)を、所定のタイミングでサーバ2に送信する(S21)。このとき、送信要求信号とともに、医用装置3を識別する装置識別情報が送信される。なお、「所定のタイミング」とは、たとえば医用装置3の起動時やシャットダウン時、或いは、あらかじめ設定された時刻などとされる。
【0131】
サーバ2の制御部20は、送信要求信号情報格納部21に格納された各配信先リスト情報213を参照し、医用装置3が送信先に含まれているか判定することにより、アップデート用ソフトウェア(障害修正用ソフトウェア)の有無を確認する(S22)。
【0132】
医用装置3に対するアップデート用ソフトウェアが無い場合には(S23;N)、処理を終了する。このとき、アップデート用ソフトウェアが無い旨を示す信号を医用装置3に送信するようにしてもよい。
【0133】
一方、医用装置3に対するアップデート用ソフトウェアが有る場合(S23;Y)、制御部20により、送信開始日時情報215から医用装置3の送信開始日時が選択されて日時判断部24に送られるとともに(S24)、計時部25から日時判断部24に現在日時が送られる。日時判断部24は、この現在日時と医用装置3の送信開始日時とを比較し、現在日時が送信開始日時以降であるか否か、つまり送信開始日時を経過しか否かを判断する(S25)。
【0134】
送信開始日時を経過していないと判断された場合には(S26;N)、処理を終了する。このとき、アップデート用ソフトウェアが無い旨を示す信号を医用装置3に送信するようにしてもよい。
【0135】
一方、送信開始日時を経過していると判断された場合(S26;Y)、制御部20の配信制御部200は、情報格納部21から障害修正用ソフトウェア210を読み出して通信部26に送り、広域ネットワークNを通じて医用装置3に送信させる(S27)。医用装置3は、この障害修正用ソフトウェア210をソフトウェア記憶部31に記憶させ、医用ソフトウェア31のアップデートを実行する(S28)。以上で、障害修正用ソフトウェア210の配信処理は終了となる。
【0136】
〔障害修正用ソフトウェアの配信スケジュール決定処理(使用頻度):図9〕
次に、医用ソフトウェア310の使用頻度に基づいて障害修正用ソフトウェア210の配信スケジュールを決定する処理について、図9のフローチャートを参照しつつ説明する。この処理において使用頻度情報の作成に用いられる情報(使用日時情報)は、たとえば、図6のフローチャートに示す動作状況記録処理により記録された、医用ソフトウェア310の起動のログ情報(ステップS2)若しくは終了のログ情報(ステップS5、S9)である。以下、起動のログ情報に基づいて使用頻度情報を作成する場合を説明することにする。
【0137】
まず、障害発生頻度の場合(図7)と同様に、新たに開発した障害修正用ソフトウェア210と、そのソフトウェアモジュール識別情報211と、障害特定情報312と、配信先リスト情報213とが登録されると(S31)、サーバ2から各医用装置3−1〜3−nに対し、医用ソフトウェア310の使用頻度の確認を要求する要求信号と、確認期間情報(図示せず)とが送信される(S32)。
【0138】
各医用装置3−1〜3−nは、サーバ2からの要求信号に対応して送信情報作成部33を動作させる。送信情報作成部33は、デバッグログ情報323に記録されたログ日時のうち、確認期間情報に示す所定の期間に属する起動日時を示すログ日時(使用日時情報)を検索するとともに、検索されたログ日時の個数をカウントして、医用ソフトウェア310の使用頻度情報を作成する。各医用装置3−1〜3−nは、作成された使用頻度情報をサーバ2に送信する(S33)。
【0139】
各医用装置3−1〜3−nからの使用頻度情報を受信すると、サーバ2の配信順序決定部22は、これら使用頻度情報に基づいて、医用装置3−1〜3−nに対する障害修正用ソフトウェア210の配信順序を決定する(S34)。
【0140】
具体的には、配信順序決定部22は、医用装置3−1〜3−nの使用頻度情報に示す使用日時情報(起動日時のログ情報)の個数を比較し、個数の多い順に医用装置3−1〜3−nのそれぞれに順位を指定する。このとき、個数が同じ医用装置には、適宜に順位を指定することができる。この順位が、障害修正用ソフトウェア210を送信する順位となる。それにより、医用装置3−1〜3−nに対する障害修正用ソフトウェア210の配信順序が決定される。決定された配信順序は、送信開始日時決定部23に送られる。
【0141】
送信開始日時決定部23は、決定された配信順序に基づいて、各医用装置3−1〜3−nに対する障害修正用ソフトウェア210の送信開始日時を決定する(S35)。
【0142】
制御部20は、ステップS34で決定された配信順序を、配信順序情報214として情報格納部21に格納するとともに、ステップS35で決定された送信開始日時を、送信開始日時情報215として情報格納部21に格納する(S36)。このとき、配信順序情報214と送信開始日時情報215は、それぞれ、障害修正用ソフトウェア210に関連付けられて格納される。以上で、医用ソフトウェア310の使用頻度に基づく障害修正用ソフトウェア210の配信スケジュール決定処理は終了となる。
【0143】
このように決定された配信スケジュールに基づく障害修正用ソフトウェア210の配信処理は、前述した図8の場合と同様にして実行される。
【0144】
なお、所定の期間における医用ソフトウェア310の累積使用時間に基づいて使用頻度情報を作成する場合については、次のような処理を実行する。まず、新たに開発した障害修正用ソフトウェア210等の登録(S31)と、サーバ2から各医用装置3−1〜3−nへの要求信号及び確認期間情報の送信(S32)とを、同様に行う。
【0145】
各医用装置3−1〜3−nの送信情報作成部33は、デバッグログ情報323に記録されたログ日時のうち、確認期間情報に示す所定の期間に属する起動日時を示すログ日時と終了日時を示すログ日時(使用日時情報)とを検索し、各使用時における使用時間を算出する。このとき、たとえば、所定の期間に属する起動日時と終了日時を検索し、各起動日時とその次の終了日時との時間間隔を当該使用時の使用時間として算出する。そして、各使用時の使用時間を加算して、所定の期間における(累積)使用時間を算出して使用頻度情報を作成する。各医用装置3−1〜3−nは、作成された使用頻度情報をサーバ2に送信する(S33)。
【0146】
各医用装置3−1〜3−nからの使用頻度情報を受信すると、サーバ2の配信順序決定部22は、医用装置3−1〜3−nの使用頻度情報に示す(累積)使用時間の値を比較し、その値の大きい順に医用装置3−1〜3−nのそれぞれに順位を指定する。このとき、使用時間の値が同じ医用装置には、適宜に順位を指定することができる。この順位が、障害修正用ソフトウェア210を送信する順位となる。それにより、医用装置3−1〜3−nに対する障害修正用ソフトウェア210の配信順序が決定される(S34)。
【0147】
送信開始日時決定部23は、決定された配信順序に基づいて、各医用装置3−1〜3−nに対する障害修正用ソフトウェア210の送信開始日時を決定する(S35)。制御部20は、ステップS34で決定された配信順序を、配信順序情報214として情報格納部21に格納するとともに、ステップS35で決定された送信開始日時を、送信開始日時情報215として情報格納部21に格納する(S36)。以上で、医用ソフトウェア310の使用頻度に基づく障害修正用ソフトウェア210の配信スケジュール決定処理は終了となる。
【0148】
[作用効果]
以上のような本実施形態に係るソフトウェア管理システム1の作用及び効果について説明する。
【0149】
ソフトウェア管理システム1の各医用装置3−1〜3−nは、医用ソフトウェア310の動作状況を示すログ情報320を記録している。ここで、ログ情報320は、障害の発生頻度や医用ソフトウェア310の使用頻度を得るための基になる情報である。一方、サーバ2は、アップデート用の障害修正用ソフトウェア210を情報格納部21にあらかじめ格納している。サーバ2は、配信順序決定部22により、ログ情報320に基づいて医用装置3−1〜3−nに対する障害修正用ソフトウェア210の配信順序を決定し、その配信順序に基づいて医用装置3−1〜3−nにアップデート用ソフトウェアを配信する。各医用装置3−1〜3−nは、配信された障害修正用ソフトウェア210により医用ソフトウェア310のアップデートを行う。
【0150】
このように、本実施形態によれば、ログ情報320に基づく障害発生頻度やソフトウェア使用頻度に基づいて、アップデートの緊急性や必要性の高い医用装置に対して優先的に障害修正用ソフトウェア210を送信できる。したがって、従来のように複数の医用装置に対して無作為に配信を行うことがないため、配信処理の円滑化を図ることができるとともに、サーバ容量の冗長化やネットワーク容量の拡大などのシステム負荷を無駄に増大させる必要もない。
【0151】
また、各医用装置3−1〜3−nには、記録されたログ情報320に基づいて、医用ソフトウェア310における障害の発生頻度を示す発生頻度情報を作成する送信情報作成部33が設けられており、サーバ2の配信順序決定部22は、医用装置3−1〜3−nに対して、発生頻度情報に示す障害の発生頻度の高いものから順に送信順位を指定するようになっている。したがって、医用ソフトウェア310の障害の発生頻度が高く、アップデートの緊急性の高い医用装置に対して優先的に障害修正用ソフトウェア210を送信することができる。
【0152】
また、各医用装置3−1〜3−nの送信情報作成部33は、記録されたログ情報320に基づいて、医用ソフトウェア310の使用頻度を示す使用頻度情報を作成することができ、サーバ2の配信順序決定部22は、医用装置3−1〜3−nに対して、使用頻度情報に示す医用ソフトウェア310の使用頻度の高いものから順に送信順位を指定するようになっている。ここで、医用ソフトウェア310の使用頻度情報は、所定の期間における医用ソフトウェア310の使用回数又は累積使用時間を表す情報である。したがって、医用ソフトウェア310の障害の発生頻度が高く、アップデートの必要性の高い医用装置に対して優先的に障害修正用ソフトウェア210を送信することができる。
【0153】
また、サーバ2は、医用装置3−1〜3−nの装置数と、所定時間内に障害修正用ソフトウェア210を送信可能な医用装置の最大装置数(配信可能装置数情報)と、配信順序決定部22が決定した配信順序とに基づいて、各医用装置3−1〜3−nに対する障害修正用ソフトウェア210の送信開始日時を決定することができる。それにより、配信先の数と、システムの配信能力(配信可能装置数情報)とに基づいて、効率のよい配信スケジュールを作成することができ、配信処理の円滑化を図ることができる。
【0154】
また、サーバ2は、修正用ソフトウェア210の送信を要求する送信要求信号を或る医用装置から受信したときに、その医用装置の送信開始日時が経過していない限り、その医用装置に障害修正用ソフトウェア210を送信しないようになっている。したがって、優先度の高い医用装置から順に、円滑に配信処理を行うことができる。
【0155】
[変形例]
本実施形態に係るソフトウェア管理システム1の変形例を説明する。なお、これらの変形例は、以下の実施形態に対して適宜応用することが可能である。
【0156】
本実施形態では、医用装置3−1〜3−nのそれぞれが個別にログ情報320を記録するようになっていたが、これら医用装置3−1〜3−nのログ情報320をまとめて記録しておくことも可能である。例えば、ログ情報320を記録する記録手段(ハードディスクドライブ等)をサーバ2に設けておく。そして、各医用装置3−1〜3−nは、処理を行う度毎に(又は定期的/不定期的に)、その処理のログ情報を、広域ネットワークN経由でサーバ2に送信して記録手段に記録するように構成することができる。このとき、各医用装置を識別する装置識別情報をログ情報に付加して送信する。
【0157】
その場合、ソフトウェア障害の発生頻度を示す発生頻度情報を作成する発生頻度情報作成手段や、ソフトウェアの使用頻度を示す使用頻度情報を作成する使用頻度情報作成手段(本実施形態では、ともに「送信情報作成部33」)についても、サーバ2に集約することが可能である。
【0158】
また、本実施形態では、医用装置3からの要求に応じて障害修正用ソフトウェア210を配信するようになっているが、本発明はこれに限定されるものではない。たとえば、各医用装置3−1〜3−nに対し、その送信開始日時の到来とともに、障害修正用ソフトウェア210を順次配信するように構成することができる。
【0159】
〈第2の実施形態〉
図10〜図13を参照しつつ、本発明に係るソフトウェア管理システムの第2の実施形態を説明する。図10は、本システムの全体構成の一例を表すブロック図である。図11は、ソフトウェア障害の発生頻度に基づく配信スケジュール決定処理の一例を表すフローチャートである。図12は、アップデート用ソフトウェアの配信処理の一例を表すフローチャートである。図13は、ソフトウェアの使用頻度に基づく配信スケジュール決定処理の一例を表すフローチャートである。なお、第1の実施形態と同様の構成部分については、説明の重複を避けるため、同じ符号を用いることにする。
【0160】
第1の実施形態は、アップデート用ソフトウェアの配信対象となる全ての医用装置3−1〜3−nにおける医用ソフトウェアの障害発生頻度や使用頻度に基づいて配信スケジュールを決定するものであった。一方、本実施形態は、配信対象となる医用装置3−1〜3−nの一部における障害発生頻度や使用頻度に基づいて配信スケジュールを決定することにより、第1の実施形態と同様の効果とともに、配信スケジュール決定処理の省力化という特有の効果を奏するものである。
【0161】
[システム構成]
図10に示すソフトウェア管理システム100は、第1の実施形態と同様に、サーバ2と、複数の医用装置3−1〜3−nとを備えている。各医用装置3−1〜3−nは、広域ネットワークNを通じて、サーバ2とデータ通信可能に設置されている。また、医用装置3(3−1)には、第1の実施形態と同様の外部装置4が接続されている。
【0162】
各医用装置3−1〜3−nは、第1の実施形態と同様の構成を有している。サーバ2は、第1の実施形態とほぼ同様であるが、構成上、演算処理部27を備えている点が異なっている。また、本実施形態の送信開始日時決定部23は、第1の実施形態とは異なる処理を実行して、送信開始日時情報216を作成する。
【0163】
〔演算処理部〕
サーバ2の演算処理部27は、医用装置3−1〜3−nのうちの一部の医用装置からの発生頻度情報や使用頻度情報に基づいて、全医用装置3−1〜3−nにおける障害発生頻度や使用頻度の分布を推定する処理を行う。この演算処理部27は、本発明の「演算手段」の一例に相当し、たとえばCPU等のマイクロプロセッサとRAM等のメモリとを含んで構成される。
【0164】
上記の「一部の医用装置」の装置数は少なくとも2以上とされる。これら2以上の医用装置を「医用装置3(1)〜3(k)」と表すことにする。ここで、kは、2≦k≦n−1を満たすあらかじめ設定された正の整数であり、たとえばkはnの約数(k|n)とされる。以下、演算処理部27が実行する処理をより具体的に説明する。
【0165】
最初に、医用ソフトウェア310の障害発生頻度の分布の推定処理の例を説明する。まず、演算処理部27は、一部の医用装置3(1)〜3(k)のそれぞれからの発生頻度情報に基づいて、これら医用装置3(1)〜3(k)における特定処理識別情報の個数の分布を求める。すなわち、発生頻度情報は、第1の実施形態において説明したように、所定の期間内における(特定の)障害の発生回数を示す情報であり、具体的には、所定の期間にログ情報320に記録された特定処理識別情報の個数を示す情報である。演算処理部27は、各医用装置3(1)〜3(k)における特定処理識別情報の個数を取得し、それらを個数別に分類するとともに、各個数に対応する装置数を求める。それにより、特定処理識別情報の個数を変数(離散変数)とする、医用装置の装置数の分布(離散分布)が得られる。
【0166】
続いて、演算処理部27は、この特定処理識別情報の個数毎の装置数の分布と、全医用装置3−1〜3−nの装置数に対する医用装置3(1)〜3(k)の装置数の比率(k/n)とに基づいて、全医用装置3−1〜3−nにおける特定処理識別情報の個数の分布を推定することにより、障害の発生頻度の分布を推定する。すなわち、一部の医用装置3(1)〜3(k)に関する分布における各特定処理識別情報の個数の値を、上記比率で除算することにより、全医用装置3−1〜3−nに関する、特定処理識別情報の個数を変数とする医用装置の装置数の分布を求める。以上が、障害発生頻度の分布の推定処理の一例である。
【0167】
次に、医用ソフトウェア310の使用頻度(使用回数)の分布の推定処理の例を説明する。まず、演算処理部27は、一部の医用装置3(1)〜3(k)のそれぞれからの使用頻度情報に基づいて、これら医用装置3(1)〜3(k)における使用日時情報の個数の分布を求める。すなわち、使用頻度情報は、第1の実施形態において説明したように、所定の期間内における医用ソフトウェア310の使用回数を示す情報であり、具体的には、所定の期間にログ情報320に記録された起動処理や終了処理のデバッグログ(使用日時情報)の個数を示す情報である。演算処理部27は、各医用装置3(1)〜3(k)における使用日時情報の個数を取得し、それらを個数別に分類するとともに、各個数に対応する装置数を求める。それにより、使用日時情報の個数を変数(離散変数)とする、医用装置の装置数の分布(離散分布)が得られる。
【0168】
続いて、演算処理部27は、上記障害発生頻度の場合と同様に、この使用日時情報の個数毎の装置数の分布と、全医用装置3−1〜3−nの装置数に対する医用装置3(1)〜3(k)の装置数の比率(k/n)とに基づき、全医用装置3−1〜3−nにおける使用日時情報の個数の分布を推定することにより、医用ソフトウェア310の使用頻度(使用回数)の分布を推定する。以上が、使用回数に関する使用頻度の分布の推定処理の一例である。
【0169】
次に、医用ソフトウェア310の使用頻度(使用時間)の分布の推定処理の例を説明する。まず、演算処理部27は、一部の医用装置3(1)〜3(k)のそれぞれからの使用頻度情報に基づいて、これら医用装置3(1)〜3(k)における使用時間の分布を求める。すなわち、使用頻度情報は、第1の実施形態において説明したように、所定の期間内における医用ソフトウェア310の累積使用時間を示す情報である。演算処理部27は、各医用装置3(1)〜3(k)における使用時間を取得し、それらを使用時間別に分類するとともに、各使用時間に対応する装置数を求める。それにより、使用時間を変数とする、医用装置の装置数の分布が得られる。ここで、変数となる使用時間は、たとえば四捨五入により所定の単位時間毎(1時間単位等)に設定される。
【0170】
続いて、演算処理部27は、上記障害発生頻度の場合と同様に、この使用時間毎の装置数の分布と、全医用装置3−1〜3−nの装置数に対する医用装置3(1)〜3(k)の装置数の比率(k/n)とに基づき、全医用装置3−1〜3−nにおける使用時間の分布を推定することにより、医用ソフトウェア310の使用頻度(使用時間)の分布を推定する。以上が、使用時間に関する使用頻度の分布の推定処理の一例である。
【0171】
(分布推定処理の具体例)
ここで、演算処理部27による上記の分布推定処理の具体例を、障害発生頻度の場合を取り上げて説明する。全医用装置3−1〜3−nの装置数をn=1000とし、一部の医用装置3(1)〜3(k)の装置数をk=100とする。
【0172】
演算処理部27は、一部の医用装置3(1)〜3(100)のそれぞれからの発生頻度情報に基づいて、これら医用装置3(1)〜3(100)における特定処理識別情報の個数の分布を求める。この分布において、特定処理識別情報の個数=0(障害発生無し)に対応する装置数が0であり、個数=1〜10に対応する装置数がそれぞれ10であったとする。
【0173】
演算処理部27は、この分布における各特定処理識別情報の個数の値を、全医用装置3−1〜3−1000の装置数に対する医用装置3(1)〜3(100)の装置数の比率(100/1000=0.1)で除算する。それによると、特定処理識別情報の個数=0に対応する装置数=0、個数=1〜10のそれぞれに対応する装置数=10/0.1=100が得られる。これが、全医用装置3−1〜3−1000に関する分布の推定値である。
【0174】
〔送信開始日時決定部〕
送信開始日時決定部23は、演算処理部27により推定された障害発生頻度の分布や、医用ソフトウェア310の使用頻度の分布に基づいて、その分布における障害発生頻度の各値や使用頻度の各値(つまり、分布における変数の各値)について、障害修正用ソフトウェア210の送信開始日時を決定する。決定された送信開始日時は、送信開始日時情報216として情報格納部21に格納される。
【0175】
(送信開始日時決定処理の具体例)
送信開始日時決定部23が実行する処理を、障害発生頻度の場合を取り上げて、より具体的に説明する。情報格納部21には、第1の実施形態と同様に、サーバ2による最大送信能力を示す配信可能装置数情報が格納されている(たとえば、配信可能装置数情報:M=100(装置/日)とする。)。
【0176】
また、全装置数n=1000とし、全医用装置3−1〜3−1000が配信先に設定されているものとする。この場合、これら1000の医用装置3−1〜3−1000に対して、1日100装置ずつ、合計10日に亘って配信を行うようにスケジュールが組まれる。
【0177】
また、演算処理部27により推定された全医用装置3−1〜3−1000に関する分布として、上記具体例の分布、すなわち、特定処理識別情報の個数=0に対応する装置数=0、個数=1〜10のそれぞれに対応する装置数=100を用いる。
【0178】
送信開始日時決定部23は、まず、配信可能装置数情報(=100装置/日)と、配信先の全装置数(=1000装置)とに基づいて、全装置への配信に必要な日数を算出する(1000÷100=10日)。なお、算出結果が整数にならない場合については、第1の実施形態と同様に取り扱うことができる。
【0179】
次に、送信開始日時決定部23は、算出された配信日数(10日)を考慮して、推定された分布における各特定処理識別情報の個数について、個数の値の大きいものに早い日時を割り当てるようにして配信開始日時を決定する。本例では、特定処理識別情報の個数=10の100装置の配信開始日時を配信第1日目(の例えば午前0時)に、個数=9の100装置の配信開始日時を配信第2日目(の例えば午前0時)に、個数=8の100装置の配信開始日時を配信第3日目(の例えば午前0時)に、・・・・、個数=2の100装置の配信開始日時を配信第9日目(の例えば午前0時)に、個数=1の100装置の配信開始日時を配信第10日目(の例えば午前0時)に、それぞれ割り当てる。
【0180】
このように、本実施形態の送信開始日時情報216は、特定処理識別情報の個数(医用ソフトウェア310の使用回数、累積使用時間)と、配信(開始)日とを関連付けた情報として形成される。
【0181】
[システムの動作態様]
このような構成を備えるソフトウェア管理システム100の動作態様の一例について説明する。なお、医用ソフトウェア310の動作状況の記録処理は、第1の実施形態と同様にして実行される(図6参照)。以下、障害修正用ソフトウェア210の配信スケジュールの決定処理、及び、障害修正用ソフトウェア210の配信処理について説明する。
【0182】
〔障害修正用ソフトウェアの配信スケジュール決定処理(障害発生頻度):図11〕
まず、医用ソフトウェア310の障害発生頻度に基づいて障害修正用ソフトウェア210の配信スケジュールを決定する処理について、図11のフローチャートを参照しつつ説明する。
【0183】
準備段階として、新たに開発した障害修正用ソフトウェア210と、そのソフトウェアモジュール識別情報211と、障害特定情報312と、配信先リスト情報213とを、サーバ2の情報格納部21に格納し、登録する(S41)。
【0184】
サーバ2は、医用ソフトウェア310の障害発生頻度の確認を要求する要求信号と、障害特定情報212と、確認期間情報とを、広域ネットワークNを通じて、一部の医用装置3(1)〜3(k)にそれぞれ送信する(S42)。
【0185】
医用装置3(1)〜3(k)のそれぞれは、この要求信号に対応して送信情報作成部33を動作させ、障害特定情報212と確認期間情報とに基づいて、障害の発生頻度情報を作成させるとともに、作成された発生頻度情報をサーバ2に送信する(S43)。
【0186】
各医用装置3(1)〜3(k)からの発生頻度情報を受信すると、サーバ2の演算処理部27は、これら発生頻度情報に基づき、前述の要領で、全医用装置3−1〜3−nにおける障害の発生頻度の分布を推定する(S44)。
【0187】
送信開始日時決定部23は、推定された分布に基づき、前述の要領で、この分布における発生頻度のそれぞれの値について、障害修正用ソフトウェア210の送信開始日時を決定する(S45)。
【0188】
制御部20は、決定された送信開始日時を、送信開始日時情報216として情報格納部21に格納する(S46)。このとき、送信開始日時情報216は、障害修正用ソフトウェア210に関連付けられて格納される。以上で、医用ソフトウェア310の障害発生頻度に基づく障害修正用ソフトウェア210の配信スケジュール決定処理は終了となる。
【0189】
〔修正用ソフトウェアの配信処理:図12〕
次に、医用装置3−1〜3−nに対する障害修正用ソフトウェア210の配信処理について、図12のフローチャートを参照しつつ説明する。
【0190】
医用装置3は、所定のタイミングでサーバ2に送信要求信号を送信する(S51)。サーバ2の制御部20は、医用装置3を配信先とするアップデート用ソフトウェアの有無を確認する(S52)。
【0191】
医用装置3に対するアップデート用ソフトウェアが無い場合には(S53;N)、処理を終了する。このとき、アップデート用ソフトウェアが無い旨を示す信号を医用装置3に送信するようにしてもよい。
【0192】
一方、医用装置3に対するアップデート用ソフトウェアが有る場合(S53;Y)、サーバ2は、発生頻度情報の作成を要求する要求信号と、障害特定情報212と、確認期間情報とを医用装置3に送信する(S54)。医用装置3は、要求に対応して送信情報作成部33を動作させて発生頻度情報を作成させるとともに、作成された発生頻度情報をサーバ2に送信する(S55)。
【0193】
サーバ2の制御部20は、医用装置3からの発生頻度情報に示す特定処理識別情報の個数に対応する送信開始日時を、配信開始日時情報216から選択して日時判断部24に送る(S56)。このとき、計時部25から日時判断部24に現在日時が送られる。日時判断部24は、この現在日時と送信開始日時とを比較し、現在日時が送信開始日時以降であるか否か、つまり送信開始日時を経過しか否かを判断する(S57)。
【0194】
送信開始日時を経過していないと判断された場合には(S58;N)、処理を終了する。このとき、アップデート用ソフトウェアが無い旨を示す信号を医用装置3に送信するようにしてもよい。
【0195】
一方、送信開始日時を経過していると判断された場合(S58;Y)、サーバ2は、情報格納部21から障害修正用ソフトウェア210を読み出して医用装置3に送信する(S59)。医用装置3は、この障害修正用ソフトウェア210をソフトウェア記憶部31に記憶させ、医用ソフトウェア31のアップデートを実行する(S60)。以上で、障害修正用ソフトウェア210の配信処理は終了となる。
【0196】
〔障害修正用ソフトウェアの配信スケジュール決定処理(使用頻度):図13〕
次に、医用ソフトウェア310の使用頻度に基づいて障害修正用ソフトウェア210の配信スケジュールを決定する処理について、図13のフローチャートを参照しつつ説明する。この処理において使用頻度情報の作成に用いられる情報(使用日時情報)は、医用ソフトウェア310の起動のログ情報や終了のログ情報である。以下、起動のログ情報に基づいて使用頻度情報を作成する場合を説明する。
【0197】
準備段階として、新たに開発した障害修正用ソフトウェア210等が登録される(S61)。
【0198】
サーバ2は、医用ソフトウェア310の使用頻度の確認を要求する要求信号と確認期間情報とを、一部の医用装置3(1)〜3(k)にそれぞれ送信する(S62)。
【0199】
医用装置3(1)〜3(k)のそれぞれは、この要求信号に対応して、使用頻度情報を作成し、サーバ2に送信する(S63)。この使用頻度情報は、確認期間情報に示す所定の期間における医用ソフトウェア310の使用頻度(使用回数/使用時間)を示す情報である。
【0200】
各医用装置3(1)〜3(k)からの使用頻度情報を受信すると、サーバ2の演算処理部27は、これら使用頻度情報に基づき、前述の要領で、全医用装置3−1〜3−nにおける使用頻度の分布を推定する(S64)。
【0201】
送信開始日時決定部23は、推定された分布に基づき、前述の要領で、この分布における使用頻度(使用回数/使用時間)のそれぞれの値について、障害修正用ソフトウェア210の送信開始日時を決定する(S65)。
【0202】
制御部20は、決定された送信開始日時を、送信開始日時情報216として情報格納部21に格納する(S66)。このとき、送信開始日時情報216は、障害修正用ソフトウェア210に関連付けられて格納される。以上で、医用ソフトウェア310の使用頻度に基づく障害修正用ソフトウェア210の配信スケジュール決定処理は終了となる。
【0203】
このように決定された配信スケジュールに基づく障害修正用ソフトウェア210の配信処理は、前述の図12の場合と同様にして実行される。
【0204】
[作用効果]
本実施形態のソフトウェア管理システム100が奏する作用効果について説明する。
【0205】
まず、このソフトウェア管理システム100によれば、第1の実施形態のソフトウェア管理システム1と同様に、アップデートの緊急性や必要性の高い医用装置に対して優先的に障害修正用ソフトウェア210を送信できるとともに、サーバ容量の冗長化やネットワーク容量の拡大などのシステム負荷を増大させなくとも、配信処理の円滑化を図ることができる。
【0206】
また、本実施形態に特有の効果として、修正用ソフトウェア210の配信スケジュール決定処理の省力化を図ることができる。すなわち、本実施形態では、全ての医用装置3−1〜3−nにおける発生頻度情報や使用頻度情報を用いて配信スケジュールを決定する代わりに、一部の医用装置3(1)〜3(k)の発生頻度情報や使用頻度情報に基づく障害発生頻度や使用頻度の分布を用いて、全医用装置3−1〜3−nにおける障害発生頻度や使用頻度の分布を推定するようになっている。そして、この推定された分布に基づいて、障害発生頻度や使用頻度の値毎に、送信開始日時を決定している。このように、全医用装置3−1〜3−nから発生頻度情報等を収集する必要がないため、配信スケジュール決定処理を効率的に行うことができる。特に、長期間に亘り使用されていない医用装置がある場合など、或る医用装置から発生頻度情報等を取得できないような場合であっても、本実施形態によれば、配信スケジュールを有効に決定することができる。
【0207】
〈第3の実施形態〉
図14、図15を参照しつつ、本発明に係るソフトウェア管理システムの第3の実施形態を説明する。図14は、本システムの全体構成の一例を表すブロック図である。図15は、本システムの動作態様の一例を表すフローチャートである。なお、第1の実施形態と同様の構成部分については、同じ符号を用いて説明することにする。
【0208】
[システム構成]
図14に示すソフトウェア管理システム1000は、第1の実施形態と同様に、サーバ2と、複数の医用装置3−1〜3−nとを備え、更に、ソフトウェア開発者が使用する開発者端末5を備えている。また、医用装置3(3−1)には、第1の実施形態と同様の外部装置4が接続されている。
【0209】
開発者端末5は、サーバ2と通信可能に構成されている。その通信態様としては、LAN等のローカルネットワークによるものであってもよいし、インターネット等の広域ネットワークによるものであってもよく、また、無線通信であってもよいし、有線通信であってもよい。開発者端末5は、画面表示機能や音声出力機能を有する任意の端末装置によって構成され、たとえば携帯電話やPDA(Personal Digital Assistance)やノートパソコン等の任意のモバイル端末であってもよいし、デスクトップパソコン等の設置型の任意の端末であってもよい。また、後述の報知情報を受信する専用の端末であってもよい。なお、開発者端末5の台数は、1台に限定されるものではなく、たとえばソフトウェア開発者一人ひとりに対して設けるようにしてもよい。
【0210】
サーバ2は、制御部20、情報格納部21、通信部26及び検索部28を含んで構成される。情報格納部21には、障害修正用ソフトウェア210と障害履歴情報217とがあらかじめ格納されている。障害履歴情報217は、過去に医用ソフトウェア310に発生した障害の履歴を表す情報であり、その障害に関連する特定の処理の特定処理識別情報(デバッグログ)と、その障害が発生したソフトウェアモジュールのソフトウェアモジュール識別情報とを含んでいる。なお、情報格納部21には、複数の障害履歴情報217と、各障害履歴情報217に示す障害を修正する障害修正用ソフトウェア210とが格納されている。対応する障害修正用ソフトウェア210と障害履歴情報217は、所定の識別情報によって互いに関連付けられている。
【0211】
検索部28は、本発明の「検索手段」の一例に相当し、後述のように医用装置3からデバッグログ等が送信されたときに、そのデバッグログ等と同一のデバッグログ情報等を含む障害履歴情報217を情報格納部21から検索する処理を行う。この検索部28は、CPU等のマイクロプロセッサとRAM等のメモリとを含んで構成される。
【0212】
制御部20には、配信制御部200と報知制御部201とが設けられている。報知制御部201は、本発明の「報知制御手段」の一例に相当し、検索部28によって障害履歴情報が検索されなかったことに対応して、所定の報知情報を開発者端末5に送信するように動作する。ここで、所定の報知情報は、たとえば「新たなソフトウェア障害が発生しました」等の文字情報や音声情報など、開発者端末5により出力可能な任意の形態の情報からなる。また、開発者端末5が、たとえば携帯電話等のバイブレーション機能を有する端末である場合には、開発者端末5の振動を報知情報として用いることも可能である。
【0213】
[システムの動作態様]
このような構成を備えるソフトウェア管理システム1000の動作態様について説明する。図15に示すフローチャートは、ソフトウェア管理システム1000の動作態様の一例を表すものである。以下、このフローチャートを参照して説明する。
【0214】
医用装置3は、医用ソフトウェア310にしたがって処理を実行する度毎に、その処理のログ情報320を記録する(S71)。医用ソフトウェア310の使用中に障害が発生すると、制御部30がこれを検知する(S72)。このとき、医用ソフトウェア310は、無応答状態となり、ユーザや全体制御モジュール311やオペレーティングシステムによって強制終了される(S73)。
【0215】
全体制御モジュール311やオペレーティングシステムによって自動的に強制終了された場合(S73;自動)、制御部30は、自動で強制終了された旨のログ情報320を記録する(S74)。一方、ユーザが手動で強制終了を行った場合には、手動で強制終了された旨のログ情報320を記録する(S75)。
【0216】
医用装置3は、この障害に関するログ情報320をサーバ2に送信する(S76)。このログ情報320には、障害発生の所定時間前から障害発生までの間に記録されたデバッグログ、各デバッグログのモジュール名(ソフトウェアモジュール識別情報)、強制終了のログ等が含まれる。
【0217】
サーバ2の検索部28は、医用装置3からのログ情報320に含まれるデバッグログと同一のデバッグログ(特定処理識別情報)を含む障害履歴情報217を、情報格納部21から検索する(S77)。
【0218】
そのような障害履歴情報217が検索された場合(S78;Y)、検索された障害履歴情報217に関連付けられた障害修正用ソフトウェア210を特定し(S79)、医用装置3に送信する(S80)。医用装置3は、受信した障害修正用ソフトウェア210をソフトウェア格納部31に格納し、医用ソフトウェア310をアップデートする(S81)。この場合の処理は、これで終了となる。
【0219】
一方、障害履歴情報217が検索されなかった場合には(S78;N)、報知制御部201が、通信部26を制御して、所定の報知情報を開発者端末5に送信し、既存の障害修正用ソフトウェア210では対処できない新たな障害が発生した旨をソフトウェア開発者に通知する(S82)。
【0220】
ソフトウェア開発者は、通知された報知情報を確認し、この新たな障害に対する障害修正用ソフトウェアの開発を行う(S83)。その際、ログ情報320の解析などが行われる。新たに開発された障害修正用ソフトウェアは、新たな障害履歴情報とともに情報格納部21に格納される(S84)。以上で、この場合の処理は終了となる。なお、この新たな障害修正用ソフトウェアは、適宜のタイミングで医用装置3に送信されることとなる。
【0221】
[作用効果]
以上のような本実施形態に係るソフトウェア管理システム1000によれば、次のような作用、効果が奏される。
【0222】
まず、このソフトウェア管理システム1000の医用装置3は、医用ソフトウェア310に障害が発生したときに、その障害に関連するログ情報320をサーバ2に送信するようになっている。サーバ2は、医用装置3からのログ情報320に対応する障害履歴情報217を検索することにより、医用装置3に発生した障害の特定を行う。そして、検索された障害履歴情報217に関連付けられた障害修正用ソフトウェア210を医用装置3に送信して障害を修正させるように動作する。このように、ソフトウェア管理システム1000によれば、医用ソフトウェア310に発生した障害の内容を的確に特定し、適当な障害修正用ソフトウェア210を医用装置3に送信し、障害を修正することができる。
【0223】
また、医用ソフトウェア310に発生した障害が新たな障害である場合には、この障害を修正する障害修正用ソフトウェア2は未だ開発されておらず、したがって、情報格納部21にも格納されていない。このような場合、サーバ2は、開発者端末5に向けて報知情報を送信し、新たなソフトウェア障害が発生したことをソフトウェア開発者に通知するように作用する。それにより、ソフトウェア開発者は、新たな障害の発生を迅速に知ることができる。特に、障害修正の緊急度が高い場合などにおいて、障害修正用ソフトウェアの開発に迅速に取り掛かることができる。
【図面の簡単な説明】
【0224】
【図1】本発明に係るソフトウェア管理システムの第1の実施形態の構成の一例を表す概略ブロック図である。
【図2】本発明に係るソフトウェア管理システムの第1の実施形態の医用装置の動作を制御する医用ソフトウェアのソフトウェア構成の一例を表す概略図である。
【図3】本発明に係るソフトウェア管理システムの第1の実施形態の医用装置の動作状態を記録したログ情報の一例を表す図である。
【図4】本発明に係るソフトウェア管理システムの第1の実施形態の医用装置の動作状態を記録したログ情報の一例を表す図である。
【図5】本発明に係るソフトウェア管理システムの第1の実施形態の医用装置の動作状態を記録したログ情報の一例を表す図である。
【図6】本発明に係るソフトウェア管理システムの第1の実施形態の動作態様の一例を表すフローチャートである。
【図7】本発明に係るソフトウェア管理システムの第1の実施形態の動作態様の一例を表すフローチャートである。
【図8】本発明に係るソフトウェア管理システムの第1の実施形態の動作態様の一例を表すフローチャートである。
【図9】本発明に係るソフトウェア管理システムの第1の実施形態の動作態様の一例を表すフローチャートである。
【図10】本発明に係るソフトウェア管理システムの第2の実施形態の構成の一例を表す概略ブロック図である。
【図11】本発明に係るソフトウェア管理システムの第2の実施形態の動作態様の一例を表すフローチャートである。
【図12】本発明に係るソフトウェア管理システムの第2の実施形態の動作態様の一例を表すフローチャートである。
【図13】本発明に係るソフトウェア管理システムの第2の実施形態の動作態様の一例を表すフローチャートである。
【図14】本発明に係るソフトウェア管理システムの第3の実施形態の構成の一例を表す概略ブロック図である。
【図15】本発明に係るソフトウェア管理システムの第3の実施形態の動作態様の一例を表すフローチャートである。
【符号の説明】
【0225】
1、100、1000 ソフトウェア管理システム
2 サーバ
20 制御部
200 配信制御部
201 報知制御部
21 情報格納部
210 障害修正用ソフトウェア
211 ソフトウェアモジュール識別情報
212 障害特定情報
213 配信先リスト情報
214 配信順序情報
215、216 送信開始日時情報
217 障害履歴情報
22 配信順序決定部
23 送信開始日時決定部
24 日時判断部
25 計時部
26 通信部
27 演算処理部
28 検索部
3、3−1〜3−n 医用装置
30 制御部
31 ソフトウェア記憶部
310 医用ソフトウェア
32 ログ記録部
320 ログ情報
321 無応答ログ情報
322 強制終了ログ情報
323 デバッグログ情報
33 送信情報作成部
34 ユーザインターフェイス
35 通信部
4 外部装置
5 開発者端末
N 広域ネットワーク

【特許請求の範囲】
【請求項1】
広域ネットワークにそれぞれ接続され、ソフトウェアを記憶するソフトウェア記憶手段をそれぞれに備え、該記憶されたソフトウェアによりそれぞれ制御される複数の医用装置と、
前記広域ネットワークに接続され、前記ソフトウェアに発生した障害を修正するアップデート用ソフトウェアを、前記広域ネットワークを通じて、前記複数の医用装置に配信するソフトウェア配信サーバと、
を含むソフトウェア管理システムであって、
前記複数の医用装置のそれぞれについて、前記ソフトウェアの動作状況を示す動作状況情報を記録する記録手段を備え、
前記ソフトウェア配信サーバは、
アップデート用ソフトウェアをあらかじめ格納する格納手段と、
前記記録された動作状況情報に基づいて、前記複数の医用装置に対する前記アップデート用ソフトウェアの配信順序を決定する配信スケジュール決定手段と、
前記決定された配信順序に基づいて、前記複数の医用装置に前記アップデート用ソフトウェアを配信する配信制御手段と、
を備え、
前記複数の医用装置のそれぞれは、前記配信された前記アップデート用ソフトウェアにより前記ソフトウェアのアップデートを行う、
ことを特徴とするソフトウェア管理システム。
【請求項2】
前記記録手段に記録された動作状況情報に基づいて、前記複数の医用装置のそれぞれの前記ソフトウェアにおける障害の発生頻度を示す発生頻度情報を作成する発生頻度情報作成手段を更に備え、
前記配信スケジュール決定手段は、前記複数の医用装置のそれぞれに対して、前記作成された発生頻度情報に示す障害の発生頻度の高い医用装置から順に前記配信順序を決定する、
ことを特徴とする請求項1に記載のソフトウェア管理システム。
【請求項3】
前記記録手段は、前記複数の医用装置のそれぞれについて、当該医用装置が前記ソフトウェアの障害に関連する特定の処理を実行する度毎に、該特定の処理を識別する特定処理識別情報と、該特定の処理が実行された日時を示す特定処理日時情報とを、前記動作状況情報として互いに関連付けて記録し、
前記発生頻度情報作成手段は、前記複数の医用装置のそれぞれについて、前記記録された前記特定処理識別情報のうち、所定の期間に属する日時を示す特定処理日時情報に関連付けられた特定処理識別情報の個数をカウントして前記発生頻度情報を作成し、
前記配信スケジュール決定手段は、前記複数の医用装置のそれぞれについて前記作成された発生頻度情報に示す前記特定処理識別情報の個数を比較し、前記複数の医用装置のそれぞれに対して、前記個数の多い医用装置から順に前記アップデート用ソフトウェアを送信する順位を指定することにより、前記配信順序を決定する、
ことを特徴とする請求項2に記載のソフトウェア管理システム。
【請求項4】
前記記録手段に記録された動作状況情報に基づいて、前記複数の医用装置のそれぞれにおける前記ソフトウェアの使用頻度を示す使用頻度情報を作成する使用頻度情報作成手段を更に備え、
前記配信スケジュール決定手段は、前記複数の医用装置のそれぞれに対して、前記作成された使用頻度情報に示す前記ソフトウェアの使用頻度の高い医用装置から順に前記配信順序を決定する、
ことを特徴とする請求項1に記載のソフトウェア管理システム。
【請求項5】
前記記録手段は、前記複数の医用装置のそれぞれについて、前記ソフトウェアが使用される度毎に、その使用日時を示す使用日時情報を前記動作状況情報として記録し、
前記使用頻度情報作成手段は、前記複数の医用装置のそれぞれについて、前記記録された使用日時情報のうち、所定の期間に属する使用日時を示す使用日時情報の個数をカウントして前記使用頻度情報を作成し、
前記配信スケジュール決定手段は、前記複数の医用装置のそれぞれについて前記作成された使用頻度情報に示す前記使用日時情報の個数を比較し、前記複数の医用装置のそれぞれに対して、前記個数の多い医用装置から順に前記アップデート用ソフトウェアを送信する順位を指定することにより、前記配信順序を決定する、
ことを特徴とする請求項4に記載のソフトウェア管理システム。
【請求項6】
前記記録手段は、前記複数の医用装置のそれぞれについて、前記ソフトウェアが使用される度毎に、その使用日時を示す使用日時情報を前記動作状況情報として記録し、
前記使用頻度情報作成手段は、前記複数の医用装置のそれぞれについて、前記記録された使用日時情報のうち、所定の期間に属する使用日時を示す使用日時情報に基づいて、当該所定の期間における前記ソフトウェアの使用時間を算出して前記使用頻度情報を作成し、
前記配信スケジュール決定手段は、前記複数の医用装置のそれぞれについて前記作成された使用頻度情報に示す前記使用時間の値を比較し、前記複数の医用装置のそれぞれに対して、前記使用時間の値の大きい医用装置から順に前記アップデート用ソフトウェアを送信する順位を指定することにより、前記配信順序を決定する、
ことを特徴とする請求項4に記載のソフトウェア管理システム。
【請求項7】
広域ネットワークにそれぞれ接続され、ソフトウェアを記憶するソフトウェア記憶手段をそれぞれに備え、該記憶されたソフトウェアによりそれぞれ制御される複数の医用装置と、
前記広域ネットワークに接続され、前記ソフトウェアに発生した障害を修正するアップデート用ソフトウェアを、前記広域ネットワークを通じて、前記複数の医用装置に配信するソフトウェア配信サーバと、
を含むソフトウェア管理システムであって、
前記複数の医用装置のそれぞれは、
前記ソフトウェアの障害に関連する特定の処理を当該医用装置が実行する度毎に、該特定の処理を識別する特定処理識別情報と、該特定の処理が実行された日時を示す特定処理日時情報とを、互いに関連付けて記録する記録手段と、
前記記録された前記特定処理識別情報のうち、所定の期間に属する日時を示す特定処理日時情報に関連付けられた特定処理識別情報の個数をカウントして、前記ソフトウェアにおける障害の発生頻度情報を作成する発生頻度情報作成手段と、
を備え、
前記ソフトウェア配信サーバは、
前記アップデート用ソフトウェアをあらかじめ格納する格納手段と、
前記発生頻度情報作成手段の動作を要求する要求信号を、前記広域ネットワークを通じて、前記複数の医用装置のそれぞれに送信する送信手段と、
前記送信された要求信号に対応して前記発生頻度情報作成手段により作成された発生頻度情報を、前記広域ネットワークを通じて、前記複数の医用装置のそれぞれから受信する受信手段と、
前記複数の医用装置のそれぞれから受信した前記発生頻度情報に示す前記特定処理識別情報の個数を比較し、前記複数の医用装置のそれぞれに対して、前記個数の多い医用装置から順に前記アップデート用ソフトウェアを送信する順位を指定することにより、前記複数の医用装置に対する前記アップデート用ソフトウェアの配信順序を決定する配信スケジュール決定手段と、
前記決定された配信順序に基づいて、前記複数の医用装置に前記アップデート用ソフトウェアを配信する配信制御手段と、
を備え、
前記複数の医用装置のそれぞれは、前記配信された前記アップデート用ソフトウェアにより前記ソフトウェアのアップデートを行う、
ことを特徴とするソフトウェア管理システム。
【請求項8】
広域ネットワークにそれぞれ接続され、ソフトウェアを記憶するソフトウェア記憶手段をそれぞれに備え、該記憶されたソフトウェアによりそれぞれ制御される複数の医用装置と、
前記広域ネットワークに接続され、前記ソフトウェアに発生した障害を修正するアップデート用ソフトウェアを、前記広域ネットワークを通じて、前記複数の医用装置に配信するソフトウェア配信サーバと、
を含むソフトウェア管理システムであって、
前記複数の医用装置のそれぞれは、
当該医用装置が前記ソフトウェアを使用する度毎に、その使用日時を示す使用日時情報を記録する記録手段と、
前記記録された使用日時情報のうち、所定の期間に属する使用日時を示す使用日時情報の個数をカウントして、当該医用装置における前記ソフトウェアの使用頻度情報を作成する使用頻度情報作成手段と、
を備え、
前記ソフトウェア配信サーバは、
前記アップデート用ソフトウェアをあらかじめ格納する格納手段と、
前記使用頻度情報作成手段の動作を要求する要求信号を、前記広域ネットワークを通じて、前記複数の医用装置のそれぞれに送信する送信手段と、
前記送信された要求信号に対応して前記使用頻度情報作成手段により作成された使用頻度情報を、前記広域ネットワークを通じて、前記複数の医用装置のそれぞれから受信する受信手段と、
前記複数の医用装置のそれぞれから受信した前記使用頻度情報に示す前記使用日時情報の個数を比較し、前記複数の医用装置のそれぞれに対して、前記個数の多い医用装置から順に前記アップデート用ソフトウェアを送信する順位を指定することにより、前記複数の医用装置に対する前記アップデート用ソフトウェアの配信順序を決定する配信スケジュール決定手段と、
前記決定された配信順序に基づいて、前記複数の医用装置に前記アップデート用ソフトウェアを配信する配信制御手段と、
を備え、
前記複数の医用装置のそれぞれは、前記配信された前記アップデート用ソフトウェアにより前記ソフトウェアのアップデートを行う、
ことを特徴とするソフトウェア管理システム。
【請求項9】
広域ネットワークにそれぞれ接続され、ソフトウェアを記憶するソフトウェア記憶手段をそれぞれに備え、該記憶されたソフトウェアによりそれぞれ制御される複数の医用装置と、
前記広域ネットワークに接続され、前記ソフトウェアに発生した障害を修正するアップデート用ソフトウェアを、前記広域ネットワークを通じて、前記複数の医用装置に配信するソフトウェア配信サーバと、
を含むソフトウェア管理システムであって、
前記複数の医用装置のそれぞれは、
当該医用装置が前記ソフトウェアを使用する度毎に、その使用日時を示す使用日時情報を記録する記録手段と、
前記記録された使用日時情報のうち、所定の期間に属する使用日時を示す使用日時情報に基づいて、当該所定の期間における前記ソフトウェアの使用時間を算出して、当該医用装置における前記ソフトウェアの使用頻度情報を作成する使用頻度情報作成手段と、
を備え、
前記ソフトウェア配信サーバは、
前記アップデート用ソフトウェアをあらかじめ格納する格納手段と、
前記使用頻度情報作成手段の動作を要求する要求信号を、前記広域ネットワークを通じて、前記複数の医用装置のそれぞれに送信する送信手段と、
前記送信された要求信号に対応して前記使用頻度情報作成手段により作成された使用頻度情報を、前記広域ネットワークを通じて、前記複数の医用装置のそれぞれから受信する受信手段と、
前記複数の医用装置のそれぞれから受信した前記使用頻度情報に示す前記使用時間の値を比較し、前記複数の医用装置のそれぞれに対して、前記使用時間の値の大きい医用装置から順に前記アップデート用ソフトウェアを送信する順位を指定することにより、前記複数の医用装置に対する前記アップデート用ソフトウェアの配信順序を決定する配信スケジュール決定手段と、
前記決定された配信順序に基づいて、前記複数の医用装置に前記アップデート用ソフトウェアを配信する配信制御手段と、
を備え、
前記複数の医用装置のそれぞれは、前記配信された前記アップデート用ソフトウェアにより前記ソフトウェアのアップデートを行う、
ことを特徴とするソフトウェア管理システム。
【請求項10】
前記配信スケジュール決定手段は、前記複数の医用装置の装置数と、所定時間内にアップデート用ソフトウェアを送信可能な医用装置の最大装置数を示すあらかじめ設定された配信可能装置数情報と、前記配信スケジュール決定手段により決定された前記配信順序とに基づいて、前記複数の医用装置のそれぞれについて、当該医用装置に対する前記アップデート用ソフトウェアの送信開始日時を決定する送信開始日時決定手段を備える、
ことを特徴とする請求項1〜請求項9のいずれか一項に記載のソフトウェア管理システム。
【請求項11】
前記複数の医用装置のそれぞれは、アップデート用ソフトウェアの送信を要求する送信要求信号を、前記広域ネットワークを通じて、前記ソフトウェア配信サーバに送信し、
前記ソフトウェア配信サーバは、前記複数の医用装置のいずれかにより送信された前記送信要求信号を受信したときに、現在日時が、当該医用装置の前記送信開始日時以降であるか判断する日時判断手段を更に備え、
前記配信制御手段は、前記現在日時が前記送信開始日以降であると前記判断された場合にのみ、当該医用装置に前記アップデート用ソフトウェアを送信する、
ことを特徴とする請求項10に記載のソフトウェア管理システム。
【請求項12】
広域ネットワークにそれぞれ接続され、ソフトウェアを記憶するソフトウェア記憶手段をそれぞれに備え、該記憶されたソフトウェアによりそれぞれ制御される複数の医用装置と、
前記広域ネットワークに接続され、前記ソフトウェアに発生した障害を修正するアップデート用ソフトウェアを、前記広域ネットワークを通じて、前記複数の医用装置に配信するソフトウェア配信サーバと、
を含むソフトウェア管理システムであって、
前記複数の医用装置のそれぞれについて、前記ソフトウェアの動作状況を示す動作状況情報を記録する記録手段と、
前記複数の医用装置の一部からなる2以上の医用装置のそれぞれについて前記記録された動作状況情報に基づいて、前記2以上の医用装置のそれぞれの前記ソフトウェアにおける障害の発生頻度を示す発生頻度情報を作成する発生頻度情報作成手段と、
を備え、
前記ソフトウェア配信サーバは、
アップデート用ソフトウェアをあらかじめ格納する格納手段と、
前記作成された前記2以上の医用装置のそれぞれの発生頻度情報に基づいて、前記複数の医用装置における前記障害の発生頻度の分布を推定する演算手段と、
前記推定された前記障害の発生頻度の分布に基づいて、該分布における前記発生頻度のそれぞれの値について、前記アップデート用ソフトウェアの送信開始日時を決定する送信開始日時決定手段と、
前記決定された送信開始日時に基づいて、前記複数の医用装置に前記アップデート用ソフトウェアを配信する配信制御手段と、
を備え、
当該医用装置は、前記配信された前記アップデート用ソフトウェアにより前記ソフトウェアのアップデートを行う、
ことを特徴とするソフトウェア管理システム。
【請求項13】
前記記録手段は、前記複数の医用装置のそれぞれについて、当該医用装置が前記ソフトウェアの障害に関連する特定の処理を実行する度毎に、該特定の処理を識別する特定処理識別情報と、該特定の処理が実行された日時を示す特定処理日時情報とを、前記動作状況情報として互いに関連付けて記録し、
前記発生頻度情報作成手段は、前記2以上の医用装置のそれぞれについて、前記記録された特定処理識別情報のうち、所定の期間に属する日時を示す特定処理日時情報に関連付けられた特定処理識別情報の個数をカウントして前記発生頻度情報を作成し、
前記演算手段は、前記作成された発生頻度情報に基づいて、前記2以上の医用装置における前記特定処理識別情報の個数の分布を求めるとともに、該求められた分布と、前記複数の医用装置の装置数に対する前記2以上の医用装置の装置数の比率とに基づいて、前記複数の医用装置における前記特定処理識別情報の個数の分布を推定することにより、前記発生頻度の分布を推定し、
前記送信開始日時決定手段は、前記複数の医用装置の装置数と、所定時間内にアップデート用ソフトウェアを送信可能な医用装置の最大装置数を示すあらかじめ設定された配信可能装置数情報と、前記推定された前記特定処理識別情報の個数の分布とに基づいて、該分布における前記特定処置識別情報の個数のそれぞれの値について、前記アップデート用ソフトウェアの送信開始日時を決定する、
ことを特徴とする請求項12に記載のソフトウェア管理システム。
【請求項14】
広域ネットワークにそれぞれ接続され、ソフトウェアを記憶するソフトウェア記憶手段をそれぞれに備え、該記憶されたソフトウェアによりそれぞれ制御される複数の医用装置と、
前記広域ネットワークに接続され、前記ソフトウェアに発生した障害を修正するアップデート用ソフトウェアを、前記広域ネットワークを通じて、前記複数の医用装置に配信するソフトウェア配信サーバと、
を含むソフトウェア管理システムであって、
前記複数の医用装置のそれぞれについて、前記ソフトウェアの動作状況を示す動作状況情報を記録する記録手段と、
前記複数の医用装置の一部からなる2以上の医用装置のそれぞれについて前記記録された動作状況情報に基づいて、前記2以上の医用装置のそれぞれにおける前記ソフトウェアの使用頻度を示す使用頻度情報を作成する使用頻度情報作成手段と、
を備え、
前記ソフトウェア配信サーバは、
アップデート用ソフトウェアをあらかじめ格納する格納手段と、
前記作成された前記2以上の医用装置のそれぞれの使用頻度情報に基づいて、前記複数の医用装置における前記ソフトウェアの使用頻度の分布を推定する演算手段と、
前記推定された前記使用頻度の分布に基づいて、該分布における前記使用頻度のそれぞれの値について、前記アップデート用ソフトウェアの送信開始日時を決定する送信開始日時決定手段と、
前記決定された送信開始日時に基づいて、前記複数の医用装置に前記アップデート用ソフトウェアを配信する配信制御手段と、
を備え、
当該医用装置は、前記配信された前記アップデート用ソフトウェアにより前記ソフトウェアのアップデートを行う、
ことを特徴とするソフトウェア管理システム。
【請求項15】
前記記録手段は、前記複数の医用装置のそれぞれについて、前記ソフトウェアが使用される度毎に、その使用日時を示す使用日時情報を前記動作状況情報として記録し、
前記使用頻度情報作成手段は、前記2以上の医用装置のそれぞれについて、前記記録された使用日時情報のうち、所定の期間に属する使用日時を示す使用日時情報の個数をカウントして前記使用頻度情報を作成し、
前記演算手段は、前記作成された使用頻度情報に基づいて、前記2以上の医用装置における前記使用日時情報の個数の分布を求めるとともに、該求められた分布と、前記複数の医用装置の装置数に対する前記2以上の医用装置の装置数の比率とに基づいて、前記複数の医用装置における前記使用日時情報の個数の分布を推定することにより、前記使用頻度の分布を推定し、
前記送信開始日時決定手段は、前記複数の医用装置の装置数と、所定時間内にアップデート用ソフトウェアを送信可能な医用装置の最大装置数を示すあらかじめ設定された配信可能装置数情報と、前記推定された前記使用日時情報の個数の分布とに基づいて、該分布における前記使用日時情報の個数のそれぞれの値について、前記アップデート用ソフトウェアの送信開始日時を決定する、
ことを特徴とする請求項14に記載のソフトウェア管理システム。
【請求項16】
前記記録手段は、前記複数の医用装置のそれぞれについて、前記ソフトウェアが使用される度毎に、その使用日時を示す使用日時情報を前記動作状況情報として記録し、
前記使用頻度情報作成手段は、前記2以上の医用装置のそれぞれについて、前記記録された使用日時情報のうち、所定の期間に属する使用日時を示す使用日時情報に基づいて、当該所定の期間における前記ソフトウェアの使用時間を算出して前記使用頻度情報を作成し、
前記演算手段は、前記作成された使用頻度情報に基づいて、前記2以上の医用装置における前記使用時間の分布を求めるとともに、該求められた分布と、前記複数の医用装置の装置数に対する前記2以上の医用装置の装置数の比率とに基づいて、前記複数の医用装置における前記使用時間の分布を推定することにより、前記使用頻度の分布を推定し、
前記送信開始日時決定手段は、前記複数の医用装置の装置数と、所定時間内にアップデート用ソフトウェアを送信可能な医用装置の最大装置数を示すあらかじめ設定された配信可能装置数情報と、前記推定された前記使用時間の分布とに基づいて、該分布における前記使用時間のそれぞれの値について、前記アップデート用ソフトウェアの送信開始日時を決定する、
ことを特徴とする請求項14に記載のソフトウェア管理システム。
【請求項17】
広域ネットワークにそれぞれ接続され、ソフトウェアを記憶するソフトウェア記憶手段をそれぞれに備え、該記憶されたソフトウェアによりそれぞれ制御される複数の医用装置と、
前記広域ネットワークに接続され、前記ソフトウェアに発生した障害を修正するアップデート用ソフトウェアを、前記広域ネットワークを通じて、前記複数の医用装置に配信するソフトウェア配信サーバと、
を含むソフトウェア管理システムであって、
前記複数の医用装置のそれぞれは、
当該医用装置が前記ソフトウェアの障害に関連する特定の処理を実行する度毎に、該特定の処理を識別する特定処理識別情報と、該特定の処理が実行された日時を示す特定処理日時情報とを互いに関連付けて記録する記録手段と、
前記記録された特定処理識別情報のうち、所定の期間に属する日時を示す特定処理日時情報に関連付けられた特定処理識別情報の個数をカウントして、当該医用装置における前記障害の発生頻度情報を作成する発生頻度情報作成手段と、
を備え、アップデート用ソフトウェアの送信を要求する送信要求信号を、前記広域ネットワークを通じて、前記ソフトウェア配信サーバに送信し、
前記ソフトウェア配信サーバは、
アップデート用ソフトウェアをあらかじめ格納する格納手段と、
前記発生頻度情報作成手段の動作を要求する要求信号を、前記広域ネットワークを通じて、前記複数の医用装置の一部からなる2以上の医用装置のそれぞれに送信する送信手段と、
前記送信された要求信号に対応して前記発生頻度情報作成手段により作成された発生頻度情報を、前記広域ネットワークを通じて、前記2以上の医用装置のそれぞれから受信する受信手段と、
前記受信した前記発生頻度情報に基づいて、前記2以上の医用装置における前記特定処理識別情報の個数の分布を求めるとともに、該求められた分布と、前記複数の医用装置の装置数に対する前記2以上の医用装置の装置数の比率とに基づいて、前記複数の医用装置における前記特定処理識別情報の個数の分布を推定する演算手段と、
前記複数の医用装置の装置数と、所定時間内にアップデート用ソフトウェアを送信可能な医用装置の最大装置数を示すあらかじめ設定された配信可能装置数情報と、前記推定された前記特定処理識別情報の個数の分布とに基づいて、該分布における前記特定処置識別情報の個数のそれぞれの値について、前記アップデート用ソフトウェアの送信開始日時を決定する送信開始日時決定手段と、
前記複数の医用装置のいずれかにより送信された前記送信要求信号が受信されたときに、当該医用装置の前記記録手段に記録された特定処理識別情報と特定処理日時情報とに基づいて前記発生頻度作成手段により作成される発生頻度情報に示す特定処理識別情報の個数の値を取得し、現在日時が、該取得された個数の値に対応する送信開始日時以降であるか判断する日時判断手段と、
前記現在日時が前記送信開始日以降であると前記判断された場合にのみ、当該医用装置に前記アップデート用ソフトウェアを送信する配信制御手段と、
を備え、
当該医用装置は、前記送信された前記アップデート用ソフトウェアにより前記ソフトウェアのアップデートを行う、
ことを特徴とするソフトウェア管理システム。
【請求項18】
広域ネットワークにそれぞれ接続され、ソフトウェアを記憶するソフトウェア記憶手段をそれぞれに備え、該記憶されたソフトウェアによりそれぞれ制御される複数の医用装置と、
前記広域ネットワークに接続され、前記ソフトウェアに発生した障害を修正するアップデート用ソフトウェアを、前記広域ネットワークを通じて、前記複数の医用装置に配信するソフトウェア配信サーバと、
を含むソフトウェア管理システムであって、
前記複数の医用装置のそれぞれは、
当該医用装置が前記ソフトウェアを使用する度毎に、その使用日時を示す使用日時情報を記録する記録手段と、
前記記録された使用日時情報のうち、所定の期間に属する使用日時を示す使用日時情報の個数をカウントして、当該医用装置における前記ソフトウェアの使用頻度情報を作成する使用頻度情報作成手段と、
を備え、アップデート用ソフトウェアの送信を要求する送信要求信号を、前記広域ネットワークを通じて、前記ソフトウェア配信サーバに送信し、
前記ソフトウェア配信サーバは、
アップデート用ソフトウェアをあらかじめ格納する格納手段と、
前記使用頻度情報作成手段の動作を要求する要求信号を、前記広域ネットワークを通じて、前記複数の医用装置の一部からなる2以上の医用装置のそれぞれに送信する送信手段と、
前記送信された要求信号に対応して前記使用頻度情報作成手段により作成された使用頻度情報を、前記広域ネットワークを通じて、前記2以上の医用装置のそれぞれから受信する受信手段と、
前記受信した前記使用頻度情報に基づいて、前記2以上の医用装置における前記使用日時情報の個数の分布を求めるとともに、該求められた分布と、前記複数の医用装置の装置数に対する前記2以上の医用装置の装置数の比率とに基づいて、前記複数の医用装置における前記使用日時情報の個数の分布を推定する演算手段と、
前記複数の医用装置の装置数と、所定時間内にアップデート用ソフトウェアを送信可能な医用装置の最大装置数を示すあらかじめ設定された配信可能装置数情報と、前記推定された前記使用日時情報の個数の分布とに基づいて、該分布における前記使用日時情報の個数のそれぞれの値について、前記アップデート用ソフトウェアの送信開始日時を決定する送信開始日時決定手段と、
前記複数の医用装置のいずれかにより送信された前記送信要求信号が受信されたときに、当該医用装置の前記記録手段に記録された使用日時情報に基づいて前記使用頻度作成手段により作成される使用頻度情報に示す使用日時情報の個数の値を取得し、現在日時が、該取得された個数の値に対応する送信開始日時以降であるか判断する日時判断手段と、
前記現在日時が前記送信開始日以降であると前記判断された場合にのみ、当該医用装置に前記アップデート用ソフトウェアを送信する配信制御手段と、
を備え、
当該医用装置は、前記送信された前記アップデート用ソフトウェアにより前記ソフトウェアのアップデートを行う、
ことを特徴とするソフトウェア管理システム。
【請求項19】
広域ネットワークにそれぞれ接続され、ソフトウェアを記憶するソフトウェア記憶手段をそれぞれに備え、該記憶されたソフトウェアによりそれぞれ制御される複数の医用装置と、
前記広域ネットワークに接続され、前記ソフトウェアに発生した障害を修正するアップデート用ソフトウェアを、前記広域ネットワークを通じて、前記複数の医用装置に配信するソフトウェア配信サーバと、
を含むソフトウェア管理システムであって、
前記複数の医用装置のそれぞれは、
当該医用装置が前記ソフトウェアを使用する度毎に、その使用日時を示す使用日時情報を記録する記録手段と、
前記記録された使用日時情報のうち、所定の期間に属する使用日時を示す使用日時情報に基づいて、当該所定の期間における前記ソフトウェアの使用時間を算出して、当該医用装置における前記ソフトウェアの使用頻度情報を作成する使用頻度情報作成手段と、
を備え、アップデート用ソフトウェアの送信を要求する送信要求信号を、前記広域ネットワークを通じて、前記ソフトウェア配信サーバに送信し、
前記ソフトウェア配信サーバは、
アップデート用ソフトウェアをあらかじめ格納する格納手段と、
前記使用頻度情報作成手段の動作を要求する要求信号を、前記広域ネットワークを通じて、前記複数の医用装置の一部からなる2以上の医用装置のそれぞれに送信する送信手段と、
前記送信された要求信号に対応して前記使用頻度情報作成手段により作成された使用頻度情報を、前記広域ネットワークを通じて、前記2以上の医用装置のそれぞれから受信する受信手段と、
前記受信した前記使用頻度情報に基づいて、前記2以上の医用装置における前記使用時間の分布を求めるとともに、該求められた分布と、前記複数の医用装置の装置数に対する前記2以上の医用装置の装置数の比率とに基づいて、前記複数の医用装置における前記使用時間の分布を推定する演算手段と、
前記複数の医用装置の装置数と、所定時間内にアップデート用ソフトウェアを送信可能な医用装置の最大装置数を示すあらかじめ設定された配信可能装置数情報と、前記推定された前記使用時間の分布とに基づいて、該分布における前記使用時間のそれぞれの値について、前記アップデート用ソフトウェアの送信開始日時を決定する送信開始日時決定手段と、
前記複数の医用装置のいずれかにより送信された前記送信要求信号が受信されたときに、当該医用装置の前記記録手段に記録された使用日時情報に基づいて前記使用頻度作成手段により作成される使用頻度情報に示す使用時間の値を取得し、現在日時が、該取得された使用時間の値に対応する送信開始日時以降であるか判断する日時判断手段と、
前記現在日時が前記送信開始日以降であると前記判断された場合にのみ、当該医用装置に前記アップデート用ソフトウェアを送信する配信制御手段と、
を備え、
当該医用装置は、前記送信された前記アップデート用ソフトウェアにより前記ソフトウェアのアップデートを行う、
ことを特徴とするソフトウェア管理システム。
【請求項20】
広域ネットワークにそれぞれ接続され、ソフトウェアを記憶するソフトウェア記憶手段をそれぞれに備え、該記憶されたソフトウェアによりそれぞれ制御される複数の医用装置と、
前記広域ネットワークに接続され、前記ソフトウェアに発生した障害を修正するアップデート用ソフトウェアを、前記広域ネットワークを通じて、前記複数の医用装置に配信するソフトウェア配信サーバと、
を含むソフトウェア管理システムであって、
前記複数の医用装置のそれぞれは、
前記ソフトウェアの障害に関連する特定の処理が実行される度毎に、該特定の処理を識別する特定処理識別情報を記録する記録手段と、
前記ソフトウェアに障害が発生したときに、該障害の発生日時の所定時間前から該発生日時までの間に前記記録された特定処理識別情報を、前記広域ネットワークを通じて、前記ソフトウェア配信サーバに送信する特定処理識別情報送信手段と、
を備え、
前記ソフトウェア配信サーバは、
過去に前記ソフトウェアに発生した障害に関連する特定の処理の特定処理識別情報を含む障害履歴情報と、当該障害を修正するアップデート用ソフトウェアとを、互いに関連付けてあらかじめ格納する格納手段と、
前記複数の医用装置のいずれかにより送信された前記特定処理識別情報を受信する受信手段と、
前記受信された特定処理識別情報と同一の特定処理識別情報を含む障害履歴情報を前記格納手段から検索する検索手段と、
障害履歴情報が前記検索された場合に、該検索された障害履歴情報に関連付けられたアップデート用ソフトウェアを、前記広域ネットワークを通じて、前記複数の医用装置に配信する配信制御手段と、
を備え、
前記複数の医用装置のそれぞれは、前記配信されたアップデート用ソフトウェアにより前記ソフトウェアのアップデートを行う、
ことを特徴とするソフトウェア管理システム。
【請求項21】
アップデート用ソフトウェアの開発者により使用される開発者端末を更に備え、
前記ソフトウェア配信サーバは、前記検索手段により障害履歴情報が検索されなかった場合に、所定の報知情報を前記開発者端末に送信する報知制御手段を更に備える、
ことを特徴とする請求項20に記載のソフトウェア管理システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2007−164371(P2007−164371A)
【公開日】平成19年6月28日(2007.6.28)
【国際特許分類】
【出願番号】特願2005−358151(P2005−358151)
【出願日】平成17年12月12日(2005.12.12)
【出願人】(000003078)株式会社東芝 (54,554)
【出願人】(594164542)東芝メディカルシステムズ株式会社 (4,066)
【Fターム(参考)】