(57)【要約】【課題】複数の文字エンコーディングが混在する環境であってもサーバとクライアント端末の双方において文字化けの発生を防止することができるファイル共有システムを提供する。【解決手段】クライアント端末２０ファイル共有サーバ１０間の通信において共有ファイルを特定するために、各クライアント端末２０でのエンコーディングがサポートする文字集合及びファイル共有サーバ１０でのエンコーディングがサポートする文字集合をサポートする第３のエンコーディングによりファイル名を符号化する。【選択図】  図１
2004310371.tif 000002
【特許請求の範囲】
【請求項１】
一以上のクライアント端末に対してファイル共有サーバがファイル共有サービスを提供するファイル共有システムにおいて、
各クライアント端末は、各クライアント端末においてファイル名の符号化に用いるエンコーディング（クライアント側エンコーディング）のサポートする文字集合とファイル共有サーバにおいてファイル名の符号化に用いるエンコーディング（サーバ側エンコーディング）のサポートする文字集合とを包含する文字集合をサポートするエンコーディング（第３のエンコーディング）により符号化されたファイル名と、自身で用いるクライアント側エンコーディングで符号化されたファイル名とを相互に変換するファイル名変換手段を備え、
ファイル共有サーバは、前記第３のエンコーディングで符号化されたファイル名と、サーバ側エンコーディングで符号化されたファイル名とを相互に変換するファイル名変換手段を備え、
ファイル共有サーバとクライアント端末との間のファイル共有サービスに係る通信では、前記第３のエンコーディングにより符号化されたファイル名を用いて共有ファイルを識別するようにした
ことを特徴とするファイル共有システム。
【請求項２】
クライアント端末のファイル名変換手段又はファイル共有サーバのファイル名変換手段の何れか一方又は双方は、第３のエンコーディングで符号化されたファイル名に、自身のエンコーディングで符号化不可能な文字が含まれていた場合に、当該ファイル名に対する別名として自身のエンコーディングで符号化可能なファイル名（別ファイル名）を生成するとともに、第３のエンコーディングで符号化されたファイル名と別ファイル名との対応関係を記憶装置に記憶する別名生成記憶手段を備え、この記憶装置に記憶されている対応関係を参照してファイル名の相互変換を行う
ことを特徴とする請求項１記載のファイル共有システム。
【請求項３】
前記別名生成記憶手段は、第３のエンコーディングで符号化されたファイル名に、自身のファイルシステムにおいて使用できない文字が含まれていた場合に、当該ファイル名に対してファイルシステムで使用可能なファイル名（別ファイル名）を生成するとともに、第３のエンコーディングで符号化されたファイル名と別ファイル名との対応関係を記憶装置に記憶する
ことを特徴とする請求項２記載のファイル共有システム。
【請求項４】
前記記憶装置としてデータベース管理装置を用いた
ことを特徴とする請求項２又は３何れか１項記載のファイル共有システム。
【請求項５】
前記別名生成記憶手段は、第３のエンコーディングで符号化されたファイル名がバイト列で記述され且つ該ファイル名に対応する別ファイル名を有するファイルを、自身のファイルシステムにおける所定の位置に保存する
ことを特徴とする請求項２又は３何れか１項記載のファイル共有システム。
【請求項６】
クライアント端末は、ファイル共有サーバからファイル共有サービスを受ける際に、第３のエンコーディングとして用いるエンコーディングをファイル共有サーバに通知するエンコーディング通知手段を備えた
ことを特徴とする請求項１記載のファイル共有システム。
【請求項７】
一以上のクライアント端末に対してファイル共有サーバがファイル共有サービスを提供する方法において、
ファイル共有サーバとクライアント端末との間のファイル共有サービスに係る通信では、各クライアント端末においてファイル名の符号化に用いるエンコーディング（クライアント側エンコーディング）のサポートする文字集合とファイル共有サーバにおいてファイル名の符号化に用いるエンコーディング（サーバ側エンコーディング）のサポートする文字集合とを包含する文字集合をサポートするエンコーディング（第３のエンコーディング）により符号化されたファイル名を用いて共有ファイルを識別するようにし、
各クライアント端末は、前記第３のエンコーディングにより符号化されたファイル名と、自身で用いるクライアント側エンコーディングで符号化されたファイル名とを相互に変換することにより、共有ファイルに対して自身で用いるクライアント側エンコーディングで符号化されたファイル名を用いてアクセスし、
ファイル共有サーバは、前記第３のエンコーディングで符号化されたファイル名と、サーバ側エンコーディングで符号化されたファイル名とを相互に変換することにより、共有ファイルに対してサーバ側エンコーディングで符号化されたファイル名を用いてアクセスする
ことを特徴とするファイル共有方法。
【請求項８】
クライアント端末又はファイル共有サーバの何れか一方又は双方は、第３のエンコーディングで符号化されたファイル名に、自身のエンコーディングで符号化不可能な文字が含まれていた場合に、当該ファイル名に対する別名として自身のエンコーディングで符号化可能なファイル名（別ファイル名）を生成するとともに、第３のエンコーディングで符号化されたファイル名と別ファイル名との対応関係を記憶装置に記憶し、この記憶装置に記憶されている対応関係を参照してファイル名の相互変換を行う
ことを特徴とする請求項７記載のファイル共有方法。
【請求項９】
前記別名生成記憶段階では、第３のエンコーディングで符号化されたファイル名に、自身のファイルシステムにおいて使用できない文字が含まれていた場合に、当該ファイル名に対してファイルシステムで使用可能なファイル名（別ファイル名）を生成するとともに、第３のエンコーディングで符号化されたファイル名と別ファイル名との対応関係を記憶装置に記憶する
ことを特徴とする請求項８記載のファイル共有方法。
【請求項１０】
一以上のクライアント端末に対してファイル共有サービスを提供するファイル共有サーバにおいて、
各クライアント端末においてファイル名の符号化に用いるエンコーディング（クライアント側エンコーディング）のサポートする文字集合とファイル共有サーバにおいてファイル名の符号化に用いるエンコーディング（サーバ側エンコーディング）のサポートする文字集合とを包含する文字集合をサポートするエンコーディング（第３のエンコーディング）により符号化されたファイル名と、サーバ側エンコーディングで符号化されたファイル名とを相互に変換するファイル名変換手段を備え、
クライアント端末との間のファイル共有サービスに係る通信では、前記第３のエンコーディングにより符号化されたファイル名を用いて共有ファイルを識別するようにした
ことを特徴とするファイル共有サーバ。
【請求項１１】
ファイル共有サーバが提供するファイル共有サービスのクライアント端末において、
クライアント端末においてファイル名の符号化に用いるエンコーディング（クライアント側エンコーディング）のサポートする文字集合とファイル共有サーバにおいてファイル名の符号化に用いるエンコーディング（サーバ側エンコーディング）のサポートする文字集合とを包含する文字集合をサポートするエンコーディング（第３のエンコーディング）により符号化されたファイル名と、自身で用いるクライアント側エンコーディングで符号化されたファイル名とを相互に変換するファイル名変換手段を備え、
ファイル共有サーバとの間のファイル共有サービスに係る通信では、前記第３のエンコーディングにより符号化されたファイル名を用いて共有ファイルを識別するようにした
ことを特徴とするファイル共有サービスのクライアント端末。
【請求項１２】
一以上のクライアント端末に対してファイル共有サービスを提供するファイル共有サーバに、
各クライアント端末においてファイル名の符号化に用いるエンコーディング（クライアント側エンコーディング）のサポートする文字集合とファイル共有サーバにおいてファイル名の符号化に用いるエンコーディング（サーバ側エンコーディング）のサポートする文字集合とを包含する文字集合をサポートするエンコーディング（第３のエンコーディング）により符号化されたファイル名と、サーバ側エンコーディングで符号化されたファイル名とを相互に変換するファイル名変換手段として機能させることにより、ファイル共有サーバとの間のファイル共有サービスに係る通信では、前記第３のエンコーディングにより符号化されたファイル名を用いて共有ファイルを識別するようにした
ことを特徴とするファイル共有プログラム。
【請求項１３】
ファイル共有サーバが提供するファイル共有サービスのクライアント端末に、
クライアント端末においてファイル名の符号化に用いるエンコーディング（クライアント側エンコーディング）のサポートする文字集合とファイル共有サーバにおいてファイル名の符号化に用いるエンコーディング（サーバ側エンコーディング）のサポートする文字集合とを包含する文字集合をサポートするエンコーディング（第３のエンコーディング）により符号化されたファイル名と、自身で用いるクライアント側エンコーディングで符号化されたファイル名とを相互に変換するファイル名変換手段として機能させることにより、ファイル共有サーバとの間のファイル共有サービスに係る通信では、前記第３のエンコーディングにより符号化されたファイル名を用いて共有ファイルを識別するようにした
ことを特徴とするファイル共有プログラム。
【請求項１４】
請求項１２又は１３何れか１項記載のファイル共有プログラムを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数の文字エンコーディングが混在する環境において、ファイル共有サーバがクライアント端末に対してファイル共有サービスを提供する技術に関する。
【０００２】
【従来の技術】
クライアント端末とファイル共有サーバの文字エンコーディングが異なるファイル共有システムとしては、従来、ＳａｍｂａとＮｅｔａｔａｌｋというフリーソフトが広く知られている。
【０００３】
ＳａｍｂａはＷｉｎｄｏｗｓ（登録商標）系のクライアント端末のためのファイル共有システムで、サーバはＵｎｉｘ（登録商標）系ＯＳ上で動作する。Ｓａｍｂａにおいて日本語ファイル名を扱う場合には、Ｗｉｎｄｏｗｓ系クライアントで用いられるＭＳ９３２エンコーディング（Ｓｈｉｆｔ−ＪＩＳのＷｉｎｄｏｗｓ拡張）のファイル名を、サーバでは他の異なるエンコーディングに変換している。サーバ側でのエンコーディングとしては、例えばＵｎｉｘ系ＯＳで一般的なＥＵＣ＿ＪＰエンコーディングなどが挙げられる（非特許文献１，２参照）。
【０００４】
一方、ＮｅｔａｔａｌｋはＭａｃＯＳ（登録商標）系のクライアント端末のためのファイル共有システムで、サーバはＵｎｉｘ系ＯＳ上で動作する。ＭａｃＯＳ系クライアントで用いられるエンコーディング（Ｓｈｉｆｔ−ＪＩＳのＡｐｐｌｅ拡張）のファイル名を、サーバでは他の異なるエンコーディングに変換している（非特許文献１，２参照）。
【０００５】
【非特許文献１】
高橋  基信，”Ｓａｍｂａ  ２．０．ｘ／２．２．ｘ  で日本語を利用する方法”，［ｏｎｌｉｎｅ］，平成１３年１１月２６日，［平成１５年４月１日検索］，インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｍｏｎｙｏ．ｃｏｍ／ｔｅｃｈｎｉｃａｌ／ｓａｍｂａ／Ｊａｐａｎｅｓｅ−ＨＯＷＴＯ．ｊａ．ｔｘｔ＞
【非特許文献２】
奥山  健一，”Ｓａｍｂａ  ＱａｎｄＡ  ”，［ｏｎｌｉｎｅ］，平成１３年６月１７日，［平成１５年４月１日検索］，インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｄｄ．ｉｉｊ４ｕ．ｏｒ．ｊｐ／￣ｏｋｕｙａｍａｋ／Ｄｏｃｕｍｅｎｔｓ／Ｓａｍｂａ−ＱａｎｄＡ．ｊ．ｈｔｍｌ＞
【０００６】
【発明が解決しようとする課題】
しかし、上記各システムでは以下に示すような問題があった。
【０００７】
（問題点１）
Ｓａｍｂａでは、ＭＳ９３２エンコーディングがサポートする文字集合にはあるが、サーバ側のエンコーディングがサポートする文字集合にない文字をファイル名に使用すると、サーバ上で文字化けしてしまい、再度クライアント側で同ファイルを受信すると、本来クライアント側で表示可能なファイル名であるにもかかわらず、その表示ができないという問題があった。
【０００８】
（問題点２）
Ｓａｍｂａ及びＮｅｔａｔａｌｋではサーバ上での変換モードによっては特殊な文字列置換を行う機能があり、このモードを使うとクライアント側で表示可能などのようなファイル名でもサーバ上に保存することができ、また再度クライアントに戻す際にも文字化けが生じないという利点がある。しかし、この方式では、アスキー文字以外の全ての文字がサーバ上とクライアント上とで全く異なるものとなるため、ユーザがファイル共有サーバに直接ログインしてファイル名を参照するときに不便であるという問題点があった。例えば、ＭａｃＯＳ系端末からＮｅｔａｔａｌｋ経由でＵｎｉｘマシンの自分のホームディレクトリに日本語ファイルを転送後、Ｕｎｉｘマシンにログインして同ファイルを編集する場合などが挙げられる。
【０００９】
（問題点３）
さらに、ＳａｍｂａもＮｅｔａｔａｌｋもクライアント端末側のエンコーディングは固定であると仮定しているため、これらのファイル共有システムを用いてＷｉｎｄｏｗｓ端末・ＭａｃＯＳ端末間でファイル共有する場合には、お互い表示できる文字であるにもかかわらず文字化けを起こすことがある。これは、Ｗｉｎｄｏｗｓ系ＯＳとＭａｃＯＳにおける日本語ファイル名の扱いは、共にＳｈｉｆｔ−ＪＩＳコードをベースにしているが、外字などにはそれぞれ独自のコードが割り当てられており文字によっては互換性がないためである。
【００１０】
本発明は、上記事情に鑑みてなされたものであり、その目的とするところは、複数の文字エンコーディングが混在する環境であってもサーバとクライアント端末の双方において文字化けの発生を防止することができるファイル共有システムを提供することにある。
【００１１】
【課題を解決するための手段】
上記目的を達成するために、本願発明では、ファイル共有サーバとクライアント端末との間のファイル共有サービスに係る通信では、第３のエンコーディングにより符号化されたファイル名を用いて共有ファイルを識別し、ファイル共有サーバ及びクライアント端末では、第３のエンコーディングで符号化されたファイル名と自身で用いるエンコーディングで符号化されたファイル名とを相互に変換するようにした。ここで、第３のエンコーディングは、各クライアント端末においてファイル名の符号化に用いるエンコーディング（クライアント側エンコーディング）のサポートする文字集合とファイル共有サーバにおいてファイル名の符号化に用いるエンコーディング（サーバ側エンコーディング）のサポートする文字集合とを包含する文字集合をサポートするエンコーディングである。
【００１２】
これにより、各クライアント端末においてファイル名の符号化に用いるエンコーディングが互いに異なるものであっても、各クライアント端末において共有ファイル名の文字化けを防止できる。すなわち、前述の問題点３を解決できる。
【００１３】
また、本願発明では、ファイル共有サーバ又は各クライアント端末においてファイル名を相互変換する際に、第３のエンコーディングで符号化されたファイル名に、自身のエンコーディングで符号化不可能な文字が含まれていた場合に、当該ファイル名に対する別名として自身のエンコーディングで符号化可能なファイル名（別ファイル名）を生成するとともに、第３のエンコーディングで符号化されたファイル名と別ファイル名との対応関係を記憶装置に記憶しておき、この記憶装置に記憶されている対応関係を参照してファイル名の相互変換を行うようにした。
【００１４】
これにより、自身で使用不可能なファイル名は別ファイル名に変換されるが、この別ファイル名と第３のエンコーディングで符号化されたファイル名との対応関係を記憶装置に保存してあるので、別ファイル名から第３のエンコーディングで符号化されたファイル名を復元することができる。したがって、前述の問題点１を解決できる。一方、自身で使用可能なファイル名は別ファイル名に変換されることなく、自身のエンコーディングで符号化されたファイル名で保存される。したがって、前述の問題点２を解決できる。
【００１５】
【発明の実施の形態】
本発明の一実施の形態に係るファイル共有システムについて図面を参照して説明する。図１はファイル共有システムのシステム構成図である。
【００１６】
図１に示すように、このファイル共有システムは、ファイル名を符号化するためのエンコーディングが複数混在している環境で、ファイル共有サーバ１０が複数のクライアント端末２０に対してネットワーク３０を介してファイル共有サービスを提供するものである。図１の例では、ファイル共有サーバ１０は、ＯＳとしてＬｉｎｕｘ（登録商標）を採用し、ファイル名のエンコーディングにはＥＵＣ＿ＪＰを用いた。また、クライアント端末２０ａは、ＯＳとしてＷｉｎｄｏｗｓを採用し、ファイル名のエンコーディングにはＭＳ９３２を用いた。さらに、クライアント端末２０ｂは、ＯＳとしてＭａｃＯＳを採用し、ファイル名のエンコーディングにはＭａｃＴＥＣを用いた。
【００１７】
本実施の形態では、このような環境下において、ファイル名が「ファイル▲１▼」と「ファイル（１）」（（１）は全部で１文字の記号：以下の文章において同じ）の２つのファイルをクライアント端末２０ａ及び２０ｂで共有する場合について説明する。
【００１８】
この場合、日本語版のＷｉｎｄｏｗｓ系ＯＳと日本語版のＭａｃＯＳでは、ファイル名のエンコーディングにＳｈｉｆｔ−ＪＩＳをベースにしたものを用いているが、外字などには独自のコードを割り当てており文字によっては互換性がない。例えば、「▲１▼」も互換性のない文字の一つであり、Ｗｉｎｄｏｗｓ系ＯＳとＭａｃＯＳでは別々のコードを割り当てている。このため、従来のファイル共有システムでは、Ｗｉｎｄｏｗｓ系ＯＳ上の「▲１▼」を含むファイル名のファイルをＭａｃＯＳと共有すると、ＭａｃＯＳ端末上では「▲１▼」の部分が「（日）」（（日）は全部で１文字の記号）に文字化けした。本発明の目的の１つは、このような問題点を解決することである（前述の問題点３参照）。
【００１９】
また、「（１）」は、ＥＵＣ＿ＪＰの文字集合にはない記号なので、従来のファイル共有システムでは、サーバ上で文字化けしてしまい、再度クライアント側にファイルを戻してもファイル名が元に戻らなかった。本発明の目的の１つは、このような問題点を解決することである（前述の問題点１参照）。
【００２０】
さらに、従来のファイル共有システムの１つであるＮｅｔａｔａｌｋでは、アスキー文字以外の文字を全て、特殊な文字列に置換してサーバ上に保存することにより、ＭａｃＯＳ上でファイル名として使える文字を全て使うことができる。しかし、サーバに直接ログインしてファイル名を扱う際には、本来、サーバ上でファイル名として使えるファイル名まで置換されてしまっているため使い勝手に問題がある。本発明の目的の１つは、このような問題点を解決することである（前述の問題点２参照）。
【００２１】
このような目的を達成するために、本発明では、図１に示すように、各クライアント端末２０とファイル共有サーバ１０との間の通信経路においては、第３のエンコーディングで符号化したファイル名で共有ファイルを識別する。この第３のエンコーディングとしては、サーバ側エンコーディング（本実施形態ではＥＵＣ＿ＪＰ）がサポートする文字集合と、各クライアント側エンコーディング（本実施形態ではＭＳ９３２及びＭａｃＴＥＣ）がサポートする文字集合を包含する文字集合をサポートするものを用いる。本実施の形態では、ユニコードの１つであるＵＴＦ８を用いた。
【００２２】
ファイル共有サーバ１０は、図２に示すように、共有ファイルを保存しておく記憶装置である共有ディスク１１と、クライアント端末２０との間でファイルの送受信を行うファイル送受信部１２と、クライアント端末２０からのアクセス要求を受け付けるとともに該要求に応じてファイル送信やファイル受信などを制御するアクセス要求処理部１３と、共有ディスク１１に対してファイル送受信部１２で送受信するファイルを読み書きするファイルアクセス部１４と、第３のエンコーディングで符号化されたファイル名とサーバ側エンコーディングで符号化されたファイル名とを相互に変換するファイル名相互変換部１５とを備えている。
【００２３】
ファイル送受信部１２・アクセス要求処理部１３・ファイルアクセス部１４は、それぞれ、共有ディスク１１に保存されている共有ファイルを特定する際にはサーバ側エンコーディングで符号化されたファイル名を用い、一方、クライアント端末２０との間の通信において共有ファイルを特定する際には第３のエンコーディングで符号化されたファイル名を用いる。このため、ファイル送受信部１２・アクセス要求処理部１３・ファイルアクセス部１４は、必要に応じてファイル名相互変換部１５を用いて、ファイル名の変換を行う。
【００２４】
ファイル共有サーバ１０のファイル名相互変換部１５は、ファイル送受信部１２・アクセス要求処理部１３・ファイルアクセス部１４からの変換要求に応じて、第３のエンコーディングで符号化されたファイル名とサーバ側エンコーディングで符号化されたファイル名とを相互に変換する。ここで、第３のエンコーディングで符号化されたファイル名に、サーバ側エンコーディングで符号化できない文字が含まれている場合には、該ファイル名に対して別ファイル名を生成し、この別ファイル名を変換ファイル名とする。そして、第３のエンコーディングで符号化されたファイル名と該別ファイル名とを対応づけて所定の記憶装置に記憶する。本実施の形態では、この記憶装置として共有ディスク１１を用いた。以下に、ファイル名相互変換部１５の動作の詳細について図面を参照して説明する。
【００２５】
まず、第３のエンコーディングで符号化されたファイル名を、サーバ側エンコーディングで符号化されたファイル名に変換する方法について図３を参照して説明する。
【００２６】
図３に示すように、ファイル名相互変換部１５は、まず変換対象となるファイル名に、サーバ側エンコーディングで符号化できない文字が含まれているかどうかを判定し（ステップＳ１）、含まれていない場合には、変換対象となるファイル名をサーバ側エンコーディングで符号化し、これを変換ファイル名とする（ステップＳ２）。
【００２７】
サーバ側エンコーディングで符号化できない文字が含まれている場合には、変換対象となるファイル名に対して所定の生成規則で別ファイル名を生成し、これを変換ファイル名とする（ステップＳ３）。そして、この別ファイル名から第３のエンコーディングで符号化されたファイル名に復元できるように、両者の対応関係を記憶装置に記憶しておく（ステップＳ４）。
【００２８】
前記別ファイル名の生成規則としては、例えば第３のエンコーディングで符号化されたファイル名のバイト列をアスキー文字列で表したものが挙げられる。本実施の形態では、第３のエンコーディングとしてＵＴＦ８を用い、サーバ側エンコーディングとしてＥＵＣ＿ＪＰを用いているので、ＵＴＦ８のファイル名に、「（１）」のようなＥＵＣ＿ＪＰで表せない文字が含まれている場合は、「ｕ３０ｄ５ｕ３０１ａｕ３０１４ｕ３０ｅｂｕ２４７４」のように、各文字を’ｕ’と、その文字のＵｎｉｃｏｄｅ値を１６進文字列で表したものを組み合わせた文字列に置換することにより別ファイル名を生成する。
【００２９】
また、別ファイル名と第３のエンコーディングで符号化されたファイル名との対応関係を記憶する方法として、本実施の形態では、共有ディスクの所定の位置（所定のディレクトリ）に、別ファイル名を有し且つ内容が第３のエンコーディングで符号化されたファイル名のバイト列を格納する方法を用いた。他の方法としては、データベース管理システム（ＤＢＭＳ）を用いて両者の対応関係を記憶する方法が挙げられる。
【００３０】
一方、サーバ側エンコーディングで符号化されたファイル名を、第３のエンコーディングで符号化されたファイル名に変換する方法について図４を参照して説明する。
【００３１】
図４に示すように、ファイル名相互変換部１５は、変換対象となるファイル名が、別ファイル名として第３のエンコーディングで符号化されたファイル名との対応関係が記憶されているか否かを判定し（ステップＳ１１）、対応関係がない場合には、変換対象となるファイル名を第３のエンコーディングに変換する（ステップＳ１２）。対応関係がある場合には、変換対象となるファイル名に対応する第３のエンコーディングで符号化されたファイル名を取得し、これを変換ファイル名とする（ステップＳ１３）。
【００３２】
各クライアント端末２０は、図５に示すように、自身で用いる記憶装置であるローカルディスク２１と、ファイル共有サーバ１０との間でファイルの送受信を行うファイル送受信部２２と、ファイル共有サーバ１０に対してファイル送信・ファイル受信・ファイルリスト要求などのサービスを要求するサービス要求部２３と、ローカルディスク２１に対してファイル送受信部２２で送受信するファイルを読み書きするファイルアクセス部２４と、第３のエンコーディングで符号化されたファイル名とクライアント側エンコーディングで符号化されたファイル名とを相互に変換するファイル名相互変換部２５とを備えている。このファイル相互変換部２５は、ファイル共有サーバ１０のファイル名相互変換部１５とは異なり、別ファイル名の生成は行わない。
【００３３】
なお、ファイル共有サーバ１０及び各クライアント端末２０をＪａｖａ（登録商標）で実装する場合には以下のような方法により各機能を実現できる。ここでは第３のエンコーディングとしてＵＴＦ８を用いる場合について説明する。自身で用いるエンコーディングからＵＴＦ８にエンコーディング変換するには、ｊａｖａ．ｉｏ．ＯｕｔｐｕｔＳｔｒｅａｍＷｒｉｔｅｒを文字エンコーディング”ＵＴＦ８”で生成することで実現可能である。
【００３４】
また、ＵＴＦ８から自身で用いるエンコーディングに変換するには、文字エンコーディングに”ＵＴＦ８”を指定して生成したｊａｖａ．ｉｏ．ＩｕｔｐｕｔＳｔｒｅａｍＲｅａｄｅｒで、ＵＴＦ８エンコーディングのファイル名を受信することで実現可能である。
【００３５】
さらに、ファイルを保存する際には、前記ファイル名でｊａｖａ．ｉｏ．Ｆｉｌｅを生成することにより、ファイルシステムのデフォルトのエンコーディングにエンコーディングされたファイル名でファイルが保存される。
【００３６】
さらに、ＵＴＦ８のファイル名が、自身で用いるエンコーディングで表せるか否かを判断するには、Ｓｔｒｉｎｇ：：ｇｅｔＢｙｔｅｓ（）メソッドで、自身で用いるエンコーディングでの前記ファイル名のバイト列を得て、再度そのバイト列を引数にＳｔｒｉｎｇを生成して元のファイル名と一致するか判定することによって可能である。一致しない場合は、自身で用いるエンコーディングで表せない文字が含まれていると判断できる。
【００３７】
次に、本実施の形態に係るファイル共有システムの動作について図６〜図９を参照して説明する。まず、クライアント端末２０がファイル共有サーバ１０にファイルを送信する場合について図６のシーケンスチャートを参照して説明する。
【００３８】
まず、クライアント端末２０は、送信するファイルのファイル名を第３のエンコーディングに変換し（ステップＳ２１）、第３のエンコーディングに変換したファイル名を表すバイト列と、ローカルディスク２１から読み出した送信ファイルの中身のバイト列をファイル共有サーバ１０に送信する（ステップＳ２２）。
【００３９】
ファイル共有サーバ１０は、クライアント端末２０からファイルを受信すると（ステップＳ２２）、第３のエンコーディングで符号化されている受信ファイルのファイル名を、サーバ側エンコーディングに変換する（ステップＳ２３）。そして、このステップＳ２３で変換されたファイル名で、受信ファイルの実体を共有ディスク１１に保存する（ステップＳ２４）。なお、前述したように、前記ステップＳ２３での変換過程において、受信ファイルのファイル名にサーバ側エンコーディングで変換できない文字が含まれている場合には、別ファイル名が生成され、受信ファイルはこの別ファイル名で保存される。そして、第３のエンコーディングでエンコーディングされている受信ファイルのファイル名と別ファイル名の対応関係が共有ディスク１１に記憶される。
【００４０】
以上のステップによりクライアント端末２０から受信したファイルを共有ディスク１１に保存した際のファイル構成の一例について図７を参照して説明する。本実施形態では、Ｗｉｎｄｏｗｓ系ＯＳを採用したクライアント端末２０ａと、ＭａｃＯＳを採用したクライアント端末２０ｂが、Ｕｎｉｘ系ＯＳを採用したファイル共有サーバ１０を用いてファイル共有を行っている。図８は、「ファイル▲１▼」「ファイル（１）」という２つのファイルを共有した場合の共有ディスク１１のファイル構成を示している。
【００４１】
図８に示すように、「ファイル▲１▼」の実体は「ファイル▲１▼」という名前のファイル４１として共有ディスク１１に保存される。一方、「ファイル（１）」の実体は「ｕ３０ｄ５ｕ３０１ａｕ３０１４ｕ３０ｅｂｕ２４７４」という別ファイル名のファイル４２として共有ディスク１１に保存される。この「ｕ３０ｄ５ｕ３０１ａｕ３０１４ｕ３０ｅｂｕ２４７４」という文字列は、ＵＴＦ８でエンコードされた「ファイル（１）」のバイト列をアスキー文字で表したものである。そして、「．ｎａｍｅ」という名前が付された専用のディレクトリ４３内に、前記別ファイル名「ｕ３０ｄ５ｕ３０１ａｕ３０１４ｕ３０ｅｂｕ２４７４」と同一の名前が付されたファイル４４が生成される。このファイル４４の実体は、ＵＴＦ８でエンコードされた「ファイル（１）」のバイト列である。
【００４２】
次に、クライアント端末２０がファイル共有サーバ１０から共有ディスク１１に保存されているファイルのファイル名リストを取得する場合について図８のシーケンスチャートを参照して説明する。
【００４３】
クライアント端末２０がファイル共有サーバ１０に対してファイル名リストの取得を要求すると（ステップＳ３１）、ファイル共有サーバ１０は、まず共有ディスク１１に保存されている共有ファイルの一覧を取得する（ステップＳ３２）。次に、このリストに含まれるファイル名を、第３のエンコーディングに変換し（ステップＳ３３）、変換したファイル名リストをクライアント端末２０に対して返す（ステップＳ３４）。なお、前記ステップＳ３２において、共有ファイルのファイル名が、別ファイル名として共有ディスク１１の所定の位置（図７の例では、「．ｎａｍｅ」ディレクトリ）に記憶されている場合には、該別ファイル名に対応し且つ第３のエンコーディングで符号化されたファイル名を、変換したファイル名とする。
【００４４】
クライアント端末２０は、受信したファイル名リストを自身で用いるクライアント側エンコーディングに変換する（ステップＳ３５）。
【００４５】
次に、クライアント端末２０がファイル共有サーバ１０から共有ディスク１１に保存されている共有ファイルを受信する場合について図９のシーケンスチャートを参照して説明する。
【００４６】
まず、クライアント端末２０は、受信を要求するファイルのファイル名を第３のエンコーディングに変換し（ステップＳ４１）、この変換したファイル名でファイル共有サーバ１０にファイルの送信を要求する（ステップＳ４２）。
【００４７】
ファイル共有サーバ１０は、受信したファイル名をサーバ側エンコーディングに変換して（ステップＳ４３）、この変換したファイル名で共有ディスク１１からファイルを取得し（ステップＳ４４）、このファイルをクライアント端末２０に返す（ステップＳ４５）。なお、前記ステップＳ４３において、共有ファイルのファイル名が、別ファイル名として共有ディスク１１の所定の位置（図７の例では、「．ｎａｍｅ」ディレクトリ）に記憶されている場合には、該別ファイル名に対応し且つ第３のエンコーディングで符号化されたファイル名を、変換したファイル名とする。
【００４８】
クライアント端末２０は、受信したファイルの実体をローカルディスク２１に保存する（ステップＳ４６）。
【００４９】
以上詳述したように、本実施の形態に係るファイル共有システムによれば、クライアント端末２０とファイル共有サーバ１０との間でのファイル名の送受する際には、各クライアント側エンコーディングでサポートする文字集合及びサーバ側エンコーディングでサポートする文字集合をサポートする第３のエンコーディングを用いてファイル名を符号化するので、各クライアント端末２０においてエンコーディングが異なっていても文字化けが生じない。
【００５０】
また、ファイル共有サーバ２０では、第３のエンコーディングからサーバ側エンコーディングにファイル名を変換できる場合には、コード変換したファイル名をそのまま用いるため、サーバ上で使用可能なファイル名はそのままサーバ上で読むことができる。
【００５１】
さらに、第３のエンコーディングで符号化されているファイル名に、サーバ側エンコーディングの文字集合に含まれない文字が含まれていた場合、第３のエンコーディングで符号化されているファイル名を入力として、サーバ側エンコーディングで表現可能な別ファイル名を生成し、これをサーバ上でのファイル名とするとともに、第３のエンコーディングで符号化されている本来のファイル名と前記別ファイル名との対応関係を記憶しているので、同ファイルを再度クライアント端末２０に戻す際に、本来のファイル名を復元できる。
【００５２】
以上本発明の一実施の形態について詳述したが本発明はこれに限定されるものではない。例えば、上記実施の形態では、ファイル共有サーバ１０及びクライアント端末２０は、予め設定しておいた第３のエンコーディングを使用していたが、サービス提供時にクライアント端末２０がファイル共有サーバ１０に対して、使用する第３のエンコーディングを通知し、この第３のエンコーディングを用いてファイル名の変換を行うようにしてもよい。
【００５３】
また、上記実施の形態では、クライアント端末２０は、自身のクライアント側エンコーディングで符号化されたファイル名と、第３のエンコーディングで符号化されたファイル名とを、相互に変換するのみであったが、ファイル共有サーバ１０と同様に、第３のエンコーディングで符号化されたファイル名に、自身のクライアント側エンコーディングで変換不可能な文字が含まれている場合には、別ファイル名を生成するようにしてもよい。この場合、ファイル共有サーバ１０と同様に、本来のファイル名と別ファイル名の対応関係を記憶しておき、この対応関係に基づきファイル名の変換を行えばよい。
【００５４】
さらに、上記実施の形態では、クライアント端末２０がファイル共有サーバ１０からファイルを受信する際には、自身のクライアント側エンコーディングで符号化されたファイル名を、第３のエンコーディングで符号化されたファイル名に変換し、このファイル名を用いてファイル共有サーバ１０に要求を行っていたが、ファイル共有サーバ１０から第３のエンコーディングで符号化されたファイル名のリストを取得している場合には（図８参照）、このリストから選択したファイル名を用いてファイル共有サーバ１０に要求を行うようにしてもよい。
【００５５】
さらに、上記実施の形態では、ファイル共有サーバ１０が、第３のエンコーディングで符号化されたファイル名を、サーバ側エンコーディングで符号化されたファイル名に変換する際に、変換後のファイル名にファイル共有サーバ１０のファイルシステムで使用不可能な文字が含まれている場合にも別ファイル名を生成するようにしてもよい。例えば、Ｕｎｉｘ系ＯＳではファイル名として「／」を用いることができないので、このような場合に別ファイル名を用いるようにすればよい。
【００５６】
さらに、上記実施の形態で示した各ＯＳやエンコーディングは本発明の一例に過ぎず、他のＯＳ及びエンコーディングを用いても本発明を実施できることは言うまでもない。さらに、上記実施の形態では、Ｊａｖａによる実装例について例示したが、他の実装方法によっても本発明を実施できることは言うまでもない。
【００５７】
【発明の効果】
以上詳述したように、本発明によれば、各クライアント端末においてファイル名の符号化に用いるエンコーディングが互いに異なるものであっても、各クライアント端末において共有ファイル名の文字化けを防止できる。すなわち、前述の問題点３を解決できる。
【００５８】
また、本発明によれば、自身で使用不可能なファイル名は別ファイル名に変換されるが、この別ファイル名と第３のエンコーディングで符号化されたファイル名との対応関係を記憶装置に保存してあるので、別ファイル名から第３のエンコーディングで符号化されたファイル名を復元することができる。したがって、前述の問題点１を解決できる。一方、自身で使用可能なファイル名は別ファイル名に変換されることなく、自身のエンコーディングで符号化されたファイル名で保存される。したがって、前述の問題点２を解決できる。
【図面の簡単な説明】
【図１】ファイル共有システムのシステム構成図
【図２】ファイル共有サーバの構成図
【図３】ファイル共有サーバにおけるファイル名変換を説明するフローチャート
【図４】ファイル共有サーバにおけるファイル名変換を説明するフローチャート
【図５】クライアント端末の構成図
【図６】クライアント端末からファイル共有サーバにファイルを送信する際のシーケンスチャート
【図７】共有ディスクに保存されたファイルの構成を説明する図
【図８】ファイル共有サーバに保存したファイル名のリストをクライアント端末に送信する際のシーケンスチャート
【図９】ファイル共有サーバからクライアント端末にファイルを送信する際のシーケンスチャート
【符号の説明】
１０…ファイル共有サーバ、１１…共有ディスク、１２…ファイル送受信部、１３…アクセス要求処理部、１４…ファイルアクセス部、１５…ファイル名相互変換部、２０…クライアント端末、２１…ローカルディスク、２２…ファイル送受信部、２３…サービス要求部、２４…ファイルアクセス部、２５…ファイル名相互変換部、３０…ネットワーク
【図１】
2004310371.tif 000003
【図２】
2004310371.tif 000004
【図３】
2004310371.tif 000005
【図４】
2004310371.tif 000006
【図５】
2004310371.tif 000007
【図６】
2004310371.tif 000008
【図７】
2004310371.tif 000009
【図８】
2004310371.tif 000010
【図９】
2004310371.tif 000011