Javaによる Erectronic Commerce System の開発

Javaによる
Electronic Commerce System
の開発
発表者 三浦健 宅和覚 荒木啓宏 三原佑典
1.はじめに
Electronic Commerce(EC:電子商取引)
ネットワークを利用して
、様々なビジネスデータ
を交換。
Electronic Commerce System の開発
・インターネットバンキング
・オンライン・ショッピング
・電子マネー
・株式運用
etc…
Webを利用した
商店
オンライン・ショッピング
システム
お金
ユ‐ザ
商品
クレジット
会社
銀
行
Java
JDBC
Servlet
client
client
client
DB
2.システム全体設計
2.1システム構成について
•商店
•クレジット会社
•銀行
以上の各サーバごとに開発を行った
システム構成図
商店A
商店B
クレジット会社
カード番号チェック
店毎の,店への送金
ユ集計ーザ毎の集計
ユーザ毎の引き落とし
ユーザへの請求
送金の処理
Webサーバ
Multi-Thread処理対応
店番号:店名
購入商品金額の請求
DB
Multi-Thread処理対応
カード番号
注文
応答
フォーム入力
名前
住所
連絡先
暗号化
代金引き落とし
引き落とし請求
入金
ユーザ
帳票の作成
・ 店毎の集計
・ ユーザ毎の集計
・ 入出金の集計
銀行
2.3.1 Servletについて
・Servlet : Server side Applet の意味
Server の機能を有するプログラムの総称
Servlet
client
client
複数の要求を同時に
処理することが出来る
client
・ネットワークのトラフィック
Appletではプログラムをダウンロードするが、
Servletでは処理結果のみを受信
・柔軟な処理
Servletは、Server上で実行されるの
でファイルを自由に扱える。
・セキュリティー
Appletでは、セキュリティー上の
問題が発生している。
効率 :プロセスと比較した場合、スレッドの方が効率的
CGI
Servlet
WWWServer
初期化
処理
CGI
Resource
初期化
処理
CGI
Resource
WWWServer
初期化
処理
CGI
Resource
初期化
処理
Servlet
Thread
Servlet
Thread
共有
Resource
Servlet
Thread
移植性 :
Javaの持つプラットフォーム独立性により、高い
移植性を維持出来る。
Servlet
プログラム
CGI
プログラム
プラットフォームC
プラットフォームA
プラットフォームB
ServletRequest
HttpServletRequest
ServletResponse
Servlet
Servletへの入出力
HttpServletResponse
Servlet
Http プロトコルを使用する場合
各サーバ間でのデータの交換
Request
ECClient
ECObject
Response
ECServer
・Servlet Runner
Servlet を管理・
運用するプログ
ラム。JSDK(Java
Servlet
Development Kit)
に付属している。
今回,主に使用し
た環境。
・Java Web Server
それ自身、
Servlet 群によっ
て構成された
Web Server。
Sun
Mycrosystemsの
製品。
2.3.2JDBCについて
(1)JDBCの概要
Java
Application/Applet
(2)JDBCの機能
・RDBへの接続の確立
・SQL文の送信
・SQL文実行結果の処理
JDBC
RDB
Java
Application/Applet
JDBC API
JDBC
ドライバ・マネージャ
JDBC API
JDBC
ドライバ
RDB
JDBC構成図
Java
Application/Applet
JDBC API
JDBC
ドライバ・マネージャ
JDBC API
JDBC
ドライバ
JDBC-ODBCブリッジ・ドライバ
RDB
JDBCーODBCブリッジドライバを含めたJDBC構成図
3.1 開発環境について
・OS
windows98
・RDB
Access97
・Java開発環境 Java Development Kit 1.1.7
・Servlet開発環境 JSDK2.0
・統合的なJava開発環境
Symantec Visual Café Datebase
Edition v3.0
3.2 商店サーバシステム
今回の研究では商店の一つの例として
本屋(山田書店)を考えた。
・この本屋はインターネットを通してお客からの
注文を受ける。
・注文の品物は宅配便で郵送する。
・決済はクレジットカードで行う。
(1)機能
•本のカタログの表示
•本の詳細な情報を表示
•ユーザ毎の購入情報の作成
•ユーザの注文の追加、削除、表示
•代金の表示
•ユーザのクレジットカードについての調査の依頼
•注文をデータベースへ格納
(2)商店サーバの構成
商店サーバは以下の二つからなっている
•本の情報や注文を格納するデータベース
•SHOSEKI_TABLE
•ORDER_TABLE
•(1)の機能を実現するServlet
8つのServletを開発した
(3)商店データベース
・SHOSEKI_TABLE
本の情報が入っているテーブル
・ORDER_TABLE
ユーザの注文を格納するテーブル
(4)商店Servletの説明
•FrameServlet フレームのServlet
•MainpageServlet メインページを表示する
•CatalogServlet カタログページを表示する
本の詳細へのリンクと注文の追加をする
•BookdetailServlet 本の詳細を表示する
•ShowBoxServlet 買い物かご、代金を表示する
注文の削除をする
•CasherServlet ユーザの情報を入力する
•ConfirmServlet ユーザに最終確認を促す
•RecieptServlet ユーザへのお礼を表示する
ユーザの調査をして問題がない場合、
注文をデータベースへ格納する
3.3クレジット会社サーバシステム
(1)機能
①クレジット会社内部での機能
・全体の制御
・クレジットカードの新規登録
・クレジットカードの検索
・クレジットカードの変更
・クレジットカードの削除
②商店・銀行に対するサーバ機能
・商店からユーザについての情報を受け取る
・送られてきた情報が正しいかどうかをチェック
・チェックした結果を商店に返す
・クレジット会社の口座から商店の口座への送金
の依頼
・ユーザーの口座からクレジットの会社口座への
送金の依頼
(2)処理
①クレジット会社内部での処理 →Applicationで開発
・全体の制御(Kokyaku.class)
・クレジットカードの新規登録(Insert.class)
・クレジットカードの検索(Select.class)
・クレジットカードの変更(Update.class)
・クレジットカードの削除(Delete.class)
Applicationの関連図
Delete
Update
Kokyaku
Select
Insert
②商店・銀行に対するサーバ処理 →Servletで開発
クレジット会社に関するデータのやり取り
→CreditServlet.class
クレジット会社
クレジット番号、
パスワード、
店ID、購入金額
振込み結果
①クレジット会社の口座番号、
商店の口座番号、
振り込み金額
②ユーザーの口座番号、
クレジット会社の口座番号、
引き落とし金額
パスワードの
照合結果
商店
銀行
(3)データベース設計
以下の6つのテーブルを持つ
・BANK
取引先の銀行に関する情報
・CARD
クレジットカードに関する情報
・KOKYAKU
顧客に関する情報
・SHOP
取引先の商店に関する情報
・SHOPORDER 商店から受け取った情報
・USERLIST
1ヶ月ごとのユーザー注文金額
3.4銀行サーバシステム
電子商取引におけるお金の管理
(1)機能
•口座間でのお金の移動
servletで開発
•口座の新設、抹消、書き換え、表示
applicationで開発
•口座間でのお金の移動
クレジット会社との処理←servletで実現
依頼メッセージ
クレジット会社
銀行サーバ
(BankServlet)
送信先の口座番号
送金元の口座番号
振込み金額
•口座間でのお金の移動(Cont.)
クレジット会社との処理←servletで実現
依頼メッセージの確認
銀行サーバ
(BankServlet)
送信元口座番号の確認
送信先口座番号の確認
送信先の残高の確認
BANK
データベース
•口座間でのお金の移動(Cont.)
クレジット会社との処理←servletで実現
口座振込みの実行
銀行サーバ
(BankServlet)
口座振込みの実行
BANK
データベース
•口座間でのお金の移動(Cont.)
クレジット会社との処理←servletで実現
応答メッセージ
クレジット会社
銀行サーバ
(BankServlet)
終了メッセージ
OR
エラーメッセージ
•口座の新設、抹消、書き換え、表示
各クラスの機能←applicationで開発
•
•
•
•
•
•
Modeクラス :
Selectクラス :
Insertクラス :
Updateクラス :
Deleteクラス :
Quitクラス :
メニュー画面
口座の表示
口座の新設
口座の書き換え
口座の抹消
プログラム終了の確認
•口座の新設、抹消、書き換え、表示
各クラスの機能←applicationで開発
メニュー画面(Mode.class
)
条件を指定して口座の表示
表示画面(Select.class)
•口座の新設、抹消、書き換え、表示
(Cont.)
各クラスの機能←applicationで開発
メニュー画面(Mode.class
)
各項目を入力して新規登録
新設画面(Insert.class)
•口座の新設、抹消、書き換え、表示
(Cont.)
各クラスの機能←applicationで開発
メニュー画面(Mode.class
)
口座番号を指定して口座の
抹消
口座抹消画面(Delete.class)
•口座の新設、抹消、書き換え、表示
(Cont.)
各クラスの機能←applicationで開発
メニュー画面(Mode.class
)
口座番号を指定して、変更
項目を入力、口座の更新
書き換え画面(Select.class)
•口座の新設、抹消、書き換え、表示
(Cont.)
各クラスの機能←applicationで開発
メニュー画面(Mode.class
)
終了の確認
終了画面(Quit.class)