(58)【調査した分野】(Int.Cl.,DB名)
電子機器が接続される機器インタフェース部と、通信モジュールが接続される通信インタフェース部と、メモリおよびプロセッサユニットを有し前記機器インタフェース部および前記通信部が接続された主制御部とを備え、
前記主制御部は、
前記電子機器から前記機器インタフェースを介して出力されたデータを受け付け、前記通信インタフェース部に接続された通信モジュールを制御して当該データを送信する機能と、
前記電子機器によるデータの出力頻度を監視する機能と
を備え、
前記出力頻度の監視結果をもとに、データの出力頻度が予め設定したしきい値より高い時間帯では、前記電子機器から出力されたデータを受け取って一旦蓄積すると共に、最後にデータを受け取ったタイミングから予め設定した一定時間以内に当該蓄積されたデータを一括して転送し、データの出力頻度が前記しきい値より低い時間帯では、前記電子機器から出力されたデータを蓄積せずにリアルタイムで転送することを特徴とするデータ転送デバイス。
電子機器が接続される機器インタフェース部と、通信モジュールが接続される通信インタフェース部と、メモリおよびプロセッサユニットを有し前記機器インタフェース部および前記通信部が接続された主制御部とを備えるデータ転送デバイスにおけるデータ転送方法であって、
前記主制御部において、前記電子機器から前記機器インタフェースを介して出力されたデータを受け付け、前記通信インタフェース部に接続された通信モジュールを制御して当該データを送信する工程と、
前記主制御部において、前記電子機器によるデータの出力頻度を監視する工程と
を備え、
前記データを送信する工程において、前記主制御部は、前記データの出力頻度を監視する工程における前記出力頻度の監視結果をもとに、データの出力頻度が予め設定したしきい値より高い時間帯では、前記電子機器から出力されたデータを受け取って一旦蓄積すると共に、最後にデータを受け取ったタイミングから予め設定した一定時間以内に当該蓄積されたデータを一括して転送し、データの出力頻度が前記しきい値より低い時間帯では、前記電子機器から出力されたデータを蓄積せずにリアルタイムで転送することを特徴とするデータ転送方法。
【発明を実施するための形態】
【0016】
以下、図面を参照してこの発明の実施形態を説明する。
[一実施形態]
(構成)
図1は、この発明の一実施形態に係るデータ転送デバイスのハードウェア構成の第1の実施例を示すブロック図である。
このデータ転送デバイス100Aのハードウェアは、主として、USB(Universal Serial Bus)インタフェース(USB I/F)101と、USBコントローラ102と、マイクロコントローラ103と、USBインタフェース(USB I/F)108とから構成されている。このデータ転送デバイス100Aは、USB I/F101および108を筐体外に露出させ、その他の要素を筐体内に収容した構成となっている。
【0017】
USB I/F101は、例えばプラグ型のUSB端子からなる。このUSB I/F101は、USBホストとしての機能を有するタイムレコーダ等の電子機器に設けられたソケット型のUSB端子に、直接或いはUSBケーブルを介して接続される。USBコントローラ102は、独立した1個の半導体チップにより構成され、USB I/F101を用いた通信を制御するために、ホストからマスストレージクラスのデバイスとして認識されるためのUSBディスクリプタを保持している。
【0018】
一方、USB I/F108は、例えばソケット型のUSB端子からなる。このUSB I/F108には、通信モジュールとしてのモデム109が、直接又はUSBケーブルを介して接続される。モデム109は、外付けタイプの独立した機器からなり、例えばUSBインタフェースを備えた3Gモデムからなる。そして、データ転送デバイス100AからUSB I/F108を介して出力されたコマンドを受信すると、内蔵された通信制御部の制御の下で、アンテナ109を介して移動体通信網に対し接続して通信を行う機能を有する。
【0019】
マイクロコントローラ103は、中央処理ユニット(Central Processing Unit;CPU)104と、メモリ105と、タイマ106と、USBコントローラ107とを有している。メモリ105は、プログラム等が格納されたROMと、プログラムの実行時に利用されるRAMと、データ等の格納に利用される随時書込み及び読み出しが可能な不揮発性メモリからなるFlashROMとから構成されている。CPU104は、上記メモリ105のROMに格納されたプログラムを実行することにより、USB I/F101、108に接続された機器との間で通信を行い、後述する動作を実現する。タイマ106は、マイクロコントローラ103による時間計測を可能にするためのもので、CPU104に対して一定の時間間隔で割り込み信号を発生する。USBコントローラ107は、後述するUSB I/F108を用いた通信を制御する。
【0020】
なお、以上述べた
図1の構成では、データ転送デバイス100Aに対し独立するモデム110をUSB I/F108を使用して外付けする場合を例にとって説明した。しかし、それに限らず、
図2に例示するようにモデム110の機能をデータ転送デバイス100B内に内蔵するように構成してもよい。
【0021】
図3は、マイクロコントローラ103に実装されたソフトウェアの構成を示すブロック図である。
図3に示すように、マイクロコントローラ103に実装されたソフトウェアは、主としてRTOS(Real-Time Operating System)131と、メイン制御プログラム132と、モデム制御プログラム133と、HTTP Client134と、TCP/IPプロトコルスタック135と、USBプロトコルスタック136と、USB I/Fアクセスコード140,141とから構成されている。
【0022】
RTOS101は、マイクロコントローラ103にコンピュータとしての基本的な機能を提供すると共に、処理時間が一定範囲内となることが予測可能なソフトウェア実行環境を提供する。メイン制御プログラム132は、後述するようにデータ転送デバイス100Aを動作させるためのソフトウェアであり、モデム110を介して接続されるサーバや通信端末等のアドレス情報および当該サーバにログインするための認証情報等が保持されている。
【0023】
モデム制御プログラム133は、モデム110を制御するためのデバイスドライバとしての機能も有する。
【0024】
HTTP Client134は、メイン制御プログラム132にHTTP通信のクライアントとしての機能を提供するためのモジュールである。TCP/IPプロトコルスタック135は、PPP(Point-to-Point Protocol)、IP(Internet Protocol)、TCP(Transmission Control Protocol)、UDP(User Datagram Protocol)、Socket及びDNSといった各種通信プロトコルを実行するためのモジュールが集合したものである。
【0025】
USBプロトコルスタック136は、USBデバイスとしての電子機器およびモデム110と通信するための機能をメイン制御プログラム132に提供するもので、USB Mass Storage Device Class137、USB Deviceドライバ139、USB CDC Host Class138およびUSB Hostドライバ140等のモジュールが集合したものである。
【0026】
USB Deviceドライバ139はUSBデバイスとしての共通な機能を実現し、USB Mass Storage Device137はUSBマスストレージデバイスとしての機能を実現する。また、USB Hostドライバ140はUSBホストとしての共通な機能を実現し、USB CDC Host Class138はUSB通信デバイスに対するホストとしての機能を提供する。
USB I/Fアクセスコード141,142は、それぞれUSBコントローラ102,107を制御するレジスタにアクセスするためのコードである。
【0027】
以上のようなソフトウェアを実装することにより、マイクロコントローラ103は、データ転送デバイス100Aの各部を制御して後述する動作を実現する。すなわち、データ転送デバイス100Aは、USB I/F101に接続された電子機器によりUSBマスストレージとして認識され、当該電子機器内から出力されたデータを受信して保持する。そして、USB I/F108に接続されたモデム110を制御して、上記保存されたデータを通信ネットワークを介してサーバ等へ送信する。
【0028】
したがって、電子機器には通信を実現するためのハードウェアおよびソフトウェアは一切必要がなく、既存の機器をそのまま使用することができ、新規に機器を開発する場合であっても通信のためにハードウェアまたはソフトウェアを追加開発する必要はない。
【0029】
図4は、以上のように構成されたデータ転送デバイス100Aが接続される電子機器の一例である、タイムレコーダ200の外観を示す図である。このタイムレコーダ200は、筐体221に表示部204、操作部207及びUSB I/F210を設け、さらに筐体221の上部にタイムカードを挿入するためのスリット222を設けている。このスリット222の奥にはカード認識部および印字部が設けられている。
【0030】
図5は、上記タイムレコーダ200の機能構成を示すブロック図である。
図5に示すようにこのタイムレコーダ200は、主制御部205を有し、この主制御部205に対しカード認識部201、印字部202、時計部203、表示部204、記憶部206、操作部207、ブザー208及びUSBコントローラ209を接続したものとなっている。USBコントローラ209にはUSB I/F210が接続されている。
【0031】
このタイムレコーダ200は、例えば主制御部205が各部を制御することにより、ユーザがタイムカードをスリット222に挿入したことに応じてカード認識部201がタイムカードを認識し、ブザー208を鳴動させる。そして、操作部207により設定された刻印種別(出勤時刻、退勤時刻等)および時計部203より取得した時刻を、印字部202がタイムカードに印字する。またそれと共に、認識したタイムカードに関連付けられたユーザ名、日付、時刻及び刻印種別等の出退勤データを記憶部206に一時保持又は蓄積し、USB I/F210に接続されたデータ転送デバイス100Aへ、上記一時保持又は蓄積された出退勤データを出力する動作を行う。このデータ出力のためにUSBコントローラ209にはホスト機能を有するコントローラが用いられている。
【0032】
図6は、
図4に示したタイムレコーダ200から出力された出退勤データを、
図1及び
図3に示したデータ転送デバイス100Aから通信ネットワーク250を介してサーバ236へ転送するためのシステムの構成を示す図である。
この通信ネットワーク250は、
図6に示すように基地局231,232を備えた移動通信網233と、この移動通信網233に対しゲートウェイ234を介して接続される有線通信網235とを備えている。移動通信網233としては、例えば3G移動体通信網、無線LAN(Local Area Network)、WiMax (Worldwide Interoperability for Microwave Access)(登録商標)、又はLTE(Long Term Evolution)を採用した移動通信網等の無線データ通信網が用いられる。有線通信網235としてはインターネット等の有線IP網が用いられ、サーバ236はこのインターネット上に設けられたWebサーバとして動作する。
【0033】
上記モデム110を備えたデータ転送デバイス100Aは、基地局231,232が形成するサービスエリア内で移動通信網233に接続され、さらにこの移動通信網233からゲートウェイ234及び有線通信網235を介してサーバ236に接続される。そして、この接続された通信リンクを介して、タイムレコーダ200から出力された出退勤データをサーバ236へ転送することが可能となっている。
【0034】
またユーザが所持する通信端末230も、上記基地局231,232が形成するサービスエリア内で移動通信網233に接続され、さらにこの移動通信網233からゲートウェイ234及び有線通信網235を介してサーバ236に接続される。そして、この接続された通信リンクを介して、サーバ236に付属するデータ蓄積装置237に蓄積されたユーザ自身の出退勤データをダウンロードし閲覧することが可能となっている。
【0035】
(第1の動作例)
図7は、
図6に示したシステムにおけるタイムレコーダ200及びデータ転送デバイス100Aの第1の動作を示すフローチャートである。なお、この第1の動作では、タイムレコーダ200においてタイムカードの打刻が行われるごとに、その出退勤データをデータ転送デバイス100がサーバ236へ転送する場合について説明を行う。
【0036】
タイムレコーダ200において、ユーザがスリット222にタイムカードを挿入すると、カード認識部201がこのタイムカード検出し、主制御部205の制御の下で印字部202が現在時刻を上記タイムカードに打刻する(ステップST101)。主制御部205は、上記打刻を終了すると当該打刻日時と、打刻種別(出勤か退勤か又はその他)と、ユーザIDを記憶部206に一旦保持する(ステップST102)。そして、この出退勤データをステップST103で予め定められた出力データ形式に変換したのち、USBコントローラ209の制御の下でUSB I/F210からデータ転送デバイス100Aへ送出する(ステップST104)。
【0037】
これに対しデータ転送デバイス100Aは、上記タイムレコーダ200から送出された出退勤データをUSB I/F101介してUSBコントローラ102で受信すると、この受信した出退勤データをメモリ105内のRAMに一時保存する(ステップST105)。
【0038】
次に、CPU104の制御の下、先ずステップST106においてUSBコントローラ107を介してモデム110を動作させ、これにより移動通信網233に接続して、この移動通信網233からさらにゲートウェイ234及び有線通信網235を介してサーバ236に接続する。続いてステップST107により、上記RAMに保存されている出退勤データを読み出し、このデータを上記接続された通信リンクを介してサーバ236へ送信する。そして、この送信動作中に送信が終了したか否かをステップST108で判定し、送信が終了すると、ステップST109においてサーバ236との間で確立された通信リンクを開放し、移動通信網233との間の接続を終了する。最後にステップST110において上記RAMに保存されている送信済の出退勤データを消去する。なお、ステップST108において送信が完了していないと判定された場合には、ステップST107に戻って出退勤データの送信動作を継続する。
【0039】
サーバ236は、データ転送デバイス100Aから送られた出退勤データを受信すると、このデータをデータ蓄積装置237に格納する。
【0040】
また、この状態で通信端末230において、ユーザがそのブラウザ機能を用いてサーバ236に対しアクセスし、これにより出退勤データの閲覧要求を送信したとする。そうすると、サーバ236は上記閲覧要求により指定されたユーザIDに該当する出退勤データをデータ蓄積装置237から選択的に読み出し、この読み出された出退勤データを要求元の通信端末230へ送信する。通信端末230では上記サーバ236から送られた出退勤データが表示部に表示される。したがって、ユーザは例えば自身の過去の出退勤データを何時どこからでも確認することが可能となる。
【0041】
以上述べたように第1の動作例によれば、タイムレコーダ200において打刻動作が行われるごとに、その出退勤データがデータ転送デバイス100Aから通信ネットワーク250を介してサーバ236へ転送され、データ蓄積装置237に記録される。このため、タイムレコーダ200にはモデムやネットワークインタフェース等の通信機能を設ける必要がないのでタイムレコーダ200のコストアップを防止することができ、またデータの転送にUSBメモリ等の記憶デバイスを使用する必要もないので、記憶デバイスの挿脱操作や当該記憶デバイスへのデータの書込み及び読出し操作等の煩雑な操作が不要となる。さらに、データ転送デバイス100A及びモデム110は機能が限定されており、一般にパーソナル・コンピュータなどに比べてアダプタ程度の小型サイズにすることができる。このため、大きな設置スペースが不要となる。
【0042】
また、第1の動作例によれば、タイムレコーダ200において打刻が行われるごとにその出退勤データが転送されるので、サーバ236では出退勤データをリアルタイムで収集し管理することが可能となる。
【0043】
(第2の動作例)
図8は、
図6に示したシステムにおけるタイムレコーダ200及びデータ転送デバイス100Aの第2の動作を示すフローチャートである。なお、この第2の動作では、タイムレコーダ200においてタイムカードの打刻が行われるごとに、その出退勤データをデータ転送デバイス100において一旦蓄積し、所定時間分が蓄積されたのちに読み出してこれらを一括してサーバ236へ転送する場合について説明を行う。
【0044】
タイムレコーダ200において、ユーザがスリット222にタイムカードを挿入すると、このタイムカードに打刻が行われると共に、その打刻日時、打刻種別及びユーザIDを含む出退勤データが所定の出力データ形式に変換されたのち、USBコントローラ209の制御の下でUSB I/F210から送出される点は、第1の動作例と同じである。
【0045】
データ転送デバイス100Aは、CPU104の制御の下、先ずステップST201でタイマ106のカウント値を初期化したのちカウント動作を開始させる。このタイマ106のカウント時間は、例えば1時間に設定される。なお、このタイマのカウント時間は1時間に限るものではなく、例えば24時間、12時間、6時間、3時間のように長く設定してもよく、さらには始業時刻及び終業時刻後は短く設定し、他の時間帯は長く設定するようにしてもよい。
【0046】
上記タイマ106のカウント動作中にデータ転送デバイス100Aは、上記タイムレコーダ200から出退勤データが送出されると、この出退勤データをUSB I/F101を介してUSBコントローラ102で受信したのち、CPU104の制御に従いステップS202によりメモリ105内のFlashROMに記憶する。以後、タイムレコーダ200から出退勤データが送出されるごとに、この出退勤データを受信してメモリ105内のFlashROMに順次記憶する。
【0047】
さて、この状態でタイマ106がタイムアウトしたとする。そうすると、データ転送デバイス100AはこのタイムアウトをステップST203で検出し、ステップST204においてメモリ105内のFlashROMに出退勤データが蓄積されているか否かを判定する。この判定の結果、出退勤データが1つでも蓄積されていれば、CPU104の制御の下、先ずステップST205においてUSBコントローラ107を介してモデム110を動作させ、これにより移動通信網233に接続して、この移動通信網233からさらにゲートウェイ234及び有線通信網235を介してサーバ236に接続する。続いてステップST206において、上記メモリ105内のFlashROMに蓄積されている出退勤データを全て読み出し、この読み出した出退勤データを上記接続された通信リンクを介してサーバ236に向けて送信する。
【0048】
そして、この送信動作中に送信が終了したか否かをステップST207で判定し、送信が終了するとステップST208においてサーバ236との間で確立された通信リンクを開放し、移動通信網233との間の接続を終了する。最後にステップST209において、上記メモリ105内のFlashROMに保存されている送信済の出退勤データを破棄する。なお、ステップST207において送信が完了していないと判定された場合には、ステップST206に戻って出退勤データの送信動作を継続する。
【0049】
以後同様に、タイマ106のカウント期間を1周期として、タイムレコーダ200から出力される出退勤データの蓄積処理と、サーバ236への当該出退勤データの一括転送処理が繰り返し実行される。
サーバ236は、上記データ転送デバイス100Aから出退勤データが一括転送されるごとに、この転送された出退勤データを受信してデータ蓄積装置237に格納する。
【0050】
また、この状態で通信端末230において、ユーザがそのブラウザ機能を用いてサーバ236に対しアクセスし、これにより出退勤データの閲覧要求を送信したとする。そうすると、サーバ236は上記閲覧要求により指定されたユーザIDに該当する出退勤データをデータ蓄積装置237から選択的に読み出し、この読み出された出退勤データを要求元の通信端末230へ送信する。通信端末230では上記サーバ236から送られた出退勤データが表示部に表示される。したがって、ユーザは例えば自身の過去の出退勤データを何時どこからでも確認することが可能となる。
【0051】
以上述べたように第2の動作例によれば、タイムレコーダ200から送出された出退勤データは、データ転送デバイス100Aに所定期間分ずつ蓄積されたのちサーバ236へ一括転送される。したがって、サーバ236では出退勤データのリアルタイム監視を行えなくなるが、通信ネットワーク250のトラフィックの増大を避けることができる。
また、タイムレコーダ200のコストアップ、記憶デバイスの挿脱や当該記憶デバイスへのデータの書き込み及び読み出し等による操作の煩雑化、タイムレコーダの大型化等を防止できることは、前記第1の動作例と同様である。
【0052】
[その他の実施形態]
この発明は上記実施形態に限られるものではなく、以下のような種々変形実施が可能である。
例えば、前記実施形態では電子機器(タイムレコーダ200)から送出されたデータを受け取るごとに当該データをサーバ236へ転送するか、又は電子機器(タイムレコーダ200)から送出されたデータを蓄積して、タイマ106により規定される所定時間が経過するごとに上記蓄積されたデータをサーバ236へ転送するようにした。しかし、それに限らず、例えば電子機器によるデータの出力頻度を監視し、データの出力頻度がしきい値より高い時間帯では出力データを一旦蓄積し、かつ最後にデータを受け取ったタイミングから一定時間以内に、当該蓄積されたデータを一括して転送する。これに対し、データの出力頻度がしきい値より低い時間帯では、出力データを蓄積せずにリアルタイムで転送する。
【0053】
このようにすると、データの出力頻度がしきい値より高い時間帯では、データを頻繁に転送しないことで通信ネットワークのトラフィックの増大を抑制することができ、しかも最後にデータを受け取ったタイミングから一定時間以内にデータを一括転送することで、転送タイミングを大幅に遅らせることなくデータを転送することが可能となる。またデータの出力頻度がしきい値より低い時間帯では、電子機器からの単発的なデータ送出に対しリアルタイムに転送することができる。すなわち、通信トラフィックの抑制とデータ転送のリアルタイム性をバランスよく保ったデータ転送を実現できる。
また、データ出力頻度以外に、出力されるデータの種類や重要度に応じて、データ転送タイミングを制御するようにしてもよい。
【0054】
さらに、前記実施形態ではデータ転送デバイス100をタイムレコーダ200に接続する場合を示したが、USBメモリ等にデータを出力する電子機器であれば種類を問わずに幅広く適用することができる。また、上記実施形態ではUSBメモリにデータを書き込むタイプの電子機器に、USBメモリとして認識されるタイプのデータ転送デバイス100A,100Bを接続してデータ転送する場合を示したがこれも必須ではなく、データ転送デバイス100A,100Bのインタフェースを変更することにより電子機器の様々な出力に対応させることが可能である。
【0055】
また、データ転送デバイス100A,100Bに有線または無線LANモジュールを接続し、有線LANまたは無線LANに接続する構成としてもよい。同様に、WiMAXモデムまたはLTEモデムを利用して、WiMAX網またはLTE網に接続する構成としても構わない。
【0056】
さらに、前記実施形態では電子機器が出力したデータをデータ転送デバイス100A,100Bから通信ネットワーク250を介してサーバ236へ転送する場合を例にとって説明したが、データ転送デバイス100A,100Bとペアリング設定された端末へ転送するようにしてもよい。このようにすると、ユーザはデータ転送デバイス100A,100Bを電子機器に接続するだけで、特別な操作を何ら行うことなく、電子機器が出力するデータを、例えば携帯電話機やスマートホン、タブレット型端末、オーディオプレーヤ、ゲーム機器、カーナビゲーション機器へ転送させることが可能となる。
【0057】
さらに、前記実施形態では機器と接続されるUSB I/F101を介した通信を制御するUSBコントローラ101が独立した半導体チップとして構成され、モデムが接続されるUSB I/F108を介した通信を制御するUSBコントローラ107がマイクロコントローラに内蔵されている構成とした場合を示したが、USBコントローラ101をマイクロコントローラに内蔵してUSBコントローラ107を独立した半導体チップとしてもよいし、双方ともにマイクロコントローラに内蔵する構成としてもよく、双方ともに独立した半導体チップとする構成も可能である。
【0058】
要するにこの発明は、上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、各実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態に亘る構成要素を適宜組み合せてもよい。