(57)【要約】  通信メッセージ内のファイルの重複排除のためのシステムおよび方法が提示される。通信メッセージの添付ファイルがクラウド・ストレージ・システム内に存在すると判断することができる。添付ファイルのクラウド・ストレージ・システム上の同一ファイルにアクセスするためにリンクを通信クライアントに送信することができる。
2021503660.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサによる通信メッセージ内のファイルの重複排除のための方法であって、
クラウド・ストレージ・システム内に通信メッセージの添付ファイルが存在すると判断することと、
前記添付ファイルの前記クラウド・ストレージ・システム上の同一ファイルにアクセスするためにリンクを通信クライアントに送信することと
を含む、方法。
【請求項２】
前記通信クライアントから、前記添付ファイルを有する前記通信メッセージを送信すること、または受信することをさらに含む、請求項１に記載の方法。
【請求項３】
前記クラウド・ストレージ・サーバまたは前記通信クライアントを使用して前記クラウド・ストレージ・システム内に前記添付ファイルが存在すると判断することをさらに含み、前記通信クライアントは、電子メール・クライアントである、請求項１に記載の方法。
【請求項４】
アプリケーション・プログラム・インターフェース（ＡＰＩ）のコールを使用して前記通信クライアントを介して前記同一ファイルのハッシュ値を取得することと、
前記同一ファイルの前記ハッシュ値を前記通信メッセージ中の前記添付ファイル内の前記ハッシュ値と比較することと
をさらに含む、請求項１に記載の方法。
【請求項５】
前記クラウド・ストレージ・システム内の前記同一ファイルが前記通信メッセージ中の前記添付ファイルと同一のハッシュ値を有していると判断することをさらに含む、請求項１に記載の方法。
【請求項６】
前記通信メッセージの送信者からアップロードされたファイルの一覧を検索することをさらに含む、請求項１に記載の方法。
【請求項７】
前記同一ファイルの削除の際、前記同一ファイルを、前記リンクを介してのみアクセス可能な前記クラウド・ストレージ・システムの選択されたエリアに再配置することをさらに含む、請求項１に記載の方法。
【請求項８】
通信メッセージ内のファイルの重複排除のためのシステムであって、
実行されると前記システムに
クラウド・ストレージ・システム内に通信メッセージの添付ファイルが存在すると判断することと、
前記添付ファイルの前記クラウド・ストレージ・システム上の同一ファイルにアクセスするためにリンクを通信クライアントに送信することと
を行わせる、実行可能命令を有する１つまたは複数のコンピュータ
を備える、システム。
【請求項９】
前記実行可能命令は、前記通信クライアントから前記添付ファイルを有する前記通信メッセージをさらに送信、または受信する、請求項８に記載のシステム。
【請求項１０】
前記実行可能命令は、前記クラウド・ストレージ・サーバまたは前記通信クライアントを使用して前記クラウド・ストレージ・システム内に前記添付ファイルが存在するとさらに判断し、前記通信クライアントは電子メール・クライアントである、請求項８に記載のシステム。
【請求項１１】
前記実行可能命令は、さらに
アプリケーション・プログラム・インターフェース（ＡＰＩ）のコールを使用して前記通信クライアントを介して前記同一ファイルのハッシュ値を取得し、
前記同一ファイルの前記ハッシュ値を前記通信メッセージ中の前記添付ファイル内の前記ハッシュ値と比較する、
請求項８に記載のシステム。
【請求項１２】
前記実行可能命令は、前記クラウド・ストレージ・システム内の前記同一ファイルが前記通信メッセージ中の前記添付ファイルと同一のハッシュ値を有しているとさらに判断する、請求項８に記載のシステム。
【請求項１３】
前記実行可能命令は、前記通信メッセージの送信者からアップロードされたファイルの一覧をさらに検索する、請求項８に記載のシステム。
【請求項１４】
前記実行可能命令は、前記同一ファイルの削除の際、前記同一ファイルを、前記リンクを介してのみアクセス可能な前記クラウド・ストレージ・システムの選択されたエリアにさらに再配置する、請求項８に記載のシステム。
【請求項１５】
プロセッサによる通信メッセージ内のファイルの重複排除のためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品は、コンピュータ可読プログラム・コード部分を記憶して有する非一過性のコンピュータ可読記憶媒体を備え、前記コンピュータ可読プログラム・コード部分は、
クラウド・ストレージ・システム内に通信メッセージの添付ファイルが存在すると判断する実行可能部分と、
前記添付ファイルの前記クラウド・ストレージ・システム上の同一ファイルにアクセスするためにリンクを通信クライアントに送信する実行可能部分と
を含む、コンピュータ・プログラム製品。
【請求項１６】
前記通信クライアントから、前記添付ファイルを有する前記通信メッセージを送信する、または受信する実行可能部分をさらに含む、請求項１５に記載のコンピュータ・プログラム製品。
【請求項１７】
前記クラウド・ストレージ・サーバまたは前記通信クライアントを使用して前記クラウド・ストレージ・システム内に前記添付ファイルが存在すると判断する実行可能部分をさらに含み、前記通信クライアントは、電子メール・クライアントである、請求項１５に記載のコンピュータ・プログラム製品。
【請求項１８】
アプリケーション・プログラム・インターフェース（ＡＰＩ）のコールを使用して前記通信クライアントを介して前記同一ファイルのハッシュ値を取得することと、
前記同一ファイルの前記ハッシュ値を前記通信メッセージ中の前記添付ファイル内の前記ハッシュ値と比較することと、
前記クラウド・ストレージ・システム内の前記同一ファイルが前記通信メッセージ中の前記添付ファイルと同一の前記ハッシュ値を有していると判断することと
を行う実行可能部分をさらに含む、請求項１５に記載のコンピュータ・プログラム製品。
【請求項１９】
前記通信メッセージの送信者からアップロードされたファイルの一覧を検索する実行可能部分をさらに含む、請求項１５に記載のコンピュータ・プログラム製品。
【請求項２０】
前記同一ファイルの削除の際、前記同一ファイルを、前記リンクを介してのみアクセス可能な前記クラウド・ストレージ・システムの選択されたエリアに再配置する実行可能部分をさらに含む、請求項１５に記載のコンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的にコンピューティング・システムに関し、より詳細には、プロセッサによる通信メッセージ内のファイルの重複排除のための様々な実施形態に関する。
【背景技術】
【０００２】
今日の社会において、消費者、ビジネス・パーソン、教育者、および他の人々は、様々な場面においてより高い頻度で様々なコンピューティング・ネットワーク・システムを使用する。コンピュータおよびネットワーク技術の出現により、日々の活動を活発化させつつ、生活の質を向上することが可能となってきた。コンピューティング・システムは、既存のインターネットのインフラストラクチャを使用して全世界にわたって分散しているコンピューティング・デバイスの相互接続である、モノのインターネット（ＩｏＴ）を含むことができる。ＩｏＴデバイスは、様々な物理的なデバイスまたは製品に埋め込むことができる。技術における大きな進歩および前進の結実に伴い、これらのシステムで社会における効率性、通信、および改善を有利にするため大きく進歩させることが必要である。
【発明の概要】
【０００３】
１つまたは複数のプロセッサを使用する通信メッセージ内のファイルの重複排除のための様々な実施形態を提供する。一実施形態において、単に例として、また、プロセッサによる、クラウド・ストレージおよびコミュニケーション・ツールの両方におけるファイルの重複排除のための方法が提供される。通信メッセージの添付ファイルがクラウド・ストレージ・システム内に存在するものと判断することができる。添付ファイルのクラウド・ストレージ・システム上の同一ファイルにアクセスするためにリンクを通信クライアントに送信することができる。
【０００４】
本発明の利点が容易に理解されるべく、簡易に上述した本発明のより具体的な説明を、添付の図面において図示される特定の実施形態を参照して解説する。これらの図面は本発明の典型的な実施形態のみを描写しており、よってその範囲を限定しているものと見なされないと理解して、本発明を添付の図面の使用を通じて、さらなる具体性および詳細とともに説明し、解説する。
【図面の簡単な説明】
【０００５】
【図１】図１は、本発明の実施形態による、例示的なコンピューティング・ノードを描写するブロック図である。
【図２】図２は、本発明の実施形態による、例示的なクラウド・コンピューティング環境を描写する、追加的なブロック図である。
【図３】図３は、本発明の実施形態による、抽象的なモデル・レイヤを描写する追加的なブロック図である。
【図４】図４は、本発明の態様がやはり実現され得る、プロセッサによるクラウド・ストレージ・システムおよびコミュニケーション・ツール内のファイルの重複排除のための追加的な例示の方法を描写するフローチャート図である。
【図５】図５は、本発明の様々な態様間の例示的な機能上の関係性を描写する、追加的なブロック図である。
【図６】図６は、本発明の態様がやはり実現され得る、プロセッサによるクラウド・ストレージ・システムおよびコミュニケーション・ツール内でファイルの重複排除のための追加的な例示の方法を描写するフローチャート図である。
【図７】図７は、本発明の態様がやはり実現され得る、プロセッサによるクラウド・ストレージ・サーバによるファイルの重複排除のための追加的な例示の方法を描写するフローチャート図である。
【図８】図８は、本発明の態様がやはり実現され得る、プロセッサによる電子メール・クライアントによるファイルの重複排除のための追加的な例示の方法を描写するフローチャート図である。
【発明を実施するための形態】
【０００６】
前置きとして、コンピューティング・システムは、コンピュータ・ネットワークなどの通信システムを介してリソースが相互作用することができるか、またはアクセスされ得るか、あるいはその両方である、「クラウド・コンピューティング」と呼ばれる大規模コンピューティングを含むことができる。リソースは、ソフトウェアレンダリングのシミュレーション、またはコンピューティング・デバイス、ストレージ・デバイス、アプリケーション、もしくは他のコンピュータ関連のデバイスまたはその組合せ、もしくはサーバなどの１つもしくは複数のコンピューティング・デバイス上で実行するサービスまたはその組合せのエミュレーション、あるいはその組合せ、を含むことができる。例えば、複数のサーバは、リクエストされたタスクを遂行するために必要な処理能力の量、ストレージ容量、または他のコンピューティング・リソースあるいはその組合せに応じて、複数のサーバにわたって拡大することができるか、または縮小することができるか、あるいはその両方である情報を、通信し、共有し、あるいはその両方を行うことができる。語句「クラウド」は、コンピューティング・デバイス、コンピュータ・ネットワーク、またはそのような構成配置で相互作用する他のコンピュータ関連のデバイスあるいはその組合せの間の相互接続の図の雲形状の見かけをそれとなく指している。追加的に、モノのインターネット（ＩｏＴ）は、物体、殊に家電製品に埋め込んでネットワークを通じて接続することができるコンピューティング・デバイスの新興の概念である。ＩｏＴネットワークは１つまたは複数のＩｏＴデバイスまたは「スマート・デバイス」を含むことができるが、それらはコンピューティング・デバイスを埋め込まれた家電製品などの物理的な物体である。これらの物体の多くは、独立的に動作可能なデバイスであるが、制御システム、または代替的にクラウド・コンピューティング環境上で実行するもののような分散制御システムと組みにすることもできる。
【０００７】
多くの事業者（例えば、会社、組織、グループ、政府団体など）は、電子メールすなわち（「ｅｍａｉｌ」）または、オンライン・チャット、インスタント・メッセージなどのコミュニケーション・ツールをインハウスで所有している。追加的に、事業者は、例えば、クラウド・コンテンツ管理ファイル共有サービスである「Ｂｏｘ（登録商標）」などを使用するなど、チーム・メンバがファイルを共有できるようにするサービスまたはコミュニケーション・ツールを使用するなど、従業員用にプライベートなクラウド・ストレージ・サービスを展開していることがある。
【０００８】
例えば、あるユーザが、サービスまたはコミュニケーション・ツールを使用して、クラウド・ストレージ内に存在するファイルを関係者に、電子メール・メッセージを介して彼らまたは彼女のレビューのために送信することを考える。ユーザがその電子メール・メッセージに添付ファイルとしてファイルを添付する場合、同じファイルがコミュニケーション・ツール・サービスと電子メール・システムとの両方に存在するようになる。これらのファイルは、しばしば電子メール内の添付ファイルとして送信される。同じファイルのコピーを複数有することは、不要なストレージ消費に起因してストレージ管理者の観点から問題になり得る。これは事業者またはストレージ管理者あるいはその両方にコストを負わせることになり、一方でコンピューティング効率を低下させる。しかしながら、これはユーザの観点からは問題に見えることはない。この理由により、ユーザが是正を必要とするよう動機づけられる可能性は低い。さらには、電子メールがファイルを含んでおらず、かつ電子メールの受信者がファイルを取り出すためにコミュニケーション・ツールにログインすることが必要とされる場合、受信者は、ファイルを取り出すためだけに時間、努力、または手間あるいはその組合せを負担する。また、ユーザはコミュニケーション・ツール内でファイルへアクセスするためのリンクを開くために適当な閲覧権限を有することを必要とされることがあり、したがって共有のためにファイルごとのアクセス権を設定するためのさらなる時間が必要とされる。これらと同じ課題が、電子メール・メッセージへのファイル添付だけではなく、通信媒体、および例えばオンライン・チャット、ｗｉｋｉページなどの機能へのファイル添付にも当てはまる。すなわち、これらの状況において、まったく同じファイルが、クラウド・ストレージ・システムと、例えば電子メール・システムなどのコミュニケーション・ツールのバックエンドのデータベース（ＤＢ）との両方に存在する。例えば、１か月に一度１０メガバイト（「ＭＢ」）のファイルでそれぞれ１万ユーザが上述の動作を行うと、１年間で１１６４ギガバイト（「ＧＢ」）の重複ファイルが生成される。
【０００９】
クラウド・ストレージとコミュニケーション・ツールとが同じストレージ上にある場合、既存の重複排除技術を使用して重複するデータ・ブロックを削除することができる。しかしながら、クラウド・ストレージとコミュニケーション・ツールは、通常、別個のシステムであり、ファイルは、別個のストレージ・デバイスに記憶される。したがって、既存の重複排除技術を使用することができない。
【００１０】
それに応じて、本発明は、同じファイルがクラウド・ストレージおよび別個のコミュニケーション・ツール内に存在する場合に、重複する容量消費を排除する解決策を提供する。一態様において、図示される実施形態のメカニズムは、１つまたは複数のプロセッサまたはコンピューティング・システムにより、クラウド・ストレージとコミュニケーション・ツールとの両方のファイルの重複排除を提供する。通信メッセージの添付ファイルがクラウド・ストレージ・システム内に存在するものと判断することができる。添付ファイルのクラウド・ストレージ・システム上の同一ファイルにアクセスするためにリンクを通信クライアントに送信することができる。
【００１１】
例えば、事業者が従業員同士でデータ／情報を共有するために、プライベートなクラウド・ストレージおよび例えば電子メール・システムなどのコミュニケーション・ツールの両方を使用すると仮定する。ユーザは、電子メールを介してクラウド・ストレージ内に記憶されたファイルを共有することを意図することがある。そのため、ユーザは、追加的なストレージ容量が消費されるのを防ぐために、クラウド・ストレージ内に記憶されるファイルにリンク（例えば、Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ「ＨＴＴＰ」リンク）を提供することがある。しかしながら、ファイルが電子メールに添付されている場合、本発明は、同じファイルがクラウド・ストレージおよび別個のコミュニケーション・ツール内に存在する際、重複する容量消費を排除する解決策を提供する。
【００１２】
より具体的には、ファイルがクラウド・ストレージ・システムにアップロードされる時、クラウド・ストレージ・システムがそのファイルについてのハッシュ値を計算することができる。ファイルが電子メールに添付され送信されるよう必要とされる際、コミュニケーション・ツール（例えば、電子メール・システム、チャット、ｗｉｋｉ）は、添付ファイルのハッシュ値を計算する。電子メール・システムは、クラウド・ストレージ・システムによって提供され得るアプリケーション・プログラム・インターフェース（「ＡＰＩ」）を使用して、クラウド・ストレージ・システム内にあるファイルをルックアップするためにルックアップ動作を実施し、クラウド・ストレージ・システム内のファイルの同じハッシュ値が添付ファイルのハッシュ値と同一かどうかを判断することができる。同じファイルが見つかる場合、電子メール・システムは、添付ファイルへのリンクをクラウド・ストレージ内の同一ファイルへのリンクで置き換えることができる。したがって、添付ファイルについてのストレージ消費を削減することができる。
【００１３】
一態様において、本発明を、コミュニケーション・ツールとして電子メール・システムに対し適用することができる。ｗｉｋｉシステムを考える場合、「電子メール」を「ｗｉｋｉページ」と読み替えることができ、「電子メール・メッセージを送信する」を「ｗｉｋｉページを保存する」と読み替えることができる。
【００１４】
１つまたは複数の数学的演算（例えば、微分方程式または偏微分方程式を分析的にまたは計算機科学的に解くこと、加算、減算、除算、乗算、標準偏差、平均値、算術平均値、百分率、結合変数についての最小値、最大値、または類似の閾値を見つけることにより統計分布を使用する統計的モデルを使用することなど）を伴い得る様々な数学的演算または関数を使用して、１つまたは複数の計算を実施することができることに留意されたい。
【００１５】
図示される実施形態の様々な態様の他の例、および対応する利点を本明細書においてさらに説明する。
【００１６】
本開示は、クラウド・コンピューティングについての詳細な説明を含むが、本明細書で説明される教示の実装形態は、クラウド・コンピューティング環境、または１つもしくは複数の手段に関連付けられるコンピューティング・システムあるいはその両方に限定されないことを、前もって理解されたい。むしろ本発明の実施形態は、現在知られている、または今後開発される、あらゆる他のタイプのコンピューティング環境と併せて実装することができる。
【００１７】
クラウド・コンピューティングは、最小限の管理努力またはサービスのプロバイダとの対話で迅速にプロビジョニングおよびリリースされ得る、便利でオン・デマンドの構成可能なコンピューティング・リソース（例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス）の共有されるプールへのネットワーク・アクセスを可能とするためのサービス提供のモデルである。このクラウド・モデルは、少なくとも５つの特徴、少なくとも３つのサービス・モデル、および少なくとも４つの展開モデルを含むことができる。
【００１８】
特徴は以下のとおりである：
【００１９】
オン・デマンド・セルフサービス：クラウド消費者は、サービスのプロバイダとの人間対話を要求することなく必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどのコンピュータ機能を一方的にプロビジョニングすることができる。
【００２０】
幅広いネットワーク・アクセス：機能はネットワーク上で利用可能であり、異質なシンまたはシックなクライアントのプラットフォーム（例えば、携帯電話、ラップトップ、およびＰＤＡ）による使用を促進する標準的なメカニズムを通じてアクセスされる。
【００２１】
リソース・プール：プロバイダのコンピューティング・リソースは、マルチテナントのモデルを使用する複数の消費者にサービス提供するためにプールされ、異なる物理的および仮想的なリソースが要求にしたがって動的に割り当ておよび再割り当てされる。消費者が提供されるリソースの正確な場所についての制御または情報を一般的に持たない点で、場所の独立性の意味があるが、より高レベルの抽象化（例えば、国、州、またはデータセンタ）において場所を特定できることもある。
【００２２】
迅速な拡張性：機能は迅速かつ拡張可能にプロビジョニングすることができ、いくつかの場合において、自動的に、素早くスケール・アウトされ、迅速にリリースされて素早くスケール・インされる。消費者にとって、プロビジョニングのために利用可能な機能は、しばしば無制限なようで、いつでもいくらでも購入することができる。
【００２３】
サービスが計測される：クラウド・システムは、サービスのタイプ（例えば、ストレージ、処理、帯域幅、およびアクティブなユーザ・アカウント）に適当な抽象化のいくつかのレベルにおいて計測機能を活用することによりリソースの使用を自動的に制御し、最適化する。リソースの使用量は監視され、制御され、かつ報告され得、利用されるサービスのプロバイダおよび消費者の両方にとって透明性を与えている。
【００２４】
サービス・モデルは以下のとおりである：
サービスとしてのソフトウェア（Software as a Service）（ＳａａＳ）：消費者に提供される機能は、クラウド・インフラストラクチャで実行するプロバイダのアプリケーションを使用する。アプリケーションは、ウェブ・ブラウザなどのシン・クライアント・インターフェース（例えば、ウェブ・ベースの電子メール）を通じて様々なクライアント・デバイスからアクセス可能である。消費者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、またはさらには個々のアプリケーション機能を含む基礎となるクラウド・インフラストラクチャを管理または制御することはなく、例外として限定されたユーザ固有アプリケーションの構成設定が可能である。
サービスとしてのプラットフォーム（Platform as a Service）（ＰａａＳ）：消費者に提供される機能は、プロバイダによって供給されるプログラミング言語およびツールを使用した消費者作成の、または取得されたアプリケーション作成のクラウド・インフラストラクチャに展開する。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基礎となるクラウド・インフラストラクチャの管理または制御をしないが、展開されたアプリケーション、および場合によっては環境構成をホストするアプリケーションについての制御を有する。
サービスとしてのインフラストラクチャ（Infrastructure as a Service）（ＩａａＳ）：消費者に提供される機能は、消費者がオペレーティング・システムおよびアプリケーションを含み得る任意のソフトウェアを展開および実行することができる処理、ストレージ、ネットワーク、および他の基本的なコンピューティング・リソースをプロビジョニングする。消費者は、基礎となるクラウド・インフラストラクチャの管理または制御をしないが、オペレーティング・システム、ストレージ、展開されたアプリケーション、および場合によっては選択ネットワーク・コンポーネント（例えば、ホスト・ファイヤウォール）の限定された制御についての制御を有する。
【００２５】
展開モデルは以下のとおりである：
プライベート・クラウド：クラウド・インフラストラクチャはある組織のためだけに運用される。その組織またはサード・パーティによって管理され得、オンプレミスまたはオフプレミスで存在することができる。
コミュニティ・クラウド：クラウド・インフラストラクチャは、いくつかの組織によって共有され、共有される事案（例えば、ミッション、セキュリティ要件、ポリシ、およびコンプライアンス懸案事項）を有する特定のコミュニティをサポートする。その組織またはサード・パーティによって管理され得、オンプレミスまたはオフプレミスで存在することができる。
パブリック・クラウド：クラウド・インフラストラクチャは、一般公衆または大規模な業界団体に対して利用可能とされ、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド：クラウド・インフラストラクチャは、一意なエンティティのままである２つ以上のクラウド（プライベート、コミュニティ、またはパブリック）を組合せたものであるが、データおよびアプリケーションのポータビリティを可能にする標準化された、または専有的な技術（例えば、クラウド間でロード・バランシングを行うためのクラウド・バースト）によって結合される。
【００２６】
クラウド・コンピューティング環境は、無国籍、低い結合性、モジュール性、および意味論的な相互運用性に集中するサービス指向である。クラウド・コンピューティングの中心は、相互接続されたノードのネットワークを含むインフラストラクチャである。
【００２７】
次に図１を参照すると、クラウド・コンピューティング・ノードの例の概略図が示されている。クラウド・コンピューティング・ノード１０は、適切なクラウド・コンピューティング・ノードのただの一例であり、本明細書で説明される本発明の実施形態の使用または機能の範囲に関していかなる限定を示唆するように意図されていない。とにかく、クラウド・コンピューティング・ノード１０は、本明細書で上述の機能のあらゆるものを実装または実施あるいはその両方を行うことができる。
【００２８】
クラウド・コンピューティング・ノード１０内には、多くの他の汎用または特殊目的の、コンピューティング・システム環境または構成で動作可能である、コンピュータ・システム／サーバ１２が存在する。コンピュータ・システム／サーバ１２での使用に適切であり得る良く知られているコンピューティング・システム、環境、または構成あるいはそれらの組合せの例は、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップのデバイス、マルチ・プロセッサ・システム、マイクロ・プロセッサベースのシステム、セット・トップ・ボックス、プログラム可能家庭用電子機器、ネットワークＰＣ、ミニ・コンピュータ・システム、メインフレーム・コンピュータ・システム、および上記システムまたはデバイスのいずれかを含む分散クラウド・コンピューティング環境などを含むがそれに限定しない。
【００２９】
コンピュータ・システム／サーバ１２は、コンピュータ・システムによって実行されるプログラム・モジュールなどのコンピュータ・システム−実行可能命令の一般的なコンテキストで説明され得る。一般的に、プログラム・モジュールは、特定のタスクを実施するか、または特定の抽象的なデータ・タイプを実装する、ルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などを含むことができる。コンピュータ・システム／サーバ１２、タスクが通信ネットワークを通じてリンクされたリモート処理デバイスによって実施される分散クラウド・コンピューティング環境において実用化することができる。分散クラウド・コンピューティング環境において、プログラム・モジュールはローカルおよびリモートの両方のメモリ記憶デバイスを含むコンピュータ・システム記憶媒体に配置することができる。
【００３０】
図１において示されるように、クラウド・コンピューティング・ノード１０におけるコンピュータ・システム／サーバ１２が汎用コンピューティング・デバイスの形態で示されている。コンピュータ・システム／サーバ１２のコンポーネントは、１つまたは複数のプロセッサまたは処理ユニット１６、システム・メモリ２８、およびシステム・メモリ２８を含む様々なシステム・コンポーネントをプロセッサ１６に連結するバス１８を含むことができるが、それに限定されない。
【００３１】
バス１８は、バス構造のいくつかのタイプのうちの任意の１つまたは複数を表しており、メモリ・バスまたはメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、およびプロセッサまたは様々なバス・アーキテクチャの任意のものを使用するローカル・バスを含む。限定ではなく例として、そのようなアーキテクチャはインダストリ・スタンダード・アーキテクチャ（ＩＳＡ）バス、マイクロ・チャネル・アーキテクチャ（ＭＣＡ）バス、エンハンストＩＳＡ（ＥＩＳＡ）バス、Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ（ＶＥＳＡ）ローカル・バス、およびＰｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ）バスを含む。
【００３２】
コンピュータ・システム／サーバ１２は、典型的には様々なコンピュータ・システム可読媒体を含む。そのような媒体は、コンピュータ・システム／サーバ１２によってアクセス可能なあらゆる利用可能な媒体であることができ、揮発性および非揮発性の媒体、ならびにリムーバブルおよび非リムーバブルの媒体の両方を含む。
【００３３】
システム・メモリ２８は、ランダム・アクセス・メモリ（ＲＡＭ）３０またはキャッシュ・メモリ３２あるいはその両方などの揮発性メモリの形態のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム／サーバ１２は、他のリムーバブル／非リムーバブルの、揮発性／非揮発性のコンピュータ・システム記憶媒体をさらに含むことができる。単なる例として、非リムーバブル、非揮発性の磁気媒体（典型的には「ハード・ドライブ」と称され、図示せず）からの読み取りおよびそれへの書き込みのためのストレージ・システム３４を設けることができる。図示していないが、リムーバブル、非揮発性の磁気ディスク（例えば、「フロッピー（Ｒ）・ディスク」）からの読み取りおよびそれへの書き込みのための磁気ディスク・ドライブ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭまたは他の光学媒体などのリムーバブル、非揮発性の光学ディスクからの読み取りおよびそれへの書き込みのための光学ディスク・ドライブを設けることができる。そのような事例において、それぞれは１つまたは複数のデータ媒体インターフェースによってバス１８へ接続することができる。以下でさらに描写され説明されるように、システム・メモリ２８は、本発明の実施形態の機能を実行するように構成されるプログラム・モジュールのセット（例えば、少なくとも１つ）を有する少なくとも１つのプログラム製品を含むことができる。
【００３４】
プログラム・モジュール４２のセット（少なくとも１つ）を有するプログラム／ユーティリティ４０は、限定ではなく例として、システム・メモリ２８に記憶することができ、オペレーティング・システム、１つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データも同様である。オペレーティング・システムのそれぞれ、１つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データまたはそのいくつかの組合せは、ネットワーク環境の実装を含むことができる。プログラム・モジュール４２は、一般的に本明細書において説明されるような本発明の実施形態の機能または方法あるいはその両方を実行する。
【００３５】
コンピュータ・システム／サーバ１２はまた、キーボード、ポインティング・デバイス、ディスプレイ２４、などの１つもしくは複数の外部デバイス１４、ユーザがコンピュータ・システム／サーバ１２と対話できるようにする１つもしくは複数のデバイス、またはコンピュータ・システム／サーバ１２が１つもしくは複数の他のコンピューティング・デバイスと通信できるようにするあらゆるデバイス（例えば、ネットワーク・カード、モデムなど）あるいはその組合せと通信することができる。そのような通信は入力／出力（Ｉ／Ｏ）インターフェース２２を介して行うことができる。さらになお、コンピュータ・システム／サーバ１２は、ローカル・エリア・ネットワーク（ＬＡＮ）、一般的なワイド・エリア・ネットワーク（ＷＡＮ）、またはネットワーク・アダプタ２０を介するパブリック・ネットワーク（例えば、インターネット）あるいはその組合せなどの１つまたは複数のネットワークと通信することができる。描写されるように、ネットワーク・アダプタ２０は、バス１８を介してコンピュータ・システム／サーバ１２の他のコンポーネントと通信する。図示していないが、他のハードウェアまたはソフトウェアあるいはその両方のコンポーネントが、コンピュータ・システム／サーバ１２と併せて使用することができることが理解されるべきである。例として、マイクロコード、デバイス・ドライバ、冗長化処理ユニット、外部ディスク・ドライブ・アレイ、ＲＡＩＤシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システムなどが挙げられるが、それに限定されない。
【００３６】
次に図２を参照すると、例示的なクラウド・コンピューティング環境５０が描写されている。示されるように、クラウド・コンピューティング環境５０は、例えば、携帯情報端末（ＰＤＡ）または携帯電話５４Ａ、デスクトップ・コンピュータ５４Ｂ、ラップトップ・コンピュータ５４Ｃ、または自動車コンピュータ・システム５４Ｎあるいはその組合せなどのクラウド消費者によって使用されるローカルのコンピューティング・デバイスと通信することができる１つまたは複数のクラウド・コンピューティング・ノード１０を備える。ノード１０は互いに通信することができる。本明細書において上述のようなプライベート、コミュニティ、パブリック、もしくはハイブリッドのクラウドまたはその組合せなどの１つまたは複数のネットワークにおいて、それらは物理的または仮想的にグループ化することができる（図示せず）。これにより、クラウド・コンピューティング環境５０は、クラウド消費者がローカルのコンピューティング・デバイス上でリソースを維持する必要のない、インフラストラクチャ、プラットフォーム、またはソフトウェアあるいはその組合せをサービスとして与えることができる。図２に示されるコンピューティング・デバイス５４Ａ〜Ｎのタイプは、図示のみを意図されており、コンピューティング・ノード１０およびクラウド・コンピューティング環境５０は、あらゆるタイプのネットワーク上またはネットワーク・アドレス可能接続で（例えば、ウェブ・ブラウザを使用して）あるいはその両方であらゆるタイプのコンピュータ化されたデバイスと通信することができることが理解される。
【００３７】
次に図３を参照すると、クラウド・コンピューティング環境５０（図２）によって提供される機能的な抽象化レイヤのセットが示されている。図３に示されるコンポーネント、レイヤ、および機能は、図示のみを意図されており、本発明の実施形態はそれに限定されないことが、まず理解されるべきである。描写されるように、以下のレイヤおよび対応する機能が提供される。
【００３８】
デバイス・レイヤ５５は物理的または仮想的あるいはその両方のデバイスを含み、クラウド・コンピューティング環境５０内で様々なタスクを実施するために電子機器、センサ、アクチュエータ、および他の物体を埋め込まれているか、またはスタンドアロンあるいはその両方である。デバイス・レイヤ５５内のデバイスのそれぞれは、デバイスから取得された情報を他の抽象レイヤに与えることができるように、または他の抽象レイヤからの情報をデバイスに与えることができるように、あるいはその両方ができるように、他の機能的な抽象レイヤへのネットワーク機能を組み込んでいる。一実施形態において、デバイス・レイヤ５５を含めて様々なデバイスは総じて「モノのインターネット」（ＩｏＴ）として知られるエンティティのネットワークを組み込むことができる。そのようなエンティティのネットワークは、データの相互通信、収集、伝播を可能にし、当業者であれば理解するような多種多様な目的を達成する。
【００３９】
示されるようなデバイス・レイヤ５５は、示されるようなセンサ５２、アクチュエータ５３、集積処理、センサ、およびネットワーク用電子機器を有する「学習」サーモスタット５６、カメラ５７、制御可能な家庭用コンセント／レセプタクル５８、ならびに制御可能な電気的スイッチ５９を含む。他の可能なデバイスとして、様々な追加的なセンサ・デバイス、ネットワーク用デバイス、電子機器デバイス（リモート・コントロール・デバイスなど）、追加的なアクチュエータ・デバイス、冷蔵庫または洗濯機／乾燥機などのいわゆる「スマート」家電、および広範囲な他の可能な相互接続された物体を含むことができるが、それに限定はしない。
【００４０】
ハードウェアおよびソフトウェア・レイヤ６０は、ハードウェアおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例として、以下が挙げられる：メインフレーム６１、ＲＩＳＣ（縮小命令セット・コンピュータ（Reduced Instruction Set Computer））アーキテクチャ・ベースのサーバ６２、サーバ６３、ブレード・サーバ６４、ストレージ・デバイス６５、ならびにネットワークおよびネットワーク・コンポーネント６６。いくつかの実施形態において、ソフトウェア・コンポーネントはネットワーク・アプリケーション・サーバ・ソフトウェア６７、およびデータベース・ソフトウェア６８を含む。
【００４１】
仮想化レイヤ７０は、仮想エンティティの以下の例を提供することができる抽象化レイヤを与える：仮想サーバ７１、仮想ストレージ７２、仮想プライベート・ネットワークを含む仮想ネットワーク７３、仮想アプリケーションおよびオペレーティング・システム７４、および仮想クライアント７５。
【００４２】
一例において、管理レイヤ８０は、以下で説明される機能を提供することができる。リソース・プロビジョニング８１は、クラウド・コンピューティング環境内でタスクを実施するために利用されるコンピューティング・リソースおよび他のリソースの動的な調達を提供する。計測および課金８２は、クラウド・コンピューティング環境内でリソースが利用される際のコスト追跡、およびこれらのリソースの消費についての課金または請求書発行を提供する。一例において、これらのリソースはアプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティは、クラウド消費者およびタスクについての識別情報の検証、ならびにデータおよび他のリソースについての保護を提供する。ユーザ・ポータル８３は、クラウド・コンピューティング環境へのアクセスを消費者およびシステム管理者に提供する。サービス水準管理８４は、要求されるサービス水準が満たされるように、クラウド・コンピューティング・リソースの割り当ておよび管理を提供する。サービス水準合意（ＳＬＡ）計画および遂行８５は、将来的な要求がＳＬＡにしたがって予期されるクラウド・コンピューティング・リソースについての事前申し合わせ、およびクラウド・コンピューティング・リソースの調達を提供する。
【００４３】
ワークロード・レイヤ９０はクラウド・コンピューティング環境が利用され得る機能の例を提供する。このレイヤからもたらされ得るワークロードおよび機能の例として以下を挙げることができる：マッピングおよびナビゲーション９１、ソフトウェア開発およびライフサイクル管理９２、仮想授業教育配信９３、データ分析処理９４、取引処理９５、ならびに本発明の図示される実施形態のコンテキストにおいては、通信メッセージのワークロードおよび機能内のファイルの様々な重複排除９６。加えて、通信メッセージ内のファイルの重複排除のためのワークロードおよび機能９６は、そのような動作をデータ分析論、データ分析として、およびさらに説明するように通知機能として含むことができる。当業者であれば、通信メッセージ内のファイルの重複排除のためのワークロードおよび機能９６は、ハードウェアおよびソフトウェア６０、仮想化７０、管理８０、および他のワークロード９０（例えばデータ分析処理９４など）におけるものなどの様々な抽象レイヤの他の部分と併せて作用することもでき、本発明の図示される実施形態の様々な目的を達成することを理解されよう。
【００４４】
一態様において、図示される実施形態のメカニズムは、通信メッセージ内のファイルの重複排除のための新奇な手法を提供する。前置きとして、本発明によって実現される重複排除機能は、ファイル・システムのレベルでは実装されないかもしれず、むしろ、クラウド・ストレージ・システムおよびコミュニケーション・ツール・システム（例えば、電子メール・システム）のアプリケーション・レベルで実装され得る。追加的な態様において、本発明によって実現される重複排除機能は、ファイル・システムのレベルにおいて、ならびにクラウド・ストレージ・システムおよびコミュニケーション・ツール・システムのアプリケーション・レベルにおいて、実装することができる。具体的には、重複排除機能は、これらの２つのシステム（例えば、クラウド・ストレージ・システムおよびコミュニケーション・ツール・システム）に機能を追加すること、およびこれらの機能をＡＰＩを介して互いに通信できるように設定することにより、実装することができる。ＡＰＩの使用により、２つのアプリケーションのバックエンド・システムの広範囲な統合を排除または削減あるいはその両方を行って重複排除機能の実装が可能となる。この方法において、本発明のメカニズムが事業者または組織の既存のシステムに適用可能となり得る。
【００４５】
次に図４を見ると、図示される実施形態の様々な態様が実装され得る、プロセッサを使用する通信メッセージ内のファイルの重複排除のための方法４００が描写されている。機能４００は、マシン上で命令として実行される方法として実装することができ、ここで命令は、少なくとも１つのコンピュータ可読媒体または１つの非一過性のマシン可読記憶媒体に含まれる。機能４００は、ブロック４０２において開始することができる。ブロック４０４におけるように、クラウド・ストレージ・システムにアップロードされたそれぞれのファイルごとにハッシュ値（例えば、「ＳＨＡ２５６」など）を計算し、保存することができる。ブロック４０６におけるように、添付ファイルを伴う通信メッセージが送信または保存されると、送信されたまたは保存されたあるいはその両方の通信メッセージ（例えば、電子メール・メッセージ）内の添付ファイルのハッシュ値（例えば、ＳＨＡ２５６）を計算することができ、同じ／同一のハッシュ値（例えば、ＳＨＡ２５６）を有するファイル「Ｆ」をクラウド・ストレージ・システム上に配置されたファイルから見つけ出すことができる。ブロック４０８におけるように、添付ファイルは（通信メッセージから）削除することができ、通信メッセージ内に置かれたリンクが開かれるとファイル「Ｆ」を開くことができるように、通信メッセージ内のファイル「Ｆ」に添付ファイルの代わりにリンクを与えることができる。機能４００は、ブロック４１０におけるように終了することができる。
【００４６】
次に図５を見ると、クラウド・ストレージ・システムおよびコミュニケーション・ツール内のファイルを重複排除するための重複排除システム５００を描写する概略図が描かれている。見て分かるように、図１〜図３で先に説明してきたのと同じ説明的な意味合いにおいて、機能ブロックの多くは、機能の「モジュール」として考えることもできる。機能ブロック５００の多くは、分散コンピューティング・コンポーネントもしくはユーザ・デバイスのいずれか、またはそれ以外の様々なコンポーネントでバックグラウンド処理として実行することができ、一般的には本発明の一般化されたタスクを実施するユーザには認識されない。さらには、図４の機能４００の動作は、図５の機能の様々なブロックに実装することができる。また、図１〜図３の１つまたは複数の態様は、図４にも含まれるか、または図４にも実装されるか、あるいはその両方であってもよい。
【００４７】
重複排除システム５００は、クラウド・ストレージ・システム５０２および電子メール・システム５０４を含むことができる。クラウド・ストレージ・システム５０２は、公開ファイル・ストレージ・システム５１８、隠し（例えば、非公開）ファイル・ストレージ・システム５２０、および１つまたは複数のＡＰＩ５１４を含むことができる。
【００４８】
電子メール・システム５０４は、電子メール・メッセージ５０６に添付される添付ファイル５０８を有することがある電子メール・メッセージ５０６（例えば、電子メール・メッセージ本文）を含むことができる。電子メール・システム５０４は、電子メール・メッセージ送信コンポーネント５１０および電子メール・メッセージ削除コンポーネント５１２を含むことができる。動作においては、電子メール・メッセージ送信コンポーネント５１０または電子メール・メッセージ削除コンポーネント５１２あるいはその両方は、電子メール・メッセージ本文５０６または添付ファイル５０８あるいはその両方を、１つまたは複数のＡＰＩ５１４を介して、クラウド・ストレージ・システム５０２に通信すること、送信すること、または送受信すること、あるいはその組合せを行うことができる。
【００４９】
前置きとして、電子メール・システム５０４において、電子メール・メッセージ内の添付ファイル５０８は、電子メール・メッセージ本文５０６にバイナリ・データとして埋め込まれず、電子メール・メッセージ本文５０６の受信後、ＨＴＴＰを介してダウンロードすることができる。一態様において、電子メール・システムは、様々な電子メール・システムのタイプを含むことができる。
【００５０】
クラウド・ストレージ・システムのファイル・ストレージ・エリア
クラウド・ストレージ・システム５０２において、他のシステムおよびストレージとは別個に、隠しファイル・ストレージ・システム５２０を設けることができる。公開ファイル・ストレージ・システム５１８は、アップロードされたファイルを保存するストレージ・システムであり得る。一般的に、それぞれのファイルは、例えば名称、サイズなどの１つまたは複数の属性を有し、加えてクラウド・ストレージ・システム５０２内でのバージョン情報を有している。公開ファイル・ストレージ・システム５１８とは異なり、隠しファイル・ストレージ・システム５２０に記憶されたファイルは、一般的にはクラウド・ストレージのユーザからアクセス可能ではない。むしろ、公開ファイル・ストレージ・システム５１８は、電子メール・メッセージからリンクされたファイルを記憶する。
【００５１】
クラウド・ストレージ・システムのＡＰＩ
ＡＰＩ５１４の１つまたは複数において、１つまたは複数のＡＰＩ関数が実装され得る。例えば、以下の４つのＡＰＩ関数を実装することができる。１）名称およびバージョンのパラメータによって指定されるファイルのハッシュ値（例えばＳＨＡ２５６値）を返すことができる「ｇｅｔ＿ｓｈａ２５６＿ｏｆ（名称，バージョン）」関数。ＳＨＡ２５６値は、既に計算されているので、ＡＰＩ関数の実行時間は「Ｏ（１）」（例えば、セット内のデータの量に関わらず、例えば１４ナノ秒または３分などの一定時間を必要とすることがある）である。２）名称およびバージョンのパラメータによって指定されるファイルの「ｒｅｆ＿ｃｏｕｎｔ」（例えば、対象ファイルを参照する、添付する、または含む、あるいはその組合せを行う電子メールの数を意味する参照回数）をインクリメントする「ｉｎｃｒｅｍｅｎｔ＿ｒｅｆ＿ｃｏｕｎｔ＿ｏｆ（名称，バージョン）」関数。３）認証なしに名称およびバージョンのパラメータによって指定されるファイルにアクセスを可能とするＨＴＴＰリンクを作成して返す「ｇｅｔ＿ｓｐｅｃｉａｌ＿ｌｉｎｋ＿ｔｏ（名称，バージョン）」ＡＰＩ関数。４）名称およびバージョンのパラメータによって指定されるファイルの「ｒｅｆ＿ｃｏｕｎｔ」をデクリメントする「ｄｅｃｒｅｍｅｎｔ＿ｒｅｆ＿ｃｏｕｎｔ＿ｏｆ（名称，バージョン）」関数。ｒｅｆ＿ｃｏｕｎｔが０になると、関数は指定されたファイルを削除することができる。
【００５２】
クラウド・ストレージ・システムへのファイルのアップロード
クラウド・ストレージ・システム５０２へファイルをアップロードする場合、クラウド・ストレージ・システム５０２は、あらゆる既存の処理に加えて、以下を実施することができる。クラウド・ストレージ・システム５０２は、アップロードされたファイルのハッシュ値（例えばＳＨＡ２５６値）を計算し、メタデータｓｈａ２５６として値を保存することができる。クラウド・ストレージ・システム５０２は、メタデータ「ｒｅｆ＿ｃｏｕｎｔ」を０で初期化することができる。アップロード処理が完了したファイルは、クラウド・ストレージ・システム５０２の公開ファイル・ストレージ・システム５１８に保存することができる。
【００５３】
添付物として、アップロードされたファイルと同じファイルを伴う電子メール・メッセージの送信
送信ボタンをアクティブ化すると、電子メール・メッセージ送信コンポーネント５１０は、次のように動作することができる。ステップ１）電子メール・メッセージ送信コンポーネント５１０は、添付ファイル５０８のハッシュ値（例えば、ＳＨＡ２５６値）を決定すること、または計算すること、あるいはその両方を行うことができ、本明細書において以降ＳＨＡ２５６値は「Ｓ」と表記することがある。ステップ２）電子メール・メッセージ送信コンポーネント５１０は、電子メール・メッセージ（例えば電子メール・メッセージ本文５０６および添付ファイル５０８）を送信することができる。ステップ３）電子メール・メッセージ送信コンポーネント５１０は、添付ファイル５０８が記憶され得るコミュニケーション・ツール内で／上で、ファイル、フォルダ、およびコンテナの一覧を作成すること、または作ることあるいはその両方を行うことができる。コミュニケーション・ツール内の／上のすべてのファイルが検索される場合、ハッシュ値の比較により競合が起こる可能性がある。したがって、検索されるファイルは、定義された程度まで狭めることができるか、または狭められた検索クエリであってもよい。例えば、検索は次によって行うことができる：ａ）電子メール・メッセージ（電子メール・メッセージ本文５０６または添付ファイル５０８あるいはその両方を含み得る）を作成したユーザによってアップロードされたファイルを一覧にすること、または、ｂ）最近アップロードされたファイル（例えば定義された期間内に、または期間の範囲内に最近アップロードされたもの）だけに検索を制限すること、あるいはその両方。ステップ４）ステップ３で一覧になされたファイルとバージョンのすべての組合せの、それぞれのファイル「Ｆ」およびバージョン「Ｖ」ごとに、電子メール・メッセージ送信コンポーネント５１０はａ）ＡＰＩ５１４の１つまたは複数（例えばクラウド・ストレージのＡＰＩ関数ｇｅｔ＿ｓｈａ２５６＿ｏｆ（Ｆ，Ｖ））をコールすることができ、このＡＰＩのコールは、ファイルＦのバージョンＶのメタデータｓｈａ２５６の値を返すことができ、本明細書において以降結果の値を「ｓ１」と表記することがある。また、電子メール・メッセージ送信コンポーネント５１０は、ｂ）ｓ１＝＝Ｓの場合、ｉ）ＡＰＩ５１４の１つまたは複数をコールし（例えばクラウド・ストレージのＡＰＩ関数ｉｎｃｒｅｍｅｎｔ＿ｒｅｆ＿ｃｏｕｎｔ＿ｏｆ（Ｆ，Ｖ）をコールする）、ｉｉ）クラウド・ストレージのＡＰＩ関数ｇｅｔ＿ｓｐｅｃｉａｌ＿ｌｉｎｋ＿ｔｏ（Ｆ，Ｖ）をコールし（本明細書において以降その結果の値をｓｌｉｎｋ（＊）と表記する）、ｉｉｉ）送信された電子メール・メッセージから添付ファイル５０８を削除し、その代わりそこにはセクション・リンク（「ｓｌｉｎｋ」）を挿入し、ｉｖ）コンピューティング動作を終了することができる。
【００５４】
一態様において、電子メール・メッセージの送信（電子メール・メッセージ本文５０６または添付ファイル５０８あるいはその両方を含むことができる）は、ステップ４の後に実施することができる。しかしながら、電子メールの送信および重複したファイルの検索を非同期的に実施されることを可能にして、ステップ３において、増加し続けるファイルの検索を容易にするために、一覧にした現在のステップの順序が推奨される。したがって、添付物として、アップロードされたファイルと同じファイルを伴う電子メール・メッセージの送信のためのステップの与えられた順序により、重複したファイルを見つける機会および確率が大きくなる。さらには、不利なことに重複排除動作のタイミングは遅延することがある。しかしながら、個々の添付ファイルについての重複排除動作により削減することができるファイル容量消費量は、あまり大きくなるべきではないと考えられる。
【００５５】
ステップ４−ｂ−ｉｉの追加的かつ補足的な態様において、ファイル「Ｆ」は重複したファイルと認識され得、クラウド・ストレージにアップロードされ得る（例えば公開アクセス可能）。そのため、ファイル「Ｆ」に対して何らかのアクセス制限が必要となり、課されることがある。この理由のため、電子メール・メッセージの受信者がファイルにアクセスすることを可能にするために、プライベートなリンク（例えばアクセス権が設定されておらず、誰でもアクセスすることができるリンク）を、ｓｌｉｎｋとして使用することができる。また、コンピューティング・セキュリティの高まりで、クラウド・ストレージ・システム５０２は、新しいＡＰＩ関数（例えばＡＰＩ関数ａｄｄ  ｐｅｒｍｉｓｓｉｏｎ（ファイル，バージョン，電子メール・アドレス））を有するように構成することができ、これは電子メール・アドレス・パラメータに関連付けられるユーザにファイルへのアクセス権を与え、電子メール・メッセージの受信者は新しいＡＰＩ関数を使用してファイルにアクセスするパーミッションが与えられる。
【００５６】
先ほどの説明では、どのように重複排除動作が実施されるかを図示した。前述の代わりに、以下は、クラウド・ストレージ上のリンクされたファイルまたはｓｌｉｎｋを含む電子メール・メッセージに対する動作が行われる際の、本発明の振る舞いを提供する。
【００５７】
クラウド・ストレージからのファイルの削除
ファイルのバージョン（例えばＦｉｌｅ＿１  ｖｅｒｓｉｏｎ：１、Ｆｉｌｅ＿１  ｖｅｒｓｉｏｎ：２、またはＦｉｌｅ＿２  ｖｅｒｓｉｏｎ：１あるいはその組合せ）がクラウド・ストレージ・システム５０２から削除される場合、ｒｅｆ＿ｃｏｕｎｔ＞０の場合、ファイルは削除され、ファイルを電子メール・メッセージからアクセス不可能にすることができる。それにより、本発明は、クラウド・ストレージ・システム５０２のファイルを以下の状態におくことができる：状態１）ファイルは、クラウド・ストレージの通常のインターフェースからアクセスすることができない（ファイルはフェイクになるように作成され、削除され得る）、または状態２）ファイルは選択されたＨＴＴＰリンクを介してのみアクセス可能である、あるいはその両方の状態。そのため、隠しファイル・ストレージ・システム５２０を、そのような特徴を有するフォルダ／コンテナとして導入すること／提供することができ、ファイルを状態１または状態２あるいはその両方の状態におくことを可能とする。隠しファイル・ストレージ・システム５２０は、１）クラウド・ストレージのあらゆるユーザがアクセスすることを禁止されるフォルダを用意すること、および２）電子メール・システム５０４の選択されたまたは識別されたユーザを、フォルダ（例えば、隠しファイル・ストレージ・システム５２０）にアクセスすることができる唯一のユーザとしてそれぞれ登録すること、によって提供され得る。クラウド・ストレージ・システム５０２（例えば公開ファイル・ストレージ・システム５１８から）からファイルのあるバージョンを削除することは、次のように実施することができる。また、参照回数がゼロに等しい場合（例えば「ｒｅｆ＿ｃｏｕｎｔ＝＝０」）、１つまたは複数の削除動作を使用してファイルを削除することができるか、またはファイルを公開ファイル・ストレージ・システム５１８から隠しファイル・ストレージ・システム５２０に移動することができるか、あるいはその両方である。
【００５８】
Ｓｌｉｎｋを含む電子メール・メッセージの削除
Ｓｌｉｎｋを含む電子メール・メッセージが削除される場合、またｓｌｉｎｋからリンクされるファイルが隠しファイル・ストレージ・システム５２０に存在する場合で、かつそのファイルを参照する電子メール・メッセージが１つだけである場合、ファイルは、クラウド・ストレージ・システム５０２から（例えば隠しファイル・ストレージ・システム５２０から）削除される。すなわち、ｓｌｉｎｋを含む電子メール・メッセージが削除される場合、電子メール・メッセージ送信コンポーネント５１０は、次のように動作する。ステップ１）ｓｌｉｎｋがリンクされているファイルの名称ＦおよびバージョンＶを取り出す。第１のステップ（「ステップ１」）として、リンクされるファイルの名称およびバージョンがｓｌｉｎｋから直接認識され得るように、ｓｌｉｎｋをフォーマットすることができるか、または例えばｇｅｔ＿ｆｉｌｅｎａｍｅ＿ａｎｄ＿ｖｅｒｓｉｏｎ＿ｏｆ（ｓｌｉｎｋ）などの、１つまたは複数のＡＰＩ関数５１４の他のＡＰＩ関数を実装することができるか、あるいはその両方である。第２のステップ（「ステップ２」）として、電子メール・メッセージ送信コンポーネント５１０は、ＡＰＩ５１４の１つまたは複数をコールすることができる（例えばクラウド・ストレージのＡＰＩ  ｄｅｃｒｅｍｅｎｔ＿ｒｅｆ＿ｃｏｕｎｔ＿ｏｆ（Ｆ，Ｖ）をコールする）。やはり、前述のように、「クラウド・ストレージのＡＰＩ  ｄｅｃｒｅｍｅｎｔ＿ｒｅｆ＿ｃｏｕｎｔ＿ｏｆ（Ｆ，Ｖ）」ＡＰＩのコールは、参照回数「ｒｅｆ＿ｃｏｕｎｔ」をデクリメントし、参照回数「ｒｅｆ＿ｃｏｕｎｔ」が０に達すると、ファイルをクラウド・ストレージ・システム５０２から削除することができる。第３のステップ（「ステップ３」）として、電子メール・メッセージ送信コンポーネント５１０は電子メール・メッセージを削除することができる。
【００５９】
本発明の本明細書において説明したように、ファイルが初めにクラウド・ストレージ・システム（例えば、クラウド・ストレージ・システム５０２）にアップロードされ、次に電子メール・メッセージにおいて添付ファイル（例えば、添付ファイル５０８）として使用される場合、ファイルの重複排除動作が可能であることに留意されたい。しかしながら、ファイルが初めに添付物として電子メール・メッセージに添付され、次にクラウド・ストレージ・システム（例えば、クラウド・ストレージ・システム５０２）にアップロードされる場合、重複排除動作は許可されない／可能ではない。しかしながら、クラウド・ストレージ・システム（例えば、クラウド・ストレージ・システム５０２）へのアップロードは、時間的により早期に実施されることがあり、これはクラウド・ストレージがローカルのファイル・システムと同期されている場合に起こりやすい。
【００６０】
次に図６を見ると、図示される実施形態の様々な態様が実装され得る、プロセッサを使用するクラウド・ストレージ・サーバによる重複排除のための方法６００が描写されている。機能６００は、マシン上で命令として実行される方法として実装することができ、ここで命令は、少なくとも１つのコンピュータ可読媒体または１つの非一過性のマシン可読記憶媒体に含まれる。一態様において、図１〜図５の機能、動作、またはアーキテクチャ上の設計あるいはその組合せを、図６において、すべてまたは一部あるいはその両方で実装することができる。
【００６１】
機能６００は、ブロック６０２において開始することができる。ブロック６０４におけるように、通信メッセージ（例えば、電子メール）の添付ファイルがクラウド・ストレージ・システム内に存在するものと判断するために、判断動作を実施することができる。ブロック６０６におけるように、添付ファイルのクラウド・ストレージ・システム上の同一ファイルにアクセスするためにリンクを通信クライアント（例えば、電子メール・クライアントの受信者）に送信することができる。機能６００は、ブロック６０８におけるように終了することができる。
【００６２】
一態様において、図６の少なくとも１つのブロックと併せて、または図６の少なくとも１つのブロックの一部として、あるいはその両方で、方法６００の動作は、次のそれぞれを含むことができる。方法６００の動作は、通信クライアントから添付ファイルを有する通信メッセージを送信または受信あるいはその両方を行うことができる。方法６００の動作は、クラウド・ストレージ・サーバまたは通信クライアントを使用してクラウド・ストレージ・システム内に添付ファイルが存在すると判断することができ、この場合、通信クライアントは、電子メール・クライアントである。通信メッセージの送信者からアップロードされたファイルの一覧は、検索され得る。
【００６３】
追加的な態様において、方法６００の動作は、アプリケーション・プログラム・インターフェース（ＡＰＩ）のコールを使用して通信クライアントを介して同一ファイルのハッシュ値を取得すること、同一ファイルのハッシュ値を通信メッセージ中の添付ファイル内のハッシュ値と比較すること、またはクラウド・ストレージ・システム内の同一ファイルが通信メッセージ中の添付ファイルと同一のハッシュ値を有していると判断すること、あるいはその組合せを行うことができる。また、同一ファイルの削除の際、同一ファイルを、リンクを介してのみアクセス可能なクラウド・ストレージ・システムの選択されたエリアに再配置することもできる。
【００６４】
次に図７を見ると、図示される実施形態の様々な態様が実装され得る、プロセッサを使用するクラウド・ストレージ・サーバによる重複排除のための方法７００が描写されている。機能７００は、マシン上で命令として実行される方法として実装することができ、ここで命令は、少なくとも１つのコンピュータ可読媒体または１つの非一過性のマシン可読記憶媒体に含まれる。一態様において、図１〜図５の機能、動作、またはアーキテクチャ上の設計あるいはその組合せを、図７において、すべてまたは一部あるいはその両方で実装することができる。
【００６５】
機能７００は、ブロック７０２において開始することができる。ブロック７０４におけるように、クラウド・コンピューティング・サーバによって、電子メール・クライアントから添付ファイルを有する電子メール・メッセージを受け取ることができる。ブロック７０６におけるように、クラウド・コンピューティング・サーバによって、クラウド・ストレージ・システム上に添付ファイルが存在するものと判断するために、判断動作を実施することができる。ブロック７０８におけるように、クラウド・ストレージ・システム上に添付ファイルが存在するとの判断に応じて、クラウド・ストレージ・システム上の同一ファイルにアクセスするためにクラウド・ストレージ・サーバによって電子メール・クライアントにリンクを送信することができる。機能７００は、ブロック７１０におけるように終了することができる。
【００６６】
次に図８を見ると、図示される実施形態の様々な態様が実装され得る、プロセッサを使用する電子メール・クライアントによる重複排除のための方法８００が描写されている。機能８００は、マシン上で命令として実行される方法として実装することができ、ここで命令は、少なくとも１つのコンピュータ可読媒体または１つの非一過性のマシン可読記憶媒体に含まれる。一態様において、図１〜図５の機能、動作、またはアーキテクチャ上の設計あるいはその組合せを、図８において、すべてまたは一部あるいはその両方で実装することができる。
【００６７】
機能８００は、ブロック８０２において開始することができる。ブロック８０４におけるように、電子メール・クライアントから添付ファイルを有する電子メール・メッセージを送信することができる。ブロック８０６におけるように、クラウド・ストレージ・システム上に添付ファイルが存在すると判断するために、判断動作を実施することができる。ブロック８０８におけるように、クラウド・ストレージ上に添付ファイルが存在するとの判断に応じて、クラウド・ストレージ・システム上の同一ファイルにアクセスするためにクラウド・ストレージ・システムからリンクを取得することができる。ブロック８１０におけるように、電子メール・メッセージの添付ファイルを削除することができ、削除されたファイルはリンクで置き換えることができる。機能８００はブロック８１２におけるように終了することができる。
【００６８】
一態様において、図６〜図８の少なくとも１つのブロックと併せて、または図６〜図８の少なくとも１つのブロックの一部として、あるいはその両方で、方法６００、７００または８００あるいはその組合せの動作は次のそれぞれを含むことができる。方法６００、７００または８００あるいはその組合せの動作は、クラウド・ストレージ・システム上に添付ファイルが存在するかどうかを判断するために、クラウド・ストレージ上のファイルが添付ファイルのハッシュ値と同一のハッシュ値を有しているかどうかを判断することができる。クラウド・ストレージ上に記憶されたファイルのハッシュ値は、１つまたは複数のＡＰＩコール（例えば、「ｇｅｔ＿ｓｈａ２５６」）を使用することにより電子メール・クライアントによって取得され得る。ファイルが同じかまたは同一かあるいはその両方かどうかを判断／確認するために、クラウド・ストレージ内のハッシュ値と添付ファイルのハッシュ値との間で比較動作を実施することができる。添付ファイルがクラウド・ストレージ上に存在するかどうかを判断するために、電子メール・メッセージの送信者によってアップロードされたファイルを含む一覧に対して、検索が実施されるか、もしくは行われるか、またはその両方であってもよく、あるいは電子メール・メッセージの送信者によって最近アップロードされたファイル（例えば、選択された、または定義された期間内の）を含む一覧に対して実施されるか、もしくは行われるか、またはその両方であってもよく、あるいはその組合せであってもよい。
【００６９】
一態様において、方法６００、７００または８００あるいはその組合せの動作は、電子メール・システムまたはクラウド・ストレージ・システムあるいはその両方のあらゆるユーザからアクセス可能であり得るクラウド・ストレージ上のファイルにリンクを提供することができる。追加的な態様において、クラウド・ストレージ上のファイルが削除される際、削除されるファイルをクラウド・ストレージ（隠しファイル・エリア）上のエリアに除去して選択されたリンクを介してのみアクセス可能としてもよく、電子メール・システムまたはクラウド・ストレージ・システムあるいはその両方の選択されたまたは識別されたユーザに制限することができる。電子メール・クライアントは１つまたは複数のＡＰＩのコール（例えば、「ｇｅｔ＿ｓｐｅｃｉａｌ＿ｌｉｎｋ」ＡＰＩコール関数）を使用することによりクラウド・ストレージからリンクを取得することができる
【００７０】
本発明は、システム、方法、またはコンピュータ・プログラム製品あるいはその組合せであり得る。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体を含むことができる。
【００７１】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持および記憶することができる有形のデバイスであり得る。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイスまたは前述のあらゆる適切な組合せであってもよいが、それに限定はしない。コンピュータ可読記憶媒体のより具体的な例の非網羅的な列挙としては、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、静的ランダム・アクセス・メモリ（ＳＲＡＭ）、ポータブル・コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、デジタル・バーサタイル・ディスク（ＤＶＤ）、メモリ・スティック、フロッピー（Ｒ）・ディスク、命令を記録されて有するパンチカードまたは溝に刻まれた構造などの機械的にエンコードされたデバイス、および前述のあらゆる適切な組合せ、を含む。本明細書において使用される場合、コンピュータ可読記憶媒体は、電波または他の自由に伝搬する電磁波、導波路もしくは他の送信媒体を介して伝搬する電磁波（例えば、光ファイバ・ケーブルを通過する光パルス）、または電線を介して送信される電気的信号など、一過性の信号そのものであると解釈されてはならない。
【００７２】
本明細書において説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から、個別のコンピューティング／処理デバイスに、あるいは、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークもしくは無線ネットワークまたはその組合せなどのネットワークを介して、外部のコンピュータもしくは外部のストレージ・デバイスに、ダウンロードすることができる。ネットワークは、銅の送信ケーブル、光学送信ファイバ、無線送信、ルータ、ファイヤウォール、スイッチ、ゲートウェイ・コンピュータまたはエッジ・サーバあるいはその組合せを備えることができる。それぞれのコンピューティング／処理デバイスのネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、個別のコンピューティング／処理デバイス内のコンピュータ可読記憶媒体に記憶するためにコンピュータ可読プログラム命令を転送する。
【００７３】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ（ＩＳＡ）命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、あるいはスモールトーク（Ｒ）、Ｃ＋＋などのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語などの従来的な手続き型プログラミング言語もしくは類似するプログラミング言語、を含む１つまたは複数のプログラミング言語のあらゆる組合せで記述された、ソース・コードまたはオブジェクト・コードのいずれかであってもよい。コンピュータ可読プログラム命令は、すべてユーザのコンピュータ上で、一部はユーザのコンピュータ上でスタンドアロンのソフトウェア・パッケージとして、一部はユーザのコンピュータ上かつ一部は遠隔のコンピュータ上で、またはすべて遠隔のコンピュータ上もしくはサーバ上で、実行することができる。後者のシナリオにおいて、遠隔のコンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）もしくはワイド・エリア・ネットワーク（ＷＡＮ）を含むあらゆるタイプのネットワークを介してユーザのコンピュータに接続することができ、または接続は外部のコンピュータ（例えば、インターネット・サービス・プロバイダを使用するインターネットを介して）に対してなされてもよい。一部の実施形態において、例えば、プログラマブル論理回路、フィールドプログラマブル・ゲート・アレイ（ＦＰＧＡ）、またはプログラマブル論理アレイ（ＰＬＡ）を含む電子回路は、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行して電子回路を個別化することができる。
【００７４】
本発明の態様は本発明の実施形態による方法、装置（システム）、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照しながら本明細書において説明される。フローチャート図またはブロック図あるいはその両方のそれぞれのブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実装され得ることが理解されよう。
【００７５】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサを介して実行する命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックに指定される機能／動作を実装する手段を作成すべく、汎用コンピュータ、特殊目的コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作るものであってよい。これらのコンピュータ可読プログラム命令はまた、命令を記憶して有するコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックに指定される機能／動作の態様を実装する命令を含む製造物品を備えるべく、特定のやり方で機能するようにコンピュータ、プログラム可能なデータ処理装置、または他のデバイスあるいはその組合せに指示することができるコンピュータ可読記憶媒体に記憶されてもよい。
【００７６】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能な装置、または他のデバイスで実行する命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックに指定される機能／動作を実装するように、コンピュータ実装処理を作るべく、コンピュータ、他のプログラム可能なデータ処理装置、または他のデバイス上にロードされ、コンピュータ、他のプログラム可能な装置、または他のデバイス上で一連の動作可能なステップを実施させるものであってもよい。
【００７７】
図面中のフローチャートおよびブロック図は、本発明の様々な実施形態にしたがって、システム、方法、およびコンピュータ・プログラム製品の可能な実装形態の、アーキテクチャ、機能、および動作を図示している。この点において、フローチャートまたはブロック図のそれぞれのブロックは、指定される論理機能を実装するための１つまたは複数の実行可能な命令を含む、命令のモジュール、セグメント、または部分を表現することができる。一部の代替的な実装形態において、ブロックにおいて示した機能は図面で示した順とは異なって発生してもよい。例えば、連続して示される２つのブロックは、実際には実質的に同時に実行されてもよく、またはブロックは関与する機能によっては、時に逆の順で実行されてもよい。ブロック図またはフローチャート図あるいはその両方のそれぞれのブロック、およびブロック図またはフローチャート図あるいはその両方のブロックの組合せは、指定される機能もしくは動作を実施する、または特殊目的ハードウェアおよびコンピュータ命令の組合せを実行する、特殊目的ハードウェア・ベースのシステムによって実装され得ることにも留意されたい。
【図１】
2021503660.tif 000003
【図２】
2021503660.tif 000004
【図３】
2021503660.tif 000005
【図４】
2021503660.tif 000006
【図５】
2021503660.tif 000007
【図６】
2021503660.tif 000008
【図７】
2021503660.tif 000009
【図８】
2021503660.tif 000010
【手続補正書】
【提出日】令和2年6月3日(2020.6.3)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセッサによる通信メッセージ内のファイルの重複排除のための方法であって、プロセッサが、
クラウド・ストレージ・システム内に通信メッセージの添付ファイルが存在すると判断することと、
前記添付ファイルの前記クラウド・ストレージ・システム上の同一ファイルにアクセスするためにリンクを通信クライアントに送信することと
を実行する、方法。
【請求項２】
プロセッサが、前記通信クライアントから、前記添付ファイルを有する前記通信メッセージを送信すること、または受信することをさらに実行する、請求項１に記載の方法。
【請求項３】
プロセッサが、前記クラウド・ストレージ・システムまたは前記通信クライアントを使用して前記クラウド・ストレージ・システム内に前記添付ファイルが存在すると判断することをさらに実行し、前記通信クライアントは、電子メール・クライアントである、請求項１に記載の方法。
【請求項４】
プロセッサが、
アプリケーション・プログラム・インターフェース（ＡＰＩ）のコールを使用して前記通信クライアントを介して前記同一ファイルのハッシュ値を取得することと、
前記同一ファイルの前記ハッシュ値を前記通信メッセージ中の前記添付ファイル内の前記ハッシュ値と比較することと
をさらに実行する、請求項１に記載の方法。
【請求項５】
プロセッサが、前記クラウド・ストレージ・システム内の前記同一ファイルが前記通信メッセージ中の前記添付ファイルと同一のハッシュ値を有していると判断することをさらに実行する、請求項１に記載の方法。
【請求項６】
プロセッサが、前記通信メッセージの送信者からアップロードされたファイルの一覧を検索することをさらに実行する、請求項１に記載の方法。
【請求項７】
プロセッサが、前記同一ファイルの削除の際、前記同一ファイルを、前記リンクを介してのみアクセス可能な前記クラウド・ストレージ・システムの選択されたエリアに再配置することをさらに実行する、請求項１に記載の方法。
【請求項８】
通信メッセージ内のファイルの重複排除のためのシステムであって、
実行されると前記システムに
クラウド・ストレージ・システム内に通信メッセージの添付ファイルが存在すると判断することと、
前記添付ファイルの前記クラウド・ストレージ・システム上の同一ファイルにアクセスするためにリンクを通信クライアントに送信することと
を行わせる、実行可能命令を有する１つまたは複数のコンピュータ
を備える、システム。
【請求項９】
前記実行可能命令は、前記通信クライアントから前記添付ファイルを有する前記通信メッセージをさらに送信、または受信する、請求項８に記載のシステム。
【請求項１０】
前記実行可能命令は、前記クラウド・ストレージ・システムまたは前記通信クライアントを使用して前記クラウド・ストレージ・システム内に前記添付ファイルが存在するとさらに判断し、前記通信クライアントは電子メール・クライアントである、請求項８に記載のシステム。
【請求項１１】
前記実行可能命令は、さらに
アプリケーション・プログラム・インターフェース（ＡＰＩ）のコールを使用して前記通信クライアントを介して前記同一ファイルのハッシュ値を取得し、
前記同一ファイルの前記ハッシュ値を前記通信メッセージ中の前記添付ファイル内の前記ハッシュ値と比較する、
請求項８に記載のシステム。
【請求項１２】
前記実行可能命令は、前記クラウド・ストレージ・システム内の前記同一ファイルが前記通信メッセージ中の前記添付ファイルと同一のハッシュ値を有しているとさらに判断する、請求項８に記載のシステム。
【請求項１３】
前記実行可能命令は、前記通信メッセージの送信者からアップロードされたファイルの一覧をさらに検索する、請求項８に記載のシステム。
【請求項１４】
前記実行可能命令は、前記同一ファイルの削除の際、前記同一ファイルを、前記リンクを介してのみアクセス可能な前記クラウド・ストレージ・システムの選択されたエリアにさらに再配置する、請求項８に記載のシステム。
【請求項１５】
プロセッサによる通信メッセージ内のファイルの重複排除のためのコンピュータ・プログラムであって、前記コンピュータ・プログラムは、コンピュータを
クラウド・ストレージ・システム内に通信メッセージの添付ファイルが存在すると判断する手段、および、
前記添付ファイルの前記クラウド・ストレージ・システム上の同一ファイルにアクセスするためにリンクを通信クライアントに送信する手段
として機能させるためのコンピュータ・プログラム。
【請求項１６】
前記コンピュータ・プログラムは、コンピュータを
前記通信クライアントから、前記添付ファイルを有する前記通信メッセージを送信する、または受信する手段
としてさらに機能させる、請求項１５に記載のコンピュータ・プログラム。
【請求項１７】
前記コンピュータ・プログラムは、コンピュータを
前記クラウド・ストレージ・システムまたは前記通信クライアントを使用して前記クラウド・ストレージ・システム内に前記添付ファイルが存在すると判断する手段
としてさらに機能させ、前記通信クライアントは、電子メール・クライアントである、請求項１５に記載のコンピュータ・プログラム。
【請求項１８】
前記コンピュータ・プログラムは、コンピュータを
アプリケーション・プログラム・インターフェース（ＡＰＩ）のコールを使用して前記通信クライアントを介して前記同一ファイルのハッシュ値を取得する手段、
前記同一ファイルの前記ハッシュ値を前記通信メッセージ中の前記添付ファイル内の前記ハッシュ値と比較する手段、および、
前記クラウド・ストレージ・システム内の前記同一ファイルが前記通信メッセージ中の前記添付ファイルと同一の前記ハッシュ値を有していると判断する手段
としてさらに機能させる、請求項１５に記載のコンピュータ・プログラム。
【請求項１９】
前記コンピュータ・プログラムは、コンピュータを
前記通信メッセージの送信者からアップロードされたファイルの一覧を検索する手段
としてさらに機能させる、請求項１５に記載のコンピュータ・プログラム。
【請求項２０】
前記コンピュータ・プログラムは、コンピュータを
前記同一ファイルの削除の際、前記同一ファイルを、前記リンクを介してのみアクセス可能な前記クラウド・ストレージ・システムの選択されたエリアに再配置する手段
としてさらに機能させる、請求項１５に記載のコンピュータ・プログラム。
【国際調査報告】
2021503660.tif 000011
2021503660.tif 000012