ATN説明資料

Download Report

Transcript ATN説明資料

法政大学情報科学部卒業研究
Communications Using a Client - Server Model
in an Online Auction System
法政大学・情報科学部コンピュータ科学科
坂口
恒児
00k0013
1
1. 本研究の目的
インターネットの普及
Traditional Auction
Ex. Sotheby, Christie, etc..
Common internet Auction
Ex. yahoo, bidders, etc..
しかし、オークションの醍醐味であるその場で他人
と競り合っている感覚を得る事が難しくなった。
利用者の負担も大きい。
チャットの様なインターフェイスとエージェ
ントを利用した新しいオークションシステム
2
2. システム アウトライン
<入室の流れ>
TOPページ
ユーザ認証
オークションルーム
3
3. サーバ・クライアント間
サーバ・クライアント間の通信にはServletを利用
Servletの仕組み
Servletコンテナ
Servlet API
ユーザ
WEB
WEB
ブラウザ
サーバ
Servlet
4
Servlet利用によるメリット
最も普及していると思われるCGIと比較して…
・メモリ上に展開されてからはCGIに比べて高速。
・マルチスレッドで動作する事ができる。
・JAVAのメリットをそのまま享受できる。
アーキテクチャ非依存 “Write once, run anywhere”
将来的にオークションをパソコンからだけでなく、携帯等の端末への移植も比較
的容易に検討する事ができるようになる。
5
3.1. ユーザ認証システム
ID,password
login page
servlet
参照(JDBC)
database
ユーザ情報
(ID,pass,etc…)
比較
アクセス許可
特定のページ
6
3.2. オークションルーム
その場にいる感覚を出したい。
現在の価格を表示可能にしたチャッ
トルームの様なインターフェイス
ユーザ認証で作られたセッション情報はサーブレットに
保持される。ユーザ認証で行ったセッション情報をその
まま引き継ぐ。データベースには発言内容や、入札履歴
等を保存しておけるようにする。
7
4. 実装
実装環境
Java: j2sdk1.4.1_03
Servlet: Tomcat4.1
Database: Mysql4.0
OS: windows2000/XP
8
4.1. データベースとの連携
JDBCの利用
・ユーザ情報の追加/削除/更新
・会話システムにおける発言
JDBCドライバをロードしてデータベースへ接続する。
~
Class.forName("org.gjt.mm.mysql.Driver");
Connection db=DriverManager.getConnection
("jdbc:mysql://localhost/auction");
~
SQL文の実行。
~
Statement objSql=db.createStatement();
ResultSet rs=objSql.executeQuery
("SELECT auth_role.uid, auth_role.role, auth_user.passwd FROM
auth_role, auth_user WHERE auth_role.uid = auth_user.uid");
~
9
4.2. ユーザ認証
Realmの利用
・ユーザ認証におけるデータベース照合
login page
ID,password
servlet
比較
参照(JDBC)
database
ユーザ情報
(ID,pass,etc…)
<server.xml>
<Realm className="org.apache.catalina.realm.JDBCRealm" debug="99"
driverName="org.gjt.mm.mysql.Driver"
connectionURL="jdbc:mysql://localhost/auction"
connectionName="root" connectionPassword=""
userTable="auth_user" userNameCol="uid" userCredCol="passwd"
userRoleTable="auth_role" roleNameCol="role" />
10
4.3. セッションの管理
sessionの利用
・ユーザ管理
・取引情報
・オークションルーム情報
セッションの開始と値のセット
~
HttpSession session=request.getSession();
~
session.setAttribute("frmNam",request.getParameter("frmNam"));
session.setAttribute("nam",request.getParameter("nam"));
session.setAttribute("face",request.getParameter("face"));
session.setAttribute("rTime",request.getParameter("rTime"));
~
11
5. まとめと展望
・既存のインターネットオークションシステムとは違う、
新しいオークションシステムの提案と実装
・インターネットオークションシステムにおけるコミュニュ
ケーションの研究
今後の展望・・・
JAVAを用いたリアルタイムオークション
12