JP2002532784A - ネットワークドライバおよびソフトウェアのリモートインストールの方法および装置 - Google Patents

ネットワークドライバおよびソフトウェアのリモートインストールの方法および装置

Info

Publication number
JP2002532784A
JP2002532784A JP2000587276A JP2000587276A JP2002532784A JP 2002532784 A JP2002532784 A JP 2002532784A JP 2000587276 A JP2000587276 A JP 2000587276A JP 2000587276 A JP2000587276 A JP 2000587276A JP 2002532784 A JP2002532784 A JP 2002532784A
Authority
JP
Japan
Prior art keywords
code
network
driver
computers
packet
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.)
Pending
Application number
JP2000587276A
Other languages
English (en)
Other versions
JP2002532784A5 (ja
Inventor
クリントン エドワード ラム,
Original Assignee
ネットワーク アイス コーポレイション
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 ネットワーク アイス コーポレイション filed Critical ネットワーク アイス コーポレイション
Publication of JP2002532784A publication Critical patent/JP2002532784A/ja
Publication of JP2002532784A5 publication Critical patent/JP2002532784A5/ja
Pending legal-status Critical Current

Links

Classifications

    • 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/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 本発明は、コンピュータシステムの1つ以上のメディアアクセス制御ユニット(320)と1つ以上のプロトコルドライバ(310)との間の経路におけるネットワークドライバインターフェース(315)へのリルーチンドライバ(335)のリモートインストールを提供する。ネットワークドライバインターフェース(315)のコードは、リルーチンドライバ(335)を挿入するために無効にされ、パッチされ、その後、再び動作可能にされる。コードの無効化および再動作化は、コンピュータシステムが後に続くパッチのインストールを再起動しないように実行される。

Description

【発明の詳細な説明】
【0001】 (関連出願の相互参照) 本出願は、1998年12月7日に出願された米国仮出願第60/111,2
92号の利益を主張する。
【0002】 (発明の背景) (発明の分野) 本発明はネットワークコンピュータシステムの分野に関し、より詳細にはコン
ピュータシステムにおけるネットワークドライバおよびソフトウェアのリモート
インストールについての方法および装置に関する。
【0003】 (背景情報) コンピュータシステムは、しばしばコンピュータの外部のソース(例えば、1
つ以上のネットワーク上)を用い情報通信を行なう。このような情報はより小さ
い情報のパケットとして頻繁に送信され、種々のネットワークトポロジー(例え
ば、「イーサネット(登録商標)」)上で伝達される。情報のルーチングは種々の
フォーマットまたはネットワークプロトコル、例えばTCP/IPを用いる。エ
ンドコンピュータが情報を受け取り利用するために、そのコンピュータは適切な
ネットワークプロトコルドライバ(これ以降、プロトコルドライバと称する)を
有する必要がある。プロトコルドライバは通常、ネットワーク接続とエンドアプ
リケーション間のコンピュータの内部通信経路中で接続される。
【0004】 図1は、従来技術によるアプリケーション通信へのメディアアクセス制御(M
AC)装置を示すブロック図である。このブロック図は、Microsoft(
登録商標)Windows(登録商標) operating systems
(例えば、Windows(登録商標)95、Windows(登録商標)98、
Windows(登録商標)NT等)(ワシントン州、レッドモンドに所在する
Microsoft Corp.により製造された)を利用するコンピュータシ
ステムの簡略図である。メディアアクセス制御装置(MAC)120によるネッ
トワークによって、情報は例えばパケットとして初期的に受け取られる。MAC
120はネットワーク上の物理送信メディアへのアクセスを制御するために使用
される。MAC120はNDIS115に対して情報をルーティングする。ND
IS115はネットワークドライバインターフェースである。NDIS115は
情報を受信し、プロトコルドライバ110(例えば、TCP/IPドライバ)と
して示される適切なプロトコルドライバに対して情報をルーティングする。プロ
トコルドライバ110は情報を受信し、WINSOCK105に対して情報をル
ーティングする。WINSOCKはワシントン州、レッドモンドに所在するMi
crosoft Corp.により製造されたインターフェースプログラムであ
る。WINSOCK105は情報を受信し、適切なアプリケーション100に対
して情報をルーティングする。
【0005】 MAC120とプロトコルドライバ110との間で、異なるプロトコルドライ
バを現存する通信経路(これ以降、バインディングと称する)に挿入することは
、ある時には有用である。新しいプロトコルドライバが現存するバインディング
に加えられる場合、新たなプロトコルドライバを組み込む新たなバインディング
が構築されなければならない。新たなバインディングは新たなプロトコルドライ
バをMAC120にリンクする。
【0006】 図2は図1のシステムにおける中間ドライバを挿入する従来技術を図示したブ
ロック図である。中間ドライバは新たなプロトコルドライバを既存のコンピュー
タシステムにインストールするために使用される。この方法は、ImSampの
中間ドライバサンプルIMSAMP.SYS.(ワシントン州、レッドモンドに
所在するMicrosoft Corp.により入手可能)についての「REA
DME」ファイル中により完全に記述される。
【0007】 この方法において、中間プロトコルドライバ125はNDIS115に向かう
。番号1において、MAC120はNDIS115に情報をルーティングする。
番号2において、NDIS115は情報を受信し、その情報を中間プロトコルド
ライバ125にルーティングする。中間プロトコルドライバ125内で、情報は
、新たなバインディングを通して挿入プロトコルドライバ130に通される。挿
入プロトコルドライバ130から、中間プロトコルドライバ125中のMAC1
35により、情報がMAC層フォーマットに変換される。次いで、番号3におい
て情報はMAC135からNDIS115を通り、プロトコルドライバ110へ
の情報の連続的なルーティングを可能にする。プロトコルドライバ110から、
情報はWINSOCK105を通り、適切なアプリケーション100に手渡す。
【0008】 上述した従来技術の方法はその有用性に影響するいくらかの制限を有する(特
に多数のコンピュータを用いネットワークを実行した場合)。第1に、中間プロ
トコルドライバソフトウェアは手動で各コンピュータ上にインストールされなけ
ればならない。例えば、個々のシステム技術者は物理的に各コンピュータまで出
向いて、中間プロトコルドライバソフトウェアおよび新たなプロトコルドライバ
を手動でロードしなければならない。多数のコンピュータが単にソフトウェアの
ロードに関与する場合、このことは実質的な時間投資(time invest
mentを含み得る。また、使用中のアプリケーションをインストールの間に終
了しなければならないように、コンピュータ操作者の生産性の損失も引き起こす
。第2に新たなプロトコルドライバの操作を可能にするため、コンピュータをシ
ャットダウンおよび再起動しなければならない。シャットダウンおよび再起動の
必要性は、使用中のアプリケーションをセーブし終了することも必要とする。多
数のコンピュータが関与する場合、このことは生産性の大きな損失を引き起こし
、ネットワークによって提供されるサービスを混乱させ得る。
【0009】 いくつかのオペレーティングシステムが遠隔的にソフトウェアをネットワーク
上に配信する機構を提供することに留意すべきである。一般的にこれらのシステ
ムはサーバを含み、このサーバに対していくつかのコンピュータが接続される。
遠隔配信において、新たなソフトウェアがサーバ上にロードされ、次いで個々の
コンピュータに配信される、従ってインストールに要する時間は減少する。しか
しながら、遠隔配信を備えた場合でさえ、中間プロトコルドライバのインストー
ルは、ユーザ(例えば、システム技術者)が既存の使用中のアプリケーションを
終了し、インストールを実行し、コンピュータシステムをシャットダウンし、次
いで新たなプロトコルドライバの操作を可能にするためにコンピュータシステム
を再起動することを必要とする。 (発明の簡単な要旨) 本発明は、ネットワークドライバおよびソフトウェアを遠隔的にインストール
するための方法および装置を提供する。本発明の1つの実施形態によれば、イン
ストレーションアプリケーションおよびリルーティングドライバを、遠隔ホスト
からネットワーク上の第1の相手先コンピュータに送信するための、コンピュー
タでインプリメントされる方法が提供される。この第1の相手先コンピュータは
、ネットワークドライバインターフェースを含み、このネットワークドライバイ
ンターフェースは、1つ以上のメディアアクセス制御ユニットと1組の結合に応
じた1つ以上のプロトコルドライバとの間に通信を提供する。リモートホストは
、第1の相手先コンピュータにインストレーションアプリケーションを実行させ
るコマンドを、第1の相手先コンピュータに送る。このコマンドの受信に応答し
て、第1の相手先コンピュータは、インストレーションアプリケーションを実行
する。インストレーションアプリケーションの実行に応答して、第1の相手先コ
ンピュータは、ネットワークドライバインターフェースの変更を生じさせ、これ
により、第1の相手先コンピュータを再起動させることなく、1組の結合により
提供される1つ以上の通信経路にリルーティングドライバが挿入される。
【0010】 (発明の詳細な説明) 本発明は、以下の説明および本発明の実施形態を説明するために用いられる添
付の図面を参照することにより、最良に理解され得る。
【0011】 以下の説明において、本発明の深い理解を提供するために、多数の特定の詳細
について説明する。しかし、本発明は、これらの特定の詳細が無くとも実施可能
であることが理解される。別の例では、本発明を不明瞭にしないため、周知の接
続、構造および技術の詳細は記載していない。
【0012】 ネットワークドライバおよびソフトウェアをコンピュータシステムに遠隔的に
インストールする方法および装置について説明する。これを達成するため、本発
明は、インストレーションを行っている間にコンピュータシステムの動作を継続
でき、かつ、リルーティングドライバの動作をイネーブルするためにコンピュー
タシステムをシャットダウンおよび再起動する必要のない様式で、リルーティン
グドライバのリモートインストレーションを可能にする。
【0013】 図3は、本発明の1つの実施形態による、MACとプロトコルドライバとの間
のリルーティングドライバの静的パッチングを示すブロック図である。このリル
ーティングドライバを挿入することによって生じる既存の結合または将来の結合
を実線で示す。リルーティングドライバを挿入することによってリルーティング
される既存の結合または将来の結合を点線で示す。
【0014】 図3は、従来技術と同様の、ネットワーク情報(例えば、パケット)が、ND
IS315へとルーティングされている1つ以上のMAC 320A〜iによっ
て受け取られる様子を示す。静的パッチをインストールする前に、NDIS31
5は、情報を、1つ以上のプロトコルドライバ(単数または複数)310にルー
ティングする。次いで、プロトコルドライバ(単数または複数)310はこの情
報を、適切なアプリケーション(単数または複数)300へのさらなるルーティ
ング用としてWINSOCK 305にルーティングする。
【0015】 リモートホスト(図示せず)からのリモート配信または直接的ローディングの
いずれかを介して、インストールアプリケーション325、DLL330および
リルーティングドライバ335が、相手先のコンピュータ内のメモリにコピーさ
れ、インストールアプリケーション325が起動する。インストールアプリケー
ション325は、DLL330によって提供されるインターフェース(符号Aお
よびBを参照)を通じて、リルーティングドライバ335のローディングをリク
エストする。インストールアプリケーション325は、制御コード340に結合
コード345を実行するようにリクエストして、リルーティングドライバ335
と少なくとも1つのMAC 320Aとの間の新規結合(符号Cを参照)を確立
する。次いで、インストールアプリケーション325は、制御コード340に静
的パッチングコード365をインストールするようにリクエストする(符号Dを
参照)。符号Eにおいて、静的パッチングコード365は、NDIS315から
、テンプレートジャンプ(templete jump)(単数または複数)3
75を、リルーティングドライバ335内のテンプレート(単数または複数)3
50に挿入する。特に、NDIS315は、MAC(単数または複数)320と
プロトコルドライバ(単数または複数)310との間の情報通信を行うための一
般的な呼び出しを有するコードを含む。この静的パッチは、これらの呼び出しの
各々を、1つのテンプレート(単数または複数)350に対するジャンプと取り
換える。静的パッチングコードインストレーションの詳細に関しては、本明細書
中、図6を参照して後述する。この結合は、各MAC320について継続される
。インストレーション後、インストールアプリケーション325が削除され得る
。静的パッチが完了すると、リルーティングドライバ335が、MAC(単数ま
たは複数)320とプロトコルドライバ(単数または複数)310との間にある
NDIS315に挿入される。
【0016】 番号1において、静的パッチの後、1つ以上のMAC(単数または複数)32
0によって受け取られた情報は、NDIS315にルーティングされる。番号2
において、次いで、プロトコルドライバ(単数または複数)310に向けられた
情報は、テンプレートジャンプ(単数または複数)375の1つから、リルーテ
ィングドライバ335内のテンプレート(単数または複数)350の1つへとジ
ャンプされる。番号3において、テンプレート(単数または複数)350によっ
て受け取られた情報は、挿入コード355へとルーティングされ得る。挿入コー
ド355は、新規なプロトコルドライバまたは別のプログラム(例えば、情報が
さらにルーティングされることを回避することができるセキュリティプログラム
)であり得る。挿入コード355が完成すると、情報は、テンプレート(単数ま
たは複数)350にルートバックされる。番号4において、テンプレート(単数
または複数)350は、情報をプロトコルドライバ310にルーティングし得、
あるいは、この情報をこれ以上通過させるのが望ましくない場合、情報を破棄す
ることもできる。番号5において、NDIS315へのリターンジャンプが実行
される。
【0017】 静的パッチングコード365がインストールされた後、同じ情報を通信する経
路として、2種類のNDIS315への結合が生じている点に留意されたい。1
つの結合は、NDIS315からリルーティングドライバ335への初期結合上
に確立される(図3において、この結合を、NDIS315とリルーティングド
ライバ335との間の断続線として示す)。第2の種類の結合は、NDIS31
5とプロトコルドライバ(単数または複数)310との間にもともとある結合(
単数または複数)である(図3において、こういった結合(単数または複数)を
、NDIS315とプロトコルドライバ(単数または複数)310との間の断続
線として示す)。こういった結合は実質的には、静的パッチングによって除去さ
れる。これは、リルーティングドライバ335が、プロトコルドライバ310へ
の呼び出しを遮断し、その後、挿入コード355が完成した際に、プロトコルド
ライバ(単数または複数)310への呼び出しを発行するからである。リルーテ
ィングドライバ335は、プロトコルドライバ310への情報伝送ルートが1つ
だけであることを確認するために、入来する伝送を調査して、情報がプロトコル
ドライバ(単数または複数)310の1つまたはリルーティングドライバ335
自身へと向けられているか否かを判定する。プロトコルドライバ(単数または複
数)310の1つに向けられた情報は、挿入コード355へと送られる。リルー
ティングドライバ335に向けられた情報は、破棄されるか、または、他の目的
(例えば、セキュリティ目的)のために利用され得る。
【0018】 図4は、本発明の1つの実施形態による、リルーティングドライバ335を遠
隔的にインストールする際のフロー図である。ブロック400において、インス
トールアプリケーション325、DLL330およびリルーティングドライバ3
35を、リモートホスト(図示せず)からネットワークで結ばれた相手先コンピ
ュータのメモリに遠隔的にコピーする。ブロック410において、周知のリモー
トサービスリクエスト技術を用いて、インストールアプリケーション325を起
動する。リモートインストレーションでは、手作業によるソフトウェアのインス
トレーションは、リモートホストコンピュータにおいてのみ必要とされる点に留
意されたい。システム技術者がソフトウェアをリモートホストにロードした後、
そのソフトウェアは、ネットワーク上の他の個々のコンピュータにコピーされる
。従って、システム技術者は、ネットワーク内の個々の各コンピュータにインス
トレーションソフトウェアをロードするために生産時間を浪費せずにすむ。
【0019】 図5は、本発明の1つの実施形態による、インストールアプリケーション32
5の動作を示すフロー図である。インストールアプリケーション325が起動し
た後、ブロック500において、インストールアプリケーション325は、少な
くとも1つのMAC320Xを識別する。ブロック510において、インストー
ルアプリケーション325は、MAC 320Xを識別すると、リルーティング
ドライバ335のローディングをリクエストする。ブロック520において、イ
ンストールアプリケーション325は、制御コード340に結合コード345を
実行するようにリクエストして、リルーティングドライバ335とMAC320
Xとを結合させる。ブロック530において、インストールアプリケーション3
25は、制御コード340に静的パッチングコード365を実行するようにリク
エストする。本明細書中、静的パッチングコード365の動作について、図6を
参照してさらに説明する。静的パッチングコード365が実行された後、ブロッ
ク540において、インストールアプリケーション325は、オプションとして
、DLL330にインストールアプリケーション325を他の任意のMAC(単
数または複数)320に結合するように任意にリクエストする。MAC(単数ま
たは複数)320全てが結合されると、インストールアプリケーション325は
削除され得る。
【0020】 図6は、本発明の1つの実施形態による、静的パッチングコード365の動作
を示すフロー図である。ブロック600において、制御コード340は、コンピ
ュータシステムのオペレーティングシステムのバージョンを識別する。この工程
が必要なのは、様々なバージョンのオペレーティングシステムに対して静的パッ
チングコード365を選択的に構成するからである。この選択的構成は、各バー
ジョンのオペレーティングシステムを評価して、NDIS315の命令コード中
のプロトコルドライバ(単数または複数)CALLのオフセットを判定すること
により、事前決定される。これらのアドレスは、周知のデバッグ技術を用いて判
定され得る。
【0021】 ブロック610において、制御コード340は、識別されたオペレーティング
システムバージョンに対してオフセットデータが利用可能か否かを識別して、静
的パッチングコード365のインストレーションを可能にする。オフセットデー
タが無い場合、制御コード340は、ユーザに通知するためにインストールアプ
リケーション325にリターンする(ブロック660)。オフセットデータが有
る場合、制御コード340は、NDIS315命令コードのスタートメモリアド
レスを識別する(ブロック620を参照)。ブロック630において、制御コー
ド340は、NDIS315内の少なくとも特定のパッチ対象コードへのアクセ
スをディセーブルする。特定の1つのプロセッサコンピュータシステムにおいて
、ブロック630は、全ての割り込みをディセーブルすることにより行われ得る
。本明細書中、マルチプロセッサコンピュータシステムにおいてブロック630
を行うための技術については、図12を参照して後述する。
【0022】 ブロック640において、静的パッチングコード365を用いて、NDIS3
15内の命令コードを静的にパッチする。これは、各所定のメモリアドレス内の
命令を、(所定のオフセットを用いて)リルーティングドライバ335内のテン
プレート(単数または複数)350に対するテンプレートジャンプ(単数または
複数)375で上書きすることにより、行われる。本明細書中、この静的パッチ
コード365を用いた命令の上書きについては、図7および8を参照して後述す
る。
【0023】 ブロック650において、制御コード340は、パッチされたNDIS315
内のコードへのアクセスを再イネーブルする。ブロック660において、制御コ
ード340は、インストールアプリケーション325にリターンする。NDIS
315内にパッチされているコードへのアクセスをディセーブルおよび再イネー
ブルすれば、既存の使用中のアプリケーションおよびシステムをシャットダウン
/再起動させることなく、パッチング(およびゆえにリルーティングドライバの
インストレーション)を行うことが可能となる。
【0024】 図7は、静的パッチングコード365を挿入する前の、NDIS315からの
基本命令コードのブロックである。NDIS315が命令スタック内の命令「C
ALL X」に到達すると、NDIS315は、変数「X」によって識別されて
いるプロトコルドライバ(例えば、プロトコルドライバ(単数または複数)31
0の1つ)を呼び出す。静的パッチングコード365がインストールされている
間、命令「CALL X」は、テンプレートジャンプ375で上書きされる。こ
の上書きにより、「CALL X」は、リルーティングドライバ335内のテン
プレート(単数または複数)350の1つへのジャンプと取り換えられ、これに
より、テンプレート350の命令が、プロトコルドライバXに対する意図される
ルーチンへの呼び出しの代わりに実行される。
【0025】 図8は、本発明の1つの実施形態による、テンプレート(単数または複数)3
50の1つへの呼び出しに対するNDIS315のパッチングを示す図である。
このパッチングでは、「CALL X」命令をテンプレートジャンプ375で上
書きする−−すなわち、リルーティングドライバ335内のテンプレート350
アドレスへの「JUMP」を行う。ジャンプ命令の長さは、図7において先に図
示した「CALL X」および「<INSTRUCTION920>」の両方に
上書きされる点に留意されたい。次いで、「JUMP」は、テンプレート350
のアドレスに為される。テンプレート350は、新規な命令(例えば、命令95
0)を含み得、これらの新規な命令において、さらなる挿入コード355が実行
または呼び出され得る。さらなる挿入コード355が完成すると、テンプレート
350は、「CALL X」および残りの置換された命令(例えば、「<INS
TRUCTION920>」)を実行し、NDIS315内の次のアドレス(す
なわち、「<INSTRUCTION930>」)にジャンプバックする。この
ような様式で、リルーティングドライバ335への静的パッチがNDIS315
に導入される。このNDIS315の命令コード内の特定のメモリアドレスにお
ける上書きは、当該オペレーティングシステムに対する呼び出し全てが、異なる
テンプレート350に対応する異なるテンプレートジャンプ375を用いて上書
きされるまで、繰り返される。
【0026】 図9は、本発明の1つの実施形態による、テンプレート(単数または複数)3
50の1つの動作を示すフロー図である。ブロック900において、MACのリ
クエストに応答して、NDIS315内のテンプレートジャンプ375からテン
プレート350へのジャンプが行われる。上述したように、このMACのリクエ
ストは、静的パッチングコード365をインストールする際に確立された2重結
合のため、プロトコルドライバ310またはリルーティングドライバ335へと
送られ得る。ブロック910において、テンプレート350は、情報がリルーテ
ィングドライバ335行きかどうかを判定する。
【0027】 情報がリルーティングドライバ335行きではない場合、その情報は、プロト
コルドライバ(単数または複数)310の1つへと向けられたものであり、その
情報は、静的パッチングコード365を通じて受け取られる。次いで、ブロック
920において、情報は、挿入コード355へとルーティングされる。挿入コー
ド355が完了すると、情報は、挿入コード355の命令の結果に応じて、CA
LLを介して適切なプロトコルドライバ310にルーティングされるかまたはル
ーティングされなくなり得る。ブロック930において、呼び出しが適切なプロ
トコルドライバ(単数または複数)310にルーティングされる場合、挿入コー
ド355からリターンする際に適切なプロトコルドライバ310が呼び出される
。ブロック950において、呼び出しからリターンする際、テンプレート350
からNDIS315へのジャンプバックが実行される。あるいは、呼び出しがプ
ロトコルドライバ(単数または複数)310にルーティングされていない場合、
ブロック950において、情報をプロトコルドライバ310にルーティングする
ことなくNDIS315へのジャンプバックが行われる。
【0028】 情報がリルーティングドライバ335行きである場合、その情報は、NDIS
315とリルーティングドライバ335との間の結合を通じて受け取られる。ブ
ロック940において、テンプレート350は、所定の規定のアクションを実行
する。このアクションは、情報の破棄または情報の他のコード命令へのルーティ
ングであり得る。ブロック950において、規定のアクションからリターンする
際、NDIS315へのリターンジャンプバックが実行される。
【0029】 従って、本発明の1つの実施形態は、中央のホストコンピュータからのネット
ワークドライバおよびソフトウェアを遠隔的にインストールする方法および装置
を提供する。本発明は、従来技術に対して実質的な利点を提供し得、特に大型の
コンピュータネットワークではその効果が大きくなる。
【0030】 第1に、本発明のリモートインストレーションでは、ホストコンピュータに接
続されている個々のコンピュータへアプリケーションを配信する際、システム技
術者は、そのアプリケーションをホストコンピュータにインストールするだけで
すむ。このリモートインストレーションは、システム技術者がソフトウェアを各
個々のコンピュータに手作業でロードする必要を軽減する。
【0031】 第2に、このリモートインストレーションは、使用中のシステムが動作したま
までの状態でも達成可能であり、新規ドライバおよび/またはソフトウェアの動
作をイネーブルするためにシステムをシャットダウンおよび起動させる必要がな
い。これは、インストレーション中に既存のアプリケーションを保存および終了
する必要を軽減し得、また、作業時間およびシステムアクセスの維持に繋がり得
る。
【0032】 第3に、図2を参照して説明した従来技術では、中間プロトコルドライバによ
って受け取られる情報を、中間プロトコルドライバを用いて(NDISを通じた
プロトコルドライバへのルーティング用として)MAC層フォーマットに再変換
する必要があった。そのため、パケットは、MAC層フォーマットからプロトコ
ル層フォーマットへと2回変換される(すなわち、1回目は、MACからNDI
Sを通じたリルーティングドライバへの初期の伝送、2回目は、中間ドライバか
らNDISを通じたプロトコルドライバへの伝送)。従来技術とは対照的に、本
発明では、情報をリルーティングドライバからプロトコルドライバへとルーティ
ングする際、MAC層フォーマットに再度変換することは不要である。
【0033】 上記の本発明の実施形態ではリモートインストレーションに関して説明したが
、所望ならば、本発明は、個々のコンピュータに手作業でインストールすること
も可能であることが理解される。
【0034】 (別の実施形態) 上記の本発明の実施形態では、ネットワークドライバおよびソフトウェアを遠
隔的にインストールする方法および装置を提供する。本発明の別の実施形態では
、このリモートインストレーションの実施形態を用いて,配信されたパケットに
基づくセキュリティシステムを、1つ以上の個々のネットワークコンピュータに
インストールする。
【0035】 現在、ネットワークで接続されたコンピュータは、ネットワーク(例えば、イ
ンターネット)を通じた電子的侵入に対して無防備である。ネットワーク上のコ
ンピュータへのアクセスを制限するために、コンピュータネットワークでは一般
的には、コンピュータセキュリティ手段を用いて,選択されたパラメータに基づ
いてネットワークへのアクセスを制限している。
【0036】 図10は、本発明の1つの実施形態による、配信されたパケットに基づくセキ
ュリティを用いたネットワークを示すブロック図である。スイッチングネットワ
ークへの最初のアクセスセキュリティは、ファイアウォールによって提供される
。ファイアウォールは一般的には、個人単位でのシステムへのアクセス権を与え
られている者を除き、システムへのアクセスをブロックする。アクセス権限の最
新状態および有効状態を保つためには、継続的な更新を必要とする。大型のコン
ピュータネットワークの場合、最新の個々のアクセス認証を保持することは、時
間がかかり、また困難でもある。従って、アクセスリストから独立した別のセキ
ュリティ手段として、パケットに基づくセキュリティシステムがある。
【0037】 パケットに基づくセキュリティシステムは、インストレーションが容易でかつ
/または低コストであるため、サーバ(単数または複数)の1つ以上および/ま
たは個々のコンピュータ1000A〜iの1つ以上にインストール可能である。
このパケットに基づくセキュリティシステムは、いくつかの所定の基準に従い、
ネットワークを介して受け取られた情報パケットを評価する。
【0038】 本発明の1つの実施形態において、配信されたパケットに基づくセキュリティ
システムのためのリルーティングドライバが提供される。このリルーティングド
ライバは、受け取られたネットワーク情報を、所定のパラメータおよび/または
動的パラメータと比較して評価し得る。これらのパラメータに基づいて、このセ
キュリティシステムは、情報を連続的にプロトコルドライバに伝送することを防
止または許可し得る。このような様式で、望ましくない情報をNDISレベルに
おいて阻止し、プロトコルドライバまたはコンピュータのアプリケーションレベ
ルに侵入させないようにする。また、本発明は、さらなるセキュリティ評価を行
うために、未伝送情報を保存する能力を提供する。さらに、本発明は、個々のコ
ンピュータが動作している間に(各コンピュータシステムをシャットダウンおよ
び再起動させることなく)分散され、リモートホストを通じて個々のコンピュー
タにインストールされ得る。
【0039】 図11Aは、本発明の1つの実施形態による、パケットに基づくセキュリティ
用のリルーティングドライバのインストレーションおよび部分的動作を示すブロ
ック図である。1つ以上のMAC(単数または複数)1120によって受け取ら
れたネットワーク情報は、NDIS1115にルーティングされる。リルーティ
ングドライバ1135をインストールする前に、NDIS1115は、情報をプ
ロトコルドライバ1110にルーティングする。次いで、プロトコルドライバ1
110は、この情報を適切なアプリケーション1100へのさらなるルーティン
グ用としてWINSOCK 1105にルーティングする。
【0040】 上述したように、インストール/セキュリティアプリケーション1125、D
LL1130およびリルーティングドライバ1135は、相手先のコンピュータ
内のメモリにコピーされ、インストール/セキュリティアプリケーション112
5が起動する。インストール/セキュリティアプリケーション1125は、DL
L1130によって提供されるインターフェース(符号AおよびBを参照)を通
じて、リルーティングドライバ1135のローディングをリクエストする。イン
ストール/セキュリティアプリケーション1125は、制御コード1140に結
合コード1145を実行するようにリクエストし、これにより、リルーティング
ドライバ1135内の取得ユニット1160と、MAC1120Xとして示す少
なくとも1つのMAC1120との間の新規結合を確立する(符号Cを参照)。
インストール/セキュリティアプリケーション1125は次いで、制御コード1
140に静的パッチングコード1165をインストールするようにリクエストす
る(符号Dを参照)。符号Eにおいて、静的パッチングコード1165は、ND
IS 1115から、テンプレートジャンプ1175を、リルーティングドライ
バ1135内のテンプレート1150に挿入する。取得ユニット1160への結
合は、残りのMAC1120A〜iの各々についても維持される。静的パッチが
完了すると、リルーティングドライバ1135は、MAC(単数または複数)1
120とプロトコルドライバ(単数または複数)1110との間のNDIS11
15に挿入される。
【0041】 上述したように、各MACについて少なくとも2つの結合が生じている。1つ
の結合は、NDIS1115からリルーティングドライバ1135内の取得ユニ
ット1160への初期結合上に確立される;図11Aにおいて、この結合を、N
DIS1115と取得ユニット1160との間の断続線として示す。残りの結合
(単数または複数)は、NDIS1115とプロトコルドライバ(単数または複
数)1110との間の初期結合であり、この初期結合は、静的パッチ(図示せず
)によってリルーティングドライバ1135に進路変更される。その結果、MA
Cから受け取られた所与のパケットについて、NDIS1115は、プロトコル
ドライバ(単数または複数)1110の少なくとも1つおよび取得ユニット11
60を呼び出そうと試みる。しかし、静的パッチのため、各試みは、テンプレー
ト(単数または複数)1150の1つへのエントリ(entry)を生じる。図
11A中の丸で囲んだ番号1〜5は、NDIS1115がプロトコルドライバ(
単数または複数)1110の1つを呼び出そうと試みるタイミングを示し、図1
1B中の丸で囲んだ番号は、NDIS1115が取得ユニット1160を呼び出
そうと試みるタイミングを示す。
【0042】 図11Aを参照して、番号1において、MAC1120からNDIS1115
へのリクエストが為される。番号2において、(プロトコルドライバ1110)
への呼び出しが試みられた際に)NDIS1115内のテンプレートジャンプ1
175から、テンプレート1150へのジャンプが受け取られる。テンプレート
1150は、リクエストがリルーティングドライバ1135行きかどうかを判定
する。リクエストがリルーティングドライバ1135行きである場合、本明細書
中おいて図11Bを参照して後述するような、パケットに基づくセキュリティに
関連するさらなるアクションがとられる。リクエストがリルーティングドライバ
1135行きではない場合、情報は、プロトコルドライバ1110へと向けられ
る(図11Aの主題)。
【0043】 番号3において、情報は、フィルタユニット1155にルーティングされる。
フィルタユニット1155は、意図されるプロトコルドライバ1110に情報を
送るべきか否かを判定するための情報を評価するコードを含み得る。情報をこれ
以上先に送ることが望ましくない場合、情報を破棄するかまたはフィルタユニッ
ト1155によってさらに利用することができ、番号5において、NDIS11
15へのジャンプバックが実行される。情報が受容可能と判定された場合、情報
は、テンプレート1150にルートバックされる。次いで、番号4において、テ
ンプレート1150は、NDTS 1115から抽出されたCALL Xをパッ
チング中に実行することにより、この情報をプロトコルドライバ1110にルー
ティングする。番号5において、この情報がプロトコルドライバ1110からテ
ンプレート1150へとリターンする際、NDIS1115へのリターンジャン
プが実行される。
【0044】 図11Bは、本発明の1つの実施形態による、パケットに基づくセキュリティ
用のリルーティングドライバの動作の別の部分(特に、NDIS1115がリル
ーティングドライバ1135を呼び出そうと試みる場合)を示すブロック図であ
る。この場合、番号2において、(リルーティングドライバ1135の呼び出し
の試みに際し)テンプレート1150へのジャンプはやはり、NDIS1115
内のテンプレートジャンプ1175から受け取られる。テンプレート1150は
、リクエストがリルーティングドライバ1135行きかどうかを判定する。番号
3において、情報は、(例えば、NDIS1115から抽出されたCALL X
をパッチング中に行うことにより)取得ユニット1160へと送られる。取得ユ
ニット1160は、所定の命令に従って、この情報をさらなるセキュリティ評価
用として保存し、番号4において、NDIS1115へのジャンプバックが実行
される。
【0045】 1つの実施形態において、取得ユニット1160によって保存された情報(以
下、この情報を日付とする)のさらなるセキュリティ評価を、別のアプリケーシ
ョン(例えば、インストール/セキュリティアプリケーション)によって行うこ
とができる。取得情報は、システムアドレススペース(例えば、プロトコルドラ
イバ、リルーティングドライバ、NDISおよびMACが常駐する場所)におい
て発生する。多くのアプリケーションが、システムアドレススペースから発生す
るデータへのアクセスを必要とする。これを達成するための典型的な方法は、シ
ステム呼び出し(例えば、I/O API)を作成することにより達成される。
これらのシステム呼び出しは、CPUリソース用途ではあまり効率が良くなく、
ユーザアドレススペースとシステムアドレススペースとの間メモリのコピーを行
うことが多い。加えて、これらのシステム呼び出しはまた、CPUの状態がユー
ザモードからスーパーバイザーモードへと移行し、またユーザモードにリターン
するような、少なくとも2つの損失を伴うCPUの状態移行を生成する。このオ
ーバーヘッドを最小限にする1つのオプションとして、コードのより多くをシス
テムアドレススペースにおいて実行することがある。こうすると、ソフトウェア
をデバッグする困難性が増加し、多数のオペレーティングシステム上の複数のC
PUの利点を活かすことができないという不利点も生じる。
【0046】 1つの実施形態において、システムアドレススペース内のデバイスドライバと
、ユーザスペース内のアプリケーション(単数または複数)との間に、共有メモ
リバッファを作成する。このようにすると、アプリケーションが、メモリ読出し
以上のオーバーヘッドを生じることなく、システムアドレススペース内のデータ
にアクセスすることが可能となる。しかし、ドライバコードを実行しているCP
Uが、アプリケーションを実行しているCPUによってアクセスされているメモ
リを同時に修正し得るという状況を回避する必要が出てくる。
【0047】 この同時使用の状況を回避するために、1つの実施形態において、2つのカウ
ンタを用いて、バッファの状態を信号にして送ることができる。1つのカウンタ
(「書込みカウント」)は、メモリバッファに書き込まれるアイテムのカウント
数である。もう一方のカウンタ(「読み出しカウント」)は、バッファから読み
出されるアイテムのカウント数である。「書き込みカウント」を変更できるのは
製造者のみであり、「読み出しカウント」を変更できるのは消費者だけである。
「読出しカウント」が「書き込みカウント」と等しくない場合、バッファ内に有
効データが含まれる。以下にこの一例を示す。 アプリケーションの実行: Loop: if“読み出しカウント”<>“書き込みカウント” 次のバッファを得る 次のアイテムを読み出す アイテムを処理する 読み出しカウントをインクリメントする Else 信号を待つ endif Go to loop システムアドレスの実行: Loop: 入来データを待つ 空のバッファを割り当てる If 割り当てが失敗 データを処分 endif Go to loop データを処理する データをバッファに書き込む 書き込みカウントをインクリメントする if“write count”=1+“read count”;データを
空のバッファに入れる 信号を送る Go to loop 図11Aおよび1lBは、NDIS1115への2重結合の利用を通じてパケ
ットに基づくセキュリティを提供する、本発明の1つの実施形態を示す。特に、
NDIS1115からプロトコルドライバ(単数または複数)1110への任意
の結合を用いて、パケットをリルーティングドライバを通じてプロトコルドライ
バ(単数または複数)1110にルーティングする。しかし、MAC(単数また
は複数)1120とリルーティングドライバ1135との間の結合を、パケット
をその後のセキュリティ評価用として取得するメカニズムとして用いる。パケッ
トをセキュリティ評価用として取得する別個の経路を提供することにより、この
取得プロセスに別個のコンテキストが提供される。当該分野において周知のよう
に、別個のコンテキストを提供すると、取得プロセスの間のプログラミングの柔
軟性を高めることが可能となる。
【0048】 別の実施形態において、2重結合は用いられず、それよりも、これらのパケッ
トをその後のセキュリティ評価用として取得しないか、NDIS1115からプ
ロトコルドライバ(単数または複数)1110へのルーティングの間にこれらの
パケットを取得するかのどちらかである。NDIS1115からプロトコルドラ
イバ(単数または複数)1110へのルーティングの間にパケットを取得するシ
ステムにおいて、MAC(単数または複数)1120の各々は、リルーティング
ドライバ1135に結合させなくてもよい(図5からのオプションの工程540
は行わない)。
【0049】 例えば、本発明の1つの実施形態において、NDIS1115への単一の結合
のみを用いて、フィルタユニット1155によって受容可能とみなされた情報が
、適切なプロトコルドライバ1110へのルーティング用としてテンプレート1
150にルーティングされる。フィルタユニット1155によって受容不可能と
みなされた情報は、取得ユニット1160へのルーティング用としてテンプレー
ト1150にルートバックされる。
【0050】 このように、配信されたパケットに基づくセキュリティを提供する本発明の別
の実施形態について説明してきた。これらの実施形態では、リルーティングドラ
イバが、関連付けられたソフトウェアを用いてネットワークを介して受け取った
情報パケットの遮断および評価を行う。評価が終了すると、情報をプロトコルド
ライバへ継続してルーティングすることが可能にされ得る。あるいは、情報は、
さらなるセキュリティ評価用として阻止および/または保存され得る。これらの
実施形態において、情報は遠隔的に配信され、コンピュータシステムをシャット
ダウンおよび再起動させることなく、リモートホスト上の個々のコンピュータが
動作しているときに個々のコンピュータにインストールされ得る。
【0051】 さらに、上記の実施形態では配信されたパケットに基づくセキュリティを提供
するシステムについて説明したが、フィルタユニット中に別の評価パラメータを
提供することにより、他の実施形態も実施され得る。例えば、フィルタユニット
は、特定のルーティング情報を有する情報をフィルタリングおよび取得するため
のパラメータを含み得、そうすることでネットワークの利用状況をモニタリング
し得る。
【0052】 また、別の実施形態をリモートインストレーションに関して説明したが、所望
ならば、これらの実施形態は、手作業でも個々のコンピュータにインストール可
能であることが理解されるべきである。
【0053】 シャットダウンおよび再起動を回避するために、NDIS内の所定の命令コー
ドへのアクセスは、ディセーブルされてから、その後再イネーブルされるべきで
あり、これにより、メモリアドレスの静的パッチコードでの上書きが可能となる
。上述したように、これは、割り込みをディセーブルおよび再イネーブルするこ
とにより、特定の1つのプロセッサシステムにおいて行われ得る。上記の実施形
態の各々はまた、後述するようにアクセスをディセーブルおよび再イネーブルす
ることにより、マルチプロセッサシステムでもインプリメントされ得る。
【0054】 図12は、本発明の1つの実施形態による、マルチプロセッサシステム内のコ
ードへのアクセスをディセーブルおよび再イネーブルするフロー図である。ブロ
ック1200において、所与の中央処理装置(CPU)において、修正対象コー
ドが、所与のCPUのキャッシュ内に導入され、「ブロッキングコード」で上書
きされ、これにより、第1のバージョンのコードが作成される。このブロッキン
グコードは、別のCPUがこのコードを処理する(progressing p
ast)ことを回避する。ブロッキングコードをインプリメントする方法は色々
あるが、1つの方法としては、CPUにシリアル化命令をループさせるコードを
書き込む方法がある。その結果、他のあらゆるCPU(すなわち、パッチを行わ
ないCPU)は、修正対象コードへアクセスできなくなる(または、ディセーブ
ルされる)。
【0055】 ブロック1210において、第1のバージョンのコードは、所与のCPUのキ
ャッシュから共有メモリに書き込まれる。その結果、別のCPUが修正対象コー
ドを実行しようと試みた場合、その別のCPUは、共有メモリからのブロッキン
グコードにアクセスすることとなる。
【0056】 ブロック1220において、ブロッキングコード以外のコードを、所与のCP
Uのキャッシュにおいて必要に応じて修正することができ、これにより、第2の
バージョンのコードを作成する。例えば、1つの実施形態において、コードをテ
ンプレートジャンプで上書きすることができ、これにより、NDISの静的パッ
チをもたらす。
【0057】 ブロック1230において、第2のバージョンのコードを、所与のCPUのキ
ャッシュから共有メモリに書き込む。
【0058】 ブロック1240において、所与のCPUのキャッシュ内の事前挿入されたブ
ロッキングコードを所望のコードで上書きし、これにより第3のバージョンのコ
ードを作成する。
【0059】 ブロック1250において、(ブロッキングコードを持たない)第3のバージ
ョンのコードを、共有メモリに書き込む。その結果、共有メモリ内のパッチ化コ
ードと、そのアドレスにおけるコード実行しようと試みるCPUとが、パッチ化
コードを入手する。
【0060】 上記の技術を用いれば、本発明の上記の別の実施形態を、単数および複数のプ
ロセッサシステムにインストールすることが可能となる。
【0061】 上記の実施形態を、NDIS上の所定の命令コードアドレスに対する静的パッ
チに関して説明してきた。静的パッチングは、NDIS内のCALLのオフセッ
トを事前に決定しておくことを必要とする。しかし、特定の状況において、ND
IS内の呼び出しアドレスの識別を自動化し、かつ/または、異なるアドレスを
用いる異なるバージョンのオペレーティングシステムおよび/あるいは異なるア
ドレスを用いる新規なバージョンのオペレーティングシステムを収容することが
望ましい場合もある。従って、1つの実施形態は、動的パッチ技術を提供し、こ
の動的パッチ技術は、リルーティングドライバが個々の命令コード位置から情報
を受け取る際、個々の命令コード位置をパッチする。このような様式で、情報が
送出される特定の命令位置全てがパッチされるまで、各CALLをインクリメン
ト的にパッチする。
【0062】 図13は、本発明の1つの実施形態による、MACとプロトコルドライバとの
間のリルーティングドライバの動的パッチングを示すブロック図である。上述し
たように、インストールアプリケーション1325、DLL1330およびリル
ーティングドライバ1335は、相手先コンピュータ内のメモリにコピーされ、
インストールアプリケーション1325が起動する。インストールアプリケーシ
ョン1325は、DLL1330によって提供されるインターフェースを通じて
、リルーティングドライバ1335のローディングをリクエストする。次いで、
リルーティングドライバ1335は、制御コード1340に結合コード1345
を実行するようリクエストし、これにより、リルーティングドライバ1335内
の動的パッチングコード1360と各MAC1320A〜iとの間の新規結合を
確立する。
【0063】 リルーティングドライバ1335内の動的パッチングコード1360に情報を
ルーティングする1つの結合がある。この結合を、図13内のNDIS1315
と動的パッチングコード1360との間の点線として示す。今、リルーティング
ドライバ1335は、パッチを挿入する必要のあるNDIS 1315命令コー
ド内の位置を判定するために、情報パケットを受け取るよう待機している。
【0064】 番号1において、ネットワークからの情報が、MAC1320によって受け取
られる。この情報は、適切なプロトコルドライバ(単数または複数)1310お
よび/またはリルーティングドライバ1335へのルーティング用として、ND
IS 1315に転送される。NDIS1315は、NDIS1315のパッチ
が作成されていないため、この情報をプロトコルドライバ1310に転送する。
複数の結合があるため、NDIS1315はさらに、同じ情報を動的パッチング
コード1360に転送する。動的パッチングコード1360は、その情報を送っ
た命令コードアドレスに動的パッチを施すべきか否かを判定する。
【0065】 番号3において、情報を送った命令コードアドレスに動的パッチを施すべきで
ある場合、動的パッチングコード1360によって動的パッチが実行される。動
的パッチングコード1360は、NDIS1315内の指定されたコードを、リ
ルーティングドライバ1335内のテンプレート1350に対するテンプレート
ジャンプ1375で上書きする。その命令コード位置におけるNDIS1315
を通し次回に情報が通過するとき、プロトコルドライバ1310行きの情報は、
図14を参照して後述するようなさらなるアクション用として、リルーティング
ドライバ1335内の動的パッチングコード1360にルーティングされる。
【0066】 図14は、本発明の1つの実施形態による、動的パッチングコード1360の
動作を示すフロー図である。ブロック1400において、動的パッチングコード
1360は呼び出しを受け取る。動的パッチングコードは2重に結合されている
ため、この呼び出しは、テンプレートの1つかまたはNDIS1315からのも
のであり得る。ブロック1410において、動的パッチングコード1360は、
その呼び出しがテンプレートの1つからのものであるか否かを判定する。
【0067】 その呼び出しがテンプレートの1つからのものである場合、その呼び出しは、
さらなるアクション用として挿入コードにルーティングされる(ブロック144
0を参照)。挿入コードが完成すると、その呼び出しは、さらなるアクション用
としてテンプレートにリターンされる(ブロック1450を参照)。
【0068】 ブロック1410において呼び出しがテンプレートの1つからのものではない
場合、その呼び出しは、NDIS1315の未パッチ部分から受け取られたもの
であるため、NDIS1315内の命令コードをパッチするためのアクションを
とる必要が出てくる。ブロック1420において、呼び出しスタックから呼び出
し情報にアクセスする。ブロック1430において、上述したように呼び出しを
パッチする。制御は、ブロック1430からブロック1450に送られる。
【0069】 このように、NDISの動的パッチを用いてプロトコルドライバを遠隔的にイ
ンストールするための本発明の1つの実施形態を説明してきた。パッチされるN
DIS命令コードの位置を確立するために何らかの情報をNDISからプロトコ
ルドライバへと送る必要があるため、この動的パッチは、初期段階では、先述し
た静的パッチの実施形態の場合ほど効果的ではない。
【0070】 実施形態において、静的パッチング技術と動的パッチング技術とを組合わせて
用いることが可能である。例えば、所与のオペレーティングシステム上のデータ
が利用可能である場合、静的パッチング技術が用いられる。しかし、オペレーテ
ィングシステム上のデータが利用不可能である場合、ユーザに通知が行き、かつ
/または、動的パッチング技術が用いられる。別の実施例として、全ての既知の
呼び出しについて静的パッチング技術が用いられ得、1つ以上の呼び出しがミス
(missed)された場合、動的パッチング技術がインストールされ得る。
【0071】 プロトコルドライバのリモートインストレーションおよびパケットに基づくセ
キュリティシステムに関連して本発明を説明してきたが、本発明はまた、動作可
能とさせるためにNDISに結合させる必要のあるようなドライバを用いた他の
ソフトウェアをインストールする場合にも用いられ得る。加えて、本発明の実施
形態をパケットに基づくセキュリティシステムに関連して説明してきたが、冗長
符号を用いた別の動作を行うための別の挿入コートが用いられ得るような、別の
実施形態もインプリメントされ得る。
【0072】 図3〜14に示すアイテムは、コンピュータシステムに格納され、コンピュー
タシステム上で実行される点に留意されたい。このようなコンピュータシステム
は、(内的なおよびネットワークを介した他のコンピュータシステムに対する)
コードおよびデータの格納および通信を、機械的に読取可能なメディア(例えば
、磁気ディスク、光学ディスク、ランダムアクセスメモリ、リードオンリーメモ
リ、搬送波、信号等)を用いて行う。加えて、本発明の一部をソフトウェアにイ
ンプリメントする実施形態について説明したが、別の実施形態では、これらの部
分の1つ以上を、ソフトウェア、ファームウェアおよび/またはハードウェアの
任意の組合わせを用いてインプリメントすることも可能である。
【0073】 本発明をいくつかの実施形態に関して説明してきたが、当業者であれば、本発
明はこれらの実施形態に限定されないことを認識する。本発明の方法および装置
は、添付の特許請求の範囲の精神および範囲内で改変および変更を用いて実施可
能である。したがって、本明細書の記載は、本発明を限定するものではなく、例
示的なものであるとみなされるべきである。
【図面の簡単な説明】
【図1】 図1は、従来技術による、MACからアプリケーションへの通信を示すブロッ
ク図である。
【図2】 図2は、従来技術による、中間ドライバを図1のシステムに挿入する様子を示
すブロック図である。
【図3】 図3は、本発明の1つの実施形態による、MACとプロトコルドライバとの間
のリルーティングドライバの静的パッチングを示すブロック図である。
【図4】 図4は、本発明の1つの実施形態による、リルーティングドライバを遠隔的に
インストールする様子を示すフロー図である。
【図5】 図5は、本発明の1つの実施形態による、インストールアプリケーション32
5の動作を示すフロー図である。
【図6】 図6は、本発明の1つの実施形態による、静的パッチングコード365の動作
を示すフロー図である。
【図7】 図7は、静的パッチングコード365を挿入する前の、NDIS315からの
基本命令コードのブロックである。
【図8】 図8は、本発明の1つの実施形態による、テンプレート(単数または複数)3
50の1つに対する呼び出しに対するNDIS315のパッチングを示す図であ
る。
【図9】 図9は、本発明の1つの実施形態による、テンプレート(単数または複数)3
50の1つの動作を示すフロー図である。
【図10】 図10は、本発明の1つの実施形態による、配信されたパケットに基づくセキ
ュリティを備えるネットワークを示すブロック図である。
【図11A】 図11Aは、本発明の1つの実施形態による、パケットに基づくセキュリティ
用のリルーティングドライバのインストレーションおよび部分的動作を示すブロ
ック図である。
【図11B】 図11Bは、本発明の1つの実施形態による、パケットに基づくセキュリティ
用のリルーティングドライバの別の部分の動作を示すブロック図である。
【図12】 図12は、本発明の1つの実施形態による、マルチプロセッサシステム内のコ
ードへのアクセスをディセーブルおよび再イネーブルする様子を示すフロー図で
ある。
【図13】 図13は、本発明の1つの実施形態による、MACとプロトコルドライバとの
間のリルーティングドライバの動的パッチングを示すブロック図である。
【図14】 図l4は、本発明の1つの実施形態による、動的パッチングコード1360の
動作を示すフロー図である。
【手続補正書】
【提出日】平成13年7月3日(2001.7.3)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SL,SZ,TZ,UG,ZW ),EA(AM,AZ,BY,KG,KZ,MD,RU, TJ,TM),AE,AL,AM,AT,AU,AZ, BA,BB,BG,BR,BY,CA,CH,CN,C R,CU,CZ,DE,DK,DM,EE,ES,FI ,GB,GD,GE,GH,GM,HR,HU,ID, IL,IN,IS,JP,KE,KG,KP,KR,K Z,LC,LK,LR,LS,LT,LU,LV,MA ,MD,MG,MK,MN,MW,MX,NO,NZ, PL,PT,RO,RU,SD,SE,SG,SI,S K,SL,TJ,TM,TR,TT,TZ,UA,UG ,US,UZ,VN,YU,ZA,ZW

Claims (29)

    【特許請求の範囲】
  1. 【請求項1】 配信されたパケットに基づくセキュリティシステムであって
    、 ネットワーク内の複数のコンピュータを介して、該複数のコンピュータのそれ
    ぞれをシャットダウンまたは再起動することなくインストールおよび動作可能に
    し、所定の標準に従って該ネットワークを介して受け取られたパケットを評価し
    、該ネットワークからプロトコルドライバへのこのようなパケットの送信を選択
    的に可能にする、セキュリティシステム。
  2. 【請求項2】 前記インストールは、パッチング技法を用いて行われる、請
    求項1に記載のセキュリティシステム。
  3. 【請求項3】 前記複数のコンピュータのそれぞれが、前記配信されたパケ
    ットに基づくセキュリティシステムの第1のコードを格納するユーザスペースと
    、プロトコルドライバおよび該セキュリティシステムに基づいて配信されたパケ
    ットの第2のコードを格納するシステムアドレススペースとの間に共有されたメ
    モリバッファを形成し、ここで、該第2のコードは、前記ネットワークを介して
    受信されたパケットに関する情報を格納するために該共有されたメモリに接続さ
    れ、該第1のコードは、該共有されたメモリバッファに格納された情報を評価す
    るために該共有されたメモリバッファに接続される、請求項1に記載のセキュリ
    ティシステム。
  4. 【請求項4】 前記インストールは、前記ネットワークのホストコンピュー
    タから遠隔的に行われる、請求項1に記載のセキュリティシステム。
  5. 【請求項5】 コンピュータシステムが複数のネットワークコンピュータを
    含み、該ネットワークコンピュータのそれぞれが、 物理的送信メディアを介して提供されたデータからパケットを取り出すために
    該ネットワークの該物理的送信メディアに接続されたメディアアクセス制御ユニ
    ットと、 該メディアアクセス制御ユニットに接続されたプロトコルドライバと、 該メディアアクセス制御ユニットと該プロトコルドライバとの間にインストー
    ルされ、そしてシャットダウンまたは再起動することなく使用可能にされ、それ
    により、該パケットを評価し、そして該プロトコルドライバに該パケットの異な
    るパケットの連続した送信を選択的に可能にする、フィルタコードと、 を含む、コンピュータシステム。
  6. 【請求項6】 前記インストールは、パッチング技法を用いて行われる、請
    求項5に記載のコンピュータシステム。
  7. 【請求項7】 前記複数のコンピュータのそれぞれが、セキュリティアプリ
    ケーションを格納するユーザスペースと、前記メディアアクセス制御ユニット、
    前記プロトコルドライバ、および前記フィルタコードを格納するシステムアドレ
    ススペースとの間に共有されたメモリバッファを含み、該フィルタコードは、前
    記ネットワークを介して受け取ったパケットに関する情報を格納するために該共
    有されたメモリに接続され、該セキュリティアプリケーションは、該共有された
    メモリバッファに格納された情報を評価するために該共有されたメモリバッファ
    に接続される、請求項5に記載のコンピュータシステム。
  8. 【請求項8】 前記インストールは、前記ネットワークのホストコンピュー
    タから遠隔的に行われる、請求項5に記載のコンピュータシステム。
  9. 【請求項9】 コンピュータ実現方法であって、 各複数のコンピュータによってインストールされるコードをネットワークを介
    してリモートホストから該複数のコンピュータに配信する工程であって、該各複
    数のコンピュータは、該ネットワークに接続されたメディアアクセス制御ユニッ
    トとプロトコルドライバとの間の通信経路を提供するように実行され、パケット
    のための該通信経路は、該ネットワークを介して送られるパケットの経路である
    工程と、 該リモートホストから該各複数のコンピュータに、該複数のコンピュータのそ
    れぞれが該コードを実行するようにコマンドを送る工程と、 該コマンドの実行に応答する該各複数のコンピュータが、該メディアアクセス
    制御ユニットと該プロトコルドライバとの間の該通信経路においてドライバをイ
    ンストールする工程であって、該コンピュータを再起動することなく、該インス
    トールされたドライバを使用可能にし、該通信経路に沿って該ネットワークを介
    して受け取られる該パケットの異なるパケットの連続送信を選択的に可能にする
    ことを評価する工程と、 を含む、方法。
  10. 【請求項10】 前記インストールする工程は、パッチング技法を用いて行
    われる、請求項9に記載の方法。
  11. 【請求項11】 前記コマンドに応答して前記各複数のコンピュータはまた
    、実行し、前記プロトコルドライバを格納するシステムアドレススペースとセキ
    ュリティアプリケーションを格納するユーザスペースとの間の共有されたメモリ
    バッファを形成し、ここで、該ドライバは、前記ネットワークを介して受信され
    たパケットに関する情報を格納するための該共有されたメモリに接続され、該ア
    プリケーションは、該共有されたメモリバッファに格納された情報を評価するた
    めに該共有されたメモリバッファに接続されている、請求項9に記載の方法。
  12. 【請求項12】 前記インストールする工程は、前記ネットワークドライバ
    インターフェースと前記プロトコルドライバとの間でのインストールを含む、請
    求項10に記載の方法。
  13. 【請求項13】 命令を提供する装置読み出し可能メディアであって、一組
    のプロセッサによって実行された場合、該一組のプロセッサが動作を実行する命
    令を提供し、該命令は、 ネットワークを介してリモートホストから複数のコンピュータに、該各複数の
    コンピュータによってインストールされるコードを配信する工程であって、該各
    複数のコンピュータは、該ネットワークに接続されたメディアアクセス制御ユニ
    ットとプロトコルドライバとの間で通信経路を提供するように実行されるルーチ
    ンを含み、パケットのための該通信経路は、該ネットワークを介して該パケット
    を送る工程と、 該リモートホストから該各複数のコンピュータまで、該各複数のコンピュータ
    が該コードを実行するようにコマンドを送る工程と、 該コマンドの実行に応答する該各複数のコンピュータが、該メディアアクセス
    制御ユニットと該プロトコルドライバとの間の該通信経路において、ドライバを
    インストールする工程であって、該コンピュータを再起動することなく、該イン
    ストールされたドライバを使用可能にし、該通信経路に沿って該ネットワークを
    介して受け取られる、該パケットの異なるパケットの連続送信を選択的に可能に
    することを評価する工程と、を含む、 メディア。
  14. 【請求項14】 前記インストールする工程は、パッチング技法を用いて行
    われる、請求項13に記載のメディア。
  15. 【請求項15】 前記コマンドに応答する前記各複数のコンピュータはまた
    、実行し、前記プロトコルドライバを格納するシステムアドレススペースとセキ
    ュリティアプリケーションを格納するユーザスペースとのでの共有されたメモリ
    バッファを形成し、該ドライバは、前記ネットワークを介して受信されたパケッ
    トに関する情報を格納するための該共有されたメモリに接続され、該アプリケー
    ションは、該共有されたメモリバッファに格納された情報を評価するために該共
    有されたメモリバッファに接続されている、請求項13に記載のメディア。
  16. 【請求項16】 配信されたパケットセキュリティシステムの一部であるコ
    ードを、ネットワーク上の複数のコンピュータのそれぞれにインストールする工
    程であって、該コードは、該複数のコンピュータの所与のコンピュータに該ネッ
    トワークを介して送信されたパケットが、プロトコルドライバに提供される前に
    、該コードによって受け取られるようにインストールされる工程と、 シャットダウンまたは再起動することのない少なくとも第1の該複数のコンピ
    ュータが、該ネットワークからパケットを受け取る工程と、 配信されたパケットに基づくセキュリティシステムのパラメータに依存する該
    プロトコルドライバに該パケットを選択的に送る該第1のコンピュータ上で該コ
    ードを実行する工程と、を含む、コンピュータ実現方法。
  17. 【請求項17】 前記インストールする工程は、パッチング技法を用いて行
    われる、請求項16に記載の方法。
  18. 【請求項18】 前記インストールする工程は、前記ネットワークを介して
    遠隔的に行われる、請求項16に記載の方法。
  19. 【請求項19】 命令を提供する装置読み出し可能メディアであって、一組
    のプロセッサによって実行された場合、該一組のプロセッサが動作を実行する命
    令を提供し、該命令は、シャットダウンまたは再起動することなく、配信された
    パケットセキュリティシステムの一部であるコードを、ネットワーク上の複数の
    コンピュータのそれぞれでインストールおよび使用可能にする工程であって、該
    複数のコンピュータの所与のコンピュータに、該ネットワークを介して送信され
    たパケットがプロトコルドライバに提供される前に該コードによって受け取られ
    るように該コードがインストールされる工程とを含み 該コードは、該ネットワークからパケットを受け取る該複数のコンピュータの
    1つに応答して実行した場合、該配信されたパケットに基づくセキュリティシス
    テムのパラメータに依存する該プロトコルドライバに該パケットを選択的に送る
    、コンピュータで読み出し可能なメディア。
  20. 【請求項20】 前記インストールは、パッチング技法を用いて行われる、
    請求項19に記載のメディア。
  21. 【請求項21】 前記インストールは、前記ネットワークを介して遠隔的に
    行われる、請求項19に記載のメディア。
  22. 【請求項22】 コンピュータ実現方法であって、配信されたパケットセキ
    ュリティシステムの一部である第1および第2のコードを、ネットワーク上の各
    複数のコンピュータにインストールする工程であって、該第1のコードは、ユー
    ザアドレススペースにインストールされ、該第2のコードは、システムアドレス
    スペースにインストールされ、該第2のコードは該複数のコンピュータの所与の
    コンピュータに該ネットワークを介して送信されたパケットが、該システムスペ
    ースのプロトコルドライバに提供される前に該第2のコードに受け取られる、工
    程と、 シャットダウンまたは再起動することのない少なくとも第1の該複数のコンピ
    ュータが、該ネットワークからパケットを受け取る工程と、 該第2のコードが、該ユーザアドレススペースおよび該システムアドレススペ
    ースとの間に共有されたメモリバッファに該パケットから少なくともある情報を
    格納する工程と、 該第1のコードは、該共有されたメモリバッファから情報にアクセスする工程
    、 を含む、方法。
  23. 【請求項23】 前記インストールする工程は、パッチング技法を用いて行
    われる、請求項22に記載の方法。
  24. 【請求項24】 前記インストールする工程は、前記ネットワークを介して
    遠隔的に行われる、請求項22に記載の方法。
  25. 【請求項25】 前記第2のコードは、ネットワークドライバインターフェ
    ースと前記プロトコルドライバとの間の通信経路において存在する、請求項22
    に記載の方法。
  26. 【請求項26】 命令を提供する装置読み出し可能メディアであって、一組
    のプロセッサによって実行された場合、該一組のプロセッサが動作を実行する命
    令を提供し、該命令は、シャットダウンまたは再起動することなく、配信された
    パケットセキュリティシステムの一部である第1および第2のコードを、ネット
    ワーク上の複数の各コンピュータ上でインストールおよび使用可能にし、ユーザ
    アドレススペースにおいて該第1のコードをインストールし、システムアドレス
    スペースにおいて該第2のコードをインストールし、それにより、該複数のコン
    ピュータの所与のコンピュータに該ネットワークを介して送信されたパケットが
    、該システムスペースにおいてプロトコルドライバに提供される前に、該第2の
    コードによって受け取られるように該第2のコードがインストールされる工程と
    、を含み、 該第2のコードは、該ネットワークからパケットを受け取る第1の該複数のコ
    ンピュータに応答して実行した場合、該ユーザアドレススペースと該システムア
    ドレススペースとの間に共有されたメモリバッファに該パケットから少なくとも
    所定の情報を格納し、 該第1のコードは、該第1のコンピュータによって実行される場合、該共有さ
    れたメモリバッファから該情報にアクセスする、 メディア。
  27. 【請求項27】 前記インストールする工程は、パッチング技法を用いて行
    われる、請求項25に記載のメディア。
  28. 【請求項28】 前記インストールはする工程、前記ネットワークを介して
    遠隔的に行われる、請求項25に記載のメディア。
  29. 【請求項29】 前記第2のコードは、ネットワークドライバインターフェ
    ースと前記プロトコルドライバとの間の通信経路において存在する、請求項26
    に記載の方法。
JP2000587276A 1998-12-07 1999-12-07 ネットワークドライバおよびソフトウェアのリモートインストールの方法および装置 Pending JP2002532784A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11129298P 1998-12-07 1998-12-07
US60/111,292 1998-12-07
PCT/US1999/029117 WO2000034885A1 (en) 1998-12-07 1999-12-07 A method and apparatus for remote installation of network drivers and software

Publications (2)

Publication Number Publication Date
JP2002532784A true JP2002532784A (ja) 2002-10-02
JP2002532784A5 JP2002532784A5 (ja) 2007-02-15

Family

ID=22337653

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000587276A Pending JP2002532784A (ja) 1998-12-07 1999-12-07 ネットワークドライバおよびソフトウェアのリモートインストールの方法および装置

Country Status (4)

Country Link
EP (1) EP1175646A1 (ja)
JP (1) JP2002532784A (ja)
AU (1) AU2355500A (ja)
WO (1) WO2000034885A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008527507A (ja) * 2004-12-30 2008-07-24 サイトリックス システムズ, インコーポレイテッド クライアント側の加速技術を提供するシステムおよび方法
US8291119B2 (en) 2004-07-23 2012-10-16 Citrix Systems, Inc. Method and systems for securing remote access to private networks
WO2020188700A1 (ja) * 2019-03-18 2020-09-24 日本電気株式会社 ファームウェア書き換え装置、ファームウェア書き換え方法、及び、プログラムが格納された非一時的なコンピュータ可読媒体

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7978716B2 (en) 2003-11-24 2011-07-12 Citrix Systems, Inc. Systems and methods for providing a VPN solution
US8495305B2 (en) 2004-06-30 2013-07-23 Citrix Systems, Inc. Method and device for performing caching of dynamically generated objects in a data communication network
US8739274B2 (en) 2004-06-30 2014-05-27 Citrix Systems, Inc. Method and device for performing integrated caching in a data communication network
US7757074B2 (en) 2004-06-30 2010-07-13 Citrix Application Networking, Llc System and method for establishing a virtual private network
JP2008507928A (ja) 2004-07-23 2008-03-13 サイトリックス システムズ, インコーポレイテッド ネットワークノード間の通信を最適化するためのシステムおよび方法
US8706877B2 (en) 2004-12-30 2014-04-22 Citrix Systems, Inc. Systems and methods for providing client-side dynamic redirection to bypass an intermediary
US8700695B2 (en) 2004-12-30 2014-04-15 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP pooling
US8954595B2 (en) 2004-12-30 2015-02-10 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP buffering
US8549149B2 (en) 2004-12-30 2013-10-01 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP multiplexing
US7810089B2 (en) 2004-12-30 2010-10-05 Citrix Systems, Inc. Systems and methods for automatic installation and execution of a client-side acceleration program
US8255456B2 (en) 2005-12-30 2012-08-28 Citrix Systems, Inc. System and method for performing flash caching of dynamically generated objects in a data communication network
US7921184B2 (en) 2005-12-30 2011-04-05 Citrix Systems, Inc. System and method for performing flash crowd caching of dynamically generated objects in a data communication network
US8301839B2 (en) 2005-12-30 2012-10-30 Citrix Systems, Inc. System and method for performing granular invalidation of cached dynamically generated objects in a data communication network

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08227387A (ja) * 1995-02-21 1996-09-03 Sony Corp 通信方法および通信システム
JPH1021067A (ja) * 1996-06-28 1998-01-23 Toshiba Corp プログラムの動的修正方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4819234A (en) * 1987-05-01 1989-04-04 Prime Computer, Inc. Operating system debugger
US5630061A (en) * 1993-04-19 1997-05-13 International Business Machines Corporation System for enabling first computer to communicate over switched network with second computer located within LAN by using media access control driver in different modes
US5764890A (en) * 1994-12-13 1998-06-09 Microsoft Corporation Method and system for adding a secure network server to an existing computer network
US5761504A (en) * 1996-02-16 1998-06-02 Motorola, Inc. Method for updating a software code in a communication system
US5950012A (en) * 1996-03-08 1999-09-07 Texas Instruments Incorporated Single chip microprocessor circuits, systems, and methods for self-loading patch micro-operation codes and patch microinstruction codes
US5881236A (en) * 1996-04-26 1999-03-09 Hewlett-Packard Company System for installation of software on a remote computer system over a network using checksums and password protection
US6016553A (en) * 1997-09-05 2000-01-18 Wild File, Inc. Method, software and apparatus for saving, using and recovering data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08227387A (ja) * 1995-02-21 1996-09-03 Sony Corp 通信方法および通信システム
JPH1021067A (ja) * 1996-06-28 1998-01-23 Toshiba Corp プログラムの動的修正方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8291119B2 (en) 2004-07-23 2012-10-16 Citrix Systems, Inc. Method and systems for securing remote access to private networks
US8363650B2 (en) 2004-07-23 2013-01-29 Citrix Systems, Inc. Method and systems for routing packets from a gateway to an endpoint
JP2008527507A (ja) * 2004-12-30 2008-07-24 サイトリックス システムズ, インコーポレイテッド クライアント側の加速技術を提供するシステムおよび方法
JP2012027925A (ja) * 2004-12-30 2012-02-09 Citrix Systems Inc クライアント側の加速技術を提供するシステムおよび方法
WO2020188700A1 (ja) * 2019-03-18 2020-09-24 日本電気株式会社 ファームウェア書き換え装置、ファームウェア書き換え方法、及び、プログラムが格納された非一時的なコンピュータ可読媒体
JPWO2020188700A1 (ja) * 2019-03-18 2021-12-23 日本電気株式会社 ファームウェア書き換え装置、ファームウェア書き換え方法、及び、制御プログラム
JP7201069B2 (ja) 2019-03-18 2023-01-10 日本電気株式会社 ファームウェア書き換え装置、ファームウェア書き換え方法、及び、制御プログラム
US11709940B2 (en) 2019-03-18 2023-07-25 Nec Corporation Firmware rewriting apparatus, firmware rewriting method, and non-transitory computer readable medium storing program

Also Published As

Publication number Publication date
WO2000034885A1 (en) 2000-06-15
AU2355500A (en) 2000-06-26
EP1175646A1 (en) 2002-01-30

Similar Documents

Publication Publication Date Title
US8006243B2 (en) Method and apparatus for remote installation of network drivers and software
JP2002532784A (ja) ネットワークドライバおよびソフトウェアのリモートインストールの方法および装置
US11792307B2 (en) Methods and apparatus for single entity buffer pool management
JP3689425B2 (ja) オブジェクト指向メッセージフィルタリングのシステム及び方法
US7116675B2 (en) Methods and systems for transferring packets and preventing illicit access
US6735642B2 (en) DMA doorbell
US20090328026A1 (en) Update system, program execution device, and computer program
US20040194084A1 (en) Computer system and a program install method thereof
US20030115256A1 (en) Client side caching of printer configuration
US20070061482A1 (en) Information processing apparatus, communication control method, and communication control program
JPH11259284A (ja) オンラインプログラム更新システム及びプログラム更新用プログラムを記録したコンピュータ読み取り可能な記録媒体
US6868450B1 (en) System and method for a process attribute based computer network filter
JP2001517899A (ja) エグゼキュータブル・オブジェクトを識別および抑制するための方法およびシステム
WO2009097776A1 (zh) 一种实现业务升级的系统、装置及方法
JP4071098B2 (ja) ネットワークフィルタドライバのためのアーキテクチャおよびランタイム環境
US7181486B1 (en) Method and apparatus for remote installation of network drivers and software
JP2001051810A (ja) プリンタ・ドライバ更新管理方法、印刷装置及びコンピュータ・ネットワーク・システム
US6282586B1 (en) Method in an operating system, a method and system for supporting multiple hardware devices from a single communications port
US20040226025A1 (en) Communications processor hardware abstraction layer
US7188363B1 (en) Method and apparatus for adding and updating protocol inspection knowledge to firewall processing during runtime
US20040205375A1 (en) Method and apparatus for testing network system, and computer-readable medium encoded with program for testing network system
US5613133A (en) Microcode loading with continued program execution
JP2008544371A (ja) ロック関連の一貫性欠如を処理する方法
US20090132745A1 (en) Information processing apparatus, information processing method, and computer-readable program
US7827194B2 (en) Access to shared disk device on storage area network

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061204

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061204

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20070523

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20070523

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20071127

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20071127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091013

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100112

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100119

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100209

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100217

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100330

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100511

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20101019