(58)【調査した分野】(Int.Cl.,DB名)
1以上の処理ユニットに、第1デバイスと1以上の他のデバイスとの間でファイルを転送する方法を実行させるための実行可能命令を記憶した不揮発性の機械読み取り可能な記憶媒体であって、前記方法が、前記他のデバイスと接続するネットワークに対するアクティブネットワークコネクションを前記第1デバイスが有することで前記ネットワークとの接続が行われ、アドホックファイル共有サービスがアクティブにされる状況下で、
前記アドホックファイル共有サービスがアクティブにされたことに応答して、前記第1デバイス上のアドホックファイル共有サービスに関連する1以上の特別な目的のフォルダに1以上のファイルを置くことによってファイル共有を自動的に可能にするよう構成されたアドホックファイル共有サービスによる通知パケットを前記第1デバイスが前記アクティブネットワークコネクションを介して前記他のデバイスの各々に送信する処理であって、前記通知パケットが、前記他のデバイスの各々に前記アドホックファイル共有サービスの存在を知らせて利用可能であることを示し、且つ、前記通知パケットが前記第1デバイスに関連付けられる前記ユーザのユーザ識別情報を含み、前記アドホックファイル共有サービスへのアクセスが1人のユーザ毎に認可される当該処理と、
前記他のデバイスの各々との接続を確立する処理と、
前記他のデバイスの各々によってファイルを転送する処理であって、転送のために利用可能な前記1以上の特別な目的のフォルダ内に置かれていたファイルを作成することを含む当該処理と、
を含む、不揮発性の機械読み取り可能な記憶媒体。
前記アドホックファイル共有サービスへのアクセスは、他のデバイスに対応するユーザが前記第1デバイス上にファイル共有アカウントを有することなく達成される、請求項2に記載の不揮発性の機械読み取り可能な記憶媒体。
前記アドホックファイル共有サービスへのアクセスは、前記第1デバイス又は前記他のデバイスのうちの1つではない別のデバイス上における認証サービスを使用することなく達成される、請求項2に記載の不揮発性の機械読み取り可能な記憶媒体。
前記アドホックファイル共有サービスへのアクセスは、他のデバイスに対応するユーザが前記アドホックファイル共有サービスにログインする必要もなく達成される、請求項2に記載の不揮発性の機械読み取り可能な記憶媒体。
1以上の処理ユニットに第1デバイスと1以上の他のデバイスとの間でファイルを転送する方法を実行させるための実行可能命令を有する不揮発性の機械読み取り可能な記憶媒体であって、前記方法が、前記他のデバイスと接続するネットワークに対するアクティブネットワークコネクションを前記第1デバイスが有することで前記ネットワークとの接続が行われ、アドホックファイル共有サービスがアクティブにされる状況下で、
前記アドホックファイル共有サービスがアクティブにされたことに応答して、前記第1デバイス上のアドホックファイル共有サービスに関連する1以上の特別な目的のフォルダに1以上のファイルを置くことによってファイル共有を自動的に可能にするよう構成されたアドホックファイル共有サービスによる通知パケットを前記第1デバイスが前記アクティブネットワークコネクションを介して前記他のデバイスの各々に送信する処理であって、前記通知パケットが、前記他のデバイスの各々に前記アドホックファイル共有サービスの存在を知らせて利用可能であることを示し、且つ、前記通知パケットが前記第1デバイスに関連付けられる前記ユーザのユーザ識別情報を含む当該処理と、
前記アドホックファイル共有サービスへのアクセスを前記他のデバイスの各々に許可する処理であって、前記アドホックファイル共有サービスへのアクセスが1人のユーザ毎に認可され、前記アクセスは、前記他のデバイスの各々に対応するユーザが前記第1デバイス上にファイル共有アカウントを有することなく達成され、且つ前記アクセスは、当該アクセスのために利用可能な前記1以上の特別な目的のフォルダ内に置かれていたファイルを作成することを含む当該処理と、
を含む、不揮発性の機械読み取り可能な記憶媒体。
前記アドホックファイル共有サービスへのアクセスは、前記第1デバイス又は前記他のデバイスのうちの1つではない別のデバイスを使用した認証サービスなしに達成される、請求項9に記載の不揮発性の機械読み取り可能な記憶媒体。
前記アドホックファイル共有サービスへのアクセスは、他のデバイスに対応するユーザが前記アドホックファイル共有サービスにログインする必要もなく達成される、請求項9に記載の不揮発性の機械読み取り可能な記憶媒体。
前記アドホックファイル共有サービスへのアクセスは、他のデバイスに対応するユーザが前記第1デバイスにおけるファイル共有アカウントを有することなく達成される、請求項17に記載の装置。
1以上の処理ユニットに第1デバイスと1以上の他のデバイスとの間でファイルを転送するのに使用されるアドホックファイル共有処理の方法を実行させる命令を記憶した不揮発性の機械読み取り可能な記憶媒体であって、前記方法が、前記他のデバイスと接続するネットワークに対するアクティブネットワークコネクションを前記第1デバイスが有することで前記ネットワークとの接続が行われ、アドホックファイル共有サービスがアクティブにされる状況下で、
前記アドホックファイル共有サービスがアクティブにされたことに応答して、前記第1デバイス上のアドホックファイル共有サービスに関連する1以上の特別な目的のフォルダに1以上のファイルを置くことによってファイル共有を自動的に可能にするアドホックファイル共有処理のために構成されたフォルダをユーザが選択したことに応答して、
前記第1デバイスにて前記アドホックファイル共有処理を開始する処理と、
前記アドホックファイル共有サービスの通知を前記1以上の他のデバイスの各々に送信することによって、前記アドホックファイル共有処理をイネーブルにする処理であって、前記通知が前記第1デバイスからの前記アドホックファイル共有サービスを利用可能であることを示し、且つ、前記通知が前記第1デバイスに関連付けられる前記ユーザのユーザ識別情報を含み、前記アドホックファイル共有サービスへのアクセスが1人のユーザ毎に認可され、前記アクセスは、前記他のデバイスの各々に対応するユーザが前記第1デバイスにおけるファイル共有アカウントを有することなく達成され、これにより前記他のデバイスの各々に対し前記アドホックファイル共有サービスへのアクセスが許可されるようになり、前記アクセスは、当該アクセスのために利用可能な前記1以上の特別な目的のフォルダ内に置かれていたファイルを作成することを含む当該処理と、
を含む、不揮発性の機械読み取り可能な記憶媒体。
【発明を実施するための形態】
【0010】
アドホックファイル共有サービスを使用してファイルを転送しファイル閲覧を実行するデバイスに関する方法及び装置について説明する。以下の説明では、本発明の実施形態の完全な説明を提供するために多くの特定の詳細事項が記載されている。しかしながら、本発明の実施形態はこれらの特定の詳細事項がなくとも実施できることは当業者には明らかであろう。場合によっては、公知の構成要素、構造、及び技術は、本明細書の理解を曖昧にしないために詳細には示されていない。
【0011】
本明細書における「1つの実施形態」又は「ある実施形態」の記載は、実施形態に関して説明される特定の特徴、構造、又は特性が、本発明の少なくとも1つの実施形態に含まれることを意味する。本明細書における様々な箇所での「1つの実施形態において」という表現の出現は、必ずしも全て同じ実施形態を指すものではない。
【0012】
以下の説明及び請求項において、用語「結合された」及び「接続された」は、それらの派生語と共に使用することができる。これらの用語は、互いに対する同義語として意図されたものではないことを理解されたい。「結合された」は、互いに直接物理的又は電気的に接触することができ又は接触しない場合もある、2つ又はそれよりも多くの要素が互いに協働又は対話することを示すのに使用される。「接続された」は、互いに結合された2つ又はそれよりも多くの要素間の通信の設定を示すのに使用される。
【0013】
以下の図で示される処理は、ハードウエア(回路、専用論理回路など)、ソフトウエア(汎用コンピュータシステム又は専用機械上で実行されるものなど)、又はこれらの組み合わせを含む処理論理回路によって実行される。処理は、幾つかの順次的な動作の観点で以下に説明されるが、説明される動作の幾つかは異なる順序で実行できることを理解されたい。更に、幾つかの動作は、順次的ではなく並行して実行することができる。
【0014】
用語「サーバ」、「クライアント」、及び「デバイス」は、サーバ、クライアント、及び/又はデバイスに対する特定の形式因子を具体的に指すのではなく、データプロセッシングシステムを全体的に指すものとする。
【0015】
アドホックファイル共有サービスを使用してファイルを転送しファイル閲覧を実行する装置に関する方法及びデバイスを説明する。例示的な方法において、デバイスは、アドホックファイル共有サービスの通知を他のデバイスの1つ又はそれ以上の各々に送信する。送信される通知は各々、第1デバイスに関連付けられるユーザのユーザ識別情報(識別子)を含む。更に、アドホックファイル共有サービスへのアクセスは、1人のユーザ毎に認可される。デバイスは、他のデバイスの各々と接続を確立し、複数の他のデバイスの各々とファイルを転送する。
【0016】
図1は、アドホックファイル共有に参加している複数のデバイスの1つの実施形態のブロック図である。
図1では、デバイス102A−Cは、ネットワーク接続104A−Cを介して結合される。1つの実施形態では、デバイス102Aは、ネットワーク接続104Aを介してデバイス102Bに結合され、デバイス102Bは、ネットワーク接続104Bを介してデバイス102Cに結合される。同様に、デバイス102Cは、ネットワーク接続104Cを介してデバイス102Aに結合される。1つの実施形態では、3つのデバイスがネットワーク接続を介して互いに結合されて示されているが、代替の実施形態では、ポイントツーポイントネットワーク接続のフルメッシュのネットワーク接続を介して、及び/又はフルメッシュ未満のネットワーク接続のネットワークトポロジーを介して互いに結合されたより多くの又はより少ないデバイスが存在することができる。例えば、1つの実施形態では、ネットワーク接続のリングを4つ又はそれよりも多くのデバイスのグループに対して使用することができる。
【0017】
1つの実施形態では、デバイスは、パーソナルコンピュータ、ラップトップ、ノートブック、タブレット、スマートフォン、携帯電話、ゲームデバイス、メディアプレーヤ、その他、及び/又はネットワーク接続を有することができ且つファイルを格納及び/又は転送することができる何れかの他の種類のデバイスとすることができる。1つの実施形態では、ネットワーク接続は、2つの異なるデバイスを結合することができる何れかの種類のネットワーク接続:無線接続(Wi−Fi、セルラー、ブルートゥース、赤外線など)、有線(イーサネットなど)、及び/又はこれらの組み合わせとすることができる。1つの実施形態では、各デバイス102A−Cは、アドホックファイル共有サービスを使用して他のデバイスファイルシステムにおけるファイルの転送及び/又はファイルの閲覧を行うことができる。1つの実施形態では、各デバイス102A−Cは、アドホックファイル共有サービスを介して他のデバイス102A−Cが利用可能なファイルを特別なフォルダに格納し、該特別なフォルダは、ファイルを共有可能及び/又は共有可能でないようにする許可を手動で設定し、又は特別なファイルシステムを実装するユーザの必要性を軽減することができる。この場合、ユーザは、その特別なフォルダにファイル(又はファイルのエイリアス又はショートカット)を置いて、当該ファイルをその特別なフォルダに入れることによってそのファイルのファイル共有を自動的に可能にすることができる。特別なフォルダは、本明細書で説明されるアドホックファイル共有の実施形態によりユーザが共有を望むファイルを受信するよう指定又は構成することができる。フォルダの選択又は開く動作、或いはそのフォルダへのファイルの関連付け又は入れる動作は、当該ファイル及びそのフォルダに入れられ又は関連付けられた他の何れかのファイルに対しアドホックファイル共有を自動的にイネーブルにすることができる。ファイル又はファイルのエイリアス又はショートカットはそのフォルダに入れられ、又はそのフォルダに関連付けられて、そのファイルに対するアドホックファイル共有をイネーブルにすることができる。特別なフォルダを用いて、1つの実施形態では、特別なフォルダに入れられ又は関連付けられるファイルだけが、アドホックファイル共有に利用可能にされるよう、そこで共有されるファイルの限度を制限するために使用することができる。
【0018】
1つの実施形態では、アドホックファイル共有サービスは、特定のタスク、プロジェクト、及び/又は他の必要性に対してセットアップすることができるポイントツーポイントファイル共有サービスである。1つの実施形態では、アドホックファイル共有サービスは、そのデバイスのアドホックファイル共有サービスに参加できる他のデバイスに通知を送信することによって機能する。この実施形態では、送信される通知は、アドホックファイル共有サービスがデバイスの1つにおいて利用できることを他のデバイスに対して知らせる。ポイントツーポイントサービスを有することによって、第1デバイスの第1ユーザは、ファイル共有サービスに対する第1デバイス上で第2ユーザがアカウントを有することなく、又は第3デバイス上でホストされるサードパーティサーバ及び/又はサービス(例えば、ピアツーピアファイル共有など)を必要とすることなく、第2デバイスの第2ユーザへのアクセスが可能になることができる。更に、1つの実施形態では、アドホックファイル共有サービスへのアクセスは、1人のユーザ毎に認可される。従って、この実施形態では、アドホックファイル共有サービスによって、固有のアカウントを持たないユーザが、別のユーザに対し認可されていない可能性があるアドホックファイル共有サービスにアクセスできるようになる。これは、何れか及び全ての遠隔ユーザにファイル共有アクセスを認可するゲストアカウントアクセスを有することができる異なる種類のファイル共有サービスとは対照的である。加えて、アドホックファイル共有へのアクセスは、遠隔デバイスに対してアドホックファイル共有サービスへのアクセスを認可する認証サービスを使用することなく達成することができる。
【0019】
1つの実施形態では、アドホックファイル共有サービスは、あるデバイスが他のデバイスに通知を送信し、デバイス104A−Cの各々が参加するネットワーキング接続を通じてそのデバイス上でのファイル共有サービスの存在を通知することによって機能する。例えば、1つの実施形態では、デバイス102Aは、そのネットワーク接続104A−Cを通じて通知を送信する。1つの実施形態では、1つ又はそれ以上のデバイス102A−Cは、デバイスが参加しているネットワーク接続(例えば、企業ローカルエリアネットワーク(LAN)、家庭用ネットワークLANなどにおけるブロードキャスト(例えば、ネットワーク接続104A−Cにおける全ての他のデバイスへの通知のブロードキャスト))上でアドホックファイル共有サービスの通知を送信する。別の実施形態では、要求されたデバイス102A−Cは、そのデバイス102A−Cの近接範囲内の他のデバイスにデバイスへの通知だけを送信する。この実施形態では、デバイス102A−Cは、送信側デバイスに近接した範囲内にある他のデバイスに通知を送信する。例えば、1つの実施形態では、デバイス102Aは、Wi−Fi、ブルートゥース、及び/又はセルラー信号強度、ルーティングホップ、デバイス102A−Cの物理的位置(全地球測位システム位置、携帯電話位置など)、その他、及び/又はこれらの組み合わせに基づいて測定された近接して存在する他のデバイス102B−Cに通知を送信する。例えば、1つの実施形態では、ブルートゥース信号の信号強度を用いて、Wi−Fi発見デバイスの数を制限することができる。
【0020】
1つの実施形態では、デバイス102A−Cにおけるアドホックファイル共有サービスは、ファイル共有接続を通じてファイルを閲覧し転送する。1つの実施形態では、ファイル共有接続とは、1つのデバイス上で実行されるアドホックファイル共有サービスへの更なるアクセスを認可することなく、1つのデバイスが遠隔デバイスのファイルを閲覧し、その遠隔デバイスとの間でファイルを転送することができることを意味する。この実施形態では、これは、ファイル共有リポジトリにおける1つ又はそれ以上のファイル及び/又はディレクトリが、アドホックファイル共有サービスを介して遠隔デバイスに見えることを意味する。1つの実施形態では、アドホックファイル共有サービスは、遠隔デバイスが、最初にファイルを閲覧し、及び/又はこのアドホックファイル共有サービスをホストするデバイスにファイルを転送しようとした時に、遠隔デバイスへのアクセスを認可する。アクセスの認可ついては、以下の
図4A及び5Aで更に説明する。
【0021】
1つの実施形態では、アドホックファイルサーバによって制御されるデバイス102A−Cのアドホックファイル共有サービスが、共有サービスモジュール106A−Cを調べる。この実施形態では、アドホックファイル検索共有サービスモジュール106A−Cが、このファイル共有サービスのイネーブル状態を制御し、アドホックファイル共有サービスを支援する関連のネットワークサービス及び接続を提供し(例えば、Wi−Fi、ブルートゥースなどを提供し)、アドホックファイル共有サービスによってアクセス可能なファイルの転送及び/又は閲覧を制御する。アドホックファイル共有サービスモジュールの動作を、以下で
図2において更に説明する。
【0022】
更に、各デバイス102A−Cは、アドホックファイルリポジトリ108A−Cを含む。1つの実施形態では、アドファイル共有サービスのためのファイルリポジトリ108A−Cは、ディレクトリ、別個のファイルシステム、着脱可能な記憶装置、内部メモリ、その他、及び/又はファイルを格納するために使用することができるデバイスの何れかの構成要素である。アドホックファイル共有サービスを支援するために別個のファイルシステムを有する要件は本発明には無い点に留意されたい。1つの実施形態では、アドホックファイル共有サービスは、アドホックファイル共有サービスに使用されることになるファイルの一時記憶装置として「会議室」という名称のフォルダを指定する。
【0023】
図2は、アドホックファイル共有を実行するための処理の1つの実施形態のフロー図である。
図2では、ブロック202において、処理200は、アドホックファイル共有サービスをイネーブルにしてこのサービスの存在を通知することから始まる。1つの実施形態では、処理200は、アドホックファイル共有サービスを制御する処理を立ち上げることによって、アドホックファイル共有サービスをイネーブルにする。この実施形態では、アドホックファイル共有サービスをイネーブルにすることによる。例えば、1つの実施形態では、デバイスのユーザが、アドホックファイル共有サービスをオンすることができ、サービスを使用して別のデバイスとの間でファイルを送信及び/又は受信し、また、遠隔デバイスを閲覧し、遠隔デバイスにそのデバイスを閲覧させることができる。この実施例では、デバイスのユーザは、必要に応じてサービスをオン及びオフすることができる。例えば、1つの実施形態では、ユーザは、会議中に他の人とファイルを共有したいと思う会議に参加している場合に、サービスをオンすることができる。会議が終了すると、ユーザはサービスをオフすることができ、これによってアドホックファイル共有サービスによるファイル共有を無効にする。別の実施形態では、処理200は、ある時間期間(例えば、1時間より長くない又は他の何らかの時間期間)の間アドホックファイル共有サービスをイネーブルにすることができる。この実施形態では、処理200は、その時間の満了時にアドホックファイル共有サービスをオフにすることになる。別の実施形態では、処理200は、アドホックファイル共有サービスをイネーブルにする。1つの実施形態では、処理200は、UIでこのサービスを表すアイコンをユーザがクリックした時にアドホックファイル共有サービスをイネーブルにする。例えば、1つの実施形態では、以下で
図6において説明されるように、ファイル閲覧ユーザインタフェースにおいて会議室アイコンをクリックすることによって、アドホックファイル共有サービスをイネーブルにすることができる。更に、処理200は、アドホックファイル共有サービスの存在を他のデバイスに通知する。記載のアドホックファイル共有サービスの通知をイネーブルにする処理は、以下で
図3において更に説明する。
【0024】
ブロック204において、処理200は、処理200を実行しているデバイスと他の遠隔デバイスとの間でファイルを転送する。例えば、1つの実施形態では、処理200は、セキュアハイパーテキスト転送プロトコル(HTTPS)のようなプロトコルを使用してファイルを転送及び受信することができる。代替の実施形態では、処理200は、ファイルを転送するための当該技術分野で公知の他のファイル転送プロトコル(例えば、ファイル転送プロトコル(FTP)、ハイパーテキスト転送プロトコル(HTTP)、サーバメッセージブロック(SMB)、アップルファイリングプロトコル(AFP)など)を使用することができる。ファイルの転送は、以下の
図4A−Bで更に説明する。
【0025】
ブロック206において、処理200は、処理200を実行しているデバイスと他の遠隔デバイスとの間での閲覧が利用可能なファイルを閲覧する。例えば、1つの実施形態では、処理200は、HTTPSプロトコルを使用することによってファイル及び/又はディレクトリのリストを要求し、同様のこのような要求を受信することができる。代替の実施形態では、処理200は、ファイル閲覧要求を送信及び受信するための当該技術分野で公知の他のプロトコル(例えば、FTP、HTTP、SMB、AFPなど)を使用することができる。ファイル閲覧は、以下の
図5A−Bで更に説明する。
【0026】
図3は、アドホックファイル共有サービスをイネーブルにし通知するための処理300の1つの実施形態のフロー図である。
図3では、処理300は、ブロック302において、アドホックファイル共有サービスをイネーブルにすることから始まる。1つの実施形態では、処理300は、アドホックファイル共有サービスを制御する処理を起動する。起動されると、処理300を実行しているデバイスは、ファイル転送及びファイル閲覧要求を送信、受信、及び実行できるようになる。1つの実施形態では、処理300は、アドホックファイル共有サービスをイネーブルにする。1つの実施形態では、処理300は、以下で
図6において説明される会議室アイコンのようなユーザインタフェースにおけるサービスを表すアイコンをクリックすることによって、このサービスをイネーブルにする。
【0027】
処理300は、ブロック304において、必要に応じて関連のネットワーキングサービスを立ち上げる。1つの実施形態では、処理300は、Wi−Fi、ブルートゥース、セルラーデータ、赤外線、有線ネットワーキング(イーサネットなど)、及び/又はこれらの組み合わせを立ち上げることができる。1つの実施形態では、処理300は、ブロック304において、実施可能なネットワーキングサービスの全てを立ち上げるが、代替の実施形態では、処理300は、ネットワークサービスの1つ又は一部を立ち上げる(例えば、処理300は、Wi−Fi又はWi−Fiとブルートゥースを立ち上げる)。この代替の実施形態では、処理300が立ち上げるネットワーキングサービスは、構成ファイル及び/又はパラメータによって制御される。更なる実施形態では、処理300は、近接した範囲にある、処理300が検出するネットワーキングサービスを立ち上げる。例えば、1つの実施形態では、処理300は、LANからWi−Fiネットワーク(例えば、LANが利用可能であることを通知するWi−Fiアクセスポイント)を検出し、デバイス上でWi−Fiネットワーキングサービスを立ち上げて、その結果、デバイスが当該LANと自動的に接続することができるようになる。代替として、処理300は、可能性のあるポイント−ツーポイントネットワーキングサービス(Wi−Fiポイントツーポイント又はアドホックWi−Fi、ブルートゥース、赤外線、その他)を有するよう通知する別のデバイスを検出し、関連のネットワーキングサービスを立ち上げて、その結果、デバイスは、ポイントツーポイントネットワーキング接続を築くために他のデバイスと自動的に接続することができる。例えば、1つの実施形態では、処理300は、Wi−Fiサービスを通知する別のデバイスを検出し、処理300は、処理300を実行しているデバイスにWi−Fiサービスを立ち上げる。
【0028】
ブロック304において、処理300は、アドホックファイル共有サービスの存在を通知する。1つの実施形態では、処理300は、そのデバイスが構成したネットワーク接続上で通知パケットを送信する。1つの実施形態では、アドホックファイル共有サービスは、Bonjour(ボンジュール)サービス発見プロトコルを使用して、利用可能なネットワーク接続を通じてアドホックファイル共有サービスを他のデバイスに通知する。例えば、1つの実施形態では、デバイス102Aは、ボンジュールサービス発見プロトコルを使用して、ネットワーク接続104A及び104Cをそれぞれ使用してデバイス102B−Cにアドホックファイル共有サービスを通知する。当該技術分野で公知の他の種類の通知は、アドホックファイル共有サービスの存在を通知するのに使用することができる(ユニキャスト、ブロードキャスト、マルチキャスト通知など)。
【0029】
1つの実施形態では、通知パケットは、通知されるアドホックファイル共有サービスに関連付けられるユーザの識別情報を含む。例えば、1つの実施形態では、処理300は、電子メールアドレス、アップルID、MobileMe(モバイルミー)ID、ソーシャルネットワーク識別情報、このような識別子のハッシュ(例えば、セキュアハッシュアルゴリズム(SHA)−1又は当該技術分野で公知の他のハッシュアルゴリズム、その他)、キーとして使用される数字、可読性の高い名前(例えば、ファーストネーム、ラストネーム、及び/又はこれらの組み合わせなど)、汎用一意識別子(UUID)(例えば、グローバル一意であるキーとして使用される数字)、認証「指紋」(例えば、X509認証に関連付けられる数字ハッシュ)、電話番号、他のようなユーザの識別情報を含む。更に、ユーザ識別情報は、そのユーザに対する既知の識別子のリスト(例えば、同じ及び/又は異なる種類の複数の識別子、その他)とすることができる。1つの実施形態では、識別情報のハッシュが使用される場合、通知を受信するデバイスは、通知に格納された識別データに一致する既知の識別情報のセット(例えば、公知の電子メールアドレス、ソーシャルネットワーキング識別情報、その他)に対し類似のハッシュを使用することになる。この実施形態によって、電子メールアドレス又は他の識別情報をプレーンテキストで送信することなく通知を送信することが可能となる。別の実施形態では、認証「指紋」は、キーとして使用される数字の変形形態であり、付加的な構文が、ユーザの認証と一意に関連付けられ、これは、セキュアファイル転送を暗号化するのにも使用することができる。
【0030】
図3Bは、アドホックファイル共有サービス通知を受信する処理350の実施形態を示すフロー図である。
図3Bでは、処理350は、ブロック352において、アドホックファイル共有サービス通知を受信することから始まる。1つの実施形態では、アドホックファイル共有通知は、通知を送信したデバイスからのアドホックファイル共有サービスの可用性の表示である。更に、1つの実施形態では、通知パケットは、上記に説明されたように通知されるアドホックファイル共有サービスに関連付けられるユーザの識別情報を含む。
【0031】
ブロック354において、処理350は、通知を送信しているデバイスが処理350を実行しているデバイスに知られているかどうかを判定する。1つの実施形態では、処理350は、利用可能なアドホックファイル共有サービスを有することが知られているデバイスのリストを維持する。アドホックファイル共有サービスが知られていない場合、処理350は、ブロック356において、利用可能なアドホックファイル共有サービスを備えた公知のデバイスのリストにデバイスを追加する。1つの実施形態では、利用可能なアドホックファイル共有サービスを備えた遠隔デバイスの存在は、ファイル共有接続が確立されていることを必ずしも意味しない。この実施形態では、ファイル共有接続を、遠隔デバイスのアドホックファイル共有サービスを使用してファイルを転送及び/又は閲覧する試みによって確立することができる。ファイル共有接続の確立は、以下の
図4A及び5Aで更に説明する。処理350の実行はブロック358に進む。
【0032】
通知を送信しているデバイスが処理350を実行しているデバイスに知られている場合、処理350は、ブロック358において、アドホックファイル共有サービスの可用性の表示を更新する。1つの実施形態では、処理350は、以下の
図6で説明されるようにUIに遠隔アドホックファイル共有サービスの可用性を表示する。
【0033】
上述のように、アドホックファイル共有サービスは、異なるデバイス間でファイルを転送するのに使用される。
図4A,Bは、アドホックファイル共有サービスを使用してファイルを転送するための処理の実施形態のフロー図である。詳細には、
図4Aは、アドホックファイル共有サービスを使用してファイルを受信するための処理400の1つの実施形態のフロー図である。
図4Aは、処理400がブロック402においてアドホックファイルシステムからファイルを受信する要求を受け取ることから始まる。1つの実施形態では、処理400は、処理400を実行しているデバイスにファイルを送信するHTTPS要求を受信する。代替として、処理400は、当該技術分野で公知の別の種類のファイル転送要求(FTP、HTTPなど)を受信することができる。例えば、1つの実施形態では、処理400は、ファイルを識別するHTTPS要求及びファイルの送信を望む送信側デバイスの識別情報を受信する。上述のように、識別情報は、電子メールアドレス、ソーシャルネットワーク識別情報、外部サービス識別情報(ツイッター識別情報、アップルID、モバイルミーID、又はある他の公知のサービス識別情報、その他など)、及び/又はこのような識別情報のハッシュ、その他とすることができる。
【0034】
ブロック404において、処理400は、データの送信を要求しているデバイスによって確立されたファイル共有接続があるかどうかを判定する。1つの実施形態では、ファイル共有接続は、確立した接続であり、第1デバイスのユーザは、別のユーザがアドホックファイル共有サービスにアクセスするのを許可している。2つのデバイス間でこのファイル共有接続を確立することによって、ファイル共有のポイントツーポイント特性が確立される。この実施形態では、初期ユーザが第1デバイスのアドホックファイル共有サービスへのアクセスを他のユーザに許可すると、他のユーザは、ファイルの表示、検索、及び/又は第1デバイスへの送信を行うことができる。1つの実施形態では、アドホックファイル共有へのアクセスが一方向で認可されるが、代替の実施形態では、1方向にアクセスすると、自動的に逆方向へのアクセスが認可される(例えば、ユーザAが、ユーザAのデバイスの検索、及び/又はユーザAのデバイスへのファイルの送信の許可をユーザBに認可すると、ユーザ8のデバイスの検索、及び/又はユーザ8のデバイスへのファイルの送信をするためユーザAへのアクセスが認可される)。1つの実施形態では、処理400は、アドホックファイル共有サービスに関連付けられる識別情報を探し、その識別情報に関連付けられたデバイスがファイル共有接続を確立しているかどうかを判定する。識別情報は、電子メールアドレス、ソーシャルネットワーク識別情報、外部サービス識別情報(例えば、ツイッター識別情報、アップルID、モバイルミーID、又は他の何らかの公知のサービス識別情報、その他)とすることができる。更に、1つの実施形態では、識別情報は、上記に列挙された識別情報のハッシュ(例えば、セキュアハッシュアルゴリズム(SHA)−1、その他)とすることができる。
【0035】
ファイル共有接続がファイルの送信を要求しているデバイスとの間に確立されていないと処理400が判定した場合、ブロック410において、処理400は、処理400を実行しているデバイスのユーザにファイルを受信する要求を提示する。1つの実施形態では、処理400は、処理400を実行しているデバイスのユーザに、アドホックファイル共有サービスを介して別のデバイスがファイルを送信したいことを示すユーザインタフェース(UI)ダイアログを提示する。加えて、この実施形態では、ファイル転送要求を受け付けることによって、ファイル共有接続が2つのデバイス間に確立される。例えば、1つの実施形態では、処理400は、受信側デバイスにファイルの名前及びファイルを送信したいデバイスに関連付けられるユーザを示すUIユーザインタフェースダイアログを提示する。
【0036】
ブロック412において、処理400は、その要求が受け付けられたかどうか、又は要求が受け付けられなかったかどうかを判定する。要求が受け付けられなかった場合、ブロック414において、処理400は要求を拒否する。1つの実施形態では、処理400は、ファイル転送要求が拒否された旨のメッセージ、リターンコード、又は他の種類の指示子を、ファイルを送信したいデバイスに送信する。要求がブロック412で受け付けられた場合、処理400は、ブロック406においてファイルを受信する。処理400の実行は、以下に説明されるブロック408に進む。
【0037】
ブロック404において、ファイル共有接続がファイルの送信を要求しているデバイスとの間に確立されたと処理400が判定した場合、ブロック406において、処理400はファイルを受信する。ブロック408において、処理400は、アドホックファイル共有サービスのために使用されるファイルリポジトリにファイルを格納する。例えば、1つの実施形態では、処理400は、
図1において上述したように、受信したファイルをアドホックファイルリポジトリ108A−Cに格納する。
【0038】
図4Bは、アドホックファイル共有サービスを使用してファイルを送信するための処理450の1つの実施形態のフロー図である。
図4Bでは、処理450は、ブロック452において、アドホックファイル共有サービスを介して別のデバイスにファイルを送信する要求を送信することから始まる。1つの実施形態では、処理450は、ファイルの名前及びファイルを送信したいユーザの識別情報を含むHTTPS要求を使用して要求を送信する。1つの実施形態では、識別情報は、電子メールアドレス、ソーシャルネットワーク識別情報、外部サービス識別情報(ツイッター識別情報、アップルID、モバイルミーID、又は他の何れかの公知のサービス識別情報、その他)、その他とすることができる。更に、1つの実施形態では、識別情報は、上記に列挙された識別情報のハッシュ(例えば、セキュアハッシュアルゴリズム(SHA)−1、その他)とすることができる。
【0039】
ブロック454において、処理450は、送信が受け付けられたかどうかを判定する。例えば、1つの実施形態では、処理450は、転送要求が他のデバイスからの応答(例えば、リターンコード、応答メッセージなど)に基づいて受け付けられたかどうかを判定する。要求が受け付けられなかった場合、ブロック458において、処理450はファイルを転送しない。要求がブロック454において受け付けられた場合、ブロック456において、処理450はファイルを転送する。
【0040】
上述のように、アドホックファイル共有サービスによって、ユーザは、アドホックファイル共有サービスを介して見ることができるファイルを転送すると同時に、遠隔デバイスにおいてファイルを閲覧することができる。
図5A,Bは、アドホックファイル共有サービスを使用してファイルを閲覧するための処理500の1つの実施形態のフロー図である。
図5Aは、アドホックファイル共有サービスを使用してファイル閲覧を可能にするための処理500の1つの実施形態のフロー図である。
図5Aは、ブロック502において、アドホックファイル共有サービスからファイル閲覧要求を受信する処理500から始まる。1つの実施形態では、処理500は、処理500を実行しているデバイスへのファイルを閲覧するためのHTTPS要求を受信する。代替として、処理500は、別の種類の要求(FTP、HTTP、その他)を受信することができる。例えば、1つの実施形態では、処理500は、閲覧されることになるファイルディレクトリの識別情報、(任意選択的に)ファイルリストに加えるべきあらゆるフィルタ、及び/又はファイルの閲覧を望む送信側デバイスの識別情報を含むHTTPS要求を受信する。上述のように、識別情報は、電子メールアドレス、ソーシャルネットワーク識別情報、外部サービス識別情報(例えば、ツイッター識別情報、アップルID、モバイルミーID、又はある他の公知のサービス識別情報、その他)、及び/又はこのような識別情報のハッシュ、その他とすることができる。1つの実施形態では、ファイル閲覧要求に含まれるファイルフィルタは、フィルタに一致したファイル及び/又はディレクトリのリストに戻されるファイル及び/又はディレクトリの結果を制限するフィルタである。例えば、1つの実施形態では、フィルタは、ファイル及び/又はディレクトリのリストを、フィルタ“
*.exe”に一致するファイル及び/又はディレクトリのリストに制限するフィルタとすることができる。代替として、閲覧ファイル要求においてファイルフィルタが存在しない場合もある。
【0041】
ブロック504において、処理500は、ファイルの閲覧を要求しているデバイスとの間に確立されたファイル共有接続が存在するかどうかを判定する。上述のように、第1デバイスに対するファイル共有接続は、第1デバイスのユーザが別のデバイスの別のユーザにファイルの送信又は閲覧を認可した時に確立される。2つのデバイスの間にこのファイル共有接続を確立することによって、ファイル共有のポイントツーポイント特性が確立される。この実施形態では、初期ユーザが、第1デバイスのアドホックファイル共有サービスにアクセスする許可を他のユーザに与えると、他のユーザは、ファイルの表示、検索、及び/又はファイルの第1デバイスへの送信を行うことができる。1つの実施形態では、処理500は、上記の
図4のブロック404において説明されたように、アドホックファイル共有サービスに関連付けられる識別情報を探す。
【0042】
ファイルの送信を要求しているデバイスとの間にファイル共有接続が確立されていないと処理500が判定した場合、ブロック510において、処理500は、処理500を実行しているデバイスのユーザにファイル閲覧要求を受信する要求を提示する。1つの実施形態では、処理500は、処理500を実行しているデバイスのユーザにアドホックファイル共有サービスを介してユーザのアドホックファイル共有リポジトリを閲覧することを別のデバイスが望む旨を示すユーザインタフェース(UI)ダイアログを提示する。加えて、この実施形態では、ファイル閲覧要求を受け付けることによって、ファイル共有接続が、2つのデバイスの間に確立される。例えば、1つの実施形態では、処理500は、受信側デバイスのファイル共有リポジトリの閲覧を望んでいるデバイスに関連付けられるユーザを示すUIユーザインタフェースダイアログを提示する。
【0043】
ブロック512において、処理500は、要求が受け付けられたかどうか、又は要求が受け付けられなかったかどうかを判定する。要求が受け付けられなかった場合、ブロック514において、処理500は要求を拒否する。1つの実施形態では、処理500は、ファイル共有リポジトリの閲覧を望むデバイスに、ファイル閲覧要求が拒否された旨のメッセージ、リターンコード、又は他の種類の指示子を送信する。要求がブロック512で受け付けられた場合、処理500は、ブロック506において、ファイル閲覧要求を実行する。1つの実施形態では、処理500は、ファイル閲覧要求に存在するファイルフィルタ(もしあれば)における基準を満たすファイル及び/又はディレクトリのリストを組み立てることによってファイル閲覧要求を実行し、ファイル閲覧要求を最初に行ったデバイスにこのリストを送信する。
【0044】
ブロック504において、ファイル共有接続がファイルの送信を要求しているデバイスとの間に確立されたと処理500が判定した場合、ブロック506において、処理500は、上述のように、ファイル閲覧要求を実行する。
【0045】
図5Bは、アドホックファイル共有サービスを使用してファイル閲覧要求を送信する処理550の1つの実施形態のフロー図である。
図5Bでは、処理550が、ブロック552において、アドホックファイル共有サービスを介して別のデバイスにファイル閲覧要求を送信することから始まる。1つの実施形態では、処理は、ファイルの名前、ファイルの送信を要求しているユーザの識別情報、及び任意選択的にファイルフィルタを含むHTTPS要求を使用して要求を送信する。1つの実施形態では、識別情報は、電子メールアドレス、ソーシャルネットワーク識別情報、外部サービス識別情報(例えば、ツイッター識別情報、アップルID、モバイルミーID、又は他の何れかの公知のサービス識別情報、その他)、その他とすることができる。更に、1つの実施形態では、識別情報は、上記に列挙された識別情報のハッシュ(例えば、セキュアハッシュアルゴリズム(SHA)−1、その他)とすることができる。
【0046】
ブロック554において、処理550は、ファイル閲覧が受け付けられたかどうかを判定する。例えば、1つの実施形態では、処理550は、ファイル閲覧要求が他のデバイスからの応答(例えば、リターンコード、応答メッセージ、その他)に基づいて受け付けられたかどうかを判定する。要求が受け付けられなかった場合、ブロック560において、処理550は失敗を信号送信する(例えば、ユーザインタフェースダイアログなどを提示する)。要求がブロック554で受け付けられた場合、処理500は、
図5のブロック556に関して説明されるようにファイル閲覧要求の結果を受信する。
【0047】
ブロック558において、処理500は、ファイルシステム閲覧の結果を提示する。1つの実施形態では、処理500は、他のデバイスのアドホックファイル共有リポジトリのコンテンツを示すUIを更新する。例えば、1つの実施形態では、処理550は、以下で
図6において説明されるように、UIのファイル表示部分を更新する。
【0048】
図6は、アドホックファイル共有サービスによるファイル共有及び閲覧を示すファイル共有UI600のブロック図である。
図6では、ファイル共有UI600は、UIの3つの別個の部分を含み、異なるエンティティである、ユーザ構成可能表示602、ファイル表示604、及び会議室表示606を表示する。ユーザ構成可能部分602は、デバイス608A、共有部分608B、場所608C、及び会議室608Dを表す1つのUIアイコンを含む。1つの実施形態では、デバイス608Aに対する1つ又はそれ以上のアイコンは、UIを表示しているデバイスに取り付けられた1つ又はそれ以上のデバイス(例えば、ハードディスク、取り外し可能記憶装置、プリンタ、その他、及び/又は当該技術分野で公知の他の取り付け可能デバイス)のリストに対するUIアイコンを含むことができる。更に、1つの実施形態では、共有表示608Bは、UIを表示しているデバイスのための異なる共有デバイス(例えば、他のコンピュータ、ネットワーク取り付け周辺デバイス、その他、及び/又は当該技術分野で公知の他のネットワークアクセス可能デバイス)を表す1つ又はそれ以上のアイコンを含むことができる。1つの実施形態では、場所表示608Cは、UIを表示しているデバイスのユーザによって共通に使用されるディレクトリ(例えば、デスクトップ、アプリケーション、文書、ムービー、フォト、音楽、動画、その他、及び/又は他のユーザ構成可能ディレクトリ)を表す。
【0049】
1つの実施形態では、会議室608Dは、UI600を提示しているデバイスのアドホックファイル共有サービスを表す1つ又はそれ以上のアイコンのセットである。1つの実施形態では、会議室608Dのアイコンの1つがクリックされた時に、アドホックファイル共有リポジトリのファイル及び/又はディレクトリがファイル表示604に列挙される。ファイル及び/又はディレクトリは、当該技術分野で公知の何れかの方式で、例えばアルファベット順の列挙、日付毎の並べ替え、サイズ毎の並べ替え、異なるアイコンによる表示、ファイル及び/又はディレクトリの一部を示すためのフィルタリング、その他、及び/又はこれらの組み合わせで列挙することができる。
【0050】
更に、
図6では、会議室表示606は、UI表示600を提示しているデバイスが利用できる異なる会議室612A−Cを含む。1つの実施形態では、各会議室612A−Cは、1つ又はそれ以上のデバイスにおけるアドホックファイル共有サービスを表す。1つの実施形態では、1つのデバイスに対して複数の同時アドホックファイル共有サービスが存在することができる。例えば、1つの実施形態では、例えば、2つのグラフィカルユーザセッション(例えば、デバイスに利用可能な高速ユーザ切り替えを使用することによって)が存在することができ、各ユーザは、各セッションにおいて会議室にいることができる。この場合、1人のユーザは、ある時間にコンソールを使用することができ、1人だけが他のユーザと対話しファイルを受け付け/拒否/送信することができる。別の実施形態では、複数のユーザが、仮想スクリーンによってスクリーン共有を使用することができる。この実施形態では、デバイスにおける会議室の2つの同時インスタンスが存在することになる。
【0051】
例えば、1つの実施形態では、ローカル会議室612は、UI600を提示しているデバイスにおけるアドホックファイル共有サービスを表すアイコンである。更に、この実施例では、遠隔会議室612B−Cは、UI600を提示するデバイスに結合された遠隔デバイスにおけるアドホックファイル共有サービスを表すアイコンである。例えば、1つの実施形態では、デバイス102AがUI600を提示している場合、ローカル会議室612Aは、デバイス102Aにおけるアドホックファイル共有サービスを表し、遠隔会議室612B−Cは、デバイス612B−Cそれぞれにおけるアドホックファイル共有サービスを表す。
【0052】
1つの実施形態では、ユーザは、ファイル表示604及び/又はローカル会議室612Aのアイコン上にファイルをドラッグ及びドロップすることによって、アドホックファイル共有サービスにファイル及び/又はディレクトリを追加することができる。更に、1つの実施形態では、要求される遠隔会議室アイコン(例えば、会議室612B−C)上に1つ又はそれ以上のファイル及び/又はディレクトリをドロップすることによって、1つ又はそれ以上のファイル及び/又はディレクトリを遠隔アドホックファイリングシステムに転送することができる。1つの実施形態では、遠隔アドホックファイル共有リポジトリのファイルを閲覧するために、ユーザは、関心の遠隔アドホックファイル共有サービスを表すアイコン、例えば会議室612B又はCをクリックすることができる。この実施形態では、会議室612B又はCをクリックすることによって、対応するアドホックファイルリポジトリ108B又はCのファイル及び/又はディレクトリのリストが、ファイル表示604に表示される。例えば、1つの実施形態では、デバイス102Bに対応する会議室612Bをクリックすることによって、アドホックファイルリポジトリのファイル及び/又はディレクトリのリストが表示される。1つの実施形態では、そのアドホックファイル共有リポジトリのファイル及び/又はディレクトリの全てが列挙されるが、代替の実施形態では、ファイル及び/又はディレクトリの一部が列挙される(例えば、当該技術分野で公知のようにファイルフィルタを使用してフィルタリングされる、ディレクトリ毎に編成された通りに表示される、当該技術分野で公知の様々な方法で並べ替えられる等々)。
【0053】
1つの実施形態では、デバイスのユーザは、遠隔アドホックファイル共有サービスからローカルデバイスに要求されるファイルをドラッグ及びドロップすることによって、1つ又はそれ以上のファイル及び/又はディレクトリを遠隔デバイスからローカルデバイスに提供することができる。例えば、1つの実施形態では、ユーザは、遠隔デバイスのアドホックファイル共有サービスにおいて遠隔で利用できるファイルを表示しているファイル表示604から1つ又はそれ以上のファイルをドラッグ及びドロップし、これらの選択されたファイルをユーザのローカルデバイスのデスクトップ上にドロップすることができる。これは、遠隔デバイスのアドホックファイル共有リポジトリからユーザのデバイスのデスクトップにこれらの選択されたファイルを転送する効果を有する。
【0054】
図7は、アドホックファイル共有を実行するアドホックファイル共有モジュール106のブロック図である。1つの実施形態では、アドホックファイル共有モジュール106A−Cは、アドホックファイル共有モジュール106を使用する。
図7では、アドホックファイル共有モジュール106は、アドホックファイル共有サービスイネーブルモジュール702、ファイル共有モジュール704、及びファイル閲覧モジュール706を含む。1つの実施形態では、アドホックファイル共有サービスイネーブルモジュール702は、上記の
図2のブロック202において説明されたようにアドホックファイル共有サービスをイネーブルにする。ファイル共有モジュール704は、上記の
図2のブロック204において説明されたようにアドホックファイル共有サービスを使用してファイルを転送する。ファイル閲覧モジュール706は、上記の
図2のブロック202において説明されたようにアドホックファイル共有サービスを使用してファイル及び/又はディレクトリを閲覧する。
【0055】
図8Aは、アドホックファイル共有サービスをイネーブルにして通知するアドホックファイル共有イネーブルモジュール702のブロック図である。
図8Aでは、アドホックファイル共有イネーブルモジュール702は、アドホックファイル共有サービスイネーブルモジュール802、ネットワーキングチャネルモジュール804、通知モジュール806、及びファイルリポジトリイネーブルモジュール808を含む。アドホックファイル共有サービスイネーブルモジュール802は、上記の
図3Aのブロック302において説明されたようにアドホックファイル共有サービスをイネーブルにする。ネットワーキングチャネルモジュール804は、上記の
図3Aのブロック304において説明されたように必要に応じてネットワーキングチャネルを立ち上げる。通知モジュール806は、上記の
図3Aのブロック306において説明されたように、アドホックファイル共有サービスの可用性を通知する。ファイルリポジトリイネーブル808は、上記の
図3Aのブロック302において説明されたように、アドファイル共有リポジトリをイネーブルにする。
【0056】
図8Bは、アドホックファイル共有サービスの通知を受信する通知受信モジュール850のブロック図である。
図8Bでは、通知受信モジュール850は、通知受信モジュール852、デバイス追加モジュール854、及び表示更新856を含む。通知受信モジュール852は、上記の
図3Bのブロック352において説明されたようにアドホックファイル共有通知を受信する。デバイス追加モジュール854は、上記の
図3Bのブロック354において説明されたように利用可能な公知のアドホックファイル共有サービスのリストにデバイスを追加する。表示更新856は、上記の
図3Bのブロック358において説明されたようにアドホックファイル共有サービスの可用性の表示を更新する。
【0057】
図9A、B、Cは、アドホックファイル共有サービスを使用してファイルを転送するファイル転送モジュールのブロック図である。
図9Aは、ファイルを転送するファイル転送モジュール704のブロック図である。
図9Aでは、ファイル転送モジュール704は、ファイル受信モジュール902及びファイル転送モジュール904を含む。ファイル受信モジュール902は、上記の
図5Aにおいて説明されたようにファイルを受信する。ファイル転送モジュール904は、上記の
図5Bにおいて説明されたようにファイルを転送する。
【0058】
図9Bは、ファイルを受信するファイル受信モジュール902のブロック図である。
図9Bでは、ファイル受信モジュール902は、ファイル受信要求モジュール910、ファイル共有接続設定モジュール912、ファイル受信モジュール914、ファイル格納モジュール916、要求提示モジュール918、及びエラーモジュール920を含む。ファイル受信要求モジュール910は、上記の
図4Aのブロック402において説明されたようにファイル転送要求を受信する。ファイル共有接続設定モジュール912は、上記の
図4Aのブロック416において説明されたようにファイル共有接続を確立する。ファイル受信モジュール914は、上記の
図4Aのブロック406において説明されたようにファイルを受信する。ファイル格納モジュール916は、上記の
図4Aのブロック408において説明されたようにアドホックファイルリポジトリにファイルを格納する。要求提示モジュール918は、上記の
図4Aのブロック410において説明されたようにファイルを受信する要求を提示する。エラーモジュール920は、上記の
図4Aのブロック414において説明されたようにファイル転送要求を拒否する。
【0059】
図9Cは、ファイルを送信するファイル転送モジュール904のブロック図である。
図9Bでは、ファイル転送モジュール902は、ファイル転送要求モジュール930、ファイル転送モジュール932、及びエラーモジュール934を含む。ファイル転送要求モジュール930は、上記の
図4Aのブロック452において説明されたようにファイル転送要求を転送する。ファイル転送モジュール932は、上記の
図4Aのブロック456において説明されたようにファイルを送信する。エラーモジュール934は、上記の
図4Aのブロック468において説明されたようにファイル転送要求を拒否する。
【0060】
図10A、B、Cは、アドホックファイル共有サービスを使用してファイルを閲覧するファイル閲覧モジュールのブロック図である。
図10Aは、アドホックファイル共有サービスを使用してファイルを閲覧するファイル閲覧モジュール706のブロック図である。
図10Aでは、ファイル閲覧モジュール706は、ファイル閲覧受信モジュール1002及びファイル閲覧取得モジュール1004を含む。ファイル閲覧受信モジュール1002は、上記の
図5Aにおいて説明されたように遠隔閲覧要求に応答する。ファイル閲覧取得モジュール1004は、上記の
図5Bにおいて説明されたように遠隔コンピュータを閲覧する。
【0061】
図10Bは、アドホックファイル共有サービスを使用して遠隔閲覧要求に応答するファイル閲覧受信モジュール1002のブロック図である。
図10Bでは、ファイル閲覧受信モジュール1002は、ファイル閲覧要求受信モジュール1010、ファイル共有接続設定モジュール1012、ファイル閲覧満足モジュール1014、ファイル閲覧提示モジュール1016、及び要求拒否1018を含む。ファイル閲覧要求受信モジュール1010は、上記の
図5Aのブロック502において説明されたようにファイル閲覧要求を受信する。ファイル共有接続設定モジュール1012は、上記の
図5Aのブロック508において説明されたようにファイル共有接続を確立する。ファイル閲覧満足モジュール1014は、上記の
図5Aのブロック506において説明されたようにファイル共有閲覧ファイルリポジトリを満足させる。このファイル閲覧提示モジュール1016は、上記の
図5Aのブロック510において説明されたようにファイル閲覧要求を提示する。要求拒否1018は、上記の
図5Aのブロック514において説明されたようにファイル閲覧要求を拒否する。
【0062】
図10Cは、アドホックファイル共有サービスを使用して遠隔コンピュータを閲覧するファイル閲覧取得モジュール1004のブロック図である。
図10Cでは、ファイル閲覧取得モジュール1004は、ファイル閲覧要求送信モジュール1030、閲覧結果受信モジュール1032、ファイル閲覧提示モジュール1034、及びエラーモジュール1036を含む。ファイル閲覧要求送信モジュール1030は、上記の
図5Bのブロック552において説明されたようにファイル閲覧要求を送信する。ファイル閲覧要求送信モジュール1030は、上記の
図5Bのブロック556において説明されたようにファイル閲覧要求を送信する。ファイル閲覧提示モジュール1034は、上記の
図5Bのブロック558において説明されたようにファイル閲覧結果を提示する。エラーモジュール1036は、上記の
図5Aのブロック560において説明されたようにファイル閲覧要求を拒否する。
【0063】
図11は、本発明の1つの実施形態と共に使用することができるデータプロセッシングシステム1100の1つの実施例を示す。例えば、
図1に示されたホストを含むシステム1100を実施することができる。
図11はコンピュータシステムの様々な構成要素を示しているが、このような詳細事項は本発明とは関係がないので、構成要素を相互接続する何れかの特定のアーキテクチャ又は方式を説明することを意図していない点に留意されたい。より少ない構成要素又は場合によってはより多くの構成要素を有するネットワークコンピュータ及び他のデータプロセッシングシステム又は他の消費者電子デバイスを本発明で使用してもよい点は理解されるであろう。
【0064】
図11に示されるように、データプロセッシングシステムの形式であるコンピュータシステム1100は、マイクロプロセッサ1105及びROM(読出し専用メモリ)1107及び揮発性RAM1109及び不揮発性メモリ1111に結合されるバス1103を含む。マイクロプロセッサ1105は、メモリ1107、1109、1111から命令を検索し、上記に説明された動作を実行するために命令を実行することができる。バス1103は、これらの様々な構成要素を互いに相互接続し、これらの構成要素1105、1107、1109、及び1111を、ディスプレイコントローラ及びディスプレイデバイス1113、及びマウス、キーボード、モデム、ネットワークインタフェース、プリンタ及び当該技術分野で公知の他のデバイスとすることができる入力/出力(I/O)デバイスのような周辺デバイスに相互接続する。典型的には、入力/出力デバイス1115は、入力/出力コントローラ1117を介してシステムに結合される。揮発性RAM(ランダムアクセスメモリ)1109は、典型的には、メモリのデータをリフレッシュ又は維持するために継続して電力を必要とする動的RAM(DRAM)として実装される。
【0065】
大容量記憶装置1111は、典型的には、電力がシステムから取り除かれた後でもデータ(大量のデータなど)を維持する磁気ハードドライブ又は磁気光学ドライブ又は光学ドライブ又はDVD RAM又はフラッシュメモリ又は他の種類のメモリシステムである。典型的には、大容量記憶装置1111は、必須ではないが、ランダムアクセスメモリとすることもできる。
図11は、大容量記憶装置1111がデータプロセッシングシステムにおける構成要素の残りの部分に直接結合されたローカルデバイスであることを示しているが、本発明は、モデム、イーサネットインタフェース又は無線ネットワークのようなネットワークインタフェースを介してデータプロセッシングシステムに結合されるネットワーク記憶装置のようにシステムから遠隔にある不揮発性メモリを利用できることが理解されるであろう。バス1103は、当該技術分野で公知の様々なブリッジ、コントローラ及び/又はアダプタを介して互いに接続された1つ又はそれ以上のバスを含むことができる。
【0066】
図12は、本発明の1つの実施形態と共に使用することができる別のデータプロセッシングシステム1200の実施例を示す。例えば、システム1200は、
図1に示されるようなポータブル記憶装置として実装することができる。
図12に示されるデータプロセッシングシステム1200は、1つ又はそれ以上のマイクロプロセッサとすることができ、又はチップ集積回路上のシステムとすることができるプロセッシングシステム1211を含み、このシステムはまた、プロセッシングシステムによって実行するためのデータ及びプログラムを格納するメモリ1201を含む。システム1200はまた、オーディオ入力/出力サブシステム1205を含み、これは、例えば、スピーカ及びマイクロフォンを介して音楽を再生し又は電話機能を提供するマイクロフォン及びスピーカを含むことができる。
【0067】
ディスプレイコントローラ及びディスプレイデバイス1209は、ユーザに視覚的ユーザインタフェースを提供し、このデジタルインタフェースは、OS Xオペレーティングシステムソフトウエアを実行した時にMacintoshコンピュータ上で、或いはiOSオペレーティングシステムを実行した時にAppleのiPhone上に表示されるものに類似したグラフィカルユーザインタフェースを含むことができる。システム1200はまた、
図12のシステム1200のような、別のデータプロセッシングシステムと通信するための1つ又はそれ以上の無線送受信機1203を含む。無線送受信機は、WLAN送受信機、赤外線送受信機、ブルートゥース送受信機、及び/又は無線セルラー電話送受信機とすることができる。図示されていない付加的な構成要素もまた、特定の実施形態におけるシステム1200の一部とすることができ、特定の実施形態では、
図12に示されたものよりも少ない構成要素をデータプロセッシングシステムにおいて使用できる点は理解されるであろう。システム1200は更に、
図15のシステム1500のような別のデータプロセッシングシステムと通信するための1つ又はそれ以上の通信ポート1217を含む。通信ポートは、USBポート、ファイアワイヤポート、ブルートゥースインタフェース、その他とすることができる。
【0068】
データプロセッシングシステム1200はまた、ユーザがシステムに入力を提供できるようにするために設けられる1つ又はそれ以上の入力デバイス1213を含む。これらの入力デバイスは、キーパッド又はキーボード、或いはタッチパネル又はマルチタッチパネルとすることができる。データプロセッシングシステム1200はまた、ドックのコネクタとすることができる任意選択的な入力/出力デバイス1215を含む。図示されていない1つ又はそれ以上のバスを用いて、当該技術分野で公知のような様々な構成要素を相互接続することができる点は理解されるであろう。
図12に示したデータプロセッシングシステムは、ハンドヘルドコンピュータ又は携帯情報端末(PDA)、又はPDAのような機能を備えた携帯電話、携帯電話を含むハンドヘルドコンピュータ、又はiPodのようなメディアプレーヤ、又は1つのデバイス又は組み込み型デバイス或いは他の消費者電子デバイスにPDA及び携帯電話を組み合わせたメディアプレーヤのような、これらのデバイスの態様又は機能を組み合わせたデバイスとすることができる。他の実施形態では、データプロセッシングシステム1200は、ネットワークコンピュータ又は別のデバイス内の組み込み式処理デバイス、又は
図12に示されたものよりも少ない構成要素又は場合によってはより多くの構成要素を有する他の種類のデータプロセッシングシステムとすることができる。
【0069】
本発明の少なくとも特定の実施形態は、媒体を提示するための媒体プロセッシングシステム、媒体を格納するための記憶装置を含むことができるポータブル音楽及び/又はビデオメディアプレーヤのようなデジタルメディアプレーヤの一部とすることができ、更に、アンテナシステム及び媒体プロセッシングシステムに結合された無線周波数(RF)送受信機(例えば、携帯電話のためのRF送受信機)を更に含むことができる。特定の実施形態では、遠隔記憶装置上に格納された媒体は、RF送受信機を介してメディアプレーヤに送信することができる。媒体は、例えば、音楽又は他のオーディオ、静止画、又は動画のうちの1つ又はそれ以上とすることができる。
【0070】
ポータブルメディアプレーヤは、カリフォルニア州クパチーノに所在のアップル社により提供されるiPod(登録商標)又はiPod Nano(登録商標)メディアプレーヤ上のクリックホイール入力デバイス、タッチスクリーン入力デバイス、プッシュボタンデバイス、可動式ポインティング入力デバイス又は他の入力デバイスのような媒体選択デバイスを含むことができる。媒体選択デバイスは、記憶装置及び/又は遠隔記憶装置に格納された媒体を選択するのに使用することができる。ポータブルメディアプレーヤは、少なくとも特定の実施形態において、入力デバイスを介して選択され、スピーカ又はイヤフォンの何れかを介して又はディスプレイデバイス上に、或いはディスプレイデバイス及びスピーカもしくはイヤフォンの両方に示される媒体のタイトル又は他のインジケータを示すよう媒体プロセッシングシステムに結合されるディスプレイデバイスを含むことができる。ポータブルメディアプレーヤの実施例は、本明細書に引用により両方が組み入れられる米国特許第7,345,671号及び米国特許公開第2004/0224638号において記載されている。
【0071】
上述の部分は、専用論理回路のような論理回路によって又はマイクロコントローラ又はプログラムコード命令を実行するプロセッシングコアの他の形式によって実施することができる。従って、上記の説明によって教示される処理は、これらの命令を実行する機械が特定の機能を実行するようになる機械実行可能命令のようなプログラムコードによって実行することができる。この文脈では、「機械」は、中間形式(又は「抽象」)命令をプロセッサ固有の命令(例えば、「仮想機械」(例えば、ジャバ仮想機械)、インタープリター、共通言語ランタイム、高級言語仮想機械、他のような抽象的実行環境)に変換する機械、及び/又は、汎用プロセッサ及び/又は専用プロセッサのような命令を実行するよう設計された半導体チップ上に配置される電子回路(例えば、トランジスタが実装された「論理回路」)とすることができる。上記の説明によって教示される処理は、プログラムコードの実行なしに処理(又はその一部)を実行するよう設計された電子回路によって(機械の代わりに又は機械と一緒に)実行することができる。
【0072】
本発明はまた、本明細書で説明された動作を実行するための装置に関する。この装置は、要求される目的のために特別に構成することができ、又はコンピュータに格納されたコンピュータプログラムによって選択的に起動又は再構成される汎用コンピュータを含むことができる。このようなコンピュータプログラムは、それに限定されるわけではないが、フロッピーディスク、光学ディスク、CD−ROM、及び磁気光学ディスク、読出し専用メモリ(ROM)、RAM、EPROM、EEPROM、磁気又は光学カード、又は電子命令を格納するのに適した何れかの種類の媒体のようなコンピュータ可読記憶媒体に格納することができ、各々は、コンピュータシステムバスに結合される。
【0073】
機械可読媒体は、機械(コンピュータなど)が読むことが可能な形式で情報を格納又は送信する何らかの機構を含む。例えば、機械可読媒体は、読出し専用メモリ(「ROM」);ランダムアクセスメモリ(「RAM」);磁気ディスク記憶媒体;光学記憶媒体;フラッシュメモリデバイス;その他を含む。
【0074】
製品を用いてプログラムコードを格納することができる。プログラムコードを格納する製品は、それに限定されるわけではないが、1つ又はそれ以上のメモリ(例えば、1つ又はそれ以上のフラッシュメモリ、ランダムアクセスメモリ(静的、動的又はその他))、光学ディスク、CD−ROM、DVD ROM、EPROM、EEPROM、磁気又は光学カード又は電子命令を格納するのに適した他の種類の機械可読媒体として実装することができる。プログラムコードは、伝播媒体に組み込まれたデータ信号によって(例えば、通信リンク(ネットワーク接続など)を介して)遠隔コンピュータ(サーバなど)から要求側コンピュータ(クライアントなど)にダウンロードすることができる。
【0075】
前述の詳細な説明は、コンピュータメモリ内のデータビットにおける動作のアルゴリズム及び記号表示の観点で提示されている。これらのアルゴリズムの説明及び表示は、これらの作業の内容を当業者に対して最も効率的に伝えるためにデータ処理技術に精通した者によって使用されるツールである。アルゴリズムは、本明細書では、及び一般的には、要求される結果に到達する動作の自己矛盾のないシーケンスであると考えられる。動作は、物理的量の物理的操作を必要とするものである。通常は、必須ではないが、これらの物理量は、格納、転送、結合、比較、及びそれ以外に操作することができる電気又は磁気信号の形式を取る。主に共通の使用の理由で、これらの信号を、ビット、値、要素、記号、文字、語、数字、又は同様のものとして示すことが好都合である場合があることが証明されている。
【0076】
しかしながら、これら及び同様の用語の全てが、適切な物理的量に関連付けられ、単にこれらの量に適用された好都合なラベルに過ぎない点に留意されたい。上記の説明から明らかなように他に具体的に明示されない限り、「コンピュータ計算」、「選択」、「提示」、「判定」、「関連付け」、「送信」、「格納」、「受信」、「確立」、「転送」、又は同様の用語を利用した説明は、コンピュータシステムメモリ又はレジスタ、或いは他のそのような情報の記憶装置、送信装置又は表示装置内で物理(電子)量として示されたデータを操作し且つ変換するコンピュータシステム、或いは同様の電子コンピューティングモジュール及び/又は電子コンピューティング装置の動作及び処理を示すことは理解される。
【0077】
本明細書に提示される処理及び表示は、何れかの特定のコンピュータ又は他の機器に固有に関係付けられるものではない。様々な汎用システムを、本明細書の教示に従うプログラムと共に使用することができ、又は説明された動作を実行するために専用の装置を構成することが好都合あることが分かっている。多種多様なこれらのシステムに要求される構造は、以下の説明から明白であろう。更に、本発明は、何れかの特定のプログラミング言語に関して説明してはいない。本明細書で説明される本発明の教示を実施するために多種多様なプログラミング言語を使用できることが理解されるであろう。
【0078】
前述の説明は、単に本発明の一部の例示的な実施形態を説明している。当業者であれば、このような説明、添付の図面及び請求項から、様々な変更を本発明の精神及び範囲から逸脱することなく行い得ることを容易に理解するであろう。