(58)【調査した分野】(Int.Cl.,DB名)
前記第一アダプタカードは第一SASコントローラーと第一拡張器とを有し、前記第一SASコントローラーは前記第一計算ノードに結合され、前記第一拡張器は、前記スイッチカードにより、前記サーバシステムの前記複数のSAS HDDに結合され、
前記第二アダプタカードは第二SASコントローラーと第二拡張器とを有し、前記第二SASコントローラーは前記第二計算ノードに結合され、前記第二拡張器は、前記スイッチカードにより、前記サーバシステムの前記複数のSAS HDDに結合されることを特徴とする請求項3に記載のサーバシステム。
第一計算ノードおよび第二計算ノードを備えたコンピュータシステムにおいて、フレキシブルなシリアルアタッチドSCSI(SAS)インターフェースおよびシリアルATA(SATA)インターフェースのうち少なくとも一つのサポートを提供するためのコンピュータで実現される方法であって、
前記コンピュータシステムの二またはそれ以上のアダプタカードであって、少なくとも一つのSASハードディスクドライブ、少なくとも一つのSATAハードディスクドライブ、または少なくとも一つのペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)固体ドライブをサポートする第一アダプタカードおよび第二アダプタカードを有する二またはそれ以上のアダプタカードからデータを受信する工程と、
前記二またはそれ以上のアダプタカードが、前記少なくとも一つのSASハードディスクドライブ、前記少なくとも一つのSATAハードディスクドライブ、または前記少なくとも一つのPCIe固体ドライブをサポートすることを判断する工程と、
前記二またはそれ以上のアダプタカードが、前記少なくとも一つのPCIe固体ドライブをサポートすると判断することに対応して、前記コンピュータシステムの一のスイッチカードのPCIeインターフェースを有効にするとともに、前記スイッチカードのその他のタイプのインターフェースを無効にする工程と、
前記二またはそれ以上のアダプタカードと、前記スイッチカードとを介して、前記コンピュータシステムの複数のSASハードディスクドライブと通信する工程と、
を有する方法。
【発明を実施するための形態】
【0013】
本発明の各種例は、スイッチカードおよびアダプタカードをサーバシステムに組み込んで、フレキシブルなHDDとSSDサポートを提供するシステムおよび方法を提供する。さらにとくに、サーバシステムは、少なくとも二つの異なるタイプのインターフェース(たとえば、シリアルアタッチドSCSI(SAS)インターフェース、シリアルATA(SATA)インターフェース、あるいは、ペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)インターフェース)を有するスイッチカード、および、第一中央処理装置(CPU)と第二CPUを有するコントローラーを有する。第一CPUが第一アダプタカードに接続され、第二CPUが第二アダプタカードに接続される。第一アダプタおよび第二アダプタは、サーバシステムのスイッチカードに結合される。コントローラーは、アダプタカードのタイプを検出するとともに、信号を送信して、スイッチカードに、対応するタイプのサーバシステムのストレージデバイスをサポートさせる。
【0014】
図1Aは、本発明の実施態様によるフレキシブルなHDDとSSDをサポートするシステム100Aのブロック図である。この例において、システム100AはSAS HDDをサポートする。システム100Aは、ストレージシステム102、コントローラー110およびアダプタカード(たとえば、第一アダプタカード116と第二アダプタカード118)を有する。ストレージシステム102は、複数のストレージデバイス(たとえば、SAS HDD、SATA HDD、あるいはSSD)およびスイッチカード104を有する。スイッチカード104は、少なくとも一つのSASインターフェース108とPCIeインターフェース106を有し、それぞれ、SAS HDDとPCIe SSDsをサポートする。いくつかの実施態様において、スイッチカード104は、少なくとも一つのSATAインターフェースを有して、SATA HDDをサポートする。第一アダプタカード116は、第一SASコントローラー120と第一拡張器122を有し、第二アダプタカード118は、第二SASコントローラー124と第二拡張器126を有する。コントローラー110は、第一CPU112と第二CPU114を有し、且つ、第一アダプタカード116あるいは第二アダプタカード118からデータを受信して、アダプタカード116、118が、SAS HDD、PCIe SSDs、SATA HDD、あるいはその他の適切なストレージデバイスをサポートするか判断するとともに、スイッチカード104に、所定のストレージデバイスに対応するインターフェース(たとえば、インターフェース106と108のどちらか一つ)を有効にさせるとともに、スイッチカード104の別のインターフェース(たとえば、106と108のもう一方)を無効にさせる。
【0015】
この例において、第一CPU112は、第一SASコントローラー120(たとえば、PCIex8接続により)に結合され、第二CPU110は、第二SASコントローラー124(たとえば、PCIex8接続)に結合される。第一拡張器122と第二拡張器126はいずれも、12Gx4接続により、第一SASコントローラー120と第二SASコントローラー124に、12Gx16接続により、スイッチカード104に接続される。第一CPU112は、第一SASコントローラー120、第一拡張器122、および有効なSASインターフェースを有するスイッチカード104により、ストレージシステム102の複数のストレージデバイスと通信する。第一CPU112は、さらに、第一SASコントローラー120、第二拡張器126、および有効なSASインターフェースを有するスイッチカード104により、ストレージシステム102の複数のストレージデバイスと通信する。一方、第二CPU114は、第二SASコントローラー124、第二拡張器126、および有効なSASインターフェースを有するスイッチカード104により、ストレージシステム102の複数のストレージデバイスと通信する。第二CPU114は、さらに、第二SASコントローラー124、第一拡張器122、および有効なSASインターフェースを有するスイッチカード104により、ストレージシステム102の複数のストレージデバイスと通信する。
【0016】
いくつかの実施態様において、第一アダプタカード116、あるいは第一アダプタカード116の一素子が機能不良であると判断されるとき、コントローラー110は、第二アダプタカード118、あるいは第一アダプタカード116の残りの素子、およびストレージシステム102のスイッチカード104により、ストレージシステム102の複数のストレージデバイスを管理することができる。たとえば、第一SASコントローラー120が失効する場合、コントローラー110は、第二CPU114、第二SASコントローラー124、第二拡張器126、および/または第一拡張器122、およびスイッチカード104により、ストレージシステム102の複数のストレージデバイスと通信する。別の例において、第一拡張器122が失効の場合、コントローラー110は、第一CPU112、第一SASコントローラー120、第二拡張器126、およびスイッチカード104、あるいは、第二CPU114、第二SASコントローラー124、第二拡張器126あるいは第一拡張器122、およびスイッチカード104により、ストレージシステム102の複数のストレージデバイスと通信する。
【0017】
図1Bは、本発明の実施態様によるフレキシブルなHDDとSSDをサポートするシステム100Bのブロック図である。この例において、システム100BはSSDをサポートする。システム100Bは、ストレージシステム102、コントローラー110、およびアダプタカード(たとえば、第一アダプタカード128と第二アダプタカード130)を有する。ストレージシステム102は、複数のストレージデバイス(たとえば、SAS HDD、SATA HDD、あるいはSSD)およびスイッチカード104を有する。スイッチカード104は、少なくとも一つのSASインターフェース108とPCIeインターフェース106を有しており、それぞれ、SAS HDDとPCIe SSDsをサポートする。いくつかの実施態様において、スイッチカード104は少なくとも一つのSATAインターフェースを有し、SATA HDDをサポートする。第一アダプタカード128は第一PCIeスイッチ132を有し、第二アダプタカード130は第二PCIeスイッチ134を有する。コントローラー110は第一CPU112と第二CPU114を有し、且つ、第一アダプタカード128あるいは第二アダプタカード130からデータを受信して、アダプタカード128、130が、SAS HDD、PCIe SSDs、SATA HDD、あるいはその他の適切なストレージデバイスをサポートするか判断するとともに、スイッチカード104に、所定のストレージデバイスに対応するインターフェース(たとえば、インターフェース106と108のうちのひとつ)を有効にさせ、スイッチカード104の別のインターフェース(たとえば、106と108のもう一方)を無効にさせる。
【0018】
この例において、第一CPU112は第一PCIeスイッチ132に(たとえば、PCIex8接続により)結合され、第二CPU110は第二PCIeスイッチ134に(たとえば、PCIex8接続により)結合される。第一PCIeスイッチ132および第二PCIeスイッチ134はともに、PCIex16接続により、スイッチカード104に接続される。第一CPU112は、第一PCIeスイッチ132および有効なPCIeインターフェースを有するスイッチカード104により、ストレージシステム102の複数のストレージデバイスと通信する。第一CPU112は、さらに、第二PCIeスイッチ134および有効なPCIeインターフェースを有するスイッチカード104により、ストレージシステム102の複数のストレージデバイスと通信する。一方、第二CPU114は、第二PCIeスイッチ134および有効なSASインターフェースを有するスイッチカード104により、ストレージシステム102の複数のストレージデバイスと通信する。第二CPU114は、さらに、第一PCIeスイッチ132および有効なPCIeインターフェースを有するスイッチカード104により、ストレージシステム102の複数のストレージデバイスと通信する。
【0019】
いくつかの実施態様において、第一アダプタカード128、あるいは第一アダプタカード128の一素子が機能不良であると判断するとき、コントローラー110は、第二アダプタカード130、あるいは第一アダプタカード128の残りの素子、およびストレージシステム102のスイッチカード104により、ストレージシステム102の複数のストレージデバイスを管理する。たとえば、第一アダプタカード128が失効である場合、コントローラー110は、第二CPU114、第二アダプタカード130、およびスイッチカード104により、ストレージシステム102の複数のストレージデバイスと通信する。別の例において、第一PCIeスイッチ132が失効の場合、コントローラー110は、第二CPU114、第二アダプタカード130、およびスイッチカード104、あるいは、第一CPU112、第二アダプタカード130、およびスイッチカード104により、ストレージシステム102の複数のストレージデバイスと通信する。
【0020】
図1Cは、本発明の実施態様によるストレージサブシステム102とサーバシステム101を含むシステム100Cのブロック図である。この例において、サーバシステム101は、キャッシュ172に接続される少なくとも一つのマイクロプロセッサあるいはプロセッサ170、一つ以上の冷却素子162、メインメモリ(MEM)180、電源140からAC電源を受けるとともに、サーバシステム101に電力を提供する少なくとも一つの電源ユニット(PSU)141を有する。ストレージサブシステム102は、電源140からAC電力を受けるとともに、ストレージサブシステム102に電力を提供する一つ以上のPSU142、少なくとも一つの拡張器(たとえば、拡張器191と192)、および複数のストレージデバイス(たとえば、1911、1912、1921、および1922)を有する。ストレージデバイスは、SCSI(SAS)ディスク、シリアルATA(SATA)ディスク、あるいはソリッドステートのドライブ(SSD)中の少なくとも一つを有する。ストレージデバイスは、独立したストレージデバイスであるか、あるいはRAID(独立したディスクの冗長アレイ)に設置される。少なくとも一つの拡張器はそれぞれ、ストレージサブシステム102の一つ以上のストレージデバイス(たとえば、命令を受信するとともに、それらを対応するストレージデバイスにルーティング)を管理するとともに、ネットワーク中の遠隔装置、管理モジュール、およびストレージサブシステム102のその他の拡張器と通信する。命令は、読み取りあるいは書き込み命令、情報要求、あるいは管理命令(たとえば地区命令)を含む。命令は、テキスト、小型コンピュータシステムインターフェース(SCSI)、ATアタッチメント(ATA)、あるいはシリアルATA(SATA)の形式である。この例において、拡張器191はストレージデバイス1911と1912を管理するように設定され、拡張器192はストレージデバイス1921と1922を管理するように設定される。
【0021】
この例において、少なくとも一つの拡張器(たとえば、拡張器191と192)は、さらに、一つ以上のアダプタカード190とストレージサブシステム102間のコマンドラインインターフェース(CLI)を提供する。一つ以上のアダプタカード190、あるいは、遠隔ユーザーであればCLIにより、入力コマンド命令を入力する。CLIは、これに限定されないが、デジタルコマンドランゲージ(DCL)、各種ユニックスシェル、マイクロコンピュータ(CP/M)の制御プログラム、command.com、cmd.exe、およびリソースタイムシェアリングシステム(RSTS)CLIを有する。
【0022】
いくつかの実施において、ストレージサブシステム102の拡張器は、接続冗長を有するストレージサブシステム102の複数のストレージデバイスに接続されて、故障した通信リンク(たとえば、故障したケーブルやポート、あるいはうっかり抜けてしまった接続)を保護する。いくつかの実施において、ストレージサブシステム102およびサーバシステム101は、単一のラックあるいは異なるサーバラックに配置される。
【0023】
少なくとも一つのPSU141は、サーバシステム101の各種素子、たとえば、プロセッサ170、キャッシュ172、NBロジック176、PCIeスロット160、メモリ180、SBロジック146、ストレージデバイス148、ISAスロット150、PCIスロット170、およびコントローラー110に電力を供給する。電源がオンになった後、サーバシステム101は、メモリ、コンピュータストレージデバイス、あるいは外部ストレージデバイスから、ソフトウェアアプリケーションをロードして、各種操作を実行する。ハードドライブ148が論理ブロックに構成されて、サーバシステム101のオペレーティングとアプリケーションに使用可能であるとともに、サーバシステム101がオフになった後も、サーバデータを保存する。一つ以上のPSU142は、ストレージサブシステム102の各種素子、たとえば、複数のストレージデバイス、少なくとも一つの拡張器、および一つ以上の冷却素子162に電力を供給する。
【0024】
メモリ180は、ノースブリッジ(NB)ロジック176により、プロセッサ170に結合される。メモリ操作期間中、必要な制御信号をアサートすることにより、メモリ制御モジュール(図示しない)が用いられて、メモリ180の操作を制御する。メインメモリ180は、これに限定されないが、ダイナミックランダムアクセスメモリ(DRAM)、ダブルデータレートDRAM(DDR DRAM)、スタティックRAM(SRAM)、あるいはその他のタイプの適切なメモリを含む。
【0025】
いくつかの実施において、プロセッサ170は、それぞれ、NBロジック176に結合されるCPUバスにより互いに結合されるマルチコアプロセッサである。いくつかの実施において、NBロジック176はプロセッサ170中に整合することができる。NBロジック176は、さらに、複数のペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)スロット160、およびサウスブリッジ(SB)ロジック146に接続される。複数のPCIeスロット160は、接続とバスに用いられ、たとえば、PCI Express x1、USB2.0、SMBus、SIMカード、別のPCIeレーンの将来的な拡張、1.5Vと3.3V電力、およびサーバの外枠上のLEDのワイヤを診断する。
【0026】
この例において、NBロジック176およびSBロジック146は、周辺構成要素相互接続(PCI)バス154により接続される。PCIバス154は、CPU110での機能をサポートすることができるが、この標準化フォーマットは、全てのCPUの本地のバスから独立している。PCIバス154は、さらに、複数のPCIスロット170(たとえば、PCIスロット171)に接続される。PCIバス154に接続される装置は、CPUバスに直接接続されるバスコントローラー(図示しない)に現れ、プロセッサ170のアドレス空間に割り当てられ、且つ、単一バスクロックと同期化される。PCIカードは、複数のPCIスロット170に用いられ、これに限定されないが、ネットワークインターフェースカード(NICs)、サウンドカード、モデム、TVチューナーカード、ディスクコントローラー、ビデオカード、小型コンピュータシステムインターフェース(SCSI)アダプタ、およびパソコンメモリカード国際協会(PCMCIA)カードを有する。
【0027】
SBロジック146は、拡張バスにより、PCIバス154を、複数の拡張カードあるいはスロット150(たとえば、ISAスロット152)に結合することができる。拡張バスは、SBロジック146と周辺装置間の通信に用いられるバスで、且つ、これに限定されないが、業界標準アーキテクチャ(ISA)バス、PC/104バス、低ピン数バス、拡張ISA (EISA)バス、ユニバーサルシリアルバス(USB)、集積駆動電子(IDE)バス、あるいは、周辺装置のデータ通信に用いられる任意のその他の適切なバスを有する。
【0028】
この例において、SBロジック146は、さらに、少なくとも一つのPSU141に接続されるコントローラー110に結合される。いくつかの実施において、コントローラー110は、ベースボードマネジメントコントローラー(BMC)、ラックマネジメントコントローラー(RMC)、あるいは任意のその他の適切なタイムのシステムコントローラーである。コントローラー110は、少なくとも一つのPSU141の操作、および/または、その他の適用できる操作を制御する。いくつかの実施において、コントローラー110は、処理要求、およびサーバシステム101のコンポーネンツ、および/または、接続状態を監視する。
【0029】
この例において、コントローラー110は、ケーブル、あるいは、無線接続(たとえば、I2C、SMBus、あるいはPCIe)により、ストレージサブシステム102の少なくとも一つの拡張器(たとえば、拡張器191と192)に接続される。
【0030】
図1Dは、本発明の実施態様によるスイッチカード104のブロック
図100Dを示す図である。この例において、スイッチカード104はフィールドプログラマブルゲートアレイ(FPGA)1042を有する。FPGA1042は、コンフィギュレーション(CFG)データ、および、高速信号(たとえば、PCIeあるいはSASデータ)を受信することができる。コントローラー(たとえば、
図1Aおよび
図1Bに示されるコントローラー110)からのCFGデータに基づいて、FPGA1042は、受信したSASおよびPCIe信号を、対応するプロトコル専用である各自出力端にリダイレクトする。
【0031】
図1Aおよび
図1Bに示される例において、コントローラー110は二個の計算ノードを有する。各計算ノードは、少なくとも一つのプロセッサ、ランダムアクセスメモリ(RAM)、BMC等を有する。各計算ノードは、状態信号を受信する、あるいは制御信号を周辺素子(たとえば、アダプタカード116と118、およびストレージコンポーネンツ)に送信して、計算ノードが、周辺素子の状態を監視するとともに、それにしたがって、周辺素子を制御することができる。サーバシステム101が通常操作下にあるとき、コントローラー110の計算ノードは、アダプタカード(たとえば、116と118)のタイプを確認することができる。
【0032】
SASアダプタカードが検出される場合、コントローラー110は、SAS CFG信号をFPGA1042に送信することができる。FPGA1042は、CFG信号を受信し、その後、入力データをストレージシステム102のSAS HDDにリダイレクトすることができる。同時に、FPGA1042のPCIeインターフェースは機能しない。
【0033】
PCIeアダプタカードが検出される場合、コントローラー110は、PCIe CFGをFPGA1042に送る。FPGA1042は、CFG信号を受信し、その後、入力データをストレージシステム102のPCIe SSDsにリダイレクトすることができる。同時に、FPGA1042のSASインターフェースは機能しない。
【0034】
第一拡張器122の事象の失効時、コントローラー110は、第一拡張器122の機能停止を検出して、第二拡張器126を起動することができる。よって、コントローラー110の一つ以上のノードは、第二拡張器126により、ストレージシステム102のHDDにアクセスすることができる。第一PCIeスイッチ132の事象の失効時、コントローラー110は、第一PCIeスイッチ132の機能停止を検出し、第二PCIeスイッチ134を起動することができる。これにより、コントローラー110の一つ以上のノードは、第二PCIeスイッチ134により、ストレージシステム102のSSDにアクセスすることができる。
【0035】
図1A、
図1B、
図1C、および
図1Dの例のシステム100A、100B、100C、および100D中では、それぞれ、いくつかの素子しか示されていないが、それらのシステム100A、100B、100C、および100D中には、データを処理、あるいは保存、または信号を受信あるいは送信することができる各種タイプの電子、あるいは計算コンポーネントを含んでいてもよい。さらに、例のシステム100A、100B、100C、および100D中の電子あるいは計算コンポーネントは、各種タイプのアプリケーションを実行する、および/または各種タイプのオペレーティングを使用することができる。これらのオペレーティングは、これに限定されないが、Android、バークレイソフトウェアディストリビューション(BSD)、iPhone(登録商標) OS(iOS)、Linux(登録商標)、OS X、Unix系リアルタイムオペレーティングシステム(たとえば、QNX)、Microsoft Windows、Window Phone、および、IBM z/OSを含む。
【0036】
例のシステム100A、100B、100C、および100Dに必要な実施方式に基づいて、様々なネットワークとメッセージングプロトコルが用いられ、これに限定されないが、TCP/IP、開放型システム間相互接続(OSI)、ファイル転送プロトコル(FTP)、ユニバーサルプラグアンドプレイ(UpnP)、ネットワークファイルシステム(NFS)、コモンインターネットファイルシステム(CIFS)、AppleTalk等を含む。当業者なら理解できるように、
図1A、
図1B、
図1C、および
図1Dに示される例のシステム100A、100B、100C、および100Dは説明の目的のために用いられるものであり、ネットワークシステムは、適切な各種の変更により実現され、同時に、本発明の各種例にしたがって、さらに、ネットワークプラットフォームの設定を提供する。
【0037】
図1A、
図1B、
図1C、および
図1Dの配置において、例のシステム100A、100B、100C、および100Dは、さらに、特定の無線チャネルの計算範囲内の一つ以上の電子装置と通信するように操作が可能な一つ以上の無線コンポーネンツを有する。無線チャネルは、装置に無線通信をさせるのに用いられる任意の適したチャネル、たとえば、ブルートゥース(登録商標)、セルラー、NFC、あるいは、Wi−Fiチャネルである。注意すべきことは、従来技術のように、装置は、一つ以上の従来の有線通信接続を有することである。各種その他の素子、および/または組み合わせは、各種例の範囲内でできる限り可能である。
【0038】
上記討論は、本発明の原理と各種実施例を描写するものである。上述の開示内容が完全に理解されれば、各種の変更や修正がなされることは明白であろう。
【0039】
図2は、本発明の実施態様によるサーバシステム中で、フレキシブルなHDDとSSDをサポートする例示的方法200を示す図である。注意すべきことは、例示的方法200は説明目的のためだけに用いられており、さらに多くの工程やさらに少ない工程、あるいは代替工程を同様の順序あるいは別の順序で、もしくは並行して実行することもできる。例示的方法200は、工程202で、二個以上のアダプタカード(たとえば、
図1A、
図1B、および
図1Cに示されるように)からデータを受信することから始まる。
【0040】
工程204において、
図1A、
図1B、および
図1Cに示されるように、サーバシステムのコントローラーは、二個以上のアダプタカードが、SAS HDD、SATA HDD、SSD、あるいは、その他の適切なストレージデバイスをサポートするかどうか判断する。
【0041】
二個以上のアダプタカードがSAS HDDをサポートすると判断するとき、工程206において、
図1A、
図1C、および
図1Dに示されるように、コントローラーは、サーバシステムのスイッチカードのSASインターフェースを有効にするとともに、スイッチカードのその他のタイプのインターフェースを無効にする。
【0042】
図1A、
図1C、および
図1Dに示されるように、工程208において、コントローラーは、第一アダプタと第二アダプタの少なくとも一つ、およびスイッチカードのSASインターフェースにより、サーバシステムの複数のSAS HDDと通信することができる。
【0043】
工程209において、アダプタカード、あるいはアダプタカードの任意の素子が機能不良であるかどうか判断する。工程210において、
図1A、
図1C、および
図1Dに示されるように、第一アダプタカードが機能不良であると判断するとき、コントローラーは、第二アダプタとスイッチカードにより、複数のSAS HDDと通信する。機能不良がないと判断するとき、方法200は、工程206に戻る。
【0044】
工程212において、二個以上のアダプタカードが PCIe SSDsをサポートすると判断するとき、
図1A、
図1C、および
図1Dに示されるように、コントローラーは、スイッチカードのPCIeインターフェースを有効にし、スイッチカードのその他のタイプのインターフェースを無効にする。工程214において、
図1A、
図1C、および
図1Dに示されるように、コントローラーは、第一アダプタおよび第二アダプタの少なくとも一つ、およびスイッチカードのPCIeインターフェースにより、サーバシステムの複数のPCIe SSDsと通信することができる。工程215において、アダプタカード、あるいはアダプタカードの任意のコンポーネントが機能不良かどうか判断する。工程216において、
図1A、
図1C、および
図1Dに示されるように、第一アダプタカードが機能不良であると判断するとき、コントローラーは、第二アダプタおよびスイッチカードにより、複数のPCIe SSDsと通信する。機能不良がないと判断するとき、方法200は工程212に戻る。
【0045】
[専門用語]
コンピュータネットワークは、通信リンクとセグメントにより相互接続されるノードの地理的に分布した集合体であり、エンドポイント間のデータ送信、たとえば、パソコンおよびワークステーションに用いる。多くのタイプのネットワークに適用可能で、そのタイプの範囲は、ローカルエリアネットワーク(LAN)と広域ネットワーク(WAN)から、オーバーレイ、およびソフトウェア−定義ネットワーク、たとえば、仮想拡張ローカルエリアネットワーク(VXLAN)までである。
【0046】
LANは、通常、同じ通用実体位置、たとえば、ビルやキャンパスに位置する専用のプライベート通信リンクで、ノードを接続する。一方、WANは、通常、長距離通信リンク、たとえば、コモンキャリア電話線、光学経路、同期光学ネットワーク(SONET)、あるいは、同期デジタル階層(SDH)リンクで、地理的分散ノードを接続する。LANとWANは、第二層(L2)、および/または、第三層(L3)ネットワークと装置を有する。
【0047】
インターネットは、WANの一例であり、世界の異種ネットワークを接続し、各種ネットワーク上のノード間のグローバル通信を提供する。ノードは、通常、所定のプロトコル、たとえば、トランスミッションコントロールプロトコル/インターネットプロトコル(TCP/IP)にしたがって、データの離散フレームあるいはパケットを交換することにより、ネットワークで通信する。本案において、プロトコルはどのようにノードが互いに作用するかを定義する一組のルールであるとみなされる。コンピュータネットワークは、さらに、中間ネットワークノード、たとえば、ルーターにより相互接続されて、各ネットワークの効果的な"サイズ"を延伸する。
【0048】
オーバーレイネットワークは、一般に、仮想ネットワークが物理ネットワークインフラ上で、生成あるいは分層できるようにする。オーバーレイネットワークプロトコル、たとえば、仮想拡張LAN(VXLAN)、一般ルーティングのカプセル化を用いたネットワーク仮想化(NVGRE)、ネットワーク仮想化オーバーレイ(NV03)、およびステートレストランスポートトンネリング(STT)は、トラフィックカプセル化スキームを提供し、ネットワークトラフィックが論理トンネルでL2およびL3ネットワークにより搭載できるようにする。このような論理トンネルは、仮想トンネルエンドポイント(VTEPs)により開始および終了する。
【0049】
さらに、オーバーレイネットワークは、仮想セグメント、たとえば、VXLANオーバーレイネットワーク内のVXLANセグメントを有し、VXLANセグメントは、VMがその上で通信する仮想L2および/またはL3オーバーレイネットワークを有する。仮想セグメントは、仮想ネットワーク識別子(VNI)、たとえば、特別に、関連する仮想セグメント、あるいはドメインを識別することができるVXLAN ネットワーク識別子により識別される。
【0050】
ネットワーク仮想化は、ハードウェアとソフトウェアリソースを仮想ネットワークで結合させる。たとえば、ネットワーク仮想化は、複数のVMが各自仮想LAN(VLAN)により物理ネットワークに取り付けられるようにすることができる。VMは、それらの対応するVLANに従ってグループ化され、且つ、別のVM、および内部あるいは外部ネットワークの別の装置と通信することができる。
【0051】
ネットワークセグメント、たとえば、物理あるいは仮想セグメント、ネットワーク、装置、ポート、物理あるいは論理リンク、および/またはトラフィックは、一般に、ブリッジあるいはフラッドドメイン(flood domain)にグループ化される。ブリッジドメインあるいはフラッドドメインは、ブロードキャストドメイン、たとえば、L2ブロードキャストドメインを表す。ブリッジドメインあるいはフラッドドメインは、単一サブネットを含むが、複数のサブネットを含んでもよい。さらにブリッジドメインは、ネットワーク装置上のブリッジドメインインターフェース、たとえば、スイッチと関連する。ブリッジドメインインターフェースは、L2ブリッジネットワークとL3ルートネットワーク間のトラフィックをサポートする論理インターフェースである。このほか、ブリッジドメインインターフェースは、インターネットプロトコル(IP)終端、VPN終端、アドレス解像処理、MACアドレッシング等をサポートすることができる。ブリッジドメインとブリッジドメインインターフェースはともに、同じインデックス、あるいは、識別子により識別される。
【0052】
さらに、エンドポイントグループ(EPG)がネットワークに用いられて、アプリケーションをネットワークにマッピングする。とくに、EPGは、ネットワーク中のアプリケーションエンドポイントのグルーピングを用いて、接続性とポリシーをアプリケーションの群に応用する。EPGは、バケットの容器、あるいはアプリケーション、あるいはアプリケーションコンポーネンツの集合および転送とポリシーロジックの実施の層として作用する。EPGは、さらに、論理アプリケーション境界を用いることによりアドレッシングを代替して、ネットワークポリシー、安全性、および、転送の分離を許可する。
【0053】
クラウドコンピューティングは、さらに、一つ以上のネットワーク中に提供されて、共有リソースを用いて計算サービスを提供することができる。クラウドコンピューティングは、一般に、インターネットを基礎とした計算を含み、計算リソースは、ネットワーク(たとえば、“クラウド”)により得られるリソースの集合から、クライアント、あるいはユーザーコンピュータ、あるいは別の装置オンデマンドに動的に提供および割り当てられる。クラウドコンピューティングリソース、たとえば、任意のタイプのリソース、たとえば、計算、保存、およびネットワーク装置、バーチャルマシン(VM)等を有する。たとえば、リソースは、サービス装置(ファイヤーウォール、ディープパケット検査、トラフィック監視、ロードバランサ等)、計算/処理装置(サーバ、CPUの、メモリ、暴力処理能力)、ストレージデバイス(たとえば、ストレージに付属のネットワーク、ストレージエリアネットワーク装置)等を有する。このほか、このようなリソースが用いられて、仮想ネットワーク、バーチャルマシン(VM)、データベース、アプリケーション(Apps)等をサポートする。
【0054】
クラウドコンピューティングリソースは、“プライベートクラウド”、“パブリッククラウド”、および/または“ハイブリッドクラウド”を有する。“ハイブリッドクラウド”は、二個以上のクラウドから構成されるクラウドインフラであり、二個以上のクラウドは、技術により相互操作あるいは連合される。本質上、ハイブリッドクラウドは、プライベートとパブリッククラウド間の相互作用であり、プライベートクラウドはパブリッククラウドを結合するとともに、安全且つ弾性的な方式で、パブリッククラウドリソースを利用する。クラウドコンピューティングリソースは、さらに、仮想ネットワークにより、オーバーレイネットワーク、たとえば、VXLANで提供される。
【0055】
ネットワークスイッチシステムにおいて、ルックアップデータベースは、スイッチシステムに付属した複数のエンドポイント間のルートのトラックを保持するのを維持する。しかし、エンドポイントは、各種設定を有し、且つ、多くのテナントと関連する。これらのエンドポイントは、各種タイプの識別子、たとえば、IPv4、IPv6、あるいは、Layer−2を有する。ルックアップデータベースは、異なるモードに設定されて異なるタイプのエンドポイント識別子を処理しなければならない。ルックアップデータベースのある能力は、異なるアドレスタイプの着信パケットを処理するように設計される。さらに、ネットワークスイッチシステム上のルックアップデータベースは、通常、1K仮想ルーティング/転送(VRF)により制限される。これにより、各種タイプのエンドポイント識別子を処理する改善されたルックアップアルゴリズムが必要とされる。本発明は、遠距離通信ネットワークのルックアップにアドレスするのに必要な技術を提出する。本発明で開示されるシステム、方法、および、コンピュータ読み取り可能ストレージ媒体は、エンドポイント識別子を一致空間にマッピングし、且つ、異なる形式のルックアップを均一に処理することにより、各種タイプのエンドポイント識別子を統一する。
図3と
図4に示されるように、実施例のシステムとネットワークの簡単な描写がここで開示される。これらの変化は、各種例中で描写される。相関技術は
図3を参照する。
【0056】
図3は、本発明を実行するのに適したコンピュータデバイス300を示す図である。コンピュータデバイス300は、マスター中央処理装置(CPU)362、インターフェース368、およびバス315(たとえば、PCIバス)を有する。適切なソフトウェアあるいはファームウェアの制御下で動作するとき、CPU362は、パケットマネジメント、エラー検出および/またはルーティング機能、たとえば、不当な検出機能を実行する責任を負う。CPU362は、好ましくは、オペレーティングおよび任意に適切なアプリケーションソフトウェアを含むソフトウェアの制御下で、これらの全機能を遂行する。CPU362は、一つ以上のプロセッサ363、たとえば、Motorola社のマイクロプロセッサ、あるいは、MIPS社のマイクロプロセッサを有する。別の例において、プロセッサ363は、コンピュータデバイス300の操作を制御する特別に設計されたハードウェアである。特定の例において、メモリ361(たとえば、非揮発性RAM、および/または、ROM)は、さらに、CPU362の一部を形成する。しかし、メモリがシステムに結合される多くの異なる方法がある。
【0057】
インターフェース368は、通常、インターフェースカード(時に、“ラインカード”と称される)として提供される。一般に、それらはネットワークによりデータパケットの送受信を制御するとともに、コンピュータデバイス300とともに用いられるその他の周辺装置をサポートする。提供されるインターフェースは、イーサネット(登録商標)インターフェース、フレームリレーインターフェース、ケーブルインターフェース、DSLインターフェース、トークンリングインターフェース等である。このほか、各種超高速インターフェース、たとえば、快速トークンリングインターフェース、無線インターフェース、イーサネット(登録商標)インターフェース、Gigabitイーサネット(登録商標)インターフェース、ATMインターフェース、HSSIインターフェース、POSインターフェース、FDDIインターフェース等が提供される。一般に、これらのインターフェースは適した媒体との通信に適したポートを有する。いくつかの場合において、それらはさらに独立したプロセッサを有し、ある場合には揮発性RAMを有する。独立したプロセッサはパケット交換、媒体制御と管理などの通信量の多いタスクを制御することができる。通信量の多いタスクに別々のプロセッサを提供することにより、これらのインターフェースは、マスターマイクロプロセッサ362に、効率的に、ルーティング計算、ネットワーク特徴、セキュリティ機能等を実行させることができる。
【0058】
図3に示されるシステムは、本発明の一つの特定のコンピュータデバイスであるが、本発明の実施例だけが実行できるネットワーク装置構造ではない。たとえば、単一プロセッサを有する機構を使用し、その単一プロセッサは通信およびルーティング計算等を処理する。さらに、別のタイプのインターフェースと媒体はルーターと一緒に使用される。
【0059】
ネットワークデバイスの設定にかかわらず、一つ以上のメモリあるいはメモリモジュール(メモリ361を含む)を用いて、ローミングのための汎用ネットワーク操作とメカニズムのプログラム命令、ルート最適化、およびルーティング機能を保存する。プログラム命令は、オペレーティングおよび/または一つ以上のアプリケーションの操作を制御することができる。一つのメモリ、あるいは複数のメモリが、表、たとえば、移動連結、登録、および、関連する表等を保存する。
【0060】
図4と
図5は、本発明の各種態様による可能なシステムの例を示す図である。当業者なら、本発明の実施時に、さらに適した例を応用することができる。また当業者なら、その他のシステムの実施例も可能であることが理解できる。
【0061】
図4は、従来のコンピューティングシステム400を示す図で、システムのコンポーネンツはバス405を用いて互いに電気的に通信する。例のシステム400は、処理ユニット(CPU、あるいは、プロセッサ)410、およびシステムメモリ415、たとえば、読み出し専用メモリ(ROM)420とランダムアクセスメモリ(RAM)425を有する各種システムコンポーネンツをプロセッサ410に結合するシステムバス405を有する。システム400は、直接接続される、近接する、あるいはプロセッサ410の一部として整合される高速メモリのキャッシュを有する。システム400は、メモリ415および/またはストレージデバイス430からのデータを、キャッシュ412にコピーして、プロセッサ410により快速にアクセスする。この方法でキャッシュはデータを待つ間にプロセッサ410が遅延するのを回避するパフォーマンスブーストを提供することができる。これらおよびその他のモジュールは、各種動作を実行するようにプロセッサ410を制御でき、あるいは、制御するように設定できる。同時に、別のシステムメモリ415を使用することもできる。メモリ415は異なるパフォーマンス特徴を有する複数の異なるタイプのメモリを有する。プロセッサ410は、任意の汎用プロセッサおよびハードウェアモジュール、あるいはソフトウェアモジュール、たとえば、ストレージデバイス430中に保存されるモジュール432、モジュール434およびモジュール436を有し、プロセッサ410および特殊用途プロセッサを制御し、ソフトウェア命令が実際のプロセッサ設計に組み込まれる。プロセッサ410は本質的に完全内蔵型計算システムであり、複数のコアあるいはプロセッサ、バス、メモリコントローラー、キャッシュ等を含む。マルチコアプロセッサは、対称あるいは非対称である。
【0062】
ユーザーに、コンピュータデバイス400と相互作用させるため、入力装置445は、任意の数量の入力機構、たとえば、スピーチに用いるマイク、ジェスチャーや図形入力のタッチセンサースクリーン、キーボード、マウス、動作入力、スピーチ等を表す。出力装置435は、従来の技術で知られている一つ以上の出力機構である。ある場合には、マルチモーダルシステムは、ユーザーに、コンピュータデバイス400と通信する複数のタイプの入力を提供できるようにする。通信インターフェース440は、一般に、ユーザー入力とシステム出力を抑制することや管理することができる。任意の特定のハードウェア設置上の各種操作には制限がなく、これにより、ここでの基本特徴は発展中の改善されたハードウェアあるいはファームウェア配置に置換しやすいことである。任意のその他の例中、この発明の任意の例における任意の特徴や工程は、任意のその他の特徴や工程と組み合わせることができる。
【0063】
ストレージデバイス430は不揮発性メモリであり、且つハードディスクあるいはその他のタイプのコンピュータ読み取り可能媒体であり、コンピュータ読み取り可能媒体はアクセス可能なデータを保存することができ、且つ、たとえば、磁気カセット、フラッシュメモリカード、ソリッドステートのメモリデバイス、デジタル多用途ディスク、カートリッジ、ランダムアクセスメモリ(RAM)425、読み出し専用メモリ(ROM)420、およびそれらの組み合わせである。
【0064】
ストレージデバイス430は、プロセッサ410を制御するソフトウェアモジュール432、434、436を有する。その他のハードウェアあるいはソフトウェアモジュールが考慮される。ストレージデバイス430はシステムバス405に接続される。一態様において、特定機能を実行するハードウェアモジュールはコンピュータ読み取り可能媒体中に保存されるソフトウェアコンポーネントを有し、コンピュータ読み取り可能媒体は必要なハードウェアコンポーネントと接続され、ハードウェアコンポーネントは、たとえば、機能を実行するプロセッサ410、バス405、出力装置435(たとえば、ディスプレイ)等である。
【0065】
図5は、チップセット構造を有するコンピュータシステム500を示す図で、チップセット構造が用いられて、記述方法を実行するとともに、グラフィカルインターフェース(GUI)を生成して、表示する。コンピュータシステム500は、本発明を実施するのに用いることができるコンピュータハードウェア、ソフトウェア、およびファームウェアの例である。システム500はプロセッサ555を有し、任意の数量の実体および/または論理区別リソースを表示し、識別された計算を実行するように設定されるソフトウェア、ファームウェア、およびハードウェアを実行することができる。プロセッサ555は、プロセッサ555からの入出力を制御することができるチップセット560と通信することができる。この例において、チップセット560は情報を出力装置565、たとえば、ディスプレイに出力し、たとえば、磁気媒体、および、ソリッドステートの媒体を有するストレージデバイス570と情報をやり取りすることができる。チップセット560は、RAM575とのデータのアクセスも可能である。様々なユーザーインターフェースコンポーネント585と作用するブリッジ580は、チップセット560との作用に提供される。このようなユーザーインターフェースコンポーネント585は、キーボード、マイクロフォン、タッチ検出および処理回路、ポインティングデバイス、たとえば、マウス等を有する。一般に、システム500への入力は、任意の様々なソースから機器によって生成および/または人によって生成される。
【0066】
チップセット560は、さらに、異なる物理インターフェースを有する一つ以上の通信インターフェース590とインターフェースを取る。このような通信インターフェースは、有線および無線のローカルエリアネットワーク、広帯域無線ネットワーク、およびパーソナルエリアネットワークのインターフェースを有する。開示されるGUIを生成、表示、および使用する方法のいくつかのアプリケーションは、プロセッサ555によりストレージ570あるいはRAM575中に保存されるデータを分析することにより、物理インターフェースにより、あるいは機器自身により生成される請求データセットを受信することを含む。さらに、機器はユーザーインターフェースコンポーネント585によりユーザーからの入力を受信するとともに、プロセッサ555によりこれらの入力を解釈することにより、適切な機能、たとえば、閲覧機能を実行する。
【0067】
実施例のシステム400と500は、さらに多くの処理能力を提供するために、二個以上のプロセッサ410を有してもよく、一つのネットワーク化されたコンピュータデバイスの群またはクラスタの一部であってもよい。
【0068】
説明を明確にするため、本発明の実施例は独立した機能ブロックを含むものとして表示され、機能ブロックはソフトウェアあるいはハードウェアとソフトウェアの組み合わせで実現される方法中の装置、装置素子、工程、あるいはルーティンを有する。
【0069】
いくつかの実施態様において、コンピュータ読み取り可能ストレージデバイス、媒体、およびメモリは、ケーブルまたはビットストリーム等を含む無線信号を有する。しかし、明確に言及されるときは、非一時的コンピュータ読み取り可能ストレージ媒体には、たとえば、エネルギー、キャリア信号、電磁気波、および、信号等の媒体が排除される。
【0070】
上述の例による方法は、コンピュータ読み取り可能媒体から保存あるいは使用可能なコンピュータ実行可能命令を用いて実行される。このような命令は、たとえば、汎用コンピュータ、特殊用途コンピュータ、あるいは特殊用途処理装置を設置して、ある機能や機能の群を実行する命令およびデータを有する。用いられるコンピュータリソースの一部はネットワーク上でアクセス可能である。コンピュータ実行可能命令は、たとえば、二進数、中間フォーマット命令、たとえば、アセンブリ言語、ファームウェア、あるいはソースコードである。命令、使用する情報、および/または上述の例に従った方法を実行中に生成される情報を保存するのに用いられるコンピュータ読み取り可能媒体の例は、磁気あるいは光学ディスク、フラッシュメモリ、不揮発性メモリが提供するUSB装置、ネットワーク化ストレージデバイス等である。
【0071】
これらの開示による装置実行方法は、ハードウェア、ファームウェアおよび/またはソフトウェアを有し、様々なフォームファクタを利用することができる。このようなフォームファクタの典型的な例は、ラップトップ、スマホ、小型フォームファクタパソコン、PDA等である。記述される機能は、さらに、周辺あるいは拡張カードで実現される。このような機能は、その他の実施例により、単一装置中の回路板上で、異なるチップあるいは異なるプロセス間の実行動作により実現する。
【0072】
命令、このような命令を伝達する媒体、命令を実行する計算リソース、およびこれらの計算リソースをサポートするその他の構造は、これらの開示で記述される機能を提供するためのものである。
【0073】
本発明の各種態様は、遠隔でストレージサブシステムのゾーン管理を制御するシステムおよび方法を提供する。特定の例を引用することにより、どのように任意の操作が異なる命令に使用されているかを示すが、その他の例は、任意の操作を異なる命令に組み込んでいる。説明を明確にするため、本発明の実施例は、独立した機能ブロックを含むものとして表示され、機能ブロックは、ソフトウェアあるいはハードウェアとソフトウェアの組み合わせで実現される方法中の装置、装置素子、工程、あるいはルーティンを有する。
【0074】
各種例はさらに各種操作環境中で実現され、各種操作環境はいくつかの実施例において任意の数量のアプリケーションを操作するのに用いられる一つ以上のサーバコンピュータ、ユーザーコンピュータ、あるいはコンピュータデバイスを有する。ユーザーあるいはクライアントデバイスは、任意の数量の汎用パソコン、たとえば、標準のオペレーティングで動作するデスクトップあるいはラップトップコンピュータ、およびモバイルソフトウェアで動作するとともに、複数のネットワークとメッセージングプロトコルをサポートすることができるセルラー、無線、および携帯端末を含む。このようなシステムは、さらに、任意の様々な商用の操作システム、およびその他の既知の特殊目的のアプリケーションで動作する複数のワークステーションを有し、特殊目的としてはたとえば、開発やデータベース管理である。これらの装置は、さらにその他の電子装置、たとえば、ダミー端子シンクライアント、ゲーム機、およびネットワークにより通信することができるその他の装置を有する。
【0075】
実施例あるいはその一部がハードウェアにより実現される範囲内で、本発明は任意の、あるいは、以下の技術の組み合わせで実施することができる:論理ゲートを有する離散論理回路、データ信号受信時に実行する論理機能、適切な組み合わせの論理ゲートを有する特定用途向け集積回路(ASIC)、プログラム可能ハードウェア、たとえば、プログラム可能ゲートアレイ(PGA)、フィールドプログラマブルゲートアレイ(FPGA)等である。
【0076】
大部分の実施例は、従来の技術で知られている少なくとも一つのネットワークを使用し、任意の様々な商用のプロトコル、たとえば、TCP/IP,OSI,FTP,UPnP,NFS,CIFS,AppleTalk等を用いた通信をサポートする。ネットワークは、たとえば、ローカルエリアネットワーク、広域ネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、無線ネットワーク、およびそれらの任意の組み合わせである。
【0077】
上述の例による方法は、コンピュータ読み取り可能媒体から保存あるいは使用可能なコンピュータ実行可能命令を用いて実行される。このような命令は、たとえば、汎用コンピュータ、特殊用途コンピュータ、あるいは特殊用途処理装置を設置して、ある機能や機能の群を実行する命令およびデータを有する。用いられるコンピュータリソースの一部はネットワーク上でアクセス可能である。コンピュータ実行可能命令は、たとえば、二進数、中間フォーマット命令、たとえば、アセンブリ言語、ファームウェア、あるいは、ソースコードである。命令、使用する情報および/または上述の例に従った方法を実行中に生成される情報を保存するのに用いられるコンピュータ読み取り可能媒体の例は、磁気あるいは光学ディスク、フラッシュメモリ、不揮発性メモリが提供するUSB装置、ネットワーク化ストレージデバイス等である。
【0078】
これらの開示による装置実行方法は、ハードウェア、ファームウェア、および/またはソフトウェアを有し、様々なフォームファクタを利用することができる。このようなフォームファクタの典型的な例は、ラップトップ、スマホ、小型フォームファクタパソコン、PDA等である。記述される機能は、さらに、周辺あるいは拡張カードで実現される。このような機能は、その他の実施例により、単一装置中の回路板上で、異なるチップあるいは異なるプロセス間の実行動作により実現する。
【0079】
ウェブサーバを用いる例において、ウェブサーバは、HTTPサーバ、FTPサーバ、CGIサーバ、データサーバ、Java(登録商標)サーバ、およびビジネスアプリケーションサーバを有する様々なサーバ、あるいは中層アプリケーションを実行することができる。サーバはユーザー装置からの請求に対応して、たとえば、任意のプログラミング言語中に書き込まれた一つ以上のスクリプトあるいはプログラムとして実行することができる一つ以上のウェブアプリケーションを実行することにより、プログラムあるいはスクリプトを実行することができ、任意のプログラミング言語は、たとえば、Java(登録商標),C,C♯あるいはC++で、且つ、任意のスクリプト言語は、たとえば、Perl,PythonあるいはTCL、およびそれらの組み合わせである。サーバはデータベースサーバも含み、自由市場上で得られたサーバに限定されない。
【0080】
サーバファームは、上述で討論される各種データ保存およびその他のメモリとストレージ媒体を有する。これらのデータ保存は、様々な位置に存在し、たとえば、ストレージ媒体本地の上(および/または、常駐する)一つ以上のコンピュータ、あるいはネットワーク上の任意の、あるいは全てのコンピュータの遠隔である。実施例の特定の組み合わせにおいて、情報は、当業者が熟知するストレージエリアネットワーク(SAN)中に存在する。同様に、コンピュータ、サーバ、あるいはその他のネットワーク装置に起因する機能を実行する任意の必要なファイルは、適する箇所に、ローカルおよび/またはリモートで保存される。システムは、コンピュータ化装置を有し、このような装置は、それぞれ、バスにより電気的に結合されるハードウェア素子を有し、素子は、たとえば、少なくとも一つの中央処理装置(CPU)、少なくとも一つの入力装置(たとえば、マウス、キーボード、コントローラー、タッチセンサーディスプレイ素子やキーパッド)、および少なくとも一つの出力装置(たとえば、ディスプレイ装置、プリンタ、あるいはスピーカー)を有する。このようなシステムは、さらに一つ以上のストレージデバイス、たとえば、ディスクドライバ、光学ストレージデバイス、およびソリッドステートのストレージデバイス、たとえば、ランダムアクセスメモリ(RAM)あるいは読み出し専用メモリ(ROM)、および取り外し媒体装置、メモリカード、フラッシュカード等を有する。
【0081】
このような装置は、上述のように、さらに、コンピュータ読み取り可能保存媒体読み取り機、通信装置(たとえば、モデム、ネットワークカード(無線あるいは有線)、赤外線コンピュータデバイス)、およびワーキングメモリを有する。コンピュータ読み取り可能保存媒体読み取り機は、コンピュータ読み取り可能保存媒体を接続あるいは受信するように設定され、コンピュータ読み取り可能保存媒体は、一時的におよび/または永久に、含有、保存、送信、および回収するコンピュータ読み取り可能情報のリモートの、ローカルの、固定の、および/または取り外し可能なストレージデバイスおよびストレージ媒体を表す。システムと各種装置は、通常、少なくとも一つのワーキングメモリ装置中に位置する複数のソフトウェアアプリケーション、モジュール、サービス、あるいは別の素子を有し、オペレーティングおよびアプリケーションプログラム、たとえば、クライアントアプリケーション、あるいはウェブブラウザを有する。理解すべきことは、代替の実施例は、上述の実施態様の各種変化を有することである。たとえば、カスタマイズされたハードウェアが用いられるか、および/または特定要素が、ハードウェア、ソフトウェア(ポータブルソフトウェア、たとえばアプレットを含む)あるいは、その両方で実行される。さらに別のコンピュータデバイス、たとえば、ネットワーク入力/出力装置への接続が利用される。
【0082】
コード、あるいはコードの一部を含むストレージ媒体およびコンピュータ読み取り可能媒体としては、従来の技術で既知の、あるいは用いられている任意の適する媒体、ストレージ媒体やコンピューティング媒体を用いることができる。たとえば、これに限定されないが、揮発性および非揮発性の媒体、取り外し可能なおよび非取り外し可能な媒体であってよく、任意の方法あるいは技術で実施される媒体、たとえば、コンピュータ読み取り可能命令、データ構造、プログラムモジュール、RAM、ROM、EPROM、EEPROM、フラッシュメモリその他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD)その他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージその他の磁気ストレージデバイス、あるいは所望の情報を保存し、且つ、システムデバイスによりアクセスされる任意のその他の媒体であって。その他のデータ等の情報の保存および/または送信ができるものであってよい。ここで提供される技術と教示に基づき、当業者なら、別の手段および/または方法で本発明の各種態様を実施できる。
【0083】
本発明では好ましい実施例を前述の通り開示したが、これらは決して本発明を限定するものではなく、当該技術を熟知する者なら誰でも、本発明の精神と領域を脱しない範囲内で各種の変更や修正を加えることができ、従って本発明の保護範囲は、特許請求の範囲で指定した内容を基準とする。