1. Trang chủ
  2. » Luận Văn - Báo Cáo

ứng dụng công nghệ json 2.0 xây dựng website đấu giá trực tuyến

68 464 0
Tài liệu được quét OCR, nội dung có thể không chính xác

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

Trang 1

TRONG DAI HOC VINH

KHOA CONG NGHE THONG TIN

LÊ THỊ PHƯỢNG

UNG DUNG CONG NGHE JSON 2.0 XÂY DỤNG WEBSITE ĐẤU GIÁ TRUC

TUYẾN

Trang 2

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 nhưng một điều quan trọng ở đây là

không chỉ đơ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 ứng dụng này đã làm cho các phần của chương trình trở nên độc lập hơn,

đáng tin cậ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ơn trong 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ụng thêm công nghệ khác để có thể giải quyết được một cách tối ưu nhất

Riêng đối vớ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ệc là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 script JSON 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 cho phép nhưng chắc chắn sẽ không tránh khỏi những thiếu sót Em rất mong

nhậ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

Trang 4

Chươ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ả đữ liệu theo object

oriented

Tại sao JSON có liên quan dé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ích phứ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ất nhiề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ập trì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ượng

một cách đơn giản và ngắn gọn Để hiểu được JSON, trước hết ta tìm hiểu xem 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 đặt

một mảng mới khá đơn giản, ví dụ: myArray = new Array();

myLibrary.books = new Array();

Trang 5

Khá giống với các ngôn ngữ như Java hay C, JavaScript cho phép khai

bá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ủa mảng: family=new Array(4); family[0] = “Tom”; Hoặc thậm trí ta có thể kết hợp với một giá trị khóa như sau: family["father"]E”Tom”;

Tất nhiên ta có thể gán bất cứ giá trị nào cho mảng thậm trí là một object, bởi JavaScript là một ngôn ngữ có kiểu khá lỏng lẻo Cách khởi tạo

giá trị mảng như trên có vẻ nhanh gọn, nhưng nếu như mảng của chúng ta khá

lớn và phức tạp thì việc khai báo như vậy sẽ rất tẻ nhạt Một cách khác để để

khởi tạo các giá trị ban đầu cho mảng là sử dụng cặp ngoặc vuông [ ]: family=["Tom","Jery","Jack","Timy"]; Hoặc nếu dùng cặp đấu { } kết hợp với giá trị khóa như sau: family={ farther: “Tom”, mother: “Jery”, first_son: “Jack”, second_son: “Timy” bs

Đâ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é ding cap dau

“ 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 đối

Trang 6

topleft: { x: 1, y: 2 }, width: 5, height: 10 bs /Khi đó

alert(rectangle.topleft.x); // sẽ đưa ra giá tri 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: var rectangle={ /Thuộc tính topleft: { x: 1, y: 2 }, width: 5, height: 10, //Phuong thức area: function() t return this width*this height; } b /Khi đó

alert(rectangle.topleft.x); // sẽ đưa ra giá tri 1

alert(rectangle.area()); // sé dua ra giá trị 50

Trong ví dụ trên, ta sử đụng từ khóa this để truy cập vào các thuộc tính vừ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ả

Trang 7

hai phương pháp trên Tuy nhiên, nếu ta thường xuyên phải sử dụng, cũng

như với rất nhiều đối tượng trong chương trình thì cả hai phương pháp trên

tỏ 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ực

hiệ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ử đụ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ếp

giá trị theo tên (khóa) được định nghĩa trong JSON Ví dụ: Ta có một dữ liệu XML: <data> <x>2</x> <y>3</y> </data>

Sử dụng JavaScript để đọc đữ liệu này, ta phải qua một bước phân tích, đưa văn bản XML thành một đối tượng đữ liệu và đọc dữ liệu theo nodes Giả

sử object của ta là xmIObj, ta muốn lấy dữ liệu x và y ta sẽ gọi: var x = xmlObj.childNodes[0].text;

var y = xmlObj.childNodes[1 ].text;

Trong trường hợp tương tự, ta có một dữ liệu JSON:

Trang 8

II SU DUNG JSON TRONG AJAX RESPONSE

Ta cé thé ding JSON trong bất kì việc gì ta muốn như cách ta dùng

XML vậy, nhưng ở đây em muốn đề cập ứng dụng của nó trong Ajax application

1 Tạo và truy xuất JSON trong Ajax application (both server & client side)

1.1 Tao response data va send về client

Như ta đã biết trong Ajax application, client sé send XMLHttpRequest đến server, server sé handle request va tra vé response, response cé thé là

plain text, xml, js, json

VD: chung ta define 1 java bean co 2 properties nhu sau: public class Customer {

private String id;

private String name;

Trang 9

</Customer>

Nếu diễn dat object customer dudi dang JSON, thi:

{id: "abc", name: "sabrina"}

— > Cả JSON va XML đều có tính đễ đọc, JSON chiếm dụng bộ nhớ

it hon XML

Dé tao 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: ding JAXB tao ra xml tir java object

JAXBContext jaxbContext =

JAXBContext.newInstance("com.giaodn.booksearchdemo");

Marshaller marshaller = j axbContext.createMarshaller();

marshaller.marshal(customer, response getOutputStream());

Để tạo ra JSON response như trên ta cũng có thể cộng cac String lại với

nhau, hoặc dùng library,

VD: tao ra JSON response diing Json-lib

response.getWriter() write(JSON Object from Object(customer).toString());

1.2 Handle data 6 phia client

Nếu ta quyết định ding XML 1a reponse data, thi ta phai dùng

javascript dé traverse cay DOM(Document Object Model) va lay ra tirng node

bang DOM api document.getElementByld("id");

Nếu dùng JSON thì ta dùng hàm eval() ctia javascript dé evaluate JSON data thanh javascript object:

var jsonRep = eval(respondText); Sau đó ta sẽ truy xuat data tir js object:

Trang 10

Chương H

TONG QUAN VE DE TAI

I GIOI THIEU VE DAU GIA TRUC TUYEN

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 đấu

giá 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:

e_ Đấ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ông

khai 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 Cost High Bid Winner Í Price s) Time

e Dau gid 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 11

nà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ọng

bá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á được giá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 DGTT:

e_ Không ràng buộc về mặt thời gian: Các sản phẩm được liệt kê trong

một khoảng thời gian nhất định (tùy theo người bán), trong khoảng thời gian

này người tham gia đấu giá có thê đặt giá vào bất kỳ lúc nào

e©_ 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

e©_ Sức mạnh của tương tác xã hội: Tương tác xã hội mà liên quan đến

quá trình đấu giá thì giống như việc đánh bạc Những người đấu giá chờ đợi

trong 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ười

tham gia đặt giá chủ yếu để "chơi trò chơi" chứ không muốn giành được

mó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ềm

năng của eBay

e_ Số lượng người đấu giá lớn: Bởi vì tiềm năng có giá thấp, hàng hóa

va dich vụ đa dạng, dễ dàng tham gia và lợi ích xã hội của quá trình đấu giá e Số lượng người bán hàng lớn: Bởi vì có nhiều người tham gia đặt

giá, có thê đạt được giá cao, giảm chỉ phí bán hàng, đễ bn bán

e© 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ẽ

Trang 12

II TONG QUAN MO HINH DAU GIA KIEU 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 M6 ta 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 I lần đặt

giá, người dùng sẽ mất I 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ời gian động (ví dụ 15s cuối) thì mỗi lần người dùng đặt giá trong khoảng thời

gian đó, 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 = automatic bidding) Hệ thống website sẽ tự động đặt giá hộ người đù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ó I người dùng khác đặt

giá 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ậy

thực chi của người dùng = giá thắng + chỉ 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 13

+ Trong trường hợp giá thắng + chỉ phí đặt giá > giá bán lẻ của sản phẩ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 tham gia 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ước

nhả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ới giá 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ản phẩ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ản phẩm với giá rẻ Những trang web như thế kiểu gì cũng sẽ bị người dùng phát

hiệ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

Trang 14

Po: giá khởi điểm Đơn vị 10 000 VND

p: 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 nhay gia Don vi 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 Vay 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ểu

này chính là L

L phụ thuộc vào các yếu tố gi?

+ Đặc tính của sản phẩm Sản phâm càng hay, càng hot trên thị trường thì 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ênh

lệ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*(rtp)

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 va Po co thé tinh 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 đữ liệu của các phiên đấu giá kết thúc đề tính ra

con số này

Vi du: http: //www.bidrivals.com/us/completed_auctions.html?page=1

Trang 15

Theo em ước tính, trong thời gian đầu, P/L = 2 Do đó p = I.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 nhắn tin SMS Khi cộng đồng càng lớn thì P/L sẽ càng giảm, lợi nhuận của mì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ệ đễ 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ồn gốc xuất xứ và độ quy chuẩn chưa rõ ràng

2 Nail biter auction (http: //www.junglecents.com/ ) 2.1 M6 ta chung

Về mặt bản chất là tương đối giống penny auction Chỉ có một số điểm khác biệt:

+ Thay vì trả phí cho mỗi lần đặt giá thì người chơi chỉ việc trả phí tham gia 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ào cửa được bán hết thì auction mới bắt đầu

Trang 16

+ 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 http: //www.junglecents.com/page/how-it-works

- Nhu junglecent, người chơi phải đợi đến khi vé vào cửa được bán hết

thì mới đấu giá được , chỉ mua được chỗ lúc đó thôi>>> đợi lâu, mắt thời

gian, 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ản

phẩm càng đắt tiền thì bước nhảy giá càng cao >>> giá thắng sẽ cao, gần với giá bán lẻ >>> Mắt đi bản chất của penny auction là giá cực thấp, bước nhảy thấp >>> Khó thu hút người dùng, và khoảng thời gian động cũng khó thu hút

người dùng vì lúc đó giá cũng đã cao rồi >>> Chăng khác gì đấu giá lên

thô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ì ít người mua Trong khi đó phí bid ở mức vừa phải, đến cuối auction, người

dù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 ích

cho người dùng và hạn chế những người ít thời gian Những người nhiều thời gian thì vẫn có thể single bid được Còn những người bận rộn thì sẽ ít tham

gia 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

Trang 17

- Bước nhảy: trong trường hợp này bước nhảy giá không hề mang lại

lợi cho ta như penny auction là rõ ràng và không mang lại lợi cho người tham

gia 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á

sau >= mức giá trước + bước nhảy giá

->>> 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à ai tham 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

PI: giá thắng

V: tổng số người tham gia r: bước nhảy giá

Trang 18

III KICH BAN CHUONG TRINH DAU GIA TRUC TUYẾN

1 M6 ta chung

Đây là hệ thống đấu giá tương tác trực tuyến trên mạng Internet, san

phẩ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ủa

cuộc đấu giá

2 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ười

chơi phải mua các quyền đấu giá Quyền đấu giá, được gọi là Bid, được người chơi mua trực tiếp của công ty Sau khi người chơi hồn tất thanh tốn với cô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ực tiế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ản

phẩm trong trường hợp họ không có mặt tại thời điểm đấu giá Hệ thống đấu giá sẽ tự động nhập quyền đấu giá theo số lượng quyền đấu giá và giá tiền cao nhấ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ác theo thời gian thực

Trang 19

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á trong

tà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 theo

một định mức VBID xác định Khi người chơi đấu giá, họ sẽ có cơ hội sở hữu

sả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ười

cuố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 trong

thờ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

cuộ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ắng cuộ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ười thắ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

Trang 20

Chương HH

PHAN TICH THIET KE VA CAI DAT CHUONG TRÌNH

I PHAN TICH THIET KE HE THONG 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 Website Auctions FrontEnd BackEnd

Đăng ký tài khoản Quản lý sản phẩm

Ly Quản lý đặt giá Quản lý đấu giá

»| Hiện danh sách đấu giá Quản lý nội dung

—*\ Quan ly tai khoản ,| Quản lý người dùng

Báo cáo thống kê

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ệc trao đôi thông tin giữa các chức năng

Trang 21

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 chức năng nào đó Ký hiệu: ` Tên luông dữ liệu ——————— > + Chức năng: Là một quá trình biến đồi đữ liệu Kí hiệu: Tên chức năng + Các kho dữ liệu: Là một dữ liệu được lưu lại, để có thể được truy cập nhiều lần về sau Kí hiệu:

Tên kho dữ liệu

+ 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 tác nhân ngoài

Trang 22

1.2.1 Biếu đồ luồng dữ liệu mức khung cảnh Dap tng Cap nhat Admin - ar yéu cau thong tin User

Gửi yêu câu

Gửi yêu câu | Dap ting Website Auctions

Gửi yêu cầu

Trang 23

1.2.2 Biểu đồ luồng dữ liệu mức đính:

- FrontEnd: Phần giao tiếp người dùng | User 3 4 A Ỷ Đăng ký tài khoản Kho dữ liệu ` Hiện danh sách Quản lý tài khoản đấu eo 6 8 x a User Chi thich:

1: Cap nhat thong tin tai khoan : Thông báo kết qua

: Đặt giá sản phẩm

Trang 24

§: Đáp ứng yêu cầu - BackEnd: Phan quan tri AuctionsManager AuctionManagerSite 2 Admin Quan tý sản Quản lý nội pham dung r Kho dữ liệu 2 4 ———— Cấu hình hệ Báo ve thong théng é Admin 2 AuctionManagerSite AuctionsManager Chi thich: 1: Cập nhật thông tin sản phẩm

: Gửi yêu cầu tìm kiếm

: Cập nhật thông tin đấu giá

: Đáp ứng yêu cầu tìm kiếm : Cập nhật nội dung

Trang 25

9: Cập nhật thông tin cấu hình

1.2.3 Sơ đồ một số chức năng chính chỉ tiết

- BackEnd:

Phần BackEnd sẽ quản trị toàn bộ website đấu giá Nó bao gồm các

nghiệp vụ sau:

- Cấu hình hệ thống: Bao gồm việc quản lý menu, phân quyền trên hệ thống, quản lý người dùng thiết lập các thông số hoạt động cho nghiệp vụ đầu gia uc AccountMgmtByAdmin 7 c3 7 N ` \ \ «indude» Z ' (from Actors) / C=) «eend» “ ` (robogin) i / “2 L O /ˆ sefend» in incl tuden ` Ì —_ Ke ` Admin —Y ~cextend» «includer «extends ~~_ ~ ` VOSS 0 ^ ⁄/7//ðmUse Case Model) 4 \ \ «@etde ` > ⁄⁄ 746 7 ` - 7 ⁄ ⁄ ` `

- Quản lý sản phâm: Bao gôm việc thêm mới, sửa, xóa sản phâm sẽ tham gia đấu giá

Trang 27

- FrontEnd:

Phần FrontEnd sẽ tương tác trực tiếp với người dùng, thực hiện các

chức năng:

-Đăng ký tài khoản: Tạo tài khoản mới để có thể đặt bid

Trang 29

2 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á để đảm bảo không dư thừa và mắt mát thông tin, ta có được các thực thể sau:

Trang 38

PaygateName nvarchar 40 - Role: Quyền trong hệ thống RoleID int 4 Name nvarchar 100 Description nvarchar 400

I VAN DE CAN GIAI QUYET

Việc cài đặt chương trình đặt ra các vấn đề cần giải quyết như sau:

1 Làm sao để request trang liên tục?

Hệ thống chạy theo thời gian thực nên thông tin luôn thay đổi theo thời gian Và mỗi lần người chơi đặt bid cdc thông tin lại bị thay đổi Vì vậy cần request trang liên tục đề cập nhật thông tin

2 Xứ lý đa luồng?

Việc request trang liên tục dẫn đến các request lên server là rất lớn

Điều này làm cho hệ thống bị chậm, hoặc chạy không ồn định và có thể dẫn

đến bị chết hệ thống Với việc xử lý đa luồng, mỗi công việc sẽ thực hiện trên một thread riêng, làm cho hệ thống được tăng tốc và ồn định

3 View ánh sản phẩm

Đây là website thương mại điện tử, phục vụ nhu cầu mua bán sản phẩm

trực tuyến, nên việc view ảnh sản phẩm cho người dùng là rất quan trọng Cần

chọn một hình thức view ảnh mang lại nhiều tiện lợi nhất cho người dùng Trong website này, sẽ sử dụng công nghệ View ảnh DeepZoom

4 Thanh toán trực tuyến

Trong thương mại điện tử, thanh toán trực tuyến là khâu cuối cùng khi

người bán và người mua đã thống nhất giá ca và sản phẩm Có thể sử dụng

nhiều hình thức thanh toán trực tuyến bằng cách sử dụng các dịch vụ của các

ngân hàng và các trang web thương mại

Trang 39

II GIÁI PHÁP DUA RA

1 Sử dụng công nghệ JSON để thực hiện request trang liên tục

Ta sẽ viết một hàm “UpdateAuctions” đặt trong tệp js Hàm này sẽ thực hiện nhiệm vụ request trang liên tục

function UpdateAuctions(param) {

$.ajax({

type: "POST",

url: "/GetData.aspx?param=" + param,

contentType: "application/json; charset=utf-8",

dataType: "json",

success: function(response) { if (response != null) {

Trang 40

}

var TimeRemain = 'div#TimeRemain_'+ response[i].id;

var isProductNew = $(TimeRemain).attr("innerHTML");

if (isProductNew == null) { //window.location.reload(true);

}

var PriceNow = 'div#PriceNow_' + response[i].id;

var Bidder = 'div#Bidder_'+ response[i].id; var MyBidder = 'div#MyBidder_' + response[i].id; var PriceNowOld = $(PriceNow).attr("innerHTML"); if(PriceNowOld != null) t PriceNowOld = jQuery.trim(PriceNowOld.replace(" VND", ™)); var PriceNowNew = response[i].p; $(TotalSecondOld).attr("innerHTML", TotalSecond); $(TimeRemain).attr("innerHTML", CaculatorTime(TotalSecond)); $(PriceNow).attr("innerHTML", response[i].p +" VND");

$(Bidder).attr("innerHTML", '<p>1 <a href="/blog/' + response[i].b[0] + '/index.htm">' + response[i].b[0] + '</a></p><p>2 <a href="/blog/' + response[i].b[1] + '/index.htm">' + response[i].b[1] + '</a></p><p>3 <a href="/blog/' + response[i].b[2] + '/index.htm">' + response[i].b[2] + '</a></p>');

Ngày đăng: 27/11/2014, 22:45

TỪ KHÓA LIÊN QUAN

w