Vì bidders biết số lượng của bids,bids không được đóng dấu như trong các hình thức đấu giá khác.Giá đượcgiảm xuống từ từ cho đến khi một bidder quyết định cái giá hiện tại đó.Bidders sẽ
Trang 1TRờng đại học vinh Khoa công nghệ thông tin
=== & ===
lê thị phượng
ứng dụng công nghệ json 2.0 xây dựng website đấu giá trực
tuyến
đồ án TốT NGHIệP kỹ s cntt
Vinh, 5/2010
LỜI NểI ĐẦU
Có thể nói sự phát triển vợt bậc của Công nghệ thông tin đã giúp con
ng-ời hoá giải đợc rất nhiều bài toán nhng một điều quan trọng ở đây là không chỉ
Trang 2đơn thuần là giải đợc bài toán đó mà là phơng pháp để giải bài toán đó nh thếnào sao cho có hiệu quả nhất Hầu hết trong tất cả các ứng dụng Web hiện nay
đều làm việc dựa trên mô hình 3 lớp và sử dụng công nghệ Ajax Việc ứngdụng n y đã làm cho các phần của chày đã làm cho các phần của ch ơng trình trở nên độc lập hơn, đáng tincậy và do đó tính bảo mật cao hơn Điều đặc biệt hơn là khi sử dụng Ajax thìngời dùng cảm thấy kết quả trả về ngay lập tức mà không cần nạp lại trang.Những ứng dụng có tính thay đổi thường xuyên như ứng dụng Web giờ đây
sẽ trở nên linh động hơn khi có nhiều ngời truy cập hoặc trở nên dễ dàng hơntrong việc thay thế và nâng cấp Tuy nhiên có một số bài toán đòi hỏi sử dụngthêm công nghệ khác để có thể giải quyết đợc một cách tối u nhất Riờng đốivới bài toỏn đấu giỏ trực tuyến việc hệ thống chạy theo thời gian thực và việclàm sao để request trang liờn tục là vụ cựng quan trọng vỡ vậy ở đõy em sửdụng cụng nghệ JSON, một cụng nghệ của những người lập trỡnh client scriptJSON sẽ giảm tải quỏ trỡnh truy xuất dữ liệu liờn tục cho server
Cuối cựng, xin chõn thành cảm ơn cỏc thầy, cụ và cỏc bạn, đặc biệt là
sự hướng dẫn trực tiếp của thầy giỏo ThS Vũ Chớ Cường cựng cỏc anh trong
bộ phận cụng nghệ của Cụng ty VTCOnline đó chỉ dẫn cụng nghệ mới cho
em trong quỏ trỡnh xõy dựng đồ ỏn này
Mặc dự đó cố gắng hoàn thành đồ ỏn trong phạm vi và khả năng chophộp nhưng chắc chắn sẽ khụng trỏnh khỏi những thiếu sút Em rất mongnhận được sự chia sẻ, gúp ý của cỏc thầy, cụ và cỏc bạn
Sinh viờn thực hiện
Lờ Thị Phượng
Trang 3Chương I
TÌM HIỂU CÔNG NGHỆ JSON
I GIỚI THIỆU
JSON viết tắt của JavaScript Object Notation Cũng như XML, JSON
là một định dạng text data, cấu trúc JSON cho phép data dễ đọc, dễ thao tác,nhẹ, độc lập ngôn ngữ, và đặc biệt là JSON có thể mô tả dữ liệu theo objectoriented
Tại sao JSON có liên quan đến Javacript Đơn giản là vì JSON chính làcách biểu diễn một đối tượng Javascript
Khi sử dụng Json với Javascript, không cần phải có các bước phân tíchphức tạp như đối với XML Mà có thể truy vấn trực tiếp giá trị theo tên (khóa)được định nghĩa trong JSON
JSON là một chuẩn cực kỳ quan trọng trong lập trình webclient Tương
tác client-server (ajax chẳng hạn) với JSON đỡ mệt hơn sử dụng XML rấtnhiều, được xây dựng dùng cùng với JavaScript để tạo requests Code ởserver, có thể viết trên nhiều ngôn ngữ khác nhau, như C#, Python, PHP vàJava
Đối với lập trình viên clientscript Nó rút ngắn thời gian phát triển hơn
là sử dụng XML
JSON là một nét đặc trưng của ngôn ngữ này Nó cung cấp cho lậptrình viên một khả năng tạo các mảng cũng như phác thảo ra các đối tượngmột cách đơn giản và ngắn gọn Để hiểu được JSON, trước hết ta tìm hiểuxem cách thức mà mảng trong JavaScript hoạt động
JavaScript cung cấp cho chúng ta một đối tượng Array Cách cài đặtmột mảng mới khá đơn giản, ví dụ:
myArray = new Array();
myLibrary.books = new Array();
Trang 4Khá giống với các ngôn ngữ như Java hay C, JavaScript cho phép khaibáo trước số phần tử của mảng cũng như gán một giá trị cho một phần tử củamảng:
Đây chính là cách mô tả đối tượng kiểu JSON
Nếu muốn sử dụng dấu cách trống cho các khóa ta có thể dùng cắp dấu
“” ví dụ:
“first son”: “Jack”,
Chúng ta cũng có thể lồng các JSON vào nhau để khai báo các đốitượng phức tạp hơn, ví dụ:
var rectangle={
topleft: { x: 1, y: 2 },
Trang 5width: 5,
height: 10
};
//Khi đó
alert(rectangle.topleft.x); // sẽ đưa ra giá trị 1
Để thêm vào một phương thức cho đối tượng khai báo theo kiểu JSON
ta làm khá đơn giản như sau:
alert(rectangle.topleft.x); // sẽ đưa ra giá trị 1
alert(rectangle.area()); // sẽ đưa ra giá trị 50
Trong ví dụ trên, ta sử dụng từ khóa this để truy cập vào các thuộc tínhvừa khai báo của bản thân đối tượng Đây là một từ khóa đặc biệt và khámạnh, ta sẽ có dịp đề cập đến nó nhiều hơn trong các phần sau
Như vậy, bây giờ ta có thể sử dụng đối tượng Object hoặc JSON đểkhai báo một đối tượng trong JavaScript hoặc thậm trí sử dụng kết hợp cảhai phương pháp trên Tuy nhiên, nếu ta thường xuyên phải sử dụng, cũng
Trang 6tỏ ra kém hiệu quả, bởi lẽ với mỗi lần các thuộc tính thay đổi ta lại phải thựchiện các khai báo khá phức tạp do vậy tính tái sử dụng của code không đượcđảm bảo.
Khi sử dụng JSON với JavaScript hay ActionScript, không cần phải cócác bước phân tích phức tạp như đối với XML Mà có thể truy vấn trực tiếpgiá trị theo tên (khóa) được định nghĩa trong JSON
Trong trường hợp tương tự, ta có một dữ liệu JSON:
var jsonStr = '{ data: { x: 2 , y: 3}}';
Trang 7II SỬ DỤNG JSON TRONG AJAX RESPONSE
Ta có thể dùng JSON trong bất kì việc gì ta muốn như cách ta dùngXML vậy, nhưng ở đây em muốn đề cập ứng dụng của nó trong Ajaxapplication
1 Tạo và truy xuất JSON trong Ajax application (both server & client side)
1.1 Tạo response data và send về client
Như ta đã biết trong Ajax application, client sẽ send XMLHttpRequestđến server, server sẽ handle request và trả về response, response có thể làplain text, xml, js, json
VD: chúng ta define 1 java bean có 2 properties như sau:
public class Customer {
private String id;
private String name;
public Customer(String id, String name) {
Trang 8Nếu diễn đạt object customer dưới dạng JSON, thì:
{id: "abc", name: "sabrina"}
-> Cả JSON và XML đều có tính dễ đọc, JSON chiếm dụng bộ nhớ
ít hơn XML
Để tạo ra xml response trên, ta có thể tạo ra từng String rồi cộng lại.Hoặc ta có thể dùng các XML data binding framework (JAXB, JDOM,XMLBeans )
VD: dùng JAXB tạo ra xml từ java object
1.2 Handle data ở phía client
Nếu ta quyết định dùng XML là reponse data, thì ta phải dùng
javascript để traverse cây DOM(Document Object Model) và lấy ra từng node
bằng DOM api document.getElementById("id");
Nếu dùng JSON thì ta dùng hàm eval() của javascript để evaluateJSON data thành javascript object:
var jsonRep = eval(respondText);
Sau đó ta sẽ truy xuất data từ js object:
jsonRep.id;
jsonRep.name;
Trang 9Chương II
TỔNG QUAN VỀ ĐỀ TÀI
I GIỚI THIỆU VỀ ĐẤU GIÁ TRỰC TUYẾN
1 Đấu giá trực tuyến là gì?
Mô hình đấu giá trực tuyến là hình thức mà các bên tham gia đấu giásản phẩm và dịch vụ thông qua Internet Các hoạt động mua và bán trong đấugiá trực tuyến sẽ được phần mềm đấu giá kiểm soát
2 Các phương thức đấu giá trực tuyến
Hiện tại có hai phương thức chính được sử dụng:
Đấu giá kiểu Anh:
Đây là hình thức đấu giá từ thấp tới cao Người tham gia sẽ trả giá côngkhai với nhau, giá sau cao hơn giá trước Cuộc đấu giá kết thúc khi không aiđưa ra giá cao hơn hoặc đã đạt tới mức giá trần, khi đó người chiến thắng làngười đưa ra mức giá cao nhất
Đấu giá kiểu Hà Lan:
Đấu giá Hà Lan là một hình thức đấu giá mà trong cuộc đấu giá này,một món hàng được chào với một mức giá rất cao Giá ban đầu được đưa ra
Trang 10này cao hơn rất nhiều giá trị món hàng và chẳng có người bán nào hy vọngbán được món hàng với giá cao như vậy Vì bidders biết số lượng của bids,bids không được đóng dấu như trong các hình thức đấu giá khác.Giá đượcgiảm xuống từ từ cho đến khi một bidder quyết định cái giá hiện tại đó.Bidders sẽ trả cái giá đó và trở thành người thắng cuộc.
3 Những ưu điểm của mô hình ĐGTT:
Không ràng buộc về mặt thời gian: Các sản phẩm được liệt kê trongmột khoảng thời gian nhất định (tùy theo người bán), trong khoảng thời giannày người tham gia đấu giá có thể đặt giá vào bất kỳ lúc nào
Xóa bỏ khoảng cách địa lý: Người mua, người bán có thể tham gia
từ bất kì nơi nào có máy tính truy cập Internet
Sức mạnh của tương tác xã hội: Tương tác xã hội mà liên quan đếnquá trình đấu giá thì giống như việc đánh bạc Những người đấu giá chờ đợitrong hi vọng là họ sẽ thắng (eBay gọi những người đặt giá thành công lànhững người chiến thắng) Cũng giống như sự ham mê cờ bạc, nhiều ngườitham gia đặt giá chủ yếu để "chơi trò chơi" chứ không muốn giành đượcmón hàng Và điều này tạo ra một sự phân chia lớn các khách hàng tiềmnăng của eBay
Số lượng người đấu giá lớn: Bởi vì tiềm năng có giá thấp, hàng hóa
và dịch vụ đa dạng, dễ dàng tham gia và lợi ích xã hội của quá trình đấu giá
Số lượng người bán hàng lớn: Bởi vì có nhiều người tham gia đặtgiá, có thể đạt được giá cao, giảm chi phí bán hàng, dễ buôn bán
Mạng lưới kinh doanh Số lượng lớn các người tham gia đấu giá
sẽ khuyến khích nhiều người bán, ngược lại số lượng lớn các người bán sẽlàm tăng số lượng người đấu giá Càng có nhiều hoạt động thì hệ thốngcàng lớn mạnh, và mô hình kinh doanh càng trở nên có giá trị cho nhữngngười tham gia
Trang 11II TỔNG QUAN MÔ HÌNH ĐẤU GIÁ KIỂU ANH
Trong phương thức này có 2 hình thức đấu giá chính:
- Penny Auction
- Nail Biter Auction
1 Penny Auction
1.1 Mô tả chung
Ta sẽ đưa sản phẩm A lên đấu giá với 1 mức giá khởi điểm rất thấp vàquy định thời gian đấu giá Người dùng sẽ tham gia đấu giá Mỗi 1 lần đặtgiá, người dùng sẽ mất 1 khoản phí nhất định và mức giá sẽ tự động nhảy lên
1 bậc Giá sau= giá trước + bước nhảy giá Bước nhảy giá là do ta quy định từtrước Thời gian đấu giá sẽ được đếm lùi Khi thời gian lùi về khoảng thờigian động (ví dụ 15s cuối) thì mỗi lần người dùng đặt giá trong khoảng thờigian đó, thời gian động sẽ được reset lại Người thắng cuộc là người trả giácuối cùng khi thời gian lùi về đến 0
Để tham gia đấu giá, người dùng sẽ phải mua các gói đặt giá (10bid,20bid) Mỗi lần đặt giá, số lượt đặt giá còn lại sẽ bị trừ dần
Người dùng có thể sử dụng (bid agent = proxy bidding = automaticbidding) Hệ thống website sẽ tự động đặt giá hộ người dùng khi họ không cóthời gian ngồi trước màn hình Người dùng sẽ chọn gói đặt giá tự động(10bid, 20 bid…) và chọn mức giá cao nhất mà mình chấp nhận mua Khi đó
hệ thống sẽ tự động đặt giá hộ người dùng Mỗi khi có 1 người dùng khác đặtgiá và thời gian lùi về 4s, hệ thống sẽ tự động đặt giá hộ cho đến khi hết góiđặt giá và đạt đến mức giá cao nhất thì dừng
Mức giá người dùng phải trả là giá thắng + chi phí vận chuyển Vậythực chi của người dùng = giá thắng + chi phí đặt giá Các website trên thếgiới có 2 sự lựa chọn cho người dùng
+ Mua với giá thắng
Trang 12+ Trong trường hợp giá thắng + chi phí đặt giá > giá bán lẻ của sảnphẩm thì cho phép người dùng mua với giá bán lẻ và hoàn lại chi phí đặt giá.
1.2 Đặc điểm
- Công khai: bidder, mức giá, bước nhảy giá là công khai Thường thì
tên 3 bidder bid gần nhất sẽ hiển thị Mỗi lần người dùng đặt giá thì mức giá
sẽ tự động tăng lên và hiển thị ra ngoài
- Bước nhảy giá là rất nhỏ và phí mỗi lần bid là rất lớn
+ Mức giá khởi điểm và bước nhảy giá rất nhỏ là để thu hút người thamgia User thấy sản phẩm được bán với giá rất thấp (thường chỉ bằng 1/500 giátrị sản phẩm sau khi kết thúc đấu giá) sẽ rất hứng thú tham gia Đây cũng làđiểm mới lạ, hấp dẫn của hình thức này
+ Phí đặt giá lớn Phí đặt giá thường lớn hơn gấp nhiều lần so với bướcnhảy giá Mục đích là để ta có thể thu hồi vốn và có lãi khi bán sản phẩm vớigiá rẻ như vậy
- Website tham gia hình thức này muốn thành công thì phải:
+ Có cộng đồng lớn và nhanh chóng thu hút cộng đồng Người tham
gia càng đông thì phí thu được càng lớn >>> bù được khoản lỗ khi bán sảnphẩm với giá rẻ và có lãi
+ Minh bạch: Lo lắng của người dùng khi tham gia hình thức này là
tính minh bạch của website Người ta lo là website đấu giá sẽ tạo tài khoản ảo,
tự đấu giá để nâng mức giá lên hoặc để người mua không thể mua được sảnphẩm với giá rẻ Những trang web như thế kiểu gì cũng sẽ bị người dùng pháthiện và liệt kê vào danh sách các site bị tẩy chay và lưu truyền trên các forum,các trang reviews >>> Không dùng hình thức nhà cái tham gia đặt giá
1.3 Công thức tính
Ta có các tham số sau đối với mỗi sản phẩm
P: giá bán trên thị trường (giá bán lẻ) Đơn vị 10 000 VND
Po: giá khởi điểm Đơn vị 10 000 VND
Trang 13p: phí mỗi lần Đơn vị 10 000 VND
L: tổng số bid cho mỗi sản phẩm đó
r: bước nhảy giá Đơn vị 10 000 VND
Những yếu tố sau là giống nhau đối với mỗi sản phẩm
- r: Đúng như cái tên penny auction, bước nhảy giá ở mối sản phẩm sẽchỉ là 1 000 VND Trên thế giới thì r = 1 cent Vậy r = 0.1
- Thời gian động: 15s
Yếu tố quyết định nhất đối với sự thành công của website đấu giá kiểunày chính là L
L phụ thuộc vào các yếu tố gì?
+ Đặc tính của sản phẩm Sản phẩm càng hay, càng hot trên thị trườngthì càng thu hút người tham gia
+ Giá sản phẩm Quan sát các phiên đấu giá kết thúc thì nhận thấy giásản phẩm càng cao, L càng cao Do giá càng cao, người dùng thấy mức chênhlệch giữa P và giá thắng càng lớn >>> càng tham rẻ >>> càng thích tham gia
Với mỗi sản phẩm, để có thể hoà vốn thì:
P = Po + r * L + p * L = Po + L * (r + p)
Do Po nhỏ hơn rất nhiều so với P và r nhỏ hơn rất nhiều so với p nên ta
có thể đơn giản hoá như sau:
P = L * p
p = P/L
Tỷ lệ P/L và Po có thể tính ra con số trung bình dựa vào xác suất thống
kê Nếu có thời gian ta sẽ lấy dữ liệu của các phiên đấu giá kết thúc để tính racon số này
Ví dụ: http: //www.bidrivals.com/us/completed_auctions.html?page=1 Theo em ước tính, trong thời gian đầu, P/L = 2 Do đó p = 1.5 (tức là15.000VND) Mức giá này cũng là hợp lý Bằng giá khi người dùng chơi
Trang 14nhắn tin SMS Khi cộng đồng càng lớn thì P/L sẽ càng giảm, lợi nhuận củamình sẽ tăng.
Po = P/30
1.4 Sản phẩm được đem đấu giá
- Về mặt lý thuyết thì bất cứ sản phẩm nào cũng có thể đem đấu giátheo loại hình này Tuy nhiên nên chọn các mặt hàng:
+ Dễ bán, nhu cầu tiêu dùng cao
+ Giá trị vừa phải
- Khi site lớn mạnh rồi thì có thể bán những mặt hàng công nghệ, quần
áo, trang sức, phụ kiện
+ mặt hàng công nghệ dễ bán hơn vì có thông số kỹ thuật quy chuẩn >>tập trung hơn Có thể nhập hàng theo hình thức ký gửi Khi nào mình bánđược hàng mới nhập chính thức
+ Quần áo, trang sức, phụ kiện, mỹ phẩm khó bán hơn chút do nguồngốc xuất xứ và độ quy chuẩn chưa rõ ràng
2 Nail biter auction ( http: //www.junglecents.com/ )
2.1 Mô tả chung
Về mặt bản chất là tương đối giống penny auction Chỉ có một số điểmkhác biệt:
+ Thay vì trả phí cho mỗi lần đặt giá thì người chơi chỉ việc trả phí thamgia ban đầu (giống như là vé vào cửa) và được đặt giá bao nhiêu lần tuỳ thích
+ Mỗi sản phẩm sẽ có 1 số vé vào cửa nhất định Chỉ khi nào vé vàocửa đươc bán hết thì auction mới bắt đầu
+ Bước nhảy giá đối với mỗi sản phẩm khác nhau là khác nhau Sảnphẩm càng đắt tiền thì bước nhảy giá càng cao
+ Không đấu giá tự động được, phải ngồi chờ
2.2 Đặc điểm
- Hình thức này bộc lộ nhiều yếu điểm hơn so với penny auction
Trang 15http: //www.junglecents.com/page/how-it-works
- Như junglecent, người chơi phải đợi đến khi vé vào cửa được bán hếtthì mới đấu giá được , chỉ mua được chỗ lúc đó thôi>>> đợi lâu, mất thờigian, ham muốn sản phẩm giảm xuống
Nếu chỗ không bán hết thì sao? >>> Cái này mình có thể cải tiến:không nhất thiết phải đợi hết vé mới bắt đầu đấu giá Bắt đầu lúc nào cũngđược và người tham gia mua vé lúc nào cũng được, không giới hạn số chỗ
- Bước nhảy giá đối với mỗi sản phẩm khác nhau là khác nhau Sảnphẩm càng đắt tiền thì bước nhảy giá càng cao >>> giá thắng sẽ cao, gần vớigiá bán lẻ >>> Mất đi bản chất của penny auction là giá cực thấp, bước nhảythấp >>> Khó thu hút người dùng, và khoảng thời gian động cũng khó thu hútngười dùng vì lúc đó giá cũng đã cao rồi >>> Chẳng khác gì đấu giá lênthông thường
- Nếu để bước nhảy thấp như penny aution thì tiền bán vé không đủ để
bù lại chênh lệch giá thắng và giá bán lẻ Nếu nâng giá vé lên quá cao thì ítngười mua Trong khi đó phí bid ở mức vừa phải, đến cuối auction, ngườidùng hăng máu lên thì sẵn sàng mua nhiều bid
- Không cho đấu giá tự động Bỏ đi đấu giá tự động là bỏ đi 1 tiện íchcho người dùng và hạn chế những người ít thời gian Những người nhiều thờigian thì vẫn có thể single bid được Còn những người bận rộn thì sẽ ít thamgia User thì cũng giới hạn bởi sức lực, quỹ thời gian >>> Không cho đấu giá
tự động sẽ hạn chế cộng đồng tham gia Ngay cả đấu giá lên bình thường nhưeBay họ cũng có đấu giá tự động gọi là proxy bidding
- Bước nhảy: trong trường hợp này bước nhảy giá không hề mang lạilợi cho ta như penny auction là rõ ràng và không mang lại lợi cho người thamgia Ví dụ user muốn bid cao hơn current bid là 10 bước nhảy thì phải ấn bid
10 lần >>> mất thời gian Nên cải tiến là cho user được tự đặt giá và mức giá
Trang 16->>> Chính bởi những yếu điểm đó nên junglecents khó phát triển, sốlượt truy cập mỗi ngày tầm 1000 >>> quá ít Truy cập là vậy chứ chơi thìchẳng có mấy hơn nữa hiện tại website này có quá ít sản phẩm, chợ vắng vẻthì làm sao thu hút được người đi chợ.
>>> Nên quy về đấu giá lên bình thường, nhưng có reset time và aitham gia thì mua vé, không giới hạn số vé, số bid Mua vé lúc nào cũng được
2.3 Công thức tính
Ta có các tham số sau đối với mỗi sản phẩm
P: giá bán trên thị trường (giá bán lẻ)
Po: giá khởi điểm
P1: giá thắng
V: tổng số người tham gia
r: bước nhảy giá
Với mỗi sản phẩm, để hoà vốn thì:
P = P1 + V * pĐối với hình thức này thì P1 thường xấp xỉ P
Theo em thì có thể để:
Po = P/30
V = r = P/100
2.4 Loại sản phẩm bán
Tương tự penny Auction
III KỊCH BẢN CHƯƠNG TRÌNH ĐẤU GIÁ TRỰC TUYẾN
1 Mô tả chung
Đây là hệ thống đấu giá tương tác trực tuyến trên mạng Internet, sảnphẩm sẽ được đưa ra để người dùng đấu giá Người trả giá sau cùng vàchiến thắng trong cuộc đấu giá sẽ là người có quyền mua sản phẩm củacuộc đấu giá
Trang 172 Cách thức chơi
2.1 Tham gia và tạo tài khoản để đấu giá
Trước khi người chơi tham gia vào hệ thống đấu giá của VBID, ngườichơi phải mua các quyền đấu giá Quyền đấu giá, được gọi là Bid, được ngườichơi mua trực tiếp của công ty Sau khi người chơi hoàn tất thanh toán vớicông ty, thì tài khoản người chơi sẽ có số quyền đấu giá tương đương với sốtiền người chơi đã trả
Mỗi lần trả giá cho sản phẩm, tài khoản người chơi sẽ mất một quyềnđấu giá
2.2 Đấu giá và Hệ thống đấu giá tự động
Người chơi có thể đấu giá sản phẩm bằng 2 cách Đấu giá bằng trựctiếp hoặc để hệ thống đấu giá tự động
- Hệ thống đấu giá tự động sẽ thay thế người chơi đấu giá tự động sảnphẩm trong trường hợp họ không có mặt tại thời điểm đấu giá Hệ thống đấugiá sẽ tự động nhập quyền đấu giá theo số lượng quyền đấu giá và giá tiền caonhất mà người chơi muốn trả cho sản phẩm
- Người chơi tham gia đấu giá sản phẩm trực tiếp với người chơi kháctheo thời gian thực
2.3 Cuộc đấu giá hoạt động thế nào?
Với mỗi lần người chơi đấu giá, họ sẽ mất đi một quyền đấu giá trongtài khoản của mình, đồng thời giá của sản phẩm họ đấu giá sẽ tăng lên theomột định mức VBID xác định Khi người chơi đấu giá, họ sẽ có cơ hội sở hữusản phẩm với mức giá của cuộc đấu giá khi cuộc đấu giá kết thúc Tuy nhiên,
họ sẽ là người thắng cuộc đấu giá chỉ khi cuộc đấu giá kết thúc và là ngườicuối cùng của cuộc đấu giá
10 giây cuối cùng của cuộc đấu giá sẽ là thời gian lặp lại Nếu trongthời gian lặp lại, có người tiếp tục đấu giá cho sản phẩm, thì thời gian kết thúc
Trang 18cuộc đấu giá sẽ tự động cộng thêm ( thường là … giây) Cuộc đấu giá sẽ chỉkết thúc khi không có ai đấu giá và thời gian lặp lại bằng 0 Người chơi nào làngười đấu giá cuối cùng sẽ là người chiến thắng sản phẩm
Tất cả những đấu giá sau khi cuộc đấu giá kết thúc sẽ không tính
2.4 Kết thúc cuộc đấu giá / Thanh toán
Sau khi cuộc đấu giá kết thúc, người trả giá cuối cùng (Người thắngcuộc đấu giá) sẽ vào Tài khoản của họ Tại đây, thông tin cuộc đấu giá hiển thịchi tiết, bao gồm tổng số tiền (giá sản phẩm tại thời điểm cuộc đấu giá kết thúc
và giá vận chuyển sản phẩm nếu người thắng không đến lấy trực tiếp) ngườithắng phải trả cho VBID để nhận được sản phẩm thắng và cách thức trả tiền
2.5 Vận chuyển sản phẩm cho người thắng cuộc
Sau khi người thắng chọn mục chấp nhận sản phẩm, họ có thể đến trựctiếp tại các điểm giao dịch của VBID để thanh toán và nhận sản phẩm hoặc họthanh toán tiền vận chuyển và VBID sẽ chuyển sản phẩm đến người thắng
Trang 19Chương III
PHÂN TÍCH THIẾT KẾ VÀ CÀI ĐẶT CHƯƠNG TRÌNH
I PHÂN TÍCH THIẾT KẾ HỆ THỐNG
1 Phân tích hệ thống về mặt chức năng
1.1 Biểu đồ phân cấp chức năng
1.2 Biểu đồ luồng dữ liệu
Biểu đồ luồng dữ liệu là phương tiện diễn tả chức năng xử lý và việctrao đổi thông tin giữa các chức năng
Website Auctions
Báo cáo thống kêQuản lý người dùngQuản lý nội dungQuản lý đấu giá
Quản lý sản phẩmĐăng ký tài khoản
Quản lý đặt giá
Hiện danh sách đấu giá
Quản lý tài khoản
Trang 20Tên chức năng
Các ký hiệu được dùng trong biểu đồ
+ Luồng dữ liệu: Là một tuyến truyền dẫn thông tin vào hay ra một
+ Tác nhân ngoài: Một tác nhân ngoài là một thực thể ngoài hệ thống,
có trao đổi thông tin với hệ thống
Kí hiệu:
Tên luồng dữ liệu
Tên kho dữ liệu
Tên tác nhân ngoài
Trang 211.2.1 Biểu đồ luồng dữ liệu mức khung cảnh
User
AuctionManagerSite
Cập nhậtthông tin
Đáp ứngyêu cầuGửi yêu cầu
yêu cầu
Gửi yêu cầu
Đáp ứngyêu cầu
Trang 221.2.2 Biểu đồ luồng dữ liệu mức đỉnh:
- FrontEnd: Phần giao tiếp người dùng
Chú thích:
1: Cập nhật thông tin tài khoản
2: Thông báo kết quả
3: Đặt giá sản phẩm
4: Thông báo kết quả
5: Gửi yêu cầu xem đấu giá
User
Đăng ký
tài khoản
Quản lýđặt giá
Kho dữ liệu
User
42
75
Trang 23- BackEnd: Phần quản trị
Chú thích:
1: Cập nhật thông tin sản phẩm2: Gửi yêu cầu tìm kiếm
3: Cập nhật thông tin đấu giá4: Đáp ứng yêu cầu tìm kiếm5: Cập nhật nội dung
6: Tìm kiếm nội dung7: Yêu cầu báo cáo thống kê8: Đáp ứng yêu cầu
9: Cập nhật thông tin cấu hình
Quản lý nội dung
Báo cáo thống
kê
Cấu hình hệ thống
Kho dữ liệu
Admin
Quản lý sản phẩm
Quản lý đấu giá
87
7
84
9
1 4
2
2
2
Trang 241.2.3 Sơ đồ một số chức năng chính chi tiết
Trang 25Auction Manager Site
Trang 26- FrontEnd:
Phần FrontEnd sẽ tương tác trực tiếp với người dùng, thực hiện cácchức năng:
-Đăng ký tài khoản: Tạo tài khoản mới để có thể đặt bid
-Quản lý đặt giá: Xử lý sử kiện đặt bid, các sự kiện liên quan đến cuộcđấu giá
DisplayProductInterest
DisplayWiner
DisplayHistory
DislayAccountConsulting DisplayProductAuctionEndSoon
Trang 27uc Product
User
(from Actors)
DisplayProductDetail DisplayHistory
«extend» «extend»
«extend»
«include»
Trang 282 Phân tích hệ thống về mặt dữ liệu
Dựa vào các thông tin cần lưu trữ, sau khi tiến hành chuẩn hoá để đảmbảo không dư thừa và mất mát thông tin, ta có được các thực thể sau:
-Bảng Account: Chứa thông tin tài khoản
Trang 29- AccountConsulting: Tài khoản tư vấn
Trang 30- AuctionsAccount: tài khoản tham gia đấu giá
Trang 31- BidOrder: Chi tiết lượt đấu giá
Trang 32- GiveBids: Lưu bid đã mua
Trang 33- HelpLanguage: Chi tiết trợ giúp