JP2005100343A - 接続管理機能を有するサーバ - Google Patents
接続管理機能を有するサーバ Download PDFInfo
- Publication number
- JP2005100343A JP2005100343A JP2004178551A JP2004178551A JP2005100343A JP 2005100343 A JP2005100343 A JP 2005100343A JP 2004178551 A JP2004178551 A JP 2004178551A JP 2004178551 A JP2004178551 A JP 2004178551A JP 2005100343 A JP2005100343 A JP 2005100343A
- Authority
- JP
- Japan
- Prior art keywords
- connection
- client
- identification information
- server
- determination
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
【課題】接続が失われたクライアントにより資源が無駄に使用されることのない接続管理機能を有するサーバを提供する。
【解決手段】クライアントが接続を要求したとき、サーバはそのクライアントを暫定的に接続し、固有ID・アプリケーションIDを受信し、クライアント情報テーブルから両IDが一致するクライアントを探し(S401)、存在する場合、そのクライアント情報を削除し(S403)、存在しない場合、クライアント情報テーブルが満杯か否を判断し(S404)、満杯の場合、最終アクセス日時が最も古いクライアントをクライアント情報テーブルから探す(S405)。最終アクセス日時が24時間以上前の場合、そのクライアント情報を削除する(S408)。そして、暫定的に接続したクライアントのクライアント情報をクライアント情報テーブルに登録する(S409)。
【選択図】図8
【解決手段】クライアントが接続を要求したとき、サーバはそのクライアントを暫定的に接続し、固有ID・アプリケーションIDを受信し、クライアント情報テーブルから両IDが一致するクライアントを探し(S401)、存在する場合、そのクライアント情報を削除し(S403)、存在しない場合、クライアント情報テーブルが満杯か否を判断し(S404)、満杯の場合、最終アクセス日時が最も古いクライアントをクライアント情報テーブルから探す(S405)。最終アクセス日時が24時間以上前の場合、そのクライアント情報を削除する(S408)。そして、暫定的に接続したクライアントのクライアント情報をクライアント情報テーブルに登録する(S409)。
【選択図】図8
Description
本発明は、接続管理機能を有するサーバに関し、さらに詳しくは、複数のクライアントに接続可能なサーバに関する。
クライアントサーバシステムにおいては、クライアントがサーバに接続を要求し、サーバがこの要求に応じてそのクライアントとの接続を確立する。ネットワークサービスの終了後は、クライアントがサーバに切断を要求し、サーバがこの要求に応じてそのクライアントを切断する。
しかし、アプリケーションプログラムの異常終了、突然の電源遮断、ネットワークコネクタの取り外しなど、クライアント側で何らかの異常が発生すると、突然、クライアントとの接続が失われることになる。このときにネットワークサービスが休止中であれば、サーバはクライアントとの接続が失われたことを認識することができない。そのため、サーバは上述した正常な切断処理を行うことができず、接続が失われたクライアントを接続されているものとして認識し続けることになる。その結果、サーバの資源が無駄に使用されるという問題があった。
この問題を解決する方法として、サーバがクライアントに定期的にpingコマンドを送信し、応答がない場合にはクライアントとの接続は失われたと認識する方法がある。また、クライアントがサーバに定期的に接続通知を送信し、この接続通知が一定時間以上来ない場合には、サーバはクライアントとの接続は失われたと認識する方法も考えられる。
しかし、これらの方法では、サーバ又はクライアントは定期的に接続を確認しなければならない。また、接続が失われてから接続を確認するまでの間、サーバの資源が無駄に使用されることに変わりはなく、また、新たな接続要求に応えることができないという問題もあった。
また、無線LAN(ローカルエリアネットワーク)を使用した接続では、外乱の影響により一時的に通信が途絶えている期間中に上述した接続確認が行われると、通信状態が回復すれば正常に動作するにもかかわらず、接続が失われたと誤って認識されるという問題もあった。
本発明の主な目的は、接続が失われたクライアントにより資源が無駄に使用されることのない接続管理機能を有するサーバを提供することである。
本発明のもう1つの目的は、接続が失われていないクライアントを誤って接続が失われたものとして認識することのないサーバを提供することである。
本発明によるサーバは、複数のクライアントに接続可能なサーバであって、接続情報テーブルと、満杯判断手段と、削除手段と、登録手段とを備える。接続情報テーブルは、複数のクライアントの識別情報を登録可能な複数のエントリを有する。満杯判断手段は、クライアントが接続を要求したとき、エントリの全てに識別情報が登録されているか否かを判断する。削除手段は、満杯判断手段による判断の結果、エントリの全てに識別情報が登録されている場合、その登録されている識別情報のいずれかを削除する。登録手段は、満杯判断手段による判断の結果、エントリのいずれかに識別情報が登録されていない場合、又は削除手段が識別情報を削除した場合、接続を要求したクライアントの識別情報を接続情報テーブルに登録する。ここでいうクライアントは、クライアント機器それ自体又はクライアント機器にインストールされたクライアントアプリケーションプログラムである。
このサーバでは、接続可能なクライアントの数が制限されており、接続情報テーブルによりクライアントの接続が管理される。クライアントが接続を要求したとき接続情報テーブルが満杯であれば、登録されている識別情報のいずれかが削除され、接続を要求したクライアントの識別情報が登録される。したがって、接続を要求した新しいクライアントが古いクライアントの代わりにサーバとの接続を確立することができる。その結果、接続が失われた古いクライアントによりサーバの資源が無駄に使用されることはない。また、接続を定期的に確認する方法と異なり、接続が失われていないクライアントを誤って接続が失われたものとして認識することはない。
好ましくは、サーバはさらに、検索手段を備える。検索手段は、接続情報テーブルを検索し、接続を要求したクライアントの識別情報と一致する識別情報が存在するか否かを判断する。検索手段による判断の結果、識別情報が存在する場合、削除手段はその識別情報を削除する。一方、識別情報が存在しない場合、満杯判断手段はエントリの全てに識別情報が登録されているか否かを判断する。
クライアント側で何らかの異常が発生し、接続が失われたクライアントが再びサーバに接続を要求した場合、そのクライアントの識別情報と一致する識別情報が接続情報テーブルに存在することになる。この場合、接続情報テーブルが満杯か否かに関係なく、その一致する識別情報が接続情報テーブルから削除される。したがって、接続が失われたクライアントであってもサーバとの接続を重複することなく再び確立することができる。
好ましくは、エントリの各々はさらに、対応するクライアントの最終アクセス日時を登録可能である。サーバはさらに、接続情報テーブルを検索し、最終アクセス日時が最も古いクライアントを特定する手段を備える。削除手段は、特定されたクライアントの識別情報を削除する。
この場合、サーバにアクセスしていない時間が最も長いクライアントが優先して切断される。したがって、比較的最近サーバにアクセスしたクライアントとの接続は維持される。
好ましくは、サーバはさらに、時期判断手段を備える。時期判断手段は、特定されたクライアントの最も古い最終アクセス日時が予め定められた時期よりも前か否かを判断する。時期判断手段による判断の結果、最も古い最終アクセス日時が予め定められた時期よりも前の場合、削除手段は、特定されたクライアントの識別情報を削除する。
この場合、サーバにアクセスしていない時間が最も長くかつ所定時間よりも長いクライアントが優先して切断される。したがって、サーバにアクセスしていない時間が最も長くても所定時間よりも短ければ、そのクライアントとの接続は維持される。
好ましくは、サーバはさらに、クライアントが接続を要求したとき、そのクライアントとの暫定的な接続を確立する手段と、時期判断手段による判断の結果、最も古い最終アクセス日時が予め定められた時期よりも後の場合、暫定的な接続を取り消す手段とを備える。
この場合、いずれのクライアントについてもサーバにアクセスしていない時間が所定時間よりも短いため、現在のクライアントとの接続は全て維持され、接続を要求したクライアントとの接続は確立されない。よって、接続可能なクライアントの数が制限される。
好ましくは、サーバはさらに、接続判断手段を備える。接続判断手段は、クライアントが要求した接続が最初か否かを判断する。検索手段は、接続判断手段による判断の結果、クライアントが要求した接続が最初の場合、接続を要求したクライアントの識別情報と一致する識別情報が存在するか否かを判断する。
この場合、クライアントが要求した接続が最初の場合だけ、そのクライアントの識別情報と一致する識別情報が削除される。そのため、クライアントとサーバと間に複数の接続が確立される。
好ましくは、識別情報は、クライアントの機器に特有の識別情報と、クライアントの機器にインストールされたアプリケーションに特有の識別情報とを含む。
この場合、1つのクライアントの機器に複数のアプリケーションがインストールされていても、各アプリケーションごとに接続を管理することができる。
本発明によるもう1つのサーバは、複数のクライアントに接続可能なサーバであって、接続情報テーブルと、検索手段と、削除手段と、登録手段とを備える。接続情報テーブルは、複数のクライアントの識別情報を登録可能な複数のエントリを有する。検索手段は、クライアントが接続を要求したとき、接続情報テーブルを検索し、その接続を要求したクライアントの識別情報と一致する識別情報が存在するか否かを判断する。削除手段は、検索手段による判断の結果、識別情報が存在する場合、その識別情報を削除する。登録手段は、削除手段が識別情報を削除した場合、接続を要求したクライアントの識別情報を接続情報テーブルに登録する。
このサーバでは、接続可能なクライアントの数が制限されており、接続情報テーブルによりクライアントの接続が管理される。クライアント側で何らかの異常が発生し、接続が失われたクライアントが再びサーバに接続を要求した場合、そのクライアントの識別情報と一致する識別情報が接続情報テーブルに存在することになる。この場合、その一致する識別情報が接続情報テーブルから削除される。したがって、接続が失われたクライアントであってもサーバとの接続を重複することなく再び確立することができる。その結果、接続が失われた古いクライアントによりサーバの資源が無駄に使用されることはない。また、接続を定期的に確認する方法と異なり、接続が失われていないクライアントを誤って接続が失われたものとして認識することはない。
以下、図面を参照し、本発明の実施の形態を詳しく説明する。図中同一又は相当部分には同一符号を付してその説明は繰り返さない。
[第1の実施の形態]
1.構成
図1を参照して、本発明の第1の実施の形態によるクライアントサーバシステム10は、サーバ機器SVと、複数のクライアント機器CL1〜CLnとを備える。サーバ機器SV及びクライアント機器CL1〜CLnは有線又は無線LAN11により相互に接続される。
1.構成
図1を参照して、本発明の第1の実施の形態によるクライアントサーバシステム10は、サーバ機器SVと、複数のクライアント機器CL1〜CLnとを備える。サーバ機器SV及びクライアント機器CL1〜CLnは有線又は無線LAN11により相互に接続される。
サーバ機器SVは、所定のサーバアプリケーションプログラムがインストールされたコンピュータである。サーバ機器とサーバアプリケーションプログラムとを特に区別することなく、単に「サーバ」と呼ぶこともある。
クライアント機器CL1〜CLnの各々は、複数のクライアントアプリケーションプログラム(以下「クライアントアプリ」という)がインストールされたコンピュータである。クライアント機器とクライアントアプリとを特に区別することなく、単に「クライアント」と呼ぶこともある。クライアント機器CL1〜CLnの各々は、複数のクライアントアプリを同時にかつ独立して実行させることが可能である。
図2を参照して、サーバ機器SVは、CPU(中央演算処理装置)12と、RAM(ランダムアクセスメモリ)やROM(リードオンリーメモリ)などのメモリ13と、ハードディスク14と、LANコントローラ15とを備える。
ハードディスク14には、接続情報テーブル17が格納される。接続情報テーブル17は、図3に示すように、複数のエントリ16を有する。各エントリ16には、サーバ機器SVに接続されているクライアントアプリに関する接続情報が登録される。エントリ16の数は、サーバ機器SVの容量に応じて決定される。本例では、サーバ機器SVに接続可能なクライアントアプリの数は「8個」と予め決定されている。
各エントリ16には、接続情報として、機器ID、アプリケーションID、最終アクセス日時、ソケット番号などが登録される。機器IDは、各クライアント機器CL1〜CLnに固有の識別情報で、たとえばネットワークインターフェースのMACアドレス又はこれから生成したデータ列である。アプリケーションIDは、各クライアントアプリに特有の識別情報である。同一クライアント機器内においては、同一アプリケーションIDを有する複数のクライアントアプリが存在することは許されない。したがって、機器ID及びアプリケーションIDの組み合わせにより唯一のクライアントアプリが特定され、他のクライアントアプリと区別される。最終アクセス日時は、クライアントアプリがサーバ機器SVにアクセスした最終の日時である。ソケット番号は、接続処理時に生成されるソケットの識別番号である。上述した各エントリ16の情報は、新規登録、更新及び消去が可能である。
たとえば図4に示すように、クライアントアプリCA1がクライアント機器CL1にインストールされ、サーバ機器SVに接続されている場合(接続1)、接続情報テーブル17のエントリ(接続1)には、クライアント機器CL1の機器ID(MID1)及びクライアントアプリCA1のアプリケーションID(AID1)が登録される。また、クライアントアプリCA1がクライアント機器CL2にインストールされ、サーバ機器SVに接続されている場合(接続2)、接続情報テーブル17のエントリ(接続2)には、クライアント機器CL2の機器ID(MID2)及びクライアントアプリCA1のアプリケーションID(AID1)が登録される。また、クライアントアプリCA1及びCA2がクライアント機器CL3にインストールされ、サーバ機器SVに接続されている場合(接続3及び4)、接続情報テーブル17のエントリ(接続3)には、クライアント機器CL3の機器ID(MID3)及びクライアントアプリCA1のアプリケーションID(AID1)が登録され、接続情報テーブル17のエントリ(接続4)には、クライアント機器CL3の機器ID(MID3)及びクライアントアプリCA2のアプリケーションID(AID2)が登録される。
サーバ機器SVには、クライアントアプリとの接続管理機能を有するアプリケーションプログラムがインストールされる。このプログラムは、図5に示した各ステップをサーバ機器SVに実行させる。
2.動作
次に、図5のフロー図を参照して、サーバ機器SVの主な動作を説明する。
次に、図5のフロー図を参照して、サーバ機器SVの主な動作を説明する。
最初に、サーバ機器SVは接続情報テーブル17を初期化する(S1)。具体的には、サーバ機器SVは接続情報テーブル17の全ての情報を消去し、8個のエントリ16全てを未接続状態にする。
続いて、サーバ機器SVはクライアントアプリからのアクセス待ちを開始する(S2)。具体的には、サーバ機器SVはクライアントアプリからコマンドが送信されて来るのを待つ。
サーバ機器SVは、接続要求コマンド、ID通知コマンド、動作要求コマンド、又は切断要求コマンドを受信すると(S3〜S6)、そのコマンドに応じた処理を実行する(S30〜S60)。
接続要求コマンドは、クライアントアプリがサーバ機器SVに対して接続を要求するために発行するコマンドである。ID通知コマンドは、接続要求コマンドの発行後、クライアントアプリがサーバ機器SVに対して機器ID及びアプリケーションIDを通知するために発行するコマンドである。動作要求コマンドは、クライアントアプリがサーバ機器SVに対して所望のサービスを要求するために発行するコマンドである。切断要求コマンドは、クライアントアプリがサーバ機器SVに対して切断を要求するために発行するコマンドである。
サーバ機器SVは、接続要求コマンドを受信したか否かを判断する(S3)。判断の結果、接続要求コマンドを受信した場合、サーバ機器SVは、接続要求コマンドを発行したクライアントアプリに対して暫定接続処理を実行する(S30)。詳細は後述する。
サーバ機器SVはまた、ID通知コマンドを受信したか否かを判断する(S4)。判断の結果、暫定接続を完了したクライアントアプリからID通知コマンドを受信した場合、サーバ機器SVは、ID通知コマンドを発行したクライアントアプリに対して本接続処理を実行する(S40)。詳細は後述する。
サーバ機器SVはまた、動作要求コマンドを受信したか否かを判断する(S5)。判断の結果、本接続を完了したクライアントアプリから動作要求コマンドを受信した場合、サーバ機器SVは、要求されたサービスをクライアントアプリに提供する(S50)。詳細は後述する。
サーバ機器SVはまた、切断要求コマンドを受信したか否かを判断する(S6)。判断の結果、本接続を完了したクライアントアプリから切断要求コマンドを受信した場合、切断処理を実行する(S60)。詳細は後述する。
2.1.暫定接続処理
次に、図6及び図7のフロー図を参照して、暫定接続処理(S30)の詳細を説明する。
次に、図6及び図7のフロー図を参照して、暫定接続処理(S30)の詳細を説明する。
図6を参照して、クライアントアプリは接続要求コマンドをサーバ機器SVに送信する(S11)。図5に示した通り、サーバ機器SVは接続要求コマンドを受信すると(S3)、暫定接続処理を実行する(S30)。
具体的には図7を参照して、サーバ機器SVは受信した接続要求コマンドを解析し(S301)、その解析結果に応じて接続要求コマンドを発行したクライアントアプリを接続するためのソケットを作成する(S302)。このとき、作成したソケットにソケット番号を割り当て記憶する。そして、サーバ機器SVは接続受付通知をそのクライアントアプリに返信する(S303)。
暫定接続処理は、クライアントアプリから送信されるID通知コマンドだけを受付可能にするために、そのクライアントアプリを暫定的に接続する処理である。したがって、仮に暫定的に接続されたクライアントアプリが動作要求コマンドをサーバ機器SVに送信したとしても、サーバ機器SVはこれを受け付けない。
2.2.本接続処理
次に、図6及び図8のフロー図を参照して、本接続処理(S40)の詳細を説明する。
次に、図6及び図8のフロー図を参照して、本接続処理(S40)の詳細を説明する。
図6を参照して、クライアントアプリはサーバ機器SVから接続受付通知を受信すると(S12)、機器ID及びアプリケーションIDを含むID通知コマンドをサーバ機器SVに送信する(S13)。図5に示した通り、サーバ機器SVはID通知コマンドを受信すると(S4)、本接続処理を実行する(S40)。
具体的には図8及び図9を参照して、サーバ機器SVは受信した機器ID及びアプリケーションIDを接続情報テーブル17の各エントリ16に登録された機器ID及びアプリケーションIDとそれぞれ比較し、両方が一致する接続を探す(S401)。
続いて、サーバ機器SVは機器ID及びアプリケーションIDの両方が一致する接続が存在するか否かを判断する(S402)。存在する場合は既に本接続処理を済ませたクライアントアプリが再び接続を要求したことを意味し、存在しない場合は未だ本接続処理を済ませていないクライアントアプリが接続を要求したことを意味する。
機器ID及びアプリケーションIDの両方が一致する接続が存在する場合、サーバ機器SVはその古い接続を切断し、そのエントリ内の接続情報を削除する(S403)。
その後、サーバ機器SVは暫定的に接続されたクライアントアプリの機器ID及びアプリケーションIDを接続情報テーブル17に登録し、かつ登録完了通知をそのクライアントアプリに送信する(S409)。再び図6を参照して、クライアントアプリは登録完了通知を受信すると(S16)、サーバ機器SVとの接続を完了したことになる(S17)。これにより、クライアントアプリはサーバ機器SVに動作要求コマンドを送信すれば所望のサービスを受けることができる。
一方、機器ID及びアプリケーションIDの両方が一致する接続が存在しない場合、サーバ機器SVは接続情報テーブル17が満杯か否かを判断する(S404)。具体的には、サーバ機器SVは接続情報テーブル17の全エントリに接続情報が登録されているか否かを判断する。
接続情報テーブル17が満杯でない場合、上記と同様に、サーバ機器SVは暫定的に接続されたクライアントアプリの機器ID及びアプリケーションIDを接続情報テーブル17に登録し、かつ登録完了通知をそのクライアントアプリに送信する(S409)。
一方、接続情報テーブル17が満杯の場合、サーバ機器SVは接続情報テーブル17の中から最終アクセス日時が最も古いクライアントアプリを探す(S405)。
続いて、サーバ機器SVはその最も古い最終アクセス日時が24時間以上前か否かを判断する(S406)。
最も古い最終アクセス日時が24時間以上経過していない場合、サーバ機器SVは暫定的に接続されたクライアントアプリに接続拒否通知を送信し、上記ステップS302で作成したソケットを消去して暫定接続を無効にする(S407)。再び図6を参照して、クライアントアプリは接続拒否通知を受信すると(S14)、サーバ機器SVとの接続に失敗することになる(S15)。
一方、最も古い最終アクセス日時が24時間以上経過している場合、サーバ機器SVは最終アクセス日時が最も古いクライアントアプリとの接続を切断し、そのエントリ内の接続情報を削除する(S408)。これによりエントリに空きができ、新たに接続情報を登録することができる。
その後、上記と同様に、サーバ機器SVは暫定的に接続されたクライアントアプリの機器ID及びアプリケーションIDを接続情報テーブル17に登録し、かつ登録完了通知をそのクライアントアプリに送信する(S409)。
続いて、サーバ機器SVはそのクライアントアプリの最終アクセス日時を現在の日時に設定する(S410)。
2.3.サービス処理
次に、図10のフロー図を参照して、サービス処理(S50)の詳細を説明する。
次に、図10のフロー図を参照して、サービス処理(S50)の詳細を説明する。
図5に示した通り、サーバ機器SVは動作要求コマンドを受信すると(S5)、サービス処理を実行する(S50)。具体的には、サーバ機器SVは受信した動作要求コマンドを解析し(S501)、それに応じた所定の動作を行うことにより要求されたサービスをクライアントアプリに提供する(S502)。
続いて、サーバ機器SVはそのクライアントアプリの最終アクセス日時を更新する(S503)。
2.4.切断処理
次に、図11のフロー図を参照して、切断処理(S60)の詳細を説明する。
次に、図11のフロー図を参照して、切断処理(S60)の詳細を説明する。
図5に示した通り、サーバ機器SVは切断要求コマンドを受信すると(S6)、切断処理を実行する(S60)。具体的には、サーバ機器SVは受信した切断要求コマンドを解析し(S601)、クライアントアプリとの接続を切断する(S602)。
続いて、サーバ機器SVはそのクライアントアプリの接続情報を削除する(S603)。
3.効果
以上のように本第1の実施の形態によれば、サーバ機器SVは接続情報テーブル17により接続中のクライアントアプリの機器ID及びアプリケーションIDを管理しているため、クライアントアプリ側で何らかの異常が発生し、クライアントアプリとの接続が失われ、そのクライアントアプリが再び接続を要求してきたとしても、その機器ID及びアプリケーションIDが一致する接続を接続情報テーブル17から探しているため、その接続を要求してきたクライアントアプリが接続を失ったクライアントアプリであることを認識することができる。そして、サーバ機器SVはそのクライアントアプリとの古い接続を切断し、接続情報テーブル17から古い接続情報を削除した上で、新しい接続情報を接続情報テーブル17に登録しているため、サーバ機器SVの資源が無駄に使用されることはない。
以上のように本第1の実施の形態によれば、サーバ機器SVは接続情報テーブル17により接続中のクライアントアプリの機器ID及びアプリケーションIDを管理しているため、クライアントアプリ側で何らかの異常が発生し、クライアントアプリとの接続が失われ、そのクライアントアプリが再び接続を要求してきたとしても、その機器ID及びアプリケーションIDが一致する接続を接続情報テーブル17から探しているため、その接続を要求してきたクライアントアプリが接続を失ったクライアントアプリであることを認識することができる。そして、サーバ機器SVはそのクライアントアプリとの古い接続を切断し、接続情報テーブル17から古い接続情報を削除した上で、新しい接続情報を接続情報テーブル17に登録しているため、サーバ機器SVの資源が無駄に使用されることはない。
また、サーバ機器SVは接続情報テーブル17が満杯か否かを判断し、満杯の場合、最終アクセス日時が最も古くかつ24時間以上前のクライアントアプリとの接続を切断し、その接続情報を接続情報テーブル17から削除した上で、新しい接続情報を接続情報テーブル17に登録しているため、24時間以上もアクセスのないクライアントアプリよりも優先して、新たに接続を要求してきたクライアントアプリとの接続を確立することができる。一方、全てのクライアントアプリの最終アクセス日時が24時間以内の場合、現在のクライアントとの接続は全て維持される。接続を要求したクライアントとの接続は確立されないが、接続可能なクライアントの数は8個以内に制限される。
[第2の実施の形態]
上記第1の実施の形態では、1つのクライアントアプリは同一サーバ機器に対して1つの接続しか確立することができない。もし1つのクライアントアプリが既に確立している接続に加え、さらにもう1つの接続を確立するためにサーバ機器に接続を要求したとすると、サーバ機器は既に確立している接続を切断してしまうからである。本第2の実施の形態は、1つのクライアントアプリが同一サーバ機器に対して複数の接続を確立できるようにしたものである。
上記第1の実施の形態では、1つのクライアントアプリは同一サーバ機器に対して1つの接続しか確立することができない。もし1つのクライアントアプリが既に確立している接続に加え、さらにもう1つの接続を確立するためにサーバ機器に接続を要求したとすると、サーバ機器は既に確立している接続を切断してしまうからである。本第2の実施の形態は、1つのクライアントアプリが同一サーバ機器に対して複数の接続を確立できるようにしたものである。
図12に示すように、第2の実施の形態における接続情報テーブル17の各エントリ16には、図3に示した情報に加え、接続IDが登録される。接続IDは、1つクライアントアプリと1つのサーバ機器との間で確立される複数の接続にそれぞれ付与される識別情報である。
たとえば図13に示した例では、クライアント機器CL1にインストールされたクライアントアプリCA1とサーバ機器SVとの間に、1つの主接続(接続1)と2つの副接続(接続2,3)とが確立されている。また、クライアント機器CL3にインストールされたクライアントアプリCA2とサーバ機器SVとの間に、1つの主接続(接続4)と1つの副接続(接続5)とが確立されている。
主接続は、たとえばサーバ機器SVに蓄積されているコンテンツのライブラリ情報(ファイル名、ディレクトリなど)をクライアントアプリCA1,CA2がサーバ機器SVから取得するための接続である。1つの副接続は、たとえばサーバ機器SVからクライアントアプリCA1,CA2にオーディオデータをストリーム転送するための接続である。もう1つの副接続は、たとえばサーバ機器SVからクライアントアプリCA1に静止画を転送するための接続である。まず主接続が確立され、次に副接続が確立される。
この場合、接続情報テーブル17の接続1〜3の3つのエントリ16には、同じ機器ID(MID1)及びアプリケーションID(AID1)が登録される。ただし、接続1のエントリ16には接続ID(CID0)が登録され、接続2のエントリ16には接続ID(CID1)が登録され、接続3のエントリ16には接続ID(CID2)が登録される。また、接続情報テーブル17の接続4及び5の2つのエントリ16には、同じ機器ID(MID3)及びアプリケーションID(AID2)が登録される。ただし、接続4のエントリ16には接続ID(CID0)が登録され、接続5のエントリ16には接続ID(CID1)が登録される。
次に、主接続及び副接続を確立するためのクライアントアプリの動作を図14及び図15を参照して説明する。図15に示したフロー図では、図6に示したフロー図にステップS18〜S20が追加されている。
最初にクライアントアプリは主接続の確立を試みる(S21)。接続処理は図6に示した第1の実施の形態とほぼ同じであるが、図15に示すように主接続の場合(S18でYES)、クライアントアプリは接続IDを「0」に設定する(S19)。そして、クライアントアプリは、機器ID及びアプリケーションID以外に、接続ID(CID0)を含むID通知コマンドをサーバ機器SVに送信する(S13)。
主接続に成功すると(S22)、クライアントアプリはその主接続を用いてサーバ機器SVからライブラリ情報を取得する(S23)。
続いて、ユーザが所望のコンテンツを選択すると(S24)、クライアントアプリはストリーム転送用の副接続の確立を試みる(S25)。接続処理は図6に示した第1の実施の形態とほぼ同じであるが、図15に示すように副接続の場合(S18でNO)、クライアントアプリは接続IDをインクリメントする(S20)。そして、クライアントアプリは、機器ID及びアプリケーションID以外に、接続ID(CID1)を含むID通知コマンドをサーバ機器SVに送信する(S13)。
副接続に成功すると(S26)、クライアントアプリはその副接続を用いてサーバ機器SVからオーディオデータをストリーム転送しながら音楽を再生する(S27)。再生が完了又は強制的に停止されると(S28)、クライアントアプリはその副接続を切断する(S29)。
次に、上記主接続及び副接続に対応するサーバ機器SVの動作を図16を参照して説明する。図16に示したフロー図では、図8に示したフロー図にステップS400,S411〜S414が追加されている。
上記ステップS13でクライアントアプリから送信されたID通知コマンドに応答して、クライアントアプリが要求している接続は主接続か否かをサーバ機器SVが判断する(S400)。具体的には、サーバ機器SVはID通知コマンドに含まれる接続IDが「0」か否かを判断する。主接続(CID0)の場合は次のステップS401に進み、副接続(CID1,CID2)の場合はステップS401及びS402をスキップしてステップS404に進む。
主接続の場合、つまりクライアントアプリがサーバ機器SVに最初の接続を要求して来ている場合、サーバ機器SVはID通知コマンドに含まれる機器ID及びアプリケーションIDを接続情報テーブル17の各エントリ16に登録された機器ID及びアプリケーションIDとそれぞれ比較し、両方が一致する主接続を探す(S401)。両方が一致する主接続が存在する場合(S402でYES)、サーバ機器SVはその古い主接続を切断し、そのエントリ内の接続情報を削除する(S403)。
続いて、サーバ機器SVは接続IDをインクリメントし(S411)、ステップS401に戻る。すなわち、サーバ機器SVは機器ID及びアプリケーションIDの両方が一致する副接続を探し(S401)、両方が一致する副接続が存在する場合(S402でYES)、サーバ機器SVはその副接続を切断し、そのエントリ内の接続情報を削除する(S403)。
要するに、既に主接続処理を済ませたクライアントアプリが再び主接続を要求して来たとき、サーバ機器SVはその古い主接続を接続情報テーブル17から削除し、さらにその主接続に従属する全ての副接続を接続情報テーブル17から削除する。
次に、サーバ機器SVは接続情報テーブル17が満杯か否かを判断し(S404)、満杯の場合、再びクライアントアプリが要求している接続が主接続か否かを判断する(S412)。主接続(CID0)の場合は次のステップS405に進み、副接続(CID1,CID2)の場合はステップS407に進む。
主接続の場合(S412でYES)、サーバ機器SVは、最終アクセス日時が最も古く24時間以上経過している主接続を接続情報テーブル17から削除した後(S408)、その削除した主接続と機器ID及びアプリケーションIDの両方が一致する接続(副接続)が存在するか否かを判断する(S413)。存在する場合(S413でYES)、サーバ機器SVはその一致する接続(副接続)を接続情報テーブル17から削除する(S414)。そして、サーバ機器SVは接続IDをインクリメントし(S415)、ステップS413に戻る。その結果、サーバ機器SVは、削除した主接続に従属する全ての副接続を接続情報テーブル17から削除する。
その後、サーバ機器SVは暫定的に接続されたクライアントアプリの機器ID及びアプリケーションIDを接続情報テーブル17に登録し、かつ登録完了通知をそのクライアントアプリに送信し(S409)、そのクライアントアプリの最終アクセス日時を現在の日時に設定する(S410)。
一方、クライアントアプリが要求している接続が副接続の場合(S412でNO)、サーバ機器SVは暫定的に接続されたクライアントアプリに接続拒否通知を送信し、上記ステップS302で作成したソケットを消去して暫定接続を無効にする(S407)。
以上のように本第2の実施の形態によれば、クライアントアプリが要求している接続が主接続か否かを判断し(S401)、主接続の場合だけ機器ID及びアプリケーションIDが一致する接続を削除し(S403)、副接続の場合は、たとえ機器ID及びアプリケーションIDが一致する接続が存在していてもその接続を削除しない。そのため、1つのクライアントアプリと1つのサーバ機器との間に、主接続に加え、副接続を確立することができる。
なお、上記第1及び第2の実施の形態では、エントリ16の数は8個であるが、この数はサーバ機器SVの容量に応じて任意に設定、変更することが可能である。また、クライアントアプリがサーバ機器SVにアクセスしていない時間が24時間以上であるときそのクライアントアプリとの接続を切断しているが、この時間も任意に設定、変更することが可能である。また、クライアント機器CL1〜CLnの各々にクライアントアプリが複数インストールされているが、1つだけインストールされていてもよい。この場合、アプリケーションIDは不要である。
以上、本発明の実施の形態を説明したが、上述した実施の形態は本発明を実施するための例示に過ぎない。よって、本発明は上述した実施の形態に限定されることなく、その趣旨を逸脱しない範囲内で上述した実施の形態を適宜変形して実施することが可能である。
本発明による接続管理機能を有するサーバは、たとえば、多数の音楽コンテンツを蓄積したサーバと、サーバから配信された音楽コンテンツに基づいて音楽を再生するオーディオクライアントとを備えたネットワークオーディオシステムに利用可能である。
10 クライアントサーバシステム
16 エントリ
CL1-CLn クライアント機器
SV サーバ機器
16 エントリ
CL1-CLn クライアント機器
SV サーバ機器
Claims (10)
- 複数のクライアントに接続可能なサーバであって、
前記複数のクライアントの識別情報を登録可能な複数のエントリを有する接続情報テーブルと、
前記クライアントが接続を要求したとき、前記エントリの全てに識別情報が登録されているか否かを判断する満杯判断手段と、
前記満杯判断手段による判断の結果、前記エントリの全てに識別情報が登録されている場合、その登録されている識別情報のいずれかを削除する削除手段と、
前記満杯判断手段による判断の結果、前記エントリのいずれかに識別情報が登録されていない場合、又は前記削除手段が識別情報を削除した場合、前記接続を要求したクライアントの識別情報を前記接続情報テーブルに登録する登録手段とを備えたことを特徴とする接続管理機能を有するサーバ。 - 請求項1に記載のサーバであってさらに、
前記接続情報テーブルを検索し、前記接続を要求したクライアントの識別情報と一致する識別情報が存在するか否かを判断する検索手段を備え、
前記検索手段による判断の結果、前記識別情報が存在する場合、前記削除手段は、その識別情報を削除し、
前記検索手段による判断の結果、前記識別情報が存在しない場合、前記満杯判断手段は、前記エントリの全てに識別情報が登録されているか否かを判断することを特徴とする接続管理機能を有するサーバ。 - 請求項1又は請求項2に記載のサーバであって、
前記エントリの各々はさらに、対応するクライアントの最終アクセス日時を登録可能で、
前記サーバはさらに、
前記接続情報テーブルを検索し、前記最終アクセス日時が最も古いクライアントを特定する手段を備え、
前記削除手段は、前記特定されたクライアントの識別情報を削除することを特徴とする接続管理機能を有するサーバ。 - 請求項3に記載のサーバであってさらに、
前記特定されたクライアントの最も古い最終アクセス日時が予め定められた時期よりも前か否かを判断する時期判断手段を備え、
前記時期判断手段による判断の結果、前記最も古い最終アクセス日時が前記予め定められた時期よりも前の場合、前記削除手段は、前記特定されたクライアントの識別情報を削除することを特徴とする接続管理機能を有するサーバ。 - 請求項4に記載のサーバであってさらに、
前記クライアントが接続を要求したとき、そのクライアントとの暫定的な接続を確立する手段と、
前記時期判断手段による判断の結果、前記最も古い最終アクセス日時が前記予め定められた時期よりも後の場合、前記暫定的な接続を取り消す手段とを備えたことを特徴とする接続管理機能を有するサーバ。 - 請求項2に記載のサーバであってさらに、
前記クライアントが要求した接続が最初か否かを判断する接続判断手段を備え、
前記検索手段は、前記接続判断手段による判断の結果、前記クライアントが要求した接続が最初の場合、前記接続を要求したクライアントの識別情報と一致する識別情報が存在するか否かを判断することを特徴とする接続管理機能を有するサーバ。 - 請求項1〜請求項6のいずれか1項に記載のサーバであって、
前記識別情報は、前記クライアントの機器に特有の識別情報と、前記クライアントの機器にインストールされたアプリケーションに特有の識別情報とを含むことを特徴とする接続管理機能を有するサーバ。 - 複数のクライアントに接続可能なサーバであって、
前記複数のクライアントの識別情報を登録可能な複数のエントリを有する接続情報テーブルと、
前記クライアントが接続を要求したとき、前記接続情報テーブルを検索し、その接続を要求したクライアントの識別情報と一致する識別情報が存在するか否かを判断する検索手段と、
前記検索手段による判断の結果、前記識別情報が存在する場合、その識別情報を削除する削除手段と、
前記削除手段が識別情報を削除した場合、前記接続を要求したクライアントの識別情報を前記接続情報テーブルに登録する登録手段とを備えたことを特徴とする接続管理機能を有するサーバ。 - 請求項8に記載のサーバであってさらに、
前記クライアントが要求した接続が最初か否かを判断する接続判断手段を備え、
前記検索手段は、前記接続判断手段による判断の結果、前記クライアントが要求した接続が最初の場合、前記接続を要求したクライアントの識別情報と一致する識別情報が存在するか否かを判断することを特徴とする接続管理機能を有するサーバ。 - 請求項1〜請求項9のいずれか1項に記載のサーバとしてコンピュータを機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004178551A JP2005100343A (ja) | 2003-09-02 | 2004-06-16 | 接続管理機能を有するサーバ |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003309582 | 2003-09-02 | ||
JP2004178551A JP2005100343A (ja) | 2003-09-02 | 2004-06-16 | 接続管理機能を有するサーバ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005100343A true JP2005100343A (ja) | 2005-04-14 |
Family
ID=34467494
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004178551A Pending JP2005100343A (ja) | 2003-09-02 | 2004-06-16 | 接続管理機能を有するサーバ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005100343A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008250505A (ja) * | 2007-03-29 | 2008-10-16 | Nomura Research Institute Ltd | 通信接続管理装置 |
JP2013138313A (ja) * | 2011-12-28 | 2013-07-11 | Canon Inc | 撮像装置およびその制御方法 |
US9348548B2 (en) | 2013-11-01 | 2016-05-24 | Seiko Epson Corporation | Print control system |
US9542133B2 (en) | 2013-11-01 | 2017-01-10 | Seiko Epson Corporation | Print control system and print control method |
-
2004
- 2004-06-16 JP JP2004178551A patent/JP2005100343A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008250505A (ja) * | 2007-03-29 | 2008-10-16 | Nomura Research Institute Ltd | 通信接続管理装置 |
JP2013138313A (ja) * | 2011-12-28 | 2013-07-11 | Canon Inc | 撮像装置およびその制御方法 |
US9348548B2 (en) | 2013-11-01 | 2016-05-24 | Seiko Epson Corporation | Print control system |
US9542133B2 (en) | 2013-11-01 | 2017-01-10 | Seiko Epson Corporation | Print control system and print control method |
US9804809B2 (en) | 2013-11-01 | 2017-10-31 | Seiko Epson Corporation | Print control system |
US10091388B2 (en) | 2013-11-01 | 2018-10-02 | Seiko Epson Corporation | Print control system and print control method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8316133B2 (en) | Thin client system using session managing server and session managing method | |
US9407703B2 (en) | Connection management system, and a method for linking connection management server in thin client system | |
US8195764B2 (en) | Information delivery system, delivery request program, transfer program, delivery program, and the like | |
JP4794143B2 (ja) | 通知ボンドを使用してキャッシュオブジェクトを管理するためのシステムおよび方法 | |
US8271625B2 (en) | Method and apparatus for synchronizing contents of home network devices | |
US20040024912A1 (en) | Device-sharing system, device administration terminal, gateway terminal, device, terminal program and device program, and method for providing a device-sharing service | |
KR102038527B1 (ko) | 분산 클러스터 관리 시스템 및 그 방법 | |
US20040054763A1 (en) | Method for minimizing connection time for data synchronization | |
JP3964266B2 (ja) | 接続支援サーバ、端末、接続支援システム、接続支援方法、通信プログラム、および接続支援プログラム | |
JP2018515850A (ja) | データ・コピー方法及びデバイス | |
CN111046008A (zh) | 一种文件实时同步分发系统及方法 | |
US20160205278A1 (en) | Information processing apparatus, system, and control method for information processing apparatus | |
CN103297448B (zh) | 私有云存储的融合方法及系统 | |
JP2004007081A (ja) | クライアント接続管理システム、アクセスポイント管理装置、プログラム及びクライアント接続管理方法 | |
JP4550604B2 (ja) | 設定情報同期プログラム | |
JP2000020430A (ja) | 通信制御プログラムを格納した記録媒体、通信制御方法、通信制御装置 | |
JP2005100343A (ja) | 接続管理機能を有するサーバ | |
JP2004364190A (ja) | 通信装置およびその装置を実現するためのプログラム | |
JP2006227763A (ja) | データ共有システム、データ共有方法及びプログラム | |
JP2009031898A (ja) | 情報退避システム、サーバ、サーバプログラム、クライアント及びクライアントプログラム | |
JP2007258814A (ja) | ネットワーク疎通監視システム、ネットワーク疎通監視方法、中央装置、中継装置及びコンピュータプログラム | |
JP2007249659A (ja) | システム切替方法、その計算機システム及びプログラム | |
JP2001092641A (ja) | ソフトウェアインストールシステム | |
JP2001223730A (ja) | ゲートウェイ装置および記録媒体 | |
JP2000040025A (ja) | デ―タベ―ス管理装置、および、そのプログラムが記録された記録媒体 |