(57)【要約】【課題】ファイルを転送するプロトコルのコマンドを拡張することなく、しかも、他のプロトコルを追加して用いることなく、サーバに対するファイルリモート操作機能を拡張する。【解決手段】通信部３００とファイルシステム３０２との間に、要求解釈部３０４を介在させ、要求解釈部３０４は、通信部３００のＦＴＰサーバから呼び出されたＦＰＵＴ関数のパラメータに、所定の記号が含まれていれば、このパラメータで識別されるファイル名のファイルの内容を、通信部３００からコマンドとして受け取り、これを命令解釈実行部３０５に渡して解釈実行させ、含まれていなければ、要求解釈部３０４をスルー状態にして従来動作を行わせる。【選択図】図１
2010117914.tif 000002
【特許請求の範囲】
【請求項１】
記憶手段と、ファイルシステムと、クライアントからネットワークを介した要求に応じ、該ファイルシステムにファイルアクセスコマンドを実行させて該記憶手段をアクセスする通信部と、を備えたサーバ装置において、
命令解釈実行部と、
該通信部と該ファイルシステムとの間に介在し、該ファイルアクセスコマンドがファイル書込コマンドである場合、そのパラメータに含まれているファイル名に所定の記号が含まれているか否かを判定し、肯定判定した場合には、該通信部から供給される該ファイル名のファイルの内容を内部コマンドとしてこれを該命令解釈実行部に解釈実行させ、否定判定した場合には、該ファイルシステムに該ファイルアクセスコマンドを実行させる要求解釈部と、
をさらに有することを特徴とするサーバ装置。
【請求項２】
該内部コマンドは、そのパラメータとしてファイル名を含み、
該内部コマンドは該ファイルに対し処理を行うためのものである、
ことを特徴とする請求項１又は２に記載のサーバ装置。
【請求項３】
該内部コマンドのパラメータは複数のファイル名を含み、
該内部コマンドは、該複数のファイルのいずれかが該記憶手段に正常に格納されなかった場合に該複数のファイルのうち該記憶手段に格納されているものを削除するためのものである、
ことを特徴とする請求項２に記載のサーバ装置。
【請求項４】
該内部コマンドのパラメータは、ファイル名と検索キーとを含み、
該内部コマンドは、該検索キーを該ファイルの属性として該ファイルの管理情報テーブルに書き込ませるためのものである、
ことを特徴とする請求項２に記載のサーバ装置。
【請求項５】
該内部コマンドは、オペレーティングシステムのシェルに対するコマンドを含み、
該命令解釈実行部は、該内部コマンドが該シェルに対するコマンドであると判定した場合にはこのコマンドを該シェルに実行させる、
ことを特徴とする請求項１乃至４のいずれか１つに記載のサーバ装置。
【請求項６】
該要求解釈部は、該ファイルアクセスコマンドがファイル読出コマンドである場合、そのパラメータであるファイル名に所定の記号が含まれているか否かを判定し、肯定判定した場合には、該ファイル読出コマンドに応じた情報を該ファイル名のファイルの内容として該通信部に返す、
ことを特徴とする請求項１乃至５のいずれか１つに記載のサーバ装置。
【請求項７】
該ファイル読出コマンドに応じた情報は、セッションＩＤを含む、
ことを特徴とする請求項６に記載のサーバ装置。
【請求項８】
該ファイル読出コマンドに応じた情報は、１つ前の内部コマンドが正常に実行されたか否かを示す情報を含む、
ことを特徴とする請求項６に記載のサーバ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶手段と、ファイルシステムと、クライアントからネットワークを介した要求に応じ、該ファイルシステムにファイルアクセスコマンドを実行させて該記憶手段をアクセスする通信部とを備えたサーバ装置に関する。
【背景技術】
【０００２】
ネットワーク上のファイルサーバは、ＦＴＰプロトコルを用いて、クライアントからアップロードされたファイルを保管し、ダウンロードのリクエストに応じてそのファイルを送信することにより、ファイル共有を実現している。
【０００３】
しかし、ＦＴＰプロトコルによるファイル操作コマンドの種類が少ないため、機能が限定される。
【０００４】
下記特許文献１では、ユーザがファイルシステムの機能を追加変更できるようにする構成が開示されている。
【特許文献１】特開平５−２６５８１５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら上記文献の発明は、指示ファイルをディレクトリに持たせることにより、新たなファイルオープンの自動化をファイルシステムに追加するものであって、ＦＴＰプロトコルを用いたファイル操作の種類を拡張するものではない。
【０００６】
機能拡張のために独自のＦＴＰコマンドを追加すると、ソフトウェア構成が複雑になる。また、ＦＴＰプロトコルに加えてＳＯＡＰプロトコルを用いることによりファイル操作機能を拡張することも可能であるが、２つのプロトコルに対応したソフトウェア構成をサーバ側のみならずクライアント側に備えると共に、両者をソフトウェア的に結合させる必要があるので、ソフトウェア構成が複雑になる。ＦＴＰプロトコル以外のファイルを転送するプロトコル、例えばＨＴＴＰプロトコルについても同意である。
【０００７】
本発明の目的は、このような問題点に鑑み、ファイルを転送するプロトコルのコマンドを拡張することなく、しかも、他のプロトコルを追加して用いることなく、サーバに対するファイルリモート操作機能を拡張することが可能なサーバ装置を提供することにある。
【課題を解決するための手段】
【０００８】
本発明の第１態様では、記憶手段と、ファイルシステムと、クライアントからネットワークを介した要求に応じ、該ファイルシステムにファイルアクセスコマンドを実行させて該記憶手段をアクセスする通信部と、を備えたサーバ装置において、
命令解釈実行部と、
該通信部と該ファイルシステムとの間に介在し、該ファイルアクセスコマンドがファイル書込コマンドである場合、そのパラメータに含まれているファイル名に所定の記号が含まれているか否かを判定し、肯定判定した場合には、該通信部から供給される該ファイル名のファイルの内容を内部コマンドとしてこれを該命令解釈実行部に解釈実行させ、否定判定した場合には、該ファイルシステムに該ファイルアクセスコマンドを実行させる要求解釈部とをさらに有する。
【０００９】
本発明によるサーバ装置の第２態様では、第１又は２態様において、該内部コマンドは、そのパラメータとしてファイル名を含み、該内部コマンドは該ファイルに対し処理を行うためのものである。
【００１０】
本発明によるサーバ装置の第３態様では、第２態様において、該内部コマンドのパラメータは複数のファイル名を含み、該内部コマンドは、該複数のファイルのいずれかが該記憶手段に正常に格納されなかった場合に該複数のファイルのうち該記憶手段に格納されているものを削除するためのものである。
【００１１】
本発明によるサーバ装置の第４態様では、第２態様において、該内部コマンドのパラメータは、ファイル名と検索キーとを含み、該内部コマンドは、該検索キーを該ファイルの属性として該ファイルの管理情報テーブルに書き込ませるためのものである。
【００１２】
本発明によるサーバ装置の第５態様では、第１乃至４態様のいずれか１つにおいて、該内部コマンドは、オペレーティングシステムのシェルに対するコマンドを含み、該命令解釈実行部は、該内部コマンドが該シェルに対するコマンドであると判定した場合にはこのコマンドを該シェルに実行させる。
【００１３】
本発明によるサーバ装置の第６態様では、第１乃至５態様のいずれか１つにおいて、該要求解釈部は、該ファイルアクセスコマンドがファイル読出コマンドである場合、そのパラメータであるファイル名に所定の記号が含まれているか否かを判定し、肯定判定した場合には、該ファイル読出コマンドに応じた情報を該ファイル名のファイルの内容として該通信部に返す。
【００１４】
本発明によるサーバ装置の第７態様では、第６態様において、該ファイル読出コマンドに応じた情報は、セッションＩＤを含む。
【００１５】
本発明によるサーバ装置の第８態様では、第６態様において、該ファイル読出コマンドに応じた情報は、１つ前の内部コマンドが正常に実行されたか否かを示す情報を含む。
【発明の効果】
【００１６】
上記第１態様の構成によれば、通信部とファイルシステムとの間に要求解釈部を介在させて、ファイルシステムに対するファイル書込コマンドのパラメータであるファイル名に所定の記号が含まれている場合には、通信部から供給されるそのファイルの内容を内部コマンドとしてこれを命令解釈実行部に解釈実行させるので、ファイルを転送するプロトコルのコマンドを拡張することなく、しかも、他のプロトコルを追加して用いることなく、簡単な付加的構成で、サーバに対するファイルリモート操作機能を拡張することが可能となるという効果を奏する。
【００１７】
上記第２態様の構成によれば、該内部コマンドは、そのパラメータとしてファイル名を含み、該内部コマンドは該ファイルに対し処理を行うためのものであるので、ファイルリモート操作をより簡単に行うことができるという効果を奏する。
【００１８】
上記第３態様の構成によれば、該内部コマンドのパラメータは複数のファイル名を含み、該内部コマンドは、該複数のファイルのいずれかが該記憶手段に正常に格納されなかった場合に該複数のファイルのうち該記憶手段に格納されているものを削除するためのものであるので、トランザクション処理を行うことができるという効果を奏する。
【００１９】
上記第４態様の構成によれば、該内部コマンドのパラメータは、ファイル名と検索キーとを含み、該内部コマンドは、該検索キーを該ファイルの属性として該ファイルの管理情報テーブルに書き込ませるためのものであるので、特に、ローカル側でこの書き込みを行うことが出来ない場合に効果的であるという効果を奏する。
【００２０】
上記第５態様の構成によれば、該内部コマンドは、オペレーティングシステムのシェルに対するコマンドを含み、該命令解釈実行部は、該内部コマンドが該シェルに対するコマンドであると判定した場合にはこのコマンドを該シェルに実行させるので、既存のシェルを用いて簡単な構成付加でファイル操作機能を拡張することができるという効果を奏する。
【００２１】
上記第６態様の構成によれば、該要求解釈部は、該ファイルアクセスコマンドがファイル読出コマンドである場合、そのパラメータであるファイル名に所定の記号が含まれていると判定したときに、該ファイル読出コマンドに応じた情報を該ファイル名のファイルの内容として該通信部に返すので、ファイル以外の情報をサーバ装置から取得できるという効果を奏する。
【００２２】
上記第７態様の構成によれば、該ファイル読出コマンドに応じた情報は、セッションＩＤを含むので、ファイル以外の情報としてセッションＩＤをサーバ装置から取得できるという効果を奏する。
【００２３】
上記第８態様の構成によれば、該ファイル読出コマンドに応じた情報は、１つ前の内部コマンドが正常に実行されたか否かを示す情報を含むので、ファイル以外の情報としてサーバ装置での処理結果をサーバ装置から取得できるという効果を奏する。
【００２４】
本発明の他の目的、構成及び効果は以下の説明から明らかになる。
【実施例１】
【００２５】
図１０は、本発明の実施例１に係る画像形成システムの概略構成図である。
【００２６】
このシステムでは、ネットワーク１０に、ＰＣ２００〜２０Ｎ、ファイルサーバ３０および画像形成装置４０が結合され、ＰＣ２００〜２０Ｎで作成したファイルをファイルサーバ３０に保存し、又は画像形成装置４０のスキャナで読み取った画像データをファイルとしてファイルサーバ３０に保存することにより、ファイルをＰＣ２００〜２０Ｎで共有可能となっている。また、ＰＣ２００〜２０Ｎでファイルサーバ３０内のファイルを選択して画像形成装置４０で印刷し、電子メールで送信し、又はＦＡＸで送信することが可能となっている。
【００２７】
このファイルサーバ３０は、ＦＴＰプロトコルを用いて、ネットワーク上からのリクエストに対し、ファイル送受信等のファイル操作を行う。
【００２８】
図１１は、ファイルサーバ３０のハードウェア構成を示す概略ブロック図である。
【００２９】
このファイルサーバ３０では、ＭＰＵ３１がインターフェイス３２を介してＲＯＭ３３、ＲＡＭ３４、ＨＤＤ３５、入力装置３６、表示装置３７およびＮＩＣ３８に結合されている。図１１では、簡単化のために複数種のインターフェイスを１つのインターフェイス３２で表している。
【００３０】
ＨＤＤ３５には、仮想記憶方式のＯＳ、各種ドライバ及びアプリケーション並びに各種情報が格納されている。このアプリケーションには、後述の図１中のブロック３０４、３０５及び３０７に対応したプログラムが含まれる。
【００３１】
ＲＯＭ３３には、ＨＤＤ３５内のＯＳをＲＡＭ３４上にロードするためのブートストラップが格納されている。入力装置３６及び表示装置３７は、メンテナンス用であり、入力装置３６は例えばキーボードとポインティングデバイスとを備えている。
【００３２】
図１は、ファイルサーバ３０のソフトウェア構成を示す機能ブロック図である。
【００３３】
通信部３００は、ＮＩＣ３８と、そのドライバと、ＯＳのＴＣＰ／ＩＰ処理部と、アプリケーション層のＦＴＰサーバとを備えている。
【００３４】
従来では、通信部３００のＦＴＰサーバが、クライアントからの要求に応じて、補助記憶装置３０１にファイルを格納し、又は補助記憶装置３０１からファイルを読み出して要求元へ送信する場合に、ファイルシステム３０２およびドライバ３０３を介して補助記憶装置３０１をアクセスしていた。以下においては、ファイルシステム３０２に含まれる関数のうち、補助記憶装置３０１からファイルを読み出すＡＰＩ関数をＦＧＥＴ、補助記憶装置３０１にファイルを格納するＡＰＩ関数をＦＰＵＴとし、ＦＧＥＴ及びＦＰＵＴを呼び出す命令をそれぞれＦＧＥＴコマンド及びＦＰＵＴコマンドと称し、これらのコマンドにパラメータとして含まれるファイル名をコマンドパラメータと称す。
【００３５】
本発明の実施例では、通信部３００とファイルシステム３０２との間に、要求解釈部３０４を介在させ、すなわち、例えば上記ＡＰＩ関数のＦＧＥＴ及びＦＰＵＴとシグネチャを同一にしたＦＧＥＴ及びＦＰＵＴの関数を要求解釈部３０４に備え、これらＦＧＥＴ及びＦＰＵＴに関してのみ、通信部３００のＦＴＰサーバが要求解釈部３０４のＦＧＥＴ及びＦＰＵＴを呼び出すように変更し（オブジェクト名を変更し）、これらに影響を受けないその他のＡＰＩ関数に関してはＦＴＰサーバが要求解釈部３０４を介さずにファイルシステム３０２の関数を呼び出すようにし（変更せず）、要求解釈部３０４での判断に応じて、要求解釈部３０４からファイルシステム３０２のＦＧＥＴ又はＦＰＵＴを呼び出すようにする（スルー状態にする）。
【００３６】
或いは、ＦＴＰサーバがファイルシステム３０２のＦＧＥＴ又はＦＰＵＴを呼び出す際に機械語レベルでこれをフックして（ジャンプ先を変えて）、要求解釈部３０４に制御を移すようにし、要求解釈部３０４での判断に応じて、ジャンプ先を元のジャンプ先に戻すことにより、要求解釈部３０４からファイルシステム３０２のＦＧＥＴ又はＦＰＵＴを呼び出す（ＦＧＥＴコマンド又はＦＰＵＴコマンドを実行する）ようにする（スルー状態にする）。
【００３７】
要求解釈部３０４は、通信部３００のＦＴＰサーバから呼び出されたＦＧＥＴ関数又はＦＰＵＴ関数のパラメータに、所定の記号が含まれていなければ、上記のようにスルー状態にして要求解釈部３０４を通過させる。すなわち、ＦＴＰサーバによりファイルシステム３０２を介しＦＧＥＴコマンド又はＦＰＵＴコマンドが実行される。
【００３８】
要求解釈部３０４は、ＦＧＥＴ又はＦＰＵＴコマンドのパラメータに所定の記号が含まれている場合、このパラメータで識別されるファイル名のファイルの内容を、通信部３００からコマンドとして受け取り、これを命令解釈実行部（インタープリタ）３０５に渡して解釈実行させる。このコマンドをＦＧＥＴ又はＦＰＵＴのコマンドと区別するため、内部コマンドと称す。
【００３９】
命令解釈実行部３０５は、内部コマンドがＯＳのシェルコマンドであれば、シェル３０６を介してこれを実行させ、ファイルシステム３０２およびドライバ３０３を介して補助記憶装置３０１内のファイルを操作し、又は、ＤＢＭＳ３０７、ファイルシステム３０２及びドライバ３０３を介して、補助記憶装置３０１に格納されているデータベースをアクセスする。
【００４０】
本実施例１では、ファイル操作の１つとして、トランザクション処理、たとえばファイルＡとファイルＢとが共に補助記憶装置３０１に正常に格納されたときにこれを有効とし、これらの一方でも補助記憶装置３０１に正常に格納されなかった場合には、他方も補助記憶装置３０１から削除させるという処理を行えるようにしている。これを可能にするために、セッション記憶部３０８を備え、要求解釈部３０４によりセッションＩＤの生成及び消滅処理を行っている。また、現セッションＩＤ記憶部３０９を備え、要求解釈部３０４が、現在処理しているセッションのＩＤを現セッションＩＤ記憶部３０９に書き込み、３０５からこれをアクセスして、後述のようにトランザクション処理で用いる。
【００４１】
図２は、図１中の本実施例特徴部である要求解釈部３０４での１つのコマンドに対する処理を示す概略フローチャートである。以下、括弧内は図中のステップ識別符号である。
【００４２】
ＦＧＥＴ又はＦＰＵＴの関数呼び出しパラメータ（コマンドパラメータ）に「＃文字列＃」が含まれておらず（Ｓ０）、かつ、「サーバ装置文字列＃」が含まれていなければ（Ｓ１）、ステップＳ２へ進み、要求解釈部３０４を、上述のようにスルー状態にして、従来と同一の処理が行われるようにしている。
【００４３】
ステップＳ０において、ＦＧＥＴ又はＦＰＵＴのコマンドパラメータに＃文字列＃が含まれている場合、このコマンドが「ＦＧＥＴ  ＃ＳＥＳＳＩＯＮ＃」であればステップＳ３へ進み、「ＦＰＵＴ  サーバ装置文字列＃ＣＯＭＭＡＮＤ＃」であればステップＳ５へ進み、「ＦＧＥＴ  サーバ装置文字列＃ＲＥＳＵＬＴ＃」であればステップＳ７へ進み、その他の場合にはステップＳ９へ進む。
【００４４】
（Ｓ３）セッションＩＤを生成し、セッション記憶部３０８に書き込む。
【００４５】
（Ｓ４）このセッションＩＤを、ファイル名が＃ＳＥＳＳＩＯＮ＃であるファイル（＃ＳＥＳＳＩＯＮ＃ファイル）の内容として通信部３００のＦＴＰサーバへ返す。これは、ＦＴＰサーバから見れば、＃ＳＥＳＳＩＯＮ＃ファイルを補助記憶装置３０１からＦＧＥＴした場合と区別が付かない。すなわち、従来構成のＦＴＰサーバをそのまま用いて、拡張処理を行うことが可能となる。ステップＳ４の処理が終了すると、１つのコマンドに対する処理が終了する（以下、ステップＳ６、Ｓ８、Ｓ９についても同様）。
【００４６】
（Ｓ５）「サーバ装置セッションＩＤ＃」に含まれるセッションＩＤが、セッション記憶部３０８に書き込まれているいずれかのセッションＩＤと一致すれば、ステップＳ６へ進み、そうでなければステップＳ９へ進む。
【００４７】
（Ｓ６）通信部３００から受け取った＠ＡＢＣ１２３４５＃ＣＯＭＭＡＮＤ＃ファイルの内容を、内部コマンドとして命令解釈実行部３０５へ渡し、また、セッションＩＤ記憶部３０９の内容を現セッションＩＤの値「ＡＢＣ１２３４５」で更新する。命令解釈実行部３０５は前者に応答して、このコマンドを解釈し実行し、この実行が正常に行われたか否かの情報を、実行結果としてセッションＩＤと共に要求解釈部３０４に返す。要求解釈部３０４はこれをセッションＩＤと対応付けて一時記憶しておき、ステップＳ８においてこれを用いる。同一セッションの実行結果は、新しいもので上書きする。
【００４８】
（Ｓ７）「サーバ装置セッションＩＤ＃」に含まれるセッションＩＤが、セッション記憶部３０８に書き込まれているいずれかのセッションＩＤと一致すれば、ステップＳ８へ進み、そうでなければステップＳ９へ進む。
【００４９】
（Ｓ８）このセッションＩＤに関する上記実行結果を、サーバ装置＃ＲＥＳＵＬＴ＃ファイルの内容として通信部３００に返す。通信部３００は、これに応答して、要求元へこの内容をそのファイル名とともに送信する。
【００５０】
（Ｓ９）エラーであることを示す文字列を、エラーファイルの内容として通信部３００に返す。
【００５１】
（Ｓ１０）「サーバ装置セッションＩＤ＃」に含まれるセッションＩＤが、セッション記憶部３０８に書き込まれているいずれかのセッションＩＤと一致すれば、ステップＳ１１へ進み、そうでなければステップＳ９へ進む。
【００５２】
（Ｓ１１）セッション記憶部３０８に格納されている後述のカウンタＣＴＲ０（図５）の内容が、正であればステップＳ１２へ進み、そうでなければステップＳ２へ進む。
【００５３】
（Ｓ１２）後述のように、ファイル名「サーバ装置文字列＃文字列」をセッション記憶部３０８内（図５）に書き込む。
【００５４】
（Ｓ１３）セッション記憶部３０８に格納されている後述のカウンタＣＴＲ１（図５）を１だけインクリメントし、ステップＳ２へ進む。
【００５５】
図５は、セッション記憶部３０８に含まれるトランザクション制御情報ＴＣＩの変化を示す説明図である。図５中、トランザクション制御情報ＴＣＩの最下段のＮＵＬＬは、この制御情報の終わりを示している。
【００５６】
次に、図４、図６〜図９に示す、ＰＣ２００とファイルサーバ３０との間でのファイル転送及びファイルサーバ３０でのファイル操作の概略シーケンスの具体例を、図２及び図５を参照して説明する。なお、図４、図６〜図９では、簡単化のため、認証処理、ディレクトリ変更、モード変更及び細かな応答処理等を図示省略している。
【００５７】
［１］トランザクション処理（図４）
（１−１）ＰＣ２００において、キーボード又はソースコードファイルから、ＦＴＰコマンドである「ＧＥＴ  ＃ＳＥＳＳＩＯＮ＃」コマンドが、ＦＴＰクライアントに入力される。ＦＴＰクライアントは、このＦＴＰコマンドを、ＦＴＰプロトコルレベルのコマンドに変換してファイルサーバ３０へ送信する。コマンドが変換されても、コマンドパラメータに含まれているファイル名は変わらない。このコマンドに対応して、通信部３００から要求解釈部３０４へＦＧＥＴコマンドが供給される（ＦＴＰサーバが要求解釈部３０４のＦＧＥＴ関数を呼び出す）。要求解釈部３０４では、図２において、ステップＳ０、Ｓ３及びＳ４の処理が行われて、セッションＩＤ、例えば「ＡＢＣ１２３４５」が生成され、これがセッション記憶部３０８に書き込まれ、このセッションＩＤが＃ＳＥＳＳＩＯＮ＃ファイルの内容として通信部３００に返される。
【００５８】
（１−２）これにより、ファイルサーバ３０からＰＣ２００へ、＃ＳＥＳＳＩＯＮ＃ファイルが送信される。
【００５９】
（１−３）ＦＴＰクライアントに「ＰＵＴ  Ｃｏｍｍａｎｄ１．ｔｘｔ  ＠ＡＢＣ１２３４５＃ＣＯＭＭＡＮＤ＃」コマンドが入力されて、ローカルのＣｏｍｍａｎｄ１．ｔｘｔファイルの内容が、リモートの＠ＡＢＣ１２３４５＃ＣＯＭＭＡＮＤ＃ファイルとしてファイルサーバ３０に送信される。これにより、「ｔｒａｎｓａｃｔｉｏｎ  ｂｅｇｉｎ」を内容とする＠ＡＢＣ１２３４５＃ＣＯＭＭＡＮＤ＃ファイルがファイルサーバ３０に送信される。次いで、通信部３００から要求解釈部３０４へＦＰＵＴコマンドが供給され、要求解釈部３０４により、図２において、ステップＳ０、Ｓ５及びＳ６の処理が行われ、これにより、現セッションＩＤ記憶部３０９の内容が現セッションＩＤの値で更新され、また、命令解釈実行部３０５により「ｔｒａｎｓａｃｔｉｏｎ  ｂｅｇｉｎ」内部コマンドが解釈・実行される。
【００６０】
図３は、１つの内部コマンドに対する命令解釈実行部３０５の処理、主にトランザクション処理を示すフローチャートである。
【００６１】
（Ｓ２０）内部コマンドが「ｔｒａｎｓａｃｔｉｏｎ」の場合、そのパラメータが「ｂｅｇｉｎ」であればステップＳ２１へ進み、「ｃｏｍｍｉｔ」であればステップＳ２２へ進み、内部コマンドが「ｔｒａｎｓａｃｔｉｏｎ」以外の場合にはステップＳ２６へ進む。
【００６２】
（Ｓ２１）カウンタＣＴＲ０を１だけインクリメントし、この内部コマンドの処理を終了する。図５（Ａ）に示す初期状態（ＣＴＲ０＝０、ＣＴＲ１＝１）の場合には、このインクリメントにより、図５（Ｂ）の状態になる。
【００６３】
次に、図４に戻って説明する。
【００６４】
（１−４）ＦＴＰクライアントに「ＰＵＴ  Ｈｅｌｌｏ．ｔｘｔ  ＠ＡＢＣ１２３４５＃Ｈｅｌｌｏ．ｔｘｔ」コマンドが入力されて、ローカルのＨｅｌｌｏ．ｔｘｔファイルの内容が、リモートの＠ＡＢＣ１２３４５＃Ｈｅｌｌｏ．ｔｘｔファイルとしてファイルサーバ３０に送信される。これにより、通信部３００から要求解釈部３０４へＦＰＵＴコマンドが供給され、要求解釈部３０４では、図２において、ステップＳ０、Ｓ１、Ｓ１０を通ってステップＳ１１でＣＴＲ０＞０（トランザクション処理中）と判定され、ステップＳ１２へ進む。
【００６５】
ステップＳ１２では、ファイル名「＠ＡＢＣ１２３４５＃Ｈｅｌｌｏ．ｔｘｔ」をセッション記憶部３０８内のヒープメモリに格納し、その参照アドレスを、ワードアドレスがカウンタＣＴＲ１にその内容（ＣＴＲ１）を加算した値の所、すなわちワードアドレスＣＴＲ１＋（ＣＴＲ１）へ格納する。図５では、簡単化のため、ファイル名を参照アドレスに直接記載している（以下同様）。
【００６６】
次にステップＳ１３で、カウンタＣＴＲ１が１だけインクリメントされ、トランザクション制御情報ＴＣＩが図５（Ｃ）に示す状態になる。次にステップＳ１３で、ファイルシステム３０２及びドライバ３０３を介し補助記憶装置３０１に＠ＡＢＣ１２３４５＃Ｈｅｌｌｏ．ｔｘｔファイルが格納される。
【００６７】
（１−５）ＦＴＰクライアントに「ＰＵＴ  Ｍｏｒｎｉｎｇ．ｔｘｔ  ＠ＡＢＣ１２３４５＃Ｍｏｒｎｉｎｇ．ｔｘｔ」コマンドが入力され、上記同様の処理が行われて、トランザクション制御情報ＴＣＩが図５（Ｄ）に示す状態になり、補助記憶装置３０１に＠ＡＢＣ１２３４５＃Ｍｏｒｎｉｎｇ．ｔｘｔファイルが格納される。
【００６８】
（１−６）ＦＴＰクライアントに「ＰＵＴ  Ｃｏｍｍａｎｄ２．ｔｘｔ  ＠ＡＢＣ１２３４５＃ＣＯＭＭＡＮＤ＃」コマンドが入力され、上記（１−３）と同様な処理が行われる。但し、「ｔｒａｎｓａｃｔｉｏｎ  ｃｏｍｍｉｔ」を内容とする＠ＡＢＣ１２３４５＃ＣＯＭＭＡＮＤ＃ファイルがファイルサーバ３０に送信され、命令解釈実行部３０５によりこの内部コマンドが解釈・実行される。
【００６９】
図３に戻って、命令解釈実行部３０５では、ステップＳ２０からステップＳ２２へ進む。
【００７０】
（Ｓ２２）命令解釈実行部３０５は、現セッションＩＤ記憶部３０９の内容を読み出し、その値を含むファイル名をトランザクション制御情報ＴＣＩから探し出し、それらファイル名のファイルが全て補助記憶装置３０１に格納されているか否かを調べ、否定判定した場合にはそれらファイル名のファイルを全て補助記憶装置３０１から削除する。
【００７１】
（Ｓ２３）前記判定結果によらず、前記ファイル名を全てトランザクション制御情報ＴＣＩから削除し、また、カウンタＣＴＲ０を１だけデクリメントする。
【００７２】
（Ｓ２４）カウンタＣＴＲ０が０でなければ図３の処理を終了し、そうでなければステップＳ２５へ進む。
【００７３】
（Ｓ２５）トランザクション制御情報ＴＣＩの内容をリセットして初期状態にする。これにより、図５（Ａ）に示す状態に戻る。
【００７４】
このような簡単なソフトウェア構成により、ファイルサーバ３０においてトランザクション処理も可能となる。
【００７５】
また、このようなトランザクション制御情報ＴＣＩを用いたトランザクション処理を行うことにより、制御情報ＴＣＩにトランザクションと無関係なファイル名が書き込まれる場合があるものの、トランザクション制御情報ＴＣＩのデータ構造及び処理が簡単になる。
【００７６】
次に、「ｃｌｏｓｅ  ｓｅｓｓｉｏｎ」内部コマンドが命令解釈実行部３０５で実行されて、セッション記憶部３０８内のうち現セッションＩＤ記憶部３０９の内容に一致するセッションＩＤが削除される。
【００７７】
なお、図３において、「ｔｒａｎｓａｃｔｉｏｎ」以外の内部コマンドの場合、ステップＳ２６で解釈・実行される。
【００７８】
［２］プリント処理（図６）
（２−１）、（２−２）及び（２−３）での処理はそれぞれ図４の（１−１）、（１−２）及び（１−４）の処理と同一である。
【００７９】
（２−４）ＦＴＰクライアントに「ＰＵＴ  Ｃｏｍｍａｎｄ３．ｔｘｔ  ＠ＡＢＣ１２３４５＃ＣＯＭＭＡＮＤ＃」コマンドが入力されて、ローカルのＣｏｍｍａｎｄ１．ｔｘｔファイルの内容が、リモートの＠ＡＢＣ１２３４５＃ＣＯＭＭＡＮＤ＃ファイルとしてファイルサーバ３０に送信される。これにより、「ｐｒｉｎｔ  Ｈｅｌｌｏｗ．ｔｘｔ」を内容とする＠ＡＢＣ１２３４５＃ＣＯＭＭＡＮＤ＃ファイルがファイルサーバ３０に送信される。
【００８０】
次いで、通信部３００から要求解釈部３０４へＦＰＵＴコマンドが供給され、要求解釈部３０４により、図２において、ステップＳ０、Ｓ５及びＳ６の処理が行われ、これにより、セッションＩＤ記憶部３０９の内容が現セッションＩＤの値で更新され、また、命令解釈実行部３０５により「ｐｒｉｎｔ  Ｈｅｌｌｏｗ．ｔｘｔ」内部コマンドが解釈・実行される。
【００８１】
この場合、「サーバ装置文字列＃」がファイル名に付加されていないので、この解釈・実行の前処理として、命令解釈実行部３０５により現セッションＩＤ記憶部３０９の内容が読み出され、これがファイル名に付加される。これにより、「ｐｒｉｎｔ  ＠ＡＢＣ１２３４５＃Ｈｅｌｌｏｗ．ｔｘｔ」内部コマンドが命令解釈実行部３０５により解釈・実行される。
【００８２】
この実行においては、補助記憶装置３０１から＠ＡＢＣ１２３４５＃Ｈｅｌｌｏｗ．ｔｘｔファイルが読み出され、ＤＢＭＳ３０７を介して補助記憶装置３０１内のデータベースから画像形成装置４０との通信情報が読み出され、これに基づいて、このファイルがプリント要求情報とともに画像形成装置４０に送信されて、このファイルの内容が画像形成装置４０で印刷される。
【００８３】
［３］ユーザ登録処理（図７）
（３−１）、（３−２）及び（３−３）での処理はそれぞれ図４の（１−１）、（１−２）及び（１−３）の処理と同様である。但し、（３−３）では、「ｃｒｅａｔｅ  ｕｓｅｒ  ｎｅｍａ＝ｓｃｏｔ  ｐａｓｓｗｏｒｄ＝ｔｉｇｅｒ」内部コマンドが命令解釈実行部３０５に供給される。命令解釈実行部３０５はこれに応答して、ＤＢＭＳ３０７、ファイルシステム３０２及びドライバ３０３を介し補助記憶装置３０１内のデータベースのユーザ登録テーブルに、ユーザ名がｓｃｏｔ、パスワードがｔｉｇｅｒのユーザ登録処理を行う。
【００８４】
このような方法によりユーザ登録を行えば、大量のユーザ登録を一括して高速に行うことができ、新規システム導入等の際に有効利用することができる。
【００８５】
（３−５）ＦＴＰクライアントに「ＧＥＴ  ＠ＡＢＣ１２３４５＃ＲＥＳＵＬＴ」コマンドが入力されて、通信部３００から要求解釈部３０４へＦＧＥＴコマンドが供給される。
【００８６】
（３−６）要求解釈部３０４では、図２において、ステップＳ０、Ｓ７を通ってステップＳ８で、命令解釈実行部３０５から受け取りセッションＩＤと対応付けて保存しておいた実行結果のうち、セッションＩＤが＠ＡＢＣ１２３４５であるもの（同一セッションＩＤのものは新しい実行結果で上書きされるので１つ）「ＯＫ  ｃｒｅａｔｅ」を、＠ＡＢＣ１２３４５＃ＲＥＳＵＬＴファイルの内容として通信部３００に返す。これにより、ファイルサーバ３０からＰＣ２００へ、この内容が＠ＡＢＣ１２３４５＃ＲＥＳＵＬＴファイルとして送信される。
【００８７】
［４］ファイルマージ処理（図８）
（４−１）、（４−２）、（４−３）、（４−４）及び（４−５）での処理はそれぞれ図４の（１−１）、（１−２）、（１−４）、（１−５）及び（１−６）での処理と同様である。但し、（４−５）では、「ｃｏｐｙ  ＠ＡＢＣ１２３４５＃Ｈｅｌｌｏ．ｔｘｔ＋＠ＡＢＣ１２３４５＃ＧｏｏｄＭｏｒｎｉｎｇ．ｔｘｔ  ＠ＡＢＣ１２３４５＃Ｇｒｅｅｔｉｎｇ．ｔｘｔ」内部コマンドが命令解釈実行部３０５に供給される。命令解釈実行部３０５はこれに応答して、不図示のシェルコマンドテーブルを参照し、このコマンドがシェルコマンドであると判定して、シェル３０６にこのコマンドを実行させる。
【００８８】
これにより、補助記憶装置３０１内の＠ＡＢＣ１２３４５＃Ｈｅｌｌｏ．ｔｘｔファイルと＠ＡＢＣ１２３４５＃ＧｏｏｄＭｏｒｎｉｎｇ．ｔｘｔファイルとが併合され、＠ＡＢＣ１２３４５＃Ｇｒｅｅｔｉｎｇ．ｔｘｔファイルとして補助記憶装置３０１に格納される。
【００８９】
この方法によれば、既存のシェル３０６を用いることができるので、機能拡張が容易に行われる。
【００９０】
［５］検索キー埋め込み処理（図９）
ここで、ファイルシステム３０２はＮＴＦＳファイルシステムであるとする。この場合、補助記憶装置３０１に格納され、メモリに読み込まれているマスターファイルテーブル内の対応するレコードに、ファイル名、日付等が書き込まれており、このレコードに、任意の属性（属性名とその属性値の組）を任意個数付加することができる。したがって、検索キーワードの種類とその値を属性としてこのレコードに埋め込むことが可能である。
【００９１】
図９において、（５−１）〜（５−６）での処理はそれぞれ図６の（２−１）〜（２−４）及び図７の（３−４）、（３−５）での処理と同様である。但し、（５−４）では、「ｅｍｂｅｄＫｅｙｗｏｒｄ  ｇｅｎｒｅ＝”風景”  ｐｌａｃｅ＝”東京”  ｉｎｔｏ  ＠ＡＢＣ１２３４５＃ｉｍａｇｅ．ｊｐｅｇ」内部コマンドが命令解釈実行部３０５に供給される。命令解釈実行部３０５は、これに応答して、補助記憶装置３０１内の＠ＡＢＣ１２３４５＃ｉｍａｇｅ．ｊｐｅｇファイルの上記レコードに、ｇｅｎｒｅ＝”風景”  ｐｌａｃｅ＝”東京”の属性を書き込む。
【００９２】
このようにすれば、画像形成装置４０がＮＴＦＳファイルシステムを備えていなくても、画像形成装置４０でスキャンした画像のファイルをファイルサーバ３０にアップロードした後に、このファイルに検索キーワードを埋め込むことが容易にでき、効果的である。
【００９３】
なお、本発明には外にも種々の変形例が含まれる。
【００９４】
例えば、上記実施例ではファイルを転送するプロトコルがＦＴＰである場合を説明したが、本発明は上記説明から明らかなようにこれに限定されず、サーバ側でファイルを受け取ってファイルシステムをアクセスする全てのプロトコルに本発明を適用可能である。
【００９５】
また、セッションＩＤを例えばクライアントのＩＰアドレス及びポート番号と、サーバのＩＰアドレス及びポート番号との組み合わせによりＦＴＰサーバで生成し、パケットに含まれるこれらの値でクライアントのセッションＩＤをサーバが検出することにより、要求解釈部でセッションＩＤの生成消滅を行わず、このセッションＩＤを要求解釈部３０４及び命令解釈部３０５が環境変数から必要に応じ取得する構成であってもよい。
【００９６】
また、本発明はセッションＩＤを用いない構成であってもよい。
【図面の簡単な説明】
【００９７】
【図１】ファイルサーバのソフトウェア構成を示す概略機能ブロック図である。
【図２】図１中の本実施例特徴部である要求解釈部での１つのコマンドに対する処理を示す概略フローチャートである。
【図３】１つの内部コマンドに対する、図１中の命令解釈実行部の処理、主にトランザクション処理を示すフローチャートである。
【図４】ＰＣとファイルサーバとの間でのファイル転送及びファイルサーバでの疑似ファイル操作（トランザクション処理）の概略シーケンス図である。
【図５】（Ａ）〜（Ｄ）は図１中のセッション記憶部に含まれるトランザクション制御情報ＴＣＩの変化を、図４の場合について示す説明図である。
【図６】ＰＣとファイルサーバとの間でのファイル転送及びファイルサーバでのファイル操作（プリントのための処理）の概略シーケンス図である。
【図７】ＰＣとファイルサーバとの間でのファイル転送及びファイルサーバでの疑似ファイル操作（ユーザ登録処理）の概略シーケンス図である。
【図８】ＰＣとファイルサーバとの間でのファイル転送及びファイルサーバでのファイル操作（ファイルマージ処理）の概略シーケンス図である。
【図９】ＰＣとファイルサーバとの間でのファイル転送及びファイルサーバでのファイル操作（検索キーワード埋込処理）の概略シーケンス図である。
【図１０】本発明の実施例１に係る画像形成システムの概略構成図である。
【図１１】図１０中のファイルサーバのハードウェア構成を示す概略ブロック図である。
【符号の説明】
【００９８】
１０  ネットワーク
２００  ＰＣ
３０  ファイルサーバ
３００  通信部
３０１  補助記憶装置
３０２  ファイルシステム
３０３  ドライバ
３０４  要求解釈部
３０５  命令解釈実行部
３０６  シェル
３０７  ＤＢＭＳ（データベース管理システム）
３０８  セッション記憶部
３０９  現処理セッション記憶部
３１  ＭＰＵ
３２  インターフェイス
３３  ＲＯＭ
３４  ＲＡＭ
３５  ＨＤＤ
３６  入力装置
３７  表示装置
３８  ＮＩＣ
４０  画像形成装置
ＣＴＲ０、ＣＴＲ１  カウンタ
ＴＣＩ  トランザクション制御情報
【図１】
2010117914.tif 000003
【図２】
2010117914.tif 000004
【図３】
2010117914.tif 000005
【図４】
2010117914.tif 000006
【図５】
2010117914.tif 000007
【図６】
2010117914.tif 000008
【図７】
2010117914.tif 000009
【図８】
2010117914.tif 000010
【図９】
2010117914.tif 000011
【図１０】
2010117914.tif 000012
【図１１】
2010117914.tif 000013