THIẾT KẾ VÀ HIỆN THỰC CHƯƠNG TRÌNH QUẢN LÝ QUẢNG CÁO TRÊN TRANG WEB - Pdf 31

TRƯỜNG ĐẠI HỌC KỸ THUẬT
KHOA CÔNG NGHỆ THÔNG TIN
* * *
LUẬN VĂN TỐT NGHIỆP
Đề tài :
THIẾT KẾ VÀ HIỆN THỰC
CHƯƠNG TRÌNH QUẢN LÝ QUẢNG CÁO
TRÊN TRANG WEB
Giáo viên hướng dẫn : Ts. NGUYỄN VĂN HIỆP
Sinh viên thực hiện : VŨ NGỌC PHAN
Khoá : 1995 – 2000
Lời cảm ơn
Xin chân thành cám ơn :
- Thầy Nguyễn Văn Hiệp – giảng viên Khoa Công Nghệ Thông Tin
trường Đại Học Kỹ Thuật Tp. Hồ Chí Minh đã tận tình hướng dẫn
em hoàn thành luận văn này.
Trân trọng gởi lời cám ơn đến :
- Ban Giám Hiệu, các thầy cô trường Đại Học Kỹ Thuật Tp. Hồ Chí
Minh
- Ban chủ nhiệm và các thầy cô trong Khoa Công Nghệ Thông Tin
Đã tận tình dạy chỗ em trong suốt thời gian học tập tại trường.
Và tôi cũng xin gởi lời cám ơn đến các bạn cùng khoá đã nhiệt tình giúp đỡ tôi
trong thời gian qua.
NỘI DUNG
Lời cảm ơn
Nội dung
Lời nói đầu
Phần mở đầu...........................................................................................................................1
I. Phương hướng tiếp cận đề tài................................................................................2
II. Mục đích của đề tài...............................................................................................3
III. Yêu cầu của đề tài................................................................................................3

II. Chiến lược quảng cáo.................................................................................................42
1. Dạng file của Ad banner..................................................................................42
2. Alt Text............................................................................................................42
3. Đưa ad banner ra trang web.............................................................................43
4. Sắp xếp Ad banner..........................................................................................43
PHẦN 2 : HIỆN THỰC CHƯƠNG TRÌNH
CHƯƠNG 1 : PHÂN TÍCH CHƯƠNG TRÌNH.....................................................................46
I. Phân tích chương trình..................................................................................................46
1. Advertiser .......................................................................................................47
2. Campaign ........................................................................................................47
3. Advertisement.................................................................................................48
II. Mô tả chương trình .....................................................................................................49
1. Phía Advertiser ...............................................................................................49
2. Phía AdMaster.................................................................................................50
CHƯƠNG 2 :THIẾT KẾ CHƯƠNG TRÌNH.........................................................................52
I. Cơ sở dữ liệu ...............................................................................................................52
1. Tổ chức cơ sở dữ liệu.......................................................................................52
2. Các store procedure.........................................................................................59
II. Giải thuật đưa banner quảng cáo ra trang Web..........................................................63
1. Giải thuật tạo số ngẫu nhiên............................................................................63
2. Giải thuật chọn ad banner trong nhóm.............................................................64
III. Các thành phần chính của AdServer.........................................................................66
1. Advertiser........................................................................................................66
2. AdMaster.........................................................................................................66
3. Ad-Server........................................................................................................66
4. Quy trình thực hiện..........................................................................................68
Kết luận ...............................................................................................................................92
Phụ lục..................................................................................................................................93
Tài liệu tham khảo..............................................................................................................111
Lời mở đầu

Hệ thống quản lý quảng cáo trên Web được phát triển dựa trên mô hình
Client/Server. Giao tiếp giữa client và server thông qua CGI, là một chuẩn
giao tiếp chung giữa browser và server.
1. Các bước tiếp cận đề tài :
Ban đầu, khái niệm quảng cáo trên Web đối với em hết sức mơ hồ và xa lạ. Để có
khái niệm và biết cách thức hoạt động của các hệ thống quản lý quảng cáo trên
Web, em đã tham khảo một số Web site hiện thực loại hình quảng cáo này như :
DoubleClick, AdServer. . . , tham khảo thành phần AdServer trong gói phần mềm
Microsoft Site Server.
Ngoài những đặc điểm tương tự như quảng cáo bằng các phương tiện thông thường
như : báo chí, truyền hình. . . Quảng cáo trên Web còn đem lại cho ta khả năng nắm
bắt thông tin khách hàng tốt hơn, nhanh chóng và chính xác hơn. Ngoài ra, chi phí
bỏ ra cho quảng cáo trên Web lại rẻ hơn nhiều so với các loại quảng cáo khác.
2. Nghiên cứu các công cụ lập trình trên Web :
- Để tạo trang Web hoàn chỉnh và liên kết chúng với nhau, ở đây ta sử dụng ngôn
ngữ HTML, JavaScript, cũng như các liên kết và Method trong một form HTML.
- Để thao tác với Cơ sở dữ liệu trên server từ Browser, ta sử dụng các CGI scripts
giao tiếp với Database server thông qua lớp vỏ và các lệnh của nó.
- Cơ sở dữ liệu trên server là một database Server (cụ thể là SQL Server phiên bản
7.0)
- Vì chương trình hiện thực trên môi Microsoft Windows nên sẽ được viết bằng
Visual C++, sử dụng Wizard ISAPI Extension, một phương tiện tương đương với
CGI nhưng chạy nhanh hơn CGI, chạy rất ổn đònh đối với lượng tải lớn và truy xuất
cơ sở dữ liệu khá nhanh.
II. Mục đích của đề tài :
Đề tài được thực hiện nhằm mục đích:
- Nghiên cứu và hệ thống hoá nguyên tắc, kỹ thuật tổ chức một chương trình quản lý
quảng cáo trên Web.
- Nghiên cứu cơ chế CGI và áp dụng cơ chế này vào đề tài thông qua chương trình
trên.

server nhận yêu cầu thông qua giao thức dòch chuyển siêu văn bản (HTTP) và trả về thông
Client
Request
Response
ServerDatabase Server
- Quản lý dữ liệu
- Lệnh SQL truy xuất database
- Chương trình ứng dụng
Application Server
Client
tin cần thiết trong dạng HTML mà client có thể hiểu được. Tương tự như mô hình client-
server, ta có thể phân bố việc xử lý ứng dụng và quản lý cơ sở dữ liệu thành từng phần với
những mức độ khác nhau giữa máy client và máy server. Hình1.3 mô tả cấu trúc của một
ứng dụng web điển hình :
Hình 1.3 Mô hình web điển hình
So với ứng dụng client - server, ưu điểm chính của ứng dụng trên web là việc triển
khai ứng dụng. Với ứng dụng client-server, ta phải cài đặt lại thành phần trên client mỗi khi
thay đổi và cập nhật ứng dụng. Trong một ứng dụng web, với mỗi tính năng hay việc cập
nhật mới ứng dụng, ta không phải đưa ra một chương trình thực thi mới trên mỗi máy
desktop của người sử dụng. Browser phục vụ như là client chung, cung cấp việc truy cập tới
thông tin hiện có trên server. Chi phí trong việc kiểm soát phiên bản, phân bố phần mềm,
và quản trò hệ thống giảm đi rất nhiều đối với ứng dụng trên Web. Hình 1.4 mô tả cấu hình
cơ bản của ứng dụng trên Web
Hình 1.4 Cấu hình cơ bản của ứng dụng trên Web
Client

Server

Web server
Internet/Intranet
Network
Application Server
Application Server
Network
Databas
e
Web Browser
Web Browser
Internet/Intrane
t
Network
Networ
k
User Interface
User Interface
Application Server
Application Server
Data service objects
Data service objects
Web server
Web server
Business Objects
Business Objects
Web Interface
Web Interface
Databas
e
Đối với Web server, thay vì user-interface, ta sẽ có Web-interface. Đây là một lớp

AUTH_PASS
-Lấy password tương ứng với REMOTE_USER được cung cấp
từ client. Nó là một chuỗi kết thúc bằng ký hiệu null.
AUTH_TYPE
-Một phương thức yêu cầu user name và password. Nếu là xác
nhận Basic, chuỗi sẽ là "Basic". Đối với WindowsNT
Challenge/Response, chuỗi sẽ là "NTLM". Những xác nhận
khác sẽ có những chuỗi khác tương ứng. Nếu chuỗi rỗng thì
không có xác nhận nào được sử dụng.
CONTENT_LENGTH
-Chiều dài (theo ki tự) của dữ liệu đang được gởi tới bởi client
dùng phương thức POST.
CONTENT_TYPE
-Cách thức thông tin được gửi đi từ client nếu sử dụng phương
thức POST.
GATEWAY_INTERFA
CE
-Phiên bản của đặc tả CGI. Phiên bản hiện hành là CGI/1.1.
HTTP_ACCEPT
-Kiểu dữ liệu mà client mặc nhiên chấp nhận. Ví dụ nó có thể
là: image/jpeg, image/gif để chỉ ra rằng browser hiển thò cả
hình GIF và JPEG, hoặc text/html . . .
PATH_INFO
-Thông tin thêm về đường dẫn, được truyền tới bởi client. nó
nằm trước chuỗi query và nằm sau tên script. ví dụ :
/>Param, thì PATH_INFO sẽ là /mydir/myfile
PATH_TRANSLATED
-Đây là giá trò của PATH_INFO, nhưng sẽ thay thư mục ảo
bằng thư mục vật lý trên đóa.
QUERY_STRING

chương trình khi client gởi đi một yêu cầu tới server. Đối với GET, ta có thể truy xuất
chương trình trên Web server với một truy vấn mà không cần form. Tuy nhiên, chiều dài
chuỗi query chỉ giới hạn có 1KB.
Phương pháp POST
Nếu Form dùng phương phương pháp POST, chương trình CGI nhận độ dài của dữ
liệu mã hóa các cặp name/value trong biến môi trường CONTENT_LENGTH. Chương trình
sau đó đọc dữ liệu từ đầu vào chuẩn. Server không nối con trỏ EOF đến cuối dữ liệu.
Hơn nữa, script nhận kiểu dữ liệu đến trong biến môi trường CONTENT_TYPE. Đây
là kiểu nội dung MIME (Multipurpose Internet Mail Extensions) cấu hình trong Server,
thường là loại text/html.
Đối với POST, chiều dài chuỗi query không giới hạn, hơn nữa ta không phải quan
tâm về việc xén bớt dữ liệu của client hay server. Tuy nhiên , chương trình sẽ phải đọc từ
input chuẩn (như form ...)
1.2. Đầu ra (Output) :
CGI Script gởi đầu ra của nó đến STDOUT. Đầu ra này thường là tài liệu ở dạng tập
tin HTML mà Script phát ra. Trong vài trường hợp, đầu ra nnày là một tham khảo đến vài
dạng dữ liệu khác cho Server như là ảnh, văn bản thuần túy hay một đoạn âm thanh. Trong
những trường hợp như thế, đầu ra là tập hợp các lệnh đối với Server cho việc nhận đối
tượng mong muốn.
Đầu ra từ một CGI Script có hai phần tiêu đề (header) và dữ liệu (data).
Output header
CGI script sẽ cho Server biết loại tài liệu gì nó sẽ gởi trở lại bằng cách gởi kèm một
tiêu đề mô tả ngắn dạng văn bản ASCII. Nếu đầu ra là tài liệu hoàn toàn, tiêu đề đưa ra là
loại MIME. Nếu đầu ra là có tham khảo đến tài liệu khác, tiêu đề sẽ là loại tham khảo
URL.
Sau đây là một số Header HTTP :
Header Mô tả
Content-length
Content-type
Expires

TXT
PS
JPEG
GIF
AU
MPEG
- text/html
- text/plain
- application/postscript
- image/jpeg
- image/gif
- audio/basic
- video/mpeg
Bảng đònh dạng và kiểu Content-Type
Location:
Để thực hiện tái đònh hướng server, client gởi một header location để báo cho server
rằng cần tài liệu nào. Server sẽ truy xuất tài liệu được chỉ ra từ Web, đưa tài liệu đó ra cho
client. Hình sau đây mô tả tái đònh hướng server :
Status:
Mã trạng thái được sử dụng bởi protocol HTTP để giao tiếp với trạng thái của yêu
cầu. Ví dụ, nếu tài liệu không tồn tại, server trả về mã “404” cho browser. Nếu tài đã được
di chuyển đi, mã “301”được trả về. Bảng các mã trạng thái được mô tả trong phần phụ lục
C.
www.demo.com
User
Yêu cầu

CGI
WWW Browser
(client)

được.
Server sau đó đưa kết quả lại browser. Rồi browser đònh dạng và hiển thò kết quả
cho người đọc.
Hình 1.8 Thông tin truyền từ browser đến chương trình CGI và quay trở lại
2. ISAPI :
ISAPI (Internet Server Application Programing Interface) : ra đời sau trong lónh vực
giao diện động, là một API mở được phát triển bởi Process Software and Microsoft. API này
được thiết kế để tối ưu hiệu suất của những ứng dụng sinh ra trang động trên server
Intranet/Internet.
Về mặc chức năng, ISAPI rất giống với CGI, kỹ thuật viết mã script và ứng dụng cho
CGI và ISAPI hoàn toàn giống nhau. Tuy nhiên, ứng dụng CGI and ISAPI chạy rất khác
nhau trên Windows NT.
Serve
r
User
Gởi một form đã hoàn
tất

CGI
WWW
Browser
(client)
Applicati
on


Trả lời của chương
trình CGI
Trả lời của chương
trình CGI

transfer information
without blocking
INTERNE
T
WWW Client
running a Web
Browser
Hình 1.9
ISAPI
Filter2
HTML
docume
nt
Client ISAPI
request
Client HTML
request
ISAPI
Filter1
ISAPI
Extensio
n
WebServer
Process
Hình 1.10
Web server, nên nó có thể truy xuất trực tiếp tới không gian đòa chỉ của Web server. Do đó
thông tin được chuyển từ Web server tới ứng dụng và từ ứng dụng tới Web server một nhanh
chóng và dễ dàng.
Tổng phí (overhead)của việc tạo thêm thread để xử lý yêu cầu ISAPI thường được
so sánh với tổng phí của việc tạo thêm process và truyền cho process dữ liệu mà nó yêu

mỗi lần Web server khởi động
và được gọi mỗi lần Web
server nhận một yêu cầu.
Hình 1.11
Windows NT
server security
process
Windows NT
server security
process
ISAPI Filter
security
ISAPI Filter
security
Application
Application
Web browser
Web browser
Internet
Điều này cho phép ta có thể tuỳ biến dòng dữ liệu đi vào và đi ra Web server. ISAPI
Filter có thể nhận mọi loại yêu cầu Web server. Khả năng ghi nhận được những yêu cầu về
Web và xử lý những yêu cầu này trước (pre-procesing) hoặc sau (post-processing) khi Web
server truy xuất chúng là một điểm mạnh của filter. Hình trên (hình 1.5) mô tả giao tiếp
giữa ISAPI Filters và ISAPI Extensions với những yêu cầu từ phía browser.
Filter ghi nhận thông báo của những sự kiện, chẳng hạn như log vào hệ thống hoặc
ánh xạ URL. Khi sự kiện được ghi nhận xảy ra, filter sẽ được gọi và ta có thể giám sát và
thay đổi dữ liệu (trên đường dữ liệu đi từ server tới client và ngược lại). ISAPI filter được sử
dụng để kiểm soát những yêu cầu HTTP. Là một công cụ hữu hiệu để tuỳ biến về mặt chức
năng cho web server.
Hình 1.11 mô tả vai trò của ISAPI filter trong hệ thống (như là một rào cản an toàn)

ng dụng CGI được biên dòch thành những chương trình thực thi (.exe) chạy độc lập.
Khi những chương trình này chạy, Windows NT sẽ tạo ra quá trình(process) độc lập mới cho
mỗi yêu cầu của client, những yêu cầu này được xử lý bởi ứng dụng. Tại bất kỳ một thời
điểm nào cho trước, server sẽ hỗ trợ cho một quá trình độc lập của yêu cầu đang tồn tại. Khi
yêu cầu hoàn tất, server phải thực hiện một chuỗi những bước để hủy bỏ quá trình.
CGI ban đầu được tạo ra trong môi trường UNIX, trong môi trường này, quá trình là
đơn vò cơ bản của mọi hoạt động, hơn nữa một quá trình trên UNIX có overhead thấp hơn
một quá trình trên Windows NT. Trên WindowsNT, thread là đơn vò cơ bản của mọi hoạt
động, và quá trình có overhead đáng kể. Mỗi quá trình được cấp phát một vùng nhớ vật lý
riêng, có thể là vùng nhớ có kích thước cố đònh (trang) hoặc không cố đònh, và được bảo vệ
bằng những cơ chế bảo mật trên Windows NT. Vì CGI yêu cầu mỗi chương trình chạy trong
một quá trình riêng, nên ứng dụng CGI có overhead cao hơn ứng dụng ISAPI extension.
2. ISAPI, CGI và WinCGI :
Đối với người dùng đầu cuối, sẽ không có gì khác nhau giữa một chương trình ISAPI
(ở đây lấy ví dụ điển hình là một
ISAPI extension) và một chương
trình CGI hay WinCGI. Tuy nhiên
đối với người lập trình, giữa chúng
có sự khác nhau và sự khác nhau
chính nằm trong giao diện giữa
server và chương trình.
Đối với CGI, khi một
chương trình nhận được một yêu
cầu (request), thông tin về yêu cầu
đó được truyền đến như là những
biến môi trường, và đáp ứng được
trả về cho Web server theo
standard output. Do đó, chương
trình CGI đòi hỏi ngôn ngữ mà ta
viết trên CGI có thể đọc và viết từ

Một ứng dụng ISAPI cũng có những lợi thế là nhận được hỗ trợ của Win32 và chuẩn
ODBC.
Tuy nhiên, khác biệt cơ bản nhất giữa ISAPI và CGI là : chương trình ISAPI chạy
trong không gian đòa chỉ của chính Web server (in-process), còn chương trình CGI chạy theo
từng quá trình riêng biệt (out-of-process). Do đó, chương trình ISAPI có thể truy xuất tới
mọi tài nguyên có sẵn của Web server. Sử dụng nhiều thread để đồng bộ công việc cho
phép IIS sử dụng tài nguyên của hệ thống có hiệu quả hơn.
CGI tạo ra một process riêng biệt cho mỗi yêu cầu. Với CGI, mỗi lần một Web
server nhận một yêu cầu, nó phải khởi tạo một process mới do đó đòi hỏi phải có một tài
nguyên lớn để duy trì những process này. ng dụng ISAPI có overhead thấp hơn ứng dụng
CGI, vì chúng không đòi phải tạo ra thêm những process và không phải thực hiện thời gian
giao tiếp giữa những process.
3. Overhead giữa CGI và ISAPI
Việc sử dụng những ứng dụng CGI cho thấy tốn nhiều thời gian xử lý và không gian
nhớ hơn từ 3-5 lần so với ứng dụng ISAPI. Tương tự như vậy, trên cùng một server và
P
o
i
n
t
e
r
Web Server
Process
ECB
ECB ECB
ISAPI
Extension
Shared memory
ISAPI

Hàm thực hiện hầu hết công việc là HttpExtensionProc().
Cấu trúc của ECB
ECB được đònh nghóa như sau (in và out cho biết dữ liệu là loại có thể được ghi vào hay đọc
ra) :
typedef struct _EXTENSION_CONTROL_BLOCK {
DWORD cbSize; // IN
DWORD dwVersion; // IN
HCONN ConnID; // IN
DWORD dwHttpStatusCode; // OUT
CHAR lpszLogData[HSE_LOG_BUFFER_LEN]; // OUT
LPSTR lpszMethod; // IN
LPSTR lpszQueryString; // IN
LPSTR lpszPathInfo; // IN
LPSTR lpszPathTranslated; // IN
DWORD cbTotalBytes; // IN
DWORD cbAvailable; // IN
LPBYTE lpbData; // IN
LPSTR lpszContentType; // IN
BOOL (WINAPI * GetServerVariable)
(HCONN hConn,
LPSTR lpszVariableName,

Trích đoạn Sử dụng MFC để truy xuất database Internet Information Server Một số định nghĩa Chiến lược quảng cáo Phân tích chương trình
Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status