JP2004310371A - ファイル共有システム及び方法、ファイル共有サーバ、ファイル共有サービスのクライアント端末、ファイル共有プログラム、ファイル共有プログラムを記録した記録媒体 - Google Patents
ファイル共有システム及び方法、ファイル共有サーバ、ファイル共有サービスのクライアント端末、ファイル共有プログラム、ファイル共有プログラムを記録した記録媒体 Download PDFInfo
- Publication number
- JP2004310371A JP2004310371A JP2003101996A JP2003101996A JP2004310371A JP 2004310371 A JP2004310371 A JP 2004310371A JP 2003101996 A JP2003101996 A JP 2003101996A JP 2003101996 A JP2003101996 A JP 2003101996A JP 2004310371 A JP2004310371 A JP 2004310371A
- Authority
- JP
- Japan
- Prior art keywords
- file
- encoding
- file name
- encoded
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】複数の文字エンコーディングが混在する環境であってもサーバとクライアント端末の双方において文字化けの発生を防止することができるファイル共有システムを提供する。
【解決手段】クライアント端末20ファイル共有サーバ10間の通信において共有ファイルを特定するために、各クライアント端末20でのエンコーディングがサポートする文字集合及びファイル共有サーバ10でのエンコーディングがサポートする文字集合をサポートする第3のエンコーディングによりファイル名を符号化する。
【選択図】 図1
【解決手段】クライアント端末20ファイル共有サーバ10間の通信において共有ファイルを特定するために、各クライアント端末20でのエンコーディングがサポートする文字集合及びファイル共有サーバ10でのエンコーディングがサポートする文字集合をサポートする第3のエンコーディングによりファイル名を符号化する。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、複数の文字エンコーディングが混在する環境において、ファイル共有サーバがクライアント端末に対してファイル共有サービスを提供する技術に関する。
【0002】
【従来の技術】
クライアント端末とファイル共有サーバの文字エンコーディングが異なるファイル共有システムとしては、従来、SambaとNetatalkというフリーソフトが広く知られている。
【0003】
SambaはWindows(登録商標)系のクライアント端末のためのファイル共有システムで、サーバはUnix(登録商標)系OS上で動作する。Sambaにおいて日本語ファイル名を扱う場合には、Windows系クライアントで用いられるMS932エンコーディング(Shift−JISのWindows拡張)のファイル名を、サーバでは他の異なるエンコーディングに変換している。サーバ側でのエンコーディングとしては、例えばUnix系OSで一般的なEUC_JPエンコーディングなどが挙げられる(非特許文献1,2参照)。
【0004】
一方、NetatalkはMacOS(登録商標)系のクライアント端末のためのファイル共有システムで、サーバはUnix系OS上で動作する。MacOS系クライアントで用いられるエンコーディング(Shift−JISのApple拡張)のファイル名を、サーバでは他の異なるエンコーディングに変換している(非特許文献1,2参照)。
【0005】
【非特許文献1】
高橋 基信,”Samba 2.0.x/2.2.x で日本語を利用する方法”,[online],平成13年11月26日,[平成15年4月1日検索],インターネット<URL:http://www.monyo.com/technical/samba/Japanese−HOWTO.ja.txt>
【非特許文献2】
奥山 健一,”Samba QandA ”,[online],平成13年6月17日,[平成15年4月1日検索],インターネット<URL:http://www.dd.iij4u.or.jp/ ̄okuyamak/Documents/Samba−QandA.j.html>
【0006】
【発明が解決しようとする課題】
しかし、上記各システムでは以下に示すような問題があった。
【0007】
(問題点1)
Sambaでは、MS932エンコーディングがサポートする文字集合にはあるが、サーバ側のエンコーディングがサポートする文字集合にない文字をファイル名に使用すると、サーバ上で文字化けしてしまい、再度クライアント側で同ファイルを受信すると、本来クライアント側で表示可能なファイル名であるにもかかわらず、その表示ができないという問題があった。
【0008】
(問題点2)
Samba及びNetatalkではサーバ上での変換モードによっては特殊な文字列置換を行う機能があり、このモードを使うとクライアント側で表示可能などのようなファイル名でもサーバ上に保存することができ、また再度クライアントに戻す際にも文字化けが生じないという利点がある。しかし、この方式では、アスキー文字以外の全ての文字がサーバ上とクライアント上とで全く異なるものとなるため、ユーザがファイル共有サーバに直接ログインしてファイル名を参照するときに不便であるという問題点があった。例えば、MacOS系端末からNetatalk経由でUnixマシンの自分のホームディレクトリに日本語ファイルを転送後、Unixマシンにログインして同ファイルを編集する場合などが挙げられる。
【0009】
(問題点3)
さらに、SambaもNetatalkもクライアント端末側のエンコーディングは固定であると仮定しているため、これらのファイル共有システムを用いてWindows端末・MacOS端末間でファイル共有する場合には、お互い表示できる文字であるにもかかわらず文字化けを起こすことがある。これは、Windows系OSとMacOSにおける日本語ファイル名の扱いは、共にShift−JISコードをベースにしているが、外字などにはそれぞれ独自のコードが割り当てられており文字によっては互換性がないためである。
【0010】
本発明は、上記事情に鑑みてなされたものであり、その目的とするところは、複数の文字エンコーディングが混在する環境であってもサーバとクライアント端末の双方において文字化けの発生を防止することができるファイル共有システムを提供することにある。
【0011】
【課題を解決するための手段】
上記目的を達成するために、本願発明では、ファイル共有サーバとクライアント端末との間のファイル共有サービスに係る通信では、第3のエンコーディングにより符号化されたファイル名を用いて共有ファイルを識別し、ファイル共有サーバ及びクライアント端末では、第3のエンコーディングで符号化されたファイル名と自身で用いるエンコーディングで符号化されたファイル名とを相互に変換するようにした。ここで、第3のエンコーディングは、各クライアント端末においてファイル名の符号化に用いるエンコーディング(クライアント側エンコーディング)のサポートする文字集合とファイル共有サーバにおいてファイル名の符号化に用いるエンコーディング(サーバ側エンコーディング)のサポートする文字集合とを包含する文字集合をサポートするエンコーディングである。
【0012】
これにより、各クライアント端末においてファイル名の符号化に用いるエンコーディングが互いに異なるものであっても、各クライアント端末において共有ファイル名の文字化けを防止できる。すなわち、前述の問題点3を解決できる。
【0013】
また、本願発明では、ファイル共有サーバ又は各クライアント端末においてファイル名を相互変換する際に、第3のエンコーディングで符号化されたファイル名に、自身のエンコーディングで符号化不可能な文字が含まれていた場合に、当該ファイル名に対する別名として自身のエンコーディングで符号化可能なファイル名(別ファイル名)を生成するとともに、第3のエンコーディングで符号化されたファイル名と別ファイル名との対応関係を記憶装置に記憶しておき、この記憶装置に記憶されている対応関係を参照してファイル名の相互変換を行うようにした。
【0014】
これにより、自身で使用不可能なファイル名は別ファイル名に変換されるが、この別ファイル名と第3のエンコーディングで符号化されたファイル名との対応関係を記憶装置に保存してあるので、別ファイル名から第3のエンコーディングで符号化されたファイル名を復元することができる。したがって、前述の問題点1を解決できる。一方、自身で使用可能なファイル名は別ファイル名に変換されることなく、自身のエンコーディングで符号化されたファイル名で保存される。したがって、前述の問題点2を解決できる。
【0015】
【発明の実施の形態】
本発明の一実施の形態に係るファイル共有システムについて図面を参照して説明する。図1はファイル共有システムのシステム構成図である。
【0016】
図1に示すように、このファイル共有システムは、ファイル名を符号化するためのエンコーディングが複数混在している環境で、ファイル共有サーバ10が複数のクライアント端末20に対してネットワーク30を介してファイル共有サービスを提供するものである。図1の例では、ファイル共有サーバ10は、OSとしてLinux(登録商標)を採用し、ファイル名のエンコーディングにはEUC_JPを用いた。また、クライアント端末20aは、OSとしてWindowsを採用し、ファイル名のエンコーディングにはMS932を用いた。さらに、クライアント端末20bは、OSとしてMacOSを採用し、ファイル名のエンコーディングにはMacTECを用いた。
【0017】
本実施の形態では、このような環境下において、ファイル名が「ファイル▲1▼」と「ファイル(1)」((1)は全部で1文字の記号:以下の文章において同じ)の2つのファイルをクライアント端末20a及び20bで共有する場合について説明する。
【0018】
この場合、日本語版のWindows系OSと日本語版のMacOSでは、ファイル名のエンコーディングにShift−JISをベースにしたものを用いているが、外字などには独自のコードを割り当てており文字によっては互換性がない。例えば、「▲1▼」も互換性のない文字の一つであり、Windows系OSとMacOSでは別々のコードを割り当てている。このため、従来のファイル共有システムでは、Windows系OS上の「▲1▼」を含むファイル名のファイルをMacOSと共有すると、MacOS端末上では「▲1▼」の部分が「(日)」((日)は全部で1文字の記号)に文字化けした。本発明の目的の1つは、このような問題点を解決することである(前述の問題点3参照)。
【0019】
また、「(1)」は、EUC_JPの文字集合にはない記号なので、従来のファイル共有システムでは、サーバ上で文字化けしてしまい、再度クライアント側にファイルを戻してもファイル名が元に戻らなかった。本発明の目的の1つは、このような問題点を解決することである(前述の問題点1参照)。
【0020】
さらに、従来のファイル共有システムの1つであるNetatalkでは、アスキー文字以外の文字を全て、特殊な文字列に置換してサーバ上に保存することにより、MacOS上でファイル名として使える文字を全て使うことができる。しかし、サーバに直接ログインしてファイル名を扱う際には、本来、サーバ上でファイル名として使えるファイル名まで置換されてしまっているため使い勝手に問題がある。本発明の目的の1つは、このような問題点を解決することである(前述の問題点2参照)。
【0021】
このような目的を達成するために、本発明では、図1に示すように、各クライアント端末20とファイル共有サーバ10との間の通信経路においては、第3のエンコーディングで符号化したファイル名で共有ファイルを識別する。この第3のエンコーディングとしては、サーバ側エンコーディング(本実施形態ではEUC_JP)がサポートする文字集合と、各クライアント側エンコーディング(本実施形態ではMS932及びMacTEC)がサポートする文字集合を包含する文字集合をサポートするものを用いる。本実施の形態では、ユニコードの1つであるUTF8を用いた。
【0022】
ファイル共有サーバ10は、図2に示すように、共有ファイルを保存しておく記憶装置である共有ディスク11と、クライアント端末20との間でファイルの送受信を行うファイル送受信部12と、クライアント端末20からのアクセス要求を受け付けるとともに該要求に応じてファイル送信やファイル受信などを制御するアクセス要求処理部13と、共有ディスク11に対してファイル送受信部12で送受信するファイルを読み書きするファイルアクセス部14と、第3のエンコーディングで符号化されたファイル名とサーバ側エンコーディングで符号化されたファイル名とを相互に変換するファイル名相互変換部15とを備えている。
【0023】
ファイル送受信部12・アクセス要求処理部13・ファイルアクセス部14は、それぞれ、共有ディスク11に保存されている共有ファイルを特定する際にはサーバ側エンコーディングで符号化されたファイル名を用い、一方、クライアント端末20との間の通信において共有ファイルを特定する際には第3のエンコーディングで符号化されたファイル名を用いる。このため、ファイル送受信部12・アクセス要求処理部13・ファイルアクセス部14は、必要に応じてファイル名相互変換部15を用いて、ファイル名の変換を行う。
【0024】
ファイル共有サーバ10のファイル名相互変換部15は、ファイル送受信部12・アクセス要求処理部13・ファイルアクセス部14からの変換要求に応じて、第3のエンコーディングで符号化されたファイル名とサーバ側エンコーディングで符号化されたファイル名とを相互に変換する。ここで、第3のエンコーディングで符号化されたファイル名に、サーバ側エンコーディングで符号化できない文字が含まれている場合には、該ファイル名に対して別ファイル名を生成し、この別ファイル名を変換ファイル名とする。そして、第3のエンコーディングで符号化されたファイル名と該別ファイル名とを対応づけて所定の記憶装置に記憶する。本実施の形態では、この記憶装置として共有ディスク11を用いた。以下に、ファイル名相互変換部15の動作の詳細について図面を参照して説明する。
【0025】
まず、第3のエンコーディングで符号化されたファイル名を、サーバ側エンコーディングで符号化されたファイル名に変換する方法について図3を参照して説明する。
【0026】
図3に示すように、ファイル名相互変換部15は、まず変換対象となるファイル名に、サーバ側エンコーディングで符号化できない文字が含まれているかどうかを判定し(ステップS1)、含まれていない場合には、変換対象となるファイル名をサーバ側エンコーディングで符号化し、これを変換ファイル名とする(ステップS2)。
【0027】
サーバ側エンコーディングで符号化できない文字が含まれている場合には、変換対象となるファイル名に対して所定の生成規則で別ファイル名を生成し、これを変換ファイル名とする(ステップS3)。そして、この別ファイル名から第3のエンコーディングで符号化されたファイル名に復元できるように、両者の対応関係を記憶装置に記憶しておく(ステップS4)。
【0028】
前記別ファイル名の生成規則としては、例えば第3のエンコーディングで符号化されたファイル名のバイト列をアスキー文字列で表したものが挙げられる。本実施の形態では、第3のエンコーディングとしてUTF8を用い、サーバ側エンコーディングとしてEUC_JPを用いているので、UTF8のファイル名に、「(1)」のようなEUC_JPで表せない文字が含まれている場合は、「u30d5u301au3014u30ebu2474」のように、各文字を’u’と、その文字のUnicode値を16進文字列で表したものを組み合わせた文字列に置換することにより別ファイル名を生成する。
【0029】
また、別ファイル名と第3のエンコーディングで符号化されたファイル名との対応関係を記憶する方法として、本実施の形態では、共有ディスクの所定の位置(所定のディレクトリ)に、別ファイル名を有し且つ内容が第3のエンコーディングで符号化されたファイル名のバイト列を格納する方法を用いた。他の方法としては、データベース管理システム(DBMS)を用いて両者の対応関係を記憶する方法が挙げられる。
【0030】
一方、サーバ側エンコーディングで符号化されたファイル名を、第3のエンコーディングで符号化されたファイル名に変換する方法について図4を参照して説明する。
【0031】
図4に示すように、ファイル名相互変換部15は、変換対象となるファイル名が、別ファイル名として第3のエンコーディングで符号化されたファイル名との対応関係が記憶されているか否かを判定し(ステップS11)、対応関係がない場合には、変換対象となるファイル名を第3のエンコーディングに変換する(ステップS12)。対応関係がある場合には、変換対象となるファイル名に対応する第3のエンコーディングで符号化されたファイル名を取得し、これを変換ファイル名とする(ステップS13)。
【0032】
各クライアント端末20は、図5に示すように、自身で用いる記憶装置であるローカルディスク21と、ファイル共有サーバ10との間でファイルの送受信を行うファイル送受信部22と、ファイル共有サーバ10に対してファイル送信・ファイル受信・ファイルリスト要求などのサービスを要求するサービス要求部23と、ローカルディスク21に対してファイル送受信部22で送受信するファイルを読み書きするファイルアクセス部24と、第3のエンコーディングで符号化されたファイル名とクライアント側エンコーディングで符号化されたファイル名とを相互に変換するファイル名相互変換部25とを備えている。このファイル相互変換部25は、ファイル共有サーバ10のファイル名相互変換部15とは異なり、別ファイル名の生成は行わない。
【0033】
なお、ファイル共有サーバ10及び各クライアント端末20をJava(登録商標)で実装する場合には以下のような方法により各機能を実現できる。ここでは第3のエンコーディングとしてUTF8を用いる場合について説明する。自身で用いるエンコーディングからUTF8にエンコーディング変換するには、java.io.OutputStreamWriterを文字エンコーディング”UTF8”で生成することで実現可能である。
【0034】
また、UTF8から自身で用いるエンコーディングに変換するには、文字エンコーディングに”UTF8”を指定して生成したjava.io.IutputStreamReaderで、UTF8エンコーディングのファイル名を受信することで実現可能である。
【0035】
さらに、ファイルを保存する際には、前記ファイル名でjava.io.Fileを生成することにより、ファイルシステムのデフォルトのエンコーディングにエンコーディングされたファイル名でファイルが保存される。
【0036】
さらに、UTF8のファイル名が、自身で用いるエンコーディングで表せるか否かを判断するには、String::getBytes()メソッドで、自身で用いるエンコーディングでの前記ファイル名のバイト列を得て、再度そのバイト列を引数にStringを生成して元のファイル名と一致するか判定することによって可能である。一致しない場合は、自身で用いるエンコーディングで表せない文字が含まれていると判断できる。
【0037】
次に、本実施の形態に係るファイル共有システムの動作について図6〜図9を参照して説明する。まず、クライアント端末20がファイル共有サーバ10にファイルを送信する場合について図6のシーケンスチャートを参照して説明する。
【0038】
まず、クライアント端末20は、送信するファイルのファイル名を第3のエンコーディングに変換し(ステップS21)、第3のエンコーディングに変換したファイル名を表すバイト列と、ローカルディスク21から読み出した送信ファイルの中身のバイト列をファイル共有サーバ10に送信する(ステップS22)。
【0039】
ファイル共有サーバ10は、クライアント端末20からファイルを受信すると(ステップS22)、第3のエンコーディングで符号化されている受信ファイルのファイル名を、サーバ側エンコーディングに変換する(ステップS23)。そして、このステップS23で変換されたファイル名で、受信ファイルの実体を共有ディスク11に保存する(ステップS24)。なお、前述したように、前記ステップS23での変換過程において、受信ファイルのファイル名にサーバ側エンコーディングで変換できない文字が含まれている場合には、別ファイル名が生成され、受信ファイルはこの別ファイル名で保存される。そして、第3のエンコーディングでエンコーディングされている受信ファイルのファイル名と別ファイル名の対応関係が共有ディスク11に記憶される。
【0040】
以上のステップによりクライアント端末20から受信したファイルを共有ディスク11に保存した際のファイル構成の一例について図7を参照して説明する。本実施形態では、Windows系OSを採用したクライアント端末20aと、MacOSを採用したクライアント端末20bが、Unix系OSを採用したファイル共有サーバ10を用いてファイル共有を行っている。図8は、「ファイル▲1▼」「ファイル(1)」という2つのファイルを共有した場合の共有ディスク11のファイル構成を示している。
【0041】
図8に示すように、「ファイル▲1▼」の実体は「ファイル▲1▼」という名前のファイル41として共有ディスク11に保存される。一方、「ファイル(1)」の実体は「u30d5u301au3014u30ebu2474」という別ファイル名のファイル42として共有ディスク11に保存される。この「u30d5u301au3014u30ebu2474」という文字列は、UTF8でエンコードされた「ファイル(1)」のバイト列をアスキー文字で表したものである。そして、「.name」という名前が付された専用のディレクトリ43内に、前記別ファイル名「u30d5u301au3014u30ebu2474」と同一の名前が付されたファイル44が生成される。このファイル44の実体は、UTF8でエンコードされた「ファイル(1)」のバイト列である。
【0042】
次に、クライアント端末20がファイル共有サーバ10から共有ディスク11に保存されているファイルのファイル名リストを取得する場合について図8のシーケンスチャートを参照して説明する。
【0043】
クライアント端末20がファイル共有サーバ10に対してファイル名リストの取得を要求すると(ステップS31)、ファイル共有サーバ10は、まず共有ディスク11に保存されている共有ファイルの一覧を取得する(ステップS32)。次に、このリストに含まれるファイル名を、第3のエンコーディングに変換し(ステップS33)、変換したファイル名リストをクライアント端末20に対して返す(ステップS34)。なお、前記ステップS32において、共有ファイルのファイル名が、別ファイル名として共有ディスク11の所定の位置(図7の例では、「.name」ディレクトリ)に記憶されている場合には、該別ファイル名に対応し且つ第3のエンコーディングで符号化されたファイル名を、変換したファイル名とする。
【0044】
クライアント端末20は、受信したファイル名リストを自身で用いるクライアント側エンコーディングに変換する(ステップS35)。
【0045】
次に、クライアント端末20がファイル共有サーバ10から共有ディスク11に保存されている共有ファイルを受信する場合について図9のシーケンスチャートを参照して説明する。
【0046】
まず、クライアント端末20は、受信を要求するファイルのファイル名を第3のエンコーディングに変換し(ステップS41)、この変換したファイル名でファイル共有サーバ10にファイルの送信を要求する(ステップS42)。
【0047】
ファイル共有サーバ10は、受信したファイル名をサーバ側エンコーディングに変換して(ステップS43)、この変換したファイル名で共有ディスク11からファイルを取得し(ステップS44)、このファイルをクライアント端末20に返す(ステップS45)。なお、前記ステップS43において、共有ファイルのファイル名が、別ファイル名として共有ディスク11の所定の位置(図7の例では、「.name」ディレクトリ)に記憶されている場合には、該別ファイル名に対応し且つ第3のエンコーディングで符号化されたファイル名を、変換したファイル名とする。
【0048】
クライアント端末20は、受信したファイルの実体をローカルディスク21に保存する(ステップS46)。
【0049】
以上詳述したように、本実施の形態に係るファイル共有システムによれば、クライアント端末20とファイル共有サーバ10との間でのファイル名の送受する際には、各クライアント側エンコーディングでサポートする文字集合及びサーバ側エンコーディングでサポートする文字集合をサポートする第3のエンコーディングを用いてファイル名を符号化するので、各クライアント端末20においてエンコーディングが異なっていても文字化けが生じない。
【0050】
また、ファイル共有サーバ20では、第3のエンコーディングからサーバ側エンコーディングにファイル名を変換できる場合には、コード変換したファイル名をそのまま用いるため、サーバ上で使用可能なファイル名はそのままサーバ上で読むことができる。
【0051】
さらに、第3のエンコーディングで符号化されているファイル名に、サーバ側エンコーディングの文字集合に含まれない文字が含まれていた場合、第3のエンコーディングで符号化されているファイル名を入力として、サーバ側エンコーディングで表現可能な別ファイル名を生成し、これをサーバ上でのファイル名とするとともに、第3のエンコーディングで符号化されている本来のファイル名と前記別ファイル名との対応関係を記憶しているので、同ファイルを再度クライアント端末20に戻す際に、本来のファイル名を復元できる。
【0052】
以上本発明の一実施の形態について詳述したが本発明はこれに限定されるものではない。例えば、上記実施の形態では、ファイル共有サーバ10及びクライアント端末20は、予め設定しておいた第3のエンコーディングを使用していたが、サービス提供時にクライアント端末20がファイル共有サーバ10に対して、使用する第3のエンコーディングを通知し、この第3のエンコーディングを用いてファイル名の変換を行うようにしてもよい。
【0053】
また、上記実施の形態では、クライアント端末20は、自身のクライアント側エンコーディングで符号化されたファイル名と、第3のエンコーディングで符号化されたファイル名とを、相互に変換するのみであったが、ファイル共有サーバ10と同様に、第3のエンコーディングで符号化されたファイル名に、自身のクライアント側エンコーディングで変換不可能な文字が含まれている場合には、別ファイル名を生成するようにしてもよい。この場合、ファイル共有サーバ10と同様に、本来のファイル名と別ファイル名の対応関係を記憶しておき、この対応関係に基づきファイル名の変換を行えばよい。
【0054】
さらに、上記実施の形態では、クライアント端末20がファイル共有サーバ10からファイルを受信する際には、自身のクライアント側エンコーディングで符号化されたファイル名を、第3のエンコーディングで符号化されたファイル名に変換し、このファイル名を用いてファイル共有サーバ10に要求を行っていたが、ファイル共有サーバ10から第3のエンコーディングで符号化されたファイル名のリストを取得している場合には(図8参照)、このリストから選択したファイル名を用いてファイル共有サーバ10に要求を行うようにしてもよい。
【0055】
さらに、上記実施の形態では、ファイル共有サーバ10が、第3のエンコーディングで符号化されたファイル名を、サーバ側エンコーディングで符号化されたファイル名に変換する際に、変換後のファイル名にファイル共有サーバ10のファイルシステムで使用不可能な文字が含まれている場合にも別ファイル名を生成するようにしてもよい。例えば、Unix系OSではファイル名として「/」を用いることができないので、このような場合に別ファイル名を用いるようにすればよい。
【0056】
さらに、上記実施の形態で示した各OSやエンコーディングは本発明の一例に過ぎず、他のOS及びエンコーディングを用いても本発明を実施できることは言うまでもない。さらに、上記実施の形態では、Javaによる実装例について例示したが、他の実装方法によっても本発明を実施できることは言うまでもない。
【0057】
【発明の効果】
以上詳述したように、本発明によれば、各クライアント端末においてファイル名の符号化に用いるエンコーディングが互いに異なるものであっても、各クライアント端末において共有ファイル名の文字化けを防止できる。すなわち、前述の問題点3を解決できる。
【0058】
また、本発明によれば、自身で使用不可能なファイル名は別ファイル名に変換されるが、この別ファイル名と第3のエンコーディングで符号化されたファイル名との対応関係を記憶装置に保存してあるので、別ファイル名から第3のエンコーディングで符号化されたファイル名を復元することができる。したがって、前述の問題点1を解決できる。一方、自身で使用可能なファイル名は別ファイル名に変換されることなく、自身のエンコーディングで符号化されたファイル名で保存される。したがって、前述の問題点2を解決できる。
【図面の簡単な説明】
【図1】ファイル共有システムのシステム構成図
【図2】ファイル共有サーバの構成図
【図3】ファイル共有サーバにおけるファイル名変換を説明するフローチャート
【図4】ファイル共有サーバにおけるファイル名変換を説明するフローチャート
【図5】クライアント端末の構成図
【図6】クライアント端末からファイル共有サーバにファイルを送信する際のシーケンスチャート
【図7】共有ディスクに保存されたファイルの構成を説明する図
【図8】ファイル共有サーバに保存したファイル名のリストをクライアント端末に送信する際のシーケンスチャート
【図9】ファイル共有サーバからクライアント端末にファイルを送信する際のシーケンスチャート
【符号の説明】
10…ファイル共有サーバ、11…共有ディスク、12…ファイル送受信部、13…アクセス要求処理部、14…ファイルアクセス部、15…ファイル名相互変換部、20…クライアント端末、21…ローカルディスク、22…ファイル送受信部、23…サービス要求部、24…ファイルアクセス部、25…ファイル名相互変換部、30…ネットワーク
【発明の属する技術分野】
本発明は、複数の文字エンコーディングが混在する環境において、ファイル共有サーバがクライアント端末に対してファイル共有サービスを提供する技術に関する。
【0002】
【従来の技術】
クライアント端末とファイル共有サーバの文字エンコーディングが異なるファイル共有システムとしては、従来、SambaとNetatalkというフリーソフトが広く知られている。
【0003】
SambaはWindows(登録商標)系のクライアント端末のためのファイル共有システムで、サーバはUnix(登録商標)系OS上で動作する。Sambaにおいて日本語ファイル名を扱う場合には、Windows系クライアントで用いられるMS932エンコーディング(Shift−JISのWindows拡張)のファイル名を、サーバでは他の異なるエンコーディングに変換している。サーバ側でのエンコーディングとしては、例えばUnix系OSで一般的なEUC_JPエンコーディングなどが挙げられる(非特許文献1,2参照)。
【0004】
一方、NetatalkはMacOS(登録商標)系のクライアント端末のためのファイル共有システムで、サーバはUnix系OS上で動作する。MacOS系クライアントで用いられるエンコーディング(Shift−JISのApple拡張)のファイル名を、サーバでは他の異なるエンコーディングに変換している(非特許文献1,2参照)。
【0005】
【非特許文献1】
高橋 基信,”Samba 2.0.x/2.2.x で日本語を利用する方法”,[online],平成13年11月26日,[平成15年4月1日検索],インターネット<URL:http://www.monyo.com/technical/samba/Japanese−HOWTO.ja.txt>
【非特許文献2】
奥山 健一,”Samba QandA ”,[online],平成13年6月17日,[平成15年4月1日検索],インターネット<URL:http://www.dd.iij4u.or.jp/ ̄okuyamak/Documents/Samba−QandA.j.html>
【0006】
【発明が解決しようとする課題】
しかし、上記各システムでは以下に示すような問題があった。
【0007】
(問題点1)
Sambaでは、MS932エンコーディングがサポートする文字集合にはあるが、サーバ側のエンコーディングがサポートする文字集合にない文字をファイル名に使用すると、サーバ上で文字化けしてしまい、再度クライアント側で同ファイルを受信すると、本来クライアント側で表示可能なファイル名であるにもかかわらず、その表示ができないという問題があった。
【0008】
(問題点2)
Samba及びNetatalkではサーバ上での変換モードによっては特殊な文字列置換を行う機能があり、このモードを使うとクライアント側で表示可能などのようなファイル名でもサーバ上に保存することができ、また再度クライアントに戻す際にも文字化けが生じないという利点がある。しかし、この方式では、アスキー文字以外の全ての文字がサーバ上とクライアント上とで全く異なるものとなるため、ユーザがファイル共有サーバに直接ログインしてファイル名を参照するときに不便であるという問題点があった。例えば、MacOS系端末からNetatalk経由でUnixマシンの自分のホームディレクトリに日本語ファイルを転送後、Unixマシンにログインして同ファイルを編集する場合などが挙げられる。
【0009】
(問題点3)
さらに、SambaもNetatalkもクライアント端末側のエンコーディングは固定であると仮定しているため、これらのファイル共有システムを用いてWindows端末・MacOS端末間でファイル共有する場合には、お互い表示できる文字であるにもかかわらず文字化けを起こすことがある。これは、Windows系OSとMacOSにおける日本語ファイル名の扱いは、共にShift−JISコードをベースにしているが、外字などにはそれぞれ独自のコードが割り当てられており文字によっては互換性がないためである。
【0010】
本発明は、上記事情に鑑みてなされたものであり、その目的とするところは、複数の文字エンコーディングが混在する環境であってもサーバとクライアント端末の双方において文字化けの発生を防止することができるファイル共有システムを提供することにある。
【0011】
【課題を解決するための手段】
上記目的を達成するために、本願発明では、ファイル共有サーバとクライアント端末との間のファイル共有サービスに係る通信では、第3のエンコーディングにより符号化されたファイル名を用いて共有ファイルを識別し、ファイル共有サーバ及びクライアント端末では、第3のエンコーディングで符号化されたファイル名と自身で用いるエンコーディングで符号化されたファイル名とを相互に変換するようにした。ここで、第3のエンコーディングは、各クライアント端末においてファイル名の符号化に用いるエンコーディング(クライアント側エンコーディング)のサポートする文字集合とファイル共有サーバにおいてファイル名の符号化に用いるエンコーディング(サーバ側エンコーディング)のサポートする文字集合とを包含する文字集合をサポートするエンコーディングである。
【0012】
これにより、各クライアント端末においてファイル名の符号化に用いるエンコーディングが互いに異なるものであっても、各クライアント端末において共有ファイル名の文字化けを防止できる。すなわち、前述の問題点3を解決できる。
【0013】
また、本願発明では、ファイル共有サーバ又は各クライアント端末においてファイル名を相互変換する際に、第3のエンコーディングで符号化されたファイル名に、自身のエンコーディングで符号化不可能な文字が含まれていた場合に、当該ファイル名に対する別名として自身のエンコーディングで符号化可能なファイル名(別ファイル名)を生成するとともに、第3のエンコーディングで符号化されたファイル名と別ファイル名との対応関係を記憶装置に記憶しておき、この記憶装置に記憶されている対応関係を参照してファイル名の相互変換を行うようにした。
【0014】
これにより、自身で使用不可能なファイル名は別ファイル名に変換されるが、この別ファイル名と第3のエンコーディングで符号化されたファイル名との対応関係を記憶装置に保存してあるので、別ファイル名から第3のエンコーディングで符号化されたファイル名を復元することができる。したがって、前述の問題点1を解決できる。一方、自身で使用可能なファイル名は別ファイル名に変換されることなく、自身のエンコーディングで符号化されたファイル名で保存される。したがって、前述の問題点2を解決できる。
【0015】
【発明の実施の形態】
本発明の一実施の形態に係るファイル共有システムについて図面を参照して説明する。図1はファイル共有システムのシステム構成図である。
【0016】
図1に示すように、このファイル共有システムは、ファイル名を符号化するためのエンコーディングが複数混在している環境で、ファイル共有サーバ10が複数のクライアント端末20に対してネットワーク30を介してファイル共有サービスを提供するものである。図1の例では、ファイル共有サーバ10は、OSとしてLinux(登録商標)を採用し、ファイル名のエンコーディングにはEUC_JPを用いた。また、クライアント端末20aは、OSとしてWindowsを採用し、ファイル名のエンコーディングにはMS932を用いた。さらに、クライアント端末20bは、OSとしてMacOSを採用し、ファイル名のエンコーディングにはMacTECを用いた。
【0017】
本実施の形態では、このような環境下において、ファイル名が「ファイル▲1▼」と「ファイル(1)」((1)は全部で1文字の記号:以下の文章において同じ)の2つのファイルをクライアント端末20a及び20bで共有する場合について説明する。
【0018】
この場合、日本語版のWindows系OSと日本語版のMacOSでは、ファイル名のエンコーディングにShift−JISをベースにしたものを用いているが、外字などには独自のコードを割り当てており文字によっては互換性がない。例えば、「▲1▼」も互換性のない文字の一つであり、Windows系OSとMacOSでは別々のコードを割り当てている。このため、従来のファイル共有システムでは、Windows系OS上の「▲1▼」を含むファイル名のファイルをMacOSと共有すると、MacOS端末上では「▲1▼」の部分が「(日)」((日)は全部で1文字の記号)に文字化けした。本発明の目的の1つは、このような問題点を解決することである(前述の問題点3参照)。
【0019】
また、「(1)」は、EUC_JPの文字集合にはない記号なので、従来のファイル共有システムでは、サーバ上で文字化けしてしまい、再度クライアント側にファイルを戻してもファイル名が元に戻らなかった。本発明の目的の1つは、このような問題点を解決することである(前述の問題点1参照)。
【0020】
さらに、従来のファイル共有システムの1つであるNetatalkでは、アスキー文字以外の文字を全て、特殊な文字列に置換してサーバ上に保存することにより、MacOS上でファイル名として使える文字を全て使うことができる。しかし、サーバに直接ログインしてファイル名を扱う際には、本来、サーバ上でファイル名として使えるファイル名まで置換されてしまっているため使い勝手に問題がある。本発明の目的の1つは、このような問題点を解決することである(前述の問題点2参照)。
【0021】
このような目的を達成するために、本発明では、図1に示すように、各クライアント端末20とファイル共有サーバ10との間の通信経路においては、第3のエンコーディングで符号化したファイル名で共有ファイルを識別する。この第3のエンコーディングとしては、サーバ側エンコーディング(本実施形態ではEUC_JP)がサポートする文字集合と、各クライアント側エンコーディング(本実施形態ではMS932及びMacTEC)がサポートする文字集合を包含する文字集合をサポートするものを用いる。本実施の形態では、ユニコードの1つであるUTF8を用いた。
【0022】
ファイル共有サーバ10は、図2に示すように、共有ファイルを保存しておく記憶装置である共有ディスク11と、クライアント端末20との間でファイルの送受信を行うファイル送受信部12と、クライアント端末20からのアクセス要求を受け付けるとともに該要求に応じてファイル送信やファイル受信などを制御するアクセス要求処理部13と、共有ディスク11に対してファイル送受信部12で送受信するファイルを読み書きするファイルアクセス部14と、第3のエンコーディングで符号化されたファイル名とサーバ側エンコーディングで符号化されたファイル名とを相互に変換するファイル名相互変換部15とを備えている。
【0023】
ファイル送受信部12・アクセス要求処理部13・ファイルアクセス部14は、それぞれ、共有ディスク11に保存されている共有ファイルを特定する際にはサーバ側エンコーディングで符号化されたファイル名を用い、一方、クライアント端末20との間の通信において共有ファイルを特定する際には第3のエンコーディングで符号化されたファイル名を用いる。このため、ファイル送受信部12・アクセス要求処理部13・ファイルアクセス部14は、必要に応じてファイル名相互変換部15を用いて、ファイル名の変換を行う。
【0024】
ファイル共有サーバ10のファイル名相互変換部15は、ファイル送受信部12・アクセス要求処理部13・ファイルアクセス部14からの変換要求に応じて、第3のエンコーディングで符号化されたファイル名とサーバ側エンコーディングで符号化されたファイル名とを相互に変換する。ここで、第3のエンコーディングで符号化されたファイル名に、サーバ側エンコーディングで符号化できない文字が含まれている場合には、該ファイル名に対して別ファイル名を生成し、この別ファイル名を変換ファイル名とする。そして、第3のエンコーディングで符号化されたファイル名と該別ファイル名とを対応づけて所定の記憶装置に記憶する。本実施の形態では、この記憶装置として共有ディスク11を用いた。以下に、ファイル名相互変換部15の動作の詳細について図面を参照して説明する。
【0025】
まず、第3のエンコーディングで符号化されたファイル名を、サーバ側エンコーディングで符号化されたファイル名に変換する方法について図3を参照して説明する。
【0026】
図3に示すように、ファイル名相互変換部15は、まず変換対象となるファイル名に、サーバ側エンコーディングで符号化できない文字が含まれているかどうかを判定し(ステップS1)、含まれていない場合には、変換対象となるファイル名をサーバ側エンコーディングで符号化し、これを変換ファイル名とする(ステップS2)。
【0027】
サーバ側エンコーディングで符号化できない文字が含まれている場合には、変換対象となるファイル名に対して所定の生成規則で別ファイル名を生成し、これを変換ファイル名とする(ステップS3)。そして、この別ファイル名から第3のエンコーディングで符号化されたファイル名に復元できるように、両者の対応関係を記憶装置に記憶しておく(ステップS4)。
【0028】
前記別ファイル名の生成規則としては、例えば第3のエンコーディングで符号化されたファイル名のバイト列をアスキー文字列で表したものが挙げられる。本実施の形態では、第3のエンコーディングとしてUTF8を用い、サーバ側エンコーディングとしてEUC_JPを用いているので、UTF8のファイル名に、「(1)」のようなEUC_JPで表せない文字が含まれている場合は、「u30d5u301au3014u30ebu2474」のように、各文字を’u’と、その文字のUnicode値を16進文字列で表したものを組み合わせた文字列に置換することにより別ファイル名を生成する。
【0029】
また、別ファイル名と第3のエンコーディングで符号化されたファイル名との対応関係を記憶する方法として、本実施の形態では、共有ディスクの所定の位置(所定のディレクトリ)に、別ファイル名を有し且つ内容が第3のエンコーディングで符号化されたファイル名のバイト列を格納する方法を用いた。他の方法としては、データベース管理システム(DBMS)を用いて両者の対応関係を記憶する方法が挙げられる。
【0030】
一方、サーバ側エンコーディングで符号化されたファイル名を、第3のエンコーディングで符号化されたファイル名に変換する方法について図4を参照して説明する。
【0031】
図4に示すように、ファイル名相互変換部15は、変換対象となるファイル名が、別ファイル名として第3のエンコーディングで符号化されたファイル名との対応関係が記憶されているか否かを判定し(ステップS11)、対応関係がない場合には、変換対象となるファイル名を第3のエンコーディングに変換する(ステップS12)。対応関係がある場合には、変換対象となるファイル名に対応する第3のエンコーディングで符号化されたファイル名を取得し、これを変換ファイル名とする(ステップS13)。
【0032】
各クライアント端末20は、図5に示すように、自身で用いる記憶装置であるローカルディスク21と、ファイル共有サーバ10との間でファイルの送受信を行うファイル送受信部22と、ファイル共有サーバ10に対してファイル送信・ファイル受信・ファイルリスト要求などのサービスを要求するサービス要求部23と、ローカルディスク21に対してファイル送受信部22で送受信するファイルを読み書きするファイルアクセス部24と、第3のエンコーディングで符号化されたファイル名とクライアント側エンコーディングで符号化されたファイル名とを相互に変換するファイル名相互変換部25とを備えている。このファイル相互変換部25は、ファイル共有サーバ10のファイル名相互変換部15とは異なり、別ファイル名の生成は行わない。
【0033】
なお、ファイル共有サーバ10及び各クライアント端末20をJava(登録商標)で実装する場合には以下のような方法により各機能を実現できる。ここでは第3のエンコーディングとしてUTF8を用いる場合について説明する。自身で用いるエンコーディングからUTF8にエンコーディング変換するには、java.io.OutputStreamWriterを文字エンコーディング”UTF8”で生成することで実現可能である。
【0034】
また、UTF8から自身で用いるエンコーディングに変換するには、文字エンコーディングに”UTF8”を指定して生成したjava.io.IutputStreamReaderで、UTF8エンコーディングのファイル名を受信することで実現可能である。
【0035】
さらに、ファイルを保存する際には、前記ファイル名でjava.io.Fileを生成することにより、ファイルシステムのデフォルトのエンコーディングにエンコーディングされたファイル名でファイルが保存される。
【0036】
さらに、UTF8のファイル名が、自身で用いるエンコーディングで表せるか否かを判断するには、String::getBytes()メソッドで、自身で用いるエンコーディングでの前記ファイル名のバイト列を得て、再度そのバイト列を引数にStringを生成して元のファイル名と一致するか判定することによって可能である。一致しない場合は、自身で用いるエンコーディングで表せない文字が含まれていると判断できる。
【0037】
次に、本実施の形態に係るファイル共有システムの動作について図6〜図9を参照して説明する。まず、クライアント端末20がファイル共有サーバ10にファイルを送信する場合について図6のシーケンスチャートを参照して説明する。
【0038】
まず、クライアント端末20は、送信するファイルのファイル名を第3のエンコーディングに変換し(ステップS21)、第3のエンコーディングに変換したファイル名を表すバイト列と、ローカルディスク21から読み出した送信ファイルの中身のバイト列をファイル共有サーバ10に送信する(ステップS22)。
【0039】
ファイル共有サーバ10は、クライアント端末20からファイルを受信すると(ステップS22)、第3のエンコーディングで符号化されている受信ファイルのファイル名を、サーバ側エンコーディングに変換する(ステップS23)。そして、このステップS23で変換されたファイル名で、受信ファイルの実体を共有ディスク11に保存する(ステップS24)。なお、前述したように、前記ステップS23での変換過程において、受信ファイルのファイル名にサーバ側エンコーディングで変換できない文字が含まれている場合には、別ファイル名が生成され、受信ファイルはこの別ファイル名で保存される。そして、第3のエンコーディングでエンコーディングされている受信ファイルのファイル名と別ファイル名の対応関係が共有ディスク11に記憶される。
【0040】
以上のステップによりクライアント端末20から受信したファイルを共有ディスク11に保存した際のファイル構成の一例について図7を参照して説明する。本実施形態では、Windows系OSを採用したクライアント端末20aと、MacOSを採用したクライアント端末20bが、Unix系OSを採用したファイル共有サーバ10を用いてファイル共有を行っている。図8は、「ファイル▲1▼」「ファイル(1)」という2つのファイルを共有した場合の共有ディスク11のファイル構成を示している。
【0041】
図8に示すように、「ファイル▲1▼」の実体は「ファイル▲1▼」という名前のファイル41として共有ディスク11に保存される。一方、「ファイル(1)」の実体は「u30d5u301au3014u30ebu2474」という別ファイル名のファイル42として共有ディスク11に保存される。この「u30d5u301au3014u30ebu2474」という文字列は、UTF8でエンコードされた「ファイル(1)」のバイト列をアスキー文字で表したものである。そして、「.name」という名前が付された専用のディレクトリ43内に、前記別ファイル名「u30d5u301au3014u30ebu2474」と同一の名前が付されたファイル44が生成される。このファイル44の実体は、UTF8でエンコードされた「ファイル(1)」のバイト列である。
【0042】
次に、クライアント端末20がファイル共有サーバ10から共有ディスク11に保存されているファイルのファイル名リストを取得する場合について図8のシーケンスチャートを参照して説明する。
【0043】
クライアント端末20がファイル共有サーバ10に対してファイル名リストの取得を要求すると(ステップS31)、ファイル共有サーバ10は、まず共有ディスク11に保存されている共有ファイルの一覧を取得する(ステップS32)。次に、このリストに含まれるファイル名を、第3のエンコーディングに変換し(ステップS33)、変換したファイル名リストをクライアント端末20に対して返す(ステップS34)。なお、前記ステップS32において、共有ファイルのファイル名が、別ファイル名として共有ディスク11の所定の位置(図7の例では、「.name」ディレクトリ)に記憶されている場合には、該別ファイル名に対応し且つ第3のエンコーディングで符号化されたファイル名を、変換したファイル名とする。
【0044】
クライアント端末20は、受信したファイル名リストを自身で用いるクライアント側エンコーディングに変換する(ステップS35)。
【0045】
次に、クライアント端末20がファイル共有サーバ10から共有ディスク11に保存されている共有ファイルを受信する場合について図9のシーケンスチャートを参照して説明する。
【0046】
まず、クライアント端末20は、受信を要求するファイルのファイル名を第3のエンコーディングに変換し(ステップS41)、この変換したファイル名でファイル共有サーバ10にファイルの送信を要求する(ステップS42)。
【0047】
ファイル共有サーバ10は、受信したファイル名をサーバ側エンコーディングに変換して(ステップS43)、この変換したファイル名で共有ディスク11からファイルを取得し(ステップS44)、このファイルをクライアント端末20に返す(ステップS45)。なお、前記ステップS43において、共有ファイルのファイル名が、別ファイル名として共有ディスク11の所定の位置(図7の例では、「.name」ディレクトリ)に記憶されている場合には、該別ファイル名に対応し且つ第3のエンコーディングで符号化されたファイル名を、変換したファイル名とする。
【0048】
クライアント端末20は、受信したファイルの実体をローカルディスク21に保存する(ステップS46)。
【0049】
以上詳述したように、本実施の形態に係るファイル共有システムによれば、クライアント端末20とファイル共有サーバ10との間でのファイル名の送受する際には、各クライアント側エンコーディングでサポートする文字集合及びサーバ側エンコーディングでサポートする文字集合をサポートする第3のエンコーディングを用いてファイル名を符号化するので、各クライアント端末20においてエンコーディングが異なっていても文字化けが生じない。
【0050】
また、ファイル共有サーバ20では、第3のエンコーディングからサーバ側エンコーディングにファイル名を変換できる場合には、コード変換したファイル名をそのまま用いるため、サーバ上で使用可能なファイル名はそのままサーバ上で読むことができる。
【0051】
さらに、第3のエンコーディングで符号化されているファイル名に、サーバ側エンコーディングの文字集合に含まれない文字が含まれていた場合、第3のエンコーディングで符号化されているファイル名を入力として、サーバ側エンコーディングで表現可能な別ファイル名を生成し、これをサーバ上でのファイル名とするとともに、第3のエンコーディングで符号化されている本来のファイル名と前記別ファイル名との対応関係を記憶しているので、同ファイルを再度クライアント端末20に戻す際に、本来のファイル名を復元できる。
【0052】
以上本発明の一実施の形態について詳述したが本発明はこれに限定されるものではない。例えば、上記実施の形態では、ファイル共有サーバ10及びクライアント端末20は、予め設定しておいた第3のエンコーディングを使用していたが、サービス提供時にクライアント端末20がファイル共有サーバ10に対して、使用する第3のエンコーディングを通知し、この第3のエンコーディングを用いてファイル名の変換を行うようにしてもよい。
【0053】
また、上記実施の形態では、クライアント端末20は、自身のクライアント側エンコーディングで符号化されたファイル名と、第3のエンコーディングで符号化されたファイル名とを、相互に変換するのみであったが、ファイル共有サーバ10と同様に、第3のエンコーディングで符号化されたファイル名に、自身のクライアント側エンコーディングで変換不可能な文字が含まれている場合には、別ファイル名を生成するようにしてもよい。この場合、ファイル共有サーバ10と同様に、本来のファイル名と別ファイル名の対応関係を記憶しておき、この対応関係に基づきファイル名の変換を行えばよい。
【0054】
さらに、上記実施の形態では、クライアント端末20がファイル共有サーバ10からファイルを受信する際には、自身のクライアント側エンコーディングで符号化されたファイル名を、第3のエンコーディングで符号化されたファイル名に変換し、このファイル名を用いてファイル共有サーバ10に要求を行っていたが、ファイル共有サーバ10から第3のエンコーディングで符号化されたファイル名のリストを取得している場合には(図8参照)、このリストから選択したファイル名を用いてファイル共有サーバ10に要求を行うようにしてもよい。
【0055】
さらに、上記実施の形態では、ファイル共有サーバ10が、第3のエンコーディングで符号化されたファイル名を、サーバ側エンコーディングで符号化されたファイル名に変換する際に、変換後のファイル名にファイル共有サーバ10のファイルシステムで使用不可能な文字が含まれている場合にも別ファイル名を生成するようにしてもよい。例えば、Unix系OSではファイル名として「/」を用いることができないので、このような場合に別ファイル名を用いるようにすればよい。
【0056】
さらに、上記実施の形態で示した各OSやエンコーディングは本発明の一例に過ぎず、他のOS及びエンコーディングを用いても本発明を実施できることは言うまでもない。さらに、上記実施の形態では、Javaによる実装例について例示したが、他の実装方法によっても本発明を実施できることは言うまでもない。
【0057】
【発明の効果】
以上詳述したように、本発明によれば、各クライアント端末においてファイル名の符号化に用いるエンコーディングが互いに異なるものであっても、各クライアント端末において共有ファイル名の文字化けを防止できる。すなわち、前述の問題点3を解決できる。
【0058】
また、本発明によれば、自身で使用不可能なファイル名は別ファイル名に変換されるが、この別ファイル名と第3のエンコーディングで符号化されたファイル名との対応関係を記憶装置に保存してあるので、別ファイル名から第3のエンコーディングで符号化されたファイル名を復元することができる。したがって、前述の問題点1を解決できる。一方、自身で使用可能なファイル名は別ファイル名に変換されることなく、自身のエンコーディングで符号化されたファイル名で保存される。したがって、前述の問題点2を解決できる。
【図面の簡単な説明】
【図1】ファイル共有システムのシステム構成図
【図2】ファイル共有サーバの構成図
【図3】ファイル共有サーバにおけるファイル名変換を説明するフローチャート
【図4】ファイル共有サーバにおけるファイル名変換を説明するフローチャート
【図5】クライアント端末の構成図
【図6】クライアント端末からファイル共有サーバにファイルを送信する際のシーケンスチャート
【図7】共有ディスクに保存されたファイルの構成を説明する図
【図8】ファイル共有サーバに保存したファイル名のリストをクライアント端末に送信する際のシーケンスチャート
【図9】ファイル共有サーバからクライアント端末にファイルを送信する際のシーケンスチャート
【符号の説明】
10…ファイル共有サーバ、11…共有ディスク、12…ファイル送受信部、13…アクセス要求処理部、14…ファイルアクセス部、15…ファイル名相互変換部、20…クライアント端末、21…ローカルディスク、22…ファイル送受信部、23…サービス要求部、24…ファイルアクセス部、25…ファイル名相互変換部、30…ネットワーク
Claims (14)
- 一以上のクライアント端末に対してファイル共有サーバがファイル共有サービスを提供するファイル共有システムにおいて、
各クライアント端末は、各クライアント端末においてファイル名の符号化に用いるエンコーディング(クライアント側エンコーディング)のサポートする文字集合とファイル共有サーバにおいてファイル名の符号化に用いるエンコーディング(サーバ側エンコーディング)のサポートする文字集合とを包含する文字集合をサポートするエンコーディング(第3のエンコーディング)により符号化されたファイル名と、自身で用いるクライアント側エンコーディングで符号化されたファイル名とを相互に変換するファイル名変換手段を備え、
ファイル共有サーバは、前記第3のエンコーディングで符号化されたファイル名と、サーバ側エンコーディングで符号化されたファイル名とを相互に変換するファイル名変換手段を備え、
ファイル共有サーバとクライアント端末との間のファイル共有サービスに係る通信では、前記第3のエンコーディングにより符号化されたファイル名を用いて共有ファイルを識別するようにした
ことを特徴とするファイル共有システム。 - クライアント端末のファイル名変換手段又はファイル共有サーバのファイル名変換手段の何れか一方又は双方は、第3のエンコーディングで符号化されたファイル名に、自身のエンコーディングで符号化不可能な文字が含まれていた場合に、当該ファイル名に対する別名として自身のエンコーディングで符号化可能なファイル名(別ファイル名)を生成するとともに、第3のエンコーディングで符号化されたファイル名と別ファイル名との対応関係を記憶装置に記憶する別名生成記憶手段を備え、この記憶装置に記憶されている対応関係を参照してファイル名の相互変換を行う
ことを特徴とする請求項1記載のファイル共有システム。 - 前記別名生成記憶手段は、第3のエンコーディングで符号化されたファイル名に、自身のファイルシステムにおいて使用できない文字が含まれていた場合に、当該ファイル名に対してファイルシステムで使用可能なファイル名(別ファイル名)を生成するとともに、第3のエンコーディングで符号化されたファイル名と別ファイル名との対応関係を記憶装置に記憶する
ことを特徴とする請求項2記載のファイル共有システム。 - 前記記憶装置としてデータベース管理装置を用いた
ことを特徴とする請求項2又は3何れか1項記載のファイル共有システム。 - 前記別名生成記憶手段は、第3のエンコーディングで符号化されたファイル名がバイト列で記述され且つ該ファイル名に対応する別ファイル名を有するファイルを、自身のファイルシステムにおける所定の位置に保存する
ことを特徴とする請求項2又は3何れか1項記載のファイル共有システム。 - クライアント端末は、ファイル共有サーバからファイル共有サービスを受ける際に、第3のエンコーディングとして用いるエンコーディングをファイル共有サーバに通知するエンコーディング通知手段を備えた
ことを特徴とする請求項1記載のファイル共有システム。 - 一以上のクライアント端末に対してファイル共有サーバがファイル共有サービスを提供する方法において、
ファイル共有サーバとクライアント端末との間のファイル共有サービスに係る通信では、各クライアント端末においてファイル名の符号化に用いるエンコーディング(クライアント側エンコーディング)のサポートする文字集合とファイル共有サーバにおいてファイル名の符号化に用いるエンコーディング(サーバ側エンコーディング)のサポートする文字集合とを包含する文字集合をサポートするエンコーディング(第3のエンコーディング)により符号化されたファイル名を用いて共有ファイルを識別するようにし、
各クライアント端末は、前記第3のエンコーディングにより符号化されたファイル名と、自身で用いるクライアント側エンコーディングで符号化されたファイル名とを相互に変換することにより、共有ファイルに対して自身で用いるクライアント側エンコーディングで符号化されたファイル名を用いてアクセスし、
ファイル共有サーバは、前記第3のエンコーディングで符号化されたファイル名と、サーバ側エンコーディングで符号化されたファイル名とを相互に変換することにより、共有ファイルに対してサーバ側エンコーディングで符号化されたファイル名を用いてアクセスする
ことを特徴とするファイル共有方法。 - クライアント端末又はファイル共有サーバの何れか一方又は双方は、第3のエンコーディングで符号化されたファイル名に、自身のエンコーディングで符号化不可能な文字が含まれていた場合に、当該ファイル名に対する別名として自身のエンコーディングで符号化可能なファイル名(別ファイル名)を生成するとともに、第3のエンコーディングで符号化されたファイル名と別ファイル名との対応関係を記憶装置に記憶し、この記憶装置に記憶されている対応関係を参照してファイル名の相互変換を行う
ことを特徴とする請求項7記載のファイル共有方法。 - 前記別名生成記憶段階では、第3のエンコーディングで符号化されたファイル名に、自身のファイルシステムにおいて使用できない文字が含まれていた場合に、当該ファイル名に対してファイルシステムで使用可能なファイル名(別ファイル名)を生成するとともに、第3のエンコーディングで符号化されたファイル名と別ファイル名との対応関係を記憶装置に記憶する
ことを特徴とする請求項8記載のファイル共有方法。 - 一以上のクライアント端末に対してファイル共有サービスを提供するファイル共有サーバにおいて、
各クライアント端末においてファイル名の符号化に用いるエンコーディング(クライアント側エンコーディング)のサポートする文字集合とファイル共有サーバにおいてファイル名の符号化に用いるエンコーディング(サーバ側エンコーディング)のサポートする文字集合とを包含する文字集合をサポートするエンコーディング(第3のエンコーディング)により符号化されたファイル名と、サーバ側エンコーディングで符号化されたファイル名とを相互に変換するファイル名変換手段を備え、
クライアント端末との間のファイル共有サービスに係る通信では、前記第3のエンコーディングにより符号化されたファイル名を用いて共有ファイルを識別するようにした
ことを特徴とするファイル共有サーバ。 - ファイル共有サーバが提供するファイル共有サービスのクライアント端末において、
クライアント端末においてファイル名の符号化に用いるエンコーディング(クライアント側エンコーディング)のサポートする文字集合とファイル共有サーバにおいてファイル名の符号化に用いるエンコーディング(サーバ側エンコーディング)のサポートする文字集合とを包含する文字集合をサポートするエンコーディング(第3のエンコーディング)により符号化されたファイル名と、自身で用いるクライアント側エンコーディングで符号化されたファイル名とを相互に変換するファイル名変換手段を備え、
ファイル共有サーバとの間のファイル共有サービスに係る通信では、前記第3のエンコーディングにより符号化されたファイル名を用いて共有ファイルを識別するようにした
ことを特徴とするファイル共有サービスのクライアント端末。 - 一以上のクライアント端末に対してファイル共有サービスを提供するファイル共有サーバに、
各クライアント端末においてファイル名の符号化に用いるエンコーディング(クライアント側エンコーディング)のサポートする文字集合とファイル共有サーバにおいてファイル名の符号化に用いるエンコーディング(サーバ側エンコーディング)のサポートする文字集合とを包含する文字集合をサポートするエンコーディング(第3のエンコーディング)により符号化されたファイル名と、サーバ側エンコーディングで符号化されたファイル名とを相互に変換するファイル名変換手段として機能させることにより、ファイル共有サーバとの間のファイル共有サービスに係る通信では、前記第3のエンコーディングにより符号化されたファイル名を用いて共有ファイルを識別するようにした
ことを特徴とするファイル共有プログラム。 - ファイル共有サーバが提供するファイル共有サービスのクライアント端末に、
クライアント端末においてファイル名の符号化に用いるエンコーディング(クライアント側エンコーディング)のサポートする文字集合とファイル共有サーバにおいてファイル名の符号化に用いるエンコーディング(サーバ側エンコーディング)のサポートする文字集合とを包含する文字集合をサポートするエンコーディング(第3のエンコーディング)により符号化されたファイル名と、自身で用いるクライアント側エンコーディングで符号化されたファイル名とを相互に変換するファイル名変換手段として機能させることにより、ファイル共有サーバとの間のファイル共有サービスに係る通信では、前記第3のエンコーディングにより符号化されたファイル名を用いて共有ファイルを識別するようにした
ことを特徴とするファイル共有プログラム。 - 請求項12又は13何れか1項記載のファイル共有プログラムを記録した記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003101996A JP2004310371A (ja) | 2003-04-04 | 2003-04-04 | ファイル共有システム及び方法、ファイル共有サーバ、ファイル共有サービスのクライアント端末、ファイル共有プログラム、ファイル共有プログラムを記録した記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003101996A JP2004310371A (ja) | 2003-04-04 | 2003-04-04 | ファイル共有システム及び方法、ファイル共有サーバ、ファイル共有サービスのクライアント端末、ファイル共有プログラム、ファイル共有プログラムを記録した記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004310371A true JP2004310371A (ja) | 2004-11-04 |
Family
ID=33465618
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003101996A Pending JP2004310371A (ja) | 2003-04-04 | 2003-04-04 | ファイル共有システム及び方法、ファイル共有サーバ、ファイル共有サービスのクライアント端末、ファイル共有プログラム、ファイル共有プログラムを記録した記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004310371A (ja) |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008084738A1 (ja) * | 2007-01-09 | 2008-07-17 | Nippon Telegraph And Telephone Corporation | 符号化復号化装置、方法、プログラム、記録媒体 |
JP2009163300A (ja) * | 2007-12-28 | 2009-07-23 | Murata Mach Ltd | 中継サーバ及び中継通信システム |
US8005961B2 (en) | 2006-11-24 | 2011-08-23 | Murata Machinery, Ltd. | Relay server, relay communication system, and communication device |
US8005893B2 (en) | 2007-05-02 | 2011-08-23 | Murata Machinery, Ltd. | Relay server and relay communication system |
US8010598B2 (en) | 2006-12-19 | 2011-08-30 | Murata Machinery, Ltd. | Relay server and client terminal |
US8010647B2 (en) | 2006-12-11 | 2011-08-30 | Murata Machinery, Ltd. | Relay server and relay communication system arranged to share resources between networks |
US8010675B2 (en) | 2007-12-25 | 2011-08-30 | Murata Machinery, Ltd. | Relay server and relay communication system |
US8069246B2 (en) | 2007-12-28 | 2011-11-29 | Murata Machinery, Ltd. | Relay server and relay communication system including a relay group information registration unit, a shared resource information registration unit, and a control unit |
WO2012049773A1 (ja) * | 2010-10-15 | 2012-04-19 | 三菱電機株式会社 | プログラマブルコントローラ |
US8296391B2 (en) | 2008-09-05 | 2012-10-23 | Murata Machinery, Ltd. | Relay server, relay communication system, and communication apparatus |
US8307100B2 (en) | 2007-05-09 | 2012-11-06 | Murata Machinery, Ltd. | Relay server and relay communication system |
US8316134B2 (en) | 2006-10-11 | 2012-11-20 | Murata Machinery, Ltd. | File server device arranged in a local area network and being communicable with an external server arranged in a wide area network |
US8321575B2 (en) | 2007-12-27 | 2012-11-27 | Murata Machinery, Ltd. | Relay server and relay communication system |
WO2012164815A1 (ja) * | 2011-06-02 | 2012-12-06 | パナソニック株式会社 | 情報記録装置、情報記録システム、及び情報通信方法 |
US8356116B2 (en) | 2008-09-01 | 2013-01-15 | Murata Machinery, Ltd. | Relay server and relay communication system |
US8443088B2 (en) | 2006-10-11 | 2013-05-14 | Murata Machinery, Ltd. | File transfer server |
US8472454B2 (en) | 2006-09-12 | 2013-06-25 | Murata Machinery, Ltd. | Relay-server arranged to carry out communications between communication terminals on different LANS |
US8499083B2 (en) | 2006-03-29 | 2013-07-30 | Murata Kikai Kabushiki Kaisha | Relay device and communication system |
US8606941B2 (en) | 2007-05-02 | 2013-12-10 | Murata Machinery, Ltd. | Relay server and relay communication system |
US8949419B2 (en) | 2007-12-25 | 2015-02-03 | Murata Machinery, Ltd. | Synchronizing sharing servers |
-
2003
- 2003-04-04 JP JP2003101996A patent/JP2004310371A/ja active Pending
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8499083B2 (en) | 2006-03-29 | 2013-07-30 | Murata Kikai Kabushiki Kaisha | Relay device and communication system |
US8472454B2 (en) | 2006-09-12 | 2013-06-25 | Murata Machinery, Ltd. | Relay-server arranged to carry out communications between communication terminals on different LANS |
US8443088B2 (en) | 2006-10-11 | 2013-05-14 | Murata Machinery, Ltd. | File transfer server |
US8316134B2 (en) | 2006-10-11 | 2012-11-20 | Murata Machinery, Ltd. | File server device arranged in a local area network and being communicable with an external server arranged in a wide area network |
US8005961B2 (en) | 2006-11-24 | 2011-08-23 | Murata Machinery, Ltd. | Relay server, relay communication system, and communication device |
US8010647B2 (en) | 2006-12-11 | 2011-08-30 | Murata Machinery, Ltd. | Relay server and relay communication system arranged to share resources between networks |
US8010598B2 (en) | 2006-12-19 | 2011-08-30 | Murata Machinery, Ltd. | Relay server and client terminal |
WO2008084738A1 (ja) * | 2007-01-09 | 2008-07-17 | Nippon Telegraph And Telephone Corporation | 符号化復号化装置、方法、プログラム、記録媒体 |
US8341197B2 (en) | 2007-01-09 | 2012-12-25 | Nippon Telegraph And Telephone Corporation | Encoder, decoder, their methods, programs thereof, and recording media having programs recorded thereon |
JPWO2008084738A1 (ja) * | 2007-01-09 | 2010-04-30 | 日本電信電話株式会社 | 符号化装置、復号化装置、それらの方法、その方法のプログラム及びそのプログラムを記録した記録媒体 |
US8997043B2 (en) | 2007-01-09 | 2015-03-31 | Nippon Telegraph And Telephone Corporation | Encoder, decoder, their methods, programs thereof, and recording media having programs recorded thereon |
US8606941B2 (en) | 2007-05-02 | 2013-12-10 | Murata Machinery, Ltd. | Relay server and relay communication system |
US8005893B2 (en) | 2007-05-02 | 2011-08-23 | Murata Machinery, Ltd. | Relay server and relay communication system |
US8307100B2 (en) | 2007-05-09 | 2012-11-06 | Murata Machinery, Ltd. | Relay server and relay communication system |
US8010675B2 (en) | 2007-12-25 | 2011-08-30 | Murata Machinery, Ltd. | Relay server and relay communication system |
US8949419B2 (en) | 2007-12-25 | 2015-02-03 | Murata Machinery, Ltd. | Synchronizing sharing servers |
US8321575B2 (en) | 2007-12-27 | 2012-11-27 | Murata Machinery, Ltd. | Relay server and relay communication system |
US8069246B2 (en) | 2007-12-28 | 2011-11-29 | Murata Machinery, Ltd. | Relay server and relay communication system including a relay group information registration unit, a shared resource information registration unit, and a control unit |
JP2009163300A (ja) * | 2007-12-28 | 2009-07-23 | Murata Mach Ltd | 中継サーバ及び中継通信システム |
US8356116B2 (en) | 2008-09-01 | 2013-01-15 | Murata Machinery, Ltd. | Relay server and relay communication system |
US8296391B2 (en) | 2008-09-05 | 2012-10-23 | Murata Machinery, Ltd. | Relay server, relay communication system, and communication apparatus |
WO2012049773A1 (ja) * | 2010-10-15 | 2012-04-19 | 三菱電機株式会社 | プログラマブルコントローラ |
KR101455949B1 (ko) * | 2010-10-15 | 2014-10-28 | 미쓰비시덴키 가부시키가이샤 | 프로그래머블 콘트롤러 |
CN103154907A (zh) * | 2010-10-15 | 2013-06-12 | 三菱电机株式会社 | 可编程控制器 |
US20130131842A1 (en) * | 2010-10-15 | 2013-05-23 | Mitsubishi Electric Corporation | Programmable controller |
US9983573B2 (en) * | 2010-10-15 | 2018-05-29 | Mitsubishi Electric Corporation | Programmable controller |
WO2012164815A1 (ja) * | 2011-06-02 | 2012-12-06 | パナソニック株式会社 | 情報記録装置、情報記録システム、及び情報通信方法 |
JP5616465B2 (ja) * | 2011-06-02 | 2014-10-29 | パナソニック株式会社 | 情報記録装置、情報記録システム、及び情報通信方法 |
US9026715B2 (en) | 2011-06-02 | 2015-05-05 | Panasonic Intellectual Property Management Co., Ltd. | Information recording device, information recording system, and information communication method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2004310371A (ja) | ファイル共有システム及び方法、ファイル共有サーバ、ファイル共有サービスのクライアント端末、ファイル共有プログラム、ファイル共有プログラムを記録した記録媒体 | |
JP3990115B2 (ja) | サーバ側プロキシ装置及びプログラム | |
US7908317B2 (en) | System and method for URL compression | |
AU772598B2 (en) | Selecting a cache | |
US6578054B1 (en) | Method and system for supporting off-line mode of operation and synchronization using resource state information | |
JP4671332B2 (ja) | ユーザ識別情報を変換するファイルサーバ | |
US20050027731A1 (en) | Compression dictionaries | |
US20150237113A1 (en) | Method and system for file transmission | |
CN102420843B (zh) | 一种基于云压缩链接的压缩和解压缩方法、装置及系统 | |
US20050131900A1 (en) | Methods, apparatus and computer programs for enhanced access to resources within a network | |
US20020138653A1 (en) | Workstation system, computer, data transfer method, data editing method, computer program generation method, computer program and storage medium | |
US7584196B2 (en) | Systems and methods for remote storage of electronic data | |
JP3848209B2 (ja) | データ転送装置、データ転送方法及びプログラム | |
EP1754145B1 (en) | Method and apparatus for supporting multiple versions of a web services protocol | |
EP1754144B1 (en) | Method and apparatus for supporting multiple versions of web services standards | |
US11706189B2 (en) | Domain management and synchronization system | |
US7313598B1 (en) | Method and apparatus for partial replication of directory information in a distributed environment | |
US20070124445A1 (en) | Browser adaptation for context based navigation | |
US20030033429A1 (en) | Information acquiring system, information processing device, information processing method, program, and medium | |
JP3943868B2 (ja) | サーバ側プロキシ、データ転送方法及びプログラム | |
JP3943867B2 (ja) | サーバ側プロキシ、データ転送方法及びプログラム | |
JP2002268935A (ja) | データ転送装置、データ転送方法及びプログラム | |
US8005849B2 (en) | Database access server with reformatting | |
JP4157585B2 (ja) | サーバ側プロキシ装置、クライアント側プロキシ装置、データ転送方法及びプログラム | |
JP2003108462A (ja) | データ転送装置およびデータ転送方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050728 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080916 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090106 |