JP2008538026A - モジュール式イメージダウンロードシステム - Google Patents

モジュール式イメージダウンロードシステム Download PDF

Info

Publication number
JP2008538026A
JP2008538026A JP2008503253A JP2008503253A JP2008538026A JP 2008538026 A JP2008538026 A JP 2008538026A JP 2008503253 A JP2008503253 A JP 2008503253A JP 2008503253 A JP2008503253 A JP 2008503253A JP 2008538026 A JP2008538026 A JP 2008538026A
Authority
JP
Japan
Prior art keywords
action
tree
image
actions
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2008503253A
Other languages
English (en)
Inventor
ディ パーキーパイル、マシュー
ジェフリー ティ サルム、
フィリップス、ステファン
ジィ リハ、ヴィクター
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Publication of JP2008538026A publication Critical patent/JP2008538026A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

コンピュータまたはコンピュータ化された装置を構成するための、モジュール式のイメージをネットワーク経由でダウンロードするシステム及び方法である。プログラムイメージには、典型的には、基盤イメージ及びアプリケーションモジュールイメージを含む。前記システムは、構成データ内に定義されたアクションツリーへの応答により実行されるソフトウェアとして構成され、前記アクションツリーは、実行オブジェクト内には組み込まれず、構成データ内に定義される。アクションツリーは、ユーザインターフェイスを通して開始、一時停止、終了等される。実行オブジェクトは、アクションツリーの各変更に対して再コンパイルする必要が無く、モジュールは実行前に動的結合される。アクションツリーによる方法で、利用者は、再度のコーディングや追加試験を行うことなく、アクションまたはアクションツリー全体の変更、追加、削除を容易に行うことができる。
【選択図】図3

Description

関連する出願の参照
本出願は、2005年3月25日に出願された正規の米国特許出願第11/090637号に基づく優先権を主張するものであり、同出願を参照として本明細書に引用する。
連邦政府による資金提供を受けた研究開発の記載
適用なし。
提出されたコンパクトディスクへの参照
適用なし。
著作権保護下にある内容に関する注意
本特許文献の内容の一部は、米国及びその他の国の著作権法による著作権保護の対象である。著作権者は、特許商標局による特許ファイルまたは記録としての特許文書または特許の開示の複製の場合を除き、著作権に関する全ての権利を留保する。著作権者は、本特許文献を秘密として維持する権利を放棄するものではなく、米国特許法施行規則1.14条に基づく権利を制限なく保持する。
本発明は、一般的にコンピュータプログラムの構成、特にアクションツリーに基づく(action tree−based)ネットワーク経由のイメージダウンロードシステムに関する。
近年のコンピュータ及びコンピュータ化された装置は、あり得るモデル数、選択可能な組合せ及びその他のバリエーションが増加することにより、ますます複雑さを増してきている。例えば、受注仕様生産(CTO)のコンピュータの販売支援において、異なる基盤(foundation)イメージとアプリケーションイメージの組合せを検討する際、所与のシステムについて利用可能なオプションの表は、数百万にも登るイメージの組合せを示し、それはいずれもコンピュータのハードドライブにコピーする必要のあるものである。典型的には、前記選択肢には、特定のハードウェアに関連する少数の基盤イメージの組合せに加え、それらのコンピュータ上にインストールされて実行されるアプリケーションモジュールの集合を含む。
このイメージのオプションの過剰さは、生産環境にとっての重荷であるのみならず、技術面や試験、品質保証、サービスなどといった、製造上利用できる現在または過去のいずれかの構成として、ソフトウェア及び/またはアプリケーションを構成または再構成しなければならない領域においても重荷となっている。これらのハードドライブにイメージを生成するためには、ハードドライブにインストールされるべき基盤イメージ及びアプリケーションモジュールのイメージとして事前に定義された組合せをロード(load)するための、モジュール式イメージダウンロードプログラムが開発されてきている。ハードウェア及び/またはソフトウェアの公開のどれ1つをとっても、例えば工場、技術、試験、品質保証、サービス部門の各バージョンといった多くの異なる種類のイメージプログラムが存在する。
典型的に、受注仕様生産の環境において所与のシステムに何をロードすべきかという判断は、全体としてではなく少なくとも部分的には、デスクトップ管理インターフェイス(DMI)に含まれる情報への応答の形で行われる。DMIは、コンピュータ装置のハードウェア上の領域であって、Mコード(Mcode)と呼ぶ文字列を含むものである。またDMIは、装置ごとのハードウェアの通し番号を規定したUUIDと呼ばれる区域を含む。DMIにおいて保有されるMコードのビット列は、ハードウェアの特徴、どの基盤イメージまたは他のモジュールがロードされているか、若しくはロードされるべきかといった装置に関する情報を示している。Mコードはハードドライブに包含されるものではないため、Mコードの状態に影響を与えることなく、必要に応じてハードドライブのパーティションを区切り直したりフォーマットしたりすることは可能である。Mコードは、ハードドライブにイメージをダウンロードする前にDMIに書き込まれる。
約10年前、産業界は、新しいシステムのハードドライブにイメージをダウンロードする手段として第一にバッチファイルの利用に頼っていた。バッチファイルは複数のデータソースを利用しており、大幅に柔軟性が欠けていて、大規模な数の異なるイメージの組合せをサポートすることを検討するのは現実的でさえなかった。加えて、構成のどのような変更も複数のデータソースとバッチファイルにわたって行わなければならず、その工程には手間がかかり、エラーを起こし易く、退屈なものであった。
より最近になって、単一のデータソースと高級言語で書かれたプログラム群による、ネットワーク経由でのモジュール式イメージ化手法(modular network imaging)が導入され、それはオペレーティングシステムのAPI(application programming interface)の中で利用可能となるように作られた機能を典型的に活用していた。そのダウンロード工程は、別々の実行オブジェクト(executable)の実行に対する応答として機能するものであった。そうした構成ダウンロード用のプログラムとしてソニーで用いられたものの1つは、MINDS(Modular Network Download System)バージョン1と呼ばれ、Pacific Toolsという名で知られるプログラムツールセットと組み合わせて用いられた。
別々の基盤及びアプリケーションモジュールを備えたシステムを構築する能力が、顧客に別々のソフトウェアの組合せを提供する受注仕様生産のコンピュータの販売支援において必要であることは、十分理解されるべきである。その一例は、顧客のコンピュータに搭載するワードプロセッサ及びマルチメディアソフトを顧客に選択してもらうような場合である。基盤イメージを配置し、モジュールを追加して何らかのイメージを生成する工程は、ここではソニーモジュール式テクノロジー(Sony Modular Technology)として知られている。この技術の利点は、顧客に対して飛躍的に増加する数のイメージを提供できるところにある。例えば、基盤イメージの数をx、モジュールの数をy、提供できる一意なイメージの数をzとすると、等式z=x*2によって別々のイメージ数の規模が表現される。例として、23の基盤イメージと33のモジュールがあったとすると、いずれの場合も実際に典型的に提供されるのは一部分のみとは言え、顧客に提供し得る一意なイメージ数は870億を超えることになる。。大規模なイメージ数を提供しサポートできる能力のある製造者は、競争上優位に立つことになる。
1つのイメージのライフサイクルにおいて、数多くの段階が存在すると考えられる。(1)計画−所定の型のPC上にどのソフトウェアを配置するかをプログラム管理として決定する段階。(2)イメージコンポーネントの開発−基盤イメージ、モジュール及び回復用コンポーネントを組み合わせてソフトウェアを統合する段階。(3)イメージコンポーネントの試験−統合、ソフトウェア及び様々な受注仕様生産のオプションについて試験を行う段階。(4)イメージコンポーネントの公開と配送−コンポーネントを生産拠点に送る段階。(5)サポート−製品を維持、改良、修繕を通してサポートする段階。
典型的には、イメージのライフサイクルのうち最も手間がかかるのは試験である一方、技術的に最も困難な局面は開発である。どちらの場合も、システムは頻繁に新しいソフトウェアに置き換わる。置き換えの主な理由の1つは、様々な受注仕様生産のオプションを試験することである。他の理由としては、システムを工場出荷状態に戻すということもある。
このシステムの頻繁な置き換えの必要性により、特にテスト段階において、イメージ化の工程は、歴史的に所要時間がかかることでボトルネックとなっていた。イメージ化の工程が完了するまでシステムは使用不可能になる。さらに、システムをイメージ化するために入力値を与え、CDを交換することに技術者は時間を費やし、概して非常に長い時間を消耗する工程としてエラーを起こしやすいものとなっていた。つまり、システムをイメージ化する工程はエンジニアリング時間を要求し、イメージ化が行われている間は、システムを使用不可能にする結果となっていたのである。そのため、これら時間の消耗を最小化し、またはボトルネックを解消することにより、多くの利益が生まれることが理解されるであろう。これまで解決策を求める試みが行われてきたものの、全て時間的な要求及び柔軟性の観点において不十分なものとなっていた。
以前のイメージ化手法の解決策は、“インストールCD”と呼ばれるCDを用いて手作業によりシステムをイメージ化ことであった。こうした工程は、MINDSバージョン1のような、最初のモジュール式のイメージをネットワーク経由でダウンロードする方法が開発される以前に使用されていた。インストールCDは、典型的にはオペレーティングシステムとしてMS−DOSを利用し、より高速な媒体とは対照的なCDであり、通例ではシステムをイメージ化するために技術者が半日を要していた。この工程はさらに、システムがイメージ化できるようになる前にCDを複製しなければならず、追加的な負担と遅延が発生し、ボトルネックを一層大きくさせるものであった。さらに言えば、オプションの選択は複雑で制限もあった。
モジュール式のイメージをネットワーク経由でダウンロードする方法(即ちMINDSバージョン1)が初めて開発された際、システムをイメージ化する新しい方法が導入された。その方法は、CDとは対照的にローカルエリアネットワーク(LAN)を通じてシステムをイメージ化する、手作業による工程を備えたものであった。オペレーティングシステムとして用いられたのは未だMS−DOSだったが、CDからLANへの切り替えにより、システムをイメージ化するために要する合計時間は半日からおおよそ3時間に減少した。速度は向上したものの、様々な受注仕様生産のオプションは試験において利用可能ではなかった。
さらに、そのイメージ化の工程には、工程が手作業で行われることによる根本的な弱点があり、その弱点はシステムを二度同じようにイメージ化するのが難しいことであった。この一貫性の欠如は、イメージ化の工程において多くの手順を手作業で実施することに起因し、重大な問題をもたらしていた。これら手作業の手順を実施する必要性を解消すれば、非一貫性の問題を解消できるであろう。
イメージ化用のソフトウェアであるMINDSバージョン1は、PCにおける新たな進歩の力を活用して作られたものであり、その工程によってシステムを約1時間でイメージ化でき、エンジニアリング時間は10分のみ必要とし、これはインストールCDを用いるのと比べると相当な改善であった。MINDSバージョン1は、受注仕様生産のオプションを試験するためにソフトウェア管理システム(SMS)のデータベースと交信するように初めて構成され、イメージをLANに向けてアップロードする能力をも備えていた。MINDSバージョン1の適用は、イメージが初めて一貫した方法でアップロード及びダウンロードされることを意味し、試験の正確性をも向上させるものであった。
現在のMINDSバージョン1のプログラムは数多くの利点を有するものであったが、産業界における同様の構成用プログラムがそうであるように、ダウンロード工程の柔軟性が低下し、ユーザとのやり取りが複雑であるといった多くの欠点にまだ悩まされてもいた。
従って、追加された柔軟性と使い易さを備えた、より高度化されたソフトウェアとしてのモジュール式のネットワークダウンロードシステムの必要性が存在し、本発明はその必要性及びそれ以外の必要性について満足させるものである。
本発明に係るネットワーク経由でモジュール式のイメージダウンロードシステム(MINDSバージョン2)は、対象のコンピュータシステムにストレージエリアネットワーク(SAN)からソフトウェアイメージをダウンロードし、及び/または対象のコンピュータシステムからSANにアップロードするソフトウェアの集合である。この新しいダウンロードシステムは、従来のダウンロードシステムの数多くの欠点を克服するために実行環境をツリー構造にまとめたものとなっている。
システムを構成する工程において、システム内のイメージの構築は、デスクトップ管理インターフェイスへの書き込み、ハードドライブの設定、基盤イメージのダウンロード、モジュールのインストール、及びクリーンアップにより行われる。システムの別の目的は、他の利用者がアクセスしてダウンロードするために、ソフトウェアイメージをコンピュータからネットワークへアップロードできるようにすることである。本発明によるMINDSソフトウェアは、現在または過去のイメージの組合せによるイメージの継続的な置き換えも可能にしている。
最初のMINDSシステム(バージョン1)は数多くの利点を有するものであったが、いくつかの他の領域については不足している点も見受けられた。特に1つ問題は、ダウンロードされるイメージの組合せが実質的に静的なものであり、何らかの変更を加える場合にはプログラムの再コンパイルが必要となる点であるとされた。システムをイメージ化する複雑な工程は急速に進化してきており、絶え間なく集中して起こる変更によって予想以上にMINDSバージョン1に対しても頻繁なコード変更が求められ、時には毎日変更が行われた。理想的にはこうしたソフトウェアの変更は全て試験されるべきだが、時間と資源の制約からしばしばそれは非現実的であった。さらに、こうした変更の素早い適用はしばしば不可欠であって、技術的に優れた効率的な解決策は妥協の対象になり得た。
MINDSバージョン1の実装においては、異なるユーザフロー及び様々なユーザグループをサポートする機能性と共に複数の並行するプログラムのバージョンを生成することが要求された。これらの並行するバージョンは、ソフトウェアの保守に掛かる時間及び適用に掛かる時間を増大させる結果となった。
現在のモジュールダウンロードシステム(MINDSバージョン1)によるダウンロード工程では、いくつかのファイルをローカルエリアネットワークを介して何度も転送しなければならず、システムをイメージ化するために必要な合計時間が増えることになり、ネットワークの負荷も増大していた。また、利用者の入力が全て集められる前に一部のイメージ化工程が実行されることから、利用者が次の入力を行う前にネットワークと対象システム間のファイル転送などのタスクの終了を待たなければならないという要因によって、システムをイメージ化するために必要以上のエンジニアリング時間が要求されていた。別の欠点としては、利用者が不正入力や不正選択といった間違いを戻って訂正できないということもあった。間違いを訂正するには、工程の全体をやり直すというただ1つの方法しかなく、工程内の間違いが発生した時点に到達するために既に費やした時間と努力を失うこととなった。
これらの欠点を克服するために、MINDSバージョン2のプログラムが設計上利用者に認めたのは、アクション、特にアクションツリー(action tree)への応答としてイメージを生成することであった。工程に必要なデータは、ソニーのVAIOの環境の場合にはVSMS(VAIOソフトウェア管理システム)として知られる、ソフトウェア管理システム(SMS)から取得される。MINDSシステムは、好適には、システムイメージの取り込みのために構成された、コンピュータ装置の製造者、付加価値のある再販業者、またはインテグレータ等によるサブネットを運用するために構成される。利用者が所望のイメージ構成を選択する際には、ネットワーク上で利用可能なイメージのオプションのみが表示される。
アクション及びアクションツリーは、MINDSの内部で利用され、工程として個別のタスク(アクション)を統合することを可能にする。タスクの順序はアクションの追加または削除によって望んだとおりに容易に変更することができる。MINDSの内部のアクションツリーの構造は、同一の実行オブジェクトを所与のダウンロード工程の複数のステップにおいて実行することを可能にしている。アクションクラスの中の全てのアクションのインスタンスは、非同期に管理クラスから実行され、メッセージを管理クラスに返送するアクション(例えば、完了、エラー、警告など)を伴う。アクションは、特に長時間を要したり集中したりするような場合には、待ち時間の問題を低減するために別々のスレッドで実行される。
望ましい実施形態としては、MINDSバージョン2の中で、多くの異なる実行オブジェクトを実行するのとは対照的に、外部の設定ファイルに対して単一の実行オブジェクトを制御する。他に特に指定が無い場合は、これ以降のMINDSについての説明は、本発明に係るMINDSバージョン2に関するものである。ダイナミックリンクライブラリ(DLL)が、信頼性及び試験の容易性が高められた単一のMINDSの実行オブジェクトと共に使用される。過去のシステムと異なり、所定のダウンロード工程のための新しいMINDSシステムの構成は、それが使用される時点において、ダウンロード工程の起動前にアクションの動的結合(dynamic binding)の実行に基づいて行われる。例えば、新しいアクションを追加する際には、文字列表(string table)に情報が追加され、前記アクションのためのアクションの一覧が何らかの利用者の入出力と共に定義される。こうした結合の変更は、システム内のコード編集と同じものではないことは容易に理解されるべきである。コーディングに変更があった場合は常に、それが例えエラーの原因となった1行のコードだけだったとしても、それによりプログラムが動かなくなり、または悪くすればエラーを含んだり正しくない内容のイメージを生成する可能性があるため、完全な試験が当然に求められる。しかしながら、結合の変更のみがあった場合は、各モジュール自体は変更が無く既に完全に試験されているため、ソフトウェアの試験はもはや必要ではない。試験ステップの排除は、特に構成が頻繁に変更される環境において、大幅な資源の節約をもたらすことができる。
アクションツリーの使用は、コードを再コンパイルすることなく素早い変更を行える仕組みを提供する。1つまたはそれ以上のアクションツリーが定義可能で、各アクションツリーは、典型的には、それぞれ1つのアクションのインスタンスを含むツリーノード(tree node)を複数有する。各ツリーノードは、アクションだけでなく、ツリー内の関係(relationship)を定義したポインタを有する。限定ではなく例として述べるならば、1つの実施形態として、ツリー構造内においてポインタによって子の関係と次の兄弟の関係をサポートする場合が挙げられる。各ノードはつまり、2つのポインタを持ち、1つのポインタは次の子ノードに向かう深さ方向を指し、1つのポインタはすぐ隣なりの兄弟ノードに向かう横方向を指すことになる。このツリーの設定は、メモリを節約しながら、再帰を用いることなどによりツリーの走査を簡略化する。アクションは管理クラスにより制御され、別々のスレッドで起動される。
コードは、例えばユーザインターフェイス、基盤(infrastructure)(または管理層)及び個々のアクションの組合せといった複数の層に分けられる。この分割により、個々のアクションは他のアプリケーション内で再利用可能となり、一方ユーザインターフェイスにおいては、アクションの集合及び/または別々のアクションの単位で操作を行うことができる。管理層は、実行されるべき特定のアクションに対して、管理層からツリーに向けて走査する情報によって指示を出し、逆は発生しない。実行されるアクションによらず同じ管理用のコードが使用されることにより、ソフトウェアの改良と試験は非常に単純化されると理解されるべきである。所与の構築のためには、どのアクションツリーを実行するべきかを決定する選択の工程が発生する。例えば、ユーザインターフェイスにより利用者がアクションツリーを選択してもよく、または1つのアクションが特定されるか、十分な時間の間に利用者からの応答が無い場合には既定値を用いてもよい。
ある実施形態において、MINDSシステムの機能は、MINDSの中核部分の利用の柔軟性を向上させるため、ユーザインターフェイスからは分離させられる。前記システムの1つの形態によれば、MINDSのセッション中に実行された各アクションは、VSMS等に書き込まれ、そこには、好適には日付、時間、アクション、ログオンした人物及びシステム構成に関する情報が含まれる。
MINDSの装置及び方法は、開発作業用、MIS(管理情報サービス)機能としてのソフトウェア配布用といった様々なイメージ化アプリケーションにおいて利用することができる。例えば、前記モジュールは、特別な使用許諾に対する応答であれば、ソフトウェアの選択的なイメージ化のために、システム自体に関する情報、部署情報、及び/またはイメージ生成時に利用可能な他の情報をシステムへ提供することができる。
本発明は、限定としてではなく、多くの方法により、以下の説明を含みながら具体化することができる。
本発明に係る1つの実施形態によれば、ソフトウェアプログラムのイメージを自動構成するための装置であって:(a)コンピュータ上でプログラムイメージを構成するためにイメージファイルにネットワーク経由でアクセスするよう構成されたモジュール式ネットワークダウンロードプログラムと;(b)それぞれモジュール式ネットワークダウンロードプログラム内の特定の操作を実行するよう構成された複数のアクションルーチン(action routines)と;(c)モジュール式ネットワークダウンロードプログラムによって実行されるアクションルーチンのツリーを定義する手段、を含む装置が示される。
前記アクションルーチンはモジュール式ネットワークダウンロードプログラムと動的に結合され、実行されるアクションの組合せの変更、または新たな形態や新たなPCの構成に関連するアクションの組合せの新規作成のために、再度のコーディング、再コンパイル及び試験は必要とされない。アクションルーチンのツリーは、テキスト形式の構成ファイルを用いて生成するのが望ましい。前記モジュール式ネットワークダウンロードプログラムは、好適には:(i)アクションツリーの走査の間にアクションを実行するよう構成された管理層;(ii)望んだとおりに自動インストールが実行されるように管理層における操作を制御するよう構成されたユーザインターフェイス、を含む。
本発明に係る別の実施形態としては、ソフトウェアプログラムのイメージを自動構成するための装置であって:(a)動的に結合され、自動ソフトウェアインストールの間に実行され得る複数のアクションを有するアクションツリー層;(b)前記アクションツリー層からアクションを指すポインタを少なくとも1つずつ含むノードを複数有する、少なくとも1つのアクションツリー;(c)アクションツリーの走査の間にアクションを実行するよう構成された管理層;(d)望んだとおりに自動インストールが実行されるように管理層における操作を制御するよう構成されたユーザインターフェイス、を含む装置としてもよい。前記アクションは機能的には独立しており、所与のアクションツリー内において、または異なるアクションツリーをまたがって再利用できる。加えて、アクションは異なる実行スレッド内で起動することもでき、それによりシステムは、長時間にわたるアクションステップの途中でも利用者に迅速な応答を返すことができる。
MINDSソフトウェアによって生成されるプログラムイメージは、1つの基盤イメージ、またはより典型的には1つの基盤イメージと少なくとも1つのアプリケーションプログラムモジュールの組合せを含む。しなしながら、現時点では実用的な価値はあまり無いものの、MINDSシステムが1つより多くの基盤イメージをサポート可能であることは理解されるであろう。
アクションツリーからは、望まれるどのような数の異なるアクションを実行することも可能である。例として言えば、本実施形態でサポートするアクションは、処理用のアクションの集合から選択可能であり、その集合は本質的に:Mコード用の媒体の作成、システムのデスクトップ管理インターフェイス(DMI)からのMコードのアップロード、システムのハードドライブへの基盤イメージのダウンロード、システムのハードドライブへのアプリケーションモジュールイメージのダウンロード、システムのハードドライブからの基盤イメージのアップロード、システムのハードドライブからのアプリケーションモジュールイメージのアップロード、回復用パーティションからの基盤イメージの回復、媒体のバージョン検証、ブリッタ(blitter)、対象ドライブの割当て、基本単位(base unit)の選択、イメージのクリーンアップと不要なファイルの削除、回復用パーティションへのイメージのコピー、パーティションへのモジュールのコピー、イメージのCRC(巡回冗長検査)の生成、Mコード用のフロッピー(登録商標)の作成、起動画面の表示、デスクトップ管理インターフェイスの比較の表示、媒体の取り出し、正しい対象ドライブの検索、ハードドライブ情報の取得、ネットワークサブネット上かどうかの検証、実行記録セッションの終了、ネットワークドライブ図の表示、クエリの分割、ハードドライブの分割、再起動、制限ログイン、メインメニューへ戻る、イメージコンポーネントの存在検証、スレッドの生成、からなる。また、本発明に係る実施形態として、イメージのダウンロード若しくは他の活動をサポートするために、追加的な、または異なるアクションをいくつ生成してもよい。
他の実施形態によれば、本発明は、ソフトウェアプログラムイメージによってコンピュータを構成する方法であって:(a)コンピュータ上でイメージを構成するアクションを実行するための、別々に実行可能なアクションの組合せを、生成及びコンパイルするステップ;(b)選択されたアクションツリー内で定義されたアクションを実行する管理層を、生成及びコンパイルするステップ;(c)アクションツリーの選択とアクションツリー内の移動を制御するユーザインターフェイス層を、生成及びコンパイルするステップ:(d)アクション及びアクションツリー内の他のノードを指すポインタを含むノードを複数有するアクションツリーの構造を、生成するステップ;(e)利用者の入力に応じて、アクション、管理層、ユーザインターフェイス及びアクションツリーを連結し、アクションツリー内で定義されたアクションを実行できるプログラムを形成するステップ、を含む方法としてもよい。
前記ツリー構造は、好適には、子のポインタの関係、兄弟のポインタの関係、または、より望ましくは子及び兄弟のポインタの関係の相互の組合せに応じて接続したノードを含む。アクションツリー内のポインタの関係は、アクションツリー内でアクションを指すポインタが位置するところのノードの位置を含む。好適には、実行されたアクションはスタックによって追跡され、利用者が過去の工程内のどのステップにも戻ることを可能にする便利な仕組みを提供している。スタックを使用する場合は、アクションツリー内の親ノードを指すポインタを含むことが望ましい。
新しいMINDSシステムを実装することにより、以下の記載に限定されず、数多くの利点がもたらされる
本発明のある観点によれば、モジュール式のネットワークダウンロードシステムであって、アクションを容易に適用できるシステムが提供される。
本発明の別の観点によれば、動的に結合されるアクションツリーにアクションを追加または削除できるネットワーク経由のダウンロードシステムが提供される。
本発明の別の観点によれば、利用者による過去のアクションをバックアップすることのできるネットワーク経由のダウンロードシステムが提供される。
本発明の別の観点によれば、利用者により一時停止(pause)、連続実行(step through)、工程の再開(resume process steps)を行うことのできるネットワーク経由のダウンロードシステムが提供される。
本発明の別の観点によれば、エラーハンドリングが改良されたネットワーク経由のダウンロードシステムが提供される。
本発明の別の観点によれば、より多くのオプションによってサポートされた包括的なユーザインターフェイスをサポートするネットワーク経由のダウンロードシステムが提供される。
本発明の別の観点によれば、部署(例えば、製造現場、技術、サービス、試験、品質保証など)に依存してネットワークでプログラムをダウンロードするための媒体(即ちCD)を複数のバージョンに分けて保持する必要性が解消される、ネットワーク経由のダウンロードシステムが提供される。
本発明の別の観点によれば、ソフトウェア管理システム(SMS)と直接交信できるネットワーク経由のダウンロードシステムが提供される。
本発明の別の観点によれば、例えば基盤イメージ、一体型のイメージ(monolithic image)、ベースプラスイメージ(base−plus image)及びゴースト(Ghost)を使用したイメージといった異なるタイプのイメージをサポートできるネットワーク経由のダウンロードシステムが提供される。
本発明の別の観点によれば、Windows(登録商標)XPの縮小版でプリインストールされるWinPEのような、小さなオペレーティングシステムにも適用できるネットワーク経由のダウンロードシステムが提供される。
本発明の別の観点によれば、指定されたネットワークのサブネット内でのみ実行でき、それにより製造設備の外部から間違って利用されることを防ぐネットワーク経由のダウンロードシステムが提供される。
本発明の別の観点によれば、対象システムに完全な部品表(BOM)をコピーするネットワーク経由のダウンロードシステムが提供される。
本発明の別の観点によれば、システムのUUIDをMコード用のフロッピー(登録商標)を生成するための既定値として利用できるネットワーク経由のダウンロードシステムが提供される。
本発明の別の観点によれば、Mコード用のフロッピー(登録商標)を生成するために独立した選択メニューをメインメニューに設けることのできるネットワーク経由のダウンロードシステムが提供される。
本発明の別の観点によれば、既存のシステムからイメージをアップロードすることのできるネットワーク経由のダウンロードシステムが提供される。
本発明の別の観点によれば、無人モード、工場用、在庫管理単位(SKU)選択、上級モード、基盤イメージのアップロード、自由なイメージのアップロード及びダウンロードなどといった、多くの異なる操作モードをサポートするネットワーク経由のダウンロードシステムが提供される。
本発明の別の観点によれば、どのようなアクションの実行の前にも必ず利用者を認証させるネットワーク経由のダウンロードシステムが提供される。
本発明の別の観点によれば、再コンパイル及び試験を行うことなく新たなアクションツリーを定義できるネットワーク経由のダウンロードシステムが提供される。
本発明の別の観点によれば、全ての利用者の選択と入出力が全てのアクションの実行前に行われるネットワーク経由のダウンロードシステムが提供される。
本明細書における詳細な説明は、本発明の好適な実施形態について十分に開示することを目的としており、何ら制限を課すことなく、これ以降の記述から本発明の特徴はさらに導かれるだろう。
説明のためにより具体的に図面を参照すると、本発明は一般的に、図1から図16に示したような装置に具体化される。ここで記載する基本的な概念から外れることなく、装置における構成や部品の詳細を変更してもよく、方法における特定のステップや順序について変更してもよい。
ここでMINDSという名前で言及されている、モジュール式のネットワークダウンロードシステムは、PCのソフトウェアに関する全ての特徴を素早く開発するための解決策として、ソニーが設計及び開発したものである。特定のPCにソフトウェアを配置する工程は単純なもののように思えるが、その工程を熟知した者には、現在の工程は、単純でも、静的でも、迅速な(素早い)ものでもないことは知られている。単純さ、速さ、柔軟性、オーバーヘッドの低減及び信頼性の目標を達成するために、MINDSバージョン2システムは、モジュール式のダウンロードシステムであった従来のMINDSバージョン1の設計をゼロから完全に見直したものである。その結果として、新たな設計は、以前の解決策にあった制限や問題を持たないものとなった。
MINDSの目標の1つは、アプリケーション及び/または利用者の選択に対する応答として受け入れたソフトウェアイメージの変更の工程を、高速化及び単純化することである。本発明によるこれら機能の使い易さと効率性は、PCの開発、構成、品質保証、試験及び保守の各工程を通して相当な利点をもたらすことができる。本発明に係るMINDSバージョン2システムは、工程の変更が素早く、かつ信頼性をもって実装できるように設計されている。設計は、カプセル化、継承、及びポリモーフィズム(多態性)といったオブジェクト指向プログラミングの原理を拡張して利用している。よってMINDSバージョン2は、それが何を行うかだけでなく、どう行うかという点にも新しく重要な特徴を持っている。
図1は、コンピュータ(PC)システム上にダウンロードされるソフトウェアイメージ10を示している。この実施形態において示されたイメージは、基盤イメージ12、ソフトウェアアプリケーションモジュール14、及び任意的な回復用モジュールイメージ16を有している。PCのハードドライブのパーティションに搭載されるソフトウェアパッケージの全体が、1つのイメージとされる。いくつかの場合においては、少なくともソニーでは、PCには少なくとも2つのパーティションが定義され、うち少なくとも1つは顧客が使用し、もう1つは回復目的の隠れたパーティションであって、以降これを回復用コンポーネント16と呼ぶ。これらのコンポーネントは、顧客向けの製造時点だけでなく、開発や試験の間にも繰り返しシステム上に配置しなければならない。イメージは、典型的にはDVDの組合せであるメディアキットを用いて配置することもできる。
イメージにおける最初のコンポーネントは、基盤イメージ12である。イメージは、特定のハードウェアの組合せに共通するものとして、オペレーティングシステム18、ドライバ20、アプリケーション及び/またはユーティリティ22を含む1つの基盤イメージにより構成される。モジュール14は、追加的なソフトウェアの部品であって、PCの製造者、またはより典型的には第三の供給者(サードパーティ)によるアプリケーションとしてインストールされたものをサポートするために、ハードドライブに追加されるものである。ここでそのアプリケーションとは、ワードプロセッサ、スプレッドシート、プレゼンテーション用ソフトウェアといった製品一式や、ブラウザ、電子メールプログラム、サウンドカードアプリケーション、メディアPCアプリケーション及びそれに類するものが該当する。
イメージ内には、モジュールを望んだ数だけ組み込むことができ、モジュール24aから24nとして図示されている。回復用コンポーネント16は、顧客にPCを工場出荷状態に戻すことを可能にするものである。回復用コンポーネントは、例えば、基盤イメージの復元後にプロジェクトに固有のアプリケーションをハードドライブに復元するために必要な、圧縮しパッケージ化されたファイルの組合せ(一般的にはPACファイルとされる)を有する。データファイル28は、モジュール式の実行オブジェクトであり、PACファイルを用いたアプリケーションまたはモジュールを回復するために必要な、プロジェクト固有の設定ファイルを含んでいる。WimPEファイル30、または同様のファイルは、復元の工程において利用される小さなオペレーティングシステムである。それ故、様々なコンポーネントを配置して1つのイメージを生成するという概念は単純であっても、実際の実装は複雑で、多くのステップからなるのである。
図2は、一例として、ハードドライブ46にイメージをダウンロードし、必須ではないがイメージをハードドライブからアップロードも行うように構成された、MINDSソフトウェア42及びユーザインターフェイス44を持つダウンロードシステム40を示している。より適した実施形態としては、データベースへのアクセス及びMINDSシステムの操作をまとめる機能を提供するために、MINDSシステムはローカルネットワークまたはサブネットと接続して運用される。この場合において、ネットワーク上には、ネットワーク上のイメージ及びイメージ化工程に用いるモジュールのリポジトリ48、デスクトップ管理インターフェイス(DMI)用データのリポジトリ50、ソフトウェア管理システム(SMS)52、製造情報54(即ち“MINDS.csv”)及び暗号化されたMコードデータ56を含む。
図3は、一例として、MINDSシステムの工程における一般的な処理フロー60を示している。ノード62においてメインメニューが読み込まれ、ノード64においてシステムは利用者によるメニューの選択を待つ。ここでメニュー項目が1つしかない場合、または何も選択されないまま所定の時間が経過した場合は、既定値が選択され、ノード64は素通りされる。ノード66では選択されたアクションツリーが読み込まれるが、ここで利用者情報を収集することができる。もしアクション及び選択が妥当であれば、工程は、アクションツリー内で順序性を持ったアクションを実行するノード68に移動する。本発明の1つの操作モードでは、利用者に工程の一時停止(ブレイク)と再開ができるようにし、かつ工程内のステップをまとめて実行し、または過去に実行したステップの時点に戻って、そこで行った選択を変更し、その時点から続行することまで可能にしており、つまり利用者が一連のステップの全体を繰り返さなくてもよいようになっている。一度アクションツリー内のアクションが実行されたら、アクションツリーはノード70において工程を終了する。
図3のノード64でのメニュー選択においては、典型的にMINDSプログラムの操作モードに関連して、どれだけの数のアクションツリーの選択をさせてもよい。加えて、大規模な数のモードにわたって選択させるために、例えば最初の画面上には広めの操作のカテゴリのみ表示し、そこで選択したカテゴリ内で所定のモードに導くというようにメニューを階層化してもよい。本発明に係る開示範囲から外れることなく、画面上(front end)でどういった選択形式を利用してもよいことが理解されるべきである。
本発明の1つの実施形態として、MINDSバージョン2は、MINDSバージョン1で求められたような並行するバージョンの必要性を解消するための、異なる操作モードを提供する。この多様なモードでは、完全に自動的な操作が提供され、または利用者にイメージ化工程において実行を制御したい範囲を選択させることができる。利用者がより多くを制御するモードはデバッグや障害対応を支援し、一方で利用者があまり多くを制御しないモードは、自動化された工程、及び製造などのハードドライブのイメージ化の制御が非常に重要な領域における利用により適している。さらに、工場内でのイメージ化などの様々な目的に応じて異なる操作モードを適用(emulate)することも可能である。工場におけるイメージ化が適用された場合、同一のデータソースが工場で用いられるものに依存し、それによってより正確な試験が行われ、工場へと運ばれる前に特定の型のエラーを捕捉することができる。
ここで、読み込み後に利用者が何もMINDSとやり取りしなかった場合(つまり図3におけるノード64の素通りの場合)に自動的に起動する1つの操作モードを、「無人モード」と呼ぶこととする。この操作モードは、最初のMINDSの読み込みを除いて、利用者による入力無しでイメージ化工程の全体を実行する。用いるべきイメージコンポーネントが何かを知るために、所与のシステムのデスクトップ管理インターフェイス(DMI)から独自のイメージコンポーネント識別子が抽出され、VSMSのプロジェクト情報と照合される。この操作モードで価値があるのは、技術者がイメージをダウンロードするために、数秒のエンジニアリング時間しか要求されないことである。この平均的なエンジニアリング時間の減少は、特に無人モードにおいて、MINDSバージョン2の重要な利点である。結果として、技術者の時間を毎年数百時間節約することができる。加えて、イメージ化に掛かる合計時間も短縮されるため、システムをより早く試験に供することができ、これは目に見える節約と同じものである。
システムをイメージ化する工程には頻繁に変更が発生するが、MINDSバージョン2はこの現実を念頭に置いて設計された。コードは、変更が素早く信頼性をもって実装できるような形で構造化されている。典型的には、イメージの組合せとダウンロードされるべき構成の混成(mix)の変更する際に、MINDSのコードの再コンパイルは要求されない。加えて、MINDSの設計は柔軟で、素早い変更と保守を可能にする。
初期のMINDSバージョン1を使用している間に、イメージ化工程は継続的に進化し、新しいシステム及び新しいシステム構成の変更またはオプションをサポートするために、イメージをダウンロードするプログラム内のソフトウェアの頻繁な変更が求められることが見出された。多くの場合において、例えば新しいハードウェア等のどのような新しい基盤イメージが求められた場合にも、またはどのような新しいソフトウェアがシステムにおいて利用可能となった場合にも、MINDSの機能は変更されなければならないことが理解されるべきである。よって、MINDSバージョン2の設計の目標は、この保守を容易で素早く、かつ信頼性の高いものとすることにあった。
MINDSバージョン2の基本原理は、アクションとアクションツリーの概念である。アクションは機能的に独立したコードの一部であり、例えばハードドライブの分割(partitioning)、利用者への所定の入力の催促、またはDMIの読み取りといった1つのタスクを実行する。各アクションは、好適には単一のタスクを実行するため(または、好適ではないが、密接に関連する要素の集合を実行してもよい)、各アクションの振る舞いは他のアクションからは隔離されたままであり、それらは最小限度で結合される。アクションに原子性を持つ処理を実行させることによって、結合度を大きく低減することができ、これは近年のソフトウェア工学における要所とされる目標である。
図4は、一例として、アクションの組合せにおけるクラス階層70を示している。アクションは、好適には全て、図中でAbstractAction72とした抽象型の基本クラスを元に生成される。抽象型の基本クラスを用いて、全てのアクションを通じて共通する最小限の振る舞いの組合せが保持される。これらの共通機能はAbstractActionの中で定義され、純粋な仮想関数であり、動的結合が実行されることによって適切な機能が選択され実行される。また、アクションを他のアクションを元に生成することもできるが、これにより数多くの利点がもたらされる。第一に、他のアクションを元にアクションを生成することで、親のアクションを変えることなく機能を変更することができ、よって変更が分離されてソフトウェアの保守の技術的な優位性が向上する。さらに、アクションの階層は、アクションの集合にとって共通的な機能を、1つのアクションまたは抽象型の基本クラスのアクションにカプセル化可能なように生成することができる。
抽象型のアクションクラスの特徴を継承するのは、PartitionedHDアクションクラス74、GetModulesアクションクラス76、及びGetDMIアクションクラス78である。PartitionedHDアクションクラス74は、ハードドライブのクリーニングと分割の処理を行う。GetModulesアクションクラス76は、所与のシステムについて全てのモジュールの全てのバージョンの取得を行う。GetDMIアクションクラス78は、システムに記述されたDMIの読込みを行う。追加的なアクションクラスとして、GetModulesアクションクラス76を元に生成された、モジュールの現在割当中のバージョンを取得するためのGetSKUModulesアクションクラス80が示されている。以上のアクションクラスは単に例として示されているのであって、ここでの開示範囲から外れることなく、階層の中に望む通りにどういった数のクラスを定義してもよい。クラス階層は、アクションがどういった要素を共通的に有しているか、またどの程度までプログラマが継承を利用したいかに依存して、少ない層、または多くの層により定義される。
図5は、一例として、MINDSの実行オブジェクト90が、最上位のGUI層92、中位の管理層94、及び下位のアクション層96によって階層化される様子を示しており、管理層94にはアクションライブラリ、アクションツリー及びアクションを有する。MINDSをこれらの異なる層に分割することにより、層の間のインターフェイスを通して情報のやり取りが制御され、一方で変更が典型的には1つの層で分離して行われることでリスクが減少し、信頼性が向上するといった数多くの利点がもたらされる。いわゆる当業者であれば、本発明の開示範囲から外れることなく、望む通りにどういった数の層にシステムを分割してもよいことを理解するであろう。
好適ではないまでも、GUI層92の生成は任意的であって、その機能をMINDSシステムの外部で供給するか、または個々のアクション内に置いてもよいことが理解されるべきである。図5の実施形態では、GUIのコンポーネントを、ステータスウィンドウGUI98、メインメニューGUI100、及びアクション“n”GUI102を有するように描いている。GUI層92は管理層94と関連付けられるが、システムを厳密にイメージ化することと他の関連する処理の間で相乗効果を狙って、他の実行オブジェクトと結合させてもよい。
GUI層92と管理層94の間には、利用者がステータスウィンドウを通してマネージャを制御するという例としての行動104と、利用者の入力を受け取るブロック106が示されている。
中位の層は管理層94であり、そこにはマネージャ自体と、アクションライブラリ、及びアクションツリーが含まれる。マネージャは、MINDSシステムの全ての他の部品を直接的、または間接的に制御する実行オブジェクトであり、その部品には、アクション、アクションツリー、アクションツリー内のノード及びアクションライブラリが含まれる。マネージャは、編集可能なテキストファイルから要求に応じてアクションライブラリにより生成される、アクションツリーのインスタンスを有する。
マネージャは、アクションツリー内でアクションの配列を制御し、利用者の入出力との結び付けを行う。アクションが正常に終了した際には、アクションはマネージャに終了状態を通知する。この方法で、マネージャは、アクションツリーの枝まで到達したか、さらに実行すべきアクションが無いか、またはアクションツリーが実行を終了したかどうかを判定することができる。もし実行すべきアクションが残っている場合は、マネージャは通常、ツリーに次のアクションを実行するように信号を返す。マネージャによってアクションを実行するよう通知された後は、マネージャはそのアクションが終了したという信号を待って保留状態となる。
マネージャ94の実施形態の例が、アクションツリーの形成とアクションツリーの実行の両方を制御できるアクションマネージャのルーチン108と共に示されている。アクションツリーの形成は、アクションライブラリ112内のアクションからブロック110ごとに行われ、アクションツリー114が実行のために形作られる。アクションツリーの実行は、マネージャが所与のツリーに初期化されるブロック116において始まり、形成されたアクションツリーがブロック118ごとに実行される。ブロック120において判定されるように、少なくとも1つのノードがアクションツリーに残っている限り、アクションはブロック122ごとに選択され、各ノードはアクション層96において小型化されたコードを持つ1つのアクションを実行する。マネージャは、利用者入力のブロック132を通して、ユーザインターフェイス層のGUI92と、アクションnのブロック130として描かれているアクションを接続する。
最下層はアクション層96であり、ここにはアクションA126、アクションB128に始まり、アクションN130までとして描かれている、事前にコンパイルされたアクションが含まれる。アクション層96内の各アクションは、好適には、単一の(原子性を持つ)アクションを含むと理解されるべきである。アクションツリーは1つまたはそれ以上のノードを有し、各ノードはアクションツリー内で1つのアクションのインスタンスを指し示している。ここで、それぞれ別々のアクションが、それ自身のGUIを持ってもよいことが思い出されるべきである。これら様々なGUIは、好適には、利用者がMINDSシステムと通信するためのインターフェイスを提供する。
図6は、図5に示した階層化構造にあてはめられたモジュール140の一例を示している。ここでMINDS2x.exeと呼ぶところのMINDSの実行オブジェクトは、管理層としてのコードを含んでいる。ここで新しく生成された操作ごとにこのコードを修正する必要が無いことは、容易に理解されるべきである。ActionLibrary.dll144と呼ぶアクションライブラリは、アクションライブラリとアクションツリー、及びアクションツリーのノードクラスを含む。アクションクラス内で利用可能なアクションの組合せは、Actions.dll146の中に描かれている。MINDSシステムを通して用いられる設定用クラス(Setup classes)とライブラリは、MindsCom.dll148とし、ActionLibrary.dll144及びActions.dll146と関連付けられる。起動されたプログラムスレッドの活動を制御するスレッドクラスは、MindsThreads.dll150の中で描かれている。SMSシステムを用いてイメージ構成データベースと交信するために必要なクラスは、Minds2.dll152とされ、Actions.dll146及びMindsThreads.dll150と関連付けられる。
図7は、マネージャがどのようにアクション160を制御するかを、アクションへの実行要求とアクション終了時の通知の受け取りを例として示している。マネージャは、ブロック162において実行中となっており、ツリー内の次のアクションをブロック164において起動する。ブロック166にて要求は付随するツリーノードに送られ、ブロック168にてアクションXの実行が開始される。ユーザインターフェイスの応答性能を向上させるために、アクション用のスレッドはブロック170において生成してもよいが、これは特に資源や時間に影響の大きい活動(例えばネットワークとハードドライブ間のファイルのダウンロード/アップロード等)を伴う利用の場合に適している。スレッドの完了はアクションXの完了として描かれている。アクションにおける重大なエラーは、結果としてマネージャに返却されるように示されている。実際に、1つの実施形態としては、正常終了だったのか、何らかの失敗があったのかをマネージャに通知するために、実行中の各アクションは、メッセージをマネージャに返すようになっている(メッセージがブロック168からブロック162に返されていることに注目)。重大な失敗のメッセージを受け取ると、マネージャはプログラムを続行できるか、及びアクションツリー内のさらなるアクションの処理を停止するかの判定を行う。図12aにあるとおり、エラーメッセージ用のダイアログボックスを表示し、これにより利用者に対してマネージャを推奨されるとおり完全に停止するか、警告にも関わらず続行するかの選択を可能にすることもできる。
前述の図から分かるとおり、マルチスレッドがMINDSで利用されるもう1つのソフトウェア工学の概念である。アクションが基盤イメージのダウンロードといった大きなタスクを実行しようとする場合、その大きなタスクを実行するためのスレッドが立ち上げられる。スレッドを分けて立ち上げることは、他の要求への応答を自由に行えるということである。MINDSのこの実施形態では、アクションのマルチスレッド化は利用していないが、アクションの実行は非同期に行っている。MINDS内での「マルチスレッド化」の原理上の目的は、利用者の経験上の利益であって、システムの利用者への応答性がよりよくなるということである。MINDSが1つのスレッドを使ってネットワークからのファイルのコピーといったアクションを実行している間、利用者はステータス情報を見ることもでき、処理を起動したり停止したりすることもできるが、それは他のスレッドが用いられるからである。反対に、もしMINDSが1つのスレッドしか用いていなければ、ネットワークからのファイルのコピーの最中は、プログラム全体及び表示画面が動かなくなり、利用者の入出力または画面の更新もできなくなる。スレッドが終了した際は、スレッドが完了したという通知を行うメッセージがマネージャに返却される。その最終結果として、システムは条件によってより応答性がよくなるのである。しかしながら、同じような利用者のアクションの非同期性は、真のマルチスレッド化、マルチタスク化、割込み、またはいわゆる当業者が知っている他の仕組みによっても得ることができることが理解されるべきである。
アクションのインスタンスは、アクションツリーと呼ばれる論理的なツリーにグループ化される。MINDS内の特定の操作モードは、それぞれ異なるアクションツリーに対応する。これは、ある特定のイメージ化工程が、独立したアクションツリーまたはアクションツリー内の所定の経路のいずれかになることを意味している。利用者は、どの操作モードを実行すべきかを、MINDSの実行開始時に現れるメインメニューにて選択する。もし所与の時間内(例えば、3分)で選択が行われなければ、既定値の操作モードが実行される。既定値は、典型的には、共通的な操作を繰り返して行うことを認める無人モードである。
図8は、アクションツリー180に体系付けられたアクションの一例を示している。どのような数のアクションを利用可能としてもよいが(典型的には5以上のアクションがある)、ここでは利用可能なアクションがアクションA182からE190まで表されている。図の上部に示された利用可能なアクションは、アクションライブラリ内で利用可能なものを示す破線で描かれている。図の下部には、本発明に従って実行できるアクションツリーとなるように、ライブラリから結合されたアクションが示されている。この例では、アクションツリーは、基礎となるアクションC186を有し、そこから最初の枝としてアクションB184及び終端の前のアクションA182が分岐しており、2つ目の枝としてアクションE190、アクションE190に続くアクションC186、さらにアクションA182またはアクションDのどちらかに分岐している。アクションライブラリ内のアクションのコーディングは再入力可能であるため、各アクションについて、望むとおりに何度でもインスタンス化されてよいことが理解されるべきである(ただし特定の機能向けに、再入力不可能なアクションもサポートすることはできる)。
アクションツリー内の各アクションは、アクションツリー内で持つことのできる子のアクションの正確な数を指定する。これら子のアクションは順番に並べられ、連番が付される。アクションが終了した際は、どの子または兄弟のアクションが次に実行されるのかの判定が求められる。この問い合わせに対して、どのアクションを次に実行すべきかを示す応答が返される。好適な実施形態においては、アクションは互いに独立しており、アクションは次に実行されるべきアクションを特定するのではなく、どの番号かだけを特定することに留意すべきである。
例えば、「はい」、「いいえ」の2つのボタンを持つダイアログであるメッセージボックスについて考えてみて欲しい。これら2つのボタンのうち1つをクリックすることで、アクションを終了することになる。アクションツリーがメッセージボックスに対してどの子アクションを次に実行すべきとして終了したかを問い合わせた際、メッセージボックスは、「はい」がクリックされれば「子1を実行」、「いいえ」がクリックされれば「子2を実行」とだけ返答する。アクションは「次にモジュールをコピーするアクションを実行」とは返答しない。その結果、アクションツリーの特定の階層構造内で所定のアクションを組合せた順列または結合とすべきということが無くなり、どのアクションも、他のどのアクションの子としても指定することができるようになる。各アクションは“共通的な”方法でマネージャに応答を返し、前述の例ではアクションツリー及びその中で定義されたポインタとして解釈される数字が提供される一方、アクションツリー自身は全ての特定のアクションへの参照を含んでいる。
各アクションは他のアクションから独立しているが、アクションは、例えば利用者の入力などの情報をアクション間で中継するための通信を行う。例えば、1つのアクションは、利用者にどのモジュールを受注仕様生産のイメージ化のために使用したいかを問合せてもよい。利用者の応答は、その後モジュールをコピーするアクションに伝えられなければならない。1つの実施形態によれば、この通信を提供する解決策としてMINDSの設定用クラスを介する方法がある。この設定用クラスは、全てのクラス間で中継される可能性のある情報の入れ物となる。アクションツリーは、MINDS設定用クラスを、各アクションに対してそれが実行される際に受け渡す。
図9は、単純な親子のツリー状のアクションの流れを表したアクションツリー200を示している。ブロック202におけるルート(root)へのポインタは、アクションA204と接続し、アクションA204は4つの子アクションとしてB206,C208,D210、及びE212を有している。子の選択はDMIの値、利用者の入力等に依存する。図において、アクションF214及びアクションG216がアクションBの子アクションとして実行されているように、他のアクションはそれぞれの親から順番に実行される。同様に、アクションH218、I220、J222及びK224はそれぞれの親ノードと結合している。しかしならが、図で示したこの親子関係には、例えば各アクションにどれだけの数のポインタを保持するべきなのか、またツリーを通して何回再帰を行えばいいのかが分からないという欠点があることが認識されるべきである。この例では、各アクションはアクションツリー内で持つことのできる子の数の組合せを保持し、その数は変更することができない。そうすると、例えば各アクションにとって妥当ではない数の子を持つといった、論理的に正しくないツリーが定義され得るという問題が発生する。もし論理的に正しくないツリーがMINDSにおいて用いられると、アクションツリーの区域(segment)に処理が到達しないか、悪くすれば、あるノードが次に実行すべきアクションとして存在しないものを指定し、システム停止を引き起こすかも知れない。
図10は、アクションツリーの好適な実施形態として、アクションツリーが、最初の子と次の弟を持つ方法によって内部表現された実施形態を示している。各アクションツリーのノードは、子へのポインタ(存在しなければ空値)及び弟へのポインタ(存在しなければ空値)を保持するように構成される。この実装では、ツリー内の各ノードは2つのポインタを持つ:1つは最初の子であり、もう1つは次の弟であって、これならば小さな固定の数のポインタしか要求されない。好適な実施形態としては、例えばスタックを利用するような履歴の仕組みによって、親のポインタの利用に多くの利点をもたらしている。この方式の実装にはいくつかの利点があるが、各ノードに2つのポインタのみが求められることにより、アクションツリーのメモリが保全されることも含まれる。他の利点としては、ツリー内の経路の探索が、再帰によるツリーの走査といった単純なプロセスとなることがある。図10に目を通せば、一般的な同じ構造が表現されている一方、プログラムにより移動を縦方向にするか横方向にするかを決められることが分かる。
これらアクションツリーは、MINDSが実行時に読み込むテキストファイル内に蓄積される。そのツリーにはアクション及び他のツリーのノードへのポインタを含むが、アクションそのもの、または管理層そのものが直接アクションの参照を保持するのではないことが認識されるべきである。様々なツリーをそのファイルに蓄積することによって、ツリーの中身と順序はどんなコードをも再コンパイルする必要なく変更することができる。これにより、アクションの機能を変更しなくてもよい場合に限り、MINDSに対して素早い変更が可能になる。組み立てられたツリーに対しては、論理的に正しくないツリーは許可しない方がいいため、好適には、実行前に論理的な正確性のチェックが行われる。
図11Aから図11Eは、子−兄弟木(child−sibling tree)の走査230について表している。ツリーは、図11AのアクションA234から出発する実行ポインタ236によって走査され、スタックの上端(TOS)にはアクションAに向けられたポインタ238が含まれる。図11Bでは、実行はAからCへ進み、実行ポインタ236は現在アクションC246を指しており、スタックにはアクションAへのポインタ238、及びTOS上にアクションCへのポインタ252が含まれる。図11Cでは、実行ポインタ236はアクションF248に位置し、アクションFへのポインタ254がTOSに含まれる。この例において、利用者には実行されたアクションの一覧である履歴一覧が提示され、利用者はそこから過去のいかなるアクションステップをも選択して戻ることができる。図11Dでは、利用者はアクションA234に戻ることを選択し、そこでスタックからアクションFへのポインタ254と、アクションCへのポインタ252が取り出され、実行ポインタ236がスタックから再度読み込まれ、図11EにおいてアクションAの実行が再度開始される。
アクションツリーのノードは、好適には、ツリーの上を見て親を指すポインタを含まないことが認識されるべきである。スタックの仕組みは、前述したとおり、過去に実行したアクションに向けてツリーの上方向に戻る方法を提供するために利用される。スタックは、アクション名及びその特定のアクションのインスタンスへのポインタを含むが、ここでアクションは1つの所与のアクションツリー内で複数のインスタンスを持ち得るということが想起されるであろう。現在のアクションは常にスタックの上端にあり、これらポインタは過去のどのアクションにも戻れるようにスタックから取り出し得ることになっている。さらなるスタックの仕組みの利点は、データをスタック内に履歴の一部として維持できることにより、利用者が過去のどのアクションステップにも、そのステップに最後に到達した時点でのパラメータ及び構成を維持しつつ、戻ることができるという点にある。
新しいアクションをコーディングする際、前記実施形態の例によれば数多くのステップを実施しなければならないが、他の実施形態では、必ずしもそのステップは求められない。その実施形態の例においては、継承元のクラスにおいて、Start()、SetNumCoices()、及びTerminate()の全てを仮想関数とするべきである。この方法によって、動的結合が実現され、所望のコードがランタイムで実行される。以下がMINDSに新しいアクションを追加する際の基本的な手続きである:
(1)Minds2xの作業場所(workspace)が開かれているか確認する。
(2)“アクション”をアクティブプロジェクトとする(プロジェクト|アクティブプロジェクトを設定|アクション)。
(3)ツリーのファイル内で特定したアクションの名前として、文字列を文字列表(string table)に追加する。また、画面名または当該アクションについて利用者への説明として表示する文字列を文字列表に追加する。好適には、2つの説明の1つは現在形で書き、1つは過去形で書く。このとき、新規作成した表示文字列を設定するために、コンストラクタの中でSetDisplayName()関数を確実に呼ばなければならない。
(4)もしユーザインターフェイスを必要とするアクションを生成するのであれば、以下のことを行う;
(A)使用するダイアログを生成し、所定のダイアログの識別記号を設定する(生成した各ダイアログの資源は一意の識別記号を持つ)。
(B)生成したダイアログの前記識別記号を元に、CDialogクラスを継承して新しいクラスを生成する。
(C)生成した前記クラスのヘッダファイルを開き、インクルードするファイルに“AbstractAction.h”を追加する。
(D)ヘッダファイルに、“,public AbstractAction”という記述を宣言クラスとして追記する。例として、クラス“UIAction:public CDialog”は“UIAction:public CDialog,public AbstractAction”となる。
(E)モジュールのダイアログが生成されるように、コンストラクタ内に“Create(IDD,pParent);”という記述を追記する。
(F)画面を消去できるように、Finished()関数を実装し、AbstractAction::Finishedを呼ぶ。
もしアクションの生成においてユーザインターフェイスが必要なければ、アクションはAbstractActionクラスから継承する。
(5)新しく生成したアクションのヘッダファイル内で、“resource.h”をインクルードファイルに追加する。
(6)AbstractActionクラスのStart()、Terminate()、及びSetNumChoices()という純粋な仮想関数を実装する。
(7)コンストラクタ内で、SetNumChoicesを呼ぶ。(ここで最初の数字をゼロとするゼロ基準ではなく、最初の数字を1とする1基準(1 based)とする。)
(8)コンストラクタ内で、文字列表に追加された文字列から画面名(履歴及び現在の操作)を設定する。
(9)アクションが行われた際(これはゼロ基準)に、iSelectedChoice変数を設定していることを確認する。これは当該クラスのFinish()関数を所定の場所またはどこか別の場所に実装することで行うことができる。
(10)アクションがCDialogクラスをも継承している場合は、全てのアクションは1回以上呼ばれる可能性があるため、画面が消去され、または生成されるかの動作を追跡すべきである。これは、論理型のプライベートメンバ変数を追加することによって行うのが最もよく、画面が生成または消去されたときにその変数を設定する。よって、前記変数はコンストラクタ内で設定され、Start()、Terminate()、及びDestroyWindow()内で設定/確認される。
(11)アクションはアクションのリストに追加される。これは、次のように行われる:
(A)“ListOfActions.h”を開く。
(B)新しく生成したクラスにインクルードを追加する。
(C)ListOfActions.cppファイル内のAllocateAction::Create(LPCTSTR sName)関数に、新しいアクションを生成するための区域を追加する。例として、アクション“NewAction”として次のコードが追加される;
Figure 2008538026
もしアクションが例えばCRCの生成やブリッタなどの大規模な機能を実行するのであれば、その大規模なアクションは新しいスレッドとして立ち上げられるべきである。この場合、WaitForSingleObject()関数を利用するべきではない。アプリケーションスレッドが待ち状態となり、他のイベントへの応答ができず、MINDSが停止したように見えるためである。その代わりに、スレッドの実行完了を待っている間に他のメッセージを処理できるように、スレッドはスレッド終了時にメッセージをアクションに返却することとすべきである。
操作モードが選択された際には、それに対応する、アクションツリーを特定するテキストファイルがアクションライブラリに渡される。ライブラリはツリーが論理的に正しいことを確認し、もし正しくなければ、MINDSはエラーを表示して終了する。ツリーが論理的に正しい場合は、アクションライブラリがコンポーネントの動的割当てによってアクションツリーを生成する。その結果、アクションライブラリはツリーが論理的に正しいことを検証するだけではなく、好適には、コンポーネントの割当てと解放の責任を負い、アクションツリーの作成をも行う。つまり、MINDSが用いるアクションツリーは、実行時にヒープ領域に動的に生成されるのである。
システムは、アクションツリーを生成する間、及び実行の間、数多くの検証(checks)を提供する。警告などの重大でないエラーは利用者に通知されるものの、実行は継続される。重大なエラーとは、アクションの実行時にアクションがタスクを正常に終了させられないようなエラーの発生と定義される。
図12は、重大なエラーに関するメッセージボックス260の一例であり、重大なエラーが発生した際に表示されるものである。アクションは、エラーを扱うメッセージボックスを表示し、その後実行を停止すると共に、重大なエラーが発生したことをアクションツリーに通知する。アクションツリーはその後、アクションが終了して重大なエラーが起こったというメッセージをマネージャに返却する。利用者は、メッセージボックスを通して重大なエラーが起こったことを知る。この時点で、利用者はアクションを再試行するか、エラーを無視するか、またはアクションツリーの実行を中断するかを選択できる。
本発明に係る実施形態によるMINDSシステムを使用するために、利用者は、システムに電源を入れ、例えばMINDS起動用CDからシステムを起動する。MINDS起動用CDは、好適には、CDに含まれるWinPEオペレーティングシステム(または目的とする他のオペレーティングシステム)を起動する。利用者が必要とされる全ての入力を行った後、イメージ化工程は開始する。この時点で、これ以上の利用者の入力が求められることはなくなり、技術者または他の利用者はシステムの前に残らなくてもよく、選択したイメージ化工程の実行中に他の活動を行うことができる。イメージ化工程が開始した際、ハードドライブが構成され、必要なファイルがシステムに読み込まれる。システムはその後再起動し、ハードドライブに前回読み込まれたオペレーティングシステムが立ち上げられる。そしてMINDSは、モジュールをインストールし、システムのクリーンアップを行い、シャットダウンする。シャットダウンの後、システムは完全にイメージ化され、使用できる状態となる。
利用者が真に解放されて他のタスクを実施できるようになることを保証するため、本システムの1つの付随的な特徴として、所与のPC上のイメージ化工程の状態を利用者が社内のネットワークを通して確認できる仕組みが提供されており、イメージ化工程が正常終了したのか、致命的なエラーが起こったのかを判断するために、利用者が物理的に戻る必要はなくなっている。その代わりにMINDSは、電子メールによるメッセージなど利用者へのメッセージを、イメージ化のエラーまたは完了に関する応答として自動生成することができる。
MINDSをWinPEの下で運用するとき、.NETで書かれたプログラム及びVisualBasic6.0によるプログラムは動作しないことに注意すべきである。その影響で、MINDSはMicrosoftVisualC++6.0サービスパック6によってコーディングされている。C++言語を使用することにより、MINDSバージョン2の設計を実装するために必要なオブジェクト指向プログラミングの特徴も提供される。
MINDSの複雑なソースコードは分割され、例えば現在説明している実施形態の実装においては、250を超える数のファイルになっている。変更を分離し、ソースコードの管理を容易にするために、これらソースコードのファイルは、それぞれが実行オブジェクトまたはダイナミックリンクライブラリ(DLL)に等しい6つのプロジェクトにカプセル化される。この6つのプロジェクトへのコードの分割によって、変更があった際に通常は1つのプロジェクトのみを再コンパイルすればよいため、コードのコンパイルをより素早く行うことができるという、追加的な利点を持つことになる。
MINDSには、伝統的なソフトウェア工学のライフサイクルの枠組みが用いられた。従って、何らかのコーディングが始まる前に、MINDSの設計の全体が文書化された。これにより、設計の不備をコーディングの開始前に発見し、修正することができた。もう1つの利点は、全ての設計時の課題が設計段階で解決されたことで、MINDSのコード作成が素早い工程となった。
本発明に係る実施形態では、利用者がやり取りするための複数のGUIが存在する。管理用のGUIは常に表示されており、それによって利用者がMINDSを制御することができる。マネージャは、利用者がイメージ化工程を一時停止し、または過去のステップに戻すことを可能にするが、これは従来のMINDSまたは他のイメージ化システムでは不可能だったことである。加えて、利用者はコマンドプロンプト画面を開いて、MINDSの設定用クラスの内容を見ることができ、または利用者の手引きを見ることができる。また、個別のアクションがGUIを有してもよいことは理解されるべきである。
限定ではなく一例として、現在のシステム実装においてMINDSの使用時には69個のアクションが利用可能となっている。アクションツリーは、これらのアクションをつなぎ合わせて生成される。操作モードは、典型的には別々のアクションツリーに対応し、MINDSを立ち上げた際に最初に現れるメインメニューのGUIから選択される。操作モードのとり得る数は無限であるが、実際には少ない数のみ実装されている。少数の操作モードは、そのモードとして利用者を認証するために、ユーザネームとパスワードを要求し、これらのモードは制限付操作モードと呼ばれる。現在の実装に従った操作モードは、9個から41個の間のノード、つまりアクションのインスタンスを含む。イメージ化工程が41個のアクションを含むという事実は、イメージ化が単純な工程ではないということを表している。
図13は、メインメニュー画面270の一例としての実施形態であり、利用者によって選択可能な数多くのモードを示している。ここに描かれた実施形態において、メインメニュー画面は、MINDSが起動した後に利用者が目にする最初のダイアログである。画面のタイトル行272は、説明書き274の表示部の隣なりに位置し、この場合はXX秒以内に選択が行われないと無人モードが自動的に選択されるという、時間切れに関する付随的な通知がなされている。選択メニューの一覧278によって、例えば所望の一覧の項目をダブルクリックすることによって、利用者に一覧化されたどのモードを選択させることもできる。
ここでは示されていないが、特定のモードは、利用者の認証レベルまたはシステムの操作が行われているサブネット、及び他の制限に関する基準に依存して、アクセス不可とされるか、一覧化さえされないようにしてもよいことが理解されるべきである。この実施形態においては、利用者はSMS(またはソニーのVSMS)のユーザネームとパスワードによってログインを要求される。利用者が権限の無いアクションの実行を試行した場合には、エラーを発生させることができる。代わりに、利用者に所与のアクションを実行する権限が無ければ、一覧化された項目を選択不能にし、好適には、選択不能であることを淡い縁取りや影付などに限られない方法で、画面に表示してもよい。
MINDSは、イメージ化の操作モードがどれだけの数であってもサポートすることができると理解されるべきであるが、限定ではなく例として、図示されたようなモードを含む。(1)無人モード(Unattended Mode)−MINDSバージョン2の既定値のモードであり、利用者が起動後3分の間に他を選択しなければ選択される。このモードでは、所与のシステムのDMIを用いて、VSMS内で特定されたコンポーネントにより、システムがイメージ化される。(2)工場用モード(Factory Mode)−無人モードに似ているが、VSMSの代わりに工場用のデータソースが用いられるモード。(3)在庫管理単位選択(SKU Selection)−利用者が選択したプロジェクトの基準によりコンポーネントを選定できるモード。(4)上級モード(Advanced Mode)−在庫管理単位選択に似ているが、いくつかのコンポーネントについて古いバージョンも選択できるなど、利用者により多くの選択肢が与えられるモード。このモードは、全ての操作モードの中で、利用者に最も多くのカスタマイズを提供する。(5)自由ダウンロード(Freestyle Download)−利用者が全体のイメージ化工程を実施することなく基盤イメージをシステムにダウンロードできる、制限付の操作モード。(6)一体型イメージダウンロード(Monolithic Image Download)−在庫管理選択に似ているが、利用者によるイメージ化工程の制御をより多く認める制限付操作モード。(7)イメージアップロード(Upload Image)−基盤イメージをシステムから取得してイメージ保存サーバへアップロードする、制限付操作モード。イメージはクリーンアップされ、アップロードの開始前にイメージ識別子が設定される。(8)自由アップロード(Freestyle Upload)−イメージをLAN内のどこへでもアップロードできる制限付操作モード。前記イメージアップロードモードにおいてサーバへアップロードされるイメージと異なり、これらのイメージは変更されることが無い。(9)Mコード用フロッピー(登録商標)作成(Create Mcode Floppy)−システムのDMIを記述したMコード用のフロッピー(登録商標)を利用者が作成できるモード。なお、イメージに関連するどのような機能を実行するための他のモードも、生成することができると理解されるべきである。
図14は、本発明に係るこの実施形態例において用いられる、ステータス画面290を示している。ステータス画面は、好適には、MINDSモードが選択された際に表示され、MINDSシステムが開いている間は表示され続ける。タイトルブロック292が画面内のステータス表示部の上に見えており、ステータス表示部には、一連の利用者が選択する命令296−306が、仮想的な画面上のボタンとして表示されている。そのボタンは、ウィンドウに基づくGUIの枠組みによるボタンや他の選択用部品などの、伝統的などの方法によっても実装し、位置指定装置、接触型表示装置、または同様の装置によって選択することができる。典型的には、例えば選択不能な項目を薄い色で表示し、または全く非表示にするといったことにより、所定の時点で選択可能な利用者のステータス命令のみが選択できるように表示される。
“MINDSの終了”ボタン296は、利用者がアプリケーションを終了し、システムを再起動できるようにするために表示されている。“メインメニュー”ボタン298は、利用者が現在の活動を破棄し、好適には一時停止し、別の操作モードを選択するために(または現在選択しているモードを再開するために)メインメニューに戻れるように表示されている。この実施形態においてメインメニューボタンを選択すると、現在使用しているデータはいずれも破棄されるか、またはその代わりに、新しいモード及び構成に干渉しないように別の場所に保存される。メインメニューを選択すると、MINDSシステムは再起動することなく開始される。“ステップ”ボタン300は、利用者がアクションツリー内のアクションといったステップごとに工程を実行できるように表示される。ステップの実行は、“中断(Break)”命令または直前の“ステップ”命令に対する応答時など、システムが一時停止しているときにのみ行うことができる。“ヘルプ”ボタン302により、モードや利用者にとって利用可能な他の選択肢に関する情報を提示することができる。
“詳細”ボタン304は、MINDSシステムに使用されている現在のデータを表示する窓を開いたり閉じたりするために用いられる(例えば、“詳細>>”は開くことを、“詳細<<”は閉じることを示す)。ここで表示されるデータの組合せは、ソフトウェアコンポーネント、現在の操作モードなどを含んでいる。“中断”/“再開”ボタン306により、利用者は、現在の操作が完了した後に実行を一時停止することができる。システムが中断命令を実行して一時停止すると、ボタンには“再開”と表示され、利用者はそれにより実行を再開することができる。本実施形態においては、“メインメニュー”、“MINDSの終了”及び“ステップ”ボタンは、“中断”ボタンが押されるなどして実行が一時停止していない限り表示されない。加えて利用者は、一時停止している間、一覧からステップを選択する手続によって、過去のどのステップにも戻ることを選択できる。
ステータス行308は、現在の操作モードを示している。履歴ステータス領域310は、例えば原子性を持つとされる各アクションを1行に表示するといった形で、これまでどのアクションが実行されたかの記録(log)を示している。本発明に係るこの実施形態によれば、一覧の最後の項目が、一番最近行われたアクションである。工程を一時停止すると、利用者は、例えば所望の一覧の項目をダブルクリックするなどして、これらのうちどのステップを選択し、過去のそのステップに戻ることもできる。もう1つのステータス行312は、アクションツリー内で現在実行されている処理を表示している。
デバッグ用画面314は、利用者がイメージ化工程をより制御できるように表示される。この例においては、利用者は初期設定用ファイル(Ini file)から設定を読み込み(316)、初期設定用ファイルから設定を保存し(318)、“PacificIni”から設定情報を取得し(320)、設定を消去し(322)、及びコマンドプロンプト画面を立ち上げることができる(324)。
時間ステータス表示領域326には、現在のシステム時間、MINDSが実行を開始してからの経過時間、及び工程内の所与のステップの時間など付随的な他の時間関連の状況が表示される。
図15A及び図15Bは、現在のイメージダウンロード状況下でどのイメージを一緒に用いるかを決定するための、基本単位選択画面330を描いている。タイトル行332はステータス表示ボックス334の上に表示され、ステータス表示ボックス334は説明書き及び一連の選択肢336を表示する。選択画面336の中では、コンボボックス338から350に描かれたような、基本単位を確立するための数多くのパラメータが入力できるようになっている。
例えば在庫管理単位選択や上級モード、イメージアップロード及びMコード用フロッピー(登録商標)の作成などの特定の操作モードによって操作を行う際には、基本単位を選択しなければならない。限定としてではなく例としては、基本単位の選択は、簡単に述べているような操作モードに依存する。在庫管理単位モードでは、利用者は現在割り当てられたイメージのみをネットワーク上に存在する場合に選択できる。もし利用者がプロジェクトの選択を試行してイメージが見つからなければ、利用可能なイメージが無いという警告が表示され、他のイメージの選択に導かれる。上級モードでは、利用者は、ネットワーク上で利用できる限り基本単位に割り当てられた全てのイメージを選択できる。イメージアップロードモードでは、利用者はプロジェクトに割り当てられたことのあるイメージを選択できる。利用者は対象システムからイメージをアップロードするため、基本単位向けのイメージはネットワーク上にアップロードの前から存在する必要が無いことは理解されるであろう。Mコード用フロッピー(登録商標)の作成モードでは、利用者はプロジェクトに割り当てられたことのある全てのイメージを選択できる。
基本単位の選択は、多くのフィールドに対する選択実行または既定値の容認により行われ、本実施形態では、そのフィールドは、プロジェクト(Projects)338、基本単位モデル番号(Base Units)340、Pコード(Pcode)342、販売タイプ(Sales Type)344、コンポーネント(Component)346、BLID348及びソフトウェアリリース(Software release)350として具体化されている。利用者がダウンロードのための特定のイメージを掘り下げて選択できるように、プルダウンメニューが設計されている。そのため、選択用のユーザインターフェイス(UI)は、最上位にモデル番号/名(基本単位)340(例えばPCG−S260)を配置するところから始まり、下に向かってユニットを十分詳細化していけるように作用する。これらフィールドの大きさと構成は、本発明に係る1つの実施形態として表現されたものであって、いわゆる当業者であれば、発明としての困難さを伴うことなく容易に変更することができるものであり、その結果としての実施形態も本発明の開示の範囲に含まれることは理解されるべきである。
Pコード342は、PC(例えばVAIOモデルなど)の下位のカテゴリであり、本実施形態においては、4桁の英数字による特定記号を含む。例としては、モデル番号PCG−S260に対して、PCG−S260の無線LANモジュール無しならばPコードはS001、PCG−S260の無線LANモジュール有りならばPコードはS002といった形で、2つの異なるPコードが存在し得る。モデル番号とPコードのフィールドは共に、好適には、イメージ化で使用するためにBIOSのDMI領域に書き込まれる。
販売タイプ344は、販売経路ごとに異なるソフトウェアモジュールを特定するために、SMSのデータベース内で割当てることのできるカテゴリである。例えば、受注仕様生産の小売向けの販売タイプ(“CTO”)を持つPCモデルは、企業間取引用の販売タイプ(“B2B”)を持つPCモデルと比較して、完全に異なるオプションのソフトウェアによってイメージ化され得る。この場合、販売タイプ“CTO”は、家庭内の利用者向けの、一般的にゲームや音楽用ソフトウェアを含む電子ソリューション(E−Solution)を通して提供され、一方販売タイプ“B2B”は、企業向けの大規模な販売チャネルを通して提供され、生産性ソフトウェア(productivity software)を含むかも知れない。この方法により、製造者は、様々なアプリケーションを特定の市場のセグメントに向けて提供できる(例えば、家庭用、企業用、ゲーム愛好家用、マルチメディア用、CAD用、サーバ用など)。つまり、様々な販売タイプによって、PCの特徴を、モデル番号やPコードを変えることなくさらに洗練させることができるのである。
コンポーネント346は試験時に内部的に使用できるフィールドである。このフィールドによって、例えばソフトウェアモジュールが既に1つの完全なイメージに組み立てられた際に、“一体型の(monolithic)”イメージが導入されるのかどうかといったような、システムに導入される選択に関する情報を提供できる。“コンポーネント”フィールドの選択によって、一般的には、例えば試験部門といったような部署において使用するイメージの組合せの選択を行うことができる。
BLID348は“BIOSロック識別子”を意味し、PCモデルに対する特定のイメージの組合せを指定するものである。例えば、Windows(登録商標)XP HE(ホームエディション)のイメージは、Windows(登録商標)XP Pro(プロフェッショナル)のイメージとは異なるBLIDを持つだろう。いくつかの場合において、Windows(登録商標)XP HEと共に出荷されるPCは、同じハードウェアだがWindows(登録商標)XP Proと共に出荷されるPCとは異なるモデル名またはPコードを持つかもしれない。しかしながら、いくつかの場合ではモデル名及びPコードは同一であり、このフィールドによって、特にモデル番号の割当てが技術領域をまたがって行われたような場合において、製造者が第二の場合を制御することができる。
BLIDは、好適には、出荷されたイメージに対する海賊行為を防ぐためにも使われる。もし利用者がシステムの回復プロセスを立ち上げたときに、回復用イメージ内のBLIDと製造者がBIOSのDMI区域に書き込んだBLIDが一致しなければ、回復プロセスは停止し、利用者に警告メッセージが表示される。この安全対策は、例えば、Windows(登録商標)XP HEのPCを購入した利用者が、その回復用媒体をWindows(登録商標)XP Proと共に出荷された同じモデルのPCに使用するといったことを防ぐことになる。
ソフトウェアリリース350により、同じイメージにおける異なる繰り返し(iteration)の選択を行うことができる。現代の製造者または製造部門における開発サイクルの中で、欠陥を修正し新しいバージョンを公開することにより、2つまたはそれ以上の同じイメージの繰り返しを有することは、珍しいことではない。このフィールドに対する望ましい既定値の選択肢は、試験が終わり基本単位に割り当てられた最新版になるが、プルダウンメニューによって試験の間に異なるイメージの版を選択して既定値を上書きすることができる。
従って、MINDSシステムによるダウンロードすべきイメージの判定は、利用者が1つまたはそれ以上のパラメータを設定し、または規定値を許容したことに対する応答として行うことができる。
一度全てのフィールドが選択され、及び/または文字列が入力されると、基本単位の画面は図15Bのように表示され、利用者はOKボタンを押して選択結果を受け入れるように促される。基本単位画面において、本発明の前記特徴から外れることなく、既定の要素をどういった形に選択してもよいことは理解されるべきである。例えば、フィールドの値は、最新の活動や利用傾向などに従って新しい画面で投入されてもよい。一度選択に満足したならば、利用者はOKボタン352を押下して基本単位の選択結果を実行することができる。
図16は、一例として、本発明に係る実施形態によるモジュール及びスイッチ選択画面370を示している。タイトル行372が選択部品の組合せ374の上部に表示されており、選択部品はOKボタン(送信のための選択)を伴うコンボボックスとして描かれている。モジュール及びスイッチの選択は、特に在庫管理単位、上級モード、Mコード用フロッピー(登録商標)の作成モードなどの特定のMINDSの操作モードにおいて、必要な場合、または許可された場合にのみ行われる。チェックボックスは、該当する要素がイメージの組合せの中に含まれるべきである場合にチェックされる。基本単位のタイプに依存して、チェックボックスのいくつかは要求の通りに選択不能となる。1つの基本単位の中で現れる項目は、他の基本単位の選択画面では現れないかもしれない。というのも、基本単位の選択によってモジュール及びスイッチが同時に利用され得る範囲が決まるためである。典型的には、小売のユニットを生成する場合には、全てのコンボボックスが選択不能となる一方、上級モード及びMコード用フロッピー(登録商標)の作成モードでは過去のバージョンと構成が利用可能となる。結果として、MINDSは、対象システムに完全な部品表(BOM)をコピーする機能を構成することとなる。
イメージ化工程は常に進化しており、その結果MINDSはその変化と同期をとるために頻繁に更新される。MINDSはしばしば、対象のコンピュータシステムの新しい特性に対応するためにも更新される。RAIDはその一例である。こういった更新を行う場合に1つの要所として優先されるのは、設計文書も同時に最新化することである。これは、近年のソフトウェア工学における保守の主要な考え方の1つである。
高度にコンピュータ化されたシステムを開発、試験する間において、システムをイメージ化し直すタスクは頻繁に行われる。MINDSシステムは、様々な革新的な特徴を持つと同時に、広範囲のイメージの組合せを容易にサポートできる機能を提供することにより、サポートのオーバーヘッド(工数)を削減し、イメージ化に掛かる時間の遅延を短縮し、またソフトウェア開発のコストを低減するといった投資に対する大幅な利益をもたらすことができる。ここで述べられた1つの重要な革新とは、MINDS内における、所望のプロセスを定義する、アクションツリーを形成するための交換可能な建築部品のようなアクションの使用である。本発明に係るこの特徴は、イメージ化工程を新しく生成する方法も変えるものである。MINDSによって、以前はソフトウェア開発の実践であったものが、十分な量のいわゆるレゴ(登録商標)ブロックの供給によって所望のどのような小さな構造をも構築できるといったような、ブロックの組み立て工程に変化したのである。MINDSのこの柔軟な枠組みは、本発明の開示範囲から外れることなく、ソフトウェアのイメージ化以外の多くの形態の工程においても利用することができる。
前述の説明は多くの詳細な記述を含んでいるものの、それにより本発明の技術的範囲を制限するように解釈するべきではなく、単に本発明に係る実施形態のうち現時点で好適ないくつかについての説明を提供しているのみである。それ故、本発明の技術的範囲は、いわゆる当業者にとって明白となる他の実施形態を広く包含するものであり、従って本発明の技術的範囲は添付した特許請求の範囲以外のいかなるものによっても制限されるべきではない。ここでの単数の要素への言及は、特にそう記述した場合を除いて“1つ、またはただ1つ”を意味するものではなく、“1つまたはそれ以上”を意味する。前述の好適な実施形態の要素と構造的かつ機能的に同等であって、いわゆる当業者に知られた全ての要素は、ここでの言及に明確に含まれ、本発明の特許請求の範囲に包含されるように意図する。さらに、任意の装置または方法は、本発明が解決しようとする各課題の全てに取り組むことを要さずとも、本特許請求の範囲に包含される。また、本開示範囲内のどのような要素、コンポーネント、または方法におけるステップも、その要素、コンポーネント、または方法におけるステップが特許請求の範囲において明記されているかに関わらず、公衆に解放されることを意図するものではない。また、ここでの特許請求の範囲のどの要素も、“する手段(means for)”という句を用いて明記した場合でない限り、米国特許法第112条第6項の既定に従って解釈されるべきではない。
コンピュータのハードドライブにダウンロードされるソフトウェアイメージに関するブロック図である。 本発明に係る実施形態による、モジュール式のネットワークダウンロードシステムに対する入出力のブロック図として、図中左のネットワーク上の資源とMINDSプログラムのやり取りを示している。 本発明に係る実施形態による、モジュール式のネットワークダウンロードシステムのフローモデルである。 本発明に係る実施形態による、モジュール式のネットワークダウンロードシステムのクラス階層モデルである。 本発明に係る実施形態による、モジュール式のネットワークダウンロードシステムの階層に関するブロック図であり、ユーザインターフェイス(UIF)層、管理層及びアクション層を示している。 本発明に係る実施形態による、モジュール式のネットワークダウンロードシステム内のモジュールのブロック図である。 本発明の1つの特徴に従って管理層がアクションの実行を要求する際のフローチャートである。 本発明の1つの特徴に従って相互接続したアクションツリーのモデルであり、利用可能なアクション、及びそれらアクションのインスタンスを用いるアクションツリーの実装の一例を示している。 本発明の1つの観点によるアクションツリーの一例であり、ツリー内で1つまたはそれ以上の子関係を有するツリーを示している。 本発明の1つの観点によるアクションツリーの一例であり、ツリー内で1つの子、1つの兄弟関係を有するツリーを示している。 本発明の1つの観点によるツリーの走査の一例であり、スタックの内容に関連してアクションが実行される様子を示している。 本発明の1つの観点によるツリーの走査の一例であり、スタックの内容に関連してアクションが実行される様子を示している。 本発明の1つの観点によるツリーの走査の一例であり、スタックの内容に関連してアクションが実行される様子を示している。 本発明の1つの観点によるツリーの走査の一例であり、スタックの内容に関連してアクションが実行される様子を示している。 本発明の1つの観点によるツリーの走査の一例であり、スタックの内容に関連してアクションが実行される様子を示している。に関連してアクションが実行される様子を示している。 本発明の1つの観点によるエラー画面の画面例の図である。 本発明の1つの観点によるメインメニュー画面の画面例の図であり、選択可能な操作のモデルを示している。 本発明の1つの観点によるステータス表示及び制御画面の画面例の図であり、アクション履歴、時間、現在の操作及び命令のオプションを示している。 本発明の1つの観点による基本単位選択画面の画面例の図である。 本発明の1つの観点による基本単位選択画面の画面例の図である。 本発明の1つの観点によるモジュール及びスイッチ選択画面の画面例の図である。

Claims (20)

  1. コンピュータ上のソフトウェアプログラムイメージを自動的に構成する装置であって:
    コンピュータ上のプログラムイメージを構成するためのイメージファイルをネットワーク経由で入手するよう構成された、モジュール式ネットワークダウンロードプログラムと;
    前記モジュール式ネットワークダウンロードプログラム内で特定の操作を行うようにそれぞれ構成された複数のアクションルーチンと;
    前記モジュール式ネットワークダウンロードプログラムによって実行されるツリー状の前記アクションルーチンを定義する手段と;
    を備える装置。
  2. 前記アクションルーチンは、前記モジュール式ネットワークダウンロードプログラムと動的に結合されることを特徴とする、請求項1に記載の装置。
  3. 前記ツリー状の前記アクションルーチンは、コンパイル不要の構成ファイル内にテキスト形式で定義されることを特徴とする、請求項1に記載の装置。
  4. 前記モジュール式ネットワークダウンロードプログラムは:
    前記アクションツリーの走査の間にアクションを実行するように構成された管理層と;
    所望の自動インストールを実行するための前記管理層の操作を制御するよう構成されたユーザインターフェイスと;
    を備えることを特徴とする、請求項1に記載の装置。
  5. コンピュータ上のソフトウェアプログラムイメージを自動的に構成する装置であって:
    動的に結合され、ソフトウェアの自動インストールの間に実行される、複数のアクションを有するアクションツリー層と;
    前記アクションツリー層からのアクションを指す少なくとも1つのポインタをそれぞれ含むノードを、複数有する少なくとも1つのアクションツリーと;
    前記アクションツリーの走査の間にアクションを実行するように構成された管理層と;
    所望の自動インストールを実行するための前記管理層の操作を制御するよう構成されたユーザインターフェイスと;
    を備える装置。
  6. 前記アクションルーチンの前記ツリーは、コンパイル不要の構成ファイル内にテキスト形式で定義されることを特徴とする、請求項5に記載の装置。
  7. 前記アクションは、機能的に独立したアクションであって、所与のアクションツリー内で、及び異なるアクションツリーをまたがって使用され得ることを特徴とする、請求項5に記載の装置。
  8. 前記アクションは、そのうちいずれかを別の実行スレッドとして立ち上げることができ、それによりアクションが他の要求に対して応答できることを特徴とする、請求項5に記載の装置。
  9. 特定のアクションツリーは、操作モードとして前記ユーザインターフェイスにより選択可能であることを特徴とする、請求項5に記載の装置。
  10. 前記ユーザインターフェイスを通して、若しくは前記アクション自体により生成されたユーザインターフェイス、または両方のユーザインターフェイスの組合せを用いて、前記アクションと利用者が対話することを特徴とする、請求項5に記載の装置。
  11. 前記ソフトウェアプログラムイメージは、単一の基盤イメージ、または単一の基盤イメージの組合せと、少なくとも1つのアプリケーションプログラムモジュールを含むことを特徴とする、請求項5に記載の装置。
  12. 前記管理層は、前記アクションツリー内の変更、及び前記アクションツリー層内の異なるアクションの結合と解放への応答として、再コンパイルを必要としないことを特徴とする、請求項5に記載の装置。
  13. 前記アクションツリーの各々の前記ノードは、アクションを指すポインタ、アクションツリーの子ノードを指すポインタ、及びアクションツリーの兄弟ノードを指すポインタを含むことを特徴とする、請求項5に記載の装置。
  14. 前記ユーザインターフェイスは、利用者に前記装置の操作モードを選択させられるように構成されることを特徴とする、請求項5に記載の装置。
  15. 前記操作モードは、操作モードの集合から選択可能であり、その集合は本質的に:無人モード、工場用モード、コンポーネント選択モード、拡張されたコンポーネント選択モード、基盤イメージアップロード、及び自由イメージアップロード/ダウンロード、を含むことを特徴とする、請求項14に記載の装置。
  16. あるアクションを指す前記ポインタは、特定のアクションではなく、そのアクションに係るアクションツリー内の位置を指定し;
    アクション自体が互いに独立を保っていることを特徴とする、請求項5に記載の装置。
  17. 1つまたはそれ以上の前記アクションは、処理用のアクションの集合からアクションツリー内で実行のために選択可能であり、その集合は本質的に:Mコード用の媒体の作成、システムのデスクトップ管理インターフェイス(DMI)からのMコードのアップロード、システムのハードドライブへの基盤イメージのダウンロード、システムのハードドライブへのアプリケーションモジュールイメージのダウンロード、システムのハードドライブからの基盤イメージのアップロード、システムのハードドライブからのアプリケーションモジュールイメージのアップロード、回復用パーティションからの基盤イメージの回復、
    媒体のバージョン検証、ブリッタ、対象ドライブの割当て、基本単位の選択、イメージのクリーンアップと不要なファイルの削除、回復用パーティションへのイメージのコピー、パーティションへのモジュールのコピー、イメージの巡回冗長検査の生成、Mコード用のフロッピーの作成、起動画面の表示、デスクトップ管理インターフェイスの比較の表示、媒体の取り出し、正しい対象ドライブの検索、ハードドライブ情報の取得、ネットワークサブネット上かどうかの検証、実行記録セッションの終了、ネットワークドライブ図の表示、クエリの分割、ハードドライブの分割、再起動、制限ログイン、メインメニューへ戻る、イメージコンポーネントの存在検証、スレッドの生成、から構成されることを特徴とする、請求項5に記載の装置。
  18. コンピュータをソフトウェアプログラムイメージによって構成する方法であって:
    コンピュータ上でイメージ構成アクションを実行する別々の実行可能なアクションの組合せを生成及びコンパイルし;
    選択されたアクションツリー内で定義されたアクションを実行する管理層を生成及びコンパイルし;
    アクションツリーの選択とアクションツリーの実行を制御するユーザインターフェイス層を生成及びコンパイルし;
    アクション及び前記アクションツリー内の他のノードを指すポインタを含むノードを、複数有するアクションツリー構造を生成し;
    アクション、管理層、ユーザインターフェイス層及びアクションツリーを結合して、利用者の入力に応じてアクションツリー内で定義されたアクションを実行するプログラムを生成する;
    方法。
  19. 前記アクションツリーの構造は、子の関係のポインタ、兄弟の関係のポインタ、または子及び兄弟の関係のポインタの組合せに応じて互いに接続されたノードを含み;
    前記ポインタの関係は、アクションツリー内においてアクションが位置しているノードの位置を指すポインタを含むことを特徴とする;
    請求項18に記載の方法。
  20. 前記ソフトウェアプログラムイメージは、単一の基盤イメージの組合せ及び少なくとも1つのアプリケーションプログラムモジュールを含むことを特徴とする、請求項18に記載の方法。
JP2008503253A 2005-03-25 2006-03-23 モジュール式イメージダウンロードシステム Withdrawn JP2008538026A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/090,637 US7653903B2 (en) 2005-03-25 2005-03-25 Modular imaging download system
PCT/US2006/010936 WO2006104940A2 (en) 2005-03-25 2006-03-23 Modular imaging download system

Publications (1)

Publication Number Publication Date
JP2008538026A true JP2008538026A (ja) 2008-10-02

Family

ID=37036668

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008503253A Withdrawn JP2008538026A (ja) 2005-03-25 2006-03-23 モジュール式イメージダウンロードシステム

Country Status (4)

Country Link
US (1) US7653903B2 (ja)
JP (1) JP2008538026A (ja)
CN (1) CN101501637B (ja)
WO (1) WO2006104940A2 (ja)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6886038B1 (en) * 2000-10-24 2005-04-26 Microsoft Corporation System and method for restricting data transfers and managing software components of distributed computers
US8122106B2 (en) 2003-03-06 2012-02-21 Microsoft Corporation Integrating design, deployment, and management phases for systems
US7890543B2 (en) * 2003-03-06 2011-02-15 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications
US8489728B2 (en) * 2005-04-15 2013-07-16 Microsoft Corporation Model-based system monitoring
US20060241954A1 (en) * 2005-04-22 2006-10-26 International Business Machines Corporation Method and system for adaptive action management for business solutions
US7886269B2 (en) 2005-04-29 2011-02-08 Microsoft Corporation XML application framework
US8132148B2 (en) * 2005-04-29 2012-03-06 Microsoft Corporation XML application framework
US8549513B2 (en) 2005-06-29 2013-10-01 Microsoft Corporation Model-based virtual system provisioning
US20070016393A1 (en) * 2005-06-29 2007-01-18 Microsoft Corporation Model-based propagation of attributes
US7941309B2 (en) * 2005-11-02 2011-05-10 Microsoft Corporation Modeling IT operations/policies
US8370423B2 (en) 2006-06-16 2013-02-05 Microsoft Corporation Data synchronization and sharing relationships
KR101288970B1 (ko) * 2006-11-28 2013-07-24 삼성전자주식회사 렌더링 장치 및 방법
US7900203B2 (en) * 2007-04-24 2011-03-01 Microsoft Corporation Data sharing and synchronization with relay endpoint and sync data element
US20080288622A1 (en) * 2007-05-18 2008-11-20 Microsoft Corporation Managing Server Farms
US8924920B2 (en) * 2008-02-29 2014-12-30 Red Hat, Inc. Providing a software appliance based on a role
US9092243B2 (en) 2008-05-28 2015-07-28 Red Hat, Inc. Managing a software appliance
US8868721B2 (en) 2008-05-29 2014-10-21 Red Hat, Inc. Software appliance management using broadcast data
US10657466B2 (en) 2008-05-29 2020-05-19 Red Hat, Inc. Building custom appliances in a cloud-based network
US9032367B2 (en) 2008-05-30 2015-05-12 Red Hat, Inc. Providing a demo appliance and migrating the demo appliance to a production appliance
US9477570B2 (en) 2008-08-26 2016-10-25 Red Hat, Inc. Monitoring software provisioning
US8266684B2 (en) 2008-09-30 2012-09-11 General Instrument Corporation Tokenized resource access
EP2340484A1 (en) * 2008-10-27 2011-07-06 Hewlett-Packard Development Company, L.P. Imaging process
CN103858386B (zh) * 2011-08-02 2017-08-25 凯为公司 用于通过优化的决策树执行包分类的方法和装置
US10229139B2 (en) 2011-08-02 2019-03-12 Cavium, Llc Incremental update heuristics
US9081747B1 (en) 2012-03-06 2015-07-14 Big Bang Llc Computer program deployment to one or more target devices
CN102902770B (zh) * 2012-09-26 2015-04-15 东软集团股份有限公司 一种镜像文件拼装方法及系统
CN103838563B (zh) * 2012-11-27 2017-07-28 台博机器人股份有限公司 自动装置的程序开发方法
US10083200B2 (en) 2013-03-14 2018-09-25 Cavium, Inc. Batch incremental update
US9595003B1 (en) 2013-03-15 2017-03-14 Cavium, Inc. Compiler with mask nodes
US10229144B2 (en) 2013-03-15 2019-03-12 Cavium, Llc NSP manager
US9195939B1 (en) 2013-03-15 2015-11-24 Cavium, Inc. Scope in decision trees
US9417863B2 (en) * 2013-09-27 2016-08-16 Western Digital Technologies, Inc. System and method for expedited loading of an image onto a storage device
CN104699556B (zh) * 2015-03-23 2017-12-08 广东威创视讯科技股份有限公司 计算机的操作系统crc校验方法和系统
CN105930230A (zh) * 2016-04-18 2016-09-07 乐视控股(北京)有限公司 多层镜像的管理方法
CN110091323B (zh) * 2018-01-30 2020-11-24 优必选教育(深圳)有限公司 一种智能设备及机器人的控制方法、具有存储功能的装置
CN115515001B (zh) * 2021-06-22 2023-10-24 荣耀终端有限公司 屏幕镜像方法、装置、设备及存储介质
CN113987423A (zh) * 2021-10-21 2022-01-28 北京天融信网络安全技术有限公司 一种基于进程替换的软件保护方法、装置及设备
US11861363B2 (en) * 2021-10-22 2024-01-02 Sap Se Development landscape build system

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5809251A (en) * 1996-10-09 1998-09-15 Hewlett-Packard Company Remote installation of software by a management information system into a remote computer
US6378127B1 (en) * 1998-09-21 2002-04-23 Microsoft Corporation Software installation and validation using custom actions
US7103647B2 (en) 1999-08-23 2006-09-05 Terraspring, Inc. Symbolic definition of a computer system
US7093005B2 (en) 2000-02-11 2006-08-15 Terraspring, Inc. Graphical editor for defining and creating a computer system
US20020124245A1 (en) * 2000-08-14 2002-09-05 Alvin Maddux Method and apparatus for advanced software deployment
US20020107959A1 (en) 2001-02-05 2002-08-08 Koninklijke Philips Electronics N.V. Customization of decision-tree based control process
US20020167546A1 (en) 2001-05-10 2002-11-14 Kimbell Benjamin D. Picture stack
US20030208378A1 (en) 2001-05-25 2003-11-06 Venkatesan Thangaraj Clincal trial management
US20030001903A1 (en) * 2001-06-08 2003-01-02 Michael Duffy Software-based system for educational tools
US20040103220A1 (en) 2002-10-21 2004-05-27 Bill Bostick Remote management system
US7392165B2 (en) 2002-10-21 2008-06-24 Fisher-Rosemount Systems, Inc. Simulation system for multi-node process control systems
US20040146272A1 (en) 2003-01-09 2004-07-29 Kessel Kurt A. System and method for managing video evidence
US7249353B2 (en) 2003-04-17 2007-07-24 Hewlett-Packard Development Company, L.P. Image-formation device firmware having modular upgrade capability
CA2432631A1 (en) 2003-06-17 2004-12-17 Ibm Canada Limited - Ibm Canada Limitee Method for managing tree presentations in graphical user interfaces

Also Published As

Publication number Publication date
CN101501637B (zh) 2013-08-21
WO2006104940A2 (en) 2006-10-05
WO2006104940A3 (en) 2009-04-16
US7653903B2 (en) 2010-01-26
CN101501637A (zh) 2009-08-05
US20060218547A1 (en) 2006-09-28

Similar Documents

Publication Publication Date Title
JP2008538026A (ja) モジュール式イメージダウンロードシステム
US10565095B2 (en) Hybrid testing automation engine
US7913231B2 (en) Testing pattern-based applications
US9063725B2 (en) Portable management
Dobies et al. Kubernetes operators: Automating the container orchestration platform
US9823900B2 (en) Automated enterprise software development
US6173438B1 (en) Embedded graphical programming system
CA2304020C (en) Method and system for database application software creation requiring minimal programming
US7761865B2 (en) Upgrading pattern configurations
US20090064196A1 (en) Model based device driver code generation
US8296721B2 (en) Template-based software development
US20050240917A1 (en) Software configuration program for software applications
JP2006018827A (ja) スマート・ユーザ・インターフェース記録および再生フレームワーク
JP2004520635A (ja) 石油会社のモデル資産のアプリケーション・フレームワークを有するオブジェクト指向ソフトウェア・アプリケーション
US20050125788A1 (en) Wizard-based installation package with run-time debugging support
US7251724B2 (en) Device environment configuration system and method, and data storage therefor
US7606820B2 (en) Detecting and handling changes to back-end systems
Chappell Introducing blue prism
Burke et al. Java extreme programming cookbook
Cabral et al. MySQL administrator's bible
US8458731B2 (en) Methods, systems and media for installing peripheral software drivers
JP2006512670A (ja) 統合型プロセス・モデラーのための方法及び装置
JP4288017B2 (ja) コンピュータ構成のためのテキスト・ファイルを変更する方法及びシステム
JP2005267644A (ja) 共通言語ランタイム言語におけるリソースのアドレスサポート
Sheldon et al. Professional Visual Basic 2012 and. NET 4.5 Programming

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20080619

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20080619

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080709

A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20090602

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20090811