PR

家電小売業のニノミヤは,iモード端末を利用した営業支援システムを構築した。約400台のPOSレジが更新するリアルタイムの売り上げ・在庫データを,ユーザーがあらかじめ設定した切り口でリアルタイム検索し,iモード端末に表示する。

 家電小売業のニノミヤ(本社:大阪市浪速区)は2000年6月,iモード対応携帯電話(iモード端末)を利用した営業支援システム「imode waver」を本稼働させた。

図1●システムの構成
売り上げや在庫情報を照会するシステム。ユーザーは,あらかじめPCで,どの商品を照会するかを設定しておく。設定を基に検索された内容をメールとして,iモード端末で受信する。WWWアクセスで参照することも可能。RDBMSはAS/400上で動作するDB2。WWWサーバー・ソフトはIIS 4.0。登録や検索は,Visual BasicプログラムをASPから呼び出す。メールの送信は,WWWサーバー上のタスク・スケジューラからアプリケーションを起動し,Exchange Serverを介して実行する

 (1)約400台のPOSレジが逐次更新している販売,在庫,受注データを,(2)約100名のユーザーがあらかじめ設定した時間間隔で設定条件を基に検索し,(3)iモード端末にメール送信する――システムだ。ユーザーは,好きな時にiモード端末のWWWブラウザでリアルタイム照会することもできる。

 条件の設定ではSQLの知識は必要なく,PCの画面上の項目を指定するだけでよい。このシステムを利用することで,売れ筋商品の変化をすぐに見極め,店頭の棚割や顧客への商品の薦め方を即座に変える,などが可能になった。

 構築のポイントは,集中するデータベース検索処理をいかに処理するか,インターネット経由でいかにセキュリティを確保するか,だった。クライアントがiモードである点については,さほど苦労はしなかったという。

リアルタイム更新/照会にこだわる

 通常,売り上げや在庫データを基に分析し,意思決定するようなシステムは,基幹システムのデータを日次バッチなどで切り出し,専用のデータベースに蓄積した上で,処理する形態が多い。しかし同社では,リアルタイムでの照会にこだわった。

 「優秀な販売社員は,自分の切り口でリアルタイムの売り上げデータを検索し,結果を見ることで,次の行動につなげることができる」(物流・情報システム本部 システム開発室 所長の秦雅彦氏)からだ。例えばメーカーと協力して複数の店舗でキャンペーンを実施する場合,担当者は現場に立ってキャンペーンの効果を見極めつつ,他店舗で同時に実施しているキャンペーンでの商品売れ行きもチェックして,次に打つべき手を考える。

 そのためには,ユーザーが望む情報を,望む形で,望む間隔もしくはリアルタイムで照会できる仕組みが必要だ。端末も,携帯性に優れていなければならない。

 仕組みは,こうだ。ユーザーはあらかじめ,店頭にあるPCからWWWブラウザでWWWサーバーにアクセスし,どのようなデータを,どのくらいの時間間隔で検索するかを登録しておく(図1[拡大表示])。WWWサーバーは登録内容から,データベース検索用アプリケーションを自動生成する。あとはタスク・スケジューラによって設定時間に各アプリケーションが検索処理を行い,結果をメールでiモード端末へ送信する。任意のタイミングで検索するには,iモード端末で直接WWWサーバーにアクセスし,検索アプリケーションを動かして結果を照会する。

 WWWサーバー・ソフトには,IIS(Internet Information Server)4.0を利用。検索用アプリケーションは,Visual Basic(VB)プログラムである。このVBプログラムを自動生成する仕組みは後述する。メールは,Exchage Serverを介して送信している。

図2●アクセスが集中する
ユーザーは,どの商品の情報を,例えば30分おきなど,どのくらいの間隔で見るかを,あらかじめ設定しておき,iモード端末で受信する。したがって,毎時0分など特定の時間に,データベース・サーバーへのアクセスが集中し,検索結果を得るのに時間がかかる問題があった。ニノミヤでは,(1)似たSQLをまとめる,(2)検索が一斉に始まらないよう制御するソフトを作り込む――などの工夫により,この問題を回避した

アクセス集中で結果が返ってこない

 構築上の最初の問題は,基幹システムのサーバーであるAS/400eへの負荷である。従来は1台のサーバーでPOSレジのデータを集信し,RDBMS(米IBMのDB2)を更新していた。POSレジからの集信,更新は営業時間中休まず行われるため,同じサーバーで新システムの検索,参照処理を行うとサーバーへの負荷が高くなり,データ更新ができなくなってしまう恐れがある。

 そこで,リース・アップを機会にマシンを2台に分け,負荷の高いPOSレジの集信処理を別サーバーに切り出した。しかし,検索処理の負荷は予想以上に重かった。実際に開発に入ってテストしてみると,データベース・サーバーへのアクセスが集中し,ユーザーへ送信する検索結果を生成できない事態に陥ったのである(図2[拡大表示])。「ここが一番苦労した」(秦氏)。

 負荷が高くなる原因は,システムの仕組みにあった。システムでは,各ユーザーが設定する1つの検索条件に対して,それぞれ1つのデータベース検索アプリケーションを生成する。検索アプリケーションは一人で最大5個まで登録できる。毎時0分など,設定時間が重なりやすいタイミングでは,同時起動のアプリケーション数が100以上になり,データベースへのアクセスが集中する。結果,一部のアプリケーションがデータベースから検索結果を得られずにタイム・アウトし,ユーザーに送信すべきデータを用意できなかったのだ。

 同社と,システム・インテグレータとして参加していた日本IBMとで試行錯誤した結果,施した対策は大きく2つに分けられる(図2の下)。

 一つは,同じテーブルを検索するなど似たようなSQLをまとめ,全体の検索回数を減らすこと。例えばある社員と別の社員が同じデータを見ている場合,従来はそれぞれ別々のアプリケーションとして2度検索していたのを,一度にまとめるようにした。

 もう一つは,同時実行する検索アプリケーションの数を制御するようなソフトをVisual Basicで開発したこと。ホスト管理で用いられるジョブ制御に似た仕組みで,あるアプリケーションが終わるまで他のアプリケーションは実行しないなどの制御をする。ユーザーはメールを待っているだけなので,多少配信時間がずれても問題はない。

独自ツールが速いSQLを自動生成

 ユーザーが登録した条件に基づいた検索アプリケーションを自動生成する部分には,同社が従来から利用していた独自のアプリケーション開発ツール「赤い絨毯」を用いた。赤い絨毯は,検索対象となるテーブルやカラム,ソート条件や出力形式などをマウスで選択し,例えば単価と売上数量をかけ算するなどの計算式を指定すると,データベースを検索するSQL文を含むVBプログラムを自動生成する。

 同じ結果を出力するSQLでも,書き方によって実行速度は大きく異なる。優秀なSEは,テーブル構造と経験から速いSQLを書く。この速いSQLを書くノウハウを,「属人化せずに,赤い絨毯を(自社のデータベースのテーブル構造に合わせて)メンテナンスすることで蓄積してきた」(秦氏)。

 imode waverでは,この赤い絨毯をほぼそのまま利用し,アプリケーション自動作成の仕組みを構築した。手を加えたのは,設定部分のGUIだ。従来の開発者向けではテーブル構成などを示していたものを,「全店」や「カラーテレビ」,「売り上げ」といったユーザーが分かりやすい言葉に置き換え,項目を選択するだけでよくした。

 クライアント側のiモード端末に関連する部分での開発では,大きな苦労はなかった。同社は1999年1月のiモード発表の時点からクライアントの端末に採用することを決め,開発を始めていた。iモード端末が備えるWWWブラウザは,ページ遷移の管理にCookieを使えない。これは,FORMの変数を引き継ぐことで回避した。また,表示データは売り上げ数や在庫数など,量が少ないため,画面が狭いことも,あまり問題にならなかった。

図3●インターネット接続でセキュリティを保つ
自社の売り上げ情報をインターネット上の脅威から守るため,HTTPによる外部からのアクセスは,あらかじめ設定したURLだけ許可するようにした

決められたURLだけを転送

 クライアントにiモード端末を利用するため,サーバーへのアクセスはインターネットを経由になる。基幹システムのデータを不正アクセスから守るため,セキュリティ面にも気を配った。

 同社では1999年10月からすでに,仕入れ先110社がインターネットを介して売り掛け伝票の異常をチェックするシステムを構築していた。この時に施した不正アクセス対策を今回のシステムにも流用した。

 具体的にはファイアウオールを2重にし,その間にWWWサーバー(A)を設置する(図3[拡大表示])。インターネットから接続したユーザーは,基幹システムにアクセスできるWWWサーバー(B)には直接接続はできず,(A)を介す必要がある。(A)には,あらかじめアクセスしてよい(B)のURLを登録してある。登録されていないURLへのアクセスは,(B)に転送しない。許されたURLへのリクエストのみ,2つ目のファイヤウオールを越えて,本来のWWWサーバー(B)にアクセスできる。

(矢崎 茂明=yazaki@nikkeibp.co.jp)

[日経BP記事検索サービスで,この記事を見る] (有償:200円,PDFファイルの場合182157バイト)