以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
図1は、本発明の実施形態に係るデータ通信システムの構成を示すブロック図である。この送信システムでは、送信元のユーザPC(第2通信装置)102Aから受信側のユーザPC(第1通信装置)102Bへデータ転送装置(サーバ)101を経由してデータを転送する例を示している。
データ転送装置101は、送信を行うユーザのPC102A、受信を行うユーザのユーザPC102Bとネットワーク104を介して接続されている。これらユーザPC102A,102Bは、プログラムを動作させることにより、HTTP等の標準プロトコルを用いてデータ転送装置101にアクセスし、XML等で作成された情報を取得して解析する。また、これらユーザPC102A,102Bは、プログラムを利用して解析した情報を、そのPCが備える表示部(図2の221)に表示させることができる。データ転送装置101は、データの転送管理する転送管理部106、各ユーザPCのID等を登録しているデータベース(DB)107を有している。尚、転送管理部106の機能は、後述する図2のCPU206とRAM208にロードされたプログラムにより実現される。
送信側のユーザは、ユーザPC102AでプログラムAを実行し、そのプログラムAの指示に従って、送信したいデータをデータ転送装置101へ送出する。これによりデータ転送装置101は、その送出されたデータを受信して一時保管する。受信側のユーザは、ユーザPC102BでプログラムBを実行し、そのプログラムBの指示に従ってデータをデータ転送装置101から取得する。データ転送装置101は、受信側のユーザPC102Bから要求されたデータを返す。
尚、実施形態では、説明の便宜上、ユーザPC102(102A,102B)として説明するが、それ以外の情報機器等の情報処理装置であってもよく、送信元及び受信側がそれぞれ複数であってもよい。また本実施形態では、プログラムによりデータ転送装置101とのデータのやり取りを説明したが、そのプログラムに代えて汎用のブラウザを利用してもよい。更に、ネットワーク104を通してデータ転送装置101と送受信するのでSSL等の暗号化を行ったり、認可されている情報処理装置のみで送受信を行えるようにしてもよい。また実施形態では、説明の便宜上データ転送装置101は、送信されたデータを一時保管しているが、受信側がアクティブであるかどうかを判断し、受信側がアクティブであれば直接送信元から受信側へデータを送信するようにしてもよい。
図2は、本実施形態に係るユーザPC及びデータ転送装置101の構成例を説明するブロック図である。尚、図2では、ユーザPC102A、102Bの構成をPC102で代用して示している。
データ転送装置101は、表示部201、VRAM202、BMU203、キーボード204、PD205、CPU206、ROM207、RAM208、HDD209、FDドライブ(FDD)210、ネットワークI/F211、バス212を有する。VRAM202は、表示部201に表示するための表示データを記憶する。BMU(ビットムーブユニット)203は、例えば、メモリ間(例えば、VRAM202と他のメモリとの間)のデータ転送や、メモリと各I/Oデバイス(例えば、ネットワークI/F211)との間のデータ転送を制御する。キーボード204は、文字等を入力するための各種キーを有する。PD(ポインティングデバイス)205は、例えば、表示部201に表示されたアイコン、メニューその他のコンテンツを指示又はオブジェクトのドラッグドロップのために使用される。CPU206は、ROM207、HDD209又はフレキシブルディスク210に格納され、RAM208に展開されたOSや後述する制御プログラムに基づいて、各デバイスを制御する。ROM207は、各種制御プログラムやデータを保存する。RAM208は、CPU206のワーク領域、エラー処理時のデータの退避領域、制御プログラムのロード領域等を有する。HDD(ハードディスクドライブ)209は、データ転送装置101で実行される各制御プログラムやデータを格納する。ネットワークI/F211は、他の情報処理装置やプリンタ等とネットワークを介して通信を行う。バス212は、アドレスバス、データバス及びコントロールバスを含む。
ユーザPC102も同様に、表示部221、VRAM222、BMU223、キーボード224、PD225,CPU226,ROM227,RAM228,HDD229,FDD230、ネットワークI/F231、バス232を有する。表示部221には、例えばユーザPC102においてプログラムのウィンドウやアイコン、メッセージ、メニューその他のユーザインタフェース情報が表示される。尚、これら各ハードウェア構成は、前述のデータ転送装置101の構成と同様であるため、それらの説明を省略する。尚、上記構成において、各CPU206,226に対する制御プログラムの提供は、ROM207,227,HDD209,229,FDD210,230から行うこともできる。またネットワークI/F211,231を介してネットワーク経由で他の情報処理装置等から行うこともできる。
図3は、本実施形態1に係る送信元のユーザPC102Aから受信側のユーザPC102Bへデータを送信する手順の一例を示す図である。
まずS301で、受信側のユーザPC102BのCPU226は、プログラムの指示に従い、データ転送装置101へ受信IDの取得を要求する。これのよりS302でユーザPC102BからのS301からの受信IDの要求を受けると、データ転送装置101のCPU206は、DB107を利用してシステム全体でユニークである受信IDを求めて受信側のPC102Bへ返信する。これによりS301で、受信側のPC102BのCPU226は、その受信IDを取得する。そしてその取得した受信IDを、プログラムの指示に従って、HDD229等にプログラムデータとして保存する。このようにS301,S302で、システム全体でユニークな受信IDを各受信側のPC毎に割り当てることで、データ転送装置101はデータの受信先を一意に管理することができる。尚、不図示であるが、受信IDが、プログラムデータとして既に受信側のPC102BのHDD229等に保存されていた場合は、これらS301,S302は省略可能である。
次にS303で、受信側のユーザPC102BのCPU226は、プログラムの指示に従って、S301で取得した受信IDを送信元のユーザPC102Aに通知する。これにより送信元のPC102AのCPU226は、S304で、プログラムの指示に従って、その通知された受信IDを受信してHDD229等へプログラムデータとして保存する。尚、受信側のPC102Bから送信元のPC102Aへの受信IDの通知は、受信側のPC102Bと送信元のPC102Aとが近接している場合は、ネットワークI/F231を利用した何らかの近接通信を利用してもよい。一方、遠隔地にある場合は、受信側のPC102Bのプログラムで通知用の情報を表示し、送信元のPC102Aのプログラムで通知用の情報の入力を行ってもよい。
次にS305で、送信元のPC102Aでは、ユーザにより送信データを選ばせた後、そのデータをデータ転送装置101へ登録する。ここでは、送信元のPC102AのCPU226は、送信するデータと受信側のPC102Bの受信IDとをデータ転送装置101へ送信する。これによりS306で、データ転送装置101のCPU206は、転送管理部106の指示に従って、DB107を参照して、受信IDと関連付けて、その送信されたデータを一時保管する。ここでは説明の便宜上、送信元のPC102Aから、送信するデータと、受信側のPC102Bの受信IDを各データの送信毎に組み合わせて送信している。しかし、データ転送装置101に、各データの送信ごとにフォルダ等の識別子を発行させ、その識別子に対して一つ或いは複数のデータを送信し、その識別子と受信IDを別のタイミングで組み合わせるようにしてもよい。
次にS307で、送信元のPC102AのCPU226は、プログラムの指示に従い、受信側のPC102Bにデータの送信を通知する。これによりS308で、受信側のPC102BのCPU226は、プログラムの指示に従い、S307で通知されたデータの送信通知を検知してS309を実行する。尚、送信元のPC102Aから受信側のPC102Bへの送信通知は、ネットワーク104を利用したメールでの通知、或いは電話での通知などいずれの方法であってもよく、通知手段は本発明において特定されるものではない。また、後述するS309が、受信側のPC102Bで一定時間毎に定期的に実行されるような場合には、送信元のPC102Aから受信側のPC102Bへのデータ送信の通知は必須ではない。
S309では、受信側のPC102BのCPU226は、プログラムの指示に従って、受信IDとともに、その受信IDに関連付けてデータ転送装置101が一時保管しているデータのリストを要求する。これによりS310で、データ転送装置101のCPU206はそのリスト要求を受け取る。そして転送管理部106の指示に従って、前述のS306で一時保管したデータの中から、その要求とともに受信した受信IDに関連付けられたデータのリスト(一覧)を受信側のPC102Bへ返信する。こうしてS309でリストを取得した受信側のPC102BのCPU226は、S311で、プログラムの指示に従って、S309で取得したデータのリストの中から、取得したいデータをデータ転送装置101に要求する。これによりS312で、データ転送装置101のCPU206は、そのデータ要求に応答して、転送管理部106の指示に従って、その指定された送信対象のデータを受信側のPC102Bへ送信する。
このように、一度、受信側のPC102Bから送信元のPC102Aへ受信IDが通知されていれば、送信元のPC102Aは、受信側のPC102Bを特定して、要求されたデータを送信することができる。そしてS305からS312の処理を繰り返すことにより、送信元のPC102Aから受信側のPC102Bへ何度でもデータの転送を行うことができる。尚、不図示ではあるが、データ転送装置101で一時保管したデータは、一定期間の経過後、或いはS312で、データの取得が行われた後に任意のタイミングで削除されても良い。また、説明の便宜上、送信元のPC、受信側のPCをそれぞれ別々に説明したが、共通のプログラムで送受信してもよい。但し、図3では、受信側のPCが複数の送信元のPCに対して受信IDを通知した場合、受信IDと関連付けて複数の送信元のPCからのデータが一時保管される。よって、受信側のPCは、どのデータがどの送信元のPCからのデータであるのかを判別したいという要望がある。
図4は、本実施形態1に係るデータ通信システムにおける別の手順を説明する図である。ここでは、受信側のPCで送信元のPCを判別する仕組みを備えた例を示している。
S401では、受信側のPC102BのCPU226は、プログラムの指示に従って、データ転送装置101へ受信IDの取得を要求する。この要求によりS402でデータ転送装置101のCPU206は、転送管理部106の指示に従い、DB107を利用してシステム全体でユニークとなる受信IDを求めて受信側のPC102Bへ返信する。これにより受信側のPC102BのCPU226は、その受信IDを受信してHDD229等へプログラムデータとして保存する。このようにS401,S402で,システム全体でユニークとなる受信IDを受信側毎に割り当てることにより、データ転送装置101はデータ受信側を一意に管理することができる。尚、受信IDがプログラムデータとして前もってPC120BのHDD229等へ保存されていた場合は、これらS401,S402を省略できることは言うまでもない。
次にS403で、受信側のPC102BのCPU226は、プログラムの指示に従ってデータ転送装置101へ受信フォルダの取得を要求する。これによりデータ転送装置101のCPU206は、この取得要求を受けると転送管理部106の指示に従い、DB107を参照して、受信ID単位でユニークとなる受信フォルダを求め、受信IDと関連付けて受信側のPC102Bに返信する。これにより受信側のPC102Bは、S403で、その要求した受信フォルダ(フォルダの名称)を取得する。
このときデータ転送装置101のCPU206は、S404で、転送管理部106の指示に従い、図5に示すような受信IDと受信フォルダを組み合わせたレコードを作成する。このレコードは、INDEX501、受信ID502と受信フォルダ503を含んでいる。
図5は、本実施形態に係るデータ転送装置101の転送管理部106が管理しているデータ例を示す図である。
受信フォルダは、受信側のPC102Bからの受信IDを伴う要求に従ってデータ転送装置101が発行した受信フォルダの名称を示す。カラム501は、受信IDと受信フォルダとを組み合わせたレコードを表すINDEX(インデックス)を示す。カラム502は、受信IDを示す。カラム503は受信フォルダを示す。カラム504,505は、受信IDと受信フォルダとの組み合わせと、一時保管しているデータとの関係を示す。カラム506は、一時保管しているデータのレコードを表すINDEXを示す。カラム507は、一時保管しているデータの名前を示す。カラム508は、一時保管しているデータのデータ転送装置101におけるファイルの位置(ファイルのパス)を示す。尚、データファイルパスを、一時保管しているデータのファイルの位置としたが、データそのものをカラム508に持たせてもよい。
レコード509,510は、受信IDが「1000」である受信側のPCで、受信フォルダとしてそれぞれ「a」と「b」が作成されたことを示している。レコード511は、受信IDが「2000」である受信側のPCで、受信フォルダ「c」が作成されていることを示している。
一例として、受信ID「1000」に対して受信フォルダ「a」を生成した場合、レコード509で示すようなレコードをDB107に保存する。尚、受信フォルダは、受信IDとの組み合わせで使用するため、受信IDに対してユニークであれば良く、またシステム全体でユニークであってもよい。また説明の便宜上、受信フォルダとしたがデータ転送装置101が一時保管するデータを識別できるものであればよいため、データ転送装置101に物理的なフォルダを生成する必要はない。
再び図4に戻り、S405で、受信側のPC102BのCPU226は、プログラムの指示に従って、S402,S404で取得した受信IDと受信フォルダとを送信元のPC102Aに通知する。このとき受信側と送信元が遠隔地の場合には、受信側のPC102BのCPU226は、プログラムの指示に従って、送信元のPC102Aに通知する情報と送信元のPC102Aの名称を設定する画面を表示し、受信側のPC102Bのユーザに入力させる。
これにより送信元のPC102AのCPU226は、プログラムの指示に従って、S405で通知された受信IDと受信フォルダとを取得する。S407では、受信側のPC102BのCPU226は、プログラムの指示に従って、送信元のPC102Aの名称を受信フォルダに関連付けてHDD229等へプログラムデータとして保存する。
図6は、本実施形態の受信側の管理データの構成の一例を示す図である。
ユーザが設定した送信元のPC102Aの名称は、後述する本実施形態のフローで受信側のプログラムBによりユーザPC102Bに保存される。カラム601は、受信フォルダの名称を示す。カラム602は、受信フォルダに対応するユーザが設定した送信元の名称を示す。カラム603は、受信フォルダに対応するユーザが設定した受信可否の状態を示す。カラム604は、送信IDを示す。
レコード605は、受信フォルダ「a」に対して、送信元の名称として「Tom」が設定されており、その受信は「可」に設定されている。レコード606は、受信フォルダ「b」に対して送信元の名称として「Jerry」が設定されており、その受信は「否」に設定されている。レコード607は、受信フォルダが未設定で、送信IDに対してユーザが設定した送信元の名称として「George」が設定されており、その受信は「可」に設定されている。このようにして、受信側のPCで受信フォルダと、ユーザが設定した送信元の名称とを関連付けて管理することができる。
次に再び図4のS408で、送信元のPC102AのCPU226は、プログラムの指示に従い、設定画面に受信IDと受信フォルダの名称、受信側の名称を表示する。そしてユーザより保存の指示が入力されると、これらを関連付けてHDD229等へプログラムデータとして保存する。次にS409に進み、送信元のPC102AのCPU226は、プログラムの指示に従い、送信するデータと受信側の受信IDと受信フォルダとをデータ転送装置101へ送信する。
このとき送信元のPC102AのCPU226は、プログラムの指示に従い、一例として図7に示すような受信側の管理データを表示する。
図7は、本実施形態1の送信元の管理データの構成の一例を示す図である。ここでは受信IDと受信フォルダとユーザが設定した受信側の名称の管理データの構成の一例を示している。
ユーザが設定した受信側の名称は、後述する本実施形態のフローで送信元のプログラムAによりユーザPC102Aに保存される。カラム701は、受信側のPC102Bの受信IDを示す。カラム702は、受信側のPC102Bの受信フォルダを示す。カラム703は、受信IDと受信フォルダに対応するユーザが設定した受信側の名称を示す。レコード704は、受信IDが「1000」で、受信フォルダ「a」の受信側に対してユーザが設定した受信側の名称として「Butch」が設定されていることを示している。レコード705は、受信IDが「2000」で、受信フォルダ「c」の受信側のPC102Bに対して、ユーザが受信側の名称として「Spike」を設定したことを示している。レコード706は、受信IDが「3000」で、受信フォルダが未設定の受信側に対してユーザが設定した受信側の名称として「Tyke」が設定されていることを示している。
尚、受信IDと受信フォルダとが合成されて受信側から通知される場合には、分解しないで通知された値を受信IDとして扱い、受信フォルダ702に受信フォルダ取得済みを設定するとこで、受信フォルダが未設定となる場合と区別することができる。このようにして、受信IDと受信フォルダとに、ユーザが設定した受信側の名称を関連付けて管理することができる。
ここでデータ送信の指示がユーザにより実行されると、送信元のPC102AのCPU226はプログラムの指示に従い、送信するデータと、選択された一つ以上複数の受信側の受信IDと受信フォルダとをデータ転送装置101へ送信する(S409)。ここでは一例として、受信側の名称「Butch」を選択して送信を行うと、図7に示すような受信側の管理データに従って、受信IDが「1000」と受信フォルダ「a」を取得し、データと併せてデータ転送装置101へ送信する。
これによりS410では、データ転送装置101のCPU206は、S409での登録指示を受けて、転送管理部106の指示に従い、DB107を利用して受信IDと受信フォルダとに関連付けて、送信されたデータを一時保管する。一例として、S409でデータ「x.jpg」が、受信ID「1000」と受信フォルダ「a」と併せてデータ転送装置101へ送信されると、図5の506,507,508で構成される一時保管データのレコード515を管理データとして生成する。次に、受信IDが「1000」と受信フォルダ「a」を示すINDEXと、一時保管データのINDEXとを関連付けるレコード512を管理データとして生成する。
即ち、データ転送装置101では、図5の515,516に示すようなレコードを作成する。ここでは受信IDが「1000」の受信側のPC102Bの受信フォルダ「a」のデータとして、一時保管しているデータ「x.jpg」と「y.jpg」が存在することが分かる。同様にして、レコード514,517には、受信IDが「1000」の受信側のPC102Bで、受信フォルダ「b」のデータとして一時保管しているデータ「z.jpg」が存在することが分かる。このように受信ID、受信フォルダ、及び一時保管しているデータを関連付けて管理している。このようにすることで、データ転送装置101が、一時保管データと受信ID、受信フォルダを関連付けて管理することができる。
尚、説明の便宜上、送信元のPC102Aから送信するデータと、受信側のPC102Bの受信IDと受信フォルダとを送信毎に組み合わせて送信している。しかし、データ転送装置101に送信単位でフォルダ等の識別子を発行させ、その識別子に対して一つ或いは複数のデータの送信を行い、その識別子と受信IDと受信フォルダとを別のタイミングで組み合わせてもよいことは言うまでもない。
再び図4のS411で、送信元のPC102AのCPU226は、プログラムの指示に従い、受信側のPC102Bにデータの送信を通知する。これによりS412で、受信側のPC102BのCPU226は、プログラムの指示に従い、S411で通知されたデータの送信を検知してS413を実行する。尚、ここで送信元のPCから受信側のPCへの送信通知は、ネットワーク104を利用したメールでの通知、或いは電話での通知などいずれの方法であってもよく、通知手段は本発明において特定されるものではない。また、後述するS413が受信側のPCで、一定時間毎に定期的に実行されるような場合には、送信元から受信側へのデータ送信の通知は必須ではない。
S413では、受信側のPC102BのCPU226は、プログラムの指示に従い、データ転送装置101に受信IDに関連付けて一時保管しているデータのリストを要求する。これによりS414で、データ転送装置101のCPU206は、そのリスト要求を受けると転送管理部106の指示に従い、S410で一時保管したデータから、要求された受信IDに関連付けられているデータのリストを受信側のPC102Bへ返信する。一例として、受信ID「1000」に関連付けられているデータのリストをデータ転送装置101へ要求すると、図5の受信ID502から受信フォルダ503、データ名507を求めることができる。そして、受信ID「1000」に対応して、受信フォルダ「a」に一時保管しているデータ「x.jpg」と「y.jpg」があり、受信フォルダ「b」に一時保管しているデータ「z.jpg」があることが分かる。
こうして求めた情報から図8に示すように、受信IDに関連付けられている一時保管しているデータのリストを生成する。
図8は、本実施形態1のデータ転送装置101が作成した、要求された受信IDに関連付けられている一時保管しているデータのリストの一例を示す図である。
801〜803は、受信ID「1000」に関連付けられた、一時保管しているデータを示す。801,802は、受信フォルダ「a」に関連付けられているデータのリストを示し、803は、受信フォルダ「b」に関連付けられているデータのリストを示している。
このようにデータ転送装置101から受信IDに関連付けられているデータのリストが受信フォルダに関連付けて返される。尚、説明の便宜上、データのリストは、受信ID、受信フォルダ、データ名で構成されたURLとしているが、別の要素を含んでいたり、異なる形式であっても問題ない。また、一度に受信ID、受信フォルダ、データ名が返されるが、それぞれの要素毎でデータ転送装置101から返されるようになっていても問題ない。
こうしてS415で、受信側のPC102BのCPU226は、プログラムの指示に従い、S413で取得したデータのリストと、S407で保存した送信元の管理データから送信元を取得する。一例として図8に示すデータのリストをS413で取得したとする。801,802は、受信フォルダ「a」に関連付けられていることが分かるので、図6のレコード605から、受信フォルダ「a」の送信元の名称は「Tom」であることが分かる。従って、送信元「Tom」からデータ「x.jpg」とデータ「y.jpg」の2つのデータがデータ転送装置101に送信されていることが分かる。同様に図8の803は、送信元「Jerry」からデータ「z.jpg」が送信されていることが分かる。
これらの取得した情報から、不図示ではあるが受信ユーザに対して、「Tom」と「Jerry」からそれぞれデータが送信されていること表示することができる。尚、送信元の名称の表示は、未受信データを持つ送信元の名称の表示のみとしてもよく、その未受信データを取得するかどうかユーザに判断させてもよい。
次に図4のS416で、受信側のPC102BのCPU226は、プログラムの指示に従い、S413で取得したデータのリストと、S407で保存した送信元の管理データから、所望の(取得対象)データをデータ転送装置101に要求する。一例として図8に示すデータのリストをS413で取得したとする。この場合、図6における受信可否の状態603から受信フォルダ「a」は受信するが、受信フォルダ「b」は受信しないように設定されている。従って、801,802で示すデータのみをデータ転送装置101に要求する。このようにすることで、受信側のユーザが設定したデータの受信可否に従った処理を行うことができる。
またS407で保存した、送信元の管理データにない受信フォルダが、S413で取得したデータのリストにある場合、その受信フォルダのデータを取得しないようにすることができる。
こうしてS417で、データ転送装置101のCPU206は、S416からのデータの取得要求を受けると、転送管理部106の指示に従い、指定されたデータを受信側へ返信する。このように、一度、受信側から送信元への受信IDの通知がされていると、送信元から受信側へデータの転送を行うことができるため、図4のS409からS417を繰り返すことで、送信元から受信側へ何度でもデータの転送を行うことができる。尚、不図示ではあるが、データ転送装置101で一時保管したデータは、一定期間経過後、或いはS417でデータの取得が行われた後、任意のタイミングで削除される。
また説明の便宜上、データ転送装置101で、送信されたデータを一時保管しているが、受信側がアクティブであるかどうかを判断して受信側がアクティブであれば直接送信元から受信側へデータに受信フォルダの情報を付加して送信してもよい。
図9は、本実施形態1に係る受信側のPCにおいて送信元のPCを管理する処理を説明するフローチャートである。この処理は、例えば図6に示すような管理データの編集処理であり、受信側のPC102BのCPU226が、RAM228にロードされたプログラムを実行することにより達成される。
まずS901で、受信側のPC102BのCPU226は、プログラムの指示に従い、図6に示すような送信元の管理データをHDD229のプログラムデータから取得する。次にS902に進み、受信側のCPU226は、プログラムの指示に従い、その取得した送信元の管理データを表示部221に表示する。次にS903に進み、受信側のCPU226は、プログラムの指示に従い、各送信元のPCごとにデータの受信操作があるかどうかを判断し、受信操作がある場合はS904に処理を進め、受信操作でない場合はS905に処理を進める。S904では、受信側のCPU226は、プログラムの指示に従い、該当する送信元の管理データを利用して、データ転送装置101にデータを要求してデータを取得してS902へ戻る。
S905では、受信側のCPU226は、プログラムの指示に従い、送信元毎に削除操作があるかどうかを判断し、削除操作の場合にはS906に処理を進める。S906で、受信側のCPU226は、プログラムの指示に従い、送信元の管理データから該当するレコードを削除してS902へ戻り、送信元を管理する画面を再表示する。またS905で削除操作でない場合はS907に処理を進め、受信側のCPU226は、プログラムの指示に従い、設定変更の操作があるかどうかを判断する。ここで設定変更操作の場合はS908に処理を進め、設定変更操作でない場合はS911に処理を進める。S908では、受信側のCPU226は、プログラムの指示に従い、送信元の名称、受信可否の設定が変更されているかどうかを確認する。ここで変更されている場合はS909に処理を進み、受信側のCPU226は、プログラムの指示に従い、変更されている送信元の管理データの送信元の名称と受信可否状態を更新してS910に処理を進める。S908で。変更がない場合、或いはS909を実行した後、S901で受信側のCPU226は、プログラムの指示に従い、S902で表示した送信元を管理する画面をクローズする。
またS907で設定変更の操作出ないときはステップS911に進み、受信側のCPU226は、プログラムの指示に従い、設定中止の操作かどうかを判断する。設定中止操作の場合にはS910に処理を進めて画面をクローズし、設定中止操作でない場合はS902へ戻り、名称の変更等の操作を反映させて表示を行う。
このように受信側で送信元を判別する仕組みを設けることで、受信側で送信元の名称の入力と表示を行うことができ、受信機器の入出力機能の範囲内で送信元の名称を管理できる。
また、図4のフローチャートで示したように、送信元から受信側にデータの送信を行うS409の前にS407で送信元の名称を保存するので、一度も受信したことがないが受信することができる送信元を図6、図9で示したように管理することができる。
図10は、本実施形態に係る受信側のPCがデータ転送装置101からデータを取得する受信処理を示すフローチャートである。尚、このデータの取得は、一例として図9のS904のようなユーザの操作で行う。
まずS1001で、受信側のPC102BのCPU226は、プログラムの指示に従い、データ転送装置101に受信IDと受信フォルダに関連付けて一時保管しているデータのリストを要求する。一例として、送信元の名称が「Tom」の受信が指示されたとすると図6の送信元の管理データから送信元の名称が「Tom」のレコード605より受信フォルダ「a」を取得する。そして、受信ID「1000」とともにデータ転送装置101に要求する。
これによりS1002で、データ転送装置101のCPU206は、S1001の要求を受け、図4のS410で一時保管したデータから、要求された受信IDと受信フォルダ「a」とに関連付けられているデータのリストを受信側へ送信する。一例として、受信ID「1000」と受信フォルダ「a」に関連付けられているデータのリストをデータ転送装置101へ要求すると、図5のカラム502,503,507から、受信ID、受信フォルダ、及びデータ名を求めることができる。更に、受信ID「1000」と受信フォルダ「a」に一時保管しているデータとして「x.jpg」と「y.jpg」があることが分かる。
こうして求めた情報からデータ転送装置101のCPU206は、図8に示すような、受信IDと受信フォルダに関連付けられている一時保管しているデータのリストを生成する。
次にS1003で、受信側のCPU226は、プログラムの指示に従い、S1001で取得したデータのリストから、所望するデータをデータ転送装置101に要求する。これによりS1004で、データ転送装置101のCPU206は、S1003の要求を受けて、転送管理部106の指示に従い、指定されたデータを受信側のPC102Bに送信する。このようにして、受信フォルダ毎に、データ転送装置101に問い合わせすることで、ユーザが指定した、送信元のPC102Aからのデータを受信することができる。
図11は、本実施形態1に係る送信元のPCにおいて受信側を管理する処理を説明するフローチャートである。この処理は、例えば図7の管理データの編集処理であり、送信元のPC102AのCPU226が、RAM228にロードされたプログラムを実行することにより達成される。
まずS1101で、送信元のCPU226は、プログラムの指示に従い、図7に示すような受信側の管理データをHDD229に記憶されたプログラムデータから取得する。次にS1102で、送信元のCPU226は、プログラムの指示に従い、取得した受信側の管理データを表示部221に表示する。次にS1103で、送信元のCPU226は、プログラムの指示に従い、受信側毎に削除の操作があるかどうかを判断し、削除操作の場合にはS1104に処理を進め、削除操作でない場合はS1105に処理を進める。S1104で、送信元のCPU226は、プログラムの指示に従い、受信側の管理データから、指示されたレコードを削除してS1102へ戻り、受信側を管理する画面を再表示する。S1105では、送信元のCPU226は、プログラムの指示に従い、設定変更の操作があるかどうかを判断し、設定変更操作の場合はS1106に処理を進め、設定変更操作でない場合はS1109に処理を進める。S1106で、送信元のCPU226は、プログラムの指示に従い、受信側の名称が変更されているかどうかを確認し、変更されている場合にはS1107に処理を進め、変更されていない場合はS1108に処理を進める。S1107で、送信元のCPU226は、プログラムの指示に従い、変更されている受信側の管理データの受信側の名称を更新してS1108に処理を進める。S1108では、送信元のCPU226は、プログラムの指示に従い、S1102で表示した受信側を管理する画面をクローズする。
一方、S1105で設定変更の操作でないときはS1109に進み、送信元のCPU226は、プログラムの指示に従い、設定変更処理の中止かどうかを判断し、中止操作の場合にはS1108に処理を進めて画面をクローズする。また設定中止操作でない場合はS1102へ戻り、名称の変更等の操作を反映させて表示を行う。
このようにして、送信元のPCで受信側のPCの名称の入力と表示、及びその修正を行うことができるので、送信元の機器の入出力機能の範囲内で受信側の機器の名称を管理できる。
<実施形態1の変形例1>
上述の実施形態1では、受信フォルダを、図4のS403,S404で説明したようにデータ転送装置101で生成している。しかしながら、受信フォルダは受信IDに対してユニークであればよいため、受信フォルダを受信側で独自に生成して送信元の名称を関連付けて管理することもできる。
図4において、本実施形態の受信側で独自に生成する場合の受信側で送信元を判別する仕組みを備えた送信元から受信側へ情報を送信するフローの一例を説明する。S401,S402は、前述した実施形態1と同じである。
S403で、受信側のPC102BのCPU226は、プログラムの指示に従い、図6の送信元の管理データを利用してユニークになるように受信フォルダを独自に生成する。次のS404を省略する。S405,S406,S407,S408,S409は、先に説明した実施形態1と同じである。
S410で、データ転送装置101のCPU206は、S409を受けて転送管理部106の指示に従い、DB107を利用して受信IDと受信フォルダとに関連付けて送信されたデータを一時保管する。
このときデータ転送装置101のCPU206は、転送管理部106の指示に従い、DB107に、図5に示した受信IDと受信フォルダとを組み合わせたレコードを確認する。そしてレコードがなければ、受信IDと受信フォルダを組み合わせたレコードを表すINDEX501、受信ID502と受信フォルダ503の管理データを生成する。
一例として、データ「x.jpg」が受信ID「1000」と受信フォルダ「a」と併せてデータ転送装置101へ送信されると、図5に示すようなレコードを生成する。
次に、図5に示した506〜508で構成される一時保管データのレコード515を管理データとして生成する。その後、受信ID「1000」と受信フォルダ「a」を示すINDEXと、一時保管データのINDEXとを関連付けるレコード512のようなレコードを管理データとして生成する。このようにすることで、データ転送装置101で一時保管データと受信ID、受信フォルダとを関連付けて管理することができる。尚、S411からS417は先に説明した実施形態1と同じである。
このようにS403からS408において、受信側から送信元へ受信ID、受信フォルダを通知する際、データ転送装置101を必要としない。このため、受信側から送信元への通知は、データ転送装置101が利用できない環境においても事前に送信IDと受信IDをそれぞれが取得していれば受信フォルダの通知ができる。
<実施形態1の変形例2>
前述の実施形態1及び変形例1では、送信元毎に受信フォルダを生成して送信元の名称を関連付けて管理を行っている。しかし、送信元毎に受信IDをデータ転送装置101から取得して受信IDと送信元の名称を関連付けて管理することもできる。
図4を用いて、本実施形態の受信IDと送信元の名称を関連付けて管理する場合の受信側で送信元を判別する仕組みを備えた送信元から受信側へ情報を送信するフローの一例を説明する。
S401,S402は省略される。S403,S404で、受信側のCPU226は、受信フォルダの代わりに、先に説明したS401,S402を行い、送信元毎に受信IDをデータ転送装置101から取得する。S405からS412は先に説明した実施形態1の受信フォルダの代わりに送信元毎の受信IDを使用する。S413,S414は先に説明した実施形態1の受信フォルダの代わりに、送信元毎の受信IDを使用するが、送信元毎に受信IDが変わるので送信元毎に実行する。このとき、S413,S414を送信元毎に繰り返すのではなく、複数の受信IDを一度に処理できてもよい。次にS415で、受信側のPC102BのCPU226は、送信元の管理データから、処理している受信IDと関連付けた送信元の情報を取得する。こうして取得できた送信元情報から、不図示であるが受信ユーザに対して送信元名称を表示してデータが送信されていること表示することができる。S416,S417は先に説明した実施形態1と同じである。
このように送信元毎に受信IDを使用することにより、送信元の名称を関連付けて管理することができる。
<実施形態2>
次に本発明の実施形態2を説明する。尚、この実施形態2のシステム構成、及びデータ転送装置101及びPC102のハードウェア構成は、前述の実施形態1と同様であるため、その説明を省略する。
図12は、本発明の実施形態2において、送信元に受信IDを通知した後、受信フォルダを取得するフローの一例を示している。この処理はPC102A,102BのCPU226、及びデータ転送装置101のCPU206が、各対応するRAMにロードされたプログラムを実行することにより達成される。
まずS1201で、受信側のPC102BのCPU226は、プログラムの指示に従い、データ転送装置101へ受信IDの取得を要求する。これによりS1202で、データ転送装置101のCPU206は、その要求を受け、転送管理部106の指示に従い、DB107を利用してシステム全体でユニークとなる受信IDを求めて受信側のPC102Bに送信する。これにより受信側のCPU226は、その受信IDを受信してプログラムの指示に従い、HDD229等へプログラムデータとして保存する。尚、不図示であるが、受信IDがプログラムデータとして既にHDD229等へ保存されていた場合は、S1201,S1202の処理は省略できることは言うまでもない。
一方、送信元のCPU226は、S1203で、プログラムの指示に従い、データ転送装置101へ送信IDの取得を要求する。これによりS1204で、データ転送装置101のCPU206は、その要求を受けて、転送管理部106の指示に従い、DB107を利用してシステム全体でユニークとなる送信IDを求めて送信元のPC102Aへ送信する。こうして送信元のCPU226は、その送信IDを受信してプログラムの指示に従い、HDD229等へプログラムデータとして保存する。このようにして、S1203,S1204において、システム全体でユニークとなる送信IDを送信元毎に割り当てることができ、データ転送装置101は、データ転送元を一意に管理することができる。尚、不図示であるが、送信IDがプログラムデータとして既にHDD229等へ保存されていた場合は、これらS1203,S1204は省略できることは言うまでもない。
次にS1205で、受信側のCPU226は、プログラムの指示に従い、S1202で取得した受信IDを送信元に通知し、送信元から送信IDを取得する。このとき受信側のCPU226は、送信元の名称を設定する項目を持つ画面を表示する。このとき送信元のCPU226は、S1206で、プログラムの指示に従い、S1204で要求された送信IDを受信側のPC102Bに通知し、受信側から受信IDを取得する。このとき送信元のCPU226は、受信側の名称を設定する項目を持つ画面を表示する。
次に受信側のCPU226は、S1207で、ユーザの指示があれば、プログラムの指示に従い、送信元の名称を送信IDに関連付けてHDD229等へプログラムデータとして保存する。一例として、送信元の名称に設定されている「George」とS1205で取得した送信ID「4000」を、図6のレコード607にしてプログラムデータとして保存する。
また送信元のCPU226は、S1208で、プログラムの指示に従い、受信側の名称を受信IDに関連付けてHDD229等へプログラムデータとして保存する。一例として、ユーザにより受信側の名称を登録する指示が実行されると、名称に設定されている「Tyke」と、S1206で取得した受信ID「3000」を、図7のレコード706にして、プログラムデータとして保存する。
次に受信側のCPU226は、S1209で、プログラムの指示に従い、送信元の管理データから受信フォルダが未設定で送信IDが設定されているレコードを判定する。受信フォルダが未設定の場合はS1210に処理を進め、受信フォルダが未設定のものがなければ処理を終了する。S1210で、受信側のCPU226は、プログラムの指示に従い、受信IDと送信IDとをデータ転送装置101に通知して受信フォルダを取得する。ここでは受信側のCPU226は、プログラムの指示に従い、受信フォルダが未設定のレコードに該当する返信された受信フォルダを設定してHDD229等へプログラムデータとして保存し、処理を終了する。
また送信元のCPU226は、S1211で、プログラムの指示に従い、受信側の管理データから受信フォルダが未設定のレコードを判定する。受信フォルダが未設定の場合はS1212に処理を進め、受信フォルダが未設定のものがなければ処理を終了する。S1212では、送信元のCPU226は、プログラムの指示に従い、受信IDと送信IDとをデータ転送装置101のPC102Bに通知して受信フォルダを取得する。そして送信元のCPU226は、プログラムの指示に従い、受信フォルダが未設定のレコードに該当する返信された受信フォルダを設定してHDD229等へプログラムデータとして保存し、処理を終了する。
またデータ転送装置101のCPU206は、S1213で、S1210,S1212の要求を受けると、転送管理部106の指示に従い、受信した受信IDと送信IDとに関連付けた受信フォルダがあるかどうかを判断する。ここで、受信IDと送信IDとに関連付けた受信フォルダがあれば処理をS1215に進め、関連付けた受信フォルダがなければ処理をS1214に進める。一例として、受信ID「3000」と送信ID「4000」に関連付けられている受信フォルダをデータ転送装置101へ要求すると、図13の受信ID1301、送信ID1302から受信フォルダ1303を求めることができる。
図13は、本実施形態2において、受信フォルダを取得する際に利用するデータ転送装置101におけるデータの構成の一例を示す図である。
カラム1301は受信IDを示す。カラム1302は送信IDを示す。カラム1303は、受信IDと送信IDとに対応する受信フォルダを示す。レコード1304は、一例として受信ID「3000」の受信側と、送信ID「4000」の送信元において、送信元から受信側に受信フォルダ「e」が設定されていることを示している。即ち、受信ID「3000」と送信ID「4000」に関連付けられている受信フォルダとして受信フォルダ「e」が生成されていることが分かる。尚、受信フォルダが生成されていない場合は該当するレコードがない状態となる。
またS1214で、データ転送装置101のCPU206は、受信IDと送信IDとに関連付けた受信フォルダを生成し、図13のレコード1304に示すような情報をDB107に保存する。尚、受信IDと関連付けた受信フォルダの生成は、図4のS404で説明した方法と同じである。
このようにS1205からS1208において、受信側との送信元との間で受信ID及び送信IDを通知することにより、これらIDをデータ転送装置101から取得する必要がなく、また受信側と送信元がそれぞれ後から受信フォルダを取得できる。このため、受信側と送信元との間での受信ID及び送信IDの通知に際して、データ転送装置101が利用できない環境においても、事前に送信IDと受信IDをそれぞれを取得して受信フォルダの通知ができる。
<実施形態2の変形例1>
実施形態1では、送信ID、受信ID、受信フォルダをそれぞれで個別に生成したが送信ID、受信IDと送信元の名称を関連付けて管理することもできる。
図12を用いて、受信側で送信元を判別する仕組みを備え、送信元から受信側へ情報を送信する処理について説明する。
S1201からS1206は先に説明した実施形態2と同じである。S1207で、受信側のCPU226は、プログラムの指示に従い、送信元の名称を送信IDに関連付けてHDD229等へプログラムデータとして保存する。一例として、ユーザにより登録指示が実行されると、名称に設定されている「George」と、S1205で取得した送信ID「4000」を、図6のレコード607にしてプログラムデータとして保存する。
このとき実施形態1では、図6の送信IDに送信ID「4000」を設定したが、送信IDがシステム全体で混在しないユニークなIDなのでカラム601の受信フォルダに送信ID「4000」を設定する。
またS1208で、送信元のCPU226は、プログラムの指示に従い、受信側の名称を受信IDに関連付けてHDD229等へプログラムデータとして保存する。一例として、受信側の名称を登録する指示がユーザにより実行されると、名称に設定されている「Tyke」と、S1206で取得した受信ID「3000」を図7に示すようなレコード706としてプログラムデータとして保存する。
このとき実施形態2では、図7のカラム702の受信フォルダを未設定としたが、送信IDがシステム全体で混在しないユニークなIDなので、カラム702の受信フォルダに送信IDの値「4000」を設定する。S1209からS1215の処理は行わない。尚、データ転送装置101では、受信IDと受信フォルダを組み合わせたレコードがデータ送信前に生成できないので、実施形態1のS410で説明した処理を行うこととなる。
尚、送信元のPC102Aでは、S1212の後でS411で送信通知を受信側のPC102Bに送信し、S412で、受信側のPC102Bは、この送信通知を受信する。この後の処理は、前述の図4と同じであるため、その説明を省略する。
このように、送信IDを受信フォルダと同等に扱うことにより、送信IDを取得できれば受信フォルダを生成する必要がない。
<実施形態3>
次に本発明の実施形態3を説明する。尚、この実施形態3のシステム構成、及びデータ転送装置101及びPC102のハードウェア構成は、前述の実施形態1と同様であるため、その説明を省略する。
図14(A)は、本実施形態3に係る受信側のPCの受信フォルダとユーザが設定した送信元の名称の管理データの構成の一例を示す図である。
ユーザが設定した送信元の名称は、後述する本実施形態3のフローで受信側のプログラムBによりユーザPC102Bに保存される。
カラム1401は、仮登録時の送信元と、ユーザが設定した送信元の名称を関連付ける識別子を示す。カラム1402は、ユーザが設定した送信元の名称を示す。カラム1403は、受信フォルダに対応するユーザが設定した受信可否の状態を示す。カラム1404は送信IDを示す。
レコード1405は、登録状態で識別子「a」に対してユーザが設定した送信元の名称が「Tom」であり、送信IDが「4000」であることを示している。レコード1406は、仮登録状態で識別子「b」に対してユーザが設定した送信元の名称が「Jerry」であることを示している。レコード1407は、仮登録状態で、識別子「c」に対して、ユーザが設定した送信元が「George」であることを示している。このように送信IDとユーザが設定した送信元の名称を関連付けて管理することができる。
図14(B)は、本実施形態3に係るデータ転送装置101おける受信IDと識別子に関連付けて管理している送信IDの構成の一例を示す図である。
カラム1410は受信IDを示す。カラム1411は識別子を示す。カラム1412は、受信IDと識別子とに関連付けられた送信IDを示す。レコード1413は、受信IDが「1000」、識別子「a」に対して送信IDが「4000」に設定されていることを示している。レコード1414は、受信IDが「1100」、識別子「c」に対して送信IDが「4100」に設定されていることを示している。またレコード1415は、受信IDが「1200」、識別子「b」に対して送信IDが「4200」に設定されていることを示している。このように受信IDと識別子に関連付けて送信IDを管理することができる。
図15は、本実施形態3に係るデータ通信システムにおける手順を説明する図である。ここでは、受信側が送信IDとユーザが設定した送信元の名称を関連付ける仕組みを備えており、送信元から受信側へ情報を送信する場合で説明する。
S1501で、受信側のCPU226は、プログラムの指示に従い、データ転送装置101へ受信IDの取得を要求する。これによりデータ転送装置101のCPU206は、S1502で、S1501の要求を受け、転送管理部106の指示に従い、DB107を利用してシステム全体でユニークとなる受信IDを求めて受信側へ送信する。これにより受信側のCPU226は、その返信された受信IDを、プログラムの指示に従いHDD229等へプログラムデータとして保存する。尚、不図示であるが、受信IDがプログラムデータとして既にHDD229等へ保存されていた場合は、これらS1501,S1502を実行しなくてもよい。
一方、送信元のCPU226は、S1503で、プログラムの指示に従い、データ転送装置101へ送信IDの取得を要求する。これによりデータ転送装置101のCPU206は、S1504で、その要求を受けると、転送管理部106の指示に従い、DB107を利用して、システム全体でユニークとなる送信IDを求めて送信元へ送信する。これにより送信元のCPU226は、その返信された送信IDを、プログラムの指示に従い、HDD229等へプログラムデータとして保存する。このようにS1503,S1504においてシステム全体でユニークとなる送信IDを送信元毎に割り当てることで、データ転送装置101はデータ転送元を一意に管理することができる。尚、不図示であるが、送信IDがプログラムデータとして既にHDD229等へ保存されていた場合は、S1503,S1504を実行しなくてもよい。
次に受信側のCPU226は、S1505で、プログラムの指示に従い、仮の登録で必要となる識別子を生成し、S1502で取得した受信IDとともに送信元に通知する。尚、この識別子は、受信側でユニークであればよく、受信側で生成してもよいし、データ転送装置101で生成してもよい。このとき受信側と送信元が遠隔地の場合は、受信側のCPU226は、プログラムの指示に従い、送信元に通知する情報と送信元の名称を設定する画面を表示する。尚、送信元に通知する情報は、前述した受信フォルダではなく識別子となることは言うまでもない。
これにより送信元のCPU226は、S1506で、プログラムの指示に従い、S1505で通知された受信IDと識別子とを取得する。
次に受信側のCPU226は、S1507で、プログラムの指示に従い、送信元の名称を識別子に関連付けてHDD229等へプログラムデータとして、仮の登録状態で保存する。一例として、ユーザにより送信元の名称の登録指示が実行されると、名称に設定されている「Tom」と、そのときの受信フォルダ「a」を図14(A)のレコード1405にしてプログラムデータとして保存する。
また送信元のCPU226は、S1508で、プログラムの指示に従い、設定画面に受信側の名称、受信IDを表示し、これらをHDD229へプログラムデータとして保存する。次にS1509で、送信元のCPU226は、プログラムの指示に従い、通知された受信IDと識別子とに関連付けて、送信IDをデータ転送装置101へ送信する。これによりデータ転送装置101のCPU206は、S1510で、S1509の要求を受けると、転送管理部106の指示に従い、DB107を利用して受信IDと識別子に関連付けて送信IDを一時保管する。一例として、受信IDが「1000」、識別子が「a」に対して送信IDが「4000」の場合には、図14(B)のレコード1413のようなレコードを管理データとして生成する。尚、不図示であるが、送信IDの一時保管は、後述する受信側からの問い合わせで返信をした後、或いは一定期間経過後で削除してもよい。
また受信側のCPU226は、S1511で、プログラムの指示に従い、送信元からのデータ送信の通知、或いは一定時間毎に定期的に送信元の名称が仮登録状態のものがあるかどうかを判断する。ここで送信元の名称が仮登録状態のものがあればS1512に処理を進め、仮登録状態のものがなければ処理を終了する。
一例として、図14(A)のレコード1406,1407に示すような送信IDが設定されていないレコードが存在すれば仮登録状態のものがあることになる。
次にS1512に進み、受信側のCPU226は、プログラムの指示に従い、受信IDと送信元の名称が仮登録状態の識別子を組としてデータ転送装置101へ送信IDの確認を要求する。これによりデータ転送装置101のCPU206は、S1513で、その要求された受信IDと識別子に基づいて、S1510で一時保管した送信IDを返信する。これにより受信側のCPU226は、S1514で、プログラムの指示に従い、S1513で取得した識別子に対応する送信IDがあるかどうかを判定する。そして識別子に対応する送信IDがあればS1515に処理を進め、識別子に対応する送信IDがなければ処理を終了する。S1515では、受信側のCPU226は、プログラムの指示に従い、識別子に対応する送信IDを送信元の名称の管理データに設定して仮登録状態を登録状態に変え処理を終了する。一例として、図14(A)のレコード1405に示すように、送信IDが設定されている状態にすることで仮登録状態が登録状態に変わる。
データの送受信は、先に説明した実施形態1における受信フォルダを送信IDに置き換えることで、S409からS417にて同様に処理することができる。このようすることで、受信フォルダを利用しなくても送信元の名称を受信側で管理することができる。
尚、送信元のPC102Aでは、S1509の後でS411で送信通知を受信側のPC102Bに送信し、S412で、受信側のPC102Bは、この送信通知を受信する。この後の処理は、前述の図4と同じであるため、その説明を省略する。
<実施形態4>
次に本発明の実施形態4について説明する。尚、この実施形態4のシステム構成、及びデータ転送装置101及びPC102のハードウェア構成は、前述の実施形態1と同様であるため、その説明を省略する。この実施形態4は、前述の実施形態の受信IDや送信IDを示すコードを表す文字数(桁数)が多すぎるため、ユーザが電話などで音声で伝えることが難しかく、またその入力も容易でなかったことに鑑みてなされたものである。そこで本実施形態4では、そのコードの発行状況や動作状況や用途などに応じて、そのコードの字数を調整することを目的としている。
図16(A)(B)は、本実施形態3のデータ転送装置101において利用する管理データの一例を示す図である。
図16(A)は、発行するコードに関係する管理データの一例を示し、図16(B)は、コードを発行する際に利用する管理データの一例を示している。
情報番号1601は、データ転送装置101で受信し保存した情報に対して、データ転送装置101でユニークになるように発行され情報を管理する番号である。1602は、データ転送装置101で受信し保存した情報のファイルパスを示す。この実施形態4では、ファイルパスで情報を管理しているが、ファイルパスの代わりに直接情報を扱ってもよい。情報番号1603は、コード1604と関連付ける情報番号である。コード1604は、情報番号と関連付けられたコードである。コード1605は、データ転送装置101で受信し保存した情報に対して、ユーザが情報を取得するためのコードである。パスワード1606は、ユーザがデータ転送装置101に情報を一時保管する際にパスワードを付加した場合に、その付加されたパスワードを設定する。このパスワードは、ユーザがデータ転送装置101から情報を取得する際に利用され、パスワードが一致しなければ一時保管した情報を取得できない。発行日時1607は、データ転送装置101が、コード1605を発行した日時である。停止予定日時1608は、コード1605を発行した日時から、そのコード1605が有効な期間を付加した日時である。例えば、2010年1月1日0時0分0秒に発行して、コードの有効期間が24時間の場合には、2010年1月2日0時0分0秒が停止予定日時として設定される。尚、発行日時1607を持っているので、停止日時に代えて有効期間を持っていてもよい。
上限アクセス数1609は、データ転送装置101がコードを発行してから情報を取得を要求できる上限の回数を設定している。例えば、1回限りの利用を目的としたコードでは「1」が設定される。アクセス数1610は、データ転送装置101がコードを発行してから、情報取得を要求された回数を計数している。ここでは有効/無効、期限、上限アクセスに拘わらず情報取得を要求されると、その回数がカウントアップされて設定される。最終アクセス日1611は、情報取得を要求されたときの最終日時であり、有効/無効、期限、上限アクセスに拘わらず、情報取得を要求されるとその日時が設定される。発行MACアドレス1612は、データ転送装置101で受信し保存したコードを発行した情報処理装置のMACアドレスが設定される。
このようなデータを持つことで、データ転送装置101で受信したコードと、一時保存しているコードとが同じであること。及び、データ転送装置101に、そのコードを送出した情報処理装置と、一時保存している情報を送出した情報処理装置が同じでことを確認すると、同じコードを返すことができる。尚、このとき上限アクセス数309をインクリメントして取得回数を調整してもよいことは言うまでもない。
コード1613は、コード1605と関連付けるコードである。また取得要求MACアドレス1614には、情報の取得要求を行った情報処理装置ごとのMACアドレスが設定される。最終アクセス日1615は、情報の取得要求を行った報処理装置ごとに有効/無効、期限、上限アクセスに拘わらず情報取得が要求された最終日時が設定される。このように1613から1615に示すようなデータを持つことで、コード毎に情報の取得を行った報処理装置と最終アクセス日が特定できる。例えば、あるコードを利用して情報の取得を行った情報処理装置(PC)から、再度同じコードで情報取得がされても、一定期間は情報の取得を制限するなどの制御を行うことができる。
このようにすることで、データ転送装置101が再利用したコードに対して、ユーザが過去に利用したコードを保持していて、それを基に情報を取得した場合等の制限ができる。
次に図16(B)の分1616は、データ転送装置101に対して行われた、分単位でのコードの発行要求回数と取得要求回数を管理する分の値を示している。発行カウンタ1617は、データ転送装置101に対して行われた、分単位でのコードの発行要求回数を示す。取得カウンタ1618は、データ転送装置101に対して行われた、分単位での取得要求回数を示す。年月日時1619は、データ転送装置101に対して行われた、年月日での時単位での、コードの発行要求回数と取得要求回数を管理する年月日での時単位の値を示している。発行カウンタ1620は、データ転送装置101に対して行われた、年月日での時単位でのコードの発行要求回数を示す。取得カウンタ1621は、データ転送装置101に対して行われた、年月日での時単位での取得要求回数を示す。例えば、分単位でのコードの発行要求回数と取得要求回数を毎時集計して、年月日での時単位での発行要求回数と取得要求回数にすることで、データが形成される。
年月日1622は、データ転送装置101を利用する情報処理装置の発売日など関連するイベントの年月日が設定される。イベント番号1623は、データ転送装置101を利用する情報処理装置の発売日などに関連するイベントを示すイベント番号が設定される。尚、不図示であるが、このイベント番号はイベントの詳細と関連付けられている。MACアドレス1624は、データ転送装置101に対してコードの発行要求、又は取得要求を行った情報処理装置(PC)のMACアドレスが設定される。記録開始日時、再開日時1625は、MACアドレスごとに記録を開始、或いは正常に処理の受付を再開した日時が設定される。停止開始日時1626は、MACアドレスごとに、そのMACアドレスからの発行要求と取得要求処理を処理しないようにした日時が設定される。発行カウンタ1627は、MACアドレスごとに正常に処理したかどうかの有無に関係なく、記録を開始、或いは正常に処理の受付を再開した日時、或いは発行と取得の要求を処理しないようにした日時のいずれかからの発行要求回数が設定される。取得カウンタ1628は、MACアドレスごとに正常に処理したかどうかの有無に関係なく、記録を開始、或いは正常に処理の受付を再開した日時、或いは発行と取得の要求を処理しないようにした日時のいずれかからの取得要求回数が設定される。
これら1624から1628に示すようなデータを持つことで、各PCの発行リクエストと取得リクエストに対する制御を行うことができる。例えば、あるPCからの発行リクエストが、単位時間当たりのリクエスト数の閾値を超えた場合に、その発行リクエストを受け付けても、情報の一時保存とコードの発行を一定期間停止させるようなことができる。同様に、あるPCからの取得リクエストが、単位時間当たりのリクエスト数の閾値を超えた場合に、その取得リクエストを受けても一定期間情報を返さないようにすることができる。このようにすることで、不正アクセスに対応することができる。
図17A,17Bは、本実施形態4のデータ転送装置101において、コードを発行するためのコードの文字数を求める処理を説明するフローチャートである。尚、この処理を実行するプログラムは、実行時にRAM208にロードされており、CPU206の制御の下に実行される。
まずS1701で、CPU206は文字数として変数digit(RAM208にある)に「3」を初期設定する。尚、説明の便宜上、初期値を「3」としたが自然数であれば何でもよい。次にS1702で、CPU206は、パスワードが付与されているか否かを判断し、パスワードが付与されている場合はS1744(図17B)へ処理を進め、パスワードがない場合はS1703へ処理を進める。このようにすることで、パスワードが付与されていて、パスワードで保護できる場合には、文字数の調整を行わないようにできる。尚、不図示であるが、パスワードがある場合には、未発行のコードがあり既定の任意の文字数以上となる文字数を取得するようにしてもよい。パスワードがない場合はS1703で、CPU206は、一時保存した情報の取得可能回数を判断し、情報の取得回数が1回限りの場合はS1705へ処理を進め、情報の取得回数が複数回の場合はS1704へ処理を進める。S1704では、CPU206は、一時保存した情報の取得可能回数を変数digitに加算する。このようにすることで、一時保存した情報の取得を複数回行うことができる場合の文字数の調整が可能となる。尚、説明の便宜上、一時保存した情報の取得可能回数をそのまま加算したが、関数化するなどして他の方法で加算する値を取得可能回数から算出するようにしてもよい。また、不図示であるが、取得可能回数が無期限の場合は最大の文字数に設定することは言うまでもない。
S1705では、CPU206は、一時保存した情報の取得可能時間を判断し、その情報の取得可能時間が8時間未満の場合はS1707へ処理を進め、情報の取得可能時間が8時間以上の場合はS1706へ処理を進める。S1706では、CPU206は一時保存した情報の取得可能時間を8で割った商を変数digitに加算する。このようにすることで、一時保存した情報の取得可能時間が長い場合の文字数調整が可能となる。尚、ここでは、一時保存した情報の取得可能時間を定数で割った商を加算したが、例えば関数化するなどして他の方法で加算する値を取得可能時間から算出するようにしてもよい。また、8時間を判断基準としたが任意の定数であってもよいことは言うまでもない。更に、不図示であるが、取得可能時間が無期限の場合は最大の文字数に設定することは言うまでもない。
S1707では、CPU206は、変数digitの文字数未満の文字数の発行コード数を取得する。この発行コード数は、図16(A)に示す管理データを使って説明する。コード1605の文字数が変数digitより小さく、かつ、停止予定日時1608が現在の日時より未来であり、かつ、アクセス数1610が上限アクセス数1609より小さい場合のデータ数となる。次にS1708に進み、CPU206は、S1707で取得した、所定の文字数(桁数)の発行コード数と未発行のコード数とを比較し、発行コード数が未発行のコード数に対して1/5以上であればS1709へ処理を進める。一方、発行コード数が未発行のコード数に対して1/5未満であればS1710へ処理を進める。ここで、未発行のコード数は、例えば変数digitが「3」とすると、3桁で発行できる数字だけで構成されるコード総数は1000個となるので容易に算出することができる。S1709では、CPU206は変数digitを+1してS1707に処理を戻す。このようにすることで、発行コード数と未発行コード数の割合に応じて文字数の調整が可能となる。尚、説明の便宜上、発行コード数と未発行コード数の割合を1/5としたが、関数化するなどして文字数に応じて例えば文字数が小さいときは未発行コード数に対する発行コード数の割合が小さくなるようにするなど他の方法を行ってもよい。
S1710では、CPU206は発行コードの分布確認を行い、規定値以上の分布の偏りがあればS1711に処理を進め、規定値未満の分布の偏りであればS1712に処理を進める。発行コードの分布確認は、例えば、変数digitが「5」とすると、2文字、3文字、4文字、5文字となる。図16(A)に示す管理データを使って示すと、コード1605からそれぞれの文字数における度数分布を求め、それぞれの文字数に応じた規定値を超えているかどうかを判断することで行うことができる。尚、分布確認として度数分布とそれぞれの文字数に応じた規定値での判断を例にあげたが他の分布確認の方法であってもよい。S1711では、CPU206は、変数digitを+1してS1712に処理を進める。このようにすることで、発行コードの分布に偏りがあった場合の文字数の調整が可能となる。
S1712では、CPU206は、直近の発行リクエスト数の確認を行い、発行リクエストの数が規定値以上であればS1713に処理を進め、規定値未満であればS1714に処理を進める。この直近の発行リクエスト数は、図16(B)に示す管理データを使って示すと、現在の時間から直近の分を求め、分1616から発行カウンタ1617を取得することで得ることができる。例えば、分1616が毎日0時から1分毎に生成されていると、現在時間が1時1分の場合には、直近の1時から1時1分の発行リクエストのカウントつまり、分1616が「60」となっているレコードから発行カウンタ1617を取得すればよい。S1713では、CPU206は、直近の発行リクエストのカウント数の1/10を変数digitに加算してS1714に処理を進める。尚、説明の便宜上、直近の発行リクエストのカウントの1/10を加算したが、関数化するなどして他の方法で加算する値を直近の発行リクエストのカウントから算出するようにしてもよい。このようにすることで、直近のコードの発行数から文字数調整が可能となる。
S1714では、CPU206は発行リクエスト数の傾向の確認を行い、発行リクエストの数が増加傾向であればS1715に処理を進め、増加傾向でなければS1716に処理を進める。この発行リクエストは、図16(B)に示す管理データを使って示すと、現在の時間から数時間の過去の傾向を分1616と発行カウンタ1617を利用して線形近似や近似曲線などを利用して求めることができる。例えば、線形近似を用いて過去1時間分の傾向を算出し、その傾きが増加であるかそうでないかを判断する。そしてS1715で、CPU206は線形近似を用いて算出した傾きを、そのまま変数digitに加算してS1716に処理を進める。尚、過去1時間分の線形近似を用いて傾きを算出し、算出した傾きを加算したが、他に、近似曲線を用いて次のリクエスト数を予想して、予想に基づき変数digitに加算するなどしてもよい。このようにすることで、コードの発行傾向から文字数の調整が可能となる。
S1716では、CPU206は、直近の取得リクエスト数の確認を行い、取得リクエストが規定値以上であればS1717に処理を進め、規定値未満であればS1718に処理を進める。直近の取得リクエスト数は、図16(B)に示す管理データを使って示すと、現在の時間から直近の分を求め、分1616から取得カウンタ1618を取得することで得ることができる。例えば、分1616が毎日0時から1分毎に生成されているとすると、現在時間が1時1分の場合には、直近の1時から1時1分の取得リクエストのカウントつまり、分1616の値が「60」となっているレコードから取得カウンタ1618を取得すればよい。そしてS1717で、CPU206は直近の取得リクエストのカウントの1/10を変数digitに加算してS1718に処理を進める。尚、直近の取得リクエストのカウントの1/10を加算したが、関数化するなどして他の方法で加算する値を直近の取得リクエストのカウントから算出するようにしてもよい。このようにすることで、直近の取得リクエスト数から文字数の調整が可能となる。
S1718では、CPU206は、取得リクエスト数の傾向の確認を行い、取得リクエストが増加傾向であればS1719に処理を進め、増加傾向でなければS1720に処理を進める。この取得リクエストは、図16(B)に示す管理データを使って示すと、現在の時間から数時間の過去の傾向を分1616と取得カウンタ1618を利用して線形近似や近似曲線などを利用して求めることができる。例えば、線形近似を用いて過去1時間分の傾向を算出し、その傾きが増加であるかそうでないかを判断する。そしてS1719で、CPU206は線形近似を用いて算出した傾きを、そのまま変数digitに加算してS1720に処理を進める。尚、過去1時間分の線形近似を用いて傾きを算出し、算出した傾きを加算したが、他に、近似曲線を用いて次のリクエスト数を予想して、予想に基づき変数digitに加算するなどしてもよい。このようにすることで、取得リクエストの傾向から文字数調整が可能となる。
S1720では、CPU206は、現在の時間帯の発行リクエスト数を予想し、その発行リクエスト数の予想から文字数を算出してS1721に処理を進める。この発行リクエスト数の予想は、図16(B)に示す管理データを使って示すと、年月日時1619から1日の時間帯での過去の傾向を発行カウンタ1620を利用して線形近似や近似曲線などを利用して求めることができる。このとき、例えば、前時間帯での予想と前時間帯での実測値から過去の傾向を実測に合わせた補正を行ってもよい。
S1721では、CPU206はS1720で算出した文字数と変数digitとを比較して、文字数が足りない場合はS1722に処理を進め、足りていればS1723に処理を進める。S1722では、CPU206はS1720で算出した文字数を変数digitに設定し、S1723に処理を進める。このようにすることで、時間帯の発行リクエスト数の傾向から文字数の調整が可能となる。
S1723では、CPU206は、現在の月日の発行リクエスト数を予想し、発行リクエスト数の予想から文字数を算出してS1724に処理を進める。この発行リクエスト数の予想は、図16(B)に示す管理データを使って示すと、年月日時1619から1日単位での過去の傾向を発行カウンタ1620を利用して線形近似や近似曲線などを利用して求めることができる。このとき、例えば、前日での予想と前日での実測値から過去の傾向を実測に合わせた補正を行ってもよい。そしてS1724で、CPU206は、S1723で算出した文字数と変数digitとを比較して、文字数が足りない場合はS1725に処理を進め、足りていればS1726に処理を進める。S1725では、CPU206は、S1723で算出した文字数を変数digitに設定し、S1726に処理を進める。このようにすることで、月毎の日単位での発行リクエスト数の傾向から文字数の調整が可能となる。
図17BのS1726では、CPU206は、現在の曜日の発行リクエスト数を予想し、この発行リクエスト数の予想から文字数を算出しS1727に処理を進める。発行リクエスト数の予想は、図16(B)に示す管理データを使って示すと、年月日時1619から曜日単位での過去の傾向を発行カウンタ1620を利用して線形近似や近似曲線などを利用して求めることができる。このとき、例えば、前週の同一曜日での予想と前週の同一曜日での実測値から過去の傾向を実測に合わせた補正を行ってもよい。
S1727では、CPU206は、S1726で算出した文字数と変数digitを比較して、文字数が足りない場合はS1728に処理を進め、足りていればS1729に処理を進める。S1728では、CPU206はS1726で算出した文字数を変数digitに設定し、S1729に処理を進める。このようにすることで、曜日単位での発行リクエスト数の傾向から文字数調整が可能となる。
S1729では、CPU206は、現在の月日から前後30日の登録されたイベントを求め、過去の同一イベントにおける発行リクエスト数を予想し、この発行リクエスト数の予想から文字数を算出してS1730に処理を進める。登録されたイベントは、図16(B)に示す管理データを使って示すと、年月日1622から現在の月日と関係あるイベント番号1623で求めることができる。過去の同一イベントは、図16(B)に示す管理データを使って示すと、先に求めたイベント番号1623と同じイベント番号を持つ年月日1622を求めることで、過去の同一イベントの年月日のリストを取得することができる。また発行リクエスト数の予想は、図16(B)に示す管理データを使って示すと、先に求めた過去の同一イベントの年月日のリストと発行カウンタ1620から、イベントの前後30日の近似曲線等を利用して求めることができる。尚、ここではイベントの前後30日としたが、イベントによって日数を変えたりしてもよい。また、近似曲線で管理データから直接予測を行ったが、イベントがなかった場合の予測を行い、実測値との差分をイベントによる増減分と判断する。そして現在のイベントがない場合の予測に対して、先に求めたイベントによる増減分を加味させて調整してもよい。
S1730では、CPU206は、S1729で算出した文字数と変数digitとを比較して、文字数が足りない場合はS1731に処理を進め、足りていればS1732に処理を進める。S1731では、CPU206は、S1729で算出した文字数を変数digitに設定してS1732に処理を進める。このようにすることで、イベントでの発行リクエスト数の傾向から文字数の調整が可能となる。
S1732では、CPU206は、現在の時間帯の取得リクエスト数を予想し、この取得リクエスト数の予想から文字数を算出してS1733に処理を進める。この取得リクエスト数の予想は、図16(B)に示す管理データを使って示すと、年月日時1619から1日の時間帯での過去の傾向を取得カウンタ1621を利用して線形近似や近似曲線などを利用して求めることができる。このとき、例えば、前時間帯での予想と前時間帯での実測値から過去の傾向を実測に合わせた補正を行ってもよい。
S1733では、CPU206は、S1732で算出した文字数と変数digitとを比較して、文字数が足りない場合はS1734に処理を進め、足りていればS1735に処理を進める。S1734では、CPU206は、S1732で算出した文字数を変数digitに設定し、S1735に処理を進める。このようにすることで、時間帯の取得リクエスト数の傾向から文字数の調整が可能となる。
S1735では、CPU206は、現在の月日の取得リクエスト数を予想し、取得リクエスト数の予想から文字数を算出しS1736に処理を進める。この取得リクエスト数の予想は、図16(B)に示す管理データを使って示すと、年月日時1619から1日単位での過去の傾向を取得カウンタ1621を利用して線形近似や近似曲線などを利用して求めることができる。このとき、例えば、前日での予想と前日での実測値から過去の傾向を実測に合わせた補正を行ってもよい。
S1736では、CPU206は、S1735で算出した文字数と変数digitとを比較して、文字数が足りない場合はS1737に処理を進め、足りていればS1738に処理を進める。S1737では、CPU206は、S1735で算出した文字数を変数digitに設定してS1738に処理を進める。このようにすることで、月毎の日単位での取得リクエスト数の傾向から文字数の調整が可能となる。
S1738では、CPU206は、現在の曜日の取得リクエスト数を予想し、取得リクエスト数の予想から文字数を算出してS1739に処理を進める。この取得リクエスト数の予想は、図16(B)に示す管理データを使って示すと、年月日時1619から曜日単位での過去の傾向を取得カウンタ1621を利用して線形近似や近似曲線などを利用して求めることができる。このとき、例えば、前週の同一曜日での予想と前週の同一曜日での実測値から過去の傾向を実測に合わせた補正を行ってもよい。
S1739では、CPU206は、S1738で算出した文字数と変数digitとを比較して、文字数が足りない場合はS1740に処理を進め、足りていればS1741に処理を進める。S1740では、CPU206は、S1738で算出した文字数を変数digitに設定し、S1741に処理を進める。このようにすることで、曜日単位での取得リクエスト数の傾向から文字数の調整が可能となる。
S1741では、CPU206は、現在の月日から前後30日の登録されたイベントを求め、過去の同一イベントにおける取得リクエスト数を予想し、この取得リクエスト数の予想から文字数を算出しS1742に処理を進める。登録されたイベントは、図16(B)に示す管理データを使って示すと、年月日1622から現在の月日と関係あるイベント番号1623を求めることができる。過去の同一イベントは、図16(B)に示す管理データを使って示すと、先に求めたイベント番号1623と同じイベント番号を持つ年月日1622を求めることで過去の同一イベントの年月日のリストを取得することができる。取得リクエスト数の予想は、図16(B)に示す管理データを使って示すと、先に求めた過去の同一イベントの年月日のリストと取得カウンタ1621とからイベントの前後30日の近似曲線などを利用して求めることができる。尚、説明の便宜上、イベントの前後30日としたがイベントによって日数を変えたりしてもよい。また、説明の便宜上、近似曲線で管理データから直接予測を行った。しかしイベントがなかった場合の予測を行い、実測値との差分をイベントによる増減分と判断し、現在のイベントがない場合の予測に対して、先に求めたイベントによる増減分を加味させて調整してもよい。
S1742では、CPU206は、S1741で算出した文字数と変数digitとを比較して、文字数が足りない場合はS1743に処理を進め、足りていればS1744に処理を進める。S1743では、CPU206は、S1741で算出した文字数を変数digitに設定し、S1744に処理を進める。このようにすることで、イベントでの取得リクエスト数の傾向から文字数調整が可能となる。
S1744では、CPU206は、区切り文字数で割りきれるかどうかを確認し、割り切れない場合はS1745に処理を進め、割り切れる場合は処理を終了する。S1745では、CPU206は、区切り文字数で割りきれるように変数digitに文字数を加算して処理を終了する。このようにすることで、例えば、区切り文字数を「4」とすると、「4」の倍数に文字数をすることができ、ユーザに対してコードを表示する際に4文字区切りで表示が行えるのでユーザが扱いやすくすることができる。尚、区切り文字数は任意の定数でよいことは言うまでもない。このようにして生成した文字数を基に、本実施形態4に係るデータ転送装置101はコードを生成する。
図18は、本実施形態4に係るデータ転送装置において、図17A,図17Bのフローチャートに従って決定したコードの文字数に基づいて、コードを求める処理を説明するフローチャートである。尚、この処理を実行するプログラムは、実行時にRAM208にロードされており、CPU206の制御の下に実行される。
まずS1801で、CPU206は、コードの発行が要求されているかどうかを判定し、要求されていればS1802に処理を進め、要求されていなければS1804に処理を進める。S1802では、CPU206は、要求されているコードの文字数と、図17A,17Bで生成したコードの文字数とを比較する。そして、要求されているコードの文字数が、生成したコードの文字数と等しいか、それよりも長ければS1806に処理を進める。一方、要求されているコードの文字数の方が、生成したコードの文字数よりも短ければS1803に処理を進め、CPU206は要求されているコード文字数に足りない分の文字を発生して、要求されている文字数の文字列を生成する。そして、その生成した文字列のコードを生成してS1806に処理を進める。
一方、S1804では、CPU206は、図17A,17Bのフローチャートに従って生成した文字数分の文字列(コード)を生成してS1805に処理を進める。尚、文字列の生成は、必要な文字数で文字列が生成できればよく、文字の生成の方法に依存しない。尚、文字列の生成の一例を挙げると、乱数を利用して文字列を生成してもよいし、一時保存する情報からハッシュデータを取得して文字列を生成しても良い。また或いは図16の管理データを順次参照して、空きコードを探すなどしてもよい。
次にS1805に進み、CPU206は、S1804で生成した文字列(コード)に、同一文字の連続や、数字の連番、文字がアルファベット順で配置されているといった、推測され易い文字列などが含まれているかどうか判断する。そして、このような文字列があると判断されるとS1804に処理を戻して、再度、コード(文字列)を生成する。一方、そうでないときはS1806に処理を進め、CPU206は、そのコードが発行済みでないかどうかを判断する。ここで、同じコードを発行済みであると判定した場合はS1804に処理を戻して、再び、コード(文字列)を生成する。一方、S1806で、未発行であると判定した場合はS1807に処理を進める。
尚、発行済みかどうかの判断は、図16(A)に示す管理データを使って説明すると、コード1605に同一コードがあるかどうかにより確認できる。また、不図示であるが、このとき発行済みだけでなく、生成したコードの一定の範囲内(コードが数字の場合には、一定の差分内)の発行済みコードがあるかどうかにより確認できる。そして、一定の範囲内の発行済みのコードがあれば、同一コードがある場合と同様にの処理を実行するようにしても良い。例えば、生成したコードが「3758」である場合に、「3759」や「3756」等が発行済みであればS1804に処理を戻して、別のコードを再発行する用にしても良い。
そしてS1807では、CPU206は、生成したコードを管理データとして登録して処理を終了する。図16(A)に示す管理データを使って示すと、コード1605に生成したコードを設定したデータの登録を行うこととなる。このようにすることで、生成したコードの文字数に基づいて、ユーザにより要求されたコードを求めることができる。
図19は、本実施形態4に係るデータ転送装置において生成したコードの管理データからデータを削除する処理を説明するフローチャートである。尚、この処理を実行するプログラムは、実行時にRAM208にロードされており、CPU206の制御の下に実行される。
まずS1901で、CPU206は、再利用が可能なコードのリストを取得してS1902へ処理を進める。この再利用が可能なコードのリストは、図16(A)に示す管理データを使って示すと、停止予定日時1608が現在の日時より過去、或いは、アクセス数1610が上限アクセス数1609に等しいか、大きい状態のデータである。即ち、S1901の処理は、既に有効でなくなっていて、既存のコードから削除すべきコードのリストを取得する処理である。このとき、発行日時1607から一定期間が経過しているという検索条件を追加することで、発行日時が最近のコードの再利用を抑えることができる。また最終アクセス日1611から一定期間が経過しているという検索条件を追加することで、そのコードが取得できなくなっているにも拘わらず、依然としてそのコードへのアクセスが発生している場合に、そのコードの再利用を抑えることができる。
次にS1902に進み、CPU206は、変数count(RAM208にある)に、S1901で取得したリストの総数を設定し、変数i(RAM208にある)に「0」を設定してS1903へ処理を進める。次にS1903に進み、CPU206は、変数iと変数countとを比較し、変数iが変数countより小さい場合はS1904に処理を進め、変数iが変数countより大きいか等しい場合は処理を終了する。S1904では、CPU206は、変数iの示すコードの一定の範囲内に再利用が可能なコードがないかどうかを判断する。ここで再利用が可能なコードが一定の範囲内にあればS1906に処理を進め、再利用が可能なコードが一定の範囲内になければS1905に処理を進める。例えば、変数iの示すデータのコードが「3758」であった場合、「3759」や「3756」等が再利用が可能なコードになっていればS1906に処理を進める。このようにすることで、一定の範囲内にあるコードがあれば、そのコードを削除して再利用可能にしないようにできる。これにより、一定の範囲内にあるコードが同時に削除されて再利用される度合い抑制することができる。
S1905では、CPU206は、変数iの示すコードと、そのコードに関連するデータを管理データから削除してS1906に処理を進める。S1906では、CPU206は、変数iをインクリメントしてS1903に処理を戻す。このようにすることで、発行済みで、有効でなくなったコードを再利用することができる。
尚、S1905で、管理データから、コードとその関連するデータを削除することにより、そのコードが生成したことのないデータと同列になりコードの再利用が可能となるようにした。しかし削除せずに、再利用が可能なコードを返すようにしてもよい。この場合は、図18のS1804のコード生成処理において、通知された再利用が可能なコードを、生成したコードとして利用することで再利用することができる。
尚、本実施形態4では、文字数で説明したが、例えば、コードで利用する文字種の数であっても同様に行える。また、文字数と文字種の数の両方同時に制御してもよい。
以上、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。上述の実施形態の一部を適宜組み合わせてもよい。
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。