IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特表2024-512276システム再構成の為の、システム構成モデルの選択的刈り込み
<>
  • 特表-システム再構成の為の、システム構成モデルの選択的刈り込み 図1A
  • 特表-システム再構成の為の、システム構成モデルの選択的刈り込み 図1B
  • 特表-システム再構成の為の、システム構成モデルの選択的刈り込み 図2
  • 特表-システム再構成の為の、システム構成モデルの選択的刈り込み 図3
  • 特表-システム再構成の為の、システム構成モデルの選択的刈り込み 図4
  • 特表-システム再構成の為の、システム構成モデルの選択的刈り込み 図5
  • 特表-システム再構成の為の、システム構成モデルの選択的刈り込み 図6
  • 特表-システム再構成の為の、システム構成モデルの選択的刈り込み 図7
  • 特表-システム再構成の為の、システム構成モデルの選択的刈り込み 図8
  • 特表-システム再構成の為の、システム構成モデルの選択的刈り込み 図9
  • 特表-システム再構成の為の、システム構成モデルの選択的刈り込み 図10
  • 特表-システム再構成の為の、システム構成モデルの選択的刈り込み 図11
  • 特表-システム再構成の為の、システム構成モデルの選択的刈り込み 図12
  • 特表-システム再構成の為の、システム構成モデルの選択的刈り込み 図13
  • 特表-システム再構成の為の、システム構成モデルの選択的刈り込み 図14
  • 特表-システム再構成の為の、システム構成モデルの選択的刈り込み 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-03-19
(54)【発明の名称】システム再構成の為の、システム構成モデルの選択的刈り込み
(51)【国際特許分類】
   G06F 13/14 20060101AFI20240312BHJP
   G06F 13/10 20060101ALI20240312BHJP
【FI】
G06F13/14 330E
G06F13/10 330C
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023551975
(86)(22)【出願日】2022-03-25
(85)【翻訳文提出日】2023-08-25
(86)【国際出願番号】 CN2022083054
(87)【国際公開番号】W WO2022199693
(87)【国際公開日】2022-09-29
(31)【優先権主張番号】17/214,177
(32)【優先日】2021-03-26
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVASCRIPT
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【復代理人】
【識別番号】100118599
【弁理士】
【氏名又は名称】村上 博司
(74)【復代理人】
【識別番号】100160738
【弁理士】
【氏名又は名称】加藤 由加里
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【弁理士】
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】ノアシャムス,カイス
(72)【発明者】
【氏名】ボーイング,ノーマン クリストファー
(72)【発明者】
【氏名】スピナー,シモン
(72)【発明者】
【氏名】ステープルズ,ジェイソン マシュー
(57)【要約】
コンピューティング環境を現状の入力/出力(I/O)構成からあるべきI/O構成へと再構成する為の、方法、コンピュータプログラム製品及びコンピュータシステムが開示されている。該方法は、該現状のI/O構成及び該あるべきI/O構成の夫々の階層モデルを正規化することを含みうる。該階層モデルは各々、リーフノード及び非リーフノードの階層構造を備えている。該正規化することは、構文的に一貫した様式で該第1の階層モデル及び該第2の階層モデルの夫々のI/O構成が定義されるように、構文変換ルールを該第1の階層モデル及び該第2の階層モデルに適用することを含む。該方法は、該第1の階層モデル及び該第2の階層モデルの夫々のハッシュ木表現を作成することを含みうる。これらのハッシュ木表現のノードは、チェックサム値である。これらのハッシュ木表現のノードは、これらの夫々の階層モデルの該階層構造を反映する。該方法は、これらのハッシュ木表現の1以上のノードを刈り込むことを含みうる。
【選択図】図5
【特許請求の範囲】
【請求項1】
コンピューティング環境を現状の入力/出力(I/O)構成からあるべきI/O構成へと再構成する為の、コンピュータに実装された方法であって、
前記現状のI/O構成の第1の階層モデル及び前記あるべきI/O構成の第2の階層モデルを正規化すること、ここで、前記第1の階層モデル及び前記第2の階層モデルは各々、リーフノード及び非リーフノードの階層構造を備えており、及び該正規化することは、前記第1の階層モデル及び前記第2の階層モデルにわたって構文的に一貫した様式でそれらの夫々のI/O構成が定義されるように、構文変換ルールを前記第1の階層モデル及び前記第2の階層モデルに適用することを含む、
前記第1の階層モデルの第1のハッシュ木表現及び前記第2の階層モデルの第2のハッシュ木表現を作成すること、ここで、前記第1のハッシュ木表現のノードは、前記第1の階層モデルのリーフノード及び非リーフノードの為に計算されたチェックサム値であり、前記第2のハッシュ木表現のノードは、前記第2の階層モデルのリーフノード及び非リーフノードの為に計算されたチェックサム値であり、並びに、前記第1のハッシュ木表現のノード及び前記第2のハッシュ木表現のノードは、前記第1の階層モデルの前記階層構造及び前記第2の階層モデルの前記階層構造を夫々反映する;並びに、
前記第1のハッシュ木表現のルートノードと前記第2のハッシュ木表現のルートノードまでチェックサム値が等しいところの前記第1のハッシュ木表現及び前記第2のハッシュ木表現の1以上のノードを刈り込むこと
を含む、前記方法。
【請求項2】
前記現状のI/O構成が現状の入力/出力定義ファイル(IODF)によって定義され、及び前記あるべきI/O構成があるべきIODFによって定義され、前記現状のIODF及び前記あるべきIODFは、テーブルと相互参照とを有するリレーショナルデータベースに似たバイナリデータ構造を備えている、請求項1に記載の方法。
【請求項3】
前記第1の階層モデル及び前記第2の階層モデルが、前記現状のIODF及び前記あるべきIODFに夫々基づき、ここで、階層モデルが、階層的に入れ子にされたリーフノード及び非リーフノードとそれらの間の1以上の相互参照とを含む、テキストベースのJavaScriptオブジェクト表記法(JSON)データ構造を備えており、ここで、該リーフノード及び該非リーフノードは、IODFのI/O要素を表し、並びに、ここで、前記階層モデルを導出することが、
前記IODFを繰り返し解析して、前記IODFの中に含まれている前記複数のI/O要素(それらのプロパティを含む)を収集すること;
前記複数のI/O要素を、Javaクラスによって定義されたドメインモデルに組み合わせること;及び、
前記ドメインモデルをJSONデータ構造内にシリアライズすること
を含む、請求項2に記載の方法。
【請求項4】
アクティベーションサービスを介して、アクティベーションの為に前記あるべきIODFを送信することを更に含む、請求項2に記載の方法。
【請求項5】
前記第1の階層モデルのリーフノード及び非リーフノードが、前記現状のI/O構成内のI/O要素を表し、前記第2の階層モデルのリーフノード及び非リーフノードが、前記あるべきI/O構成内のI/O要素を表し、並びに、前記構文変換ルールは1つのI/O構成内で各I/O要素に固有であり且つ特定の順序で適用される必要があってもよい、請求項1に記載の方法。
【請求項6】
チェックサム値が前記第1のハッシュ木表現と前記第2のハッシュ木表現との間で同じであるところの第2のハッシュ木表現の1以上のノードを刈り込むことを更に含む、請求項1に記載の方法。
【請求項7】
前記第1の階層モデルの前記第1のハッシュ木表現と前記第2の階層モデルの前記第2のハッシュ木表現とを、前記コンピューティング環境のメモリ内で持続させることを更に含む、請求項1に記載の方法。
【請求項8】
コンピューティング環境を現状の入力/出力(I/O)構成からあるべきI/O構成へと再構成する為のコンピュータプログラム製品であって、該コンピュータプログラム製品が、1以上のコンピュータ可読有形ストレージデバイス、及び前記1以上のコンピュータ可読有形ストレージデバイスのうちの少なくとも1つ以上に記憶された複数のプログラム命令を備えており、ここで、前記複数のプログラム命令がコンピュータによって実行可能であり、該複数のプログラム命令が、
前記現状のI/O構成の第1の階層モデル及び前記あるべきI/O構成の第2の階層モデルを正規化する為のプログラム命令、ここで、前記第1の階層モデル及び前記第2の階層モデルは各々、リーフノード及び非リーフノードの階層構造を備えており、及び該正規化することは、前記第1の階層モデル及び前記第2の階層モデルにわたって構文的に一貫した様式でそれらの夫々のI/O構成が定義されるように、構文変換ルールを前記第1の階層モデル及び前記第2の階層モデルに適用することを含む、
前記第1の階層モデルの第1のハッシュ木表現及び前記第2の階層モデルの第2のハッシュ木表現を作成する為のプログラム命令、ここで、前記第1のハッシュ木表現のノードは、前記第1の階層モデルのリーフノード及び非リーフノードの為に計算されたチェックサム値であり、前記第2のハッシュ木表現のノードは、前記第2の階層モデルのリーフノード及び非リーフノードの為に計算されたチェックサム値であり、並びに、前記第1のハッシュ木表現のノード及び前記第2のハッシュ木表現のノードは、前記第1の階層モデルの前記階層構造及び前記第2の階層モデルの前記階層構造を夫々反映する;並びに、
前記第1のハッシュ木表現のルートノードと前記第2のハッシュ木表現のルートノードまでチェックサム値が等しいところの前記第1のハッシュ木表現及び前記第2のハッシュ木表現の1以上のノードを刈り込む為のプログラム命令
を含む、
前記コンピュータプログラム製品。
【請求項9】
前記現状のI/O構成が現状の入力/出力定義ファイル(IODF)によって定義され、及び前記あるべきI/O構成があるべきIODFによって定義され、前記現状のIODF及び前記あるべきIODFは、テーブルと相互参照とを有するリレーショナルデータベースに似たバイナリデータ構造を備えている、請求項8に記載のコンピュータプログラム製品。
【請求項10】
前記第1の階層モデル及び前記第2の階層モデルが、前記現状のIODF及び前記あるべきIODFに夫々基づき、ここで、階層モデルが、階層的に入れ子にされたリーフノード及び非リーフノードとそれらの間の1以上の相互参照とを含む、テキストベースのJavaScriptオブジェクト表記法(JSON)データ構造を備えており、ここで、該リーフノード及び該非リーフノードは、IODFのI/O要素を表し、並びに、ここで、前記階層モデルを導出する為のプログラム命令が、
前記IODFを繰り返し解析して、前記IODFの中に含まれている前記複数のI/O要素(それらのプロパティを含む)を収集する為のプログラム命令;
前記複数のI/O要素を、Javaクラスによって定義されたドメインモデルに組み合わせる為のプログラム命令;及び、
前記ドメインモデルをJSONデータ構造内にシリアライズする為のプログラム命令
を含む、
請求項9に記載のコンピュータプログラム製品。
【請求項11】
アクティベーションサービスを介して、アクティベーションの為に前記あるべきIODFを送信する為のプログラム命令を更に含む、請求項9に記載のコンピュータプログラム製品。
【請求項12】
前記第1の階層モデルのリーフノード及び非リーフノードが、前記現状のI/O構成内のI/O要素を表し、前記第2の階層モデルのリーフノード及び非リーフノードが、前記あるべきI/O構成内のI/O要素を表し、並びに、前記構文変換ルールは1つのI/O構成内で各I/O要素に固有であり且つ特定の順序で適用される必要があってもよい、請求項8に記載のコンピュータプログラム製品。
【請求項13】
チェックサム値が前記第1のハッシュ木表現と前記第2のハッシュ木表現との間で同じであるところの第2のハッシュ木表現の1以上のノードを刈り込む為のプログラム命令を更に含む、請求項8に記載のコンピュータプログラム製品。
【請求項14】
前記第1の階層モデルの前記第1のハッシュ木表現と前記第2の階層モデルの前記第2のハッシュ木表現とを、前記コンピューティング環境のメモリ内で持続させる為のプログラム命令を更に含む、請求項8に記載のコンピュータプログラム製品。
【請求項15】
コンピューティング環境を現状の入力/出力(I/O)構成からあるべきI/O構成へと再構成する為のコンピュータシステムであって、該コンピュータシステムが、
1以上のプロセッサ、1以上のコンピュータ可読メモリ、1以上のコンピュータ可読有形ストレージデバイス、及び前記1以上のメモリのうちの少なくとも1つを介して、前記1以上のプロセッサのうちの少なくとも1つによって実行する為の、前記1以上のコンピュータ可読有形ストレージデバイスのうちの少なくとも1つ上に記憶された複数のプログラム命令を備えており、
該複数のプログラム命令が、
前記現状のI/O構成の第1の階層モデル及び前記あるべきI/O構成の第2の階層モデルを正規化する為のプログラム命令、ここで、前記第1の階層モデル及び前記第2の階層モデルは各々、リーフノード及び非リーフノードの階層構造を備えており、及び該正規化することは、前記第1の階層モデル及び前記第2の階層モデルにわたって構文的に一貫した様式でそれらの夫々のI/O構成が定義されるように、構文変換ルールを前記第1の階層モデル及び前記第2の階層モデルに適用することを含む、
前記第1の階層モデルの第1のハッシュ木表現及び前記第2の階層モデルの第2のハッシュ木表現を作成する為のプログラム命令、ここで、前記第1のハッシュ木表現のノードは、前記第1の階層モデルのリーフノード及び非リーフノードの為に計算されたチェックサム値であり、前記第2のハッシュ木表現のノードは、前記第2の階層モデルのリーフノード及び非リーフノードの為に計算されたチェックサム値であり、並びに、前記第1のハッシュ木表現のノード及び前記第2のハッシュ木表現のノードは、前記第1の階層モデルの前記階層構造及び前記第2の階層モデルの前記階層構造を夫々反映する;並びに、
前記第1のハッシュ木表現のルートノードと前記第2のハッシュ木表現のルートノードまでチェックサム値が等しいところの前記第1のハッシュ木表現及び前記第2のハッシュ木表現の1以上のノードを刈り込む為のプログラム命令
を含む、
前記コンピュータシステム。
【請求項16】
前記現状のI/O構成が現状の入力/出力定義ファイル(IODF)によって定義され、及び前記あるべきI/O構成があるべきIODFによって定義され、前記現状のIODF及び前記あるべきIODFは、テーブルと相互参照とを有するリレーショナルデータベースに似たバイナリデータ構造を備えている、請求項15に記載のコンピュータシステム。
【請求項17】
前記第1の階層モデル及び前記第2の階層モデルが、前記現状のIODF及び前記あるべきIODFに夫々基づき、ここで、階層モデルが、階層的に入れ子にされたリーフノード及び非リーフノードとそれらの間の1以上の相互参照とを含む、テキストベースのJavaScriptオブジェクト表記法(JSON)データ構造を備えており、ここで、該リーフノード及び該非リーフノードは、IODFのI/O要素を表し、並びに、ここで、前記階層モデルを導出する為のプログラム命令が、
前記IODFを繰り返し解析して、前記IODFの中に含まれている前記複数のI/O要素(それらのプロパティを含む)を収集する為のプログラム命令;
前記複数のI/O要素を、Javaクラスによって定義されたドメインモデルに組み合わせる為のプログラム命令;及び、
前記ドメインモデルをJSONデータ構造内にシリアライズする為のプログラム命令
を含む、
請求項16に記載のコンピュータシステム。
【請求項18】
アクティベーションサービスを介して、アクティベーションの為に前記あるべきIODFを送信する為のプログラム命令を更に含む、請求項16に記載のコンピュータシステム。
【請求項19】
前記第1の階層モデルのリーフノード及び非リーフノードが、前記現状のI/O構成内のI/O要素を表し、前記第2の階層モデルのリーフノード及び非リーフノードが、前記あるべきI/O構成内のI/O要素を表し、並びに、前記構文変換ルールは1つのI/O構成内で各I/O要素に固有であり且つ特定の順序で適用される必要があってもよい、請求項15に記載のコンピュータシステム。
【請求項20】
チェックサム値が前記第1のハッシュ木表現と前記第2のハッシュ木表現との間で同じであるところの第2のハッシュ木表現の1以上のノードを刈り込む為のプログラム命令を更に含む、請求項15に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【0001】
1以上の観点は一般的に、コンピューティング環境内の処理を促進することに関し、特には、該コンピューティング環境内の処理を促進する為に、該コンピューティング環境のハードウェア及びソフトウェアのシステム入出力(I/O)再構成に応答して、該コンピューティング環境のシステムI/O構成を比較することに関する。
【背景技術】
【0002】
コンピューティング環境の構成は、該コンピューティング環境の様々なハードウェアコンポーネント及びソフトウェアコンポーネント、例えば、論理パーティション、入力/出力(I/O)構成、オペレーティングシステム等を包含するが、これらに限定されない上記の様々なハードウェアコンポーネント及びソフトウェアコンポーネント、を定義し且つアクティベーションすることを含む。該I/O構成は、階層的に構築されたコンピューティング環境のハードウェアコンポーネント及びソフトウェアコンポーネントの定義である。そのような構成定義を容易にする為に、製品が使用されうる。例えば、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ・コーポレーション(International Business Machines Corporation)が提供するハードウェア構成定義(HCD:Hardware Configuration Definition)製品は、該I/O構成を定義し且つアクティベーションする為に使用される。
【0003】
ハードウェア構成定義製品は、要素、例えばI/Oデバイス、を定義し且つそれらを論理パーティション及びオペレーティングシステムに接続して使用することを可能にするパネル駆動型のインタフェースを提供する。ハードウェア構成定義製品及び他のそのような製品はまた、一度構成されたコンピューティング環境を再構成する際に使用されうる。
【0004】
現在、定義された既存のI/O構成内の複数のI/O要素が再構成されるときに、所望のI/O構成がコンピューティング環境に適用される可能性がある前に、該所望のI/O構成が既存のI/O構成と比較される必要がある。しかしながら、変更を識別する為に、所望のI/O構成を既存のI/O構成と比較するプロセスは典型的に、該コンピューティング環境のファームウェアの一部としてリソースが制限された環境内で実行されるときに、計算量が多く且つリソースを必要とする。このプロセスに関連付けられた問題は、I/O構成の複雑さ及びサイズが増加するにつれて更に悪化する。
【発明の概要】
【課題を解決するための手段】
【0005】
先行技術の欠点が克服され、更なる利点が本発明の実施態様を通じて提供される。本発明の実施態様は、コンピューティング環境を現状の入力/出力(I/O)構成からあるべきI/O構成へと再構成する為の、方法、コンピュータプログラム製品及びコンピュータシステムを含みうる。1つの実施態様は、該現状のI/O構成の第1の階層モデル及び該あるべきI/O構成の第2の階層モデルを正規化することを含みうる。該第1の階層モデル及び該第2の階層モデルは各々、リーフノード及び非リーフノードの階層構造を備えている。正規化することは、該第1の階層モデル及び該第2の階層モデルにわたって構文的に一貫した様式でそれらの夫々のI/O構成が定義されるように、構文変換ルールを該第1の階層モデル及び該第2の階層モデルに適用することを含む。1つの実施態様は、該第1の階層モデルの第1のハッシュ木表現及び該第2の階層モデルの第2のハッシュ木表現を作成することを含みうる。該第1のハッシュ木表現のノードは、該第1の階層モデルのリーフノード及び非リーフノードの為に計算されたチェックサム値である。該第2のハッシュ木表現のノードは、該第2の階層モデルのリーフノード及び非リーフノードの為に計算されたチェックサム値である。該第1のハッシュ木表現のノード及び該第2のハッシュ木表現のノードは、該第1の階層モデルの該階層構造及び該第2の階層モデルの該階層構造を夫々反映する。1つの実施態様は、該第1のハッシュ木表現のルートノードと該第2のハッシュ木表現のルートノードまでチェックサム値が等しいところの該第1のハッシュ木表現及び該第2のハッシュ木表現の1以上のノードを刈り込むことを含みうる。
【0006】
コンピューティング環境を現状の入力/出力(I/O)構成からあるべきI/O構成へと再構成する為の、提案された該方法、コンピュータプログラム製品及びコンピュータシステムは、複数の利点及び技術的効果を提供する。例えば、内部プロセス(例えば、I/O構成比較)によって使用されないコンピューティング環境リソースは、解放され、そして、該コンピューティング環境のユーザに利用可能にしうる。等しいチェックサム値を有するサブ木のコンピューティング環境メモリは、安全に解放されうる。追加的に、I/O再構成要求のサイズが減少する故に、コンピューティング環境のネットワークトラフィックが減少する。その上、等しい親ノードのサブノード(例えば、I/Oサブ要素)の為の比較が必要ない故に、I/O構成のより高速な比較が達成される。
【0007】
以下において、本発明の概念の追加的な実施態様、すなわち、方法、コンピュータプログラム製品及びコンピュータシステムへの適用可能性が記載されるであろう。
【0008】
有利な実施態様に従うと、該現状のI/O構成は、現状の入力/出力定義ファイル(IODF:input/output definition file)によって定義され、及び該あるべきI/O構成は、あるべきIODFによって定義される。該現状のIODF及び該あるべきIODFの両方は、テーブルと相互参照とを有するリレーショナルデータベースに似たバイナリデータ構造を備えている。
【0009】
有利な実施態様に従うと、該第1の階層モデル及び該第2の階層モデルが、該現状のIODF及び該あるべきIODFに夫々基づく。ここで、階層モデルは、階層的に入れ子にされたリーフノード及び非リーフノードと、それらの間の1以上の相互参照とを含むテキストベースのJavaScriptオブジェクト表記法(JSON:JavaScript object notation)データ構造である。該リーフノード及び非リーフノードは、IODFのI/O要素を表す。階層モデルを導出することが、該IODFを繰り返し解析して、該IODFの中に含まれている複数のI/O要素(それらのプロパティを含む)を収集すること;該複数のI/O要素を、Java登録商標クラスによって定義されたドメインモデルに組み合わせること;並びに、該ドメインモデルをJSONデータ構造内にシリアライズすることを含む。
【0010】
有利な実施態様に従うと、該第1の階層モデルのリーフノード及び非リーフノードは、現状のI/O構成内のI/O要素を表す。該第2の階層モデルのリーフノード及び非リーフノードは、該あるべきI/O構成内の複数のI/O要素を表す。該構文変換ルールは、1つのI/O構成内で各I/O要素に固有であり且つ特定の順序で適用される必要があってもよい。
【0011】
有利な実施態様に従うと、該方法、該コンピュータプログラム製品、及び該コンピュータシステムは、チェックサム値が該第1のハッシュ木表現と該第2のハッシュ木表現との間で同じであるところの第2のハッシュ木表現の1以上のノードを刈り込むことを更に含みうる。
【0012】
有利な実施態様に従うと、該方法、該コンピュータプログラム製品、及び該コンピュータシステムは、該第1の階層モデルの該第1のハッシュ木表現と該第2の階層モデルの該第2のハッシュ木表現とを、該コンピューティング環境のメモリ内で持続させることを更に含みうる。
【0013】
1以上の観点が、添付の特許請求の範囲において、例として特に指摘され且つ明確に主張されている。上述された及び1以上の観点の、目的、特徴及び利点は、添付の図面と併せて以下の詳細な説明から明らかである。
【図面の簡単な説明】
【0014】
図1A図1Aは、本発明の1以上の観点を組み込み、そして使用する為のコンピューティング環境の1つの例を図示する。
図1B図1Bは、本発明の1以上の観点に従う、図1Aのコンピューティング環境の更なる詳細の1つの例を図示する。
図2図2は、本発明の1以上の観点に従う、ハードウェア構成を再構成する為にプルーナモジュール(pruner module)を使用する1つの例を図示する。
図3図3は、本発明の1以上の観点に従う、コンピューティング環境300の入力/出力定義ファイル310を図示する。
図4図4は、本発明の1以上の観点に従う、現状の入力/出力定義ファイル410とあるべき入力/出力定義ファイル420を図示する。
図5図5は、本発明の1以上の観点に従う、図2のプルーナモジュールの動作を示すフローチャート図である。
図6図6は、本発明の1以上の観点に従う、入力/出力定義ファイルから導出された結果として得られたJavaScriptオブジェクト表記法階層モデル600を図示する。
図7図7は、本発明の1以上の観点に従う、現状の入力/出力定義ファイルの一部の例示的な正規化700を図示する。
図8図8は、本発明の1以上の観点に従う、図7の該現状の入力/出力定義ファイルの正規化された階層モデルについて計算されたチェックサム値の一部800を図示する。
図9図9は、本発明の1以上の観点に従う、正規化された入力/出力定義ファイルのハッシュ木表現の一部を図示する。
図10図10は、本発明の1以上の観点に従う、図9の該正規化された入力/出力定義ファイルのハッシュ木表現の部分間の比較と変化の検出とを図示する。
図11図11は、本発明の1以上の観点に従う、図9の該ハッシュ木表現の刈り込まれたノードを図示する。
図12図12は、本発明の1つの観点に従う、I/O構成のJSON階層モデルと共に、該I/O構成の論理ビューを図示する。
図13図13は、本発明の1つの観点に従う、例示的なパーティションリネームシナリオ1300を図示する。
図14図14は、本発明の1つの観点に従う、例示的なパーティション追加シナリオ1400を図示する。
図15図15は、本発明1つの観点に従う、例示的なデバイス追加シナリオ1500を図示する。
【発明を実施するための形態】
【0015】
入力/出力(I/O)構成は、階層的に構造化されたコンピューティング環境のオペレーティングシステムに対して利用可能なハードウェアリソース及びソフトウェアリソースの1組、並びにこれらのリソース間の接続を定義する。1つのI/O構成を定義する際に、ハードウェアリソース及びソフトウェアリソースに関する物理的情報(例えば、タイプ、モデル)及び論理的情報(例えば、割り当てられたデバイス識別子)の両方が提供される。例えば、1つのI/O構成を定義する場合に、該コンピューティング環境の為の下記の要素のうちの1以上を指定しうる:オペレーティングシステム;難解なデバイスグループを有する適格デバイステーブル(EDT:eligible device table);1以上のプロセッサ;論理チャネルサブシステム;PCIe機能;パーティション;1以上のプロセッサ上のチャネル経路;該チャネル経路に取り付けられたスイッチ;該チャネル経路又はスイッチに取り付けられた制御ユニット;及び、1以上のサブチャネルセットにおける且つ該制御ユニットに接続されたI/Oデバイス。
【0016】
上述されているように、定義された構成内の複数のI/O要素が再構成される場合、所望の(あるべき)構成が該コンピューティング環境内でアクティベーションされる可能性がある前に、該所望の(あるべき)構成が分析され、そして、既存のベースラインである(現状の)構成と比較される必要がある。コンピューティング環境の複雑さが増すにつれて、対応するI/O構成定義が大きくなる可能性がある(例えば、数百MB)。その為に、I/O構成定義の解析及び比較(すなわち、I/O再構成)の為の現在の技術は、構成定義内の全てのI/O要素を解析し、そして、それらを通じてループし、関係を識別する必要があり、計算コストが高く且つリソースが集中する(すなわち、該コンピューティング環境内でプロセッサ及びメモリの利用を必要とし、ネットワークトラフィックを生じる)。この問題は、I/O構成比較が典型的に、コンピューティングシステムのファームウェアの一部として、リソースが制限された環境内で実行されることを考えると、該コンピューティングシステムにとって、ますます時間がかかり、そして不利になる。
【0017】
例として、大規模な現状のI/O構成定義に対して、あるべきI/O構成定義によって表される少量の増分I/O構成変更からなる再構成が提案される企業シナリオを考える。そのようなシナリオにおいて、あるべきI/O構成定義がコンピューティング環境内で実装(すなわち、アクティベーション)される可能性がある前に、該再構成から結果として生じる変更を識別する為に、あるべきI/O構成が現状のI/O構成と比較されなければならない。その結果、必要なアクションが少量であるにもかかわらず(すなわち、少量の増分I/O構成変更)、コンピューティング環境によるI/O構成の解析及び比較に、かなりの処理時間が費やされる。その上、あるべきI/O構成と現状のI/O構成との比較を行う際に、不必要な情報(例えば、現状の I/O構成と対応するあるべきI/O構成の完全モデルは、大部分が類似し、且つわずかな増分構成変更のみを反映し、現状のI/O構成の一部とあるべきI/O構成の一部は同じである)が、該コンピューティング環境のメモリ内に記憶され、従って、貴重なストレージ空間を使用する。その上、両方のI/O構成(現状のI/O構成及びあるべきI/O構成)は、アクティベーションされるべきコンピューティング環境の内部ネットワークを介して送信される必要があり、従って、かなりの量のネットワークトラフィックを発生する。
【0018】
I/O再構成に起因するI/O構成定義比較の為の現在の技術に関連付けられた上記の問題に応じて、本発明の実施態様は、2つのI/O構成定義(例えば、現状のI/O構成及びあるべきI/O構成)を並べて比較し、そして、2つのI/O構成定義のうちの1以上の要素を選択的に刈り込む(すなわち、削除する)ことによってI/O再構成を実装し、それによって、コンピューティング環境内でリソース消費及び実行時間を改善する為の新規且つ有利なアプローチを提案する。より具体的には、本発明の実施態様を通じて開示されている新規且つ有利なアプローチは、比較を容易にする為に各I/O構成定義の階層モデルを作成すること;各構成についての完全なモデルをメモリ内に保持する必要無しにI/O構成を反復処理すること;2つのI/O構成間の差をより速く決定する為にチェックサム機構を利用すること;及びアクティベーションの為にコンピューティング環境の内部ネットワーク上にチェックサム値を送る前に、1以上のI/O構成を該チェックサム値に基づいて選択的に刈り込むことを含む。
【0019】
本発明の1以上の観点は、システム再構成、例えば、コンピューティング環境内の動的ハードウェア再構成、に関連する。動的ハードウェア再構成は、コンピューティング環境のハードウェアコンポーネント及びソフトウェアコンポーネント、例えば、論理パーティション、制御ユニット、入力/出力(I/O)デバイス、オペレーティングシステム等、を、初期プログラムロード(IPL:initial program load)又はパワーオンリセット(POR:power on reset)を必要とすること無しに再構成されることを可能にする。
【0020】
本発明の1以上の観点を組み込み且つ使用する為のコンピューティング環境の1つの実施態様は、図1Aを参照して記載されている。一つの例において、該コンピューティング環境は、z/Architecture登録商標ハードウェアアーキテクチャに基づき、その例は、“z/Architecture Principles of Operation,” IBM Publication No.SA22-7832-12,13th edition,September 2019と題する出版物において記載されている。しかしながら、z/Architecture登録商標ハードウェアアーキテクチャは、1つの例示的なアーキテクチャに過ぎず、記憶されたI/O構成定義を利用する他のアーキテクチャ若しくは他のタイプのコンピューティング環境又はそれらの組み合わせは、本発明の1以上の観点を含む若しくはそれらを使用する又はそれらを含み且つ使用しうる。
【0021】
一つの例において、コンピューティング環境100は、中央処理装置複合体102を備えており、その1つの例は、特定の例として、1以上のIBM z15商標システムを備えているIBM Z登録商標中央処理装置複合体である。他の中央処理装置複合体若しくは同じ或いは他のハードウェアアーキテクチャに基づく他のシステム又はそれらの組み合わせがまた、本発明の1以上の観点を組み込み、そして使用しうる。IBM登録商標,z/Architecture登録商標、IBM登録商標 Z登録商標、及びIBM登録商標 z15登録商標は、少なくとも1つの法域におけるインターナショナル・ビジネス・マシーンズ・コーポレーション(International Business Machines Corporation)の商標又は登録商標である。一つの例として、中央処理装置複合体102は、例えば、1以上のプロセッサ(別名、中央処理装置(CPU:central processing unit))106に接続されたメモリ104(別名、システムメモリ、メインメモリ、メインストレージ、中央ストレージ、ストレージ)、及び入力/出力サブシステム108を備えており、これらの各々は以下で更に記載されている。
【0022】
メモリ104は、例えば、1以上の論理パーティション110、該論理パーティションを管理するハイパーバイザー112、プロセッサファームウェア114を備えている。ハイパーバイザー112の一つの例は、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ・コーポレーションによって提供されるプロセッサリソース/システムマネージャ(Processor Resource/System Manager)(PR/SM商標)ハイパーバイザーである。本明細書において使用される場合に、ファームウェアは例えば、プロセッサのマイクロコードを含む。それは例えば、より高いレベルのマシンコードの実装において使用されるハードウェアレベルの命令若しくはデータ構造又はそれらの組み合わせを備えている。1つの実施態様において、例えば、信頼できるソフトウェア又は基礎となるハードウェアに固有のマイクロコードを含み且つシステムハードウェアへのオペレーティングシステムのアクセスを制御するところのマイクロコードとして典型的に配信される専有コードを備えている。PR/SMは、少なくとも1つの法域におけるインターナショナル・ビジネス・マシーンズ・コーポレーションの商標又は登録商標である。
【0023】
各論理パーティション110は、オペレーティングシステム(例えば、O/S 1- O/S 3)116、例えばz/OS登録商標オペレーティングシステム、又は他のオペレーティングシステムを実行することができ、異なるプログラム(例えば、App.A~App.F)118で動作することができる。z/OS登録商標は、少なくとも1つの法域におけるインターナショナル・ビジネス・マシーンズ・コーポレーションの商標又は登録商標である。
【0024】
メモリ104は、論理パーティションに割り当てられていてもよい物理プロセッサリソースであるプロセッサ(例えば、CPU 0~CPU n)106に接続される。例えば、論理パーティション110は、1以上の論理プロセッサを備えており、各プロセッサは、該論理パーティションに動的に割り当てられうる物理プロセッサリソース106の全て又はその一部を表す。
【0025】
更に、メモリ104は、I/Oサブシステム108に接続される。I/Oサブシステム108は、中央処理装置複合体の一部であってもよく、又はそれとは別個のものであってもよい。それは、メインストレージ104と、該中央プロセッサ複合体に接続された入力/出力制御ユニット120若しくは入力/出力(I/O)デバイス122又はそれらの組み合わせとの間の情報の流れを指示する。
【0026】
多くのタイプのI/Oデバイス122が使用されうる。ある特定のタイプは、データストレージデバイス130である。データストレージデバイス130は、1以上のプログラム132、1以上のコンピュータ可読プログラム命令134、若しくはデータ又はそれらの組み合わせ等を記憶しうる。該コンピュータ可読プログラム命令は、本発明の観点の実施態様の機能を実行するように構成されうる。
【0027】
中央処理装置複合体102は、取り外し可能/取り外し不可能、揮発性/不揮発性のコンピュータシステム記憶媒体を備えており若しくはそれらに接続されており又はそれらを備えており且つ接続されている。例えば、中央処理装置複合体102は、取り外し不可能な不揮発性の磁気媒体(典型的には、「ハードディスク」と呼ばれる)、取り外し可能な不揮発性の磁気ディスク(例えば、「フロッピーディスク」)から読み取り且つそれに書き込む為の磁気ディスクドライブ、若しくは取り外し可能で不揮発性の光学ディスク、例えば、CD-ROM、DVD-ROM或いは他の光学媒体、から読み取り且つそれに書き込む為の光ディスクドライブ、又はそれらの組み合わせを備えており若しくはそれらに接続されており又はそれらを備えており且つ接続されている。他のハードウェアコンポーネント若しくはソフトウェアコンポーネント又はそれらの組み合わせが、中央処理装置複合体102と組み合わせて使用されることができることが理解されるべきである。例は、マイクロコード、デバイスドライバ、冗長処理ユニット、外部ディスクドライブアレイ、RAIDシステム、テープドライブ、及びデータアーカイブストレージシステム等を包含するが、これらに限定されない。
【0028】
その上、中央処理装置複合体102は、多数の他の汎用目的又は特殊目的のコンピューティングシステム環境又は構成で動作可能でありうる。中央処理装置複合体102と共に使用する為に適していてもよい周知のコンピューティングシステム、環境、若しくは構成又はそれらの組み合わせの例は、パーソナルコンピュータ(PC:personal computer)システム、サーバコンピュータシステム、シンクライアント、シッククライアント、ハンドヘルドデバイス又はラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースシステム、セットトップボックス、プログラム可能な家電、ネットワークPC、ミニコンピュータシステム、メインフレームコンピュータシステム、及び上記の任意のシステム又はデバイスを備えている分散型クラウドコンピューティング環境等を包含するが、それらに限定されない。
【0029】
コンピューティング環境、例えばコンピューティング環境100、の1つの実施態様に関する更なる詳細が、図1Bを参照して説明される。1つの実施態様において、入力/出力(I/O)サブシステム108は、1以上のオペレーティングシステム(例えば、オペレーティングシステム116)からチャネルプログラム内のコマンドを受信するチャネルサブシステム150である。チャネルプログラムは、1以上のチャネルコマンドワード(CCW:channel command word)を含み、及び各チャネルコマンドワードは、データ通信において使用する為のコマンド(例えば、読み取り、書き込み、制御)及びデータアドレスを含む。該チャネルサブシステムは、該コマンドを、例えばチャネル152を介して、該コンピューティング環境の1以上の通信コンポーネントに、例えば、1以上のスイッチ154に、転送し、それらは、1つの例において、1以上の制御ユニット120に接続される。該1以上の制御ユニットは、1以上のI/Oデバイス122に接続される。該1以上のスイッチは、該コマンドに基づいて、要求された情報を、例えば、1以上のI/Oデバイス122から取得し、そして、結果を1以上のオペレーティングシステムに戻す。
【0030】
1以上の観点に従って、コンピューティング環境、例えば、コンピューティング環境100、は、例えば、1以上のI/O要素、例えば、論理パーティション、1以上の制御ユニット若しくは1以上のデバイス又はそれらの組み合わせ、を追加、変更、若しくは削除、又はそれらを組み合わせて実行することによって動的に再構成されうる。ハードウェア再構成を実行する為に、1つの例において、図2を参照して記載されているように、ハードウェア構成定義が使用される。
【0031】
図2に示されているように、1つの例において、ハードウェア構成定義(HCD)製品200が、オペレーティングシステム、オペレーティングシステム116(例えば、z/OS登録商標オペレーティングシステム)上で実行される。ハードウェア構成定義製品200は、コンピューティング環境(例えば、コンピューティング環境100)の1以上のサーバ(例えば、IBM Z登録商標サーバ)及びそのオペレーティングシステムのI/O構成を定義及び起動する為に使用される。例えば、ハードウェア構成定義製品200は、ストレージシステムからの要素、例えばI/Oデバイス、を定義し、そして、それらをパーティション及びオペレーティングシステムに接続して、一連の他の複数のI/O要素上でそれらの使用を可能にする。該複数のI/O要素を定義する構成は、バイナリデータ構造内に記憶されうる。例えば、ハードウェア構成定義製品200の出力は、コンピューティング環境(例えば、コンピューティング環境100)のハードウェア構成データとソフトウェア構成データとの両方を含む入力/出力定義ファイル(IODF)である。IODFは、テーブルと相互参照とを有するリレーショナルデータベースに似たバイナリデータ構造として表されてもよく、メモリ使用の為に最適化されていてもよく、及びオペレーティングシステムに対して複数のハードウェア構成及びソフトウェア構成を定義しうる。例えば、IODFは、I/O構成に関する情報、例えば、オペレーティングシステムデータ、スイッチデータ、デバイスデータ、プロセッサデータ、パーティションデータ、チャネル経路データ、制御ユニットデータ、及びチャネルサブシステムデータ、を含みうる。例示として、図3は、論理的に表されたコンピューティング環境300のIODF 310を図示する。IODF 310は、別々のチャネル・パスを介して複数の制御ユニット(CU)及びI/Oデバイス(I/O Dev)間でパーティション(P)の割り当てを記述/定義する。ハードウェア構成定義製品200がIODF(例えば、IODF 310)をアクティベーションするときに、チャネルサブシステム又はオペレーションシステム、又はそれらの両方にI/O構成を定義する。
【0032】
所望の(あるべき)I/O構成(例えば、あるべきIODF)をアクティベーションする場合、変更を識別する為に、そこで定義されたI/O要素が分析され、そして、ベースライン(現状の)I/O構成(例えば、現状のIODF)と比較される必要がある。例示として、図4は、現状のIODF 410及びあるべきIODF 420を図示する。現状のIODF 410は、図3のコンピューティング環境300を定義し得、及びあるべきIODF 420は、図3のコンピューティング環境300に対する変更(太字の黒バイナリテキストによって表される)を定義しうる。あるべきIODF 420によって定義される変更は、コンピューティング環境400によって論理的に図示され、パーティションの追加(Pa)と制御ユニットの削除(CUd)とを含む。しかしながら、あるべきIODF 420がアクティベーションの為に送信される可能性がある前に、コンピューティング環境400によって図示されたI/O構成における変更(すなわち、Paの追加とCUdの削除)が識別されうるように、あるべきIODF 420は、現状のIODF 410と比較されなければならない。
【0033】
1つの例において、ハードウェア構成定義製品200は、該コンピューティング環境の複数のI/O要素の定義を容易にするパネル駆動型インタフェースであり、及びサポート要素204上で実行されるインタフェース、例えばHCDサポート要素(SE:support element)インタフェース202、と通信を行う。サポート要素204は例えば、該中央処理装置複合体に接続されたノートブック又はサーバである。それは、中央処理装置複合体の一部であってもよく、又はそれとは別個のものであってもよい。HCDサポート要素インタフェース202は例えば、サービス、例えば、内部ファームウェアパーティション(例えば、プロセッサファームウェア114)上で実行されるアクティベーションサービス210、と通信するコマンドラインインタフェースである。
【0034】
1つの例示的な実施態様において、プルーナモジュール203は、2つのIODF(例えば、現状のIODF及びあるべきIODF)を並べて比較し、そして、2つのIODFのうちの1以上からの要素を選択的に刈り込み、それによってコンピューティング環境内のリソース消費及び実行時間を改善する為にプログラム又はプログラム内に含まれるサブルーチンでありうる。より具体的には、プルーナモジュール203は、例示的な実施態様において、比較を容易にする為に各IODFの階層モデルを作成し得;各IODFの為の完全なモデルをメモリ内に保持する必要無しにIODFを反復処理し得;2つのIODF間の差をより速く決定する為にチェックサム機構を利用し得;及びアクティベーションの為にコンピューティング環境の内部ネットワーク上にチェックサム値を送る前に、1以上のIODFから、複数のIO要素に対応する1以上の部分を該チェックサム値に基づいて選択的に刈り込みうる。例示的な実施態様において、プルーナモジュール203は、サポート要素204上で実行され、HCDサポート要素(SE)インタフェース202を介してハードウェア構成定義製品200と通信し、内部ファームウェアパーティション(例えば、プロセッサファームウェア114)上で実行されるサービス、例えばアクティベーションサービス210、と通信する。別の実施態様において、プルーナモジュール203は、ハードウェア構成定義製品200内に統合され、そして、オペレーティングシステム、例えばオペレーティングシステム116(例えば、z/OS登録商標オペレーティングシステム)、上で実行されうる。プルーナモジュール203の動作及び機能の1つの例は、図5に関して以下で更に詳細に記載されている。
【0035】
該アクティベーションサービスは、1つの実施態様において、要求されたI/O構成変更(例えば、あるべきIODF内で定義された構成変更)を少なくとも開始する為に使用される。例えば、1つの例において、該アクティベーションサービスは、チャネルサブシステム(例えば、チャネルサブシステム150)に対してコール(例えば、チャネルサブシステムコール(CHSC:channel subsystem call))を行い、個々の変更、例えば、パーティションを定義すること、チャネル、制御ユニット若しくはI/Oデバイス又はそれらの組み合わせの追加/修正/削除、を実行し、そして、ハードウェアストレージエリア220内にI/O構成変更に関する情報を保存する。様々なI/O構成変更が例として提供されているが、本発明の観点から逸脱すること無しに、他の多くのI/O構成変更が行われうる。
【0036】
1つの実施態様において、システムのI/O構成を変更する為に、システム管理者は、一連の準備工程を進める。その後、動的なハードウェアアクティベーションフェーズが開始され、その間に、I/O構成(現状のI/O構成及びあるべきI/O構成)が内部ネットワークを介して送信されて、アクティベーションされ、そして、システム管理者は、コンピューティング環境のリソース制約及び再構成の観点(例えば、I/O変更の量、IODFのサイズ)に応じて、現在は数時間、更には数日、かかる可能性のある完了を待つ。従って、本発明の1つの観点に従って、2つのI/O構成(例えば、2つのIODF)を並べて比較し、それによって、サービス、例えばアクティベーションサービス210、を介して、アクティベーションの為に送信し、例えば、ハードウェアストレージエリア220内に記憶する前に、I/O構成の一方又は両方内の要素を選択的に刈り込むことによって、リソース(例えば、CPU及びメモリ)消費を低減し、そして、コンピューティング環境内の実行時間(例えば、アクティベーション時間)を向上させるシステムI/O再構成に対する優位なアプローチが示されている。
【0037】
本発明の利点は、I/O再構成に関連するコンピューティング環境の内部プロセスによって使用されないリソースが解放され、使用の為に利用可能になることである。本発明の別の利点は、要求されたI/O構成のサイズの減少(例えば、より小さなIODFファイルの送信)の結果として、I/O再構成に関連する減少されたネットワークトラフィックである。比較を通じて等しいと判断されたI/O構成の部分は、該ネットワークを介して一度だけ送信されてもよく又は全く送信されなくてもよい。本発明の別の利点は、比較を通じて等しいと判断されたI/O構成内の要素がメモリ内に記憶される必要がない故に、該コンピューティング環境内のメモリ消費が低減されることである。本発明の更に別の利点は、I/O構成間の対応するサブ要素の比較は、I/O構成間の対応するサブ要素の対応する親要素が比較を通じて等しいと判断された場合に実行される必要がない故に、I/O構成のより早い比較(例えば、あるべきIODF及び現状のIODFの比較)である。
【0038】
本明細書において、システム管理者が構成/再構成を管理するものとして記載されているが、他の実施態様において、それは、他の管理者、ユーザ、又は再構成変更を決定するように、準備工程を実行するように、メンテナンスをスケジュールするように構成されているコンピューティングシステム若しくはコンポーネント等でありうる。
【0039】
図5は、本発明の例示的な実施態様に従うプルーナモジュール203の動作を図示するフローチャート図を示す。例示的な実施態様において、1以上のI/O構成変更は、システム管理者によって、又はコンピューティング環境(例えば、コンピューティング環境100)内の処理に基づいてプロセッサによって自動的に開始されうる。1以上のI/O構成変更は、コンピューティング環境の現状の構成を定義する現状のIODFによって定義される第1のI/O構成に対するアクティベーションの為に提案される、あるべきIODFによって定義される第2のI/O構成内に含まれうる。その上、例示的な実施態様において、コンピューティング環境の為の現状のIODF及びあるべきIODFの両方は、ハードウェア構成定義製品200を使用して定義されうる。
【0040】
工程S510を参照すると、例示的な実施態様において、プルーナモジュール203は、現状のIODF及びあるべきIODFの為に作成された階層モデルを正規化する。このプロセスの一部として、プルーナモジュール203は、現状のIODFに基づく第1の階層モデル及びあるべきIODFに基づく第2の階層モデルを作成する。各IODFは、コンピューティング環境のI/O構成-そこで定義された複数のI/O要素、並びにそれらの関係及び属性の記述を含み、並びに複数のシステム及び潜在的なI/O構成にまたがることができる。上述されているように、IODFの内部構造は、テーブルと相互参照とを有するリレーショナルデータベースに似ている。階層モデルを導出する為に、IODFファイルはテキストベースのJavaScriptオブジェクト表記法(JSON:JavaScript Object Notation)データ構造へと変換されてもよく、それは、IODFによって定義されたコンピューティング環境I/O構成内の複数のI/O要素を表すリーフノードと非リーフノードとを含む階層的に入れ子にされたデータ構造である。IODFの複数のI/O要素をリーフノードと非リーフノードに階層的に入れ子にして、それらの間に1以上の相互参照を設けることによって、そのような構造は、該複数のI/O要素の階層的な性質を本質的に捉えている。IODFから階層モデルへの変換は、一連の処理工程において実現される。まず、該IODFが解析され/読み込まれ、そして、調査対象となるコンピューティング環境に関連する、該IODFの中に含まれている全ての複数のI/O要素(それらのプロパティを含む)が、IODFを繰り返し処理する順序で収集される。次に、該複数のI/O要素が、Java登録商標クラスによって定義されたドメインモデルに組み合わされる。最後に、該ドメインモデルはJSONデータ構造内にシリアライズされる。
【0041】
例示として、図6は、IODFから導出された、結果として得られるJSON階層モデル600、例えば、例示の実施態様におけるコンピューティング環境の現状のIODFから導出された階層モデル、を図示する。吹き出し601に示されているように、結果として得られるJSON階層モデル600の複数のI/O要素(すなわち、パーティション、サブチャネルセット)は、それらのプロパティと共に階層的に入れ子にされている。図示されていないが、例示的な実施態様において、JSON階層モデルは、あるべきIODFについて同様に導出される。JSON形式は1つの例示的なデータ構造に過ぎず、他のオブジェクト表記/構文(例えば、拡張マークアップ言語(XML:Extensible MarkupLanguage))が階層モデルを導出する為に使用されうることに留意されるべきである。
【0042】
工程S510を続けると、例示的な実施態様において、プルーナモジュール203は、現状のIODFの為に作成された階層的モデル及びあるべきIODFの為に作成された階層的モデルを正規化する。正規化工程の目標は、IODFの各階層モデル表現(例えば、現状のIODF及びあるべきIODFの為の階層モデル)内に含まれている様々なI/O要素を解析し、そして、各階層モデルが依然として夫々のI/O構成を表すが、該2つの階層モデルにわたって構文的に一貫した様式で定義されているように、該各階層モデルに種々の構文変換ルールを適用することである。異なるタイプのI/O構成要素は、1以上の異なる種類の変換ルールを要求しうる。構文変換ルールは、ハードウェア構成における各I/O要素に固有のものであり、且つ特定の順序で適用される必要がありうる。
【0043】
例えば、I/O構成プロパティの順序が変更される必要がありうる。1つのI/O構成要素では、「id」プロパティを指定し、その後に「name」プロパティを指定しうるが、同等の構成では、最初に、指定された「name」を有しうる(その後に「id」が続く)。加えて、プロパティの値は変換を必要としうる。例えば、3つのパーティションidのリストは、「1、2、3」又は「2、3、1」(すなわち、3つのパーティションという同じセマンティクスを持つ2つの構文表現)によって記述される可能性がある。また、「1、2、3-8」は「1-8」と等価である故に、連番のグループ化がまた必要でありうる。例示的な実施態様において、以下の適切な比較の為に、現状のIODFとあるべきIODFとの為に作成された階層モデル間の正規化が必要である。
【0044】
例示として、図7は、図6の現状のIODFの階層モデルの一部の例示的な正規化700を図示する。現状のIODFの正規化前の階層モデル701のパーティションプロパティ及びサブチャネルプロパティはソートされ、そして、再グループ化されて、現状のIODFの正規化された階層モデル702を結果として生じる。具体的には、パーティションプロパティ701Aは、数値的に増加する順序でパーティションidをリスト化するようにソートされ、正規化されたパーティションプロパティ702Aを結果として生じる。加えて、サブチャネルプロパティ701Bは、別々にリスト化されたパーティションを組み合わせるようにグループ化され、正規化されたサブチャネルプロパティ702Bを結果として生じる。図示されていないが、例示の実施態様におけるあるべきIODFの正規化された階層モデルは、パーティションプロパティ及びサブチャネルプロパティをソートすること及び再グループ化することの同様の様式を反映するであろう。
【0045】
工程S520を参照すると、例示的な実施態様において、プルーナモジュール203は、現状のIODFの正規化された階層モデルについての第1のハッシュ木表現と、あるべきIODFの正規化された階層モデルについての第2のハッシュ木表現とを作成する。このプロセスの一部として、プルーナモジュール203は、現状のIODF及びあるべきIODFの正規化された階層モデルについて、リーフの情報に基づいて全てのリーフのノードについて、及び該ノード及び該ノードの子の情報に基づいて全ての非リーフのノードについて、チェックサム値を計算する。該チェックサム値は、JSONデータ構造の階層構造に従って計算される。より具体的には、1つのルート要素と2つの子要素を持つJSON階層モデルを有するI/O構成例において、全ての個々のノード(すなわち、ルートノード及び子ノード)についてチェックサム値が算出される。その上、ルート要素それ自体がサブ木である故に、子要素を含むルートについてのチェックサム値が算出される。例示として、図8は、現状のIODFの正規化された階層モデルのリーフノード及び非リーフノードについて、例えばセキュアハッシュアルゴリズム(SHA:Secure Hash Algorithm)-3を使用して計算されたチェックサム値の一部800を図示する。図示されていないが、例示の実施態様におけるあるべきIODFの正規化された階層モデルの為のチェックサム値がまた計算される。
【0046】
工程S520に続いて、上述されたリーフノード及び非リーフノードの為のチェックサム値計算に応答して、現状のIODFの正規化された階層モデルについての第1のハッシュ木表現と、あるべきIODFの正規化された階層モデルについての第2のハッシュ木表現が作成される。該作成されたハッシュ木表現のノードは、夫々の階層モデルについて算出されたチェックサム値であり、及び夫々の階層モデルの論理的な階層依存関係(例えば、リーフノード及び非リーフノード)を反映する。その上、ルートにおける各ハッシュ木表現は、類似のサブ木と比較する為に、該サブ木についてのチェックサム値を含み、その個々のチェックサム値への参照及び子ノードのチェックサム値への参照を有する。例示として、図9は、正規化された現状のIODF 910のハッシュ木表現の一部と、正規化されたあるべきIODF 920のハッシュ木表現の一部とを図示する。ハッシュ木表現910及び920は夫々、例示的な実施態様の正規化された現状のIODF及び正規化されたあるべきIODFの為に作成され、及びそれらに基づいて作成されてもよい。
【0047】
代替的な実施態様において、正規化された階層モデルによって表されるI/O構成についてのチェックサム値が一旦計算されると、同じI/O構成に対するあるべき比較において、そのI/O構成が正規化及びチェックサム計算処理を再び経る必要がないように、チェックサムされたI/O構成はシステムメモリ内に持続されうる(又はキャッシュされうる)。
【0048】
工程S530を参照すると、例示的な実施態様において、プルーナモジュール203は、第1のハッシュ木表現と第2のハッシュ木表現との間のチェックサム値比較に基づいて、現状のIODFの正規化された階層モデルについての第1のハッシュ木表現及びあるべきIODFの正規化された階層モデルについての第2のハッシュ木表現の1以上のノードを刈り込む(つまり、削除する)。このプロセスの一部として、プルーナモジュール203は、現状のIODFの正規化された階層モデルについてのハッシュ木表現の計算されたチェックサム値を、あるべきIODFの正規化された階層モデルについてのハッシュ木表現の計算されたチェックサム値と比較する。正規化された現状のIODF及び正規化されたあるべきIODFのハッシュ木表現は、それらハッシュ木の比較が階層的にトラバースされ、そして、チェックサム値が一致する最上位レベルにおいて停止することができる故に、それらの夫々の構成データを迅速に比較することを可能にする。
【0049】
例示として、図10は、例示的な実施態様の正規化された現状のIODF 910のハッシュ木表現の部分と正規化されたあるべきIODF 920のハッシュ木表現の部分との間の比較、及び変化の検出を図示する。図10において示されているように、正規化された現状のIODF 910のハッシュ木表現におけるチェックサム値「25a2b7fe23a...」を有するノードの値は、正規化されたあるべきIODF 920のハッシュ木表現において「22314aa8901f...」に変更されている。また、正規化された現状のIODF 910のハッシュ木表現における「7a49b32cf39b...」のチェックサム値を有するノードの値は、正規化されたあるべきIODF 920のハッシュ木表現において「ffe910400dea...」に変更されている。プルーナモジュール203は、比較を非等価なノードに制限しうる。例えば、本発明の1つの観点に従うと、図10において図示されたハッシュ木の比較は、この非リーフノード、及びその夫々のリーフノードが、正規化された現状のIODF 910のハッシュ木表現及び正規化されたあるべきIODF 920のハッシュ木表現の両方において同じチェックサム値を有する故に、「954ac65ef12b...」のチェックサム値を有する非リーフノードにおいて停止しうる。
【0050】
工程S530を続けると、例示的な実施態様において、プルーナモジュール203は、上述されたチェックサム値の比較に基づいてハッシュ木表現の1以上のノードを刈り込む(すなわち、削除する)。より具体的には、プルーナモジュール203は、チェックサム値がハッシュ木表現のルートノードまで等しい両方のハッシュ木表現におけるハッシュ木情報を削除してもよく、さもなければプルーナモジュール203は、一方のハッシュ木表現のみ(例えば、あるべきIODFの正規化された階層モデルのハッシュ木表現)においてハッシュ木情報を削除してもよい。現状のIODF及びあるべきIODFは、それらの夫々の正規化された階層モデルの夫々のハッシュ木表現においてなされた削除を反映するように更新されてもよい。その上、プルーナモジュール203は、サービス、例えばアクティベーションサービス210、を介してアクティベーションの為に更新されたあるべきIODFを送信してもよい。該更新された現状のIODF、若しくは元の現状のIODF、又はそれらの組み合わせはまた、該あるべきIODFによって定義される変更の為のコンテキストを提供する為に、該更新されたあるべきIODFと共に送信されうる。例示的な実施態様において、プルーナモジュール203は、1以上のノードのチェックサム値が正規化された現状のIODFのハッシュ木表現と正規化されたあるべきIODFとの間で同じであるところの少なくとも1つのハッシュ木表現(例えば、該あるべきIODFのハッシュ木表現)内の1以上のノードを刈り込む。本発明の1つの観点に従うと、現状のIODFのハッシュ木表現とあるべきIODFのハッシュ木表現との間の比較は、ハッシュ木の対応するノードが一致するチェックサム値を有するところで停止しうるだけでなく、更に、これらのハッシュ木表現の間のチェックサム値の一致は、一致するチェックサム値によって表されるI/O構成データに関して、あるべきIODFが現状のIODFと異ならないことを意味する故に、一致するチェックサム値によって表されるI/O構成データ(例えば、I/O要素)はシステムメモリ内に保持される必要はない。
【0051】
例示として、図11は、例示的な実施態様の、現状のIODF 910のハッシュ木表現の刈り込まれたノード及びあるべきIODF 920のハッシュ木表現の刈り込まれたノードを図示する。図11において示されているように、同じチェックサム値を有する夫々のハッシュ木のノードは刈り込まれ(すなわち、削除され)、一方、異なるチェックサム値を有する夫々のハッシュ木のノードは維持される。本発明の1つの観点に従うと、プルーナモジュール203は、ルート(すなわち、親)ノードまで、等しい夫々のチェックサム値(例えば、ハッシュ値)があることを条件に、現状のIODF 910及びあるべきIODF 920の両方のハッシュ木表現のみを刈り込みうる。そうでなければ、双方向の親及び子の依存関係により、1つのハッシュ木表現のみが刈り込まれうる。例えば、図11において、「954ac65ef12b...」のチェックサム値を有する親ノードが、夫々の子ノードと共に、現状のIODF及びあるべきIODFの両方において刈り込まれる。例示的な実施態様において、図5に関して記載されたプルーナモジュール203の動作に従って、一旦、あるべきIODFが比較され、そして刈り込まれると、次に、該あるべきIODFは、アクティベーションサービス、例えばアクティベーションサービス210、を介してアクティベーションの為に送信されうる。
【0052】
図12図13図14及び図15は、本発明の観点に従った例示的なシナリオを図示する。図12を参照すると、例示的なI/O構成の論理ビュー1210が、例示的なI/O構成の対応するJSON階層モデル1220と共に示されている。JSON階層モデルの部分は、メタ情報1221、アダプタ1222、パーティション1223、及びパーティションと接続されたチャネル経路1224を備えている。図13を参照すると、例示的なパーティションリネームシナリオ1300が図示されている。左側に示されているJSON階層モデルは、図12からのJSON階層モデル1220であり、及び現状のIODFを表す。右側に示されているJSON階層モデル1320は、パーティションについての変更された名前属性を有するあるべきIODFを表す。セクション1321は、JSON階層モデル1220とJSON階層モデル1320との間の変更点を備えている。具体的には、JSON階層モデル1220内のname(名前)属性が「OLD」(古い)のパーティションは、JSON階層モデル1320内のname(名前)属性が「NEW」(新しい)にリネームされている。その上、図13において示されているように、あるべきIODF 1320の部分は、左側の現状のIODF 1220からの何からの変更を反映していない故に、プルーナモジュール203によって刈り込み可能である(すなわち、これらの部分についてのハッシュ木表現のチェックサム値は同じであろう)。この例示的なシナリオにおいて、あるべきIODF 1320の対応する部分と同じである現状のIODF 1220の部分は、あるべきIODF 1320に反映される変更についてのコンテキストを提供するように刈り込まれない。図14を参照すると、1つのI/O構成へのパーティション追加シナリオ1400の例が示されている。該I/O構成の現状のJSON階層モデル1410が左側に図示され、及び該I/O構成のあるべきJSON階層モデル1420が右側に図示されている。セクション1421は、現状のJSON階層モデル1410とあるべきJSON階層モデル1420との違い、具体的には、属性「id」:3及び「name」を持つパーティションの追加:「NEWNEW」を反映する。プルーナモジュール203によって刈り込み可能な現状のIODF及びあるべきIODFの部分がまた識別される。図15を参照すると、1つのI/O構成への例示的なデバイス追加シナリオ1500が示されている。該I/O構成の現状のJSON階層モデル1510が左側に図示され、及び該I/O構成のあるべきJSON階層モデル1520が、第2のデバイスの追加を反映する中央部分に図示される。具体的には、あるべきJSON階層モデル1520のセクション1521内で、該追加された第2のデバイスを考慮して、デバイス数プロパティ(devices count property)が(現状のJSON階層モデル1510の対応するセクション1511における3から)6に増加している。加えて、あるべきJSON階層モデル1520と意味的に等価である、別のあるべきJSON階層モデル1520-1が右側に図示されている。JSON階層モデル1520-1は、JSON階層モデル(例えば、あるべきJSON階層モデル1520)が、異なる、しかし意味的に等価な様式で表現されることができることを説明する為に図示されている。例えば、図15のセクション1521及び1521-1は、同じ2つのデバイスを記述しているという点で意味的に等価であるが、該デバイスは、セクション1521においてグループ化され、そして、セクション1521-1において分離されている。プルーナモジュール203によって刈り込み可能な1510、1520及び1520-1の部分がまた識別される。
【0053】
本発明の1以上の観点は、コンピュータ技術と密接に結び付き、及びコンピューティング環境内の処理を容易にする。2つのI/O構成を並べて比較することを通じて再構成を検出し、そして、アクティベーションの前に少なくとも1つのI/O構成の一部を選択的に刈り込むことによって、再構成されているシステムのプロセス及び実行時間を改善する能力が提供される。これにより、システムリソース消費及びシステム性能が改善される。
【0054】
様々な実施形態が本明細書において記載されているが、本発明の範囲から逸脱すること無しに多くの変形及び他の実施形態が可能である。矛盾しない限り、本明細書において記載された各観点又は特徴、及びそれらの変形は、任意の他の観点又は特徴と組み合わせられてもよいことが留意されるべきである。
【0055】
本発明は、統合の在りうる任意の技術的詳細レベルでの、システム、方法若しくはコンピュータプログラム製品又はそれらの組み合わせでありうる。該コンピュータプログラム製品は、プロセッサに本発明の観点を実行させる為のコンピュータ可読プログラム命令を有する1以上のコンピュータ可読記憶媒体を包含しうる。
【0056】
該コンピュータ可読記憶媒体は、命令実行デバイスによって使用する為の命令を保持且つ記憶することができる有形のデバイスであることができる。該コンピュータ可読記憶媒体は、例えば、電子ストレージデバイス、磁気ストレージデバイス、光ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイス、又はこれらの任意の適切な組み合わせでありうるが、これらに限定されない。該コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは、下記を包含する:ポータブルのコンピュータディスケット登録商標、ハードディスク、ランダムアクセスメモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read only memory)、消去可能なプログラム可能な読み取り専用メモリ(EPROM(erasable programable read-only memory)又はフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM:static random access memory)、ポータブル・コンパクトディスク読み取り専用メモリ(CD-ROM:compact disc read-only memory)、デジタル多用途ディスク(DVD:digital versatile disk)、メモリスティック、フロッピーディスク、機械的に符号化されたデバイス、例えば、パンチカード若しくは命令が記録されている溝内の隆起構造又はこれらの任意の適切な組み合わせ。本明細書において使用される場合、該コンピュータ可読記憶媒体は、一時的な信号それ自体、例えば、電波又は他の自由に伝播する電磁波、導波管若しくは他の伝送媒体を伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、又は電線を介して送信される電気信号、であると解釈されるべきでない。
【0057】
本明細書において記載されたコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から夫々のコンピューティングデバイス/処理デバイスに、又はネットワーク、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク若しくはワイヤレスネットワーク又はそれらの組み合わせ、を介して外部コンピュータ又は外部記憶デバイスにダウンロードされることができる。該ネットワークは、銅線伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ若しくはエッジサーバ又はこれらの組み合わせで構成されうる。各コンピューティングデバイス/処理デバイスにおけるネットワークアダプタカード又はネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、そして、該コンピュータ可読プログラム命令を、個々のコンピューティングデバイス/処理デバイス内にコンピュータ可読記憶媒体中に記憶する為に伝送する。
【0058】
本発明の動作を実行する為のコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA:instruction-set-architecture)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路の為の構成データ、又は、1以上のプログラミング言語、例えばオブジェクト指向プログラミング言語、例えば、Smalltalk、C++等、慣用的な手続き型プログラミング言語(例えば、「C」プログラミング言語又は同様のプログラミング言語)、の任意の組み合わせで書かれているソースコード又はオブジェクトコードのいずれか、でありうる。該コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に、ユーザのコンピュータ上で部分的に、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に、ユーザのコンピュータ上で部分的に且つリモート・コンピュータ上で部分的に、又はリモート・コンピュータ若しくはサーバ上で全体的に、実行されうる。後者のシナリオにおいて、該リモート・コンピュータは、任意の種類のネットワーク、例えば、ローカルエリアネットワーク(LAN:local area network)若しくはワイドエリアネットワーク(WAN:wide area network)、を介してユーザのコンピュータに接続されうるか、又は該接続は(例えば、インターネットサービスプロバイダを使用したインターネットを通じて)外部コンピュータに対して行われうる。幾つかの実施態様において、電子回路、例えば、プログラム可能な論理回路、フィールドプログラム可能なゲートアレイ(FPGA:field-programable gate arrays)又はプログラム可能なロジックアレイ(PLA:programable logic arrays)、は、本発明の観点を実行する為に、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をパーソナライズすることによって、コンピュータ可読プログラム命令を実行しうる。
【0059】
本発明の観点は、本発明の実施態様に従う、方法、装置(システム)及びコンピュータプログラム製品若しくはコンピュータプログラムのフローチャート図若しくはブロック図又はそれらの組み合わせを参照して本明細書において記載されている。該フローチャート図若しくは該ブロック図又はそれらの組み合わせの各ブロック、並びに該フローチャート図若しくは該ブロック図又はそれらの組み合わせにおける複数のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装されることができることが理解されるであろう。
【0060】
これらのコンピュータ可読プログラム命令は、該コンピュータ又は他のプログラム可能なデータ処理装置のプロセッサを介して実行する命令が該フローチャート図若しくはブロック図又はそれらの組み合わせの1以上のブロックにおいて特定された機能/動作を実装する為の手段を作成するように、コンピュータのプロセッサ又は他のプログラム可能なデータ処理装置に提供されて、マシンを作り出しうる。記憶された命令を有するコンピュータ可読記憶媒体が該フローチャート図若しくはブロック図又はそれらの組み合わせの1以上のブロックにおいて特定される機能/動作の観点を実装する命令を含む製造品を含むように、これらのコンピュータ可読プログラム命令はまた、コンピュータプログラム可能なデータ処理装置若しくは他のデバイス又はこれらの組み合わせに特定の様式で機能するように指示することができるコンピュータ可読記憶媒体中に記憶されうる。
【0061】
該コンピュータ可読プログラム命令はまた、コンピュータ上、他のプログラム可能なデータ処理装置上又は他のデバイス上で実行される命令が、該フローチャート図若しくはブロック図又はそれらの組み合わせの1以上のブロックにおいて特定される機能/動作を実装するように、上記のコンピュータ上、他のプログラム可能なデータ処理装置上又は他のデバイス上にロードされて、コンピュータ、他のプログラム可能な装置又は他のデバイス上で一連の操作工程を実行させて、コンピュータに実装されたプロセスを生成しうる。
【0062】
図面中のフローチャート図及びブロック図は、本発明の様々な実施態様に従う、システム、方法及びコンピュータプログラム製品若しくはコンピュータプログラムの在りうる実装の、アーキテクチャ、機能及び動作を示す。これに関連して、該フローチャート図又はブロック図における各ブロックは、命令のモジュール、セグメント、又はその一部を表し得、それは、特定された1以上の論理機能を実装する為の1以上の実行可能命令を含む。幾つかの代替の実装において、該ブロックにおいて示されている機能は、図面中に示されている順序とは異なって生じうる。例えば、連続して示されている2つのブロックは、実際には、関与する機能に依存して、同時に、実質的に同時に、部分的又は全体的に時間的に重複する様式で実行される1つの工程として達成されうるか、又は該ブロックは、逆の順序で実行されうる。該ブロック図若しくはフローチャート図又はこれらの組み合わせの各ブロック、並びに該ブロック図若しくはフローチャート図又はこれらの組み合わせの複数のブロックの組み合わせは、特定された機能又は動作を実行する特別な目的のハードウェアベースのシステムによって実装することができ、又は特別な目的のハードウェアとコンピュータ命令との組み合わせを実行することができることに留意されたい。
【0063】
様々な実施態様が上記されているが、これらは例示に過ぎない。例えば、他のアーキテクチャのコンピューティング環境が、1以上の実施態様を組み込み且つ使用する為に使用されることができる。加えて、他の構成要素が使用されてもよく、若しくは本発明の1以上の観点を利用してもよく、又は他の構成要素が使用され且つ本発明の1以上の観点を利用してもよい。その上、他のタイプの再構成が実行されてもよい。多くの変形が可能である。
【0064】
更に、他のタイプのコンピューティング環境が、恩恵を受け且つ使用されることができる。1つの例として、プログラムコードの記憶若しくは実行又それらの組み合わせの為に適したデータ処理システムが使用可能であり、該データ処理システムは、システムバスを通じてメモリ要素に直接的に又は間接的に接続された少なくとも2つのプロセッサを備えている。該メモリ要素は、例えば、プログラムコードの実際の実行の間に使用されるローカルメモリ;バルクストレージ;及び実行の間にバルクストレージからコードを取得しなければならない回数を減らす為に、少なくとも一部のプログラムコードの一時的なストレージを提供するキャッシュメモリを包含する。
【0065】
入力/出力デバイス、すなわちI/Oデバイス(キーボード、ディスプレイ、ポインティングデバイス、DASD、テープ、CD、DVD、サムドライブ及び他のメモリ媒体等を包含するが、これらに限定されない)は、直接的に又は介在するI/Oコントローラを通じてのいずれかでシステムに接続されることができる。ネットワークアダプタはまた、データ処理システムが、介在するプライベートネットワーク又はパブリックネットワークを通じて他のデータ処理システム又はリモートプリンタ又はストレージデバイスに接続されるようになることを可能にする為に、該システムに接続されうる。モデム、ケーブルモデム及びイーサネットカードは、ネットワークアダプタの利用可能なタイプのほんの一部である。
【0066】
本明細書において使用される語は、特定の実施態様を説明することのみを目的としており、本発明を限定することを意図していない。本明細書において使用される場合、単数形「1つ」(a)、「1つ」(an)及び「該」(the)は、文脈が明確に別段の指示をしない限り、複数形をまた含むことが意図されている。本明細書において使用される場合、語「含む」(comprises)又は「含んでいる」(comprising)は、記載された特徴、整数、工程、操作、要素若しくは構成要素又はそれらの組み合わせの存在を特定するが、1以上の他の特徴、整数、工程、操作、要素、構成要素若しくはそれらのグループ又はそれらの組み合わせの存在又は追加を排除するものでない。
【0067】
添付の特許請求の範囲における対応する構造、材料、行為、及び全ての手段又は工程に加えて、機能要素の均等物は、具体的に請求されているように、他の請求された要素と組み合わせて機能を実行する為の任意の構造、材料、又は行為を包含することが意図されている。本発明の詳細な説明は、例示及び説明の目的の為に提示されたものであり、網羅的であること、又は開示された形態における本発明に限定されることが意図されていない。本発明の範囲及び精神から逸脱することなく、多くの修正及び変更が当業者に明らかであろう。該実施態様は、本発明の原理及び実際の用途を最もよく説明する為に、且つ当業者が、考えられる特定の用途に適した様々な変更を加えた様々な実施態様について本発明を理解することができるように選択され且つ説明されている。
図1A
図1B
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
【手続補正書】
【提出日】2023-10-05
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
コンピューティング環境を現状の入力/出力(I/O)構成からあるべきI/O構成へと再構成する為の、コンピュータに実装された方法であって、
前記現状のI/O構成の第1の階層モデル及び前記あるべきI/O構成の第2の階層モデルを正規化すること、ここで、前記第1の階層モデル及び前記第2の階層モデルは各々、リーフノード及び非リーフノードの階層構造を備えており、及び該正規化することは、前記第1の階層モデル及び前記第2の階層モデルにわたって構文的に一貫した様式でそれらの夫々のI/O構成が定義されるように、構文変換ルールを前記第1の階層モデル及び前記第2の階層モデルに適用することを含む、
前記第1の階層モデルの第1のハッシュ木表現及び前記第2の階層モデルの第2のハッシュ木表現を作成すること、ここで、前記第1のハッシュ木表現のノードは、前記第1の階層モデルのリーフノード及び非リーフノードの為に計算されたチェックサム値であり、前記第2のハッシュ木表現のノードは、前記第2の階層モデルのリーフノード及び非リーフノードの為に計算されたチェックサム値であり、並びに、前記第1のハッシュ木表現のノード及び前記第2のハッシュ木表現のノードは、前記第1の階層モデルの前記階層構造及び前記第2の階層モデルの前記階層構造を夫々反映する;並びに、
前記第1のハッシュ木表現のルートノードと前記第2のハッシュ木表現のルートノードまでチェックサム値が等しいところの前記第1のハッシュ木表現及び前記第2のハッシュ木表現の1以上のノードを刈り込むこと
を含む、前記方法。
【請求項2】
前記現状のI/O構成が現状の入力/出力定義ファイル(IODF)によって定義され、及び前記あるべきI/O構成があるべきIODFによって定義され、前記現状のIODF及び前記あるべきIODFは、テーブルと相互参照とを有するリレーショナルデータベースに似たバイナリデータ構造を備えている、請求項1に記載の方法。
【請求項3】
前記第1の階層モデル及び前記第2の階層モデルが、前記現状のIODF及び前記あるべきIODFに夫々基づき、ここで、階層モデルが、階層的に入れ子にされたリーフノード及び非リーフノードとそれらの間の1以上の相互参照とを含む、テキストベースのJavaScriptオブジェクト表記法(JSON)データ構造を備えており、ここで、該リーフノード及び該非リーフノードは、IODFのI/O要素を表し、並びに、ここで、前記階層モデルを導出することが、
前記IODFを繰り返し解析して、前記IODFの中に含まれている前記複数のI/O要素(それらのプロパティを含む)を収集すること;
前記複数のI/O要素を、Javaクラスによって定義されたドメインモデルに組み合わせること;及び、
前記ドメインモデルをJSONデータ構造内にシリアライズすること
を含む、請求項2に記載の方法。
【請求項4】
アクティベーションサービスを介して、アクティベーションの為に前記あるべきIODFを送信することを更に含む、請求項2に記載の方法。
【請求項5】
前記第1の階層モデルのリーフノード及び非リーフノードが、前記現状のI/O構成内のI/O要素を表し、前記第2の階層モデルのリーフノード及び非リーフノードが、前記あるべきI/O構成内のI/O要素を表し、並びに、前記構文変換ルールは1つのI/O構成内で各I/O要素に固有であり且つ特定の順序で適用される必要があってもよい、請求項1に記載の方法。
【請求項6】
チェックサム値が前記第1のハッシュ木表現と前記第2のハッシュ木表現との間で同じであるところの第2のハッシュ木表現の1以上のノードを刈り込むことを更に含む、請求項1に記載の方法。
【請求項7】
前記第1の階層モデルの前記第1のハッシュ木表現と前記第2の階層モデルの前記第2のハッシュ木表現とを、前記コンピューティング環境のメモリ内で持続させることを更に含む、請求項1に記載の方法。
【請求項8】
コンピューティング環境を現状の入力/出力(I/O)構成からあるべきI/O構成へと再構成する為のコンピュータプログラムであって、
前記現状のI/O構成の第1の階層モデル及び前記あるべきI/O構成の第2の階層モデルを正規化すること、ここで、前記第1の階層モデル及び前記第2の階層モデルは各々、リーフノード及び非リーフノードの階層構造を備えており、及び該正規化することは、前記第1の階層モデル及び前記第2の階層モデルにわたって構文的に一貫した様式でそれらの夫々のI/O構成が定義されるように、構文変換ルールを前記第1の階層モデル及び前記第2の階層モデルに適用することを含む、
前記第1の階層モデルの第1のハッシュ木表現及び前記第2の階層モデルの第2のハッシュ木表現を作成すること、ここで、前記第1のハッシュ木表現のノードは、前記第1の階層モデルのリーフノード及び非リーフノードの為に計算されたチェックサム値であり、前記第2のハッシュ木表現のノードは、前記第2の階層モデルのリーフノード及び非リーフノードの為に計算されたチェックサム値であり、並びに、前記第1のハッシュ木表現のノード及び前記第2のハッシュ木表現のノードは、前記第1の階層モデルの前記階層構造及び前記第2の階層モデルの前記階層構造を夫々反映する;並びに、
前記第1のハッシュ木表現のルートノードと前記第2のハッシュ木表現のルートノードまでチェックサム値が等しいところの前記第1のハッシュ木表現及び前記第2のハッシュ木表現の1以上のノードを刈り込むこと
を含む方法の各工程をコンピュータに実行させる、前記コンピュータプログラム。
【請求項9】
前記現状のI/O構成が現状の入力/出力定義ファイル(IODF)によって定義され、及び前記あるべきI/O構成があるべきIODFによって定義され、前記現状のIODF及び前記あるべきIODFは、テーブルと相互参照とを有するリレーショナルデータベースに似たバイナリデータ構造を備えている、請求項8に記載のコンピュータプログラム。
【請求項10】
前記第1の階層モデル及び前記第2の階層モデルが、前記現状のIODF及び前記あるべきIODFに夫々基づき、ここで、階層モデルが、階層的に入れ子にされたリーフノード及び非リーフノードとそれらの間の1以上の相互参照とを含む、テキストベースのJavaScriptオブジェクト表記法(JSON)データ構造を備えており、ここで、該リーフノード及び該非リーフノードは、IODFのI/O要素を表し、並びに、ここで、前記階層モデルを導出することが、
前記IODFを繰り返し解析して、前記IODFの中に含まれている前記複数のI/O要素(それらのプロパティを含む)を収集すること;
前記複数のI/O要素を、Javaクラスによって定義されたドメインモデルに組み合わせること;及び、
前記ドメインモデルをJSONデータ構造内にシリアライズすること
を含む、
請求項9に記載のコンピュータプログラム。
【請求項11】
アクティベーションサービスを介して、アクティベーションの為に前記あるべきIODFを送信することを前記コンピュータに更に実行させる、請求項9に記載のコンピュータプログラム。
【請求項12】
前記第1の階層モデルのリーフノード及び非リーフノードが、前記現状のI/O構成内のI/O要素を表し、前記第2の階層モデルのリーフノード及び非リーフノードが、前記あるべきI/O構成内のI/O要素を表し、並びに、前記構文変換ルールは1つのI/O構成内で各I/O要素に固有であり且つ特定の順序で適用される必要があってもよい、請求項8に記載のコンピュータプログラム。
【請求項13】
チェックサム値が前記第1のハッシュ木表現と前記第2のハッシュ木表現との間で同じであるところの第2のハッシュ木表現の1以上のノードを刈り込むことを前記コンピュータに更に実行させる、請求項8に記載のコンピュータプログラム。
【請求項14】
前記第1の階層モデルの前記第1のハッシュ木表現と前記第2の階層モデルの前記第2のハッシュ木表現とを、前記コンピューティング環境のメモリ内で持続させることを前記コンピュータに更に実行させる、請求項8に記載のコンピュータプログラム。
【請求項15】
コンピューティング環境を現状の入力/出力(I/O)構成からあるべきI/O構成へと再構成する為のコンピュータシステムであって、該コンピュータシステムが、
1以上のプロセッサ、1以上のコンピュータ可読メモリ、1以上のコンピュータ可読有形ストレージデバイス、及び前記1以上のメモリのうちの少なくとも1つを介して、前記1以上のプロセッサのうちの少なくとも1つによって実行する為の、前記1以上のコンピュータ可読有形ストレージデバイスのうちの少なくとも1つ上に記憶された複数のプログラム命令を備えており、
該複数のプログラム命令が、
前記現状のI/O構成の第1の階層モデル及び前記あるべきI/O構成の第2の階層モデルを正規化する為のプログラム命令、ここで、前記第1の階層モデル及び前記第2の階層モデルは各々、リーフノード及び非リーフノードの階層構造を備えており、及び該正規化することは、前記第1の階層モデル及び前記第2の階層モデルにわたって構文的に一貫した様式でそれらの夫々のI/O構成が定義されるように、構文変換ルールを前記第1の階層モデル及び前記第2の階層モデルに適用することを含む、
前記第1の階層モデルの第1のハッシュ木表現及び前記第2の階層モデルの第2のハッシュ木表現を作成する為のプログラム命令、ここで、前記第1のハッシュ木表現のノードは、前記第1の階層モデルのリーフノード及び非リーフノードの為に計算されたチェックサム値であり、前記第2のハッシュ木表現のノードは、前記第2の階層モデルのリーフノード及び非リーフノードの為に計算されたチェックサム値であり、並びに、前記第1のハッシュ木表現のノード及び前記第2のハッシュ木表現のノードは、前記第1の階層モデルの前記階層構造及び前記第2の階層モデルの前記階層構造を夫々反映する;並びに、
前記第1のハッシュ木表現のルートノードと前記第2のハッシュ木表現のルートノードまでチェックサム値が等しいところの前記第1のハッシュ木表現及び前記第2のハッシュ木表現の1以上のノードを刈り込む為のプログラム命令
を含む、
前記コンピュータシステム。
【請求項16】
前記現状のI/O構成が現状の入力/出力定義ファイル(IODF)によって定義され、及び前記あるべきI/O構成があるべきIODFによって定義され、前記現状のIODF及び前記あるべきIODFは、テーブルと相互参照とを有するリレーショナルデータベースに似たバイナリデータ構造を備えている、請求項15に記載のコンピュータシステム。
【請求項17】
前記第1の階層モデル及び前記第2の階層モデルが、前記現状のIODF及び前記あるべきIODFに夫々基づき、ここで、階層モデルが、階層的に入れ子にされたリーフノード及び非リーフノードとそれらの間の1以上の相互参照とを含む、テキストベースのJavaScriptオブジェクト表記法(JSON)データ構造を備えており、ここで、該リーフノード及び該非リーフノードは、IODFのI/O要素を表し、並びに、ここで、前記階層モデルを導出する為のプログラム命令が、
前記IODFを繰り返し解析して、前記IODFの中に含まれている前記複数のI/O要素(それらのプロパティを含む)を収集する為のプログラム命令;
前記複数のI/O要素を、Javaクラスによって定義されたドメインモデルに組み合わせる為のプログラム命令;及び、
前記ドメインモデルをJSONデータ構造内にシリアライズする為のプログラム命令
を含む、
請求項16に記載のコンピュータシステム。
【請求項18】
アクティベーションサービスを介して、アクティベーションの為に前記あるべきIODFを送信する為のプログラム命令を更に含む、請求項16に記載のコンピュータシステム。
【請求項19】
前記第1の階層モデルのリーフノード及び非リーフノードが、前記現状のI/O構成内のI/O要素を表し、前記第2の階層モデルのリーフノード及び非リーフノードが、前記あるべきI/O構成内のI/O要素を表し、並びに、前記構文変換ルールは1つのI/O構成内で各I/O要素に固有であり且つ特定の順序で適用される必要があってもよい、請求項15に記載のコンピュータシステム。
【請求項20】
チェックサム値が前記第1のハッシュ木表現と前記第2のハッシュ木表現との間で同じであるところの第2のハッシュ木表現の1以上のノードを刈り込む為のプログラム命令を更に含む、請求項15に記載のコンピュータシステム。
【国際調査報告】