(57)【特許請求の範囲】
【請求項１】
圧縮サービスを実装するよう構成される１つ以上のコンピューティングデバイスを備えるシステムであって、前記圧縮サービスが、
複数の圧縮エンジンであって、各々が、複数の圧縮技法の中から、少なくとも１つの圧縮技法を実行するように構成される、複数の圧縮エンジンと、
ルールベースの圧縮エンジンセレクタであって、
クライアントから圧縮されるデータを受信し、
前記データの受信に応答して、
圧縮されるデータまたは前記データと関連付けられるメタデータにルールベースの分析を実行して、前記複数の圧縮技法の中から前記データに適用される２つ以上の圧縮技法を選択し、かつ
前記複数の圧縮エンジンのうちの１つ以上に、前記選択された２つ以上の圧縮技法のそれぞれに対して、１つ以上のデータ圧縮候補を、前記選択された２つ以上の圧縮技法に従って、所与の圧縮サービス制限を超過するまで生成するよう指示する、
ように構成される、圧縮エンジンセレクタと、
応答生成モジュールであって、
圧縮選択基準に従って、生成された２つ以上の前記データ圧縮候補のうちの１つを選択して、得られた圧縮されたデータとして提供するように構成される、応答生成モジュールと、を備える、前記システム。
【請求項２】
圧縮される前記データまたは前記データと関連付けられる前記メタデータにルールベースの分析を実行して、前記複数の圧縮技法の中から前記データに適用される前記２つ以上の圧縮技法を選択するために、前記ルールベースの圧縮エンジンセレクタが、最新の圧縮選択ルールのセットを、前記データの１つ以上のデータ特性に適用するように構成され、
前記圧縮サービスが、
１つ以上の機械学習技法を過去の圧縮データに実行して、前記最新の圧縮選択ルールのセットを更新するように構成される、機械学習圧縮分析モジュールをさらに備える、請求項１に記載の前記システム。
【請求項３】
前記応答生成モジュールが、
前記２つ以上の前記データ圧縮候補のうちの前記選択された１つのエントロピー測定値を決定し、かつ
前記２つ以上の前記データ圧縮候補のうちの前記選択された１つの前記エントロピー測定値がエントロピー閾値未満であると決定することに応答して、システム圧縮技法に従って、前記選択された１つを圧縮して、前記要求された圧縮されたデータとして送信される多段圧縮されたデータを生成するようにさらに構成される、請求項１に記載の前記システム。
【請求項４】
１つ以上のコンピューティングデバイスによって、
クライアントから圧縮されるデータを示す圧縮要求を受信することと、
前記圧縮要求の受信に応答して、
圧縮される前記データまたは前記データと関連付けられるメタデータに分析を実行して、複数の圧縮技法の中から前記データに適用される２つ以上の圧縮技法を選択することと、
前記選択された２つ以上の圧縮技法のそれぞれに対して、及び、所与の圧縮サービス制限を超過するまで、前記選択された２つ以上の圧縮技法に従って、１つ以上のデータ圧縮候補を生成することと、
圧縮選択基準に従って、２つ以上の前記データ圧縮候補のうちの１つを選択して、要求された圧縮されたデータとして送信することと、
前記要求された圧縮されたデータを含む応答を送信することと、を実行することを含む、方法。
【請求項５】
圧縮される前記データまたは前記データと関連付けられるメタデータの前記分析がルールベースの分析である、請求項４に記載の前記方法。
【請求項６】
前記方法が、
１つ以上の機械学習技法を過去の圧縮データに実行して、前記２つ以上の圧縮技法を選択するために適用される最新の圧縮選択ルールのセットを更新することをさらに含み、
圧縮される前記データまたは前記データと関連付けられる前記メタデータに前記分析を実行して、前記複数の圧縮技法の中から前記データに適用される前記２つ以上の圧縮技法を選択することが、
前記更新された圧縮選択ルールのセットを、前記データの１つ以上のデータ特性に適用して、前記複数の圧縮技法の中から前記データに適用される前記２つ以上の圧縮技法を選択することを含む、請求項５に記載の前記方法。
【請求項７】
圧縮される複数の他のデータを、複数のクライアントから受信することと、
前記複数の他のデータの各々について、
前記ルールベースの分析、前記生成、前記選択、及び前記送信を実行することと、
前記他のデータのための圧縮結果データ及びデータ特性を、前記過去の圧縮データの一部として記憶することと、をさらに含む、請求項６に記載の前記方法。
【請求項８】
前記要求された圧縮されたデータを含む前記応答を送信する前に、システム圧縮技法に従って、前記選択されたデータ圧縮候補を圧縮して、前記要求された圧縮されたデータとして送信される多段圧縮されたデータを生成することをさらに含む、請求項４に記載の前記方法。
【請求項９】
圧縮される前記データが、複数のデータチャンクを含むデータストリームであり、前記実行、前記生成、及び前記選択は、圧縮される前記複数のデータチャンクのうちの圧縮される第１のデータチャンクについて実行され、前記方法が、
前記複数のデータチャンクのうちの後続データチャンクの各々について、
前記第１のデータチャンクを圧縮するために適用される前記１つ以上のデータ圧縮技法に従って、圧縮されたデータチャンクを生成することと、
前記データチャンクを含む応答を送信することと、をさらに含む、請求項４に記載の前記方法。
【請求項１０】
前記要求された圧縮されたデータを含む応答を送信する前に、１つ以上の暗号化技法に従って、前記選択されたデータ圧縮候補を暗号化することをさらに含む、請求項４に記載の前記方法。
【請求項１１】
ネットワークベースのサービスを実装するように構成される複数のコンピューティングデバイスを備えるシステムであって、前記ネットワークベースのサービスが、
２つ以上の圧縮技法に従ってデータを圧縮するように構成されるデータ圧縮サービスモジュールと、
ネットワークベースのサービスインターフェースであって、
クライアントから圧縮されるデータを示す圧縮要求を受信し、
前記圧縮要求の受信に応答して、
前記圧縮要求と関連付けられる料金体系を決定し、
前記２つ以上の圧縮技法のそれぞれに対して、前記圧縮要求と関連付けられる前記料金体系を超過するまで、前記２つ以上の圧縮技法のそれぞれに従って、１つ以上の圧縮データ候補を生成するよう指示し、
前記料金体系に従って、前記要求された圧縮されたデータの料金を発生させ、かつ
前記圧縮要求に従って、前記要求された圧縮されたデータを送信するように構成される、ネットワークベースのサービスインターフェースと、を備える、前記システム。
【請求項１２】
前記料金体系が前記圧縮要求のための前記圧縮サービス制限を示し、前記要求された圧縮されたデータを生成するために、前記データ圧縮サービスモジュールが、前記圧縮サービス制限内で前記要求された圧縮されたデータを生成するように構成される、請求項１１に記載の前記システム。
【請求項１３】
前記圧縮要求が、前記示されたデータに適用される１つ以上のクライアント選択の圧縮技法をさらに示し、前記要求された圧縮されたデータを生成するために、前記データ圧縮サービスモジュールが、前記１つ以上のクライアント選択の圧縮技法を実行して、前記要求された圧縮されたデータを生成するように構成される、請求項１１に記載の前記システム。
【請求項１４】
前記圧縮要求が、前記圧縮されるデータの圧縮分析をさらに要求し、前記２つ以上の圧縮技法のそれぞれに対して、前記２つ以上の圧縮技法のそれぞれに従って、１つ以上の圧縮データ候補を生成するために、前記データ圧縮サービスモジュールが、
圧縮される前記データまたは前記データと関連付けられるメタデータに分析を実行して、複数の圧縮技法の中から前記データに適用される２つ以上の圧縮技法を選択し、
前記２つ以上の圧縮技法のそれぞれに対して、前記選択された２つ以上の圧縮技法に従って、１つ以上の圧縮データ候補を生成し、かつ
圧縮選択基準に従って、前記１つ以上の生成された圧縮データ候補のうちの１つを、前記要求された圧縮されたデータとして選択するように構成される、請求項１１に記載の前記システム。
【発明の詳細な説明】
【背景技術】
【０００１】
組織がデータを作成し、追跡し、保持する技術力が向上し続けるにつれ、増大し続ける情報を発信し、かつ記憶するための様々な異なる技術が開発されている。そのような技術の１つであるデータ圧縮によって、データを異なる様式で表すことにより、データサイズを縮小することができる。後に、データはさらなる処理のために復元することができる。多くの異なる圧縮技法に従って、多くの異なる型のデータを圧縮することができる。どの圧縮技法を適用するかを決定することが難しい場合が多い。いくつかの技法は、より効果的であり、いくつかのデータにデータサイズのさらなる縮小がもたらされ、一方、他のデータでは、異なる圧縮技法がより適する場合がある。データに適用する圧縮技法を選択する能力は、データの圧縮を所望するエンティティの制約内で、様々な分析をデータに実行するのに必要なリソースによって限定される場合が多い。同様に、異なる圧縮技法によって、圧縮技法を実行するために異なる負担が課される。したがって、データの圧縮を所望するエンティティは、時間、運用コスト、及び他の圧縮選択基準ソースの限定によって、データを効率的に圧縮することが限られてしまうことが多い。
【図面の簡単な説明】
【０００２】
【図１】いくつかの実施形態による、サービスとしての効率的なデータ圧縮及び分析のデータフローブロック図を示す。
【図２】いくつかの実施形態による、データ圧縮サービスの例示的な動作環境を示すブロック図である。
【図３】いくつかの実施形態による、例示的なデータ圧縮サービスを示すブロック図である。
【図４】いくつかの実施形態による、効率的なデータ圧縮及び分析をサービスとして実行するための方法の高レベルフローチャートである。
【図５】いくつかの実施形態による、選択された一連の圧縮技法による、かつ所与の圧縮サービス制限内の、１つ以上のデータ圧縮候補を生成するための方法の高レベルフローチャートである。
【図６】いくつかの実施形態による、機械学習を実行して、圧縮されるデータのルールベースの分析を更新するための方法を示す、高レベルフローチャートである。
【図７】いくつかの実施形態による、多段圧縮を含むサービスとして、効率的なデータ圧縮及び分析を実行するための方法を示す、高レベルフローチャートである。
【図８】いくつかの実施形態による、データ圧縮をサービスとして実行するための方法を示す、高レベルフローチャートである。
【図９】いくつか実施形態による、例示的なシステムを示す。
【０００３】
実施形態は、いくつかの実施形態の実施例、及び例示的な図面によって本明細書中で説明されるが、実施形態がそれらの説明される実施形態及び図面に限定されるものではないことを、当業者は認識するであろう。図面及びその詳細な説明は、実施形態を開示される特定の形態に限定することを意図するものではないが、反対に、その意図は、添付の特許請求範囲によって定義される精神及び範囲内に含まれる全ての修正形態、同等物、及び代替物を網羅することである旨を理解されたい。本明細書中で使用される見出しは、単に組織的目的のものであり、説明の範囲または特許請求の範囲を限定するために使用されることを意味しない。本出願全体で使用されるとき、単語「することができる（ｍａｙ）」は、義務的な意味（すなわち、〜しなければならない、を意味する）ではなく、むしろ広範な意味（すなわち、〜する可能性を有する）で使用される。同様に、単語「含む（ｉｎｃｌｕｄｅ）」、「含んでいる（ｉｎｃｌｕｄｉｎｇ）」、及び「含む（ｉｎｃｌｕｄｅｓ）」は、含んでいることを意味するが、それらに限定されない。
【発明を実施するための形態】
【０００４】
以下の詳細な説明では、特許請求された主題について完全な理解をもたらすために、特定の詳細が多数示されている。しかしながら、特許請求された主題は、それら特定の詳細なしでも実行可能であることが、当業者によって理解されよう。他の例では、特許請求された主題が曖昧にならないように、当業者によって知られている方法、装置、またはシステムは、詳細に説明されていない。
【０００５】
また、用語、第１の、及び第２の等を本明細書中で使用して、様々な要素について説明することができるが、これらの要素は、それらの用語によって限定されるべきではないということも理解されたい。それらの用語は、１つの要素を別のものと区別するためにのみ使用される。例えば、本発明の範囲から逸脱することがなく、第１の接点を第２の接点と称することができ、同様に、第２の接点を第１の接点と称することもできる。第１の接点及び第２の接点はいずれも接点であるが、それらは同じ接点ではない。
【０００６】
本発明の明細書中の説明で使用される専門用語は、特定の実施形態について説明することのみが目的であり、本発明を限定することを意図するものではない。本発明及び添付の特許請求の範囲の説明で使用されるとき、単数形「１つの（ａ）」、「１つの（ａｎ）」、及び「その（ｔｈｅ）」は、文脈上で別途明確に示されない限り、複数形も含むことを意図する。また、用語「及び／または」は、本明細書中で使用されるとき、列挙される関連物品の１つ以上の、任意のまたは全ての可能な組み合わせを指し、かつ包含するということも理解されたい。さらに、用語「含む（ｉｎｃｌｕｄｅｓ）」、「含んでいる（ｉｎｃｌｕｄｉｎｇ）」、「備える（ｃｏｍｐｒｉｓｅｓ）」、及び／または「備えている（ｃｏｍｐｒｉｓｉｎｇ）」は、本明細書中で使用されるとき、記載される特性、整数、ステップ、動作、要素、及び／または構成要素の存在を特定するが、１つ以上の他の特性、整数、ステップ、動作、要素、構成要素、及び／またはそれらの群の存在または追加を除外するものではない、ということを理解されたい。
【０００７】
本明細書中で使用されるとき、用語「もし（ｉｆ）」は、文脈に応じて、「とき（ｗｈｅｎ）」、または「後（ｕｐｏｎ）」、もしくは「決定に応答して（ｉｎ  ｒｅｓｐｏｎｓｅ  ｔｏ  ｄｅｔｅｒｍｉｎｉｎｇ）」、あるいは「検出に応答して（ｉｎ  ｒｅｓｐｏｎｓｅ  ｔｏ  ｄｅｔｅｃｔｉｎｇ）」を意味すると解釈することができる。同様に、慣用句「であることが決定される場合（ｉｆ  ｉｔ  ｉｓ  ｄｅｔｅｒｍｉｎｅｄ）」、または「（記載される条件または事象）が検出される場合（ｉｆ  ［ａ  ｓｔａｔｅｄ  ｃｏｎｄｉｔｉｏｎ  ｏｒ  ｅｖｅｎｔ］  ｉｓ  ｄｅｔｅｃｔｅｄ）」は、文脈に応じて、「決定した後に（ｕｐｏｎ  ｄｅｔｅｒｍｉｎｉｎｇ）」、「決定に応答して（ｉｎ  ｒｅｓｐｏｎｓｅ  ｔｏ  ｄｅｔｅｒｍｉｎｉｎｇ）、または「（記載された条件または事象）を検出した後に（ｕｐｏｎ  ｒｅｓｐｏｎｓｅ  ｔｏ  ｄｅｔｅｃｔｉｎｇ  ［ｔｈｅ  ｓｔａｔｅｄ  ｃｏｎｄｉｔｉｏｎ  ｏｒ  ｅｖｅｎｔ］）」、または「（記載された条件または事象）の検出に応答して（ｉｎ  ｒｅｓｐｏｎｓｅ  ｔｏ  ｄｅｔｅｃｔｉｎｇ  ［ｔｈｅ  ｓｔａｔｅｄ  ｃｏｎｄｉｔｉｏｎ  ｏｒ  ｅｖｅｎｔ］）」を意味すると解釈することができる。
【０００８】
サービスとしての効率的なデータ圧縮及び分析の様々な実施形態が本明細書中で説明される。圧縮要求は、圧縮されるデータを含むクライアント（例えば、クライアントシステム、サービス、デバイス、及びユーザー等）から受信することができる。圧縮されるデータ、またはそのデータと関連付けられるメタデータにルールベースの分析を実行して、複数の圧縮技法の中から、そのデータに適用される１つ以上の圧縮技法を選択することができる。選択される圧縮技法に従って、データ圧縮候補を生成することができる。圧縮データオブジェクトの生成を抑制する圧縮サービス制限を施行することができる。次いで、圧縮選択基準に従って、データ圧縮候補のうちの１つを選択して、要求された圧縮されたデータとして送信することができる。
【０００９】
本明細書はまず、効率的なデータ圧縮及び分析の実施例について説明する。様々なウェブサービスの一部として実装される圧縮サービス等の圧縮サービスは、効率的なデータ圧縮及び分析を実装するように構成することができる。例示的な圧縮サービスの説明には、圧縮サービス及び様々な他のサービスの様々な態様が含まれており、それらは、データベースサービス等の圧縮サービスと交信することができる。次いで、本明細書は、サービスとしての効率的なデータ圧縮及び分析の方法の、様々な実施形態のフローチャートについて説明する。次いで、本明細書は、開示された技法を実装することができる例示的なシステムについて説明する。本明細書全体で、様々な異なる実施例を提供することができる。
【００１０】
多くの異なる理由から、データを作成、生成、発信、管理、修正、記憶、または、さもなければ、操作することができる。それらのエンティティ（例えば、消費者、組織、ユーザー、クライアント、及びシステム等）がそのデータを圧縮して、そのデータをより効率的に記憶、伝送、または、さもなければ、管理することは珍しいことではない。報道機関は、例えば、オーディオまたはビジュアルファイルを作成して、消費者に分配することができる。それらのオーディオまたはビジュアルファイルの圧縮版を消費者に送信することができるが、それらは、より小さくなるほど、より容易にかつ迅速に伝送することができる（例えば、回線容量をほとんど消費しない）。データ記憶機構は、多くの異なる記憶クライアントのための大量のデータを保持することができる。記憶されたデータの安全性及び信頼性を向上させるために、データの複数の複製を保持することができる。それらのデータの複数の複製を圧縮形式で記憶することによって記憶領域はほとんど消費されず、それによって、より信頼性の高い記憶を提供するためのコストを低減させることが可能になる。好ましいデータ圧縮を明示する多数の他の実施例についても考察することができるので、上述の実施例は限定することを意図するものではない。
【００１１】
しかしながら、データの量が増大するにつれ、及び／またはデータを圧縮するための様々な技法が向上するにつれ、最も効果的な圧縮の形式をデータに実行することが次第に困難になり得る。例えば、上述の報道機関について考察する。データを受信かつ消費することができる様々な技術が拡大するにつれ、データを記憶するために使用されるデータフォーマット（例えば、ｍｐ３、ｊｐｅｇ、及びｍｐｅｇ等のファイルフォーマット）の数が増加し続けている。適切な圧縮技法を選択してデータに適用する負担はより複雑なものになり、より多くのリソースが必要とされる。同様に、上述の例示的なデータ記憶機構は、様々な異なる種類の圧縮の影響を受けやすい、多くの異なる型のデータを受信することができる。新規のまたは珍しい型の圧縮されるデータを受信する場合等では、最も効率的な圧縮技法を選択して適用することが困難であると証明され得る。それらのシナリオ及び他のものにおいては、圧縮されたデータを実現するための代替の方法及び技法が有利である。
【００１２】
図１は、いくつかの実施形態による、効率的なデータ圧縮及び分析のデータフローブロック図を示す。データ圧縮サービス１００は、図１中のコンピュータシステム１０００に関して以下に記載される、分散システム、または任意の他の型のコンピューティングシステムもしくはデバイスの１つ以上のノード等の、１つ以上のコンピューティングシステムまたはデバイスによって実装可能である。データ圧縮サービスは、様々な異なるシステム、デバイス、またはクライアントから、データ１０２を含む圧縮要求１０４を受信するように構成され得る。それらのクライアントは、データ圧縮サービス１００を制御する同じエンティティによって制御される他のサービスまたはシステムであってよい、またはいくつかのサードパーティーによって制御されてもよい。
【００１３】
データ１０２は、データ圧縮サービス１００で受信可能な、任意の型のデータであってよい。例えば、データ圧縮サービス１００がネットワーク接続全体で圧縮クライアントと通信するように構成される場合、データ圧縮サービス１００は、そのようなネットワーク接続全体に発信され得る、任意の型のデータを圧縮することができる。データを１つ以上の個別のチャンク、パケット、または他の部分に分割して、それらを、全体として、または個別の部分内でのいずれかで処理することができる。いくつかの実施形態では、データ１０２は、１つ以上の圧縮技法に従って既に圧縮されているデータであってよい。
【００１４】
データ１０２に適用される複数の異なる圧縮技法の中からいくつかの圧縮技法を選択するために、圧縮分析１１０が存在し得る。データ１０２を分析することによって、圧縮分析を実行することができる。分析は、またはデータの可能値の特定のサイズドメインまたは通常の反復値について調査することによってデータ型、フォーマット、及びサイズ等のデータの様々な特性を決定することを含み得る。多くの異なる型のデータ分析が実行可能であるため、以前の実施例は限定することを意図するものではない。
【００１５】
また、圧縮されるデータについて記載するメタデータを分析することによって、圧縮分析１１０を適用することもできる。また、いくつかの実施形態に従って、圧縮されるデータと関連付けられるメタデータを得ることもできる。例えば、メタデータは、データの発信元または宛先（例えば、クライアント）、及びデータが受信された時間（例えば、タイムスタンプ）について記載し、またはより一般的には、データの型または特性を示す。このメタデータは、圧縮サービス１００で受信されるときに圧縮要求またはデータとともに含まれる圧縮要求または他の情報フォーマット内に、データヘッダとして含まれ得る。また、識別されたクライアントから受信したデータと関連付けられるメタデータを記憶する特定のクライアント識別子等の、特定のデータ型またはクライアントと関連付けられる圧縮サービスにおいて、メタデータを記憶することもできる。メタデータは、クライアントによって生成される、またはクライアントから受信する記述的情報であってよい。例えば、メタデータは、データがウェブサイトの１日あたりのトラフィック値であり得ると認識することができる。
【００１６】
メタデータ及び／またはデータのルールベースの分析、または他のいくつかの動的分析技法は、様々な実施形態で実行可能である。ルールベースの分析は、圧縮サービスのための知識ベースを表すルールのセットを含むことができる。それらのルールは、様々な型のデータのエントロピー測定値、及び記録されたエントロピー測定値を実現するためのデータに適用される１つ以上の圧縮技法等の、以前に圧縮されたデータと関連付けられる過去のデータに基づいて決定され得る。ルールベースの分析は、データ特性を決定することを含み、そのデータ特性を用いて、圧縮されるデータを評価し、次いで、データ及びメタデータの以前のデータ分析によってより早い段階で得た情報等の、データに関する既知の情報に適用される圧縮選択ルールのセットを識別して、データに適用される１つ以上の圧縮技法を選択することができる。少なくともいくつかの実施形態では、それらの圧縮技法を特定の順序で順序付けすることができる。いくつかの実施形態では、各々が異なる圧縮技法を適用してデータ圧縮候補を生成するように機能される複数のノードまたはコンピューティングデバイス等によって、圧縮技法を並行して適用することができる。
【００１７】
少なくともいくつかの実施形態では、機械学習を圧縮分析１１０の一部として適用させて、データ圧縮サービス１００の知識ベースを更新することができる。例えば、管理学習技法は、圧縮されるデータのデータ特性に類似する１つ以上のデータ特性を有する過去の圧縮されたデータに、管理学習技法を適用することができる。データのルールベースの分析において圧縮されるデータに適用される最新の圧縮選択ルールのセットを、この機械学習技法の結果として、更新、修正、または変更することができる。例えば、特定の圧縮技法には、以前に適用された未修正のルールのセット下でもたらされたデータの優先度よりも高いデータの優先度がもたらされ得る。
【００１８】
データ圧縮候補１２０を生成するための１つ以上の圧縮技法を実行するために、複数の異なる圧縮エンジン１３０を構成することができる。それらの圧縮エンジンは、選択された１つ以上の圧縮技法に従って、圧縮されるデータを圧縮することができる。少なくともいくつかの実施形態では、所与の圧縮サービス制限による圧縮技法の特定の順番に従ってデータを圧縮するように圧縮エンジン１３０を構成することができる。圧縮サービス制限によって、時間及びコストが限定され得る、または、候補圧縮データオブジェクトの生成に対して、いくつかの他の抑制がもたらされ得る。例えば、選択される１つ以上の圧縮技法には優先順位がもたらされ得て、最も効率的に機能する可能性が高いそれらの圧縮技法が、圧縮分析１１０によって決定された、効率性が少ない圧縮技法の前に順序付けされる。したがって、所与の圧縮サービス制限が時間制限を適用する場合、最も効率的な圧縮技法に従って、時間制限内にデータ圧縮候補を生成することができる一方で、効率的に圧縮されたデータを生成する可能性が低い圧縮技法を所与の時間内で実行してもよい、または実行しなくてもよい。別の実施例では、サービス料金または他のいくらかのコストを、データオブジェクトを圧縮する圧縮サービスによって実行されたワークに割り当てることができ、クライアントは、サービス料金の上限をデータの圧縮に適用することのみを要求することができる。それら２つの実施例は、施行可能な多くの異なる型のサービス制限のうちの単にいつくかにすぎないため、以前の実施例は限定することを意図するものではない。
【００１９】
様々な実施形態では、圧縮選択基準に従って、データ圧縮候補１２０のうちの１つを選択することができる。例えば、いくつかの実施形態では、圧縮選択基準は、データ圧縮候補のサイズ等の単一測定に基づいてもよい。図１に示されるように、データ１０２のデータ圧縮候補１２０は、候補１２２、１２４、及び１２６を含む。圧縮選択基準がサイズである場合、図１に示されるように、データ圧縮候補１２４を送信される要求された圧縮されたデータとして選択することができる。データ圧縮候補を生成するために必要な時間、またはデータ圧縮候補を生成するためのリソースの数等の他の測定値は、選択が基づき得る圧縮選択基準の構成要素として示すことができる。選択されたデータ圧縮候補を、要求された圧縮されたデータとして、圧縮要求を提出した元のクライアント、または別のリモートシステムしくはエンティティ等の様々な異なる位置に送信することができる。いくつかの実施形態では、応答１４２によって、例えば、選択された圧縮されたデータオブジェクト１２４（または、圧縮されたデータオブジェクト１２４の位置）が示され得る。
【００２０】
効率的なデータ圧縮及び分析の実施形態は、様々な異なるサービスまたはシステムの一部として実装可能である。また、データベースサービス等のデータ管理サービスは、クライアントに提供されて、データ管理サービス内に記憶されるクライアントデータのためのデータ圧縮サービスを実装することもできる。データ圧縮サービスは、より広範なウェブまたはネットワークベースのサービスのセットの一部であってよく、内部ならびに外部クライアント及び／または消費者に提供され、もしくは、代替として、スタンドアロンサービスとして提供される。いくつかの実施形態では、ネットワークベースのサービスは、１つ以上の料金体系、サービスプラン、または性能オプションを、データ圧縮サービスを利用するクライアントに提供することができる。それらの料金体系、サービスプラン、または性能オプションは、クライアントに提供される、より大きなネットワークベースのサービスのセットのためのもの、またはその一部であってもよい。より一般的には、データをクライアントから受信する、ならびにクライアントに発信する任意のシステム、及び／または他のサービス、システム、もしくは消費者は、効率的なデータ圧縮及び分析の様々な実施形態をサービスとして実装することができ、したがって、以前の実施例は、想定される様々な他のシステムを限定するものである必要がない。
【００２１】
データ圧縮サービスのネットワークベースのサービスとしての実装
以上に考察されるように、様々なクライアント（または消費者、組織、エンティティ、もしくはユーザー）は、データ圧縮サービスを用いたデータの圧縮を所望することができる。図２は、いくつかの実施形態によるデータ圧縮サービスをクライアントに提供することができる、例示的な動作環境を示す。クライアントは、ネットワークベースのサービスプラットフォームの一部として提供されるデータ圧縮サービスと、ネットワーク上で通信することができる。また、ネットワークベースのサービスプラットフォームの一部として実装される他のサービスは、データ圧縮サービスからのサービスと通信することもできる、及び／またはそれを得ることもできる。
【００２２】
複数のユーザーまたはクライアントは、圧縮されるデータを、データ圧縮サービスに送信することができる。いくつかの実施形態では、クライアント２５０ａ〜２５０ｎは、様々なクライアントシステム、ユーザー、クライアントアプリケーション、及び／またはデータネットワークベースのサービス加入者を含むことができる。例えば、クライアントシステムは、コンテンツプロバイダー、またはデータ管理、もしくは記憶サービスを含んでもよい。このサービスは、コンテンツをクライアントまたは他のサービスもしくはプロセスに提供する前に、提供されたコンテンツまたは記憶されたデータを、データ管理サービスを介して転送するように構成されるシステムもしくは構成要素を含んでもよい。
【００２３】
クライアント２５０ａ〜２５０ｎ等のクライアントは、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、パーソナルデジタルアシスタント、モバイルデバイス、サーバー、または任意の他のコンピューティングシステム、もしくは図９に関して以下に記載される圧縮されるデータとともに、要求をデータ圧縮サービス２２０に送信する、及び／またはデータ圧縮サービス２２０からの圧縮されたデータ等の応答を受信するように構成されるコンピュータシステム１０００等の他のデバイスを介して、データ圧縮サービス２２０と通信することができる。例えば、要求を、パラメーター、及び／またはデータ圧縮サービス２２０によって圧縮されるデータと関連付けられるメタデータを含むメッセージとしてフォーマットすることができる。Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ（ＸＭＬ）等の特定のマークアップ言語に従って、そのようなメッセージをフォーマットすることができる、及び／またはＳｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ（ＳＯＡＰ）等のプロトコルを使用してカプセル化することができる。アプリケーションプログラマーインターフェース（ＡＰＩ）を実装して、標準化されたメッセージフォーマットを、クライアントがデータ圧縮サービス２２０と通信しているときなどに、クライアントに提供することが可能である。
【００２４】
少なくともいくつかの実施形態では、クライアント２５０ａ〜２５０ｎは、ネットワークベースのサービスプラットフォーム２００との通信の一部として、データ圧縮サービス２２０と通信することができる。ネットワークベースのサービスプラットフォーム２００は、１つ以上のサービスをクライアント２５０ａ〜２５０ｎに提供することができ、そのサービスには、データ圧縮サービス２２０、及び様々なホスティング、記憶、計算、ならびに他のサービスを含み得る他のサービス２３０が含まれる。少なくともいくつかの実施形態では、ネットワークベースのサービスは、クラウドベースのサービスを含むことができる。ネットワークベースのサービスプラットフォーム２００は、様々なクライアントアカウントを追跡する、または記憶することができ、それによって、クライアントの様々な料金、料金体系、使用記録、及びクライアントがデータ圧縮サービス２２０等のネットワークベースのサービスと交信することに関する他の情報、ならびに他のサービス２３０を保持することができる。少なくともいくつかの実施形態では、ネットワークベースのサービスプラットフォーム２００は、クライアント２５０ａ〜２５０ｎ間のインターフェースとして動作することができ、一方、他の実施形態では、クライアント２５０ａ〜２５０ｎは、各々のサービスと直接通信することができる。
【００２５】
クライアント２５０ａ〜２５０ｎは、ネットワーク２６０上の方法等の様々な異なる通信方法を用いて、データ圧縮サービス２２０、他のサービス２３０、またはネットワークベースのサービスプラットフォーム２００と通信することができる。ネットワーク２６０は、広域ネットワーク（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）（ＷＡＮ）（例えば、インターネット）であってよい。しかしながら、プライベートネットワーク、イントラネット、及び通信技術の他の形式もまた、クライアントとデータ圧縮サービス２２０との間の通信を容易にすることができる。例えば、他のサービス２３０は、データ圧縮サービス２２０を利用して、その独自のサービスに関するデータを圧縮、分析、または復元することができ、かつ、プライベートネットワークまたは通信チャネルを利用することができる。いくつかの実施形態では、クライアントは、圧縮要求を含むメッセージをアセンブルして、そのメッセージを、ネットワークエンドポイント（例えば、データ圧縮サービス２３０に対応するユニフォームリソースロケータ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）（ＵＲＬ））に伝達することができる。例えば、クライアント２５０ａは、ウェブクライアント等のローカルソフトウェアアプリケーションを起動させるデスクトップコンピュータを介して通信することができる、つまり、ネットワーク２６０を介して、ハイパーテキストトランスファープロトコル（ＨＴＴＰ）要求をデータ圧縮サービス２３０に送信するように構成される。同様の方式で、クライアントに送信される応答または他のデータをフォーマットすることができる。
【００２６】
上述のように、少なくともいくつかの実施形態では、ネットワークベースのサービスプラットフォーム２００は、データ圧縮サービス２２０及び／または他のサービス２３０のインターフェースとして動作することができる。以下でさらに詳細に考察される図８は、いくつかの実施形態によると、データ圧縮サービスをネットワークベースのサービスとして提供するための様々な方法及び技法について説明する。いくつかの実施形態では、クライアントから圧縮されるデータを示す圧縮要求を、ネットワークベースのサービスプラットフォーム２００で受信することができる。ネットワークベースのサービスプラットフォーム２００は、要求と関連付けられる料金体系を決定することができる。ネットワークベースのサービスプラットフォーム２００は、決定された料金体系に従って、データ圧縮サービス２２０等のデータ圧縮サービス／モジュールに、圧縮されたデータを生成するように指示することができる。また、料金体系に従って、要求された圧縮されたデータに対して、料金を発生させることもできる。次いで、圧縮要求に従って、要求された圧縮されたデータを送信することができる。
【００２７】
図３を参照すると、データ圧縮サービス２２０を、複数の異なるネットワークベースのサービス（例えば、ウェブサービス）、またはスタンドアロンサービスの一部として実装することができる。１つ以上のサーバー、もしくはコンピューティングシステム１０００に関して以下の図９中に記載される任意の他のデバイス等の、１つ以上のコンピューティングシステムまたはデバイスは、データ圧縮サービス２２０を実装するように構成され得る。データ圧縮サービスは分散様式で実装可能であり、その様式では、分散システムの複数のノードは、データ圧縮サービス２２０の１つ以上の異なる構成要素を実装することができる。例えば、１つ以上のノードは、データ圧縮エンジン３３０を実装するように構成され得る。様々なコンピューティングシステムまたはデバイスに加えて、様々な異なる他のハードウェア、ソフトウェア、またはハードウェア構成要素とソフトウェア構成要素との組み合わせを用いて、図３に示される様々な構成要素を実装することができ、したがって、以下の説明は限定することを意図するものではない。
【００２８】
様々な異なるクライアントから圧縮されるデータを示す圧縮要求３０２は、データ圧縮サービス２２０で受信され得る。いくつかの実施形態では、データは、要求と連動して、要求とともに含まれてもよい、または要求によって示されてもよい。例えば、要求は、別のシステム、サービス、または圧縮されるデータを取得し得る記憶位置を示すことができる。次いで、そのデータ圧縮サービスは、示された圧縮位置からデータを得ることができる。上述のように、様々な異なる方式で、かつ多くの異なるプロトコルに従って、データ圧縮要求をフォーマットすることができる。例えば、ＡＰＩを使用して、圧縮要求、圧縮されるデータ、データと関連付けられる様々なメタデータ、または圧縮要求に対する圧縮サービス制限をフォーマットすることができる。圧縮されるデータは、多くの異なる型のものであってよく、多くの異なるユーザー、サービス、またはクライアントにとって有用な、またはそれらによって有用となる様々なテキストデータもしくはメディアデータを含むがそれらに限定されず、それらのユーザー、サービス、またはクライアントには、記憶サービス、コンテンツプロバイダー、及び通信サービス（例えば、メッセージまたは通知サービス）等が含まれるがそれらに限定されない。圧縮されるデータ３０２は、大きなデータオブジェクト、または異なるデータチャンクに分割されるデータであってよい。データ３０２は、データストリーム、またはいくつかの他のグルーピング、もしくは（例えば、圧縮されるデータを構成する１つ以上のデータパケットで）関連付けられるデータの論理配列として見なすことができる。
【００２９】
いくつかの実施形態では、データ圧縮サービス２２０は、データ、及び／または圧縮されるデータを圧縮せよとの要求を受信する圧縮サービスインターフェース３１０を実装することができる。いくつかの実施形態では、圧縮サービスインターフェースは、圧縮要求を分割するように、及び／またはさらなる処理のために、データ圧縮サービス２２０の１つ以上の他の構成要素に、圧縮要求から得た情報を提供するように構成され得る。例えば、圧縮サービスインターフェースは、圧縮されるデータの型または特性を示す圧縮要求から抽出されたメタデータを圧縮エンジンセレクタ３２０に提供して、ルールベースのまたはいくつかの他の形式の分析を実行することができる。例えば、特定のクライアントアカウントにリンクされるクライアント識別子は、圧縮サービスインターフェース３１０によって識別可能である。圧縮サービスインターフェース３１０もまた、特定のクライアントによるサービスの使用を追跡すること、様々な請求もしくは他の料金、コスト、または評価技法を実行すること、及び図２中のネットワークベースのサービスプラットフォーム２００の一部として実装される、請求またはアカウント管理サービス等のデータ圧縮サービス２２０によって利用可能な他のサービスと交信すること等の、様々な異なる他のタスクを実行して、データ圧縮サービス２２０を実装するように構成され得る。
【００３０】
様々な実施形態では、データ圧縮サービス２２０の一部として、圧縮エンジンセレクタ３２０を実装することができる。圧縮エンジンセレクタ３２０は、圧縮されるデータ、またはそのデータと関連付けられるメタデータに１つ以上の分析技法を実行するように構成され得る。例えば、いくつかの実施形態では、圧縮エンジンセレクタ３２０は、データのサブセットまたは部分をサンプリングする、スキャンする、またはレビューして、そのデータの１つ以上のデータ特性を決定することができる。それらのデータの特性は、データ型、フォーマット、サイズ、または可能値もしくは通常の反復値のセットの特定のサイズドメインを含むことができるが、それらに限定されない。データ中のデータ値の変化を示す、エントロピー測定またはいくつかの他の測定を行うことができる。このデータ分析に基づいて、圧縮されるデータの１つ以上のデータ特性を決定することができる。
【００３１】
また、同様に、圧縮エンジンセレクタ３２０によって様々な技法を利用して、圧縮されるデータと関連付けられるメタデータを得ることができる。例えば、クライアント（例えば、小売業者、データ管理プロバイダー、及び安全性または暗号化サービス等）について記載するメタデータにリンクされ得るクライアント識別子または他のソース識別子を調査すること等によって、圧縮されるデータの発信元を判別することができる。データが送信または受信される時間のタイムスタンプ等の時間情報、データ値のドメイン等の記述的データ（例えば、男性／女性、５０の州、ジップコード、及び年齢幅等）、またはデータもしくはクライアントあるいは圧縮されたデータの受信者（圧縮クライアントであってもよい、または圧縮クライアントではなくてもよい）について記述している任意の他の型のデータ。データそれ自体と同様に、データのデータ特性は、圧縮エンジンセレクタ３２０によって識別可能であり、圧縮エンジン選択及び／または分析の一部として利用可能である。
【００３２】
圧縮エンジンセレクタ３２０は、複数の圧縮技法の中から、データに適用される１つ以上の圧縮技法を選択するように構成され得る。１つ以上の分析技法を実行することによって、圧縮技法の選択を実装することができる。例えば、この選択を行うために、いくつかの実施形態では、データ、またはそのデータと関連付けられるメタデータ（例えば、データ特性）に、ルールベースの圧縮分析を実行することができる。いくつかの実施形態では、データに対するデータ特性を、メタデータ及び／またはデータそれ自体の一部として識別することができ、それらのデータ特性に圧縮選択ルールのセットを適用して、どの圧縮技法を選択するかを決定することができる。例えば、圧縮選択ルールのセットによって、データ値のドメインは２に限定されることを示すデータ特性のルールを決定することができ、選択する効率的なデータ圧縮技法は、ランレングス圧縮技法であってもよい。他のルールによって、データの異なるデータ特性に基づいて、異なる圧縮技法が選択される。少なくともいくつかの実施形態では、圧縮選択ルールによって、圧縮技法の順序付けが特定の順番で決定され得る。この順番は、ルールベースの分析に基づいて、圧縮効率の可能性によって順序付けすることができる。また、圧縮エンジンセレクタ３２０は、ランダムに選択されたまたは決定された圧縮技法を、選択された圧縮技法のうちの１つとして含み、圧縮されたデータ候補を生成することもできる。ランダムに選択された圧縮技法によって、より優れた圧縮をもたらす可能性がある、または可能性がない異なる技法を試すことなく、ルールベースの分析等の分析が同様の圧縮技法の結果によって過度に影響されるのを防ぐことができる。例えば、少なくともいくつかの実施形態では、データ圧縮候補を過去のデータの一部として使用して、機械学習を実行することができる。ランダムに選択された圧縮技法を用いて生成される圧縮候補によって、極小値、または、過去のデータから効果的な機械学習を行うことを限定し得る、他の型の局在化因子を抑制することができる。
【００３３】
少なくともいくつかの実施形態では、機械学習圧縮分析モジュール３６０は、データ圧縮サービス２２０の一部として実装され得る。機械学習圧縮分析モジュール３６０は、１つ以上の機械学習技法を過去の圧縮データ３５０に実行することができる。少なくともいくつかの実施形態では、過去の圧縮されたデータは、以前に受信された圧縮要求のための圧縮技法の結果、及び圧縮されたデータのデータ特性を含むことができる。例えば、同じクライアントもしくはデータの型、及び圧縮されていないもしくは初期データの同じサイズ等の、同様のデータ特性を有する以前の要求が受信される場合、機械学習技法を使用して、同様のデータ特性を有する最新の圧縮要求にとってより良好であった圧縮技法を識別することができる。管理学習、非管理学習、及び／または半管理学習は、過去の圧縮データ３５０に適用可能な、様々な機械学習技法のいくつかの実施例である。それらの技法のうちの１つ以上を用いて、複数の他のデータ圧縮要求の以前の圧縮と関連付けられる様々な異なるデータ特性または他のデータポイントを分析して、圧縮エンジンセレクタ３２０によって適用される圧縮選択ルールのセットを更新、修正、または変更することができる。例えば、１つ以上の機械学習技法による、クライアントＡから受信したデータの型は、クライアントＢからのデータの型に類似しており、特定の圧縮技法はクライアントＢのデータに非常に効果的であったという観測に基づいて、圧縮技法が適用可能な優先度または順序を変更することができる。
【００３４】
圧縮エンジンセレクタ３２０は、１つ以上のデータ圧縮エンジン３３０に、選択された１つ以上の圧縮技法を実行してデータ圧縮候補を生成するよう指示することができる。各々のデータ圧縮エンジンは、バイトディクショナリ、テキスト２５５、テキスト３２ｋ、デルタ、ランレングス、ｍｏｓｔｌｙｎ、ランレングス圧縮、Ｌｅｍｐｅｌ−Ｚｉｖ、Ｌｅｍｐｅｌ−Ｚｉｖ−Ｏｂｅｒｈｕｍｅｒ、ｂｚｉｐ、または、より一般的には、ロスレスもしくはロッシーデータ圧縮技法の任意の他の形式等であるが、それらに限定されない１つ以上のデータ圧縮技法を適用するように構成され得る。それらの圧縮技法のうちの異なる１つに従って、異なる圧縮エンジン３３０は、データを圧縮することができる、またはデータを圧縮するように構成され得る。いくつかの実施形態では、複数の圧縮技法を適用して、データ圧縮候補を生成することができる。例えば、識別される「最も優れた」圧縮技法をデータに適用し、次いで、二次共通またはシステムレベルの技法を圧縮されたデータに続けて適用して、多段圧縮されたデータを生成することができる。多くの異なる圧縮技法は当業者に周知であり、したがって、以前の実施例は限定することを意図するものではない。データ圧縮エンジンを分散様式で実装することができ、それにより、選択された圧縮技法の各圧縮技法を並行してまたはほぼ並行して適用することができる。いくつかの実施形態では、圧縮技法の特定の順序付けに従って、異なる圧縮技法もまた、連続的に適用され得る、または並行性能のために選択され得る。
【００３５】
少なくともいくつかの実施形態では、圧縮エンジンセレクタ３２０は、１つ以上のデータ圧縮エンジン３３０が、特定の順序または順番に従って、１つ以上のデータ圧縮技法を適用するように指示することができる。例えば、圧縮エンジンセレクタ３２０は、圧縮されるデータをある順序でデータ圧縮エンジン３３０に送信することができ、それによって、特定の順序または順番に従って、圧縮されるデータを生成することができる。代替として、別のロードバランサ、キューマネージャー、ノード、またはいくつかの他の構成要素は、圧縮されるデータを、異なるデータ圧縮エンジンで圧縮するために、異なるキュー内に配置ことができ、それによって、データ圧縮が特定の順番で生じ得る。
【００３６】
少なくともいくつかの実施形態では、圧縮エンジンセレクタ構成要素３２０、または圧縮サービスインターフェース３１０もしくは応答生成モジュール３３０等のいくつかの他の構成要素は、圧縮サービス制限を施行するように構成され得る。圧縮サービス制限は、データ圧縮候補の生成、または所与のデータのために実行される全てのサービス等の、データ圧縮サービス２２０内の別の機能もしくは構成要素を限定し得るルール、上限、リソース限定、または境界の任意の形式であってよい。例えば、いくつかの実施形態では、圧縮サービス制限は、時間制限または限界であってよい。圧縮エンジンセレクタ３２０は、時間制限内に完了可能なデータ圧縮候補の生成を指示するよう構成可能である。同様に、応答生成構成要素３４０等のいくつかの他の構成要素は、特定のサービス上限料金内で生成可能なデータ圧縮候補等の、時間制限または他のデータ圧縮制限を満たす、１つ以上のデータ圧縮候補を単に選択するように構成され得る。また、圧縮サービス制限は、大きいデータの圧縮要求または複数の消費者からの複数の要求にわたるその独自のリソースを保存する、またはそのリソースのバランスを保つためにデータ圧縮サービス２２０によって施行される、１つ以上のルールであってもよい。例えば、受信された圧縮されるデータが特定のサイズを超える場合、特定のリソース限定（例えば、データ圧縮候補を生成するよう指示され得るノードまたはデータ圧縮エンジンの数等）を課すことができる。多くの他の異なる型の制限が想定されるので、以前の実施例は限定することを意図するものではない。
【００３７】
データヘッダ等のインジケータをデータ圧縮候補に追加して、データ圧縮候補を生成するために適用される１つ以上の圧縮技法を識別することができる。例えば、データに適用される圧縮技法がディクショナリ圧縮である場合、ディクショナリ圧縮技法の指標となるべく使用されるデータ値は、データヘッダ内に記憶されて容易に復元され得る。
【００３８】
少なくともいくつかの実施形態では、データ圧縮サービス２２０もまた、応答生成モジュール３４０を実装することができる。応答生成モジュール３４０は、圧縮選択基準に従って、データ圧縮候補のうちの１つを選択し、それに応じて、要求された圧縮されたデータとして送信するよう構成可能である。そのデータ圧縮候補は、応答生成モジュールでの入力として受信され得る。データ圧縮候補を生成するために使用される、１つ以上の圧縮技法の性能を示すデータ圧縮候補の性能特性を決定することができる。例えば、性能特性は、データ圧縮候補を生成するのに２．７秒要したことを示すことが可能である。他の性能特性は、データ圧縮候補のサイズ、データ圧縮候補を生成するために使用されるリソースの数（例えば、ノードの数）、コスト、またはデータ圧縮候補に割り当てることができるいくつかの他のサービス料金、もしくは復元時間／コスト（オブジェクトを復元するのに要した時間またはコストの量（例えば、計算コスト））を含むことができるが、それらに限定されない。データ圧縮候補のうちの１つを選択するために使用される圧縮選択基準は、その性能特性が圧縮選択基準を最もよく満たすデータ圧縮候補のうちの１つであってよい。例えば、少なくともいくつかの実施形態では、圧縮選択基準は最小のサイズであってよい。したがって、性能特性によって示される最小のサイズを有するデータ圧縮候補は、送信される要求されたデータ圧縮として選択され得る。いくつかの実施形態では、複数の性能特性を使用して、どのデータ圧縮候補が圧縮選択基準を最もよく満たすかを判定することができる。例えば、圧縮選択基準は最もコスト効率の良いデータ圧縮であってよい。そのような基準を適用して、コストによって分割されるデータ圧縮候補のサイズを決定し、発生する時間または使用されるリソースの数等の、データ圧縮候補を生成することができる。したがって、本実施例では、小さいが最小ではない圧縮サイズを有していた可能性があるが、より速い圧縮時間を有していた可能性があるデータ圧縮候補は、圧縮されたデータオブジェクトとして選択され得る。同様に、わずかに効果的ではない圧縮技法は、さらにより短い復元時間を有することができ、したがって、送信される圧縮されたデータとして選択可能である場合、データ圧縮候補のサイズもまた、復元時間と併せて分析され得る。
【００３９】
少なくともいくつかの実施形態では、応答生成モジュール３４０は、選択されたデータ圧縮候補を生成して、またはフォーマットして、圧縮されたデータの受信者に伝送することができる。例えば、送信前に、１つ以上の暗号化技法を、選択されたデータ圧縮候補に適用することができる。以下に記載されるように、システム圧縮技法等の他の圧縮技法は、選択されたデータ候補にも適用することができる。代替として、少なくともいくつかの実施形態では、別の構成要素（図示せず）は、データ暗号化モジュールまたはサービス（例えば、図２中の他のサービス２３０）を実装することができ、それらに対して、圧縮サービスインターフェース３１０を介して送信する前に、圧縮されたデータが送信されて暗号化される。例えば、圧縮サービスインターフェース３１０は、フォーマットされ、圧縮されたデータを受信して、圧縮されたデータ３０４を受信者に送信することができる。いくつかの実施形態では、圧縮されたデータ３０４の受信者は、圧縮されたデータを要求したクライアントであってよい。代替として、受信者は、圧縮クライアントではなく、別のリモートシステムまたはサービスであってよい。例えば、記憶クライアントはまず、データ圧縮サービス２２０にデータを送信してそのデータを対象の受信体を用いて圧縮し、その対象の受信体は、圧縮されたデータを記憶するためのデータ記憶サービスとなる。
【００４０】
いくつかの実施形態では、応答生成モジュール３４０は、エントロピー測定値、または選択されたデータ圧縮候補のデータ値の変化を示す、いくつかの他の測定を決定することができる。このエントロピー測定値に少なくとも一部基づいて、応答生成モジュール３４０は、システム圧縮技法に従って、選択されたデータ圧縮候補を再度圧縮して、データをさらに圧縮することができる。そのようなシステム圧縮技法は、上述の１つ以上の圧縮技法のうちのいずれかであってよい。例えば、エントロピー閾値を実装することができ、それによって、エントロピー閾値よりも低いエントロピー測定値を有する選択されたデータ圧縮候補では、システム圧縮技法を適用して、多段圧縮されたデータを生成することができる。代替として、少なくともいくつかの実施形態では、システム全体の圧縮技法を、選択されたデータ圧縮候補（またはデータ圧縮候補のセット）に適用して、多段圧縮されたデータを生成することができる。
【００４１】
いくつかの実施形態では、過去の圧縮データ３５０を、データ蓄積、または他の形式の記憶デバイスもしくは記憶サービスとして実装して、データの以前の圧縮と関連付けられる情報を追跡する、記録する、または保持することができる。この情報は、データ特性、性能特性、または受信者に送信された圧縮されたデータの圧縮と関連付けられる任意の他のデータを含み得る。いくつかの実施形態では、複数のデータ圧縮候補を生成することができ、得たデータ、及びデータ圧縮候補の生成と関連付けられる他のデータ特性もしくは他の性能特性は、要求された圧縮されたデータとして送信される、選択されたデータ圧縮候補と関連付けられるデータ特性、及び／または性能特性に加えて、過去のデータ圧縮３５０内に記憶することができる。それらのデータ特性は、データ圧縮サービス２２０の様々な他の構成要素、例えば、圧縮エンジンセレクタ３２０、データ圧縮エンジン３３０、応答生成モジュール３４０、またはデータの圧縮と関連するデータを得る任意の他の構成要素等から得ることができる。例えば、クライアントから受信された以前のデータの特性、適用された圧縮技法、及びデータが送信された受信者を示す過去の圧縮データ内に、クライアント識別子を記憶することができる。したがって、同じクライアントから他のデータが受信されるとき、圧縮エンジンセレクタ３２０は、過去の圧縮データ３５０内に示されるように、適用する最も優れた技法は、以前に適用された圧縮技法であると判定することができる。
【００４２】
少なくともいくつかの実施形態では、復元されるデータを示す復元要求３０６は、データ圧縮サービスで受信可能である。いくつかの実施形態では、復元されるデータは、要求とともに要求に含まれてもよい、または、復元されるデータを得るための位置、システム、またはサービスを示すこと等によって、要求によって示されてもよい。この復元要求によって、圧縮されたデータを生成するために適用される１つ以上の圧縮技法を識別することができる。圧縮サービスインターフェース３１０、または他の構成要素のいくつかは、１つ以上の圧縮技法に従ってデータを復元するように構成される１つ以上のデータ復元エンジン３７０に、圧縮されたデータ３０６を復元するように指示することができる。次いで、応答生成モジュール３４０は、復元されたデータ３０８を受信者に送信することができる。上述のように、受信者は、復元を要求したクライアントと同じリモートシステムまたは位置のものであってもよい、または同じでなくてもよい。
【００４３】
ネットワークベースのサービスのセットの一部として提供されるデータ圧縮サービスの文脈において、図２及び３について説明されて示されているが、図２及び３中で示されて説明される様々な構成要素は、データ圧縮をサービスとして提供することを所望し得る他のシステムに容易に適用することができる。さらに、示される構成要素、システム、またはデバイスの構成は、他の可能な構成について限定しない。例えば、図３は、データ圧縮サービスを、１つ以上の機能的構成要素またはモジュールとして示すが、いくつかの実施形態では、それらの構成要素またはモジュールは、様々な方式で、異なるコンピューティングデバイスまたはノード全体に分散され得る。したがって、図２及び３は、データ圧縮サービスの実施形態に関して、限定することを意図するものではない。
【００４４】
サービスとしての効率的なデータ圧縮及び分析のワークフロー
以上で考察されるように、データ圧縮サービスは、より一般的には、任意の型のクライアント管理、記憶、またはデータ伝送に効率利点をもたらすことができる。図４は、いくつかの実施形態による、効率的なデータ圧縮及び分析をサービスとして実行するための方法の高レベルフローチャートである。様々な異なるシステム及びデバイスは、以下で説明する様々な方法及び技法を実装することができる。上述の図３中に記載されるデータ圧縮サービス２２０等のデータ圧縮サービスは、様々な方法及び技法を実装することができる。しかしながら、示される方法を実行するものとして参照される、上述の実施例、及びまたは任意の他のシステムもしくはデバイスは、他の異なる個体、またはシステムならびにデバイスの構成に関して、限定するものではない。
【００４５】
４１０に示されるように、圧縮されるデータを示す圧縮要求は、クライアントから受信されてもよい。このデータは、図１及び３に関する上述のように、多くの異なるフォーマット、型、及びサイズのものであってよい。いくつかの実施形態では、データは、要求と連動して、要求とともに含まれてもよい、または要求によって示されてもよい。例えば、要求は、別のシステム、サービス、または圧縮されるデータを取得し得る記憶位置を示すことができる。次いで、そのデータ圧縮サービスは、示された圧縮位置からデータを得ることができる。メタデータは、一般的に、受信または取得可能な圧縮されるデータの型または特性を示すことができる。図１及び３に関して以上で考察される実施例で説明されるように、型／フォーマット、クライアントの身元、クライアントの素性、及びデータが送信ならびに受信された時間に関する時間情報は全て、データと関連付けられるメタデータの実施例のものであってよい。例えば、メタデータを得ることには、圧縮要求を分析または解析することが含まれてもよく、その圧縮要求には、圧縮されるデータを含むヘッダまたは他のフォーマットもしくはメッセージ内の、メタデータが含まれてもよい。いくつかの実施形態では、特にデータ圧縮サービスによるＡＰＩの一部として確立されている記述子または他のインジケータを使用するデータのために、メタデータを生成することができる。例えば、クライアントがデータのドメイン内の固有の値の数を識別するのを可能にする、値ドメインフラグを設定することができる。
【００４６】
４２０に示されるように、データまたはそのデータと関連付けられるメタデータに分析を実行して、複数の圧縮技法の中から、データに適用される１つ以上の圧縮技法を選択することができる。データそれ自体を、全体で、またはいくつかのサブセットで、あるいはデータの部分で、分析、サンプリング、スキャン、またはレビューして、そのデータの１つ以上のデータ特性を決定することができる。それらのデータの特性は、データ型、フォーマット、サイズ、または可能値もしくは通常の反復値のセットの特定のサイズドメインを含むことができるが、それらに限定されない。エントロピー測定またはいくつかの他の測定を行うことができ、それらは、データ内のデータ値の変化も判定できることを示す。データ分析に基づいて、圧縮されるデータの１つ以上のデータ特性を決定することができる。また同様に、上述のように、そのデータと関連付けられるメタデータを使用して、そのデータのデータ特性を決定することができる。
【００４７】
圧縮エンジンセレクタ３２０に関して以上で考察されるように、ルールベースの分析またはいくつかの他の型の分析は、圧縮選択ルールのセット等の知識ベースを動的に使用することができる、または圧縮されるデータのデータ特性に適用することができる。圧縮ルールのセットを、圧縮されるデータのデータ特性に適用して、適用される１つ以上の圧縮技法を選択することができる。例えば、選択ルールは、整数等のデータ型から構成されるデータを示すことができ、１つ以上の効率的な圧縮技法を有することができ、したがって、１つ以上の効率的な圧縮技法が選択されて適用されるであろう。圧縮選択ルールを適用するとき、複数のデータ特性を使用することができる。例えば、データ値の型をフィルターとして使用して、可能な圧縮技法を、可能な圧縮技法の限定されたセットに狭めることができ、次いで、データ内のデータの分布が表示されることを利用して、適用される圧縮技法のより小さなセットを決定することができる。例えば、データ値の型は整数であってよく、圧縮を圧縮技法のサブセットに限定し、次いで、値の小範囲を示す分布が１つ以上のディクショナリベースの圧縮技法の使用を示し得る場合等では、データ内の整数値の分布が表示されることによって、圧縮技法のサブセットが、圧縮技法の特定のセットにさらに狭められ得る。以下で考察される図６は、長い時間をかけてルールベースの分析を更新するまたは適合させるために使用可能である、様々な機械学習技法のさらなる考察をもたらす。ルールベースの分析の様々な実装は当業者に周知であるため、上述の実施例は限定を意図するものではない。
【００４８】
いくつかの実施形態では、４３０に示されるように、１つ以上の選択された圧縮技法に従って、１つ以上のデータ圧縮候補を生成することができる。それらの圧縮技法は、様々な周知の、またはあまり知られていない、もしくはカスタマイズされた圧縮技法を含んでよく、それの圧縮技法には、バイトディクショナリ、テキスト２５５、テキスト３２ｋ、デルタ、ランレングス、ｍｏｓｔｌｙｎ、ランレングス圧縮、Ｌｅｍｐｅｌ−Ｚｉｖ、Ｌｅｍｐｅｌ−Ｚｉｖ−Ｏｂｅｒｈｕｍｅｒ、ｂｚｉｐ、または、より一般的には、任意の他の形式のロスレスもしくはロッシーデータ圧縮技法が含まれるが、それらに限定されない。いくつかの実施形態では、複数の圧縮技法を適用して、データ圧縮候補を生成することができる。多くの異なる圧縮技法は当業者に周知であり、したがって、以前の実施例は限定することを意図するものではない。いくつかの実施形態では、図３に関して以上で考察されるもの、及び図５に関する以下のもの等の圧縮サービス制限を施行することができる。
【００４９】
４４０に示されるように、圧縮選択基準に従って、１つ以上のデータ圧縮候補のうちの１つを選択することができる。いくつかの実施形態では、圧縮選択基準は、サイズに従って最小のデータ圧縮候補を選択するための基準であってよい、または、時間によって分割されるデータ圧縮候補のサイズ、またはデータ圧縮候補を生成するために使用されるリソース等の、データ圧縮の性能特性のいくつかの組み合わせであってもよい。したがって、例えば、より小さな圧縮サイズのデータ圧縮候補よりも著しく時間を要さない場合は、わずかにより大きなサイズのデータ圧縮候補を選択することができる。
【００５０】
次いで、それに応じて、４５０に示されるように、選択されたデータ圧縮候補を、要求された圧縮されたデータとして送信することができる。圧縮されたデータの受信者は、クライアントと同じリモートシステムまたは位置のものであってもよい、またはクライアントとは異なる位置またはリモートシステムのものであってもよい。また、要求された圧縮されたデータを送信する前に、選択されたデータ圧縮候補に対して、他の修正、変更、またはさらなる操作を実行することができる。例えば、いくつかの実施形態では、１つ以上の暗号化技法を選択されたデータ圧縮候補に適用することができる。同様に、システム圧縮技法等の別の圧縮技法を適用して多段圧縮されたデータを生成し、それらのデータを要求された圧縮されたデータとして送信することができる。
【００５１】
上述のように、複数の異なるクライアントからの異なるデータのために、要素４１０〜４５０を繰り返し実行することができる。少なくともいくつかの実施形態では、受信されるデータは、同じクライアントからのもの、及び同じ型ならびにフォーマットのもの、またはデータの他の同様の特性のものであってよい。以前に、ルールベースの分析、１つ以上のデータ圧縮候補の生成、または送信するデータ圧縮候補のうちの１つの選択を実行することなく適用された技法に従って、そのようなデータを圧縮することができる。例えば、いくつかの実施形態では、受信されるデータは、複数のデータチャンクを含むデータストリームであってよい。第１のデータチャンクについて、要素４１０〜４５０を実行して、データチャンクを圧縮することができる。しかしながら、データストリームの後続のデータチャンクでは、第１のデータチャンクに適用される圧縮技法に従って、各データチャンクを圧縮することができる。したがって、追加の分析を実行することなく、それらのデータチャンクを圧縮して送信することができる。
【００５２】
図５を参照すると、いくつかの実施形態では、圧縮サービス制限を施行することができる。このサービス制限は、特定の順番の１つ以上の圧縮技法の選択と組み合わせることができ、それによって、最も効率的なデータ圧縮候補を生成して、圧縮制限を満たすことができる。図５は、いくつかの実施形態による、一連の選択された圧縮技法に従って、かつ所与の圧縮サービス制限内で、１つ以上のデータ圧縮候補を生成するための方法の、高レベルフローチャートである。
【００５３】
５１０に示されるように、実行されるルールベースの分析データ、または圧縮されるデータと関連付けられるメタデータを実行して、複数の圧縮技法の中から、データに適用される１つ以上の圧縮技法の順序を選択することができる。いくつかの実施形態では、この順番は、優先順位を表すことができ、また試行すべき最も効率的な圧縮技法の指標を他にいくつか表すことができる。例えば、５２０に示されるように、データに適用される圧縮技法の順序付けに従って、試行されていない圧縮技法を選択することが可能である。したがって、まず、最も効率的な圧縮を実行する可能性が最も高いデータ圧縮技法を選択することができる。いくつかの実施形態では、最も効率的な圧縮によって、最小のサイズの圧縮されたデータが圧縮技法により生成可能であることが示され得る。次いで、５３０に示されるように、圧縮技法のうちで選択された試行されていない技法に従って、データ圧縮候補を生成することができる。
【００５４】
図５に示されるように、圧縮サービス制限を超過するまで、５４０に示されるように、要素５２０及び５３０を繰り返すことが可能である。上述のように、圧縮サービス制限は、データ圧縮候補の生成を限定し得る任意の形式のルール、上限、リソース限定、もしくは境界、または所与のデータのために実行される全てのサービス等の、データ圧縮サービス２２０内の別の機能もしくは構成要素であってよい。例えば、いくつかの実施形態では、圧縮サービス制限は、サービス料金上限であってよく、その上限によって、圧縮データ候補の生成が、特定のサービス料金内で生成可能なものに限定される。図５等に示されるように、圧縮技法の順序付けは連続的に適用可能であるが、データ圧縮候補が並行して生成される場合、圧縮技法の順序付けはシステム内で適用可能である。特定の数の圧縮エンジン（例えば、ノード、システム、及びバーチャルコンピュートインスタンス（ｖｉｒｔｕａｌ  ｃｏｍｐｕｔｅ  ｉｎｓｔａｎｃｅｓ）等）を実装して、データ圧縮候補を（例えば、データ圧縮制限に従って）生成することができる、例示的なシステムについて考慮する。データ圧縮候補を生成するときにデータ圧縮エンジンによって適用される圧縮技法は、圧縮技法の順序付けによって決定することができる。現在使用される圧縮エンジンの１つ以上が圧縮データ候補の生成を完了させている場合は、追加の圧縮技法を試行することができ、それ故に、圧縮エンジンは、圧縮技法の順序付けに従って、動作と並行して、データ圧縮候補の生成も行うことができる。５４０の否定方向に示されるように、圧縮サービス制限を超過するとき、新たなデータ圧縮候補の生成はもはや継続されない可能性がある。以上の４４０で説明される選択等の選択が生じる可能性があり、５５０に記載されるように、選択された圧縮されたデータを送信することができる。
【００５５】
示される圧縮サービス制限及び圧縮技法の順番を適用するための技法はともに示されるが、それらは、個別に、または図４に関して以上で考察されるもの等の他の方法もしくは技法と組み合わせて実行可能であることを、理解されたい。
【００５６】
図６を参照すると、いくつかの実施形態では、データのルールベースの分析及び／または圧縮されるデータと関連付けられるメタデータは、１つ以上の機械学習技法に基づいて、修正、更新、または変更可能である。図６は、いくつかの実施形態による、機械学習を実行して圧縮されるデータのルールベースの分析を更新するための方法を示す、高レベルフローチャートである。６１０に示されるように、圧縮データサービスにおいて以前に圧縮されたデータのための過去の圧縮データを得ることができる。図３中の過去の圧縮データ３５０に関して以上で考察されるように、この過去の圧縮データは、様々な異なるデータ特性、性能特性、及び／またはデータの圧縮の以前の性能と関連付けられる任意の他のデータを含むことができる。例えば、個人のクライアントのための圧縮されたデータの履歴を保持することができる。
【００５７】
６２０に示されるように、過去の圧縮データに１つ以上の機械学習技法を実行して、圧縮されるデータのデータ特性に適用される圧縮選択ルールの最新のセットを更新することができる。例えば、圧縮されるデータは、データ型、クライアントの種類、及びサイズを含むデータ特性のセットを有し得る。同じまたは類似する特性を有するデータの、以前に圧縮されたデータのための過去の圧縮データを得ることができる。管理、非管理、または半管理学習等の１つ以上の機械学習技法を過去の圧縮データに適用することができる。機械学習技法によって識別される学習に基づいてデータに適用される、選択ルール。例えば、異なる圧縮技法を用いて既知のデータ型をよりよく圧縮可能であることが一般的に知られているとしても、この種類のクライアント、及びデータのサイズでは、特定の圧縮技法によって、データがより効率的に圧縮されると考えられると判定され得る。機械学習からのこの観測に基づいて圧縮選択ルールを選択することにおいて、特定の圧縮技法の優先度は上昇し得る。機械学習は当業者に周知であるため、以前の実施例は限定することを意図するものではない。次いで、６３０に示されるように、更新された圧縮選択ルールのセットを、圧縮されるデータのデータ特性に適用して、データに適用される１つ以上の圧縮技法を選択することができる。
【００５８】
図７を参照すると、いくつかの実施形態では、多段圧縮は、圧縮のために受信されたデータに適用することできる。図７は、いくつかの実施形態による、多段圧縮を含むサービスとして、効率的なデータ圧縮及び分析を実行するための方法を示す、高レベルフローチャートである。７１０に示されるように、１つ以上のデータ圧縮技法に従って、データ圧縮候補を生成可能である。いくつかの実施形態では、このデータ圧縮候補は選択されたデータ圧縮候補であり、要求された圧縮されたデータとして送信される。次いで、７２０に示されるように、データ圧縮候補のために、エントロピー測定値を決定することができる。データ圧縮候補内に記憶されたデータ値の変化を示す、エントロピー測定値を決定することができる。次いで、７３０に示されるように、データ圧縮候補のエントロピー測定値がエントロピー閾値未満であるか否かが判定され得る。閾値未満である場合は、７４０に示されるように、システム圧縮技法に従って、データ圧縮候補を再度圧縮して、圧縮されたデータとして送信される多段圧縮されたデータを生成することができる。システム圧縮技法は、図３及び４に関する上述のもの等の、任意の圧縮技法であってよい。次いで、７５０に示されるように、この多段圧縮されたデータを送信することができる。図示されていないが、この多段圧縮されたデータを調査して、多段縮されたサイズが、以前に圧縮されたサイズよりも大きいか否かを判定することができ、大きい場合は、多段圧縮を解除して、７６０に示されるようにデータを送信することができる。代替として、エントロピー測定値が閾値以上である場合は、７６０等に示されるように、データ圧縮候補を送信することができる。しかしながら、図７は、エントロピー閾値を適用可能であることを示すが、いくつかの実施形態では、送信されるデータとして選択された全てのデータ圧縮候補は、システム全体の圧縮技法を用いて圧縮可能である。
【００５９】
図２に関して以上で考察されるように、いくつかの実施形態では、データ圧縮を、ネットワークベースのサービスとして、クライアント２５０ａ〜２５０ｎ等の様々な異なるクライアントに提供することができる。図８は、いくつかの実施形態による、データ圧縮をサービスとして実行するための方法を示す高レベルフローチャートである。様々な異なるシステム、構成要素、及びアーキテクチャを利用して、以下に記載される技法を実装することができる。少なくともいくつかの実施形態では、図２中のネットワークベースのサービスプラットフォーム２００等の、ネットワークベースのサービスプラットフォームは、記載される要素をいくつかまたは全て実装することができる。しかしながら、以下に示される実施例は、ネットワーク系データ圧縮サービスを実装する任意の特定のアーキテクチャ、構成、または構成要素を限定することを意図するものではない旨を理解されたい。また、要素の特定の順序付けまたは配列も、要素の配列の任意の他の順序付け、または追加の要素の実行、もしくは図８に示す要素の除去を限定するものではない。
【００６０】
８１０に示されるように、いくつかの実施形態では、クライアントから圧縮されるデータを示す圧縮要求を受信することができる。図３及び７に関する上述の様々な圧縮要求として、圧縮されるデータを、圧縮要求とともに、示す（例えば、データの位置）、含む、または送信することができる。圧縮要求は、圧縮要求と関連付けられる１つ以上の識別子を含むことができ、その識別子によって、クライアント、またはその要求が送信されるクライアントアカウントが識別される。例えば、クライアントアカウント番号の要求を含む、いくつかのフィールドを定義するＡＰＩ、または他の型のプロトコル、もしくはインターフェースに従って、識別子をフォーマットすることができる。同様に、データ圧縮サービスから提供される、様々な型の圧縮サービスまたはオプションの要求等の圧縮要求において、他のクライアント情報を示すことができる。例えば、圧縮要求は、圧縮要求に対する特定の料金体系を識別することができ、次いで、その料金体系によって、いかにして圧縮されたデータを生成することができるか、及び要求と関連付けられる料金はいくら発生し得るかを、判定することができる。同様に、特定の型の圧縮技法、分析、クライアント履歴、またの任意の他の種類の情報を、圧縮要求の一部として示すことができる。例えば、クライアントは、単に同じクライアントからの以前のクライアント圧縮要求に依存して、示されるデータを分析かつ圧縮するというオプションとともに、圧縮要求を提出することができる。
【００６１】
様々な実施形態では、ネットワーク系データ圧縮サービスは、様々な異なる料金体系を、圧縮クライアントに提供することができる。それらの料金体系には、１つ以上の圧縮サービス因子及び／または制限を決定することが含まれ得る。例えば、いくつかの実施形態では、リソース制約、時間制約、及びコスト制約は、料金体系に含まれる１つ以上の圧縮サービス因子であってよい。例えば、様々な時間制約が料金体系に含まれ得、その料金体系によって、特定のサービスレベルの合意に適合するもの等の、合意された完了時間（例えば、要求につき２分）が、圧縮要求に提供される。料金上限等のコスト制約、または図７に関して以上で考察されるもの等の他の圧縮サービス制限を、料金体系の一部として含むことができる。また、同様に、リソース制約も含むことができる。例えば、（例えば、利用可能であるとき、要求に応じて、予約されたとき、または特定の値段で）圧縮要求を実行するまたは処理するための、特定の数のリソース（例えば、ノード）。
【００６２】
次いで、様々な実施形態では、８２０に示されるように、圧縮要求と関連付けられる料金体系を決定することができる。料金体系の決定は、例えば、圧縮要求に含まれる１つ以上の識別子（例えば、アカウント番号）を介して、クライアントを識別することによって実行され得る。また、データの型、データが送信された時間、及び図４に関する上述のメタデータ等の、特定のデータのために含まれるメタデータ等の他の因子を含んで、データ圧縮サービスを決定する際に使用することができる。いくつかの実施形態では、データ圧縮サービスによって、単一の料金体系をクライアントに提供することができる。しかしながら、少なくともいくつかの実施形態では、同じクライアントまたは異なるクライアントからの異なる要求に対して、複数の料金体系を決定する場合がある。
【００６３】
８３０に示すように、決定された料金体系に従って、圧縮されたデータを生成することができる。図３及び４に関して以上で考察されるように、様々な異なる圧縮技法を、圧縮要求のデータに適用することができる。少なくともいくつかの実施形態では、圧縮要求は、示されたデータに適用するための、選択された１つ以上の圧縮技法を示すことができる。代替として、いくつかの実施形態では、圧縮要求は、例えば、ルールベースの分析、または機械学習によって通知されるもしくは機械学習なしで通知される他の形式の動的分析を適用すること等の、図３及び４に関する上述の様々な分析技法のうちの１つ以上を要求することができる。図５に関する以上の考察と同様に、決定された料金体系に従って、要求された圧縮されたデータを生成することができる。例えば、いくつかの実施形態では、決定された料金体系によって、データ圧縮候補を生成するための時間制限、またはリソース、もしくは料金上限が適用され得る。同様に、料金体系によって、異なる圧縮技法の値段を異なる値段で設定することができ、ユーザーが選択した圧縮技法が、要求に対する料金体系によって決定された上限または限定を超過する場合は、代わりに類似する圧縮技法を圧縮要求に対して実行することができる（または、選択された圧縮技法の使用に対してより高い料金を発生させることができる）。より一般的には、いくつかの実施形態では、圧縮されたデータを生成するとき、決定された料金体系によって、１つ以上の圧縮サービス制限を圧縮要求に課すことができる。例えば、圧縮サービス制限がクライアントに対して単に圧縮要求を実行するものである場合は、データ圧縮のコストが（例えば、要求を実行するためのノード等のリソースの利用可能性に基づいて）特定の値段であるとき、圧縮サービス制限を満たすことができるまで、要求がキューされ得る。他の多くの異なる圧縮サービス制限及び料金体系の種類を想定することができるため、以前の実施例は限定することを意図するものではない。
【００６４】
少なくともいくつかの実施形態では、８４０に示されるように、料金体系に従って、圧縮されたデータに対して料金を発生させることができる。例えば、料金体系によって、圧縮する時間、圧縮するデータの量、圧縮するデータの型、データを圧縮するためのリソースの数（例えば、ノードの数）、及び圧縮技法の型等の様々な因子に対する特定の価格またはコストを類型化することができる。様々な料金体系によって、特定の数の圧縮要求を、所与の期間内（例えば、１０日）で提供することができる、または特定の量の圧縮されるデータを、特定の期間内（例えば、１ヶ月あたり１０ギガバイト）で提供することができる。データの動的またはルールベースの分析等の、上述の様々なオプションまたは圧縮サービスに対して、追加の請求、料金、または値段を加えることができる。少なくともいくつかの実施形態では、図２中のネットワークベースのサービスインターフェース２００に関する上述のもの等の、クライアントの会計及び請求情報を保持するデータ蓄積内の料金を記録すること等によって、発生する料金をクライアントと関連付けることができる。
【００６５】
次いで、８５０に示されるように、圧縮要求に従って、要求された圧縮されたデータを送信することができる。図３及び４に関して以上で考察されるように、圧縮されたデータを、別のクライアント、システム、またはサービス等の、データの発信元とは異なるリモート位置に送信することができる。例えば、圧縮されたデータを、保管または他の永続データ蓄積サービスに送信することができる。代替として、圧縮されたデータを、要求するクライアントに返送することができる。
【００６６】
いくつかの実施形態では、復元要求は、上述の図８中のものに類似する様式の、クライアントのためのプロセスであってよい。圧縮要求に対する料金体系を決定することができ、その料金体系に従ってデータを復元することができ、復元の料金を発生させることができ、かつ圧縮要求に従って、復元されたデータを送信することができる。
【００６７】
例示的なシステム
本明細書中に記載の効率的なデータ圧縮及び分析の実施形態は、様々な他のデバイスと交信可能な１つ以上のコンピュータシステムに実行することができる。１つのそのようなコンピュータシステムは、図９によって示される。様々な実施形態では、コンピュータシステム１０００は、パーソナルコンピュータシステム、デスクトップコンピュータ、ラップトップ、ノートパソコンもしくはネットブックコンピュータ、メインフレームコンピュータシステム、ハンドヘルドコンピュータ、ワークステーション、ネットワークコンピュータ、カメラ、セットトップボックス、モバイルデバイス、消費者デバイス、ビデオゲーム機器、ハンドヘルドビデオゲームデバイス、アプリケーションサーバー、記憶デバイス、スイッチ、モデム、及びルーター等の周辺機器、または、一般に、任意の型のコンピューティングもしくは電子デバイスを含むが、それらに限定されない様々な型のデバイスのうちのいずれかであってよい。
【００６８】
例示された実施形態では、コンピュータシステム１０００は、入力／出力（Ｉ／Ｏ）インターフェース１０３０を介してシステムメモリ１０２０に接続される、１つ以上のプロセッサ１０１０を含む。コンピュータシステム１０００は、Ｉ／Ｏインターフェース１０３０に接続されるネットワークインターフェース１０４０、及びカーソル制御デバイス１０６０、キーボード１０７０、ならびにディスプレイ（複数可）１０８０等の１つ以上の入力／出力デバイス１０５０をさらに含む。ディスプレイ（複数可）１０８０は、標準コンピュータモニター（複数可）、及び／または他のディスプレイシステム、技術、もしくはデバイスを含むことができる。少なくともいくつかの実装では、入力／出力デバイス１０５０もまた、パッドもしくはタブレット等のタッチもしくはマルチタッチ可能デバイスを含むことができ、それらを介して、ユーザーは、スタイラス型デバイス及び／または１つ以上のデジットを用いて入力を行う。いくつかの実施形態では、コンピュータシステム１０００の単一のインスタンスを用いて、実施形態を実装することができる旨が企図されるが、他の実施形態では、コンピュータシステム１０００を構成する複数のそのようなシステムまたは複数のノードを構成して、実施形態の異なる部分またはインスタンスをホストすることができる。例えば、一実施形態では、他の構成要素を実装するノードとは異なる、コンピュータシステム１０００の１つ以上のノードを介して、いくつかの要素を実装することができる。
【００６９】
様々な実施形態では、コンピュータシステム１０００は、１つのプロセッサ１０１０、またはプロセッサ１０１０をいくつか（例えば、２つ、４つ、８つまたは別の好適な数）含むマルチプロセッサシステムを含む、ユニプロセッサシステムであってよい。プロセッサ１０１０は、インストラクションを実行することができる、任意の好適なプロセッサであってよい。例えば、様々な実施形態では、プロセッサ１０１０は、ｘ８６、ＰｏｗｅｒＰＣ、ＳＰＡＲＣ、またはＭＩＰＳ  ＩＳＡ、もしくは任意の他の好適なＩＳＡ等の、様々なインストラクションセットアーキテクチャ（ＩＳＡ）のいずれかを実装する、汎用または組み込みプロセッサであってよい。マルチプロセッサシステムでは、各々のプロセッサ１０１０は、通常、同じＩＳＡを実装することができるが、必ずしも同じＩＳＡを実装しなくてもよい。
【００７０】
いくつかの実施形態では、少なくとも１つのプロセッサ１０１０は、グラフィック処理ユニットであってよい。グラフィック処理ユニット、すなわちＧＰＵは、パーソナルコンピュータ、ワークステーション、ゲーム機器、または他のコンピューティングもしくは電子デバイス専用のグラフィックレンダリングデバイスであってよいとされる。最新のＧＰＵは、非常に効率的にコンピュータグラフィックを操作かつ表示することができ、その高並列構造によって、グラフィカルアルゴリズムの範囲が複雑である典型的なＣＰＵよりも、効果的なものとなり得る。例えば、グラフィックプロセッサは、複数のグラフィックプリミティブ動作を実装することができるが、その実装の実行は、ホスト中央処理ユニット（ＣＰＵ）を用いてスクリーンに直接描画するよりもさらに速い方式で行われる。様々な実施形態では、グラフィックレンダリングを、そのようなＧＰＵのうちの１つにおいて実行されるように、または２つ以上において並行実行されるように構成されるプログラムインストラクションによって、少なくとも一部実装することができる。ＧＰＵ（複数可）は、プログラマーがＧＰＵ（複数可）の機能性を起動するのを可能にする、１つ以上のアプリケーションプログラマーインターフェース（ＡＰＩ）を実装することができる。好適なＧＰＵは、ＮＶＩＤＩＡ  Ｃｏｒｐｏｒａｔｉｏｎ、及びＡＴＩ  Ｔｅｃｈｎｏｌｏｇｉｅｓ（ＡＭＤ）等のベンダーから、商業的に入手可能であり得る。
【００７１】
プロセッサ１０１０によってアクセス可能なプログラムインストラクション及び／またはデータを記憶するために、システムメモリ１０２０を構成することができる。様々な実施形態では、静的ランダムアクセスメモリ（ＳＲＡＭ）、同期式動的ＲＡＭ（ＳＤＲＡＭ）、不揮発性／フラッシュ型メモリ、または任意の他の型のメモリ等の、任意の好適なメモリ技術を使用して、システムメモリ１０２０を実装することができる。例示された実施形態では、上述のような望ましい機能を実装するプログラムインストラクション及びデータは、システムメモリ１０２０内に、プログラムインストラクション１０２５及びデータ記憶１０３５としてそれぞれ記憶されることが示されている。他の実施形態では、システムメモリ１０２０、またはコンピュータシステム１０００から分離している異なる型のコンピュータアクセス可能なメディアもしくは同様のメディアにおいて、プログラムインストラクション及び／またはデータを受信、送信、または記憶することができる。一般的に言えば、コンピュータアクセス可能な媒体は、磁気もしくは光学メディア、例えば、Ｉ／Ｏインターフェース１０３０を介してコンピュータシステム１０００に接続される、ディスクもしくはＣＤ／ＤＶＤ−ＲＯＭ等の、記憶メディアまたはメモリメディアを含むことができる。コンピュータアクセス可能な媒体を介して蓄積されるプログラムインストラクション及びデータは、伝送メディア、または電気、電磁、もしくはデジタル信号等の信号によって、発信することができ、それらの伝送メディアまたは信号は、ネットワークインターフェース１０４０等を介して実装可能なネットワーク及び／または無線リンク等の、通信媒体を介して伝達することができる。
【００７２】
一実施形態では、Ｉ／Ｏインターフェース１０３０を構成して、プロセッサ１０１０と、システムメモリ１０２０と、入力／出力デバイス１０５０等のネットワークインターフェース１０４０あるいは他の周辺機器インターフェースを含むデバイス内の任意の周辺機器デバイスと間の、Ｉ／Ｏトラフィックを調整することができる。いくつかの実施形態では、Ｉ／Ｏインターフェース１０３０は、任意の必須のプロトコル、時間、または他のデータ変換を実行して、データ信号を、１つの構成要素（例えば、システムメモリ１０２０）から、別の構成要素（例えば、プロセッサ１０１０）によって使用されるのに好適であるフォーマットに変換することができる。いくつかの実施形態では、Ｉ／Ｏインターフェース１０３０は、例えば、周辺機器構成要素相互接続（ＰＣＩ）バス標準またはユニバーサルシリアルバス（ＵＳＢ）標準の変形等の、様々な型の周辺機器バスを介して取り付けられるデバイスのための支援を含むことができる。いくつかの実施形態では、Ｉ／Ｏインターフェース１０３０の機能を、例えば、ノースブリッジ及びサウスブリッジ等の、２つ以上の個別の構成要素に分割することができる。さらに、いくつかの実施形態では、システムメモリ１０２０へのインターフェース等の、Ｉ／Ｏインターフェース１０３０の機能のいくつかまたは全てを、プロセッサ１０１０内に直接組み込むことができる。
【００７３】
ネットワークインターフェース１０４０を構成することによって、データを、コンピュータシステム１０００と、他のコンピュータシステム等のネットワークに接続される他のデバイスとの間で、またはコンピュータシステム１０００のノード間で交換することが可能となる。様々な実施形態では、ネットワークインターフェース１０４０は、任意の好適な型のイーサネット（登録商標）ネットワーク等の有線または無線一般データネットワークを介して、例えば、アナログ音声ネットワークもしくはデジタルファイバー通信ネットワーク等の電気通信／電話ネットワークを介して、ファイバーチャネルＳＡＮ等の記憶領域ネットワークを介して、または任意の他の好適な型のネットワーク及び／もしくはプロトコルを介して、通信を支援することができる。
【００７４】
いくつかの実施形態では、入力／出力デバイス１０５０は、１つ以上のディスプレイ端末、キーボード、キーパッド、タッチパッド、スキャニングデバイス、音声もしくは光学認識デバイス、または、１つ以上のコンピュータシステム１０００によってデータを入力するもしくは取り出すのに好適である、任意の他のデバイスを含むことができる。複数の入力／出力デバイス１０５０は、コンピュータシステム１０００内に存在してもよい、またはコンピュータシステム１０００の様々なノードにおいて分配されてもよい。いくつかの実施形態では、同様の入力／出力デバイスは、コンピュータシステム１０００から分離されてもよく、有線もしくは無線接続を介して、例えば、ネットワークインターフェース１０４０を介して、コンピュータシステム１０００の１つ以上のノードと交信することができる。
【００７５】
図９に示されるように、メモリ１０２０は、効率的なデータ圧縮及び分析の実施形態を本明細書中に記載のサービスとして実装するように、かつプログラムインストラクション１０２５によってアクセス可能な様々なデータを含むデータ記憶１０３５を実装するように構成される、プログラムインストラクション１０２５を含むことができる。一実施形態では、プログラムインストラクション１０２５は、本明細書中に記載される、かつ図中に示される実施形態のソフトウェア要素を含むことができる。データ記憶１０３５は、実施形態内で使用可能なデータを含むことができる。他の実施形態では、他のまたは複数のソフトウェア要素及びデータを含むことができる。
【００７６】
コンピュータシステム１０００は単に例示的なものであり、本明細中に記載の実施形態の範囲を限定することを意図するもではない旨を、当業者は理解するであろう。特に、コンピュータシステム及びデバイスは、示される機能を実行することができるハードウェアまたはソフトウェアの任意の組み合わせを含むことができ、それらのハードウェアまたはソフトウェアには、コンピュータ、パーソナルコンピュータシステム、デスクトップコンピュータ、ラップトップ、ノートパソコンもしくはネットブックコンピュータ、メインフレームコンピュータシステム、ハンドヘルドコンピュータ、ワークステーション、ネットワークコンピュータ、カメラ、セットトップボックス、モバイルデバイス、ネットワークデバイス、インターネット器具、ＰＤＡ、無線電話、ページャー、消費者デバイス、ビデオゲーム機器、ハンドヘルドビデオゲームデバイス、アプリケーションサーバー、記憶デバイス、スイッチ、モデム、ならびにルーター等の周辺機器デバイス、または、一般に、任意の型のコンピューティングもしくは電子デバイスが含まれる。また、コンピュータシステム１０００は、示されない他のデバイスに接続可能である、または、代わりに、スタンドアロンシステムとして動作可能である。さらに、いくつかの実施形態では、示される構成要素によってもたらされる機能性は、より少ない構成要素と組み合わせることができる、または追加の構成要素内に分配させることができる。同様に、いくつかの実施形態では、いくつかの示される構成要素の機能性を提供しなくてもよい、及び／または、他の追加の機能性を利用してもよい。
【００７７】
また、様々な物品は、使用される間、メモリまたは記憶内に記憶されるものとして示されるが、メモリ管理及びデータの完全性を目的として、それら物品またはそれら物品の部分を、メモリと他の記憶デバイスとの間で移動させることができる旨も、当業者は理解するであろう。代替として、他の実施形態では、ソフトウェア構成要素のいくつかもしくは全ては、別のデバイスのメモリ内で実行可能であり、かつ、コンピュータ間通信によって、示されるコンピュータシステムと通信可能である。また、システム構成要素またはデータ構造のうちのいくつかまたは全てを、適切なドライブによって読み込まれるコンピュータアクセス可能な媒体またはポータブル物品上で、（例えば、インストラクションまたは構造化データとして）記憶することもできるが、そのドライブの様々な実施例は、以上に記載されるものである。いくつかの実施形態では、伝送メディア、またはネットワーク及び／もしくは無線リンク等の通信媒体を介して伝達される電気、電磁、もしくはデジタル信号等の信号を介して、コンピュータシステム１０００から分離するコンピュータ可読媒体上に記憶されるインストラクションを、コンピュータシステム１０００に発信することができる。このコンピュータ可読記憶媒体は、持続性であってよい。様々な実施形態は、上記説明に従ってコンピュータアクセス可能な媒体に実装されるインストラクション及び／またはデータを、受信すること、送信すること、または記憶することをさらに含んでもよい。したがって、本発明は、他のコンピュータシステム構成を用いて実施することができる。
【００７８】
また、以下の付記の観点からも、上述についてよりよく理解することができる。
１．圧縮サービスを実装するよう構成される１つ以上のコンピューティングデバイスを備えるシステムであって、前記圧縮サービスが、
複数の圧縮エンジンであって、各々が、複数の圧縮技法の中から、少なくとも１つの圧縮技法を実行するように構成される、複数の圧縮エンジンと、
ルールベースの圧縮エンジンセレクタであって、
クライアントから圧縮されるデータを受信し、
前記データの受信に応答して、
圧縮される前記データまたは前記データと関連付けられるメタデータにルールベースの分析を実行して、前記複数の圧縮技法の中から前記データに適用される１つ以上の圧縮技法を選択し、かつ
前記選択された１つ以上の圧縮技法に従って、かつ所与の圧縮サービス制限に準じて、前記複数の圧縮エンジンのうちの１つ以上に、１つ以上の圧縮データ候補を生成するよう指示するように構成される、圧縮エンジンセレクタと、
応答生成モジュールであって、
圧縮選択基準に従って、前記１つ以上のデータ圧縮候補のうちの１つを選択して、要求された圧縮されたデータとして送信するように構成される、応答生成モジュールと、を備える、前記システム。
２．圧縮される前記データまたは前記データと関連付けられる前記メタデータにルールベースの分析を実行して、前記複数の圧縮技法の中から前記データに適用される前記１つ以上の圧縮技法を選択するために、前記ルールベースの圧縮エンジンセレクタが、最新の圧縮選択ルールのセットを、前記データのための１つ以上のデータ特性に適用するように構成され、
前記圧縮サービスが、
１つ以上の機械学習技法を過去の圧縮データに実行して、前記最新の圧縮選択ルールのセットを更新するように構成される、機械学習圧縮分析モジュールをさらに備える、付記１に記載の前記システム。
３．前記応答生成モジュールが、
前記１つ以上のデータ圧縮候補のうちの前記選択された１つに対してエントロピー測定値を決定し、かつ
前記１つ以上のデータ圧縮候補のうちの前記選択された１つに対して前記エントロピー測定値がエントロピー閾値未満であると決定することに応答して、システム圧縮技法に従って、前記選択された１つを圧縮して、前記要求された圧縮されたデータとして送信される多段圧縮されたデータを生成するようにさらに構成される、付記１に記載の前記システム。
４．１つ以上のコンピューティングデバイスによって、
クライアントから圧縮されるデータを示す圧縮要求の受信を実行することと、
前記圧縮要求の受信に応答して、
圧縮される前記データまたは前記データと関連付けられるメタデータに分析を実行して、複数の圧縮技法の中から、前記データに適用される１つ以上の圧縮技法を選択することと、
前記１つ以上の圧縮技法に従って、１つ以上のデータ圧縮候補を生成することと、
圧縮選択基準に従って、前記１つ以上のデータ圧縮候補のうちの１つを選択して、要求された圧縮されたデータとして送信すること、かつ
前記要求された圧縮されたデータを含む応答を送信することと、を実行することを含む、方法。
５．前記１つ以上の圧縮技法に従う前記１つ以上のデータ圧縮候補の該生成が、
所与の圧縮サービス制限を超過するまで、前記１つ以上の圧縮技法の各々についてデータ圧縮候補を生成することを含む、付記４に記載の前記方法。
６．前記所与の圧縮サービス制限が時間制限である、付記５に記載の前記方法。
７．圧縮される前記データまたは前記データと関連付けられるメタデータの分析がルールベースの分析である、付記４に記載の前記方法。
８．前記方法が、
１つ以上の機械学習技法を過去の圧縮データに実行して、前記１つ以上の圧縮技法を選択するために適用される最新の圧縮選択ルールのセットを更新することをさらに含み、
圧縮される前記データまたは前記データと関連付けられる前記メタデータの前記分析を実行して、前記複数の圧縮技法の中から、前記データに適用される前記１つ以上の圧縮技法を選択することが、
前記更新された圧縮選択ルールのセットを、各データの１つ以上のデータ特性に適用して、前記データに適用される前記複数の圧縮技法の中から前記１つ以上の圧縮技法を選択することを含む、付記７に記載の前記方法。
９．前記メタデータが、圧縮されるデータの型または他の１つ以上の特性を示し、前記１つ以上の機械学習技法が、前記圧縮されるデータの型、または前記他の１つ以上の特性に少なくとも一部基づいて実行される、付記８に記載の前記方法。
１０．圧縮される前記データまたは前記データと関連付けられる前記メタデータの分析を実行して、前記複数の圧縮技法の中から、前記データに適用される前記１つ以上の圧縮技法を選択することが、前記選択された１つ以上の圧縮技法に、ランダムに選択された圧縮技法を含むことをさらに含む、付記８に記載の前記方法。
１１．圧縮される複数の他のデータを、複数のクライアントから受信することと、
前記複数の他のデータの各々について、
該ルールベースの分析、該生成、該選択、及び該送信を実行することと、
前記他のデータのための圧縮結果データ及びデータ特性を、前記過去の圧縮データの一部として記憶することと、をさらに含む、付記８に記載の前記方法。
１２．前記要求された圧縮されたデータを含む前記応答を送信する前に、前記システム圧縮技法に従って、前記選択されたデータ圧縮候補を圧縮して、前記要求された圧縮されたデータとして送信される多段圧縮されたデータを生成することをさらに含む、付記４に記載の前記方法。
１３．前記圧縮されるデータが、複数のデータチャンクを含むデータストリームであり、該実行すること、該生成すること、及び該選択することが、前記複数の圧縮されるデータチャンクのうちの前記第１の圧縮されるデータチャンクに対して実行され、前記方法が、
前記複数のデータチャンクのうちの後続データチャンクの各々について、
前記第１のデータチャンクを圧縮するために適用される前記１つ以上のデータ圧縮技法に従って、圧縮されたデータチャンクを生成することと、
前記データチャンクを含む応答を送信することと、をさらに含む、付記４に記載の前記方法。
１４．圧縮されたデータを示す別のクライアントからの復元要求であって、該復元要求が、前記圧縮されたデータを生成するために適用される１つ以上の圧縮技法を示す、前記復元要求を受信することと、
復元されたデータを生成するために適用される、示される１つ以上の圧縮技法に従って、前記圧縮されたデータを復元して、復元されたデータオブジェクトを生成することと、
前記復元されたデータを含む前記他のクライアントに、応答を送信することと、をさらに含む、付記４に記載の前記方法。
１５．要求された圧縮されたデータを含む応答を送信する前に、１つ以上の圧縮技法に従って、前記選択された圧縮されたデータ候補を暗号化して送信することをさらに含む、付記４に記載の前記方法。
１６．前記１つ以上のコンピューティングデバイスがともに機能して、ネットワーク系データ圧縮サービスを実装し、前記前記圧縮要求が、ネットワーク系圧縮サービスのためのインターフェースに従って受信され、
前記方法が、
前記圧縮要求の受信に応答して、
前記圧縮要求に少なくとも一部基づいて、前記圧縮要求に対する料金体系を決定することと、
前記決定された料金体系に基づいて、前記要求された圧縮されたデータと関連付けられる料金を発生させることと、をさらに含み、
前記データ、または前記圧縮されるデータと関連付けられるメタデータでの前記分析の該実行、前記１つ以上の圧縮技法に従う前記１つ以上のデータ圧縮候補の該生成、及び前記１つ以上のデータ圧縮候補のうちから１つの該選択が、前記決定された料金体系に従って実行される、付記４に記載の前記方法。
１７．ネットワークベースのサービスを実装するように構成される複数のコンピューティングデバイスを備えるシステムであって、前記ネットワークベースのサービスが、
１つ以上の圧縮技法に従ってデータを圧縮するように構成されるデータ圧縮サービスモジュールと、
ネットワークベースのサービスインターフェースであって、
クライアントから圧縮されるデータを示す圧縮要求を受信し、
前記圧縮要求の受信に応答して、
前記圧縮要求と関連付けられる料金体系を決定し、
前記要求と関連付けられる前記料金体系に従って、前記データ圧縮サービスモジュールに要求された圧縮されたデータを生成するよう指示し、
前記料金体系に従って、前記要求された圧縮されたデータに対する料金を発生させ、かつ
前記圧縮要求に従って、前記要求された圧縮されたデータを送信するように構成される、前記ネットワークベースのサービスインターフェースと、を備える、前記システム。
１８．前記料金体系が、圧縮要求に対する圧縮サービス制限を示し、前記要求された圧縮されたデータを生成するために、前記データサービス圧縮モジュールが、前記要求された圧縮されたデータを前記圧縮サービス制限内で生成するよう構成される、付記１７に記載の前記システム。
１９．前記圧縮要求が、前記示されたデータに適用される１つ以上のクライアント選択の圧縮技法をさらに示し、前記要求された圧縮されたデータを生成するために、前記データサービス圧縮モジュールが、前記要求された圧縮されたデータを生成するために、１つ以上のクライアント選択の圧縮技法を実行するように構成される、付記１７に記載の前記システム。
２０．前記圧縮要求が、前記圧縮されるデータの圧縮分析をさらに要求し、１つ以上の圧縮技法に従って前記データを圧縮するために、前記データ圧縮サービスモジュールが、
圧縮される前記データまたは前記データと関連付けられるメタデータに分析を実行して、複数の圧縮技法の中から、前記データに適用される１つ以上の圧縮技法を選択し、
前記１つ以上の圧縮技法に従って、１つ以上のデータ圧縮候補を生成し、かつ
圧縮選択基準に従って、前記１つ以上のデータ圧縮候補のうちの１つを、前記要求された圧縮されたデータとして選択するように構成される、付記１７に記載の前記システム。
２１．プログラムインストラクションを記憶する持続性コンピュータ可読記憶媒体であって、１つ以上のコンピューティングデバイスによって実行されるとき、
クライアントから圧縮されるデータを示す圧縮要求の受信を実行すること、
前記圧縮要求の受信に応答して、
前記データ、または前記圧縮されるデータと関連付けられるメタデータに実行して、前記データに適用される複数の圧縮技法の中から、１つ以上の圧縮技法を選択すること、
前記１つ以上の圧縮技法に従って、１つ以上のデータ圧縮候補を生成すること、
圧縮選択基準に従って、前記１つ以上のデータ圧縮候補のうちの１つを選択して、要求された圧縮されたデータとして送信すること、かつ
前記要求された圧縮されたデータを含む応答を送信すること、を実装する、前記持続性コンピュータ可読記憶媒体。
２２．前記１つ以上の圧縮技法に従う、前記１つ以上のデータ圧縮候補の該生成において、前記プログラムインストラクションが、前記１つ以上のコンピューティングデバイスによって実行されるとき、
所与の圧縮サービス制限を超過するまで、前記１つ以上の圧縮技法のそれぞれのデータ圧縮候補を生成することを実装し、該所与の圧縮サービス制限が圧縮サービス料金上限である、付記１４に記載の前記持続性コンピュータ可読記憶媒体。
２３．前記データに適用される前記選択された１つ以上の圧縮技法が特定の順番で順序付けされ、前記１つ以上の圧縮技法に従う、前記１つ以上のデータ圧縮候補の該生成において、前記プログラムインストラクションが、前記１つ以上のコンピューティングデバイスによって実行されるとき、前記１つ以上の圧縮技法の前記特定の順番に従って、前記１つ以上のデータ圧縮候補を生成することを実装する、付記１４に記載の前記持続性コンピュータ可読記憶媒体。
２４．前記プログラムインストラクションが、前記１つ以上のコンピューティングデバイスによって実行されるとき、
１つ以上の機械学習技法を過去の圧縮データに実行して、前記１つ以上の圧縮技法を選択するために適用される最新の圧縮選択ルールのセットを更新することをさらに実装し、
前記ルールベースの分析を、前記データ、または前記圧縮されるデータと関連付けられる前記メタデータに実行して、前記データに適用される前記複数の圧縮技法の中から前記１つ以上の圧縮技法の該選択を行うことにおいて、前記プログラムインストラクションが、前記１つ以上のコンピューティングデバイスによって実行されるとき、
前記更新された圧縮選択ルールのセットを、各データの１つ以上のデータ特性に適用して、前記データに適用される前記複数の圧縮技法の中から前記１つ以上の圧縮技法を選択することを実装する、付記１４に記載の前記持続性コンピュータ可読記憶媒体。
２５．前記要求された圧縮されたデータを含む前記応答が、前記クライアントとは異なるリモートシステムに送信される、付記１４に記載の前記持続性コンピュータ可読記憶媒体。
【００７９】
結論
様々な実施形態は、上記説明に従ってコンピュータアクセス可能な媒体に実装されるインストラクション及び／またはデータを、受信すること、送信すること、または記憶することをさらに含んでもよい。一般的に言えば、コンピュータアクセス可能な媒体は、磁気もしくは光学メディア、例えば、ディスクもしくはＤＶＤ／ＣＤ−ＲＯＭ、ＲＡＭ（例えば、ＳＤＲＡＭ、ＤＤＲ、ＲＤＲＡＭ、及びＳＲＡＭ等）等の不揮発性メディア、ならびにＲＯＭ等の記憶メディアもしくはメモリメディア、及びネットワークならびに／または無線リンク等の通信媒体を介して伝達される、電気、電磁、もしくはデジタル信号等の伝送メディアもしくは信号を含んでもよい。
【００８０】
図に示され、かつ明細書中に記載される様々な方法は、方法の例示的な実施形態を表す。本方法は、ソフトウェア、ハードウェア、またはそれらの組み合わせ内に実装してもよい。方法の順序を変更することができ、かつ様々な要素を追加して、再度順序付けする、組み合わせる、除外する、及び修正すること等を行うことができる。
【００８１】
本開示の利益を享受する当業者にとって明白である、様々な修正及び変更を加えることができる。本発明は、そのような全ての修正及び変更を包含し、したがって、以上の記載は、限定的な意味ではなく、例示的な意味で考慮されるべきものであることを意図する。
【図１】
0006282728.tif 000002
【図２】
0006282728.tif 000003
【図３】
0006282728.tif 000004
【図４】
0006282728.tif 000005
【図５】
0006282728.tif 000006
【図６】
0006282728.tif 000007
【図７】
0006282728.tif 000008
【図８】
0006282728.tif 000009
【図９】
0006282728.tif 000010