JP2006318499A - サーバとクライアントノードとの間の接続を管理するシステムおよび方法 - Google Patents

サーバとクライアントノードとの間の接続を管理するシステムおよび方法 Download PDF

Info

Publication number
JP2006318499A
JP2006318499A JP2006189774A JP2006189774A JP2006318499A JP 2006318499 A JP2006318499 A JP 2006318499A JP 2006189774 A JP2006189774 A JP 2006189774A JP 2006189774 A JP2006189774 A JP 2006189774A JP 2006318499 A JP2006318499 A JP 2006318499A
Authority
JP
Japan
Prior art keywords
application
server
client
window
node
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
JP2006189774A
Other languages
English (en)
Inventor
Bradley J Pedersen
ジェイ. ペダーセン ブラッドリー
Marc A Bloomfield
エイ. ブルームフィールド マーク
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Citrix Systems Inc
Original Assignee
Citrix Systems Inc
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
Priority claimed from US08/855,965 external-priority patent/US6157944A/en
Priority claimed from US08/855,902 external-priority patent/US5961586A/en
Priority claimed from US08/855,977 external-priority patent/US6370552B1/en
Priority claimed from US08/856,051 external-priority patent/US5941949A/en
Application filed by Citrix Systems Inc filed Critical Citrix Systems Inc
Publication of JP2006318499A publication Critical patent/JP2006318499A/ja
Pending legal-status Critical Current

Links

Images

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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/165Combined use of TCP and UDP protocols; selection criteria therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/549Remote execution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/663Transport layer addresses, e.g. aspects of transmission control protocol [TCP] or user datagram protocol [UDP] ports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Abstract

【課題】クライアントサーバ環境において翻訳言語で書き込まれたアプリケーションの遠隔実行。
【解決手段】サーバクライアントシステムのサーバにおいて通信制御を提供する接続マネジャーは、指定されたサーバポートとの基礎的な接続をクライアントノードが確立することを可能にし、その後、サーバ上で実行するアプリケーションに特定の通信ポートへの接続に移行する。特定の通信ポートは、その後、クライアントノードによって要求されたプロトコルドライバを伴う通信マネジャにより構成される。アプリケーションはHTMLページに表示され得る。一実施形態では、サーバノード上で実行するアプリケーションから少なくとも二つのクライアントノードに、同一のデータが実質的同時的に伝送され得る。クライアント−サーバシステム上のサーバノードは、関連するクライアントノードの代わりに、解釈型言語で記述されたアプリケーションをダウンロードし実行し得る。
【選択図】図2

Description

発明の分野
本発明は、分散クライアントサーバ環境におけるアプリケーションの実行に関し、詳細には、クライアントサーバ環境において翻訳言語で書き込まれたアプリケーションの遠隔実行に関する。
発明の背景
クライアントサーバコンピュータネットワークは、通常、クライアントおよびサーバが、ある1組の予め確立されてたルールに従って通信を確立することを要求する。これらのルールは、通信プロトコルと呼ばれる。このようなプロトコルは、全てのクライアントノードがサーバノードとして同じ通信プロトコルを用いるように予め定義され得る。あるいは、サーバは各クライアントによって用いられる通信プロトコルの記録を維持し得、そして、サーバ上のアプリケーションと通信する要求をクライアントが送信する場合には、プロトコルを用いてクライアントと通信し得る。
このような通信方法に関わる問題は、要求されている全ての機能性を必要としないアプリケーションにとって、プロトコルの定義が堅すぎ得るか、または、クライアントがサーバと通信できるようになるよりも前に、クライアントプロトコルがサーバに認知される必要があるかのいずれかの点にある。本発明は、予め定義されたプロトコルの堅さおよびサーバ側に予め接触して知らせる必要性の両方を除去することを目的とする。
シャドウイング(あるクライアントノードに向けられたデータを実質的に同時に第2のクライアントノードに伝送すること)およびブロードキャスティング(同じデータを2以上のクライアントノードに実質的に同時に伝送すること)は、通常、サーバノード上の特別伝送アプリケーションおよび各クライアントノード上の特別受信アプリケーションを用いて行われてきた。シャドウイングは、データ整合性(data integrity)およびシステム
セキュリティのために、データトラフィックを監視し、かつ、伝送されている情報の余分なコピーを生成するのに有用である。このような情報が「リアルタイム」である場合、または、情報がそれ自体のはじめ(beginning)およびおわり(ending)を有さない場合には、
ブロードキャスティングは、多くのユーザに同じ情報を提供するのに有用である。例えば、株価相場プログラム(stockprice quotation program)は、所定の為替に基づくさまざまなストックの現在価格を単に伝送し、一旦株式の相場表(list)が検討され尽くすと、相場表は最新の価格で更新される。従って、相場プログラムに相場表を始める場所を指定することは、ユーザには無関係である。
このようなプログラムは、通常、ブロードキャストプログラムで書かれ、そして、伝送されたデータを受け取るために専用受信プログラムを要求する。アプリケーションがブロードキャストプログラムとして書かれなかった場合、このようなアプリケーションによって伝送されたデータは、通常、複数のクライアントノードにブロードキャストすることができない。
本発明は、ブロードキャスト機能のために書かれていないプログラムを、ネットワーク上でデータをブロードキャストするために使用できるようにすることによって、この問題を克服することを目的とする。
専用クライアントサーバネットワークとして、この数年間に爆発的成長を遂げた、「インターネット」として一般に公知のコンピュータのワールドワイドネットワークが挙げられる。この成長のほとんどが、ワールドワイドウェブ(WWW)の人気の増加によるものであ
る。WWWは、一般に「ウェブページ」と呼ばれるハイパーテキストマークアップ言語(HTML)を用いて書き込まれたファイルの集合体である。HTMLファイルは、「ウェブ」ブラウザ
として公知の専用アプリケーションを用いてアクセスおよびディスプレイされ得る。ウェブブラウザにより、ユーザは、単純なグラフィカルユーザインターフェース(GUI)を用い
て、HTMLファイルにアクセスすることができる。
HTMLファイルをホスト(host)するサーバは、ハイパーテキスト転送プロトコル(HTTP)を用いて通信を行うことができる。HTTPは、HTMLページ記述言語を用いた、(テキスト、グラフィックス、画像、音、映像等の異なるフォーマットであり得る)ファイルへのアクセスをユーザに提供するアプリケーションプロトコルである。HTMLはベーシックドキュメントフォーマッティングを提供し、それにより、デベロッパーは他のサーバおよびファイルへの通信「リンク」を特定することができる。HTML対応クライアントブラウザの使用は、ユニフォームリソースロケーターまたは「URL」によってリンクを特定することを含む。この特定に基づいて、クライアントは、リンク内に識別されたサーバに対してTCP/IP要求を行い、代わりに「ウェブページ」を受け取る。さらに、機構(organization)が、機構内からアクセス可能であるがWWWからはアクセスできないHTMLファイルを提供し得る。こ
れらの内部ネットワークおよびHTMLファイルの集合体は、一般に「イントラネット」と呼ばれる。
HTMLを用いて書かれたファイルは「タグ」を含む。タグは、特別なアクションをとる必要のある場合に、ファイルを表示しているブラウザにそのことを示し得る。例えば、タグはブラウザに対して、(1)グラフィクスファイルがドキュメント内の特定の点にディスプレイされる必要があること、(2)所定のテキストが、センタリングされる、ボールドされる、あるいはフォーマッティングが行われる必要があること、(3)ドキュメントのバックグラウンドに陰をつけるかまたは特定のパターンが付される必要があること、または、(4)異なるHTMLが、ブラウザが現在ディスプレイしているHTMLに代わってロードされる必要があることを示し得る。
ワールドワイドウェブおよび他のHTMLアプリケーションの人気が、幅広い産業に亘る広範囲の企業から、マーケティングおよびセールスの努力を引き出してきた。他企業との差別化が次第に困難になるにつれ、多くの企業が、HTMLに固有の静的な性質を克服する試みを行ってきた。また、情報を共有する方法としてHTMLファイルを用いる機構は、イントラネットを、さまざまなユーザに情報以上のものへのアクセスを提供する便利な方法であると認識してきた。
しかし、HTMLファイルの主要な欠点は、それらが本質的に静的であるという点にある。つまり、HTMLは「ディスプレイ専用」言語であって、HTMLページ内でアプリケーションを実行することは容易でない。WWWの人気および遍在性にテコ入れをする企業は、HTMLファ
イル内にアプリケーションを組み込む方法を捜すようになってきている。
ActiveXTMオブジェクトは、実行中のアプリケーションを表示する能力を有するHTMLフ
ァイルを提供する試みの1つである。ActiveXTMオブジェクトは、ActiveXTMインターフェースを有するブラウザで使用し得るデータオブジェクトである。これらのオブジェクトの明らかな欠点は、ユーザのブラウザがActiveXTMインターフェースを持っていない場合に
実行中のアプリケーションを表示できないことにある。ほとんどのHTMLページの第1の目的は、可能な限り多くのユーザによって視聴されることであるので、このことがActiveXT
Mオブジェクトのユーティリティを制限する。
また、実行可能なコードをHTMLファイルに加えることを可能にする方法として、JAVA(登録商標)と呼ばれるプログラム言語が提案されてきた。JAVA(登録商標)は言語であるので、特定のブラウザインターフェースを要求せず、かつ、潜在的により広い視聴を有する。しかし、一般にアプレットと呼ばれるJAVA(登録商標)プログラムは、実行の前にクライアントにダウンロードされる。このことは、アプレットをダウンロードする十分なメモリのないクライアントにとって問題となり得、クライアントが十分なメモリを有する場合であっても、アプレットがダウンロードされるまでクライアントを待たせる。さらに、JAVA(登録商標)それ自体はプログラム言語であるので、既存のアプリケーションは、ウェブページに組み込まれる前に、JAVA(登録商標)言語で書き換えられる必要がある。
発明の要旨
ある局面において、本発明は、クライアントノードとサーバノード上で実行されるアプリケーションプログラムとの間の通信を管理する通信システムおよび通信方法に関する。
上記局面の一つの実施形態において、本発明の方法は、クライアントノードとサーバノード上に配置された一般通信ポートとの間の接続を確立するステップを含む。上記方法は、エンドポイントデータ構造を形成するステップと、クライアント空間をエンドポイントデータ構造と関連付けるステップと、アプリケーションプログラムに関連する特定の通信ポートに関するプロトコルスタックを形成するステップとをさらに含む。接続を接続マネジャーに通知を行い、そして、接続は一般通信ポートから特定の通信ポートのプロトコルスタックへと伝送される。
上記局面の別の実施形態において、接続を確立するステップは、マスターネットワーク情報ノードによってアプリケーション要求をクライアントノードから受け取るステップと、マスターネットワーク情報ノードによってクライアントノードに要求されたアプリケーションを有するサーバのサーバアドレスを提供するステップと、サーバによってクライアントノードからの要求を受け取って、提供されたアドレスに基づいて一般通信ポートへと接続するステップと、クライアントノードと一般通信ポートとの間の接続を確立するステップとを含む。
上記局面のさらなる実施形態において、通信システムはサーバノードおよびクライアントノードを含む。サーバノードは一般通信ポートを有する。クライアントノードは、クライアントノードとサーバノードの一般通信ポートとの間の接続を確立する通信デバイスを有する。サーバノードはまた、エンドポイントデータ構造を含むプロトコルスタックおよびメモリ内に配置されたクライアント空間を含む。クライアント空間は、プロトコルスタックに関連する。通信マネジャーおよび通知デバイスは、サーバノード上に配置される。通知デバイスは、クライアントノードと一般通信ポートとの間の接続を接続マネジャーに通知を行い、それに応答して、通信マネジャーは一般通信ポートとクライアントノードとの間の接続をプロトコルスタックに伝送する。一つの実施形態において、システムは、複数のプロトコルスタックのうちの、各プロトコルスタックと通信するマルチプレクサをさらに含む。
上記局面のさらに別の実施形態において、本発明は、コンピュータ読み出し可能プログラム手段を有する、該手段に設けられたクライアントノードと通信するための製品に関する。上記製品は、予め決定されたポートを介してクライアントノードとの接続を確立するためのコンピュータ読み出し可能プログラム手段と、エンドポイントデータ構造を形成するためのコンピュータ読み出し可能プログラム手段と、メモリ空間をエンドポイントデー
タ構造と関連付けるためのコンピュータ読み出し可能プログラム手段と、メモリ空間および関連するエンドポイントデータ構造でプロトコルスタックを形成するためのコンピュータ読み出し可能プログラム手段と、予め決められたポートとクライアントノードとの間の接続を接続マネジャーに通知を行うためのコンピュータ読み出し可能プログラム手段と、予め決められたポートとクライアントノードとの間の接続を関連するプロトコルスタックに伝送するためのコンピュータ読み出し可能プログラム手段とを含む。
別の局面において、本発明は、アプリケーションを特別な言語で書き直すことを要求せず、かつ、視聴ユーザのブラウザに専用インターフェースをサポートさせる要求をせずに、実行中のアプリケーションを表示されたHTMLファイル内に表示する方法に関する。アプリケーションはサーバ上で実行され、ダウンロード時間およびクライアント側のメモリ制限を緩和する。さらに、クライアントは、複数のページについて複数のアプリケーションの実行を呼び出し、アプリケーションを終了することなくHTMLドキュメント間を移動する。
上記局面の別の実施形態において、実行中のアプリケーションをHTMLページに表示する方法は、ユーザがアプリケーションプログラムの実行を望んでいる旨の信号を送るユーザからの入力を受け取ることによって開始される。アプリケーションが実行されるウィンドウのパラメータが決定され、そして、HTMLページ内のアプリケーションウィンドウへの通信チャネルが形成される。サーバ上で実行中のアプリケーションプログラムの出力は、通信チャネルを介してアプリケーションウィンドウ内に表示される。
上記局面のさらに別の実施形態において、HTMLページ内に実行中のアプリケーションを表示する装置は、パラメータハンドラーおよびネットワークエグゼクティブを含む。パラメータハンドラーは、HTMLファイル内に含まれるアプリケーション実行ウィンドウに関連するパラメータを受け取る。パラメータハンドラーは、パラメータハンドラーからのパラメータを受け取り、アプリケーションプログラムのサーバ上での実行を開始し、そして、パラメータハンドラーからのネットワークエグゼクティブによって受け取られたパラメータに基づいて、アプリケーション実行ウィンドウ内で実行中のアプリケーションの出力を表示する。
上記局面のさらなる実施形態において、製品は、実行中のアプリケーションをアプリケーション上に設けられたHTMLページ内に表示するためのコンピュータ読み出し可能コード手段を有する。製品は、サーバ上のアプリケーションプログラムの実行を開始する必要がある旨の信号を送るクライアントからの入力を受け取るためのコンピュータ読み出し可能コード手段を含む。製品はまた、実行中のアプリケーションが表示されるウィンドウのパラメータを決定するためのコンピュータ読み出し可能コード手段を含む。決定されたパラメータを用いてHTMLページへの通信チャネルを形成するためのコンピュータ読み出し可能コード手段、および通信チャネルを介して、アプリケーションウィンドウ内のサーバ上で実行中のアプリケーションの出力を表示するためのコンピュータ読み出し可能コード手段がさらに含まれる。
上記局面のさらなる実施形態において、HTMLページ内にアプリケーションを組み込むシステムは、サーバと、ネットワークエグゼクティブと、パラメータハンドラーと、HTMLファイルとを含む。サーバは、アプリケーションプログラムを格納および実行する。ネットワークエグゼクティブは、特定のアプリケーションの実行を開始する必要があることを示すコマンドをサーバに送り、そして、ネットワークエグゼクティブは、サーバ上で実行中のアプリケーションから出力を受け取る。パラメータハンドラーはパラメータを受け取り、それらをネットワークエグゼクティブに渡す。HTMLファイルはアプリケーションウィンドウを含む。アプリケーションウィンドウはウィンドウパラメータをパラメータハンドラ
ーに渡し、ネットワークエグゼクティブからアプリケーションプログラム出力を受け取る。
本発明のさらなる局面は、同じデータを2以上のクライアントノードに実質的に同時に伝送するシステムおよび方法に関する。一つの実施形態において、本発明は、サーバノード上で実行中のアプリケーションから、一般化されたレシーバプログラムを実行する少なくとも2つのクライアントノードへと、同じデータを実質的に同時に伝送する方法に関する。上記方法は、第1のクライアントノードとサーバノード上の第1のクライアントプロトコルスタックとの間の接続を確立するステップと、サーバノード上で実行中のアプリケーションと第1のクライアントプロトコルスタックとの間の接続を確立するステップと、第1の最小通信プロトコルスタックを第1のクライアントプロトコルスタックと関連付けるステップと、サーバノード上で実行中のアプリケーションと第1の最小通信プロトコルスタックとの間の接続を確立するステップと、第2のクライアントノードとサーバノード上の第2のクライアントプロトコルスタックとの間の接続を確立するステップと、第2の最小通信プロトコルスタックを第2のクライアントプロトコルスタックと関連付けるステップと、第1の最小プロトコルスタックと第2の最小プロトコルスタックとの間に接続を提供するステップと、第2の最小プロトコルスタックと第2のクライアントプロトコルスタックとの間に接続を提供するステップと、アプリケーションプログラムから第1のクライアントプロトコルスタックおよび第1の最小プロトコルスタックへとデータを実質的に同時に伝送するステップとを含む。
本発明の上記局面の別の実施形態は、サーバおよび2以上のクライアントノードを含む通信システムに関する。一つの実施形態において、サーバノードは、アプリケーションプログラムと、アプリケーションプログラムと電気的に通信する第1のクライアントプロトコルスタックと、アプリケーションプログラムと電気的に通信する第1の最小プロトコルスタックと、第1の最小プロトコルスタックと電気的に通信する第2の最小プロトコルスタックと、第2の最小プロトコルスタックと電気的に通信する第2のクライアントプロトコルスタックとを含む。さらに、上記システムは、第1のクライアントプロトコルスタックと電気的に通信する第1のクライアントノードと、第2のクライアントプロトコルスタックと電気的に通信する第2のクライアントノードとを含む。アプリケーションプログラムからのデータは、クライアントプロトコルスタックおよび第1の最小プロトコルスタックに実質的に同時に伝送される。
さらなる局面において、本発明は、クライアントサーバ環境において、翻訳言語を遠隔的に実行する方法に関する。クライアントが結合されるサーバは、JAVA(登録商標)アプレット等の翻訳言語で書かれたアプリケーションをダウンロードし、そしてそれを実行する。サーバはクライアントからの入力を受け取り、そして、クライアントにスクリーンデータを提供する。このことにより、アプリケーションをホストおよび実行する計算リソースおよびメモリリソースの拡張をクライアントに要求しなくても、クライアントがあたかも従来の様態でアプリケーションを実行しているかのように見える。さらに、サーバは、クライアントよりも速くアプリケーションのダウンロードが実行可能であり得る。サーバはまた、クライアントノードから入力を受け取り、それにより、クライアントノードは、入力を制御して、そして、入力をダウンロードされたアプリケーションに提供することができる。
上記局面の一つの実施形態において、本発明は、クライアントノードによって行われた要求に応答してサーバノードにアプリケーションをダウンロードすることにより開始される翻訳言語で書かれたアプリケーションを遠隔的に実行する方法に関する。クライアントノードとサーバ上に配置された予め決められた通信ポートとの間に、接続が確立される。サーバは、エンドポイントデータ構造を形成し、サーバによってホストされたクライアン
ト空間をエンドポイントデータ構造と関連付ける。サーバは、クライアント空間に関連するプロトコルスタックおよび関連するエンドポイントデータ構造を生成し、接続を接続マネジャーに通知を行い、そして、予め決められた通信ポートとクライアントノードとの間の接続を関連するプロトコルスタックに伝送する。
上記局面の別の実施形態において、本発明は、翻訳言語で書かれたアプリケーションを遠隔的に実行するための、コンピュータ読み出し可能プログラム手段を備えた製品に関する。上記製品は、クライアントノードによって行われた要求に応答してアプリケーションをサーバノードにダウンロードするためのコンピュータ読み出し可能プログラム手段と、クライアントノードとサーバ上に配置された予め決められた通信ポートとの間に接続を確立するためのコンピュータ読み出し可能プログラム手段と、エンドポイントデータ構造を形成するためのコンピュータ読み出し可能プログラム手段と、サーバによってホストされたクライアント空間をエンドポイントデータ構造と関連付けるためのコンピュータ読み出し可能プログラム手段と、クライアント空間と関連するプロトコルスタックおよび関連するエンドポイントデータ構造を生成するためのコンピュータ読み出し可能プログラム手段と、接続を接続マネジャーに通知するためのコンピュータ読み出し可能プログラム手段と、予め決められた通信ポートとクライアントノードとの間の接続を関連するプロトコルスタックに伝送するためのコンピュータ読み出し可能プログラム手段とを含む。
上記局面のさらに別の実施形態において、本発明は、翻訳言語で書かれたアプリケーションを遠隔的に実行するためのシステムに関する。上記システムは、予め決められた通信ポートを有するサーバノード、およびクライアントノードとサーバノードの予め決められた通信ポートとの間の接続を確立する通信デバイスを有するクライアントノードを含む。プロトコルスタックはサーバノード上に配置され、プロトコルスタックはエンドポイントデータ構造を含む。サーバノード上のメモリ内のクライアント空間はプロトコルスタックに関連し、翻訳言語で書かれたアプリケーションのための実行環境を提供する。システムは、サーバノード上に配置された通信マネジャー、およびサーバノード上に配置された通知デバイスをさらに含む。通知デバイスは、クライアントノードと予め決められた通信ポートとの間の接続を接続マネジャーに通知を行い、通信マネジャーは、予め決められた通信ポートとクライアントノードとの間の接続をプロトコルスタックに伝送する。
発明の詳細な説明
まず図1を参照すると、簡単に概覧したところでは、通常のネットワーク20は、少なくとも1つのクライアントノード24、少なくとも1つのサーバノード34および34’、ならびにマスターネットワーク情報ノード40を含む。これらは、通信リンク44によって一体に結合されている。図1に示す実施形態は、通信リンク44をローカルエリアネットワークリングまたはLANリングとして示すが、いかなる通信トポロジーを使用してもよい。説明のために、サーバノード34が、クライアントノード24によって要求されたアプリケーション30を有するものとみなす。また、説明のために、マスターネットワーク情報ノード40を別個のサーバノードとみなすが、実際には、マスターネットワーク情報ノード40は、アプリケーション実行サーバノード34であり得る。所定のLAN上で、複数のノードがネットワーク情報ノードとして機能することが可能であり得るが、任意のある時間において、このようなノードのうちの1つのノードのみが、システム20のマスターネットワーク情報ノード40に指定され、そして、このノードに対してサーバ情報に関するクライアント要求が指示されることに留意されたい。
マスターネットワーク情報ノード40は、アプリケーション実行サーバノード34および34’に関するアドレスのテーブルを維持する。さらに、マスターネットワーク情報ノード40は、活動(activity)のレベルを示す、各アプリケーション実行サーバノード34
および34’からのメッセージを受け取る。アプリケーション実行サーバノード34および34’の活動のレベルは、アプリケーション実行サーバノード34の各々のアドレスと共に、テーブル内に維持され、ロードレベリング(loadleveling)に関する通信システム44によって使用される。
クライアント24が、アプリケーション実行サーバノード34上でアプリケーションを実行させたい場合には、クライアントノード24は、既に通信プロトコルによって定義されている一般通信ポート、またはマスターネットワーク情報ノード40上の「周知の」通信ポートに要求を送る。一つの実施形態において、通信はデータグラムサービスによって行われる。マスターネットワーク情報ノード40は、サーバアドレスのテーブルにアクセスし、そして、アプリケーション実行サーバ、または、要求されたアプリケーションを有し、かつ、最低限のロード(the least load)を有するアプリケーションサーバ34のアドレスを含むメッセージを戻す。それに続く通信は、クライアントによって、サーバノード34上の「周知の」または予め定義された一般通信ポートに自動的にアドレスされる。一つの実施形態では、マスターネットワーク情報ノード40へのはじめの問合わせ(query)
を行うのに用いたプロトコルのタイプは、マスターネットワーク情報ノード40によってクライアントノード24に戻された情報のプロトコルを判定する。従って、TCP/IPデータグラムを用いて要求が行われた場合、マスターネットワーク情報ノード40は、サーバ34のTCP/IPアドレスをクライアントノード24に戻し、そして、クライアントノード24はその後、そのプロトコルを用いて、サーバノード34とのコンタクトを確立する。別の実施形態において、クライアント24によってアプリケーションアドレスを要求するデータグラムは、マスターネットワーク情報ノード40に要求を送るのに使用されたプロトコルとは異なるタイプのプロトコルについての要求を含む。例えば、クライアント24は、IPXプロトコルを用いてマスターネットワーク情報ノード40に要求を行い、かつ、TCP/IPプロトコルアドレスとしてアプリケーションサーバのアドレスを要求し得る。
クライアントノード24(実際にはクライアントノード24上のクライアントプロセス56)がサーバノード34および34’上のアプリケーションと通信したい場合、クライアントノード24は、ネットワーク要求を発行(issue)することにより、所望のアプリケ
ーションを有するサーバ34のロケーションを判定し始める。この要求は、ネットワーク上のある場所に存在するマスターネットワーク情報ノード40(ネットワークブラウザ40とも呼ぶ)によって受け取られる。この図1において、簡略化のために、ネットワークブラウザ40を、アプリケーションを有するサーバとは異なるサーバ40上に存在するものとして示すが、このことは一般的なケースでないかもしれない。
ネットワークマスター情報ノード40は、所望のアプリケーション30を有するサーバノード34のネットワークアドレスをクライアントノード24に戻す。次に、クライアントノード24は、ネットワークマスター情報ノード40から受け取った情報を用いて、特定のサーバ34上で実行中のアプリケーションへの接続を要求する。上述のように、このような接続は、まず「周知の」通信ポートに対して確立され、そしてその後、接続マネジャーの制御下で特定の通信ポートへと転送される。特定の通信ポートは、特定の通信ポートを介してクライアントノード24と通信するサーバノード34上で実行中のアプリケーションに関連する。
より詳細には、図2を参照すると、クライアントノード24上のクライアントプロセス56がネットワークマスター情報ノード40に対して要求54を行って、所望のアプリケーション62を含むサーバノード34のアドレスを得る。ネットワークマスター情報ノード40は、クライアントノード24にサーバアプリケーション62を含むサーバノード34のアドレスを含むメッセージ58を戻す。一つの実施形態において、接続のこの点において使用されるプロトコルは、データグラムサービスである。
クライアントノード24は、戻されたアドレスを用いてサーバ34との通信チャネル68を確立する。クライアント24によって使用されるポート番号は、ネットワークプロトコルによりサーバ34がクライアント24との通信接続を確立するのに用いたポートとして定義されたサーバ34内の「周知のポート」に対応する。周知のポート72は、エンドポイントデータ構造78を主に含む基礎(rudimentary)プロトコルスタック76を有する
エンドポイントデータ構造78が、通信プロトコルスタック76およびクライアント接続を指すことにより、クライアント24についての独自の表示または「ハンドル」が確立される。エンドポイントデータ構造78は、サーバ34とクライアント24との間の接続が、サーバ34上の接続マネジャー80とさまざまなアプリケーション62との間を自由に移動することを認める。一つの実施形態において、エンドポイントデータ構造78は、クライアント24へのハンドルを含むだけではなく、クライアント接続に関連する他の情報を含み得る。図示の実施形態によると、アプリケーションサーバ34は、特定の通信システム(例えば、LANまたはWAN)上での活動を監視し、この最小プロトコルスタック76を、「TTY」通信モードをサポートするのに必要なプロトコルモジュールのみで初期化し
てしまう。「TTY」通信モードは、トランスポート層よりも上にプロトコルアサンプショ
ンを有さないシンプルASCIIストリームである。つまり、伝送されたデータの圧縮、暗号
化、信頼度(reliability)、フレーミング、またはプレゼンテーションのためのプロトコ
ル層は存在しない。従ってサーバ34上で実行されるアプリケーション62を捜す(seek)クライアントノード24は、TTY通信モードのサポートに必要な最小のプロトコルセット
で、周知の通信ポート72への接続を確立する。
サーバノード34上で実行される接続マネジャー80は、接続要求68に関する、周知の通信ポートを「聞く(listening)」。接続要求68がクライアントノード24から受け
取られた場合、接続マネジャー80は通知を受ける(notified)84。接続マネジャー80は、通知84に基づいてどのプロトコルが使用されているかを知る。
この情報を基に、接続マネジャー80は新たな最小プロトコル通信スタック104を生成し、実行環境96を開始し、そして、新たな最小プロトコルスタック104を実行環境96に結合する。一つの実施形態において、サーバ34は、既に開始しているが、通信ポートと関係していない複数の実行環境を含む。この実施形態において、実行環境のプレ接続(pre-connection)開始により、接続要求がクライアント24から受け取られる時点で各実行環境96が開始される場合よりも、より速い応答時間が実現される。実行環境96が開始される場合、クライアント24によって要求されたサーバアプリケーション62も開始される。別の実施形態において、クライアント24がアプリケーションを特定しない場合、デフォルトアプリケーションが開始されるか、または、単に、アプリケーションを有さない実行環境96が開始される。
次に、接続マネジャー80は、独自のクライアント識別子またはハンドルを有するクライアント接続を、周知のポート76から新たな最小プロトコルスタック104へと移動する。接続マネジャー80は、最小プロトコルスタックを用いて、サービスが利用可能であることを示すTTYデータストリームを送る。従って、クライアント接続を検出するこの方
法は、接続がはじめに確立されるポートから独立している。クライアントノード24がサービス利用可能メッセージに対して予め決められた期間(例えば5秒)内に応答しない場合、「サービス利用可能」メッセージの再送信がサーバ34によって実行される。
クライアント24がメッセージを受け取る場合、クライアント24は、「サービス利用可能」メッセージが検出されたことを示すTTYストリングを送る。クライアント24はサ
ーバ34が応答するのを待ち、そして、応答が予め決められた期間(例えば5秒)内に行われない場合には、クライアント24はメッセージを再送信する。次に、接続マネジャー80は、クライアントのデフォルト通信パラメータを請求するクライアント24に対して問合わせ90を行う。この問合わせ90は、クライアント24に戻されるメッセージであって、クライアント24が接続内でクライアント24がどのプロトコルを使用したいかに関して詳細に応答する必要があることを示すメッセージの形態をとる。
応答として、クライアント24は1組のプロトコルパケット92を送る。各パケットを用いて、サーバ34から要求されている必要なまたは追加的なプロトコルモジュールが特定される。一つの実施形態において、1組内のパケットの数は、各プロトコル要求毎に送られる1つのパケットにより可変である。別の実施形態において、送られるパケットの数は、第1のパケットのヘッダ内に含まれる。第3の実施形態において、送られるパケットの残りの数は各パケットのヘッダ内に含まれ、次のパケットが送られる度にデクリメントされる。従って、クライアント24は、例えば、暗号化およびデータ圧縮が用いられることを示すことによって問合わせ90に応答し得る。このような場合、クライアント24からサーバ34へと2つのプロトコルパケットが送られ、そして、一つの実施形態において、第1のパケットのヘッダはパケットの数を2と示す。
問合わせ90への応答が一旦受け取られると、接続マネジャー80が、クライアントノード24によって要求されたプロトコルに対応するプロトコルドライバ120、120’、120’’を用いてプロトコルスタックを構築する。一つの実施形態において、接続マネジャー80は、要求されたプロトコルドライバ120、120’、120’’の各々を配置して、要求されたクライアントプロトコル(例えば、暗号化が求められる場合には、暗号化ドライバ)をプロトコルスタック「コンテナ」112に対応付けて、それらを一体にリンクさせる。このダイナミックプロセスにより、クライアントノード24が、特定のクライアントノード24に関してサーバ34が優先度の高いプロトコルスタックデスクリプションを有する必要なく、プロトコルスタックのコンテンツを動的に特定することができる。この方法を用いると、個々のクライアント24が関連する通信チャネルについての大きく異なる要件を有する場合であっても、複数のクライアント24が1つのサーバによって執行(serve)され得る。図示の実施形態において、各クライアント24、24’、2
4’’は各通信プロトコルスタック104、104’、104’’に関連する。このようなダイナミックに拡張可能なプロトコルスタックを以下により詳細に説明するが、これは1995年10月11日に出願された米国特許出願番号第08/540,891号に記載されており、本明細書中で参考として援用する。
説明したばかりの実施形態において、「コンテナ」112は、NTTMデバイスドライバ等のユーザレベルまたはケネルレベルデバイスドライバである。このコンテナドライバは、クライアントノード24のプロトコル要件に対応する内部プロトコルモジュールまたは「ドライバ」(通常120)に補助サポート(ancillarysupport)を提供する。この補助サポートは、例えば、あるプロトコルドライバを助けてデータを次のドライバに転送するヘルパールーチンの形態である。あるいは、別の実施形態において、各プロトコルドライバは、それ自体に含まれる完全なユーザレベルまたはカーネルレベル(kernel-level)のドライバである。
ここで図3に図示した実施形態を参照すると、通信マネジャー60は2つのソフトウェアモジュールICASRV.EXE90およびICAAPI.DLL94を含む。図示の実施形態において、ICASRV.EXE90はクライアント/サーバインターフェースのサーバ側である。ICASRV.EXE90は全ての通信状態を管理し、一つの実施形態においては、WINDOWS NT(登録商標)サービスとして設けられている。接続マネジャー60の第2の部分はICAAPI.DLL94である。ICAAPI.DLL94は、クライアントとの接続を確立し、使用されるプロトコルを確立し、そ
して、ICASRV.EXE90にプロトコルスタックの完了を通知する。一つの実施形態において、第3のモジュールCDMODEM.DLL96はICAAPI.DLL94’にリンクされる。CDMODEM.DLL96は、モデムデバイスと通信するのにICAAPI.DLL94’が用いるモジュールである。
ウェブブラウザプログラムを実行するクライアント24について、上記の接続方法を使用し得る。本明細書のために、ウェブブラウザプログラムを実行するユーザを「視聴ユーザ」と呼ぶ。実行され得るHTMLファイルまたはアプリケーションをホストするマシンを呼ぶのに、「サーバ」または「サーバノード」という用語を用いる。例えば、視聴ユーザはクライアントノード上でウェブブラウザを実行し、HTTPプロトコルを介してサーバへのファイル要求を行う。サーバは、HTTPプロトコルを介してファイルデータをクライアントに伝送することにより応答する。クライアント上で実行されるウェブブラウザは、伝送されたデータを受け取り、そして、データをHTMLページとして視聴ユーザに対して表示する。
図4を概覧かつ参照すると、サーバ34’上に配置され、かつ、本発明の実施形態に従って構築されたHTMLファイル64は、包括組み込みウィンドウタグ(generic embedded window tag)66を含む。包括組み込みウィンドウタグ66は、包括組み込みウィンドウ6
6’がHTMLファイル64によって記述されたHTMLページ64’内の特定のロケーションに示す必要があることをHTMLファイル64を表示するブラウザ60に対して示す、任意のデータ構築物である。包括組み込みウィンドウタグ66は、ウィンドウの高さ、ウィンドウの幅、ウィンドウのボーダースタイル(borderstyle)、ウィンドウ内の背景色またはパタ
ーン、どのアプリケーションをウィンドウ内に表示し得るか、もしくは、出力表示を更新せねばならない頻度等のさらなる情報、もしくは、アプリケーション出力の表示を向上するのに有用な他のさらなる情報を含み得る。
HTMLファイル内に組み込み得る包括組み込みウィンドウタグの例を、以下にいくつか挙げる。
Figure 2006318499
上記の各場合において、タグは、アプリケーション出力を受け取るために295画素の高
さおよび436画素の幅を有するウィンドウを描く必要があることを示す。各タグはまた、
アプリケーションが自動的に実行を開始すること、かつ、アプリケーション出力が表示されるウィンドウが境界線で描かれることを特定する。ActiveXTMタグおよびNetscapePluginTMタグは、ディレクトリ「/ica」内に配置されたファイル「direct,ica」内に特定され
た遠隔アプリケーションパラメータを有する。Java(登録商標)タグは、遠隔アプリケーションパラメータを直接特定する。上記実施例において、実行されるアプリケーションの名前と共に、アプリケーションをホストするサーバのアドレスが特定される。
ブラウザアプリケーション60は、特定のユニフォームリソースロケーター(URL)アドレスに要求を発行することにより、HTMLファイル64にアクセスする。HTMLファイル64をホストするサーバ34’は、HTMLファイル64データをブラウザアプリケーション60に伝送する。ブラウザアプリケーション60は、テキストを表示し、HTMLファイル64に含まれる任意のタグを変換する。ブラウザアプリケーション60は、HTMLファイル64データをHTMLページ64’として表示する。包括組み込みウィンドウタグ66は、上記タグの1つ等のHTMLファイル内に存在する場合、ブラウザ60は、表示されたHTMLページ64’内に空のウィンドウ66’を描く。
所望のアプリケーション62’の実行は、HTMLページ64’が表示されるとすぐに始まり得るか、または、実行は何らかの信号、例えばアプリケーション62’の実行を開始する必要があることを示す特定化されたユーザ入力、を待ち得る。アプリケーション62’の実行が一旦開始されると、ブラウザアプリケーション60は、アプリケーションウィンドウ66に関連するパラメータハンドラー40を例示(instantiate)する。パラメータハ
ンドラー40は、ブラウザアプリケーション60の子プロセスとして、ブラウザアプリケーション60の同等プロセス(peerprocess)として、または、ブラウザアプリケーション
60に関連する動的リンクトライブラリー(「DLL」)として生み出され得る。
ブラウザアプリケーション60は、包括組み込みウィンドウ66タグによって提供されたアプリケーションウィンドウ66’に関連する特定のパラメータを、パラメータハンドラー40の例に渡す。さらに、ブラウザアプリケーション60は、アプリケーションウィンドウ66’についてのハンドルをパラメータハンドラー40の例に渡し得るか、または、パラメータハンドラー40の例は、ブラウザアプリケーション60に問い合わせて、アプリケーションウィンドウ66’についてのハンドルを取り出し得る。パラメータハンドラー40の例は、ネットワークエグゼクティブ50も生み出し得る。ネットワークエグゼクティブ50は、パラメータハンドラー40の場合は子プロセス、または、パラメータハンドラー40の場合は同等プロセスとして生み出され得る。
パラメータハンドラー40の例は、ある特定のアプリケーションウィンドウ66’パラメータをネットワークエグゼクティブ50に転送する。パラメータハンドラー40の例によって特定されないパラメータ、または組み込み包括ウィンドウタグ66が、デフォルト値に設定され得る。ネットワークエグゼクティブ50は、所定のハードコード(hard-coded)されたパラメータデフォルトを有し得るか、もしくは、ネットワークエグゼクティブ50は、パラメータデフォルト値を含むファイルにアクセスし得る。
ネットワークエグゼクティブ50は、それ自身のアプリケーション出力ウィンドウ66’を形成する。ネットワークエグゼクティブ50は、そのアプリケーション出力ウィンドウ66’’を表示されたアプリケーションウィンドウ66’の子として形成し、そのアプリケーション出力ウィンドウ66’’を、ブラウザアプリケーション60によって描かれた親ウィンドウ66’上に直接表示する。ネットワークエグゼクティブ50によって描かれたアプリケーション出力ウィンドウ66’’は、ブラウザアプリケーション60によって描かれたアプリケーションウィンドウ66’の子であるので、アプリケーション出力ウィンドウ66’’は、位置情報を含むその親のさまざまな特性を引き継ぐ。従って、視聴ユーザがブラウザアプリケーション60のスクリーンをスクロールするか、または、アプリケーションウィンドウ66’の位置を変える他の活動を実行すると、アプリケーション出力ウィンドウ66’’は、アプリケーション出力ウィンドウ66’に続く。
ネットワークエグゼクティブ50はまた、サーバ60との通信チャネルを確立し、上記の接続方法を用いてサーバ34’’により所望のアプリケーション62’の実行を呼び出
す。上の説明においてクライアントとして活動するネットワークエグゼクティブ50は、それがパラメータハンドラー40の例から受け取った任意のパラメータを、任意の必要なデフォルト値と共にサーバに渡す。パラメータがサーバに渡されなかった場合には、サーバは、もしそれがデフォルト値、例えばユーザid.(user id.)を有さない必要なパラメー
タである場合には、パラメータを要求し得るか、もしくは、パラメータ、例えば実行優先度についてのデフォルト値を提供し得る。サーバ34’’は、所望のアプリケーションプログラム62’の実行を開始し、そして、出力をネットワークエグゼクティブ50に向ける。ネットワークエグゼクティブ50は、アプリケーションプログラム62’からのデータを受け取り、アプリケーション出力ウィンドウ66’’に出力データを表示する。アプリケーション出力ウィンドウ66’’は、ブラウザアプリケーション60によって描かれたアプリケーションウィンドウ66’の先端に描かれるので、アプリケーション出力データはHTMLページ64’内に表示される。上で述べたように、ネットワークエグゼクティブ50によって描かれたアプリケーション出力ウィンドウ66’’は、ブラウザアプリケーション60によって描かれたアプリケーション出力ウィンドウ66’の子である。このことにより、HTMLページ64’がスクロールされると、アプリケーション出力ウィンドウ66’もスクロールする。
アプリケーション出力ウィンドウ66’’はまた、視聴ユーザから入力を受け取る。未処理入力データ(raw input data)、例えばマウスクリックは、ネットワークエグゼクティブ50によって、アプリケーション出力ウィンドウ66’’へと受け取られる。ネットワークエグゼクティブ50は、未処理データを、サーバ34’’上で実行されるアプリケーション62’に転送する。この様態で、視聴ユーザは、HTMLページ64’を介してアプリケーション62’と相互作用することができる。
ここで図5を参照すると、視聴ユーザは、いわゆる「ブラウザ」プログラムを用いて、アプリケーションウィンドウ66’を有するHTMLページ64’をユーザのコンピュータ14のスクリーン18上に表示する。視聴ユーザは、アプリケーションプログラム62’の実行を呼び出し得る。通常、このことは、「ポイント−アンド−クリック」インターフェースを用いるユーザによって行われる。つまり、視聴ユーザはマウス16を用いて、視聴ユーザのコンピュータ14のスクリーン18上にも表示されたカーソル12を操作する。一旦カーソル12がHTMLページ64’の特定の部分上にあると、視聴ユーザはマウス16上のボタン15を「クリック」することによって信号を送る。あるいは、視聴ユーザはまた、付属キーボード17上のリターンキーのようなキーを押すことによって信号を送り得る。別の実施形態において、視聴ユーザはマウス16を全く使わないかもしれないが、代わりに、タッチパッド、トラックボール、感圧タブレットおよびペン、またはカーソル12を操作する他の入力機構を使用し得る。
別の実施形態において、アプリケーションウィンドウ66’またはHTMLページ64’の別の部分が「ホットゾーン」を規定し得る。視聴ユーザがカーソル12を「ホットゾーン」に移動すると、サーバ34’’上でのアプリケーション62’の実行が開始される。
アプリケーション62’の実行を開始するべきだと、いったん視聴ユーザが指示したら、ブラウザアプリケーション60はパラメータハンドラ40を具体化(instantiate)し
、包括的に(generic)統合されたウィンドウタグ66によって、アプリケーションウィ
ンドウ66’に関連するインスタンシエーション(instantiation)パラメータを渡す。
パラメータハンドラ40インスタンスは、ネットワークエグゼクティブ(executive)5
0を産出し、アプリケーションウィンドウ66’のパラメータをこれに渡す。ネットワークエグゼクティブ50は、どのアプリケーション62’が呼び出されるのか、および、そのアプリケーション62’がどのサーバ34”上に常駐するのかを判定する。一般的にこの情報は、ブラウザアプリケーション60から情報を獲得したパラメータハンドラ40イ
ンスタンスによって、一般的統合ウィンドウタグ66の形式で、ネットワークエグゼクティブ50に渡されるが、ネットワークエグゼクティブ50は、サーバが存在する場合、どのサーバが所望のアプリケーション62’をホストするのかを判断するために、マスタネットワーク情報ノード40または他の様々なサーバに照会を行う必要があり得る。次に、ネットワークエグゼクティブ50は、上記詳述したように、アプリケーションの実行を開始し、アプリケーションプログラム62’の出力をアプリケーションウィンドウ66’に表示する。
ネットワークエグゼクティブ50は、視聴ユーザが、例えばアプリケーションウィンドウ66’を閉じることによって、アプリケーション62’の実行を停止すべきだと指示するまで、または、視聴ユーザが、異なるHTMLページが表示されるべきだと指示するタグをクリックするまで、アプリケーション出力ウィンドウ66’’におけるアプリケーション出力の表示を継続する。これが発生するとき、アプリケーション62’の実行は終了し得る。しかしながら、接続を「キャッシュする(cache)」ことが、より好ましい。要
するに、第1のパラメータハンドラ40インスタンスは、即座に終了しない。しかしながら、アプリケーション62’は、低減された優先レベル、即ち「バックグラウンド」モードで実行を続ける。これは、第1のパラメータハンドラ40が、もはや「注目(focus)
」を有していないからである。
一般的には、インスタンスを登録するために、グローバルにアクセス可能なデータ構造を用いて、パラメータハンドラ40にソースコードを供給することにより、接続キャッシュを達成することが望ましい。例えば、パラメータハンドラ40は、グローバルにアクセス可能なリンクリストデータ構造、データアレイ、データテーブル、または他のデータ構造を供給され得る。データ構造がグローバルに利用できるので、パラメータハンドラ40の各インスタンスは、データ構造に対して読み出しおよび書き込みが可能である。この結果、その存在を信号伝達することをデータ構造に書き込むことにより、他の各々のインスタンスに「登録」できる。
他の接続情報がまったく格納されていない実施形態では、任意の時点でキャッシュされ得る接続数に関する所定の制限が設定され得る。これらの実施形態では、インスタンスの登録がキャッシュされる接続数の過剰を引き起こす場合、「キャッシュされた」接続の一つが除去される。即ち、その接続に関連するパラメータハンドラ40インスタンシエーションが、終了すべきであると通告される。終了の前に、パラメータハンドラ40は、関連するネットワークエグゼクティブ50に、終了すべきであることを通告する。ひいては、ネットワークエグゼクティブ50が、アプリケーションプログラム62’をホストしているサーバとのセッションを閉じ、それから終了する。
他の情報が格納されている実施形態では、キャッシュされた接続をより効率よく管理するために追加の情報を使用し得る。例えば、所定の分数、例えば10分間において、ユーザが積極的にHTMLページ64’を見ていなかった場合、パラメータハンドラ40インスタンシエーションは、終了を命令され、ホストをしているサーバとのセッションは終了されて、パラメータハンドラ40インスタンスはレジストリ内のエントリを除去する。
キャッシュされた接続情報は、公知任意のキャッシュ管理スキームを用いて管理され得る。接続エントリは、「先入れ先出し(first in, first out)」ベース、即ち新規エン
トリの追加を要するとき毎に最も古いエントリが破棄され得る。あるいは、キャッシュされた接続情報エントリは、「最近不使用」ベースで破棄され得る。これはユーザによって最小量使用されてきた接続に関する情報を破棄する。ランダム置換など、他のキャッシュ管理技術も使用し得る。
視聴ユーザが、キャッシュされた接続を有する、以前のHTMLページ64’に戻る場合、HTMLページ64’に関連するネットワークエグゼクティブ50は、フォアグラウンドに戻る。即ち、「注目」を回復し、関連するアプリケーションの処理が通常の優先レベルで再開する。必要であれば、ネットワークエグゼクティブ50は、アプリケーション62’との接続を再確立する。キャッシュされた接続に対する出力データは、ネットワークエグゼクティブ50によって、まったく格納されていないが、アプリケーションウィンドウ66’のための接続が再確立されると直ちに、アプリケーション62’への接続は再確立され、アプリケーション10は、再びアプリケーションウィンドウ66’に直接書き込む。
同様に、上述の接続方法論は、解釈型言語で記述されたアプリケーションの遠隔的実行を提供するのに使用され得る。再び図2を参照して、クライアントノード24は、クライアントノード24の代わりにアプリケーション62を実行するサーバノード34に接続される。この例では、サーバアプリケーション62は、解釈可能な言語で記述されたアプリケーションを、クライアントノード24が要求することを可能にする任意のアプリケーションである。例えば、アプリケーション62は、クライアントノード24が、URLアドレスを使用するJAVA(登録商標)アプリケーションをダウンロードすることを可能にするウェブブラウザであり得る。上述の例では、アプリケーションのダウンロード元となるノード、およびサーバノード34は、コンピュータネットワークによって接続された別々のマシンである。しかしながら、いくつかの実施形態では、それらのマシンは一つであり得、同一であり得る。
ダウンロードしたアプリケーションをクライアントノード24が格納し実行することは、クライアントメモリおよびプロセッサ利用の両観点から禁止され得るので、これをクライアントノード24に要求するのを回避するため、クライアントノード24が関連づけられているサーバノード34上の実行環境96は、ダウンロードされたアプリケーションのための実行環境を提供する。この実行環境は、ダウンロードされたアプリケーションのバイトストリームを解釈して、アプリケーションを意味する一連のコマンドを生成する。アプリケーションがJAVA(登録商標)解釈型言語で記述されている場合、実行環境は「仮想JAVA(登録商標)マシン」と称されることがある。
いくつかの実施形態では、実行環境はコンパイラを含む。これらのコンパイラは、アプリケーションのバイトストリームを「ネイティブ」コードに変換する。例えば、コンパイラは、JAVA(登録商標)アプリケーション言語で記述されたアプリケーションのバイトストリームを、80486マシンコードに変換し得る。解釈型言語バイトストリームのネイティブコードへの変換は、実行時に各バイトが解釈され実行されなければならない場合よりも、アプリケーションが速く実行することを可能にする。しかしながら、いくつかのコンパイラは、「ジャストインタイム(just in time)と称されることがあり、通常は、コンパイルされたコードの安定したストリームを生成するために実行される現時点実行(currently-executing)命令に先行して、所定の数のバイトを捜す(look)。
図2を参照して説明するように、ダウンロードされたアプリケーションは、サーバノード24によって解釈されて実行され、アプリケーションの出力はクライアントノードに伝送される。サーバノード34は、クライアントノード24からの入力も受け入れる。これにより、クライアントノード24はダウンロードされたアプリケーションを制御できるか、またはアプリケーションに入力を供給することができる。サーバノード34は、ダウンロードされたアプリケーションを解釈し実行する個別の実行環境を設定し得る。これらの実施形態では、ダウンロードされたアプリケーションに関連する実行環境は、その出力をmux121にも送信する。
図6を参照して、アプリケーション63を伴うサーバ34に接続されている任意のクライアント24、24’、24”、または、事実上すべてのクライアント(24で総称する)が、別のサーバ34’、34”であり得ることに留意されたい。この様態では、アプリケーション63によって伝送されたデータは、クライアントノード24に送られる前に、他のサーバに送られる。このネットワークは扇状に広がっているので、この様態では、アプリケーション63によって伝送されるデータは、これまで以上に多い数のクライアントノードに伝送される。
各クライアント24が、サーバ34との接続を終了すると、各クライアントプロトコルスタック(104で総称する)および関連する最小スタック(107で総称する)は破壊される。同様に、第1のクライアントプロトコルスタック104に関連する最小プロトコルスタック(106で総称する)も破壊される。最小107および第2の(および後続する)クライアントプロトコルスタック104の最後のものが終了したとき、構成は、最初のように、実行環境96に関連する第1のクライアント通信プロトコルスタック104のみを伴う。第2のおよび後続するクライアントプロトコルスタック104がすべて終了するまで、たとえ第1のクライアント24がすでに存在しなくとも、第1のクライアントプロトコルスタック104は、破壊され得ないことに留意されたい。
図2に示すように、各実行環境96は、マルチプレクサ121、121’、121”を介して、各プロトコルスタック104と通信する。以下、図6も参照して、本発明によると、例えば、データの伝送をサーバ34から隠したり監視したりするために、または株式相場アプリケーションなど、同一のデータが実質的同時的に複数のクライアント(24で総称する)に同報通信または伝送される、特別な同報通信アプリケーションからのデータを同報通信するために、1人以上のクライアントが第1のクライアント24に伝送されたデータを受け取ることが可能である。
そのような場合、第1のクライアント24は、特別なアプリケーション63を実行し、前述のようにクライアント24にそのデータを伝送する。第2のクライアント24’が同報通信されたアプリケーション63へのアクセスを要求するとき、接続マネジャ80は、第1のクライアント24を参照して前述したように、第2のクライアント24’のためのプロトコルスタック104’を構築する。しかしながら、アプリケーション63は同報通信アプリケーションであるので、接続マネジャ80は、追加の実行環境96を開始する必要のないことを認識し、代わりに同報通信アプリケーション63からのデータを第2のクライアント24’および任意の追加クライアント24”に送るのに必要な工程を行う。
まず、接続マネジャ80は、第1のクライアント24の通信プロトコルスタック104に関連づける第1の最小通信プロトコルスタック106を生成する。次に、接続マネジャ80は、第2の最小プロトコルスタック107を生成し、それを第2のクライアント24’の通信プロトコルスタック104’に関連づける。各追加のクライアント24”が同報通信アプリケーション63へのアクセスを要求するのに従い、別の最小プロトコルスタック106’が生成され、第1のクライアントプロトコルスタック104に関連づけられて、別の最小プロトコルスタック107’およびクライアントプロトコルスタック104”が各新規のクライアント24”のために生成される。第1のクライアントプロトコルスタック104と第1のクライアントプロトコルスタック104に関連づけられたすべての最小プロトコルスタック106、106’と、および各対のクライアントプロトコルスタック104’、104’’と各追加のクライアント24’、24’’に関連づけられた最小プロトコルスタック107、107’とは、マルチプレクサ121を介して通信する。
マルチプレクサ121が唯一のクライアント24に対してデータを送受信するとき、マルチプレクサ121は、単純な通過デバイスとして機能する。しかしながら、単一のアプ
リケーション63に対してデータを受信または伝送する一つ以上のクライアント24、24’、24”が存在するとき、各マルチプレクサ(121で総称する)は、二つの追加の構成を備える。一つの構成では、マルチプレクサ121’が、第1のクライアントプロトコルスタック104と関連する最小通信プロトコルスタックスタック106、106’との両方に対して、アプリケーションデータの送受信をするように構成される。第2の構成では、マルチプレクサ121”が、最小プロトコルスタック107、107’によって受信されたデータを、関連するクライアントプロトコルスタック104’、104’’それぞれに送信するように構成される。この実施形態では、マルチプレクサ121は、各クライアントプロトコルスタック104、104’、104”から直接データを受信し得る。
接続マネジャー80は、第1のクライアント24に関連する最小プロトコルスタック106、106’を、それぞれ第2のクライアント24’および後続するクライアント24”の最小プロトコルスタック107、107’に接続し、アプリケーション63からの出力を第1のクライアント24の通信プロトコルスタック104およびその最小プロトコルスタック106、106’に送信するようマルチプレクサ121に命令する。また、マルチプレクサ121は、接続マネジャー80によって、各第2および後続のクライアント最小プロトコルスタック107、107’を、それぞれ関連するクライアントプロトコルスタック104、104’に接続するように命令を受ける。従って、第1のクライアントプロトコルスタック104を介して、第1のクライアント24に伝送されたデータは、第1のクライアント24に関連する最小プロトコルスタック106、106’、ひいては、第2のクライアント24’および後続のクライアント24”に、それぞれ関連するプロトコルスタック104’、104’’およびそれぞれ関連するプロトコルスタック107、107’を介して伝送される。一つの実施形態では、プロトコルスタックコンテナ(container)は、所与のアプリケーション63に関連するプロトコルの数およびタイプを格納し
続けるデータ構造を含み得る。
図7を参照して、上述のように、一つのサーバ34の「クライアント」が別のサーバ34’および34”(簡略化のため二つだけを示す)であることが可能である。そうして、第2のサーバ34’および34”は、データをクライアント(24で総称する)または追加のサーバに伝送する。この実施形態では、サーバプロトコルスタック(104で総称する)の出力は、二次サーバ34’、34”のプロトコルスタック107’に接続される。そうして、前述のように、データはプロトコルスタックの間で伝送され、クライアント(24で総称する)に出力される。この様態では、データが扇状に広がり得、一つのサーバによって相応にサポートされ得るよりも多くのクライアントに配送できる。
本発明を、添付の請求項の詳細な事項で示す。上記の本発明の利点が、さらなる利点と同様、添付の図面と共に以下の説明を参照することにより、よりよく理解され得る。
図1は、本発明を使用する通信システムの一つの実施形態の、大幅に模式化した図である。 図2は、クライアントとサーバとの間の通信中に行われる、図1のサーバのさまざまな構成要素の間の接続を示す、本発明の実施形態のブロック図である。 図3は、複数のクライアントノード接続の維持および管理を行う、本発明の一実施形態のブロック図である。 図4は、HTMLページにアプリケーションを組み込むためのシステムの実施形態のブロック図である。 図5は、クライアントノードの概略図である。 図6は、アプリケーションの同一データを1人以上のクライアントに伝送するためのマルチプレクサの使用を示す、本発明の実施形態のブロック図である。 図7は、ブロードキャスト能力(broadcast capability)が端末増設機構(fanout)により増大した、本発明の実施形態のブロック図である。

Claims (27)

  1. クライアントノードにおいて、アプリケーションプログラムに関連付けられたデータを受信するための方法であって、
    該方法は、
    ファイルを要求するステップと、
    ジェネリック内蔵ウィンドウタグを含むファイルを受信するステップと、
    該ジェネリック内蔵ウィンドウタグによって記述される第1のウィンドウを表示するステップと、
    該第1のウィンドウ上にアプリケーション出力ウィンドウを直接的に表示するステップと
    を包含する、方法。
  2. 前記ファイルを要求するステップは、特定のUniform Resource Locator(URL)アドレスに要求を出すステップを包含する、請求項1に記載の方法。
  3. 前記第1のウィンドウは、ブラウザアプリケーションによって表示される、請求項1に記載の方法。
  4. 前記アプリケーション出力ウィンドウ表示するステップは、
    パラメータハンドラをインスタンス化するステップと、
    前記第1のウィンドウに関連付けられた前記ジェネリック内蔵ウィンドウタグからのパラメータを該パラメータハンドラにパスするステップと
    を包含する、請求項1に記載の方法。
  5. 前記パラメータハンドラは、ブラウザアプリケーションの子プロセスである、請求項4に記載の方法。
  6. 前記パラメータハンドラは、ブラウザアプリケーションのピアプロセスである、請求項4に記載の方法。
  7. 前記パラメータハンドラは、ブラウザアプリケーションに関連付けられたダイナミックリンクライブラリ(DLL)である、請求項4に記載の方法。
  8. 前記アプリケーション出力ウィンドウに関連付けられたハンドラを前記パラメータハンドラにパスするステップをさらに包含する、請求項4に記載の方法。
  9. 前記アプリケーション出力ウィンドウに関連付けられたハンドラに対してブラウザアプリケーションにクエリするステップをさらに包含する、請求項4に記載の方法。
  10. ネットワーク実行部をインスタンス化するステップと、
    アプリケーションウィンドウパラメータを該ネットワーク実行部にパスするステップと
    をさらに包含する、請求項4に記載の方法。
  11. 前記ネットワーク実行部は、前記パラメータハンドラの子プロセスである、請求項10に記載の方法。
  12. 前記ネットワーク実行部は、前記パラメータハンドラのピアプロセスである、請求項10に記載の方法。
  13. 前記ネットワーク実行部は、実行されるアプリケーションのIDを決定する、請求項10に記載の方法。
  14. 前記ネットワーク実行部は、前記識別されたアプリケーションをホストするサーバのIDを決定する、請求項10に記載の方法。
  15. 前記ネットワーク実行部は、マスタネットワーク情報ノードにクエリすることによって前記識別されたアプリケーションをホストするサーバのIDを決定する、請求項14に記載の方法。
  16. 特定されていないパラメータに対してデフォルト値を検索するステップをさらに包含する、請求項10に記載の方法。
  17. 前記デフォルト値は、前記ネットワーク実行部においてハードコード化される、請求項16に記載の方法。
  18. 前記デフォルト値は、前記ネットワーク実行部によってアクセスされるファイルに格納されている、請求項16に記載の方法。
  19. アプリケーション出力ウィンドウをインスタンス化するステップと、
    前記第1のウィンドウ上に該アプリケーション出力ウィンドウを直接的に表示するステップと
    をさらに包含する、請求項4に記載の方法。
  20. 前記アプリケーション出力ウィンドウは、前記第1のウィンドウの子である、請求項19に記載の方法。
  21. 前記アプリケーション出力ウィンドウは、前記第1のウィンドウの特性を所有する、請求項20に記載の方法。
  22. サーバとの通信チャネルを確立するステップと、
    該通信チャネルを用いて、所望されるアプリケーションの実行を呼び出すステップと
    をさらに包含する、請求項4に記載の方法。
  23. 前記パラメータハンドラから受信されるパラメータを前記サーバに伝送することを包含する、請求項22に記載の方法。
  24. 前記サーバによって、デフォルト値を有しない必要なパラメータを要求するステップをさらに包含する、請求項23に記載の方法。
  25. 前記サーバによって、パラメータに対するデフォルト値を提供するステップをさらに包含する、請求項23に記載の方法。
  26. 前記実行アプリケーションからデータを受信するステップと、
    前記アプリケーション出力ウィンドウにおいて該受信されたデータを表示するステップと
    をさらに包含する、請求項22に記載の方法。
  27. 視聴ユーザから入力を受信するステップと、
    該受信された入力を前記実行アプリケーションに提供するさらに包含する、請求項26に記載の方法。
JP2006189774A 1997-05-14 2006-07-10 サーバとクライアントノードとの間の接続を管理するシステムおよび方法 Pending JP2006318499A (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US08/855,965 US6157944A (en) 1997-05-14 1997-05-14 System and method for replicating a client/server data exchange to additional client notes connecting to the server
US08/855,902 US5961586A (en) 1997-05-14 1997-05-14 System and method for remotely executing an interpretive language application
US08/855,977 US6370552B1 (en) 1997-05-14 1997-05-14 Apparatus and method for displaying application output in an HTML document
US08/856,051 US5941949A (en) 1997-05-14 1997-05-14 System and method for transmitting data from a server application to more than one client node

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2005143236A Division JP2005339536A (ja) 1997-05-14 2005-05-16 サーバとクライアントノードとの間の接続を管理するシステムおよび方法

Publications (1)

Publication Number Publication Date
JP2006318499A true JP2006318499A (ja) 2006-11-24

Family

ID=27505922

Family Applications (3)

Application Number Title Priority Date Filing Date
JP54955398A Withdrawn JP2002502521A (ja) 1997-05-14 1998-05-14 サーバとクライアントノードとの間の接続を管理するシステムおよび方法
JP2005143236A Withdrawn JP2005339536A (ja) 1997-05-14 2005-05-16 サーバとクライアントノードとの間の接続を管理するシステムおよび方法
JP2006189774A Pending JP2006318499A (ja) 1997-05-14 2006-07-10 サーバとクライアントノードとの間の接続を管理するシステムおよび方法

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP54955398A Withdrawn JP2002502521A (ja) 1997-05-14 1998-05-14 サーバとクライアントノードとの間の接続を管理するシステムおよび方法
JP2005143236A Withdrawn JP2005339536A (ja) 1997-05-14 2005-05-16 サーバとクライアントノードとの間の接続を管理するシステムおよび方法

Country Status (11)

Country Link
EP (3) EP1011236A3 (ja)
JP (3) JP2002502521A (ja)
KR (2) KR100569469B1 (ja)
AU (1) AU744486B2 (ja)
CA (1) CA2290433C (ja)
DE (2) DE69837550T2 (ja)
ES (2) ES2252837T3 (ja)
GB (1) GB2341065B (ja)
HK (1) HK1025700A1 (ja)
IL (3) IL132873A (ja)
WO (1) WO1998052320A2 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6088515A (en) 1995-11-13 2000-07-11 Citrix Systems Inc Method and apparatus for making a hypermedium interactive
US6370552B1 (en) 1997-05-14 2002-04-09 Citrix Systems, Inc. Apparatus and method for displaying application output in an HTML document
US5941949A (en) * 1997-05-14 1999-08-24 Citrix Systems, Inc. System and method for transmitting data from a server application to more than one client node
US6157944A (en) * 1997-05-14 2000-12-05 Citrix Systems, Inc. System and method for replicating a client/server data exchange to additional client notes connecting to the server
EP0990984B1 (de) * 1999-12-15 2006-03-08 Galilei Software GmbH Verfahren zum Vermitteln von Prozessdaten sowie Verfahren zum Erstellen von anwenderspezifischen Daten und mit diesem Verfahren erstellte Daten
US6789112B1 (en) 2000-05-08 2004-09-07 Citrix Systems, Inc. Method and apparatus for administering a server having a subsystem in communication with an event channel
FR2808949B1 (fr) * 2000-05-11 2002-10-25 Sagem Reseau comportant une plate-forme multigestionnaire
US6799209B1 (en) 2000-05-25 2004-09-28 Citrix Systems, Inc. Activity monitor and resource manager in a network environment
US8671213B2 (en) 2002-03-14 2014-03-11 Citrix Systems, Inc. Methods and apparatus for generating graphical and media displays at a client
US8135843B2 (en) 2002-03-22 2012-03-13 Citrix Systems, Inc. Methods and systems for providing access to an application
KR20030078316A (ko) * 2002-03-29 2003-10-08 정보통신연구진흥원 웹 세션 관리기술을 포함한 네트워크 시스템 및 그 동작방법
AU2002334254A1 (en) * 2002-09-05 2004-03-29 Nokia Corporation Application dispatcher
EP1420560A1 (en) * 2002-11-13 2004-05-19 Thomson Multimedia Broadband Belgium Software upgrade over a USB connection
EP1849094A2 (en) 2005-01-06 2007-10-31 Tervela Inc. A caching engine in a messaging system
JP2008527847A (ja) * 2005-01-06 2008-07-24 テーベラ・インコーポレーテッド 終端間パブリッシュ/サブスクライブ・ミドルウェア・アーキテクチャ
US20060277275A1 (en) * 2005-04-02 2006-12-07 Glaenzer Eric F Dynamic management of communication ports, devices, and logical connections
US8738703B2 (en) 2006-10-17 2014-05-27 Citrix Systems, Inc. Systems and methods for providing online collaborative support
US9264483B2 (en) 2007-07-18 2016-02-16 Hammond Development International, Inc. Method and system for enabling a communication device to remotely execute an application
KR100927232B1 (ko) * 2007-12-18 2009-11-16 한국전자통신연구원 어플리케이션 시스템의 포트 설정방법
EP2351777B1 (en) 2008-10-28 2015-10-28 Shionogi&Co., Ltd. Anti-muc1 antibody
US8688799B2 (en) * 2011-06-30 2014-04-01 Nokia Corporation Methods, apparatuses and computer program products for reducing memory copy overhead by indicating a location of requested data for direct access

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5204947A (en) * 1990-10-31 1993-04-20 International Business Machines Corporation Application independent (open) hypermedia enablement services
US5499343A (en) * 1993-12-17 1996-03-12 Taligent, Inc. Object-oriented networking system with dynamically configurable communication links
US5548726A (en) * 1993-12-17 1996-08-20 Taligeni, Inc. System for activating new service in client server network by reconfiguring the multilayer network protocol stack dynamically within the server node
US5857102A (en) * 1995-03-14 1999-01-05 Sun Microsystems, Inc. System and method for determining and manipulating configuration information of servers in a distributed object environment

Also Published As

Publication number Publication date
ES2252837T3 (es) 2006-05-16
KR20040004436A (ko) 2004-01-13
JP2005339536A (ja) 2005-12-08
EP1017202A3 (en) 2000-11-02
IL132873A0 (en) 2001-03-19
DE69837550T2 (de) 2007-12-27
GB2341065A (en) 2000-03-01
EP1017202B1 (en) 2007-04-11
IL132873A (en) 2003-10-31
KR100481064B1 (ko) 2005-04-07
IL132875A0 (en) 2001-03-19
GB9926972D0 (en) 2000-01-12
AU7572498A (en) 1998-12-08
HK1025700A1 (en) 2000-11-17
IL132874A0 (en) 2001-03-19
CA2290433C (en) 2007-04-03
GB2341065B (en) 2002-04-10
ES2284448T3 (es) 2007-11-16
KR20010012553A (ko) 2001-02-15
EP0981884B1 (en) 2005-11-02
AU744486B2 (en) 2002-02-28
CA2290433A1 (en) 1998-11-19
JP2002502521A (ja) 2002-01-22
WO1998052320A2 (en) 1998-11-19
DE69832168T2 (de) 2006-04-20
WO1998052320A3 (en) 1999-03-11
KR100569469B1 (ko) 2006-04-07
IL132874A (en) 2003-10-31
EP1011236A3 (en) 2000-11-02
EP0981884A2 (en) 2000-03-01
DE69832168D1 (de) 2005-12-08
DE69837550D1 (de) 2007-05-24
EP1017202A2 (en) 2000-07-05
EP1011236A2 (en) 2000-06-21

Similar Documents

Publication Publication Date Title
US5961586A (en) System and method for remotely executing an interpretive language application
JP2006318499A (ja) サーバとクライアントノードとの間の接続を管理するシステムおよび方法
US6370552B1 (en) Apparatus and method for displaying application output in an HTML document
US8296446B2 (en) System and method for transmitting data from a server application to more than one client node
US6157944A (en) System and method for replicating a client/server data exchange to additional client notes connecting to the server
US6222634B1 (en) Apparatus and method for printing related web pages
JP4729172B2 (ja) 宣言型パラダイムをサポートするステートレスなウェブ環境におけるトランザクションを実行するための方法および装置
JP3184802B2 (ja) カスタマイズされたインターネット・コンテンツを要求側クライアント装置に提供する方法およびシステム
EP1214667B1 (en) Methods and apparatus for efficiently transmitting interactive application data between a client and server using markup language
JP3853592B2 (ja) 分散ウェブアプリケーションサーバ
US7203769B2 (en) Bootstrapping technique for distributed object client systems
US20020147652A1 (en) System and method for distruibuted client state management across a plurality of server computers
US20090300221A1 (en) Distributing and synchronizing objects
WO2006103260A1 (en) Method and apparatus to select and deliver portable portlets
US20020046304A1 (en) Dynamic class loading
EP0998097A2 (en) Computer implemented method and apparatus for providing a logical point of access to one or more files
JP2002505463A (ja) 分散システム内の遠隔処理呼出に関連する処理をおこなうためのダウンロード可能なスマートプロキシ
CA2495413C (en) System and method for managing the connection between a server and a client node
AU726335B2 (en) System and method for transmitting data from a server application to more than one client node
AU726488B2 (en) System and method for remotely executing an interpretive language application

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081121

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090218

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090223

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090323

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090527

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20091022