(57)【特許請求の範囲】
【請求項１】
プロキシサーバを介してインターネットへのアクセスを行うクライアントと遠隔サーバとに結合されるプロキシサーバであって、前記クライアントによって随時アクセスされるすべてのウェブページの履歴情報と診断情報とが格納されている文書データベースを有し、前記クライアントの代理として機能して前記遠隔サーバにアクセスするプロキシサーバにおいて、前記クライアントに第１の文書を供給する方法であって、
（ａ）前記クライアントからの要求に応答して、前記クライアントに表示を生成させるデータを含む第１の文書が有効な文書であるか否か及び前記プロキシサーバのキャッシュに存在するか否かを前記履歴情報に基づいて判断し、有効な文書であるが前記キャッシュに存在しない場合に前記第１の文書を前記遠隔サーバから受け取るステップと、
（ｂ）プロキシサーバ内の前記文書データベースに格納されている前記診断情報を使用して第１の文書内のデータを変更してトランスコードされた文書を形成するステップと、
（ｃ）前記トランスコードされた文書を前記クライアントに送るステップと
を含み、
前記履歴情報と診断情報は、前記第１の文書が以前に遠隔サーバからプロキシサーバに受信され、解析されてトランスコードされた際に前記文書データベースに格納された情報であり、
前記クライアントは、前記トランスコードされた文書を表示する表示装置とインターフェースをとるように構成されるセットトップボックスを有するクライアントであって、パーソナルコンピュータを含まないことを特徴とする方法。
【請求項２】
前記クライアントからの要求に応答して、遠隔サーバから第１の画像形式を有する画像を取出すステップと、
プロキシサーバを使用して画像を第１の画像形式から第２の画像形式に変換するステップと
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記第１の文書によって参照された画像を識別するステップと、
画像がプロキシサーバによって前もって取り出されているかどうかを前記履歴情報に基づいて判断するステップと、
画像がプロキシサーバによって前もって取り出されている場合には、前記文書データベースに格納されている画像のサイズを示す情報にアクセスするステップと
をさらに含み、
前記ステップ（ｂ）が、前記画像のサイズを示す情報を使用して、画像をクライアントが受信する前に前記第１の文書をクライアントが表示することができるように前記第１の文書のデータを更新するステップを含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記ステップ（ｂ）は、
前記文書データベースに格納される複数のエラー条件に対応する情報を使用して前記第１の文書内のデータを分析して、前記データがクライアントによって使用されるときに、前記データが複数のエラー条件の１つを発生させうるかを判定するステップと、
前記データがクライアントによって使用されるときに、前記データが複数のエラー条件の１つを発生させうると判定される場合に、そのデータを自動的に変更するステップと
をさらに含むことを特徴とする請求項１に記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、クライアント−サーバ・コンピュータ・ネットワークの分野に関する。具体的には、本発明は、コンピュータ・ネットワークにおけるサーバ内で代理処理と文書のトランスコーディングを行う方法および装置に係わる。
【０００２】
【従来の技術】
パーソナル・コンピュータを使用する人の数は最近数年間で大幅に増加し、この増加に伴って、インターネットの使用が急増している。広く普及しているインターネットの１つの側面は、ワールド・ワイド・ウェッブ（「ウェッブ」）である。ウェッブは、インターネットによって論理的に接続された世界中の多数のコンピュータ上にある形式設定されたハイパーテキスト・ページの集まりである。ウェッブへのユーザ・インタフェースを提供するネットワーク技術とソフトウェア（「ウェッブ・ブラウザ」）の進歩によって、ウェッブにアクセス可能な人口の割合が大きくなっている。しかし、ウェッブの開発と使用の増大にもかかわらず、多くの人は依然としてこの重要な資源を利用することができない。
【０００３】
【発明が解決しようとする課題】
したがって、ウェッブへのアクセスはほとんどパーソナル・コンピュータにアクセスすることができる人に限られていた。しかし、比較的安価なパーソナル・コンピュータであっても経費を負担することができない人が多い一方、ウェッブにアクセスするのに必要な基本的なコンピュータ技術を教えることができないか教えたがらない人がいる。さらに、従来の技術のウェッブ・ブラウザは一般に、一部の人々が望む使い易さを備えておらず、多くのコンピュータ初心者はソフトウェアの使用方法を学ぶ忍耐強さを持たない。したがって、パーソナル・コンピュータを使用せずにウェッブにアクセスすることができる安価な手段を提供することが望ましいであろう。具体的には、複雑なコンピュータ・ネットワークを使用しているのではなく単にテレビジョンのチャンネルを変えているだけであるかのように感じるように、普通のテレビジョン・セットとリモート・コントロール装置を使用してウェッブ・ページにアクセスできることが望ましいであろう。
【０００４】
また、従来技術のウェッブには、ウェッブを閲覧するときの使用感を不快にする可能性のある他の重大な制約もある。ウェッブ文書は一般にＨＴＭＬ（ハイパーテキスト・マークアップ言語）で書かれている。ＨＴＭＬ文書にはバグ（誤り）が含まれていたり、特定のウェッブ・ブラウザが認識しないような機能を持っていたりすることがある。こうした文書中のバグやクワークはウェッブ・ブラウザを故障させる恐れがある。したがって、クライアント・システムがＨＴＭＬ文書内のバグやクワークのために障害を起こす頻度を減らす手段が必要である。
【０００５】
ウェッブの閲覧に伴う他の問題は待ち時間である。ユーザは、ウェッブを閲覧するときに長くいらだたしい遅延を経験するのが普通である。ユーザがハイパーテキスト・リンクを選択した後、ウェッブ・ページを自分のコンピュータに完全にダウンロードしてコンピュータ画面に表示するのに数分間待たなければならないことも珍しくない。インターネット上の通信トラフィックが多すぎることや、遠隔サーバの応答の遅さなど、待ち時間には多くの原因が考えられる。待ち時間は、画像を含むウェッブ・ページによっても引き起こされる。この影響の１つの理由は、ＨＴＭＬ文書が画像を参照するときに、参照文書を取り出した後で画像自体を取り出すのに時間を要することである。他の理由は、参照文書が画像の大きさを指定していない場合、従来の技術ではクライアント・システムは一般に、画像自体が取り出されるまでウェッブ・ページを表示することができないことである。ウェッブに関しては他にも多くの待ち時間の原因がある。したがって、そのような待ち時間を短縮して、ウェッブを閲覧する際に一般的に付随するフラストレーションを解消する手段が必要である。
【０００６】
インターネットに付随する他の問題はセキュリティである。インターネット・サービス・プロバイダ（ＩＳＰ）は一般に、各顧客に関する特定の情報をデータベースで維持している。この情報には、社会保険番号やクレジット・カード番号など顧客が公に知られたくない情報も含まれることがある。インターネットのように費用のかかる公にアクセス可能なコンピュータ・ネットワークに接続されたシステムでこの情報の機密を維持するのは問題がある場合がある。さらに、ＩＳＰは多種多様なサービスを提供することが多く、そのそれぞれがこのデータベースにアクセスすることができることによって、この問題はさらに重大になる恐れがある。多くの異なるエンティティにこのデータベースへのアクセスを許すことによって、セキュリティ侵害が発生する機会が増える。したがって、インターネットに接続されたサーバ・システムにおける機密顧客情報のセキュリティを向上させる方法が必要である。
【０００７】
【課題を解決するための手段】
サーバに結合されたクライアントに文書を提供する方法について説明する。このサーバは遠隔サーバにアクセスするために、クライアントに代わる代理の役割を果たす。この方法では、クライアントからの要求に応答して遠隔サーバから文書が取り出される。この文書には、クライアントが表示を生成する際に使用するデータが含まれる。代理サーバはこの文書内のデータを変更してトランスコードされた文書を形成する。次に、トランスコードされた文書がクライアントに送信される。
【０００８】
本発明の他の特徴は、添付図面と以下の詳細な説明を読めば明らかになろう。
【０００９】
【発明の実施の形態】
本発明について例示するが、本発明は添付図面の図には限定されない。添付図面では、同様の参照符号によって同様の要素を示す。
【００１０】
ネットワークにおいて文書の代理処理とトランスコーディングを行う方法および装置について説明する。本発明を十分に理解することができるように、以下では説明のために多くの特定の詳細を記載する。しかし、本発明はそれらの特定の詳細がなくても実施可能であることが当業者には明らかであろう。他の場合には、本発明が無用にわかりにくくならないように、周知の構造および装置はブロック図の形で示す。
【００１１】
本発明には、以下で説明する様々なステップが含まれる。これらのステップは、機械で実行可能な命令の形で実施することができ、それらを使用して、その命令によってプログラムされた汎用プロセッサまたは特殊目的プロセッサにステップを実行させることができる。あるいは、本発明のステップは、ステップを実行するハードウェア論理を含む特定のハードウェア構成要素によって、またはプログラムされたコンピュータ構成要素とカスタム・ハードウェア構成要素との任意の組合せによって実行することができる。
【００１２】
Ｉ．システムの概要
本発明は、ユーザにインターネットへのアクセスを提供するＷｅｂＴＶTMと呼ばれるシステムに組み込まれる。ＷｅｂＴＶTMクライアントのユーザは一般に、ウェッブの閲覧や電子メール（ｅメール）の送受信を行ったり他の様々なＷｅｂＴＶTMネットワーク・サービスを使用したりするために、直通電話（ＰＯＴＳ（「単純在来型電話サービス」））、ＩＳＤＮ（統合サービス・ディジタル網）、またはその他の同様の接続を介してＷｅｂＴＶTMサーバにアクセスする。ＷｅｂＴＶTMネットワーク・サービスは、ＷｅｂＴＶTMサーバ内に常駐するソフトウェアをＷｅｂＴＶTMクライアント内に常駐するソフトウェアと共に使用して、ＷｅｂＴＶTMサーバによって提供される。
【００１３】
図１に、一実施形態によるＷｅｂＴＶTMネットワークの基本構成を示す。いくつかのＷｅｂＴＶTMクライアント１が、直通双方向データ接続２９を介してモデム・プール２に結合されている。直通双方向データ接続２９は、電話（ＰＯＴＳすなわち「単純在来型電話サービス」）、ＩＳＤＮ（統合サービス・ディジタル網）、または他の任意の同様のタイプの接続とすることができる。モデム・プール２は、典型的には、当技術分野で従来知られているもののようなルータを介して、インターネットなどの従来のネットワーク基盤３でいくつかの遠隔サーバ４に結合されている。ＷｅｂＴＶTMシステムは、ＷｅｂＴＶTMクライアント１を特にサポートするＷｅｂＴＶTMサーバ５も含む。ＷｅｂＴＶTMクライアント１はそれぞれ、直接またはモデム・プール２とインターネット３を介してＷｅｂＴＶTMサーバ５に接続する。モデム・プール２は、インターネットおよび専用ネットワークへのアクセスを提供する現在世界中で見られる従来のモデム・プールであることに留意されたい。
【００１４】
この説明では、説明を容易にするために、ＷｅｂＴＶTMサーバ５についてあたかもそれが単一の装置であるかのように概説し、ＷｅｂＴＶTMサービスが提供する機能がそのような単一の装置によって実行されるかのように概説する。しかし、ＷｅｂＴＶTMサーバ５は、実際には分散アーキテクチャ内で接続された複数の物理装置と論理装置を含み、以下に説明するＷｅｂＴＶTMサービスが提供する様々な機能は実際には複数のＷｅｂＴＶTMサーバ装置に分散することができる。
【００１５】
ＩＩ．クライアント・システム
図２にＷｅｂＴＶTMクライアント１を図示する。ＷｅｂＴＶTMクライアント１は、電子装置ユニット１０（以下「ＷｅｂＴＶTMボックス１０」と呼ぶ）と、通常のテレビジョン・セット１２と、リモート・コントロール装置１１とを備える。本発明の他の実施形態では、ＷｅｂＴＶTMボックス１０はテレビジョン・セット１２に一体ユニットとして組み込まれている。ＷｅｂＴＶTMボックス１０は、ユーザにグラフィカル・ユーザ・インタフェースを提供するハードウェアとソフトウェアを備え、それによってユーザはＷｅｂＴＶTMネットワーク・サービスへのアクセス、ウェッブの閲覧、電子メールの送信、およびその他によってインターネットにアクセスすることができる。
【００１６】
ＷｅｂＴＶTMクライアント１は、テレビジョン・セット１２を表示装置として使用する。ＷｅｂＴＶTMボックス１０はビデオ・リンク６によってテレビジョン・セット１２に結合されている。ビデオ・リンク６はＲＦ（無線周波数）、Ｓビデオ、複合ビデオ、またはその他の同等の形態のビデオ・リンクである。好ましい実施形態では、クライアント１は標準モデムとＩＳＤＮモデムの両方を備え、ＷｅｂＴＶTMボックス１０とサーバ５との間の通信リンク２９が電話（ＰＯＴＳ）接続２９ａでもＩＳＤＮ接続２９ｂでもよいようになっている。ＷｅｂＴＶTMボックス１０は電力線７を通して電力を受け取る。
【００１７】
リモート・コントロール装置１１は、ウェッブの閲覧、電子メールの送信、およびその他のインターネット関係の機能を実行する際にＷｅｂＴＶTMクライアント１を制御するためにユーザが操作する。ＷｅｂＴＶTMボックス１０は、赤外線（ＩＲ）通信リンクを介してリモート・コントロール装置１１からコマンドを受信する。他の実施形態では、リモート・コントロール装置１１とＷｅｂＴＶTMボックス１０との間のリンクはＲＦまたは任意の同等の伝送モードとすることができる。
【００１８】
III.サーバ・システム
ＷｅｂＴＶTMサーバ５は一般に、図３に図示するアーキテクチャを有する１つまたは複数のコンピュータ・システムを含む。図のアーキテクチャは例示に過ぎず、本発明はこの特定のアーキテクチャには限定されないことに留意されたい。図のアーキテクチャは、中央演算処理装置（ＣＰＵ）５０と、ランダム・アクセス・メモリ（ＲＡＭ）５１と、読取り専用メモリ（ＲＯＭ）５２と、大容量記憶装置５３と、モデム５４と、ネットワーク・インタフェース・カード（ＮＩＣ）５５と、その他の様々な入出力（Ｉ／Ｏ）装置５６とを備える。大容量記憶装置５３は、磁気、光、またはその他の同等の記憶媒体を含む。Ｉ／Ｏ装置５６は、表示モニタ、キーボード、カーソル制御装置などの装置のうちの一部または全部を含むことができる。モデム５４は、インターネットを介して遠隔サーバ４との間でデータをやり取りするために使用される。
【００１９】
前述のように、ＷｅｂＴＶTMサーバ５は実際には、分散アーキテクチャ内で接続された複数の物理装置と論理装置を含むことができる。したがって、ＮＩＣ５５はＷｅｂＴＶTMサービスに属する他の装置とのデータ通信を行うために使用される。モデム５４は、ＷｅｂＴＶTMサービスに属していて地理的に図の装置に近接した場所にはない他の装置と通信を行うためにも使用される。
【００２０】
本発明によると、ＷｅｂＴＶTMサーバ５は、ＷｅｂＴＶTMクライアント１がウェッブおよびその他のＷｅｂＴＶTMサービスにアクセスすることができるようにする代理の役割を果たす。具体的には、ＷｅｂＴＶTMサーバ５は「キャッシュ代理」として機能する。図４Ａに、ＷｅｂＴＶTMサーバ５のキャッシュ機能を図示する。図４Ａで、ＷｅｂＴＶTMサーバ５は機能的にＷｅｂＴＶTMクライアント１とインターネット基盤３との間に位置する。ＷｅｂＴＶTMサーバ５は、ＷｅｂＴＶTMクライアント１に機能的に結合された代理キャッシュ６５を備える。代理キャッシュ６５は、ＷｅｂＴＶTMクライアント１またはＷｅｂＴＶTMサーバ５が頻繁に使用するウェッブの文書、画像、およびその他の情報を一時的に記憶するために使用される。
【００２１】
代理キャッシュ６５とインターネット基盤３との間に文書トランスコーダ６６が結合されている。文書トランスコーダ６６は、遠隔サーバ４から受信したウェッブ文書のコードを自動的に更新するために使用されるソフトウェアを備えている。その目的については後述する。
【００２２】
ＷｅｂＴＶTMサービスは、図４Ｂに図示するように文書データベース６１とユーザ・データベース６２を備える。ユーザ・データベース６２は、クライアント１のユーザのアクセス特権および能力に関する特定の機構を制御するために使用される情報を保持する。後述するようにこの情報を使用してＷｅｂＴＶTMサービスへの初期アクセスを調整すると共に、ＷｅｂＴＶTMシステムが提供する個々のサービスへのアクセスも調整する。文書データベース６１は、後述するようにサーバ５が取り出す各文書および画像に関する特定の診断情報および履歴情報を記憶する永続データベースである。
【００２３】
Ａ．文書データベース
文書データベース６１の基本的な目的は、サーバ５が文書をいったん取り出した後、サーバ５が記憶情報を使用して当該文書のその後のすべての要求に応答して当該文書の処理とダウンロードを高速化することができるようにすることである。さらに、後述するように、文書データベース６１に記憶されている情報を使用することによってＷｅｂＴＶTMサービスのトランスコーディング機能とその他の様々な機能が容易になる。
【００２４】
図５を参照すると、サーバ５はクライアント１から最初に文書要求を受け取る（ステップ５０１）。文書要求は一般に、クライアント１を使用してウェッブ・ページでハイパーテキスト・アンカー（リンク）を起動した結果として行われる。ハイパーテキスト・アンカーを起動する行為は、たとえば表示されたウェッブ・ページ内の下線付きテキストをマウスを使用してクリックすることから成る。文書要求には（常にそうであるとは限らないが）一般に、選択されたアンカーのＵＲＬ（ユニフォーム・リソース・ロケータ）またはその他のアドレスが含まれる。文書要求を受け取ると、サーバ５は任意選択で文書データベース６１にアクセスして、要求された文書に関する記憶情報を取り出す（ステップ５０２）。文書データベース６１には、どの場合にも必ずアクセスするわけではないことに留意されたい。サーバ５は文書データベース６１から取り出された情報を使用して、要求された文書がどれだけ長くキャッシュに入れられていたか、文書がまだ有効かどうかなどを判断する。記憶されている文書の有効性を判断するための基準については後述する。
【００２５】
記憶されている文書が有効な場合、サーバ５はキャッシュ６５からその文書を取り出す。有効でない場合、サーバ５は適切な遠隔サーバ４からその文書を取り出す（ステップ５０３）。サーバ５は、文書データベース６１に記憶されている情報に基づき、必要に応じて文書を自動的にトランスコードする（ステップ５０３）。トランスコード機能については後で詳述する。
【００２６】
文書データベース６１には、ＷｅｂＴＶTMクライアント１によって随時アクセスされるすべてのウェッブ・ページの履歴情報と診断情報が含まれている。周知のように、ウェッブ・ページはＨＴＭＬ（ハイパーテキスト・マークアップ言語）、ＶＲＭＬ（仮想現実モデリング言語）、または他の適合する言語などの言語で書かれた文書に対応する。あるいは、ウェッブ・ページは画像、または１つまたは複数の画像を参照する文書を表す。本発明によると、ＷｅｂＴＶTMサーバ５が遠隔サーバ４から文書または画像を最初に取り出した後は、その文書または画像に関する詳細情報が文書データベース６１に永続的に記憶される。具体的には、遠隔サーバ４から取り出されたすべてのウェッブ・ページについて、以下のデータの一部または全部が文書データベース６１に記憶される。
１）ウェッブ・ページ内のバグ（誤り）またはクワーク、またはウェッブ・ページがクライアント１によって表示されたときに生じる望ましくない効果を識別する情報
２）適切なバグ検出アルゴリズム
３）ウェッブ・ページが最後に取り出された日時
４）ウェッブ・ページが最も最近に著作者によって変更された日時
５）ウェッブ・ページが変更されたかどうかを判断するためのチェックサム
６）ウェッブ・ページの（メモリ量で表した）サイズ
７）ウェッブ・ページのタイプ（たとえばＨＴＭＬ文書、画像など）
８）ウェッブ・ページ内のハイパーテキスト・アンカー（リンク）および対応するＵＲＬのリスト
９）「ヒット」数（クライアント１からの要求数）に基づく最も人気のあるアンカーのリスト
１０）プリフェッチすることができる関連ウェッブ・ページのリスト
１１）ウェッブ・ページが他の遠隔サーバ４にリダイレクトされたかどうか
１２）リダイレクト・アドレス（該当する場合）
１３）リダイレクト（ある場合）が一時的か永続的か。永続的な場合はリダイレクトの存続期間
１４）ウェッブ・ページが画像の場合、物理的大きさとメモリ空間の両方で表した画像のサイズ
１５）ウェッブ・ページを定義する文書によって参照されるインライン画像（テキスト内に表示された画像）のサイズ
１６）文書によって参照される最大の画像のサイズ
１７）ウェッブ・ページ内のイメージ・マップを識別する情報
１８）ウェッブ・ページに対応する画像をサイズ変更するかどうか
１９）ウェッブ・ページ内の書式または表の指示
２０）未知のプロトコル
２１）「デッド」ウェッブ・ページ（すなわちアクティブでなくなったページ）へのリンク
２２）ウェッブ・ページがある遠隔サーバ４の待ち時間とスループット
２３）文書の文字セット
２４）ウェッブ・ページがある遠隔サーバ４のベンダ
２５）ウェッブ・ページがある遠隔サーバ４の地理的な場所
２６）対象ウェッブ・ページを参照する他のウェッブ・ページの数
２７）画像または文書が使用する圧縮アルゴリズム
２８）トランスコーダが選択する圧縮アルゴリズム
２９）クライアントによるヒットの数に基づくウェッブ・ページの人気を示す値
３０）対象ウェッブ・ページを参照する他のウェッブ・ページの人気を示す値
【００２７】
Ｂ．トランスコーディング
前述のように、ＷｅｂＴＶTMサービスは様々な目的でＨＴＭＬ文書内のコードの特定の部分を書き直すために使用されるトランスコーダ６６を備える。これらの目的には、（１）文書内のバグを修正する、（２）文書がクライアント１によって表示されたときに発生する望ましくない効果を修正する、（３）サーバ５からクライアント１に文書を送信する効率を向上させる、（４）クライアント１内でハードウェア圧縮解除技法を整合させる、（５）画像がテレビジョン・セット１２に収まるように画像のサイズを変更する、（６）互換性をもたせるために文書を他の形式に変換する、（７）インライン画像（テキスト内に表示される画像）のあるウェッブ・ページを表示するときのクライアント１の待ち時間を短縮する、（８）より小さいメモリ空間に収まるように文書を変更することなどが含まれる。
【００２８】
トランスコーダ６６が使用するトランスコーディング・モードは、（１）ストリーミング、（２）バッファ、および（３）据置きの３つのモードがある。ストリーミング・トランスコーディング・モードとは、文書が遠隔サーバ４から取り出されてクライアント１にダウンロードされるとき文書を１行ごとにトランスコードすること（すなわち「オンザフライ」でのトランスコード）を言う。しかし、文書によってはトランスコードしてクライアント１にダウンロードする前に、まずＷｅｂＴＶTMサーバ５でバッファに入れなければならないものがある。加える変更のタイプが遠隔サーバ４から文書全体が取り出された後でしか行うことができないものである場合は、クライアント１に送信する前に文書をバッファリングする必要がある。文書を取り出してクライアント１にダウンロードするプロセスによって待ち時間が増加し、スループットが低下するため、すべての文書をバッファリングすることは望ましくない。したがって、トランスコーダ６６は、文書データベース６１内の要求された文書に関する情報にアクセスして使用し、要求された文書をトランスコードするためにバッファリングしなければならないかどうかを先に判断してから、遠隔サーバ４から文書を取り出す。
【００２９】
据置きモードでは、要求された文書をクライアント１にダウンロードし終わるまでトランスコーディングが据え置かれる。したがって据置きモードは文書を受け取る際にクライアント１が経験する待ち時間を短縮する。トランスコーディングは、ダウンロードの直後またはダウンロード後の任意の時点で行うことができる。たとえば、夜間などのＷｅｂＴＶTMサービスの使用量が少ない期間中にトランスコーディングを行えば好都合であろう。このモードは必須ではない特定のタイプのトランスコーディングに有用である。
【００３０】
１．バグおよびクワークのトランスコーディング
ある種の従来技術のウェッブ・ブラウザの１つの特徴は、ウェッブ文書内にあるバグまたは予期しない機能（「クワーク」）のために、障害（「クラッシュ」）を起こすことである。あるいは、文書内のクワークによって、クライアントがクラッシュしなくても望ましくない結果が生じることがある。したがって、本発明のトランスコーディング機能は、ウェッブ文書内の特定のバグおよびクワークを修正する手段を提供する。トランスコーダ６６によって修正するには、バグおよびクワークはサーバ５上で稼働しているソフトウェアによって識別可能でなければならない。したがって、トランスコーダ６６は一般に、テスト中に発見されたり、ユーザによって報告されたりしたものなど、前もって発見された条件のみを修正する。しかし、バグまたはクワークが発見された後は、将来、そのバグまたはクワークがどのウェッブ文書にあっても検出するだけでなくそれを自動的に修正するアルゴリズムがトランスコーダ６６に追加される。
【００３１】
ウェッブ文書内で遭遇するかも知れないバグやクワークの可能性は無数にある。したがって、本明細書では網羅的なリストを示すことは試みない。しかし、この時点でいくつかの例を示すことは有用であろう。たとえば、遠隔サーバ４からダウンロードされるＨＴＭＬ文書であって、その文書で「０」と指定されている幅を有する表を含むＨＴＭＬ文書を考えてみる。この条件は、クライアントがその文書を書かれている通りに表示しようとすると障害を起こす可能性がある。したがって、この状況をトランスコーダ６６によって検出し、修正することができる。他の例は、引用を多すぎる引用符で終わらせる文書内のクワークである。このクワークが最初に検出され、それを認識するようにアルゴリズムが作成された後は、トランスコーダ６６はどの文書でも自動的にそのクワークを修正することができる。
【００３２】
所与のウェッブ文書が前にサーバ５によって取り出されている場合、前述のように文書データベース６１でその文書に関する情報を入手することができる。この文書に関する情報には、文書を前に取り出したときにトランスコーディングを必要としたバグまたはクワークが文書に入っているかどうかが含まれる。トランスコーダ６６はこの情報を使用して、（１）文書にバグやクワークがないか、（２）文書にトランスコーディングによってオンザフライで修正可能なバグまたはクワークがあるか、（３）文書にオンザフライで修正することができない（すなわちバッファリングが必要な）バグまたはクワークがあるかを判断する。
【００３３】
図６に、バグおよびクワークを除去するためにウェッブ文書をトランスコードするルーチンを示す。まず、サーバ５がクライアント１から文書要求を受け取る（ステップ６０１）。次に、文書データベース６１にアクセスして、要求された文書が前に取り出されているかどうかを調べる（ステップ６０２）。その文書が前に取り出されていない場合、サーバ５は遠隔サーバ４からその文書を取り出す（ステップ６０９）。次に、取り出した文書を解析してバグまたは異常な条件がないか調べる（ステップ６１０）。この解析の結果として検出されたバグまたはクワークについて注記する様々な診断情報が文書データベース６１に記憶される（ステップ６１１）。トランスコーダ６６によって修正可能なバグまたはクワークが見つかった場合、文書はトランスコードされ、代理キャッシュ６５に保管される（ステップ６１２）。トランスコードされた文書は次にクライアント１にダウンロードされる（ステップ６１３）。前述のように、トランスコーディングは文書をダウンロードし終わるまで据え置くことができ、したがって、図６のシーケンスは例示に過ぎないことに留意されたい。
【００３４】
（ステップ６０２で）要求文書が前に取り出されていた場合、要求文書がまだ有効かどうかが判断され（ステップ６０３）、文書が代理キャッシュ６５に入っているかどうかが判断される（６０４）。文書が有効ではなくなっている場合、その文書は前述のように遠隔サーバ４から取り出され、バグやクワークがないか解析され、必要に応じてトランスコードされた後、クライアント１にダウンロードされる（ステップ６１０〜６１３、ステップ６０７）。文書の有効性を判断する方法については後述する。文書がまだ有効で（ステップ６０３）、文書がキャッシュ６５に入っている場合、文書はすでにトランスコードされているため、その（キャッシュに格納されたときの）現行形態でクライアント１にダウンロードされる（ステップ６０８）。
【００３５】
しかし、文書は有効であってもキャッシュに入っていない場合がある。これは、たとえばその文書が最近要求されておらず、キャッシュ６５がいっぱいになってその要求文書を保持することができない場合に起こる。その場合、遠隔サーバ４からもう一度その文書が取り出され（ステップ６０５）、前に入手したデータベース６１内に記憶されているその文書の診断情報に基づいてトランスコードされる。次に文書はキャッシュ６５に保管される（ステップ６０６）。文書はまだ有効であるため、文書データベース６１に記憶されているその文書の診断情報はまだ有効とみなされ、その情報に基づいてトランスコーディングを行うことができるとみなされる。したがって、文書がトランスコードされると、トランスコードされた文書がクライアント１にダウンロードされる（ステップ６０７）。この場合も、トランスコーディングは場合によっては文書がダウンロードされるまで据え置くことができることに留意されたい。
【００３６】
要求された文書の有効性は多種多様な基準に基づいて判断することができる。たとえば、ＨＴＭＬ文書によっては文書の作成日付または文書が有効な時間の長さあるいはその両方を指定するものがある。有効性の判断はそのような情報に基づいて行うことができる。たとえば、作成日付だけを指定する文書は、所定の期間が過ぎると自動的に無効とみなすことができる。
【００３７】
他に、有効性は要求された文書の人気に基づかせることができる。「人気」は、文書データベース６１で追跡されるその文書のヒット数に基づいて数量化することができる。たとえば、単に非常に人気のある文書に比較的短期間の有効性を割当て、人気のない文書に長い有効期間を割り当てるのが賢明な場合がある。
【００３８】
文書の有効性の他の基準は、文書の観察変更率である。この場合も、永続文書データベース６１に入っているデータを使用することができる。すなわち、文書データベース６１には、文書の変更が最後に観察された日時が記憶され、サーバ５は文書が実際に変更された頻度を概算することができる。頻繁に変更が観察される文書または画像（たとえば天気図やニュース・ページなど）には、比較的短期間の有効性を割り当てることができる。文書の有効性に関する方法は他にも多数考えられることがわかるであろう。
【００３９】
２．待ち時間短縮のためのトランスコーディング
トランスコーディングのもう１つの目的は、クライアント１が要求した文書をクライアント１がより迅速に表示することができるようにすることである。多くのＨＴＭＬ文書には、「インライン」画像、すなわちウェッブ・ページ内のテキスト中に表示される画像の参照が含まれる。インライン画像のあるウェッブ・ページを表示するために従来の技術で使用されている通常のプロセスは、画像を参照するＨＴＭＬ文書を先にクライアントにダウンロードし、その後でクライアントが参照画像を要求することである。そうすると参照画像がある遠隔サーバから参照画像が取り出され、クライアントにダウンロードされる。しかしこの従来の技術に付随する１つの問題は、完全なウェッブ・ページがユーザに対して表示される速度が、インライン画像を取り出すのに要する時間によって制限されることが多いことである。その１つの理由は、参照側の文書が取り出された後で画像自体を取り出すのに単に時間がかかるということである。もう１つの理由は、従来の技術では、参照側の文書が画像のサイズを指定していない場合、ウェッブ・ページは一般に、画像自体が取り出されるまで表示することができないことである。本発明はこれらの制約を克服する。
【００４０】
本発明によると、ウェッブ・ページを表示する待ち時間を短縮するために文書データベース６１に記憶されているインライン画像に関する情報を使用して参照側文書をトランスコードする。インライン画像を参照する文書がサーバ５によって最初に取り出された後は、その文書がインライン画像を参照するということが文書データベース６１に記憶される。さらに、文書（指定された場合）または画像自体から画像のサイズが判断され、文書データベース６１に記憶される。したがって、ウェッブ・ページのダウンロードと表示の待ち時間を短縮するために、インライン画像のサイズを指定しない文書の場合、その文書が次に要求されるとデータベース６１に記憶されているサイズ情報を使用する。
【００４１】
次に図７を参照すると、画像を参照する文書をクライアント１にダウンロードするときの待ち時間を短縮するルーチンが示されている。クライアント１がサーバ５に、インライン画像の参照を含むＨＴＭＬ文書を求める要求を送るものとする。さらに、画像のサイズは文書自体の中で指定されていないものとする。最初に、サーバ５はその文書が前に取り出されているかどうかを判断する（ステップ７０１）。取り出されていない場合、図６を参照しながら説明したように、標準の初期取出しおよびトランスコード手続きに従う（ステップ７０６）。しかし、その文書が前に取り出されている場合、トランスコーダ６６は文書データベース６１に記憶されているインライン画像のサイズ情報にアクセスする（ステップ７０２）。このサイズ情報に基づいて、ウェッブ・ページがクライアント１によって最初に表示されるときに、画像が入るべき領域が画像の形状を囲む空白領域に置き換えられるようにＨＴＭＬ文書がトランスコードされる。このようにして、文書によって参照されるインライン画像は最初に空白領域として表示される。その結果、クライアント１は、参照画像の取出しやダウンロードの前であっても（すなわち画像のサイズがクライアント１にわかる前であっても）、ＨＴＭＬ文書に対応するウェッブ・ページをただちに表示することができる。
【００４２】
トランスコードされたＨＴＭＬ文書がクライアントにダウンロードされている間に、適切な遠隔サーバ４から画像が取り出される（ステップ７０４）。遠隔サーバ４から画像が取り出されてクライアント１にダウンロードされると、クライアント１はウェッブ・ページ内の空白領域を実際の画像と置き換える（ステップ７０５）。
【００４３】
３．テレビジョンでウェッブ・ページを表示するためのトランスコーディング
前述のように、クライアント１は普通のテレビジョン・セット１２を表示装置として使用する。しかし、ウェッブ・ページ内の画像は一般にテレビジョン・セットではなくコンピュータ・モニタで表示するようにフォーマットされている。したがって、本発明のトランスコーディング機能を使用して、テレビジョン・セット１２で表示するように画像をサイズ変更する。これには、テレビジョン・セット１２で表示したときに切り捨てられないように画像を必要に応じて縮尺変更する。
【００４４】
コンピュータ・モニタ上で動作する従来技術のウェッブ・ブラウザは、一般に、サイズ変更可能なウィンドウを使用することに留意されたい。したがって、表示可能領域のサイズはクライアントによって異なる。しかし、ＷｅｂＴＶTMクライアント１が使用するウェッブ・ブラウザはテレビジョン・セットで表示するように特別に設計されているため、本発明では文書および画像をキャッシュに入れるときに文書および画像をフォーマットすることができる。
【００４５】
４．伝送効率のためのトランスコーディング
サーバ５によって取り出された文書は、伝送効率を向上させるためにもトランスコードされる。具体的には、テレビジョン・セットで表示するときにインタレース・フリッカを減少させるために、高周波成分を減少させるように文書をトランスコードすることができる。知覚されるインタレース・フリッカを少なくするソフトウェアまたはハードウェアをコーディングする様々な方法は、        年月    日に出願された同時係属の米国特許出願第                号に記載されている。
【００４６】
文書は、表示ウェッブ・ページの解像度を下げるためにもトランスコードすることができる。コンピュータ・システム用にフォーマットされた画像は一般に、従来型テレビジョン・セットで使用されているＮＴＳＣ（全米テレビジョン標準委員会）ビデオ形式よりも解像度が高いため、解像度を低下させることが望ましい。ＮＴＳＣ方式ビデオは、コンピュータ形式の画像の解像度を再生する帯域幅を持たず、そのように高い解像度で画像をクライアント１に送信する際に消費される帯域幅が無駄になる。
【００４７】
５．トランスコーディングのその他の使用法
本発明は、新しい形式を使用する文書をより古い互換形式に記録するためにもトランスコーディングを使用する。画像はＪＰＥＧ（ジョイント・ピクチャ・エキスパート・グループ）形式またはＧＩＦ画像形式で表示されることが多い。しかしＪＰＥＧはしばしばＧＩＦよりも消費帯域幅が小さい。したがって、時にはＧＩＦ形式で取り出された画像をＪＰＥＧ形式にトランスコードする。ＧＩＦ形式とＪＰＥＧ形式の間で画像を一般的に変換する方法は公知である。
【００４８】
トランスコーディングの他の使用法としては、音声ファイルのトランスコーディングがある。たとえば、メモリ使用量と音質とデータ転送速度との間で所望のバランスをとるために、音声を異なる形式にトランスコードすることができる。さらに、音声をファイル形式（たとえば"．ＡＵ"ファイル）からストリーミング形式（たとえばＭＰＥＧ１音声）にトランスコードすることができる。音声トランスコーディングの他の使用法は、ＭＩＤＩ（楽器用ディジタル・インタフェース）データをＭＩＤＩのストリーミング版にトランスコードすることである。
【００４９】
さらに、クライアント１での消費メモリ空間を少なくするために、大量のメモリ（たとえば長いリスト）を必要とする文書または画像をトランスコードすることができる。これには、たとえば大きな文書または画像を複数の部分に分けることが必要である。たとえば、サーバ５は元の文書の適切な場所にタグを挿入して、文書がクライアント１に複数のウェッブ・ページのように見えるようにすることができる。したがって、ユーザは画面上のボタンを起動することによって、元の文書の一部を表す所与のページを表示しながら次のページ（すなわち元の文書のうちの次の部分）をあたかも元のハイパーテキスト・アンカーであるかのように表示することができる。
【００５０】
Ｃ．代理処理
前述のように、サーバ５はウェッブにアクセスするためにクライアント１に代わる代理として機能することができる。以下で述べるように、文書データベース６１を様々な方法で使用してこの代理の役割を容易にする。
【００５１】
１．キャッシュ内文書の更新
頻繁に要求されるＨＴＭＬ文書および画像を代理キャッシュ６５に格納して、ウェッブ・ページをクライアント１に送る際の待ち時間をさらに短縮することが望ましい。しかし、文書や画像によっては時間の経過と共に変化する場合があるため、前述のようにキャッシュ６５内の文書はいつまでも有効というわけではない。たとえば天気図やニュース関係のウェッブ・ページは、かなり頻繁に更新される確率が高い。したがって、サーバ５は、文書が代理キャッシュ６５内でどれだけ長く更新されずに無事なままでいることができるかを判断するために、文書が変化する頻度を見積もる能力を備えることが望ましい。
【００５２】
永続データベース６１を使用して、遠隔サーバ４から取り出された各文書および画像の最近数回のフェッチの日時を、検出された変更があればその変更を示す標識と共に記憶する。次に、キャッシュ６５に格納された文書または画像を定期的に取り出して、変更されたかどうかを調べる。その後、前回のフェッチ以降に文書が変更されたかどうかを示す変更状況情報を文書データベース６１に記憶する。変更が検出されない場合は、当該文書のフェッチの間隔を長くする。文書が変化している場合は、その間隔を維持するかまたは短くする。その結果、頻繁に変化するキャッシュ６５内の項目は頻繁な間隔で自動的に更新され、頻繁に変化しない文書はキャッシュ内で余り頻繁に置き換えられない。
【００５３】
図８に、代理キャッシュ６５に記憶されている文書を文書データベース６１に記憶されているデータを使用して更新するルーチンを示す。代理キャッシュ６５に文書Ｘが記憶されているものとする。文書Ｘは所定の更新期間Ｔ１が経過するまでキャッシュ６５に入れられている（ステップ８０１）。更新期間Ｔ１が経過すると、文書Ｘは再び適切な遠隔サーバ４から取り出される（ステップ８０２）。次に、新たに取り出された文書Ｘをキャッシュ内の文書Ｘと比較する（ステップ８０３）。文書が変化している場合、キャッシュ版の文書Ｘを新たに取り出された版の文書Ｘに置き換える（ステップ８０６）。変化していない場合、所定の時間増分Δｔ１に従って更新期間Ｔ１を増加させる（ステップ８０４）。いずれの場合も、文書Ｘの日時と変更状況を文書データベース６１に保管する（ステップ８０５）。
【００５４】
文書および画像のプリフェッチ
文書データベース６１は、サーバ５が文書および画像に関するプリフェッチ情報を記憶するためにも使用される。具体的には、データベースには、検索された各文書について、その文書によって参照されている画像があればその画像のリストとそれがある場所が記憶される。したがって、クライアント１によって文書が次に要求されると、クライアント１が画像を要求する前であってもサーバ５はそれらの画像を（キャッシュ６５にある場合はキャッシュ６５から、あるいは遠隔サーバ４から）ただちに取り出すことができる。この手続きによって要求ウェッブ・ページをクライアントにダウンロードする速度が速くなる。
【００５５】
文書データベース６１は、「サーバ提案クライアント・プリフェッチ」と呼ぶプロセスを容易にするためにも使用される。サーバ提案クライアント・プリフェッチによって、サーバ５は人気のある文書または画像をクライアント１に知らせることができ、それによってクライアント１はプリフェッチを行うことができる。具体的には所与の文書について、その文書中で最も人気のあるハイパーテキスト・アンカー（すなわち、前に多数のヒットを受けたアンカー）のリストがサーバ５で維持される。その文書がクライアント１によって要求されると、サーバ５はクライアントにそれらの人気リンクの標識を示す。
【００５６】
３．リダイレクト
ウェッブ・ページは、そのページが最初に置かれていた遠隔サーバから別の場所に転送されることがある。ＨＴＴＰ（ハイパーテキスト・トランスポート・プロトコル）では、そのような転送を「リダイレクト」と呼ぶことがある。ＨＴＭＬ文書が当初一方の遠隔サーバに記憶され、後で他方の遠隔サーバに転送される場合、最初の遠隔サーバはその文書の要求に応答して、文書が新しい遠隔サーバに転送されたという標識を示す。この標識には一般に、転送アドレス（「リダイレクト・アドレス」）が含まれ、それは一般にはＵＲＬである。
【００５７】
従来の技術では、ウェッブ・ページを要求するコンピュータはリダイレクトを受け取ると、リダイレクト・アドレスに新たな要求を出さなければならない。第２の要求を出して第２の応答を待たなければならないことによって時間が消費され、全体的な待ち時間が増す。したがって、本発明は文書データベース６１を使用して、各文書または各画像のリダイレクト・アドレスを記憶する。リダイレクトされた文書が要求されるといつでも、サーバ５は自動的にリダイレクト・アドレスにアクセスして文書を取り出す。その文書または画像はクライアント１からの１回の要求だけに基づいてクライアント１に送られる。リダイレクトされた文書または画像の場所の変化は、クライアント１にはまったく透過である。
【００５８】
図９に、新しい遠隔サーバに転送された可能性のある文書にサーバ５がアクセスするときに実行されるルーチンを示す。まず、サーバ５が、一般にはアドレスを含む文書の要求を受け取る（ステップ９０１）。次にサーバ５は文書データベース６１にアクセスし、要求文書のリダイレクト・アドレスがあるかどうか調べる（ステップ９０２）。リダイレクト・アドレスがない場合、サーバ５はクライアント１からの文書要求で提供されたアドレスに基づいて遠隔サーバ４にアクセスする（ステップ９０３）。遠隔サーバ４がサーバ５にリダイレクトで応答しないと仮定すると（ステップ９０４）、サーバ５によって文書が取り出されてクライアント１にダウンロードされる（ステップ９０７）。しかし、文書データベース６１にリダイレクト・アドレスが記憶されているとすれば（ステップ９０２）、サーバ５はそのリダイレクト・アドレスに従って要求文書にアクセスする（ステップ９０６）。または、遠隔サーバ４がリダイレクトで応答した場合（ステップ９０４）、サーバ５はそのリダイレクト・アドレスを文書データベース６１に記憶し（ステップ９０５）、そのリダイレクト・アドレスに従って要求文書にアクセスする（ステップ９０６）。
【００５９】
４．他の代理機能
文書データベース６１には、文書が取り出される各遠隔サーバ４のパフォーマンスに関する情報も記憶される。この情報には、遠隔サーバ４の待ち時間とスループットが含まれる。このような情報は、遠隔サーバ４の応答が遅かったという履歴を持っている場合に価値があることがある。たとえば、文書が要求されると、サーバ５はその知識を使用して、事前定義された信号をクライアント１に送ることができる。クライアント１はこの信号に応答して、遅延がある可能性が高いことをユーザに示し、ユーザにその要求を取り消す選択肢を与えることができる。
【００６０】
５．バックオフ・モード
サーバ５は通常、代理モードで動作するが、「バックオフ」モードになることもでき、このモードではサーバ５は代理として機能しないか、またはサーバ５は通常の代理機能の特定の態様だけを実行する。たとえば、代理キャッシュ６５が過負荷状態になった場合、サーバ５は、文書がキャッシュに入れられず、必要に応じてトランスコードされるバックオフ・モードになることができる。あるいは、サーバ５がネットワーク・トラフィックでひどく過負荷になっているとき、サーバ５はクライアント１に対して、所定の時間または後で通知があるまでサーバ５を迂回して遠隔サーバ４に直接連絡するように指示することができる。または、サーバ５は、限定された期間のあいだ特定のウェッブ・サイトについてのみ、クライアント１が遠隔サーバ４に直接連絡するように指示される、柔軟性のあるバックオフ・モードになることもできる。
【００６１】
Ｄ．ＷｅｂＴＶTMサービスへのアクセス
ＷｅｂＴＶＴＭサーバ５は、クライアント１に代理処理や電子メール（「ｅメール」）などの様々なサービスを提供する。図１０を参照しながら以下で述べるように、従来の技術では、クライアント・コンピュータがインターネット・サービスの様々なサービスにアクセスすることができるようにする際にある種の難点が伴う。
【００６２】
図１０に、従来の実施態様によるクライアント−サーバ・システムを示す。サーバ７６は、様々なサービスＡ、Ｂ、およびＣを提供する。サーバ７６は、サービスＡ、Ｂ、およびＣに対するユーザのアクセス特権に関する情報を記憶するためのデータベース７１を含んでいる。図１０の実施態様のクライアント７５は、サービスＡ、Ｂ、およびＣのいずれにでも、そのサービスに直接接触することによってアクセスすることができる。接触されたサービスは、クライアント７５のアクセス特権が記憶されているデータベース７１にアクセスして、クライアント７５にそのサービスへのアクセスを許可するかどうかを判断する。したがって、サーバ７６が提供する各サービスは、データベース７１に直接アクセスする必要がある。このアーキテクチャの結果、データベース７１に多数のアクセスが行われ、望ましくない。さらに、各サービスがデータベース７１に独立してアクセス権を持っていることにより、セキュリティの問題が生じる。具体的には、機密ユーザ情報を分離することが困難な可能性がある。本発明は、以下で述べる技法を使用してこのような難点を克服する。
【００６３】
１．特権と能力を含むチケット
図１１に示すように、サーバ５はいくつかのサービスＤ、Ｅ、およびＦと、ログイン・サービス７８を提供する。ログイン・サービスは、クライアント１による初期ログオン手続きを制御するために特に使用される。ログイン・サービス７８は、（図４Ｂに関して上述した）ユーザ・データベース６２への排他的アクセス権を持つ。ログイン・サービス７８とユーザ・データベース６２は、第１のセキュリティ・ゾーン８４内にある。サービスＤは、第２のセキュリティ・ゾーン８６内にあり、サービスＥとＦは第３のセキュリティ・ゾーン８８内に含まれる。サービスＤ、Ｅ、およびＦに対するセキュリティ・ゾーン８４、８６、および８８のこの特定の構成は、例示に過ぎないことに留意されたい。
【００６４】
本発明のユーザ・データベース６６には、クライアント１の各許可されたユーザに関する様々な情報が記憶される。この情報には、アカウント情報と、特定のユーザが使用することができるＷｅｂＴＶTMサービスのリストと、特定のユーザ選好が含まれる。たとえば、ある特定のユーザは、クライアント１を使用して成人向け主題内容のあるウェッブ・ページにアクセスしたくない場合がある。したがって、そのユーザは、そのような題材にアクセスしないように自分のアカウントをフィルタリングすることを要求する。この要求はユーザ・データの一部としてユーザ・データベース６２に記憶される。
【００６５】
ユーザ選好については、所与のユーザが選択したハイパーテキスト・リンクを追跡し、最大選択数を持つものをユーザ・データベース６２に記憶することができる。このリストをクライアント１に送り、ユーザの好みのウェッブ・サイトのメニュー画面を生成するために使用して、ユーザがそれらのウェッブ・サイトに直接アクセスすることができるようにすることができる。このリストは、サーバ５がユーザの関心を分析し、ユーザが関心を持ちそうな新しいウェッブ・サイトのリストを作成してユーザに提供するためにも使用することができる。このリストは、ユーザが選択したウェッブ・ページ内の、他のウェッブ・ページに関連づけられたキーワードによって作成することができる。
【００６６】
もう一度図１１を参照すると、クライアント１からのログオン要求に応答して、ログイン・サービス７８は、ユーザ・データベース６２を調べ、その特定のクライアント１によるサーバ５へのアクセスが許可されているかどうかを判断する。アクセスが許可されていると仮定すると、ログイン・サービス７８はユーザ・データベース６２からその特定のクライアント１に関する特定のユーザ情報を取り出す。次に、ログイン・サービスは、取り出された情報を含む情報パケットである「チケット」８２を生成する。このチケット８２はアクセスを要求したクライアント１に送られる。
【００６７】
チケット８２には、サーバ５が提供するすべてのサービスに対する特定のユーザのアクセス特権を記述するのに必要なすべての情報が含まれている。たとえば、チケットには、クライアント１に登録されているユーザ名、クライアント１に割り当てられたｅメール・アドレス、ウェッブ・サイトの表示に関してユーザから要求されたフィルタリングなどを含めることができる。ユーザがサービスＤ、Ｅ、またはＦのうちの１つへのアクセスを要求するたびに、クライアント１はそのサービスにチケット８２のコピーを渡す。要求されたサービスは、チケット８２のコピーからそのクライアント１によるそのサービスへのアクセスが許可されているかどうかを判断し、許可されている場合にはそのようなアクセスに関する重要な情報がないか判断する。
【００６８】
ログイン・サービス７８以外は、サーバ５が提供するサービスのいずれもユーザ・データベース６２にアクセスすることができない。したがって、ユーザ・データベース６２内およびログイン・サービス７８内でセキュリティ上注意の必要な情報を分離することができる。このような分離によって、セキュリティ・ゾーン８４、８６、および８８で図示するように、サーバ５が提供する個々のサービスを別々の「ファイヤウォール」（セキュリティ領域）内に入れることができる。さらに、この技法によって、一般には、図１０の従来の技術の実施形態と比較してユーザ・データベース６２への必要アクセス数が減少する。
【００６９】
２．サービスの冗長性と負荷分散
本発明は、サーバ５が提供する様々なサービスに、ある種の冗長機構も備える。具体的には、所与のサービス（たとえばｅメール）を複数の物理装置または論理装置によって提供することができる。そのような装置のそれぞれはそのサービスの「提供者」とみなされる。所与の提供者が過負荷になった場合、またはクライアント１がその提供者に接触することができない場合、クライアント１はそのサービスの他の提供者のいずれかに接触することができる。サーバ５がクライアント１からログイン要求を受け取ると、ログイン・サービス７８は前述のチケット８２を生成するほかに、利用可能なＷｅｂＴＶTMサービスのリストを動的に生成し、そのリストをクライアント１に送る。
【００７０】
サーバ５は、任意のクライアント１によって使用されるサービスのリストを更新し、利用不能になるサービスやオンラインで利用可能になるサービスを反映させることができる。また、各クライアント１に提供されるリストは、サーバ５のトラフィックを最適化するために、サーバ５がサーバ５の負荷の変化に基づいて更新することができる。さらに、クライアントのサービス・リストをログイン・サービス７８以外のサービスが更新し、それによって１つのサービスがクライアント１に別のサービスを効果的に紹介することができる。たとえば、ｅメール・サービスはクライアント１にそのアドレス帳サービスの名前とポート番号とＩＰを提供することができる。したがって、１つのサービスが同じ信頼の連鎖内で効果的かつ安全に別のサービスをクライアント１に紹介することができる。
【００７１】
このサービス・リストには、各サービスの名前と、各サービスの提供者のポート番号と、各サービスのＩＰ（インターネット・プロトコル）が含まれる。同じサービスの異なる提供者が同じ名前で指定されるが、ポート番号またはＩＰあるいはその両方は異なる。ＨＴＴＰプロトコルでの「ＨＴＴＰ：／／ｗｗｗ．．．」のように、標準ＵＲＬではプロトコルが通常ＵＲＬの先頭に指定されることに留意されたい。しかし、本発明によると、各サービスのポート番号とＩＰがクライアント１にわかっているため、ＵＲＬ内の通常のプロトコル指定（すなわちＨＴＴＰ）がサービスの名前で置き換えられる。したがって、クライアント１は同じＵＲＬを使用して所与のサービスの冗長提供者のいずれにもアクセスすることができる。この手続きによって、ＷｅｂＴＶTMサービスに対して行われるすべてのアクセスに間接性のレベルが追加され、代理サービスに冗長性が自動的に追加される。また、別々のサービス名によって同じサービスを指すこともできることにも留意されたい。
【００７２】
たとえば、ＷｅｂＴＶTMシステムが提供するｅメール・サービスが「ＷＴＶ−ｍａｉｌｔｏ」というサービス名で指定されるものとする。クライアント１は、このｅメール・サービスのどの提供者にも同じＵＲＬを使用してアクセスすることができる。クライアント１は、提供者を区別するために適切なポートとＩＰ番号を選択するだけで済む。クライアント１がｅメール提供者に接続することができない場合は、、そのリスト内の次の提供者に接触するだけでよい。
【００７３】
したがって、図１２に示すように、ログイン時に、クライアント１には特権と能力を含むチケットとサービス提供者のリストの両方が提供される。まず、ログイン・サービス７８が、クライアント１のユーザが正当なユーザかどうかを判断する（ステップ１２０１）。正当なユーザでない場合、ログインは拒否される（ステップ１２０５）。ユーザが正当なユーザの場合、ログイン・サービス７８はユーザ・データベース６２からユーザ情報を収集し、チケット８２を生成する（ステップ１２０２）。ログイン・サービス７８は、前述のサービス・リストも収集する（ステップ１２０３）。次に、チケット８２とサービス・リストがクライアント１にダウンロードされる（ステップ１２０４）。
【００７４】
３．サーバからクライアントへの非同期通知
従来技術のインターネット・サーバに付随するもう１つの制約は、クライアントからそうするように要求がなければクライアントに非同期的通知情報を提供することができないことである。たとえば、特定のウェッブ・ページが変更された場合や、特定のサービスがアクセス不能になったことを、サーバがクライアントに自発的に通知することが望ましい。本発明のサーバ５はそのような機能を備え、クライアント１はそのような通知の受信とデコードを行うように構成される。たとえば、クライアント１は前述のように様々な時点でサーバ５からクライアント１のサービス提供者のリストの更新を受け取ることができる。同様に、特定のサービス提供者が利用不能になった場合、そのことが自動的にクライアント１に伝えられる。他の例としては、サーバ５がそのユーザ宛のｅメールを受け取った場合、サーバ５はクライアント１にそのことを示すメッセージを送信する。そうするとクライアント１は、テレビジョン・セット１２に表示されたメッセージまたはＷｅｂＴＶTMボックス１０の筐体に組み込まれたＬＥＤ（発光ダイオード）によって、ユーザにｅメールが待機していることを通知する。
【００７５】
以上、ネットワークにおいて文書の代理処理とトランスコードを行う方法および装置について説明した。本発明について特定の実施形態を参照しながら説明したが、特許請求の範囲に記載の本発明のより広い精神および範囲から逸脱することなく、これらの実施形態に様々な修正および変更を加えることができることは明らかであろう。したがって、本明細書および図面は、限定的なものではなく例示的なものとみなされるべきである。
【図面の簡単な説明】
【図１】ネットワーク内の代理サーバに接続されたいくつかのクライアントを示す図である。
【図２】本発明によるクライアントを示す図である。
【図３】本発明によるサーバを示すブロック図である。
【図４】代理キャッシュおよびトランスコーダを備えるサーバを示す図（Ａ）と、本発明によるサーバで使用するデータベースを示す図（Ｂ）である。
【図５】永続データベースに記憶されたデータを使用して遠隔サーバから取り出された文書をトランスコードするルーチンを示す流れ図である。
【図６】バグまたは望ましくない特徴を除去するためにＨＴＭＬ文書をトランスコードするルーチンを示す流れ図である。
【図７】画像を参照する文書をクライアントにダウンロードするときの待ち時間を短縮するルーチンを示す流れ図である。
【図８】永続データベースに記憶されたデータを使用して代理キャッシュに格納された文書を更新するルーチンを示す流れ図である。
【図９】別の遠隔サーバから文書を取り出すためにサーバが使用するルーチンを示す流れ図である。
【図１０】様々なサービスとデータベースとの関係を示す従来技術のサーバ・システムのブロック図である。
【図１１】様々なサービスとユーザ・データベースとの関係を示す本発明によるサーバ・システムのブロック図である。
【図１２】サーバが提供する様々なサービスへのアクセスを調整するために、サーバが使用するルーチンを示す流れ図である。
【符号の説明】
１  クライアント
２  モデム・プール
３  ネットワーク基盤
４  遠隔サーバ
５  ＷｅｂＴＶTMサーバ
６  ビデオ・リンク
１０  ＷｅｂＴＶTMボックス
１２  テレビジョン・セット
２９  直通双方向データ接続
５０  中央演算処理装置
５１  ランダム・アクセス・メモリ
５２  読取り専用メモリ
５３  大容量記憶装置
５４  モデム
５５  ネットワーク・インタフェース・カード
５６  入出力装置
６１  文書データベース
６２  ユーザ・データベース
６５  代理キャッシュ
６６  文書トランスコーダ
【図１】
0004584365.tif 000002
【図２】
0004584365.tif 000003
【図３】
0004584365.tif 000004
【図４】
0004584365.tif 000005
【図５】
0004584365.tif 000006
【図６】
0004584365.tif 000007
【図７】
0004584365.tif 000008
【図８】
0004584365.tif 000009
【図９】
0004584365.tif 000010
【図１０】
0004584365.tif 000011
【図１１】
0004584365.tif 000012
【図１２】
0004584365.tif 000013