(57)【特許請求の範囲】
【請求項１】
通信ネットワークを介して接続されるクライアント装置に対して配信する配信ファイルを記憶するデータ記憶部と、
一度に接続可能な前記クライアント装置の最大接続数および拡張可能な通信ポート数の最大拡張数を記憶する設定記憶部と、
配信ファイルを所定のファイル転送プロトコルで送信するためのオブジェクトを前記最大接続数および前記最大拡張数に応じて生成してプールに確保するとともに、使用後もオブジェクトを破棄せずにプールに確保するプール手段と、
配信ファイルの送信内容に合わせて接続パラメータを作成する配信手段と、
前記プール手段に対してオブジェクトの取得要求を実行し、前記プール手段から取得したオブジェクトに前記接続パラメータを設定して前記クライアント装置に接続し、前記クライアント装置に対し所定のファイル転送プロトコルによる配信ファイルの送信を行うファイル送信手段と、
各部の制御に用いられる情報処理部が同時に実行する複数の処理のスレッド数を前記最大接続数および前記最大拡張数に応じて抑制するとともに、前記スレッド数を前記通信ネットワークの最も狭帯域部分に合わせて抑制するスレッド制御手段と、
を備えるサーバ装置。
【請求項２】
前記スレッド制御手段は、配信ファイルの送信の際に使用する記憶部のヒープ領域を前記スレッド数に応じて抑制する、
請求項１記載のサーバ装置。
【請求項３】
コンピュータを、
通信ネットワークを介して接続されるクライアント装置に対して配信する配信ファイルを記憶するデータ記憶部と、
一度に接続可能な前記クライアント装置の最大接続数および拡張可能な通信ポート数の最大拡張数を記憶する設定記憶部と、
配信ファイルを所定のファイル転送プロトコルで送信するためのオブジェクトを前記最大接続数および前記最大拡張数に応じて生成してプールに確保するとともに、使用後もオブジェクトを破棄せずにプールに確保するプール手段と、
配信ファイルの送信内容に合わせて接続パラメータを作成する配信手段と、
前記プール手段に対してオブジェクトの取得要求を実行し、前記プール手段から取得したオブジェクトに前記接続パラメータを設定して前記クライアント装置に接続し、前記クライアント装置に対し所定のファイル転送プロトコルによる配信ファイルの送信を行うファイル送信手段と、
各部の制御に用いられる情報処理部が同時に実行する複数の処理のスレッド数を前記最大接続数および前記最大拡張数に応じて抑制するとともに、前記スレッド数を前記通信ネットワークの最も狭帯域部分に合わせて抑制するスレッド制御手段と、
として機能させるためのプログラム。
【請求項４】
前記スレッド制御手段は、配信ファイルの送信の際に使用する記憶部のヒープ領域を前記スレッド数に応じて抑制する、
請求項３記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、サーバ装置およびプログラムに関する。
【背景技術】
【０００２】
従来、サーバおよびそのサーバにネットワーク接続された複数のクライアントからなるクライアント−サーバシステムでは、データ送信の有無を所定の時刻あるいは時間間隔で各クライアントからサーバへ問合せし、データ送信の必要性があれば、サーバから各クライアントへデータを送信する。
【０００３】
このようなシステムにおけるデータ転送方式として、クライアント側にＦＴＰ（File  Transfer  Protocol）サーバの機能を形成してＦＴＰ送信を行う方法、ＨＴＴＰ（Hyper  Text  Transfer  Protocol）によりダウンロードする方法が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の多数のクライアント接続下におけるＦＴＰ送信では、ＦＴＰクライアントオブジェクトを多数作成することになり、サーバの処理速度が低下し、ネットワークオーバーヘッドを生じることになる。
【課題を解決するための手段】
【０００５】
実施形態のサーバ装置は、通信ネットワークを介して接続されるクライアント装置に対して配信する配信ファイルを記憶するデータ記憶部と、一度に接続可能な前記クライアント装置の最大接続数および拡張可能な通信ポート数の最大拡張数を記憶する設定記憶部と、配信ファイルを所定のファイル転送プロトコルで送信するためのオブジェクトを前記最大接続数および前記最大拡張数に応じて生成してプールに確保するとともに、使用後もオブジェクトを破棄せずにプールに確保するプール手段と、配信ファイルの送信内容に合わせて接続パラメータを作成する配信手段と、前記プール手段に対してオブジェクトの取得要求を実行し、前記プール手段から取得したオブジェクトに前記接続パラメータを設定して前記クライアント装置に接続し、前記クライアント装置に対し所定のファイル転送プロトコルによる配信ファイルの送信を行うファイル送信手段と、各部の制御に用いられる情報処理部が同時に実行する複数の処理のスレッド数を前記最大接続数および前記最大拡張数に応じて抑制するとともに、前記スレッド数を前記通信ネットワークの最も狭帯域部分に合わせて抑制するスレッド制御手段と、を備える。
【０００６】
実施形態のプログラムは、コンピュータを、通信ネットワークを介して接続されるクライアント装置に対して配信する配信ファイルを記憶するデータ記憶部と、一度に接続可能な前記クライアント装置の最大接続数および拡張可能な通信ポート数の最大拡張数を記憶する設定記憶部と、配信ファイルを所定のファイル転送プロトコルで送信するためのオブジェクトを前記最大接続数および前記最大拡張数に応じて生成してプールに確保するとともに、使用後もオブジェクトを破棄せずにプールに確保するプール手段と、配信ファイルの送信内容に合わせて接続パラメータを作成する配信手段と、前記プール手段に対してオブジェクトの取得要求を実行し、前記プール手段から取得したオブジェクトに前記接続パラメータを設定して前記クライアント装置に接続し、前記クライアント装置に対し所定のファイル転送プロトコルによる配信ファイルの送信を行うファイル送信手段と、各部の制御に用いられる情報処理部が同時に実行する複数の処理のスレッド数を前記最大接続数および前記最大拡張数に応じて抑制するとともに、前記スレッド数を前記通信ネットワークの最も狭帯域部分に合わせて抑制するスレッド制御手段と、として機能させる。
【図面の簡単な説明】
【０００７】
【図１】図１は、実施形態にかかる計量器コントロールサーバを含む計量システムのシステム構成を示す模式図である。
【図２】図２は、計量器コントロールサーバのハードウェア構成を示すブロック図である。
【図３】図３は、ＦＴＰファイル送信処理を実現する各種機能を示すブロック図である。
【図４】図４は、ＦＴＰクライアントプール部の機能を概略的に示す模式図である。
【図５】図５は、スレッド制御部の機能を概略的に示す模式図である。
【図６】図６は、スレッド制御部の別の機能を概略的に示す模式図である。
【図７】図７は、スレッド制御部のさらに別の機能を概略的に示す模式図である。
【図８】図８は、ＦＴＰクライアントプール部におけるプール処理の流れを示すフローチャートである。
【図９】図９は、ＦＴＰファイル送信部におけるＦＴＰファイル送信処理の流れを示すフローチャートである。
【発明を実施するための形態】
【０００８】
以下、本実施形態にかかる計量器コントロールサーバについて説明する。
【０００９】
図１は、実施形態にかかる計量器コントロールサーバを含む計量システムのシステム構成を示す模式図である。本実施形態のクライアント−サーバシステムである計量システム１００は、スーパーマーケット等で使用されるものであり、例えば本部に設置されるサーバ装置である計量器コントロールサーバ１０と、各店舗Ａ，Ｂ，Ｃに設置されるクライアント装置である複数の計量器１１とを通信ネットワーク１２を介して接続している。
【００１０】
計量器コントロールサーバ１０は、商品コード、商品名、単価等の商品マスタデータを各計量器１１に対して送信する。
【００１１】
計量器１１は、ラベルプリンタと電子秤とを併せ持つ。計量器１１は、ロードセル等の電子秤によって計量値を算出し、算出した計量値および計量器コントロールサーバ１０から送信された商品マスタデータに基づいて、ラベルプリンタによって商品ラベルを発行する。このラベルは商品の品名や価格等を含むものであり、加工された商品はこのラベルが貼り付けられて売場に陳列される。
【００１２】
次いで、計量器コントロールサーバ１０について説明する。図２は、計量器コントロールサーバ１０のハードウェア構成を示すブロック図である。計量器コントロールサーバ１０は、各部を駆動制御する制御部１０１を備える。制御部１０１は、各部を集中的に制御する情報処理部であるＣＰＵ（Central  Processing  Unit）１０２に、バスライン１０５を介して、制御プログラム等の固定的データを予め記憶するＲＯＭ（Read  Only  Memory）１０３と、各種データを書き換え自在に記憶してワークエリア等として機能するＲＡＭ（Random  Access  Memory）１０４とが接続されて構成されている。
【００１３】
制御部１０１には、バスライン１０５を介して、表示コントローラ１０６、キーボードコントローラ１０７、ＨＤＤ１０８、及び、通信インターフェース１０９が接続されている。
【００１４】
表示コントローラ１０６は、画像データに基づいてＬＣＤ１１０を駆動制御し、画像データに応じた画像をＬＣＤ１１０に表示させる。キーボードコントローラ１０７は、キーボード１１１からの入力信号を制御部１０１に取り込む。通信インターフェース１０９は、通信ネットワーク１２と接続されている。つまり、通信ネットワーク１２を介して各店舗に設置される複数の計量器１１とのデータ通信を可能とする。
【００１５】
ＨＤＤ１０８には、商品を特定する商品コードに対応付けて商品コード、商品名、単価等の商品マスタデータを記憶するデータ記憶部である商品マスタファイルＦ１が記憶されている。商品マスタファイルＦ１に記憶される商品マスタデータは、所定のタイミングで各店舗に設置される複数の計量器１１に対して配信ファイルとして配信される。
【００１６】
また、ＨＤＤ１０８には、後述するＦＴＰファイル送信処理に用いられる設定ファイルＦ２が記憶されている。設定ファイルＦ２は、計量器コントロールサーバ１０が一度に接続可能な計量器１１の最大接続数や、計量器コントロールサーバ１０に拡張可能な通信ポート数の最大拡張数を記憶する設定記憶部である。
【００１７】
また、ＨＤＤ１０８には、ＦＴＰ（File  Transfer  Protocol：ファイル転送プロトコル）サーバ機能を実現するための制御プログラムＰが記憶されている。制御プログラムＰがＲＡＭ１０４にロードされてＣＰＵ１０２に実行されることにより、計量器コントロールサーバ１０は、ＦＴＰサーバ機能を実現することができる。ＦＴＰサーバ機能は、ＦＴＰを利用してファイルの送受信を行なうものである。なお、各店舗に設置される複数の計量器１１は、ＦＴＰサーバとして機能する計量器コントロールサーバ１０に接続してＦＴＰによってファイルのやり取りを実行するＦＴＰクライアント機能を実現している。このような計量器コントロールサーバ１０のＦＴＰサーバ機能によって、各店舗に設置される複数の計量器１１に対する商品マスタファイルＦ１に記憶される商品マスタデータの配信が可能になっている。
【００１８】
次いで、計量器コントロールサーバ１０の制御部１０１が制御プログラムＰに従うことによって実現するＦＴＰサーバ機能によるＦＴＰファイル送信処理について詳述する。図３は、計量器コントロールサーバ１０のＦＴＰファイル送信処理を実現する各種機能を示すブロック図である。図３に示すように、計量器コントロールサーバ１０の制御部１０１で実行される制御プログラムＰは、図３に示すような各部（ファイル配信部２０、ＦＴＰファイル送信部３０、ＦＴＰクライアントプール部４０、スレッド制御部５０）を含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵ１０２がＨＤＤ１０８から制御プログラムＰを読み出して実行することにより上記各部がＲＡＭ１０４上にロードされ、配信手段であるファイル配信部２０、ファイル送信手段であるＦＴＰファイル送信部３０、プール手段であるＦＴＰクライアントプール部４０、スレッド制御手段であるスレッド制御部５０がＲＡＭ１０４上に生成されるようになっている。
【００１９】
ファイル配信部２０は、配信ファイルの送信内容に合わせてＦＴＰ接続パラメータを作成する。ＦＴＰ接続パラメータは、例えば、
・ＦＴＰサーバのＩＰアドレス
・ローカルフォルダのパス
・ローカルファイル名
・リモートファイル名
・リトライ回数
・リトライインターバル
・ＦＴＰ接続ユーザ名
・ＦＴＰ接続パスワード
・ＦＴＰ転送モード
などである。
【００２０】
ＦＴＰファイル送信部３０は、ＦＴＰクライアントプール部４０に対してファイル送信のためのＦＴＰクライアントオブジェクトの取得要求を実行する。ＦＴＰファイル送信部３０は、ＦＴＰクライアントプール部４０から取得したＦＴＰクライアントオブジェクトにＦＴＰファイル配信部２０で作成したＦＴＰ接続パラメータを設定して所望の計量器１１に接続し、計量器１１に対しＦＴＰによるファイル送信を行う。
【００２１】
図４は、ＦＴＰクライアントプール部４０の機能を概略的に示す模式図である。図４に示すように、ＦＴＰクライアントプール部４０は、例えば起動時に、設定ファイルＦ２から最大接続数および最大拡張数を取得して、最大接続数および最大拡張数に応じたＦＴＰクライアントオブジェクトをインスタンス（シングルトン）として生成してＲＡＭ１０４に形成したＦＴＰクライアントプール（以下、プールという）に確保（プーリング）する。つまり、インスタンスの生成にかかる時間は、インスタンスがプールを満たすまでの時間である。そして、ＦＴＰクライアントプール部４０は、ＦＴＰファイル送信部３０からのＦＴＰクライアントオブジェクトの取得要求に応じ、ＲＡＭ１０４にプールしているＦＴＰクライアントオブジェクトを提供する。
【００２２】
なお、ＲＡＭ１０４に形成したプールが空の状態でのＦＴＰファイル送信部３０からの取得要求は、ＦＴＰクライアントオブジェクトが解放されてプールに戻るまで待機する。但し、長時間無応答のＦＴＰクライアントオブジェクトが存在した場合、プール枯渇による送受信不能を避けるため、一時的にプールを拡張する。すなわち、図３に示すように拡張ＦＴＰクライアントオブジェクトを生成するようにしても良い。この場合、拡張数は設定ファイルＦ２に記憶されている最大拡張数までとする。
【００２３】
ＦＴＰクライアントプール部４０は、例えば最大接続数に“０”が設定されている場合には、プーリングは行わず、要求に応じ無限にＦＴＰクライアントオブジェクトを生成し提供する。また、ＦＴＰクライアントプール部４０は、例えば最大拡張数に“０”が設定されている場合には、長時間無応答クライアントが発生しても拡張は行わない。
【００２４】
なお、ＦＴＰクライアントプール部４０は、使用の終わったＦＴＰクライアントオブジェクトは破棄せず、再利用のため再びＲＡＭ１０４に形成したプールに戻して、確保（プーリング）する。
【００２５】
また、一度作成された拡張ＦＴＰクライアントオブジェクトはそのまま保持されるが、無応答のＦＴＰクライアントオブジェクトが存在しなくなると割り当てられなくなる。ただし、再び無応答ＦＴＰクライアントオブジェクトが発生すると再利用されることになる。
【００２６】
図５は、スレッド制御部５０の機能を概略的に示す模式図である。図５に示すように、スレッド制御部５０は、例えば起動時に、外部設定ファイルから最大接続数および最大拡張数を取得して、最大接続数および最大拡張数に応じてＣＰＵ１０２が同時に実行する複数の処理のスレッド数を抑制する。図５に示す例では、ＣＰＵ１０２の単位時間あたりの処理能力を“１０”とした場合に、処理のスレッド数を“４”に抑制している。このように同時接続数を抑制することで実行されるスレッドを削除し、タスクスイッチのコスト低減とより長時間のＣＰＵ時間を割り当て、１スレッドあたりの処理時間の短縮を図ることができる。
【００２７】
また、図６はスレッド制御部５０の別の機能を概略的に示す模式図である。図６に示すように、スレッド制御部５０は、最大接続数および最大拡張数に応じてＲＡＭ１０４における動的に確保可能であって配信ファイルの送信の際に使用するメモリの領域（ヒープ領域）を抑制する。図６に示す例では、処理のスレッド数を“４”に抑制しているのに合わせて、通信時に必要なメモリの領域（ヒープ領域）を“４”に抑制している。このようにスレッドを削減することにより、使用メモリの削減を図ることができる。
【００２８】
図７は、スレッド制御部５０のさらに別の機能を概略的に示す模式図である。図７に示すように、スレッド制御部５０は、通信ネットワーク１２の最も狭帯域の部分に合わせたクライアント数で接続を抑制する。図７に示す例では、通信ネットワーク１２の最も狭帯域の部分に合わせて、処理のスレッド数を“４”に抑制している。これにより、余計な帯域消費を最小限に抑え、１コネクションあたりの通信時間の短縮を図って帯域の使用効率を上げ、トータルの伝送速度向上を図ることができる。また、帯域不足による通信タイムアウトや再送処理の頻度の低減を図ることができる。
【００２９】
次に、ＦＴＰクライアントプール部４０におけるプール処理の流れについて図８のフローチャートを参照して説明する。図８に示すように、ＦＴＰクライアントプール部４０は、例えば起動時に、設定ファイルＦ２から最大接続数および最大拡張数を取得する初期処理を実行し（ステップＳ１）、最大接続数および最大拡張数に応じたＦＴＰクライアントオブジェクトをインスタンス（シングルトン）として生成してＲＡＭ１０４に形成したプールに確保（プーリング）する（ステップＳ２）。
【００３０】
次いで、ＦＴＰクライアントプール部４０は、ＦＴＰファイル送信部３０からのＦＴＰクライアントオブジェクトの取得要求に応じ（ステップＳ３のＹｅｓ）、ＲＡＭ１０４にプールしているＦＴＰクライアントオブジェクトを取得してＦＴＰファイル送信部３０に提供する（ステップＳ４）。
【００３１】
また、ＦＴＰクライアントプール部４０は、ＦＴＰファイル送信部３０からのＦＴＰクライアントオブジェクトの解放要求に応じ（ステップＳ５のＹｅｓ）、ＦＴＰの接続を切断して使用済みのＦＴＰクライアントオブジェクトを解放し、プールに戻す（ステップＳ６）。
【００３２】
次に、ＦＴＰファイル送信部３０におけるＦＴＰファイル送信処理の流れについて図９のフローチャートを参照して説明する。図９に示すように、ＦＴＰファイル送信部３０は、ファイル配信部２０で生成したＦＴＰ接続パラメータを保存する初期処理を実行した後（ステップＳ１１）、ＦＴＰクライアントプール部４０に対してファイル送信のためのＦＴＰクライアントオブジェクトの取得要求を実行し、ＦＴＰクライアントプール部４０からＦＴＰクライアントオブジェクトを取得する（ステップＳ１２）。
【００３３】
次に、ＦＴＰファイル送信部３０は、ＦＴＰクライアントプール部４０から取得したＦＴＰクライアントオブジェクトにＦＴＰファイル配信部２０で作成したＦＴＰ接続パラメータを設定して所望の計量器１１に接続し（ステップＳ１３）、計量器１１に対しＦＴＰによってファイルを送信する（ステップＳ１４）。
【００３４】
また、ＦＴＰファイル送信部３０は、計量器１１に対するＦＴＰによるファイル送信後、ＦＴＰクライアントプール部４０に対してＦＴＰクライアントオブジェクトの解放要求を送信する（ステップＳ１５）。この解放要求に応じ、ＦＴＰクライアントプール部４０は、ＦＴＰの接続を切断して使用済みのＦＴＰクライアントオブジェクトを解放し、プールに戻す。
【００３５】
このように、実施形態の計量器コントロールサーバ１０によれば、配信ファイルを所定のファイル転送プロトコルで送信するためのオブジェクトを一度に接続可能なクライアント装置の最大接続数および拡張可能な通信ポート数の最大拡張数に応じて生成してプールに確保するとともに、使用後もオブジェクトを破棄せずにプールに確保するようにしたので、ＦＴＰクライアントオブジェクトの生成を一定以上同時作成することを抑制しネットワークの過負荷を回避することで、トータル的に通信処理の高速化を図ることができる。
【００３６】
また、実施形態の計量器コントロールサーバ１０によれば、あらかじめＦＴＰクライアントオブジェクトを作成し、再利用することで、オブジェクト生成に必要な時間を省略することができ、また、破棄オブジェクトを低減し、ガベージコレクションのコストを下げることができる。
【００３７】
なお、本実施形態においては、計量器コントロールサーバ１０から計量器１１に対するファイル送信業務について説明したが、これに限るものではなく、計量器コントロールサーバ１０から計量器１１に対するファイル取得業務の際におけるＦＴＰによるファイル収集にも適用可能である。
【００３８】
なお、本実施形態の計量器コントロールサーバ１０で実行される制御プログラムＰは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【００３９】
また、本実施形態の計量器コントロールサーバ１０で実行される制御プログラムＰを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施形態の計量器コントロールサーバ１０で実行される制御プログラムＰをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
【００４０】
なお、本実施形態においては、サーバ装置である計量器コントロールサーバ１０とクライアント装置である複数の計量器１１とを例にしたクライアント−サーバシステムについて説明したが、これに限るものではなく、各種の装置（例えば、商品マスタファイルの配信を受けるＰＯＳ端末など）をクライアント装置として適用可能である。
【００４１】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００４２】
１０      サーバ装置
１２      通信ネットワーク
１１      クライアント装置
２０      配信手段
３０      ファイル送信手段
４０      プール手段
５０      スレッド制御手段
１０２    情報処理部
Ｆ１      データ記憶部
Ｆ２      設定記憶部
【先行技術文献】
【特許文献】
【００４３】
【特許文献１】特開平１０―９７４８３号公報
【図１】
0005570551.tif 000002
【図２】
0005570551.tif 000003
【図３】
0005570551.tif 000004
【図４】
0005570551.tif 000005
【図５】
0005570551.tif 000006
【図６】
0005570551.tif 000007
【図７】
0005570551.tif 000008
【図８】
0005570551.tif 000009
【図９】
0005570551.tif 000010