注文サポートソフト kinokoの 設計と実装

注文サポートソフト kinokoの
設計と実装
chai(SING,B2)@Z203生活向上委員会
親:いまいずみさん
kinoko開発の動機
・木の子に出前を取るのは非常に面倒
--誰かが注文を集計するために聞いて廻らなけれ
ばならない
--その後電話
--それを毎回(多い時は週に3,4回)
・注文をするときに部屋にいないとならない
--注文する時に部屋にいないと、頼むことはできな
い
--少し遅れるだけで残念なことになる
kinokoの概要
・木の子への注文する手間を自動化
・kinokoサーバは、クライアントの要求に応じてオー
ダーを保存
・定時になるとそれを集計し、まとめて「木の子」及び
注文者にメールを送信(マスターがメールを読んでく
れる)
・サーバは、毎日変更されるメニューを更新し日替わり
メニューなどに対応する
ソフトとしての流れ
Client
kinoko-system
@sfc.wide.ad.jp
Server
注文をメールで
送信
②③cronで定期的に実行
①
④これもcronで実行
・サービスの停止
・集計作業の後、メールを送
・サーバのサービス開始
・メニュー更新
信する
--集計、注文の作業のためサー
--クライアントからの要求を受
・ファイルのお掃除
ビスを締め切る
--「木の子」とML宛にメール
け付ける
を送信・サーバの再起動
①
14:00
②
19:00
③
19:10
0:00
④
13:50
13:59
通信前のサーバの動き
起動
member-listからの注文可能者リストを読み込む
メニューファイルを読み込みリストに格納
メインループ
accept( );で待機
fork( );
通信の様子(1回目)
Server
Client
connected!!
name (ex.chai)
I know you <or> I don’t know you
hello
「This is first time」(今回は未注文)
Come on
メニューリスト
選択
させる
01.(週替)メゴチのフライ:ご飯盛り
bye
リストと
照合
注文済
か確認
通信の様子(2回目以降)
Server
Client
connected!!
リストと
照合
name (ex.chai)
I know you
hello
ユーザーに選
択肢を与える
1.keep
2.cancel
3.reorder
「You ordered.」
(今回は注文済)
注文済
か確認
それぞれ
対応
通信の様子(2回目以降)
Server
Client
connected!!
リストと
照合
name (ex.chai)
I know you
hello
ユーザーに選
択肢を与える
1.keep
2.cancel
選択
3.reorder
させる
「You ordered.」
(今回は注文済)
Come on
メニューリスト
01.(週替)メゴチのフライ:ご飯盛り
bye
注文済
か確認
clientの仕様
・ユーザーへのインターフェイスのみを実装している
・メニューの選択は、送られてきたメニューリストを元に
cursesの画面で行ってもらう
・木の子によくある「もしこれが無かったら」という部分
を考慮(文章の追加)
・キャンセル、変更、中止ももちろん可能
実証実験
昨日の風景
課題

認証

Webインターフェイス

Windowsの人のためのインターフェイスも用意

SFCのためのインターフェイス
開発環境
・FreeBSD5.2.1
・gcc3