JP4916432B2 - アップデートの配布システムにおいてソフトウェアアップデートの配布を管理するためのアプリケーションプログラミングインターフェース - Google Patents

アップデートの配布システムにおいてソフトウェアアップデートの配布を管理するためのアプリケーションプログラミングインターフェース Download PDF

Info

Publication number
JP4916432B2
JP4916432B2 JP2007503042A JP2007503042A JP4916432B2 JP 4916432 B2 JP4916432 B2 JP 4916432B2 JP 2007503042 A JP2007503042 A JP 2007503042A JP 2007503042 A JP2007503042 A JP 2007503042A JP 4916432 B2 JP4916432 B2 JP 4916432B2
Authority
JP
Japan
Prior art keywords
update
service node
update service
software
child
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.)
Expired - Fee Related
Application number
JP2007503042A
Other languages
English (en)
Other versions
JP2007529078A (ja
Inventor
ジャンバルボ ダニエル
ターラー ジェイ
ショーマン ケネス
デグハン デビッド
エー.スポンハイム トーマス
ジェフェレイス レナン
ジェイ.オーエンズ クリストファー
タナー キャリー
チュエン ワン
エー.ハミルトン ニコル
シー.マール デニス
アール.ソイ ニルマル
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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2007529078A publication Critical patent/JP2007529078A/ja
Application granted granted Critical
Publication of JP4916432B2 publication Critical patent/JP4916432B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • G06F11/1425Reconfiguring to eliminate the error by reconfiguration of node membership
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1229Printer resources management or printer maintenance, e.g. device status, power levels
    • G06F3/123Software or firmware update, e.g. device firmware management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Description

本発明は、ソフトウェアおよびコンピュータネットワークに関し、詳しくは、本発明は、アップデート配布システムにおいてソフトウェアアップデートの配布を管理するアプリケーションプログラミングインターフェースに関する。
ほぼすべての市販のソフトウェア製品は、ソフトウェアの機能を補修したりアップデートしたりする改訂プロセスを頻繁に受ける。ソフトウェア製品の各改訂は、新しいファイルの追加をすること、既存のファイルの新しい改訂版の置き換えをすること、もう使用されていないファイルの削除をすること、またはこれらを処理することの様々な組み合わせをしばしば必要とする。ソフトウェア製品の古いファイルの置き換え、新しいファイルの追加、もう使用されていないファイルの削除をするこのプロセスは、以下、「製品アップデート」と呼び、製品アップデートに使用される、バイナリファイル、データファイル、アップデート命令、メタデータ、データベースデータ、システムレジストリ設定、セキュリティ設定などを含むデータの集まりは、以下、より簡単に「アップデート」と呼ぶ。
ソフトウェアプロバイダは、問題を修正するか、セキュリティを高めるか、または新しい機能を追加するソフトウェア製品のアップデートを作成すると、ソフトウェアプロバイダは、アップデートがその顧客ベースに広く利用可能となることを望むだろう。とてもよくあることだが、アップデートが製品の不具合の修正、または重大なセキュリティ問題の対応に取り組んでいるときなど、ソフトウェアプロバイダは、そのアップデートが、できるだけ早く顧客のコンピュータ上にインストールされることを望むだろう。実際に、ほとんどのソフトウェアプロバイダには、ソフトウェアアップデートを、彼らの顧客にできるだけ迅速に、できるだけ問題なく配布する業務上の動機がある。
コンピュータ業界は、ネットワーク、特にインターネットに接続されたコンピュータ数の爆発的な成長を経験している。この爆発的な増加、およびインターネットへの接続を通して利用可能な通信能力のために、インターネットは、ソフトウェアプロバイダにとって、彼らの顧客にアップデートを配布するための重要かつ不可欠な経路になってきた。実際に、インターネットは、多くのソフトウェアプロバイダにとって、彼らの顧客にソフトウェアアップデートを提供するために主要な配布経路になってきた。インターネット上でソフトウェアアップデートを配布することが、ソフトウェアプロバイダに最も利益があることはしばしばである。なぜなら、インターネットを介したアップデートの電子配布は、全体コストを低減し、ソフトウェアアップデートが利用可能になるとすぐに顧客はそれらを取得することができるからである。ますます頻繁に、これらのソフトウェアアップデートは、ユーザの介入無しに、インターネット上で自動的に行われる。
インターネットは、現在、ソフトウェアプロバイダからソフトウェアアップデートを配布するルートとして一般に使用されているが、さまざまな問題がしばしば生じる。そのような2つの問題は、(1)アップデート配布のインフラストラクチャ/リソースに関する効率、および(2)ソフトウェアアップデートの配布およびインストール上の管理統制を含む。
配布リソースの効率に関しては、インターネットを含むネットワークは、しばしば帯域幅と呼ばれる限られた量の通信リソースしか所有していない。特に、オペレーティングシステムのマイクロソフト社のWindows(登録商標)ファミリや関連の生産性向上製品のような、多く出回っているソフトウェア製品のソフトウェアアップデートに関して、限られた量の通信帯域幅は、頻繁に障害(ボトルネック)をもたらす。ソフトウェアアップデートが、インターネット上に分散された複数のダウンロード場所で利用可能とされた場合でさえ、そのような障害は存在する。そのような障害が起こる1つの理由は、インターネットによって利用可能とされる体系化されていない接続モデルである。例えば、もしコンピュータAでの第1のユーザが、あるソフトウェア製品の最新のダウンロードを要求すると、ダウンロードは、第1のユーザのISP(独立サービスプロバイダ)を通り抜ける。さらに、その要求は、単一の個別アクセスとして扱われる。つまり、その要求は、他の任意のネットワークトラフィックおよび/または要求から独立していて、関係ないものとして扱われることを意味する。したがって、偶然に同じISPを有するコンピュータBでの第2のユーザが第1のユーザと同じダウンロードを要求した場合、第2のユーザからの要求も単一の個別アクセスとして扱われる。この例において、各要求は独立して扱われるので、同じダウンロードが、同じインフラストラクチャ上に二度送信されるだろう。明らかに、ユーザ数が大幅に増えると、限られた通信帯域幅はボトルネックとなる。とても一般的なこの例では、ダウンロードをある局所的な場所でキャッシュし、各ユーザの要求を局所的なキャッシュから満たすことができれば、はるかに効率的だったであろう。
配布の制御に関して、多くの組織、特に大きな組織は、それらのコンピュータへのアップデートの配布を制御する合理的な理由がある。例えば、残念ながらいくつかのアップデートは、ソフトウェア製品の機能を「破壊する」、しばしばバグと呼ばれる欠陥を有すか、または不具合をもたらしたりする。これらの破壊された機能は、重要でないかもしれないが、たいていは、企業の極めて重要な機能を中断させる可能性がある。企業は、その極めて重要な機能を失うことはできないので、責任のある企業は、そのコンピュータの残りにアップデートをリリースするのに前もって、ある時間期間で、制御された環境内で各ソフトウェアアップデートを評価し、テストする。この評価期間は、組織がアップデートが極めて重要な機能に悪影響を与えるかどうかを検証することができるようにする。アップデートが極めて重要な機能を破壊しないであろうことが十分に確定された後にのみ、アップデートが組織のコンピュータの残りに配布されることを許可される。明らかに、ほとんどの組織は、それらのコンピュータへのソフトウェアアップデートのインストールの制御を行わなければならない。
企業または組織がしばしばソフトウェアアップデートの配布を制御する必要がある別の理由は、組織内のコンピュータ間の整合性を確保するためである。情報サービス部にとって、ワードプロセッサ用であろうと、オペレーティングシステム用であろうと、すべてのコンピュータが動作する標準化されたターゲットプラットフォームがあることが非常に重要である。標準なしでは、ソフトウェアおよびコンピュータのメンテナンスは、不必要に複雑で難しくなり得る。
ローカル制御が重要であるさらに別の理由は、課金のターゲットのためである。大きな組織では、コンピュータ上に個人的にソフトウェアをインストールしたり、組織の各コンピュータに特定のソフトウェア製品のライセンスを個人的に保持したりするのは、しばしば非効率である。代わりに、単一のサイトライセンスは、組織が多数のコンピュータ上でソフトウェア製品を実行することができるようにする。このように、組織は、サイトライセンス下で製品を実行させるコンピュータ数を報告することを要求されるかもしれない、またはサイトライセンス下で製品を実行させるコンピュータの数を制限したりする必要があるかもしれない。これらのすべての理由は、しばしばソフトウェアアップデートの配布のローカル制御を必要とする。
米国特許仮出願第60/553,042号明細書
ソフトウェアアップデートの配布に関する様々な上記で特定した問題に照らして、必要なものは、ソフトウェアアップデートの配布に対する制御を提供すると同時に、それらの配布の効率を向上させる拡張可能なソフトウェアアップデート配布アーキテクチャである。本発明は、これらの問題、および当分野で見つけられる他の問題に対応する。
本発明の態様によれば、アップデートサービスノード上でソフトウェアアップデートの配布を管理するためのアプリケーションプログラミングインターフェースを有するアップデートサービスノードが示される。アップデートサービスノードは、ソフトウェアアップデートを格納するためのアップデートストアを含む。アップデートサービスノードは、アップデートサービスノードが通信ネットワーク上で親アップデートサービスノードからソフトウェアアップデートを取得し、アップデートサービスノードが通信ネットワーク上でソフトウェアアップデートを子アップデートサービスノードに配布するアップデートWebサービスも含む。さらに、アップデートサービスノードは、管理者が子アップデートサービスノードおよびクライアントコンピュータへのソフトウェアアップデートの配布の制御を規定する管理API(アプリケーションプログラミングインターフェース)を含んでおり、管理APIは、管理者が前記ルールを規定する複数のインターフェース呼び出しを公開するオブジェクトである。
本発明の追加の態様によれば、アップデートサービスノード上でソフトウェアアップデートの配布を管理するためのAPI(アプリケーションプログラミングインターフェース)が示される。APIは、ソフトウェアアップデート管理構成値を読み取り、書き込むための構成インターフェースオブジェクトをアップデートサービスノードに返す構成取得のインターフェース呼び出し(get configuration interface call)を含む。APIはさらに、アップデートサービスノード上で定義されたサブスクリプションインターフェースオブジェクトを返すサブスクリプション取得のインターフェース呼び出し(get subscription interface call)を含む。APIはさらに、アップデート取得のインターフェース呼び出しで渡されたアップデート識別子に対応するアップデートインターフェースオブジェクトを返すアップデート取得のインターフェース呼び出し(get update interface call)ならびに、アップデート取得のインターフェース呼び出しで渡された値に対応するアップデートインターフェースオブジェクトを含むアップデート収集オブジェクトを返すアップデート取得のインターフェース呼び出しを含む。APIは、アップデートサービスノードに関連付けられているクライアントコンピュータに対応し、コンピュータ取得のインターフェース呼び出しで識別されたクライアントコンピュータオブジェクトを返すコンピュータ取得のインターフェース呼び出し(get computer interface call)、およびアップデートサービスノードに関連付けられているクライアントコンピュータに対応するクライアントコンピュータオブジェクトを含むコンピュータ収集オブジェクトを返すコンピュータ取得のインターフェース呼び出しも含む。さらに、APIは、グループ取得のインターフェース呼び出しで識別されたターゲットグループオブジェクトを返すグループ取得のインターフェース呼び出し(get group interface call)、およびアップデートサービスノード上のターゲットグループに対応するターゲットグループオブジェクトを含むターゲットグループ収集オブジェクトを返すグループ取得のインターフェース呼び出しを含む。
本発明のさらに別の態様によれば、ソフトウェアアップデートを配布するソフトウェアアップデート配布システムが示される。ソフトウェアアップデート配布システムは、アップデートサービスノード、およびアップデートサービスノードに関連付けられている管理API(アプリケーションプログラミングインターフェース)を含む。管理APIは、ソフトウェアアップデートの配布を制御する複数のインターフェース呼び出しを公開するインターフェースオブジェクトである。管理APIは、ソフトウェアアップデート管理構成値を読み取り、書き込むための構成インターフェースオブジェクトをアップデートサービスノードに返す構成取得のインターフェース呼び出しを含む。APIはさらに、アップデートサービスノード上で定義されたサブスクリプションインターフェースオブジェクトを返すサブスクリプション取得のインターフェース呼び出しを含む。APIはまださらに、アップデート取得のインターフェース呼び出しで渡されたアップデート識別子に対応するアップデートインターフェースオブジェクトを返すアップデート取得のインターフェース呼び出しならびに、アップデート取得のインターフェース呼び出しで渡された値に対応するアップデートインターフェースオブジェクトを含むアップデート収集オブジェクトを返すアップデート取得のインターフェース呼び出しを含む。APIは、アップデートサービスノードに関連付けられているクライアントコンピュータに対応し、コンピュータ取得のインターフェース呼び出しで識別されたクライアントコンピュータオブジェクトを返すコンピュータ取得のインターフェース呼び出し、およびアップデートサービスノードに関連付けられているクライアントコンピュータに対応するクライアントコンピュータオブジェクトを含むコンピュータ収集オブジェクトを返すコンピュータ取得のインターフェース呼び出しも含む。さらに、APIは、グループ取得のインターフェース呼び出しで識別されたターゲットグループオブジェクトを返すグループ取得のインターフェース呼び出し、およびアップデートサービスノード上のターゲットグループに対応するターゲットグループオブジェクトを含むターゲットグループ収集オブジェクトを返すグループ取得のインターフェース呼び出しを含む。
上記の態様、および多くの付随する本発明の利点は、添付の図面と併せて、以下の詳細な説明を参照することによって、より迅速に理解されるのと同時に、よりよく理解されるだろう。
本発明の態様によれば、階層状に組織化された、ソフトウェアアップデートを配布するためのアップデート配布システムが示される。図1は、本発明の態様に従って形成されたアップデート配布システム例100の絵図である。本発明によれば、図示されているアップデート配布システム100のような、アップデート配布システムの「最上部」は、ルートアップデートサービスノード102である。ソフトウェアプロバイダ110のようなソフトウェアプロバイダは、アップデートをルートアップデートサービスノード102に送信することによって、アップデート配布システム100を通してそれらのソフトウェアアップデートを配布する。本発明の態様によれば、ソフトウェアプロバイダ110のようなソフトウェアプロバイダは、インターネット108のようなネットワークを通して、それらのソフトウェアアップデートをルートアップデートサービスノード102に送信してもよい。
アップデート配布システム例100のような階層状のアップデート配布システムは、ルートアップデートサービスノード102に加えて、少なくとも1つの他のアップデートサービスノードを含む可能性が高い。図1に示すように、アップデート配布システム例100は、ルートアップデートサービスノード102、および2つの追加のアップデートサービスノード、すなわちアップデートサービスノード104およびアップデートサービスノード106を含む。本発明によれば、各階層アップデート配布システムは、ルートアップデートサービスノード102の下に、ツリーのような構造で組織化される。言い換えると、アップデート配布システム内の各アップデートサービスノードは、0つまたは1つ以上の子アップデートサービスノードを有する。このように、アップデート配布システム例100は、各親アップデートサービスノード、すなわちルートアップデートサービスノード102およびアップデートサービスノード104が1つだけ子を有していることを示すが、これは例示のターゲットにすぎず、本発明上の制限と解釈されるべきではない。さらに、ルートアップデートサービスノード102を除いて、アップデート配布システム内の各アップデートサービスノードは、1つの親アップデートサービスノードを有する。したがって、図1に示したように、アップデートサービスノード104は、ルートアップデートサービスノード102の子ノードであり、アップデートサービスノード106は、アップデートサービスノード104の子ノードである。理解できるように、各アップデートサービスノードは、ルートアップデートサービスノード102を除いて、子アップデートサービスノードおよび親アップデートサービスノードの両方であり得る。
アップデート配布システム例100に示されるように、ルートアップデートサービスノード102は、インターネット108を通してアップデートサービスノード104と通信する。しかし、これは例示にすぎず、本発明への制限と解釈されるべきではないことを理解されたい。アップデート配布システム内の各アップデートサービスノードは、何らかの通信ネットワークを通してその親および/子と通信することができるだけでよい。このように、アップデートサービスノード104は、インターネット108を通してその親のルートアップデートサービスノード102と通信するが、代わりに、ローカルエリアネットワーク124を通って、アップデートサービスノード106など、その子アップデートサービスノードと通信してもよい。
また、図1に示されているように、アップデートサービスノード106は、ローカルエリアネットワーク124のサブネットワーク126内に存在する。一例として、ローカルエリアネットワーク124は、組織の一般の企業ネットワークに相当し、アップデートサービスノード104は、その親であるルートアップデートサービスノード102への接続を通ってアップデート配布システム100への企業のリンクを表す。さらに、サブネットワーク126は、テスト/評価グループ、遠隔地にある事務所、極めて重要なグループのような、企業ネットワーク内のコンピュータの識別可能なグループに相当し得る。以下でより詳しく説明するように、本発明の態様によれば、アップデートサービスノード104の管理者は、アップデートサービスノード106、および最終的にはクライアントコンピュータへのアップデートの配布を制御することができる。
ルートアップデートサービスノード102およびアップデートサービスノード104および106の両方を含む各アップデートサービスノードは、クライアントコンピュータと同様に子アップデートサービスノードにもソフトウェアアップデートを配布するように構成されていることを理解されたい。図1に示されているように、アップデート配布システム例100は、クライアントコンピュータ112〜122を含む。ルートアップデートサービスノード102を含む各アップデートサービスノードは、ローカル構成情報に従って、子アップデートサービスノードおよびクライアントコンピュータへアップデートを配布する。一実施形態によれば、管理者は、グループを定義し、アップデート配布ルールをこれらのグループに関連付ける。各アップデートサービスノードには、少なくとも1つの配布グループを有する。
アップデート配布システムがどのように動作するかを示す一例として、ローカルエリアネットワーク124は、組織の企業ネットワークに相当すると仮定する。本発明の一実施形態によれば、アップデートサービスノード104上の管理者は、アップデートサービスノード104およびクライアントコンピュータ114〜118を含む一般の企業グループと同様に、一般の企業ネットワーク124のためにアップデートの適応性を評価するための、アップデートサービスノード106およびクライアントコンピュータ120および122を含むサブネットワーク126に相当する評価グループを含めて、企業ネットワーク124のための複数の配布グループを定義してもよい。
評価グループに関して、管理者は、アップデートサービスノード106をメンバーとして含み、アップデートが利用可能として評価グループのメンバーにすぐに配布されるように、ルールをそのグループに関連付ける。一方、一般の企業グループに関して、管理者は、クライアントコンピュータ114〜118を追加し、管理者によって特に許可されているならば、アップデートが一般の企業グループのメンバーのみに配布されるように、ルールを関連付ける。また、子アップデートサービスノード106のために管理者は、任意の新しいソフトウェアアップデートがすぐに配布される評価サブネットワーク126内に、クライアントコンピュータ120および122から成るデフォルトのグループを作成すると仮定する。
引き続き上記の例で、ソフトウェアプロバイダ110は、ソフトウェアアップデートをルートアップデートサービスノード102に送信する。ルートアップデートサービスノード102で規定されたルールに従って、アップデートは、最終的に企業アップデートサービスノード104に配布される。管理者によって規定されたルール通りにアップデートを受信すると、企業アップデートサービスノード104は、アップデートを(子アップデートサービスノード106のみとして定義された)評価グループのメンバーに配布するが、そのグループにアップデートを配布するための特定の許可を待つ間、一般の企業グループからのアップデートを保留する。
引き続き上記の例で、アップデートを受信すると、評価アップデートサービスノード106は、定義された各グループについて、アップデートを処理する。この例では、評価アップデートサービスノード106には、1つのグループしか有さない。しかし、前述したように、実際の実装では、それぞれが関連配布ルールの一意のセットをもつ、複数の定義されたグループがあってもよい。この例の場合、評価アップデートサービスノード106は、クライアントコンピュータ120および122への配布のために、アップデートをすぐに利用可能にする。クライアントコンピュータ120および122は、ここでアップデートされてもよく、評価期間/プロセスは開始してもよい。
依然として引き続き上記の例で、アップデートが企業ネットワーク124全体への配布に適応可能であることに企業アップデートサービスノード104の管理者が十分に満足するとき、管理者は次に、一般の企業グループのメンバーにアップデートが配布されることを明示的に許可する。企業アップデートサービスノード104は、それに応じて、クライアントコンピュータ114〜118がアップデートを利用できるようにする。評価アップデートサービスノード106もまた、一般の企業グループに含まれてもよいことを理解されたい。しかし、評価アップデートサービスノード106は、すでにアップデートされているため、評価サブネットワーク126にアップデートを配布するために追加のアップデート関連の動作は必要ない。
上記の例によってみられるように、本発明は、ローカル配布制御およびダウンロードの効率に関して、重要な利益を提供する。上述したローカル配布制御の態様に加えて、通信帯域幅のかなりの節約も実現される。例えば、図1に示されている企業ネットワーク例124は、5つのクライアントコンピュータを含むが、ソフトウェアプロバイダのアップデートがルートアップデートサービスノード102から企業アップデートサービスノード104にダウンロードされたのは一度だけである。それから明らかなように、1つのアップデートサービスノードによってサービスが提供されるクライアントコンピュータの数が増加するにつれて、親アップデートサービスノードとクライアントアップデートサービスノードとの間の通信帯域幅の使用は、一定を保ち、それによって、そうでなければ使用されることになる通信帯域幅の量が大幅に減る。さらに、アップデート配布システムは、増築可能で拡張可能である。アップデート配布システムは、次の少なくとも2つの方法で増築可能である。任意の数の子アップデートサービスノードを親アップデートサービスノードに追加してもよく、子アップデートサービスノードは、親アップデートサービスノードとなることもできる。したがって、アップデート配布システムの各サブツリーは、個々の必要性に合うように調整してもよい。
図2は、本発明の態様に従って形成される、企業アップデートサービスノード104(図1)または評価アップデートサービスノード106(図1)などのアップデートサービスノード200の論理的な構成要素例を示すブロック図である。図2に示すように、アップデートサービスノード200は、アップデートWebサービス202、クライアントアップデートモジュール204、子アップデートモジュール206、および報告モジュール208を含む。アップデートサービスノード例200は、認証/許可モジュール210、管理API(アプリケーションプログラミングインターフェース)212、アップデート内容格納214、管理ユーザインターフェース218、およびアップデート情報格納216も含む。
アップデートWebサービス202は、クライアントコンピュータ、子アップデートサービスノード、および親アップデートサービスノードがアップデートサービスノードと通信できる共通のWebサービスのセットを提供する。例えば、図1を参照すると、子/評価アップデートサービスノード106が親/企業アップデートサービスノード104からソフトウェアアップデートを取得するために、クライアントは、親のアップデートWebサービス202を通して通信する。同様に、ルートアップデートサービスノード102などの親アップデートサービスノードが、その子アップデートサービスノード104と通信するために、アップデートを含めて情報を有しているとき、親アップデートサービスノードは、子のアップデートWebサービス202を通して通信する。
本発明の実際の一実施形態では、一般にWebサービスインターフェースと呼ばれるアップデートWebサービス202によって提供される共通のWebサービスのセットは、以下の呼び出し、すなわち親アップデートサービスノードから認証構成情報を取得するためのGetServerAuthConfig、親アップデートサーバノード構成情報および属性を取得するためのGetConfigDataおよびGetServerConfigData、親アップデートサービスノードから許可トークンを取得するためのGetServerCookie、親アップデートサービスノードからアップデートリストを取得するためのGetRevisionIdList、親アップデートサービスノードからアップデートメタデータおよびアップデートペイロードを取得するためのGetUpdateData、およびアップデートサービスノード上で発生したアップデートアクティビティをその親アップデートサービスノードに報告するためのReportEventsを含む。
クライアントアップデートモジュール204は、アップデートサービスノードに格納されているアップデートおよびアップデート情報に関して、クライアントコンピュータとアップデートサービスノード200との間の通信を扱う。アップデート関連の通信は、クライアント要求に応答してアップデートを配布すること、および利用可能なソフトウェア製品のリストおよびクライアントコンピュータのための関連アップデートを提供することを含むが、それに制限されない。クライアントアップデートモジュール204は、クライアントコンピュータが関連の配布ルールに従って特定のアップデートを取得することを許可されるかどうかを決定する責任も負い、クライアントコンピュータがアクセスすることを許可されているアップデート関連の情報でクライアントコンピュータに応答する。
子アップデートモジュール206は、親アップデートサービスノードとその子アップデートサービスノードとの間のアップデート関連の通信を扱う。アップデート関連の通信は、子アップデートサービスノードに利用可能なソフトウェア製品および関連のアップデートのリストを識別すること、ならびに子アップデートサービスノードからのアップデート要求に応答することを含み、それに限られない。ダウンリンクアップデートモジュール206は、子アップデートサービスノードが関連の配布ルールに従って特定のアップデートを取得することを許可されるかどうかを決定する責任を負い、子アップデートサービスノードがアクセスを許可されているアップデート関連の情報で子アップデートサービスノードに応答する。
報告モジュール208は、どのグループが特定のアップデートを受信し、または受信していないか、どのクライアントコンピュータがアップデートをダウンロード/インストールし、またはしていないか、どのアップデートがアップデートサービスノード上で利用可能かなどのアップデート関連のレポートを生成する。これらのレポートは、例えば管理者によってなど内部で使用したり、親のアップデートサービスインターフェース202を介して親アップデートサービスノードに送信したりもできる。上述したように、課金のターゲット、またはメンテナンスのターゲットなど、どのクライアントコンピュータに特定のアップデートをインストールさせたかを企業が決定することはしばしば必要である。レポートモジュール208によって生成された情報/レポートは、これらのレポートの基礎となり得る。
認証/許可モジュール210は、認証に責任を負う。つまり、特定のクライアントコンピュータまたは子アップデートサービスノードの識別を決定すること、クライアントコンピュータまたは子アップデートサービスノードがアップデートサービスノード200で利用可能なアップデートにアクセスすることを許可されるかどうかを決定することである。アップデートサービスノード上のアップデートにアクセスすることが認証され許可されたクライアントコンピュータおよび子アップデートサービスノードに対して、認証/許可モジュール210は、アップデート取得の併せて使用する必要がある許可トークンを発行する。許可トークンの発行および使用は、以下で図4Aおよび4Bに対してより詳しく説明する。
管理API212は、アップデートサービスノード200の制御が遂行され、最終的にアップデートが格納され、配布されるアプリケーションインターフェースを表す。アップデートWebサービス202がクライアントコンピュータおよび子アップデートサービスノードから様々なアップデート関連の要求を受信するとき、これらの要求は、直接的または間接的にクライアントアップデートモジュール204および子アップデートモジュール206を通って、最終的に管理API212への呼び出しに割り込む。管理ユーザインターフェース218、または管理API212を使用するように適切に構成されているアップデートサービスノード200にインストールされている他の何らかのプログラムに併せて、管理者は、そのアップデートサービスノードのためのアップデート処理のすべての態様を最終的に制御し、任意の子アップデートサービスノードおよびクライアントコンピュータについても同様である。管理APIの実際の実施形態は、この明細書の付録として添付され、以下で図9−XXとの関連でより詳しく記載される。
管理ユーザインターフェース218を通して、管理者は、管理API212を介してアップデートサービスノード200を構成し、維持するかもしれない。このように、管理ユーザインターフェース218を通して、管理者は、グループを生成し、修正し、削除だけでなく各グループにルールを関連付ける。さらに、管理ユーザインターフェース218を使用して、管理者は、クライアントコンピュータまたは子アップデートサービスノードがどのグループに属するかを設定する。管理ユーザインターフェース218によって、管理者は、クライアントコンピュータまたは子アップデートサービスノードへのアップデートの配布を明示的に許可してもよく、親アップデートサービスノードに、新しいアップデートを定期的に照会するためにアップデートサービスノード200を構成してもよく、報告パラメータを構成してもよく、内部レポート等を表示してもよい。上述したように、管理ユーザインターフェース218は、管理者がアップデートサービスノード200の態様への制御を行使することができるようにするが、管理API212と動作するように適切に適応されているアップデートサービスノード200上にある別のアプリケーションを、管理ユーザインターフェース218の代わりに使用してもよい。
上述したように、本発明の一実施形態によれば、アップデートサービスノード200は、アップデート内容格納214およびアップデート情報格納216を含む。アップデート内容格納214は、バイナリやパッチファイルなどのソフトウェアアップデートを表す実際のファイルを格納する。それに対して、アップデート情報格納216は、アップデート内容格納214に格納されているアップデートファイルを含む、アップデートサービスノード200上で利用可能なアップデートに対応する情報およびメタデータを格納する。一実施形態によれば、アップデート内容格納214およびアップデート情報格納216は、両方ともリレーショナルデータベースである。アップデートサービスノード例200が2つのデータストアを有するものとして示されているが、本発明はそのように限定されるべきではない。代替の実施形態において、アップデート内容格納214およびアップデート情報格納216の両方が、単一の情報ストア内に結合されてもよい。
本発明の態様によれば、たとえアップデートがアップデート内容格納214に物理的に格納されていないとしても、クライアントコンピュータおよび子アップデートサービスノードに対して、ソフトウェアアップデートがアップデートサービスノード200上で「利用可能」であるとして提示してもよい。より詳しくは、アップデートサービスノード200上に実際のアップデートファイルをすぐにダウンロードし、格納するより、親アップデートサービスノード上またはその他の場所にあるアップデートファイルを参照するリンクを代わりにアップデートサービスノード上に格納してもよい。このようにクライアントコンピュータがアップデートを要求した場合、または子アップデートサービスノードが実際のアップデートを要求した場合、それをクライアントコンピュータまたは子アップデートサービスノードへ配信するのに備えて、アップデートは親アップデートサービスノードから運ばれ、アップデート内容ストアに格納される。この種のアップデートアクセスがジャストインタイムのダウンロード(just−in−time downloading)と呼ばれることを当業者は認識するだろう。このように、「利用可能な」アップデートは、それが実際に要求されるまで、様々なネットワークチャネル上に配布される必要はない。本発明の態様によれば、アップデートサービスノード200の管理者は、ジャストインタイムのやり方でソフトウェアアップデートを取得するかどうかを選択的に決定してよい。
図2の上記の説明は、アップデートサービスモジュール例200の様々な構成要素を示しているが、アップデートサービスモジュールの他の構成要素も存在し得ることを理解されたい。さらに、上述した構成要素は、論理的な構成要素と理解されるべきで、必ずしも実際の構成要素である必要性はない。実際の実装において、上記で識別された構成要素は、実装の決定に従ってともに、かつ/または他の構成要素と結合されてもよい。さらに、アップデートサービスノード200は、ネットワーク上のサーバコンピュータと見なすことができるが、実際の実装形態では、アップデートサービスノードは任意の数のタイプのコンピューティング装置上に実装してもよいことを理解されたい。例えば、各アップデートサービスノード200は、単一のスタンドアロンコンピュータシステム、あるいは代わりに、複数のコンピューティング装置を含む分散コンピューティングシステム上に実装および/またはインストールされてもよい。
図3は、本発明の態様に従って形成された、図1に示されているルートアップデートサービスノード102のようなルートアップデートサービスノード300の論理的な構成要素例を示すブロック図である。アップデートサービスノード200の論理的な構成要素(図2)と同様に、ルートアップデートサービスノード300は、アップデートWebサービス202、子アップデートモジュール206、認証/許可モジュール210を含む。さらに、ルートアップデートサービスノード例300は、管理API212、アップデート内容格納214、およびアップデート情報格納216も含む。任意で、ルートアップデートサービスノード300は、クライアントアップデートモジュール204、報告モジュール208、および管理ユーザインターフェース218を含んでもよい。
クライアントアップデートモジュール204は、ルートアップデートサービスノードがソフトウェアアップデートをクライアントコンピュータに直接提供するかどうかによる、ルートアップデートサービスノード300のオプションの任意の構成要素である。例えば、図1を参照すると、ルートアップデートサービスノード102は、クライアントコンピュータ112に直接サービスを提供するルートアップデートサービスノードとして、任意のクライアントアップデートモジュール204を含むことになる。しかし、ルートアップデートサービスノード300がクライアントコンピュータに直接サービスを提供しない場合、クライアントアップデートモジュール204は省略することができる。
報告モジュール208は、ルートアップデートサービスノード300で任意である。なぜなら、ルートアップデートサービスノードには、そのアップデートレポートが提供される親アップデートサービスノードを有さないからである。しかし、アップデートレポートがルートアップデートサービスノードの管理者にとって望ましい範囲で、報告モジュール208が任意で含まれてよい。
アップデートサービスノード200(図2)に含まれる論理的な構成要素を含むことに加えて、ルートアップデートサービスノード300は、ソフトウェアプロバイダインターフェース302も含む。ソフトウェアプロバイダインターフェース302は、ソフトウェアプロバイダ110(図1)がソフトウェアアップデートをルートアップデートサービスノード300に直接的に出し、アップデート配布システム例100に間接的に出す通信インターフェースを提供する。
図2のアップデートサービスノード200と同様に、図3の上記の説明は、ルートアップデートサービスモジュール例300の様々な構成要素を示している。しかし、ルートアップデートサービスモジュールの他の構成要素が存在してもよいことを理解されたい。さらに、上述した構成要素は、論理的な構成要素と理解されるべきであり、実際の構成要素である必要はない。実際の実装において、上記で識別された構成要素は、実装の決定に従ってともに、かつ/または他の構成要素と結合されてもよい。さらに、ルートアップデートサービスノード200は、ネットワーク上のサーバコンピュータと見なすことができる一方で、実際の実装では、アップデートサービスノードは任意の数のコンピューティング装置上に実装してもよいことを理解されたい。例えば、ルートアップデートサービスノード300は、単一のスタンドアロンコンピュータシステム、あるいは代わりに、複数のコンピューティング装置を含む分散コンピューティングシステム上に実装および/またはインストールされてもよい。
アップデート配布システム100を通じて、アップデートがルートアップデートサービスノードからどのように配布されるかをよりよく理解するために、親アップデートサービスノードと子アップデートサービスノードとの間の交換例の説明が必要である。図4は、本発明の態様による、親アップデートサービスノードから子アップデートサービスノードにソフトウェアアップデートを伝える際の親アップデートサービスノード402と子アップデートサービスノード404との間の交換例400を示すブロック図である。理解できるように、例示図400は、半分に分割されていて、親アップデートサービスノード402のアクションおよびイベントに対応する左半分と、子アップデートサービスノード404のアクションおよびイベントに対応する右半分である。
図4に関しての説明のために、親アップデートサービスノード402は、アップデート配布システム100のルートアップデートサービスノードであっても、そうでなくてもよいことをさらに理解されたい。さらに、この説明のため管理者によってソフトウェアアップデートの受信が明示的に許可されていない限り、親アップデートサービスノード402は、子アップデートサービスノード404がソフトウェアアップデートを受信しないよう、管理者によって構成されていると仮定する。
交換例400で示したように、イベント406で始まり、親アップデートサービスノード402は、親アップデートサービスノードがルートアップデートサービスノード102である場合は直接、またはアップデート配布システム100を介して間接的に、ソフトウェアプロバイダ110からソフトウェアアップデートを受信する。親アップデートサービスノード402がソフトウェアアップデートをソフトウェアプロバイダ110から受信した後のある時点で、子アップデートサービスノード404は、親アップデートサービスノードからソフトウェアアップデートを取得するプロセスを開始する。
一実施形態によれば、子アップデートサービスノード404は、定期的に親アップデートサービスノード202から利用可能なソフトウェアアップデートを自動的に取得するように構成することができる。さらに詳しくは、管理ユーザインターフェース218を介して、管理者は、定期的に親アップデートサービスノード402上で利用可能な最新のソフトウェアアップデートを自動的に取得するように、子アップデートサービスノード404を選択的に構成することができる。一例として、管理者は、毎日および/または1時間単位でその親アップデートサービスノード402から最新のソフトウェアアップデートを取得する、ならびに、自動アップデート処理が開始する時刻を指定するように子アップデートサービスノード404を構成することができる。他の定期的なスケジュールおよび基準を利用できる。同様に、管理者は、管理ユーザインターフェース218を介してアップデート処理を手動で開始することができる。
アップデート処理を開始するために、イベント408にて、子アップデートサービスノード404は、親アップデートサービスノード402で、それ自身を認証し、許可する。親アップデートサービスノード402での認証および許可は、ソフトウェアアップデートの配布に対する制御の要素に、許可されたアップデートサービスノードにアップデート配布を制限することを提供する。認証技術および許可技術は、当分野ではよく知られており、その任意数を、子アップデートサービスノード404を親アップデートサービスノード402により認証し、許可するのに採用することができる。本発明は、どの1つの技術にも制限されない。
親アップデートサービスノード402で適切に認証と許可した後、イベント410で、親アップデートサービスノード402は、子アップデートサービスノード404に、許可トークンを返す。一実施形態によれば、許可トークンは、限られた時間で親アップデートサービスノードとのアップデートアクティビティをさらに行うための許可を子アップデートサービスノード404に提供する時間依存のトークン(time sensitive token)である。このように、子アップデートサービスノード404が親アップデートサービスノードで適切に認証、許可されていない場合、許可トークンは返されず、子アップデートサービスノードは、認証および許可を除く他のどんなアップデート関連の動作を実行することができない。同様に、アップデートトークンが期限切れになった後、子アップデートサービスノード404は、再認証および再許可を除く親アップデートサービスノード402でさらなるアップデート関連の動作を実行することができない。
許可トークンを受信した後、イベント412で、子アップデートサービスノード404は、許可トークンと共に製品アップデートカタログの要求を親アップデートサービスノードに出す。製品アップデートカタログとは、親アップデートサービスノード402がソフトウェアアップデートを配布するソフトウェア製品の内容の一覧表または表を表す。
本発明の態様によれば、子アップデートサービスノード404は、その親アップデートサービスノード402上で利用可能なすべてのソフトウェアアップデートを広めることを求められない。例えば、図1のアップデート配布システム例を参照して、企業アップデートサービスノード104は、ルートアップデートサービスノード102上で利用可能なソフトウェア製品のごく一部分のみのサイトライセンスを有しているかもしれない。したがって、企業アップデートサービスノード104にとって、ほとんどは決して使用されないので、ルートアップデートサービスノード102で利用可能なすべてのソフトウェアアップデートを取得する必要はないだろう。したがって、アップデートサービスノードの管理者は、どのソフトウェア製品アップデートがアップデートサービスノードで利用可能であるかを選択的に規定することができる。
本発明の一態様によれば、親アップデートサービスノード402から取得されたアップデート製品カタログは、子アップデートサービスノード404が各製品にアップデートを配布するように構成されているかどうかに関わらず、アップデートを利用可能なすべてのソフトウェア製品を識別する。しかし、本発明の代替の態様によれば、親アップデートサービスノード402から取得されるアップデート製品カタログは、要求している子アップデートサービスノードがアップデートを配布するように構成されているこれらのソフトウェア製品のみを識別する。例えば、どのソフトウェア製品が製品アップデートカタログに列挙されるかの制限は、子アップデートサービスノード404が属するグループまたはグループ群に従って決定されるかもしれない。
イベント414で、親アップデートサービスノード402は、製品アップデートカタログを子アップデートサービスノード404へ返す。イベント416で、子アップデートサービスノード404は、最新のアップデートが現在望まれている製品を、製品アップデートカタログから選択する。製品アップデートカタログが、子アップデートサービスノード404が配布するこれらのソフトウェア製品のみを列挙することができるにも関わらず、異なる時間、異なる期間スケジュールで、異なるソフトウェア製品のアップデートを取得するよう構成されてもよいことに留意されたい。
イベント418で、子アップデートサービスノード404は、子アップデートサービスノードが現在探している選択された製品を識別するアップデート同期要求を、許可トークンと共に出す。同期要求に含まれるものは、子アップデートサービスノード404上の製品に利用可能な最新のアップデートを識別する情報である。製品の最新のアップデートを識別する情報は、以下「アップデートアンカー」と呼ばれる。各ソフトウェア製品のアップデートアンカーは、一般に、アップデート情報格納216(図2)に格納される。一実施形態において、アップデートアンカーは、改訂番号および改訂番号に関連付けられている日付を含む。
アップデート同期要求に応答して、イベント420で、親アップデートサービスノード402は、もしあれば、どの新しいアップデートが子アップデートサービスノード404に利用可能であるか、決定する。上述したように、この決定は、特定のソフトウェアアップデート、および子アップデートサービスノード404がメンバーであるグループまたはグループ群に関連付けられている特定のルール、ならびにアップデートアンカーに基づいている。例えば、前述したように、前に受信したソフトウェアアップデートは、子アップデートサービスノード404に明示的に許可されていない。したがって、イベント406で受信されたソフトウェアアップデートは、子アップデートサービスノード404には「利用可能」とは決定されない。したがって、イベント422で、イベント406で受信されたソフトウェアアップデートの識別無しに、アップデートリストが子アップデートサービスノード404へ返される。本発明の態様によれば、アップデートリストは、同期要求に従って親アップデートサービスノード402で「利用可能な」アップデートのすべてを識別する。一実施形態において、アップデートリストは、アップデートに関連付けられている一意の識別子によって「利用可能な」各アップデート情報を識別する。
イベント424で、アップデートリストが空、すなわち、現在親アップデートサービスノード402で「利用可能」なアップデートがないため、子アップデートサービスノード404のアップデート処理は、単に、予め定められた時間の間遅延または休止する。現在の例によれば、この遅延期間の間、イベント426で、親アップデートサービスノード402の管理者は、イベント406で受信されたソフトウェアアップデートが子アップデートサービスノード404に配布されるのを許可する。
イベント428(図4B)で、子アップデートサービスノード404は、親アップデートサービスノード402でそれ自身を認証し、許可することによって、自動アップデート処理を再開する。これに応答して、イベント430で、親アップデートサービスノード402は、子アップデートサービスノード404に、許可トークンを返す。
イベント432で、子アップデートサービスノード404は、許可トークンとともに、製品アップデートカタログの要求を、親アップデートサービスノード402に出す。イベント434で、親アップデートサービスノード402は、製品アップデートカタログを子アップデートサービスノード404に返す。イベント436で、子アップデートサービスノード404は、アップデートが望まれているアップデートカタログの製品を選択する。イベント438で、子アップデートサービスノード404は、これらの選択された製品を識別するアップデート同期要求を、許可トークンとともに出す。
子アップデートサービスノード404がイベント406で前に受信されたソフトウェアアップデートを取得することを許可されていたため、イベント440で、親アップデートサービスノード402は、ソフトウェアアップデートが子アップデートサービスノードに「利用可能」であることを決定し、アップデートリストの対応するアップデート情報を含む。その後、イベント442で、親アップデートサービスノード402は、イベント406で受信されたソフトウェアアップデートを識別するようになったアップデートリストを子アップデートサービスノード404に返す。
親アップデートサービスノード402で「利用可能」なアップデートを識別するアップデートリストで、子アップデートサービスノード404は、ソフトウェアアップデートを取得するのに必要な情報を今、有している。本発明の一実施形態によれば、子アップデートサービスノード404は、次の2つの部分で、親アップデートサービスノード402からソフトウェアアップデートを取得する。それは、アップデートメタデータを取得することと、以下アップデートペイロードと呼ばれるアップデート内容またはファイルを取得することである。本発明の追加の態様によれば、アップデートメタデータは、ソフトウェアアップデートに関係する態様を記述するが、以下に限定されない。それは、アップデートを一意に識別するアップデート識別子、ソフトウェアアップデートに関連付けられている改訂番号情報、ソフトウェアアップデートが優先と考えられるべきであるかどうか、言語固有の情報、他のソフトウェアアップデートとの関係、ダウンロードのためのアップデートペイロードの場所、インストールハンドラルーチンなどである。
ソフトウェアアップデート全体を2つの部分、すなわちアップデートメタデータおよびアップデートペイロードでダウンロードすることがしばしば有益である理由の一部は、アップデートペイロードがアップデートメタデータより大幅に大きいこと、およびアップデートペイロードが常にすぐに必要ではない、すなわち、もし必要になったら、クライアントコンピュータへのインストールに必要となることである。このように、本発明の一実施形態によれば、アップデートペイロードは、アップデートメタデータとは別にダウンロードされ、それは必要なときだけである。当業者であれば、このダウンロード技術を、遅延ダウンロードとして、あるいは代わりにジャストインタイムのダウンロードとして認識されるだろう。本発明の態様によれば、管理者は、アップデートペイロードを、ジャストインタイム方法で、またはアップデートメタデータを取得するとすぐに取得するためのアップデートサービスノードを構成してもよい。さらに、代替実施形態において、アップデートメタデータおよびアップデートペイロードを共同でダウンロードしてもよい。
図4Bに示すように、アップデートがアップデートリストで識別された状態で、イベント444で、子アップデートサービスノード404は、アップデートメタデータに、アップデートリスト内のその一意の識別子に従って「利用可能な」ソフトウェアアップデートを要求する。親アップデートサービスノード402との他のほとんどの通信交換と同様に、アップデート要求は、許可トークンとともに出される。図示された例では、すべてのアップデートメタデータが一度のアクセスでダウンロードされているが、本発明の代替の態様(図示せず)によれば、アップデートメタデータは、複数回のアクセスでダウンロードされてもよいことに留意されたい。例えば、最初のアクセスで、適応可能性のルールや他のソフトウェアアップデートへの従属性のような、ソフトウェアアップデートが適用可能か、および/または望ましいかを決定するのに必要なアップデートメタデータの要素のみが最初にダウンロードされる。次いで、アップデートが適用可能であり、かつ/または望ましいことが決定された後、アップデートメタデータの残りが取得されてもよい。それに応答して、イベント446で、親アップデートサービスノード402は、ソフトウェアアップデートのアップデートメタデータを子アップデートサービスノード404に戻し、次いで子アップデートサービスノードは、アップデートメタデータをアップデート情報格納216に格納する。
一実施形態において、アップデートメタデータは、以下を含むが、以下だけには限定されない。それは、特定のアップデートに関連付けられている一意の識別子、アップデートのサイズ、アップデートによって対処される問題、改訂/アンカー情報などのアップデートの説明、そのアップデートは前のアップデートがインストールされていることを必要とするか、アップデートが分けてインストールされなければならないか、アップデートが他の利用可能なアップデートに入れ替えられるかなどのアップデート適用可能性ルール、エンドユーザライセンス同意データ、親アップデートサービスノード402に格納されていない場合、およびアップデートペイロードを配置し、かつ/またはそれにアクセスするためのURL情報である。
任意に、イベント448で、子アップデートサービスノード404は、アップデートペイロードを親アップデートサービスノード402からダウンロードする要求を出す。それに応答して、イベント450で、親アップデートサービスノード402は、アップデートペイロードを子アップデートサービスノード404に返し、子アップデートサービスノードは、それを順にアップデート内容格納214に格納する。
子アップデートサービスノード404でちょうど今アップデート動作が生じたので、イベント452で、子アップデートサービスノードは、ちょうど最近に生じたアップデート動作を概説するアップデート報告を生成し、親アップデートサービスノード402に出す。その後、子アップデートサービスノード404は、次にアップデート処理が稼動するように予定される(図示せず)ときまで再度遅延する。
上記のイベントは例示のターゲットであり、特定のイベントセットおよび状況の例を反映していることを当業者であれば理解されよう。明らかに、何らかの変更を上述したイベントにもたらす特定の詳細および状況に従って他のイベントが生成されるかもしれない。さらに、子アップデートサービスノード404は、親アップデートサービスノード402から最新の「利用可能な」ソフトウェアアップデートを取得している間、その子アップデートサービスノードからのアップデート要求を同時に処理してもよいことを理解されたい。したがって、上記のイベントのシーケンスは、例示としてだけであり、本発明に対する制限と見なされるべきではない。
図5は、その親アップデートサービスノードからアップデートを定期的に取得するために、図1の企業アップデートサービスノード104などの子アップデートサービスノード上で実行されるルーチン例500を示すフロー図である。ブロック502で開始し、子アップデートサービスノードは、「利用可能な」アップデートの同期済みアップデートリストを親アップデートサービスノードから取得する。「利用可能な」アップデートの同期済みアップデートリストを親アップデートサービスノードから取得するは、以下で図6との関連で説明する。
図6は、「利用可能な」アップデートの同期済みアップデートリストを親アップデートサービスノードから取得するための、図5のルーチン例500での使用に適したサブルーチン例600のフロー図である。ブロック602で開始し、図4Aおよび図4Bとの関連で前述したように、子アップデートサービスノードは、親アップデートサービスノードでそれ自身を認証、許可し、適切な認証および許可に応答して、許可トークンを受信する。ブロック604で、許可トークンと併せて、子アップデートサービスノードは、親アップデートサービスノードとの通信パラメータを規定する。通信パラメータの規定によって、親および子のアップデートサービスノードは、親と子の両方が理解する共通基準を適切に規定することができる。通信パラメータには、通信アップデートプロトコルまたはバージョン、製品グループなどを含み、それに制限されない。
親アップデートサービスノードとの通信パラメータを規定した後、ブロック606で、子アップデートサービスノードは、親アップデートサービスノードがアップデートを提供/配布するソフトウェア製品を記述する製品アップデートカタログを取得する。ブロック608で、子アップデートサービスノードは、アップデートが現在求められているそれらのソフトウェア製品アップデートを選択する。ブロック610で、子アップデートサービスノードは、許可トークン、および子アップデートサービスノード上にすでにある現在のバージョンおよびアップデートを識別する選択されたソフトウェア製品に関連付けられている「アンカー」の両方を含めて、アップデート同期要求を親アップデートサービスノードに出す。
アップデート同期要求に応答して、ブロック612で、子アップデートサービスノードは、子アップデートサービスノードに現在何が格納されているかに従って、親アップデートサービスノード上で「利用可能な」ソフトウェアアップデートに従って同期されたアップデートリストを親アップデートサービスノードから取得する。上述したように、アップデートリストは、一意の識別子によって、子アップデートサービスノードに「利用可能な」親アップデートサービスノード上のそれらのソフトウェアアップデートを識別する。その後、サブルーチン例600は終了する。
再度図5を参照すると、同期したアップデートリストを親アップデートサービスノードから取得した後、決定ブロック504で、親アップデートサービスノードからのダウンロードに現在「利用可能」なソフトウェアアップデートがあるかどうかについての決定がなされる。この決定は、同期したアップデートリストに列挙されているアップデート識別子があるかどうかに従ってなされる。現在ダウンロードに「利用可能な」ソフトウェアアップデートがない場合、ルーチン例500は、遅延ブロック510に進み、そこでルーチン例は、次のアップデート期間が生じるまで遅延/休止する。あるいは、親アップデートサービスノードからのダウンロードに「利用可能な」アップデートがある場合、ブロック506で、子アップデートサービスノードは、親アップデートサービスノードからアップデートを取得する。「利用可能な」アップデートを親アップデートサービスノードから取得することについては、以下で図7との関連で説明する。
図7は、親アップデートサービスノードから「利用可能な」ソフトウェアアップデートを取得するための、図5のルーチン例500での使用に適したサブルーチン例700のフロー図である。ブロック702で開始し、アップデートリスト内の最初のアップデート識別子が選択される。ブロック704で、子アップデートサービスノードは、親アップデートサービスノードから選択されたアップデート識別子に対応するアップデートメタデータを取得し、それをアップデート情報格納216に格納する。
一実施形態によれば、ブロック706で、子アップデートサービスノードは、親アップデートサービスノードから選択されたアップデート識別子に対応するアップデートペイロードを取得し、アップデートペイロードをアップデート内容ストア212に格納する。任意で、アップデート内容は子アップデートサービスノードにすぐにダウンロードされる必要はない。前述したように、子アップデートサービスノードを、親アップデートサービスノードからジャストインタイム方式でアップデートをダウンロードするように選択的に構成することができる。この任意の取り扱いによれば、図7に示されているように、ブロック704からブロック706へ処理するよりむしろ、サブルーチン例700は、ブロック704から決定ブロック708へ任意で処理される。
決定ブロック708で、選択されたアップデート識別子のアップデートメタデータ、および任意のアップデートペイロードを取得した後、アップデートリストにさらに追加のアップデート識別子があるかどうかについての決定がなされる。別のアップデート識別子がある場合、ブロック710で、アップデートリスト内の次のアップデート識別子が選択され、サブルーチン700は、追加の処理のためにブロック704に戻る。ルーチン700は、決定ブロック708でアップデートリスト内にさらにアップデート識別子がないことが決定されるまで続き、その後すぐサブルーチン例700は終了する。
再度図5に戻って、「利用可能な」アップデートを親アップデートサービスノードから取得した後、ブロック508で、子アップデートサービスノードは、親アップデートサービスノードへアップデートアクティビティを報告する。その後、遅延ブロック510で、ルーチン例500は、次のアップデート期間まで、予め決められた時間期間、遅延/休止し、そしてそれからブロック502へ進んで上記のアップデート手順を繰り返す。
図5で示されるように、決定ブロック504で、親アップデートサービスノードで「利用可能な」アップデートがないときでさえ、子アップデートサービスノードは、そのアップデートアクティビティを親アップデートサービスノードに報告するよう、任意で構成されてもよい。この代替構成によれば、利用可能なアップデートがないとき、ルーチン例500は、アップデートアクティビティを報告するためにブロック508に進むことができる。
図8は、子アップデートサービスノードからのアップデート同期要求に応答して、「利用可能な」アップデートを識別する同期済みアップデートリストを生成するために、親アップデートサービスノード上で実施されるルーチン例800のフロー図である。ブロック802で始まり、親アップデートサービスノードは、子アップデートサービスノードから、「利用可能な」アップデートを識別するアップデートリストのためのアップデート同期要求を受信する。ブロック804で、アップデート同期要求で識別された最初のソフトウェア製品が選択される。
決定ブロック806で、識別されたソフトウェア製品のための利用可能なアップデートがあるかどうかについての決定がなされる。この決定は、アップデート情報格納216に格納されているソフトウェア製品のためのメタデータに従って、子アップデートサービスノードによって提供されたアップデートアンカーに従って、および子アップデートサービスノードが属するグループに関連付けられている配布ルールに従って行われる。この決定に従って、「利用可能な」アップデートがある場合、ブロック808で、「利用可能な」アップデートに関連付けられている一意のアップデート識別子はアップデートリストに書き込まれる。「利用可能な」アップデートのための一意のアップデート識別子をアップデートリストに書き込んだ後、決定ブロック810で、アップデート同期要求で識別されたソフトウェア製品がさらにあるかどうかについての決定がなされる。アップデート同期要求に追加のアップデートソフトウェア製品がある場合、ブロック814で、親アップデートサービスノードは、アップデート同期要求で識別された次のソフトウェア製品を選択し、選択されたソフトウェア製品の「利用可能な」アップデートがあるかどうかを決定するために、決定ブロック806に戻る。あるいは、アップデート同期要求で識別されたソフトウェア製品がそれ以上ない場合、ブロック814で、アップデートリストが子アップデートサービスノードに返される。その後、サブルーチン例800は終了する。
上述したように、アップデートサービスノードは、管理ユーザインターフェース218または同じように装備された他の何らかのモジュールを介して、管理API212を通して管理される。管理API212がどのように動作するかをよりよく理解するために、図9は、ソフトウェアアップデートをクライアントコンピュータに配布するためにアップデートサービスノードを構成することに関して、管理APIがどのように利用されるかを示す図である。
図9に示すように、管理者は、管理APIを使用して、サブスクリプション904およびグループ906を生成する。アップデートサービスノードは、アップデート処理908中、そのアップデートサービスノードに利用可能なアップデート902、ならびに、アップデートをクライアントコンピュータ912〜922などのクライアントコンピュータに配布するためのサブスクリプション904およびグループ906を使用する。
当業者には理解できるように、管理者は、特定の製品または製品ファミリをアップデートするためのサブスクリプションと同時に、アップデートのクラスを生成する。例えば、製品は、Microsoft CorporationのInternet Explorer製品でもよく、サブスクリプションは、この製品を利用可能なアップデート待ちに示すことになる。同様に、製品ファミリは、一般に、多数の識別可能な製品である製品ファミリとしてのMicrosoft CorporationのOfficeなど、多くの製品を示す。また、サブスクリプションは一般に、クライアントコンピュータへのダウンロードを承認されたアップデートのタイプの識別もする。例えば、アップデートのタイプは、危機的、重大、一般などとすることができる。
本発明の一実施形態によれば、クライアントコンピュータは、いくつかのグループに編成され、サブスクリプションおよびアップデートは、グループに適用される。実際の実施形態において、各クライアントコンピュータは、2つのグループ、すなわちすべてのコンピュータグループ、および他の1つのグループに属する。この実際の実施形態によれば、アップデートサービスノードは、すべてのコンピュータグループおよび他の1つの未割当のコンピュータグループを定義してきた。管理API212を通して、管理者は、任意の数の他のグループ、およびグループに割り当てられたクライアントコンピュータを自由に定義することができる。クライアントコンピュータをグループに割り当て損ねることによって、クライアントコンピュータが未割当のグループに残される。簡単に言えば、この実施形態によれば、クライアントコンピュータは、すべてのコンピュータグループおよび他の1つのグループに属する。グループは、任意の数のクライアントコンピュータを含むことができる。ソフトウェアアップデートを適用するためのクライアントコンピュータのグループは、図9にボックス910、924、926として示されている。
実際の実施形態によれば、管理API212は、Microsoft社のWindows Software Update Servicesが構成され、管理されることを介するインターフェースである。この実施形態において、管理API212は、一般に、インターフェースオブジェクトIUpdateServerによって実施され、またはそれを介してアクセス可能である。IUpdateServerインターフェースオブジェクトの実際の実施形態の説明は、表1としてこのセクションの終わりに列挙されている。このIUpdateServerインターフェースオブジェクトは、参照により本明細書に組み込まれている、2004年3月12日出願の特許文献1の一部として含まれる管理API文書の一部である。しかし、表1で識別されている様々なインターフェース呼び出しは、以下で図10との関連で概説する。
図10は、アップデートサービスノード上のソフトウェアアップデートの配布を管理するための、ある管理API呼び出しを示すブロック図である。IUpdateServer1002オブジェクトへのアクセスで、呼び出し側は、アップデートサービスノード構成情報1004、現在のサブスクリプション情報1006、現在の承認ルール1008、アップデートサービスノード状況情報1010、アップデート取得1012、クライアントコンピュータ取得1014、およびグループ取得1016を取得するためのインターフェース呼び出しを行うことができる。
構成情報インターフェース呼び出し1004は、使用可能な言語、どれが親アップデートサービスノードであり、その親アップデートサービスノードの場所であるか、プロキシサーバおよびアドレス、アップデートサービスノードがアップデートをその親アップデートサービスノードと同期させるモードなどを含むがそれに制限されずに、アップデートサービスノードの構成可能(および読み取り可能)な値へのアクセスを提供する。実際の実施形態において、添付の付録に示されているように、構成情報インターフェース呼び出し1004は、IUpdateServerオブジェクト上での「GetConfiguration」インターフェース呼び出しであり、アップデートサービスノードのためのIConfigurationインターフェースオブジェクトのインスタンスを返す。IConfigurationインターフェースオブジェクトは、組み込まれた仮出願のAPIにより詳しく説明されている。
サブスクリプション情報インターフェース呼び出し1006は、最新のサブスクリプション作業の状況、次のサブスクリプション作業(特定のアップデートをクライアントコンピュータにダウンロードするなど)がいつ完了するか、サブスクリプション同期の頻度などを含み、それだけに制限されない、サブスクリプション情報へのアクセスを提供する。実際の実施形態において、サブスクリプション情報を取得するための異なるインターフェース呼び出しが少なくとも2つある。IUpdateServerオブジェクト上の「GetSubscrition」インターフェース呼び出しは、アップデートサービスノード上の特定のサブスクリプションに対応するISubscriptionインターフェースオブジェクトを返し、「GetSubscriptions」インターフェース呼び出しは、ISubscriptionインターフェースオブジェクトの集まりを返す。さらに、サブスクリプションは、アップデートサービスノード上に空のサブスクリプションを作成する「CreateSubscription」インターフェース呼び出しを使用して作成される。ISubscriptionインターフェースオブジェクトの詳細は、仮出願の組み込まれたAPIに記載されている。
アップデートサービスノード状況インターフェース呼び出し1010は、現在展開されているアップデート、利用可能なアップデートなどを含み、それだけには制限されない、アップデートサービスノード状況へのアクセスを提供する。実際の実施形態において、「GetUpdatesSummary」インターフェース呼び出しは、アップデートサービスノードの全アップデートサマリー情報を記述するサマリー収集オブジェクトを返す。このインターフェース呼び出しに関する詳細は、仮出願の組み込まれたAPIに記載されている。
アップデート取得のインターフェース呼び出し1012は、利用可能なソフトウェアアップデートに関する情報へのアクセスを提供する。さらに詳しくは、インターフェース呼び出しは、システム内のすべての利用可能なソフトウェアアップデートへのアクセスを提供する。実際の実施形態において、アップデート情報を取得するためのインターフェース呼び出しがいくつかある。「GetUpdate」インターフェース呼び出しは、システム上の特定のアップデートに関する情報を提供するIUpdateオブジェクトを返す。加えて、「GetUpdates」インターフェース呼び出しは、システムへ利用可能なIUpdatesオブジェクトの集まりを返す。これらのインターフェース呼び出しに関する追加の詳細は、仮出願の組み込まれたAPIに提供されている。
コンピュータ取得のインターフェース呼び出し1014は、アップデートサービスノードに関連付けられているクライアントコンピュータへのアクセスを提供する。実際の実施形態において、インターフェース呼び出しで識別されたクライアントコンピュータに対応するIComputerオブジェクトを返す「GetComputer」インターフェース呼び出し、およびIComputerオブジェクトの集まりを返す「GetComputers」インターフェース呼び出しを含みそれに制限されない、様々なクライアントコンピュータに関する情報にアクセスするためのインターフェース呼び出しが少なくとも2つあり、この集まりは、アップデートサービスノードに関連付けられているすべてのクライアントコンピュータを含む。上記のように、IUpdateSeverオブジェクト上のこのインターフェース呼び出しに関するさらなる詳細は、仮出願の組み込まれたAPIに記載されている。
グループ取得のインターフェース呼び出し1016は、アップデートサービスノード上で定義されたグループへのアクセスを提供する。上述したように、実際の実施形態では、各クライアントコンピュータは、すべてのコンピュータグループ、および他の1つのグループに属する。クライアントコンピュータがグループに割り当てられていない場合、そのクライアントコンピュータは、未割当のグループにデフォルト設定される。少なくともこの実際の実施形態では、インターフェース呼び出しに渡されるグループ識別子に対応するITargetGroupオブジェクトを返す「GetTargetGroup」インターフェース呼び出し、およびアップデートサービスノード上で定義されたすべてのグループに対応するITargetGroupオブジェクトの集まりを返す「GetTargetGroups」インターフェース呼び出しを含み、それらに制限されない、多くのインターフェース呼び出しが利用可能である。
インターフェース呼び出しのいくつかを説明してきたが、それらは、インターフェース呼び出しの包括的なセットではないことを当業者は理解するだろう。実際に、添付の付録に示されているように、管理APIの実際の実施形態は、多数のインターフェース呼び出しを含み、その大部分については特には説明していない。
次の表、表1に関して、略語WUSは、Windows Update Serverの頭字語である。
Figure 0004916432
Figure 0004916432
Figure 0004916432
好適な実施形態を含む、本発明の様々な実施形態について示し、説明してきたが、本発明の意図および範囲から逸脱することなく、様々な変更を加えることができることを理解されたい。
独占排他的な所有権または恩恵が請求される本発明の実施形態は、添付のように定義される。
本発明の態様に従って形成されたアップデート配布システム例の絵図である。 本発明の態様に従って形成されたアップデートサービスノードの論理的な構成要素例を示すブロック図である。 本発明の態様に従って形成されたアップデートサービスノードの論理的な構成要素例を示すブロック図である。 本発明の態様による、親アップデートサービスノードから子アップデートサービスノードへソフトウェアアップデートを提供する際に親アップデートサービスノードと子アップデートサービスノードとの間の交換例を示すブロック図である。 本発明の態様による、親アップデートサービスノードから子アップデートサービスノードへソフトウェアアップデートを提供する際に親アップデートサービスノードと子アップデートサービスノードとの間の交換例を示すブロック図である。 親アップデートサービスノードからアップデートを定期的に取得するための、子アップデートサービスノード上で実行されるルーチン例を示すフロー図である。 親アップデートサービスノードからアップデートカタログを取得するための、図5のルーチン例での使用に適したサブルーチン例のフロー図である。 親アップデートサービスノードからソフトウェアアップデートを取得するための、図5のルーチン例での使用に適したサブルーチン例のフロー図である。 子アップデートサービスノードからのアップデート要求を処理するためのルーチン例のフロー図である。 ソフトウェアアップデートがクライアントコンピュータに配布するために、アップデートサービスノードを構成するに関して、管理APIがどのように使用されるかを示す絵図である。 アップデートサービスノード上でソフトウェアアップデートの配布を管理するためのある管理API呼び出しを示すブロック図である。

Claims (7)

  1. ソフトウェアアップデートの配布を管理するためのアップデートサービスノードであって、
    ソフトウェアアップデートを格納するためのアップデートストアと、
    前記アップデートサービスノードが通信ネットワークを介して親アップデートサービスノードからソフトウェアアップデートを取得し、前記アップデートサービスノードが前記通信ネットワークを介して子アップデートサービスノードにソフトウェアアップデートを配布するアップデートWebサービスであって、前記アップデートWebサービスは、ソフトウェアアップデートのカタログを生成するよう動作可能であり、特定の子アップデートサービスノードから前記カタログの要求を受信し、前記特定の子アップデートサービスノードが属する配布グループに基づいて、制限されたソフトウェアアップデートを列挙するカタログをそれぞれ提供する、アップデートWebサービスと、
    管理者が配布グループを定義し、各配布グループに関連付けられた配布ルールを確立する管理API(アプリケーションプログラミングインターフェース)であって、前記配布ルールは、各配布グループに含まれる子アップデートサービスノードおよびクライアントコンピュータへソフトウェアアップデート配布するための条件指定する、管理APIと
    を備えたことを特徴とするアップデートサービスノード。
  2. 前記管理APIは、少なくとも前記アップデートサービスノードの親アップデートサービスノードを示す値へのアクセスを提供することを特徴とする請求項1に記載のアップデートサービスノード。
  3. 前記管理APIは、特定の子アップデートサービスノードおよびクライアントコンピュータへのソフトウェアアップデートの配布情報へのアクセスを提供することを特徴とする請求項2に記載のアップデートサービスノード。
  4. 前記配布情報は、ソフトウェアアップデートを一意に識別するアップデート識別子により特定されることを特徴とする請求項3に記載のアップデートサービスノード。
  5. 前記配布情報は、配布グループを一意に識別するグループ識別子により特定されることを特徴とする請求項3に記載のアップデートサービスノード。
  6. 前記管理APIは、前記アップデートサービスノードで利用可能なソフトウェアアップデートのすべてを識別するアップデートリストを提供することを特徴とする請求項1に記載のアップデートサービスノード。
  7. 前記ソフトウェアアップデートは当該ソフトウェアアップデートの内容であるアップデートペイロードと、当該ソフトウェアアップデートに関連する態様を記述するアップデートメタデータとを含み、
    前記アップデートペイロードは、前記アップデートメタデータとは別に配布されることを特徴とする請求項1に記載のアップデートサービスノード。
JP2007503042A 2004-03-12 2005-03-11 アップデートの配布システムにおいてソフトウェアアップデートの配布を管理するためのアプリケーションプログラミングインターフェース Expired - Fee Related JP4916432B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US55304204P 2004-03-12 2004-03-12
US60/553,042 2004-03-12
PCT/US2005/008111 WO2005089209A2 (en) 2004-03-12 2005-03-11 Application programming interface for administering the distribution of software updates in an update distribution system

Publications (2)

Publication Number Publication Date
JP2007529078A JP2007529078A (ja) 2007-10-18
JP4916432B2 true JP4916432B2 (ja) 2012-04-11

Family

ID=34994199

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007503042A Expired - Fee Related JP4916432B2 (ja) 2004-03-12 2005-03-11 アップデートの配布システムにおいてソフトウェアアップデートの配布を管理するためのアプリケーションプログラミングインターフェース

Country Status (10)

Country Link
US (1) US8245218B2 (ja)
EP (1) EP1723541B1 (ja)
JP (1) JP4916432B2 (ja)
KR (1) KR101086122B1 (ja)
CN (2) CN101902494B (ja)
AU (1) AU2005222887B2 (ja)
BR (1) BRPI0508244B1 (ja)
CA (1) CA2555446C (ja)
RU (1) RU2386218C2 (ja)
WO (1) WO2005089209A2 (ja)

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9134989B2 (en) 2002-01-31 2015-09-15 Qualcomm Incorporated System and method for updating dataset versions resident on a wireless device
US9092286B2 (en) * 2002-12-20 2015-07-28 Qualcomm Incorporated System to automatically process components on a device
US8626146B2 (en) 2003-10-29 2014-01-07 Qualcomm Incorporated Method, software and apparatus for performing actions on a wireless device using action lists and versioning
US7634548B2 (en) * 2005-04-02 2009-12-15 Microsoft Corporation Distributed service deliver model
US20060224623A1 (en) * 2005-04-02 2006-10-05 Microsoft Corporation Computer status monitoring and support
US8533700B1 (en) * 2006-04-11 2013-09-10 Open Invention Networks, Llc Workstation uptime, maintenance, and reboot service
US8762418B1 (en) * 2006-05-31 2014-06-24 Oracle America, Inc. Metadata that allows refiltering and data reclassification without accessing the data
US8935380B2 (en) * 2006-09-22 2015-01-13 Oracle America, Inc. Automated product knowledge catalog
KR100825322B1 (ko) * 2007-01-31 2008-04-28 엘에스산전 주식회사 듀얼 포트 이더넷 상의 다수의 제어 모듈용 펌웨어 동시 업데이트 장치 및 업 데이트 방법
US8196134B2 (en) 2007-02-08 2012-06-05 Microsoft Corporation Network service for a software change catalog
JP4946592B2 (ja) * 2007-04-20 2012-06-06 株式会社日立製作所 ダウンロード装置および方法、コンテンツ送受信システムおよび方法
US8762984B2 (en) 2007-05-31 2014-06-24 Microsoft Corporation Content distribution infrastructure
WO2008157735A2 (en) 2007-06-19 2008-12-24 Qualcomm Incorporated Methods and apparatus for dataset synchronization in a wireless environment
EP2015173A1 (en) * 2007-07-05 2009-01-14 Hewlett-Packard Development Company, L.P. Method of maintaining software updates by means of dependency expressions
JP4930279B2 (ja) * 2007-08-22 2012-05-16 日本電気株式会社 サーバ、構成情報配布元配布認証方法、エージェント、構成情報配布先配布認証方法、プログラムおよび構成情報配布システム
US20090327288A1 (en) * 2008-06-29 2009-12-31 Microsoft Corporation Content enumeration techniques for portable devices
JP4826834B2 (ja) * 2008-08-07 2011-11-30 日本電気株式会社 通信システム、接続装置、情報通知方法、プログラム
US20110078199A1 (en) * 2009-09-30 2011-03-31 Eric Williamson Systems and methods for the distribution of data in a hierarchical database via placeholder nodes
US8984013B2 (en) * 2009-09-30 2015-03-17 Red Hat, Inc. Conditioning the distribution of data in a hierarchical database
US9031987B2 (en) * 2009-09-30 2015-05-12 Red Hat, Inc. Propagation of data changes in distribution operations in hierarchical database
US8996453B2 (en) 2009-09-30 2015-03-31 Red Hat, Inc. Distribution of data in a lattice-based database via placeholder nodes
US8315174B2 (en) * 2009-12-31 2012-11-20 Red Hat, Inc. Systems and methods for generating a push-up alert of fault conditions in the distribution of data in a hierarchical database
US8875038B2 (en) * 2010-01-19 2014-10-28 Collarity, Inc. Anchoring for content synchronization
US9110690B2 (en) * 2010-04-28 2015-08-18 General Electric Company Systems, methods, and apparatus for deploying application code change configurations for multiple target controllers
US8898658B2 (en) * 2010-06-29 2014-11-25 Cisco Technology, Inc. Dynamic web resource provisioning
US9118505B2 (en) * 2010-11-05 2015-08-25 Blackberry Limited System and method for controlling updates on a mobile device
US9423920B2 (en) * 2010-12-22 2016-08-23 Sap Se System and method for modifying user interface elements
JP5655685B2 (ja) * 2011-04-14 2015-01-21 カシオ計算機株式会社 端末装置及びプログラム
KR101907009B1 (ko) * 2011-10-21 2018-10-12 삼성전자주식회사 디지털 상품을 설치하기 위한 장치 및 방법
US9032385B2 (en) 2011-12-28 2015-05-12 Lg Electronics Inc. Mobile terminal and control method thereof
US9262149B2 (en) 2012-04-12 2016-02-16 International Business Machines Corporation Managing incrementally applied system updates
US8667486B2 (en) * 2012-06-26 2014-03-04 Google Inc. Automatic provisioning of a software platform to a device ecosystem
US9110755B2 (en) * 2012-08-10 2015-08-18 Microsoft Technology Licensing, Llc Aggregation of update sets
CN103020180A (zh) * 2012-11-28 2013-04-03 北京奇虎科技有限公司 一种基于控制节点部署程序的方法和装置
WO2014094875A1 (en) * 2012-12-21 2014-06-26 Telefonaktiebolaget L M Ericsson (Publ) Security information for updating an authorization database in managed networks
US10362112B2 (en) * 2014-03-06 2019-07-23 Verizon Patent And Licensing Inc. Application environment for lighting sensory networks
US10725758B2 (en) * 2015-03-17 2020-07-28 Automotive Data Solutions, Inc. Telematics system
CN104811772A (zh) * 2015-03-17 2015-07-29 四川长虹电器股份有限公司 第三方视频内容整合推送的方法
US10362113B2 (en) * 2015-07-02 2019-07-23 Prasenjit Bhadra Cognitive intelligence platform for distributed M2M/ IoT systems
US10250437B2 (en) * 2015-10-29 2019-04-02 Arista Networks, Inc. Method and system for configuring network devices
US10432461B2 (en) * 2015-12-04 2019-10-01 T-Mobile Usa, Inc. Peer-to-peer distribution of radio protocol data for software defined radio (SDR) updates
RU2649292C2 (ru) * 2016-06-24 2018-03-30 Акционерное общество "Лаборатория Касперского" Способ формирования списка агентов обновлений
KR102631529B1 (ko) * 2016-07-13 2024-01-31 (주)누리봄 단말 Native UI를 사용하는 동적 UI 배포 시스템 및 방법
RU2634183C1 (ru) * 2016-09-08 2017-10-24 Акционерное общество "Лаборатория Касперского" Способ рассылки обновлений
US10404664B2 (en) 2016-10-25 2019-09-03 Arm Ip Limited Apparatus and methods for increasing security at edge nodes
US10572240B2 (en) * 2016-12-19 2020-02-25 Vmware Inc. Operating system update management for enrolled devices
US10362482B2 (en) 2016-12-21 2019-07-23 T-Mobile Usa, Inc. Network operation and trusted execution environment
JP6536618B2 (ja) * 2017-04-20 2019-07-03 富士通株式会社 情報処理装置、情報処理システム、及び制御プログラム
US10445503B2 (en) * 2017-07-14 2019-10-15 Google Llc Secure persistent software updates
EP3665566A4 (en) * 2017-08-08 2021-04-21 Crypto4A Technologies Inc. SECURE MACHINE-EXECUTED CODE DEPLOYMENT AND EXECUTION PROCESS AND SYSTEM
KR102417004B1 (ko) 2017-09-19 2022-07-07 삼성전자주식회사 전자 장치의 소프트웨어의 업데이트를 관리하기 위한 장치 및 방법
CN108390914B (zh) * 2018-01-23 2020-07-28 阿里巴巴集团控股有限公司 一种服务更新方法及装置、系统
US10409586B1 (en) * 2018-02-16 2019-09-10 Wipro Limited Method and system for developing and delivering an update on human machine interface (HMI) application
WO2020032751A1 (ko) * 2018-08-09 2020-02-13 엘지전자 주식회사 무선 통신 시스템에서 wus 신호를 전송하는 방법 및 이를 위한 장치
JP7255105B2 (ja) 2018-08-30 2023-04-11 ブラザー工業株式会社 アプリケーションプログラムおよびデータ転送システム
CN110896404B (zh) * 2018-09-12 2021-09-14 华为技术有限公司 数据处理的方法、装置和计算节点
CN110225078B (zh) * 2019-04-26 2022-05-13 深圳法大大网络科技有限公司 一种应用服务更新方法、系统及终端设备
US20200382599A1 (en) * 2019-05-29 2020-12-03 Roche Diagnostics Operations, Inc. Techniques for providing data packages to analytical devices
US10785106B1 (en) 2019-07-29 2020-09-22 Microsoft Technology Licensing Llc Configuration change control for computing environments
CN111581223B (zh) * 2020-04-11 2023-08-22 北京城市网邻信息技术有限公司 一种数据更新方法、装置、终端设备及存储介质
US20240143303A1 (en) * 2022-10-26 2024-05-02 Microsoft Technology Licensing, Llc Deployment sequencing for dependent updates

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11232083A (ja) * 1998-02-17 1999-08-27 Toshiba Corp コンピュータシステムおよびリソース管理方法
JP2001067225A (ja) * 1999-08-26 2001-03-16 Hitachi Ltd ソフトウェア配布方法およびシステム
JP2001326660A (ja) * 2000-03-10 2001-11-22 Hitachi Ltd コンピュータの構成情報管理方法および該方法を実現するプログラムを記録した記録媒体および装置
JP2004005413A (ja) * 2002-03-25 2004-01-08 Sourcenext Corp ユーザサポートサーバ、構成認識システム、ユーザサポートシステム、構成認識方法及びユーザサポート方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6282712B1 (en) * 1995-03-10 2001-08-28 Microsoft Corporation Automatic software installation on heterogeneous networked computer systems
JP3762049B2 (ja) * 1997-06-27 2006-03-29 キヤノン株式会社 撮像装置及び撮像方法及びその撮像方法を記録した記録媒体
WO1999026165A1 (fr) * 1997-11-14 1999-05-27 Mitsubishi Denki Kabushiki Kaisha Procede et dispositif pour la mise a jour de donnees
US20030061323A1 (en) 2000-06-13 2003-03-27 East Kenneth H. Hierarchical system and method for centralized management of thin clients
US7086050B2 (en) * 2000-08-04 2006-08-01 Mcafee, Inc. Updating computer files
US20020174034A1 (en) * 2001-05-17 2002-11-21 International Business Machines Corporation Method and apparatus for a distributed web commerce system
CN1350230A (zh) * 2001-12-03 2002-05-22 复旦大学 病毒库主动分发系统
US7617289B2 (en) * 2002-02-22 2009-11-10 Bea Systems, Inc. System and method for using a data replication service to manage a configuration repository
US7178144B2 (en) * 2002-04-23 2007-02-13 Secure Resolutions, Inc. Software distribution via stages
US20030200300A1 (en) * 2002-04-23 2003-10-23 Secure Resolutions, Inc. Singularly hosted, enterprise managed, plural branded application services
US7478385B2 (en) * 2003-01-17 2009-01-13 National Instruments Corporation Installing software using programmatic component dependency analysis
EP1678609A1 (en) * 2003-10-27 2006-07-12 American Power Conversion Corporation System and method for updating a software program
US7519964B1 (en) * 2003-12-03 2009-04-14 Sun Microsystems, Inc. System and method for application deployment in a domain for a cluster
US7853609B2 (en) * 2004-03-12 2010-12-14 Microsoft Corporation Update distribution system architecture and method for distributing software

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11232083A (ja) * 1998-02-17 1999-08-27 Toshiba Corp コンピュータシステムおよびリソース管理方法
JP2001067225A (ja) * 1999-08-26 2001-03-16 Hitachi Ltd ソフトウェア配布方法およびシステム
JP2001326660A (ja) * 2000-03-10 2001-11-22 Hitachi Ltd コンピュータの構成情報管理方法および該方法を実現するプログラムを記録した記録媒体および装置
JP2004005413A (ja) * 2002-03-25 2004-01-08 Sourcenext Corp ユーザサポートサーバ、構成認識システム、ユーザサポートシステム、構成認識方法及びユーザサポート方法

Also Published As

Publication number Publication date
CA2555446A1 (en) 2005-09-29
US8245218B2 (en) 2012-08-14
AU2005222887A1 (en) 2005-09-29
CN101902494B (zh) 2013-05-29
EP1723541B1 (en) 2017-05-03
KR20070003926A (ko) 2007-01-05
CN101902494A (zh) 2010-12-01
RU2006136022A (ru) 2008-04-20
BRPI0508244A (pt) 2007-07-31
CA2555446C (en) 2013-06-18
EP1723541A4 (en) 2008-12-31
BRPI0508244B1 (pt) 2017-10-10
CN101069172A (zh) 2007-11-07
JP2007529078A (ja) 2007-10-18
WO2005089209A3 (en) 2006-09-08
WO2005089209A2 (en) 2005-09-29
KR101086122B1 (ko) 2011-11-25
US20070143390A1 (en) 2007-06-21
CN100580653C (zh) 2010-01-13
RU2386218C2 (ru) 2010-04-10
AU2005222887B2 (en) 2010-07-01
EP1723541A2 (en) 2006-11-22

Similar Documents

Publication Publication Date Title
JP4916432B2 (ja) アップデートの配布システムにおいてソフトウェアアップデートの配布を管理するためのアプリケーションプログラミングインターフェース
JP4902120B2 (ja) ソフトウェア更新を配信するためのシステム及び方法
JP4907876B2 (ja) ソフトウェア更新に対応するメタデータを通信するための方法
JP5055410B2 (ja) 装置管理システム及びそのシステムにおける装置管理命令スケジューリング方法
MXPA06010207A (en) Application programming interface for administering the distribution of software updates in an update distribution system
IL166812A (en) Update distribution system architecture and method for distributing software
JP2013114614A (ja) 情報流通システムとそのアクセス制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080310

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110427

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110510

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110804

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110830

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111130

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

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

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

Free format text: PAYMENT UNTIL: 20150203

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4916432

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees