(57)【特許請求の範囲】
【請求項１】
ストレージプロセッサを含むストレージ装置のためのコンピューティングシステムであって、
ホスト装置によって発行された要請動作（リクエストオペレーション）により実行される作業をマッピングしてストレージ装置にアクセスするために、前記ホスト装置がマップリデュース機能を遂行してクライアントから受信された仕事を複数の作業に分割した後、前記ホスト装置によって発行された要請動作を前記ストレージ装置に伝達するための修正動作（モディファイドオペレーション）を生成するゲートウェイブロックを備え、
前記ゲートウェイブロックは、
前記ホスト装置によって使用される高レベルプログラミング言語からなる言語インターフェイスを含み且つ前記要請動作に含まれる相互作用インターフェイスを、前記ストレージ装置で実行可能な相互作用インターフェイスに変換するために、前記修正動作に含まれる変換インターフェイスを生成する変換ブロックと、
前記ホスト装置によって前記複数の作業と共に送信された前記要請動作に含まれるオブジェクト表現を、前記ストレージ装置で使用されるオブジェクト表現に翻訳するために、ファイル名を対応する論理ブロック住所（ＬＢＡ）範囲のリストに変換することによって前記修正動作に含まれる翻訳表現を生成する翻訳ブロックと、を含むことを特徴とするコンピューティングシステム。
【請求項２】
前記変換ブロックは、前記ホスト装置からの前記要請動作に含まれる前記言語インターフェイスを前記ストレージ装置で実行可能な言語インターフェイスに変換するために、前記変換インターフェイスを生成することを特徴とする請求項１に記載のコンピューティングシステム。
【請求項３】
前記変換ブロックは、前記ホスト装置からの前記要請動作で使用される通信プロトコルを前記ストレージ装置と通信可能な通信プロトコルに変換するために、前記変換インターフェイスを生成することを特徴とする請求項１に記載のコンピューティングシステム。
【請求項４】
前記ゲートウェイブロックは、前記ストレージ装置内に配置されたアプリケーションによる前記修正動作の実行に基づいて生成される動作結果を伝達するために、該動作結果を前記ストレージ装置から受信することを特徴とする請求項１に記載のコンピューティングシステム。
【請求項５】
前記ストレージ装置にアクセスするために、前記ホスト装置によって発行された前記要請動作を伝達するための修正動作を生成する前記ゲートウェイブロックを含むデータノードブロックを更に含むことを特徴とする請求項１に記載のコンピューティングシステム。
【請求項６】
前記ストレージ装置にアクセスするために、前記ホスト装置によって発行された前記要請動作を受信する前記ゲートウェイブロックを含むデータノードブロックを更に含むことを特徴とする請求項１に記載のコンピューティングシステム。
【請求項７】
前記変換ブロックは、前記ホスト装置からの前記要請動作に使用される通信プロトコルをチェックし、前記ストレージ装置で使用される命令に変換することを特徴とする請求項３に記載のコンピューティングシステム。
【請求項８】
前記翻訳ブロックは、前記ホスト装置内のデータノードブロックのオブジェクト表現をチェックし、前記ストレージ装置で使用されるオブジェクト表現に変換することで前記翻訳表現を生成することを特徴とする請求項１に記載のコンピューティングシステム。
【請求項９】
ホスト装置、ゲートウェイブロック、及びストレージプロセッサを含むストレージ装置を備えたコンピューティングシステムの動作方法であって、
前記ゲートウェイブロックが、
前記ホスト装置によって使用される高レベルプログラミング言語からなる言語インターフェイスを含み且つ前記ホスト装置によって発行された要請動作（リクエストオペレーション）に含まれる相互作用インターフェイスを、前記ストレージ装置で実行可能な相互作用インターフェイスに変換するために、変換インターフェイスを生成する段階と、
前記ホスト装置によって複数の作業と共に送信された前記要請動作に含まれるオブジェクト表現を、前記ストレージ装置で使用されるオブジェクト表現に翻訳するために、ファイル名を対応する論理ブロック住所（ＬＢＡ）範囲のリストに変換することによって翻訳表現を生成する段階と、
前記要請動作により実行される作業をマッピングして前記ストレージ装置にアクセスするために、前記ホスト装置がマップリデュース機能を遂行してクライアントから受信された仕事を前記複数の作業に分割した後、前記ホスト装置によって発行された要請動作を前記ストレージ装置に伝達するために、前記変換インターフェイス、前記翻訳表現、又はこれらの組合せを含む修正動作（モディファイドオペレーション）を生成する段階と、を有することを特徴とする動作方法。
【請求項１０】
前記変換インターフェイスを生成する段階は、前記ホスト装置からの前記要請動作に含まれる前記言語インターフェイスを前記ストレージ装置で実行可能な言語インターフェイスに変換するために、前記変換インターフェイスを生成する段階を含むことを特徴とする請求項９に記載の動作方法。
【請求項１１】
前記変換インターフェイスを生成する段階は、前記ホスト装置からの前記要請動作で使用される通信プロトコルを前記ストレージ装置と通信可能な通信プロトコルに変換するために、前記変換インターフェイスを生成する段階を含むことを特徴とする請求項９に記載の動作方法。
【請求項１２】
前記ゲートウェイブロックが、前記ストレージ装置内に配置されたアプリケーションによる前記修正動作の実行に基づいて生成される動作結果を伝達するために、該動作結果を前記ホスト装置に送信する段階を更に含むことを特徴とする請求項９に記載の動作方法。
【請求項１３】
前記ゲートウェイブロックが、前記ホスト装置からの前記要請動作に使用される通信プロトコルをチェックし、前記ストレージ装置で使用される命令に変換する段階を更に含むことを特徴とする請求項９に記載の動作方法。
【請求項１４】
前記ゲートウェイブロックが、前記ホスト装置内のデータノードブロックのオブジェクト表現をチェックし、前記ストレージ装置で使用されるオブジェクト表現に変換することで前記翻訳表現を生成する段階を更に含むことを特徴とする請求項９に記載の動作方法。
【請求項１５】
ホスト装置、ゲートウェイブロック、及びストレージプロセッサを含むストレージ装置を備えたコンピューティングシステムにおいて、ゲートウェイブロックに実行させるためのプログラム命令を記録したコンピュータ読み取り可能な記録媒体であって、
前記プログラム命令により実行させる方法は、
前記ゲートウェイブロックが、
前記ホスト装置によって使用される高レベルプログラミング言語からなる言語インターフェイスを含み且つ前記ホスト装置によって発行された要請動作（リクエストオペレーション）に含まれる相互作用インターフェイスを、前記ストレージ装置で実行可能な相互作用インターフェイスに変換するために、変換インターフェイスを生成する段階と、
前記ホスト装置によって複数の作業と共に送信された前記要請動作に含まれるオブジェクト表現を、前記ストレージ装置で使用されるオブジェクト表現に翻訳するために、ファイル名を対応する論理ブロック住所（ＬＢＡ）範囲のリストに変換することによって翻訳表現を生成する段階と、
前記要請動作により実行される作業をマッピングして前記ストレージ装置にアクセスするために、前記ホスト装置がマップリデュース機能を遂行してクライアントから受信された仕事を前記複数の作業に分割した後、前記ホスト装置によって発行された要請動作を前記ストレージ装置に伝達するために、前記変換インターフェイス、前記翻訳表現、又はこれらの組合せを含む修正動作（モディファイドオペレーション）を生成する段階と、を含むことを特徴とする記録媒体
【請求項１６】
前記変換インターフェイスを生成する段階は、前記ホスト装置からの前記要請動作に含まれる前記言語インターフェイスを前記ストレージ装置で実行可能な言語インターフェイスに変換するために、前記変換インターフェイスを生成する段階を含むことを特徴とする請求項１５に記載の記録媒体。
【請求項１７】
前記変換インターフェイスを生成する段階は、前記ホスト装置からの前記要請動作で使用される通信プロトコルを前記ストレージ装置と通信可能な通信プロトコルに変換するために、前記変換インターフェイスを生成する段階を含むことを特徴とする請求項１５に記載の記録媒体。
【請求項１８】
前記方法は、前記ゲートウェイブロックが、前記ストレージ装置内に配置されたアプリケーションによる前記修正動作の実行に基づいて生成される動作結果を伝達するために、該動作結果を前記ホスト装置に送信する段階を更に含むことを特徴とする請求項１５に記載の記録媒体。
【請求項１９】
前記方法は、前記ゲートウェイブロックが、前記ホスト装置からの前記要請動作に使用される通信プロトコルをチェックし、前記ストレージ装置で使用される命令に変換する段階を更に含むことを特徴とする請求項１５に記載の記録媒体。
【請求項２０】
前記方法は、前記ゲートウェイブロックが、前記ホスト装置内のデータノードブロックのオブジェクト表現をチェックし、前記ストレージ装置で使用されるオブジェクト表現に変換することで前記翻訳表現を生成する段階を更に含むことを特徴とする請求項１５に記載の記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピューティングシステムに関し、より詳細には、プロセシングシステムを有するシステムに関する。
【背景技術】
【０００２】
最近の消費者やコンピューティングシステム、サーバー、家電、テレビジョン、携帯電話機、自動車、衛星、及びこれらの組合せ装置のような産業電子装置は、向上した機能レベルを提供して最新の暮らしを支援する。個人用の製品と企業又は商業製品との間で、性能要求が異なるが、データ格納の効率性に対する共通の要求が存在する。
【０００３】
現存する技術の研究及び開発はそれぞれ異なる方向を有する。一部はディスク基盤のストレージで均一に（ｈｏｍｏｇｅｎｅｏｕｓｌｙ）データを処理する。より具体的には、複数の分散されたストレージシステムが同種（ｈｏｍｏｇｅｎｅｏｕｓ）のインターフェイスで駆動される。他の分散されたストレージシステムは、クラウドでデータを処理してデータを格納する。
【０００４】
従って、プロセシングメカニズムを具備するコンピューティングシステムに対して均一で（ｈｅｔｅｒｏｇｅｎｅｏｕｓｌｙ）効率的にデータを処理する要求が未だ存在する。常に増加する商業競争圧迫感の観点で、消費者の期待値の増加及び市場における有意義な製品の差別化の機会の減少に伴い、このような問題に対する解答を見出すことがより重要になっている。更に、費用を節減し、効率性及び性能を向上させ、そして競争圧迫感を満たそうとする要求は、このような問題に対する解答を見出すことの重要な必要性に未だより大きな緊急性を加えている。このような問題の解決は、先の開発がより効率的な解決を教示又は提案せずに長く探索されてきたため、当分野の技術者が回避してきた。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、上記従来の問題点に鑑みてなされたものであって、本発明の目的は、向上させた効率性を有するコンピューティングシステム及びその動作方法並びにコンピュータ読み取り可能な記録媒体を提供することにある。
【課題を解決するための手段】
【０００６】
上記目的を達成するためになされた本発明の一態様によるコンピューティングシステムは、ストレージ装置にアクセスするためにホスト装置によって発行された要請動作を伝達するための修正動作を生成するゲートウェイブロックを備え、前記ゲートウェイブロックは、前記要請動作に含まれる相互作用インターフェイスを前記ストレージ装置で実行可能な相互作用インターフェイスに変換するための変換インターフェイスを生成する変換ブロックと、前記変換ブロックに結合され、前記要請動作に含まれるオブジェクト表現を前記ストレージ装置で使用されるオブジェクト表現に翻訳するための翻訳表現を生成する翻訳ブロックと、を含む。
【０００７】
上記目的を達成するためになされた本発明の一態様によるコンピューティングシステムの動作方法は、ゲートウェイブロックで、要請動作に含まれる相互作用インターフェイスをストレージ装置で実行可能な相互作用インターフェイスに変換するための変換インターフェイスを生成する段階と、前記要請動作に含まれるオブジェクト表現を前記ストレージ装置で使用されるオブジェクト表現に翻訳するための翻訳表現を生成する段階と、前記ストレージ装置にアクセスするためにホスト装置によって発行された要請動作を伝達するための変換インターフェイス、前記翻訳表現、又はこれらの組合せを含む修正動作を生成する段階と、を有する。
【０００８】
上記目的を達成するためになされた本発明の一態様によるコンピュータ読み取り可能な記録媒体は、上記コンピューティングシステムの動作方法をゲートウェイブロックに実行させるためのプログラムを記録する。
【発明の効果】
【０００９】
本発明によれば、ゲートウェイブロックが変換インターフェイス及び翻訳されたオブジェクト表現を提供することで、異種のストレージ装置と通信するコンピューティング装置の効率性を向上させることができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の第１実施形態によるプロセシングのメカニズムを具備するコンピューティングシステムの構造図である。
【図２】本発明の第２実施形態によるプロセシングのメカニズムを具備するコンピューティングシステムの構造図である。
【図３】本発明の第３実施形態によるプロセシングのメカニズムを具備するコンピューティングシステムの構造図である。
【図４】本発明の第４実施形態によるプロセシングのメカニズムを具備するコンピューティングシステムの構造図である。
【図５】コンピューティングシステムの制御フローの一例である。
【図６】本発明の一実施形態によるコンピューティングシステムの応用例である。
【図７】本発明の一実施形態によるコンピューティングシステムの動作方法のフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための形態の具体例を、図面を参照しながら詳細に説明する。
【００１２】
本発明の実施形態は、コンピューティングシステムを含む。コンピューティングシステムは、変換インターフェイス、翻訳表現、又はこれらの組合せを生成することで修正動作（モディファイドオペレーション）を生成し、ストレージ装置と通信するホスト装置の効率性を向上させる。修正動作を生成することによって、ホスト装置は、ホスト装置と異なる言語インターフェイス、通信プロトコル、オブジェクト表現、又はこれらの組合せを使用するストレージ装置と通信することが可能になる。結果的に、ホスト装置は、要請動作（リクエストオペレーション）を途切れなく伝達してクライアントによって要請された動作結果を取得する。
【００１３】
本発明の実施形態は、コンピューティングシステムを含む。コンピューティングシステムは、要請動作に含まれる相互作用（インタラクション）インターフェイスをストレージ装置で実行可能な相互作用インターフェイスに変換するためにゲートウェイブロックで変換インターフェイスを生成し、ストレージ装置と通信するホスト装置の効率性を向上させる。また、コンピューティングシステムは、要請動作に含まれるオブジェクト表現をストレージ装置で使用されるオブジェクト表現に翻訳するための翻訳表現を生成する。ホスト装置は、ストレージ装置で使用されるオブジェクト表現がホスト装置と異なっても、相互作用インターフェイスを使用してストレージ装置と通信する。更に、コンピューティングシステムがストレージ装置にアクセスするためにホスト装置によって発行された要請動作を伝達するために、変換インターフェイス、翻訳表現、又はこれらの組合せを含む修正動作を生成することにより、コンピューティングシステムは、異なる種類の言語インターフェイス、通信プロトコル、又はこれらの組合せを支援する装置を支援する。結果的に、コンピューティングシステムは、ストレージ装置と通信するホスト装置の効率性を向上させて、要請された動作結果を取得する。
【００１４】
本発明の実施形態は、当業者が本発明を具現し使用可能な程度に詳細に説明する。後述する記載に基づいて、システム、プロセス、構造、又は機械的な変更が適用された他の実施形態が本発明の実施形態の範囲から逸脱しない範囲で具現され得る。
【００１５】
後述する記載で、本発明の多様な実施形態の徹底した理解を提供するために多様な具体的な詳細（ｄｅｔａｉｌ）を提供する。しかし、このような具体的な詳細無しに多様な実施形態が具現され得る。多様な実施形態が曖昧になることを回避するために、一部の広く公知された回路、システム構成、及びプロセス段階は、詳細に説明しない。
【００１６】
システムの実施形態を示す図面は、部分的に概略的であり、スケール、より具体的に面積の一部は明確な説明をするために図面で強調して示す。同様に、説明を簡単にするために図面は類似な方向を示すが、図面のこのような記述は殆ど任意である。一般的に、実施形態はどちらの方向にも動作する。実施形態は第１実施形態、第２実施形態等で示すが、これは説明の便宜のためであり、重要な意味を有するか或いは本発明を限定するものではない。
【００１７】
ここに開示する‘モジュール’は、本発明の実施形態で当該用語が使用される脈絡に従って、ソフトウェア、ハードウェア、又はこれらの組合せを含む。例えば、ソフトウェアモジュールは、機械コード、ファームウェア、エンベデッドコード、及び／又はアプリケーションソフトウェアである。例えば、ハードウェアモジュールは、回路、プロセッサ、コンピュータ、集積回路、集積回路コア、圧力センサ、慣性センサ、微細電子機械システム（ＭＥＭＳ：ｍｉｃｒｏｅｌｅｃｔｒｏｍｅｃｈａｎｉｃａｌ  ｓｙｓｔｅｍ）、受動装置、又はこれらの組合せである。更に、‘モジュール’が装置クレーム部分に記載された場合、‘モジュール’は、装置クレームの目的及び範囲によってハードウェア回路を含むものと看做す。
【００１８】
後述する実施形態で、モジュールは、説明するように又は図示するように他の装置と結合される。結合は、結合された装置の間に介入する装置を通じて間接的又は介入する装置無しに直接的である。結合は、物理的な接触又は装置の間の通信である。
【００１９】
図１は、本発明の第１実施形態によるプロセシングのメカニズムを具備するコンピューティングシステム１００の構造図である。図１は、ＩＳＣ（Ｉｎ−Ｓｔｏｒａｇｅ  Ｃｏｍｐｕｔｉｎｇ）モデルが使用されるコンピューティングシステム１００の一例を示す。ＩＳＣは、プロセッサ、メモリストレージ、又はこれらの組合せを含むストレージ装置を意味する。
【００２０】
ストレージ装置１０２は、ストレージプロセッサ１０４、ストレージメモリブロック１０６、又はこれらの組合せを含む。ストレージ装置１０２は、ＩＳＣモデルの一例を示す。ストレージ装置１０２は、データを処理するためのコンピューティング及び格納容量（ｃａｐａｃｉｔｙ）を提供する。ストレージプロセッサ１０４は、ストレージ装置１０２のコンピューティングエンジンを提供する。ストレージメモリブロック１０６は、データに対するアクセス及び格納を提供する。
【００２１】
例えば、ストレージメモリブロック１０６は、ランダムアクセスメモリ（ＲＡＭ）装置又はコアを意味する。コアとしてストレージメモリブロック１０６は、集積回路装置、プロセッサ、アプリケーション特化標準製品、アプリケーション特化集積回路、システムオンチップ、又はこれらの組合せのようなより大きい装置に集積される。ストレージメモリブロック１０６は、ダイナミックＲＡＭ（ＤＲＡＭ）又はスタティックＲＡＭ（ＳＲＡＭ）のような揮発性メモリを含む。ストレージメモリブロック１０６は、ソリッドステートフラッシュメモリのような不揮発性メモリを含む。
【００２２】
ストレージ装置１０２は、ＳＡＴＡ（ｓｅｒｉａｌ  ａｄｖａｎｃｅｄ  ｔｅｃｈｎｏｌｏｇｙ  ａｔｔａｃｈｍｅｎｔ）インターフェイス、ＳＡＳ（ｓｅｒｉａｌ  ａｔｔａｃｈｅｄ  ｓｍａｌｌ  ｃｏｍｐｕｔｅｒ  ｓｙｓｔｅｍ  ｉｎｔｅｒｆａｃｅ）インターフェイス、ＰＣＩ−Ｅ（ｐｅｒｉｐｈｅｒａｌ  ｃｏｍｐｏｎｅｎｔ  ｉｎｔｅｒｃｏｎｎｅｃｔ  ｅｘｐｒｅｓｓ）インターフェイス、及び多様な他のインターフェイス又はこれらの組合せのような多数のインターフェイスと共に動作する。ホスト装置１０８は、マップリデュース（ＭａｐＲｅｄｕｃｅ）機能のような機能をストレージ装置１０２に転嫁（ｏｆｆｌｏａｄ）する。マップリデュースは、大きいデータセットをクラスタで並列に分散アルゴリズムで処理及び生成するプログラムモデルを意味する。
【００２３】
ホスト装置１０８は、ゲートウェイブロック１１０、ストレージ装置１０２、又はこれらの組合せと共に動作する。ホスト装置１０８は、ストレージ装置１０２からのデータにアクセスするために要請動作１１２を発行する。要請動作１１２は、コマンドを意味する。詳細は後述する。
【００２４】
ホスト装置１０８は、分散ファイル／ストレージシステムからのネームノードブロック１１４、データノードブロック１１６、又はこれらの組合せを含む。ネームノードブロック１１４は、仕事（ｊｏｂ）、作業（ｔａｓｋ）、又はこれらの組合せを調整する。例えば、クライアントは、データを格納するために複数のデータノードブロック１１６のリストをネームノードブロック１１４で検索する。ネームノードブロック１１４は、ソフトウェア、論理ゲート若しくは回路（アナログ又はデジタル）のようなハードウェア、又はこれらの組合せで具現される。ネームノードブロック１１４は、有限状態マシン、組合せ論理、又はこれらの組合せのようなハードウェアで具現される。
【００２５】
データノードブロック１１６は、ゲートウェイブロック１１０と共に動作してデータをストレージ装置１０２に格納する。複数のデータノードブロック１１６は、クラスタを形成する。データノードブロック１１６は、ソフトウェア、論理ゲート若しくは回路（アナログ又はデジタル）のようなハードウェア、又はこれらの組合せで具現される。データノードブロック１１６は、有限状態マシン、組合せ論理、又はこれらの組合せのようなハードウェアで具現される。
【００２６】
ゲートウェイブロック１１０は、ホスト装置１０８とストレージ装置１０２との間でインターフェイスする。ゲートウェイブロック１１０は、ホスト装置１０８とストレージ装置１０２との間の相互作用インターフェイス１１８の差異を連結する。相互作用インターフェイス１１８は、プログラミング言語、プロトコル、又はこれらの組合せを意味する。例えば、ホスト装置１０８は、Ｊａｖａ（登録商標）のプログラミング言語で代表される相互作用インターフェイス１１８を使用し、ストレージ装置１０２は、Ｃ＋＋のプログラミング言語で代表される相互作用インターフェイスを使用する。例えば、ゲートウェイブロック１１０は、Ｊａｖａ（登録商標）基盤の要請動作１１２がＣ＋＋を使用するストレージ装置１０２によって解釈されるように修正動作１２０を生成する。
【００２７】
修正動作１２０は要請動作１１２の修正バーションである。ゲートウェイブロック１１０は、ソフトウェア、論理ゲート若しくは回路（アナログ又はデジタル）のようなハードウェア、又はこれらの組合せで具現される。ゲートウェイブロック１１０は、有限状態マシン、組合せ論理、又はこれらの組合せのようなハードウェアで具現される。詳細は後述する。
【００２８】
ゲートウェイブロック１１０は、変換ブロック１２２、翻訳ブロック１２４、又はこれらの組合せを含む。変換ブロック１２２は、ソフトウェア、論理ゲート若しくは回路（アナログ又はデジタル）のようなハードウェア、又はこれらの組合せで具現される。変換ブロック１２２は、有限状態マシン、組合せ論理、又はこれらの組合せのようなハードウェアで具現される。翻訳ブロック１２４は、ソフトウェア、論理ゲート若しくは回路（アナログ又はデジタル）のようなハードウェア、又はこれらの組合せで具現される。翻訳ブロック１２４は、有限状態マシン、組合せ論理、又はこれらの組合せのようなハードウェアで具現される。
【００２９】
変換ブロック１２２は、相互作用インターフェイス１１８に基づいて変換インターフェイス１２６を生成する。相互作用インターフェイス１１８は、装置によって使用されるプログラミング言語、プロトコル、又はこれらの組合せを意味する。ホスト装置１０８によって使用される相互作用インターフェイス１１８は、ストレージ装置１０２によって使用される相互作用インターフェイス１１８と異なる。
【００３０】
相互作用インターフェイス１１８は、言語インターフェイス１２８、通信プロトコル１３０又はこれらの組合せを含む。言語インターフェイス１２８は、高レベル言語及び／又は装置によって実行可能なスクリプト言語のようなプログラミング言語を意味する。高レベル言語は、Ｊａｖａ（登録商標）、Ｃ／Ｃ＋＋、又はＣ＃を含む。スクリプト言語は、フィトン（ｐｈｙｔｏｎ）、パ−ル（ｐｅｒｌ）、又はルビ−（ｒｕｂｙ）を含む。例えば、ホスト装置１０８は、Ｊａｖａ（登録商標）で表される言語インターフェイス１２８を実行し、ストレージ装置１０２は、Ｃ／Ｃ＋＋で表される言語インターフェイス１２８を実行する。従って、言語インターフェイス１２８でミスマッチが発生する。
【００３１】
通信プロトコル１３０は、複数の装置が互いに通信するための方法を意味する。通信プロトコル１３０は、ＳＣＳＩ（ｓｍａｌｌ  ｃｏｍｐｕｔｅｒ  ｓｙｓｔｅｍ  ｉｎｔｅｒｆａｃｅ）、ＡＴＡ（ａｄｖａｎｃｅｄ  ａｔｔａｃｈｍｅｎｔ  ｔｅｃｈｎｏｌｏｇｙ）、ＮＶＭｅ（ｎｏｎ−ｖｏｌａｔｉｌｅ  ｍｅｍｏｒｙ  ｅｘｐｒｅｓｓ）、ＦＣ（ｆｉｂｒｅ  ｃｈａｎｎｅｌ）、ＨＴＴＰ（ｈｙｐｅｒｔｅｘｔ  ｔｒａｎｓｆｅｒ  ｐｒｏｔｏｃｏｌ）、ＨＴＴＰＳ（ＨＴＴＰ  Ｓｅｃｕｒｅ）、ＲＥＳＴｆｕｌ、ＳＯＡＰ（ｓｉｍｐｌｅ  ｏｂｊｅｃｔ  ａｃｃｅｓｓ  ｐｒｏｔｏｃｏｌ）、専有プロトコル（例えばキー値を含む）、又はこれらの組合せを含む。例えば、ホスト装置１０８は、ＨＴＴＰで表される通信プロトコル１３０を使用し、ストレージ装置１０２は、ＳＣＳＩで表される通信プロトコル１３０を使用する。従って、通信プロトコル１３０でミスマッチが発生する。変換インターフェイス１２６を生成する変換ブロック１２２の詳細は後述する。
【００３２】
翻訳ブロック１２４は、オブジェクト表現１３４に基づいて翻訳表現１３２を生成する。オブジェクト表現１３４は、データを格納するためのフォーマットを意味する。翻訳表現１３２は、オブジェクト表現１３４の修正バーションである。より具体的な例として、ホスト装置１０８で使用されるオブジェクト表現１３４は、ストレージ装置１０２で使用されるオブジェクト表現１３４と異なる。従って、ミスマッチが発生する。結果的に、ホスト装置１０８によって発行された要請動作１１２で要請されたオブジェクト表現１３４を解釈するために、ストレージ装置１０２のための翻訳表現１３２が要求される。
【００３３】
オブジェクト表現１３４は、論理ブロックの住所（ＬＢＡ：Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓｉｎｇ）、ページ、ＵＲＩ（ｕｎｉｆｏｒｍ  ｒｅｓｏｕｒｃｅ  ｉｄｅｎｔｉｆｉｅｒ）、オブジェクトの識別キー、他の識別子、又はこれらの組合せのような１つ又はそれ以上の識別子を含む。翻訳表現１３２を生成する翻訳ブロック１２４の詳細は後述する。
【００３４】
ゲートウェイブロック１１０は、変換インターフェイス１２６、翻訳表現１３２、又はこれらの組合せを含む修正動作１２０を伝達する。ストレージ装置１０２は、修正動作１２０に基づいてストレージ装置１０２の内部に配置されたアプリケーション１３６を実行して動作結果１３８を返す。動作結果１３８は、修正動作１２０を処理したことによる結果である。ストレージ装置１０２は、動作結果１３８をゲートウェイブロック１１０に伝達する。ゲートウェイブロック１１０は、動作結果１３８をホスト装置１０８に伝達する。
【００３５】
ホスト装置１０８内で、データノードブロック１１６は、ゲートウェイブロック１１０から動作結果１３８を受信する。データノードブロック１１６は、動作結果１３８をネームノードブロック１１４に伝達する。ホスト装置１０８は、要請動作１１２を要請したクライアントに動作結果１３８を伝達する。
【００３６】
本発明の第１実施形態は、複数のストレージ装置１０２と通信するゲートウェイブロック１１０を示している。例えば、複数のストレージ装置１０２は、異種の多様なストレージ装置１０２で表される。異種のストレージ装置１０２は、それぞれ異なる相互作用インターフェイス１１８を含む。
【００３７】
具体的な例として、ストレージ装置１０２の一種類は、Ｃ＋＋で表される言語インターフェイス１２８を含み、ストレージ装置１０２の他の種類は、ルビ−（Ｒｕｂｙ）で表される言語インターフェイス１２８を含む。例えば、ストレージ装置１０２の一種類は、ＳＯＡＰの通信プロトコル１３０を使用し、ストレージ装置１０２の他の種類は、ＨＴＴＰｓの通信プロトコルを使用する。
【００３８】
ゲートウェイブロック１１０は、データノードブロック１１６の外部に位置するが、これに限定されない。より具体的な例として、ゲートウェイブロック１１０及びデータノードブロック１１６は、後述するように１対１又は多対１の関係を有する。
【００３９】
図２は、本発明の第２実施形態によるプロセシングのメカニズムを具備するコンピューティングシステム１００の構造図である。本実施形態は、ゲートウェイブロック１１０、変換ブロック１２２、翻訳ブロック１２４、及びこれらの組合せを含むデータノードブロック１１６を含む。
【００４０】
より具体的な例として、データノードブロック１１６は、要請動作１１２を受信する。データノードブロック１１６は、ゲートウェイブロック１１０によって生成された修正動作１２０を伝達する。また、データノードブロック１１６は、修正動作１２０を異種のストレージ装置１０２に伝達する。ストレージ装置１０２の各々は、動作結果１３８をデータノードブロック１１６に伝達する。
【００４１】
図３は、本発明の第３実施形態によるプロセシングのメカニズムを具備するコンピューティングシステム１００の構造図である。本実施形態は、複数のデータノードブロック１１６と通信し、変換ブロック１２２、翻訳ブロック１２４、又はこれらの組合せを含むゲートウェイブロック１１０を示す。ゲートウェイブロック１１０は、データノードブロック１１６から独立して存在する。
【００４２】
より具体的な例として、ゲートウェイブロック１１０は、データノードブロック１１６の各々から多様な要請動作１１２を受信する。ゲートウェイブロック１１０は、図１に示したストレージ装置１０２と通信するために、要請動作１１２の各々に対して修正動作１２０を生成する。また、ゲートウェイブロック１１０は、ストレージ装置１０２からの動作結果１３８を各データノードブロック１１６に伝達する。
【００４３】
本実施形態は、複数のゲートウェイブロック１１０を含む。上述したように、各ゲートウェイブロック１１０は、１つ又はそれ以上のデータノードブロック１１６と通信する。
【００４４】
図４は、本発明の第４実施形態によるプロセシングのメカニズムを具備するコンピューティングシステム１００の構造図である。本実施形態は、ゲートウェイブロック１１０、変換ブロック１２２、翻訳ブロック１２４、又はこれらの組合せを含むストレージ装置１０２を示す。
【００４５】
より具体的な例として、データノードブロック１１６は、要請動作１１２を複数のストレージ装置１０２に直接伝達する。ゲートウェイブロック１１０は、要請動作１１２に基づいてストレージ装置１０２内で図１に示した修正動作１２０を生成する。ストレージ装置１０２は、修正動作１２０に基づいて動作結果１３８をデータノードブロック１１６に伝達する。
【００４６】
図５は、コンピューティングシステム１００の制御フローの一例である。例えば、制御フローは、マップリデュースの機能に適用される。しかし、制御フローは、他の機能に適用され得る。
【００４７】
上述したように、ホスト装置１０８は、クライアントから図１に示した要請動作１１２を受信する。ホスト装置１０８内で図１に示したネームノードブロック１１４、データノードブロック１１６、又はこれらの組合せは、マップリデュース機能のような機能を通じて要請動作１１２を処理する。
【００４８】
ゲートウェイブロック１１０は、要請動作１１２を受信して図１に示した修正動作１２０を生成する。修正動作１２０は、ストレージ装置１０２が要請動作１１２を解釈可能なように図１に示した変換インターフェイス１２６、翻訳表現１３２、又はこれらの組合せを含む。
【００４９】
ストレージ装置１０２は、ストレージ装置１０２内に配置された図１に示したアプリケーション１３６内で修正動作１２０を実行する。ストレージ装置１０２は、ゲートウェイブロック１１０、ホスト装置１０８、又はこれらの組合せで伝達される図１に示した動作結果１３８を生成する。
【００５０】
コンピューティングシステム１００は、ゲートウェイモジュール５０２を含む。ゲートウェイモジュール５０２は、図１に示した修正動作１２０を生成する。即ち、ゲートウェイモジュール５０２は、図１に示した要請動作１１２に基づいて修正動作１２０を生成する。ゲートウェイモジュール５０２は、図１に示したホスト装置１０８、ゲートウェイブロック１１０、ストレージ装置１０２、又はこれらの組合せによって実行される。
【００５１】
ゲートウェイモジュール５０２は、多様な方法で修正動作１２０を生成する。例えば、ゲートウェイモジュール５０２は、変換モジュール５０４を含む。変換モジュール５０４は、図１に示した変換インターフェイス１２６を生成する。即ち、変換モジュール５０４は、図１に示した相互作用インターフェイス１１８に基づいて変換インターフェイス１２６を生成する。変換モジュール５０４は、図１に示した変換ブロック１２２によって実行される。
【００５２】
変換モジュール５０４は、多様な方法で変換インターフェイス１２６を生成する。例えば、変換モジュール５０４は、ホスト装置１０８によるデータアクセスのための図１に示した言語インターフェイス１２８をストレージ装置１０２に変換することによって変換インターフェイス１２６を生成する。より具体的な例として、変換モジュール５０４は、ホスト装置１２８の言語インターフェイス１２８をストレージ装置１０２の言語インターフェイス１２８に変換することによって、言語結合（ｌａｎｇｕａｇｅ  ｂｉｎｄｉｎｇ）に基づいて変換インターフェイス１２６を生成する。
【００５３】
より具体的な例として、ホスト装置１０８の言語インターフェイス１２８は、Ｊａｖａ（登録商標）で表される。ストレージ装置１０２の言語インターフェイス１２８は、Ｃ／Ｃ＋＋で表される。変換モジュール５０４は、Ｊａｖａ（登録商標）とＣ／Ｃ＋＋との間のＪＮＩ（Ｊａｖａ（登録商標）  Ｎａｔｉｖｅ  Ｉｎｔｅｒｆａｃｅ）を具現し、Ｊａｖａ（登録商標）をＣ／Ｃ＋＋に変換することによって変換インターフェイス１２６を生成する。結果的に、変換モジュール５０４は、ホスト装置１０８によって伝達され、Ｊａｖａ（登録商標）で記載された要請動作１１２がストレージ装置１０２によって解釈可能なように変換インターフェイス１２６を生成する。
【００５４】
他の例として、変換モジュール５０４は、図１に示した通信プロトコル１３０を変換することによって変換インターフェイス１２６を生成する。より具体的な例として、変換モジュール５０４は、ＨＴＴＰ又はＨＴＴＰｓで表されるホスト装置１０８の通信プロトコル１３０をＡＴＡ、ＳＣＳＩ、ＮＶＭｅ、又はＦＣで表されるストレージ装置１０２の通信プロトコル１３０に変換することによって変換インターフェイス１２６を生成する。他の例として、変換モジュール５０４は、ホスト装置１０８の通信プロトコル１３０をストレージ装置１０２が支援するＯＳＤ（ｏｐｅｎ  ｓｏｕｒｃｅ  ｄｅｆｉｎｉｔｉｏｎ）又は専有プロトコルのようなインターフェイス、ＨＴＴＰ、ＨＴＴＰＳ、ＲＥＳＴｆｕｌ、ＳＯＡＰ、又はこれらの組合せを含むＷｅｂインターフェイスで表される通信プロトコルに変換することによって変換インターフェイス１２６を生成する。
【００５５】
また、変換モジュール５０４は、ＨＴＴＰ又はＨＴＴＰＳで表されるホスト装置１０８の通信プロトコル１３０をチェックする。変換モジュール５０４は、ＰＵＴ、ＧＥＴ、ＤＥＬＥＴＥ、又はこれらの組合せのようなＨＴＴＰ又はＨＴＴＰＳプロトコルの要請動作１１２をストレージ装置１０８で使用されるＷＲＩＴＥ、ＲＥＡＤ、ＥＲＡＳＥ、又はこれらの組合せを含むＳＣＳＩの命令に変換する。
【００５６】
より具体的な例として、変換モジュール５０４は、ホスト装置１０８で使用される通信プロトコルをストレージ装置１０２で使用される通信プロトコル１３０にマッピングすることで変換インターフェイス１２６を生成する。より具体的な例として、変換モジュール５０４は、データ、コマンド、データ／コマンドの表現、インコーディング、フレーミング（ｆｒａｍｉｎｇ）、又はこれらの組合せを変換することによって通信プロトコル１３０をマッピングする。
【００５７】
ゲートウェイモジュール５０２は、翻訳モジュール５０６を含む。翻訳モジュール５０６は、図１に示した翻訳表現１３２を生成する。即ち、翻訳モジュール５０６は、図１に示したオブジェクト表現１３４に基づいて翻訳表現１３２を生成する。翻訳モジュール５０６は、翻訳ブロック１２４によって実行される。
【００５８】
より具体的な例として、ホスト装置１０８で使用されるオブジェクト表現１３４は、ＵＲＩ、ファイル名、キー、他の識別子、又はこれらの組合せで表される。ストレージ装置１０２で使用されるオブジェクト表現１３４は、ＬＢＡ、オブジェクト識別子、他の識別子、又はこれらの組合せで表される。より具体的な例として、翻訳モジュール５０６は、ファイル名を対応するＬＢＡ範囲のリストに変換することによって翻訳表現１３２を生成する。
【００５９】
また、翻訳モジュール５０６は、ファイル名で表されるデータノードブロック１１６のオブジェクト表現１３４をチェックする。翻訳モジュール５０６は、ファイル名をストレージ装置１０２で使用されるオブジェクト表現１３４に変換することによって翻訳表現１３２を生成する。例えば、ストレージ装置１０２のオブジェクト表現１３４は、ＬＢＡ範囲を意味する。
【００６０】
翻訳モジュール５０６は、‘ｆｉｂｍａｐ’、‘ｆｉｅｍａｐ’、又はこれらの組合せを含むＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）を利用して翻訳表現１３２を生成し、ストレージ装置１０２のファイルブロックのレイアウトを取得する。ＡＰＩは、ストレージ装置１０２に格納されたファイルに対する開始ＬＡＢ及び終了ＬＢＡのようなブロック範囲情報を返す。ブロック範囲情報の数は、ファイルサイズに従う複数のセットである。
【００６１】
全てのブロック範囲情報を収集した後、翻訳モジュール５０６は、ホスト装置１０２のファイル名で表されるオブジェクト表現１３４をブロック範囲情報のリストで表される翻訳表現１３２に変換する。例えば、ブロック範囲情報のリストは、開始ＬＢＡ及び終了ＬＢＡの収集を含む。結果的に、ゲートウェイモジュール５０２は、翻訳表現１３２を含む修正動作１２０を生成する。ゲートウェイモジュール５０２は、変換インターフェイス１２６、翻訳表現１３２、又はこれらの組合せを含む修正動作１２０を実行モジュール５０８に伝達する。
【００６２】
変換インターフェイス１２６、翻訳表現１３２、又はこれらの組合せを生成することによって修正動作１２０を生成するコンピューティングシステム１００は、ストレージ装置１０２と通信するホスト装置１０８の効率性を向上させることができることがわかった。修正動作１２０を生成することによって、ホスト装置１０８は、ホスト装置１０８と異なる言語インターフェイス１２８、通信プロトコル１３０、オブジェクト表現１３２、又はこれらの組合せを利用してストレージ装置１０２と通信する。結果的に、ホスト装置１０８は、要請動作１１２を途切れなく伝達してクライアントによって要請された図１に示した動作結果１３８を取得する。
【００６３】
コンピューティングシステム１００は、ゲートウェイモジュール５０２に結合された実行モジュール５０８を含む。実行モジュール５０８は、修正動作１２０を実行する。即ち、実行モジュール５０８は、変換インターフェイス１２６、翻訳表現１３２、又はこれらの組合せを含む修正動作１２０を実行する。実行モジュール５０８は、ストレージ装置１０２によって実行される。
【００６４】
より具体的な例として、実行モジュール５０８は、ストレージ装置１０２内に配置された図１に示したアプリケーション１３６で修正動作１２０を実行する。修正動作１２０に基づいて、アプリケーション１３６は、要請動作１１２を解釈し、ホスト装置１０８によって要請された動作結果１３８を取得する。実行モジュール５０８は、動作結果１３８をホスト装置１０８、ゲートウェイブロック１１０、又はこれらの組合せに伝達する。
【００６５】
要請動作１１２に含まれる相互作用インターフェイス１１８をストレージ装置１０２で実行可能な相互作用インターフェイス１１８に変換するためのゲートウェイブロック１１０によって変換インターフェイス１２６を生成するコンピューティングシステム１００は、ストレージ装置１０２と通信するホスト装置１０８の効率性を向上させることがわかった。また、要請動作１１２に含まれるオブジェクト表現１３４をストレージ装置１０２で使用されるオブジェクト表現１３４に翻訳するための翻訳表現１３２を生成するコンピューティングシステム１００によって、ホスト装置１０８は、ホスト装置１０８と他の相互作用インターフェイス１１８、オブジェクト表現１３４、又はこれらの組合せを使用するストレージ装置１０２と通信する。更に、ストレージ装置１０２にアクセスするためにホスト装置１０２によって発行された要請動作１１２を伝達するための変換インターフェイス１２６、翻訳表現１３２、又はこれらの組合せを含む修正動作１２０を生成するコンピューティングシステム１００によって、コンピューティングシステム１００は、他の言語インターフェイス１２８、通信プロトコル１２０、又はこれらの組合せを支援する装置を支援する。結果的に、コンピューティングシステム１００は、要請された動作結果１３８を取得するためにストレージ装置１０２と通信するホスト装置１０８の効率性を向上させる。
【００６６】
上述したように、図５は、ゲートウェイモジュール５０２を含むゲートウェイブロック１１０を示す。他の例として、ホスト装置１０８は、ゲートウェイモジュール５０２を含む。その他の例として、ストレージ装置１０２は、ゲートウェイモジュール５０２を含む。
【００６７】
説明を簡単にするために、図５は、開始から終了までのプロセスの流れを示すブロック（各段階）を含む。例えば、プロセスの流れは、５１０段階でクライアントがホスト装置１０８に仕事（ｊｏｂ）を送信することから始まる。５１２段階で、ホスト装置１０８は、マップリデュース機能を遂行して仕事を複数の作業に分割する。５１４段階で、ホスト装置１０８は、分散された作業をデータノードブロック１１６にマッピングする。５１６段階で、データノードブロック１１６は、ストレージ装置１０２を呼び出して作業を処理する。
【００６８】
５１８段階で、ゲートウェイブロック１１０は、ホスト装置１０２から作業と共に送信されたオブジェクト表現１３４を翻訳するためにストレージ装置１０２に格納されたオブジェクト表現１３４を要請する。５２０判別段階で、ゲートウェイブロック１１０は、ホスト装置１０２で使用されるオブジェクト表現５１０を検索する。より具体的な例として、５２２段階でオブジェクト表現１３４のリストが検索される。
【００６９】
５２０判別段階で、ストレージ装置１０２で使用されるオブジェクト表現１３４が検索されない場合、プロセスは、終了する。オブジェクト表現１３４が検索された場合、ゲートウェイブロック１１０が修正動作１２０をストレージ装置１０２に送信することによってプロセスの流れは継続される。ゲートウェイブロック５０２は、５１８段階、５２０判別段階、５２２段階、又はこれらの組合せで説明した機能を遂行する。
【００７０】
５２４段階で、ストレージ装置１０８は、マッパーを駆動して、ホスト装置１０８からのオブジェクト表現１３４の翻訳表現１３２をストレージ装置１０２に格納されたオブジェクト表現１３４にマッピングする。５２６段階で、ストレージ装置１０２は、翻訳表現１３２をマッピングした結果として中間データを生成する。５２８段階で、ストレージ装置１０２は、リデューサ（ｒｅｄｕｃｅｒ）を実行して動作結果１３８を生成する。実行モジュール５０８は、５２４段階、５２６段階、５２８段階、又はこれらの組合せで説明した機能を遂行する。
【００７１】
図６は、本発明の一実施形態によるコンピューティングシステム１００の応用例である。図６は、コンピューティングシステム１００の例として、コンピュータサーバー、自動車のダッシュボード、スマートフォン、モバイル装置、そしてノートブック型コンピュータのような多様な例を示す。
【００７２】
このような応用例は、異種構造内のデータプロセシングの効率性を向上させる本発明の多様な実施形態の重要性を示す。図１に示したゲートウェイブロック１１０が修正動作１２０を生成することによって、ストレージ装置１０２は、ホスト装置１０８によって発行された要請動作１１２を解釈する。図１に示した変換インターフェイス１２６、翻訳表現１３２、又はこれらの組合せを生成してホスト装置１０８及びストレージ装置１０２が互いに通信することで、ゲートウェイブロック１１０は、異種装置間のデータ通信の効率を向上させる。
【００７３】
コンピュータサーバー、ダッシュボード、そしてノートブック型コンピュータのようなコンピューティングシステム１００は、本発明の多様な実施形態を具備する印刷回路基板又は本発明の多様な実施形態を具備する電子アセンブリのような１つ又はそれ以上のサブシステム（図示せず）を含む。コンピューティングシステム１００は、アダプターカードでも具現される。
【００７４】
図７は、本発明の一実施形態によるコンピューティングシステム１００の動作方法７００のフローチャートである。コンピューティングシステムの動作方法７００は、７０２段階で要請動作に含まれる相互作用インターフェイスをストレージ装置で実行可能な相互作用インターフェイスに変換するための変換インターフェイスを生成する段階を、７０４段階で要請動作に含まれるオブジェクト表現をストレージ装置で使用されるオブジェクト表現に変換するための翻訳表現を生成する段階を、そして７０６段階でストレージ装置にアクセスするためにホスト装置によって発行された要請動作を伝達するための変換インターフェイス、翻訳表現、又はこれらの組合せを含む修正動作を生成する段階をそれぞれ含む。
【００７５】
７０２段階は、ストレージ装置で実行可能な言語インターフェイスに変換するための変換インターフェイスを生成する段階を更に含み、変換インターフェイスを生成する段階は、ストレージ装置と通信可能な通信プロトコルに変換するための変換インターフェイスを生成する段階を含む。コンピューティングシステムの動作方法７００は、動作結果を伝達するためのストレージ装置内に配置されたアプリケーションによる修正動作の実行に基づいて生成される動作結果を送信する段階を更に含む。
【００７６】
結果的な方法、プロセス、装置、製品、及び／又はシステムは、簡単であり、費用的に効率的であり、複雑ではなく、多用途に使用可能であり、正確で、敏感に、そして効率的に準備された経済的な生産、アプリケーション、及び設備のような公知の構成要素を採用することによって具現される。本発明の他の主要な側面は、費用節減、システムの単純化、そして性能の向上という伝統的なトレンドを価値のあるように支援及びサービスするという点にある。このような本発明の価値のある側面は、結果的に科学技術の状態が次のレベルに進歩するようにする。
【００７７】
以上、本発明の実施形態について図面を参照しながら詳細に説明したが、本発明は、上述の実施形態に限定されるものではなく、本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
【符号の説明】
【００７８】
１００    コンピューティングシステム
１０２    ストレージ装置
１０４    ストレージプロセッサ
１０６    ストレージメモリブロック
１０８    ホスト装置
１１０    ゲートウェイブロック
１１２    要請動作（リクエストオペレーション）
１１４    ネームノードブロック
１１６    データノードブロック
１１８    相互作用（インタラクション）インターフェイス
１２０    修正動作（モディファイドオペレーション）
１２２    変換ブロック
１２４    翻訳ブロック
１２６    変換インターフェイス
１２８    言語インターフェイス
１３０    通信プロトコル
１３２    翻訳表現
１３４    オブジェクト表現
１３６    アプリケーション
１３８    動作結果
５０２    ゲートウェイモジュール
５０４    変換モジュール
５０６    翻訳モジュール
５０８    実行モジュール
【図１】
0006637763.tif 000002
【図２】
0006637763.tif 000003
【図３】
0006637763.tif 000004
【図４】
0006637763.tif 000005
【図５】
0006637763.tif 000006
【図６】
0006637763.tif 000007
【図７】
0006637763.tif 000008