(57)【要約】  同一のネットワークアドレスまたは類似する共通の識別子を有する複数のクライアント内のあるクライアントが、数個のパッケージに分割されたソフトウェア・アプリケーションを、その複数のクライアントに配布するためのピア配布ポイント（ＰＤＰ：Peer Distribution Point）エージェントとして設計される。この複数のクライアントは、セントラルＳＭＳサイト・サーバおよび数個の配布用サーバを含むクライアント・サーバ階層システムの一部である。セントラルＳＭＳサイト・サーバは、パッケージに対するポリシーを生成し、これらポリシーは、複数のクライアントに割り当てられた配布サーバであって、ＰＤＰエージェントがポリシーをプルする配布サーバに向けてプッシュされる。セントラルＳＭＳサイト・サーバはパッケージを生成し、これらパッケージは、ＰＤＰエージェントがポリシーをプルした後に配布サーバに対してプッシュされる。これらパッケージはＰＤＰエージェントによって配布用サーバからプルされる。他のクライアントは、これらパッケージをＰＤＰエージェントから、必要に応じて、必要なときにプルする。
2009524855.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェア・アプリケーション・パッケージを、同一のネットワークアドレスを有する複数のネットワーク接続クライアントに配布するクライアント・サーバシステムであって、
前記ソフトウェア・アプリケーション・パッケージと関連するポリシーを少なくとも１つの配布用サーバにプッシュするリソースサーバと、
前記リソースサーバから前記ソフトウェア・アプリケーション・パッケージと関連するポリシーを受信する配布用サーバと、
前記ソフトウェア・アプリケーション・パッケージと関連する前記ポリシーを前記配布用サーバからプルするための複数のクライアントであって、該複数のクライアントの１つはＰＤＰエージェントとして指定される、複数のクライアントと
を備え、
（ａ）前記リソースサーバは、前記配布用サーバにプッシュされたポリシーと関連するソフトウェア・アプリケーション・パッケージを、複数のクライアントの１つが前記ソフトウェア・アプリケーション・パッケージと関連する前記ポリシーをプルすることに応答してプッシュし、
（ｂ）前記ＰＤＰエージェントは、前記ソフトウェア・アプリケーション・パッケージを前記配布用サーバからプルし、
（ｃ）前記複数のクライアントは、前記ソフトウェア・アプリケーション・パッケージを前記ＰＤＰエージェントからプルする
ことを特徴とするクライアント・サーバシステム。
【請求項２】
前記配布用サーバは、前記ＰＤＰエージェントに関して情報を格納することを特徴とする請求項１に記載のクライアント・サーバシステム。
【請求項３】
前記配布用サーバは、前記ソフトウェア・アプリケーション・パッケージを前記ＰＤＰエージェントにマッピングし、かつ前記ＰＤＰエージェントを前記リソースサーバにマッピングする、複数のマッピングテーブルを保持することを特徴とする請求項１に記載のクライアント・サーバシステム。
【請求項４】
前記配布用サーバは、
（ｉ）前記ＰＤＰエージェントに対するソフトウェア・アプリケーション・パッケージ・ダウンロード・ポリシーと、
（ｉｉ）前記ＰＤＰエージェントに対するソフトウェア・アプリケーション・パッケージ構成ポリシーと、
（ｉｉｉ）前記ＰＤＰエージェントに対するソフトウェア・アプリケーション・パッケージ・ファイル転送構成ポリシーと
を作成することを特徴とする請求項１に記載のクライアント・サーバシステム。
【請求項５】
前記配布用サーバは、
（ｉ）前記ＰＤＰエージェントに対するソフトウェア・アプリケーション・パッケージ・ダウンロード・ポリシーと、
（ｉｉ）前記ＰＤＰエージェントに対するソフトウェア・アプリケーション・パッケージ構成ポリシーと、
（ｉｉｉ）前記ＰＤＰエージェントに対するソフトウェア・アプリケーション・パッケージ・ファイル転送構成ポリシーと
を保持することを特徴とする請求項４に記載のクライアント・サーバシステム。
【請求項６】
前記ＰＤＰエージェントは、
（ｉ）前記ＰＤＰエージェント上のソフトウェア・アプリケーション・パッケージ・ダウンロード・ポリシーと、
（ｉｉ）前記ＰＤＰエージェント上のソフトウェア・アプリケーション・パッケージ構成ポリシーと、
（ｉｉｉ）前記ＰＤＰエージェント上のソフトウェア・アプリケーション・パッケージ・ファイル転送構成ポリシーと
を管理することを特徴とする請求項５に記載のクライアント・サーバシステム。
【請求項７】
前記配布用サーバは、前記ＰＤＰエージェントに対するプロビジョニング要求を作成することを特徴とする請求項１に記載のクライアント・サーバシステム。
【請求項８】
前記配布用サーバは、前記ＰＤＰエージェントに対する前記プロビジョニング要求を前記配布用サーバに中継することを特徴とする請求項７に記載のクライアント・サーバシステム。
【請求項９】
同一のネットワークアドレスを有する複数のネットワーク接続されたクライアントであって、前記複数のクライアントの１つはＰＤＰエージェントとして設計され、前記クライアントはソフトウェア・アプリケーション・パッケージと関連するポリシーをプルし、前記ＰＤＰエージェントは、その後の他のクライアントによるプルのために前記ソフトウェア・アプリケーション・パッケージをプルすることを特徴とする複数のネットワーク接続されたクライアント。
【請求項１０】
前記ソフトウェア・アプリケーション・パッケージは、前記クライアントが前記ソフトウェア・アプリケーション・パッケージと関連する前記ポリシーをプルすることに応答して、前記ＰＤＰエージェントによってプルされるように配布されることを特徴とする請求項９に記載の複数のネットワーク接続されたクライアント。
【請求項１１】
ソフトウェア・アプリケーション・パッケージをリソースサーバから同一のネットワークアドレスを有する複数のネットワーク接続されたクライアントに配布する方法であって、
前記リソースサーバによって、前記ソフトウェア・アプリケーション・パッケージと関連する前記ポリシーを配布用サーバにプッシュするステップと、
前記複数のクライアントに含まれるクライアントによって、前記配布用サーバから、前記ソフトウェア・アプリケーション・パッケージと関連するポリシーをプルするステップであって、前記複数のクライアントの１つがＰＤＰエージェントとして設計されるステップと、
前記複数のクライアントに含まれるあるクライアントが前記ソフトウェア・アプリケーション・パッケージと関連するポリシーをプルすることに応答して、前記リソースサーバによって、ソフトウェア・アプリケーション・パッケージを前記配布用サーバにプッシュするステップと、
前記ＰＤＰエージェントによって、前記ソフトウェア・アプリケーション・パッケージを前記配布用サーバからプルするステップと、
前記複数のクライアントに含まれる他のクライアントによって、前記ソフトウェア・アプリケーション・パッケージを前記ＰＤＰエージェントからプルするステップと
を備えることを特徴とする方法。
【請求項１２】
前記配布用サーバは、前記ＰＤＰエージェントに関して情報を格納することを特徴とする請求項１１に記載の方法。
【請求項１３】
前記配布用サーバは、前記ソフトウェア・アプリケーション・パッケージを前記ＰＤＰエージェントにマッピングし、かつ前記ＰＤＰエージェントを前記リソースサーバにマッピングする、複数のマッピングテーブルを保持することを特徴とする請求項１１に記載の方法。
【請求項１４】
前記配布用サーバは、
（ｉ）前記ＰＤＰエージェントに対するソフトウェア・アプリケーション・パッケージ・ダウンロード・ポリシーと、
（ｉｉ）前記ＰＤＰエージェントに対するソフトウェア・アプリケーション・パッケージ構成ポリシーと、
（ｉｉｉ）前記ＰＤＰエージェントに対するソフトウェア・アプリケーション・パッケージ・ファイル転送構成ポリシーと
を作成することを特徴とする請求項１１に記載の方法。
【請求項１５】
前記ソフトウェア・アプリケーション・パッケージ・ダウンロード・ポリシー、前記ソフトウェア・アプリケーション・パッケージ構成ポリシー、および前記ソフトウェア・アプリケーション・パッケージ・ファイル転送構成ポリシーは、前記配布用サーバによって、前記ＰＤＰエージェントに対して保持されることを特徴とする請求項１４に記載の方法。
【請求項１６】
前記ＰＤＰエージェントは、前記ＰＤＰエージェント上にソフトウェア・アプリケーション・パッケージ・ファイル転送構成ポリシーを管理することを特徴とする請求項１５に記載の方法。
【請求項１７】
前記ＰＤＰエージェントは、前記ＰＤＰエージェント上に前記ソフトウェア・アプリケーション・パッケージ構成ポリシーを管理することを特徴とする請求項１５に記載の方法。
【請求項１８】
前記ＰＤＰエージェントは、前記ＰＤＰエージェント上にソフトウェア・アプリケーション・パッケージ・ダウンロード・ポリシーを管理することを特徴とする請求項１５に記載の方法。
【請求項１９】
前記配布用サーバは、前記ＰＤＰエージェントに対するプロビジョニング要求を作成することを特徴とする請求項１１に記載の方法。
【請求項２０】
前記配布用サーバは、前記ＰＤＰエージェントに対する前記プロビジョニング要求を前記配布用サーバに中継することを特徴とする請求項１９に記載の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
ソフトウェア・アプリケーションを複数の宛先に電子的に配布するために、そのソフトウェア・アプリケーションは、しばしば１つまたは複数のソフトウェア・アプリケーション・パッケージに分割される。これらソフトウェア・アプリケーション・パッケージは、このソフトウェア・アプリケーションのリソースから、その宛先へと電子的に配布される。宛先には、これらに限られるものではないが、デスクトップおよびラップトップパーソナルコンピュータ、携帯情報端末（ＰＤＡ）、携帯電話、等が含まれる。宛先は、本明細書ではワークステーションまたはクライアントと総称する。ソフトウェア・アプリケーション・パッケージは、その宛先において、ソフトウェア・アプリケーションを実行する前に、再アセンブルされる。
【０００２】
１つまたは複数のソフトウェア・アプリケーション・パッケージに分割されたソフトウェア・アプリケーションを複数のクライアントに電子的に配布するための多くのクライアント・サーバシステムは、数個の層を有する階層システムである。１つの例示的クライアント・サーバ階層システムには、例えば、セントラルシステム管理サーバ（Central System Management Server）サイト・サーバ（セントラルＳＭＳサイト・サーバ）、複数の子ＳＭＳサイト・サーバ、複数の配布（Distribution）サーバ、および複数のクライアントが含まれる。この階層システムの頂点には、セントラルＳＭＳサイト・サーバが存在し、このセントラルＳＭＳサイト・サーバは、ソフトウェア・アプリケーションを構成する１つまたは複数のソフトウェア・アプリケーション・パッケージを格納する。セントラルＳＭＳサイト・サーバは、通常は、リソースの所、すなわち、ソフトウェア・アプリケーションがクライアントへの配布のために複数のソフトウェア・アプリケーション・パッケージに分割されるロケーションに位置する。複数の子ＳＭＳサイト・サーバおよび複数の配布サーバは、各々、セントラルＳＭＳサイト・サーバのロケーションとは異なる別個の地理的ロケーションに位置し、これら複数の子ＳＭＳサイト・サーバおよび複数の配布サーバは、階層システムの頂点の下に位置する層（第１層）を形成する。子ＳＭＳサイト・サーバおよび配布サーバは、サーバクラスのオペレーティングシステムを有するマシーンである。子ＳＭＳサイト・サーバと配布サーバとの相違は、通常、子ＳＭＳサイト・サーバが、配布サーバよりも、より高い処理速度を有する、より多くのプロセッサを有していることである。結果として、子ＳＭＳサイト・サーバは、通常は、配布サーバよりも、より多数のクライアントを扱う能力を有する。各々の第１層のサーバ、すなわち、子ＳＭＳサイト・サーバと配布サーバは、第１のネットワークを介してセントラルＳＭＳサイト・サーバに接続され、第２のネットワークを介して他の第１層のサーバに接続される。第１および第２のネットワークは、ワイドエリアネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、またはこれらの組合せとすることができる。さらに、第２のネットワークは、第１のネットワークの一部であっても良く、または完全に別個のネットワークであっても良い。各々の第１層のサーバは、第３のネットワークを介して同一のネットワークアドレスまたは類似する共通の識別子を有する複数のクライアントに接続され、これら複数のクライアントによって階層システムの最下位の層（第２層）が形成される。同一のネットワークアドレスを有する複数のクライアントに第１層の各サーバを接続するネットワークもまた、ＷＡＮ、ＬＡＮ、またはこれらの組合せにより可能である。さらに、第３のネットワークは、第１のネットワークまたは第２のネットワークの一部とすることができ、または完全に別個のネットワークとすることができる。
【０００３】
図１Ａは、上述のタイプの従来技術による例示的クライアント・サーバ階層システム１００を示すイラスト図である。この例においては、セントラルＳＭＳサイト・サーバ（ＳＭＳ １）１０１は、第２の子ＳＭＳサイト・サーバ（ＳＭＳ ３）１０３よりも、第１の子ＳＭＳサイト・サーバ（ＳＭＳ ２）１０２に物理的に近接している。同様に、ＳＭＳ ２は、ＳＭＳ ３に近接している第２または第３の配布サーバ（ＤＰ２またはＤＰ３）１０５、１０６よりも、第１の配布サーバ（ＤＰ１）１０４に近接している。同様に、同一のネットワークアドレスを有する複数のクライアント１０７は、ＳＭＳ ２、ＳＭＳ ３、ＤＰ２またはＤＰ３よりも、ＤＰ１に物理的に近接している。簡素化のため、図１Ａは、ＳＭＳ １と１０７との間における、ソフトウェア・アプリケーション・パッケージによって取られる最短経路（実線矢印で図示）、および関連する複数のソフトウェア・アプリケーション・パッケージ・ポリシーによって取られる最短経路（破線矢印で図示）のみを示す。これら実線矢印と破線矢印の経路は、１〜５として印されており、後に説明する。ソフトウェア・アプリケーション・パッケージおよび複数のソフトウェア・アプリケーション・パッケージ・ポリシーは、例えば、ＳＭＳ １、ＳＭＳ ３、ＤＰ３、および複数のクライアント１０７の間、もしくはＳＭＳ １、ＳＭＳ ３、ＤＰ１および複数のクライアント１０７の間、またはこれらの任意の他の適切な組合せの間の経路（図示せず）を取り得ることを理解されたい。さらに、簡素化のため、第１、第２、および第３のネットワークは、図１Ａには物理的に示されていないが、例えば、ＳＭＳ １、ＳＭＳ ２、ＤＰ１および複数のクライアント１０７の間で、ソフトウェア・アプリケーション・パッケージによって取られる経路を示す矢印（１、２、および５として印されている矢印）、および複数のソフトウェア・アプリケーション・パッケージ・ポリシーによって取られる経路（３および４として印されている矢印）は、適切なネットワーク、例えば、上述の第１、第２、または第３のネットワークを介して取られる経路であることを理解されたい。さらに、簡素化のため、唯一の経路（５として印される矢印）が、ＤＰ１からソフトウェア・アプリケーション・パッケージをプル（pull）する複数のクライアント１０７の各々から、複数の経路を集合的に示すために、示されている。さらに、複数のクライアント１０７をＤＰ１に接続する第２のネットワークは、ＤＰ１をＳＭＳ ２に接続するネットワーク、およびＳＭＳ ２をＳＭＳ １に接続するネットワークの一部であると理解されたい。
【０００４】
図１Ａに戻り、セントラルＳＭＳサイト・サーバ（ＳＭＳ １）１０１は、階層システムの頂点に存在する。上述のように、ＳＭＳ １は、複数のソフトウェア・アプリケーション・パッケージに分割されたソフトウェア・アプリケーションが、同一のネットワークアドレスまたは類似の共通の識別子を有する複数のクライアントに電子的に配布されるところのリソースである。ＳＭＳ １は、ＷＡＮ、ＬＡＮ、またはこの組合せのネットワーク（物理的に図示せず）を介して、第２の地理的ロケーションに位置する第１層の子ＳＭＳサイト・サーバ（ＳＭＳ ２）１０２と、第３の地理的ロケーションに位置する第２の第１層の子ＳＭＳサイト・サーバ（ＳＭＳ ３）１０３に接続される。ＳＭＳ ２とＳＭＳ ３は、各々、ＷＡＮ、ＬＡＮ、またはこれらの組合せのネットワーク（物理的に図示せず）を介して、互いに接続され、ならびに第４の地理的ロケーションに位置する第１層の配布サーバ（ＤＰ１）１０４、第５の地理的ロケーションに位置する第２の第１層の配布サーバ（ＤＰ２）１０５、および第６の地理的ロケーションに位置する第３の第１層の配布サーバ（ＤＰ３）１０６へと接続される。必要であれば、地理的ロケーションあたりにつき、２以上の第１層の配布サーバが存在できることに留意されたい。ＤＰ１、ＤＰ２、およびＤＰ３は、各々、ＷＡＮ、ＬＡＮ、またはこれらの組合せのネットワーク（図示せず）を介して、第７の地理的ロケーションに位置する複数のクライアント（Ｃ１、Ｃ２、・・・、ＣＮ）に接続される。複数のクライアント１０７は、同一のネットワークアドレスまたは類似する共通の識別子を有し、階層システム１００の第２層を形成する。
【０００５】
図１Ａに示すタイプの例示的な階層クライアント・サーバシステム１００においては、セントラルＳＭＳサイト・サーバ上で実行しているソフトウェア・アプリケーション、すなわち、ＳＭＳ １は、ソフトウェア・アプリケーション・パッケージを第１層の子ＳＭＳサイト・サーバ、すなわち、ＳＭＳ ２に「プッシュ（ｐｕｓｈ）」する（矢印１で記される）。上述のように、ソフトウェア・アプリケーション・パッケージはまた、ＳＭＳ １によって、第２の第１層の子ＳＭＳサイト・サーバ、すなわち、ＳＭＳ ３に「プッシュ」されるが、しかし、上述のように、ソフトウェア・アプリケーション・パッケージによってＳＭＳ １からＳＭＳ ３に向かって取られる経路は、簡素化のため、図示していない。ＳＭＳ ２上で実行しているソフトウェア・アプリケーションは、ＳＭＳ １から受信したソフトウェア・アプリケーション・パッケージのコピーを、第１層の配布サーバ、すなわち、ＤＰ１に「プッシュ」する（矢印２で記す）。このソフトウェア・アプリケーション・パッケージのコピーはまた、ＳＭＳ ２によって、他の第１層の配布サーバ、すなわち、ＤＰ２およびＤＰ３に「プッシュ」され、または、ＳＭＳ ３によって、第１層の配布サーバ、すなわち、ＤＰ１、ＤＰ２、およびＤＰ３の各々にも「プッシュ」されることができるが、上述のように、これら経路は簡素化のため、図示していない。ＳＭＳ １上で実行しているソフトウェア・アプリケーションは、ソフトウェア・アプリケーション・パッケージと関連する複数のポリシーを、第１層の子ＳＭＳサイト・サーバ、すなわち、ＳＭＳ ２に「プッシュ」する（矢印３として記す）。上述のように、複数のソフトウェア・アプリケーション・パッケージ・ポリシーはまた、ＳＭＳ １上で実行しているソフトウェア・アプリケーションによって、第２の第１層の子ＳＭＳサイト・サーバ、すなわち、ＳＭＳ ３に「プッシュ」されるが、この経路は簡素化のため、図示していない。複数のクライアント１０７、すなわち、Ｃ１、Ｃ２、・・・、ＣＮで実行しているソフトウェア・アプリケーションは、所定の時間間隔で信号をＳＭＳ ２に送って問合せする（図示せず）。この信号は、ＳＭＳ ２が、クライアントが必要とする１つまたは複数のソフトウェア・アプリケーション・パッケージを有するかを問合せするために送られる。この信号はまた、Ｃ１、Ｃ２、・・・、ＣＮの各々で実行しているソフトウェア・アプリケーションによって、この階層システム内の他の子ＳＭＳサイト・サーバ、つまり、ＳＭＳ ３に所定の時間間隔で送られることに注意されたい（図示せず）。いったん複数のソフトウェア・アプリケーション・パッケージ・ポリシーが、ＳＭＳ ２によって受信されると（「３」として記される矢印が完了すると）、各Ｃ１、Ｃ２、・・・、ＣＮ上のソフトウェア・アプリケーションは、複数のソフトウェア・アプリケーション・パッケージ・ポリシーをＳＭＳ ２から「プル」する（矢印「４」として記す）。この信号はまた、Ｃ１、Ｃ２、・・・、ＣＮの各々の上で実行しているソフトウェア・アプリケーションによって、ＳＭＳ ３にも送られるので、Ｃ１、Ｃ２、・・・、ＣＮの各々の上で実行しているソフトウェア・アプリケーションは���た、複数のソフトウェア・アプリケーション・ポリシーをＳＭＳ ３から「プル」することができる点に留意されたい。しかし、上述のように、図１Ａにおいては、簡素化のため、ソフトウェア・アプリケーション・パッケージの複数のポリシーによって取られる最短の経路のみを示している。次に、Ｃ１、Ｃ２、・・・、ＣＮの各々の上で実行しているソフトウェア・アプリケーションは、ＳＭＳ ２からプルされる複数のソフトウェア・アプリケーション・パッケージ・ポリシーが、これらクライアントが必要とするソフトウェア・アプリケーション・パッケージに関するものであるか否か判定する。ＳＭＳ ２からプルされる複数のソフトウェア・アプリケーション・パッケージ・ポリシーが、クライアントが必要とするソフトウェア・アプリケーション・パッケージに関するものである場合には、クライアント上で実行しているソフトウェア・アプリケーションは、ソフトウェア・アプリケーション・パッケージをＤＰ１から「プル」する（矢印「５」で記す）。この場合もやはり、ソフトウェア・アプリケーション・パッケージは、クライアント・サーバ階層システム１００内の他の配布サーバ、すなわち、ＤＰ２またはＤＰ３から「プル」することができることに留意されたい。しかし、上述のように、図１Ａにおいては、簡素化のため、ソフトウェア・アプリケーション・パッケージによって取られる最短の経路のみを示している。
【０００６】
図１Ｂは、図１Ａに示し上述したように、ソフトウェア・アプリケーション・パッケージおよび複数のソフトウェア・アプリケーション・パッケージ・ポリシーによって取られる例示的な経路のタイムライン図である。簡素化のため、図１Ｂは、１つのソフトウェア・アプリケーション・パッケージと、単一のクライアントに関するそのソフトウェア・アプリケーション・パッケージと関連するポリシーに対する経路のタイムラインを示している。さらに、図１Ｂに示す例示的なタイムライン図は、セントラルＳＭＳサイト・サーバ、単一の子ＳＭＳサイト・サーバ、および単一の配布サーバを含む。しかし、ソフトウェア・アプリケーションおよび複数の関連するソフトウェア・アプリケーションポリシーによって取られる経路、ならびにこれら経路に対するタイミングシーケンスは、２以上のソフトウェア・アプリケーション・パッケージ（従って２以上の、複数の関連するソフトウェア・アプリケーション・パッケージ・ポリシー）が存在する場合でも、または２以上の子ＳＭＳサイト・サーバ、配布サーバ、またはクライアントが存在する場合でも、同様であることに留意されたい。
【０００７】
図１Ｂに戻り、セントラルＳＭＳサイト・サーバは、ソフトウェア・アプリケーション・パッケージが複数のクライアントに電子的に配布される準備が整った場合に、ソフトウェア・アプリケーション・パッケージを子ＳＭＳサイト・サーバに向けて「プッシュ」する。セントラルＳＭＳサイト・サーバによるソフトウェア・アプリケーション・パッケージの「プッシュ」が、「１」として記される矢印で示されている。次に、ソフトウェア・アプリケーション・パッケージのコピーが、子ＳＭＳサーバによって、配布サーバに向けて「プッシュ」される。この子ＳＭＳサーバによるソフトウェア・アプリケーション・パッケージの配布サーバに向けての「プッシュ」が、「２」として記される矢印で示されている。次に、複数の関連するソフトウェア・アプリケーション・パッケージ・ポリシーが、セントラルＳＭＳサイト・サーバによって子ＳＭＳサイト・サーバに向けてプッシュされる。このセントラルＳＭＳサイト・サーバによる子ＳＭＳサイト・サーバに向けての複数のソフトウェア・アプリケーション・パッケージ・ポリシーの「プッシュ」が、「３」として記される矢印で示されている。このセントラルＳＭＳサイト・サーバによる子ＳＭＳサイト・サーバに向けた複数のソフトウェア・アプリケーション・パッケージ・ポリシーの「プッシュ」が完了する前に、クライアントは、子サイト・サーバに対してクエリを所定の時間間隔で、その子ＳＭＳサイト・サーバがソフトウェア・アプリケーション・パッケージを有するか否かを問合せするために送る。たとえ配布サーバが（「２」として記される矢印の完了の時点において）そのソフトウェア・アプリケーション・パッケージを有したとしても、そのソフトウェア・アプリケーション・パッケージは、子ＳＭＳサイト・サーバが関連するソフトウェア・アプリケーション・パッケージ・ポリシーを受信する前には、クライアントに向けて配布されることができない。「３」として記される矢印が完了すると、複数のソフトウェア・アプリケーション・パッケージ・ポリシーが、クライアントによって、子ＳＭＳサイト・サーバから「プル」される。この複数のソフトウェア・アプリケーション・パッケージ・ポリシーの「プル」が、「４」として記される矢印で示されている。このポリシーのプルが完了すると、ソフトウェア・アプリケーションは既に配布サーバ上に（「２」として記される矢印が完了した時点において）「ホスト」されているので、問合せを行うクライアントは、このソフトウェア・アプリケーション・パッケージを配布サーバから「プル」することが可能となる。このソフトウェア・アプリケーション・パッケージの配布サーバからのクライアントによるプルが、「５」として記される矢印にて示されている。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上述し、図１Ａおよび１Ｂに示した例示の従来技術による方法には幾つかの欠点が存在する。第１に、ソフトウェア・アプリケーション・パッケージは、電子的に配布される準備が整ったときに、セントラルＳＭＳサイト・サーバから複数の配布サーバに向けて複数の子ＳＭＳサイト・サーバの１つを介して配布される。このことは、クライアントがソフトウェア・アプリケーション・パッケージをプルする必要があるかを決定する前に、配布サーバおよび子ＳＭＳサイト・サーバ上のディスクの空間が、不必要に使用されることを意味する。クライアントがソフトウェア・アプリケーション・パッケージを必要としない場合には、子ＳＭＳサイト・サーバおよび／または配布サーバ上に、それらを格納する必要はない。例えば、クライアントはソフトウェア・アプリケーション・パッケージを配布サーバからプルするので、配布サーバによって扱われているクライアントのいずれもがソフトウェア・アプリケーション・パッケージをプルする必要がない、というような状況が存在し得る。このことは、ソフトウェア・アプリケーション・パッケージは、配布サーバ上の他の目的に対して使用できるディスク空間を占有することを意味する。第２に、各々のクライアントがこれらソフトウェア・アプリケーション・パッケージをプルするので、同一のネットワークアドレスまたは類似する共通の識別子を有する複数のクライアントが、これらソフトウェア・アプリケーション・パッケージを同時にプルすることを決定する、というような状況が存在し得る。複数のクライアントは、同一のネットワークアドレスまたは類似する共通の識別子を有するので、これら複数のクライアントは、各々、ソフトウェア・アプリケーション・パッケージを、同一の配布サーバから同一のネットワークを用いてプルする。複数のクライアントが、同一の配布サーバから、同時に、同一のネットワークを通じてプルするので、パッケージをダウンロードする時間が増加する。
【課題を解決するための手段】
【０００９】
本要約は、以下でさらに説明されるコンセプトの選択を簡略化した形式で導入することを提供する。本要約は、請求する主題の主たる特徴を特定することを意図したものではなく、請求する主題の範囲を決定する際の目標として使用することを意図したものでもない。
【００１０】
サーバを配布ポイント（ＤＰ：Distribution Point）として機能するように使用するのではなく、同一のネットワークアドレスまたは類似する共通の識別子を有する複数のクライアント内に含まれるクライアントが、複数のソフトウェア・アプリケーション・パッケージに分割されたソフトウェア・アプリケーションを配布するための配布ポイント（クライアントＤＰ）としての役割をする。より詳細には、このクライアントＤＰは、これ以降、ＰＤＰエージェントと呼称するが、クライアント・サーバ階層システムの一部であり、このシステムはまたセントラルＳＭＳサイト・サーバおよび複数の配布用サーバを含む。これら複数の配布用サーバ内のある配布用サーバは、それらのネットワークアドレスに基づいて複数のクライアントに割り当てられる。ＰＤＰエージェントは、同一のネットワークアドレスまたは類似する共通の識別子を有する他のクライアントに接続される。配布用サーバは、各々、セントラルＳＭＳサイト・サーバに接続される。ＰＤＰエージェントは、この階層システム内のセントラルＳＭＳサイト・サーバのアドバンス・クライアント（advance client）を形成する。セントラルＳＭＳサイト・サーバ上で実行しているソフトウェア・アプリケーションは、複数のソフトウェア・アプリケーション・パッケージ・ポリシーを、配布用サーバ上で実行しているソフトウェア・アプリケーション・スイート（suite）に向けて「プッシュ」する。複数のソフトウェア・アプリケーション・パッケージ・ポリシーの配布の準備が整った時点で、ＰＤＰエージェント上のソフトウェア・アプリケーション・スイートおよび複数のクライアント内の各々のクライアント上のソフトウェア・アプリケーションが、複数のソフトウェア・アプリケーション・パッケージ・ポリシーを、複数のクライアントに割り当てられた配布用サーバ上で実行しているソフトウェア・アプリケーション・スイートから、「プル」する。この複数のアプリケーション・パッケージ・ポリシーをプルすることがトリガとなって、セントラルＳＭＳサイト・サーバ上で実行しているソフトウェア・アプリケーションは、これらポリシーと関連するソフトウェア・アプリケーション・パッケージを、配布用サーバ上のソフトウェア・アプリケーション・スイートに向けて「プッシュ」する。ＰＤＰエージェントが、これら複数のクライアントに割り当てられた配布用サーバ上で実行しているソフトウェア・アプリケーション・スイートからプルされたポリシーと関連するソフトウェア・アプリケーション・パッケージを必要とし、かつ、そのソフトウェア・アプリケーション・パッケージが、セントラルＳＭＳサイト・サーバ上のソフトウェア・アプリケーションによって、配布用サーバ上で実行しているソフトウェア・アプリケーション・スイートに対して成功の内にプッシュされた場合には、ＰＤＰエージェント上で実行しているソフトウェア・アプリケーション・スイートは、そのソフトウェア・アプリケーション・パッケージをプルする。複数のクライアント内の各々のクライアント上で実行しているソフトウェア・アプリケーションは、ソフトウェア・アプリケーション・パッケージを、ＰＤＰエージェントから、必要に応じて、必要なときに「プ��」する。
【００１１】
本発明の上述の様態および多くの結果として伴う長所は、これらが以下の詳細な説明を添付の図面との関連でより良く理解されると、より容易に理解できる。
【発明を実施するための最良の形態】
【００１２】
１つ、または複数のソフトウェア・アプリケーション・パッケージに分割されたソフトウェア・アプリケーションを複数のクライアントに電子的に配布するための階層クライアント・サーバシステムを説明する。より詳細には、セントラルＳＭＳサイト・サーバ、複数の配布用サーバ、および複数のクライアントから構成される例示的クライアント・サーバ階層システムを説明する。この階層システムの頂点には、セントラルＳＭＳサイト・サーバが存在し、このサーバは、ソフトウェア・アプリケーションを構成する１つまたは複数のソフトウェア・アプリケーション・パッケージを格納する。セントラルＳＭＳサイト・サーバは、通常は、リソース、すなわち、ソフトウェア・アプリケーションがクライアントへの配布のために複数のソフトウェア・アプリケーション・パッケージに分割されるロケーションである。このリソース位置のアドミニストレータは、複数の配布用サーバ内の１つの配布用サーバを複数のクライアントに割り当てる。複数のクライアントに割り当てられる配布用サーバの選択は、クライアントのネットワークアドレス、クライアントの配布用サーバへの近接性その他に基づく。複数の配布用サーバの各々は、好ましくは、異なる地理的ロケーションに位置し、さらに、これら地理的ロケーションは、セントラルＳＭＳサイト・サーバのロケーションとは異なることが好ましい。複数の配布用サーバは、階層システムの頂点の下に位置する１つの層（第１層）を形成する。各々の第１層のサーバは、好ましくは、第１のネットワークを介してセントラルＳＭＳサイト・サーバに接続され、好ましくは、第２のネットワークを介して他の第１層のサーバに接続される。これら第１および第２のネットワークは、ワイドエリアネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、またはこれらの組み合わせで可能である。さらに、第２のネットワークは、第１のネットワークの一部であっても、または全く別個のネットワークであっても良い。各々の第１層のサーバは、好ましくは、第３のネットワークを介して、同一のネットワークアドレスまたは類似する共通の識別子を有する複数のクライアントに接続される。これら複数のクライアントは、階層システムの最下位層（第２層）を形成する。各々の第１層のサーバを複数のクライアントに接続するネットワークもまた、ＷＡＮ、ＬＡＮ、またはこの組み合わせであっても良い。さらに、第３のネットワークは、第１のネットワークもしくは第２のネットワークの一部であっても良く、または完全に別個のネットワークであっても良い。同一のネットワークアドレスまたは類似する共通の識別子を有する複数のクライアント内の各クライアントは、好ましくは第４のネットワークを介して互いに接続される。この第４のネットワークもまた、ＷＡＮ、ＬＡＮ、またはこの組み合わせであっても良い。さらに、第４のネットワークは、第１、第２、もしくは第３のネットワークの一部であっても良く、または完全に別個のネットワークであっても良い。複数のクライアント内のクライアントの１つは、上述の例示的クライアント・サーバ階層システム内の配布ポイント（クライアントＤＰ）として機能する。上述のように、このクライアントＤＰはＰＤＰエージェントとも呼称される。
【００１３】
図１Ｃは、ＰＤＰエージェント（ＰＤＰ１）として設計されるクライアントを有する、上述のタイプの例示的クライアント・サーバ階層システム１０８を示すイラスト図である。より詳細には、図１Ｃは、セントラルＳＭＳサイト・サーバ（ＳＭＳ １）１０９、２つの配布用サーバ（ＤＳ１およびＤＳ２）１１０および１１１、ならびに同一のネットワークアドレスまたは類似する共通の識別子を有する複数のクライアント（Ｃ１、Ｃ２、・・・、ＣＮ）１１２を含む。ＳＭＳ １は、物理的に、ＤＳ２よりもＤＳ１の方に近接することが好ましい。同様に、複数のクライアント１１２は、物理的に、ＳＭＳ １またはＤＳ２よりも、ＤＳ１の方に近接することが好ましい。簡素化のため、図１Ｃは、ＳＭＳ １と複数のクライアント１１２との間で、設計された配布用サーバＤＳ１を介して、ソフトウェア・アプリケーション・パッケージおよび複数の関連するソフトウェア・アプリケーション・パッケージ・ポリシーによって、取られる経路のみを示す。ソフトウェア・アプリケーション・パッケージおよび複数のソフトウェア・アプリケーション・パッケージ・ポリシーによって取られる経路は、以降、１〜６として記す矢印で示す。これらソフトウェア・アプリケーション・パッケージおよび複数の関連するソフトウェア・アプリケーション・パッケージ・ポリシーは、例えば、ＤＳ２を介して、複数のクライアントとＳＭＳ １との間の経路（図示せず）を取ることもできることを理解されたい。さらに、簡素化のため、図１Ｃには、第１、第２、第３および第４のネットワークは物理的には示されていない。しかし、ソフトウェア・アプリケーション・パッケージによって取られる経路を示す矢印（４、５および６として記される矢印）、および複数のソフトウェア・アプリケーション・パッケージ・ポリシーによって取られる経路を示す矢印（１、２、および３として記される矢印）は、ネットワーク経路であることを理解されたい。さらに、簡素化のため、ソフトウェア・アプリケーション・パッケージをＰＤＰ１からプルする場合に、唯一の（矢印６として記されている）経路だけが、クライアント（Ｃ１、Ｃ２、・・・、ＣＮ）１１２によって使用される複数の経路を集合的に示している。また、複数のクライアント１１２をＤＳ１に接続するネットワークは、ＤＳ１をＳＭＳ １に接続するネットワークの一部であることを理解されたい。
【００１４】
図１Ｃに戻り、セントラルＳＭＳサイト・サーバ（ＳＭＳ １）１０９は、この階層システムの頂点に存在する。上述のように、ＳＭＳ １は、複数のソフトウェア・アプリケーション・パッケージに分割されたソフトウェア・アプリケーションが、電子的に個々のクライアントに配布される、リソースである。ＳＭＳ １は、ＷＡＮ、ＬＡＮまたはこの組み合わせのネットワーク（物理的には図示せず）を介して、第２の地理的ロケーションに位置する第１層の配布用サーバ（ＤＳ１）１１０、および第３の地理的ロケーションに位置する第２の第１層の配布用サーバ（ＤＳ２）１１１に接続される。ＤＳ１とＤＳ２は、各々、ＷＡＮ、ＬＡＮ、またはこの組み合わせのネットワーク（物理的には図示せず）を介して互いに接続される。必要に応じて、図１Ｃに示されるように、地理的ロケーションあたり１つの配布用サーバよりも、地理的ロケーションあたりに２以上の第１層の配布用サーバが存在できることに留意されたい。ＤＳ１とＤＳ２は、それぞれ、ＷＡＮ、ＬＡＮまたはこの組み合わせのネットワーク（図示せず）を介して、第４の地理的ロケーションに位置する複数のクライアント１１２内に含まれるＰＤＰエージェント（ＰＤＰ１）に接続される。上述のように、複数のクライアント１１２の他のクライアントは、ＰＤＰ１と同一のネットワークアドレスまたは類似する共通の識別子を有し、ＰＤＰ１と一体となって、この階層システム１０８の第２層を形成する。
【００１５】
図１Ｃに示されているタイプの例示的階層クライアント・サーバシステム１０８においては、セントラルＳＭＳサイト・サーバ、すなわちＳＭＳ １上で実行しているソフトウェア・アプリケーションは、複数のソフトウェア・アプリケーション・パッケージ・ポリシーを、第１層の配布用サーバ、すなわち、ＤＳ１に「プッシュ（ｐｕｓｈ）」する（矢印１で記される）。上述のように、複数のソフトウェア・アプリケーション・パッケージ・ポリシーもまた、ＳＭＳ １によって、第２（および他の）の第１層の配布用サーバ、すなわち、ＤＳ２に「プッシュ」されるが、しかし、複数のソフトウェア・アプリケーション・パッケージ・ポリシーによってＳＭＳ １からＤＳ２に向かうために取られる経路は、簡素化のため、示されていない。上述のように、ＤＳ１は複数のクライアントに割り当てられているので、複数のクライアント（Ｃ１、Ｃ２、・・・、ＣＮ）１１２の各々で実行しているソフトウェア・アプリケーション、およびＰＤＰ１上で実行しているソフトウェア・アプリケーション・スイートは、クエリを所定の時間間隔でＤＳ１に送る（図示せず）。このクエリは、ＤＳ１が、クライアントが必要とする１つまたは複数のソフトウェア・アプリケーション・パッケージ・ポリシーを有するか否かを尋ねる。複数のソフトウェア・アプリケーション・パッケージ・ポリシーがＤＳ１によって受信された後に（１として記す矢印が完了結した場合に）、Ｃ１、Ｃ２、・・・、ＣＮの各々で実行するソフトウェア・アプリケーションは、複数のソフトウェア・アプリケーション・パッケージ・ポリシーを、ＤＳ１から「プル」する（矢印２で記す）。同様にして、ＰＤＰ１上で実行しているソフトウェア・アプリケーション・スイートが、複数のソフトウェア・アプリケーション・パッケージ・ポリシーをＤＳ１から「プル」する（矢印３として記す）。クライアントＣ１、Ｃ２、・・・、ＣＮ、およびＰＤＰ１は、所定の時間間隔にてＤＳ１に問合せするので、２として記されている矢印と３として記されている矢印は、置き換えることができる。
【００１６】
複数のソフトウェア・アプリケーション・パッケージ・ポリシーが、クライアント（ＰＤＰエージェントを含む）によってプルされると、ＳＭＳ １上で実行しているソフトウェア・アプリケーションがトリガされ、複数のソフトウェア・アプリケーション・パッケージ・ポリシーがプルされた配布用サーバ、すなわち、ＤＳ１に向けて、そのポリシーと関連するソフトウェア・アプリケーション・パッケージが「プッシュ」される（４として記す矢印）。上述のように、クライアント（ＰＤＰエージェントを含む）は、所定の時間間隔でＤＳ１に問合せをするので、あるクライアント、例えば、Ｃ１が必要としているこれら複数のソフトウェア・アプリケーション・パッケージ・ポリシーを、ＰＤＰ１がそのソフトウェア・アプリケーション・パッケージをプルする前に、Ｃ１が「プル」するような状況もあり得る。このような状況においては、Ｃ１は、ＰＤＰ１がソフトウェア・アプリケーション・パッケージを「プル」するまで待ち（５として記す矢印）、その後、Ｃ１は、そのソフトウェア・アプリケーション・パッケージをＰＤＰ１からプルする（６として記す矢印）。同様に、他のクライアント（Ｃ２、・・・、ＣＮ）は、ＰＤＰ１がＤＳ１からソフトウェア・アプリケーション・パッケージをプルした後にのみ、ＰＤＰ１からそのソフトウェア・アプリケーション・パッケージをプルすることができる。ＤＳ１を複数のクライアント１１２に接続するネットワークは、通常は、他のＰＤＰエージェントによってソフトウェア・アプリケーション・パッケージをプルするために用いられるので、ＤＳ１を複数のクライアント１１２に接続するネットワークは、低速となることがある。各々のクライアントがソフトウェア・アプリケーション・パッケージを配布サーバからプルする上述の従来技術による方法と異なり、このネットワークの速度は、１つのクライアント（ＰＤＰ１）しか、このソフトウェア・アプリケーション・パッケージをプルすることはないため、それほど重要とならない。さらに、複数のクライアント１１２は共通のネットワークで接続されるので、クライアントは、ＰＤＰ１からソフトウェア・アプリケーション・パッケージを「プル」するために、効率的にスケジュールすることができる。
【００１７】
図１Ｄは、上で図１Ｃに示され、説明されたクライアント・サーバシステムの要素に対する、ソフトウェア・アプリケーション・パッケージおよび複数の関連するソフトウェア・アプリケーション・パッケージ・ポリシーによって取られる例示的経路のタイムライン図である。より詳細には、簡素化のため、図１Ｄは、同一のネットワークアドレスまたは類似する共通の識別子を有するクライアントのグループに対する、１つのソフトウェア・アプリケーション・パッケージおよびこのソフトウェア・アプリケーション・パッケージと関連するポリシーに対する経路およびタイミングシーケンスである。さらに、図１Ｄに示されるこの例示的階層クライアント・サーバシステムは、セントラルＳＭＳサイト・サーバおよび単一の配布用サーバを含む。しかし、ソフトウェア・アプリケーションおよび複数の関連するソフトウェア・アプリケーションポリシーによって取られる経路、ならびにこれら経路に対するタイミングシーケンスは、２以上のソフトウェア・アプリケーション・パッケージ（従って２以上の、複数の関連するソフトウェア・アプリケーション・パッケージ・ポリシー）が配布されるべきである場合も同様であり、または、このクライアント・サーバシステムが、２以上の配布用サーバ、もしくは同一のネットワークアドレスもしくは類似する共通の識別子を有するクライアントのグループを含む場合でも、同様であることに留意されたい。
【００１８】
図１Ｄに戻り、セントラルＳＭＳサイト・サーバは、ソフトウェア・アプリケーション・パッケージが複数のクライアントに向けて電子的に配布される準備が整ったときに、複数のソフトウェア・アプリケーション・パッケージ・ポリシーを配布用サーバに向けて、「プッシュ」する。この複数のソフトウェア・アプリケーション・パッケージ・ポリシーの「プッシュ」は、１として記される矢印によって示される。次に、（ＰＤＰエージェント以外の）クライアントが、複数のソフトウェア・アプリケーション・パッケージ・ポリシーを、配布用サーバからプルする。このクライアントによる複数のソフトウェア・アプリケーション・パッケージ・ポリシーの「プル」が、２として記される矢印で示される。次に（または場合によってはこの前に）、ＰＤＰエージェントが、複数のソフトウェア・アプリケーション・パッケージ・ポリシーを、配布用サーバから「プル」する。このＰＤＰエージェントによる複数のソフトウェア・アプリケーション・パッケージ・ポリシーの「プル」は、３として記される矢印にて示される。
【００１９】
上述のように、２として記される矢印と３として記される矢印は互いに置き換えることが可能である。また、上述のように、複数のソフトウェア・アプリケーション・パッケージ・ポリシーが「プル」されると、これがトリガとして働き、セントラルＳＭＳサイト・サーバ上で実行しているソフトウェア・アプリケーションが、ソフトウェア・アプリケーション・パッケージを、複数のソフトウェア・アプリケーション・パッケージ・ポリシーがプルされたところの配布用サーバに向けて、「プッシュ」する。次に、セントラルＳＭＳサイト・サーバは、ソフトウェア・アプリケーション・パッケージを配布用サーバに向けて「プッシュ」する。このセントラルＳＭＳサイト・サーバからのソフトウェア・アプリケーション・パッケージの「プッシュ」が、４として記される矢印で示される。次に、ＰＤＰエージェントが、ソフトウェア・アプリケーション・パッケージを、配布用サーバから「プル」する。この配布用サーバからのソフトウェア・アプリケーション・パッケージの「プル」が、５として記される矢印で示される。最後に、クライアントが、ソフトウェア・アプリケーション・パッケージをＰＤＰエージェントから「プル」する。このＰＤＰエージェントからのソフトウェア・アプリケーション・パッケージの「プル」が、６として記される矢印で示される。
【００２０】
上述のように、ＰＤＰエージェントは、そのソフトウェア・アプリケーション・パッケージを管理している配布用サーバ上で実行しているソフトウェア・アプリケーション・スイートから、そのソフトウェア・アプリケーション・パッケージを「プル」する前に、複数のソフトウェア・アプリケーション・パッケージ・ポリシーを「プル」する。個々のクライアント上で実行しているソフトウェア・アプリケーションは、ソフトウェア・アプリケーション・パッケージを、ＰＤＰエージェントから、必要に応じて、必要なときに「プル」する。
【００２１】
ＰＤＰエージェント上で実行しているソフトウェア・アプリケーション・スイートは、数個のソフトウェア・コンポーネント、例えば、ファイル転送構成マネージャ（File Transfer Configuration Manager）（例えば、ＢＩＴＳ２．０）、ＰＤＰマネージャ、およびＰＤＰジョブ・マネージャ（PDP Job Manager）から構成される。これらコンポーネントにより、ＰＤＰエージェントは、ソフトウェア・アプリケーション・パッケージを、配布用サーバ上のソフトウェア・アプリケーション・スイートからプルできる。セントラルＳＭＳサイト・サーバのＳＭＳアドミニストレータは、配布用サーバに関する複数のソフトウェア・ポリシー（またはルール）を生成して、ＰＤＰエージェントのソフトウェア・コンポーネントを作成、制御、および保持を行う。また、これらポリシーにより、ＳＭＳアドミニストレータは、複数のクライアントを含むブランチロケーションのネットワーク内において、ソフトウェア・アプリケーション・パッケージの配布を効率的に管理できる。これは、配布用サーバ上で実行しているソフトウェア・アプリケーション・スイートのソフトウェア・コンポーネントが、お互いに、およびＰＤＰエージェントのソフトウェア・コンポーネントと、相互作用する方法に影響を及ぼすことによる。ポリシーには、ＰＤＰエージェントのファイル転送構成マネージャ・ソフトウェア・コンポーネントによって管理されるファイル転送構成ポリシー（例えば、ＢＩＴＳ２．０）、ＰＤＰエージェントのＰＤＰマネージャ・ソフトウェア・コンポーネントによって管理されるＰＤＰ構成ポリシー、およびＰＤＰエージェントのＰＤＰジョブ・マネージャ・ソフトウェア・コンポーネントによって管理されるＰＤＰパッケージ・ダウンロード・ポリシーが含まれる。
【００２２】
配布用サーバ上で実行しているソフトウェア・アプリケーション・スイートは、幾つかのソフトウェア・コンポーネント、例えば、階層マネージャ（ＨＭ：Hierarchy Manager）、配布マネージャ（ＤＭ：Distribution Manager）、ポリシー・プロバイダ（ＰＰ：Policy Provider）、ならびにロケーション・マネージャ（ＬＭ：Location Manager）およびリレー・マネージャ（ＲＭ：Relay Manager）を含む管理ポイント（ＭＰ：Management Point）から構成される。ＨＭは、他のタスクにも関与するが、複数のＰＤＰエージェントに関する情報を格納することに関与する。ＤＭは、他のタスクにも関与するが、配布用サーバ上に複数のマッピングテーブルを保持することに関与する。ＰＰは、他のタスクにも関与するが、ＰＤＰパッケージ・ダウンロード・ポリシーおよびＰＤＰ構成ポリシーを作成および保持することに関与する。ＭＰ上のＬＭは、他のタスクにも関与するが、ＰＤＰエージェント・プロビジョニング要求（PDP agent provisioning request）を生成することに関与する。ＭＰ上のＲＭは、他のタスクにも関与するが、ＰＤＰエージェント・プロビジョニング要求をＤＭに中継することに関与する。
【００２３】
図２は、複数のクライアント内に含まれるあるクライアント、例えば、あるブランチ・オフィス内に位置する複数のクライアント内に含まれるあるクライアントが、ＰＤＰエージェントとして設計された場合に（例えば、図１Ｃ内のＰＤＰ１）、配布用サーバによって取られる例示的動作を示す機能流れ図２００である。ブロック２０１において、配布用サーバ（例えば、図１Ｃ内のＤＳ１）上のソフトウェア・アプリケーション・スイートは、ソフトウェア・ポリシー、例えば、ＰＤＰ構成ポリシー、ファイル転送構成ポリシー（例えば、ＢＩＴＳ２．０）、およびＰＤＰパッケージ・ダウンロード・ポリシーを生成する。ＰＤＰ構成ポリシーは、あるクライアント上で実行しているＰＤＰエージェントを有効にまたは無効にできる。有効の場合は、ＰＤＰエージェントは、ファイル転送構成ポリシーおよびＰＤＰパッケージ・ダウンロード・ポリシーからのソフトウェア・アプリケーション・パッケージのダウンロードおよびプロビジョニングに対する要求を処理することができる。無効の場合は、ＰＤＰエージェントは、これらファイル転送構成ポリシーおよびＰＤＰパッケージ・ダウンロード・ポリシー要求に応答しない。ファイル転送構成ポリシーは、クライアントの様々なファイル転送特性を構成する。ＰＤＰエージェントは、転送構成ポリシーを受信すると、そのクライアントのグループ・ポリシー・オブジェクト（ＧＰＯ：Group Policy Objects）／レジストリを介して、ファイル転送設定の追加／修正へと進む。ファイル転送構成ポリシーは、クライアントが上述のようにＰＤＰ構成ポリシーによってＰＤＰエージェントとして構成されており、かつ、有効の場合にのみ、そのクライアントに適用されることに留意されたい。ＰＤＰパッケージ・ダウンロード・ポリシーは、ＰＤＰエージェント上のソフトウェア・アプリケーション・パッケージを構成する。ＰＤＰエージェントは、ソフトウェア・アプリケーション・パッケージおよびそのコンテンツを、上述のＰＤＰ構成ポリシーに基づいて、ダウンロード、更新、保持および削除する。クライアントがＰＤＰエージェントとして有効にされてない場合には、ＰＤＰエージェントは、ソフトウェア・アプリケーション・パッケージのダウンロード、更新、および保持、または削除を遂行しない。あるクライアントがＰＤＰエージェントであることをいったん無効にされた場合でも、そのクライアントがＰＤＰエージェントであることを無効にされる前に、そのＰＤＰエージェントにプルされた１つまたは複数のソフトウェア・アプリケーション・パッケージは、破棄されないことに留意されたい。換言すれば、ＰＤＰエージェントが無効にされる前にそのＰＤＰエージェント上に存在していたソフトウェア・アプリケーション・パッケージは、他のクライアントによって「プル」できるが、しかしそれらソフトウェア・アプリケーション・パッケージは、他のクライアントがそれらパッケージを「プル」する前には、修正または更新することができない。このことはまた、ＰＤＰエージェントが無効にされる前にそのＰＤＰエージェント上に存在していたソフトウェア・アプリケーション・パッケージは削除できるが、しかし、新たなソフトウェア・アプリケーション���パッケージをそのＰＤＰエージェントに、配布のために、ダウンロードすることは全くできないことを意味する。
【００２４】
図２に戻り、ブロック２０２において、配布用サーバ上のソフトウェア・アプリケーション・スイートのＰＰソフトウェア・コンポーネント（図１１およびこれに関する以下の説明を参照）は、ＰＤＰエージェントに関するポリシー割り当て（policy assignment）を生成および保持する。より詳細には、ＰＰソフトウェア・コンポーネントは、ＰＤＰパッケージ・ダウンロード・ポリシーおよびＰＤＰ構成ポリシー、ならびに両方のポリシーに対する割り当てを作成および保持する。ＰＤＰパッケージ・ダウンロード・ポリシーは、ソフトウェア・アプリケーション・パッケージから導出され、ＰＰソフトウェア・コンポーネントによって、ソフトウェア・アプリケーション・パッケージ特性、例えば、ソフトウェア・アプリケーション・パッケージＩＤ、ソースバージョン、ハッシュその他をポピュレート（投入：populate）する。同時に、ＰＤＰ構成ポリシーが、ＰＤＰエージェントのプール内の各々のＰＤＰエージェントに向けられ、一方では、ＰＤＰパッケージ・ダウンロード・ポリシーが、ソフトウェア・アプリケーション・パッケージが割り当てられたＰＤＰエージェントのプール（poor）に向けられる。
【００２５】
図１１は、配布用サーバ上で実行している、ＰＤＰエージェントと関連するポリシー割り当てを生成および保持するソフトウェア・アプリケーション・スイートの、ＰＰソフトウェア・コンポーネントによって取られる例示的動作を示す機能流れ図１１００である。ブロック１１０１において、ＰＰソフトウェア・コンポーネントは、ＰＤＰパッケージ・ダウンロード・ポリシーおよびＰＤＰ構成ポリシー、ならびに両方のポリシーに対する割り当てを作成および保持する。ブロック１１０２において、ＰＰソフトウェア・コンポーネントは、ＰＤＰパッケージ・ダウンロード・ポリシーに、ソフトウェア・アプリケーション・パッケージ特性をポピュレートする。ブロック１１０３において、ＰＰソフトウェア・コンポーネントは、ＰＤＰパッケージ・ダウンロード・ポリシーを、ソフトウェア・アプリケーション・パッケージが割り当てられているＰＤＰエージェントのプールに向ける。ブロック１１０４において、ＰＰソフトウェア・コンポーネントは、ＰＤＰ構成ポリシーを、配布用サーバのＤＭソフトウェア・コンポーネントによって管理される、配布用サーバ上のマッピングテーブルのプールから導出する。最後に、ブロック１１０５において、ＰＰソフトウェア・コンポーネントは、ＰＤＰ構成ポリシーを、ＰＤＰエージェントのプール内の各々のＰＤＰエージェントに向ける。ブロック１１０３内の動作は常にブロック１１０２内の動作の後に起こり、ブロック１１０５内の動作は常にブロック１１０４内の動作の後に起こることに留意されたい。ブロック１１０２と１１０４内の動作は、同時的に起こることも、または図示されるように順次的に起こることもある。
【００２６】
図２に戻り、ブロック２０３において、配布用サーバ上のソフトウェア・アプリケーション・スイートのＤＭソフトウェア・コンポーネントは、ＰＰソフトウェア・コンポーネントを、ＰＤＰエージェントに対するＰＤＰパッケージ・ダウンロード・ポリシーを生成するようにトリガする。上述のように、ＰＤＰ構成ポリシーおよびＰＤＰパッケージ・ダウンロード・ポリシー、ならびにこれらの割り当ては、ＰＰソフトウェア・コンポーネントによって生成される。ＰＰソフトウェア・コンポーネントは、ソフトウェア・アプリケーション・パッケージをＰＤＰエージェントにマッピングし、そのＰＤＰエージェントをソフトウェア・アプリケーション・パッケージのリソースにマッピングする、配布用サーバ上の様々なマッピングテーブルにアクセスする。これらマッピングテーブルはＤＭによって更新および保持される。ＤＭはまた、ＰＤＰエージェント上のソフトウェア・アプリケーション・パッケージのコンテンツのコピー、ならびにＰＤＰエージェント上でデルタ更新（delta update）の遂行（図１０およびこれに関する後の説明を参照）に関与する。ＤＭは、スレッド、例えば、ＤＰマネージャ・スレッドを、マッピングテーブル、例えば、配布ポイント（DistributionPoint）テーブルを更新および保持するために用いる。この配布ポイントテーブルは、ソフトウェア・アプリケーション・パッケージがＰＤＰエージェント上に配布用サーバから「プッシュ」されるのでなく、ＰＤＰエージェントによってキャッシュされることがあるということを反映するものである。好ましくは、ＰＤＰエージェントは、ソフトウェア・アプリケーション・パッケージを配布用サーバから必要なときにプルする。ＤＰマネージャ・スレッドは、配布ポイントテーブル内のＰＤＰエージェントのリストに対する変更がなされた後に、配布用サーバ上のソフトウェア・アプリケーション・スイートのＨＭソフトウェア・コンポーネントからの通知を待ち続ける。マッピングテーブルが更新されると、ＤＭは、ＰＰソフトウェア・コンポーネントに対して、ＰＤＰエージェントに対するポリシーを作成するように通告する。ＰＤＰエージェントが、削除するように記される場合は、配布用サーバ上のＤＰマネージャ・スレッドがトリガされ、そのＰＤＰエージェントがその配布用サーバのクライアント・サーバ階層システムに属するか否かチェックされる。そのＰＤＰエージェントがその配布用サーバのクライアント・サーバ階層システムに属する場合には、このＰＤＰエージェントに対するエントリがマッピングテーブルから除去される。ＰＤＰエージェントエントリのマッピングテーブルからの削除は、ＰＰソフトウェア・コンポーネントによって生成されたポリシーの撤回をトリガされる。
【００２７】
図１０は、ＰＤＰエージェント上のＤＭによって遂行される例示的デルタ更新タスクを示す機能流れ図１０００である。デルタ更新タスクは、ＰＤＰエージェントによって既にプルされているソフトウェア・アプリケーション・パッケージと比較して、新規なまたは異なるソフトウェア・アプリケーション・パッケージの一部分（デルタ・差分）のみを更新する更新タスクである。ブロック１００１において、ソフトウェア・アプリケーション・パッケージのコンテンツが、ＤＭ上のマニフェスト・ファイル内に列挙される。ブロック１００２において、このマニフェスト・ファイルがＰＤＰエージェントによって、ＰＤＰパッケージ・ダウンロード・ポリシーを介してプルされる。ブロック１００３において、ＰＤＰエージェント上のＰＤＰジョブ・マネージャ（PDP Job Manager）ソフトウェア・コンポーネントが、ＰＤＰエージェント上に既にプロビジョニングされているソフトウェア・アプリケーション・パッケージのコンテンツを、マニフェスト・ファイルのコンテンツと、比較する。ブロック１００４において、ＰＤＰジョブ・マネージャによって、ＰＤＰエージェント上に既にプロビジョニングされているソフトウェア・アプリケーション・パッケージのコンテンツと、マニフェスト・ファイルのコンテンツとが、一致するか否かを判定するためのチェックが行なわれる。これらコンテンツが一致する場合は（１００４からの「ＹＥＳ」分岐）、ＰＤＰエージェント上に既にプロビジョニングされているソフトウェア・アプリケーション・パッケージのコンテンツに対する変更は全くなく、フローは終了する。これらコンテンツが一致しないときは（１００４からの「ＮＯ」分岐）、ブロック１００５において、ＰＤＰジョブ・マネージャは、ＰＤＰエージェント上にプロビジョニングされているソフトウェア・アプリケーション・パッケージのコンテンツと異なる、マニフェスト・ファイルコンテンツの部分（デルタ）のみダウンロードを調節する。
【００２８】
図２に戻り、ブロック２０４において、ＰＤＰパッケージ・ダウンロード・ポリシーが、ＰＤＰエージェントによって「プル」される。ＰＤＰエージェントが、とりわけ、ダウンロードされるべきソフトウェア・アプリケーション・パッケージの特性を含むＰＤＰパッケージ・ダウンロード・ポリシーを有すると、そのＰＤＰエージェントは、ソフトウェア・アプリケーション・パッケージをダウンロードする準備が整う。ブロック２０５において、ＰＤＰエージェントはソフトウェア・アプリケーション・パッケージを配布用サーバからプルする。ソフトウェア・アプリケーション・パッケージがＰＤＰエージェントとして設計されているクライアントに完全にダウンロードされた後に、そのＰＤＰエージェントは、そのソフトウェア・アプリケーション・パッケージを、一時的なロケーションから、複数のクライアント内の他のクライアントにアクセス可能な、そのＰＤＰエージェントのハードドライブ上のロケーションへと移動させる。ブロック２０６において、そのＰＤＰエージェントと同一のネットワークアドレスまたは類似する共通の識別子を有する複数のクライアントは、このソフトウェア・アプリケーション・パッケージを、必要とされるときに、このＰＤＰエージェントから「プル」する。その他のクライアント上のソフトウェア、例えば、ＰＤＰエージェント上のソフトウェアは、ソフトウェア・アプリケーション・パッケージを、そのパッケージがダウンロードされるとき、それらのハードドライブ上に格納する。ブロック２０１、２０２、および２０３は、同時的に起こることも、または図２に示されるような順に起こることもあり得ることに留意されたい。
【００２９】
図３はＰＤＰエージェントによって取られる例示的動作を示す機能流れ図である。ブロック３０１において、ＰＤＰエージェント上のソフトウェア・アプリケーション・スイートのファイル転送構成マネージャ・ソフトウェア・コンポーネントが、ファイル転送構成ポリシーに対する変更を監視する。ブロック３０２において、ＰＤＰエージェント上のソフトウェア・アプリケーション・スイートのＰＤＰマネージャ・ソフトウェア・コンポーネントは、ＰＤＰポリシーおよび設定に対する変更を監視する。ブロック３０３において、ＰＤＰエージェント上のソフトウェア・アプリケーション・スイートのＰＤＰジョブ・マネージャ・ソフトウェア・コンポーネントは、ＰＤＰソフトウェア・アプリケーション・パッケージ・ポリシーに対する変更を監視し、ソフトウェア・アプリケーション・パッケージ・プロビジョニング・ジョブの待ち行列（キュー）を保持する。ブロック３０１、３０２、および３０３は、同時的に起こることも、または図３に示されるような順に起こることもあり得ることに留意されたい。
【００３０】
図４はＰＤＰパッケージ・ダウンロード・ポリシーがプレステージ化されているか否かをチェックするために取られる例示的動作を示す機能流れ図４００である。あるポリシー（およびポリシーと関連するパッケージ）は、ＰＤＰエージェントのロケーションにおいて、アドミニストレータが、ソフトウェア・アプリケーションを構成するソフトウェア・アプリケーション・パッケージが従来のネットワーク接続を用いてダウンロードするには大き過ぎると決定した場合、プレステージ化される。プレステージ化されたパッケージは、ＣＤ、ＤＶＤ、または類似するストレージデバイス上に「焼き付けられた（burnt）」パッケージである。ＣＤ、ＤＶＤ、または類似するストレージデバイスは、アドミニストレータに送られ、このアドミニストレータは、ソフトウェア・アプリケーション・パッケージをＰＤＰエージェントにダウンロードする。他のクライアントはＰＤＰエージェントにネットワーク接続されているので、他のクライアントは、上述のように、ソフトウェア・アプリケーション・パッケージを、ＰＤＰエージェントから、ネットワークの帯域幅を用いることで、このソフトウェア・アプリケーションが別のソースからダウンロードされる場合よりも、より効率的にダウンロードできる。パッケージがプレステージ化されている場合には、ＰＤＰエージェントに送られるポリシー上に、「Ｄｏ  Ｎｏｔ  Ｄｏｗｎｌｏａｄ（ダウンロードするな）」なるフラグが配布用サーバによって設定される。これによって、ソフトウェア・アプリケーション・パッケージの「焼き付けられた」コピーが、ＰＤＰエージェントにダウンロードするためにアドミニストレータに向けて送られているので、ソフトウェア・アプリケーション・パッケージは「プル」されるべきでないことが、ＰＤＰエージェントに通告される。
【００３１】
図４に戻り、ブロック４０１において、ＰＤＰエージェント上のソフトウェア・アプリケーション・スイートによって、配布用サーバから受信したＰＤＰパッケージ・ダウンロード・ポリシーが有効であるか否かを判定するためのチェックがなされる。ＰＤＰパッケージ・ダウンロード・ポリシーは、そのポリシーが電子的に複数の宛先に向けて配布する準備が整っているソフトウェア・アプリケーション・パッケージに対するものである場合は有効である。そのポリシーが有効でない場合は（ブロック４０１からの「ＮＯ」分岐）、ブロック４０２において、「無効（invalid）」状態メッセージが生成され、そのソフトウェア・アプリケーション・パッケージプル動作は中止される。そのポリシーが有効である場合は（ブロック４０１からの「ＹＥＳ分岐」）、ブロック４０３において、ポリシーが作成されたソフトウェア・アプリケーション・パッケージが、ＰＤＰエージェント上に存在するか否を判定するためのチェックがなされる。ソフトウェア・アプリケーション・パッケージが存在しないときは（ブロック４０３からの「ＮＯ」分岐）、フローは、ソフトウェア・アプリケーション・パッケージのプルを開始するために、開始（START）状態（図５、図６Ａおよび図６Ｂならびにこれらの次の説明を参照）に進む。ソフトウェア・アプリケーション・パッケージが存在する場合は（ブロック４０３からの「ＹＥＳ」分岐）、ブロック４０４において、ＰＤＰエージェント上のソフトウェア・アプリケーション・パッケージのハッシュが、そのポリシー上のソフトウェア・アプリケーション・パッケージのハッシュと一致するか否か判定するためにもう１つのチェックが行われる。ＰＤＰエージェント上のソフトウェア・アプリケーション・パッケージのハッシュが、ポリシー上のソフトウェア・アプリケーション・パッケージのハッシュと一致する場合は（ブロック４０４からの「ＹＥＳ」分岐）、ブロック４０５において、適切な状態ファイルが生成される。ＰＤＰエージェント上のソフトウェア・アプリケーション・パッケージのハッシュが、ポリシー上のソフトウェア・アプリケーション・パッケージのハッシュと一致しない場合は（ブロック４０４からの「ＮＯ」分岐）、ブロック４０６において、「ハッシュ失敗（hash failed）」状態メッセージが生成される。次に、ブロック４０７において、「Ｄｏ  Ｎｏｔ  Ｄｏｗｎｌｏａｄ」フラグが設定されているか否かを判定するための、別のチェックが行われる（換言すれば、このチェックはソフトウェア・アプリケーション・パッケージがプレステージ化されているか否かを判定する）。「Ｄｏ  Ｎｏｔ  Ｄｏｗｎｌｏａｄ」フラグが設定されている場合は（ブロック４０７からの「ＹＥＳ」分岐）、ブロック４０８において、「ｄｏ  ｎｏｔ  ｄｏｗｎｌｏａｄ」状態メッセージが生成され、フローは終了する。「Ｄｏ  Ｎｏｔ  Ｄｏｗｎｌｏａｄ」フラグが設定されてない場合（ブロック４０７からの「ＮＯ」分岐）、フローは、（図５、図６Ａおよび図６Ｂならびに後に説明される）開始状態へと進む。
【００３２】
図５は、ＰＤＰジョブが通過する例示的な状態（ステージ）を示す状態図５００である。ＰＤＰジョブは、ソフトウェア・アプリケーション・パッケージ上の単一のジョブを表す。ＰＤＰエージェントに向けられる各ソフトウェア・アプリケーション・パッケージは、任意の時間において最大で１つのＰＤＰジョブを有することができる。ＰＤＰジョブ（およびソフトウェア・アプリケーション・パッケージ）に対する任意の変更は、ＰＤＰエージェント上のソフトウェア・アプリケーション・スイートによって順番に並べられる（serialized）。ＰＤＰジョブはブロック５０１、すなわち開始（START）状態において開始される。次の状態、ブロック５０２、つまり、コンテンツのダウンローディング（DOWNLOADING CONTENT）状態に進むためには、ＰＤＰエージェントは一時的ディレクトリをセットアップし、配布用サーバからソフトウェア・アプリケーション・パッケージのプルを開始する（経路５１８）。
【００３３】
ソフトウェア・アプリケーション・パッケージのコンテンツのプルの結果に依存して、ＰＤＰジョブは、ブロック５０２からの２つの経路、すなわち経路５０９または経路５１０、の一方を取る。ＤＰＤジョブは、「ダウンロード完了通知（download complete notification）」（コンテンツ転送マネージャ・ジョブとしても知られている）が、ＰＤＰエージェントによって、配布用サーバ上のコンテンツ転送マネージャ（ＣＴＭ：Content Transfer Manager）から受信された場合には、ブロック５０２から経路５０９を取る。経路５０９を取ることで、ＰＤＰジョブは次の状態、すなわち、ブロック５０３に進み、これはダウンロード完了状態（DOWNLOAD COMPLETE）状態となる。ＰＤＰジョブは、「ダウンロード／ロケーションエラー（download/location error）」通知が、ＰＤＰエージェントによって配布用サーバ上のコンテンツ転送マネージャから受信された場合には、ブロック５０２から経路５１０を取る。経路５１０を取ることで、ＰＤＰジョブは次の状態、すなわち、ブロック５０７進み、これは再トライ（RETRY）状態となる。
【００３４】
ブロック５０３の結果に依存して、ＰＤＰジョブは２つの経路、すなわち、経路５１１または経路５１２の一方を取る。ＰＤＰジョブは、ＰＤＰエージェント上のソフトウェア・アプリケーション・パッケージのハッシュが、ソフトウェア・アプリケーション・パッケージの複数のポリシー上のソフトウェア・アプリケーション・パッケージのハッシュと一致する場合は（上述の図４におけるブロック４０４において成功した場合は）、経路５１１を取る。経路５１１を取ることで、ＰＤＰジョブは次の状態、ブロック５０４へと進み、これはハッシュ成功（HASH SUCCEEDED）状態となる。ＰＤＰジョブは、ＰＤＰエージェント上のソフトウェア・アプリケーション・パッケージのハッシュが、ソフトウェア・アプリケーション・パッケージの複数のポリシー上のソフトウェア・アプリケーション・パッケージのハッシュと一致しない場合は（上述の図４におけるブロック４０４において失敗した場合は）、経路５１２を取る。経路５１２を取ることで、ＰＤＰジョブは次の状態、すなわち、ブロック５０８に進み、これは失敗（FAILED）状態となる。
【００３５】
再トライの回数に依存して、ＰＤＰジョブは、ブロック５０７から、２つの経路、すなわち経路５１６または経路５１７の一方を取る。ＰＤＰジョブは、再トライの最大数に達している場合は経路５１６を取る。再トライの最大数は、ＰＤＰエージェントのロケーションのアドミニストレータによって設定される。経路５１６を取ることで、ＰＤＰジョブは、次の状態、すなわち、ブロック５０８に進み、これは失敗状態となる。ＰＤＰジョブは、再トライの最大数に達してない場合は、経路５１７を取る。経路５１７を取ることで、ＰＤＰジョブは、ブロック５０１、すなわち開始状態に戻る。
【００３６】
ハッシュの成功に依存して、ＰＤＰジョブは、ブロック５０４から、２つの経路、すなわち、経路５１３または経路５１９の一方を取る。ＰＤＰジョブは、ハッシュが成功した後にプロビジョニング・ディレクトリのセットアップに失敗した場合には、経路５１３を取る。経路５１３を取ることで、ＰＤＰジョブはブロック５０７、すなわち、再トライ状態へと進む。ＰＤＰジョブは、プロビジョニング・ディレクトリのセットアップ、およびアクセス制御リスト（ＡＣＬ：Access Control List）のセットアップが成功したときは、経路５１９を取り、ソフトウェア・アプリケーション・パッケージのコンテンツは、ＰＤＰエージェントによって作成された一時的なディレクトリから、成功の内に移動され、その結果、開始状態からコンテンツ・ダウンローディング状態へと進む。経路５１９を取ることで、ＰＤＰジョブは、次の状態、すなわち、ブロック５０５へと進み、これはプロビジョニング完了（PROVISIONING COMPLETE）状態となる。
【００３７】
ソフトウェア・アプリケーション・パッケージのプロビジョニングの完了の成功に依存して、ＰＤＰジョブは、ブロック５０５から２つの経路、すなわち、経路５１４または経路５１５の一方を取る。ＰＤＰは、ソフトウェア・アプリケーション・パッケージのプロビジョニングが成功した場合は、経路５１４を取り、状態（ＳＴＡ：Status）ファイルがＰＤＰエージェントから配布用サーバに送られる。経路５１４を取ることで、ＰＤＰジョブは、ブロック５０６、すなわち、成功状態へと進む。ＰＤＰジョブは、たとえソフトウェア・アプリケーション・パッケージのプロビジョニングが完了しても、ＰＤＰエージェントがＳＴＡファイルを配布用サーバに送信することに失敗した場合には、経路５１５を取る。経路５１５を取ることで、ＰＤＰジョブは、ブロック５０７、すなわち、再トライ状態へと進む。ＰＤＰジョブがブロック５０６、すなわち、成功状態に達すると、ソフトウェア・アプリケーション・パッケージが配布用サーバから成功の内に「プル」される。こうして、ソフトウェア・アプリケーション・パッケージは、この段階で、ネットワーク接続を介してこのＰＤＰエージェントに接続されている他のクライアントに対してプルする準備が整った状態にある。
【００３８】
上述の各々の状態の開始時において、割り込みフラグがＰＤＰエージェント上のソフトウェア・アプリケーション・スイートによってチェックされる。図７は、上述の図５において述べられた各々の状態の開始時において、割り込みフラグが呼び出された場合に取られる動作の例示的シナリオ７００を示す機能流れ図である。ブロック７０１において、ＣＴＭジョブがキャンセルされ、「ソフトウェア・アプリケーション・パッケージ・ダウンロード・キャンセル（software application package download canceled）」なる状態メッセージが生成される。次に、ブロック７０２において、ＰＤＰジョブが非アクティブに設定される。次に、ブロック７０３において、ダウンロードされることを待機しているソフトウェア・アプリケーション・パッケージの複数のポリシーが、ソフトウェア・アプリケーション・パッケージの更新に対するもの（パッケージ更新ポリシー）であるか、またはソフトウェア・アプリケーション・パッケージの削除に対するもの（パッケージ削除ポリシー）であるかを判定するためのチェックがなされる。そのポリシーが更新ポリシーである場合は（ブロック７０３からの「更新（Update）」として記される矢印）、ブロック７０４において、パッケージ更新ポリシーが呼び出される（図８およびこれに関する後の説明を参照）。ポリシーが削除ポリシー（ブロック７０３からの「削除（Delete）」と記される矢印）である場合には、ブロック７０５において、パッケージ削除ポリシーが呼び出される（図９およびこれに関する後の説明を参照）。
【００３９】
図６Ａおよび図６Ｂは、図５の状態図で示される、開始（START）状態から、失敗（FAILED）状態または成功（SUCCESS）状態に進んだときにＰＤＰジョブによって取られる例示的動作を示す機能流れ図６００である。この機能流れ図６００は、ブロック６０１から開始され、これは開始（START）状態である（図５におけるブロック５０１）。ブロック６０２において、パッケージ・ダウンロード・ポリシーは、ソフトウェア・アプリケーション・パッケージのコンテンツがダウンロードされるべきＰＤＰエージェント上のディスクのパーティションを指定するか否かを判定するためのチェックがなされる。パーティションが指定されてない場合には（ブロック６０２からの「ＮＯ」分岐）、ブロック６０３において、ＰＤＰジョブは、ソフトウェア・アプリケーション・パッケージをダウンロードするためにＰＤＰエージェント上の固定パーティション・ディスクを見付ける。次に、ブロック６０４において、そのディスクが見つかったか否か判定するためのチェックがなされる。ディスクが全く見つからない場合は（ブロック６０４からの「ＮＯ」分岐）、ブロック６０５において、適切な状態メッセージが生成される。適切な状態メッセージとしては、「ディスク空き容量が十分でない（not enough disk space）」、「いかなＮＴＦＳ（New Technology File System）パーティションが発見できず（no NTFS partition found）」、「ディレクトリを作成できず（unable to create directory）、および「制御リストにアクセスできず（unable to Access Control Lists (ACL)」などが含まれる。次に、ＰＤＰジョブは、ブロック６１５に進むが、これは失敗状態（図５におけるブロック５０８）である。
【００４０】
パーティションが指定されている場合（ブロック６０２からの「ＹＥＳ」分岐）、またはディスクが見つかった場合（ブロック６０４からの「ＹＥＳ」分岐）には、ブロック６０６において、ソフトウェア・アプリケーション・パッケージがダウンロードされるべきＰＤＰエージェントのディスクがパーティションに対して適格であるか否かを判定するためのチェックがなされる。見つかったディスクがパーティションに対して適格でない場合には（ブロック６０６からの「ＮＯ」分岐）、フローはブロック６０３に進む。見つかったディスクが分割に対して適格である場合には、ブロック６０７において、一時的ディレクトリが作成されているか、および、そのＰＤＰエージェントに対するＡＣＬが設定されているか、を判定するためのチェックがなされる。一時的ダウンロードディレクトが作成されていないか、またはＰＤＰエージェントに対するＡＣＬが設定されていないか、のいずれかである場合は（ブロック６０６からの「ＮＯ」分岐）、フローはブロック６０５に進み、適切な状態メッセージが生成される。一時的ダウンロードディレクトリが作成されている、またはＰＤＰエージェントに対するＡＣＬが設定されている場合は（ブロック６０７からの「ＹＥＳ」分岐）、ブロック６０８において、配布用サーバ上のコンテンツ転送マネージャ（ＣＴＭ）がアクティブにされ、ソフトウェア・アプリケーション・パッケージが一時的ディレクトリ内にダウンロードされる。
【００４１】
次に、ブロック６０９において、「ダウンロード開始（download started）」状態メッセージがＰＤＰエージェントによって生成される。次に、ＰＤＰジョブは、ブロック６１０に進むが、これはコンテンツ・ダウンローディング（DIWNLOADING CONTENT）状態（図５におけるブロック５０２）である。次に、ブロック６１１において、ダウンロードが完了したか否か判定するためのチェックがなされる。ダウンロードが完結した場合は（ブロック６１１からの「ＹＥＳ」分岐）、ＰＤＰジョブはブロック６１６に進むが、これはダウンロード完了（DOWNLOAD COMPLETE）状態（図５のブロック５０３）である。次に、ブロック６１７において、ＰＤＰエージェント上のソフトウェア・アプリケーション・パッケージのハッシュが複数の関連するソフトウェア・アプリケーション・パッケージ・ポリシーに含まれるソフトウェア・アプリケーション・パッケージのハッシュと一致するか判定するためのチェックがなされる。ハッシュが一致する場合は（ブロック６１７からの「ＹＥＳ」分岐）、ＰＤＰジョブはブロック６１９に進むが、これはハッシュ成功（HASH SUCCEEDED）状態（図５におけるブロック５０４）である。ハッシュが一致しないときは（ブロック６１７からの「ＮＯ」分岐）、ブロック６１８において、「ハッシュ失敗（hash failed）」状態メッセージが生成され、ＰＤＰジョブはブロック６１５に進むが、これは失敗（FAILED）状態（図５におけるブロック５０９）である。
【００４２】
ダウンロードが成功しなかった場合は（ブロック６１１からの「ＮＯ」分岐）、ブロック６１２において、「ソフトウェア・アプリケーションダウンロード失敗（software application download failed）」状態メッセージが生成され、ＰＤＰジョブはブロック６１３に進むが、これは再トライ（RETRY）状態である（図５におけるブロック５０７）。次に、ブロック６１４において、再トライの最大数が超えられたか判定するためのチェックがなされる。上述のように、再トライの最大数はアドミニストレータにて設定される。再トライの最大数が超えられていない場合は（ブロック６１４からの「ＮＯ」分岐）、ＰＤＰジョブはブロック６０１に戻るが、これは開始（START）状態（図５におけるブロック５０１）である。再トライの最大数が超えられている場合は（ブロック６１４からの「ＹＥＳ」分岐）、ＰＤＰジョブはブロック６１５に進むが、これは失敗（FAILED）状態（図５にけるブロック５０９）である。
【００４３】
図６Ｂの参照に移り、ＰＤＰジョブがハッシュ成功状態（HASH SUCCEEED）状態（図６Ａにおけるブロック６１９）に入った後に、ブロック６２０において、ソフトウェア・アプリケーション・パッケージがダウンロードされるべきディレクトリがカスタムまたはデフォルト・ディレクトリであるか否かを判定するためのチェックが行われる。ディレクトリがカスタムディレクトリの場合は（ブロック６２０からの「カスタム（CUSTOM）」と記された矢印）、ブロック６２１において、カスタムディレクトリが存在するか否かを判定するためのチェックが行われる。そのディレクトリがデフォルト・ディレクトリの場合は（ブロック６２０からの「デフォルト（DEFAULT）」と記された矢印）、ブロック６２５において、デフォルト・ディレクトリが存在するか否かを判定するためのチェックが行われる。デフォルト・ディレクトリが存在しない場合は（ブロック６２５からの「ＮＯ」分岐）、ブロック６２６において、デフォルト・ディレクトリが作成され、フローは、ＡＣＬがパッケージ・ディレクトリ上で設定されるブロック６２８へと移動する。デフォルト・ディレクトリが存在する場合は（ブロック６２５からの「ＹＥＳ」分岐）、フローは、一時的ディレクトリコンテンツがプロビジョニング・ディレクトリに移動されるブロック６３０に進む。カスタムディレクトリが存在しない場合は（ブロック６２１からの「ＮＯ」分岐）、ブロック６２７において、カスタムディレクトリが作成され、ＰＤＰジョブはブロック６２８に進む。
【００４４】
カスタムディレクトリが存在する場合は（ブロック６２１からの「ＹＥＳ」分岐）、ブロック６２２において、ダウンロードされるべきソフトウェア・アプリケーション・パッケージに対して提供されているポリシーのタイプを判定するためのチェックが行われる。このポリシーは、ソフトウェア・アプリケーション・パッケージの「作成（create）」、または既存するソフトウェア・アプリケーション・パッケージの「更新」のいずれかである。そのポリシーがソフトウェア・アプリケーション・パッケージの「作成」である場合（ブロック６２２からの「作成」として記される矢印）、ブロック６２３において、「ソフトウェア・アプリケーション・パッケージが既に存在する（software application package already exists）」なる状態メッセージが生成され、ＰＤＰジョブは、ブロック６１５に進むが、これは失敗（FAILED）状態（図５におけるブロック５０９）である。そのポリシーが既存するソフトウェア・アプリケーション・パッケージの「更新」である場合は（ブロック６２２からの「更新」として記される矢印）、ブロック６２４において、そのパッケージ・ディレクトリおよびそのコンテンツが削除される。次に、ＰＤＰジョブは、ブロック６２８に進む。
【００４５】
ブロック６２８において、ＡＣＬがパッケージ・ディレクトリ上に設定され、ＰＤＰジョブはブロック６３０へと進む。ブロック６３０において、一時的ディレクトリのコンテンツがプロビジョニング・ディレクトリに移動され、ＰＤＰジョブはブロック６３１に進むが、これはプロビジョニング完了（PROVISIONING COMPLETE）状態（図５におけるブロック５０５）である。
【００４６】
次に、ブロック６３２において、状態（ＳＴＡ）ファイルを送れるか否かを判定するためのチェックが行われる。ＳＴＡファイルを送れない場合は（ブロック６３２からの「ＮＯ」分岐）、ＰＤＰジョブはブロック６１３に進むが、これは再トライ（RETRY）状態（図５におけるブロック５０７）である。次に、ブロック６１４において、再トライの最大回数が超えられたか判定するためのチェックが行われる。上述のように、再トライの最大回数はアドミニストレータにて設定される。再トライの最大回数が超えられてない場合は（ブロック６１４からの「ＮＯ」分岐）、ＰＤＰジョブはブロック６０１に戻るが、これは開始（START）状態（図５におけるブロック５０１）である。再トライの最大回数が超えられているときは（ブロック６１４からの「ＹＥＳ」分岐）、ＰＤＰジョブはブロック６１５に進むが、これは失敗（FAILED）状態（図５におけるブロック５０９）である。ＳＴＡファイルを送れる場合は（ブロック６３２からの「ＹＥＳ」分岐）、ブロック６３３において、ＳＴＡファイルが送られ、ＰＤＰジョブはブロック６３４に進むが、これは成功（SUCCESS）状態（図５にけるブロック５０６）である。
【００４７】
ＰＤＰエージェントがパッケージ更新ポリシーを受信すると、ＰＤＰエージェントは、そのソフトウェア・アプリケーション・パッケージが、初期ポリシー、削除ポリシー、または保持タスクによって「アクティブ（actively）」に働きかけられているか否か判定するためのチェックを行う。そのソフトウェア・アプリケーション・パッケージが初期ポリシー、削除ポリシー、または保持タスクによって「アクティブ」に働きかけられている場合は、ＰＤＰエージェントは、割り込みフラグを設定して、更新がペンディングであることを示す。ソフトウェア・アプリケーション・パッケージが初期ポリシー、削除ポリシー、または保持タスクによって「アクティブ」に働きかけられてはいない場合は、制御のフローは、図８に示されている動作に従う。
【００４８】
図８は、パケット更新ポリシーが呼び出されたとき取られる例示的動作を示す機能流れ図８００である。ブロック８０１において、ＰＤＰジョブがアクティブであるか否かを判定するためのチェックが遂行される。ＰＤＰジョブがアクティブである場合は（ブロック８０１からの「ＹＥＳ」分岐）、ブロック８０２において、割り込みフラッグが設定され、フローは終了する。ＰＤＰジョブがアクティブでない場合は（ブロック８０１からの「ＮＯ」分岐）、ブロック８０３において、ＰＤＰエージェントによって格納されたソフトウェア・アプリケーション・パッケージのハッシュが変更されたか判定するためのチェックが遂行される（上述のように、ハッシュが変更されたか否かをチェックする１つの方法は、ＰＤＰエージェントによって格納されたソフトウェア・アプリケーション・パッケージのハッシュを、複数のソフトウェア・アプリケーション・パッケージ・ポリシーに含まれるソフトウェア・アプリケーション・パッケージのハッシュと比較することによる）。ハッシュが変更されている場合は（ブロック８０３からの「ＹＥＳ」分岐）、ＰＤＰジョブはブロック８０４に進むが、これは開始（START）状態である。ハッシュが変更されてない場合は（ブロック８０３からの「ＮＯ」分岐）、ブロック８０５において、ＰＤＰエージェント上の、ソフトウェア・アプリケーション・パッケージのプロビジョニングを行っているロケーション（プロビジョニング・ロケーション）が変更されたか否か判定するためのチェックが遂行される。プロビジョニング・ロケーションが変更されている場合は（ブロック８０５からの「ＹＥＳ」分岐）、ＰＤＰジョブはブロック８０６に進むが、これはハッシュ成功（HASH SUCCESS）状態である。プロビジョニング・ロケーションが変更されてない場合は（ブロック８０５からの「ＮＯ」分岐）、ブロック８０７において、そのソフトウェア・アプリケーション・パッケージのバージョンが更新され、新たなＡＣＬが設定される。次に、ブロック８０８において、ＳＴＡファイルが送られる。次に、ＰＤＰジョブはブロック８０９に進むが、これはプロビジョニング完了（PROVISIONING COMPLETE）状態である。最後に、ＰＤＰジョブはブロック８１０へと進むが、これは成功（SUCCESS）状態である。
【００４９】
ＰＤＰエージェントがパッケージ削除ポリシーを受信すると、ＰＤＰエージェントは、そのソフトウェア・アプリケーション・パッケージが、初期ポリシー、更新ポリシー、または保持タスクによって「アクティブ（actively）」に働きかけられているか否か判定するためのチェックを行う。そのソフトウェア・アプリケーション・パッケージが初期ポリシー、更新ポリシー、または保持タスクによって「アクティブ」に働きかけられている場合は、ＰＤＰエージェントは、割り込みフラグを設定して、削除がペンディングであることを示す。ソフトウェア・アプリケーション・パッケージが初期ポリシー、更新ポリシー、または保持タスクによって「アクティブ」に働きかけられてはいない場合は、制御のフローは、図９に示されている動作に従う。
【００５０】
図９はパッケージ削除ポリシーが呼び出されたとき取られる例示的動作を示す機能流れ図９００である。ブロック９０１において、そのＰＤＰジョブがアクティブであるか否かを判定するためのチェックが行われる。そのＰＤＰジョブがアクティブでない場合は（ブロック９０１からの「ＮＯ」分岐）、ブロック９０２において、ＣＴＭジョブがキャンセルされ、一時的ディレクトリが削除され、ソフトウェア・アプリケーション・パッケージおよびそのコンテンツが削除され、ＰＤＰジョブが削除され、「ソフトウェア・アプリケーション・パッケージ・ダウンロード・キャンセル（software application package download canceled）」なる状態メッセージが生成される。そのジョブがアクティブの場合は（ブロック９０１からの「ＹＥＳ」分岐）、ブロック９０３において、割り込みフラグが設定される。
【００５１】
幾つかの実施形態が示され、説明されたが、本発明の精神および範囲から逸脱することなく、さまざまな変更を加えることを理解できよう。
【００５２】
排他的所有権または特権が請求されている本発明の形態は特許請求の範囲に記載される通りである。
【図面の簡単な説明】
【００５３】
【図１Ａ】従来技術による例示的クライアント・サーバ階層システムを示すイラスト図である。
【図１Ｂ】図１Ａに示される従来技術による例示的クライアント・サーバ階層システムの一部分の、ソフトウェア・アプリケーション・パッケージおよび複数の関連するソフトウェアパッケージ・ポリシーにて取られる、例示的経路のタイムライン図である。
【図１Ｃ】例示的クライアント・サーバシステムを示すイラスト図である。
【図１Ｄ】図１Ｃに示される例示的クライアント・サーバシステムの一部分の、ソフトウェア・アプリケーション・パッケージおよび複数の関連するソフトウェアパッケージ・ポリシーにて取られる、例示的経路のタイムライン図である。
【図２】クライアントがＰＤＰエージェントとして設計されている場合、ＳＭＳにて取られる例示的動作を示す機能流れ図である。
【図３】ＰＤＰエージェントによって取られる例示的動作を示す機能流れ図である。
【図４】ＰＤＰパッケージ・ダウンロード・ポリシーが、プレステージ化されているか否かをチェックするために取られる例示的動作を示す機能流れ図である。
【図５】ＰＤＰジョブが通過する例示的状態（ステージ）を示す状態図である。
【図６Ａ】図５に示される状態をＰＤＰジョブが通過することにより取られる例示的動作を示す機能流れ図である。
【図６Ｂ】図５に示される状態をＰＤＰジョブが通過することにより取られる例示的動作を示す機能流れ図である。
【図７】割り込みフラグが各状態の開始時において呼び出されたとき取られる例示的動作を示す機能流れ図である。
【図８】パッケージ更新ポリシーが呼び出されたとき取られる例示的動作を示す機能流れ図である。
【図９】パッケージ削除ポリシーが呼び出されたとき取られる例示的動作を示す機能流れ図である。
【図１０】ＳＭＳの配布マネージャ・ソフトウェア・コンポーネントによって遂行される例示的デルタ更新タスクを示す機能流れ図である。
【図１１】ＳＭＳのポリシー・プロバイダ・ソフトウェア・コンポーネントによって取られる例示的動作を示す機能流れ図である。
【図１Ａ】
2009524855.tif 000003
【図１Ｂ】
2009524855.tif 000004
【図１Ｃ】
2009524855.tif 000005
【図１Ｄ】
2009524855.tif 000006
【図２】
2009524855.tif 000007
【図３】
2009524855.tif 000008
【図４】
2009524855.tif 000009
【図５】
2009524855.tif 000010
【図６Ａ】
2009524855.tif 000011
【図６Ｂ】
2009524855.tif 000012
【図７】
2009524855.tif 000013
【図８】
2009524855.tif 000014
【図９】
2009524855.tif 000015
【図１０】
2009524855.tif 000016
【図１１】
2009524855.tif 000017
【国際調査報告】
2009524855.tif 000018
2009524855.tif 000019