(57)【要約】【課題】ソフトウエア管理の実現。【解決手段】受注構成（ＣＴＯ）ソフトウエアプロビジョニングシステムにおいて、通常はユーザコンピュータのＢＩＯＳに格納されているマイクロコードを一部に用いて、ソフトウエアアップグレードサポート／ソフトウエアダウングレードサポート、ソフトウエアの稼動中の変更サポート、ソフトウエアファイルサーバ管理を提供する。【選択図】なし【特許請求の範囲】
【請求項１】
方法であって、
あるコンピュータのユーザが、そのコンピュータにインストールするためのＣＴＯソフトウエアオプションのサブセットを選択することで、そのコンピュータ用の第１受注構成（ＣＴＯ）ソフトウエアオプションのためのマイクロコード定義を受けるステップと、
第２ＣＴＯソフトウエアオプションのためのマイクロコード定義を生成するステップと、
両方のＣＴＯオプションを表すマイクロコードを前記コンピュータに書き込むステップと、
前記第１ＣＴＯソフトウエアオプションからユーザが選択したもののみを前記コンピュータにインストールするステップと、
を含むことを特徴とする方法。
【請求項２】
請求項１に記載の方法において、両方のマイクロコード定義、さらに、前記第１ＣＴＯソフトウエアオプション及び前記第２ＣＴＯソフトウエアオプションの両方における全プログラムを有するリカバリディスクを少なくとも一つ設けるステップを含むことを特徴とする方法。
【請求項３】
請求項２に記載の方法において、前記第１ＣＴＯソフトウエアオプションは、６４ビットソフトウエアを含み、前記第２ＣＴＯソフトウエアオプションは、前記６４ビットＣＴＯソフトウエアオプションの少なくとも一部に対応する３２ビットソフトウエアオプションを含むことを特徴とする方法。
【請求項４】
請求項１に記載の方法において、両方のＣＴＯソフトウエアオプションは、事前に定義されている単一のコンピュータモデルのためのものであることを特徴とする方法。
【請求項５】
請求項１に記載の方法において、前記マイクロコードにおける第１ビットは、前記ＣＴＯソフトウエアオプションのうちの第１プログラムに対してマッピングされていることを特徴とする方法。
【請求項６】
請求項５に記載の方法において、前記マイクロコードにおける第２ビットは、前記ＣＴＯソフトウエアオプションのうちの第２プログラムに対してマッピングされていることを特徴とする方法。
【請求項７】
請求項２に記載の方法において、
前記第１ＣＴＯソフトウエアオプションから前記第２ＣＴＯソフトウエアオプションまでの範囲で選択された少なくとも一つのプログラムのグレード変更のためのユーザリクエストを受けるステップと、
ユーザに前記リカバリディスクを提供し、これにより、前記コンピュータは、前記マイクロコードにアクセスし、少なくとも前記第１ＣＴＯオプションによる第１プログラムのために、前記マイクロコードに基づいて、前記第２ＣＴＯオプションから前記プログラムの対応するバージョンを前記ディスクから前記コンピュータにコピーするステップと、
を含むことを特徴とする方法。
【請求項８】
方法であって、
ユーザが受注構成（ＣＴＯ）ソフトウエアのグループからソフトウエアを選択することが可能であるような、そのグループにおける第１プログラムの稼動中の変更に少なくとも応じ、前記稼動中の変更によって影響を受ける前記第１プログラムを含んでいる前記ＣＴＯソフトウエアのグループについてのスナップショットを生成するステップと、
前記スナップショットにおけるアイテムのリストを生成するステップと、
ユーザのコンピュータに供給されているマイクロビットと、前記スナップショットの少なくとも一つにおける個々のアイテムとの間のマッピングを生成するステップと、
複数のスナップショット及びそれらに関連するリストを有するディスクを少なくとも一つ設けるステップと、
少なくとも一つの前記ディスクを少なくとも前記第１ユーザ及び前記第２ユーザに供給するステップと、
を含み、
前記第１ユーザのコンピュータが前記第１プログラムに関連し、前記第２ユーザのコンピュータが前記第１プログラムに関連していないことから前記稼動中の変更によって影響を受けることはない場合、前記第１ユーザにとって、前記ディスクは、前記稼動中の変更によって影響を受ける前記第１プログラムを前記第１ユーザの前記コンピュータにコピーするのに有用であることを特徴とする方法。
【請求項９】
請求項８に記載の方法において、前記第１ユーザの前記コンピュータは、前記マイクロコードにアクセスし、前記稼動中の変更によって影響を受ける前記第１プログラムを決定するとともに前記ディスクからコピーすることを特徴とする方法。
【請求項１０】
方法であって、
少なくとも第１ユーザのコンピュータにロードされるマイクロコードのビットを設定するステップを含み、そのビットは、
稼動中の変更によって影響を受ける第１プログラムと、
アップグレード用フォーマット及びダウングレード用フォーマットの第２プログラムと、
のうち少なくとも一つを表すことを特徴とする方法。
【請求項１１】
請求項１０に記載の方法において、
前記ビットは、前記第１プログラムを表し、前記方法は、
ユーザが受注構成（ＣＴＯ）ソフトウエアのグループからソフトウエアを選択することが可能であるような、そのグループに前記第１プログラムは存在し、その第１プログラムの稼動中の変更に応じ、その稼動中の変更によって影響を受ける前記第１プログラムを含んでいる前記ＣＴＯソフトウエアのグループについてのスナップショットを生成するステップと、
前記スナップショットにおけるアイテムのリストを生成するステップと、
ユーザのコンピュータに供給されているマイクロビットと、前記スナップショットの少なくとも一つにおける個々のアイテムとの間のマッピングを生成するステップと、
複数のスナップショット及びそれらに関連するリストを有するディスクを少なくとも一つ設けるステップと、
少なくとも一つの前記ディスクを少なくとも前記第１ユーザ及び前記第２ユーザに供給するステップと、
を含み、
前記第１ユーザのコンピュータが前記第１プログラムに関連し、前記第２ユーザのコンピュータが前記第１プログラムに関連していないことから前記稼動中の変更によって影響を受けることはない場合、前記第１ユーザにとって、前記ディスクは、前記稼動中の変更によって影響を受ける前記第１プログラムを前記第１ユーザの前記コンピュータにコピーするのに有用であることを特徴とする方法。
【請求項１２】
請求項１１に記載の方法において、前記第１ユーザの前記コンピュータは、前記マイクロコードにアクセスし、前記稼動中の変更によって影響を受ける前記第１プログラムを決定するとともに前記ディスクからコピーすることを特徴とする方法。
【請求項１３】
請求項１０に記載の方法において、前記ビットは、前記第２プログラムを表し、さらに、方法は、
あるコンピュータのユーザが、そのコンピュータにインストールするためのＣＴＯソフトウエアオプションのサブセットを選択することで、前記コンピュータ用の第１受注構成（ＣＴＯ）ソフトウエアオプションであって前記第２プログラムを含んでいるオプションのためのマイクロコード定義を受けるステップと、
第２ＣＴＯソフトウエアオプションのためのマイクロコード定義を生成するステップと、
両方のＣＴＯオプションを表すマイクロコードを前記コンピュータに書き込むステップと、
前記第１ＣＴＯソフトウエアオプションからユーザが選択したもののみを前記コンピュータにインストールするステップと、
を含むことを特徴とする方法。
【請求項１４】
請求項１３に記載の方法において、両方のマイクロコード定義、さらに、前記第１ＣＴＯソフトウエアオプション及び前記第２ＣＴＯソフトウエアオプションの両方の全プログラムを有するリカバリディスクを少なくとも一つ設けるステップを含むことを特徴とする方法。
【請求項１５】
請求項１４に記載の方法において、前記第１ＣＴＯソフトウエアオプションは、６４ビットソフトウエアを含み、前記第２ＣＴＯソフトウエアオプションは、前記６４ビットＣＴＯソフトウエアオプションの少なくとも一部に対応する３２ビットソフトウエアオプションを含むことを特徴とする方法。
【請求項１６】
請求項１３に記載の方法において、両方のＣＴＯソフトウエアオプションは、事前に定義されている単一のコンピュータモデルのためのものであることを特徴とする方法。
【請求項１７】
請求項１３に記載の方法において、前記マイクロコードにおける第１ビットは、前記第２プログラムに対してマッピングされていることを特徴とする方法。
【請求項１８】
請求項１７に記載の方法において、前記マイクロコードにおける第２ビットは、前記ＣＴＯソフトウエアオプションのうちの第３プログラムに対してマッピングされていることを特徴とする方法。
【請求項１９】
請求項１４に記載の方法において、
前記第１ＣＴＯソフトウエアオプションから前記第２ＣＴＯソフトウエアオプションまでの範囲にある前記第２プログラムのグレード変更のためのユーザリクエストを受けるステップと、
ユーザに前記リカバリディスクを提供し、これにより、前記コンピュータは、前記マイクロコードにアクセスし、少なくとも前記第１ＣＴＯオプションのうちの前記第２プログラムのために、前記マイクロコードに基づいて、前記第２ＣＴＯオプションから前記プログラムの対応するバージョンを前記ディスクから前記コンピュータにコピーするステップと、
を含むことを特徴とする方法。
【請求項２０】
請求項１０に記載の方法において、前記ビットは、前記第１プログラム及び前記第２プログラムを表すことを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、ソフトウエア統合及び出荷時におけるソフトウエアの配布のためのシステム及び方法に関する。
【背景技術】
【０００２】
通常、個々の注文は、それぞれ異なることから、消費者向け電子機器、中でもコンピュータを製造することは、“受注構成（configure to order）”又は“ＣＴＯ”との関連において特に複雑となる可能性がある。そのコンピュータは、アプリケーションの様々な構成及び組み合わせを有するオペレーティングシステムに加えて、いくつかのサブシステム（それぞれが、それらのためのソフトウエアドライバを同様に有する）を組み込むことが可能であるものである。部品表（bill of materials、ＢＯＭ）の、定義や、管理、そして、適合を実施しなければならないだけではなく、さらに、製品の欠陥及び修正措置は、世界中で知られ実行されている修正措置を保証する方法で管理されていなければならない。
【０００３】
例えば、多くのコンピュータは、受注構成／受注生産（build to order）（ＣＴＯ／ＢＴＯ）に応じて販売されている。各ソフトウエア部は、地域や、言語、オペレーティングシステムの様々なバージョン、そして、プラットフォームが考慮されるとき、ある製品を表す在庫保管単位（ＳＫＵ）との関係は多次元的となる可能性がある。したがって、各ソフトウエア部は、このような変更全てに適応する多くのバージョンのリリースを潜在的に有する可能性がある。ここで分かるように、ソフトウエア管理は、ユーザの要求や、いわゆる“稼動中の変更（running changes）”によって、さらに複雑となる可能性がある。そのユーザの要求は、高ビットバス又は低ビットバス上で実行されるそれらソフトウエアのアップグレード又はダウングレードを行う要求である。そして、“稼動中の変更”は、最初のソフトウエアが供給された後に行われるソフトウエアの変更である。
【発明の概要】
【課題を解決するための手段】
【０００４】
方法は、あるコンピュータ用の第１受注構成（ＣＴＯ）ソフトウエアオプションのためのマイクロコード定義を受けるステップを含む。コンピュータのユーザは、そのコンピュータにインストールするためのＣＴＯソフトウエアオプションのサブセットを選択することができる。また、方法は、第２ＣＴＯソフトウエアオプションのためのマイクロコード定義を生成するステップと、両方のＣＴＯオプションを表すマイクロコードをコンピュータに書き込むステップとを含む。第１ＣＴＯソフトウエアオプションからユーザが選択したもののみを、コンピュータにインストールする。
【０００５】
両方のマイクロコード定義、さらに、第１ＣＴＯソフトウエアオプションと第２ＣＴＯソフトウエアオプションの両方における全プログラムを有するリカバリディスクが作成される。例としては、第１ＣＴＯソフトウエアオプションは、６４ビットのソフトウエアを含むことが可能であり、第２ＣＴＯソフトウエアオプションは、その６４ビットのＣＴＯソフトウエアオプションに相当する３２ビットのソフトウエアオプションを含むことが可能である。要求に応じて、両方のＣＴＯソフトウエアオプションは、事前に定義されている単一のコンピュータモデルのためのものとすることが可能である。
【０００６】
これを考慮すると、第１ＣＴＯソフトウエアオプションから第２ＣＴＯソフトウエアオプションまでの範囲で選択されるプログラムのグレードの変更（アップグレード又はダウングレード）のためのユーザリクエストを受けるステップをさらに含むことが可能である。リカバリディスクは、ユーザに提供される。第１ＣＴＯアオプションから第２ＣＴＯオプションまでの範囲でアップグレード／ダウングレードして利用しようと考えられているプログラムのために、ユーザのコンピュータは、マイクロコードにアクセスすることが可能であり、そして、それに基づいて、第２ＣＴＯオプションから対応するプログラムのバージョンをディスクからコンピュータにコピーすることが可能である。
【０００７】
他の実施例において、ユーザは、受注構成（ＣＴＯ）ソフトウエアのグループからソフトウエアを選択することが可能であり、そのグループにおける第１プログラムの稼動中の変更に応じて、稼動中の変更によって影響を受けるような第１プログラムを含むＣＴＯソフトウエアのグループについてのスナップショットが生成される。また、スナップショットにおけるアイテムのリストが生成され、さらに、マイクロコードビットとスナップショットの少なくとも一つにおける個々のアイテムとの間のマッピングを生成する。
【０００８】
複数のスナップショット及びそれらに関連するリストを有するディスクは、少なくとも第１ユーザ及び第２ユーザに供給される。例示のために、第１ユーザのコンピュータは、第１プログラムに関連し、さらに、第２ユーザのコンピュータは、第１プログラムに関連していないことから、稼動中の変更によって影響を受けないと仮定すると、ディスクは、前記第１ユーザにとって、稼動中の変更によって影響を受けるような第１プログラムを第１ユーザのコンピュータへコピーするのに有用である。例としては、第１ユーザのコンピュータは、マイクロコードにアクセスし、稼動中の変更によって影響を受ける第１プログラムを決定するとともに前記ディスクからコピーを行うことが可能である。
【０００９】
他の側面において、方法は、少なくとも第１ユーザのコンピュータにロードされるマイクロコードにおけるビットであって、少なくとも稼動中の変更によって影響を受ける第１プログラムを表すビット、及び／又は、少なくともアップグレード用フォーマット及びダウングレード用フォーマットの第２プログラム表すビットを設定するステップを含む。
【００１０】
本発明の詳細は、それの構造及び動作両方に関し、添付の図面の参照によって最も良く理解することが可能である。その図面において、同じ参照文字は、同じ部分を示す。
【図面の簡単な説明】
【００１１】
【図１】本発明による非制限的なシステム例のブロック図である。
【図２】ソフトウエアのアップグレード／ダウングレードをサポートするためのロジックについてのフローチャートである。
【図３】さらに、ソフトウエアのアップグレード／ダウングレードをサポートするためのロジックについてのフローチャートである。
【図４】ソフトウエアの稼動中の変更をサポートするためのロジックについてのフローチャートである。
【図５】ソフトウエアのファイルサーバ管理を提供するためのロジックについてのフローチャートである。
【発明を実施するための形態】
【００１２】
非制限的な実施例において、ソフトウエアデータの部分のみが、以下の“データベースＡ”と呼ばれるデータストアに含まれている。特に、顧客が見ることが可能なソフトウエアデータ（例えば、オペレーティングシステムや、受注構成／受注生産（ＣＴＯ／ＢＴＯ）オプション、ウエブサイト上で脚光を浴びているソフトウエアなど）を、データベースＡに投入することができる。データベースＡからの一部のデータは、ここではデータべース“Ｂ”として呼ばれる大規模なグローバルデータベースに定期的にプッシュされてもよい。その一部のデータには、在庫保管単位（ＳＫＵ）データ及びソフトウエアデータの両方が含まれる。
【００１３】
顧客が見ることができないようなソフトウエアデータ（例えば、オペレーティングシステムのアップデートや、デバイスドライバ、ユーティリティなど）を、大規模なグローバルデータベースを介して部品表（ＢＯＭ）に追加することができる。ソフトウエアはプロセスツール用ソフトウエアを表現するメタデータとともに、開発者や、ベンダー、エンジニアなどによって大規模なグローバルデータベースにチェックインされて（checked into）もよい。特定のシリーズ／言語／地域のためのＢＯＭは、凍結／ロックが実行され、その後、工場での成果物（ソフトウエアイメージ、ソフトウエアモジュール、データなど）を生成するプロセスを開始することができる。様々なプロセスツール及び手動のプロセスを用いて、工場での成果物を生成することができる。その成果物の全ては、大規模なグローバルデータベースに格納されているデータを使用する。
【００１４】
本発明の原理についての非限定的な一実施例の詳細を示す。図１は、コンピュータシステム１０が実行可能な本発明による方法を図示する。そのコンピュータシステム１０は、一又は二以上のエンタープライズコンピュータ１２を含み、そのエンタープライズコンピュータ１２は、それぞれ、それ用のプロセッサ１２ａ、コンピュータ読み取りが可能な具体的なメディア１２ｂ、キーボードやマウスなどのようなインプットデバイス１３、そして、モニター１４などのようなアウトプットデバイスやネットワークなどような他のアウトプットデバイスを有する。メデイア１２ｂは、ディスクストレージや、ソリッドステートストレージ、又は、他のタイプの電子ストレージとすることができる。エンタープライズコンピュータ１２は、本原理を実行する開発者又はソフトウエアエンジニアによって用いられていてもよい。したがって、必要に応じ、ロジック及びデータベース（データベース１６及びここでは“データベースＢ”と呼ばれているようなグローバルデータベース１８を含む）は、複数のコンピュータ上で供給されてもよい。方法のステップのいくつかは、エンタープライズコンピュータ１２の利用者によって実行されてもよい。さらに、方法の他のステップは、コンピュータ内のコンピュータが読み取り可能なメディアに常駐しているロジックによって自動的に実行されてもよい。コンピュータが読み取り可能なメディアは、以下に限定しないが、ＲＡＭ、ＲＯＭ、フレキシブルディスク、ハードディスクドライブ、光学ディスクドライブ、ソリッドステートメモリデバイスなどを含むことができる。
【００１５】
図２及び図３は、ユーザのコンピュータ上でソフトウエアのアップグレード及びダウングレードをサポートするためのロジックを示す。例えば、ユーザは、６４ビットプログラム（６４ビットオペレーティングシステムのために構成されているプログラム又は実際の６４ビットオペレーティングシステム自体）を３２ビットにダウングレード、又は、３２ビットを６４ビットにアップグレードすることを希望することが可能である。お分かりの通り、ここでは、特定のフォーマット間の変換が考慮されている。
【００１６】
状況２０から開始し、事前に定義されているコンピュータモデルのために必要に応じ、６４ビットＣＴＯオプションが設定される。ユーザは、６４ビットＣＴＯオプションから特定のプログラムを選択することができる。また、マイクロコードは、状況２２で設定される。そのマイクロコードのそれぞれのビットは、６４ビットＣＴＯオプションにおける個々のプログラムに対してマッピングされる（ＣＴＯオプションの“マイクロコード定義”を設定する）。一実施例において、マイクロコードは、８０ビットを含み、各ビットは、ＣＴＯオプションにおける個々のプログラムに対してマッピングされる。ビット値“０”は、対応するプログラムが特定の顧客のＣＴＯに無いことを示す。一方で、ビット値“１”は、その反対を示す。当然のことながら、反対のルールも用いることが可能である。
【００１７】
他のＣＴＯオプション、例えば、３２ビットプログラムなどのために、同一ステップを繰り返すことが可能である。あるいは、プロセスは、状況２４に移動し、ＣＴＯオプションのマイクロコード定義を動的に生成することが可能である。原則的に、そのＣＴＯオプションは、ブロック２０の第１ＣＴＯオプションにおける６４ビットプログラムの少なくともいくつかについての３２ビット（又は他のフォーマット）バージョンである。言い換えると、ブロック２４において、状況２０の６４ビットプログラムのうち３２ビットバージョンを備えているのはどれかを決定することが可能であり、そして、それらに対応するマイクロコード定義が生成される。
【００１８】
状況２６において、マイクロコードの２つのバージョンは、組み合わせることが可能であり、また、他の方法で互いに関連させることも可能である。そして、そのマイクロコードの２つのバージョンは、特定のＣＴＯと関連するユーザのコンピュータ（通常はバイオスへ）に書き込むことが可能である。このように、マイクロコードは、対応する３２ビットのバージョンを有する６４ビットプログラムそれぞれの間のリンクを設定する。
【００１９】
状況２８において、リカバリディスクは、両方のマイクロコード定義及び全てのソフトウエア（それに関する６４ビット及び３２ビットの両方）を用いて作成され、ディスクに書き込まれる。その一方で、状況３０において、要求されているソフトウエアのフォーマットのみが、ユーザのＣＴＯに従って、ユーザのコンピュータ上にロードされる。図２に示すように、例示の目的のため、ユーザは、最初に６４ビットソフトウエアを要求したと仮定している。
【００２０】
ユーザにＣＴＯコンピュータが提供された後、様々な理由でユーザは、所定のプログラムを、あるフォーマットから他のものへアップグレード又はダウングレードしたいと望む可能性がある。上記説明を続けると、ユーザが、６４ビットプログラムをそれの３２ビットバージョンにダウングレードさせたいと思っていると仮定する。図３の状況３２から開始すると、グレード変更のためのユーザリクエストを受ける。そして、図２の状況２８において作成されたディスクをユーザに提供する。これにより、ユーザは、ダウングレードオプション又はアップグレードオプションを選択することができる。ディスクは、ネットワークで利用可能なディスク上でソフトウエアを作成することによって、物理的又は仮想的に供給してもよい。
【００２１】
いずれにしても、状況３４において、ユーザのコンピュータは、マイクロコードにアクセスし、６４ビットプログラムに対応する３２ビットのバージョンを含むＣＴＯオプションの中から、ユーザがどの６４ビットプログラムを注文していたかを検出する。そして、対応する対象をリカバリディスクからユーザコンピュータに（通常は、ハードドライブ又は光学ディスクに）コピーする。
【００２２】
図４は、稼動中の変更をサポートするための方法を説明する。状況３６において、ユーザは、受注構成（ＣＴＯ）ソフトウエアのグループからソフトウエアを選択することが可能であり、そのグループにおけるプログラムに対する稼動中の変更に応じて、状況３８において、方法は、ＣＴＯソフトウエアのグループについてのスナップショットを生成する。そのグループは、稼動中の変更に影響されるような第１プログラムを含む。また、方法は、スナップショットにおけるアイテムのリストを生成し、状況４０において、マイクロコードビットとスナップショット上の個々のアイテムとの間のマッピングを生成する。マイクロコードビットはユーザのコンピュータに供給されている。
【００２３】
状況４２において、複数のスナップショット及びそれらに関連するリストを有するディスクを作成する。そして、状況４４において、ディスクがユーザに提供される。例示のため、ディスクが第１ユーザ及び第２ユーザに提供されており、さらに、第１ユーザのコンピュータは、第１のプログラムと関連している（すなわち、稼動中の変更によって影響を受ける）のに対して、第２ユーザのコンピュータは、関連していないと仮定する。
【００２４】
状況４６において、コンピュータは、状況４０で生成されたマイクロコードにアクセスし、それらの特定のＣＴＯ構築のために使用する正しい定義を識別する。この定義を用いることで、変更されているソフトウエアは、ディスクから適切なコンピュータにロードされる。この事例では、第２のユーザコンピュータではなく、第１のユーザコンピュータにロードされる。
【００２５】
図５は、利用が想定されるファイルサーバ管理を説明する。ブロック５０において、必要に応じ、方法は、地理的領域単位でＣＴＯファイルサーバ毎に実行されてもよい。その際に、各ファイルサーバは、通常、個々のローカルデータベースにアクセスする。ブロック５２において、保存対象のアイテムのリストは、特定の地域のアーカイブポリシに基づいて生成される。ブロック５４に移動し、保存対象の各アイテムは、ポリシによって決定される通りに保存される。同時に、中央のデータベース（例えば、図１の１８）は、それに応じて更新される。
【００２６】
ＣＴＯオプションを設定する部品表（ＢＯＭ）は、各シリーズ及び言語領域毎に生成されるだけではなく、各オペレーティングシステム毎に作成されていてもよい。
【００２７】
特定の「ソフトウエア配布及びソフトウエア管理の注文仕様生産」をここに示し、詳細に説明した。当然のように、本発明によって網羅する対象は、特許請求の範囲によってのみ制限される。
【図１】
2010009598.tif 000002
【図２】
2010009598.tif 000003
【図３】
2010009598.tif 000004
【図４】
2010009598.tif 000005
【図５】
2010009598.tif 000006