説明

ネットワーク型記憶装置

【課題】拡張機能を利用するための専用のプログラムをクライアントに搭載させる、などの負担をクライアント側に負わせることを抑制しつつ、クライアントに拡張機能を利用させることができるネットワーク型記憶装置を提供すること。
【解決手段】本実施形態のMFP1は、クライアント側から受信したFTPコマンドが指定するフォルダが、CPU2によって管理されていない非存在フォルダであることを条件として、FTPコマンドの送信元に拡張機能を提供する。よって、クライアント側では、非存在フォルダを指定するFTPコマンドを発行する、という既存のFTPクライアントプログラムで容易に実現できる処理で、拡張機能を利用することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はネットワーク型記憶装置に関するものである。
【背景技術】
【0002】
記憶メディアを装着可能なスロットが設けられたプリンタが知られている。このようなプリンタによれば、ファイルデータが格納された記憶メディアをスロットに装着することにより、PC(パーソナルコンピュータ)を介さずプリンタのみで画像を印刷できる。
【0003】
また、上記プリンタは、カードリーダとして機能させることができる。例えば、使用する記憶メディアに合うスロットが、PCに設けられていない場合がある。そのような場合は、プリンタのスロットに記憶メディアを装着し、PCからプリンタへアクセスすることにより、プリンタからPCへファイルを転送させ、PCにおいてそのファイルをモニタに表示し閲覧することができる。
【0004】
なお、デジタルカメラなどで撮影されたファイルを手軽に確認するために、モニタ等には縮小画像(いわゆるサムネイル画像)が表示される。例えば、デジタルカメラで生成されるファイルの形式として、幅広く用いられるDCFフォーマットのファイルには、主画像データと、縮小画像データとが予めまとめて格納されている。したがって、ファイルに格納される縮小画像データを利用して、サムネイル画像を表示することができる(例えば、特許文献1参照)。
【0005】
ここで、デバイス間でファイルをやり取りするためのファイル転送プロトコルとして、FTP(File Transfer Protocol)を利用する場合がある。多くのOSやWebブラウザには標準で、FTPクライアントプログラムが含まれるからである。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2004−78837号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、FTPは、主に、ファイル単位でデータの入出力を行うものであるため、例えば、ファイル中の縮小画像データを部分転送する、という機能は標準では装備していない。そのため、クライアントでサムネイル画像を表示するためには、ファイル全体を取得しなければならず、通信の負荷が大きい。一方、ファイル中の縮小画像データのみの送受信をFTPで実現させるために、FTPに拡張機能を付加することが考えられる。その場合には、拡張機能に対応した特別な要求コマンドをクライアントからサーバへ送出させるために、クライアント側にも専用のFTPプログラムをインストールさせなければならず、クライアントのユーザに負担を負わせることになるという問題点があった。
【0008】
本発明は、上記問題点を解決するためになされたものであり、拡張機能を利用するための専用のプログラムをクライアントに搭載させる、などの負担をクライアント側に負わせることを抑制しつつ、クライアントに拡張機能を利用させることができるネットワーク型記憶装置を提供することを目的としている。
【課題を解決するための手段】
【0009】
この目的を達成するために、請求項1記載のネットワーク型記憶装置は、記憶メディアが着脱可能に装着されるメディア装着用スロットと、前記記憶メディアに記憶されるファイルデータおよび前記ファイルデータを分類するフォルダを管理する管理手段とを備え、FTPサーバのプログラムが組み込まれたものであって、FTPクライアントプログラムが設けられたクライアント側からのFTPコマンドを受信するコマンド受信手段と、前記コマンド受信手段により受信したFTPコマンドが指定するフォルダが、前記管理手段によって管理されていない非存在フォルダであることを条件として、前記FTPコマンドの送信元に、拡張機能を提供する拡張機能提供手段とを備える。
【0010】
請求項2記載のネットワーク型記憶装置は、請求項1記載のネットワーク型記憶装置において、前記コマンド受信手段により受信した前記FTPコマンドが指定するフォルダのフォルダ名を含むパスを取得するパス取得手段と、そのパス取得手段により取得されるパスに含まれるフォルダ名に、前記記憶メディアに記憶されるファイルデータのファイル名と同一のフォルダ名が含まれるかを判断するファイル名判断手段とを備え、前記拡張機能提供手段は、前記FTPコマンドが指定するフォルダが前記非存在フォルダであり、且つ、前記ファイル名判断手段により前記フォルダ名に前記ファイル名が含まれると判断されることを条件として、前記拡張機能を提供するものである。
【0011】
請求項3記載のネットワーク型記憶装置は、請求項2記載のネットワーク型記憶装置において、前記コマンド受信手段により受信したFTPコマンドが、フォルダに分類されるファイルデータのファイル名一覧を要求する一覧要求コマンドであるかを判断する一覧要求コマンド判断手段を備え、前記拡張機能提供手段は、前記拡張機能の一つとして、前記一覧要求コマンド判断手段により、前記FTPコマンドが前記一覧要求コマンドであると判断される場合、提供可能な拡張機能の種類を前記FTPコマンドの送信元に対して通知する機能を提供する機能種類通知手段を備える。
【0012】
請求項4記載のネットワーク型記憶装置は、請求項3記載のネットワーク型記憶装置において、前記ファイル名判断手段により前記ファイル名と同一であると判断されたフォルダ名の拡張子を判断する拡張子判断手段を備え、前記機能種類通知手段は、前記拡張子判断手段により判断された拡張子の種類に応じて定まる、提供可能な拡張機能の種類を、前記FTPコマンドの送信元に対して通知するものである。
【0013】
請求項5記載のネットワーク型記憶装置は、請求項3または4に記載のネットワーク型記憶装置において、前記機能種類通知手段は、各拡張機能の種類を特定する機能特定文字列をファイル名としたファイル名一覧を作成する一覧作成手段と、その一覧作成手段により作成したファイル名一覧を、前記FTPコマンドの送信元に転送することにより、前記拡張機能の種類を通知するものである。
【0014】
請求項6記載のネットワーク型記憶装置は、請求項5記載のネットワーク型記憶装置において、前記コマンド受信手段により受信したFTPコマンドが、ファイルデータの転送処理を要求する転送要求コマンドであるかを判断する転送要求コマンド判断手段を備え、前記拡張機能提供手段は、前記FTPコマンドにより処理対象ファイルデータのファイル名として指定される機能特定文字列を取得する機能特定文字列取得手段と、前記転送要求コマンド判断手段により、前記FTPコマンドが前記転送要求コマンドであると判断される場合、前記機能特定文字列取得手段により取得される機能特定文字列で特定される拡張機能を提供する特定機能提供手段を備える。
【0015】
なお本発明は、ネットワーク型記憶装置を制御するコンピュータプログラム、該コンピュータプログラムを記録する記録媒体等の種々の態様で実現可能である。
【発明の効果】
【0016】
請求項1記載のネットワーク型記憶装置によれば、クライアント側は、管理手段によって管理されていない非存在フォルダを指定するFTPコマンドを発行する、という既存のFTPクライアントプログラムで容易に実現できる処理で、拡張機能を利用することができる。その結果、拡張機能を利用するための専用のプログラムをクライアントに搭載させる、などの負担をクライアント側に負わせることを抑制しつつ、クライアントに拡張機能を利用させることができるという効果がある。
【0017】
請求項2記載のネットワーク型記憶装置によれば、請求項1記載のネットワーク型記憶装置の奏する効果に加え、拡張機能を利用するためのクライアント側のユーザの操作負担を軽減することができるという効果がある。既存のFTPクライアントプログラムでは、処理対象のフォルダやファイルを指定するための操作として、例えば、グラフィカルユーザインターフェイスのアドレス入力欄に、処理対象のフォルダやファイルに至るまでに経由するフォルダ名を含む接続先情報を入力するように構成されている。また、記憶メディアに記憶されるファイルデータのファイル名については,既存のFTPプログラムのプロトコルによって取得できる。
【0018】
よって、クライアント側のユーザは、拡張機能の利用のために、これら既存の構成を利用することができる。例えば、記憶メディアに記憶されるファイルデータのファイル名を取得し、そのファイル名をコピーしてフォルダ名としてアドレス入力欄の接続先情報に含める、という簡単な操作で、ネットワーク型記憶装置に対して拡張処理を要求することができる。
【0019】
また、上記の「ファイル名」とは拡張子を含まない文字列であっても良いが、末尾の拡張子までを含む文字列を「ファイル名」と称する場合は、さらなる効果が得られる。FAT(File Allocation Table)などファイルシステムにおいては、ファイル名とフォルダ名とを一元管理しているため、あるファイルデータのファイル名(拡張子を含む)と、あるフォルダのフォルダ名とが同一である場合、そのファイルとフォルダとは、同一階層内に存在できない。したがって、記憶メディア内のあるフォルダをカレントディレクトリとしてそのフォルダに分類されるファイルデータのファイル名一覧をクライアント側で閲覧している状態で、表示中のファイル名をコピーして、カレントディレクトリを表す接続先情報の末尾にフォルダ名として付加する場合、その接続先情報で指定されるフォルダは、直前までのカレントディレクトリであったフォルダ内には存在し得ず、非存在フォルダとなる。したがって、クライアント側で拡張機能を要求したにも拘わらず、実在するフォルダを処理対象とするFTPの通常の機能が提供されてしまう、という不都合の発生を抑制できる。
【0020】
請求項3記載のネットワーク型記憶装置によれば、請求項2記載のネットワーク型記憶装置の奏する効果に加え、ファイル名一覧を要求するという、既存のFTPクライアントプログラムが備える構成を利用して、提供可能な拡張機能の種類をFTPコマンドの送信元に対して通知することができるという効果がある。
【0021】
請求項4記載のネットワーク型記憶装置によれば、請求項3記載のネットワーク型記憶装置の奏する効果に加え、ファイル名と同一であると判断されたフォルダ名の拡張子の種類に応じて定まる、提供可能な拡張機能の種類が、FTPコマンドの送信元に対して通知されるので、クライアント側では、フォルダ名として接続先情報に含ませるファイル名の拡張子を適宜選択することにより、必要な拡張機能の種類を知ることができるという効果がある。
【0022】
請求項5記載のネットワーク型記憶装置によれば、請求項3または4に記載のネットワーク型記憶装置の奏する効果に加え、クライアント側では、拡張機能の種類を特定する機能特定文字列を、ファイル名として認識することができる。さらにファイル名一覧を閲覧するという機能は、既存のFTPクライアントプログラムで実現可能であるため、拡張機能の種類を認識するための特別な構成をクライアント側に設ける必要がないという効果がある。また、クライアント側で表示されたファイル名一覧のうち、いずれかがユーザにより指定されることを条件として、ファイル名を指定するFTPコマンドを送出する構成を、既存のFTPクライアントプログラムが備える場合がある。この場合、クライアント側のユーザは、ファイル名一覧により表示された拡張機能の種類のうち、いずれかを指定するという簡単な操作で、拡張機能の種類を特定してサーバに対して要求することができるという効果がある。
【0023】
請求項6記載のネットワーク型記憶装置によれば、請求項5記載のネットワーク型記憶装置の奏する効果に加え、転送要求コマンドという、既存のFTPクライアントプログラムで送信可能なコマンドに基づいて、クライアント側から要求された種類の拡張機能を提供することができるという効果がある。
【図面の簡単な説明】
【0024】
【図1】本発明の実施形態であるMFPと、MFPに接続されるPCとから構成される画像表示システムの電気的構成を模式的に示すブロック図である。
【図2】FTPクライアントプログラムにより、PCの表示パネルに表示されるウインドウの一例を示す図であって、(a)はファイル名一覧を表示するウインドウであり、(b)は拡張機能一覧を要求するときのウインドウである。
【図3】PCの表示パネルに表示されるウインドウの一例を示す図であって、(a)は、拡張機能一覧を表示するウインドウであり、(d)は、提供されたサムネイル画像を表示するウインドウである。
【図4】MFPとPCとの間におけるデータの流れを示すシーケンス図である。
【図5】MFPが実行するFTPコマンド処理を示すフローチャートである。
【図6】MFPが実行するフォルダ名分類処理を示すフローチャートである。
【図7】MFPが実行する拡張機能処理を示すフローチャートである。
【発明を実施するための形態】
【0025】
以下、本発明の好ましい実施形態について、添付図面を参照して説明する。図1は、本発明のネットワーク型記憶装置の実施形態である多機能周辺装置(以下、「MFP(Multi Function Peripheral)」と略す)1と、MFP1に接続されるパーソナルコンピュータ20(以下、PC20)とから構成される画像表示システム100の電気的構成を模式的に示すブロック図である。
【0026】
図1に示すように、MFP1とPC20とは、LAN(Local Area Network)50を介して互いに接続され、MFP1はFTPサーバとして機能し、PC20はFTPクライアントとして機能する。
【0027】
MFP1は、メモリカード40に格納されたファイルを印刷出力するフォトメディアキャプチャ機能、プリンタ機能、コピー機能、スキャナ機能、ファクシミリ機能などの各種の機能を1台に備えている。特に、本実施形態のMFP1は、拡張機能を利用するための専用のプログラムをクライアントに搭載させる、などの負担をクライアント側に負わせることを抑制しつつ、FTPの拡張機能をクライアントに利用させることができるように構成されている。
【0028】
MFP1は、CPU2と、ROM3と、RAM4と、LANインターフェース(以下、「LANI/F」と称する)5と、スキャナ6と、プリンタ7と、メディア装着用スロット8と、MFP1で各種機能を実行させるための複数の操作入力キー(ボタンやスイッチなど)と表示画面とから構成される操作パネル9と、電話回線(図示なし)を介して画像情報を送受信するファクシミリ部10と、フラッシュメモリ11と、を主に備えている。
【0029】
ROM3は、CPU2によって実行される制御プログラム3a、FTPサーバプログラム3bや、図示しない固定値データを格納する。FTPサーバプログラム3bは、図5から図7のフローチャートで示す処理をCPU2に実行させるためのプログラムである。RAM4は、そのCPU2により実行される各種処理に必要なデータ等を一時的に記憶する。
【0030】
LANI/F5は、LAN50を介して通信を行うインターフェースである。なお、この実施形態では、MFP1とPC20との間におけるファイル転送のプロトコルとして、FTP(File Transfer Protocol)を使用する。
【0031】
スキャナ6は、CPU2からの指示に基づいて、所定の読取位置(非図示)にセットされた原稿から画像の読み取りを行うものである。プリンタ7は、CPU2からの指示に基づいて、所定の給紙位置(非図示)にセットされた記録紙への印刷を行う。
【0032】
メディア装着用スロット8は、各種メモリカード40を着脱自在に装着可能な複数のスロットを備え、そのスロットに装着されたメモリカード40に記憶されているデータを読み出したり、所望のデータを書き込むことができるものである。メモリカード40は、書き換えができると共に電源が遮断された場合でも記憶を保持するフラッシュメモリにより構成され、各社から種々のタイプのもの(例えば、SDメモリカードやxDピクチャカード)が提供されている。MFP1のCPU2は、制御プログラム3aに従い、メモリカード40に記憶されるファイルおよびファイルを分類するフォルダを、FAT(File allocation Table)と称されるファイルシステムによって管理する。
【0033】
ファクシミリ部10は、スキャナ6により読み取られたイメージデータや、LAN50を介して受信したデータなどを電話回線を介して送信し、電話回線を介して受信したデータをプリンタ7で印刷したり、LAN50を介してPC20へ送信したりすることができる。フラッシュメモリ11は、種々のデータの書き込み、および読み出しを行うことができる。
【0034】
次に、PC20について説明する。PC20は、CPU21と、CPU21により実行される各種の制御プログラムや固定値データを記憶するROM22と、CPU21により実行される各種処理に必要なデータやプログラム等を一時的に記憶するためのメモリであるRAM23と、各種設定を記憶し書き換え可能で不揮発性のメモリであるハードディスク24と、各種情報を表示する液晶ディスプレイにより構成される表示パネル25と、各種機能を設定するための複数の操作入力キーを有するキーボードとマウスにより構成される入力装置27と、LAN50に接続するためのインターフェースであるLANI/F26とを備えている。
【0035】
ハードディスク24には、図示しないOS(Operating System)と共に、FTPクライアントプログラム24aが設けられている(インストールされている)。なお、このFTPクライアントプログラム24aは、Webブラウザ(図示せず)の一部であり、MFP1との間で、FTPに基づく通信を実現する。
【0036】
次に、図2,図3を参照して、FTPクライアントとしてのPC20が、FTPサーバとしてのMFP1からFTPの通常機能またはFTPの拡張機能の提供を受けるための操作手順について説明する。
【0037】
図2(a)は、FTPクライアントプログラム24aにより、PC20の表示パネル25に表示されるウインドウ30の一例を示す図である。図2(a)に示すように、ウインドウ30には、メニューバー31、アドレスバー32、描画エリア33が設けられる。メニューバー31は、コマンドを一覧表示するドロップダウンメニューの第1階層のメニューを表示する。
【0038】
アドレスバー32は、FTPアドレス(接続先情報)の入力欄である。PC20のユーザは、アドレスバー32にFTPアドレスを入力することにより、カレントディレクトリを指定する。
【0039】
図2(a)に示すように、FTPアドレスは、「ftp://」で始まり、次に、カレントディレクトリを指定するパスが続く。パスは、FTPサーバ名から始まる。図2(a)に示す例では、MFP1を表す「brother_cr」がFTPサーバ名に相当する。FTPサーバ名の次には、FTPサーバの管理下にあるルートフォルダからカレントディレクトリに至るまでに経由するフォルダ名が、'/'で区切られて、上位階層から順番に並ぶ。図2(a)に示す例では、「/DCIM/100_BRO/」とされている。すなわち、図2(a)に示す例では、MFP1の管理下にある、「DCMI」フォルダの下層の「100_BRO」フォルダを、カレントディレクトリとして指定する。
【0040】
図2(a)に示すFTPアドレスがアドレスバー32に入力されている状態で、PC20のユーザが、例えばエンターキー(図示せず)を押下すると、FTPクライアントプログラム24aは、一覧要求コマンドであるLISTコマンドを、MFP1に対して発行する。LISTコマンドは、FTPアドレスで指定するカレントディレクトリに分類される、ファイルデータのファイル名一覧を要求するコマンドである。このLISTコマンドは、既存のFTPクライアントプログラムで発行可能である。
【0041】
LISTコマンドに対しMFP1は、処理対象フォルダのファイル名一覧を作成し、PC20に返却する。PC20のFTPクライアントプログラム24aは、受信したファイル名一覧を、描画エリア33に表示する。図2(a)は、処理対象フォルダのファイル名一覧が、描画エリア33に表示された状態を示している。このファイル名一覧により、PC20のユーザは、メモリカード40内のフォルダに分類されるファイルのファイル名等を把握できる。
【0042】
次に、図2(b)を参照して、PC20のユーザがFTPの拡張機能の提供を受けようとする場合の操作を説明する。
【0043】
拡張機能の提供を受けようとする場合、PC20のユーザは、アドレスバー32に表示されるFTPアドレス(カレントディレクトリを指定するアドレス)の末尾に、文字列を追加する。ここで追加する文字列は、少なくともカレントディレクトリに分類されるファイルのファイル名(拡張子を含む)を、フォルダ名として含む。
【0044】
すなわち、図2(b)に示すように、「100_BRO」フォルダに分類されるファイル名一覧が、描画エリア33に表示されている状態で、PC20のユーザは、「100_BRO」フォルダに分類されるファイルのファイル名の末尾に、フォルダ名であることを表す'/'を付加して(図2(b)に示す例では「「DSCF2323.JPG/」)、表示中のFTPアドレスの末尾に追加する。その次に、予め定められた所定の文字列(図2(b)に示す例では「a」)を追加する。そして、ユーザはエンターキー(図示せず)を押下する。
【0045】
この場合、既存のWebブラウザの一部であるFTPクライアントプログラム24aは、カレントディレクトリの変更を要求するCWDコマンド、および、変更後のカレントディレクトリに分類されるファイル名一覧を要求するLISTコマンドを発行する。これらのCWDコマンド、LISTコマンドは、メモリカード40に存在しない非存在フォルダを指定することになる。
【0046】
すなわち、MFP1が採用するFAT(File Allocation Table)を含む多くのファイルシステムにおいては、ファイル名とフォルダ名とを一元管理しているため、あるファイルデータのファイル名(拡張子を含む)と、あるフォルダのフォルダ名とが同一である場合、そのファイルとフォルダとは、同一階層内に存在できない。図2に示す例であれば、「100_BRO」フォルダの1階層下に「DSCF2323.JPG」というファイル名のファイルが存在しているのであれば、「100_BRO」フォルダの1階層下に、「DSCF2323.JPG」というフォルダ名のフォルダは存在し得ない。したがって、図2(b)に示すFTPアドレスによって指定されるフォルダ(フォルダ名:DSCF2323.JPG)は、実際には存在しない非存在フォルダである。
【0047】
本実施形態のMFP1は、このような特徴を利用して構成されている。具体的には、上述のように存在しない(すなわち、CPU2によって管理されていない)非存在フォルダがFTPコマンドで指定されたことを条件として、FTPクライアントに対し、拡張機能を提供すると決定する。その結果、FTPクライアントプログラム24aは既存のものをそのまま利用しつつ、MFP1側では、PC20のユーザが拡張機能を要求しているか否かを判断し、適切な場合に、FTPクライアントに対して拡張機能を提供することができる。
【0048】
一方、拡張機能の提供を受けるためのPC20側の操作としては、ファイル名一覧を閲覧している状態(図2(a))で、表示中のファイル名をコピーして、カレントディレクトリを表すFTPアドレスの末尾にフォルダ名として含め、さらに定められた文字列(本実施例では「a」)を付加するという簡単な操作で、拡張機能の提供を受けることができる。
【0049】
また、ファイル名をフォルダ名として付加したFTPアドレスは存在し得ない非存在フォルダであるため、PC20のユーザが拡張機能を要求したにも拘わらず、実在するフォルダを処理対象としたFTPの通常の機能が提供されてしまう、という不都合の発生を抑制できる。
【0050】
図3(a)は、図2(b)に示す拡張機能の要求操作に対して、MFP1から返却された拡張機能一覧が、描画エリア33が表示されたウインドウ30を示す図である。
【0051】
図3(a)に示すように、拡張機能一覧は、拡張機能の種類を示す拡張機能名をファイル名としたファイル名の一覧でもある。
【0052】
ここで、図3(a)の拡張機能一覧に示される拡張機能の種類について説明する。
【0053】
_readme.txt : 各拡張機能の説明をする文書を提供する
date_time.txt : ファイルの日付時間情報を提供する
thumbnail.jpg : ファイルのサムネイルを提供する
image_info.txt : ファイルのサイズ、解像度の情報を提供する
exif_info.txt : exif情報(デジタルカメラの撮影情報)を提供する
dir_thumbnail.jpg: 同一フォルダ内の全ファイルのサムネイルを提供する
dir_exif_info.txt: 同一フォルダ内の全ファイルのexif情報を提供する
【0054】
図3(a)示す拡張機能一覧に表示されるファイルアイコンには、対応するファイルは実際には存在しない。しかしながら、拡張機能一覧にファイル名として表示された拡張機能名や、ファイルアイコンがPC20のユーザにより、例えばダブルクリックされた場合、既存のFTPクライアントプログラム24aは、その拡張機能名をファイル名としてFTPアドレスの末尾に追加し、ファイルデータ転送要求コマンドであるRETRコマンドをMFP1に対して送信する。
【0055】
図3(b)は、図3に示される拡張機能名のうち、thumbnail.jpgが、例えばダブルクリックなどにより指定された場合を説明する図である。その場合、FTPクライアントプログラム24bは、アドレスバー32の末尾に、指定された拡張機能名thumbnail.jpgを追加し、RETRコマンドを発行する。
【0056】
そのようなRETRコマンドによって指定されるファイルは実在するファイルではなく、さらに、その上位階層に指定されているフォルダ(フォルダ名「DSCF2323.JPG」)も実在しない非存在フォルダである。よって、MFP1は、ファイル名として指定されている拡張機能を、PC20に対して提供する。例えば、図3(b)に示す例では、非存在フォルダのフォルダ名によって指定されるファイル「DSCF2323.JPG」のサムネイルデータを作成し、PC20へ返却する。一方、FTPクライアントプログラム24aでは、受信したサムネイルデータに基づいて、描画エリア33にサムネイルを表示する。MFP1からPC20へ転送されるデータはサムネイルデータだけであるので、サムネイル表示のためにファイル全体の転送を要した従来のFTPサーバ−クライアントの関係に比較して、通信の負荷が軽い。
【0057】
図4は、MFP1(FTPサーバ)とPC20(FTPクライアント)との間におけるデータの流れを示すシーケンス図である。
【0058】
FTPサーバであるMFP1は、所定のポートでクライアントからの接続要求を待つ。そして、接続要求を受けると、接続要求を待っていたポートとは別ポートから、FTPサービス開始の準備ができたことをクライアントに通知する。図4に示すシーケンス図は、その後のデータの流れを示している。
【0059】
まず、PC20からMFP1にログインする。MFP1は認証を行い、正常を通知する(図4:J1,J2)。
【0060】
次いでPC20からMFP1にLISTコマンドを発行する(図4:J3)。MFP1はメモリカード40内のディレクトリエリアをリードし(図4:J4,J5)、PC20にファイル名一覧を転送する(図4:J6)。これにより、PC20では、図2(a)を参照して説明したように、ウインドウ30にファイル名一覧が表示される。
【0061】
次に、PC20から拡張機能一覧を要求する。具体的には、図2(b)を参照して説明したように、カレントディレクトリの1階層下のフォルダのフォルダ名として、ファイル名と同一のフォルダ名201を指定し、さらに、1階層下のフォルダのフォルダ名として'a'を指定する。図2(b)を参照して説明したように、アドレスバー32にユーザが入力したFTPアドレスの末尾に'/'が存在していなかったとしても、FTPクライアントプログラム24aは、カレントディレクトリの2階層下を指定する文字列「a」は、フォルダ名であるものと判断し、フォルダ名であることを示す'/'を自動で末尾に付加して、CWDコマンドを送信する(図4:J7)。
【0062】
なお、フォルダやファイルを指定するパラメータが付加されるコマンドが存在する一方で、フォルダやファイルを指定するパラメータが付加されないコマンドも存在する。しかしながら、図4においては、各コマンドが指定するフォルダやファイルを分かりやすく示すため、パラメータが付加されないコマンドについても、そのコマンドが指定するフォルダやファイル名をあえて図示している場合がある。さらに、フォルダ名201よりも上位階層のフォルダについて、図4においては、そのフォルダ名の記載を省略している。
【0063】
上述したように、カレントディレクトリの1階層下に、ファイル名と同一のフォルダ名201を有するフォルダは存在しない。したがって、フォルダ名201のフォルダを指定するCWDコマンドは非存在フォルダを指定している。通常のFTPサーバであれば、このようなコマンドに対してエラーを返却するが、本実施形態のMFP1は、正常を通知する(図4:J8)。
【0064】
CWDコマンドに対して正常の通知を受けたPC20は、変更後のカレントディレクトリに対応したフォルダに分類されるファイル名一覧を要求するLISTコマンドを発行する(図4:J9)。上述するように、カレントディレクトリに対応するフォルダは非存在フォルダであるから、本実施形態のMFP1は、拡張機能の一つとして、提供可能な拡張機能一覧を作成し、PC2に返却する(図4:J10)。これにより、PC20では、図3(a)を参照して説明したように、ウインドウ30に拡張機能一覧が表示される。
【0065】
次に、PC20は、拡張機能のうちいずれかを選択し要求する。具体的には、図3(a)を参照して説明したように、拡張機能一覧にファイル名として表示された拡張機能名のうち、いずれかが指定された場合、指定された拡張機能名をファイル名202として指定する(すなわち末尾に'/'を付さない)、RETRコマンドを発行する(図4:J11)。J11に示すRETRコマンドは、フォルダ名201としてファイル名と同一のフォルダ名を指定しており、ファイル名202として、サムネイルを提供する拡張機能名「thumbnail.jpg」を指定する。
【0066】
MPF1は、フォルダ名201と同一のファイル名の転送ファイルZ1をメモリカード40から読み出す(図4:J12,J13)。そして、転送ファイルZ1からサムネイル画像データ203を作成または抽出し、テンポラリファイルを作成して、PC2にFTP転送する(図4:J14)。これにより、PC20では、図3(b)を参照して説明したように、ウインドウ30にサムネイルが表示される。
【0067】
次に、RETRコマンドにおいて、exif情報を提供する拡張機能名「exif_info.txt」が、ファイル名202として指定されている場合について説明する(図4:J15)。この場合、MPF1は、フォルダ名201にて指定される転送ファイルZ1をメモリカード40から読み出す(図4:J16,J17)。そして、転送ファイルZ1からexif情報を作成または抽出し、テンポラリファイルを作成して、PC2にFTP転送する(図4:J18)。これにより、PC20では、所望のファイルのexif情報を閲覧することができる。
【0068】
このように、既存のFTPクライアントプログラム24aであっても、RETRコマンドによって、拡張機能の処理対象のファイル、および拡張機能の種類を指定することができる。
【0069】
さらに、FTPクライアントプログラム24aは、ウインドウ30の描画エリア33に、ファイルが移動またはコピーされた場合、カレントディレクトリを処理対象フォルダとして指定して、そのフォルダにファイルを分類して書き込むSTORコマンドを発行する(J19)。STORコマンドが指定するフォルダ名201に、ファイル名と同一のフォルダ名201が含まれる場合、通常のFTPサーバであれば、このようなコマンドに対してエラーを返却するが、本実施形態のMFP1は、正常を通知し、データ転送用ポートによりPC20からファイルを受信する。
【0070】
例えば、J15で取得されるexif情報を記述したファイルを、PC20で編集し、その編集後のファイルを、ウインドウ30の描画エリア33へ移動またはコピーする操作がされた場合、PC20からMFP1へはSTORコマンドが発行され、MFP1は、その編集後のexif情報を受信する。そして、フォルダ名201と同一のファイル名のファイルのexif情報を、受信したファイルに基づいて書き換える拡張機能を提供する(J20)。
【0071】
なお、STORコマンドを受信したMFP1が正常を通知し、別ポートを開き、ファイルを受信する処理自体は、公知の処理であるため、本実施形態においては、図示および詳細な説明を省略する。
【0072】
本実施形態のMFP1によれば、クライアント側から受信したFTPコマンドが指定するフォルダが非存在フォルダであることを条件として、FTPコマンドの送信元に拡張機能を提供する。よって、クライアント側では、非存在フォルダを指定するFTPコマンドを発行する、という既存のFTPクライアントプログラムで容易に実現できる処理で、拡張機能を利用することができる。
【0073】
図5は、MFP1において実行されるFTPコマンド処理を示すフローチャートである。まず、CPU2は、ステップ(以下、ステップを省略する)S501として、クライアント側から送出されたFTPコマンドを受信する(S501)。次に、CPU2は、FTPコマンドを受信したか否かを判断する(S502)。S502の判断が否定される場合(S502:No)、S501に戻る。一方、S502の判断が肯定される場合(S502:Yes)、CPU2は、受信したFTPコマンドの種類を判断する(S504)。
【0074】
FTPコマンドの種類が「RETR」または「STOR」と判断された場合(S504:RETRまたはSTOR)、これらのコマンドには、ファイルを指定するパラメータが付加されているから、それに基づいて、ファイルを特定するフルパス(すなわち、ルートから指定されたファイルに至るまでのパス)を取得し、file_fullpに格納する(S506)。
【0075】
次に、file_fullpを、フルパスフォルダ名(すなわち、ルートからファイルの1階層上に当たるフォルダに至るまでのパス)と、パス無しファイル名(すなわち、ファイル名のの文字列)とに分解する。そして、フルパスフォルダ名を、dir_fullpに格納し、パス無しファイル名を、file_nopに格納する(S508)。このステップにより取得するフルパスフォルダ名は、FTPコマンドが指定するフォルダのフォルダ名を含むパスである。そして、このパスを判断するフォルダ名分類処理に移行する(S512)。
【0076】
一方、FTPコマンドの種類が「CWD」または「LIST」と判断された場合(S504:CWDまたはLIST)、これらのコマンドが指定するフォルダを指定するためのフルパスを取得し、dir_fullpに格納する(S510)。フォルダを特定するフルパスが、FTPコマンドが指定するフォルダのフォルダ名を含むパスである。そして、このステップにより取得したパスを判断するフォルダ名分類処理に移行する(S512)。
【0077】
一方、FTPコマンドが、RETR,STOR,CWD,LISTのいずれにも該当しない場合(S504:その他)、通常のFTP処理を実行し(S518)、S501に戻る。
【0078】
フォルダ名分類処理(S512)は、S508またはS510のいずれかで取得されるパスに基づいて、クライアント側に通常機能と拡張機能とのいずれを提供するかを決定する処理である。詳細は、図6を参照して後述する。
【0079】
次に、CPU2は、拡張機能の提供が決定されたか否かを判断する(S514)。S514の判断が肯定される場合(S514:Yes)、CPU2は、FTPコマンドの送信元に拡張機能を提供する拡張機能処理(S516)を実行し、S501に戻る。
【0080】
一方、S514の判断が否定される場合(S514:No)、CPU2は、FTPコマンドの送信元に拡張機能を提供せず、通常のFTP処理を実行し(S518)、S501に戻る。
【0081】
図6は、フォルダ名分類処理(S512)を示すフローチャートである。この処理では、まず、CPU2は、取得したパス(dir_fullp)によって特定されるフォルダが、実際に存在するフォルダであるか否かを判断する(S602)。すなわち、パスによって特定されるフォルダが、MFP1の管理下にある記憶部(メモリカード4を含む)に実際に記憶されているフォルダであるか否かを判断する。S602の判断が肯定される場合(S602:Yes)、CPU2は、提供する機能として通常処理を決定し(S610)、この処理を終える。
【0082】
一方、S602の判断が否定される場合(S602:No)、次に、取得したパス(dir_fullp)の最後の文字列が"a"であるか否かを判断する(S604)。すなわち、取得したパスに含まれる最下層のフォルダ名を表す文字列が「a」であるか否かを判断する。S604の判断が否定される場合(S604:No)、提供する機能として通常処理を決定し(S610)、この処理を終える。
【0083】
一方、S604の判断が肯定される場合(S604:Yes)、次に、CPU2は、取得したパス(dir_fullp)の最下層フォルダの"/a"の一階層上のフォルダのフォルダ名201(図4参照)と、同一のファイル名(拡張子を含む)のファイルがメモリカード4に存在するか否かを判断する(S606)。すなわち、取得したパスに含まれるフォルダ名に、メモリカード4に記憶されるファイルのファイル名と同一のフォルダ名が含まれるか否かを判断する。S606の判断が否定される場合(S606:No)、提供する機能として通常処理を決定し(S610)、この処理を終える。
【0084】
一方、S606の判断が肯定される場合(S606:Yes)、提供する機能として拡張処理を決定し(S608)、この処理を終える。
【0085】
この処理によれば、FTPコマンドが指定するフォルダが、CPU2によって管理されていない非存在フォルダであり、且つ、フォルダ名にファイル名が含まれると判断されることを条件として、拡張機能が提供される。よって、クライアント側で拡張機能を要求したにも拘わらず、実在するフォルダを処理対象とした通常の機能を提供してしまう、という不都合の発生を抑制できる。
【0086】
図7は、拡張機能処理(S516)を示すフローチャートである。この処理では、まず、CPU2はFTPコマンドを判断する(S702)。まず、受信したFTPコマンドがLISTコマンドであると判断される場合について説明する。この場合(S702:LIST)、der_fullpの'/a'の前側を、target_fileに格納する(S712)。すなわち、図4に示すファイル名と同一のフォルダ名201を、target_fileに格納する。
【0087】
次に、CPU2は、target_fileに含まれる拡張子を判断する(S714)。すなわち、ファイル名と同一であると判断されたフォルダ名には、拡張子が含まれているから、その拡張子を判断するのである。
【0088】
拡張子が、jpg,bmp,gifなどの静止画系拡張子である場合(S714:静止画系拡張子)、CPU2は、静止画系の拡張機能一覧を作成する(S722)。なお、静止画系の拡張機能一覧には、図3(a)を参照して説明した、拡張機能が含まれる。
【0089】
拡張子が、mpg,mov,aviなどの動画系拡張子である場合(S714:動画系拡張子)、CPU2は、動画系の拡張機能一覧を作成する(S724)。動画系の拡張機能一覧には、上述した_readme/txt、date_time/txtに加え、例えば、以下の拡張機能名が含まれる。
【0090】
top_chap_5sec.mov :先頭5秒の動画を提供する
【0091】
拡張子が、zip,lzhなどの圧縮系拡張子である場合(S714:圧縮系拡張子)、CPU2は、圧縮系の拡張機能一覧を作成する(S726)。圧縮系の拡張機能一覧には、上述した_readme/txt、date_time/txtに加え、例えば、以下の拡張機能名が含まれる。
【0092】
compress_file_list.txt :圧縮されているファイルのリストを提供する
【0093】
一方、拡張子が、静止画系、動画系、圧縮系以外の拡張子である場合(S714:その他)、全てのファイルでサポートされる拡張機能一覧、具体的には、上述した拡張機能名のうち、_readme.txtとdate_time.txtを含む拡張機能一覧を作成する(S716)。
【0094】
なお、S716,S722,S724,S726で作成される拡張機能一覧は、図3(a)を参照して説明したように、各拡張機能の種類を特定する文字列をファイル名とした一覧である。
【0095】
次に、作成した拡張機能一覧をデータ転送用ポートでクライアントに送信し(S718)、クライアントに正常を通知して(S720)、処理を終了する。これにより、S714で判断した拡張子の種類に応じて定まる、提供可能な拡張機能の種類を、FTPコマンドの送信元に対して通知する機能を提供できる。すなわち、FTPクライアントであるPC20側から見れば、拡張機能の提供を受けたいファイルのファイル名をコピーして、そのファイル名をフォルダ名201(図4参照)として指定するLISTコマンドを発行するという、既存のFTPクライアントプログラムで容易に実行できる処理により、選択したファイルに対して受けることができる拡張機能の種類を知ることができる。
【0096】
一方、受信したコマンドがRETRコマンドであると判断される場合(S702:RETR)、taeget_file(図4に示すファイル名201)から、file_nop(図4に示すファイル名202)に対応するデータを、テンポラリファイルに作成する(S704)。そして、データ転送用ポートでテンポラリファイルをクライアントに送信して(S706)、正常を通知し(S708)、テンポラリファイルを削除し(S710)、処理を終了する。このようにすれば、RETRコマンドという、既存のFTPクライアントプログラムで送信可能なコマンドに基づいて、要求された情報を送信する拡張機能を提供できる。
【0097】
一方、受信したコマンドがSTORコマンドであると判断される場合(S702:STOR)、taeget_file(図4に示すファイル名201)のプロパティ(例えば、exif情報やファイルの属性情報など)を、受信したファイルに基づいて書き換え(S728)、処理を終了する。このようにすれば、STORコマンドという、既存のFTPクライアントプログラムで送信可能なコマンドに基づいて、要求された情報を書き換える拡張機能を提供できる。なお、STORコマンドを受信後、実際にファイルを受信するまでの処理は、既存のFTPの処理と同一であるため、図7においては図示および説明を省略することとする。
【0098】
一方、受信したコマンドがCWDコマンドであると判断される場合(S702:CWD)、クライアントに正常を通知する(S730)。すなわち、CWDコマンドが非存在フォルダを指定するにも関わらず、正常を通知する。これにより、クライアント側では、実在するフォルダを指定した場合と同様に、次のLISTコマンドを発行する処理が実行される。
【0099】
本実施形態のMFP1によれば、拡張機能を利用するための専用のプログラムをクライアントに搭載させる、などの負担をクライアント側に負わせることを抑制しつつ、クライアント側から要求があった場合に、拡張機能を利用させることができる。
【0100】
上記実施形態において、CPU2が管理手段の一例であり、メディア装着用スロット8がメディア装着用スロットの一例であり、メモリカード40が、記憶メディアの一例であり、ファイルがファイルデータの一例である。CPU11が管理手段の一例であり、FTPサーバプログラム3bがFTPサーバのプログラムの一例に相当する。また、S501を実行するCPU2がコマンド受信手段の一例に相当し、S516を実行するCPU2が拡張機能提供手段の一例に相当し、S508,S510を実行するCPU2がパス取得手段の一例に相当する。
【0101】
また、S606を実行するCPU2がファイル名判断手段の一例に相当し、S702を実行するCPU2が一覧要求コマンド判断手段、転送要求コマンド判断手段の一例に相当し、S718を実行するCPU2が機能種類通知手段の一例に相当し、S714を実行するCPU2が拡張子判断手段の一例に相当し、S716,S722,S724,S726を実行するCPU2が一覧作成手段の一例に相当する。また、拡張機能名が、機能特定文字列の一例に相当する。
【0102】
以上、実施形態に基づき本発明を説明したが、本発明は上述した実施形態に何ら限定されるものでなく、本発明の趣旨を逸脱しない範囲内で種々の改良変形が可能であることは容易に推察できるものである。
【0103】
例えば、上記実施例では、メディア装着用スロット8は、MFP1に組み込まれているものとしたが、カードリーダまたはカードリーダライタ単独の機能を有するものでもよい。
【0104】
また、本実施例では、ファイルシステムがFATであるものとして説明したが、ファイルシステムとして、例えば、NTFS(NT File System)など他のファイルシステムが用いられる場合にも本発明を適用することができる。
【0105】
また、上記実施形態では、ファイル名と同一のフォルダ名201で指定するフォルダのさらに1階層下のフォルダ(フォルダ名a)が、FTPコマンドで指定されている場合に、拡張機能を提供することとしたが、これに代えて、ファイル名と同一のフォルダ名201がパスに含まれていれば、さらに下の階層の指定フォルダの有無に拘わらず、拡張機能を提供するように構成しても良い。FTPクライアントプログラムによっては、カレントディレクトリに対応するFTPアドレスの下層を指定する文字列が追加されると、その文字列がフォルダ名であるかファイル名であるかを自動で判断し、処理を振り分ける仕様のものが存在する。その場合、拡張機能の提供を要求するために、文字列を追加すると、ユーザがファイル名をフォルダ名として追加したにも関わらず、自動でファイル名として処理されるおそれがある。よって、上記実施形態のように、ファイル名と同一のフォルダ名201のさらに下層にフォルダ名をユーザに指定させることにより、ユーザが入力した文字列がそのまま処理され、確実に拡張機能を提供できるのである。
【符号の説明】
【0106】
1 MFP
2 CPU
20 PC
24a FTPクライアントプログラム

【特許請求の範囲】
【請求項1】
記憶メディアが着脱可能に装着されるメディア装着用スロットと、
前記記憶メディアに記憶されるファイルデータおよび前記ファイルデータを分類するフォルダを管理する管理手段とを備え、FTPサーバのプログラムが組み込まれたネットワーク型記憶装置であって、
FTPクライアントプログラムが設けられたクライアント側からのFTPコマンドを受信するコマンド受信手段と、
前記コマンド受信手段により受信したFTPコマンドが指定するフォルダが、前記管理手段によって管理されていない非存在フォルダであることを条件として、前記FTPコマンドの送信元に、拡張機能を提供する拡張機能提供手段とを備えることを特徴とするネットワーク型記憶装置。
【請求項2】
前記コマンド受信手段により受信した前記FTPコマンドが指定するフォルダのフォルダ名を含むパスを取得するパス取得手段と、
そのパス取得手段により取得されるパスに含まれるフォルダ名に、前記記憶メディアに記憶されるファイルデータのファイル名と同一のフォルダ名が含まれるかを判断するファイル名判断手段とを備え、
前記拡張機能提供手段は、
前記FTPコマンドが指定するフォルダが前記非存在フォルダであり、且つ、前記ファイル名判断手段により前記フォルダ名に前記ファイル名が含まれると判断されることを条件として、前記拡張機能を提供するものであることを特徴とする請求項1記載のネットワーク型記憶装置。
【請求項3】
前記コマンド受信手段により受信したFTPコマンドが、フォルダに分類されるファイルデータのファイル名一覧を要求する一覧要求コマンドであるかを判断する一覧要求コマンド判断手段を備え、
前記拡張機能提供手段は、
前記拡張機能の一つとして、
前記一覧要求コマンド判断手段により、前記FTPコマンドが前記一覧要求コマンドであると判断される場合、提供可能な拡張機能の種類を前記FTPコマンドの送信元に対して通知する機能を提供する機能種類通知手段を備えることを特徴とする請求項2記載のネットワーク型記憶装置。
【請求項4】
前記ファイル名判断手段により前記ファイル名と同一であると判断されたフォルダ名の拡張子を判断する拡張子判断手段を備え、
前記機能種類通知手段は、
前記拡張子判断手段により判断された拡張子の種類に応じて定まる、提供可能な拡張機能の種類を、前記FTPコマンドの送信元に対して通知するものであることを特徴とする請求項3記載のネットワーク型記憶装置。
【請求項5】
前記機能種類通知手段は、
各拡張機能の種類を特定する機能特定文字列をファイル名としたファイル名一覧を作成する一覧作成手段と、
その一覧作成手段により作成したファイル名一覧を、前記FTPコマンドの送信元に転送することにより、前記拡張機能の種類を通知するものであることを特徴とする請求項3または4に記載のネットワーク型記憶装置。
【請求項6】
前記コマンド受信手段により受信したFTPコマンドが、ファイルデータの転送処理を要求する転送要求コマンドであるかを判断する転送要求コマンド判断手段を備え、
前記拡張機能提供手段は、
前記FTPコマンドにより処理対象ファイルデータのファイル名として指定される機能特定文字列を取得する機能特定文字列取得手段と、
前記転送要求コマンド判断手段により、前記FTPコマンドが前記転送要求コマンドであると判断される場合、前記機能特定文字列取得手段により取得される機能特定文字列で特定される拡張機能を提供する特定機能提供手段を備えることを特徴とする請求項5記載のネットワーク型記憶装置。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2010−211692(P2010−211692A)
【公開日】平成22年9月24日(2010.9.24)
【国際特許分類】
【出願番号】特願2009−59350(P2009−59350)
【出願日】平成21年3月12日(2009.3.12)
【出願人】(000005267)ブラザー工業株式会社 (13,856)
【Fターム(参考)】