(57)【特許請求の範囲】
【請求項１】
ハードウェア診断能力を有するネットワークブラウザー装置であって、
前記ネットワークブラウザー装置は、実行可能なソフトウェアモジュールを永続的に蓄積する、コンピュータ読み取り可能なメモリを備えており、
前記実行可能なソフトウェアモジュールは、
１または複数の周辺装置をイニシャライズおよびテストし、また、前記周辺装置の作動に対応する診断データを処理するデバイスドライバーモジュールと、
周辺装置へのおよび周辺装置からのデータを検出および処理し、また、メモリ管理作業を実行するリアルタイムカーネルモジュールと、
遠方の装置とのネットワーク通信を扱うインターネットプロトコルモジュールと、
視覚表示データを処理し、制御するグラフィックスウィンドウモジュールと、
前記グラフィックスウィンドウモジュールを用いた表示のためにハイパーテキストマークアップ言語ドキュメントを解釈するハイパーテキストマークアップ言語モジュールを備えており、
前記周辺装置の作動に対応する前記診断データは、故障が発生していることを示し、
前記実行可能ソフトウェアモジュールは、
前記インターネットプロトコルモジュールを用いて遠方のサーバーに接続する機能を呼び出し、
前記メモリに永続的に蓄積されている診断インターフェースファイルを含む１または複数の診断インターフェースファイルを読み込む機能を呼び出し、
前記読み込まれた１または複数の診断インターフェースファイルを用いて前記遠方のサーバーと相互作用する機能を呼び出し、
実行可能な補修ソフトウェアが真性であることを確認する保証測定を有するネットワークプロトコルを用いて、実行可能な補修ソフトウェアを前記遠方のサーバーからダウンロードすることによって、前記故障を補修する機能を呼び出し、
前記遠方のサーバーからコマンドを受信する機能を呼び出し、
前記コマンドは、前記メモリに蓄積されている、前記故障の補修を援助する１または複数の機能を呼び出す。
【請求項２】
請求項１に記載のネットワークブラウザー装置であって、
前記リアルタイムカーネルモジュール内の前記メモリ管理では、ネットワークブラウザーページキャッシュを、サービスされていないデータおよびコマンドを蓄積する要求列領域と、ハイパーテキストマークアップ言語ファイルの先読みされたバッチを含み、表示装置への出力のために解釈されなければならないデータを蓄積する前処理データ領域と、前記表示装置への出力のために解釈されたが、前記表示装置にまだ送信されていないデータを蓄積する後処理領域として管理する。
【請求項３】
ネットワークにアクセスするコンピュータであって、
前記コンピュータは、プロセッサーと、それぞれバスを介して前記プロセッサーに通信可能に接続されている、ハードドライブ、永続メモリ、ランダムアクセスメモリおよび通信インターフェースを有しており、
前記永続メモリは、メモリ領域に蓄積されている実行可能なソフトウェアモジュールを有しており、
前記実行可能なソフトウェアモジュールは、
故障に対して前記ハードドライブをイニシャライズおよびテストし、また、前記ハードドライブの作動に対応する診断データを処理するデバイスドライバーモジュールと、
周辺装置へのおよび周辺装置からのデータを検出および処理し、前記ランダムアクセスメモリに関連するメモリ管理作業を実行するリアルタイムカーネルモジュールと、
遠方の装置とのネットワーク通信を扱うインターネットプロトコルモジュールと、
視覚表示データを処理し、制御するグラフィックスウィンドウモジュールと、
前記グラフィックスウィンドウモジュールを用いた表示のためにハイパーテキストマークアップ言語ドキュメントを解釈するハイパーテキストマークアップ言語モジュールを備えており、
前記ハードドライブの作動に対応する前記診断データは、故障が発生していることを示し、
前記実行可能なソフトウェアモジュールは、更に、
前記インターネットプロトコルモジュールを用いて、前記プロセッサーを遠方のサーバーに接続させ、
前記メモリ領域に永続的に蓄積されている診断インターフェースファイルを含む１または複数の診断インターフェースファを前記プロセッサーに読み込ませ、
前記読み込まれた１または複数の診断インターフェースファイルを用いて前記故障を診断している間、前記プロセッサーを前記遠方のサーバーと共同させ、
実行可能な補修ソフトウェアが真性であることを確認する保証測定を有するネットワークプロトコルを用いて、実行可能な補修ソフトウェアを前記遠方のサーバーから前記プロセッサーにダウンロードさせ、
前記遠方のサーバーからのコマンドを前記プロセッサーに受信させ、
前記コマンドは、前記メモリ領域に蓄積されている、前記故障の補修を援助する１または複数の機能を、前記プロセッサーに実行させる。
【請求項４】
請求項３に記載のコンピュータであって、
前記リアルタイムカーネルモジュール内の前記メモリ管理では、ネットワークブラウザーページキャッシュを、サービスされていないデータおよびコマンドを蓄積するための要求列領域と、ハイパーテキストマークアップ言語ファイルの先読みされたバッチを含み、表示装置への出力のために解釈されなければならないデータを蓄積するための前処理データ領域と、前記表示装置への出力のために解釈されたが、前記表示装置にまだ送信されていないデータを蓄積するための後処理領域として管理する。
【請求項５】
パーソナルコンピュータＢＩＯＳに蓄積されているネットワークブラウザーを有する、ネットワーク接続されたコンピュータを診断および補修する方法であって、
前記方法は、前記ネットワーク接続されたコンピュータによって実行される一連のステップを有しており、
前記一連のステップは、
前記ネットワーク接続されたコンピュータに通信可能に接続されている内部装置および周辺装置をイニシャライズするステップと、
故障が発生していることを示すブラウザートリガーがセットされているか否かを決定するためにテストするステップと、
前記ブラウザートリガーがセットされている場合に、全サービスオペレーティングシステムを読み込むことなく、前記ネットワークブラウザーを呼び出すステップと、
遠方のサーバーを前記ネットワークブラウザーに接続するステップと、
１または複数の診断インターフェースファイルを読み込むステップと、
前記遠方のサーバーと共同して前記故障を診断するステップと、
前記故障が前記遠方のサーバーで補修可能であるか否かを決定するステップと、
前記故障が補修可能である場合に、前記故障を補修するステップと、
前記故障が補修可能でない場合に、前記故障が補修可能でないことの通知を送信するステップを有している。
【請求項６】
請求項５に記載の方法であって、
前記故障を補修する前記ステップは、実行可能な補修ソフトウェアが真正であることを確認する保証測定を有するネットワークプロトコルを用いて、実行可能な補修ソフトウェアを前記遠方のサーバーからダウンロードするステップを含んでいる。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般的には、ネットワークブラウザーソフトウェアに関し、より詳しくは、診断能力を有する独立ネットワークブラウザー(self-contained  network  browser)に関する。
【０００２】
【従来の技術】
ウェブブラウザー（または、“ブラウザーソフトウェア”）は、ネットワークからデータを送信またはネットワークからデータを受信するために、パーソナルコンピュータによって実行される。通常、ネットワークは、インターネットのようなワイドエリアネットワーク（wide  area  network）、またはイントラネットのようなローカルエリアネットワーク(local  area  network)である。ブラウザーソフトウェアがネットワークに接続されると、ブラウザーソフトウェアは、他のコンピュータまたはネットワーク上の“サーバー”からの、ハイパーテキストマークアップ言語（“ＨＴＭＬ”）ファイルのような情報を要求することができる。
【０００３】
カリフォルニアのマウンテンビューにあるNetscape  Corporationから入手可能なNetscape  Navigator（ＴＭ）のようなブラウザーソフトフェアの大部分のアスペクトは、アプリケーションプログラムである。図1は、パーソナルコンピュータのための、公知のソフトウェアスタック(software  stack）１００を示している。ソフトウェアスタックを形成するソフトウェアは、パーソナルコンピュータの読出専用メモリ（“ＲＯＭ”）及びハードドライブに永続的に蓄積される。実際、プロセッサーに永久的に添付される、限定目的実行可能なファームウエアコード(limited  purpose  executable  firmware  code)を有する基本入出力システム(basic  input  output  system)（以下、“ＢＩＯＳ”という）１０４は、ＲＯＭ内に蓄積される。ＢＩＯＳ１０４は、作動システム（オペレーティングシステム）によって命令された時に、ローレベル入力及び出力動作を制御する。
【０００４】
オペレーティングシステム１０８は、パーソナルコンピュータのシステム資源（例えば、メモリ管理装置及び周辺装置）、ならびにシステム資源を用いる他のプログラム（例えば、アプリケーション）を共同して管理する１または複数のソフトウェアプロダクトである。デバイスドライバー(device  driver)は、オペレーティングシステム１０８の部分となり、またはオペレーティングシステム１０８のトップ(top)に付加可能である。例えば、いくつかのデバイスドライバーは、必要な場合には、メモリ内にダウンロード可能である。
【０００５】
１または複数のアプリケーション１１６は、オペレーティングシステム１０８のトップに積み重ねる(stack)ことができる。アプリケーション１１６は、アプリケーション１１６によって呼び出される機能及び手順を含むアプリケーションプログラミングインターフェース（以下、“ＡＰＩ”という）１１２を介してオペレーティングシステム１０８と通信する。アプリケーション１１６によって呼び出されるＡＰＩ１１２の機能及び手順は、オペレーティングシステム１０８に順に渡される。そして、オペレーティングシステム１０８は、必要な入／出力処理をＢＩＯＳ１０４に渡し、またはデバイスドライバーを直接使用してそれらを処理する。
【０００６】
オペレーティングシステム１０８、ＡＰＩ１１２及びアプリケーション１１６は、ＢＩＯＳと違って、全てパーソナルコンピュータのハードドライブ内に蓄積される。これは、主にソフトウェア構成要素の大きさのためであり、それらの拡大可能な特徴のためではない。
【０００７】
大部分のブラウザーソフトウェアがアプリケーションとして書かれている主な理由は、より“ポータブル”であるからである。ここで、“ポータブル”という用語は、異なるオペレーティングシステム（例えば、ＵＮＩＸ（登録商標）、Ｗｉｎｄｏｗｓ９８（ＴＭ）（登録商標）等）、ならびに、同じオペレーティングシステムを作動させる異なるタイプのコンピュータ上で作動するように容易に修正可能であるということを意味する。これは、プロダクトに対するソフトウェア売主の市場を拡大する。
【０００８】
【発明が解決しようとする課題】
最近の法律上の災いでは、Microsoft  Corporationは、ブラウザー（インターネットエクスプローラ）が、オペレーティングシステムに付加されるアプリケーションであるというよりは、オペレーティングシステムの部分であるという、多くの事実を作った。Microsoftのブラウザーが、オペレーティングシステムの部分であるか、またはオペレーティングシステムに付加されるアプリケーションであるか否かはわからない。Microsoftの（または、他の公知の）ブラウザーが、オペレーティングシステムの部分、またはアプリケーションプログラムであるか否かに関係なく、ブラウザーは、オペレーティングシステムのように、ハードディスク内に蓄積される。ハードディスクが故障すると、ブラウザー及びパーソナルコンピュータは、通常は役に立たない。
【０００９】
【課題を解決するための手段】
ハードディスク以外の永続メモリに蓄積される、診断能力を有するネットワークブラウザーが提供される。ネットワークブラウザーは、ユーザが故障を手動で診断または解決するのを解消するために、ハードドライブのような、ネットワーク接続されたコンピュータ内の周辺装置の故障を補修するために使用される。さらに、ネットワークブラウザーは、そのような補修を行うために、通常のオペレーティングシステム、したがって、ハードディスクへの厳密な依存性を除去する。実施の形態では、ネットワークブラウザーは、複数のソフトウェアモジュールを有している。モジュールは、デバイスドライバーモジュール(device  driver  module)（２１６）、リアルタイムカーネルモジュール(real  time  Kernel  module)（２２０）、インターネットプロトコルモジュール（internet  protocol  module）（２２４）、グラフィックスウィンドウモジュール(graphics  windowing  module)（２２８）、ハイパーテキストマークアップ言語モジュール(hypertext  markup  language  module)（２４８）を有している。デバイスドライバーモジュール（２１６）は、１または複数の周辺装置を初期化及びテストするように構成されている。リアルタイムカーネルモジュール（２２０）は、前記デバイスドライバーモジュール（２１６）が前記周辺装置の動作に対応する診断データの処理を含んでいるが、周辺装置への及び周辺装置からのデータを検出するとともに処理し(dispatch)、メモリ管理作業を実行するように構成されている。インターネットプロトコルモジュール（２２４）は、遠方の装置とのネットワーク通信を扱うように構成されている。グラフィックスウィンドウモジュール（２２８）は、可視表示データ処理及び制御を処理するように構成されている。ハイパーテキストマークアップ言語モジュール（２４８）は、前記グラフィックスウィンドウモジュール（２２８）を有する表示器のためにハイパーテキストマークアップ言語ドキュメントを解釈(interpret)するように構成されている。独立ブラウザーのためのハードウェア構成及びソフトウェア方法が、ここに記載されている。
【００１０】
本発明の実施の形態では、診断データ処理は、周辺装置の初期化、故障検出、遠方のサーバーとの交信、診断インターフェースファイルの書き込み、インターフェースファイルを用いる遠方のサーバーと共同する故障の診断を含んでいる。
【００１１】
【発明の実施の形態】
図２は、独立した、永続的に蓄積されるブラウザーソフトウェアスタック２０８のブロック図を示す。ブラウザーソフトウェアスタック２０８は、通常の電磁式ハードドライブ上にではないが、永続的に蓄積される。ここで用いられているように、“電磁式ハードドライブ”は、通常は、機械的に回転されるプラター(platter)と呼ばれる磁気式蓄積媒体である。読取動作及び書込動作は、ハードドライブの部分である読取−書込ヘッドによって実行される。
【００１２】
好ましくは、ブラウザー２０８は、電気的にプログラム可能な読取専用メモリ（“ＥＰＲＯＭ”）、電気的に消去可能にプログラム可能な読取専用メモリ（“ＥＥＰＲＯＭ”）、電気的に書替可能にプログラム可能な読取専用メモリ（“ＥＡＰＲＯＭ”）、フラッシュ消去可能にプログラム可能な読取専用メモリ（“ＦＬＡＳＨ”または“ＦＥＰＲＯＭ”）等の、読取専用メモリ（“ＲＯＭ”）２１２またはＲＯＭ装置内のＰＣ  ＢＩＯＳに蓄積される。ここで用いられているように、ＰＣ  ＢＩＯＳは、“パーソナルコンピュータベーシック入出力システム(personal  computer  basic  input  output  system)”を意味する。ＰＣ  ＢＩＯＳは、パーソナルコンピュータ内に永久的に内在する、メモリのファームウェアコード領域(firmware  code  region  of  memory)である。それは、通常、オペレーティングシステムの代わりに、ローレベル入力出力動作（low  level  input  output  operation）を実行するための主要な責任を負う。しかしながら、本発明の実施の形態では、ＰＣ  ＢＩＯＳは、独立のブラウザーソフトウェアスタック２０８を含んでいる。
【００１３】
ブラウザー２０８は、公知のオペレーティングシステム及びハードドライブと独立している。このように、ブラウザー２０８を用いることによって、パーソナルコンピュータが故障し難くなり、パーソナルコンピュータが、スタートアップ時またはパーソナルコンピュータの実行中に発生する故障であるか否かという故障の種類に関係なく動作させることができる。さらに、ブラウザー２０８は、パーソナルコンピュータに結合されているハードウェア構成要素と関連する問題を診断するために使用可能である。
【００１４】
図２に示されているブラウザー２０８は、本発明の実施の形態を図式的に示している。現時点での好ましい実施の形態では、ブラウザー２０８は、ＲＯＭ２１２に蓄積されている。ブラウザー２０８を構成する機能ブロックを詳細に説明する前に、発明全体に関係する、ブラウザーのモジュラー要素（例えば、プログラムコードとハードウェアコンビネーション）を説明するのが有益である。このため、図３を説明する。
【００１５】
［動作概要］
図３は、パーソナルコンピュータ（パーソナルコンピュータの１つの例が、図６を参照して以下に説明されている。）のような電子的ハードウェアとともに作動するブラウザー３００のハイレベルブロック図（high-level  block  diagram）である。本発明の実施の形態では、ブラウザーソフトウェアを有するパーソナルコンピュータ（以下、“コンピュータ３００”という）は、少なくとも４つの基本動作で実行する。１つの動作は、入力／出力機能を含む。このため、コンピュータ３００は、入力モジュール３０４を有している。入力モジュール３０４は、キーボード、マウス、スタイラス(stylus)またはタッチスクリーンのような外部装置との１または複数の通信手段を提供するハードウェを有している。シリアルポート、Ｉ／Ｏコントローラー、ＵＳＢポート、ＩＥＥＥ１３９４ポート及びＣＥバスが、通信手段の例である。ブラウザーに含まれているソフトウェアは、割込み、一時記憶(buffering)、通信手段を介して受信した入力に対するコマンド及び制御処理を含んでいる。入力モジュール３０４の主要な機能ではないが、出力が、入力モジュール３０４の通信手段によって実行可能であることに注意する。
【００１６】
コンピュータ３００の他の動作は、ローレベルネットワーク通信（low  level  network  communication）のための動作である。このため、ネットワーク通信モジュール３０８は、通信機能と、例えば、ネットワーク技術において一般的に知られている７層のＯＳＩ（“Open  Systems  Interconnection”）参照モデルの物理的なデータリンク、ネットワーク及びトランスポートレイヤーでの動作を扱う。
【００１７】
ネッワーク通信モジュール３０８を装着可能なハードウェア装置は、イーサーネットカード、通常の地上通信線モデム、ケーブルモデム及びワイヤレスモデムを含んでいる。インターネットでは標準である、複数のインターネットＲＦＣは、これらのハードウェア装置を作動させるソフトウェアの特徴を定義する。本発明の実施の形態では、インターネットＲＦＣは、全てインターネット上のＵＲＬ(http://www.pmg.lcs.mit.edu/rfc.html)で利用可能である、７９１（インターネットプロトコルまたは“ＩＰ”）、７９２（インタネットコントロールメッセージプロトコルまたは“ＩＣＭＰ”）、７９３（移送コントロールプロトコルまたは“ＴＣＰ”）、８２６（アドレス決定プロトコルまたは“ＡＲＰ”）及び１６６１（ポイントツゥポイントプロトコルまたは“ＰＰＰ”）を含んでいる。
【００１８】
コンピュータ３００の第３の動作は、ネットワーク通信モジュール３０８への及びネットワーク通信モジュール３０８からのデータ及び制御を処理することである。ネットワークアプリケーションモジュール３１２では、種々のプロトコルが、ネットワーク通信モジュール３０８からのメッセージを判断し、特に、それら（例えば、端子モニターソフトウェアまたは電子メールクライアント）のためにクライアント（または、“ユーザーインターフェース”）を提供し、または、異なるモジュールにおいて（例えば、以下で説明するページレンダリング（描画）モジュール３１６内で）(page  rendering  module)、他のクライアントをアクセスする。もしネットワークアプリケーションモデル３１２がユーザに対してクライアントを提供すれば、ネットワーク通信モジュール３０８への及びネットワーク通信モジュール３０８からのデータを扱うのに加えて、直接にまたはページレンダリングモジュール３１６のような他のモジュールを介して、入力モジュール３０４からのデータを受信可能である。
【００１９】
ネットワークアプリケーションモジュール３１２のための例示的なアプリケーション（または“プロトコル”）は、ＤＮＳ（ドメインネームシステム）、ＨＴＴＰ（ハイパーテキスト移送プロトコル）、ＳＳＬ（保証ソケットレイヤー）(Secure  Socket  Layer)、ＨＴＴＰＳ（ＨＴＴＰ保証）(HTTP  Secure)、ＳＭＴＰ（簡単メール移送プロトコル）、ＰＯＰ３（ポストオフィスプロトコル−バージョン３）、ＴＥＬＮＥＴ及びＦＴＰ（ファイル移送プロトコル）である。これらのネットワークアプリケーションは、更に、インターネットＲＦＣ：１０３４（ＤＮＳ）、２０６８（ＨＴＴＰ）、８２１（ＳＭＴＰ）、１０８１（ＰＯＰ３）、８５４（ＴＥＬＮＥＴ）及び９５９（ＥＴＰ）で説明されている。現時点では、ＳＭＴＰ、ＰＯＰ３、ＤＮＳ、ＨＴＴＰ、ＳＳＬ及びＨＴＴＰＳのみが、ネットワークアプリケーションモジュール３１２内に同時に実装されているのが好ましい。一般に、ブラウザーとともに含まれるプロトコルが少ないほど、結果的な面積は小さい（すなわち、独立ネットワークブラウザーを蓄積するために必要なメモリの量が減少される）。
【００２０】
図のトップには、ページレンダリングモジュール３１６が存在する。ページレンダリングモジュール３１６は、ハイパーテキストマークアップ言語（“ＨＴＭＬ”）ドキュメント及び他のドキュメントフォーマットを変換する解釈作業を扱う。例えば、ページレンダリングモジュール３１６は、グラフィックスファイルを描写し、入力モジュール３０４からのデータ（例えば、マウスからのデータ）に応答して、ページレイアウト機能を実行し、ウィンドウ位置決め、大きさ決定及びスクロールを扱う。ページレンダリングモジュール３１６は、ディスプレイモジュール（図示せず）と直接に通信する。
【００２１】
［モジュールの詳細説明］
図４は、独立のネットワークブラウザー内のソフトウェアの機能ブロック図詳細図である。図４は、ネットワークから（例えば、周辺装置を介した）コンピュータ表示器または端子上の最終的な表現への典型的なデータの流れにしたがって表現されている。種々の詳細モジュールの機能性は（図４）、一般目的モジュール（図３）間で移動可能であるが、以下では、特に一般目的モジュールを参照して説明する。例えば、入力モジュール３０４（図３）は、４１２を通るソフトウェアモジュール４０８を含んでいる。実施の形態では、ネットワーク通信モジュール３０８は、４３２を通るソフトウェアモジュール４１６を含み、ネットワークアプリケーションモジュール３１２は、４６４を通るソフトウェアモジュール４３６を含み、ページレンダリングモジュール３１６は、４８２を通るソフトウェアモジュール４６８を含む。
【００２２】
データ入力は、周辺装置４０４（すなわち、イーサーネットアダプター、キーボード、マウスまたは有線／無線モデムのような、コンピュータ３００に付加される内部装置または外部装置）で受信される。データが入力モジュール３０４によって受信されると、データは、１または複数のコンピュータの入力／出力（“Ｉ／Ｏ”）ポートから、処理のための対応するモジュールに送信(route)される。一般的には、各周辺装置は、特別のＩ／Ｏポートに取り付けられ、周辺装置から通信されるデータは、リアルタイムカーネル内で割り込みを発生させる。これは、図２を参照して以下に詳述されている。割り込みは、周辺装置からのデータ入力を扱うアルゴリズムの例外ベクトル(exception  vector)またはメモリアドレスを定義する。例えば、モデムからの信号は、第１のシリアルポート割り込みを順にトリガ可能である。それにより、モデムポイントツゥポイントプロトコル（“ＰＰＰ”）モジュール４１６が、順に能動化される。
【００２３】
図４の詳細ブロック図の個々の構成要素を説明する前に、デバッグコンソールモジュール(debug  console  module)４１２が必要でないことに注意する。デバッグコンソールモジュール４１２は、ソフトウェア及びハードウェアテスト目的のためのデバッグポートとして用いられる。さらに、実線で示されている要素は、ブラウザーソフトウェアの部分であり、点線で示されている要素は、ブラウザーソフトウェアが実行するが、全体のパーソナルコンピュータの部分である。
【００２４】
更に、物理的なページキャッシュ４９０及び表示器４９４は、ブラウザーソフトウェアスタックの部分ではない。好ましくは揮発性メモリから形成されるページキャッシュ４９０は、データがページレンダリングモジュール４７２に渡される前に、１または複数のネットワークアプリケーションによって処理されるデータのためのバッファとして動作する。例えば、ページキャッシュ４９０は、ＨＴＭＬファイル（未解釈及び解釈済のファイル）を、それらが表示器４９４に渡る前に、前キャッシュ(pre-cache)することができる。表示器４９４は、ページレンダリングモジュール４７２が通信する周辺装置、または、データをユーザに提供する現実の表示装置のための揮発性メモリバッファである。表示器４９４は、ページレンダリングモジュール４７２からのデータを受信する。
【００２５】
更に、ＲＯＭファイル４６８は、（それらは好ましいが）必要ではない。ＲＯＭファイル４６８は、パーソナルコンピュータに関する問題を診断するために、１または複数のユーザ診断インターフェースまたは特別の遠方の売主（例えば、コンピュータ製造業者またはインターネットサービスプロバイダー）によって使用されるテンプレートを永続的に蓄積可能である。例えば、ブラウザーが遠方の売主に接続される時に使用されるＨＴＭＬ形式または実行可能な診断プログラムは、ＲＯＭファイル４６８内に蓄積可能である。それらは“ＲＯＭファイル”と呼ばれるが、ファイルは、フラッシュメモリのような電気的に変更可能なＲＯＭ内に蓄積可能である。これは、クッキー(cookie)は、必ずしも純粋な静的ファイルではなく、時間によって変化するため、クッキーまたは他のファイルがＲＯＭファイル４６８内に蓄積される時に有用である。
【００２６】
カーソルコントロールモジュール４０８は、マウスまたはスタイラスからの入力データを処理するために用いられる。通常、データは、マウスの移動に対応する2次元移動データである。また、データは、マウス選択クリックのような制御信号を含んでいる。カーソルコントロールモジュール４０８は、シリアルポートを介してデータを受信するが、赤外線ポートのような無線ポートからのデータも受信可能であるのが好ましい。
【００２７】
キーボードモジュール４１０は、キーボードドライバーである。キーボードモジュール４１０は、テキストを形式に登録または分類するため、及び／またはページレンダリングモジュール４７２、ならびにモジュール５２〜４６４のような、ページレンダリングモジュール４７２をインターフェースする他のモジュール宛てのコマンドを登録するために用いられる。キーボードモジュール４７２の重要な特徴は、ブラウザーを開始させる能力である。典型的には、ユーザは、独立ブラウザーを手動で開始させる特別のキーまたは一連のキー（例えば、ＣＴＲＬ−ＡＬＴ−ＢまたはＣＴＲＬ−ＡＬＴ−ＨＯＭＥ）を登録し、それによって、パーソナルコンピュータのための通常動作モードをバイパスさせる。典型的には、特別のキーシーケンス(key  sequence)は、パーソナルコンピュータが起動している時にのみ動作する。また、キーボードモジュール４１０は、例えば、キーボード上の方向キー及び／またはタブキーを用いることによって、ページスクロールまたはフィールド選択(field  selection)を制御するために使用される。
【００２８】
デバッグコンソール４１２は、デバッグ目的のために用いられ、主に、ソフトウェアチューニング(software  tuning)のために含まれている。例えば、デバイスドライバーは、異なるコンピュータのチップセット(chipset)とハードウェアとの間のように異なっているため、デバッグコンソール４１２は、１または複数の新しいハードウェア装置とともに動作する時に、ブラウザーの動作をモニタするのに役立つ。デバッグコンソール４１２は、ブラウザーソフトウェアの必要な構成要素ではない。
【００２９】
モデムＰＰＰモジュール４１６は、公衆電話網（“ＰＳＴＮ”）からの入力パケットデータを処理するために用いられる。モジュール４１６の機能は、インターネットサービスプロバイダー（“ＩＳＰ”）またはインターネットアクセスプロバイダー（“ＩＡＰ”）に接続し、１または複数の遠方のサーバーと仮想接続を行うモデムを助けるように構成されているため、インターネットＲＦＣ１６１６に従うのが好ましい。また、モデムＰＰＰモジュール４１６は、モデムのためのデバイスドライバーを含んでいる。
【００３０】
また、イーサーネットＡＲＰモジュール４２０は、ネットワークからの入力パケットデータを処理するために用いられる。しかしながら、ネットワークは、高速のローカルエリアネットワーク（“ＬＡＮ”）または高速のワイドエリアネットワーク（“ＷＡＮ”）であることができる。モジュール４２０は、イーサーネットカードのための１または複数のデバイスドライバー（周辺装置）を含んでいる。イーサーネットＡＲＰモジュール４２０は、ＩＰとイーサーネットアドレスの間で翻訳するように構成されているので、インターネットＲＦＣ８２６に従う。
【００３１】
ＩＰ／ＩＣＭＰモジュール４２４は、ネットワーク接続に応じて、モジュール４１６または４２０からのパケットを受信する。ＩＰ／ＩＣＭＰモジュール４２４のＩＰ部は、ＩＰパケットの分解、パケットルーティング及び再組み立てを扱う。ＩＣＭＰは、ＩＰに関連するエラーメッセージ及び他の情報の発生を扱うＩＰへの拡張である。ＩＰ／ＩＣＭＰモジュール４２４の機能は、インターネットＲＦＣ７９１及び７９２と整合している。
【００３２】
ＴＣＰ／ＵＤＰモジュール４２８は、ＩＰパケットをネットワークアプリケーションのためのメッセージに組み立てる。ＴＣＰ−／ＵＤＰモジュール４２８は、インターネットＲＦＣ７９３（ＴＣＰ）及びインターネットＲＦＣ7６８（ユーザデータグラムプロトコルまたは“ＵＤＰ”）に応じて動作する。ＴＣＰ／ＵＤＰモジュール４２８は、ＴＣＰ及びＵＤＰに従うため、接続準拠通信(connection-oriented  communication)（ＴＣＰ）及び接続無通信(connectionless  communication)（ＵＤＰ）をサポートすることができる。
【００３３】
ソケットアプリケーションプグラミングインターフェース(socket  application  programming  interface)（“ＡＰＩ”）モジュール４３２は、図３のネットワーク通信モジュール３０８及びネットワークアプリケーションモジュール３１２の間のインターフェースを提供する。ネットワークアプリケーションは、コンピュータ３００上で実行されるので、ネットワークアプリケーションは、機能を呼び出し、ネットワーク通信モジュール３０８への及びネットワーク通信モジュール３０８からのデータ／メッセージを送信及び受信する。このため、ソケットＡＰＩ４３２は、遠方のサーバーとの仮想接続または“ソケット”を生成及び破壊するためのディスパッチャー(dispatcher)として用いられる。ＴＣＰ及びＵＤＰは、ブラウザーソフトウェアによってサポートされているため、ソケットは、接続準拠または接続無である。
【００３４】
前述したように、モジュール４３６〜４６４は、ネットワークアプリケーションモジュールとして分類可能である。ネットワークアプリケーションモジュールは、ソケットＡＰＩ４３２及びページレンダリングモジュール４７２に通信可能に接続される
【００３５】
ＤＮＳモジュール４６０は、英語形式ＵＲＬ（例えば、ｈｔｔｐ：／／ｗｗｗ．ｅｌｅｇｅｎｔ．ｃｏｍ）、ここで、ｈｔｔｐ：／／はネットワークアプリケーションプロトコルを示し、ｗｗｗ．ｅｌｅｇｅｎｔ．ｃｏｍはＵＲＬを示す）をＩＰアドレス（例えば、”206.171.12.20”）にマップするために用いられる。（前述したように、イーサーネットＡＲＰモジュール４２０は、ＩＰアドレスをイーサーネットアドレスにマップする。）ＤＮＳは、インターネットＲＦＣ１０３４で説明されている。ＤＮＳモジュール４６０は、ＲＦＣ１０３４にしたがって処理するために、レゾルバー(resolver)またはネームサーバーにドメインネーム要求（“質問”）を渡す。
【００３６】
ＨＴＴＰモジュール４５６は、遠方のサーバーへのまたは遠方のサーバーからのＨＴＭＬ（“ハイパーテキストマークアップ言語”）ファイルの移送のために用いられる。大部分のＨＴＭＬファイルは、最終的には、ページレンダリングモジュール４７２を介してユーザに提供される。ＨＴＴＰモジュール４５６は、インターネットＲＦＣ２０６８に従う。
【００３７】
ＳＭＰＴモジュール４３６、ＰＯＰ３モジュール４４０及びイーメールモジュール４６４は、すべて、電子メールメッセージ処理を含んでいる。ＳＭＴＰモジュール４３６は、全体として、参照によって組み込まれているインターネットＲＦＣ８２１に応じた電子メールメッセージの送信を扱うソフトウェアを含んでいる。ＳＭＴＰモジュール４３６は、ソケットＡＰＩ４３２及び電子メールクライアント（または、“イーメールモジュール”）４６４（ＳＭＴＰ及びＰＯＰ３ネットワークアプリケーションのためのユーザーインターフェースである）に通信可能に接続される。ＰＯＰ３モジュール４４０は、遠方のサーバーからの電子メールメッセージの受信を扱うソフトウェアを含んでいる。ＳＭＴＰモジュール４３６のように、ＰＯＰ３モジュール４４０は、ソケットＡＰＩ４３２及び電子メールクライアント４６４に通信可能に接続される。イーメールモジュール４６４は、ページレンダリングモジュール４７２によって解釈されるＨＴＭＬベースのソフトウェアインターフェースであるのが好ましい。
【００３８】
ＳＭＴＰ及びＰＯＰ３は、本発明で使用される、現時点では好ましい２つのプロトコルであるが、他の電子メールプロトコルも使用可能である。例えば、電子メールメッセージは、コンピュータ３００上よりは、遠方のメールサーバー上で扱われる。例えば、モジュール４３６及び４４０は、インターネットメッセージアクセスプロトコル（“ＩＭＡＰ”）迎合ソフトウェアによって置き換え可能である。ＩＭＡＰの最新バージョンは、インターネットＲＦＣ２０６０内に説明されている。
【００３９】
ＦＴＰモジュール４４４は、インターネットＲＦＣ９５９にしたがう。ＦＴＰモジュール４４４は、ブラウザーが常駐するコンピュータと遠方のサーバーとの間でファイルを移送する。ＦＴＰモジュール４４４は、本発明のブラウザーの好結果の実装のためには、必要でなくまたは要求されない。
【００４０】
ＳＳＬモジュール４４８及びＨＴＴＰＳモジュール４５２は、ブラウザーによって用いられる補足的な保証プロトコルを管理する。これらのモジュールは、独立ネットワークブラウザーと遠方のサーバーとの間で安全な交換が望まれる時に作動される。これらのモジュールが作動されると、ブラウザーと遠方の売主／サーバーとの間の所定のポート（例えば、ポート４４３）がＩＰパケットを渡すために用いられる。ブラウザー及びサーバーは、セッション識別子（session  identifier）を確立し、１または複数の記号キーに分ける。セッション識別子及び記号キーは、交換された情報の真正(authenticity)を証明するため、ならびに、のぞき見する人（通信上で盗み聞きしようとする正当でない人）から交換された情報を保護するために用いられる。ＳＳＬモジュール４４８及びＨＴＴＰＳモジュール４５２は、本発明の好結果の実装のためには必要でない。
【００４１】
ネットアプリケーションモジュールを説明したので、ページレンダリングモジュール４７２を説明する。ページレンダリングモジュール４７２は、ネットワークアプリケーションモジュール３１２と双方向通信を行う、ページレンダリングモジュール４７２とネットワークアプリケーションモジュール３１２との間の交換は、通常、ページキャッシュ４９０によって一時記憶される。また、ページレンダリングモジュール４７２は、通常、ビットマップ表示のためのグラフィックス加速器アダプターを含む表示器４９４にスクリーン情報を伝達する。また、ページレンダリングモジュール４７２は、１または複数の入力装置（マウスまたはキーボード等）からのデータを受信する。
【００４２】
ページレンダリングモジュール４７２は、５つの基本要素を含んでいる。１つの要素は、グラフィックスレンダリング要素４７４である。グラフィックスレンダリング要素４７４は、ビットマップ表示器上の表現のためのＧＩＦ、ＪＰＥＧ及びＭＰＥＧ様式ファイルを解釈する。また、グラフィックスレンダリング要素４７４は、イメージスケーリング（image  scaling）を扱う。他のページレンダリングモジュール４７２要素は、フォントエンジン(font  engine)４７６である。フォントエンジン４７６は、ＨＴＭＬファイルによって用いられる種々のフォントをサポートする。複数言語要素４７８は、１つの言語のみがブラウザーによってサポートされる必要があるが、ＨＴＭＬファイル内のキャラクターの、多くの異なる言語の中の１つへの通訳をサポートする。ページレイアウト要素４８０は、ＨＴＭＬファイル、例えば、“肉太(bold)”、“中央”及び“色”タグ、ならびに、“テーブル”及び“フレーム”タグ内のフォーマットタグを解釈する。
【００４３】
ページレンダリングモジュール４７２のウィンドウシステム４８２は、ユーザに提供されるＨＴＭＬファイルの各ページまたはサブフレームのための窓環境を提供する。ウィンドウシステム４８２は、表示器４９４のためのウィンドウサイズ、ならびに、周辺装置が制御する（カーソルコントロールモジュール４０６を介して）水平及び垂直スクロールバーの発生を扱う。カーソルコントロールモジュール４０８において検出されるカーソルまたはスタイラスの移動は、処理のために、ページレンダリングモジュール４７２及び、特に、ウィンドウシステム４８２に直接に伝達される。
【００４４】
［ブラウザーソフトウェア構造］
図２に戻って、図４を参照して詳細に描写及び説明されている、独立ブラウザーソフトウェアスタック２０８の機能ブロック図が示されている。図は、好ましくは読出専用メモリ２１２内に含まれている、独立ネットワークブラウザーの全体構成を理解するのに役に立つ。
【００４５】
リアルタイムカーネル２２０（図４内には、単一モジュールとして示されていない）は、少なくとも２つの基本作業を実行する。リアルタイムカーネル２２０の基本作業は、(1)適切なモジュールに対する、周辺装置への及び周辺装置からのデータの検出及び処理、(2)メモリ管理を含む。データ処理のために、リアルタイムカーネル２２０は、装置内の状態の変化（例えば、周辺装置がコモンバスを分けるか否か）を検出することを試みる際に、周辺装置４０４を実際にポーリングし、または、カーネル２２０は、周辺装置４０４からの直接の割込要求を受動的に受信する。リアルタイムカーネル２２０は、通常の作動システムが実行するローレベルの作業を扱うが、よりハイレベルの作業は扱わない、従来の作動システムとは異なっている。むしろ、よりハイレベルの作業は、ブラウザー２０８内のユニークなモジュールのために保持される。
【００４６】
リアルタイムカーネル２２０のメモリ管理構成は、ページキャッシュ４９０、ならびに、処理を実行している他の揮発性実行メモリーの管理を含んでいる。例えば、リアルタイムカーネル２２０は、図4に示されている各モジュールによって使用されるグローバル及び／またはローカルメモリーエリアのための、メモリー分配及び廃物収集のような機能を実行する。
【００４７】
本発明の実施の形態では、リアルタイムカーネル２２０は、ページキャッシュ４９０（図４）を３つの論理メモリー領域として管理する。
【００４８】
要求列領域(request  queue  region)４９１は、カーソルコントロール４０８によって検出され、ページレンダリングモジュール４７２によってページキャッシュ４９０に渡された要求を蓄積する。また、要求列領域４９１は、ページレンダリングモジュール４７２によって発生される要求を蓄積する。
【００４９】
前処理データ領域(pre-processed  data  region)４９２は、ページレンダリングモジュール４７２によって解釈されていないデータを蓄積する。前処理領域４９２は、１または複数のネットワークアプリケーションがＨＴＭＬファイルのバッチ(batch)を先読みする(pre-fetch)時、または、ユーザからの明白な要求を実際に受信する前に、複数のＨＴＭＬファイルを要求する時に、特に有用である。
【００５０】
後処理データ領域(post-processed  data  region)４９３は、ページレンダリングモジュール４７２によって解釈されたが、まだ表示器４９４に送られていないデータを保持する。後処理データ領域４９３に蓄積されているデータは、ネットワークアプリケーションからページレンダリングモジュール４７２に送られ、その後、ページレンダリングモジュール４７２からページキャッシュ４９０に送られる。データは、ページキャッシュ４９０から、再びページレンダリングモジュール４７２を介して表示器４９４に渡る。
【００５１】
リアルタイムカーネル２２０は、コンピュータ３００のハードウェアリソース（例えば、内部及び外部装置／構成要素）とソフトウェア処理モジュールとの間の入力及び出力を扱う。したがって、リアルタイムカーネル２２０は、適切な通信処理及び適切なハードウェア構成要素初期化を保証するために、個々のハードウェア構成要素と連動する１または複数のデバイスドライバー２１６と通信する。
【００５２】
一実施の形態では、リアルタイムカーネル２２０は、初期化（イニシャライズ）モジュール（図示せず）と通信可能に接続される。初期化モジュールは、コンピュータ３００に接続されている各周辺装置を検出し、周辺装置を必要な初期化パラメータでフォーマットし、もし初期化が成功しない場合には、初期化モジュールは、ブラウザーのための診断処理モードをトリガーする。このように、ブラウザー２０８は、診断処理モードを可能にする初期化モジュールによって、または、通常のオペレーティングシステムまたはエンドユーザからの直接の呼び出しによって呼び出し可能である。実施の形態では、初期化モジュールは、ブラウザー２０８と通常のオペレーティングシステムに分けられる。
【００５３】
ブラウザー２０８は、コンピュータの周辺装置と通信し、及び／または制御するデバイスドライバーソフトウェア２１６を含んでいる。デバイスドライバーソフトウェア２１６は、特別の周辺装置が作動状態にある（いくつかのテストソフトウェアが、ブラウザー２０８から分離可能である）ことを保証する初期化ソフトウェア及びテストソフトウェアを含んでいる。リアルタイムカーネル２２０は、デバイスドライバーソフトウェア２１６上で作動し、コンピュータシステムリソースを管理し、周辺装置と通信するためのデバイスドライバー２１６を用いる。インターネットプロトコルソフトウェア２２４は、リアルタイムカーネル２２０上に積み重ねられ、図４を参照して前述したような種々のネットワーク通信を扱うために用いられる。
【００５４】
インターネットプロトコルソフトウェアのトップには、グラフィックスウィンドウソフトウェア２２８が存在する。グラフィックスウィンドウソフトウェア２２８は、表示装置上でユーザに提供されるデータの裏面処理(behind-the-scene  processing)を扱う。例えば、ウィンドウ位置決め、カーソル及びキーボード入力／コントロール及びグラフィック処理が、部分的に、グラフィックスウィンドウソフトウェア２２８によって扱われる。
【００５５】
グラフィックスウィンドウソフトウェア２２８上で作動する、図２のソフトウェア構成要素は、エンドユーザアプリケーションにより密接に関係する。例えば、ＳＳＬソフトウェア２３６は、保証情報処理を扱う。フォントソフトウェアは、エンドユーザに対して表示される種々のフォントをサポートし、イメージングソフトウェア２３２は、エンドユーザに対して表示されるグラフィックスファイルを通訳する。
【００５６】
イーメールソフトウェア２４４は、エンドユーザが電子メッセージを送信及び受信できるようにするエンドユーザクライアント(end-user  client)である。ＨＴＭＬソフトウェア２４８は、例えば、更なる処理のために、ファイルを分析し、分析されたセクションを適切なモジュールに送ることによって、ＨＴＭＬファイルを解釈するエンドユーザアプリケーションである。
【００５７】
［ブラウザー呼び出し及び診断能力］
図５Ａは、本発明の実施の形態に対応するパーソナルコンピュータ上でブラウザーを呼び出すためのステップを示すフローチャート図である。ステップ５０４では、コンピュータシステムハードウェア構成要素、内部及び外部装置が初期化される。ステップ５０８では、ブラウザーコマンドまたはトリガーがセットされているか否かを決定するためのテストが実行される。一実施の形態では、ブラウザーコマンドは、パーソナルコンピュータが起動されている時に、キーボード上に分類されているキーまたはキーシーケンスの操作に応答して呼び出される。他の実施の形態では、物理的またはＣＭＯＳセットアップスイッチが、独立ネットワークブラウザーをトリガーするようにセットされる。
【００５８】
もしステップ５０８でブラウザートリガーが検出されない場合には、パーソナルコンピュータは、コンピュータが通常動作モードに入るステップ５１２に続く。例えば、通常のオペレーティングシステム起動及び通常目的アプリケーションが実行される。ステップ５０８と同様に、ステップ５１６では、ブラウザートリガーが作動しているか否かを決定するためにテストが実行される。この処理は、例外ベクトル(exception  vector)または割込みルーチン(interrupt  routine)によって扱うことができ、または、特別のデバイスドライバーまたは通常のオペレーティングシステムによって扱うことができることに注意する。ステップ５１６でブラウザートリガーが検出された場合には、ステップ５２０で、オペレーティングシステムがシャットダウンし、処理はステップ５２４に続く。
【００５９】
ステップ５０８または５２０に続くステップ５２４では、独立ブラウザーが呼び出される。図５Ｂ及び５Ｃは、呼び出された独立ブラウザーのための特別に有益なアプリケーションを示している。図５Ｂ及び５Ｃに示されているステップは、コネクター“Ａ”を置き換えたものである（要素５２８）。
【００６０】
図５Ｂにおいて、フローチャート図は、故障したハードウェア構成要素を診断及び補修するためのブラウザーの使用を示している。ステップ５３２では、ブラウザーは、特別の売主に対応するネットワークまたは“遠方”のサーバーに接続する。売主は、パーソナルコンピュータを販売した会社、または、パーソナルコンピュータの技術サービス／補修を扱う他のサービスプロバイダーである。ステップ５３６では、診断ファイル、例えばＲＯＭファイル４６８内に蓄積されているファイル、ならびに、遠方のサーバーからダウンロードされたファイルが書き込まれる。これらの診断ファイルによって、エンドユーザは、問題のタイプの報告、システム構成検出の実行、または選択されたハードウェア構成要素の診断が可能となる。診断ファイルは、解釈されたソフトウェアコード、実行可能なソフトウェアコード、または、そのような形式のＨＴＭＬインターフェースを包含可能である。これにより、売主は、パーソナルコンピュータが経験している問題を遠方から診断することができる。
【００６１】
問題を診断する前に、売主は、ブラウザーが特別の診断プログラムを開始することを示すコマンドを送信可能であり、または、売主は、特別のコンパイルされた、または解釈された診断プログラムをブラウザーに送信可能である。診断プログラムがブラウザーに送られると、それは、ＦＴＰ、ＨＴＴＰ、ＨＴＴＰＳまたはＳＭＴＰプロトコルを用いて送られる。公衆網、例えば、インターネット（イントラネットに対して）が用いられる場合には、診断プログラムが真正であることを証明する(authenticate)ために証明書が用いられる。例えば、RSA  Data  Security，  Inc．またはＸ−５０９同意証明書(compliant  certificate)が、診断プログラムが真性であることを証明するために使用される。
【００６２】
ステップ５４０では、地域的に蓄積されているか否か、または遠方の売主から送られたか否かの診断プログラムが実行される。例えば、診断プログラムは、ハードディスクが故障していることを確認し、または、オペレーティングシステム及び他のハードウェア構成要素に対応するエラーログ(error  log)の内容を調査することができる。また、診断プログラムを実行する部分は、売主への結果のアップロードを含んでいる。それにより、売主は訂正を行うことができる。
【００６３】
ステップ５４４では、問題が修復可能であるか否かを決定するためにテストが行われる。問題が修復可能である場合には、例えば、ステップ５４０を参照して前述したように、売主からの付加的な問題のダウンロードを含むステップ５４８で修復される。しかしながら、問題が修復可能でない場合には、ステップ５５２で、修復ができないことを示す通知が、ユーザまたは売主（または両方）に送信される。売主がステップ５５２で通知を受けた場合には、売主は、パーソナルコンピュータのエンドユーザをフォローアップ(follow  up)することができる。
【００６４】
図５Ｃでは、ブラウザーは、ステップ５５６で示されているように、インターネットを調査または“サーフ(surf)”するために用いられる。例えば、パーソナルコンピュータのユーザは、遠方のサーバーに接続し、データを送り、ＨＴＭＬファイルを訂正するために、独立ネットワークブラウザーを使用可能である。
【００６５】
通常のオペレーティングシステムとブラウザーの特徴がオーバーラップしているので、各々が他と独立して実行可能なコンピュータシステムリソースを管理するために、各々は、１つの形式または他の形式で別々に（必ずしも同時ではない）用いられる。このように、通常のオペレーティングシステムまたは周辺装置、特にハードディスクの故障は、必ずしもブラウザーに影響を及ぼさない。
【００６６】
[ハードウェア概要]
図６は、本発明を実装可能なコンピュータシステム６００の実施例を示すブロック図である。
【００６７】
コンピュータシステム６００は、情報を通信するためのバス６０２または他の通信機構、情報を処理するためのバス６０２と結合されたプロセッサー６０４を含んでいる。また、コンピュータシステム６００は、バス６０２に接続された、ランダムアクセスメモリ（“ＲＡＭ”）または他のダイナミック（または“揮発性”）蓄積装置のようなメインメモリ６０６を含んでいる。メインメモリ６０６は、実行中、プロセッサー６０４によって実行される情報及び指示を蓄積する。また、メインメモリ６０６は、プロセッサー６０４による指示の実行中、一時的な変数または他の中間情報を蓄積する。
【００６８】
コンピュータシステム６００は、更に、バス６０２に接続された読取専用メモリ（“ＲＯＭ”）６０８または他の静的（または“永続的”）蓄積装置（例えば、フラッシュ、ＰＲＯＭ、ＥＥＰＲＯＭ等）含んでいる。ＲＯＭ６０８は、プロセッサー６０４、特に、ここに説明されているようなブラウザーのための静的情報及び指示を蓄積する。メモリの１または複数のバンク(bank)がＲＯＭ６０８を構成可能であることは、注意する価値がある。磁気ディスクまたは光ディスクのような蓄積装置６１０（または“ハードディスク”または“ハードドライブ”）が、バス６０２に接続されている。蓄積装置６１０は、データ構造及び指示のような情報、例えば、オペレーティングシステムまたはオペレーティングシステムを用いるアプリケーションプログラムを蓄積する。
【００６９】
コンピュータシステム６００は、バス６０２を介して、陰極線管（“ＣＲＴ”）または動的マトリックスまたは静的マトリックス表示器のような表示器６１２に接続されるのが好ましい。表示器６１２は、イメージをエンドユーザに提供する。英数字キー及び他のキーを含む入力装置６１４は、バス６０２に接続されている。入力装置６１４は、情報及びコマンド選択をプロセッサーに伝達する。ユーザ入力装置の他の形式は、プロセッサー６０４に方向情報及びコマンド選択を伝達するため及び表示器６１２上のカーソルの移動をコントロールするために、マウス、トラックボール(trackball)またはカーソル方向キーのようなカーソルコントロール６１６である。この入力装置６１４は、典型的には、第１軸（例えば、ｘ）と第２軸（例えば，ｙ）の２つの軸内での２次元の自由度を有しており、それによって、装置は平面内の所定位置に移動可能である。
【００７０】
本発明は、ブラウザーが蓄積装置６１０のようなハードディスクに蓄積されない、永続的に蓄積される独立ブラウザーである。本発明に対する１つの応用は、コンピュータシステム６００の診断及び修復のためのものである。他は、ディスクの無いインターネット装置である。本発明の１つの構成では、コンピュータシステム６００内のプロセッサー６０４は、メインメモリ６０６内に含まれている１または複数の指示シーケンスを実行する。そのような指示は、蓄積装置６１０またはＲＯＭ６０８のような、他のコンピュータ読取可能な媒体からメインメモリ６０６内に読まれる。メインメモリ６０６内に保持されている指示シーケンスを実行することにより、プロセッサー６０４は、ブラウザー及びここに開示されている他の処理を実行する。他の実施の形態では、ハードワイヤ回路(hard-wired  circuitry)が、本発明を実行するためのソフトウェア指示に代えてまたは共同して使用可能である。このように、本発明の実施の形態は、ハードウェア回路とソフトウェアの特別の組み合わせに限定されない。
【００７１】
ここで使用されている“コンピュータ読取可能な媒体”という表現は、実行のために、プロセッサー６０４に指示を提供する際に関与する媒体を意味する。そのような媒体は、限定されないが、不揮発性媒体、揮発性媒体及び伝達媒体を含む多くの形態をとる。不揮発性媒体は、例えば、蓄積装置６１０のような、光学式または磁気式ディスクを含む。揮発性媒体は、メインメモリ６０６のようなダイナミックメモリを含む。伝達媒体は、バス６０２を構成するワイヤを含む、同軸ケーブル、銅線及び光ファイバを含む。また、伝達媒体は、無線波及び紫外線データ通信中に発生されるような音波または光波の形態をとることもできる。
【００７２】
コンピュータ読取可能な媒体の一般形態は、フレキシブルディスク、ハードディスク、磁気テープまたは他の磁気媒体、ＣＤ−ＲＯＭ、他の光学媒体、パンチカード、紙テープ、ホールパターンを有する他の物理的媒体、ＲＡＭ、ＲＯＭ、フラッシュまたは他のメモリチップまたはカートリッジ、以下で説明する搬送波、またはコンピュータが読み取り可能な他の媒体を含んでいる。
【００７３】
コンピュータ読取可能媒体の種々の形式は、実行のために、プロセッサー６０４への１または複数の指示の、１または複数のシーケンスを運ぶ時に含まれる。例えば、指示は、最初は、遠方のコンピュータの磁気ディスクに運ばれる。遠方のコンピュータは、ダイナミックメモリに指示を蓄え、モデムを用いて電話回線に指示を送信する。コンピュータシステム６００に対して離れているモデムは、電話回線上のデータを受信し、データを赤外線信号に変換するために赤外線送信器を使用可能である、バス６０２に結合されている赤外線検出器は、赤外線信号で運ばれるデータを受信し、データをバス６０２上に置く。バス６０２は、データをメインメモリ６０６に運び、プロセッサー６０４は、メインメモリから検索し、指示を実行する。メインメモリ６０によって受信された指示は、プロセッサー６０４による実行の前または後に、蓄積装置６１０に随時蓄積される。
【００７４】
また、コンピュータシステム６００は、バス６０２に結合されている通信インターフェース６１８を含んでいる。通信インターフェース６１８は、ローカルネットワーク６２２に接続されているネットワークリンク６２０に結合されている双方向データ通信を提供する。例えば、通信インターフェース６１８は、電話回線の種類に対応してデータ通信接続を提供するための集積サービスデジタル回路網（“ＩＳＤＮ”）カードまたはモデムである。他の例では、通信インターフェース６１８は、互換性のあるＬＡＮへのデータ通信接続を提供するローカルエリアネットワーク（“ＬＡＮ”）カードである。無線リンクも設けることができる。そのような実装においては、通信インターフェース６１８は、種々の形式の情報を示すデジタルデータ流を運ぶ電気、電磁気または光の信号を送信及び受信する。
【００７５】
ネットワークリンク６２０は、データ通信を１または複数のネットワークを介して他のデータ装置に提供するのが好ましい。例えば、ネットワークリンク６２０は、ローカルネットワーク６２２を介する、インターネットサービスプロバイダー（“ＩＳＰ”）６２６によって作動されるホストコンピュータ６２４またはデータ装置への接続を提供する。ＩＳＰ６２６は、“インターネット”６２８を介するデータ通信サービス、例えば、コンピュータ診断サービスを順に提供する。ローカルネットワーク６２２及びインターネット６２８は、デジタルデータ流を運ぶ電気、電磁気または光の信号を用いる。デジタルデータをコンピュータシステムにまたはコンピュータシステムから運ぶ、種々のネットワークを介した信号、ネットワークリンク６２０上及び通信インターフェース６１８を介した信号は、例えば、情報を移送する搬送波の形式である。
【００７６】
コンピュータシステム６００は、ネットワーク、ネットワークリンク６２０及び通信インターフェース６１８を介して、プログラムコードを含むメッセージの送信及びデータの受信が可能である。インターネットの例では、サーバー６３０は、インターネット６２８、ＩＳＰ６２６、ローカルネットワーク６２２及び通信インターフェース６１８を介して、例えば、ＦＴＰプロトコルを用いて、アプリケーションプログラムのための要求されたコードを伝達する。本発明では、ダウンロードされた１つのアプリケーションは、更に、コンピュータ問題を診断し、または問題を完全に固定する、実行可能なソフトウェアコードまたコンピュータ構成パラメータである。
【００７７】
受信されたコードは、それが受信され、及び／または、後での実行のために、メインメモリ６０６、蓄積装置６１０または他の不揮発性蓄積装置に蓄積された時に、プロセッサー６０４によって実行可能である。この方法では、コンピュータシステム６００は、搬送波の形態でアプリケーションコードを得る。
【００７８】
図３及び図６を参照すると、入力モジュール３０４が、入力装置６１４及びカーソルコントロール６１６と相互に作用することに注意する。ネットワーク通信モジュール３０８及びネットワークアプリケーションモジュール３１２は通信インターフェース６１８と相互に作用する。ページレンダリングモジュール３１６は、表示器６１２と相互に作用する。
【００７９】
１つの実施の形態では、全ての独立ネットワークブラウザーソフトウェアコードは、ＲＯＭ６０８の１または複数のバンクに蓄積される。しかしながら、実行される時には、ブラウザーソフトウェアコードは、メインメモリ６０６に複写される。１つの実施の形態では、ページキャッシュ４９０は、メインメモリ６０６の部分でもある。
【００８０】
本発明の利点は、実装されていない、通常のオペレーションシステムと独立している、省スペースの独立ブラウザー構造を含んでいる。ブラウザーを組み込むコンピュータは、ハードディスク無しで機能する。このように、ユーザは、ハードディスクが故障している時にもコンピュータを作動させることができ、または、ユーザは、ブラウザーソフトウェアを、オペレーティングシステムが起動するまで、または他のアプリケーションソフトウェアが書き込まれるまで待機することなく、インターネットへの迅速で準備されたアクセスが可能となるようにブラウザーソフトウェアを作動させることができる。
【００８１】
前記した説明では、本発明は、特別な実施の形態を参照して記載されている。しかしながら、前記記載との一貫性を保持した状態で種々の変更及び変化が可能である。例えば、多かれ少なかれ、ページキャッシュのための領域が特定可能であり、また、ネットワーク通信及びアプリケーションモジュール内、ならびに、ページレンダリングモジュール内に機能性を包含可能である。更に、他の実施の形態では、Ｊａｖａ（登録商標）コードを解釈または実行するための仮想機械を含んでいる。したがって、明細書及び図面は、限定された場面ではなく、例示的な場面に関する。
【図面の簡単な説明】
【図１】  公知のソフトウェアスタックを示す図である。
【図２】  本発明の独立ＲＯＭベースのブラウザーソフトウェアスタックのブロック図である。
【図３】  本発明のハイレベルブロック図である。
【図４】  本発明の詳細ブロック図である。
【図５Ａ】  本発明の呼び出し処理を示すフローチャート図である。
【図５Ｂ】  本発明の有用な応用を示すフローチャート図である。
【図５Ｃ】  本発明の有用な応用を示すフローチャート図である。
【図６】  パーソナルコンピュータのブロック図である。
【図１】
0004418137.tif 000002
【図２】
0004418137.tif 000003
【図３】
0004418137.tif 000004
【図４】
0004418137.tif 000005
【図５Ａ】
0004418137.tif 000006
【図５Ｂ】
0004418137.tif 000007
【図５Ｃ】
0004418137.tif 000008
【図６】
0004418137.tif 000009