JP2004342108A - コマンドへの入力パラメータに対するリフレクションベース処理 - Google Patents

コマンドへの入力パラメータに対するリフレクションベース処理 Download PDF

Info

Publication number
JP2004342108A
JP2004342108A JP2004142832A JP2004142832A JP2004342108A JP 2004342108 A JP2004342108 A JP 2004342108A JP 2004142832 A JP2004142832 A JP 2004142832A JP 2004142832 A JP2004142832 A JP 2004142832A JP 2004342108 A JP2004342108 A JP 2004342108A
Authority
JP
Japan
Prior art keywords
command
parameter
computer
readable medium
definition information
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.)
Granted
Application number
JP2004142832A
Other languages
English (en)
Other versions
JP2004342108A5 (ja
JP4889204B2 (ja
Inventor
Jeffrey P Snover
ピー.スノーバー ジェフリー
Iii James W Truher
ダブリュ.トルハー ザ サード ジェームズ
Daryl W Wray
ダブリュ.レイ ダリル
Kaushik Pushpavanam
プッシュパバナン カウシク
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2004342108A publication Critical patent/JP2004342108A/ja
Publication of JP2004342108A5 publication Critical patent/JP2004342108A5/ja
Application granted granted Critical
Publication of JP4889204B2 publication Critical patent/JP4889204B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • EFIXED CONSTRUCTIONS
    • E06DOORS, WINDOWS, SHUTTERS, OR ROLLER BLINDS IN GENERAL; LADDERS
    • E06BFIXED OR MOVABLE CLOSURES FOR OPENINGS IN BUILDINGS, VEHICLES, FENCES OR LIKE ENCLOSURES IN GENERAL, e.g. DOORS, WINDOWS, BLINDS, GATES
    • E06B3/00Window sashes, door leaves, or like elements for closing wall or like openings; Layout of fixed or moving closures, e.g. windows in wall or like openings; Features of rigidly-mounted outer frames relating to the mounting of wing frames
    • E06B3/30Coverings, e.g. protecting against weather, for decorative purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • G06F9/45512Command shells
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B32LAYERED PRODUCTS
    • B32BLAYERED PRODUCTS, i.e. PRODUCTS BUILT-UP OF STRATA OF FLAT OR NON-FLAT, e.g. CELLULAR OR HONEYCOMB, FORM
    • B32B33/00Layered products characterised by particular properties or particular surface features, e.g. particular surface coatings; Layered products designed for particular purposes not covered by another single class
    • EFIXED CONSTRUCTIONS
    • E06DOORS, WINDOWS, SHUTTERS, OR ROLLER BLINDS IN GENERAL; LADDERS
    • E06BFIXED OR MOVABLE CLOSURES FOR OPENINGS IN BUILDINGS, VEHICLES, FENCES OR LIKE ENCLOSURES IN GENERAL, e.g. DOORS, WINDOWS, BLINDS, GATES
    • E06B3/00Window sashes, door leaves, or like elements for closing wall or like openings; Layout of fixed or moving closures, e.g. windows in wall or like openings; Features of rigidly-mounted outer frames relating to the mounting of wing frames
    • E06B3/04Wing frames not characterised by the manner of movement
    • E06B3/06Single frames
    • E06B3/08Constructions depending on the use of specified materials
    • E06B3/20Constructions depending on the use of specified materials of plastics

Abstract

【課題】 コマンドについての入力パラメータをリフレクションベースで処理することを可能にするリフレクションベースのシェルを提供すること。
【解決手段】 リフレクションベースの処理には、解析、データ生成、データ妥当性検査、オブジェクトエンコーディング、オブジェクト処理、文書化などが含まれる。リフレクションベースのシェルは、クラスを使用して入力パラメータに関する文法を指定するための機構を提供する。この方法は、コマンドと少なくとも1つのパラメータとを含む解析可能ストリームを受け取ること、コマンドについての予想されるパラメータを記述する定義情報を取り出すこと、定義情報を使用して、予想されるパラメータの記述に従ったフォーマットで少なくとも1つのパラメータを記憶するためのオブジェクトを生成すること、および、オブジェクトをコマンドに渡すことを含む。
【選択図】 図2

Description

本発明は、コマンドについての入力パラメータをリフレクションベースで処理することを可能にするリフレクションベースのシェルに関する。
マルチユーザコンピュータシステムのシステム管理は、非常に専門化されている。システム管理を担うシステム管理者は、一貫性のない構文やエラー報告などを使用するコマンドを知って理解することが求められる。コマンド間におけるこれらの非一貫性は、コマンドが複数の異なるソフトウェア開発者によって書かれ、各開発者が独自のスタイルを使用するために生じる。これらの非一貫性は、システム管理者にとって困難を引き起こす。
困難の1つは、コマンドのユーザビリティに関係がある。一貫性のないコマンドがあることにより、システム管理を学習し用いることは、より難しくなる。例えば、パラメータ間にダッシュ(「−」)を使用するのを好む開発者もいれば、フォワードスラッシュ(「/」)を好む開発者もおり、さらに別の独特の構文を使用するのを好む開発者もいる。また、開発者はそれぞれ、エラーメッセージの報告でも独自のスタイルを持っていることがある。したがってシステム開発者は、各コマンドごとの構文を知り、各エラーメッセージごとのフォーマットを学習しなければならない。
もう1つの困難は、コマンドの維持に関係がある。例えば、コマンドの1つを書いた開発者が去ってしまったときは、他の誰かが、使用されたロジックを発見しなければならない。ロジックを発見するために、他の開発者は、コード自体を見るか、またはコマンドに関する資料を見なければならない。これらの方法はどちらも、あまり望ましいものではない。
コマンドをより一貫性のあるものにしようとする従来の試みは、共通の機能を実施するルーチンのライブラリを提供することに焦点を合わせていた。このライブラリは、ライブラリルーチンによって提供される共通の機能を実施するのに使用されるコードの量を削減することができるが、開発者はやはり、いずれかのライブラリルーチンを使用することで生じるエラー状況を処理する際に、独自のスタイルを使用する。さらに、ライブラリを使用しても、コマンドラインから入力パラメータを得るためのロジックを各コマンドが含む必要があることには変わりない。このため、ルーチンのライブラリを使用すると、書く必要のあるコードのいくらかを削減することはできるが、依然として、解析、データ妥当性検査、およびエラー報告を実施するために各コマンドごとに生成される重複コードはかなりある。
したがって、コマンドへの入力パラメータがより一貫性のある方式で獲得および処理されると共に、コマンドに必要なコードの量が削減され、すべてのコマンドについてのパラメータ獲得段階の間に一貫性のあるエラーメッセージが提供される環境が必要とされている。
本発明は、コマンドについての入力パラメータをリフレクションベースで処理することを可能にするリフレクションベースのシェルを対象とする。リフレクションベースの処理には、解析、データ生成、データ妥当性検査、オブジェクトエンコーディング、オブジェクト処理、文書化などが含まれる。このリフレクションベースのシェルは、クラスを使用して入力パラメータに関する文法を指定するための機構を提供する。第三者の開発者は、クラスを使用して、自分のコマンドに関する文法を指定する。動作時、本発明は、解析可能ストリームを受け取る。解析可能ストリームは、コマンドライン、音声入力、スクリプトなどから得ることができる。解析可能ストリームは、コマンドと、少なくとも1つのパラメータを含む。解析可能ストリームに基づき、コマンドについての予想されるパラメータを記述する定義情報を取り出す。定義情報を使用して、オブジェクトを生成する(すなわち開発者はクラスのインスタンスを生成する)。オブジェクトは、少なくとも1つのパラメータを、予想パラメータの記述に従ったフォーマットで記憶する。次いで、オブジェクトはコマンドに渡され、コマンドはそれ自体の固有の処理を行う。定義情報は、どのようにパラメータを予想パラメータにマッピングするか、どのようにパラメータを得るか(例えば対話式)など、解析可能ストリームに対して実施されるアクションを指定する命令(ディレクティブ:directive)を含むものとすることができる。命令はまた、解析、妥当性検査、文書化、データ生成、およびデータ処理に関係するアクションを含むものとすることもできる。
したがって、本発明の利点の1つは、コマンド開発者が、自分のコマンドへの入力パラメータを得るためにコマンドラインを解析するロジック、または入力パラメータを妥当性検査するロジックを書く必要なしに、入力パラメータに関する文法を容易に指定できることである。このようにすることで本発明は、開発者が書く必要のあるコードの量を削減し、コマンドに関する構文を、より一貫性のある、しかも非常に用途の広いものにすることができる。
簡単に言えば、本発明は、コマンドについての入力パラメータをリフレクションベースで処理することを可能にするリフレクションベースのシェルを対象とする。以下の詳細な記述を読んだ後には明らかになるであろうが、本発明は、第三者の開発者が書く必要のあるコードの量を最小限に抑え、システム管理者がシステム管理作業を実施するために知る必要のある知識の量を最小限に抑える。したがって本発明は、システム管理作業を大幅に削減する。さらに本発明は、入力パラメータに関するより一貫性のある構文を提供し、入力パラメータに関連する処理のために共通の機能を提供する。
図1に、本発明の例示的な一実施形態で使用することのできる例示的なコンピューティングデバイスを示す。ごく基本的な一構成では、コンピューティングデバイス100は通常、少なくとも1つの処理ユニット102およびシステムメモリ104を備える。コンピューティングデバイスの正確な構成および種類に応じて、システムメモリ104は、揮発性(RAMなど)、不揮発性(ROMやフラッシュメモリなど)、またはこの2つの何らかの組合せとすることができる。システムメモリ104は通常、オペレーティングシステム105および1つまたは複数のプログラムモジュール106を含み、プログラムデータ107も含むことができる。オペレーティングシステム105は、オペレーティングシステムコマンドを実行するコマンドプロセッサ130を含む。コマンドプロセッサ130は、オペレーティングシステムコマンドを受け入れるシェル131(すなわちコマンドプロセッサインターフェース)を含む。シェルは、コマンドプロンプトを表示することができ、また、グラフィカルユーザインターフェース、またはユーザ入力を入力し解釈するためのその他任意の手段を表示することができる。シェル131は、入力されたコマンドが有効であることを検証し、検証したコマンドを、実行に向けてコマンドプロセッサ130の別の部分に送る。図1では、この基本的な構成を破線108内のコンポーネントで示す。
コンピューティングデバイス100は、追加の機構または機能を有することもできる。例えばコンピューティングデバイス100は、追加のデータ記憶デバイス(取外し可能および/または取外し不可能)、例えば磁気ディスク、光ディスク、テープなどを備えることもできる。図1では、このような追加の記憶装置を、取外し可能記憶装置109および取外し不可能記憶装置110で示す。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、その他のデータなどの情報を記憶するための任意の方法または技術で実現された、揮発性と不揮発性、取外し可能と取外し不可能の媒体を含めることができる。システムメモリ104、取外し可能記憶装置109、および取外し不可能記憶装置110はすべて、コンピュータ記憶媒体の例である。コンピュータ記憶媒体には、限定しないがRAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)または他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶デバイスが含まれ、あるいは、所望の情報を記憶するのに使用できコンピューティングデバイス100からアクセスできるその他任意の媒体が含まれる。このような任意のコンピュータ記憶媒体を、デバイス100の一部とすることができる。コンピューティングデバイス100はまた、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイスなどの入力デバイス112を有することもできる。また、表示装置、スピーカ、プリンタなどの出力デバイス114を備えることもできる。これらのデバイスは当技術分野で周知であり、ここで詳細に論じる必要はない。
コンピューティングデバイス100はまた、ネットワークなどを介して他のコンピューティングデバイス118と通信することを可能にする通信接続116を備えることもできる。通信接続116は、通信媒体の一例である。通信媒体は通常、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータによって、搬送波やその他のトランスポート機構などの変調データ信号に組み入れることができ、任意の情報送達媒体が含まれる。「変調データ信号」という用語は、情報が信号中に符号化される形で1つまたは複数の特性が設定または変更された信号を意味する。限定ではなく例として、通信媒体には、配線式ネットワークや直接配線式接続などの配線式媒体と、音響、無線周波、赤外線、その他の無線媒体などの無線媒体とが含まれる。本明細書で使用するコンピュータ可読媒体という用語には、記憶媒体と通信媒体の両方が含まれる。
図2は、本発明による、リフレクションベースのシェル200内のパーサ202およびエンジン204を介したコマンドライン250の処理を示す機能流れ図である。例示的なコマンドライン250は、複数のコマンド(すなわちprocessコマンド260、whereコマンド262、sortコマンド264、tableコマンド266)をパイプラインしている。ただし、以下の考察では、1つのコマンド(例えばwhereコマンド)についての入力パラメータをリフレクションベースで処理することに焦点を合わせる。他のコマンドに対するリフレクションベース処理も、同様にして行われる。コマンドライン250は、任意のコマンドに入力パラメータを渡すことができる(例えばwhereコマンド262に「handlecount>400」を渡す)。processコマンド260には、関連する入力パラメータがないことに気付くであろう。従来は、各コマンドが、そのコマンドに関連する入力パラメータを解析して、入力パラメータが有効かどうかを決定し、有効でない場合はエラーメッセージを発行することを担っていた。コマンドは通常、様々なプログラマによって書かれていたので、コマンドライン上の入力パラメータに関する構文は、あまり一貫性のあるものではなかった。さらに、エラーが発生した場合のエラーメッセージは、同じエラーに対してであっても、コマンド間であまり一貫性のあるものではなかった。
例えばUnix(登録商標)環境では、「Is」コマンドと「ps」コマンドの間に、多くの非一貫性がある。両方ともオプション「−w」を受け入れるが、「Is」コマンドは、「−w」オプションを使用してページ幅を示し、「ps」コマンドは、「−w」オプションを使用して印刷幅出力を示す(本質的にページ幅は無視する)。「Is」コマンドと「ps」コマンドに関連するヘルプページにもいくつかの非一貫性がある。例えば、一方はオプションを太字にするが他方はそうではなく、一方はオプションをアルファベット順にソートするが他方はそうではなく、いくつかのオプションはダッシュを必要とするが他はそうではないなどである。
以下に詳述するように、本発明は、より一貫性のある手法を提供し、各開発者が書かなければならない重複コードの量を最小限に抑える。リフレクションベースのシェル200は、構文(例えば文法)、対応するセマンティクス(例えば辞書)、および参照モデルを提供して、リフレクションベースのシェル200によって提供される共通機能を開発者が容易に利用できるようにする。
本発明についてさらに述べる前に、本明細書全体を通して出てくる用語の定義を示す。「コマンド」は、スタンドアロンの実行可能プログラムを指す。「コマンドレット(commandletまたはcmdlet)」は、コマンドよりもかなり小さいプログラムを指す。一実施形態では、各コマンドレットは、名詞と動詞の対(例えばコマンドライン250中のget/process)を定義する。以下の考察では、本発明によって書かれたコマンドについて言うとき、用語コマンドレットを使用する。ただし場合によっては、より一般的な用語「コマンド」を使用してコマンドレットを指すこともできる。入力パラメータは、コマンドレットについての入力フィールドを指す。引数は、argvアレイ中の単一のストリングと等価な、またはRequestObject中の単一の要素として渡される、コマンドまたはコマンドレットに渡される入力パラメータを指す。後述するように、RequestObjectは、コマンドレットに関する文法を指定する機構を指す。引数は、オプションと、オプション−引数と、コマンド−名前に続くオペランドとのうちの1つである。引数の例を、以下のコマンドラインに基づいて示す。
findstr/i/d:\winnt;\winnt\system32aa*b.*ini
このコマンドラインで、「findstr」は引数0であり、「/i」は引数1であり、「/d:\winnt;\winnt\system32」は引数2であり、「aa*b」は引数3であり、「*.ini」は引数4である。「オプション」は、プログラムのデフォルト挙動の変更を指定するのに一般に使用される、コマンドまたはコマンドレットへの引数である。引き続き上の例示的なコマンドラインを参照すると、「/i」および「/d」はオプションである。「オプション−引数」は、一定のオプションに続く入力パラメータである。いくつかの場合では、オプション−引数は、オプションと同じ引数ストリング内に含まれる。他の場合では、オプション−引数は、次の引数として含まれる。やはり上のコマンドラインを参照すると、「winnt;\winnt\system32」はオプション−引数である。「オペランド」は、プログラム処理を完了させるのに必要な情報をプログラムに供給するオブジェクトとして一般に使用される、コマンドまたはコマンドレットへの引数である。オペランドは一般に、コマンドライン中のオプションに続く。再び、上の例示的なコマンドラインを参照すると、「aa*b」および「*.ini」はオペランドである。「解析可能ストリーム」は、引数を含む。
「クラスメンバ」は、サブクラス、フィールド、定数、メソッド、構造、プロパティ、アレイ、インデクサ、インターフェース、イベント、例外などの要素を指す。「命令」は、メタデータ属性を指す。「カテゴリ」は、命令の1組の特定の型を指す。後で詳細に説明するが、本発明のリフレクションベースのシェルは、解析命令やデータ生成命令など、いくつかのカテゴリの命令を提供する。各カテゴリ内で、リフレクションベースのシェルは複数の命令を提供する。カテゴリおよび命令は、ソフトウェア開発者によって拡張することができる。
図2を参照すると、パーサ202は、解析可能ストリーム(例えばコマンドライン250)をRequestObject220〜226(例えばwhere要求222)に解析する。各RequestObject220〜226は、コマンドレット260〜266のうちの1つに関連する。後で図3に関して詳述するが、簡単に言えば、RequestObject220〜226は、コマンドレットへの入力パラメータに関する文法を開発者が指定するための手段または機構を提供する。RequestObjectは、対応するコマンドレット実行ファイル(例えばwhere実行ファイル232)に渡される。ただし、後で図4に関して述べるように、パーサ202およびエンジン204は、RequestObjectをコマンドレット実行ファイルに渡す前に、コマンドライン250上で指定された入力パラメータに対して様々な処理を実施する。処理には、解析、パラメータ妥当性検査、データ生成、パラメータ処理、パラメータエンコーディング、パラメータ文書化が含まれる。パーサ202およびエンジン204がコマンドライン上の入力パラメータに対して共通機能を実施するので、リフレクションベースのシェル200は、一貫性のあるエラーメッセージをユーザに発行することができる。理解されるように、本発明によって書かれた実行可能コマンドレット230〜236は、必要なコードが従来のシステムにおけるコマンドよりも少ない。各実行可能コマンドレット230〜236は、対応するRequestObject220〜226を受け入れる。さらに、各実行可能コマンドレット230〜236は、パイプラインされた次のコマンドレットに入力されるオブジェクトを出力する。通常、これらのオブジェクトは、そのオブジェクトへの参照(例えばハンドル)を渡すことによって入力される。次いで、実行可能コマンドレット230〜236は、渡されたオブジェクトに対して追加の処理を実施することができる。
図3は、コマンドレットへの入力パラメータに関する文法を指定するためのデータ構造300の一実施形態である。本質的に、データ構造300は、リフレクションベースのシェルとコマンドレットとの間の規約を明確に表す手段を提供するものである。以下の考察では、米国ワシントン州レドモンドのMicrosoft Corporationによって生み出された.NET Frameworkを用いて本発明について述べる。ただし、本発明の範囲を逸脱することなく、他の環境を使用することもできる。
ソフトウェア開発者は、データ構造300を、対応する実行可能コマンドレットについてのコード内にコーディングする。実際には、この要求を実行するメソッドおよびプロパティが、どんな入力パラメータがコマンドラインを介してユーザに呈示されるかを定義する。データ構造300は、RequestObjectクラス304から派生する公開クラスである。ソフトウェア開発者は、データ構造300のクラス名302を提供する。クラス名302は、このコマンドレットに対してコマンドライン上で指定される引数の名前を識別する。各コマンド名302は、図2に示した例示的なコマンドライン200中の「get/process」や「format/table」など、動詞/名詞の対を表す。「where」コマンドなどのように、動詞または名詞がコマンド名の中で暗黙的な場合もある。一実施形態では、クラス名302がコマンドレットと同一ではないことに気付くであろう。その実施形態では、他の注釈を使用してコマンドレットの名前を識別する。データ構造300は、少なくとも1つの公開メンバ(例えばName330)を含む。公開メンバ330、332は、コマンドレットに関連する入力パラメータを表す。各公開メンバ330、332は、解析命令310、データ妥当性検査命令312、データ生成命令314、処理命令316、エンコーディング命令318、文書化命令320の各カテゴリの中の、1つまたは複数の命令を有することができる。命令は、角括弧で囲まれ、それらに続く入力パラメータを記述する。ユーザ対話型の命令など、いくつかの命令は、クラスレベルでも適用される場合がある。データ構造300は、パーサによって入力パラメータとして認識されない非公開メンバ340を含むこともできる。非公開メンバ340は、命令の1つに基づいて生成されたデータを記憶するのに使用することができる。
公開メンバの名前をコマンドライン上で使用して、コマンドライン上の入力パラメータを修飾することができる。他の場合では、公開メンバを使用して、入力パラメータをコマンドライン上におけるその位置に基づいて記憶することができる。以下はこの概念を示す例であり、RequestObjectは以下のようになる。
Figure 2004342108
ParsingParameterPositionAttributeは、どのように非修飾パラメータを位置に基づいてマッピングするかを記述する解析命令である。前述のように、非修飾パラメータは、入力パラメータに関連して公開メンバ名を使用しないパラメータである。以下は、上の解析命令を「To」および「From」メンバに適用した後の適切な構文である。
Figure 2004342108
以下の構文は無効になる。
Figure 2004342108
後述するように、その他の命令も、コマンドライン上で指定された入力パラメータの処理に影響を与える。このように、命令を使用することによってコマンドレット開発者は、自分のコマンドレットへの入力パラメータに関する文法を容易に指定することができ、基礎をなすロジックを生成する必要なしに、入力パラメータに対する処理を実施することができる。
命令は、コマンドレットに関連するメタデータ中に記憶される。後で図4に関して述べるが、メタデータ処理は、リフレクションベースのシェル全体に分散する。例えば、適用可能性命令、文書化命令、および解析ガイドライン命令は、パーサ内で非常に早い段階で処理される。データ生成命令および妥当性検査命令は、パーサがすべての入力パラメータを解析し終えた後で、エンジン中で処理される。
以下のテーブルに、様々なカテゴリについての代表的な命令を、命令に応答してリフレクションベースのシェルによって実施される処理の説明と共に示す。
Figure 2004342108
Figure 2004342108
Figure 2004342108
Figure 2004342108
Figure 2004342108
.NET Frameworkを使用する実施形態では、各カテゴリは、基本カテゴリクラス(例えばCmdAttribute)から派生するベースクラスを有する。基本カテゴリクラスは、System.Attributeクラスから派生する。各カテゴリは、カテゴリ処理中にパーサによって呼び出される事前定義済みの関数(例えばattrib.func())を有する。コマンドレット開発者は、カスタムカテゴリクラス(例えばCmdCustomAttribute)から派生するカスタムカテゴリを生み出すことができる。コマンドレット開発者はまた、カテゴリについての基本カテゴリクラスから命令クラスを得ることにより、既存のカテゴリクラスを拡張し、事前定義済みの関数を自分の実装でオーバーライドすることもできる。コマンドレット開発者はまた、命令をオーバーライドして、事前定義済みの命令セットに新しい命令を追加することもできる。
これらの命令を処理する順序は、パーサからアクセスできる外部データ記憶域に記憶することができる。リフレクションベースのシェルは、登録済みのカテゴリを探し、カテゴリ中の各命令ごとに関数(例えばProcessCustomDirective)を呼び出す。したがって、カテゴリ実行情報を持続的な記憶域に記憶しておくことにより、カテゴリ処理の順序は動的とすることができる。種々の処理段階で、パーサは、持続的な記憶域をチェックして、その時点で実行する必要のあるメタデータカテゴリがあるかどうかを決定する。この実施形態では、持続的な記憶域からカテゴリエントリを削除することによって、カテゴリを容易に非推奨とすることができる。
図4は、コマンドについて入力された入力パラメータを処理するプロセス400を示す論理流れ図である。この時点で、コマンドレッドは開発済みであり、メタデータは、図3のRequestObjectを使用してコマンドレットソースファイルに挿入されている。コマンドレットは、コンパイルされて登録されている。登録中に、クラス名(すなわちコマンドレット名)が登録記憶域に書き込まれている。プロセス400はブロック401で開始し、リフレクションベースのシェルは、コマンドレットを示す入力(例えばキーストローク)を受け取った。リフレクションベースのシェルは、入力をレジストリ内から調べて、タイプされた入力を登録済みコマンドレットの1つに関連付けることによって、入力をコマンドレットとして認識することができる。処理はブロック402に進む。
ブロック402において、識別されたコマンドレットに関連するクラスを識別する。このクラスもまたレジストリを介して識別することができる。処理はブロック404に進む。
ブロック404において、クラスに関連するメタデータを読み取る。メタデータは、コマンドレットに関連するいずれかの命令を含む。命令は、コマンドレット自体、またはRequestObject中で指定された1つまたは複数のパラメータに適用することができる。コマンドレット登録中に、登録コードは、メタデータを持続的な記憶域に登録する。メタデータは、シリアライズされたフォーマットのXMLファイルや、外部データベースなどに記憶することができる。上の表に示したように、メタデータ中で指定された命令はそれぞれ、適用可能性命令や解析ガイドライン命令などのカテゴリに関連する。各カテゴリの命令は、リフレクションベースのシェル中の様々な段階で処理される。各メタデータ命令は、それ自体のエラー処理を扱う。処理はブロック406に進む。
ブロック406において、識別されたクラスに基づいてRequestObjectをインスタンス化する。処理はブロック408に進む。
ブロック408において、RequestObjectに対してリフレクションを実施して、入力パラメータに関する情報を得る。リフレクションベースのシェルは、リフレクションデータを(必要に応じて)呼出し元に返すための共通インターフェースを提供する。前述の実施形態では、リフレクションは.NETリフレクションを使用する。処理はブロック410に進む。
ブロック410において、適用可能性命令(例えば表1)を適用する。適用可能性命令は、クラスが一定のマシンロールおよび/またはユーザロールで使用されるようにする。例えば、いくつかのコマンドレットは、ドメイン管理者だけしか使用することができない。適用可能性命令の1つにおいて指定された制約が満たされない場合は、エラーが発生する。処理はブロック412に進む。
ブロック412において、メタデータを使用してインテリセンスを提供する。処理のこの時点で、コマンドライン全体はまだ入力されていない。しかし、リフレクションベースのシェルには、コマンドレットに関連するRequestObjectに対してリフレクションを介して許容される入力パラメータがわかっている。したがって、入力パラメータを一義化する部分がコマンドライン上でタイプ入力されると、リフレクションベースのシェルは、エンジンを介して、入力パラメータをオートコンプリートすることができる。オートコンプリートは、入力されたパラメータの一部が入力パラメータのうちの1つを一義的に識別するようになればすぐに行うことができる。処理はブロック414に進む。
ブロック414において、コマンドレットについての入力パラメータの入力が終わるまで待機する。これは通常、ユーザがリターンキーを押すなどしてコマンドラインの終わりを示すと発生する。処理はブロック416に進む。
ブロック416において、解析ガイドライン命令を適用し、RequestObjectインスタンスを入力パラメータでポピュレートする。パーサは、解析中に使用する規則のセットを有する。規則セットは、RequestObjectデータ構造中で指定された文法がコマンドライン上の入力パラメータに関する構文に変換される方式を指定する。例えば、コマンドFooに関する以下のRequestObject宣言があるとする。
Figure 2004342108
コマンドライン構文は、以下のいずれかとすることができる。
Figure 2004342108
規則セットは、所望の構文を生み出すためにシステム管理者によって修正することができる。さらに、パーサは複数の規則セットをサポートすることができ、それによりユーザは複数の構文を使用することができる。したがって、RequestObject構造中で指定された文法(例えばstringNameやBool Recurse)がパーサを駆動する。
一般に、解析命令は、コマンドライン上に入力されたパラメータがどのようにRequestObject中で識別される予想パラメータにマッピングすべきかを記述する。以下の例に、位置情報を指定する解析命令を示す。
Figure 2004342108
入力パラメータ型をチェックして、正しいかどうかを決定する。入力パラメータ型が正しくない場合は、入力パラメータを強制的に正しくすることができる。入力パラメータが正しくなく、かつ強制的に正しくすることができない場合は、使用エラーをプリントする。使用エラーにより、ユーザは、予想される正しい構文を認識することができる。使用エラーの場合は、この構文を記述する情報を文書化命令418から得ることができる。入力パラメータ型をマッピングするかまたは検証した後、RequestObjectインスタンス中の対応するメンバをポピュレートする。処理は決定ブロック420に進む。
決定ブロック420において、ユーザとの対話を必要とする入力パラメータがあるかどうかを決定する。ユーザ対話を必要とするパラメータがある場合は、処理はブロック422に進む。そうでない場合はブロック424に進む。
ブロック422において、リフレクションベースのシェルは、ユーザと対話して入力パラメータを得る。開発者は、RequestObject中でパラメータについてCmdPgRequireInteraction命令を指定することにより、入力パラメータがユーザ対話を介して得られることを指定することができる。さらに、リフレクションベースのシェルは、すべての入力パラメータがコマンドライン上に入力されていない場合にも、ユーザ対話が必要であると決定することができる。入力パラメータ、コマンドレッド自体、およびその他の設定のせいで対話が不可能にならない限り、リフレクションベースのシェルは、ユーザと対話して必要な入力パラメータを得ることになる。フラグを使用して、ユーザ対話がユーザレベル、グループレベル、および企業レベルで許可されるかどうかを指定することができる。レベルの1つがユーザ対話を許可しない場合は、エラーメッセージが発行される。ユーザ対話が実施されると、処理はブロック424に進む。
ブロック424において、エンジンは、RequestObjectインスタンスに対して別のパスを実施して、いずれかの残りの命令を入力パラメータに適用する。残りの命令には、データ生成命令、データ妥当性検査命令、オブジェクト処理命令、およびオブジェクトエンコーディング命令が含まれる。これらの命令は、パーサが入力パラメータの解析を終えた後で、エンジン中で処理される。次に、上の表3〜5に示した各カテゴリからの代表的な命令について述べる。
第1の代表的な命令は、データ生成命令からのものである。RequestObjectは、以下のステートメントを含むことができる。
Figure 2004342108
Arraylist Fは非公開なので、パーサは、この宣言をコマンドレットへの入力パラメータとして扱わない。そうではなく、Arraylist Fは、データ生成命令中で指定されたサービスによって生成されるデータのための一時的な記憶域である。この例では、サービスは「Filename」である。Filenameは、リフレクションベースのフレームワークによって提供されるユーティリティ、あるいは第三者の機能またはユーティリティとすることができる。エンジンがこの命令に遭遇すると、エンジンは、「Filename」という名前のサービスをレジストリ中で識別する。サービスの登録は、サービスのインストール中に行われる。データ生成命令は、入力パラメータに対して固有の処理を行うことを可能にする。例えばサービスは、コマンドライン上で「A*」として入力されたファイル名に対するワイルドカード拡張を実施することができる。第2のパスの前に、「A*」がコマンドライン上に入力されたので、Nameメンバは「A*」を含む。第2のパスの間、Filenameサービスは、Aで始まるファイルのセットを突き止め、それらをArraylist Fに記憶することができる。当業者なら理解するであろうが、データ生成命令は、ファイル名のワイルドカーディング拡張を提供するだけでなく、ユーザ名やプロセスなどのワイルドカード拡張を実施することもできる。さらに、データ生成命令は、入力パラメータに対してその他の処理を実施することもできる。
例示的なデータ妥当性検査命令は、以下のステートメントをRequestObject内に含むことができる。
Figure 2004342108
このデータ妥当性検査命令がある場合、パーサは、Nameが必須入力パラメータであり、ストリングがDebugとProductionとTestのいずれかでなければならないことを認識する。そうでない場合は、データ妥当性検査命令はエラーを返すことになる。エラーの場合は、エラーメッセージを供給するために文書化命令を使用することができる。
例示的なオブジェクト処理命令は、以下のステートメントをRequestObject内に含むことができる。
Figure 2004342108
このオブジェクト処理命令がある場合、HostNameに対して指定された引数は、RequestObjectが実行可能コマンドレットに渡される前に、小文字のストリングに変換される。
例示的なオブジェクトエンコーディング命令は、以下のステートメントをRequestObject内に含むことができる。
Figure 2004342108
このオブジェクトエンコーディング命令がある場合、HostNameとして入力されたストリングはIPアドレスに変換される。HostIPパラメータは非公開として宣言されているので、パーサは、これを入力パラメータとして扱わない。しかし、実行可能コマンドレットはHostIPメンバを参照することができる。このオブジェクトエンコーディング命令は多くのコード行を節約するようには見えないかもしれないが、実際には、この命令は、第三者の開発者によって書かれるコードの量をかなり削減する。例えば、従来の環境では、第三者の開発者がエラー処理を扱う。さらに、エラーメッセージがストリングである場合、ストリングを複数の言語に変換することが必要な場合がある。しかし本発明は、一様なエラー処理を実現する。さらに本発明は、エラーメッセージを複数の言語に一様に変換する機構も提供する。処理はブロック426に進む。
ブロック426において、RequestObjectインスタンスを実行可能コマンドレットに渡す。次いで実行可能コマンドレットは、これらの入力パラメータをその処理で使用する。したがって、従来のコマンド実装とは反対に、本発明のコマンドレットでは、入力パラメータを解析または妥当性検査するための固有のコードを書く必要はない。さらに本発明は、ソフトウェア開発者が命令を介して入力パラメータに対する追加の処理を指定することのできる、より一層リッチな環境を提供する。
各命令は、それ自体のエラーメッセージを扱う。エラーメッセージを表示する必要がある場合、命令は、ローカライズされたストリングを文書記憶域から得て、表示インターフェースを呼び出してエラーメッセージを表示する。文書化命令に関係するデータは、コマンドレットに、あるいはXML記憶域または外部データベースに、あるいはリソースファイルに記憶することができる。したがって本発明は、すべてのコマンドレットに対して一貫性のあるエラーメッセージを提供することができ、第三者によるローカリゼーションの手間を削減する。
さらに、このリフレクションベースのシェルは、ある命令によって生成されたデータをオブジェクトの形で呼出し元命令に返す共通インターフェースを提供する。呼出し元命令は、このデータを、要求されるデータ型にキャストすることを担う。いくつかのカテゴリについての代表的な命令を表1〜5に示したが、本発明の範囲を逸脱することなく、その他の命令およびその他のカテゴリを追加することもできる。
したがって、以上に述べたように本発明は、コマンドレットへの入力パラメータに関する文法を定義するための機構を提供する。この機構により、開発者はコマンドレットを開発、テスト、およびサポートすることができる。コマンドレットは、コード行がより少なく、より迅速に実装され、欠陥がより少なく、欠陥への対処がより容易である。この機構は、より一貫性のある構文、セマンティクス、エラー処理、リソース管理、セキュリティなどを実現する。以上の考察では、本発明を.NET Framework内で述べた。ただし、リフレクション機能を備える任意のオペレーティングシステム内で本発明を実施できることは、当業者なら理解するであろう。また、本発明をコマンドライン実施形態で述べた。ただし、解析される解析可能データは、本発明の範囲を逸脱することなく、音声、グラフィカルユーザインターフェース、スクリプトなどを介して得ることもできる。さらに、本発明を使用して、あるRequestObjectクラスが別のRequestObjectクラスを宣言できるようにすることによってリッチな文法セットを記述することもできる。したがって本発明は、高い汎用性をシステム管理者にもたらす。
以上の仕様、例、およびデータは、本発明の構成の製造および使用に関する完全な記述を提供するものである。本発明の趣旨および範囲を逸脱することなく、本発明に関する多くの実施形態を生み出すことができるので、本発明は、添付の特許請求の範囲にあるものとする。
本発明の例示的な一実施形態で使用することのできる例示的なコンピューティングデバイスを示す図である。 本発明による、リフレクションベースのシェル内のパーサおよびエンジンを介したコマンド処理を示す機能流れ図である。 本発明による、コマンドへの入力パラメータに関する文法を指定するためのデータ構造の一実施形態を示す図である。 本発明による、リフレクションベースのシェル内でコマンドライン上に入力された入力パラメータを処理するための例示的なプロセスを示す論理流れ図である。
符号の説明
100 コンピューティングデバイス
102 処理ユニット
104 システムメモリ
105 オペレーティングシステム
106 プログラムモジュール
107 プログラムデータ
109 取外し可能記憶装置
110 取外し不可能記憶装置
112 入力デバイス
114 出力デバイス
116 通信接続
118 他のコンピューティングデバイス
200 リフレクションベースのシェル
202 パーサ
204 エンジン
220 RequestObject、process要求
222 RequestObject、where要求
224 RequestObject、sort要求
226 RequestObject、table要求
230 実行可能コマンドレット、get/process実行ファイル
232 実行可能コマンドレット、where実行ファイル
234 実行可能コマンドレット、sort実行ファイル
236 実行可能コマンドレット、format/table実行ファイル
250 コマンドライン
260 コマンドレット、processコマンド
262 コマンドレット、whereコマンド
264 コマンドレット、sortコマンド
266 コマンドレット、tableコマンド
300 データ構造
302 クラス名
304 RequestObjectクラス
310 解析命令
312 データ妥当性検査命令
314 データ生成命令
316 処理命令
318 エンコーディング命令
320 文書化命令
330 公開メンバ
332 公開メンバ
340 非公開メンバ

Claims (28)

  1. コンピュータ実行可能命令を有するコンピュータ可読媒体であって、前記命令は、
    少なくとも1つのコマンドと、前記少なくとも1つのコマンドに関連する少なくとも1つのパラメータとの解析可能ストリームを受け取ること、
    前記少なくとも1つのコマンドについての予想されるパラメータを記述する定義情報を取り出すこと、
    前記定義情報を使用して、前記予想されるパラメータの記述に従ったフォーマットで前記少なくとも1つのパラメータを記憶するためのオブジェクトを生成すること、および
    前記オブジェクトを前記少なくとも1つのコマンドに渡すこと
    を含むことを特徴とするコンピュータ可読媒体。
  2. 前記解析可能ストリームは、コマンドライン上に入力されることを特徴とする請求項1に記載のコンピュータ可読媒体。
  3. 前記解析可能ストリームは、音声入力を介して生成されることを特徴とする請求項1に記載のコンピュータ可読媒体。
  4. 前記解析可能ストリームは、プログラム生成されることを特徴とする請求項1に記載のコンピュータ可読媒体。
  5. 定義情報を取り出すことは、前記少なくとも1つのコマンドに関連するクラスを識別することを含むことを特徴とする請求項1に記載のコンピュータ可読媒体。
  6. 定義情報を取り出すことはさらに、前記クラスからメタデータを読み取ることを含むことを特徴とする請求項5に記載のコンピュータ可読媒体。
  7. 前記定義情報を使用することは、前記解析可能ストリームが生成されつつあるときにインテリセンスを提供して、前記定義情報に基づいて前記解析可能ストリームをオートコンプリートすることを含むことを特徴とする請求項1に記載のコンピュータ可読媒体。
  8. 前記定義情報を使用することは、前記少なくとも1つのパラメータを前記予想されるパラメータと相関させる解析命令を適用することを含むことを特徴とする請求項1に記載のコンピュータ可読媒体。
  9. 前記定義情報を使用することは、前記少なくとも1つのパラメータを得る方式を決定する解析命令を適用することを含むことを特徴とする請求項1に記載のコンピュータ可読媒体。
  10. 前記定義情報を使用することは、データ妥当性検査命令を適用して、前記解析可能ストリームが前記データ妥当性検査命令によって指定される基準を満たすかどうかを判断することを含むことを特徴とする請求項1に記載のコンピュータ可読媒体。
  11. 前記定義情報を使用することは、前記少なくとも1つのパラメータにデータ生成命令を適用して、前記オブジェクトに記憶される情報のセットを生成することを含むことを特徴とする請求項1に記載のコンピュータ可読媒体。
  12. 前記定義情報を使用することは、前記少なくとも1つのパラメータに処理命令を適用して、前記少なくとも1つのパラメータを操作することを含むことを特徴とする請求項1に記載のコンピュータ可読媒体。
  13. 前記定義情報を使用することは、要求があったときに前記少なくとも1つのパラメータに関するテキスト情報を生成する文書化命令を、前記少なくとも1つのパラメータに適用することを含むことを特徴とする請求項1に記載のコンピュータ可読媒体。
  14. データ構造でエンコードされたコンピュータ可読媒体であって、前記データ構造は、
    コマンドを識別するクラス名と、
    前記コマンドについての予想されるパラメータの少なくとも1つの宣言であって、前記コマンドが呼び出されたときに供給される前記予想されるパラメータのフォーマットを定義する宣言と
    を備えたことを特徴とするコンピュータ可読媒体。
  15. 前記少なくとも1つの宣言はメンバ名を含み、前記メンバ名は、前記予想されるパラメータについての修飾子に対応し、前記修飾子は、任意選択で、前記コマンドが呼び出されたときに前記予想されるパラメータと共に供給されることを特徴とする請求項14に記載のコンピュータ可読媒体。
  16. 前記少なくとも1つの宣言はデータ型を含み、前記データ型は、前記予想されるパラメータのデータフォーマットを指定することを特徴とする請求項14に記載のコンピュータ可読媒体。
  17. 前記データ構造は、前記少なくとも1つの宣言に関連する解析命令をさらに含み、前記解析命令は、前記予想されるパラメータを前記少なくとも1つの宣言にマッピングするための規則を指定することを特徴とする請求項14に記載のコンピュータ可読媒体。
  18. 前記データ構造は、前記少なくとも1つの宣言に関連するデータ妥当性検査命令をさらに含み、前記データ妥当性検査命令は、前記予想されるパラメータに対して実施される妥当性検査プロセスを指定することを特徴とする請求項14に記載のコンピュータ可読媒体。
  19. 前記データ構造は、前記少なくとも1つの宣言に関連するデータ生成命令をさらに含み、前記データ生成命令は、前記予想されるパラメータに基づいてデータのセットを生成するために呼び出されるサービスを指定することを特徴とする請求項14に記載のコンピュータ可読媒体。
  20. 前記データ構造は、前記少なくとも1つの宣言に関連する命令をさらに含み、前記命令は、前記予想されるパラメータに対して実施される追加の処理を指定することを特徴とする請求項14に記載のコンピュータ可読媒体。
  21. 前記データ構造は、前記少なくとも1つの宣言に関連する文書命令をさらに含み、前記文書命令は、前記予想されるパラメータに関するテキスト情報が必要とされるときに、前記予想されるパラメータに関するテキスト情報を指定することを特徴とする請求項14に記載のコンピュータ可読媒体。
  22. コマンドに入力されたパラメータに対してリフレクションベースの処理を実施するシステムであって、
    プロセッサと、
    メモリとを備え、前記メモリは、前記プロセッサによる実行のために前記メモリにロードされた、複数のコンピュータ実行可能命令に割り振られ、前記コンピュータ実行可能命令は、
    少なくとも1つのコマンドと、前記少なくとも1つのコマンドに関連する少なくとも1つのパラメータとの解析可能ストリームを受け取るステップと、
    前記少なくとも1つのコマンドについての予想されるパラメータを記述する定義情報を取り出すステップと、
    前記定義情報を使用して、前記予想されるパラメータの記述に従ったフォーマットで前記少なくとも1つのパラメータを記憶するためのオブジェクトを生成するステップと、
    前記オブジェクトを前記少なくとも1つのコマンドに渡すステップと
    を含む方法を実施することを特徴とするシステム。
  23. 前記解析可能ストリームはコマンドライン上に入力されることを特徴とする請求項22に記載のシステム。
  24. 定義情報を取り出すステップは、前記少なくとも1つのコマンドに関連するクラスを識別するステップを含むことを特徴とする請求項22に記載のシステム。
  25. 定義情報を取り出すステップはさらに、前記クラスからメタデータを読み取るステップを含むことを特徴とする請求項24に記載のシステム。
  26. 前記定義情報を使用するステップは、命令に従って前記少なくとも1つのパラメータに対する処理を実施する命令を、前記少なくとも1つのパラメータに適用するステップを含むことを特徴とする請求項22に記載のシステム。
  27. コマンドに入力されたパラメータに対してリフレクションベースの処理を実施するシステムであって、
    処理手段と、
    メモリ手段とを備え、前記メモリ手段は、前記処理手段によって実行されるように前記メモリ手段にロードされた、複数のコンピュータ実行可能命令に割り振られ、前記コンピュータ実行可能命令は、
    少なくとも1つのコマンドと、前記少なくとも1つのコマンドに関連する少なくとも1つのパラメータとの解析可能ストリームを受け取る手段と、
    前記少なくとも1つのコマンドについての予想されるパラメータを記述する定義情報を取り出す手段と、
    前記定義情報を使用して、前記予想されるパラメータの記述に従ったフォーマットで前記少なくとも1つのパラメータを記憶するためのオブジェクトを生成する手段と、
    前記オブジェクトを前記少なくとも1つのコマンドに渡す手段と
    を含む方法を実施することを特徴とするシステム。
  28. コンピュータ実行可能命令を有するコンピュータ可読媒体であって、前記命令は、
    少なくとも1つのコマンドと、前記少なくとも1つのコマンドに関連する少なくとも1つのパラメータとの解析可能ストリームを受け取る手段と、
    前記少なくとも1つのコマンドについての予想されるパラメータを記述する定義情報を取り出す手段と、
    前記定義情報を使用して、前記予想されるパラメータの記述に従ったフォーマットで前記少なくとも1つのパラメータを記憶するためのオブジェクトを生成する手段と、
    前記オブジェクトを前記少なくとも1つのコマンドに渡す手段と
    を含む方法を実施することを特徴とするシステム。
JP2004142832A 2003-05-12 2004-05-12 シェルに対するコマンドの入力パラメータを処理するための媒体およびシステム Expired - Fee Related JP4889204B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/438,234 US7620959B2 (en) 2003-05-12 2003-05-12 Reflection-based processing of input parameters for commands
US10/438,234 2003-05-12

Publications (3)

Publication Number Publication Date
JP2004342108A true JP2004342108A (ja) 2004-12-02
JP2004342108A5 JP2004342108A5 (ja) 2007-06-14
JP4889204B2 JP4889204B2 (ja) 2012-03-07

Family

ID=33029805

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004142832A Expired - Fee Related JP4889204B2 (ja) 2003-05-12 2004-05-12 シェルに対するコマンドの入力パラメータを処理するための媒体およびシステム

Country Status (5)

Country Link
US (2) US7620959B2 (ja)
EP (1) EP1477897A3 (ja)
JP (1) JP4889204B2 (ja)
KR (1) KR100995199B1 (ja)
CN (1) CN100464294C (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006065861A (ja) * 2004-08-27 2006-03-09 Microsoft Corp 継ぎ目なくオブジェクトを比較するシステムおよび方法
JP2006244471A (ja) * 2005-03-04 2006-09-14 Microsoft Corp コマンドラインデータ型の検出および変換

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7203491B2 (en) 2001-04-18 2007-04-10 Space Data Corporation Unmanned lighter-than-air safe termination and recovery methods
US7356390B2 (en) 1999-06-29 2008-04-08 Space Data Corporation Systems and applications of lighter-than-air (LTA) platforms
US9643706B2 (en) 2001-04-18 2017-05-09 Space Data Corporation Systems and applications of lighter-than-air (LTA) platforms
US9632503B2 (en) 2001-04-18 2017-04-25 Space Data Corporation Systems and applications of lighter-than-air (LTA) platforms
US9908608B2 (en) 2001-04-18 2018-03-06 Space Data Corporation Systems and applications of lighter-than-air (LTA) platforms
US7130893B2 (en) 2003-05-19 2006-10-31 International Business Machines Corporation System and method for representing MFS control blocks in XML for MFS-based IMS applications
US7421701B2 (en) 2002-09-16 2008-09-02 International Business Machines Corporation System for facilitating transactions between thin-clients and message format service (MFS)-based information management system (IMS) applications
US7370280B2 (en) 2003-09-23 2008-05-06 International Business Machines Corporation Apparatus, system, and method for defining a web services interface for MFS-based IMS applications
US7594170B2 (en) * 2003-10-24 2009-09-22 Microsoft Corporation Mechanism for providing data driven command line output
US20050091424A1 (en) * 2003-10-24 2005-04-28 Snover Jeffrey P. Mechanism for analyzing partially unresolved input
US7676798B2 (en) * 2003-10-24 2010-03-09 Microsoft Corporation Mechanism for obtaining and applying constraints to constructs within an interactive environment
US7418508B2 (en) 2004-01-26 2008-08-26 International Machines Corporation System and method to facilitate XML enabled IMS transactions between a remote client and an IMS application program
US7617459B2 (en) * 2004-01-28 2009-11-10 International Business Machines Corporation Apparatus, system, and method for automatically generating a web interface for an MFS-based IMS application
KR100479360B1 (ko) * 2004-06-08 2005-03-29 엔에이치엔(주) 명령어의 유효성 판단 방법 및 그 시스템
US20060117354A1 (en) * 2004-11-29 2006-06-01 Mark Schutte Consolidating video-on-demand (VOD) services with multi-room personal video recording (MR-PVR) services
KR20070116893A (ko) * 2005-03-30 2007-12-11 웰치알린인코포레이티드 복수의 네트워크 엘리먼트 사이의 정보 통신
US7716252B2 (en) * 2005-07-29 2010-05-11 Microsoft Corporation Dynamically exposing relationships among entities contained in data stores
US7587385B2 (en) * 2005-08-30 2009-09-08 Sap Ag Autocompletion for unordered lists
US8473971B2 (en) 2005-09-06 2013-06-25 Microsoft Corporation Type inference and type-directed late binding
US7567257B2 (en) 2005-12-16 2009-07-28 Microsoft Corporation Partition-based undo of partitioned object graph
US20070174823A1 (en) * 2006-01-25 2007-07-26 Microsoft Corporation Compile-time interpretable code error detection
US7818726B2 (en) 2006-01-25 2010-10-19 Microsoft Corporation Script-based object adaptation
US20080127072A1 (en) * 2006-09-07 2008-05-29 Sun Microsystems, Inc. Method and system for extending evaluation for intermediate representation interpretation
US7720868B2 (en) * 2006-11-13 2010-05-18 Microsoft Corporation Providing assistance with the creation of an XPath expression
US8005671B2 (en) * 2006-12-04 2011-08-23 Qualcomm Incorporated Systems and methods for dynamic normalization to reduce loss in precision for low-level signals
US20080155565A1 (en) * 2006-12-20 2008-06-26 International Business Machines Corporation Automatic Completion of Command Line Arguments
US8321836B2 (en) * 2007-06-21 2012-11-27 Microsoft Corporation Late bound programmatic assistance
US20080320453A1 (en) * 2007-06-21 2008-12-25 Microsoft Corporation Type inference and late binding
US9043727B2 (en) * 2007-07-26 2015-05-26 Microsoft Technology Licensing, Llc Visualization techniques for imprecise statement completion
US8209356B1 (en) * 2008-01-14 2012-06-26 Marvell International Ltd. Direct command line parser
US8224997B2 (en) * 2009-02-23 2012-07-17 International Business Machines Corporation Document source debugger
KR101158534B1 (ko) * 2009-09-21 2012-06-21 자바정보기술 주식회사 다양한 환경에서의 데이터 처리를 위한 동적 프로세스 관리 시스템
US8572591B2 (en) 2010-06-15 2013-10-29 Microsoft Corporation Dynamic adaptive programming
US8731902B2 (en) * 2010-12-23 2014-05-20 Sap Ag Systems and methods for accessing applications based on user intent modeling
US9256401B2 (en) 2011-05-31 2016-02-09 Microsoft Technology Licensing, Llc Editor visualization of symbolic relationships
EP2615541A1 (en) * 2012-01-11 2013-07-17 Siemens Aktiengesellschaft Computer implemented method, apparatus, network server and computer program product
JP5663536B2 (ja) * 2012-07-27 2015-02-04 京セラドキュメントソリューションズ株式会社 データ送信装置およびそれを備えた画像形成装置
WO2016105522A1 (en) 2014-12-24 2016-06-30 Space Data Corporation Breaking apart a platform upon pending collision
US10403160B2 (en) 2014-12-24 2019-09-03 Space Data Corporation Techniques for intelligent balloon/airship launch and recovery window location
US10059421B2 (en) 2014-12-30 2018-08-28 Space Data Corporation Multifunctional balloon membrane
US10545737B2 (en) * 2017-06-13 2020-01-28 Microsoft Technology Licensing, Llc Model binding for command line parsers
US20190004821A1 (en) * 2017-06-29 2019-01-03 Microsoft Technology Licensing, Llc Command input using robust input parameters
US10719340B2 (en) 2018-11-06 2020-07-21 Microsoft Technology Licensing, Llc Command bar user interface
CN113051002A (zh) * 2020-12-24 2021-06-29 完美世界(北京)软件科技发展有限公司 数据编辑方法、设备及存储介质
CN112965767A (zh) * 2021-03-08 2021-06-15 北京金山云网络技术有限公司 作业的处理方法和装置、电子设备和存储介质
CN115496648B (zh) * 2022-11-16 2023-03-21 摩尔线程智能科技(北京)有限责任公司 图形处理器的管理方法、管理装置和管理系统

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6507909B1 (en) * 1990-02-13 2003-01-14 Compaq Information Technologies Group, L.P. Method for executing trusted-path commands
US5450600A (en) * 1991-11-08 1995-09-12 Mitsubishi Denki Kabushiki Kaisha Integrated command recognition apparatus and method for selecting an optimal command among numerous commands
US5845300A (en) * 1996-06-05 1998-12-01 Microsoft Corporation Method and apparatus for suggesting completions for a partially entered data item based on previously-entered, associated data items
CA2191640A1 (en) * 1996-11-29 1998-05-29 Kenn S. Jennyc User-interactive system and method for integrating applications
US6266666B1 (en) * 1997-09-08 2001-07-24 Sybase, Inc. Component transaction server for developing and deploying transaction- intensive business applications
US6286035B1 (en) * 1999-02-01 2001-09-04 Lucent Technologies Inc. Validating and parsing engine for system configuration and support command messages
US20020087408A1 (en) * 1999-06-25 2002-07-04 Burnett Jonathan Robert System for providing information to intending consumers
US6405365B1 (en) * 1999-07-02 2002-06-11 Cisco Technology, Inc. Computer program command generator and parser
US6724408B1 (en) * 1999-08-10 2004-04-20 International Business Machines Corporation Command line interface for a data processing system
JP2001175596A (ja) 1999-12-14 2001-06-29 Nec Corp コマンド処理装置、コマンド処理方法、およびそのプログラムを記録した記録媒体
US6907572B2 (en) * 2001-08-10 2005-06-14 Occam Networks Command line interface abstraction engine
CN1184828C (zh) * 2001-08-10 2005-01-12 华为技术有限公司 同时支持两种风格命令行配置的实现方法
USPP17699P3 (en) 2005-09-26 2007-05-08 Sunny Osteospermum Aps Osteospermum plant named ‘Sunny Marina’

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6010020813, "CLIM: 27 Command Processing", [online], 20020315, [検索日 2010年4月9日] *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006065861A (ja) * 2004-08-27 2006-03-09 Microsoft Corp 継ぎ目なくオブジェクトを比較するシステムおよび方法
JP2006244471A (ja) * 2005-03-04 2006-09-14 Microsoft Corp コマンドラインデータ型の検出および変換
US8566806B2 (en) 2005-03-04 2013-10-22 Microsoft Corporation Command-line data-type discovery and conversion

Also Published As

Publication number Publication date
KR20040097909A (ko) 2004-11-18
CN1550982A (zh) 2004-12-01
EP1477897A3 (en) 2007-04-11
US7620959B2 (en) 2009-11-17
EP1477897A2 (en) 2004-11-17
US7624401B2 (en) 2009-11-24
US20050004973A1 (en) 2005-01-06
KR100995199B1 (ko) 2010-11-17
US20040230987A1 (en) 2004-11-18
JP4889204B2 (ja) 2012-03-07
CN100464294C (zh) 2009-02-25

Similar Documents

Publication Publication Date Title
JP4889204B2 (ja) シェルに対するコマンドの入力パラメータを処理するための媒体およびシステム
US7536696B2 (en) Mechanism for handling input parameters
US7155706B2 (en) Administrative tool environment
US7594170B2 (en) Mechanism for providing data driven command line output
US7640540B2 (en) Mechanism for providing extended functionality to command line instructions
US7676798B2 (en) Mechanism for obtaining and applying constraints to constructs within an interactive environment
AU2004279192B2 (en) Mechanism for analyzing partially unresolved input

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070420

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070420

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100416

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100716

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110204

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110420

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111206

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111213

R150 Certificate of patent or registration of utility model

Ref document number: 4889204

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20141222

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees