商品スタッフ

概要

鹿児島市内に三店舗を展開する食料品販売店様より御依頼を受けました。
本システムは弊社オリジナルの製品です。

本部用商品管理システムを2004年1月より、三つの店舗用POSレジスターシステムを2004年4月より稼動しています。

本部・店舗間はインターネットを介したオンラインで接続され、本部で作成された商品データ、店舗での売上データ等が双方向に自動的に転送されるほか、本部倉庫の在庫数を店舗側で一覧するなどの機能があります。

機器構成

本部側
  • DELL製サーバマシン(RAID5構成)
  • 各種パソコン(Sharp,NEC,DELL)
  • イーサネットスイッチ及びLANケーブル
  • Bフレッツファミリー100・ISP契約、DCUレンタル、ルータ
店舗側(三店舗)
  • 東芝Dynabook
  • パソコンPOS機材(レシートプリンタ、POSキーボード、バーコードスキャナ、カスタマディスプレイ、ドロワ)
  • インクジェットプリンタ
  • ADSL・ISP契約、ルータレンタル

※耐障害性を高めるためRAID5を導入した本部サーバマシンと各店舗のパソコンPOS機材以外は特別なものは使用していません。一般の家電製品販売店で取り扱い可能なものです。

全体構成図

本部・店舗間の接続は専用線ではなく、安価な民生用の通常のインターネット接続を使用しています。
この接続によって商品データ(本部から店舗へ)及び売上データ(店舗から本部へ)を自動的に転送します。

接続はzebedee暗号化トンネルを介しており、侵入や盗聴等の危険を回避します。

回線トラブルによって仮に数日間の切断があったとしても、本部・店舗の双方が正常な運用ができるよう、
本部だけではなく各店舗にデータベースシステムを搭載しています。それらの間は弊社独自のレプリケーション機構によって、各データの同期を行います。

店舗側機器詳細

店舗側機器としては、ノートパソコン(東芝Dynabook)にバーコードスキャナ、レシートプリンタ等を接続し、いわゆる「パソコンPOSレジ」を構成します。

実際の三店舗の機器設置の様子です。

A店
B店
C店

機器の構成を以下に示します。

  • カスタマディスプレイ
    顧客向けの料金表示機です。
  • バーコードリーダ
    商品のバーコードを読み取るための機器です。
  • POSキーボード
    通常の「キーボード」と異なり、キーボードに任意の文字を貼り付けることができます。
  • インクジェットプリンタ
    通販処理の際の請求書や、各店独自のチラシ等の印刷に利用します。
  • レシートプリンタ
    顧客に渡すレシートを印刷します。
  • キャッシュドロワ
    釣り銭箱です。精算の際にレシートプリンタからの指示により自動的に蓋が開きます。

キャッシュドロア以外の機材はすべてUSBにてパソコンと接続します。
キャッシュドロアはDKDにてレシートプリンタに接続し、レシートプリンタによって制御されます。

※上記機材はテクノベインズ株式会社より購入しました。

ソフトウェアシステム構成

本システムでは以下の技術を使用しています。

  • Javaプログラミング言語

    プログラムはすべてJava言語によるものです。

  • eclipse-SWT

    比較的低速なパソコンでも動作するように、アプリケーションにはSwingではなくeclipse-SWTウィジェットを使用しています。

  • Java Web Start

    アプリケーションの更新を自動化するためJava Web Startを利用しています。

  • Firebird

    フリーで高機能・安定性の高いFirebirdリレーショナルデータベースシステムです。
    事務所システム・店舗システムのそれぞれで使用しています。

  • JettyStrutsfreemarkerJakarta POI
    jCharts

    Webアプリケーションは定番のStrutsを利用していますが、テンプレートシステムとしてはJSPではなくFreemarkerを利用しています。
    また、Jakarta-POIによりExcelファイルを、JChartsによってグラフをそれぞれ自動生成します。

本部システム


本部には、Linux(Redhat9)によるサーバーマシンがあり、ここにデータベースサーバとウェブサーバが搭載されています。ウェブサーバは外部には公開せず社内連絡用のコンテンツを保持しています。
このウェブサイトからJava Web Startによって、本部内のどのパソコンからも本部用アプリケーションを起動することができます。

以下は、ウェブサイトのアプリケーション起動画面と、アプリケーション起動後に商品分類画面を開いたところです。

集計システム(本部サーバ内)

本部サーバには、社内連絡用ウェブとは別にJettyによるウェブサイトを構築し、このサーブレットから本部データベースを参照することにより、リアルタイムで各種集計値を閲覧することができます。

このウェブサイトは各店からもzebedeeを介して閲覧することができます。

これらの表はhtmlのテーブルタグによる表形式としても表示されますが、ウェブ上からexcel形式のファイルとして出力することも可能です。これにより、自由な加工を行って利用することができます。
また、月間売上をjChartsにより自動的にグラフ化して表示します。

左図はexcelデータを出力し、それをOpenOffice.orgにて閲覧しているところです。

店舗システム

店舗システムの中核となるのはレジスター画面です。
ここで必要な商品データは本部システムにて登録され、三店舗に自動的に転送されてきます。

レジスターの使い方としては、通常のレジスターと全く同様に、バーコードのある商品はそれをスキャンします。無い場合はPOSキーボードにて部門と価格を入力します。
ここで入力された生の販売データは数分後には自動的に本部システム側データベースに転送されます。

また、このレジスター画面はごく普通の「アプリケーション」であるため、
他のアプリケーションの動作を邪魔しません。
顧客のまばらな時間帯にウェブサーフィンを行い、天気予報(生鮮食品の入荷予定に関わります)を見たり、チラシを印刷するなどといったことをされているようです。

以下は販売データ履歴を閲覧しているところです。左右カーソルキーで日付を、上下カーソルキーで特定の販売データを指定します。

このほか、店舗システムには以下のような機能があります。

  • レシート印字文字列の設定機能

    各店の名前と電話番号等を設定します。また、その月の各店独自のセールのお知らせ等をレシートに印刷するよう設定することができます。

  • 独自バーコード設定機能

    本部を介さず各店独自に仕入れを行う商品についてのバーコード登録を行います。

レプリケーション

本システムでは弊社独自のレプリケーション機構を開発し、本部システム・店舗システム間の双方向のデータ転送を実現しています。本部システム側で登録した商品情報などを店舗システム側に自動転送し、店舗システム側で発生した売上情報などを本部システム側に自動転送します。

実際には、この操作は常に店舗システム側から行われます。
すなわち、店舗システム側のデーモンによって、本部システムデータベースに接続し、自データの送信と相手データの取得が行われます。