JP6203370B2 - ウェブベースの仮想媒体リダイレクトのシステムおよび方法 - Google Patents

ウェブベースの仮想媒体リダイレクトのシステムおよび方法 Download PDF

Info

Publication number
JP6203370B2
JP6203370B2 JP2016500070A JP2016500070A JP6203370B2 JP 6203370 B2 JP6203370 B2 JP 6203370B2 JP 2016500070 A JP2016500070 A JP 2016500070A JP 2016500070 A JP2016500070 A JP 2016500070A JP 6203370 B2 JP6203370 B2 JP 6203370B2
Authority
JP
Japan
Prior art keywords
web
file
browser program
bmc
web socket
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.)
Active
Application number
JP2016500070A
Other languages
English (en)
Other versions
JP2016517070A (ja
Inventor
メイティ サンジョイ
メイティ サンジョイ
パーシバン バスカー
パーシバン バスカー
クリストファー サムヴィネシュ
クリストファー サムヴィネシュ
スダン アヤナム ヴァラダカリ
スダン アヤナム ヴァラダカリ
Original Assignee
アメリカン メガトレンズ インコーポレイテッド
アメリカン メガトレンズ インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by アメリカン メガトレンズ インコーポレイテッド, アメリカン メガトレンズ インコーポレイテッド filed Critical アメリカン メガトレンズ インコーポレイテッド
Publication of JP2016517070A publication Critical patent/JP2016517070A/ja
Application granted granted Critical
Publication of JP6203370B2 publication Critical patent/JP6203370B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/131Protocols for games, networked simulations or virtual reality

Description

(関連特許出願の相互参照)
本PCT出願は、2013年3月15日付けで提出された「SYSTEM AND METHOD OF WEB−BASED VIRTUAL MEDIA REDIRECTION」と題する、Sanjoy Maity、Baskar Parthiban、Samvinesh Christopher、およびVaradachari Sudan Ayanamによる米国特許出願第13/841,220号に対する優先権およびその利益を主張する。当該米国特許出願は、参照によりその全体が本明細書に組み込まれる。
本開示は、コンピュータシステムの分野に関し、より詳細には、ホストコンピュータとコンピューティングデバイスとの間でのウェブベースの仮想媒体リダイレクトのシステムおよび方法に関する。
本明細書において提供される背景技術の説明は、本開示のコンテキストを大まかに提示することを目的とする。この背景技術の節に記載されている範囲における、現在名前を挙げられている発明者らの研究、および、他の様態で出願時点において従来技術とみなされていない場合がある記載の諸態様は、明示的にも黙示的にも、本開示に対する従来技術とは認められない。
概して、「コンピュータシステム」という用語は、独立型システム、または、たとえば、クライアント―サーバネットワークのような複数の相互接続されたシステムを指す。
実施態様にかかわらず、コンピュータシステムを構成する様々な構成要素は、一般的には、性能プロトコルまたは規格によって定義されるパラメータの範囲内で動作する。たとえば、システムが特定の所定温度読み値を超えて上昇する可能性がある期間を検出するために、コンピュータシャーシ内の温度がモニタリングされることが多い。コンピュータシステム内でモニタリングされる場合がある他の形態の情報は、限定ではなく、システムのベースボード上に位置する半導体構成要素と関連付けられる電圧、ベースボード上またはシステムシャーシ内に位置する冷却ファンの速度(たとえば、rpm)、および、ハード・ディスク・ドライブまたは光学式ドライブ内のスピンドルモータの速度を含む。
コンピュータシステムおよびその構成部品と関連付けられる動作および性能関連パラメータを検出するために、様々なタイプのセンサが使用されている。上記で与えられた例を参照すると、これらのセンサは、サーモスタット、電圧計および回転速度計を含む。コンピュータシステムは一般的に、1つまたは複数の管理モジュールを利用して、システム内の動作および性能関連パラメータを測定する様々なセンサによって検知される情報の収集および分析を補助する。これらの管理モジュールは、ソフトウェア構成要素またはハードウェア構成要素のいずれであってもよいが、一般的にハードウェアとソフトウェアの両方の構成要素を包含する。1つのそのような管理モジュールが、「ベースボード管理コントローラ」(BMC)と称される。BMCは、コンピュータシステムのマイクロコントローラであり、それを通じて、様々なセンサによって検知される情報がBMCによる分析のために受信される指定数のコンタクトピンを有している。この分析を実施するために、BMCは、システムモニタリングおよび復元に関連する手順を実施するためのファームウェアをプログラムされている。このファームウェアによって、BMCは、コンピュータシステム内で検知される様々な動作および性能関連パラメータをモニタリングし、この情報を分析して検知されたパラメータのいずれかが、現在、予測されるまたは推奨される動作範囲外であるか否かを判定するようにプログラムされている。範囲外のパラメータが発生することは、一般的に「イベント」と称される。
BMCは、仮想媒体リダイレクトを実施することができる。しかしながら、仮想媒体リダイレクトの実施には、対処されていない需要が存在する。
本開示の特定の態様は、仮想媒体リダイレクトを実施する方法に関する。方法は、(a)ベースボード管理コントローラ(BMC)のウェブサーバとネットワーク内のコンピューティングデバイスのブラウザプログラムとの間にウェブソケット接続を確立することであって、BMCはホストコンピュータの管理機能を実施する、(b)BMCにおいて、ホストコンピュータ向けに仮想媒体をエミュレートすることと、(c)BMCにおいて、ホストコンピュータからの、エミュレートされた仮想媒体を対象とする読み出しコマンドを受信することであって、読み出しコマンドは第1のファイルを指定する、(d)読み出しコマンドに応答して、BMCにおいて、ウェブソケット接続を通じてブラウザプログラムに、読み出しコマンドに従って第1のファイルを求める要求を送信することと、(e)ウェブサーバにおいて、ブラウザプログラムからウェブソケット接続を通じて第1のファイルを受信することとを含む。
特定の実施形態において、本方法は、(a)BMCのウェブ・ソケット・モジュールにおいて、コンピューティングデバイスのウェブ・ソケット・モジュールからウェブ・ソケット・ハンドシェイク要求を受信することと、(b)BMCのウェブ・ソケット・モジュールによって、ウェブソケット接続を確立するために、ウェブ・ソケット・ハンドシェイク要求に応答したハンドシェイク応答メッセージを、コンピューティングデバイスのウェブ・ソケット・モジュールに送信し返すこととを含む。特定の実施形態において、本方法はまた、(a)BMCのウェブサーバにおいて、リダイレクトウェブページを生成することであって、リダイレクトウェブページは、ブラウザプログラムに、コンピューティングデバイスの記憶装置内のファイルまたはファイルシステム構造にアクセスするよう命令するようにプログラムされている、(b)ウェブサーバにおいて、ブラウザプログラムにリダイレクトウェブページを送信することも含む。リダイレクトウェブページは、ブラウザプログラムに、(a)要求に従って記憶装置から第1のファイルを取り出すことと、(b)ウェブソケット接続を通じてウェブサーバに第1のファイルを送信することとを行うよう命令するようにプログラムされている。
特定の実施形態において、本方法は、ウェブサーバにおいて、ブラウザプログラムにjavaオブジェクトを送信することを含む。javaオブジェクトは、ブラウザプログラムが、記憶装置内のファイルにアクセスすることを可能にする関数を提供するためにコンパイルされる。javaオブジェクトは、Java Native Interface関数を呼び出して記憶装置内のファイルにアクセスするためにコンパイルされる。リダイレクトページは、ブラウザプログラムに、javaオブジェクトをダウンロードするよう命令するようにプログラムされている。リダイレクトページは、ブラウザプログラムに、記憶装置内のISOイメージからファイルまたはファイルシステム構造にアクセスするよう命令するようにプログラムされており、第1のファイルはISOイメージ内に位置する。記憶装置は、コンピューティングデバイスの外部の記憶装置である。リダイレクトページは、ブラウザプログラムに、ウェブソケット接続を通じてウェブサーバに、記憶装置内の選択された媒体のファイルシステム構造またはファイルを送信するよう命令するようにプログラムされている。
特定の実施形態において、本方法は、BMCによってエミュレートされる仮想媒体がホストコンピュータに対して、入出力(I/O)ポートを通じてアクセス可能であるように、BMCを、ホストコンピュータのI/Oポートに接続することをさらに含む。特定の実施形態において、I/OポートはUSBポートである。特定の実施形態において、ウェブソケット接続は安全なウェブソケット接続である。
本開示の特定の態様は、ベースボード管理コントローラ(BMC)に関する。BMCは、BMCと、ネットワーク内のコンピューティングデバイスのブラウザプログラムとの間にウェブソケット接続を確立し、ブラウザプログラムからウェブソケット接続を通じて第1のファイルを受信するように構成されているウェブサーバを含む。BMCはまた、ホストコンピュータ向けに仮想媒体をエミュレートすることと、ホストコンピュータからの、エミュレートされた仮想媒体を対象とする読み出しコマンドを受信することであって、読み出しコマンドは第1のファイルを指定する、ことと、読み出しコマンドに応答して、ウェブソケット接続を通じてブラウザプログラムに、読み出しコマンドに従って第1のファイルを求める要求を送信することとを行うように構成されているリダイレクトモジュールをも含む。BMCは、ホストコンピュータの管理機能を実施する。
本開示の特定の態様は、持続性コンピュータ記憶媒体に関する。持続性コンピュータ記憶媒体は、コンピュータ実行可能命令を記憶している。コンピュータ実行可能命令がベースボード管理コントローラのプロセッサによって実行されると、コンピュータ実行可能命令は、プロセッサに、(a)BMCのウェブサーバとネットワーク内のコンピューティングデバイスのブラウザプログラムとの間にウェブソケット接続を確立することであって、BMCはホストコンピュータの管理機能を実施する、(b)ホストコンピュータ向けに仮想媒体をエミュレートすることと、(c)ホストコンピュータからの、エミュレートされた仮想媒体を対象とする読み出しコマンドを受信することであって、読み出しコマンドは第1のファイルを指定する、(d)読み出しコマンドに応答して、BMCにおいて、ウェブソケット接続を通じてブラウザプログラムに、読み出しコマンドに従って第1のファイルを求める要求を送信することと、(e)ウェブサーバにおいて、ブラウザプログラムからウェブソケット接続を通じて第1のファイルを受信することとを実行させる。
本開示のさらなる適用可能領域が、以降に与えられる詳細な説明から明らかとなる。詳細な説明および特定の例は、例示のみを目的として意図されており、本開示の範囲を限定するようには意図されていないことが理解されるべきである。
本開示は、詳細な説明および添付の図面からより十分に理解されることとなる。
本開示の一実施形態によるウェブベースの仮想媒体リダイレクトシステムを概略的に示す図である。 本開示の一実施形態によるウェブソケット接続を概略的に示す図である。 GET命令およびHTTP応答を使用するHTTP要求の一例を示す図である。 本開示の一実施形態によるウェブ・ソケット・ハンドシェイク要求および応答の例を示す図である。 本開示の一実施形態によるウェブベースの仮想媒体リダイレクトを概略的に示す図である。 図4Aにおけるウェブベースの仮想媒体リダイレクトプロセスを概略的に示す図である。 本開示の別の実施形態によるウェブベースの仮想媒体リダイレクトを概略的に示す図である。 図5Aにおけるウェブベースの仮想媒体リダイレクトプロセスを概略的に示す図である。
本開示は、多数の修正および変形が当業者に明らかになるため例示としてのみ意図されている以下の例により詳細に説明される。ここで、本開示の様々な実施形態を詳細に説明する。図面を参照すると、同様の参照符号がある場合、これらは、図面全体を通じて同様の構成要素を示す。本明細書において、および、添付の特許請求の範囲全体を通じて使用されている場合、「a」、「an」、および「the」の意味するところは、文脈が明確に別途示していない限り、複数への参照を含む。また、本明細書において、および、添付の特許請求の範囲全体を通じて使用されている場合、「中(in)」の意味するところは、文脈が明確に別途示していない限り、「中(in)」および「上(on)」を含む。さらに、本明細書においては読者の便宜のために表題または副題が使用されている場合があるが、これは本開示の範囲には影響を及ぼさないものとする。加えて、本明細書において使用されているいくつかの用語を、下記により詳細に定義する。
本明細書において使用される用語は概して、本開示の文脈内、および、各用語が使用される特定の文脈において、当該技術分野におけるそれらの一般的な意味を有する。本開示の説明に関して実践者にさらに助言を与えるために、本開示を説明するために使用される特定の用語を、下記に、または本明細書の他の箇所に説明する。便宜のために、特定の用語を、たとえば、斜字体および/または引用符を使用して強調している場合がある。強調が使用されても用語の範囲および意味に影響はなく、用語の範囲および意味は、強調されていようとされていまいと、同じ文脈の中では同じである。同じ物事が2通り以上に表現されている場合がある。したがって、代替的な文言および同義語が本明細書において説明されている用語いずれか1つまたは複数に使用されている場合があり、用語が本明細書において詳述または説明されているか否かにはいかなる特別な重要性もおかれるべきではない。特定の用語の同義語が与えられている。1つまたは複数の同義語の記載は、他の同義語の使用を除外しない。本明細書において説明されている任意の用語の例を含む、本明細書の任意の箇所における例の使用は例示に過ぎず、本開示または任意の説明されている用語の範囲および意味を決して限定するものではない。同様に、本開示は、本明細書において与えられている様々な実施形態には限定されない。
別途定義されていない限り、本明細書において使用されているすべての技術用語および科学用語は、本開示が属する技術分野における当業者によって一般的に理解されているものと同じ意味を有する。不一致がある場合、定義を含め、本明細書が統制する。
本明細書において使用される場合、「前後(around)」、「約(about)」または「おおよそ(approximately)」は、概して、与えられている値または範囲の20パーセント以内、好ましくは10パーセント以内、より好ましくは5パーセント以内を意味するものとする。本明細書において与えられている数量は近似であり、つまり、用語「前後(around)」、「約(about)」または「おおよそ(approximately)」は、明示的に述べられていない場合は推測され得る。
本明細書において使用される場合、「複数」は2つ以上を意味する。
本明細書において使用される場合、「備える(comprising)」、「含む(including)」、「保持する(carring)」、「有する(having)」、「含む(containing)」、「含む(involving)」などの用語は、制約がない、すなわち、含むが限定されないことを意味するものとして理解されるべきである。
本明細書において使用される場合、A、B、およびCのうちの少なくとも1つという語句は、非排他的論理ORを使用して論理(AまたはBまたはC)を意味するものとして解釈されるべきである。方法内の1つまたは複数のステップは、本開示の原理を変更することなく異なる順序で(または同時に)実行されてもよいことが理解されるべきである。
本明細書において使用される場合、モジュールという用語は、特定用途向け集積回路(ASIC)、電子回路、組み合わせ論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、コードを実行するプロセッサ(共有、専用、グループ)、記載されている機能を提供する他の適切なハードウェア構成要素、または、システムオンチップにあるような、上記のいくつかもしくはすべての組み合わせを指す場合があり、それらの一部である場合があり、またはそれらを含む場合がある。モジュールと言う用語は、プロセッサによって実行されるコードを記憶するメモリ(共有、専用、またはグループ)を含み得る。
上記で使用されているものとしてのコードという用語は、ソフトウェア、ファームウェア、および/またはマイクロコードを含む場合があり、プログラム、ルーチン、機能、クラス、および/またはオブジェクトを指す場合がある。上記で使用されているものとしての共有という用語は、複数のモジュールからいくつかのまたはすべてのコードを、単一の(共有)プロセッサを使用して実行することができることを意味する。加えて、複数のモジュールからのいくつかのまたはすべてのコードを、単一の(共有)メモリによって記憶することができる。上記で使用されているものとしてのグループという用語は、単一のモジュールからいくつかのまたはすべてのコードを、プロセッサのグループを使用して実行することができることを意味する。加えて、単一のモジュールからのいくつかのまたはすべてのコードを、メモリのグループを使用することによって記憶することができる。
本明細書に記載されている装置および方法は、1つまたは複数のプロセッサによって実行される1つまたは複数のコンピュータプログラムによって実装することができる。コンピュータプログラムは、持続性有形コンピュータ可読媒体上に記憶されるプロセッサ実行可能命令を含む。コンピュータプログラムはまた、記憶されているデータをも含み得る。持続性有形コンピュータ可読媒体の非限定例は、不揮発性メモリ、磁気記憶装置、および光学式記憶装置である。
ここで、本開示の実施形態が示されている添付の図面を参照して、本開示を以降より十分に説明する。しかしながら、本開示は、多くの異なる形態で具現化されてもよく、本明細書に記載されている実施形態に限定されるものとして解釈されるべきではなく、むしろ、これらの実施形態は、本開示が完全かつ完璧なものになり、本開示の範囲を当業者に完全に伝達するように提供される。同様の参照符号は、全体を通じて同様の要素を指す。
本開示はコンピュータシステムに関する。図面に示されているように、コンピュータ構成要素は、実線のブロックとして図示されている物理ハードウェア構成要素、および、破線のブロックとして図示されている仮想ソフトウェア構成要素を含み得る。別途指示されていない限り、これらのコンピュータ構成要素は、限定ではないが、ソフトウェア、ファームウェアもしくはハードウェア構成要素、またはそれらの組み合わせにおいて実装されてもよいことを、当業者は諒解されよう。
図1は、本開示の一実施形態によるウェブベースの仮想媒体リダイレクトシステムを概略的に示す。図1に示すように、システム100は、ホストコンピュータ110と、ネットワーク130を介してホストコンピュータ110に接続されているコンピューティングデバイス140とを含む。システム100は、クライアント―サーバネットワークのような、2つ以上の相互接続されたシステムを組み込んでいるシステムであってもよい。ネットワーク130は、有線またはワイヤレスネットワークであってもよく、ローカル・エリア・ネットワーク(LAN)、または、インターネットを含む広域ネットワーク(WAN)のような様々な形態のものであってもよい。
ホストコンピュータ110は、汎用コンピュータシステムであってもよい。ホストコンピュータ110は、ベースボード111、すなわち「マザーボード」を含む。ベースボード111は、システムバスまたは他の電気通信経路によって複数の構成要素またはデバイスがそれに接続され得るプリント回路基板である。図1には明示的に示されていないが、ベースボード111上の構成要素は相互接続されており、ベースボード111上の構成要素のレイアウトおよびベースボード111上の構成要素間の相互接続の様態を、本明細書においてはベースボード111の構成と称する。ベースボード111の構成は、必要な設計または製造要件に従って調整または変更することができることが、当業者には諒解されよう。
ベースボード111上の構成要素は、限定ではないが、中央処理装置(CPU)112と、メモリ113と、ベースボード管理コントローラ(BMC)120と、他の必要とされるメモリおよび入出力(I/O)モジュール(図示せず)とを含む。CPU112、メモリ113、およびBMC120は、ベースボード111上に組み込まれてもよく、または、インターフェースを通じてベースボード111に接続されてもよい。特定の実施形態において、インターフェースは、電気コネクタ、バス、ポート、ケーブル、端子、または他のI/Oデバイスのような物理ハードウェアインターフェースであってもよい。
CPU112は、ホストコンピュータ110の動作を制御するように構成されているホストプロセッサである。ホストプロセッサは、ホストコンピュータ110のオペレーティングシステム(OS)または他のアプリケーションを実行することができる。いくつかの実施形態において、ホストコンピュータ110は、2つのCPU、4つのCPU、8つのCPU、または任意の適切な数のCPUのような、2つ以上のCPUをホストプロセッサとして有してもよい。
メモリ113は、ヘッドレスサーバ200の動作中にデータおよび情報を記憶するための、ランダムアクセスメモリ(RAM)のような揮発性メモリとすることができる。
BMC120とは、システム管理ソフトウェアとプラットフォームハードウェアとの間のインターフェースを管理する専用マイクロコントローラを指す。種々のタイプのセンサをシステム100に内蔵することができ、BMC120は、これらのセンサを読み取って、温度、冷却ファン速度、電力ステータス、OSステータスのようなパラメータを得る。BMC120は、センサをモニタリングして、いずれかのパラメータがプリセットの制限内に留まっておらず、システム100が故障した可能性を示す場合、ネットワークを介してシステム管理者に警告を送信することができる。管理者もまた、BMC120と遠隔通信して、ハングしたOSを再び作動させるためにシステムをリセットするかまたは電源を入れ直すことのような、何らかの修正措置をとることができる。さらに、BMC120は、ホストコンピュータ110によってアクセス可能な仮想媒体を確立することを可能にする、仮想媒体リダイレクトモジュールを含むことができる。したがって、ユーザは、コンピューティングデバイス140から仮想媒体セッションを開始することができ、BMC120を通じてホストコンピュータ110に、コンピューティングデバイス上のデータを仮想媒体の内容として提供する。
特定の実施形態において、BMC120のファームウェアは、システムモニタリングおよびイベント回復のためのインテリジェントプラットフォーム管理インターフェース(IPMI)産業規格に従う。IPMIプロトコルは、コンピュータシステムの帯域外管理、および、セッションベースである動作のモニタリングのための標準コンピュータ・システム・インターフェース・プロトコルであり、アプリケーションモジュールが標的IPMIデバイスと通信することができるようになる前に、アプリケーションモジュールと標的IPMIデバイスとの間のIPMIセッションが確立されることを必要とする。IPMI仕様は、適合するコンピュータ内の管理可能な機構のすべてにアクセスするための共通のメッセージベースのインターフェースをもたらし、温度、電圧、ファン速度、シャーシ侵入、および他のパラメータを読み取るための所定コマンドの豊富なセットを含む。システム・イベント・ログ、ハードウェアウォッチドッグ、および電力制御も、IPMIを通じてアクセスされ得る。このように、IPMIは、オペレーティングシステムを通じて、または、ネットワークもしくは直列接続のような外部接続を通じてBMCによって収集される様々なパラメータにアクセスするためのプロトコルを定義する。BMCは、ローカルに接続されている管理コンピュータからシステムインターフェースを通じて、または、ネットワークインターフェースを通じた外部要求として、IPMI命令または要求を受信することができる。
特定の実施形態において、BMC120は、中でも、仮想媒体モジュール122と、ウェブ・ソケット・モジュール124と、ウェブ・サーバ・モジュール126とを含む。仮想媒体モジュール122は、物理記憶媒体を、あたかもホストコンピュータ110に物理的に取り付けられているかのようにエミュレートすることができる。ウェブ・ソケット・モジュール124は、単一の伝送接続プロトコル(TCP)接続を介してウェブ・ソケット・プロトコルの下で全二重通信チャネルを確立することができる。ウェブ・サーバ・モジュール126は、インターネットを通じてアクセス可能なウェブコンテンツを提供することができる。モジュールの詳細は後述する。
さらに、ホストコンピュータ110は、ホストコンピュータ110のOS(図示せず)および他のアプリケーションを記憶するためのデータ記憶媒体である記憶装置114と、少なくとも1つのI/Oデバイス116とを含む。記憶装置114の例は、フラッシュメモリ、メモリカード、USBドライブ、ハードドライブ、フロッピーディスク、光学式ドライブ、または任意の他のタイプのデータ記憶デバイスを含んでもよい。I/Oデバイス116の例は、キーボード、タッチパッド、マウス、マイクロフォン、表示スクリーン、タッチスクリーン、またはホストコンピュータ110に適用可能な他のI/Oデバイスを含む。
コンピューティングデバイス140は、ネットワーク130を介してホストコンピュータ110に遠隔して接続される。システム100は、ホストコンピュータ110に同時に遠隔して接続される複数のコンピューティングデバイス140を含んでもよいことを、当業者は諒解されよう。コンピューティングデバイス140の例は、たとえば、スマートフォン、タブレットまたは他のモバイル・コンピュータ・デバイスのような携帯デバイスを含んでもよい。
コンピューティングデバイス140は、CPU171と、メモリ173と、記憶装置142とを含む。記憶装置142は、コンピューティングデバイス140のOSおよび他のアプリケーションを記憶するためのデータ記憶媒体である。コンピューティングデバイス140の記憶装置142の例は、フラッシュメモリ、メモリカード、USBドライブ、ハードドライブ、フロッピーディスク、光学式ドライブ、または任意の他のタイプのデータ記憶デバイスを含んでもよい。
ブラウザプログラム143がメモリ173内にロードされ、コンピューティングデバイス140のCPU171によって実行され得る。ブラウザプログラム143は、ユーザに対する情報資源を取り出し、提示し、トラバースするためのソフトウェアアプリケーションである。さらに、ブラウザプログラム143は、ホストコンピュータ110と通信するための、システム100の仮想媒体リダイレクトクライアントとしての役割を果たすことができる。概して、ブラウザプログラム143は、インターネットのようなオープンネットワーク上で提供される情報資源を取り出すことができる。情報資源は、ウェブページ、画像、ビデオまたは他のタイプのデータコンテンツを含んでもよい。
さらに、メモリ173は、OS144およびウェブ・ソケット・モジュール145をロードすることができる。ウェブ・ソケット・モジュール145は、ホストコンピュータ110上のBMC120のウェブ・ソケット・モジュール124に対応するモジュールであり、それによって、ホストコンピュータ110とコンピューティングデバイス140との間にウェブ・ソケット・プロトコルの下での全二重通信チャネルを確立することができる。
さらに、コンピューティングデバイス140は、少なくとも1つのI/Oデバイス146を有する。I/Oデバイス146の例は、キーボード、タッチパッド、マウス、マイクロフォン、表示スクリーン、タッチスクリーン、またはコンピューティングデバイス140に適用可能な他のI/Oデバイスを含む。タッチスクリーンのようないくつかのI/Oデバイスは、コンピューティングデバイス140のための二重入出力を目的として提供される。
ブラウザプログラム143を使用したウェブページおよび他のデータコンテンツのような情報資源の表示に関して、ハイパーテキストマークアップ言語(HTML)が、ウェブページ、および、ブラウザプログラム143において表示することができる他の情報を表示するためのウェブベース言語フォーマットにおける標準的なマークアップ言語である。HTMLフォーマットにあるデータは、ウェブページコンテンツ内で、山括弧に囲まれているHTML要素または「タグ」の形式(<html>など)で書かれる。現在、HTMLフォーマットは、市場でのブラウザプログラムのほぼすべてによって広く採用されており、したがって、コンピューティングデバイス140側のブラウザプログラム143とホストコンピュータ110側のBMC120のウェブサーバ126との間の通信命令のウェブベース言語フォーマットとして適している。
概して、JavaScriptのようなスクリプト言語が、ユーザインターフェースの入力および出力を制御するために、HTMLフォーマット言語に加えて使用される。さらに、HTML言語の現在開発されている改正であるHTML5が、ウェブ・アプリケーション・ソフトウェア・メソッド、および、ウェブブラウザを通じてデータを記憶するために使用されるプロトコルを利用する、ウェブストレージのための幅広い機能を提供する。より古い一般的に使用されているブラウザプログラムはHTML5フォーマットをサポートしていないが、HTML5フォーマットをサポートしているブラウザプログラムは、MOZILLA FIREFOX 1.5、GOOGLE CHROME 4.0、SAFARI 3.1、SAFARI MOBILE 3.2、OPERA 9.0、OPERA MOBILE 10.0、ANDROID BROWSER 2.1、およびINTERNET EXPLORER 9.0または、これらのブラウザプログラムのより新しいバージョンを含む。したがって、ブラウザプログラム143は、HTML5をサポートすることができ、上記に挙げたブラウザプログラムのうちの1つとすることができる。
ブラウザプログラム143は、ハイパーテキスト転送プロトコル(HTTP)を使用してBMCにあるウェブサーバ126と通信することができる。具体的には、ブラウザプログラム143は、ウェブサーバ126にHTTP要求を送信することができる。HTTP要求を受信すると、サーバは、ブラウザプログラムに、HTTP要求に応答したHTTP応答を送信する。
ウェブサーバ126は一般的に、HTTPの下でのブラウザプログラム143へのデータ送信を開始することができない。ウェブソケットが、単一のTCP接続を介した全二重通信チャネルを提供することができ、それによって、サーバはクライアントに命令または情報をアクティブに送信することができる。ウェブソケットはHTML5に組み込まれており、したがって、HTML5を実装するウェブブラウザおよびサーバによってサポートされる。
図2は、本開示の一実施形態による、ホストコンピュータ110とコンピューティングデバイス140との間にウェブソケット接続を確立するプロセスを示す。ウェブソケット接続は、HTTP接続と同様に開始するが、ホストコンピュータ110とブラウザプログラム124との間に連続的な双方向ウェブベース接続を提供する。ブラウザプログラム143がウェブソケット接続を確立しようとするとき、ブラウザプログラム143は、ウェブ・ソケット・モジュール145に、BMC120のウェブ・ソケット・モジュール124のポート80(デフォルトHTTPポート)またはポート443(HTTPSポート)にウェブ・ソケット・ハンドシェイク要求を送信するよう命令する。ウェブ・ソケット・ハンドシェイク要求は、HTTP要求において使用されるGETコマンドに類似しているが、より多くのウェブソケット命令を含み、「アップグレード」された要求と考えることができる。ウェブ・ソケット・ハンドシェイク要求を受信すると、ウェブサーバ126は、ウェブ・ソケット・ハンドシェイク要求内のアップグレードされた情報に従って、この要求がHTTP要求ではなくウェブ・ソケット・ハンドシェイク要求であると識別することができる。ウェブサーバ126は、ブラウザプログラム143にハンドシェイク応答メッセージを送信する。したがって、ブラウザプログラム143とウェブサーバ126との間にウェブソケット接続150を確立することができる。
図3Aおよび図3Bは、ウェブ・ソケット・ハンドシェイク要求とHTTP要求との間の比較を可能にし、図3AはGETコマンドを使用したHTTP要求の一例を示し、図3Bは、ウェブ・ソケット・ハンドシェイク要求の一例を示す。図3Aに示すように、HTTP要求の応答メッセージのヘッダ部分は、応答メッセージ内のコンテンツの情報を示し、text/htmlファイルであるコンテンツのタイプ、コンテンツファイルの長さ、およびコンテンツにおいて使用されている言語を含む。HTTP要求に対する応答メッセージのヘッダ部分の最後の行は、ホストコンピュータ110とブラウザプログラム124との間の接続が応答の終わりに閉じられることを示す。比較すると、図3Bに示すウェブ・ソケット・ハンドシェイク要求の最初の2行は、HTTP要求と同じGET命令を含む。ウェブ・ソケット・ハンドシェイク要求の以下の行は、ウェブ・ソケット・モジュール124に、通常のHTTP要求からウェブ・ソケット・プロトコルにアップグレードまたは切り替えるように通知するアップグレードされた情報を含む。さらに、HTTP要求に対する応答メッセージとは異なり、ウェブ・ソケット・ハンドシェイク要求に対するハンドシェイク応答メッセージのヘッダ部分は、応答の終わりに接続が閉じられることを示さない。
ウェブソケット接続150が設定されると、ウェブ・ソケット・モジュール124およびウェブ・ソケット・モジュール145の両方が、この接続を通じて他端へデータを送信することができる。データフォーマットは、JSONまたはXMLのような、任意の有効なUTF−8ストリングフォーマットであることができるが、所望に応じて他のデータフォーマットが使用されてもよい。
ウェブ・ソケット・モジュール124および145は、PHP Web Sockets、Java j Web Socket、Web−Socket−ruby、Socket IO−node、または他のタイプのウェブ・ソケット・アプリケーションのような、様々なタイプおよび設計のものとすることができる。ウェブ・ソケット・モジュール124をホストコンピュータ110側のウェブ・ソケット・サーバとして設定するためには、ホストコンピュータ110および使用されるポート(ポート80およびポート443など)のドメイン名またはIPアドレスが、ホストコンピュータ110の位置を示すために提供されなければならず、ソケットの開放(すなわち、ウェブソケット接続)、ソケットにおけるハンドシェイク要求および他のメッセージの受信、またはソケットの閉鎖のような特定の「イベント」に応答して複数の命令が設定されなければならない。ウェブ・ソケット・サーバが設定されると、ウェブ・ソケット・クライアントは、通常のHTTPスキーム「http」の代わりにスキーム「ws」、または、通常のHTTPSスキーム「https」の代わりにスキーム「wss」で始まる統一資源位置指定子(URL)を使用してウェブ・ソケット・サーバに接続することができる。
図4Aおよび図4Bは、本開示の特定の実施形態によるウェブベースの仮想媒体リダイレクトの特徴を示す。図4Aに示すように、ホストコンピュータ110は、I/OデバイスとしてUSBポート115を含んでもよい。BMC120は、USBポート115によって確立されるUSB接続121を通じてホストコンピュータ110と通信し、USB接続121を通じてホストコンピュータ110向けに媒体記憶装置をエミュレートする仮想媒体モジュール122を有することができる。USB接続は、BMC120が、ホストコンピュータ110向けに、フロッピー、CD−ROM、またはハード・ディスク・ドライブのようなUSB大容量記憶デバイスをエミュレートすることを可能にする。特定の実施形態において、それらのエミュレートされたデバイスは、ホストコンピュータ110によってブートアップデバイスとして使用することができる。下記に詳細に説明するように、コンピューティングデバイス140は、ブートアップシーケンスを含み得るプログラムまたはデータをBMC120に提供することができる。BMC120は、それらのプログラムまたはデータを、エミュレートされたデバイスのプログラムまたはデータとしてホストコンピュータ110に提供することができる。特定の実施形態において、仮想媒体モジュール122がホストコンピュータ110向けにブートアップデバイスをエミュレートすると、ホストコンピュータ110は、BMC120に送信され、ブートアップデバイスのコンテンツとして使用される、コンピューティングデバイス140のプログラムおよびデータから起動することができる。明示的に示されていないが、ホストコンピュータ110およびコンピューティングデバイス140は、ウェブベースの仮想媒体リダイレクトを実施するための他の要素を含んでもよい。
一例として、BMC120は、USB接続上で、エミュレートされたCD−ROMデバイスのような、大容量記憶デバイスをエミュレートすることができる。エミュレートされたCD−ROMデバイスは、コンピューティングデバイス140上のISOイメージ148の内容を、ホストコンピュータ110にリダイレクトするのに利用することができる。エミュレートされたCD−ROMデバイスはまた、ホストコンピュータ110とBMCとの間の帯域外通信を提供するのに利用することもできる。エミュレートされたCD−ROMデバイスは、ホストコンピュータ110には標準的なUSB CD−ROMに見える。したがって、ホストコンピュータ110上で実行しているオペレーティングシステムは、CD−ROMデバイスと通信するために利用される、オペレーティングシステムに提供されている標準的なCD−ROMドライバを利用することができる。カスタム・ハードウェア・ドライバは不要とすることができる。
特定の実施形態において、コンピューティングデバイス140は、オペレーティングシステム144と、オペレーティングシステム144上で作動するブラウザプログラム143とを含む。さらに、コンピューティングデバイス140は、ISOイメージ148を記憶する記憶装置142を含む。ISOイメージ148は一般的に、ファイルシステムおよびデータを含む、光ディスクのアーカイブファイルまたはディスクイメージである。特定の実施形態において、ブラウザプログラム143はHTML5規格によってコンパイルし、ネイティブコールを一切使用することなく直にISOイメージ148を読み出すことができる。たとえば、ISOイメージ148の位置が与えられると、ブラウザプログラム143はOS144を直に利用して、ISOイメージ148にアクセスし、ISOイメージ148の内容を読み出すことができる。下記に詳細に説明するように、ブラウザプログラム143は、BMC120のウェブサーバ126において生成されるウェブページによって命令されるように、ファイルシステム構造(たとえば、ISOイメージ148内のファイルシステムのファイル名のリスト)および特定のファイルのデータのような、ISOイメージ148の情報をBMC120に送信することができる。情報は、ウェブソケットを通じてBMC120に通信することができる。情報を受信すると、BMC120は、仮想媒体モジュール122を利用して、その情報をエミュレートされた媒体のデータとして、ホストコンピュータ110に提供することができる。
図4Bは、本開示の特定の実施形態による、ホストコンピュータ110、BMC120、およびコンピューティングデバイス140の間の媒体リダイレクトの手順を示す。動作410において、ブラウザプログラム143が、ネットワークを介してBMC120に、仮想媒体リダイレクトウェブページを求める要求を送信する。要求は、HTTPフォーマットにあってもよい。仮想媒体リダイレクトウェブページを求める要求を受信すると、動作412において、BMC120のウェブサーバ126が、ブラウザプログラム143に仮想媒体リダイレクトウェブページを送信する。したがって、ブラウザプログラム143は、仮想媒体リダイレクトウェブページを表示することができ、コンピューティングデバイス140のユーザが、動作414において、BMC120によってエミュレートされることになる仮想媒体の構成情報を入力または選択することを可能にする。仮想媒体の構成情報は、BMC120によってエミュレートされることになる仮想媒体のタイプ、および、エミュレートされる仮想媒体の内容としてエミュレートされることになるコンピューティングデバイス140上のデータを含み得る。特定の実施形態において、仮想媒体ウェブページは、ユーザがそこから選択するための、記憶装置142内のISOイメージファイルのリスト、および、様々なタイプの仮想媒体、たとえば、CD−ROM、SDメモリ、USBドライブなどのリストを提供することができる。たとえば、ブラウザプログラム143によってレンダリングされる仮想媒体リダイレクトウェブページは、JavaScriptを使用して、ブラウザプログラム143に、コンピューティングデバイス140のファイルシステムにアクセスして利用可能なISOイメージのリストを得るよう命令することができる。
動作414において、ユーザは、ブラウザプログラム143においてレンダリングされる仮想媒体リダイレクトウェブページを通じて仮想媒体モジュールを構成することができる。たとえば、ユーザは、ホストコンピュータ110向けにCD−ROMをエミュレートして、ISOイメージ148のデータをエミュレートされたCD−ROMのデータとして使用するようにBMC122を構成することができる。ユーザが構成情報を入力した後、動作416において、ブラウザプログラム143は、ユーザ入力に従って、選択されたデータ、たとえば、記憶装置142内に記憶されているISOイメージ148にアクセスすることができる。たとえば、ブラウザプログラム143は、仮想媒体リダイレクトウェブページ内に含まれているJavaScriptを実行し、それに応じて、選択されたISOイメージ148にアクセスするよう命令される。その後、動作418において、ブラウザプログラム143は、仮想媒体モジュール122を設定するためのユーザ命令を、BMC120のウェブサーバ126に送信する。ユーザ命令を受信すると、動作420において、仮想媒体モジュール122は、要求されたタイプの仮想媒体(たとえば、CD−ROM)を、ホストコンピュータ110向けにエミュレートする。
ホストコンピュータ110がエミュレートされた仮想媒体を検出し、それを現実の物理媒体と認識すると、動作422において、ホストコンピュータ110は、エミュレートされた仮想媒体のファイル情報を読み出そうとし得る。特定の実施形態において、ファイル情報は、ファイルシステム構造、たとえば、仮想媒体のファイル名のリストを含む。ファイルシステム構造を求める要求を受信すると、動作424において、仮想媒体モジュール122は、ウェブサーバに、HTTP応答メッセージ、たとえば、ISOイメージ148のファイルシステム構造を要求するJavaScriptを有するウェブページを、ブラウザプログラム143に送信するよう命令することができる。ブラウザプログラム143がHTTP応答メッセージを受信すると、動作426において、ブラウザプログラム143は、たとえば、JavaScriptによって命令されるように、記憶装置142内に記憶されているISOイメージ148にアクセスして、ファイルシステム構造を取り出す。
その後、動作428において、ブラウザプログラム143が、ウェブサーバ126に、ウェブ・ソケット・プロトコルの下での通信チャネルを確立することを求めるウェブ・ソケット・ハンドシェイク要求を送信する。ウェブ・ソケット・ハンドシェイク要求を受信すると、動作430において、ウェブサーバ126は、BMC120にあるウェブ・ソケット・モジュール124に、ウェブソケットを開放するよう命令する。同様に、動作432において、ブラウザプログラム143は、コンピューティングデバイス140にあるウェブ・ソケット・モジュール145に、ウェブソケットを開放するよう命令する。動作434において、ウェブ・ソケット・モジュール124とウェブ・ソケット・モジュール145との間にウェブソケット接続(または通信チャネル)が確立され得る。
ウェブソケット接続が確立されると、動作436において、ブラウザプログラム143が、動作426において取り出されたファイルシステム構造を、ウェブ・ソケット・モジュール145に送信する。動作438において、コンピューティングデバイス140にあるウェブ・ソケット・モジュール145が、ウェブソケット接続を通じてBMC120にあるウェブ・ソケット・モジュール124にファイルシステム構造を送信する。動作440において、ウェブ・ソケット・モジュール124が、BMC120のウェブサーバ126にファイルシステム構造を送信する。その後、ウェブサーバ126が、仮想媒体モジュール122にファイルシステム構造を送信する。仮想媒体モジュール122は、動作422においてホストコンピュータ110によって開始される、仮想媒体モジュールによってエミュレートされた仮想媒体を対象とするファイルシステム構造読み出し動作の結果として、動作442においてホストコンピュータ110にファイルシステム構造を提供する。したがって、ホストコンピュータ110は、仮想媒体のエミュレートされたファイルシステム構造を得、仮想媒体からファイルおよびデータを要求することができる。
ホストコンピュータ110がエミュレートされた仮想媒体から特定のファイルを読み出すことを試行すると、動作444において、仮想媒体モジュール122が、ホストコンピュータ110によって開始されるそのような読み出し動作を受信する。仮想媒体モジュール122はその後、ウェブサーバ126に、特定のファイルを求めるホストコンピュータ110の要求を指示する。ウェブサーバ126は、その後、ウェブソケット接続150を通じてブラウザプログラム143に、ファイルを求める要求を送信する。具体的には、動作446において、ウェブサーバ126が、ウェブ・ソケット・モジュール124に要求を送信する。動作448において、ウェブ・ソケット・モジュール124が、ウェブソケット接続を通じてウェブ・ソケット・モジュール145に要求を送信する。その後、動作450において、ウェブ・ソケット・モジュール145が、ブラウザプログラム143に要求を送信する。要求を受信すると、動作452において、ブラウザプログラム143は、ウェブサーバ126によって生成されるような、および、ブラウザプログラム143によって現在レンダリングされているような、ウェブページ内のイベントをハンドリングするように定義されているルーチンを実行する。たとえば、ルーチンは、ブラウザプログラム143に、ウェブソケット接続を通じて受信された要求に従って、記憶装置142内に記憶されているISOイメージ148にアクセスして、要求において指定されているファイルを取り出すよう命令することができる。
要求されたファイルが取り出されると、ブラウザプログラム143は、レンダリングされているウェブページによって命令されるように、ウェブソケット接続150を通じてBMC120に取り出されたファイルを送信することができる。たとえば、ウェブページは、ウェブソケット接続150を通じてデータを送信するsocket.send(”data”)のようなJavaScript関数を含み得る。具体的には、動作454において、ブラウザプログラム143が、ウェブ・ソケット・モジュール145にファイルを送信する。動作456において、ウェブ・ソケット・モジュール145が、ウェブソケット接続150を通じてウェブ・ソケット・モジュール124にファイルを送信する。動作458において、ウェブ・ソケット・モジュール124が、BMC120にあるウェブサーバ126にファイルを送信する。その後、ウェブサーバ126が、仮想媒体モジュール122にファイルを送信する。仮想媒体モジュール122は、動作444においてホストコンピュータ110によって開始される、仮想媒体モジュール122によってエミュレートされた仮想媒体を対象とする読み出しコマンドの結果として、動作442においてホストコンピュータ110にファイルを提供する。したがって、ホストコンピュータ110は、エミュレートされた仮想媒体からファイルを読み出すことができる。
図5Aおよび図5Bは本開示の別の実施形態によるウェブベースの仮想媒体リダイレクトの特徴を概略的に示す。この例において、ホストコンピュータ110、BMC120、コンピューティングデバイス140は、下記に説明するいくつかの差はあるが、図4Aに示すものと同様の構成を有する。コンピューティングデバイス140は、I/Oポート146を通じてコンピューティングデバイス140に接続されている記憶装置147、たとえば、記憶装置142から分離されている個別の大容量記憶デバイスを有することができる。記憶装置147は、ISOイメージフォーマットには記憶されないファイルを有することができる。たとえば、少なくとも1つのファイル149が記憶装置147内に記憶される。記憶装置147の例は、USBドライブ、ハードドライブ、フロッピーディスク、光学式ドライブ、または任意の他の適切なタイプのデータ記憶デバイスを含んでもよい。
特定の実施形態において、ブラウザプログラム143は、ネイティブコールを使用して、記憶装置147のファイルシステム構造およびファイルを取り出すことができる。たとえば、ブラウザプログラム143は、ブラウザプログラムを操作しているユーザの許可を得てBMC120からダウンロードされるJavaオブジェクトを実行することができるJavaバーチャルマシン(JVM)を含むことができる。Javaオブジェクトは、Java Native Interface(JNI)関数を呼び出すことができる。JNIは、JVM上で作動しているJavaコードが、ネイティブアプリケーション(ハードウェアおよびオペレーティング・システム・プラットフォームに特有のプログラム)、および、C、C++およびアセンブリのような他の言語で書かれたライブラリを呼び出し、またそれらによって呼び出されることを可能にするプログラミングフレームワークである。JNI関数は、システムコールのようなオペレーティングシステムの機能にアクセスすることを可能にすることができる。BMC120は、Javaオブジェクト164を含むことができ、Javaオブジェクト164は、コンパイル済みであり、ブラウザプログラム143によって、たとえば、JVMによってサポートされるJNI関数を通じてコンピューティングデバイス140のデータにアクセスするために呼び出すことができる関数を定義する。一例において、Javaオブジェクト164は、JNI関数を利用して、指定された媒体ソースのファイルシステム構造およびファイルを取り出すイメージマウント関数を定義する。BMC120のウェブサーバ126によって生成され、ブラウザプログラム143によってレンダリングされるウェブページは、ブラウザプログラムに、JVM上のJavaオブジェクト164を実行し、Javaオブジェクト164のイメージマウント関数を呼び出して記憶装置147のファイルシステムにアクセスするよう命令するJavaScriptルーチンを有することができる。
図5Bは、本開示の特定の論旨による、ホストコンピュータ110、BMC120、およびコンピューティングデバイス140の間の媒体リダイレクトの手順を示す。動作510において、ブラウザプログラム143が、ネットワークを介してBMC120に、仮想媒体リダイレクトウェブページを求める要求を送信する。要求は、HTTPフォーマットにあってもよい。要求を受信すると、動作512において、BMC120のウェブサーバ126が、ブラウザプログラム143に仮想媒体リダイレクトウェブページを送信する。したがって、ブラウザプログラム143は、仮想媒体リダイレクトウェブページを表示することができ、コンピューティングデバイス140のユーザが、動作514において、BMC120によってエミュレートされることになる仮想媒体の構成情報を入力または選択することを可能にする。仮想媒体の構成情報は、BMC120によってエミュレートされることになる仮想媒体のタイプ、および、エミュレートされる仮想媒体の内容としてエミュレートされることになるコンピューティングデバイス140上のデータを含み得る。特定の実施形態において、仮想媒体ウェブページは、ユーザがそこから選択するための、利用可能な媒体ソースのリスト、および、様々なタイプの仮想媒体、たとえば、CD−ROM、SDメモリ、USBドライブなどのリストを提供することができる。
下記に説明するように、特定の実施形態において、ブラウザプログラム143によってレンダリングされる仮想媒体リダイレクトウェブページは、JavaScriptを使用して、ブラウザプログラム143に、コンピューティングデバイス140の記憶装置147のファイルシステムにアクセスするよう命令することができる。
動作514において、ユーザは、ブラウザプログラム143においてレンダリングされる仮想媒体リダイレクトウェブページを通じて仮想媒体モジュール122を構成することができる。たとえば、ユーザは、ホストコンピュータ110向けにCD−ROMをエミュレートして、記憶装置147のデータをエミュレートされたCD−ROMの内容として使用するようにBMC122を構成することができる。
ユーザが構成情報を入力し、ネイティブライブラリおよびファイルシステムへのアクセスを承認した後、動作516において、ブラウザプログラム143は、仮想媒体モジュール122を設定するためにユーザ命令を、BMC120のウェブサーバ126に送信する。ウェブサーバ126からユーザ命令を受信すると、仮想媒体モジュール122は、それに応じて、要求されたタイプの仮想媒体(たとえば、CD−ROM)を、ホストコンピュータ110向けにエミュレートする。
動作518において、リダイレクトウェブページは、ブラウザプログラム143に、BMC120にあるウェブサーバ126からJavaオブジェクト164をダウンロードするよう命令する。安全上の理由から、一般的に、ブラウザプログラム143は、Javaオブジェクト164をダウンロードおよび実行する前に、ユーザの許可を求める。ユーザの許可によって、ブラウザプログラム143は、ウェブサーバ126からJavaオブジェクト164をダウンロードする。Javaオブジェクト164を受信すると、動作520において、ブラウザプログラム143は、JVMのようなJava実行環境を起動することができる。
その間、ユーザ命令を受信すると、動作522において、仮想媒体モジュール122は、要求されたタイプの仮想媒体(たとえば、CD−ROM)を、ホストコンピュータ110向けにエミュレートする。ホストコンピュータ110がエミュレートされた仮想媒体を検出し、それを現実の物理媒体と認識すると、動作524において、ホストコンピュータ110は、エミュレートされた仮想媒体のファイル情報を読み出そうとし得る。特定の実施形態において、ファイル情報は、ファイルシステム構造、たとえば、仮想媒体のファイル名のリストを含む。ファイルシステム構造を求める要求を受信すると、動作526において、仮想媒体モジュール122は、ウェブサーバ126に、HTTP応答メッセージ、たとえば、選択される媒体ソース(たとえば、コンピューティングデバイス140のUSBドライブ)のファイルシステム構造を要求するJavaScriptを有するウェブページを、ブラウザプログラム143に送信するよう命令することができる。ブラウザプログラム143がHTTP応答メッセージを受信すると、動作528において、ブラウザプログラム143は、たとえば、JavaScriptによって命令されるように、選択される媒体ソース147にアクセスして、ファイルシステム構造を取り出すよう試行する。より具体的には、ウェブページ内のJavaScriptが、ブラウザプログラム143に、BMC120にあるウェブサーバ126からダウンロードされるJavaオブジェクト164を使用して、選択される媒体ソース147にアクセスするよう命令することができる。それに応じて、ブラウザプログラムは、ブラウザプログラム143のJVM166上のJavaオブジェクト164を起動または実行する。JavaScriptは、ブラウザプログラム143に、上述したイメージマウント関数を呼び出して、選択される媒体ソース147から情報を取り出すよう命令することができる。動作530において、Javaオブジェクト164は、イメージマウント関数において定義されるルーチンに従って、JNI関数162を呼び出して、システムコールのような、オペレーティングシステムの関数を使用して、選択される媒体ソース147からファイルシステム構造を取り出すことができる。動作534において、JNI関数162は、ブラウザプログラム143のJVM166上で作動しているJavaオブジェクト164に、ファイルシステム構造を返す。
その後、動作536において、ブラウザプログラム143が、ウェブサーバ126に、ウェブ・ソケット・プロトコルの下での通信チャネルを確立することを求めるウェブ・ソケット・ハンドシェイク要求を送信する。ウェブ・ソケット・ハンドシェイク要求を受信すると、動作538において、ウェブサーバ126は、BMC120にあるウェブ・ソケット・モジュール124に、ウェブソケットを開放するよう命令する。同様に、動作540において、ブラウザプログラム143は、ウェブ・ソケット・モジュール145に、ウェブソケットを開放するよう命令する。動作542において、ウェブ・ソケット・モジュール124とウェブ・ソケット・モジュール145との間にウェブソケット接続が確立され得る。
特定の実施形態において、ウェブソケット接続が確立されると、動作544において、Javaオブジェクト164は、記憶装置147(すなわち、選択される媒体)のファイルシステム構造をブラウザプログラム143に返す。その後、ブラウザプログラム143は、たとえば、リダイレクトウェブページ内のJavaScriptによって命令されるように、ウェブソケット接続150を通じてホストコンピュータ110に、記憶装置147のファイルシステム構造を送信する。JavaScriptルーチンは、socket.send(”data”)のようなコードを含むことができる。具体的には、動作546において、ブラウザプログラム143が、ウェブ・ソケット・モジュール145にファイルシステム構造を送信する。動作548において、ウェブ・ソケット・モジュール145が、ウェブソケット接続150を通じてウェブ・ソケット・モジュール124にファイルシステム構造を送信する。動作550において、ウェブ・ソケット・モジュール124が、BMC120のウェブサーバ126にファイルシステム構造を送信する。その後、ウェブサーバ126が、仮想媒体モジュール122にファイルシステム構造を送信する。仮想媒体モジュールは、動作524においてホストコンピュータ110によって開始される、仮想媒体モジュール122によってエミュレートされた仮想媒体を対象とするファイルシステム構造読み出しコマンドの結果として、動作552においてホストコンピュータ110にファイルシステム構造を提供する。したがって、ホストコンピュータ110は、仮想媒体のエミュレートされたファイルシステム構造を得、仮想媒体からファイルおよびデータを要求することができる。
ホストコンピュータ110がエミュレートされた仮想媒体から特定のファイルを読み出すことを試行すると、動作554において、仮想媒体モジュール122が、ホストコンピュータ110によって開始されるそのような読み出しコマンドを受信する。仮想媒体モジュール122はその後、ウェブサーバ126に、要求特定のファイルを指示する。ウェブサーバ126は、その後、ウェブソケット接続150を通じてブラウザプログラム143に、ファイルを求める要求を送信する。具体的には、動作556において、ウェブサーバ126が、ウェブ・ソケット・モジュール124に要求を送信する。動作558において、ウェブ・ソケット・モジュール124が、ウェブソケット接続を通じてウェブ・ソケット・モジュール145に要求を送信する。その後、動作560において、ウェブ・ソケット・モジュール145が、ブラウザプログラム143に要求を送信する。要求を受信すると、動作562において、ブラウザプログラム143は、ウェブサーバ126によって生成されるような、および、ブラウザプログラム143によって現在レンダリングされているような、ウェブページ内のイベントをハンドリングするように定義されているルーチンを実行する。たとえば、ルーチンは、ブラウザプログラム143に、ウェブソケット接続を通じて受信された要求に従って、選択される媒体ソース147にアクセスして、要求において指定されているようにファイルを取り出すよう命令することができる。
要求を受信すると、動作562において、ブラウザプログラム143は、たとえば、JavaScriptによって命令されるように、選択される媒体ソース147にアクセスして要求されたファイル149を取り出すよう試行する。より具体的には、リダイレクトウェブページ内のJavaScriptが、ブラウザプログラム143に、BMC120にあるウェブサーバ126からダウンロードされるJavaオブジェクトを使用して、選択される媒体ソース147にアクセスするよう命令することができる。それに応じて、ブラウザプログラムは、ブラウザプログラム143のJVM166上のJavaオブジェクト164を起動または実行する。JavaScriptは、ブラウザプログラム143に、ファイル取り出し関数を呼び出して、選択される媒体ソース147から指定されたファイルを取り出すよう命令することができる。動作564において、Javaオブジェクト164は、ファイル取り出し関数において定義されるルーチンに従って、JNI関数を呼び出して、システムコールのような、オペレーティングシステムの関数を使用して、選択される媒体ソース147から要求されたファイル149を取り出すことができる。動作568において、JNI関数162は、ブラウザプログラム143のJVM166上で作動しているJavaオブジェクト164に、ファイルを返す。動作570において、Javaオブジェクト164は、ブラウザプログラム143にファイル149を送信する。
動作572において、ブラウザプログラム143が、ウェブ・ソケット・モジュール145にファイル149を送信する。動作574において、ウェブ・ソケット・モジュール145が、ウェブソケット接続を通じてウェブ・ソケット・モジュール124にファイル149を送信する。動作576において、ウェブ・ソケット・モジュール124が、BMC120のウェブサーバ126にファイル149を送信する。その後、ウェブサーバ126が、仮想媒体モジュール122にファイル149を送信する。仮想媒体モジュール122は、動作554においてホストコンピュータ110によって開始される、仮想媒体モジュールによってエミュレートされた仮想媒体を対象とするファイル読み出しコマンドの結果として、動作578においてホストコンピュータ110にファイル149を提供する。このように、ホストコンピュータ110は、仮想媒体からファイル149を得る。
本開示の例示的な実施形態の上記の記載は、例示および説明のみを目的として提示されており、網羅的であること、または、本発明の開示されている厳密な形式に限定するようには意図されていない。上記の教示に照らして多くの修正および変形が可能である。
実施形態は、当業者が、本発明および様々な実施形態を、企図されている特定の用途に適するように様々な修正を施して利用するよう活性化するように、本発明の原理およびその実際の適用を説明するために選択および記載されている。代替的な実施形態が、本発明の精神および範囲から逸脱することなく、本発明が属する技術分野における当業者には明らかとなろう。たとえば、複数のプローブを同時に利用して本発明を実施してもよい。したがって、本開示の範囲は、上記の記載および本明細書に記載されている例示的な実施形態ではなく、添付の特許請求の範囲によって画定される。

Claims (20)

  1. 仮想媒体リダイレクトを実施する方法であって、
    ベースボード管理コントローラ(BMC)のウェブサーバとネットワーク内のコンピューティングデバイスのブラウザプログラムとの間にウェブソケット接続を確立することであって、前記BMCはホストコンピュータの管理機能を実施する、ことと、
    前記BMCにおいて、前記ホストコンピュータ向けに仮想媒体をエミュレートすることと、
    前記BMCにおいて、前記ホストコンピュータからの、前記エミュレートされた仮想媒体を対象とする読み出しコマンドを受信することであって、前記読み出しコマンドは第1のファイルを指定する、ことと、
    前記読み出しコマンドに応答して、前記BMCにおいて、前記ウェブソケット接続を通じて前記ブラウザプログラムに、前記読み出しコマンドに従って前記第1のファイルを求める要求を送信することと、
    前記ウェブサーバにおいて、前記ブラウザプログラムから前記ウェブソケット接続を通じて前記第1のファイルを受信することを含む、方法。
  2. 前記BMCのウェブ・ソケット・モジュールにおいて、前記コンピューティングデバイスのウェブ・ソケット・モジュールからウェブ・ソケット・ハンドシェイク要求を受信することと、
    前記BMCの前記ウェブ・ソケット・モジュールによって、前記ウェブソケット接続を確立するために、前記ウェブ・ソケット・ハンドシェイク要求に応答したハンドシェイク応答メッセージを、前記コンピューティングデバイスの前記ウェブ・ソケット・モジュールに送信し返すことを含む、請求項1に記載の方法。
  3. 前記BMCの前記ウェブサーバにおいて、リダイレクトウェブページを生成することであって、前記リダイレクトウェブページは、前記ブラウザプログラムに、前記コンピューティングデバイスの記憶装置内のファイルまたはファイルシステム構造にアクセスするよう命令するようにプログラムされている、ことと、
    前記ウェブサーバにおいて、前記ブラウザプログラムに前記リダイレクトウェブページを送信することを含む、請求項1に記載の方法。
  4. 前記リダイレクトウェブページは、前記ブラウザプログラムに、
    前記要求に従って前記記憶装置から前記第1のファイルを取り出すことと、
    前記ウェブソケット接続を通じて前記ウェブサーバに前記第1のファイルを送信することを行うよう命令するようにプログラムされている、請求項3に記載の方法。
  5. 前記方法は、前記ウェブサーバにおいて、ブラウザプログラムにjavaオブジェクトを送信することを含み、前記javaオブジェクトは、前記ブラウザプログラムが、前記記憶装置内のファイルにアクセスすることを可能にする関数を提供するためにコンパイルされ、前記javaオブジェクトは、Java Native Interface関数を呼び出して前記記憶装置内の前記ファイルにアクセスするためにコンパイルされ、前記リダイレクトページは、前記ブラウザプログラムに、前記javaオブジェクトをダウンロードするよう命令するようにプログラムされている、請求項3に記載の方法。
  6. 前記リダイレクトページは、前記ブラウザプログラムに、前記記憶装置内のISOイメージからファイルまたはファイルシステム構造にアクセスするよう命令するようにプログラムされており、前記第1のファイルは前記ISOイメージ内に位置する、請求項3に記載の方法。
  7. 前記記憶装置は、前記コンピューティングデバイスの外部の記憶装置である、請求項3に記載の方法。
  8. 前記リダイレクトページは、前記ブラウザプログラムに、前記ウェブソケット接続を通じて前記ウェブサーバに、前記記憶装置内の選択された媒体のファイルシステム構造またはファイルを送信するよう命令するようにプログラムされている、請求項3に記載の方法。
  9. 前記BMCによってエミュレートされる前記仮想媒体が前記ホストコンピュータに対して、入出力(I/O)ポートを通じてアクセス可能であるように、前記BMCを、前記ホストコンピュータの前記I/Oポートに接続することをさらに含む、請求項1に記載の方法。
  10. 前記I/OポートはUSBポートである、請求項に記載の方法。
  11. 前記ウェブソケット接続は安全なウェブソケット接続である、請求項1に記載の方法。
  12. ベースボード管理コントローラ(BMC)であって、
    前記BMCと、ネットワーク内のコンピューティングデバイスのブラウザプログラムとの間にウェブソケット接続を確立し、
    前記ブラウザプログラムから前記ウェブソケット接続を通じて第1のファイルを受信するように構成されている、ウェブサーバと、
    ホストコンピュータ向けに仮想媒体をエミュレートし、
    前記ホストコンピュータからの、前記エミュレートされた仮想媒体を対象とする読み出しコマンドを受信することであって、前記読み出しコマンドは第1のファイルを指定する、ことと、前記読み出しコマンドに応答して、前記ウェブソケット接続を通じて前記ブラウザプログラムに、前記読み出しコマンドに従って前記第1のファイルを求める要求を送信することとを行うように構成されている、リダイレクトモジュールとを備え、
    前記BMCは、ホストコンピュータの管理機能を実施する、BMC。
  13. 前記ウェブサーバは、
    リダイレクトウェブページを生成することであって、前記リダイレクトウェブページは、前記ブラウザプログラムに、前記コンピューティングデバイスの記憶装置内のファイルまたはファイルシステム構造にアクセスするよう命令するようにプログラムされている、ことと、
    前記ブラウザプログラムに前記リダイレクトウェブページを送信することを行うように構成されており、
    前記ウェブサーバは、前記ブラウザプログラムにjavaオブジェクトを送信するように構成されており、前記javaオブジェクトは、前記ブラウザプログラムが、前記記憶装置内のファイルにアクセスすることを可能にする関数を提供するためにコンパイルされ、前記javaオブジェクトは、Java Native Interface関数を呼び出して前記記憶装置内の前記ファイルにアクセスするためにコンパイルされ、前記リダイレクトページは、前記ブラウザプログラムに、前記javaオブジェクトをダウンロードするよう命令するようにプログラムされており、
    前記リダイレクトページは、前記ブラウザプログラムに、前記記憶装置内の選択される媒体のファイルシステム構造またはファイルを、前記ウェブソケット接続を通じて前記ウェブサーバに送信するよう命令するようにプログラムされている、請求項12に記載のBMC。
  14. コンピュータ実行可能命令が記憶されている持続性コンピュータ記憶媒体であって、ベースボード管理コントローラ(BMC)のプロセッサによって実行されると、前記コンピュータ実行可能命令は、前記プロセッサに、
    前記BMCのウェブサーバとネットワーク内のコンピューティングデバイスのブラウザプログラムとの間にウェブソケット接続を確立することであって、前記BMCはホストコンピュータの管理機能を実施する、ことと、
    前記ホストコンピュータ向けに仮想媒体をエミュレートすることと、
    前記ホストコンピュータからの、前記エミュレートされた仮想媒体を対象とする読み出しコマンドを受信することであって、前記読み出しコマンドは第1のファイルを指定する、ことと、
    前記読み出しコマンドに応答して、前記ウェブソケット接続を通じて前記ブラウザプログラムに、前記読み出しコマンドに従って前記第1のファイルを求める要求を送信することと、
    前記ウェブサーバにおいて、前記ブラウザプログラムから前記ウェブソケット接続を通じて前記第1のファイルを受信することを実行させる、持続性コンピュータ記憶媒体。
  15. 前記BMCのプロセッサによって実行されると、前記プロセッサに
    前記BMCのウェブ・ソケット・モジュールにおいて、前記コンピューティングデバイスのウェブ・ソケット・モジュールからウェブ・ソケット・ハンドシェイク要求を受信することと、
    前記BMCの前記ウェブ・ソケット・モジュールにおいて、前記ウェブソケット接続を確立するために、前記ウェブ・ソケット・ハンドシェイク要求に応答したハンドシェイク応答メッセージを、前記コンピューティングデバイスの前記ウェブ・ソケット・モジュールに送信し返すことを実行させる、前記持続性コンピュータ記憶媒体上に記憶されているコンピュータ実行可能命令をさらに含む、請求項14に記載の持続性コンピュータ記憶媒体。
  16. 前記BMCの前記プロセッサによって実行されると、前記プロセッサに、
    前記ウェブサーバにおいて、リダイレクトウェブページを生成することであって、前記リダイレクトウェブページは、前記ブラウザプログラムに、前記コンピューティングデバイスの記憶装置内のファイルまたはファイルシステム構造にアクセスするよう命令するようにプログラムされている、ことと、
    前記ウェブサーバにおいて、前記ブラウザプログラムに前記リダイレクトウェブページを送信することを実行させる、前記持続性コンピュータ記憶媒体上に記憶されているコンピュータ実行可能命令をさらに含む、請求項14に記載の持続性コンピュータ記憶媒体。
  17. 前記リダイレクトウェブページは、前記ブラウザプログラムに、
    前記要求に従って前記記憶装置から前記第1のファイルを取り出すことと、
    前記ウェブソケット接続を通じて前記ウェブサーバに前記第1のファイルを送信することを行うよう命令するようにプログラムされている、請求項16に記載の持続性コンピュータ記憶媒体。
  18. 前記持続性コンピュータ記憶媒体は、BMCのプロセッサによって実行されると、前記プロセッサに、前記ウェブサーバにおいて、ブラウザプログラムにjavaオブジェクトを送信することを実行させる、前記持続性コンピュータ記憶媒体上に記憶されているコンピュータ実行可能命令をさらに含み、前記javaオブジェクトは、前記ブラウザプログラムが、前記記憶装置内のファイルにアクセスすることを可能にする関数を提供するためにコンパイルされ、前記javaオブジェクトは、Java Native Interface関数を呼び出して前記記憶装置内の前記ファイルにアクセスするためにコンパイルされ、前記リダイレクトページは、前記ブラウザプログラムに、前記javaオブジェクトをダウンロードするよう命令するようにプログラムされている、請求項16に記載の持続性コンピュータ記憶媒体。
  19. 前記リダイレクトページは、前記ブラウザプログラムに、前記記憶装置内のISOイメージからファイルまたはファイルシステム構造にアクセスするよう命令するようにプログラムされており、前記第1のファイルは前記ISOイメージ内に位置し、
    前記記憶装置は、前記コンピューティングデバイスの外部の記憶装置であり、前記リダイレクトページは、前記ブラウザプログラムに、前記ウェブソケット接続を通じて前記ウェブサーバに、前記記憶装置内の選択された媒体のファイルシステム構造またはファイルを送信するよう命令するようにプログラムされている、請求項16に記載の持続性コンピュータ記憶媒体。
  20. 前記BMCの前記プロセッサによって実行されると、前記プロセッサに、前記BMCによってエミュレートされる前記仮想媒体が前記ホストコンピュータに対して、入出力(I/O)ポートを通じてアクセス可能であるように前記ホストコンピュータの前記I/Oポートと通信することを実行させる、前記持続性コンピュータ記憶媒体上に記憶されているコンピュータ実行可能命令をさらに含む、請求項14に記載の持続性コンピュータ記憶媒体。
JP2016500070A 2013-03-15 2013-03-15 ウェブベースの仮想媒体リダイレクトのシステムおよび方法 Active JP6203370B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
PCT/US2013/032521 WO2014143040A1 (en) 2013-03-15 2013-03-15 System and method of web-based virtual media redirection
US13/841,220 2013-03-15
US13/841,220 US9026635B2 (en) 2013-03-15 2013-03-15 System and method of web-based virtual media redirection

Publications (2)

Publication Number Publication Date
JP2016517070A JP2016517070A (ja) 2016-06-09
JP6203370B2 true JP6203370B2 (ja) 2017-09-27

Family

ID=51533578

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016500070A Active JP6203370B2 (ja) 2013-03-15 2013-03-15 ウェブベースの仮想媒体リダイレクトのシステムおよび方法

Country Status (4)

Country Link
US (1) US9026635B2 (ja)
EP (1) EP2972933B1 (ja)
JP (1) JP6203370B2 (ja)
WO (1) WO2014143040A1 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9386050B2 (en) 2013-03-14 2016-07-05 Motorola Solutions, Inc. Method and apparatus for filtering devices within a security social network
US9167048B2 (en) * 2013-03-14 2015-10-20 Motorola Solutions, Inc. Method and apparatus for filtering devices within a security social network
MX2016003821A (es) * 2013-09-23 2016-08-04 Samsung Electronics Co Ltd Metodo y aparato para ejecutar una aplicacion en un sistema de comunicacion inalambrico.
US9282072B1 (en) * 2014-11-14 2016-03-08 Quanta Computer Inc. Serial output redirection using HTTP
WO2016166183A1 (en) 2015-04-13 2016-10-20 Barco N.V. Browser based display system for displaying image data
US10466916B2 (en) * 2015-04-28 2019-11-05 American Megatrends International, Llc System and method of dynamic write protect of storage devices exposed by baseboard management controller (BMC)
US11750674B2 (en) 2015-05-05 2023-09-05 Penguin Computing, Inc. Ultra-low latency remote application access
US9756143B2 (en) * 2015-09-09 2017-09-05 American Megatrends, Inc. System and method for improving virtual media redirection speed in baseboard management controller (BMC)
US9992163B2 (en) 2015-12-14 2018-06-05 Bank Of America Corporation Multi-tiered protection platform
US9832200B2 (en) 2015-12-14 2017-11-28 Bank Of America Corporation Multi-tiered protection platform
US9832229B2 (en) 2015-12-14 2017-11-28 Bank Of America Corporation Multi-tiered protection platform
US11366800B2 (en) * 2016-08-22 2022-06-21 American Megatrends International, Llc System and method to automate validating media redirection in testing process
US10423472B2 (en) * 2017-05-17 2019-09-24 American Megatrends International, Llc System and method for providing extended javascript object notation (JSON) remote procedure call (RPC) with mediator
US10673953B2 (en) 2018-01-02 2020-06-02 Sap Se Transport channel via web socket for OData
KR102137891B1 (ko) * 2018-11-21 2020-07-24 전자부품연구원 Bmc 환경에서의 사용자 특화 운용 메커니즘에 의한 서버 관리 방법, 기록매체, 및 서버
CN110472178A (zh) * 2019-08-20 2019-11-19 北京博睿宏远数据科技股份有限公司 一种探针注入方法、装置、计算机设备及存储介质
CN110519391A (zh) * 2019-09-05 2019-11-29 曙光信息产业(北京)有限公司 文件传输方法、装置及可读存储介质
US11429395B2 (en) * 2020-01-02 2022-08-30 Jpmorgan Chase Bank, N.A. Peripheral device support in thin client environments
US11875168B2 (en) * 2020-03-19 2024-01-16 Oracle International Corporation Optimizing execution of foreign method handles on a virtual machine
JP2022041717A (ja) * 2020-09-01 2022-03-11 キヤノン株式会社 情報処理システム、情報処理システムの制御方法
US11775667B2 (en) * 2020-11-04 2023-10-03 Hewlett Packard Enterprise Development Lp Virtualizing secure storage of a baseboard management controller to a host computing device
US11949662B2 (en) * 2021-03-26 2024-04-02 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Virtual on-demand internet connectivity for management controllers
CN115048267A (zh) * 2022-06-20 2022-09-13 东土科技(宜昌)有限公司 网页服务监控、程序运行方法及装置、设备和介质

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5721842A (en) 1995-08-25 1998-02-24 Apex Pc Solutions, Inc. Interconnection system for viewing and controlling remotely connected computers with on-screen video overlay for controlling of the interconnection switch
US6378009B1 (en) 1998-08-25 2002-04-23 Avocent Corporation KVM (keyboard, video, and mouse) switch having a network interface circuit coupled to an external network and communicating in accordance with a standard network protocol
US8204082B2 (en) * 2000-06-23 2012-06-19 Cloudshield Technologies, Inc. Transparent provisioning of services over a network
US7945652B2 (en) 2002-08-06 2011-05-17 Sheng (Ted) Tai Tsao Display multi-layers list item in web-browser with supporting of concurrent multi-users
US7380113B2 (en) * 2002-05-17 2008-05-27 Xiotech Corporation Method for updating memory resident firmware as a background operation
US7818480B2 (en) 2002-08-29 2010-10-19 Raritan Americas, Inc. Wireless management of remote devices
US7590522B2 (en) * 2004-06-14 2009-09-15 Hewlett-Packard Development Company, L.P. Virtual mass storage device for server management information
US8180826B2 (en) 2005-10-31 2012-05-15 Microsoft Corporation Media sharing and authoring on the web
US7596756B2 (en) * 2005-12-14 2009-09-29 Vacava Inc. Browser session control system and method
US8868628B2 (en) * 2005-12-19 2014-10-21 International Business Machines Corporation Sharing computer data among computers
US8259135B2 (en) 2006-07-13 2012-09-04 Intel Corporation Rotated rendering and locking support for tablet computers and portrait displays
MX327792B (ja) * 2007-01-16 2015-02-11
US20080228865A1 (en) 2007-03-15 2008-09-18 Nazareno Brier Cruzada Electronic personal computing and videophone system consisting of a remote server system providing dynamic, subscription based virtual computing services & resources, a thin client hardware device connected to a television set and wireless keyboard & mouse, and a wireless mobile device (a Pocket PC Phone)
EP2153342A4 (en) 2007-05-11 2010-08-18 Raritan Americas Inc LOCAL PORT BROWSER INTERFACE
US8090819B1 (en) * 2007-05-31 2012-01-03 American Megatrends, Inc. Communicating with an in-band management application through an out-of band communications channel
US8635360B2 (en) * 2007-10-19 2014-01-21 Google Inc. Media playback point seeking using data range requests
WO2010134984A1 (en) * 2009-05-20 2010-11-25 Creative Ad Technology Proprietary Limited Methods and systems for delivering media to client device
US8528066B2 (en) * 2009-08-25 2013-09-03 Microsoft Corporation Methods and apparatus for enabling context sharing
US8635705B2 (en) * 2009-09-25 2014-01-21 Intel Corporation Computer system and method with anti-malware
US20110161721A1 (en) * 2009-12-30 2011-06-30 Dominic Fulginiti Method and system for achieving a remote control help session on a computing device
US8428929B2 (en) * 2010-09-30 2013-04-23 Intel Corporation Demand based USB proxy for data stores in service processor complex
US8533259B2 (en) 2011-01-27 2013-09-10 Rhythm NewMediaInc. Efficient real-time stitching of multimedia files
WO2013006561A1 (en) 2011-07-01 2013-01-10 Stoneware, Inc. Method and apparatus for application costing based on client hardware
US8903897B2 (en) * 2011-07-08 2014-12-02 Google Inc. System and method for providing interactive content to non-native application environments
JP6035715B2 (ja) * 2011-08-22 2016-11-30 日本電気株式会社 コンピュータシステム、情報処理システム、仮想メディア方法、および、プログラム
JP6145211B2 (ja) * 2013-03-15 2017-06-07 アメリカン メガトレンズ インコーポレイテッド ウェブベースのキーボード、ビデオおよびマウス(kvm)リダイレクトのシステムおよび方法ならびにその適用

Also Published As

Publication number Publication date
US9026635B2 (en) 2015-05-05
US20140280756A1 (en) 2014-09-18
EP2972933A4 (en) 2017-01-11
JP2016517070A (ja) 2016-06-09
EP2972933A1 (en) 2016-01-20
WO2014143040A1 (en) 2014-09-18
EP2972933B1 (en) 2018-07-04

Similar Documents

Publication Publication Date Title
JP6203370B2 (ja) ウェブベースの仮想媒体リダイレクトのシステムおよび方法
JP6145211B2 (ja) ウェブベースのキーボード、ビデオおよびマウス(kvm)リダイレクトのシステムおよび方法ならびにその適用
US9665469B2 (en) System and method of runtime downloading of debug code and diagnostics tools in an already deployed baseboard management controller (BMC) devices
US9182998B2 (en) Remote bios update in system having multiple computers
US9558007B2 (en) Out-of band configuration of BIOS setting data
US9778844B2 (en) Installation of operating system on host computer using virtual storage of BMC
US9043527B2 (en) PCI express channel implementation in intelligent platform management interface stack
JP6092249B2 (ja) 埋込まれたプロセス通信のための仮想チャネル
CN110780930B (zh) 启动Android系统的方法、装置、电子设备及存储介质
US10747549B2 (en) Proxy application to transfer application protocol requests over IOCTL commands
US10178170B2 (en) Browser-based virtual media administration
JP2010219725A (ja) ネットワーク装置および外部記憶装置をネットワーク上に公開する方法
BR112018007818B1 (pt) Método para atualização de modelo de sugestão e sistema de geração de sugestão acionado por máquina
JP6195465B2 (ja) 同期サーバ側スクリプティングを用いた遠隔カードコンテンツ管理
CN105051714A (zh) 基于网络的虚拟媒体重定向的系统和方法
US10805379B2 (en) Techniques of video update on a client based on browser status
US9519527B1 (en) System and method for performing internal system interface-based communications in management controller
US20150074224A1 (en) Method and apparatus for automatic reload of documents
KR101800280B1 (ko) 보안 페이지 실행 방법 및 이를 수행하는 단말
US10048970B2 (en) Portable boot configuration solution for thin client device
Barros Remote boot manager: operating system installer
de Sousa Barros Remote Boot Manager: Operating System Installer
KR101769510B1 (ko) 툴바를 통해 웹페이지 상의 객체를 업로드 하는 방법 및 서버
Wootton et al. Talking to Your ARTIK
WO2016067404A1 (ja) 計算機システム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170310

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170412

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170630

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170804

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170829

R150 Certificate of patent or registration of utility model

Ref document number: 6203370

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250