説明

ネットワークにおけるファイル伝送の方法、システム、仮想プリンタ装置、復元装置

ネットワークにおけるファイル伝送の方法を開示している。当該方法は、ファイル送信側は、仮想印刷を行うことで現在送信しようとする共有ファイルをGDIファイルに変換するステップAと、ファイル送信側は、ネットワークを介してGDIファイルをファイル受信側に送信するステップBと、ファイル受信側は、受信したGDIファイルを共有ファイルと一致する内容情報に復元するステップCと、を含む。また、本発明は、ネットワークにおけるファイル伝送のシステムを開示している。本発明に係る方法及びシステムによれば、ファイルの伝送がアプリケーションプログラムに限定されないことになる

【発明の詳細な説明】
【技術分野】
【0001】
本発明はネットワーク通信技術に関し、特にネットワークにおけるファイル伝送の方法およびシステムに関する。
【背景技術】
【0002】
インターネットと移動通信技術の発展に伴って、ローカルエリアネットワーク、電子メール及びインスタントメッセージング(IM)ツールなどにより、例えば、データ交換やメッセージのやり取りなど相互通信を実現できる。その中、データ交換には、ファイル伝送、アプリケーションプログラム共有、及びオーディオとビデオのファイル共有などが含まれる。いわゆるファイル伝送とは、ファイル送信側がローカルエリアネットワークにおける他のコンピュータにログインすること、電子メールの添付ファイルを使うこと、及びIMツールを用いることなどにより、共有ファイルをファイル受信側に送信することである。このファイルは、文字と図面のみを含むファイルである。例えば、Wordファイル、Excelテーブルファイル、AutoCAD図面ファイル及びPhotoshop図面ファイル、など。共有ファイルの内容を正常に調べるために、ファイル受信側に、共有ファイルに関連するアプリケーションプログラムがインストールされなければならない。ファイル受信側にインストールされるアプリケーションプログラムの種類を減少するために、上記共有ファイルをPDFフォーマットのファイルに変換してもいいが、この場合、ファイル受信側に相応のアプリケーションプログラムがインストールされていなければ、PDFファイルの読取も依然として不可能である。
【0003】
普通、ユーザは、コンピュータ又は移動端末上のIMクライアントを用いることにより、ファイルの伝送を完了する。以下、IMユーザAをファイル送信側、IMユーザBをファイル受信側とした場合、IMツールを用いて共有ファイルの伝送を実現する手順を詳しく説明する。
【0004】
図1は、従来の、インターネットのIMツールを用いて共有ファイルを伝送する方法を示すフローチャートである。図1に示すように、IMユーザAとIMユーザBの両方ともインターネットのIMツールを用いるとき、IMツールにより共有ファイルを伝送する方法は下記のステップを含む。
【0005】
ステップ101において、IMユーザAは共有しようとするファイルを選択する。
【0006】
本ステップで、IMユーザAは、その所属するコンピュータに記憶されたファイルから、IMユーザBと共有しようとするファイル、例えば、テキストファイル、Wordファイル、AutoCADファイル及びExcelファイルなどを選択する。
【0007】
ステップ102〜103において、IMユーザAは、IMサーバに、IMユーザBのインターネットプロトコル(IP)アドレスと通信ポート番号を要求する。IMサーバはIMユーザBのIPアドレスをIMユーザAに返信する。
【0008】
IMユーザAは、IMサーバにIPアドレスと通信ポート番号の要求を送出するとき、IMユーザBの唯一な識別子、例えば、IMユーザBのユーザ名、ユーザ番号又は電子メールアドレスなどを当該要求に付ける。そして、IMサーバは、IMユーザBの唯一な識別子をインデックスとして、IMユーザBが現在所属するIPアドレスと通信ポート番号を検出して、IMユーザAに返信する。
【0009】
ステップ104において、IMユーザAは、得られたIPアドレスと通信ポート番号に基づいて、IMユーザBとの接続を試みる。
【0010】
本ステップで、IMユーザAは、IMサーバから得られたIPアドレスと通信ポート番号に基づき、接続要求をIMユーザBへ送信し、IMユーザBとの接続確立を試みる。
【0011】
ステップ105において、IMユーザBへの接続に成功したかどうかを判断し、成功した場合、ステップ106に進み、成功しなかった場合、ステップ107に進む。
【0012】
本ステップで、IMユーザAは、自身のタイマーがタイムアウトするまでに、IMユーザBからの応答を受信した場合、IMユーザAからIMユーザBへの接続に成功し、IMユーザBからの応答を受信しなかった場合、IMユーザAからIMユーザBへ接続できないと判定する。
【0013】
通常、IMユーザBがパブリックネットワーク(public network)にあり、又はそのファイアウォール(firewall)が比較的弱い場合、IMユーザAは直接IMユーザBに接続でき、他の場合、IMユーザAは直接IMユーザBに接続できない。
【0014】
ステップ106において、IMユーザAは、ファイルをIMユーザBに伝送し、次に、ステップ109に進む。
【0015】
IMユーザAとIMユーザBとの間の接続を直接に確立できるため、本ステップで、IMユーザAはステップ101において選定されたファイルを直接にIMユーザBに送信する。
【0016】
ステップ107〜108において、IMユーザAは、ファイルをIMサーバに送信し、当該ファイルをIMユーザBに送信するようにIMサーバに要求する。その後、IMサーバは、IMユーザBのIPアドレスと通信ポート番号に基づき、IMユーザAからのファイルをIMユーザBに転送する。そして、ステップ109に進む。
【0017】
ステップ109において、IMユーザBは受信したファイルを調べる。
【0018】
本ステップで、IMユーザBは、IMユーザAからのファイルを受信した後、当該ファイルに関連するソフトウェアを用いてファイルを開き、その内容を調べ、IMユーザと同一のファイルを共有する目的を実現する。例えば、IMユーザAから送信されてきたのはWordファイルであれば、IMユーザBは、Officeやワードパッド(wordpad)などのソフトウェアを用いて、当該Wordファイルを開く。
【0019】
上記は、IMユーザAとIMユーザBのいずれもインターネットIMツールにより共有ファイルの伝送を行う手順である。もちろん、スマートフォン(smart phone)上で用いられる無線IMツールにより共有ファイルの伝送を完了することも可能となる。次に、IMユーザAが無線IMツールを用い、IMユーザBがインターネットIMツールを用いる場合を例として説明する。
【0020】
図2は、従来の、インターネットIMツール又は無線IMツールを用いて、共有ファイルを伝送する方法を示すフローチャートである。図2に示すように、無線IMツールを用いるIMユーザAとインターネットIMツールを用いるIMユーザBとの間で共有ファイルを伝送する方法は下記のステップを含む。
【0021】
ステップ201において、IMユーザAは共有しようとするファイルを選択する。
【0022】
本ステップで、IMユーザAは、その所属するコンピュータに記憶されたファイルから、IMユーザBと共有しようとするファイル、例えば、テキストファイル、Wordファイル、AutoCADファイル及びExcelファイルなどを選択する。
【0023】
ステップ202において、IMユーザAは、無線ゲートウェイを介して当該ファイルをIMサーバに送信し、当該ファイルをIMユーザBに送信するようにIMサーバに要求する。
【0024】
本ステップで、IMユーザAにより用いられる移動端末は、まず無線ゲートウェイにルーティングし、同時に、ファイルと当該ファイルの送信要求を無線ゲートウェイに送信する。そして、無線ゲートウェイは、受信されたファイルと送信要求をIMサーバに転送する。IMユーザAのファイル送信要求には、IMユーザBの唯一な識別子が付けられている。
【0025】
ステップ203において、IMサーバは、当該ファイルをIMユーザBに転送する。
【0026】
本ステップで、IMサーバは、IMユーザBの唯一な識別子に基づきそのIPアドレスと通信ポート番号を検出し、次に、ファイルをIMユーザBに送信する。
【0027】
ステップ204において、IMユーザBは受信したファイルを調べる。
【0028】
本ステップで、IMユーザBは、IMユーザAからのファイルを受信した後、当該ファイルに関連するソフトウェアを用いてファイルを開き、その内容を調べ、IMユーザと同一のファイルを共有する目的を実現する。例えば、IMユーザAから送信されてきたのはWordファイルであれば、IMユーザBはOfficeやワードパッド(wordpad)などのソフトウェアを用いて、当該Wordファイルを開く。
【0029】
以上により、IMユーザAとIMユーザBとの間で共有ファイルの伝送手順が完了される。
【0030】
IMユーザAとIMユーザBの両方ともスマートフォンを介して無線IMクライアントにログインするとき、IMユーザAとIMユーザBとの間で共有ファイルの伝送を実現するために、IMサーバは、ステップ202の次に、まずファイルを無線ゲートウェイに送信し、次に無線ゲートウェイから当該ファイルをIMユーザBに転送する。
【0031】
同様に、IMユーザAがインターネットIMツールを用い、IMユーザBが無線IMツールを用いる場合、両者の間で共有ファイルの伝送を実現するために、IMユーザAは、まず当該ファイルをIMサーバに送信し、次にIMサーバから無線ゲートウェイを介して、ファイルをIMユーザBに転送する。
【発明の開示】
【発明が解決しようとする課題】
【0032】
上記のようなIMツールを用いて共有ファイルを伝送する方法において、ファイル受信側の所属するコンピュータ又は移動端末に、当該ファイルに関連するソフトウェアがインストールされているので、受信されたファイルを開き、さらにその内容を調べることができる。ファイル受信側の所属するコンピュータ又は移動端末に、当該ファイルに関連するソフトウェアがインストールされていなければ、受信されたファイルを開いて調べることができない。また、ファイル受信側の所属するコンピュータ又は移動端末にインストールされたソフトウェアが当該ファイルの編集ソフトウェアのバージョンと異なる場合、ファイルにおける文字と図面の位置が元と不一致の状況が発生し、ユーザによる共有ファイルへの正常な読取に影響を与えてしまう。
【0033】
同様に、ローカルエリアネットワーク、電子メールなどにより共有ファイルを伝送する場合も、ファイル受信側の所属するコンピュータ又は移動端末に、共有ファイルに関連するソフトウェアをインストールしなければならない。そうでなければ、共有ファイルの内容を正常に読み取ることができない。
【0034】
本発明は、上記に鑑みてなされたものであり、ファイル受信側に共有ファイルに関連するソフトウェアがインストールされていない場合でも当該ファイルの内容を調べることができる、ネットワークにおけるファイル伝送の方法及びシステムを提供することを目的とする。
【課題を解決するための手段】
【0035】
上記目的を達成するために、本発明はネットワークにおけるファイル伝送の方法を提供している。当該方法は、
ファイル送信側は、仮想印刷を行うことで現在送信しようとする共有ファイルをグラフィックスデバイスインタフェース(GDI)ファイルに変換するステップAと、
ファイル送信側は、ネットワークを介してGDIファイルをファイル受信側に送信するステップBと、
ファイル受信側は、受信したGDIファイルに対して復元操作を行って、それをステップAにおける前記共有ファイル内容と一致する内容情報に復元するステップCと、を含む。
【0036】
ここで、前記ステップBを行う前に、ファイル送信側はGDIファイルに対して圧縮操作を行うステップをさらに含み、前記ステップCを行う前に、ファイル受信側は受信したGDIファイルに対して解凍操作を行うステップをさらに含む。
ここで、前記ステップBを行う前に、ファイル送信側はGDIファイルに対して暗号化操作を行うステップをさらに含み、前記ステップCを行う前に、ファイル受信側は受信したGDIファイルに対して復号化操作を行うステップをさらに含む。
ここで、ステップAにおいて、前記GDIファイルに少なくともGDI命令を含み、ステップCにおいて、GDIファイルに対して復元操作を行うことは、GDIファイルにおけるGDI命令に対応するグラフィックスデバイス関数を実行することを含む。
ここで、前記ファイル送信側の所属するネットワーク端末に仮想プリンタモジュールを設定し、ステップAにおいて前記仮想印刷を行うことで共有ファイルをGDIファイルに変換する方法は、
前記ファイル送信側における共有ファイルのアプリケーションプログラムは、自身と仮想プリンタモジュールとのやり取りのインタフェースを開き、共有ファイルに対して仮想印刷を開始するステップA1と、
仮想印刷を終了するかどうかを判断し、終了すれば、共有ファイルのアプリケーションプログラムは、共有ファイルの終了を指示するGDI関数を仮想プリンタモジュールへ送信することで共有ファイルの仮想印刷を終了し、現在のGDIファイルの生成プロセスを終了し、そうでなければ、ステップA3に進むステップA2と、
共有ファイルのアプリケーションプログラムは、共有ファイルの内容に基づいて、印刷ドライバーGDI伝達インタフェース関数をコールすることで、GDI関数を仮想プリンタモジュールに送信し、当該仮想プリンタモジュールは、受信したGDI関数をGDI命令に変換し、変換の実行結果を共有ファイルのアプリケーションプログラムに返信するステップA3と、
共有ファイルのアプリケーションプログラムは、仮想プリンタから返信された変換の実行結果によって、変換に成功したかどうかを判断し、成功した場合、次のGDI関数に進み、ステップA2に戻り、成功しなかった場合、共有ファイルの終了を指示するGDI関数を仮想プリンタモジュールに送信することで共有ファイルの仮想印刷を終了し、現在のGDIファイルの生成プロセスを終了するステップA4と、を含む。
ステップA2において、前記仮想印刷を終了するかどうかを判断する方法は、前記共有ファイルのアプリケーションプログラムは、共有ファイルの内容に基づいてコールされたGDI関数を仮想プリンタモジュールに全部伝送したかどうかを判断し、全部伝送した場合、仮想印刷を終了すると判断し、そうでなければ、仮想印刷を終了しないと判断するステップを含む。
ここで、前記GDI命令は、少なくとも、GDI関数名、GDI関数番号、GDI実行シリアル番号を含み、
ステップA3において、前記仮想プリンタモジュールが、受信したGDI関数をGDI命令に変換し、変換の実行結果を共有ファイルのアプリケーションプログラムに返信する方法は、
印刷ドライバーGDI伝達インタフェース関数が共有ファイルのアプリケーションプログラムにコールされ、仮想プリンタモジュールは、受信したGDI関数が共有ファイルの仮想印刷の開始を示すGDI関数であるかどうかを判断し、そうであれば、ステップA32に進み、そうでなければ、ステップA33に進むステップA31と、
仮想プリンタモジュールは、GDIサブシステムからGDI関数名とGDI関数番号との対照表を取得し、GDI実行シリアル番号変数を0に初期化し、空のGDIファイルを確立して開いてから、初期化完了状況を示す初期化変数を生成するステップA32と、
初期化変数によって初期化が完了したかどうかを判断し、完了した場合、受信したGDI関数が共有ファイルの仮想印刷の終了を指示するGDI関数であるかどうかを判断し、共有ファイルの仮想印刷の終了を示すGDI関数であれば、GDIファイルを閉じ、ステップ35に進み、共有ファイルの仮想印刷の終了を示すGDI関数でなければ、ステップA34に進み、完了しなかった場合、ステップ32に戻るステップA33と、
現在のGDI関数に対応するGDI関数番号が検出されたかどうかを判断し、検出されたら、GDI実行シリアル番号変数の数値に1を加算し、次に、GDI命令ストリームのフォーマットに従って、GDI関数名と、GDI実行シリアル番号変数と、GDI関数とを符号化して、GDI命令を生成し、当該GDI命令をGDIファイルに書き込み、検出されなかったら、ステップA35に進むステップA34と、
仮想プリンタモジュールは、変換の実行結果を共有ファイルのアプリケーションプログラムへ返信するステップA35と、を含む。
ここで、前記GDI命令は、少なくとも、現在のGDI命令の総長さ、パラメータ数、各パラメータのパラメータ値及びパラメータ値の長さを含む。
ここで、ステップCにおいて、前記ファイル受信側が、受信したGDIファイルに対して復元操作を行って、それを共有ファイルと一致する内容に復元する方法は、
ファイル受信側の所属するネットワーク端末は、その所属するグラフィックスデバイスのサブシステムに、描画デバイスコンテキストを申し込み、その後、受信したGDIファイルにおけるすべてのGDI命令を読み取り、前記GDI命令におけるGDI実行シリアル番号に従って、すべてのGDI命令を昇順で配列し、GDI実行シリアル番号変数をGDI実行シリアル番号中の最小値に初期化するステップC1と、
GDI実行シリアル番号変数に対応するGDI命令が検出されたかどうかを判断し、検出されたら、ステップC3に進み、検出されなかったら、ステップC4に進むステップC2と、
現在のGDI命令におけるGDI関数番号及び当該GDI関数番号に対応するGDI関数を取得し、申し込まれた描画デバイスコンテキストで当該GDI関数を実行し、次に、GDI実行シリアル番号変数に1を加算し、ステップC2に戻るステップC3と、
GDI命令のシリアル番号がGDI実行シリアル番号変数より大きいGDI命令があるかどうかを判断し、あれば、GDI実行シリアル番号変数に1を加算し、ステップC2に戻り、なければ、GDIファイルを閉じ、GDIファイルの復元プロセスを終了するステップC4と、を含む。
ステップBにおいて、前記ファイル送信側が、ネットワークを介してGDIファイルをファイル受信側に送信する方法は、ファイル送信側は、インスタントメッセ−ジングツールによってGDIファイルをファイル受信側に送信するステップを含む。
ステップBにおいて、前記ファイル送信側が、ネットワークを介してGDIファイルをファイル受信側に送信する方法は、ファイル送信側は電子メールによってGDIファイルをファイル受信側に送信するステップを含む。
ステップBにおいて、前記ファイル送信側が、ネットワークを介してGDIファイルをファイル受信側に送信する方法は、ファイル送信側は、ファイル受信側の所属するネットワーク端末にログインすることによってGDIファイルをファイル受信側に送信するステップを含む。
また、本発明はネットワークにおけるファイル伝送のシステムを開示している。当該システムは、ファイル送信側とファイル受信側とを含み、
仮想プリンタモジュールと、復元モジュールと、をさらに含み、
前記ファイル送信側は、現在送信しようとする共有ファイルを前記仮想プリンタモジュールに出力し、前記仮想プリンタモジュールから、当該共有ファイルから変換されたGDIファイルを受信して前記ファイル受信側に送信するように構成され、
前記仮想プリンタモジュールは、前記ファイル送信側から共有ファイルを受信して仮想印刷を行い、当該共有ファイルをGDIファイルに変換して当該ファイル送信側に出力するように構成され、
前記復元モジュールは、前記ファイル受信側からGDIファイルを受信し、GDIファイルを前記共有ファイルの内容と一致する内容情報に復元し、前記ファイル受信側に出力するように構成され、
前記ファイル受信側は、前記ファイル送信側からGDIファイルを受信して前記復元モジュールに出力し、当該復元モジュールから前記共有ファイルの内容と一致する内容情報を受信するように構成される。
ここで、圧縮モジュールと、解凍モジュールと、をさらに含み、
前記圧縮モジュールは、ファイル送信側からGDIファイルを受信し、それを圧縮して、圧縮後のGDIファイルを当該ファイル送信側に出力するように構成され、
前記ファイル送信側は、さらに、仮想プリンタモジュールからのGDIファイルを前記圧縮モジュールに出力し、当該圧縮モジュールからの圧縮後のGDIファイルをファイル受信側に送信するように構成され、
前記解凍モジュールは、ファイル受信側から圧縮後のGDIファイルを受信し、それを解凍して、解凍後のGDIファイルを当該ファイル受信側に出力するように構成され、
前記ファイル受信側は、さらに、ファイル送信側からの圧縮後のGDIファイルを前記解凍モジュールに送信し、解凍モジュールからのGDIファイルを前記復元モジュールに出力するように構成される。
ここで、前記圧縮モジュールは、独立に設定されたエンティティであり、又は前記ファイル送信側に統合されるものであり、前記解凍モジュールは、独立に設定されたエンティティであり、又は前記ファイル受信側に統合されるものである。
ここで、暗号化モジュールと、復号化モジュールと、をさらに含み、
前記暗号化モジュールは、ファイル送信側からGDIファイルを受信して、それを暗号化し、暗号化後のGDIファイルを当該ファイル送信側に出力するように構成され、
前記ファイル送信側は、さらに、仮想プリンタモジュールからのGDIファイルを前記暗号化モジュールに出力し、当該暗号化モジュールからの暗号化後のGDIファイルをファイル受信側に送信するように構成され、
前記復号化モジュールは、ファイル受信側から暗号化後のGDIファイルを受信して、それを復号化し、復号化後のGDIファイルを当該ファイル受信側に出力するように構成され、
前記ファイル受信側は、さらに、ファイル送信側からの暗号化後のGDIファイルを前記復号化モジュールに送信し、当該復号化モジュールからのGDIファイルを前記復元モジュールに出力するように構成される。
ここで、前記暗号化モジュールは、独立に設定されたエンティティであり、又は前記ファイル送信側に統合されるものであり、前記復号化モジュールは、独立に設定されたエンティティであり、又は前記ファイル受信側に統合されるものである。
ここで、前記仮想プリンタモジュールは、独立に設定されたエンティティであり、又は前記ファイル送信側に統合されるものであり、前記復元モジュールは、独立に設定されたエンティティであり、又は前記ファイル受信側に統合されるものである。
【発明の効果】
【0037】
本発明によれば、共有ファイルの受信側に、当該ファイルに関連するソフトウェアがインストールされない場合でも、その内容を調べることができる。具体的に、本発明は以下のような有益な効果を持っている。
【0038】
1、通常、グラフィックスオペレーションインタフェースを有するオペレーションシステムには、全てグラフィックスデバイスインタフェース(GDI)サブシステムが含まれ、このGDIサブシステムは複数のGDI関数を提供して、オペレーションシステムにおけるアプリケーションプログラムにコールされるようになってあるので、本発明では、共有ファイルから変換されたGDIファイルを伝送し、ファイル受信側は既存のGDIサブシステムを利用して、GDIファイルにおけるGDI命令を順に実行することだけで、共有ファイルの内容を復元することができる。即ち、当該ファイル受信側は、いかなる関連アプリケーションプログラムもインストールすることなく、共有ファイルを順調に調べることができ、ファイル受信側による共有ファイルへの読取の難しさが低下する。
【0039】
2、GDI関数はベクトルデータと非ベクトルデータを同時にサポートする強大な機能を有しているため、変換後のGDIファイルは、色彩やラインなど方面でそれぞれ共有ファイルと同じになることができ、即ち、GDIファイルと共有ファイルとの一致性がさらに良い。
【発明を実施するための最良の形態】
【0040】
本発明の目的、技術案をさらに明確にするため、以下、図面を参照して実施例を挙げながら、本発明をさらに詳しく説明する。
【0041】
図3は本発明の方法に係る一つの好適な実施例の処理手順を示すフローチャートである。図3に示すように、当該方法は以下のステップを含む。
【0042】
ステップ301において、ファイル送信側は共有しようとするファイルを選択する。
【0043】
本ステップで、ファイル送信側は、その所属するコンピュータ又は移動端末に記憶されたファイルから、ファイル受信側と共有しようとするファイル、例えば、テキストファイル、Wordファイル、AutoCADファイル及びExcelファイルなどを選択する。
【0044】
ステップ302において、仮想印刷を行うことで、選択された共有ファイルをGDIファイルに変換する。
【0045】
GDIはグラフィックスインタフェースオペレーションシステムを備えたサブシステムであり、特定のハードウェアの出力を完了するものである。具体的に、GDIは、OFFICE、AutoCADなどのアプリケーションプログラムがGDI関数をコールすることで行われる描画要求を受信し、上記GDI関数を相応のデバイスドライバープログラムに伝送することにより、特定のハードウェア、例えば、プリンタやスクリーンなどの出力を完了する。
【0046】
本発明は、ファイル送信側の所属するネットワーク端末に仮想プリンタモジュールを確立して、アプリケーションプログラムにあわせて共有ファイルの仮想印刷を行うようにする。いわゆる仮想印刷とは、アプリケーションプログラムが共有ファイルの内容に基づいてその対応するGDI関数を仮想プリンタモジュールに送信し、当該仮想プリンタモジュールが、共有ファイルアプリケーションプログラムから送信されたGDI関数を受信し、各GDI関数毎にGDI命令に変換し、全てのGDI命令で構成されたGDI命令ストリームが一つのGDIファイルにまとめることを指している。
【0047】
ステップ303において、GDIファイルを圧縮して暗号化する。
【0048】
本ステップで、ファイル送信側の所属するクライアントは、まず、LZ77やLZWなど辞書圧縮アルゴリズムを用いて、仮想プリンタモジュールによって生成されたファイルを圧縮することにより、より小さい空間を占用するようにし、ネットワークでの伝送を便利にする。そして、予めファイル受信側と約束した、対称暗号化アルゴリズム又は非対称暗号化アルゴリズムなどの通常方法を用いて、圧縮後のGDIファイルを暗号化することにより、共有ファイルの安全性を向上させる。
【0049】
また、本ステップで、ファイル送信側の所属するIMクライアントは、先に、仮想プリンタモジュールによって生成されたGDIファイルを暗号化し、次に、暗号化されたGDIファイルを圧縮するようにしてもいい。
【0050】
ステップ304において、ファイル送信側は、圧縮して暗号化されたGDIファイルをファイル受信側に送信する。
【0051】
本ステップで、IMツールを用いて共有ファイルを伝送する場合、ファイル送信側は、背景技術におけるステップ102〜ステップ108、又はステップ202〜ステップ203によって、圧縮して暗号化されたGDIファイルをファイル受信側に送信する。ローカルエリアネットワーク方式を用いる場合、ファイル送信側は、ファイル受信側の所属するコンピュータにログインし、圧縮して暗号化されたGDIファイルを当該コンピュータのフォルダにコピーする。電子メール方式を用いる場合、ファイル送信側は、圧縮して暗号化されたGDIファイルを添付ファイルとしてファイル受信側に送信する。
【0052】
ステップ305において、ファイル受信側の所属するクライアントは、受信したGDIファイルを復号化して解凍する。
【0053】
ステップ303において圧縮して暗号化することであれば、本ステップでは、ファイル受信側の所属するクライアントは、まず、予め約束された暗号化・復号化アルゴリズムに従って、ファイル送信側からのGDIファイルに対して復号化を行い、次に、復号化されたGDIファイルを解凍する。
【0054】
ステップ303において暗号化して圧縮することであれば、本ステップでは、ファイル受信側の所属するIMクライアントは、まず、ファイル送信側からのGDIファイルに対して解凍を行い、次に、予め約束された暗号化・復号化アルゴリズムに従って、解凍されたGDIファイルを復号化する。
【0055】
ステップ306において、ファイル受信側の所属するIMクライアントは、復号化して解凍されたGDIファイルを復元して、それをファイル送信側における共有ファイルの内容と一致する内容情報に変換する。ここで、いわゆる復元操作は、ステップ302での前記変換処理に対応し、当該変換処理の逆の手順と言われ、GDIファイルに対するデコード操作とも称される。
【0056】
本ステップでは、ファイル受信側の所属するIMクライアント、ローカルエリアネットワークにおけるコンピュータ又は電子メールのクライアントは、GDIファイルからGDI命令ストリームを抽出し、各GDI命令に含まれるGDI関数番号に基づき対応のGDI関数を検出し、そして、各GDI関数を順に実行して、GDIファイルをファイル送信側の共有ファイルと同じ文字、ピクチャなどの表現形式である内容情報に復元する。
【0057】
ステップ307において、ファイル受信側は受信したファイルを調べる。
【0058】
本ステップで、ファイル受信側は、いかなるアプリケーションプログラムの補助も必要することなく、復元後のGDIファイルを直接に開いて調べることによって、ファイル送信側と同一のファイルを共有する目的を実現できる。
【0059】
上記は、本発明において、ネットワークで共有ファイルの伝送を実現する全体的な方法である。以下、そのうちの肝心なステップを詳しく説明する。
【0060】
図4は、図3に示される実施例において、GDIファイルの生成方法を示すフローチャートである。図4に示すように、ステップ302で共有ファイルをGDIファイルに変換する方法は以下のステップを含む。
【0061】
ステップ401において、アプリケーションプログラムは、共有ファイルに対して仮想印刷を開始する。
【0062】
本ステップで、まず、ファイル送信側が、共有ファイルと関連するアプリケーションプログラムを用いて当該共有ファイルを開き、次に、プリケーションプログラムが、仮想プリンタモジュールとやり取りするインタフェースを開くことにより、共有ファイルに対して仮想印刷を開始する。
【0063】
ステップ402において、アプリケーションプログラムは、仮想印刷を終了するかどうかを判断し、終了すれば、ステップ407に進み、終了しなければ、ステップ403に進む。
【0064】
本ステップで、アプリケーションプログラムは、自身のGDI関数が全部仮想プリンタモジュールに伝送されたかどうかを判断することで、印刷を終了するかどうかを決定し、全部伝送されたら、仮想印刷を終了し、全部伝送されなかったら、仮想印刷を終了しないものとする。
【0065】
ステップ403において、アプリケーションプログラムは、印刷ドライバーGDI伝達インタフェース関数をコールすることで、仮想プリンタモジュールへ一つのGDI関数を送信する。
【0066】
アプリケーションプログラムにとって、ピクチャも文字も豊かなファイルは、GDIサブシステムにおいて前後順で実行される一連のGDI関数をコールすることにより得られる表示結果である。ファイルの仮想印刷手順は、アプリケーションプログラムによりファイルを表示する手順と同じであり、即ち、一連のGDI関数を実行することによりファイルの仮想印刷の出力を完了する。仮想印刷手順には特別なGDI関数が二つあり、即ち、StartDoc関数とEndDoc関数である。ここで、StartDoc関数の機能は、アプリケーションプログラムが新規ファイルの印刷を開始するように印刷ドライバーに通知することであり、EndDoc関数の機能は、ファイルの印刷を終了するように印刷ドライバーに通知することである。本ステップで、アプリケーションプログラムは、送信されていないGDI関数のうち一番前に配列されたGDI関数を仮想プリンタモジュールに送信する。当該GDI関数には、GDI関数名と関数内のパラメータ数及び各パラメータの具体的な数値などのような詳細情報が含まれている。
【0067】
ステップ404において、仮想プリンタモジュールは、受信したGDI関数をGDI命令に変換し、変換の実行結果をアプリケーションプログラムに返信する。
【0068】
本発明において、GDI命令は少なくとも下記の部分を含む。
【0069】
1.GDI関数番号であって、4バイトを占用し、各GDI関数は、その関数名に唯一に対応するGDI関数番号を持っている。
【0070】
2.GDI実行シリアル番号であって、4バイトを占用し、現在の共有ファイルに対しては、当該GDI関数の実行順番を表し、GDI実行シリアル番号が小さいほど、当該関数を優先に実行する。
【0071】
さらに、当該GDI命令は下記の部分を含むこともできる。
【0072】
3.当該GDI命令の総長さであって、4バイトを占用し、当該GDI命令における各部分の長さの総和を表す。
【0073】
4.パラメータ数であって、1バイトを占用し、当該GDI関数に含まれるパラメータの数を示す。
【0074】
また、GDI関数にn個のパラメータが含まれると、GDI命令には、さらに、当該GDI関数における第1のパラメータ値の長さ、第2のパラメータ値の長さ…第nのパラメータ値の長さ及び各パラメータのパラメータ値が含まれる。各パラメータ値の長さはそれぞれ4バイトを占用する。
【0075】
GDI関数_LineTo(int x, int y)を例として、その対応するGDI番号は54であり、そのうち、第1のパラメータxの値は199であり、第2のパラメータ値は218であれば、上記のGDI関数に対する説明によって、GDI関数を、表1に示すフォーマットに変換する。
【0076】
【表1】

【0077】
本ステップで、仮想プリンタモジュールは、表1に示すGDI命令フォーマットに従って受信したGDI関数を変換し、変換に成功したかどうかを指示するGDI関数の実行結果をアプリケーションプログラムに返信する。本ステップの具体的な手順について、詳細は後述する。
【0078】
ステップ405〜407において、アプリケーションプログラムは、仮想プリンタモジュールから返信されたGDI関数の実行結果に基づき、変換に成功したかどうかを判断する。成功した場合、次のGDI関数に進んだ後、ステップ402に戻る。成功しなかった場合、アプリケーションプログラムは、EndDoc関数を仮想プリンタモジュールへ送信することで、共有ファイルの仮想印刷を終了し、当該EndDoc関数を受信した仮想プリンタモジュールは、GDIファイルの生成プロセスを終了する。
【0079】
アプリケーションプログラムは、仮想プリンタモジュールからGDI関数の実行に成功したことを指示する実行結果を返信した場合、続いて、仮想プリンタモジュールへ次のGDI関数を送信し、逆に、GDI関数の実行に失敗したことを指示する実行結果を受信した場合、仮想プリンタモジュールへのGDI関数の送信を停止するとともに、EndDoc関数を送信することで共有ファイルの仮想印刷を終了することを明示する。
【0080】
以上により、共有ファイルは、仮想印刷が行われることにより、GDIファイルへの変換が完了される。
【0081】
次に、ステップ404において前記GDI関数からGDI命令への変換手順を詳しく説明する。図5は、図4に示されるGDI命令ストリームの生成方法を示すフローチャートである。図5に示すように、仮想プリンタは、受信したGDI関数をGDI命令に変換し、変換の実行結果をGDI関数の実行結果としてアプリケーションプログラムに返信する。当該方法は、以下のステップを含む。
【0082】
ステップ501において、印刷ドライバーGDI伝達インタフェース関数がアプリケーションプログラムによってコールされる。
【0083】
アプリケーションプログラムが印刷ドライバーGDI伝達インタフェース関数をコールしたため、アプリケーションプログラムから伝送されてきたGDI関数に対する変換を開始するように、本ステップで当該インタフェース関数が仮想プリンタモジュールにおいて実行を開始される。
【0084】
ステップ502において、受信したGDI関数が仮想印刷の開始を示すStartDoc関数であるかどうかを判断し、そうであれば、ステップ503に進み、そうでなければ、ステップ506に進む。
【0085】
StartDoc関数は、その役割として新規ファイルの印刷を開始するように仮想プリンタモジュールに通知することであり、即ち、アプリケーションプログラムが仮想プリンタモジュールへ印刷・伝送を行う第1目のGDI関数である。従って、本ステップで判断を行う目的として、共有ファイルからGDIファイルへの変換が開始したかどうかを決定することにより、後続するステップを決める。
【0086】
ステップ503〜505において、仮想プリンタモジュールは、GDIサブシステムからGDI関数名とGDI関数番号との対照表を取得し、GDI実行シリアル番号変数を0に初期化し、次に、空のGDIファイルを確立して開く。
【0087】
ここで行われるのは共有ファイルからGDIファイルを生成する手順における初期化操作である。
【0088】
GDIサブシステムにとって、その内部に各GDI関数名をGDI関数番号と唯一に対応付ける対照表が含まれ、当該対照表で相応のGDI関数番号が検出されるGDI関数名だけが有効な関数名であり、同様に、相応のGDI関数名が存在するGDI関数番号だけが有効な関数番号である。従って、当該対照表の取得目的は、後続するプロセスにおいてアプリケーションプログラムから伝送されてきたGDI関数名が有効であるかどうかを確認しやすいことにある。
【0089】
アプリケーションプログラムからは共有ファイルの内容に基づいて対応のGDI関数を伝送してくるため、当該共有ファイルの受信側に各GDI命令の実行順番を明確させることで、共有ファイルの内容を再生するように、ここでGDI実行シリアル番号変数が設けられている。受信したGDI関数名が有効である場合、現在のGDI実行シリアル番号変数をGDI実行シリアル番号としてGDI命令に書き込むことにより、共有ファイルに含まれる全てのGDI命令における当該GDI命令の実行順番が明示される。GDI実行シリアル番号変数のより小さいGDI命令が先に実行される。
【0090】
対照表の取得とGDI実行シリアル番号変数の初期化を完了した後、仮想プリンタモジュールは、Open Fileなどのようなファイルを開くための関数をコールすることで、空のGDIファイルを確立して開き、これにより、変換後のGDI命令ストリームを当該GDIファイルに書き込むようにする。
【0091】
このように、仮想プリンタモジュールは初期化を完了し、初期化済みを表す初期化変数を生成する。例えば、初期化変数が1であれば、初期化が完了されることを表すなど。
【0092】
ステップ506において、初期化が完了されたかどうかを判断し、完了されたら、続いてステップ507に進み、完了されなかったら、ステップ503に戻る。
【0093】
本ステップで、仮想プリンタモジュールは、初期化変数の数値が初期化済みを表すかどうかを判断することで後続するステップを決める。
【0094】
ステップ507〜508において、受信したGDI関数が仮想印刷の終了を示すEndDoc関数であるかどうかを判断し、そうであれば、GDIファイルを閉じ、ステップ513に進み、そうでなければ、ステップ509に進む。
【0095】
EndDoc関数は、GDIサブシステムが仮想プリンタモジュールにファイルの仮想印刷を終了するように通知する関数であるため、仮想プリンタモジュールは、GDI関数からGDI命令への変換操作を停止し、Close File関数をコールすることで、GDIファイルを閉じる。
【0096】
ステップ509〜510において、現在GDI関数に対応するGDI関数番号が検出されたかどうかを判断し、検出されたら、GDI実行シリアル番号変数の数値に1を加算し、検出されなかったら、ステップ513に進む。
【0097】
アプリケーションプログラムから受信されたGDI関数名は、それに対応するGDI関数番号があれば、有効なGDI関数名であり、即ち、当該GDI関数名に対応するGDI関数を実行することにより、共有ファイルの一部の内容を復元することができる。現在のGDI関数名が有効である場合、仮想プリンタモジュールはGDI実行シリアル番号変数の数値に1を加算する。本発明で、数値が1のGDI実行シリアル番号が第1番目に実行されるGDI命令を表すため、ここでGDI実行シリアル番号変数に1を加算する必要がある。もちろん、数値が0のGDI実行シリアル番号が第1番目に実行されるGDI命令を表すものとすれば、ここで、GDI実行シリアル番号に1を加算せずに、GDI関数をGDI命令に変換した後、1を加算する操作を行うこととなる。
【0098】
ステップ511〜512において、GDI実行シリアル番号変数とGDI関数に対して、GDI命令ストリームのフォーマットに従って符号化することで、GDI命令を生成し、そして、当該GDI命令をGDIファイルに書き込む。
【0099】
ここで、仮想プリンタモジュールは、表1に示すGDI命令フォーマットに従って、現在のGDI関数の内容を表の対応部分に書き込む。ここで、GDI実行シリアル番号変数を表1のGDI実行シリアル番号とし、ステップ509で検出された現在のGDI関数名に対応する番号をGDI関数番号とし、他の各部分は、アプリケーションから受信されたGDI関数に含まれている。このように、GDI関数からGDI命令への変換操作が完了される。
【0100】
その後、仮想プリンタモジュールは、得られたGDI命令をステップ505で確立して開いたGDIファイルに書き込む。
【0101】
ステップ513において、仮想プリンタモジュールは、実行結果をアプリケーションプログラムへ返信する。
【0102】
本ステップで、仮想プリンタモジュールは、現在のGDI関数からGDI命令への変換に成功したかどうかを指示する実行結果をGDI関数の実行結果としてアプリケーションプログラムに返信することにより、アプリケーションプログラムがGDI関数の送信を継続するかどうかを決めるようにする。
【0103】
本ステップがステップ508の後に実行されると、GDIファイルの生成済みを示す実行結果をアプリケーションプログラムへ返信し、本ステップがステップ509の後に実行されると、GDI変換失敗の実行結果をアプリケーションプログラムへ返信し、本ステップがステップ512の後に実行されると、GDI変換成功の実行結果をアプリケーションプログラムへ返信する。
【0104】
以上のように、仮想プリンタモジュールは、印刷ドライバーGDI伝達インタフェース関数を実行することで、GDI関数からGDI命令への変換操作を完了する。
【0105】
GDI命令で構成されたGDIファイルは、復元処理を経てこそ、共有ファイルと同じ内容を表示することができる。図6は、図3に示された実施例において、受信したGDIファイルに対して復元操作を行うフローチャートである。図6に示すように、ステップ306においてGDIファイルを復元する方法は以下のステップを含む。
【0106】
ステップ601において、ファイル受信側の所属するネットワーク端末は、その所属するGDIサブシステムに描画デバイスコンテキスト(DC)を申し込む。
【0107】
描画DCは、GDIサブシステムによって割当てられたグラフィックハンドル(graphic handle)であり、GDIファイルの復元に仮想空間を提供することにより、描画DCで当該GDIファイル内の各GDI命令を順に実行するようにする。
【0108】
ステップ602〜603において、GDIファイル内の全てのGDI命令を読み取り、GDI命令におけるGDI実行シリアル番号に基づき、全てのGDI命令を昇順で配列する。
【0109】
ファイル受信側の所属するネットワーク端末は、まず、GDIファイルから全てのGDI命令を読み取り、次に、その中からGDI実行シリアル番号を抽出し、GDI実行シリアル番号の数値の小さいほうから大きいほうへの順に、対応のGDI命令を配列することにより、後続するステップで、配列された順番に従って各GDI命令を実行して、共有ファイルの内容を復元するようにする。
【0110】
ステップ604において、GDI実行シリアル番号変数を、GDI実行シリアル番号中の最小値に初期化する。
【0111】
ファイル受信側の所属するIMクライアント、ローカルエリアネットワークのコンピュータ又は電子メールのクライアントにとっては、GDI実行シリアル番号変数はGDI命令を実行するインデックスであり、現在実行しているGDI命令の実行シリアル番号は、GDI実行シリアル番号変数の現数値と同じである。本ステップで、GDI実行シリアル番号変数をGDI実行シリアル番号中の最小値に初期化し、その目的はGDI実行シリアル番号が最小となるGDI命令から実行を開始することにある。
【0112】
ステップ605において、GDI実行シリアル番号変数に対応するGDI命令が検出されたかどうかを判断し、検出されたら、ステップ606に進み、検出されなかったら、ステップ609に進む。
【0113】
ステップ606〜608において、当該GDI命令内のGDI関数番号及び当該GDI関数番号に対応するGDI関数を取得し、申し込まれた描画DCで当該GDI関数を実行し、そして、GDI実行シリアル番号変数に1を加算してから、ステップ605に戻る。
【0114】
ファイル受信側の所属するネットワーク端末は、現在のGDI命令からGDI関数番号を取得し、次に、GDI関数名とGDI関数番号との対照表で対応のGDI関数名を検索し、当該GDI関数を実行して、一部の共有ファイルの内容を復元し、その後、次に実行するGDI命令を検出するように、GDI実行シリアル番号変数に1を加算する。
【0115】
ステップ609〜610において、GDI命令のシリアル番号がGDI実行シリアル番号変数より大きいGDI命令があるかどうかを判断し、あれば、ステップ608に戻り、なければ、当該GDIファイルを閉じ、当該GDIファイルの復元プロセスを終了する。
【0116】
ここで、GDI実行シリアル番号がGDI実行シリアル番号変数より大きいGDI命令があるかどうかを判断する役割として、まだ実行されていないGDI命令があるかどうかを明確することにある。
【0117】
以上により、ファイル受信側の所属するIMクライアント、ローカルエリアネットワークのコンピュータ又は電子メールのクライアントなどのようなネットワーク端末は、ファイル送信側からのGDIファイルに対する復元を完了し、その後、ファイル受信側は、ファイル送信側の共有ファイルと完全同一な内容を調べることができる。
【0118】
上記本発明の方法に基づいて、本発明はネットワークにおいてファイルを伝送するシステムをさらに提供している。当該システムは、従来のファイル送信側とファイル受信側とに加えて、さらに、仮想印刷モジュールと復元モジュールを含む。ここで、仮想印刷モジュールは、ファイル送信側の共有ファイルをGDIファイルに変換することができ、復元モジュールは、GDIファイルに対して復元を行うことができる。これにより、ファイル送信側の共有ファイルの内容と一致する内容情報が得られる。
【0119】
図7は、本発明システムに係る一つの好適な実施例の構成を示す図である。図7に示すように、当該システムは、ファイル送信側、ファイル受信側、仮想プリンタモジュール及び復元モジュールを含む。
【0120】
ここで、ファイル送信側は、現在送信しようとする共有ファイルを前記仮想プリンタモジュールに出力し、前記仮想プリンタモジュールから、当該共有ファイルから変換されたGDIファイルを受信して前記ファイル受信側に送信する。仮想プリンタモジュールは、前記ファイル送信側から共有ファイルを受信して仮想印刷を行い、当該共有ファイルをGDIファイルに変換して当該ファイル送信側に出力する。復元モジュールは、ファイル受信側からGDIファイルを受信し、それに対して復元操作を行うことで、GDIファイルをファイル送信側の共有ファイルの内容と一致する内容情報に復元し、ファイル受信側に出力する。ファイル受信側は、前記ファイル送信側からGDIファイルを受信して前記復元モジュールに出力し、当該復元モジュールからファイル送信側の共有ファイルの内容と一致する内容情報を受信して、受信側のユーザが調べるようにする。
【0121】
ファイルへの圧縮と解凍機能を実現することでシステムの伝送リソースを節約するために、本発明のシステムは、さらに、図7の点鎖線で示される圧縮モジュールと解凍モジュールとを含むことができる。前記圧縮モジュールは、ファイル送信側からGDIファイルを受信し、それを圧縮し、圧縮後のGDIファイルを当該ファイル送信側に出力する。前記解凍モジュールは、ファイル受信側から圧縮後のGDIファイルを受信し、それを解凍し、解凍後のGDIファイルを当該ファイル受信側に出力する。このとき、ファイル送信側は、仮想プリンタモジュールからのGDIファイルを得た後、それを圧縮モジュールに送信し、当該圧縮モジュールから圧縮後のGDIファイルを受信して当該ファイル受信側に送信する。ファイル受信側は、受信した圧縮後のGDIファイルを解凍モジュールに送信し、当該解凍モジュールから解凍後のGDIファイルを受信し、復元モジュールに出力して処理させる。
【0122】
ファイルへの暗号化と復号化機能を実現することでシステムの伝送セキュリティ性を向上させるために、本発明のシステムは、さらに、図7の点線で示される暗号化モジュールと復号化モジュールとを含むことができる。前記暗号化モジュールは、ファイル送信側からGDIファイルを受信して、それを暗号化し、暗号化後のGDIファイルを当該ファイル送信側に出力する。前記復号化モジュールは、ファイル受信側から暗号化後のGDIファイルを受信して、それを復号化し、復号化後のGDIファイルを当該ファイル受信側に出力する。このとき、ファイル送信側は、仮想プリンタモジュールからのGDIファイルを得た後、それを暗号化モジュールに出力し、当該暗号化モジュールから暗号化後のGDIファイルを受信してファイル受信側に送信する。ファイル受信側は、受信した暗号化後のGDIファイルを復号化モジュールに送信し、当該復号化モジュールから復号化後のGDIファイルを受信し、復元モジュールに出力して処理させる。
【0123】
また、システムにおいて暗号化/復号化機能と圧縮/解凍機能を同時に実現することができる。この場合、本発明のシステムは、暗号化モジュール/復号化モジュール、圧縮モジュール/解凍モジュールを同時に含む必要となる。本発明は、暗号化/復号化処理と圧縮/解凍処理との間の前後順序が限定されないため、ファイル送信側は、仮想プリンタモジュールからのGDIファイルを先に暗号化モジュールに送信して処理させ、次に暗号化モジュールからの暗号化後のGDIファイルを圧縮モジュールに送信して処理させ、又は、仮想プリンタモジュールからのGDIファイルを先に圧縮モジュールに送信して処理させ、次に圧縮モジュールからの圧縮後のGDIファイルを暗号化モジュールに送信して処理させる。相応的に、ファイル受信側は、ファイル送信側からの暗号化と圧縮を経たGDIファイルを先に解凍モジュールに送信して処理させ、次に解凍モジュールからの解凍後のGDIファイルを復号化モジュールに送信して処理させ、又は、ファイル送信側からの暗号化して圧縮されたGDIファイルを先に復号化モジュールに送信して処理させ、次に復号化モジュールからの復号化後のGDIファイルを解凍モジュールに送信して処理させる。
【0124】
本発明のシステムにおいて、前記仮想プリンタモジュール、圧縮モジュール、暗号化モジュールは、それぞれファイル送信側に接続され、独立に設定されたエンティティであっていい、又は前記ファイル送信側に統合されるものであってよい。相応的に、前記復元モジュール、解凍モジュール、復号化モジュールは、それぞれファイル受信側に接続され、独立に設定されたエンティティであっていい、又は前記ファイル受信側に統合されるものであってよい。
【0125】
本発明において、ファイル送信側とファイル受信側は、それぞれIMツールを用いる二つのIMユーザでもいいし、それぞれローカルエリアネットワークにある二台のコンピュータのユーザでもいいし、E−Mailを用いる二つのユーザでもいい。
【0126】
本発明は、ネットワークで共有ファイルを伝送する方法を実現することによって、ファイルの受信側は、アプリケーションプログラムに制限されずに、共有ファイルの内容を順調に調べることができる。
【0127】
以上は本発明の好ましい実施例にすぎず、本発明の保護範囲を限定するものではない。本発明の精神と原則内で行われる種々の修正、均等物、改善などは全て本発明の保護範囲内に含まれるべきである。
【図面の簡単な説明】
【0128】
【図1】従来のインターネットIMツールを用いて共有ファイルを伝送するフローチャートである。
【図2】従来のインターネット又はIMツールを用いて共有ファイルを伝送するフローチャートである。
【図3】本発明の方法に係る一つの好適な実施例の処理手順を示すフローチャートである。
【図4】図3に示される実施例において、GDIファイルの生成を示すフローチャートである。
【図5】図4に示されるGDI命令ストリームの生成を示すフローチャートである。
【図6】図3に示される実施例において、受信したGDIファイルに対して復元操作を行うフローチャートである。
【図7】本発明のシステムに係る一つの好適な実施例の構成を示す図である。
【符号の説明】
【0129】
301 ファイル送信側は共有しようとするファイルを選択
302 当該共有ファイルをGDIファイルに変換
303 当該GDIファイルを圧縮して暗号化する
304 ファイル送信側は圧縮して暗号化したGDIファイルをファイル受信側に送信
305 受信したGDIファイルを復号化して解凍
306 復号化して解凍されたGDIファイルを復元する
307 ファイル受信側は受信したファイルを調べる

【特許請求の範囲】
【請求項1】
ネットワークにおけるファイル伝送の方法であって、
ファイル送信側は、仮想印刷を行うことで現在送信しようとする共有ファイルをグラフィックスデバイスインタフェース(GDI)ファイルに変換するステップAと、
ファイル送信側は、ネットワークを介してGDIファイルをファイル受信側に送信するステップBと、
ファイル受信側は、受信したGDIファイルに対して復元操作を行って、それをステップAにおける前記共有ファイル内容と一致する内容情報に復元するステップCと、
を含むことを特徴とする方法。
【請求項2】
前記ステップBを行う前に、ファイル送信側はGDIファイルに対して圧縮操作を行うステップと、
前記ステップCを行う前に、ファイル受信側は受信したGDIファイルに対して解凍操作を行うステップと、をさらに含む、
ことを特徴とする請求項1に記載の方法。
【請求項3】
前記ステップBを行う前に、ファイル送信側はGDIファイルに対して暗号化操作を行うステップと、
前記ステップCを行う前に、ファイル受信側は受信したGDIファイルに対して復号化操作を行うステップとをさらに含む、
ことを特徴とする請求項1に記載の方法。
【請求項4】
ステップAにおいて、前記GDIファイルに少なくともGDI命令を含み、
ステップCにおいて、GDIファイルに対して復元操作を行うことは、GDIファイルにおけるGDI命令に対応するグラフィックスデバイス関数を実行することを含む、
ことを特徴とする請求項1に記載のこの方法。
【請求項5】
前記ファイル送信側の所属するネットワーク端末に仮想プリンタモジュールを設定し、ステップAにおいて前記仮想印刷を行うことで共有ファイルをGDIファイルに変換する方法は、
前記ファイル送信側における共有ファイルのアプリケーションプログラムは、自身と仮想プリンタモジュールとのやり取りのインタフェースを開き、共有ファイルに対して仮想印刷を開始するステップA1と、
仮想印刷を終了するかどうかを判断し、終了すれば、共有ファイルのアプリケーションプログラムは、共有ファイルの終了を指示するGDI関数を仮想プリンタモジュールへ送信することで共有ファイルの仮想印刷を終了し、現在のGDIファイルの生成プロセスを終了し、そうでなければ、ステップA3に進むステップA2と、
共有ファイルのアプリケーションプログラムは、共有ファイルの内容に基づいて、印刷ドライバーGDI伝達インタフェース関数をコールすることで、GDI関数を仮想プリンタモジュールに送信し、当該仮想プリンタモジュールは、受信したGDI関数をGDI命令に変換し、変換の実行結果を共有ファイルのアプリケーションプログラムに返信するステップA3と、
共有ファイルのアプリケーションプログラムは、仮想プリンタから返信された変換の実行結果によって、変換に成功したかどうかを判断し、成功した場合、次のGDI関数に進み、ステップA2に戻り、成功しなかった場合、共有ファイルの終了を指示するGDI関数を仮想プリンタモジュールに送信することで共有ファイルの仮想印刷を終了し、現在のGDIファイルの生成プロセスを終了するステップA4と、
を含むことを特徴とする請求項4に記載のこの方法。
【請求項6】
ステップA2において、前記仮想印刷を終了するかどうかを判断する方法は、
前記共有ファイルのアプリケーションプログラムは、共有ファイルの内容に基づいてコールされたGDI関数を仮想プリンタモジュールに全部伝送したかどうかを判断し、全部伝送した場合、仮想印刷を終了すると判断し、そうでなければ、仮想印刷を終了しないと判断するステップを含む、
ことを特徴とする請求項5に記載のこの方法。
【請求項7】
前記GDI命令は、少なくとも、GDI関数名、GDI関数番号、GDI実行シリアル番号を含み、
ステップA3において、前記仮想プリンタモジュールが、受信したGDI関数をGDI命令に変換し、変換の実行結果を共有ファイルのアプリケーションプログラムに返信する方法は、
印刷ドライバーGDI伝達インタフェース関数が共有ファイルのアプリケーションプログラムにコールされ、仮想プリンタモジュールは、受信したGDI関数が共有ファイルの仮想印刷の開始を示すGDI関数であるかどうかを判断し、そうであれば、ステップA32に進み、そうでなければ、ステップA33に進むステップA31と、
仮想プリンタモジュールは、GDIサブシステムからGDI関数名とGDI関数番号との対照表を取得し、GDI実行シリアル番号変数を0に初期化し、空のGDIファイルを確立して開いてから、初期化完了状況を示す初期化変数を生成するステップA32と、初期化変数によって初期化が完了したかどうかを判断し、完了した場合、受信したGDI関数が共有ファイルの仮想印刷の終了を指示するGDI関数であるかどうかを判断し、共有ファイルの仮想印刷の終了を示すGDI関数であれば、GDIファイルを閉じ、ステップ35に進み、共有ファイルの仮想印刷の終了を示すGDI関数でなければ、ステップA34に進み、完了しなかった場合、ステップ32に戻るステップA33と、現在のGDI関数に対応するGDI関数番号が検出されたかどうかを判断し、検出されたら、GDI実行シリアル番号変数の数値に1を加算し、次に、GDI命令ストリームのフォーマットに従って、GDI関数名と、GDI実行シリアル番号変数と、GDI関数とを符号化して、GDI命令を生成し、当該GDI命令をGDIファイルに書き込み、検出されなかったら、ステップA35に進むステップA34と、
仮想プリンタモジュールは、変換の実行結果を共有ファイルのアプリケーションプログラムへ返信するステップA35と、
を含むことを特徴とする請求項5に記載のこの方法。
【請求項8】
前記GDI命令は、少なくとも、現在のGDI命令の総長さ、パラメータ数、各パラメータのパラメータ値及びパラメータ値の長さを含む、
ことを特徴とする請求項7に記載のこの方法。
【請求項9】
ステップCにおいて、前記ファイル受信側が、受信したGDIファイルに対して復元操作を行って、それを共有ファイルと一致する内容に復元する方法は、
ファイル受信側の所属するネットワーク端末は、その所属するグラフィックスデバイスのサブシステムに、描画デバイスコンテキストを申し込み、その後、受信したGDIファイルにおけるすべてのGDI命令を読み取り、前記GDI命令におけるGDI実行シリアル番号に従って、すべてのGDI命令を昇順で配列し、GDI実行シリアル番号変数をGDI実行シリアル番号中の最小値に初期化するステップC1と、
GDI実行シリアル番号変数に対応するGDI命令が検出されたかどうかを判断し、検出されたら、ステップC3に進み、検出されなかったら、ステップC4に進むステップC2と、
現在のGDI命令におけるGDI関数番号及び当該GDI関数番号に対応するGDI関数を取得し、申し込まれた描画デバイスコンテキストで当該GDI関数を実行し、次に、GDI実行シリアル番号変数に1を加算し、ステップC2に戻るステップC3と、
GDI命令のシリアル番号がGDI実行シリアル番号変数より大きいGDI命令があるかどうかを判断し、あれば、GDI実行シリアル番号変数に1を加算し、ステップC2に戻り、なければ、GDIファイルを閉じ、GDIファイルの復元プロセスを終了するステップC4と、
を含むことを特徴とする請求項7に記載のこの方法。
【請求項10】
ステップBにおいて、前記ファイル送信側が、ネットワークを介してGDIファイルをファイル受信側に送信する方法は、ファイル送信側は、インスタントメッセ−ジングツールによってGDIファイルをファイル受信側に送信するステップを含む、
ことを特徴とする請求項1〜3のいずれか1項に記載の方法。
【請求項11】
ステップBにおいて、前記ファイル送信側が、ネットワークを介してGDIファイルをファイル受信側に送信する方法は、ファイル送信側は電子メールによってGDIファイルをファイル受信側に送信するステップを含む、
ことを特徴とする請求項1〜3のいずれか1項に記載のこの方法。
【請求項12】
ステップBにおいて、前記ファイル送信側が、ネットワークを介してGDIファイルをファイル受信側に送信する方法は、ファイル送信側は、ファイル受信側の所属するネットワーク端末にログインすることによってGDIファイルをファイル受信側に送信するステップを含む、
ことを特徴とする請求項1〜3のいずれか1項に記載のこの方法。
【請求項13】
ネットワークにおけるファイル伝送のシステムにおいて、
ファイル送信側とファイル受信側とを含み、
仮想プリンタモジュールと、復元モジュールと、をさらに含み、
前記ファイル送信側は、現在送信しようとする共有ファイルを前記仮想プリンタモジュールに出力し、前記仮想プリンタモジュールから、当該共有ファイルから変換されたGDIファイルを受信して前記ファイル受信側に送信するように構成され、
前記仮想プリンタモジュールは、前記ファイル送信側から共有ファイルを受信して仮想印刷を行い、当該共有ファイルをGDIファイルに変換して当該ファイル送信側に出力するように構成され、
前記復元モジュールは、前記ファイル受信側からGDIファイルを受信し、GDIファイルを前記共有ファイルの内容と一致する内容情報に復元し、前記ファイル受信側に出力するように構成され、
前記ファイル受信側は、前記ファイル送信側からGDIファイルを受信して前記復元モジュールに出力し、当該復元モジュールから前記共有ファイルの内容と一致する内容情報を受信するように構成される、
ことを特徴とするシステム。
【請求項14】
圧縮モジュールと、解凍モジュールと、をさらに含み、
前記圧縮モジュールは、ファイル送信側からGDIファイルを受信し、それを圧縮して、圧縮後のGDIファイルを当該ファイル送信側に出力するように構成され、
前記ファイル送信側は、さらに、仮想プリンタモジュールからのGDIファイルを前記圧縮モジュールに出力し、当該圧縮モジュールからの圧縮後のGDIファイルをファイル受信側に送信するように構成され、
前記解凍モジュールは、ファイル受信側から圧縮後のGDIファイルを受信し、それを解凍して、解凍後のGDIファイルを当該ファイル受信側に出力するように構成され、
前記ファイル受信側は、さらに、ファイル送信側からの圧縮後のGDIファイルを前記解凍モジュールに送信し、解凍モジュールからのGDIファイルを前記復元モジュールに出力するように構成される、
ことを特徴とする請求項13に記載のシステム。
【請求項15】
前記圧縮モジュールは、独立に設定されたエンティティであり、又は前記ファイル送信側に統合されるものであり、
前記解凍モジュールは、独立に設定されたエンティティであり、又は前記ファイル受信側に統合されるものである、
ことを特徴とする請求項14に記載のシステム。
【請求項16】
暗号化モジュールと、復号化モジュールと、をさらに含み、
前記暗号化モジュールは、ファイル送信側からGDIファイルを受信して、それを暗号化し、暗号化後のGDIファイルを当該ファイル送信側に出力するように構成され、
前記ファイル送信側は、さらに、仮想プリンタモジュールからのGDIファイルを前記暗号化モジュールに出力し、当該暗号化モジュールからの暗号化後のGDIファイルをファイル受信側に送信するように構成され、
前記復号化モジュールは、ファイル受信側から暗号化後のGDIファイルを受信して、それを復号化し、復号化後のGDIファイルを当該ファイル受信側に出力するように構成され、
前記ファイル受信側は、さらに、ファイル送信側からの暗号化後のGDIファイルを前記復号化モジュールに送信し、当該復号化モジュールからのGDIファイルを前記復元モジュールに出力するように構成される、
ことを特徴とする請求項13に記載のシステム。
【請求項17】
前記暗号化モジュールは、独立に設定されたエンティティであり、又は前記ファイル送信側に統合されるものであり、
前記復号化モジュールは、独立に設定されたエンティティであり、又は前記ファイル受信側に統合されるものである、
ことを特徴とする請求項16に記載のシステム。
【請求項18】
前記仮想プリンタモジュールは、独立に設定されたエンティティであり、又は前記ファイル送信側に統合されるものであり、
前記復元モジュールは、独立に設定されたエンティティであり、又は前記ファイル受信側に統合されるものである、
ことを特徴とする請求項13〜17のいずれか1項に記載のシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公表番号】特表2008−524879(P2008−524879A)
【公表日】平成20年7月10日(2008.7.10)
【国際特許分類】
【出願番号】特願2007−545820(P2007−545820)
【出願日】平成17年12月15日(2005.12.15)
【国際出願番号】PCT/CN2005/002196
【国際公開番号】WO2006/063528
【国際公開日】平成18年6月22日(2006.6.22)
【出願人】(506379493)▲騰▼▲訊▼科技(深▲セン▼)有限公司 (14)
【Fターム(参考)】