Tải bản đầy đủ (.pdf) (67 trang)

Nghiên cứu cải thiện tốc độ và độ tin cậy giao dịch thời gian thực trong hệ thống thông tin chứng khoán

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.26 MB, 67 trang )

Luận văn tốt nghiệp cao học

MỤC LỤC

MỤC LỤC

MỤC LỤC............................................................................................................. 1
LỜI CAM ĐOAN ................................................................................................. 4
DANH MỤC CHỮ VIẾT TẮT ............................................................................ 5
DANH MỤC HÌNH VẼ ........................................................................................ 6
MỞ ĐẦU ............................................................................................................... 8
SUMMARIZE OF COMPOSITION .................................................................. 10
Chƣơng 1 - GIỚI THIỆU MÔ HÌNH, KỸ THUẬT ỨNG DỤNG VÀ CÁC
VẤN ĐỀ CẦN GIẢI QUYẾT TRUYỀN THÔNG TIN CHỨNG KHOÁN. ............... 11
1.1. Giới thiệu mô hình truyền thông tin chứng khoán. ................................. 11
1.1.1. Tầm quan trọng của việc cập nhật thông tin chứng khoán kịp thời,
chính xác. ............................................................................................................... 11
1.1.2. Mô hình hệ thống truyền thông tin chứng khoán. ............................ 12
1.1.3. Các phần cần cải tiến trong hệ thống thông tin chứng khoán. ......... 14
1.2. Các vấn đề kĩ thuật ứng dụng trong truyền thông tin chứng khoán. ....... 14
1.2.1. Kỹ thuật gửi yêu cầu, hồi đáp và gửi dữ liệu. .................................. 14
1.2.2. Lƣu trữ dữ liệu. ................................................................................. 29
1.3. Cần tăng tốc độ và đảm bảo độ tin cậy. ................................................... 30
Chƣơng 2 – PHÂN TÍCH ĐÁNH GIÁ HỆ THỐNG THÔNG TIN CHỨNG
KHOÁN TRUYỀN THỐNG(TSIS) VÀ SO SÁNH VỚI HỆ THỐNG ĐƢA
RA(LISSIS). ................................................................................................................... 32
1


Luận văn tốt nghiệp cao học


MỤC LỤC

2.1. Phân tích, đánh giá hệ thống thông tin chứng khoán truyền thống. ........ 32
2.1.1. Hệ thống thông tin chứng khoán truyền thống(TSIS). ..................... 32
2.1.2. Giao thức trao đổi dữ liệu của hệ thống TSIS. ................................. 34
2.1.3. Cấu trúc dữ liệu. ............................................................................... 36
2.2. So sánh hệ thống thông tin chứng khoán TSIS với LISSIS. ................... 36
2.2.1. So sánh tốc độ hệ thống thông tin chứng khoán TSIS và LISSIS theo
số lƣợng mã chứng khoán...................................................................................... 37
2.2.2. So sánh tốc độc hệ thống thông tin chứng khoán TSIS và LISSIS
theo số lƣợng truy cập. .......................................................................................... 39
2.3. Kết luận. ................................................................................................... 41
Chƣơng 3 - SỰ KHÁC BIỆT TRONG THIẾT KẾ HỆ THỐNG THÔNG TIN
CHỨNG KHOÁN LISSIS. ............................................................................................ 42
3.1. Tổng quan hệ thống chứng khoán LISSIS. .............................................. 42
3.1.1. Các phần cải tiến. ............................................................................. 42
3.1.2. Sơ đồ hệ thống thông tin chứng khoán mới. .................................... 43
3.2. Cải tiến mới trong giao thức truyền dữ liệu của hệ thống LISSIS. ......... 44
3.2.1. Thuật toán cho quá trình xử lý ở trình duyệt truy cập. ..................... 45
3.2.2. Cụ thể quá trình truyền dữ liệu (streaming), hiển thị giữa server và
web truy cập........................................................................................................... 46
3.3. Cải tiến mới trong cấu trúc dữ liệu. ......................................................... 48
3.3.1. Thiết kế thêm các bảng dữ liệu phụ. ................................................ 48
3.3.2. Thuật toán xử lý phân tách dữ liệu. .................................................. 50
3.3.3. Cụ thể quá trình phân tách, tạo dữ liệu............................................. 51
2


Luận văn tốt nghiệp cao học


MỤC LỤC

3.4. Kết luận. ................................................................................................... 52
Chƣơng 4 – KẾT QUẢ ĐẠT ĐƢỢC TRONG QUÁ TRÌNH THỰC HIỆN. .... 53
4.1. Các phần mềm sử dụng............................................................................ 53
4.1.1. Visual Studio 2012. .......................................................................... 53
4.1.2. SQL Server 2008 .............................................................................. 55
4.2. Kết quả mô phỏng. ................................................................................... 61
4.2.1. Mô phỏng một vài giá trị thay đổi cùng một thời điểm. .................. 61
4.2.2. Mô phỏng nhiều giá trị thay đổi liên tục trong một khoảng thời gian.
............................................................................................................................... 62
KẾT LUẬN ......................................................................................................... 64
XU HƢỚNG PHÁT TRIỂN TƢƠNG LAI ........................................................ 65
TÀI LIỆU THAM KHẢO................................................................................... 67

3


Luận văn tốt nghiệp cao học

LỜI CAM ĐOAN

LỜI CAM ĐOAN

Lời đầu tiên tôi xin gửi lời chân thành cảm ơn tới các thầy cô trong Viện Điện
Tử Viễn Thông, trƣờng Đại học Bách Khoa Hà Nội đã tạo cho tôi một môi trƣờng học
tập tốt và nghiên cứu. Tôi cũng xin gửi lời cảm ơn tới các thầy cô trong Viện Đào tạo
sau đại học đã quan tâm giúp đỡ chúng tôi, tạo điều kiện cho các học viên có điều kiện
thuận lợi để học tập và nghiên cứu. Đặc biệt, tôi xin gửi lời cảm ơn sâu sắc đền
TS.Phạm Văn Tiến đã tận tình chỉ bảo, hƣớng dẫn và sữa chữa cho nội dung của luận

văn này.
Tôi cam đoan rằng nội dung của luận văn này là hoàn toàn do tôi tìm hiểu,
nghiên cứu và viết ra. Tất cả đều đƣợc tôi thực hiện cẩn thận và có sự định hƣớng của
giáo viên hƣớng dẫn.
Tôi xin chịu trách nhiệm với những nội dung trong luận văn này.
Tác giả
Phạm Ngọc Sơn

4


Luận văn tốt nghiệp cao học

DANH MỤC CHỮ VIẾT TẮT

DANH MỤC CHỮ VIẾT TẮT

Từ viết tắt Giải nghĩa tiếng Anh

Giải nghĩa tiếng Việt

AJAX

Asynchronous JavaScript and XML JavaScript và XML không đồng bộ

CSS

Cascading Style Sheet

Bảng kiểu xếp chồng


HTML

Hyper Text Markup Language

Ngôn ngữ đánh dấu siêu văn bản

DHTML

Dynamic

Hyper

Text

Markup Ngôn ngữ đánh dấu siêu văn bản

Language

động

DOM

Document Oject Model

Mô hình đối tƣợng tài liệu

HTTP

HyperText Transfer Protocol


XML

eXtensible Markup Language

XHTML

TSIS

LISSIS

Extensible

HyperText

Giao thức truyền tải qua siêu liên
kết
Ngôn ngữ đánh dấu mở rộng

Markup Ngôn ngữ Đánh dấu Siêu văn bản

Language
Traditional

Mở rộng
Stock

Information Hệ thống thông tin chứng khoán

System


truyền thống

Live Streaming Stock Information Hệ thống thông tin chứng khoán
truyền động

System

5


Luận văn tốt nghiệp cao học

DANH MỤC HÌNH VẼ

DANH MỤC HÌNH VẼ

Hình 1.1: Sơ đồ tổng thể của hệ thống thông tin chứng khoán........................... 13
Hình 1.2 : So sánh giữa Normal Page Request với Ajax Request ...................... 16
Hình 1.3: So sánh kiểu truyền thống với Ajax .................................................... 17
Hình 2.1: Hệ thống TSIS..................................................................................... 33
Hình 2.2: Trao đổi dữ liệu chứng khoán của hệ thống TSIS. ............................. 35
Hình 2.3: So sánh tốc độ theo số lƣợng mã chứng khoán................................... 38
Hình 2.4: So sánh tốc độ theo số lƣợng truy cập ................................................ 40
Hình 3.1: Sơ đồ hệ thống thông tin chứng khoán LISSIS. ................................. 43
Hình 3.2: Thuật toán cho quá trình xử lý ở web truy cập ................................... 45
Hình 3.3: Cụ thể quá trình truyền dữ liệu ........................................................... 46
Hình 3.4: Thuật toán xử lý phân tách dữ liệu ..................................................... 50
Hình 4.1: Bảng giá chứng khoán kiểm thử trên Visual Studio 2012 .................. 55
Hình 4.2: Bảng dữ liệu stock_currentStockInfo và stock_CurrentMarketInfo .. 58

Hình 4.3: Bảng streaming_subscribers và streaming_subscribeedSymbols ....... 59
Hình 4.4: Bảng streaming_version và streaming_versionSymbols. ................... 59
Hình 4.5: Bảng streaming_versionSymbolsChanges và
streaming_LastCheckedSymbols. .................................................................................. 60
Hình 4.6: Hình ban đầu, chƣa thay đổi giá trị ..................................................... 61
Hình 4.7: Thay đổi giá trị và sáng nền ................................................................ 62

6


Luận văn tốt nghiệp cao học

DANH MỤC HÌNH VẼ

Hình 4.8: Sau khi thay đổi xong, tắt sáng nền .................................................... 62
Hình 4.9: Một số hình ảnh trong quá trình mô phỏng. ....................................... 63
Hình 4.10: Reverse Ajax với WebSockets .......................................................... 66

7


Luận văn tốt nghiệp cao học

MỞ ĐẦU

MỞ ĐẦU
Xã hội thông tin ngày càng phát triển với số lƣợng càng nhiều, đặc biệt là thông
tin chứng khoán đòi hỏi những yêu cầu cao hơn về số lƣợng cũng nhƣ chất lƣợng dịch
vụ. Trƣớc yêu cầu này, nhiều nghiên cứu đã đƣợc thực hiện nhằm để tăng tốc độ truyền
dẫn và nâng cao độ tin cậy trong các hệ thống thông tin chứng khoán. Để các nhà đầu

tƣ có thể năm bắt đƣợc chính xác đƣợc tình hình về thông tin bảng giá chứng khoán từ
sàn chứng khoán gửi về một cách chính xác và kịp thời là một yêu cầu rất cần thiết
trong giai đoạn hiện nay và tƣơng lai về sau.
Trong những năm trƣớc, việc xem thông tin thay đổi của bảng giá chứng khoán
phải thực hiện nhiều thao tác và chờ đợi một khoảng thời gian hơi lâu mới có thể nhận
đƣợc kết quả. Trong những năm gần đây, khi công nghệ thiết kế web phát triển mạnh
hơn đã hỗ trợ rất nhiều trong việc tăng tốc độ truyền tin. Mặc dù có các công cụ hỗ trợ
những vẫn rất cần có những ý tƣởng hay những cách làm hiệu quả hơn nữa để hỗ trợ
cho việc truyền tin chứng khoán đƣợc nhanh và chính xác. Cho nên trong luận văn này
đƣa ra giải pháp từ các công cụ đã có hiện nay để đơn giản hóa giao thức truyền tin, tối
giản hóa dữ liệu truyền và thiết kế dữ liệu đề phù hợp với quá trình truyền này.
Trên định hƣớng đó, luận văn đƣợc chia thành bốn chƣơng nhƣ sau:
Chƣơng 1: Giới thiệu về mô hình, kỹ thuật ứng dụng và vấn đề cần giải
quyết truyền thông tin chứng khoán
Trong chƣơng này sẽ trình bày tầm quan trọng của việc cập nhật thông tin
chứng khoán kịp thời chính xác, mô hình hệ thống truyền thông tin chứng khoán. Từ
đó nêu ra các phần cần cải tiến với các kỹ thuật phù hợp đang có hiện nay.
Chƣơng 2: Phân tích đánh giá hệ thống thông tin chứng khoán truyền
thống(TSIS) và so sánh với hệ thống đƣa ra(LISSIS).

8


Luận văn tốt nghiệp cao học

MỞ ĐẦU

Trong chƣơng này sẽ trình bày một hệ thống chứng khoán truyền thống thƣờng
đƣợc sử dụng TSIS, phân tích đánh giá những hạn chế của hệ thống này. Sau đó so
sánh với hệ thống LISSIS về tốc độ với các tiêu chí khác nhau.

Chƣơng 3: Sự khác biệt trong thiết kế hệ thống thông tin chứng khoán
LISSIS.
Chƣơng này sẽ nói về những điểm khác biệt nổi bật của hệ thống LISSIS trong
thiết kế. Để cho chúng ta hiểu đƣợc vì sao mà hệ thống LISSIS lại tốt hơn hệ thống
TSIS(nhƣ đã đƣợc so sánh ở chƣơng 2)
Chƣơng 4: Kết quả đạt đƣợc trong quá trình thực hiện.
Trong chƣơng này sẽ mô phỏng kết quả đạt đƣợc thông qua hai công cụ hỗ trợ
là Visual Studio 2012 và SQL Server 2008. Mô phỏng sẽ cho thấy đƣợc một cách trực
quan hơn sự thay đổi dữ liệu chứng khoán một cách liên tục theo thời gian.
Do điều kiện về thời gian và kiến thức hiểu biết của cá hạn về lĩnh vực này còn
hạn chế, nên luận văn không thể tránh đƣợc những thiếu sót hay lỗi, rất mong đƣợc sự
đóng góp ý kiến của mọi ngƣời.
Tôi xin chân thành cảm ơn thầy giáo TS. Phạm Văn Tiến, đã tận tình giúp đỡ,
tạo điều kiện thuận lợi và hiệu chỉnh cho luận văn. Cảm ơn các thầy giáo, cô giáo Viện
Điện tử - Viễn thông đã giúp đỡ tôi hoàn thành cuốn luận văn này.

9


Luận văn tốt nghiệp cao học

SUMMARIZE OF COMPOSITION

SUMMARIZE OF COMPOSITION
Information society is growing more and more numbers , especially stock
information requires higher requirements in terms of quantity as well as quality of
service . Prior to this requirement , many studies have been done to to speed and
enhance transmission reliability in information systems security. For investors can
accurately grasp the situation of the stock price information from stock exchanges sent
on a timely and accurate manner is an essential requirement in the current period and

future later .
In the previous year , to see the change of stock price to perform multiple tasks
and wait for a slightly longer period of time can get results . In recent years , the
technology web design thrives a lot more support in the communication speed .
Although the tools are still needed to support these ideas or ways to make more
efficient communication support for the securities being fast and accurate . So in this
paper a solution from the current tool was to simplify the communication protocol ,
transmission of data minimalist design to fit the data transmission process this .
Although it has solved a number of problems compared with traditional methods
but nonetheless needs to be improved further . By web developers always have fast
growth of its technology . So this is a reasonable solution in the current period . The
future will have a lot of different directions , but anyway , this method is simple and
suitable for most stock messenger . Information transfer required by securities with
duration in seconds , time enough to meet such people access information securities
acceptable .

10


Luận văn tốt nghiệp cao học

CHƢƠNG 1

Chƣơng 1 - GIỚI THIỆU MÔ HÌNH, KỸ THUẬT ỨNG DỤNG
VÀ CÁC VẤN ĐỀ CẦN GIẢI QUYẾT TRUYỀN THÔNG TIN
CHỨNG KHOÁN.
1.1. Giới thiệu mô hình truyền thông tin chứng khoán.
1.1.1. Tầm quan trọng của việc cập nhật thông tin chứng khoán kịp thời,
chính xác.
Thông tin và công bố thông tin là một trong các nhân tố tác động mạnh mẽ đến

sự ổn định và phát triển của thị trƣờng chứng khoán. Thông tin là cơ sở giúp những nhà
quản lý điều hành doanh nghiệp và là cơ sở giúp các nhà đầu tƣ đƣa ra các quyết định
đúng đắn.
Do đó, việc truyền thông tin chứng khoán kịp thời và chính xác là một vấn đề
rất quan trọng. Với một số lƣợng dữ liệu lớn, thay đổi liên tục trong ngày và rất cần
phải có một phƣơng thức xử lý linh hoạt, đơn giản và rõ ràng thì mới có thể đảm bảo
đƣợc về mặt tốc độ và sự chính xác. Để thấy rõ hơn tôi xin nói qua về phƣơng thức đấu
giá. Thông thƣờng các nƣớc có thị trƣờng chứng khoán phát triển đều áp dụng cả
phƣơng thức đấu giá định kỳ và đầu giá liên tục. Mỗi ngày giao dịch có thể có 1 hoặc 2
phiên giao dịch (buổi sáng và buổi chiều). Vào đầu giờ phiên giao dịch buổi sáng,
ngƣời ta xác định giá mở cửa theo phƣơng thức đấu giá định kỳ. Sau đó việc giao dịch
đƣợc thực hiện theo phƣơng thức đấu giá liên tục. Cuối ngày giao dịch, ngƣời ta lại xác
định giá đóng cửa theo phƣơng thức đấu giá định kỳ. Đấu giá định kỳ là hệ thống trong
đó các lệnh mua và lệnh bán đƣợc tích tụ lại trong một khoảng thời gian nhất định, sau
đó mới đƣợc ghép với nhau để hình thành một mức giá duy nhất tại điểm có khối lƣợng
11


Luận văn tốt nghiệp cao học

CHƢƠNG 1

mua và bán lớn nhất đƣợc thực hiện. Đấu giá liên tục là hệ thống trong đó các lệnh mua
và lệnh bán liên tục đƣợc ghép với nhau nếu có thể. Đấu giá định kỳ có ƣu điểm là cho
phép hình thành giá cả tốt nhất trên cơ sở khối lƣợng mua bán lớn đƣợc tích tụ lại. Đấu
giá định kỳ thích hợp với thị trƣờng có khối lƣợng giao dịch nhỏ; nó cho phép giảm bớt
sự biến động quá mức của giá cả. Tuy nhiên, việc đấu giá liên tục lại thích hợp với thị
trƣờng có khối lƣợng giao dịch lớn. Nó cho phép hình thành giá cả tức thời đáp ứng
đƣợc những thay đổi thƣờng xuyên về thông tin trên thị trƣờng.
Từ đây ta thấy với một thị trƣờng lớn, giao dịch liên tục thì việc cập nhật ở trên

bảng giá chứng khoán càng cần phải kịp thời, chính xác. Đây cũng là vấn đề mà trong
bài luận văn của tôi muốn giải quyết.

1.1.2. Mô hình hệ thống truyền thông tin chứng khoán.
Hệ thống gồm 3 phần:
1) Sàn chứng khoán: Sẽ gửi thông tin chứng khoán về web server qua dạng file
.xml hoặc .dat.
2) Máy chủ server: Chƣơng trình và hệ thống dữ liệu
+ Máy chủ server sẽ nhận file từ sàn chứng khoán, xử lý file lấy thông tin và lƣu
vào cơ sở dữ liệu(SQL).
+ Khi có có yêu cầu từ ngƣời muốn xem gửi đến server thì máy chủ server sẽ trả
lời và gửi các dữ liệu đã yêu cầu tới máy ngƣời xem.
3) Ngƣời truy cập: Khi khách hàng truy cập vào địa chỉ web chứng khoán thì
chƣơng trình ngƣời truy cập sẽ nhận đƣợc dữ liệu và phần mềm từ server, thiết lập
tƣơng quan các yêu cầu của 2 bên để khách hàng có thể quan sát sự thay đổi của thị
trƣờng chứng khoán qua bảng giá chứng khoán.

12


Luận văn tốt nghiệp cao học

CHƢƠNG 1

Sơ đồ tổng quát sau sẽ cho thấy đƣợc một cách trực quan hơn về truyền thông
tin chứng khoán.

Sàn chứng khoán

Ch.trình


Forder

nhận file

lƣu file

Ch.trình
Data server

đọc và lƣu
dữ liệu

Ngƣời truy cập

Server

Data

Hình 1.1: Sơ đồ tổng thể của hệ thống thông tin chứng khoán.

13


Luận văn tốt nghiệp cao học

CHƢƠNG 1

1.1.3. Các phần cần cải tiến trong hệ thống thông tin chứng khoán.
Ở phần này tôi sẽ phân tích và nêu ra vẫn đề sẽ giải quyết trong hệ thống truyền

thông tin chứng khoán.
Vẫn đề mà tôi đang cần giải quyết đó là vấn đề tăng tốc độ và độ tin cậy giao
dịch thời gian thực vậy ta sẽ xét từng phần xem phần nào ta cần cải tiến.
1) Cải thiện tốc độ và độ tin cậy ở quá trình gửi thông tin từ sản chứng khoán
đến máy chủ Server ?
Điều này chắc cũng cần nhƣng gửi tin từ sàn chứng khoán đến máy chủ Server
là hai thực thể cố định. Tất nhiên các nhà thiết kế phần mềm sẽ dễ dàng tìm cách làm
sao để hạn chế đƣợc lƣợng tin dƣ thừa và giúp cho quá trình cập nhận một cách nhanh
nhất. Hơn nữa băng thông trên truyền từ sàn chứng khoán đến Server rất lớn cho việc
truyền. Do vậy cải thiện tốc độ ở phần này tôi sẽ không bàn luận tới.
2) Cải thiện tốc độ và độ tin cậy ở quá trình gửi thông tin chứng khoán từ máy
chủ Server tới các clients đang truy cập để xem thông tin chứng khoán?
Vấn đề này chính là vẫn đề tôi muốn bàn luận tới. Với một dữ liệu chứng khoán
lớn mà lại có nhiều ngƣời truy cập vào thì việc đơn giản hóa giao thức và phân tách dữ
liệu gửi một cách đơn giản nhất là điều rất cần phải làm. Nhƣ vậy từ sơ đồ trên ta sẽ cải
tiến phần nửa dƣới của sơ đồ gồm giao thức, truyền dữ liệu giữ trình duyệt ngƣời truy
cập với server và xử lý dữ liệu ở server để phù hợp với cách truyền dữ liệu.

1.2. Các vấn đề kĩ thuật ứng dụng trong truyền thông tin chứng khoán.
1.2.1. Kỹ thuật gửi yêu cầu, hồi đáp và gửi dữ liệu.
1.2.1.1. Sự thay đổi thế giới web khi AJAX xuất hiện.
 Giới thiệu về Ajax
14


Luận văn tốt nghiệp cao học

CHƢƠNG 1

Ajax là viết tắt của Asynchronous JavaScript and XML - kỹ thuật kết hợp hai

tính năng mạnh của JavaScript đã từng đƣợc các nhà phát triển đánh giá rất cao:
- Gửi yêu cầu (request) đến máy chủ mà không cần nạp lại trang.
- Phân tách và làm việc với XML.
Các ứng dụng Ajax xoay quanh một tính năng có tên là XMLHttpRequest. Các
kĩ sƣ của dự án Mozilla bắt đầu hỗ trợ tính năng này ở bản Mozilla 1.0 (và Netscape 7).
Apple cũng đã thực hiện một tính năng tƣơng tự kể từ Safari 1.2. Ajax là sự phối hợp
một loạt các công nghệ đang từng thu hút sự quan tâm của giới công nghiệp trong
những khoảng thời gian trƣớc. Đó chính là :
- Trình bày trang Web dựa trên XHTML và CSS, các chuẩn của W3C, đƣợc
Firefox (Mozilla), Safari (Apple), Opera, Netscape 8.0 (nhân Firefox) hỗ trợ rất tốt.
- Biểu diễn động và tƣơng tác sử dụng Document Object Model, chuẩn của
W3C.
- Trao đổi và xử lý dữ liệu dùng XML và XSLT, chuẩn của W3C.
- Thu hồi dữ liệu bất đối xứng dùng dùng XMLHttpRequest.
- Dùng JavaScript để liên kết mọi thứ lại với nhau. JavaScript ở đây là
ECMAScript, chuẩn của ECMA, không phải là JScript của Microsoft.
Sự phát triển của công nghệ và nhu cầu ngƣời sử dụng ngày càng cao buộc các
nhà phát triển tạo ra một kĩ thuật khác cho phép xử lý các tác vụ phức tạp hơn. Năm
2005, trên Internet bắt đầu lan truyền thuật ngữ Ajax nhƣ là một kỹ thuật mới cho ứng
dụng web. Những thành công vang dội và sự hấp dẫn kì lạ của Gmail, Google Suggest
và Google Maps đã khiến cho Ajax đƣợc chú ý một cách đặc biệt.
Hầu hết các câu chuyện về nguồn gốc của AJAX đƣợc bắt đầu từ khi Microsoft
phát triển công nghệ Remote Scripting vào năm 1998. Tuy nhiên, phƣơng pháp tải
không đồng bộ nội dung trên một trang web đã xuất hiện trong thành tố IFRAME của
15


Luận văn tốt nghiệp cao học

CHƢƠNG 1


Internet Explorer 3 (1996) và thành tố LAYER của Netscape 4.0 năm 1997. Khi giới
thiệu Internet Explorer 4.0, Microsoft đã sử dụng mô hình đối tƣợng tài liệu DOM khác
biệt. Đến năm 2000, Netscape hoàn toàn đánh mất thị trƣờng trình duyệt vào tay hãng
phần mềm của Bill Gates và thành tố LAYER cũng không còn đƣợc các chuyên gia
phát triển web chú ý tới. Phải vài năm sau, AJAX mới lại lôi kéo đƣợc sự quan tâm của
giới công nghệ và trở thành công cụ cải tiến giao diện ngƣời dùng cho ứng dụng web.
Từ đó, AJAX trở thành trung tâm trong mọi câu chuyện liên quan đến thế hệ Web 2.0.
 Hoạt động của Ajax.
Từ lâu, mọi ngƣời đã tƣởng tƣợng ứng dụng máy tính rồi sẽ đƣợc lƣu và chạy
hoàn toàn trên web thay vì nằm bó buộc trong ổ cứng. Dù vậy, viễn cảnh đó vẫn chƣa
thể xảy ra do ứng dụng web bị hạn chế bởi nguyên lý rằng tất cả các thao tác phải đƣợc
thực hiện thông qua HTTP (HyperText Transfer Protocol - Giao thức truyền tải qua
siêu liên kết). Những hoạt động của ngƣời sử dụng trên trang web sẽ tạo ra một yêu cầu
HTTP tới server. Máy chủ thực hiện một số khâu xử lý nhƣ lấy lại dữ liệu, tính toán,
kiểm tra sự hợp lệ của thông tin, sửa đổi bộ nhớ, sau đó gửi lại một trang HTML hoàn
chỉnh tới máy khách. Về mặt kỹ thuật, phƣơng pháp này nghe có vẻ hợp lý nhƣng cũng
khá bất tiện và mất thời gian, bởi khi server đang thực hiện vai trò của nó thì ngƣời
dùng sẽ làm gì? Tất nhiên là chờ đợi.

Hình 1.2 : So sánh giữa Normal Page Request với Ajax Request

16


Luận văn tốt nghiệp cao học

CHƢƠNG 1

Thêm vào đó để ta có thể thấy đƣợc sự khác biệt với Ajax so với kiểu thông

thƣờng ta có thể xem sự hoạt động cụ thể của nó qua sơ đồ hình sau:

Hình 1.3: So sánh kiểu truyền thống với Ajax
Để khắc phục hạn chế trên, các chuyên gia phát triển giới thiệu hình thức trung
gian - cơ chế xử lý AJAX - giữa máy khách và máy chủ. Ajax cho phép tạo ra một
Ajax Engine nằm giữa giao tiếp này. Điều này giống nhƣ việc tăng thêm một lớp giữa
cho ứng dụng để giảm quá trình "đi lại" của thông tin và giảm thời gian phản ứng. Khi
đó, các yêu cầu gửi resquest và nhận response do Ajax Engine thực hiện. Thay vì trả
dữ liệu dƣới dạng HTML và CSS trực tiếp cho trình duyệt, web server có thể gửi trả dữ
liệu dạng XML và Ajax Engine sẽ tiếp nhận, phân tách và chuyển hóa thành
XHTML+CSS cho trình duyệt hiển thị. Việc này đƣợc thực hiện trên client nên giảm
tải rất nhiều cho server, đồng thời ngƣời sử dụng cảm thấy kết quả xử lý đƣợc hiển thị
tức thì mà không cần nạp lại trang. Mặt khác, sự kết hợp của các công nghệ web nhƣ
17


Luận văn tốt nghiệp cao học

CHƢƠNG 1

CSS và XHTML làm cho việc trình bày giao diện trang web tốt hơn nhiều và giảm
đáng kể dung lƣợng trang phải nạp. Và thay vì tải lại (refresh) toàn bộ một trang, nó
chỉ nạp những thông tin đƣợc thay đổi, còn giữ nguyên các phần khác. Vì thế, khi
duyệt một trang hỗ trợ AJAX, ngƣời sử dụng không bao giờ nhìn thấy một cửa sổ trắng
(blank) và biểu tƣợng đồng hồ cát - dấu hiệu cho thấy máy chủ đang thực hiện nhiệm
vụ. Ví dụ, trong một website ảnh, với ứng dụng truyền thống, toàn bộ trang chứa các
ảnh sẽ phải mở lại từ đầu nếu có một thay đổi nào đó trên trang. Còn khi áp dụng
AJAX, DHTML chỉ thay thế đoạn tiêu đề và phần vừa chỉnh sửa, do vậy tạo nên các
giao dịch trơn tru, nhanh chóng.
“Mọi thao tác của ngƣời sử dụng sẽ gửi lệnh JavaScript tới bộ xử lý AJAX, thay

vì tạo ra một yêu cầu HTTP (HTTP request) và truy vấn tới máy chủ”, Jesse James
Garrett đã ghi trong bài viết đầu tiên định nghĩa về thuật ngữ này. “Nếu cần gì từ
server, nhƣ tải về bổ sung mã giao diện hay nhận dữ liệu mới, AJAX sẽ truyền yêu cầu
tới máy chủ một cách không đồng bộ, thông thƣờng sử dụng XML, mà không làm gián
đoạn sự tƣơng tác của ngƣời dùng với ứng dụng web”.
 Những nhƣợc điểm của Ajax.
AJAX có thể góp phần tạo nên một thế hệ mới cho ứng dụng web (nhƣ colr.org
hay backpackit.com). Tuy nhiên, nó cũng là một công nghệ "nguy hiểm" khi gây ra
không ít rắc rối về giao diện ngƣời dùng. Chẳng hạn, phím "Back" (trở lại trang trƣớc)
đƣợc đánh giá cao trong giao diện website chuẩn. Đáng tiếc, chức năng này không hoạt
động ăn khớp với Javascript và mọi ngƣời không thể tìm lại nội dung trƣớc đó khi bấm
phím Back. Bởi vậy, chỉ một sơ xuất nhỏ là dữ liệu trên trang đã bị thay đổi và khó có
thể khôi phục lại đƣợc. Đây là một trong những nguyên nhân chính khiến một số ngƣời
phải cân nhắc khi sử dụng Javascript.
Bên cạnh đó, mọi ngƣời không thể lƣu lại địa chỉ web vào thƣ mục Favorite
(Bookmark) để xem lại về sau. Do áp dụng lớp trung gian để giao dịch, các ứng dụng
18


Luận văn tốt nghiệp cao học

CHƢƠNG 1

AJAX không có một địa chỉ cố định cho từng nội dung. Khiếm khuyết này làm cho
AJAX dễ "mất điểm" trong mắt ngƣời dùng.
 Bảo mật trong Ajax.
“Thông thƣờng, tấn công một ứng dụng qua lớp web dễ hơn nhiều so với việc
cố xuyên qua tƣờng lửa hoặc tìm đƣờng vòng tránh các hệ thống chống xâm nhập”,
Billy Hoffman, Trƣởng nhóm nghiên cứu thuộc công ty bảo mật Spi Dynamics (Mỹ),
đã từng cho biết.

Đối với ngƣời sử dụng, AJAX là phƣơng pháp lập trình giúp website hoạt động
nhanh và mang tính tƣơng tác hơn. Google đã giới thiệu công cụ AJAX cho phép
ngƣời dùng tích hợp kết quả tìm kiếm trực tiếp ngay trên trang web của họ. Các ứng
dụng AJAX phổ biến khác là site chia sẻ ảnh Flickr và trang tin tức Digg.
Cách đây gần mƣời năm dịch vụ e-mail hỗ trợ tổ hợp công nghệ này của Yahoo
đã từng gặp lỗi bảo mật nghiêm trọng.. Kẻ tấn công đã phát tán một thông điệp chứa
mã độc để truy cập e-mail của nạn nhân, tải danh sách địa chỉ và gửi thƣ rác từ chính
tài khoản bị đột nhập.
Trong khi đó, giới phát triển web thƣờng không chú ý đến việc bảo mật các
đoạn mã do họ thƣờng là chuyên gia thiết kế đồ họa, còn các chuyên gia phần mềm tạo
mã cho web lại hay tỏ ra chủ quan. Hơn nữa, rất nhiều chƣơng trình hƣớng dẫn sử dụng
AJAX đã từng chứa những lỗi cơ bản.

1.2.1.2. Cơ bản về JavaScript.
 Giới thiệu JavaScript.
Với HTML and Microsoft FrontPage bạn đƣợc biết cách tạo ra trang Web - tuy
nhiên chỉ mới ở mức biểu diễn thông tin chứ chƣa phải là các trang Web động có khả
năng đáp ứng các sự kiện từ phía ngƣời dùng. Hãng Netscape đã đƣa ra ngôn ngữ
script có tên là LiveScript để thực hiện chức năng này. Sau đó ngôn ngữ này đƣợc đổi
19


Luận văn tốt nghiệp cao học

CHƢƠNG 1

tên thành JavaScript để tận dụng tính đại chúng của ngôn ngữ lập trình Java. Mặc dù có
những điểm tƣơng đồng giữa Java và JavaScript, nhƣng chúng vẫn là hai ngôn ngữ
riêng biệt. JavaScript là ngôn ngữ dƣới dạng script có thể gắn với các file HTML. Nó
không đƣợc biên dịch mà đƣợc trình duyệt diễn dịch. Không giống Java phải chuyển

thành các mã dễ biên dịch, trình duyệt đọc JavaScript dƣới dạng mã nguồn.
JavaScript là ngôn ngữ dựa trên đối tƣợng, có nghĩa là bao gồm nhiều kiểu đối
tƣợng, ví dụ đối tƣợng Math với tất cả các chức năng toán học. Tuy vậy JavaScript
không là ngôn ngữ hƣớng đối tƣợng nhƣ C++ hay Java do không hỗ trợ các lớp hay
tính thừa kế. JavaScript có thể đáp ứng các sự kiện nhƣ tải hay loại bỏ các form. Khả
năng này cho phép JavaScript trở thành một ngôn ngữ script động.
Giống với HTML và Java, JavaScript đƣợc thiết kế độc lập với hệ điều hành.
Nó có thể chạy trên bất kỳ hệ điều hành nào có trình duyệt hỗ trợ JavaScript. Ngoài ra
JavaScript giống Java ở khía cạnh an ninh: JavaScript không thể đọc và viết vào file
của ngƣời dùng. Các trình duyệt web nhƣ Nescape Navigator 2.0 trở đi có thể hiển thị
những câu lệnh JavaScript đƣợc nhúng vào trang HTML. Khi trình duyệt yêu cầu một
trang, server sẽ gửi đầy đủ nội dung của trang đó, bao gồm cả HTML và các câu lệnh
JavaScript qua mạng tới client. Client sẽ đọc trang đó từ đầu đến cuối, hiển thị các kết
quả của HTML và xử lý các câu lệnh JavaScript khi nào chúng xuất hiện.
Các câu lệnh JavaScript đƣợc nhúng trong một trang HTML có thể trả lời cho
các sự kiện của ngƣời sử dụng nhƣ kích chuột, nhập vào một form và điều hƣớng trang.
Ví dụ bạn có thể kiểm tra các giá trị thông tin mà ngƣời sử dụng đƣa vào mà không cần
đến bất cứ một quá trình truyền trên mạng nào. Trang HTML với JavaScript đƣợc
nhúng sẽ kiểm tra các giá trị đƣợc đƣa vào và sẽ thông báo với ngƣời sử dụng khi giá
trị đƣa vào là không hợp lệ.
 Nhúng Javascript vào file html.

20


Luận văn tốt nghiệp cao học

CHƢƠNG 1

Ta có thể nhúng JavaScript vào một file HTML theo một trong các cách sau

đây:
- Sử dụng các câu lệnh và các hàm trong cặp thẻ <SCRIPT>
Script đƣợc đa vào file HTML bằng cách sử dụng cặp thẻ <SCRIPT> và
</SCRIPT>. Các thẻ <SCRIPT> có thể xuất hiện trong phần <HEAD> hay <BODY>
của file HTML. Nếu đặt trong phần <HEAD>, nó sẽ đƣợc tải và sẵn
sàng trƣớc khi phần còn lại của văn bản đƣợc tải. Thuộc tính duy nhất đƣợc định
nghĩa hiện thời cho thẻ <SCRIPT> là “LANGUAGE=“ dùng để xác định ngôn
ngữ script đƣợc sử dụng. Có hai giá trị đƣợc định nghĩa là "JavaScript" và
"VBScript". Với Chƣơng tr.nh viết bằng JavaScript bạn sử dụng cú pháp sau:
<SCRIPT LANGUAGE=”JavaScript”>
// INSERT ALL JavaScript HERE
</SCRIPT>
Điểm khác nhau giữa cú pháp viết các ghi chú giữa HTML và JavaScript là cho
phép bạn ẩn các mã JavaScript trong các ghi chú của file HTML, để các trình duyệt cũ
không hỗ trợ cho JavaScript có thể đọc đƣợc nó nhƣ trong ví dụ sau đây:
<SCRIPT LANGUAGE=”JavaScript”>

</SCRIPT>
Dòng cuối cùng của script cần có dấu // để trình duyệt không diễn dịch dòng này
dƣới dạng mã JavaScript.
- Sử dụng các file nguồn JavaScript.
21


Luận văn tốt nghiệp cao học

CHƢƠNG 1


Thuộc tính SRC của thẻ <SCRIPT> cho phép bạn chỉ rõ file nguồn JavaScript
đƣợc sử dụng (dùng Phƣơng pháp này hay hơn nhúng trực tiếp một đoạn lệnh
JavaScript vào trang HTML).
Cú pháp:
<SCRIPT SRC="file_name.js">
....
</SCRIPT>
Thuộc tính này rấy hữu dụng cho việc chia sẻ các hàm dùng chung cho nhiều
trang khác nhau. Các câu lệnh JavaScript nằm trong cặp thẻ <SCRIPT> và </SCRIPT>
có chứa thuộc tính SRC trừ khi nó có lỗi. Ví dụ bạn muốn đƣa dòng lệnh sau vào giữa
cặp thẻ <SCRIPT SRC="..."> và </SCRIPT>: document.write("Không tìm thấy file JS
đƣa vào!");
Thuộc tính SRC có thể đƣợc định rõ bằng địa chỉ URL, các liên kết hoặc các
đƣờng dẫn tuyệt đối, ví dụ: <SCRIPT SRC=" ">
Các file JavaScript bên ngoài không đƣợc chứa bất kỳ thẻ HTML nào. Chúng
chỉ đƣợc chứa các câu lệnh JavaScript và định nghĩa hàm.
Tên file của các hàm JavaScript bên ngoài cần có đuôi .js, và server sẽ phải ánh
xạ đuôi .js đó tới kiểu MIME application/x-javascript. Đó là những gì mà server gửi trở
lại phần Header của file HTML. Để ánh xạ đuôi này vào kiểu MIME, ta thêm dòng sau
vào file mime.types trong đƣờng dẫn cấu hình của server, sau đó khởi động lại server:
type=application/x-javascript
Nếu server không ánh xạ đƣợc đuôi .js tới kiểu MIME application/x-javascript,
Navigator sẽ tải file JavaScript đƣợc chỉ ra trong thuộc tính SRC về không đúng cách.
Trong ví dụ sau, hàm bar có chứa xâu "left" nằm trong một cặp dấu nháy kép:
function bar(widthPct){
22


Luận văn tốt nghiệp cao học


CHƢƠNG 1

document.write(" <HR ALIGN='LEFT' WIDTH="+widthPct+"%>")
}
- Ngoài 2 cách sử dụng là sử dụng cặp thẻ <SCRIPT>...</SCRIPT> và nhúng
một file nguồn JavaScript đƣợc sử dụng nhiều nhất còn có thêm các cách sử dụng sau:
Sử dụng một biểu thức JavaScript làm giá trị của một thuộc tính HTML và sử dụng thẻ
sự kiện (event handlers) trong một thẻ HTML nào đó.

1.2.1.3. Sử dụng JQuery
 Giới thiệu JQuery.
Với sự phát triển rất mau lẹ của Internet, ngƣời dùng ngày càng quan tâm hơn
đến hình thức của một trang web. Trƣớc đây một trang web chỉ cần có banner, nội
dung và ít footer hời hợt là đã đƣợc cho là một trang web hoàn chỉnh. Nhƣng bây giờ
trang web đó phải có banner bắt mắt, nội dung hay và còn nhiều hiệu ứng lạ mắt khác
nữa thì mới có thể thu hút đƣợc ngƣời xem. Chính vì thế những web designer bắt đầu
chú ý đến các thƣ viện JavaScript mở nhƣ jQuery để tạo ra các hiệu ứng có thể tƣơng
tác trực tiếp với ngƣời đọc một cách nhanh chóng và dễ dàng hơn rất nhiều là sử dụng
thuần JavaScript.
Nhƣng nếu bạn là ngƣời mới làm quen với jQuery bạn sẽ thấy không biết phải
bắt đầu từ đâu vì jQuery cũng giống nhƣ bất cứ thƣ viện nào khác cũng có rất nhiều
functions. Nên khi tìm hiểu về jQuery ta thấy rất phức tạp và khó hiểu. Nhƣng yên tâm
một điều là jQuery có cấu trúc rất mạch lạc và theo hệ thống. Cách viết code của
jQuery đƣợc vay mƣợn từ các nguồn mà các web designer đa phần đã biết nhƣ HTML
và CSS. Nếu từ trƣớc đến nay thƣờng chỉ là thiết kế chứ không phải soản thảo code, có
thể dễ dàng tìm hiểu jQuery vì kiến thức về CSS sẽ giúp rất nhiều khi bắt đầu với
jQuery.
 Khả năng của JQuery.
23



Luận văn tốt nghiệp cao học

CHƢƠNG 1

- Hƣớng tới các thành phần trong tài liệu HTML:
Nếu không sử dụng thƣ viện JavaScript này, bạn phải viết rất nhiều dòng code
mới có thể đạt đƣợc mục tiêu là di chuyển trong cấu trúc cây (hay còn gọi là DOM =
Document Object Model) của một tài liệu HTML và chọn ra các thành phần liên quan.
Jquery cho phép bạn chọn bất cứ thành phần nào của tài liệu hiệu chỉnh một cách dễ
dàng nhƣ sử dụng CSS.
- Thay đổi giao diện của một trang web:
CSS là công cụ rất mạnh để định dạng một trang web nhƣng nó có một nhƣợc
điểm là không phải tất cả các trình duyệt đều hiển thị giống nhau. Cho nên jQuery ra
đời để lấp chỗ trống này, vì vậy các bạn có thể sử dụng nó để giúp trang web có thể
hiển thị tốt trên hầu hết các trình duyệt. Hơn nữa jQuery cũng có thể thay đổi class
hoặc những định dạng CSS đã đƣợc áp dụng lên bất cứ thành phần nào của tài liệu
HTML ngay cả khi trang web đó đã đƣợc trình duyệt load thành công. Thay đổi nội
dung của tài liệu, Jquery không phải chỉ có thể thay đổi bề ngoài của trang web, nó
cũng có thể thay đổi nội dung của chính tài liệu đó chỉ với vài dòng code. Nó có thể
thêm hoặc bớt nội dung trên trang, hình ảnh có thể đƣợc thêm vào hoặc đổi sang hình
khác, danh sách có thể đƣợc sắp xếp lại hoặc thậm chí cả cấu trúc HTML của một
trang web cũng có thể đƣợc viết lại và mở rộng. Tất cả những điều này hoàn toàn có
thể làm đƣợc nhờ sự giúp đỡ của API (Application Programming Interface = Giao diện
lập trình ứng dụng).
- Tƣơng tác với ngƣời dùng:
Cho dù công cụ ngƣời thiết kế dùng có mạnh mẽ đến mấy, nhƣng nếu ngƣời
thiết kế không có quyền quyết định khi nào nó đƣợc sử dụng thì công cụ đó cũng coi
nhƣ bỏ. Với thƣ viện javaScript nhƣ jQuery, nó cho ngƣời thiết kế nhiều cách để tƣơng
tác với ngƣời dùng ví dụ nhƣ khi ngƣời dùng nhấp chuột vào đƣờng link thì sẽ có gì


24


Luận văn tốt nghiệp cao học

CHƢƠNG 1

xảy ra. Nhƣng cái hay của nó là không làm cho code HTML của bạn rối tung lên chính
là nhờ các Event Handlers.
- Tạo hiệu ứng động cho những thay đổi của tài liệu:
Để tƣơng tác tốt với ngƣời dùng, các ngƣời thiết kế web phải cho ngƣời dùng
thấy đƣợc hiệu ứng gì sẽ xảy ra khi họ làm một tác vụ nào đó. Jquery cho phép bạn sử
dụng rất nhiều hiệu ứng động nhƣ mờ dần, chạy dọc chạy ngang … và nếu vẫn chƣa
đủ, nó còn cho phép tự tạo ra các hiệu ứng của riêng mình.
- Lấy thông tin từ server mà không cần tải lại trang web. Đây chính là công nghệ
ngày càng trở nên phổ biến Asynchronous JavaScript And XML (AJAX), nó giúp
ngƣời thiết kế web tạo ra những trang web tƣơng tác cực tốt và nhiều tính năng. Thƣ
viện jQuery loại bỏ sự phức tạp của trình duyệt trong quá trình này và cho phép ngƣời
phát triển web có thể tập trung vào các tính năng đầu cuối. Đơn giản hoá các tác vụ
javaScript. Ngoài những tính năng nhƣ đã nêu ở trên, jQuery còn cho phép bạn viết
code javaScript đơn giản hơn nhiều so với cách truyền thống nhƣ là các vòng lặp và
điều khiển mảng.
 Sự tƣơng thích của JQuery.
- Tận dụng kiến thức về CSS:
Các jQuery Selector hoạt động y hệt nhƣ CSS Selector với cùng cấu trúc và cú
pháp. Chính vì thế thƣ viện jQuery là cửa ngõ cho các nhà thiết kế web muốn thêm
nhiều tính năng hơn nữa cho trang web của mình. Bởi vì điều kiện tiên quyết để trở
thành một thiết kế web chuyên nghiệp là khả năng sử dụng CSS thuần thục. Với kiến
thức có sẵn về CSS, ngƣời thiết kế web sẽ có sự khởi đầu thuận lợi với jQuery.

- Hỗ trợ Plugin:
Để tránh bị rơi vào trạng thái quá tải tính năng, jQuery cho phép ngƣời dùng tạo
và sử dụng Plugin nếu cần. Cách tạo một plugin mới cũng khá đơn giản và đƣợc hƣớng

25


×