ネットワークストレージシステム、ネットワークストレージシステムにおけるデータ操作方法、記憶装置、クライアントデバイスを制御するためのコンピュータプログラム
【課題】ルータのUPnP機能や、データ転送を中継するリレーサーバを用いることなく、インターネットを経由して、LAN内の記憶装置にアクセスすることを可能とする技術を提供する。
【解決手段】ネットワーク接続可能な記憶装置と、案内サーバと、クライアントデバイスとがネットワークを介して接続されているネットワークストレージシステムにおいて、記憶装置は、案内サーバに対して、クライアントデバイスの宛先を問い合わせると共に当該宛先を取得する宛先取得部と、取得された宛先を有するクライアントデバイスに対して、自身に対する操作要求を問い合わせると共に当該操作要求を取得する操作要求取得部と、取得された操作要求に基づく要求、または、取得された操作要求に基づいて記憶装置内で処理されたデータを、クライアントデバイスに対して送信する要求送信部と、を備える。
【解決手段】ネットワーク接続可能な記憶装置と、案内サーバと、クライアントデバイスとがネットワークを介して接続されているネットワークストレージシステムにおいて、記憶装置は、案内サーバに対して、クライアントデバイスの宛先を問い合わせると共に当該宛先を取得する宛先取得部と、取得された宛先を有するクライアントデバイスに対して、自身に対する操作要求を問い合わせると共に当該操作要求を取得する操作要求取得部と、取得された操作要求に基づく要求、または、取得された操作要求に基づいて記憶装置内で処理されたデータを、クライアントデバイスに対して送信する要求送信部と、を備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、インターネット経由でLAN内の記憶装置にアクセスする技術に関する。
【背景技術】
【0002】
近年、スマートフォン等の携帯可能な機器において、パーソナルコンピュータと同様の多種多様な機能が提供され、利用されている。スマートフォンには、音声データ、画像データ、アプリケーションデータ等の様々なデータが格納される。このため、スマートフォンのメモリ容量は多ければ多いほど良い。しかし、スマートフォンは、その形態性を向上させるために、搭載されるメモリの容量に制限がある場合が多い。
【0003】
そこで、大容量の外部記憶装置を有するネットワーク接続ストレージ(NAS:Network Attached Storage)を家庭やオフィス内のLANに接続し、このネットワーク接続ストレージに対して、インターネット経由でアクセスする技術が提案されている。インターネット経由でLAN内のネットワーク接続ストレージへアクセスする技術としては、例えば、「Webアクセス」と呼ばれる機能(非特許文献1参照)や、「CloudStor」と呼ばれる機能(非特許文献2参照)が知られている。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】「INTERNET Watch、 清水理史のイニシャルB、 第409回:iPhone/iPad用アプリで外出先からNASを活用バッファロー「WebAccess i」」、http://internet.watch.impress.co.jp/docs/column/shimizu/20100928_396441.html
【非特許文献2】「PC Watch、 [CES 2011レポート]バッファロー編〜Pogoplug機能内蔵NASや、HDD8台搭載可能なTeraStation」、http://pc.watch.impress.co.jp/docs/news/20110111_419544.html
【発明の概要】
【発明が解決しようとする課題】
【0005】
「Webアクセス」は、ネットワーク接続ストレージが接続されているルータのUPnP機能を利用して、スマートフォンとネットワーク接続ストレージの直接アクセスを可能とする機能である。しかし、「Webアクセス」では、ルータにUPnP機能が未搭載である場合、利用者はルータのポートフォワーディングの設定を行わなければならず複雑な手順が必要とされるという問題があった。また、「Webアクセス」では、ルータにUPnP機能が搭載されておらず、かつ、ルータがポートフォワーディングの設定変更にも非対応の場合、スマートフォンとネットワーク接続ストレージが接続できないという問題があった。また、「CloudStor」は、インターネット上に、スマートフォンとネットワーク接続ストレージとの間のデータ転送を中継するリレーサーバを設けることで、両者のアクセスを可能とする機能である。しかし、「CloudStor」では、データ転送を中継するリレーサーバが、スマートフォンの台数の増加などに伴って高負荷状態となるため、データ転送の処理速度低下や、サーバダウンによるデータ転送サービス中止等の事態が生じるおそれがあるという問題があった。
【0006】
また、このような問題は、ネットワーク接続ストレージに限定されず、ネットワーク接続可能な記憶装置全般に共通する問題であった。
【0007】
本発明は、ルータのUPnP機能や、データ転送を中継するリレーサーバを用いることなく、インターネットを経由して、LAN内の記憶装置にアクセスすることを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態又は適用例として実現することが可能である。
【0009】
[適用例1]
ネットワーク接続可能な記憶装置と、案内サーバと、クライアントデバイスとがネットワークを介して接続されているネットワークストレージシステムであって、前記クライアントデバイスは、前記案内サーバに対して前記記憶装置への通信開始を要求する接続要求部と、前記記憶装置からの問い合わせを受信し、前記問い合わせに対する応答として、前記記憶装置に対するデータの操作要求を送信する操作要求部と、を備え、前記案内サーバは、前記記憶装置からの問い合わせを受信し、前記問い合わせに対する応答として、前記クライアントデバイスからの前記通信開始の要求の有無と、前記通信開始の要求が有る場合に、当該クライアントデバイスの宛先を送信する案内処理部を備え、前記記憶装置は、前記案内サーバに対して、前記クライアントデバイスの宛先を問い合わせ、前記宛先を取得する宛先取得部と、取得された前記宛先を有する前記クライアントデバイスに対して、自身に対する前記操作要求を問い合わせ、前記操作要求を取得する操作要求取得部と、取得された前記操作要求に基づく要求、または、取得された前記操作要求に基づいて前記記憶装置内で処理されたデータを、前記クライアントデバイスに対して送信する要求送信部と、を備える、ネットワークストレージシステム。
【0010】
このような構成とすれば、案内サーバの案内処理部は、クライアントデバイスからの通信開始の要求と、記憶装置からの問い合わせと、をそれぞれ受信し、記憶装置からの問い合わせに対する応答として、クライアントデバイスからの通信開始の要求の有無と、当該クライアントデバイスの宛先を送信する。すなわち、案内サーバは、クライアントデバイスの宛先等の情報を、記憶装置から発せられる問い合わせの応答として送信すればよいため、記憶装置の宛先を知らなくてもよく、また、記憶装置がLAN内に存在していても記憶装置との通信を行うことができる。また、記憶装置の宛先取得部は、案内サーバからクライアントデバイスの宛先を取得し、操作要求取得部は、取得された宛先を有するクライアントデバイスに対して、自身に対する操作要求を問い合わせる。すなわち、記憶装置は、自身に接続を要求しているクライアントデバイスの宛先を案内サーバから取得することができるため、初期状態においては、クライアントデバイスの宛先を知らなくてもよい。さらに、クライアントデバイスの操作要求部は、記憶装置からの問い合わせを受信し、問い合わせに対する応答として、記憶装置に対するデータの操作要求を送信する。すなわち、クライアントデバイスは、データの操作要求を記憶装置から発せられる問い合わせの応答として送信すればよいため、記憶装置の宛先を知らなくてもよく、また、記憶装置がLAN内に存在していても記憶装置との通信を行うことができる。そして、記憶装置の要求送信部は、クライアントデバイスから取得された操作要求に基づいて処理を継続するための更なる要求や、クライアントデバイスから取得された操作要求に基づいて記憶装置内で処理されたデータそのものを、クライアントデバイスに対して送信する。これらの結果、ルータのUPnP機能や、データ転送を中継するリレーサーバを用いることなく、インターネットを経由して、LAN内の記憶装置にアクセスすることが可能なネットワークストレージシステムを提供することが可能となる。
【0011】
[適用例2]
適用例1記載のネットワークストレージシステムであって、前記記憶装置の前記操作要求取得部は、取得された前記宛先に対する前記操作要求の問い合わせに対する応答が所定の時間得られなかった場合は、同一の宛先に対して前記操作要求の再問い合わせを行う、ネットワークストレージシステム。
【0012】
このような構成とすれば、記憶装置の操作要求取得部は、操作要求の問い合わせに対する応答が所定の時間得られなかった場合は、同一の宛先に対して操作要求の再問い合わせを行うため、例えば、通信不良等に起因してパケットの損失が生じた場合でも、処理を継続することができる。
【0013】
[適用例3]
適用例2記載のネットワークストレージシステムであって、さらに、前記記憶装置と、前記クライアントデバイスとの間のデータ転送を中継するためのリレーサーバを備え、前記記憶装置の前記操作要求取得部は、前記再問い合わせに対する応答が所定の時間得られなかった場合は、前記リレーサーバに対して、取得された前記宛先とのデータ転送の中継を要求する、ネットワークストレージシステム。
【0014】
このような構成とすれば、記憶装置の操作要求取得部は、再問い合わせに対する応答が所定の時間得られなかった場合は、記憶装置と、クライアントデバイスとの間のデータ転送を中継するためのリレーサーバに対して、データ転送の中継を要求する。この結果、記憶装置が応答の取得に失敗した場合であっても、記憶装置とクライアントデバイスとの間のデータ転送を行うことができ、システムの可用性が向上する。
【0015】
[適用例4]
適用例1ないし3のいずれか一項記載のネットワークストレージシステムであって、前記記憶装置の前記操作要求取得部は、取得された前記宛先に対して、定期的に前記操作要求を問い合わせる、ネットワークストレージシステム。
【0016】
このような構成とすれば、記憶装置の操作要求取得部は、取得された宛先に対して、定期的に操作要求を問い合わせるため、記憶装置は、クライアントデバイスからの操作要求を連続して受信、処理することが可能となる。
【0017】
[適用例5]
適用例1ないし4のいずれか一項記載のネットワークストレージシステムであって、前記記憶装置は、さらに、前記宛先取得部が取得した宛先を記憶する宛先記憶部を備え、前記操作要求取得部は、前記宛先記憶部に記憶された宛先を用いて、前記クライアントデバイスに対して前記操作要求を問い合わせる、ネットワークストレージシステム。
【0018】
このような構成とすれば、記憶装置は、宛先取得部が取得した宛先を記憶することができる。
【0019】
[適用例6]
適用例1ないし5のいずれか一項記載のネットワークストレージシステムであって、前記操作要求は、リストの取得の要求と、アップロードの要求と、ダウンロードの要求と、ファイルまたはフォルダの新規作成の要求と、ファイルまたはフォルダの削除の要求と、のうちのいずれかである、ネットワークストレージシステム。
【0020】
このような構成とすれば、記憶装置に対する操作要求を明確に定義することができる。
【0021】
[適用例7]
ネットワーク接続可能な記憶装置と、案内サーバと、クライアントデバイスとがネットワークを介して接続されているネットワークストレージシステムにおけるデータ操作方法であって、(a)前記クライアントデバイスが、前記案内サーバに対して前記記憶装置への通信開始を要求する工程と、(b)前記記憶装置が、前記案内サーバに対して、前記クライアントデバイスの宛先を問い合わせる工程と、(c)前記案内サーバが、前記問い合わせに対する応答として、前記クライアントデバイスからの前記通信開始の要求の有無と、前記通信開始の要求が有る場合に、当該クライアントデバイスの宛先を送信する工程と、(d)前記記憶装置が、前記送信された前記クライアントデバイスの宛先を取得する工程と、(e)前記記憶装置が、前記取得された前記宛先を有する前記クライアントデバイスに対して、自身に対するデータの操作要求を問い合わせる工程と、(f)前記クライアントデバイスが、前記問い合わせに対する応答として、前記記憶装置に対する前記操作要求を送信する工程と、(g)前記記憶装置が、前記送信された前記操作要求を取得する工程と、(h)前記記憶装置が、前記工程(g)により取得された前記操作要求に基づく要求、または、前記工程(g)により取得された前記操作要求に基づいて前記記憶装置内で処理されたデータを、前記クライアントデバイスに対して送信する工程と、を備える、データ操作方法。
【0022】
このような構成とすれば、適用例1と同様の効果を得ることができる。
【0023】
[適用例8]
記憶装置であって、ネットワークを介して接続されている案内サーバに対して、ネットワークを介して接続されているクライアントデバイスの宛先を問い合わせ、前記宛先を取得する宛先取得部と、取得された前記宛先を有する前記クライアントデバイスに対して、自身に対するデータの操作要求を問い合わせ、前記操作要求を取得する操作要求取得部と、取得された前記操作要求に基づく要求、または、取得された前記操作要求に基づいて前記記憶装置内で処理されたデータを、前記クライアントデバイスに対して送信する要求送信部と、を備える、記憶装置。
【0024】
このような構成とすれば、ルータのUPnP機能や、データ転送を中継するリレーサーバを用いることなく、インターネットを経由したクライアントデバイスからのアクセスを受け付けることが可能な記憶装置を実現することができる。
【0025】
[適用例9]
クライアントデバイスを制御するためのコンピュータプログラムであって、ネットワークを介して接続されている案内サーバに対して前記記憶装置への通信開始を要求する接続要求機能と、ネットワークを介して接続されている記憶装置に対するデータの操作要求を取得する取得機能と、前記記憶装置からの問い合わせを受信し、前記問い合わせに対する応答として、前記取得機能により取得された前記操作要求を送信する操作要求機能と、を備える、コンピュータプログラム。
【0026】
このような構成とすれば、クライアントデバイスに搭載されるコンピュータプログラムであって、適用例9記載の記憶装置と協働することで、ルータのUPnP機能や、データ転送を中継するリレーサーバを用いることなく、LAN内の記憶装置にアクセス可能なコンピュータプログラムを実現することができる。
【0027】
なお、本発明は、種々の態様で実現することが可能である。例えば、ネットワークストレージシステム、ネットワークストレージシステムにおけるデータ操作方法、記憶装置、記憶装置に接続されるクライアントデバイス、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記憶媒体等の形態で実現することができる。
【図面の簡単な説明】
【0028】
【図1】本発明の一実施例としてのネットワークストレージシステムの概略構成を示す説明図である。
【図2】図1に示すNASの構成を示すブロック図である。
【図3】図1に示す案内サーバの構成を示すブロック図である。
【図4】図1に示すクライアントの構成を示すブロック図である。
【図5】NASのサーバ通信処理の手順を示すフローチャートである。
【図6】NASのクライアント通信処理の手順を示すフローチャートである。
【図7】案内処理の手順を示すフローチャートである。
【図8】クライアントのサーバ通信処理の手順を示すフローチャートである。
【図9】クライアントのNAS通信処理の手順を示すフローチャートである。
【図10】クライアント待機シーケンスを示す説明図である。
【図11】通信開始/通信中シーケンスを示す説明図である。
【図12】通信終了シーケンスを示す説明図である。
【図13】第2実施例における通信開始/通信中シーケンスを示す説明図である。
【発明を実施するための形態】
【0029】
次に、本発明の実施の形態を実施例に基づいて以下の順序で説明する。
【0030】
A.第1実施例:
A−1.システム構成と概要説明:
図1は、本発明の一実施例としてのネットワークストレージシステム1000の概略構成を示す説明図である。ネットワークストレージシステム1000は、ネットワーク接続ストレージ(Network Attached Storage:以降、「NAS」とも呼ぶ。)10と、案内サーバ20と、クライアント30と、ルータ40とを含んでいる。NAS10は、ルータ40を介して、インターネットINET上の案内サーバ20と接続されている。また、クライアント30は、基地局(図示省略)を介してインターネットINETに接続される。なお、ネットワークストレージシステム1000は、さらに、パーソナルコンピュータ(PC)50を備えていてもよい。なお、ネットワーク接続ストレージ(NAS)は、特許請求の範囲における「記憶装置」に相当する。
【0031】
NAS10は、ネットワーク接続可能なストレージデバイスである。NAS10には、音声データ、画像データ、アプリケーションデータ等の様々なユーザデータを格納することができる。NAS10は、LAN内に位置するルータ40の内部ノードであり、ローカルIPアドレス「LIP10」が付与されている。案内サーバ20は、クライアント30の宛先を、NAS10に対して通知する機能を有するサーバである。案内サーバ20は、インターネットINET上に位置するルータ40の外部ノードであり、グローバルIPアドレス「GIP20」が付与されている。クライアント30は、インターネットINETへの接続機能を有するデバイスであり、本実施例ではスマートフォンである。クライアント30は、インターネットINET接続時には、インターネットINET上に位置するルータ40の外部ノードとなり、グローバルIPアドレス「GIP30」が付与される。
【0032】
本実施例では、ルータ40のUPnP機能や、データ転送を中継するリレーサーバを用いることなく、ルータ40の外部ノードであるクライアント30から、ルータ40の内部ノードであるNAS10へのアクセスを可能とするために、少なくとも次の2点の制御を行う。以降、詳細に説明する。
(a)案内サーバ20による通信開始時の宛先案内
(b)NAS10から、ルータ40の外部に位置する他のデバイス(案内サーバ20、クライアント30)に対するポーリングによる情報取得
なお、ポーリングは、特許請求の範囲における「問い合わせ」に相当する。
【0033】
A−2.NASの構成:
図2は、図1に示すNAS10の構成を示すブロック図である。NAS10は、CPU110と、ハードディスクドライブ(以降、「HDD」とも呼ぶ。)120と、有線LAN制御回路130と、ROM140と、RAM150とを備え、それぞれがバスにより相互に接続されている。
【0034】
CPU110は、HDD120に格納されているコンピュータプログラム(図示省略)をRAM150に展開して実行することにより、NAS10の各部を制御すると共に、宛先取得部112、操作要求取得部114、要求送信部116としても機能する。各機能部の詳細は後述する。HDD120は、大容量の外部記憶装置であり、データ記憶部122と、宛先記憶部124とを含んでいる。データ記憶部122は、ユーザデータを格納するための領域である。宛先記憶部124は、宛先としてのクライアント30のIPアドレスを格納するための領域である。なお、クライアント30のIPアドレスは、後述のNAS上のクライアント通信処理において用いられる。有線LAN制御回路130は、LANケーブルの接続インタフェースを含み、有線LANによるネットワーク接続を可能とするための回路である。
【0035】
A−3.案内サーバの構成:
図3は、図1に示す案内サーバ20の構成を示すブロック図である。案内サーバ20は、CPU210と、HDD220と、有線LAN制御回路230と、ROM240と、RAM250とを備え、それぞれがバスにより相互に接続されている。
【0036】
CPU210は、HDD220に格納されているコンピュータプログラム(図示省略)をRAM250に展開して実行することにより、案内サーバ20の各部を制御すると共に、案内処理部212としても機能する。案内処理部212の詳細は後述する。HDD220は、外部記憶装置である。有線LAN制御回路230は、LANケーブルの接続インタフェースを含み、有線LANによるネットワーク接続を可能とするための回路である。
【0037】
A−4.クライアントの構成:
図4は、図1に示すクライアント30の構成を示すブロック図である。クライアント30は、CPU310と、HDD320と、移動体通信網制御回路330と、ROM340と、RAM350と、表示部360と、操作部370と、音声入出力部380とを備えている。
【0038】
CPU310は、HDD320に格納されているコンピュータプログラム(図示省略)をRAM350に展開して実行することにより、クライアント30の各部を制御すると共に、GUI要求取得部312、接続要求部314、操作要求部316、ファイルサーバモジュール318としても機能する。各機能部の詳細は後述する。HDD320は、外部記憶装置であり、データ記憶部322を含んでいる。データ記憶部322は、ユーザデータを格納するための領域である。移動体通信網制御回路330は、変調器やアンプ、アンテナを含み、例えば3G/HSPAに準拠した移動体通信の端末として、移動体通信網の基地局と無線通信を行う。表示部360は、ディスプレイと、ディスプレイドライバを含み、利用者に対して視覚的な画面表示を行う。操作部370は、入力キーと、入力キーのドライバとを含み、利用者からの入力を受け付ける。なお、表示部360と操作部370の両方の機能を実現するデバイスとしてタッチパネルを用いてもよい。音声入出力部380は、マイクと、スピーカとを含み、利用者に対しての音声の入出力を行う。
【0039】
A−5.NASにおける処理:
NAS10において実行される処理について説明する。
A−5−1.NASのサーバ通信処理:
図5は、NASのサーバ通信処理の手順を示すフローチャートである。NASのサーバ通信処理は、NAS10が、案内サーバ20から「クライアント30との通信の開始/終了の指示」を取得するための処理であり、宛先取得部112により実行される。
【0040】
NAS10の宛先取得部112は、一定時間経過したかを判定する(ステップS100)。なお、ステップS100の「一定時間」とは、NAS10が案内サーバ20にポーリングする間隔を示し、任意に定めることができる。一定時間経過していないと判定された場合(ステップS100:NO)、宛先取得部112は処理をステップS100へ遷移させ、一定時間経過を待つ。一方、一定時間が経過したと判定された場合(ステップS100:YES)、宛先取得部112は案内サーバ20に対してポーリングする(ステップS102)。具体的には、宛先取得部112は、案内サーバ20のグローバルIPアドレスを宛先アドレスとしたポーリング用パケットを生成する。案内サーバ20のグローバルIPアドレスは、NAS10のHDD120に予め格納されている。ポーリング用パケットの様式は、任意に定めることができる。宛先取得部112は、生成したポーリング用パケットを、ルータ40を介して、案内サーバ20へ送信する。
【0041】
宛先取得部112は、ステップS102のポーリングに対する案内サーバ20からの応答を受信したか否かを判定する(ステップS104)。案内サーバ20からの応答を受信していないと判定された場合(ステップS104:NO)、宛先取得部112は処理をステップS104へ遷移させ、案内サーバ20からの応答を待つ。案内サーバ20からの応答を受信したと判定された場合(ステップS104:YES)、宛先取得部112は、受信した応答が通信開始要求であるか否かを判定する(ステップS106)。具体的には、宛先取得部112は、案内サーバ20から受信した応答パケットに、「通信開始を要求する旨」と、「クライアント30のIPアドレス」と、が含まれる場合に、通信開始要求を受信したと判定する。ステップS106において、通信開始要求を受信したと判定された場合(ステップS106:YES)、宛先取得部112は、応答パケットに含まれる「クライアント30のIPアドレス」を、HDD120内の宛先記憶部124に記憶させる(ステップS108)。その後、宛先取得部112は、操作要求取得部114に対して通信開始命令を送信することによってクライアント通信処理(図6)を開始させた後(ステップS110)、処理をステップS100へ遷移させる。
【0042】
一方、ステップS106において、通信開始要求を受信していないと判定された場合(ステップS106:NO)、宛先取得部112は、通信終了要求を受信したか否かを判定する(ステップS112)。具体的には、宛先取得部112は、案内サーバ20から受信した応答パケットに、「通信終了を要求する旨」が含まれる場合に、通信終了要求を受信したと判定する。ステップS112において、通信終了要求を受信したと判定された場合(ステップS112:YES)、宛先取得部112は、操作要求取得部114に対して通信終了命令を送信することによって実行中のクライアント通信処理(図6)を終了させた後(ステップS114)、処理をステップS100へ遷移させる。ステップS112において、通信終了要求を受信していないと判定された場合(ステップS112:NO)、宛先取得部112は処理をステップS100へ遷移させる。
【0043】
A−5−2.NASのクライアント通信処理:
図6は、NASのクライアント通信処理の手順を示すフローチャートである。NASのクライアント通信処理は、NAS10が、クライアント30との間でデータ転送を行うための処理であり、操作要求取得部114と、要求送信部116とにより実行される。
【0044】
NAS10の操作要求取得部114は、NASのサーバ通信処理(図5)から通信開始命令を受け取ったか否かを判定する(ステップS200)。通信開始命令を受け取っていないと判定された場合(ステップS200:NO)、操作要求取得部114は処理をステップS200へ遷移させる。通信開始命令を受け取ったと判定された場合(ステップS200:YES)、操作要求取得部114は、NASのサーバ通信処理(図5)から通信終了命令を受け取ったか否かを判定する(ステップS202)。通信終了命令を受け取ったと判定された場合(ステップS202:YES)、操作要求取得部114は処理をステップS200へ遷移させる。この場合、クライアント通信処理の本ルーチン(ステップS204以降)は実行されない。
【0045】
ステップS202において通信終了命令を受け取っていないと判定された場合(ステップS202:NO)、操作要求取得部114は、一定時間経過したかを判定する(ステップS204)。なお、ステップS204の「一定時間」とは、NAS10がクライアント30にポーリングする間隔を示し、任意に定めることができる。一定時間経過していないと判定された場合(ステップS204:NO)、操作要求取得部114は処理をステップS204へ遷移させ、一定時間の経過を待機する。一方、一定時間が経過したと判定された場合(ステップS204:YES)、操作要求取得部114はクライアント30に対してポーリングする(ステップS206)。具体的には、操作要求取得部114は、クライアント30のグローバルIPアドレスを宛先アドレスとしたポーリング用パケットを生成する。クライアント30のグローバルIPアドレスは、NASのサーバ通信処理(図5:ステップS108)において、案内サーバ20から案内されたアドレスであり、HDD120のデータ記憶部122に格納されている。ポーリング用パケットの様式は、任意に定めることができる。操作要求取得部114は、生成したポーリング用パケットを、ルータ40を介して、クライアント30へ送信する。
【0046】
操作要求取得部114は、ステップS206のポーリングに対するクライアント30からの応答を受信したか否かを判定する(ステップS208)。クライアント30からの応答を受信していないと判定された場合(ステップS208:NO)、操作要求取得部114は処理をステップS208へ遷移させ、応答の受信を待機する。
【0047】
ステップS208において、クライアント30からの応答を受信したと判定された場合(ステップS208:YES)、操作要求取得部114は、受信した応答がファイルリスト要求であるか否かを判定する(ステップS210)。具体的には、操作要求取得部114は、クライアント30から受信した応答パケットに、「ファイルリストの取得を要求する旨」と、ファイルリストの取得を要求する「NAS10上の場所」と、が含まれている場合に、ファイルリスト要求を受信したと判定する。なお、「NAS10上の場所」は、デフォルト値を設定することにより省略可能である。クライアント30から受信した応答がファイルリスト要求であると判定された場合(ステップS210:YES)、要求送信部116は、データ記憶部122にアクセスし、クライアント30からの応答パケットに含まれた「NAS10上の場所」により特定される場所のファイルおよびフォルダの一覧の取得処理を実行する(ステップS212)。その後、要求送信部116は、NAS10内で処理されたデータ、すなわち、ステップS212で取得したファイルおよびフォルダの一覧をクライアント30に対して送信する(ステップS214)。
【0048】
ステップS210において、クライアント30から受信した応答がファイルリスト要求でないと判定された場合(ステップS210:NO)、操作要求取得部114は、受信した応答がアップロード要求であるか否かを判定する(ステップS216)。具体的には、操作要求取得部114は、クライアント30から受信した応答パケットに、「アップロードを要求する旨」と、アップロードを要求する「NAS10上の場所」と、が含まれている場合に、アップロード要求を受信したと判定する。なお、「NAS10上の場所」は、デフォルト値を設定することにより省略可能である。クライアント30から受信した応答がアップロード要求であると判定された場合(ステップS216:YES)、要求送信部116は、当該アップロード要求に基づいて、クライアント30に対してアップロードすべきファイルの送信要求を送信する(ステップS218)。その後、要求送信部116は、データ記憶部122にアクセスし、ステップS218の応答として受信したファイルを、クライアント30からの応答パケットに含まれた「NAS10上の場所」により特定される場所に保存する(ステップS220)。
【0049】
ステップS216において、クライアント30から受信した応答がアップロード要求でないと判定された場合(ステップS26:NO)、操作要求取得部114は、受信した応答がダウンロード要求であるか否かを判定する(ステップS222)。具体的には、操作要求取得部114は、クライアント30から受信した応答パケットに、「ダウンロードを要求する旨」と、ダウンロードを要求する「NAS10上の場所」と、「ファイル(フォルダ)識別子」と、が含まれている場合に、ダウンロード要求を受信したと判定する。なお、「NAS10上の場所」は、デフォルト値を設定することにより省略可能である。クライアント30から受信した応答がダウンロード要求であると判定された場合(ステップS222:YES)、要求送信部116は、データ記憶部122にアクセスし、クライアント30からの応答パケットに含まれた「NAS10上の場所」により特定される場所から、「ファイル(フォルダ)識別子」により特定されるファイルまたはフォルダの取得処理を実行する(ステップS224)。その後、要求送信部116は、NAS10内で処理されたデータ、すなわち、ステップS224で取得したファイルまたはフォルダをクライアント30に対して送信する(ステップS226)。
【0050】
ステップS222において、クライアント30から受信した応答がダウンロード要求でないと判定された場合(ステップS222:NO)、要求送信部116は、処理をステップS202へ遷移させ、再び通信終了命令の有無を判定する。また、ステップS214、S220、S226の処理が終了した場合も同様である。
【0051】
A−6.案内サーバにおける処理:
案内サーバ20において実行される処理について説明する。
A−6−1.案内処理:
図7は、案内処理の手順を示すフローチャートである。案内処理は、案内サーバ20が、NAS10に対して「クライアント30との通信の開始/終了の指示」を送信するための処理であり、案内処理部212により実行される。
【0052】
案内サーバ20の案内処理部212は、NAS10からポーリングを受信したか否かを判定する(ステップS300)。NAS10からポーリングを受信していないと判定された場合(ステップS300:NO)、案内処理部212は、処理をステップS300へ遷移させ、ポーリングの受信を待機する。一方、NAS10からポーリングを受信したと判定された場合(ステップS300:YES)、案内処理部212は、クライアント30からの要求パケットを受信したか否かを判定する(ステップS302)。
【0053】
クライアント30からの要求パケットを受信したと判定された場合(ステップS302:YES)、案内処理部212は、NAS10からのポーリングの応答として、当該受信した要求パケットを送信する(ステップS304)。なお、ステップS304において、クライアント30から受信した要求パケットのデータ部分にクライアント30のIPアドレスが含まれていない場合、案内処理部212は、受信した要求パケットに、当該要求パケットのヘッダ内の送信元IPアドレス(すなわち、クライアント30のIPアドレス)を付加した新たなパケットを生成し、当該新たなパケットを送信してもよい。一方、クライアント30からの要求パケットを受信していないと判定された場合(ステップS302:NO)、案内処理部212は、NAS10からのポーリングの応答として、「要求なしである旨」を送信する(ステップS306)。ステップS304、S306の後、案内処理部212は、処理をステップS300へ遷移させ、再びポーリングの受信を待機する。
【0054】
A−7.クライアントにおける処理:
クライアント30において実行される処理について説明する。
A−7−1.クライアントのサーバ通信処理:
図8は、クライアントのサーバ通信処理の手順を示すフローチャートである。クライアントのサーバ通信処理は、クライアント30が、案内サーバ20に対して「通信開始/終了の要求」を送信するための処理であり、GUI要求取得部312と、接続要求部314とにより実行される。なお、クライアントのサーバ通信処理には、特許請求の範囲における「接続要求機能」が含まれる。また、GUI要求取得部312は、特許請求の範囲における「取得機能」を果たす。
【0055】
クライアント30の接続要求部314は、GUI要求取得部312がグラフィカルユーザインタフェース(以降、「GUI」とも呼ぶ。)から通信開始または通信終了を受け付けたか否かを判定する(ステップS400)。具体的には、接続要求部314は、GUI要求取得部312が、GUIを介して通信を開始する旨の入力を受け付けた場合に、通信開始を受け付けたと判定する。同様に、接続要求部314は、GUI要求取得部312が、GUIを介して通信を終了する旨の入力を受け付けた場合に、通信終了を受け付けたと判定する。なお、GUIの機能は表示部360と操作部370とが協働することにより実現される。通信開始または通信終了を受け付けたと判定された場合(ステップS400:YES)、接続要求部314は、案内サーバ20に対して、受け付けた内容に応じた要求パケットを送信し(ステップS402)、処理をステップS400へ遷移させる。一方、通信開始および通信終了を受け付けていないと判定された場合(ステップS400:NO)、接続要求部314は、処理をステップS400へ遷移させる。
【0056】
A−7−2.クライアントのNAS通信処理:
図9は、クライアントのNAS通信処理の手順を示すフローチャートである。クライアントのNAS通信処理は、クライアント30が、NAS10との間でデータ転送を行うための処理であり、GUI要求取得部312と、操作要求部316とによって実行される。なお、クライアントのNAS通信処理には、特許請求の範囲における「操作要求機能」が含まれる。
【0057】
クライアント30の操作要求部316は、NAS10からポーリングを受信したか否かを判定する(ステップS500)。NAS10からポーリングを受信していないと判定された場合(ステップS500:NO)、操作要求部316は、処理をステップS500へ遷移させ、ポーリングの受信を待機する。一方、NAS10からポーリングを受信したと判定された場合(ステップS500:YES)、操作要求部316は、GUI要求取得部312がGUIから操作要求を受け付けたか否かを判定する(ステップS502)。本実施例において「操作要求」とは、NAS10に対するファイル操作/フォルダ操作の要求を意味する。GUIから操作要求を受け付けていないと判定された場合(ステップS502:NO)、操作要求部316は、NAS10からのポーリングの応答として「要求無し」である旨を示すパケットを送信する(ステップS506)。
【0058】
ステップS502において、GUIから操作要求を受け付けたと判定された場合(ステップS502:YES)、操作要求部316は、NAS10からのポーリングの応答として、操作要求を送信する(ステップS504)。具体的には、操作要求部316は、GUI入力により指定される操作要求(例えば、「ファイルリストの取得を要求する旨」、「アップロードを要求する旨」、「ダウンロードを要求する旨」など)と、同じくGUI入力により指定される操作要求の対象を特定するための情報(例えば、「NAS10上の場所」、「ファイル(フォルダ)識別子」など)と、を含む応答パケットを生成する。そして、操作要求部316は、生成した応答パケットを送信する。
【0059】
操作要求部316は、ステップS504の操作要求はファイルリスト要求、すなわち、「ファイルリストの取得を要求する旨」の要求であるか否かを判定する(ステップS508)。ステップS504の操作要求がファイルリスト要求であると判定された場合(ステップS508:YES)、操作要求部316は、NAS10から送信されるファイルおよびフォルダの一覧を受信する(ステップS510)。そして、操作要求部316は、表示部360に対して、受信したファイルおよびフォルダの一覧を表示させる(ステップS512)。
【0060】
ステップS508において、ステップS504の操作要求がファイルリスト要求でないと判定された場合(ステップS508:NO)、操作要求部316は、ステップS504の操作要求がアップロード要求、すなわち、「アップロードを要求する旨」の要求であるか否かを判定する(ステップS514)。ステップS504の操作要求がアップロード要求であると判定された場合(ステップS514:YES)、操作要求部316は、ファイルサーバモジュール318に対して、HDD320のデータ記憶部322にアクセスしてGUIにより指定されたファイルもしくはフォルダを取得することを指示する(ステップS516)。そして、操作要求部316は、取得されたファイルもしくはフォルダを、NAS10に対して送信する(ステップS518)。
【0061】
ステップS514において、ステップS504の操作要求がアップロード要求でないと判定された場合(ステップS514:NO)、操作要求部316は、ステップS504の操作要求がダウンロード要求、すなわち、「ダウンロードを要求する旨」の要求であるか否かを判定する(ステップS520)。ステップS504の操作要求がダウンロード要求であると判定された場合(ステップS520:YES)、操作要求部316は、NAS10から送信されるファイルもしくはフォルダを受信する(ステップS522)。そして、操作要求部316は、ファイルサーバモジュール318に対して、受信したファイルもしくはフォルダを、HDD320のデータ記憶部322に保存させる。
【0062】
ステップS520において、ステップS504の操作要求がダウンロード要求でないと判定された場合(ステップS520:NO)、操作要求部316は、処理をステップS500へ遷移させ、再びNAS10からのポーリングを待つ。また、ステップS512、S518、S524の処理が終了した場合も同様である。
【0063】
ネットワークストレージシステム1000を構成する各装置、NAS10と、案内サーバ20と、クライアント30と、のそれぞれにおいて実行される処理の手順は上記の通りである。上記の各処理が実行されることによる、ネットワークストレージシステム1000全体の処理の流れを時間軸に沿って説明する。
【0064】
A−8.クライアント待機シーケンス:
図10は、クライアント待機シーケンスを示す説明図である。クライアント待機シーケンスは、NAS10が、クライアント30からのアクセスを待機する処理である。クライアント待機シーケンスは、NAS10のサーバ通信処理(図5)と、案内サーバ20の案内処理(図7)とにより実現される。なお、図中のステップ番号は、図5〜図9で示した処理フローチャートのステップ番号と対応している。このことは、以降のシーケンス図でも同じである。また、各装置間で送受信されるパケットについては、図示の便宜上、初回に限って送信元と宛先を明示し、2回目以降の通信時は記載を省略した。
【0065】
図10に示すように、NAS10は、案内サーバ20に対して、一定時間経過(ステップS100)ごとにポーリング用パケットPT1を送信しながら待機する(ステップS102)。パケットPT1は、ルータ40によって、送信元にルータ40のグローバルIPアドレスが、宛先に案内サーバ20のグローバルIPアドレスが付与される。パケットPT1を受信した案内サーバ20は、クライアント30からの要求を受け付けていない間は、パケットPT1に対する応答パケットPT2によって「要求無し」である旨を応答する(ステップS306)。パケットPT2は、送信元に案内サーバ20のグローバルIPアドレスが、宛先にルータ40のグローバルIPアドレスが、データ部分に「応答無し」である旨が、それぞれ格納されている。パケットPT2は、パケットPT1のリプライ(応答)パケットであるため、ルータ40によって、NAS10へと転送される。
【0066】
A−9.通信開始/通信中シーケンス:
図11は、通信開始/通信中シーケンスを示す説明図である。通信開始/通信中シーケンスは、クライアント30からのアクセス開始の要求を受けて、NAS10とクライアント30とが直接アクセスする処理である。通信開始/通信中シーケンスは、図5〜図9で説明した全ての処理により実現される。
【0067】
図11に示すように、GUIから通信を開始する旨の入力を受け付けた場合(ステップS400)に、クライアント30は、案内サーバ20に対して通信開始を要求するパケットPT3を送信する(ステップS402)。パケットPT3は、送信元にクライアント30のグローバルIPアドレスが、宛先に案内サーバ20のグローバルIPアドレスが、データ部分にクライアント30のIPアドレス「GIP30」と、クライアント30が接続を要求するNAS10の識別子(例えば、NAS10の名称など)とが、それぞれ格納されている。パケットPT3送信後、クライアント30は、自身のファイルサーバモジュール318を起動させる(ステップS600)。
【0068】
クライアント30から通信開始を要求するパケットPT3を受信した案内サーバ20は、NAS10から定期的に行われているポーリングの応答として、クライアント30から受信した要求パケットPT3を、応答パケットとして送信する(ステップS304)。応答パケットを受信したNAS10は、応答パケットに含まれる「クライアント30のIPアドレスを記憶後(ステップS108)、クライアント通信処理(図6)を開始させる(ステップS110)。
【0069】
NAS10は、クライアント30に対して、一定時間経過(ステップS204)ごとにポーリング用パケットPT4を送信して、待機する(ステップS206)。パケットPT4は、ルータ40によって、送信元にルータ40のグローバルIPアドレスが、宛先にクライアント30のグローバルIPアドレスが付与される。パケットPT4を受信したクライアント30は、GUIから受け付けた操作要求と、操作要求の対象を特定するための情報と、を含む応答パケットPT5を生成し、送信する(ステップS504)。パケットPT5は、送信元にクライアント30のグローバルIPアドレスが、宛先にルータ40のグローバルIPアドレスが、データ部分に操作要求の内容と、操作要求の対象を特定するための情報とが、それぞれ格納されている。パケットPT5は、パケットPT4のリプライ(応答)パケットであるため、ルータ40によって、NAS10へと転送される。
【0070】
クライアント30から応答パケットPT5を受信したNAS10は、パケットPT5に含まれる操作要求に応じてHDD120のデータ記憶部122にアクセスし、さらに、パケットPT5に含まれる操作要求に応じた要求をNAS10へ送信する(ステップS212〜S226)。例えば、応答パケットPT5に含まれる操作要求が「ファイルリスト要求」であった場合について説明する。NAS10は、まず、データ記憶部122にアクセスしてファイルおよびフォルダの一覧を取得する(ステップS212)。そして、NAS10は、取得したファイルおよびフォルダの一覧をクライアント30へ送信する(ステップS214)。
【0071】
ネットワークストレージシステム1000は、後述の通信終了シーケンスによってクライアント通信処理(図6)が終了されるまでの間、NAS10の操作要求取得部114からの定期的なポーリング(ステップS204、S206)をトリガとして、ステップS204以降の処理を繰り返してもよい。なお、この定期的なポーリングにおけるポーリング用パケットの宛先アドレスは、HDD120のデータ記憶部122に格納されているクライアント30のグローバルIPアドレスである。このようにすれば、NAS10はクライアント30からの操作要求を連続して受信、処理することが可能となる。
【0072】
なお、NAS10の操作要求取得部114は、クライアント30に対するポーリング(ステップS204、S206)の応答、すなわち、ステップS504の応答パケットが所定の時間得られなかった場合には、同一の宛先IPアドレスに対して、再びポーリング用パケットの送信を行ってもよい。「所定の時間」とは、任意に設定することができる。このようにすれば、NAS10の操作要求取得部114は、宛先記憶部124に記憶された宛先へのポーリングの応答が所定の時間得られなかった場合は、同一の宛先に対して再ポーリングを行うため、例えば、通信不良等に起因してポーリング用パケットや応答パケットの損失が生じた場合でも、再送されるポーリング用パケットにより、処理を継続することができる。
【0073】
A−10.通信終了シーケンス:
図12は、通信終了シーケンスを示す説明図である。
通信終了シーケンスは、クライアント30からのアクセス終了の要求を受けて、NAS10とクライアント30とのアクセスを終了する処理である。通信終了シーケンスは、クライアント30のサーバ通信処理(図8)と、案内サーバ20の案内処理(図7)と、NASのサーバ通信処理(図5)とにより実現される。
【0074】
図12に示すように、GUIから通信を終了する旨の入力を受け付けた場合(ステップS400)に、クライアント30は、案内サーバ20に対して通信終了を要求するパケットを送信する(ステップS402)。クライアント30から通信終了を要求するパケットを受信した案内サーバ20は、NAS10から定期的に行われているポーリングの応答として、クライアント30から受信した要求パケットを、応答パケットとして送信する(ステップS304)。応答パケットを受信したNAS10は、クライアント通信処理(図6)を終了させる(ステップS202)。
【0075】
以上のように、上記第1実施例では、案内サーバ20の案内処理部212は、クライアントデバイス(クライアント30)からの通信開始の要求と、記憶装置(NAS10)からの問い合わせ(ポーリング)と、をそれぞれ受信し、NAS10からのポーリングに対する応答として、クライアント30からの通信開始の要求の有無と、当該クライアント30の宛先を送信する。すなわち、案内サーバ20は、クライアント30の宛先等の情報を、NAS10から発せられるポーリングの応答として送信すればよいため、NAS10の宛先を知らなくてもよく、また、NAS10がLAN内に存在していてもNAS10との通信を行うことができる。
【0076】
また、NAS10の宛先取得部112は、案内サーバ20からクライアント30の宛先を取得し、操作要求取得部114は、取得された宛先を有するクライアント30に対して、自身に対する操作要求を問い合わせる。すなわち、NAS10は、自身に接続を要求しているクライアント30の宛先を案内サーバ20から取得することができるため、初期状態においては、クライアント30の宛先を知らなくてもよい。
【0077】
さらに、クライアント30の操作要求部316は、NAS10からのポーリングを受信し、ポーリングに対する応答として、NAS10に対するデータの操作要求を送信する。すなわち、クライアント30は、データの操作要求をNAS10から発せられるポーリングの応答として送信すればよいため、NAS10の宛先を知らなくてもよく、また、NAS10がLAN内に存在していてもNAS10との通信を行うことができる。そして、NAS10の要求送信部116は、クライアント30から取得された操作要求に基づいて処理を継続するための更なる要求や、クライアント30から取得された操作要求に基づいてNAS10内で処理されたデータそのものを、クライアント30に対して送信する。
【0078】
これらの結果、ルータ40のUPnP機能や、データ転送を中継するリレーサーバを用いることなく、インターネットを経由して、LAN内のNAS10にアクセスすることが可能なネットワークストレージシステム1000を提供することが可能となる。
【0079】
B.第2実施例:
本発明の第2実施例では、第1実施例のシーケンスにおいてNASとクライアントとが直接アクセスに失敗した場合に、いわゆる「CloudStor」機能を用いて、リレーサーバにデータ転送を中継させる構成について説明する。なお、図中において第1実施例と同様の構成部分については先に説明した第1実施例と同様の符号を付し、その詳細な説明を省略する。
【0080】
第2実施例におけるネットワークストレージシステム1000aは、図1に示したネットワークストレージシステム1000に対して、さらに、リレーサーバ60を備えている。リレーサーバ60は、オンラインストレージサービスを提供するためのサーバであり、NAS10aとクライアント30との間のデータ転送を中継する。リレーサーバ60は、インターネットINET上に位置するルータ40の外部ノードであり、グローバルIPアドレス「GIP60」が付与されている。
【0081】
第2実施例におけるNAS10aの構成は、図2に示した第1実施例とほぼ同じである。図2と異なる点は、操作要求取得部114に代えて、操作要求取得部114aを備える点である。また、第2実施例における案内サーバ20およびクライアント30の構成は、図3および図4に示した第1実施例と同じである。
【0082】
図13は、第2実施例における通信開始/通信中シーケンスを示す説明図である。図11に示した第1実施例との違いは、図11の各処理に加えて、さらに、ステップS600〜ステップS606の処理を備える点のみであり、他の動作は第1実施例と同じである。以降、NAS10上のクライアント通信処理(ステップS204)から説明する。
【0083】
NAS10aの操作要求取得部114aは、クライアント30に対して、一定時間経過(ステップS204)ごとにポーリング用パケットを送信して、待機する(ステップS206)。操作要求取得部114aは、ステップS206のポーリングの応答が、所定の時間待機しても得られない場合(ステップS600)、同一の宛先(すなわちクライアント30)に対して再ポーリングする(ステップS602)。具体的には、操作要求取得部114aは、ステップS206で送信したポーリング用パケットを再送する。なお、ステップS600における「所定の時間」は任意に設定することができる。操作要求取得部114aは、ステップS602の再ポーリングの応答が、所定の時間待機しても得られない場合(ステップS604)、リレーサーバ60に対してデータ転送の中継を要求する(ステップS606)。リレーサーバ60によるデータ転送の中継処理は、例えば「CloudStor」と呼ばれる機能等で知られているため、説明を省略する。なお、ステップS604における「所定の時間」は任意に設定することができる。なお、ステップS600の所定の時間と、ステップS604の所定の時間とは別個に設定可能である。
【0084】
上記では、ステップS206のポーリングの応答が得られない場合の操作要求取得部114aの動作について説明した。ステップS206のポーリングの応答が得られた場合は、操作要求取得部114aは、図11に示した第1実施例と同様の動作を行う。
【0085】
以上のように、第2実施例においても、第1実施例と同様の効果を得ることができる。さらに、第2実施例では、記憶装置(NAS10)の操作要求取得部114は、再問い合わせ(再ポーリング)に対する応答が所定の時間得られなかった場合は、NAS10と、クライアント30との間のデータ転送を中継するためのリレーサーバ60に対して、データ転送の中継を要求する。この結果、NAS10が応答の取得に失敗した場合であっても、NAS10とクライアント30との間のデータ転送を行うことができ、ネットワークストレージシステム1000aの可用性が向上する。
【0086】
C.変形例:
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
【0087】
C1.変形例1:
上記実施例では、ネットワークストレージシステムの構成の一例を示した。しかし、ネットワークストレージシステムの構成は、上述した態様に限らず、本発明の要旨を逸脱しない範囲において任意に定めることができる。例えば、図1に示さない端末、管理装置、他のネットワーク中継装置等を含む構成としてもよい。また、図1に示した装置の一部を省略してもよい。
【0088】
例えば、案内サーバを用いる方法以外の方法を用いて、クライアントが、NASが接続されているルータのグローバルIPアドレスを知り、かつ、NASが、クライアントのグローバルIPアドレスを知りえる場合、案内サーバを省略してネットワークストレージシステムを構成してもよい。
【0089】
C2.変形例2:
上記実施例では、ネットワーク接続ストレージ(NAS)の構成について説明した。しかし、上記実施例におけるNASの構成はあくまで一例であり、任意の態様を採用することができる。例えば、構成要素の一部を省略したり、更なる構成要素を付加したり、構成要素の一部を変更したりする変形が可能である。
【0090】
例えば、NASは、上記実施例において示さない他の機能部を備えるものとしてもよい。例えば、USBインタフェース、無線通信インタフェース、Bluetooth(登録商標)等、他の更なるインタフェースを備えるものとしてもよい。また、HDDに代えてフラッシュROM等の記憶媒体を用いてもよい。
【0091】
C3.変形例3:
上記実施例では、案内サーバの構成について説明した。しかし、上記実施例における案内サーバの構成はあくまで一例であり、任意の態様を採用することができる。例えば、構成要素の一部を省略したり、更なる構成要素を付加したり、構成要素の一部を変更したりする変形が可能である。
【0092】
C4.変形例4:
上記実施例では、インターネットへの接続機能を有するクライアントの例としてスマートフォンを例示した。しかし、クライアントとしては、スマートフォン以外の種々の機器を使用することも可能である。例えば、パーソナルコンピュータや、カーナビ端末や、ゲーム機や、テレビ端末等を用いることができる。
【0093】
上記実施例では、クライアントの構成について説明した。しかし、上記実施例におけるクライアントの構成はあくまで一例であり、任意の態様を採用することができる。例えば、構成要素の一部を省略したり、更なる構成要素を付加したり、構成要素の一部を変更したりする変形が可能である。例えば、HDDに代えてフラッシュROM等の記憶媒体を用いてもよい。
【0094】
C5.変形例5:
上記実施例では、クライアントがGUIから受け付ける操作要求の一例を挙げて説明した。しかし、上記操作要求はあくまで一例であり、種々の操作要求を想定することができる。例えば、「ファイルやフォルダの削除を要求する旨」の操作要求や、「ファイルやフォルダの新規作成を要求する旨」、「ファイルやフォルダの名称を変更する旨」等の要求を想定可能である。
【0095】
C6.変形例6:
上記実施例では、NASで実行されるNASのサーバ通信処理(図5)、NASのクライアント通信処理(図6)、案内サーバで実行される案内処理(図7)、クライアントで実行されるクライアントのサーバ通信処理(図8)、クライアントのNAS通信処理(図9)の各処理の一例を示した。しかし、図5〜図9に示した処理の手順はあくまで一例であり、種々の変更が可能である。例えば、一部のステップを省略してもよいし、更なる他のステップを追加してもよい。また、実行されるステップの順序を変更してもよい。
【0096】
例えば、上記第1実施例に対して、いわゆる「Webアクセス」機能を組み合わせてもよい。具体的には、上記第1実施例で説明した処理を行う前に、NASとクライアントとが、ルータのUPnP機能を用いた直接アクセスを試みる。そして、ルータのUPnP機能を用いた直接アクセスが可能である場合、NASとクライアントとは「Webアクセス」機能を用いたデータ転送を行う。一方、ルータのUPnP機能を用いた直接アクセスが不可能であった場合、NASとクライアントとは上記第1実施例で説明した処理を行う。このような構成とすれば、NASとクライアントのデータ転送方法の選択肢を広げることができる。
【0097】
例えば、上記第2実施例に対して、いわゆる「Webアクセス」機能を組み合わせてもよい。そうすれば、NASとクライアントのデータ転送の選択肢をさらに広げることができる。
【0098】
C7.変形例7:
上記第2実施例では、第2実施例におけるNASのクライアント通信処理の一例を示した。しかし、図13に示した処理のシーケンスはあくまで一例であり、種々の変更が可能である。
【0099】
例えば、操作要求取得部が行う再ポーリングの回数は1回であるとしたが、操作要求取得部は、2回以上のポーリングを試みてもよい。また、操作要求取得部が実行するポーリングの回数や、待機する「所定の時間」は、利用者が設定可能な構成としてもよい。
【0100】
例えば、案内サーバとリレーサーバとは、別個に設けられるとしたが、1台のサーバで提供される構成としてもよい。そうすれば、サーバ導入時や、運用時におけるコストを抑えることができる。
【符号の説明】
【0101】
10,10a…NAS、20…案内サーバ、30…クライアント、40…ルータ、50…PC、60…リレーサーバ、110…CPU、112…宛先取得部、114,114a…操作要求取得部、116…要求送信部、120…HDD、122…データ記憶部、124…宛先記憶部、210…CPU、212…案内処理部、310…CPU、314…接続要求部、316…操作要求部、318…ファイルサーバモジュール、322…データ記憶部、330…移動体通信網制御回路、360…表示部、370…操作部、380…音声入出力部、1000,1000a…ネットワークストレージシステム、INET…インターネット
【技術分野】
【0001】
本発明は、インターネット経由でLAN内の記憶装置にアクセスする技術に関する。
【背景技術】
【0002】
近年、スマートフォン等の携帯可能な機器において、パーソナルコンピュータと同様の多種多様な機能が提供され、利用されている。スマートフォンには、音声データ、画像データ、アプリケーションデータ等の様々なデータが格納される。このため、スマートフォンのメモリ容量は多ければ多いほど良い。しかし、スマートフォンは、その形態性を向上させるために、搭載されるメモリの容量に制限がある場合が多い。
【0003】
そこで、大容量の外部記憶装置を有するネットワーク接続ストレージ(NAS:Network Attached Storage)を家庭やオフィス内のLANに接続し、このネットワーク接続ストレージに対して、インターネット経由でアクセスする技術が提案されている。インターネット経由でLAN内のネットワーク接続ストレージへアクセスする技術としては、例えば、「Webアクセス」と呼ばれる機能(非特許文献1参照)や、「CloudStor」と呼ばれる機能(非特許文献2参照)が知られている。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】「INTERNET Watch、 清水理史のイニシャルB、 第409回:iPhone/iPad用アプリで外出先からNASを活用バッファロー「WebAccess i」」、http://internet.watch.impress.co.jp/docs/column/shimizu/20100928_396441.html
【非特許文献2】「PC Watch、 [CES 2011レポート]バッファロー編〜Pogoplug機能内蔵NASや、HDD8台搭載可能なTeraStation」、http://pc.watch.impress.co.jp/docs/news/20110111_419544.html
【発明の概要】
【発明が解決しようとする課題】
【0005】
「Webアクセス」は、ネットワーク接続ストレージが接続されているルータのUPnP機能を利用して、スマートフォンとネットワーク接続ストレージの直接アクセスを可能とする機能である。しかし、「Webアクセス」では、ルータにUPnP機能が未搭載である場合、利用者はルータのポートフォワーディングの設定を行わなければならず複雑な手順が必要とされるという問題があった。また、「Webアクセス」では、ルータにUPnP機能が搭載されておらず、かつ、ルータがポートフォワーディングの設定変更にも非対応の場合、スマートフォンとネットワーク接続ストレージが接続できないという問題があった。また、「CloudStor」は、インターネット上に、スマートフォンとネットワーク接続ストレージとの間のデータ転送を中継するリレーサーバを設けることで、両者のアクセスを可能とする機能である。しかし、「CloudStor」では、データ転送を中継するリレーサーバが、スマートフォンの台数の増加などに伴って高負荷状態となるため、データ転送の処理速度低下や、サーバダウンによるデータ転送サービス中止等の事態が生じるおそれがあるという問題があった。
【0006】
また、このような問題は、ネットワーク接続ストレージに限定されず、ネットワーク接続可能な記憶装置全般に共通する問題であった。
【0007】
本発明は、ルータのUPnP機能や、データ転送を中継するリレーサーバを用いることなく、インターネットを経由して、LAN内の記憶装置にアクセスすることを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態又は適用例として実現することが可能である。
【0009】
[適用例1]
ネットワーク接続可能な記憶装置と、案内サーバと、クライアントデバイスとがネットワークを介して接続されているネットワークストレージシステムであって、前記クライアントデバイスは、前記案内サーバに対して前記記憶装置への通信開始を要求する接続要求部と、前記記憶装置からの問い合わせを受信し、前記問い合わせに対する応答として、前記記憶装置に対するデータの操作要求を送信する操作要求部と、を備え、前記案内サーバは、前記記憶装置からの問い合わせを受信し、前記問い合わせに対する応答として、前記クライアントデバイスからの前記通信開始の要求の有無と、前記通信開始の要求が有る場合に、当該クライアントデバイスの宛先を送信する案内処理部を備え、前記記憶装置は、前記案内サーバに対して、前記クライアントデバイスの宛先を問い合わせ、前記宛先を取得する宛先取得部と、取得された前記宛先を有する前記クライアントデバイスに対して、自身に対する前記操作要求を問い合わせ、前記操作要求を取得する操作要求取得部と、取得された前記操作要求に基づく要求、または、取得された前記操作要求に基づいて前記記憶装置内で処理されたデータを、前記クライアントデバイスに対して送信する要求送信部と、を備える、ネットワークストレージシステム。
【0010】
このような構成とすれば、案内サーバの案内処理部は、クライアントデバイスからの通信開始の要求と、記憶装置からの問い合わせと、をそれぞれ受信し、記憶装置からの問い合わせに対する応答として、クライアントデバイスからの通信開始の要求の有無と、当該クライアントデバイスの宛先を送信する。すなわち、案内サーバは、クライアントデバイスの宛先等の情報を、記憶装置から発せられる問い合わせの応答として送信すればよいため、記憶装置の宛先を知らなくてもよく、また、記憶装置がLAN内に存在していても記憶装置との通信を行うことができる。また、記憶装置の宛先取得部は、案内サーバからクライアントデバイスの宛先を取得し、操作要求取得部は、取得された宛先を有するクライアントデバイスに対して、自身に対する操作要求を問い合わせる。すなわち、記憶装置は、自身に接続を要求しているクライアントデバイスの宛先を案内サーバから取得することができるため、初期状態においては、クライアントデバイスの宛先を知らなくてもよい。さらに、クライアントデバイスの操作要求部は、記憶装置からの問い合わせを受信し、問い合わせに対する応答として、記憶装置に対するデータの操作要求を送信する。すなわち、クライアントデバイスは、データの操作要求を記憶装置から発せられる問い合わせの応答として送信すればよいため、記憶装置の宛先を知らなくてもよく、また、記憶装置がLAN内に存在していても記憶装置との通信を行うことができる。そして、記憶装置の要求送信部は、クライアントデバイスから取得された操作要求に基づいて処理を継続するための更なる要求や、クライアントデバイスから取得された操作要求に基づいて記憶装置内で処理されたデータそのものを、クライアントデバイスに対して送信する。これらの結果、ルータのUPnP機能や、データ転送を中継するリレーサーバを用いることなく、インターネットを経由して、LAN内の記憶装置にアクセスすることが可能なネットワークストレージシステムを提供することが可能となる。
【0011】
[適用例2]
適用例1記載のネットワークストレージシステムであって、前記記憶装置の前記操作要求取得部は、取得された前記宛先に対する前記操作要求の問い合わせに対する応答が所定の時間得られなかった場合は、同一の宛先に対して前記操作要求の再問い合わせを行う、ネットワークストレージシステム。
【0012】
このような構成とすれば、記憶装置の操作要求取得部は、操作要求の問い合わせに対する応答が所定の時間得られなかった場合は、同一の宛先に対して操作要求の再問い合わせを行うため、例えば、通信不良等に起因してパケットの損失が生じた場合でも、処理を継続することができる。
【0013】
[適用例3]
適用例2記載のネットワークストレージシステムであって、さらに、前記記憶装置と、前記クライアントデバイスとの間のデータ転送を中継するためのリレーサーバを備え、前記記憶装置の前記操作要求取得部は、前記再問い合わせに対する応答が所定の時間得られなかった場合は、前記リレーサーバに対して、取得された前記宛先とのデータ転送の中継を要求する、ネットワークストレージシステム。
【0014】
このような構成とすれば、記憶装置の操作要求取得部は、再問い合わせに対する応答が所定の時間得られなかった場合は、記憶装置と、クライアントデバイスとの間のデータ転送を中継するためのリレーサーバに対して、データ転送の中継を要求する。この結果、記憶装置が応答の取得に失敗した場合であっても、記憶装置とクライアントデバイスとの間のデータ転送を行うことができ、システムの可用性が向上する。
【0015】
[適用例4]
適用例1ないし3のいずれか一項記載のネットワークストレージシステムであって、前記記憶装置の前記操作要求取得部は、取得された前記宛先に対して、定期的に前記操作要求を問い合わせる、ネットワークストレージシステム。
【0016】
このような構成とすれば、記憶装置の操作要求取得部は、取得された宛先に対して、定期的に操作要求を問い合わせるため、記憶装置は、クライアントデバイスからの操作要求を連続して受信、処理することが可能となる。
【0017】
[適用例5]
適用例1ないし4のいずれか一項記載のネットワークストレージシステムであって、前記記憶装置は、さらに、前記宛先取得部が取得した宛先を記憶する宛先記憶部を備え、前記操作要求取得部は、前記宛先記憶部に記憶された宛先を用いて、前記クライアントデバイスに対して前記操作要求を問い合わせる、ネットワークストレージシステム。
【0018】
このような構成とすれば、記憶装置は、宛先取得部が取得した宛先を記憶することができる。
【0019】
[適用例6]
適用例1ないし5のいずれか一項記載のネットワークストレージシステムであって、前記操作要求は、リストの取得の要求と、アップロードの要求と、ダウンロードの要求と、ファイルまたはフォルダの新規作成の要求と、ファイルまたはフォルダの削除の要求と、のうちのいずれかである、ネットワークストレージシステム。
【0020】
このような構成とすれば、記憶装置に対する操作要求を明確に定義することができる。
【0021】
[適用例7]
ネットワーク接続可能な記憶装置と、案内サーバと、クライアントデバイスとがネットワークを介して接続されているネットワークストレージシステムにおけるデータ操作方法であって、(a)前記クライアントデバイスが、前記案内サーバに対して前記記憶装置への通信開始を要求する工程と、(b)前記記憶装置が、前記案内サーバに対して、前記クライアントデバイスの宛先を問い合わせる工程と、(c)前記案内サーバが、前記問い合わせに対する応答として、前記クライアントデバイスからの前記通信開始の要求の有無と、前記通信開始の要求が有る場合に、当該クライアントデバイスの宛先を送信する工程と、(d)前記記憶装置が、前記送信された前記クライアントデバイスの宛先を取得する工程と、(e)前記記憶装置が、前記取得された前記宛先を有する前記クライアントデバイスに対して、自身に対するデータの操作要求を問い合わせる工程と、(f)前記クライアントデバイスが、前記問い合わせに対する応答として、前記記憶装置に対する前記操作要求を送信する工程と、(g)前記記憶装置が、前記送信された前記操作要求を取得する工程と、(h)前記記憶装置が、前記工程(g)により取得された前記操作要求に基づく要求、または、前記工程(g)により取得された前記操作要求に基づいて前記記憶装置内で処理されたデータを、前記クライアントデバイスに対して送信する工程と、を備える、データ操作方法。
【0022】
このような構成とすれば、適用例1と同様の効果を得ることができる。
【0023】
[適用例8]
記憶装置であって、ネットワークを介して接続されている案内サーバに対して、ネットワークを介して接続されているクライアントデバイスの宛先を問い合わせ、前記宛先を取得する宛先取得部と、取得された前記宛先を有する前記クライアントデバイスに対して、自身に対するデータの操作要求を問い合わせ、前記操作要求を取得する操作要求取得部と、取得された前記操作要求に基づく要求、または、取得された前記操作要求に基づいて前記記憶装置内で処理されたデータを、前記クライアントデバイスに対して送信する要求送信部と、を備える、記憶装置。
【0024】
このような構成とすれば、ルータのUPnP機能や、データ転送を中継するリレーサーバを用いることなく、インターネットを経由したクライアントデバイスからのアクセスを受け付けることが可能な記憶装置を実現することができる。
【0025】
[適用例9]
クライアントデバイスを制御するためのコンピュータプログラムであって、ネットワークを介して接続されている案内サーバに対して前記記憶装置への通信開始を要求する接続要求機能と、ネットワークを介して接続されている記憶装置に対するデータの操作要求を取得する取得機能と、前記記憶装置からの問い合わせを受信し、前記問い合わせに対する応答として、前記取得機能により取得された前記操作要求を送信する操作要求機能と、を備える、コンピュータプログラム。
【0026】
このような構成とすれば、クライアントデバイスに搭載されるコンピュータプログラムであって、適用例9記載の記憶装置と協働することで、ルータのUPnP機能や、データ転送を中継するリレーサーバを用いることなく、LAN内の記憶装置にアクセス可能なコンピュータプログラムを実現することができる。
【0027】
なお、本発明は、種々の態様で実現することが可能である。例えば、ネットワークストレージシステム、ネットワークストレージシステムにおけるデータ操作方法、記憶装置、記憶装置に接続されるクライアントデバイス、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記憶媒体等の形態で実現することができる。
【図面の簡単な説明】
【0028】
【図1】本発明の一実施例としてのネットワークストレージシステムの概略構成を示す説明図である。
【図2】図1に示すNASの構成を示すブロック図である。
【図3】図1に示す案内サーバの構成を示すブロック図である。
【図4】図1に示すクライアントの構成を示すブロック図である。
【図5】NASのサーバ通信処理の手順を示すフローチャートである。
【図6】NASのクライアント通信処理の手順を示すフローチャートである。
【図7】案内処理の手順を示すフローチャートである。
【図8】クライアントのサーバ通信処理の手順を示すフローチャートである。
【図9】クライアントのNAS通信処理の手順を示すフローチャートである。
【図10】クライアント待機シーケンスを示す説明図である。
【図11】通信開始/通信中シーケンスを示す説明図である。
【図12】通信終了シーケンスを示す説明図である。
【図13】第2実施例における通信開始/通信中シーケンスを示す説明図である。
【発明を実施するための形態】
【0029】
次に、本発明の実施の形態を実施例に基づいて以下の順序で説明する。
【0030】
A.第1実施例:
A−1.システム構成と概要説明:
図1は、本発明の一実施例としてのネットワークストレージシステム1000の概略構成を示す説明図である。ネットワークストレージシステム1000は、ネットワーク接続ストレージ(Network Attached Storage:以降、「NAS」とも呼ぶ。)10と、案内サーバ20と、クライアント30と、ルータ40とを含んでいる。NAS10は、ルータ40を介して、インターネットINET上の案内サーバ20と接続されている。また、クライアント30は、基地局(図示省略)を介してインターネットINETに接続される。なお、ネットワークストレージシステム1000は、さらに、パーソナルコンピュータ(PC)50を備えていてもよい。なお、ネットワーク接続ストレージ(NAS)は、特許請求の範囲における「記憶装置」に相当する。
【0031】
NAS10は、ネットワーク接続可能なストレージデバイスである。NAS10には、音声データ、画像データ、アプリケーションデータ等の様々なユーザデータを格納することができる。NAS10は、LAN内に位置するルータ40の内部ノードであり、ローカルIPアドレス「LIP10」が付与されている。案内サーバ20は、クライアント30の宛先を、NAS10に対して通知する機能を有するサーバである。案内サーバ20は、インターネットINET上に位置するルータ40の外部ノードであり、グローバルIPアドレス「GIP20」が付与されている。クライアント30は、インターネットINETへの接続機能を有するデバイスであり、本実施例ではスマートフォンである。クライアント30は、インターネットINET接続時には、インターネットINET上に位置するルータ40の外部ノードとなり、グローバルIPアドレス「GIP30」が付与される。
【0032】
本実施例では、ルータ40のUPnP機能や、データ転送を中継するリレーサーバを用いることなく、ルータ40の外部ノードであるクライアント30から、ルータ40の内部ノードであるNAS10へのアクセスを可能とするために、少なくとも次の2点の制御を行う。以降、詳細に説明する。
(a)案内サーバ20による通信開始時の宛先案内
(b)NAS10から、ルータ40の外部に位置する他のデバイス(案内サーバ20、クライアント30)に対するポーリングによる情報取得
なお、ポーリングは、特許請求の範囲における「問い合わせ」に相当する。
【0033】
A−2.NASの構成:
図2は、図1に示すNAS10の構成を示すブロック図である。NAS10は、CPU110と、ハードディスクドライブ(以降、「HDD」とも呼ぶ。)120と、有線LAN制御回路130と、ROM140と、RAM150とを備え、それぞれがバスにより相互に接続されている。
【0034】
CPU110は、HDD120に格納されているコンピュータプログラム(図示省略)をRAM150に展開して実行することにより、NAS10の各部を制御すると共に、宛先取得部112、操作要求取得部114、要求送信部116としても機能する。各機能部の詳細は後述する。HDD120は、大容量の外部記憶装置であり、データ記憶部122と、宛先記憶部124とを含んでいる。データ記憶部122は、ユーザデータを格納するための領域である。宛先記憶部124は、宛先としてのクライアント30のIPアドレスを格納するための領域である。なお、クライアント30のIPアドレスは、後述のNAS上のクライアント通信処理において用いられる。有線LAN制御回路130は、LANケーブルの接続インタフェースを含み、有線LANによるネットワーク接続を可能とするための回路である。
【0035】
A−3.案内サーバの構成:
図3は、図1に示す案内サーバ20の構成を示すブロック図である。案内サーバ20は、CPU210と、HDD220と、有線LAN制御回路230と、ROM240と、RAM250とを備え、それぞれがバスにより相互に接続されている。
【0036】
CPU210は、HDD220に格納されているコンピュータプログラム(図示省略)をRAM250に展開して実行することにより、案内サーバ20の各部を制御すると共に、案内処理部212としても機能する。案内処理部212の詳細は後述する。HDD220は、外部記憶装置である。有線LAN制御回路230は、LANケーブルの接続インタフェースを含み、有線LANによるネットワーク接続を可能とするための回路である。
【0037】
A−4.クライアントの構成:
図4は、図1に示すクライアント30の構成を示すブロック図である。クライアント30は、CPU310と、HDD320と、移動体通信網制御回路330と、ROM340と、RAM350と、表示部360と、操作部370と、音声入出力部380とを備えている。
【0038】
CPU310は、HDD320に格納されているコンピュータプログラム(図示省略)をRAM350に展開して実行することにより、クライアント30の各部を制御すると共に、GUI要求取得部312、接続要求部314、操作要求部316、ファイルサーバモジュール318としても機能する。各機能部の詳細は後述する。HDD320は、外部記憶装置であり、データ記憶部322を含んでいる。データ記憶部322は、ユーザデータを格納するための領域である。移動体通信網制御回路330は、変調器やアンプ、アンテナを含み、例えば3G/HSPAに準拠した移動体通信の端末として、移動体通信網の基地局と無線通信を行う。表示部360は、ディスプレイと、ディスプレイドライバを含み、利用者に対して視覚的な画面表示を行う。操作部370は、入力キーと、入力キーのドライバとを含み、利用者からの入力を受け付ける。なお、表示部360と操作部370の両方の機能を実現するデバイスとしてタッチパネルを用いてもよい。音声入出力部380は、マイクと、スピーカとを含み、利用者に対しての音声の入出力を行う。
【0039】
A−5.NASにおける処理:
NAS10において実行される処理について説明する。
A−5−1.NASのサーバ通信処理:
図5は、NASのサーバ通信処理の手順を示すフローチャートである。NASのサーバ通信処理は、NAS10が、案内サーバ20から「クライアント30との通信の開始/終了の指示」を取得するための処理であり、宛先取得部112により実行される。
【0040】
NAS10の宛先取得部112は、一定時間経過したかを判定する(ステップS100)。なお、ステップS100の「一定時間」とは、NAS10が案内サーバ20にポーリングする間隔を示し、任意に定めることができる。一定時間経過していないと判定された場合(ステップS100:NO)、宛先取得部112は処理をステップS100へ遷移させ、一定時間経過を待つ。一方、一定時間が経過したと判定された場合(ステップS100:YES)、宛先取得部112は案内サーバ20に対してポーリングする(ステップS102)。具体的には、宛先取得部112は、案内サーバ20のグローバルIPアドレスを宛先アドレスとしたポーリング用パケットを生成する。案内サーバ20のグローバルIPアドレスは、NAS10のHDD120に予め格納されている。ポーリング用パケットの様式は、任意に定めることができる。宛先取得部112は、生成したポーリング用パケットを、ルータ40を介して、案内サーバ20へ送信する。
【0041】
宛先取得部112は、ステップS102のポーリングに対する案内サーバ20からの応答を受信したか否かを判定する(ステップS104)。案内サーバ20からの応答を受信していないと判定された場合(ステップS104:NO)、宛先取得部112は処理をステップS104へ遷移させ、案内サーバ20からの応答を待つ。案内サーバ20からの応答を受信したと判定された場合(ステップS104:YES)、宛先取得部112は、受信した応答が通信開始要求であるか否かを判定する(ステップS106)。具体的には、宛先取得部112は、案内サーバ20から受信した応答パケットに、「通信開始を要求する旨」と、「クライアント30のIPアドレス」と、が含まれる場合に、通信開始要求を受信したと判定する。ステップS106において、通信開始要求を受信したと判定された場合(ステップS106:YES)、宛先取得部112は、応答パケットに含まれる「クライアント30のIPアドレス」を、HDD120内の宛先記憶部124に記憶させる(ステップS108)。その後、宛先取得部112は、操作要求取得部114に対して通信開始命令を送信することによってクライアント通信処理(図6)を開始させた後(ステップS110)、処理をステップS100へ遷移させる。
【0042】
一方、ステップS106において、通信開始要求を受信していないと判定された場合(ステップS106:NO)、宛先取得部112は、通信終了要求を受信したか否かを判定する(ステップS112)。具体的には、宛先取得部112は、案内サーバ20から受信した応答パケットに、「通信終了を要求する旨」が含まれる場合に、通信終了要求を受信したと判定する。ステップS112において、通信終了要求を受信したと判定された場合(ステップS112:YES)、宛先取得部112は、操作要求取得部114に対して通信終了命令を送信することによって実行中のクライアント通信処理(図6)を終了させた後(ステップS114)、処理をステップS100へ遷移させる。ステップS112において、通信終了要求を受信していないと判定された場合(ステップS112:NO)、宛先取得部112は処理をステップS100へ遷移させる。
【0043】
A−5−2.NASのクライアント通信処理:
図6は、NASのクライアント通信処理の手順を示すフローチャートである。NASのクライアント通信処理は、NAS10が、クライアント30との間でデータ転送を行うための処理であり、操作要求取得部114と、要求送信部116とにより実行される。
【0044】
NAS10の操作要求取得部114は、NASのサーバ通信処理(図5)から通信開始命令を受け取ったか否かを判定する(ステップS200)。通信開始命令を受け取っていないと判定された場合(ステップS200:NO)、操作要求取得部114は処理をステップS200へ遷移させる。通信開始命令を受け取ったと判定された場合(ステップS200:YES)、操作要求取得部114は、NASのサーバ通信処理(図5)から通信終了命令を受け取ったか否かを判定する(ステップS202)。通信終了命令を受け取ったと判定された場合(ステップS202:YES)、操作要求取得部114は処理をステップS200へ遷移させる。この場合、クライアント通信処理の本ルーチン(ステップS204以降)は実行されない。
【0045】
ステップS202において通信終了命令を受け取っていないと判定された場合(ステップS202:NO)、操作要求取得部114は、一定時間経過したかを判定する(ステップS204)。なお、ステップS204の「一定時間」とは、NAS10がクライアント30にポーリングする間隔を示し、任意に定めることができる。一定時間経過していないと判定された場合(ステップS204:NO)、操作要求取得部114は処理をステップS204へ遷移させ、一定時間の経過を待機する。一方、一定時間が経過したと判定された場合(ステップS204:YES)、操作要求取得部114はクライアント30に対してポーリングする(ステップS206)。具体的には、操作要求取得部114は、クライアント30のグローバルIPアドレスを宛先アドレスとしたポーリング用パケットを生成する。クライアント30のグローバルIPアドレスは、NASのサーバ通信処理(図5:ステップS108)において、案内サーバ20から案内されたアドレスであり、HDD120のデータ記憶部122に格納されている。ポーリング用パケットの様式は、任意に定めることができる。操作要求取得部114は、生成したポーリング用パケットを、ルータ40を介して、クライアント30へ送信する。
【0046】
操作要求取得部114は、ステップS206のポーリングに対するクライアント30からの応答を受信したか否かを判定する(ステップS208)。クライアント30からの応答を受信していないと判定された場合(ステップS208:NO)、操作要求取得部114は処理をステップS208へ遷移させ、応答の受信を待機する。
【0047】
ステップS208において、クライアント30からの応答を受信したと判定された場合(ステップS208:YES)、操作要求取得部114は、受信した応答がファイルリスト要求であるか否かを判定する(ステップS210)。具体的には、操作要求取得部114は、クライアント30から受信した応答パケットに、「ファイルリストの取得を要求する旨」と、ファイルリストの取得を要求する「NAS10上の場所」と、が含まれている場合に、ファイルリスト要求を受信したと判定する。なお、「NAS10上の場所」は、デフォルト値を設定することにより省略可能である。クライアント30から受信した応答がファイルリスト要求であると判定された場合(ステップS210:YES)、要求送信部116は、データ記憶部122にアクセスし、クライアント30からの応答パケットに含まれた「NAS10上の場所」により特定される場所のファイルおよびフォルダの一覧の取得処理を実行する(ステップS212)。その後、要求送信部116は、NAS10内で処理されたデータ、すなわち、ステップS212で取得したファイルおよびフォルダの一覧をクライアント30に対して送信する(ステップS214)。
【0048】
ステップS210において、クライアント30から受信した応答がファイルリスト要求でないと判定された場合(ステップS210:NO)、操作要求取得部114は、受信した応答がアップロード要求であるか否かを判定する(ステップS216)。具体的には、操作要求取得部114は、クライアント30から受信した応答パケットに、「アップロードを要求する旨」と、アップロードを要求する「NAS10上の場所」と、が含まれている場合に、アップロード要求を受信したと判定する。なお、「NAS10上の場所」は、デフォルト値を設定することにより省略可能である。クライアント30から受信した応答がアップロード要求であると判定された場合(ステップS216:YES)、要求送信部116は、当該アップロード要求に基づいて、クライアント30に対してアップロードすべきファイルの送信要求を送信する(ステップS218)。その後、要求送信部116は、データ記憶部122にアクセスし、ステップS218の応答として受信したファイルを、クライアント30からの応答パケットに含まれた「NAS10上の場所」により特定される場所に保存する(ステップS220)。
【0049】
ステップS216において、クライアント30から受信した応答がアップロード要求でないと判定された場合(ステップS26:NO)、操作要求取得部114は、受信した応答がダウンロード要求であるか否かを判定する(ステップS222)。具体的には、操作要求取得部114は、クライアント30から受信した応答パケットに、「ダウンロードを要求する旨」と、ダウンロードを要求する「NAS10上の場所」と、「ファイル(フォルダ)識別子」と、が含まれている場合に、ダウンロード要求を受信したと判定する。なお、「NAS10上の場所」は、デフォルト値を設定することにより省略可能である。クライアント30から受信した応答がダウンロード要求であると判定された場合(ステップS222:YES)、要求送信部116は、データ記憶部122にアクセスし、クライアント30からの応答パケットに含まれた「NAS10上の場所」により特定される場所から、「ファイル(フォルダ)識別子」により特定されるファイルまたはフォルダの取得処理を実行する(ステップS224)。その後、要求送信部116は、NAS10内で処理されたデータ、すなわち、ステップS224で取得したファイルまたはフォルダをクライアント30に対して送信する(ステップS226)。
【0050】
ステップS222において、クライアント30から受信した応答がダウンロード要求でないと判定された場合(ステップS222:NO)、要求送信部116は、処理をステップS202へ遷移させ、再び通信終了命令の有無を判定する。また、ステップS214、S220、S226の処理が終了した場合も同様である。
【0051】
A−6.案内サーバにおける処理:
案内サーバ20において実行される処理について説明する。
A−6−1.案内処理:
図7は、案内処理の手順を示すフローチャートである。案内処理は、案内サーバ20が、NAS10に対して「クライアント30との通信の開始/終了の指示」を送信するための処理であり、案内処理部212により実行される。
【0052】
案内サーバ20の案内処理部212は、NAS10からポーリングを受信したか否かを判定する(ステップS300)。NAS10からポーリングを受信していないと判定された場合(ステップS300:NO)、案内処理部212は、処理をステップS300へ遷移させ、ポーリングの受信を待機する。一方、NAS10からポーリングを受信したと判定された場合(ステップS300:YES)、案内処理部212は、クライアント30からの要求パケットを受信したか否かを判定する(ステップS302)。
【0053】
クライアント30からの要求パケットを受信したと判定された場合(ステップS302:YES)、案内処理部212は、NAS10からのポーリングの応答として、当該受信した要求パケットを送信する(ステップS304)。なお、ステップS304において、クライアント30から受信した要求パケットのデータ部分にクライアント30のIPアドレスが含まれていない場合、案内処理部212は、受信した要求パケットに、当該要求パケットのヘッダ内の送信元IPアドレス(すなわち、クライアント30のIPアドレス)を付加した新たなパケットを生成し、当該新たなパケットを送信してもよい。一方、クライアント30からの要求パケットを受信していないと判定された場合(ステップS302:NO)、案内処理部212は、NAS10からのポーリングの応答として、「要求なしである旨」を送信する(ステップS306)。ステップS304、S306の後、案内処理部212は、処理をステップS300へ遷移させ、再びポーリングの受信を待機する。
【0054】
A−7.クライアントにおける処理:
クライアント30において実行される処理について説明する。
A−7−1.クライアントのサーバ通信処理:
図8は、クライアントのサーバ通信処理の手順を示すフローチャートである。クライアントのサーバ通信処理は、クライアント30が、案内サーバ20に対して「通信開始/終了の要求」を送信するための処理であり、GUI要求取得部312と、接続要求部314とにより実行される。なお、クライアントのサーバ通信処理には、特許請求の範囲における「接続要求機能」が含まれる。また、GUI要求取得部312は、特許請求の範囲における「取得機能」を果たす。
【0055】
クライアント30の接続要求部314は、GUI要求取得部312がグラフィカルユーザインタフェース(以降、「GUI」とも呼ぶ。)から通信開始または通信終了を受け付けたか否かを判定する(ステップS400)。具体的には、接続要求部314は、GUI要求取得部312が、GUIを介して通信を開始する旨の入力を受け付けた場合に、通信開始を受け付けたと判定する。同様に、接続要求部314は、GUI要求取得部312が、GUIを介して通信を終了する旨の入力を受け付けた場合に、通信終了を受け付けたと判定する。なお、GUIの機能は表示部360と操作部370とが協働することにより実現される。通信開始または通信終了を受け付けたと判定された場合(ステップS400:YES)、接続要求部314は、案内サーバ20に対して、受け付けた内容に応じた要求パケットを送信し(ステップS402)、処理をステップS400へ遷移させる。一方、通信開始および通信終了を受け付けていないと判定された場合(ステップS400:NO)、接続要求部314は、処理をステップS400へ遷移させる。
【0056】
A−7−2.クライアントのNAS通信処理:
図9は、クライアントのNAS通信処理の手順を示すフローチャートである。クライアントのNAS通信処理は、クライアント30が、NAS10との間でデータ転送を行うための処理であり、GUI要求取得部312と、操作要求部316とによって実行される。なお、クライアントのNAS通信処理には、特許請求の範囲における「操作要求機能」が含まれる。
【0057】
クライアント30の操作要求部316は、NAS10からポーリングを受信したか否かを判定する(ステップS500)。NAS10からポーリングを受信していないと判定された場合(ステップS500:NO)、操作要求部316は、処理をステップS500へ遷移させ、ポーリングの受信を待機する。一方、NAS10からポーリングを受信したと判定された場合(ステップS500:YES)、操作要求部316は、GUI要求取得部312がGUIから操作要求を受け付けたか否かを判定する(ステップS502)。本実施例において「操作要求」とは、NAS10に対するファイル操作/フォルダ操作の要求を意味する。GUIから操作要求を受け付けていないと判定された場合(ステップS502:NO)、操作要求部316は、NAS10からのポーリングの応答として「要求無し」である旨を示すパケットを送信する(ステップS506)。
【0058】
ステップS502において、GUIから操作要求を受け付けたと判定された場合(ステップS502:YES)、操作要求部316は、NAS10からのポーリングの応答として、操作要求を送信する(ステップS504)。具体的には、操作要求部316は、GUI入力により指定される操作要求(例えば、「ファイルリストの取得を要求する旨」、「アップロードを要求する旨」、「ダウンロードを要求する旨」など)と、同じくGUI入力により指定される操作要求の対象を特定するための情報(例えば、「NAS10上の場所」、「ファイル(フォルダ)識別子」など)と、を含む応答パケットを生成する。そして、操作要求部316は、生成した応答パケットを送信する。
【0059】
操作要求部316は、ステップS504の操作要求はファイルリスト要求、すなわち、「ファイルリストの取得を要求する旨」の要求であるか否かを判定する(ステップS508)。ステップS504の操作要求がファイルリスト要求であると判定された場合(ステップS508:YES)、操作要求部316は、NAS10から送信されるファイルおよびフォルダの一覧を受信する(ステップS510)。そして、操作要求部316は、表示部360に対して、受信したファイルおよびフォルダの一覧を表示させる(ステップS512)。
【0060】
ステップS508において、ステップS504の操作要求がファイルリスト要求でないと判定された場合(ステップS508:NO)、操作要求部316は、ステップS504の操作要求がアップロード要求、すなわち、「アップロードを要求する旨」の要求であるか否かを判定する(ステップS514)。ステップS504の操作要求がアップロード要求であると判定された場合(ステップS514:YES)、操作要求部316は、ファイルサーバモジュール318に対して、HDD320のデータ記憶部322にアクセスしてGUIにより指定されたファイルもしくはフォルダを取得することを指示する(ステップS516)。そして、操作要求部316は、取得されたファイルもしくはフォルダを、NAS10に対して送信する(ステップS518)。
【0061】
ステップS514において、ステップS504の操作要求がアップロード要求でないと判定された場合(ステップS514:NO)、操作要求部316は、ステップS504の操作要求がダウンロード要求、すなわち、「ダウンロードを要求する旨」の要求であるか否かを判定する(ステップS520)。ステップS504の操作要求がダウンロード要求であると判定された場合(ステップS520:YES)、操作要求部316は、NAS10から送信されるファイルもしくはフォルダを受信する(ステップS522)。そして、操作要求部316は、ファイルサーバモジュール318に対して、受信したファイルもしくはフォルダを、HDD320のデータ記憶部322に保存させる。
【0062】
ステップS520において、ステップS504の操作要求がダウンロード要求でないと判定された場合(ステップS520:NO)、操作要求部316は、処理をステップS500へ遷移させ、再びNAS10からのポーリングを待つ。また、ステップS512、S518、S524の処理が終了した場合も同様である。
【0063】
ネットワークストレージシステム1000を構成する各装置、NAS10と、案内サーバ20と、クライアント30と、のそれぞれにおいて実行される処理の手順は上記の通りである。上記の各処理が実行されることによる、ネットワークストレージシステム1000全体の処理の流れを時間軸に沿って説明する。
【0064】
A−8.クライアント待機シーケンス:
図10は、クライアント待機シーケンスを示す説明図である。クライアント待機シーケンスは、NAS10が、クライアント30からのアクセスを待機する処理である。クライアント待機シーケンスは、NAS10のサーバ通信処理(図5)と、案内サーバ20の案内処理(図7)とにより実現される。なお、図中のステップ番号は、図5〜図9で示した処理フローチャートのステップ番号と対応している。このことは、以降のシーケンス図でも同じである。また、各装置間で送受信されるパケットについては、図示の便宜上、初回に限って送信元と宛先を明示し、2回目以降の通信時は記載を省略した。
【0065】
図10に示すように、NAS10は、案内サーバ20に対して、一定時間経過(ステップS100)ごとにポーリング用パケットPT1を送信しながら待機する(ステップS102)。パケットPT1は、ルータ40によって、送信元にルータ40のグローバルIPアドレスが、宛先に案内サーバ20のグローバルIPアドレスが付与される。パケットPT1を受信した案内サーバ20は、クライアント30からの要求を受け付けていない間は、パケットPT1に対する応答パケットPT2によって「要求無し」である旨を応答する(ステップS306)。パケットPT2は、送信元に案内サーバ20のグローバルIPアドレスが、宛先にルータ40のグローバルIPアドレスが、データ部分に「応答無し」である旨が、それぞれ格納されている。パケットPT2は、パケットPT1のリプライ(応答)パケットであるため、ルータ40によって、NAS10へと転送される。
【0066】
A−9.通信開始/通信中シーケンス:
図11は、通信開始/通信中シーケンスを示す説明図である。通信開始/通信中シーケンスは、クライアント30からのアクセス開始の要求を受けて、NAS10とクライアント30とが直接アクセスする処理である。通信開始/通信中シーケンスは、図5〜図9で説明した全ての処理により実現される。
【0067】
図11に示すように、GUIから通信を開始する旨の入力を受け付けた場合(ステップS400)に、クライアント30は、案内サーバ20に対して通信開始を要求するパケットPT3を送信する(ステップS402)。パケットPT3は、送信元にクライアント30のグローバルIPアドレスが、宛先に案内サーバ20のグローバルIPアドレスが、データ部分にクライアント30のIPアドレス「GIP30」と、クライアント30が接続を要求するNAS10の識別子(例えば、NAS10の名称など)とが、それぞれ格納されている。パケットPT3送信後、クライアント30は、自身のファイルサーバモジュール318を起動させる(ステップS600)。
【0068】
クライアント30から通信開始を要求するパケットPT3を受信した案内サーバ20は、NAS10から定期的に行われているポーリングの応答として、クライアント30から受信した要求パケットPT3を、応答パケットとして送信する(ステップS304)。応答パケットを受信したNAS10は、応答パケットに含まれる「クライアント30のIPアドレスを記憶後(ステップS108)、クライアント通信処理(図6)を開始させる(ステップS110)。
【0069】
NAS10は、クライアント30に対して、一定時間経過(ステップS204)ごとにポーリング用パケットPT4を送信して、待機する(ステップS206)。パケットPT4は、ルータ40によって、送信元にルータ40のグローバルIPアドレスが、宛先にクライアント30のグローバルIPアドレスが付与される。パケットPT4を受信したクライアント30は、GUIから受け付けた操作要求と、操作要求の対象を特定するための情報と、を含む応答パケットPT5を生成し、送信する(ステップS504)。パケットPT5は、送信元にクライアント30のグローバルIPアドレスが、宛先にルータ40のグローバルIPアドレスが、データ部分に操作要求の内容と、操作要求の対象を特定するための情報とが、それぞれ格納されている。パケットPT5は、パケットPT4のリプライ(応答)パケットであるため、ルータ40によって、NAS10へと転送される。
【0070】
クライアント30から応答パケットPT5を受信したNAS10は、パケットPT5に含まれる操作要求に応じてHDD120のデータ記憶部122にアクセスし、さらに、パケットPT5に含まれる操作要求に応じた要求をNAS10へ送信する(ステップS212〜S226)。例えば、応答パケットPT5に含まれる操作要求が「ファイルリスト要求」であった場合について説明する。NAS10は、まず、データ記憶部122にアクセスしてファイルおよびフォルダの一覧を取得する(ステップS212)。そして、NAS10は、取得したファイルおよびフォルダの一覧をクライアント30へ送信する(ステップS214)。
【0071】
ネットワークストレージシステム1000は、後述の通信終了シーケンスによってクライアント通信処理(図6)が終了されるまでの間、NAS10の操作要求取得部114からの定期的なポーリング(ステップS204、S206)をトリガとして、ステップS204以降の処理を繰り返してもよい。なお、この定期的なポーリングにおけるポーリング用パケットの宛先アドレスは、HDD120のデータ記憶部122に格納されているクライアント30のグローバルIPアドレスである。このようにすれば、NAS10はクライアント30からの操作要求を連続して受信、処理することが可能となる。
【0072】
なお、NAS10の操作要求取得部114は、クライアント30に対するポーリング(ステップS204、S206)の応答、すなわち、ステップS504の応答パケットが所定の時間得られなかった場合には、同一の宛先IPアドレスに対して、再びポーリング用パケットの送信を行ってもよい。「所定の時間」とは、任意に設定することができる。このようにすれば、NAS10の操作要求取得部114は、宛先記憶部124に記憶された宛先へのポーリングの応答が所定の時間得られなかった場合は、同一の宛先に対して再ポーリングを行うため、例えば、通信不良等に起因してポーリング用パケットや応答パケットの損失が生じた場合でも、再送されるポーリング用パケットにより、処理を継続することができる。
【0073】
A−10.通信終了シーケンス:
図12は、通信終了シーケンスを示す説明図である。
通信終了シーケンスは、クライアント30からのアクセス終了の要求を受けて、NAS10とクライアント30とのアクセスを終了する処理である。通信終了シーケンスは、クライアント30のサーバ通信処理(図8)と、案内サーバ20の案内処理(図7)と、NASのサーバ通信処理(図5)とにより実現される。
【0074】
図12に示すように、GUIから通信を終了する旨の入力を受け付けた場合(ステップS400)に、クライアント30は、案内サーバ20に対して通信終了を要求するパケットを送信する(ステップS402)。クライアント30から通信終了を要求するパケットを受信した案内サーバ20は、NAS10から定期的に行われているポーリングの応答として、クライアント30から受信した要求パケットを、応答パケットとして送信する(ステップS304)。応答パケットを受信したNAS10は、クライアント通信処理(図6)を終了させる(ステップS202)。
【0075】
以上のように、上記第1実施例では、案内サーバ20の案内処理部212は、クライアントデバイス(クライアント30)からの通信開始の要求と、記憶装置(NAS10)からの問い合わせ(ポーリング)と、をそれぞれ受信し、NAS10からのポーリングに対する応答として、クライアント30からの通信開始の要求の有無と、当該クライアント30の宛先を送信する。すなわち、案内サーバ20は、クライアント30の宛先等の情報を、NAS10から発せられるポーリングの応答として送信すればよいため、NAS10の宛先を知らなくてもよく、また、NAS10がLAN内に存在していてもNAS10との通信を行うことができる。
【0076】
また、NAS10の宛先取得部112は、案内サーバ20からクライアント30の宛先を取得し、操作要求取得部114は、取得された宛先を有するクライアント30に対して、自身に対する操作要求を問い合わせる。すなわち、NAS10は、自身に接続を要求しているクライアント30の宛先を案内サーバ20から取得することができるため、初期状態においては、クライアント30の宛先を知らなくてもよい。
【0077】
さらに、クライアント30の操作要求部316は、NAS10からのポーリングを受信し、ポーリングに対する応答として、NAS10に対するデータの操作要求を送信する。すなわち、クライアント30は、データの操作要求をNAS10から発せられるポーリングの応答として送信すればよいため、NAS10の宛先を知らなくてもよく、また、NAS10がLAN内に存在していてもNAS10との通信を行うことができる。そして、NAS10の要求送信部116は、クライアント30から取得された操作要求に基づいて処理を継続するための更なる要求や、クライアント30から取得された操作要求に基づいてNAS10内で処理されたデータそのものを、クライアント30に対して送信する。
【0078】
これらの結果、ルータ40のUPnP機能や、データ転送を中継するリレーサーバを用いることなく、インターネットを経由して、LAN内のNAS10にアクセスすることが可能なネットワークストレージシステム1000を提供することが可能となる。
【0079】
B.第2実施例:
本発明の第2実施例では、第1実施例のシーケンスにおいてNASとクライアントとが直接アクセスに失敗した場合に、いわゆる「CloudStor」機能を用いて、リレーサーバにデータ転送を中継させる構成について説明する。なお、図中において第1実施例と同様の構成部分については先に説明した第1実施例と同様の符号を付し、その詳細な説明を省略する。
【0080】
第2実施例におけるネットワークストレージシステム1000aは、図1に示したネットワークストレージシステム1000に対して、さらに、リレーサーバ60を備えている。リレーサーバ60は、オンラインストレージサービスを提供するためのサーバであり、NAS10aとクライアント30との間のデータ転送を中継する。リレーサーバ60は、インターネットINET上に位置するルータ40の外部ノードであり、グローバルIPアドレス「GIP60」が付与されている。
【0081】
第2実施例におけるNAS10aの構成は、図2に示した第1実施例とほぼ同じである。図2と異なる点は、操作要求取得部114に代えて、操作要求取得部114aを備える点である。また、第2実施例における案内サーバ20およびクライアント30の構成は、図3および図4に示した第1実施例と同じである。
【0082】
図13は、第2実施例における通信開始/通信中シーケンスを示す説明図である。図11に示した第1実施例との違いは、図11の各処理に加えて、さらに、ステップS600〜ステップS606の処理を備える点のみであり、他の動作は第1実施例と同じである。以降、NAS10上のクライアント通信処理(ステップS204)から説明する。
【0083】
NAS10aの操作要求取得部114aは、クライアント30に対して、一定時間経過(ステップS204)ごとにポーリング用パケットを送信して、待機する(ステップS206)。操作要求取得部114aは、ステップS206のポーリングの応答が、所定の時間待機しても得られない場合(ステップS600)、同一の宛先(すなわちクライアント30)に対して再ポーリングする(ステップS602)。具体的には、操作要求取得部114aは、ステップS206で送信したポーリング用パケットを再送する。なお、ステップS600における「所定の時間」は任意に設定することができる。操作要求取得部114aは、ステップS602の再ポーリングの応答が、所定の時間待機しても得られない場合(ステップS604)、リレーサーバ60に対してデータ転送の中継を要求する(ステップS606)。リレーサーバ60によるデータ転送の中継処理は、例えば「CloudStor」と呼ばれる機能等で知られているため、説明を省略する。なお、ステップS604における「所定の時間」は任意に設定することができる。なお、ステップS600の所定の時間と、ステップS604の所定の時間とは別個に設定可能である。
【0084】
上記では、ステップS206のポーリングの応答が得られない場合の操作要求取得部114aの動作について説明した。ステップS206のポーリングの応答が得られた場合は、操作要求取得部114aは、図11に示した第1実施例と同様の動作を行う。
【0085】
以上のように、第2実施例においても、第1実施例と同様の効果を得ることができる。さらに、第2実施例では、記憶装置(NAS10)の操作要求取得部114は、再問い合わせ(再ポーリング)に対する応答が所定の時間得られなかった場合は、NAS10と、クライアント30との間のデータ転送を中継するためのリレーサーバ60に対して、データ転送の中継を要求する。この結果、NAS10が応答の取得に失敗した場合であっても、NAS10とクライアント30との間のデータ転送を行うことができ、ネットワークストレージシステム1000aの可用性が向上する。
【0086】
C.変形例:
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
【0087】
C1.変形例1:
上記実施例では、ネットワークストレージシステムの構成の一例を示した。しかし、ネットワークストレージシステムの構成は、上述した態様に限らず、本発明の要旨を逸脱しない範囲において任意に定めることができる。例えば、図1に示さない端末、管理装置、他のネットワーク中継装置等を含む構成としてもよい。また、図1に示した装置の一部を省略してもよい。
【0088】
例えば、案内サーバを用いる方法以外の方法を用いて、クライアントが、NASが接続されているルータのグローバルIPアドレスを知り、かつ、NASが、クライアントのグローバルIPアドレスを知りえる場合、案内サーバを省略してネットワークストレージシステムを構成してもよい。
【0089】
C2.変形例2:
上記実施例では、ネットワーク接続ストレージ(NAS)の構成について説明した。しかし、上記実施例におけるNASの構成はあくまで一例であり、任意の態様を採用することができる。例えば、構成要素の一部を省略したり、更なる構成要素を付加したり、構成要素の一部を変更したりする変形が可能である。
【0090】
例えば、NASは、上記実施例において示さない他の機能部を備えるものとしてもよい。例えば、USBインタフェース、無線通信インタフェース、Bluetooth(登録商標)等、他の更なるインタフェースを備えるものとしてもよい。また、HDDに代えてフラッシュROM等の記憶媒体を用いてもよい。
【0091】
C3.変形例3:
上記実施例では、案内サーバの構成について説明した。しかし、上記実施例における案内サーバの構成はあくまで一例であり、任意の態様を採用することができる。例えば、構成要素の一部を省略したり、更なる構成要素を付加したり、構成要素の一部を変更したりする変形が可能である。
【0092】
C4.変形例4:
上記実施例では、インターネットへの接続機能を有するクライアントの例としてスマートフォンを例示した。しかし、クライアントとしては、スマートフォン以外の種々の機器を使用することも可能である。例えば、パーソナルコンピュータや、カーナビ端末や、ゲーム機や、テレビ端末等を用いることができる。
【0093】
上記実施例では、クライアントの構成について説明した。しかし、上記実施例におけるクライアントの構成はあくまで一例であり、任意の態様を採用することができる。例えば、構成要素の一部を省略したり、更なる構成要素を付加したり、構成要素の一部を変更したりする変形が可能である。例えば、HDDに代えてフラッシュROM等の記憶媒体を用いてもよい。
【0094】
C5.変形例5:
上記実施例では、クライアントがGUIから受け付ける操作要求の一例を挙げて説明した。しかし、上記操作要求はあくまで一例であり、種々の操作要求を想定することができる。例えば、「ファイルやフォルダの削除を要求する旨」の操作要求や、「ファイルやフォルダの新規作成を要求する旨」、「ファイルやフォルダの名称を変更する旨」等の要求を想定可能である。
【0095】
C6.変形例6:
上記実施例では、NASで実行されるNASのサーバ通信処理(図5)、NASのクライアント通信処理(図6)、案内サーバで実行される案内処理(図7)、クライアントで実行されるクライアントのサーバ通信処理(図8)、クライアントのNAS通信処理(図9)の各処理の一例を示した。しかし、図5〜図9に示した処理の手順はあくまで一例であり、種々の変更が可能である。例えば、一部のステップを省略してもよいし、更なる他のステップを追加してもよい。また、実行されるステップの順序を変更してもよい。
【0096】
例えば、上記第1実施例に対して、いわゆる「Webアクセス」機能を組み合わせてもよい。具体的には、上記第1実施例で説明した処理を行う前に、NASとクライアントとが、ルータのUPnP機能を用いた直接アクセスを試みる。そして、ルータのUPnP機能を用いた直接アクセスが可能である場合、NASとクライアントとは「Webアクセス」機能を用いたデータ転送を行う。一方、ルータのUPnP機能を用いた直接アクセスが不可能であった場合、NASとクライアントとは上記第1実施例で説明した処理を行う。このような構成とすれば、NASとクライアントのデータ転送方法の選択肢を広げることができる。
【0097】
例えば、上記第2実施例に対して、いわゆる「Webアクセス」機能を組み合わせてもよい。そうすれば、NASとクライアントのデータ転送の選択肢をさらに広げることができる。
【0098】
C7.変形例7:
上記第2実施例では、第2実施例におけるNASのクライアント通信処理の一例を示した。しかし、図13に示した処理のシーケンスはあくまで一例であり、種々の変更が可能である。
【0099】
例えば、操作要求取得部が行う再ポーリングの回数は1回であるとしたが、操作要求取得部は、2回以上のポーリングを試みてもよい。また、操作要求取得部が実行するポーリングの回数や、待機する「所定の時間」は、利用者が設定可能な構成としてもよい。
【0100】
例えば、案内サーバとリレーサーバとは、別個に設けられるとしたが、1台のサーバで提供される構成としてもよい。そうすれば、サーバ導入時や、運用時におけるコストを抑えることができる。
【符号の説明】
【0101】
10,10a…NAS、20…案内サーバ、30…クライアント、40…ルータ、50…PC、60…リレーサーバ、110…CPU、112…宛先取得部、114,114a…操作要求取得部、116…要求送信部、120…HDD、122…データ記憶部、124…宛先記憶部、210…CPU、212…案内処理部、310…CPU、314…接続要求部、316…操作要求部、318…ファイルサーバモジュール、322…データ記憶部、330…移動体通信網制御回路、360…表示部、370…操作部、380…音声入出力部、1000,1000a…ネットワークストレージシステム、INET…インターネット
【特許請求の範囲】
【請求項1】
ネットワーク接続可能な記憶装置と、案内サーバと、クライアントデバイスとがネットワークを介して接続されているネットワークストレージシステムであって、
前記クライアントデバイスは、
前記案内サーバに対して前記記憶装置への通信開始を要求する接続要求部と、
前記記憶装置からの問い合わせを受信し、前記問い合わせに対する応答として、前記記憶装置に対するデータの操作要求を送信する操作要求部と、
を備え、
前記案内サーバは、
前記記憶装置からの問い合わせを受信し、前記問い合わせに対する応答として、前記クライアントデバイスからの前記通信開始の要求の有無と、前記通信開始の要求が有る場合に、当該クライアントデバイスの宛先を送信する案内処理部を備え、
前記記憶装置は、
前記案内サーバに対して、前記クライアントデバイスの宛先を問い合わせ、前記宛先を取得する宛先取得部と、
取得された前記宛先を有する前記クライアントデバイスに対して、自身に対する前記操作要求を問い合わせ、前記操作要求を取得する操作要求取得部と、
取得された前記操作要求に基づく要求、または、取得された前記操作要求に基づいて前記記憶装置内で処理されたデータを、前記クライアントデバイスに対して送信する要求送信部と、
を備える、ネットワークストレージシステム。
【請求項2】
請求項1記載のネットワークストレージシステムであって、
前記記憶装置の前記操作要求取得部は、
取得された前記宛先に対する前記操作要求の問い合わせに対する応答が所定の時間得られなかった場合は、同一の宛先に対して前記操作要求の再問い合わせを行う、ネットワークストレージシステム。
【請求項3】
請求項2記載のネットワークストレージシステムであって、さらに、
前記記憶装置と、前記クライアントデバイスとの間のデータ転送を中継するためのリレーサーバを備え、
前記記憶装置の前記操作要求取得部は、
前記再問い合わせに対する応答が所定の時間得られなかった場合は、前記リレーサーバに対して、取得された前記宛先とのデータ転送の中継を要求する、ネットワークストレージシステム。
【請求項4】
請求項1ないし3のいずれか一項記載のネットワークストレージシステムであって、
前記記憶装置の前記操作要求取得部は、
取得された前記宛先に対して、定期的に前記操作要求を問い合わせる、ネットワークストレージシステム。
【請求項5】
請求項1ないし4のいずれか一項記載のネットワークストレージシステムであって、
前記記憶装置は、さらに、前記宛先取得部が取得した宛先を記憶する宛先記憶部を備え、
前記操作要求取得部は、前記宛先記憶部に記憶された宛先を用いて、前記クライアントデバイスに対して前記操作要求を問い合わせる、ネットワークストレージシステム。
【請求項6】
請求項1ないし5のいずれか一項記載のネットワークストレージシステムであって、
前記操作要求は、リストの取得の要求と、アップロードの要求と、ダウンロードの要求と、ファイルまたはフォルダの新規作成の要求と、ファイルまたはフォルダの削除の要求と、のうちのいずれかである、ネットワークストレージシステム。
【請求項7】
ネットワーク接続可能な記憶装置と、案内サーバと、クライアントデバイスとがネットワークを介して接続されているネットワークストレージシステムにおけるデータ操作方法であって、
(a)前記クライアントデバイスが、前記案内サーバに対して前記記憶装置への通信開始を要求する工程と、
(b)前記記憶装置が、前記案内サーバに対して、前記クライアントデバイスの宛先を問い合わせる工程と、
(c)前記案内サーバが、前記問い合わせに対する応答として、前記クライアントデバイスからの前記通信開始の要求の有無と、前記通信開始の要求が有る場合に、当該クライアントデバイスの宛先を送信する工程と、
(d)前記記憶装置が、前記送信された前記クライアントデバイスの宛先を取得する工程と、
(e)前記記憶装置が、前記取得された前記宛先を有する前記クライアントデバイスに対して、自身に対するデータの操作要求を問い合わせる工程と、
(f)前記クライアントデバイスが、前記問い合わせに対する応答として、前記記憶装置に対する前記操作要求を送信する工程と、
(g)前記記憶装置が、前記送信された前記操作要求を取得する工程と、
(h)前記記憶装置が、前記工程(g)により取得された前記操作要求に基づく要求、または、前記工程(g)により取得された前記操作要求に基づいて前記記憶装置内で処理されたデータを、前記クライアントデバイスに対して送信する工程と、
を備える、データ操作方法。
【請求項8】
記憶装置であって、
ネットワークを介して接続されている案内サーバに対して、ネットワークを介して接続されているクライアントデバイスの宛先を問い合わせ、前記宛先を取得する宛先取得部と、
取得された前記宛先を有する前記クライアントデバイスに対して、自身に対するデータの操作要求を問い合わせ、前記操作要求を取得する操作要求取得部と、
取得された前記操作要求に基づく要求、または、取得された前記操作要求に基づいて前記記憶装置内で処理されたデータを、前記クライアントデバイスに対して送信する要求送信部と、
を備える、記憶装置。
【請求項9】
クライアントデバイスを制御するためのコンピュータプログラムであって、
ネットワークを介して接続されている案内サーバに対して前記記憶装置への通信開始を要求する接続要求機能と、
ネットワークを介して接続されている記憶装置に対するデータの操作要求を取得する取得機能と、
前記記憶装置からの問い合わせを受信し、前記問い合わせに対する応答として、前記取得機能により取得された前記操作要求を送信する操作要求機能と、
を備える、コンピュータプログラム。
【請求項1】
ネットワーク接続可能な記憶装置と、案内サーバと、クライアントデバイスとがネットワークを介して接続されているネットワークストレージシステムであって、
前記クライアントデバイスは、
前記案内サーバに対して前記記憶装置への通信開始を要求する接続要求部と、
前記記憶装置からの問い合わせを受信し、前記問い合わせに対する応答として、前記記憶装置に対するデータの操作要求を送信する操作要求部と、
を備え、
前記案内サーバは、
前記記憶装置からの問い合わせを受信し、前記問い合わせに対する応答として、前記クライアントデバイスからの前記通信開始の要求の有無と、前記通信開始の要求が有る場合に、当該クライアントデバイスの宛先を送信する案内処理部を備え、
前記記憶装置は、
前記案内サーバに対して、前記クライアントデバイスの宛先を問い合わせ、前記宛先を取得する宛先取得部と、
取得された前記宛先を有する前記クライアントデバイスに対して、自身に対する前記操作要求を問い合わせ、前記操作要求を取得する操作要求取得部と、
取得された前記操作要求に基づく要求、または、取得された前記操作要求に基づいて前記記憶装置内で処理されたデータを、前記クライアントデバイスに対して送信する要求送信部と、
を備える、ネットワークストレージシステム。
【請求項2】
請求項1記載のネットワークストレージシステムであって、
前記記憶装置の前記操作要求取得部は、
取得された前記宛先に対する前記操作要求の問い合わせに対する応答が所定の時間得られなかった場合は、同一の宛先に対して前記操作要求の再問い合わせを行う、ネットワークストレージシステム。
【請求項3】
請求項2記載のネットワークストレージシステムであって、さらに、
前記記憶装置と、前記クライアントデバイスとの間のデータ転送を中継するためのリレーサーバを備え、
前記記憶装置の前記操作要求取得部は、
前記再問い合わせに対する応答が所定の時間得られなかった場合は、前記リレーサーバに対して、取得された前記宛先とのデータ転送の中継を要求する、ネットワークストレージシステム。
【請求項4】
請求項1ないし3のいずれか一項記載のネットワークストレージシステムであって、
前記記憶装置の前記操作要求取得部は、
取得された前記宛先に対して、定期的に前記操作要求を問い合わせる、ネットワークストレージシステム。
【請求項5】
請求項1ないし4のいずれか一項記載のネットワークストレージシステムであって、
前記記憶装置は、さらに、前記宛先取得部が取得した宛先を記憶する宛先記憶部を備え、
前記操作要求取得部は、前記宛先記憶部に記憶された宛先を用いて、前記クライアントデバイスに対して前記操作要求を問い合わせる、ネットワークストレージシステム。
【請求項6】
請求項1ないし5のいずれか一項記載のネットワークストレージシステムであって、
前記操作要求は、リストの取得の要求と、アップロードの要求と、ダウンロードの要求と、ファイルまたはフォルダの新規作成の要求と、ファイルまたはフォルダの削除の要求と、のうちのいずれかである、ネットワークストレージシステム。
【請求項7】
ネットワーク接続可能な記憶装置と、案内サーバと、クライアントデバイスとがネットワークを介して接続されているネットワークストレージシステムにおけるデータ操作方法であって、
(a)前記クライアントデバイスが、前記案内サーバに対して前記記憶装置への通信開始を要求する工程と、
(b)前記記憶装置が、前記案内サーバに対して、前記クライアントデバイスの宛先を問い合わせる工程と、
(c)前記案内サーバが、前記問い合わせに対する応答として、前記クライアントデバイスからの前記通信開始の要求の有無と、前記通信開始の要求が有る場合に、当該クライアントデバイスの宛先を送信する工程と、
(d)前記記憶装置が、前記送信された前記クライアントデバイスの宛先を取得する工程と、
(e)前記記憶装置が、前記取得された前記宛先を有する前記クライアントデバイスに対して、自身に対するデータの操作要求を問い合わせる工程と、
(f)前記クライアントデバイスが、前記問い合わせに対する応答として、前記記憶装置に対する前記操作要求を送信する工程と、
(g)前記記憶装置が、前記送信された前記操作要求を取得する工程と、
(h)前記記憶装置が、前記工程(g)により取得された前記操作要求に基づく要求、または、前記工程(g)により取得された前記操作要求に基づいて前記記憶装置内で処理されたデータを、前記クライアントデバイスに対して送信する工程と、
を備える、データ操作方法。
【請求項8】
記憶装置であって、
ネットワークを介して接続されている案内サーバに対して、ネットワークを介して接続されているクライアントデバイスの宛先を問い合わせ、前記宛先を取得する宛先取得部と、
取得された前記宛先を有する前記クライアントデバイスに対して、自身に対するデータの操作要求を問い合わせ、前記操作要求を取得する操作要求取得部と、
取得された前記操作要求に基づく要求、または、取得された前記操作要求に基づいて前記記憶装置内で処理されたデータを、前記クライアントデバイスに対して送信する要求送信部と、
を備える、記憶装置。
【請求項9】
クライアントデバイスを制御するためのコンピュータプログラムであって、
ネットワークを介して接続されている案内サーバに対して前記記憶装置への通信開始を要求する接続要求機能と、
ネットワークを介して接続されている記憶装置に対するデータの操作要求を取得する取得機能と、
前記記憶装置からの問い合わせを受信し、前記問い合わせに対する応答として、前記取得機能により取得された前記操作要求を送信する操作要求機能と、
を備える、コンピュータプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2013−88998(P2013−88998A)
【公開日】平成25年5月13日(2013.5.13)
【国際特許分類】
【出願番号】特願2011−228475(P2011−228475)
【出願日】平成23年10月18日(2011.10.18)
【出願人】(390040187)株式会社バッファロー (378)
【公開日】平成25年5月13日(2013.5.13)
【国際特許分類】
【出願日】平成23年10月18日(2011.10.18)
【出願人】(390040187)株式会社バッファロー (378)
[ Back to top ]