Trong những năm gần đây, tính toán lưới được phát triển nhưlà phương tiện hiệu quả
với mức chi phí thấp, là mô hình tính toán mới cho máy tính và mạng máy tính nói chung. Tính
toán lưới giải quyết những bài toán lớn và được dự đoán sẽlà mô hình tính toán của tương lai
00. Trong bài báo này, chúng tôi nghiên cứu đềxuất giải pháp kỹthuật ứng dụng tính toán lưới
(Grid computing) vào hoạt động của sàn giao dịch chứng khoán ởnước ta. Trong quá trình
nghiên cứu, các tác giả đã xây dựng giải pháp kỹthuật khảthi, cho phép xửlý các lệnh chứng
khoán trên lưới tính toán (Computational grid) hoạt động một cách tin cậy. Giải pháp này được
xây dựng trên cơsởcủa mã nguồn mở.NET-Based Alchemi Framework hỗtrợphát triển ứng
dụng lưới và một sốcông cụkhác. Giải pháp đã được thửnghiệm trên mạng LAN và đã đạt
được những kết quảtốt
9 trang |
Chia sẻ: lvbuiluyen | Lượt xem: 1926 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Ứng dụng tính toán lưới cho sàn giao dịch chứng khoán, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 5(40).2010
158
ỨNG DỤNG TÍNH TOÁN LƯỚI CHO SÀN GIAO DỊCH CHỨNG KHOÁN
GRID COMPUTING APPLICATIONS TO STOCK TRADING FLOORS
Lê Văn Sơn
Trường Đại học Sư phạm, Đại học Đà Nẵng
Nguyễn Thành Thủy
Trường Đại học Kinh tế, Đại học Đà Nẵng
TÓM TẮT
Trong những năm gần đây, tính toán lưới được phát triển như là phương tiện hiệu quả
với mức chi phí thấp, là mô hình tính toán mới cho máy tính và mạng máy tính nói chung. Tính
toán lưới giải quyết những bài toán lớn và được dự đoán sẽ là mô hình tính toán của tương lai
00. Trong bài báo này, chúng tôi nghiên cứu đề xuất giải pháp kỹ thuật ứng dụng tính toán lưới
(Grid computing) vào hoạt động của sàn giao dịch chứng khoán ở nước ta. Trong quá trình
nghiên cứu, các tác giả đã xây dựng giải pháp kỹ thuật khả thi, cho phép xử lý các lệnh chứng
khoán trên lưới tính toán (Computational grid) hoạt động một cách tin cậy. Giải pháp này được
xây dựng trên cơ sở của mã nguồn mở .NET-Based Alchemi Framework hỗ trợ phát triển ứng
dụng lưới và một số công cụ khác. Giải pháp đã được thử nghiệm trên mạng LAN và đã đạt
được những kết quả tốt.
Từ khóa: grid computing, grid services, stock exchange for grid computing, Alchemi
Framework.
ABSTRACT
In recent years, grid computing has developed as a low-cost efficient means and a new
computational model for computers and computer networks in general. Grid computing solves
complicated problems and can be predicted to be a future computational model 00. In this
paper, we study and suggest a technical solution for the application of grid computing to the
activities of stock trading floors in our country. In this study, the authors have set up feasible
technical solutions that enable the stock matching on the computational grid to work with
reliability. This solution is built on the basis of an open source. The NET- Based Alchemi
Framework supports the development of grid applications and some other tools. The
solution has been tested on the LAN and has achieved good results.
1. Đặt vấn đề
Tính toán lưới (TTL) cho phép chia sẻ, trao đổi, lựa chọn, tập hợp và phân phối
nguồn lực không đồng nhất về mặt địa lý để giải quyết các vấn đề có quy mô lớn hơn trong
khoa học, kỹ thuật và thương mại 0.
Bên cạnh đó, thị trường chứng khoán (TTCK) là một kênh thu hút và phân phối tài
chính không thể thiếu của một nền kinh tế thị trường 0. Cốt lõi của hoạt động trên sàn
chứng khoán đó là tiếp nhận và xử lý lệnh đặt mua/bán, những lệnh phát sinh sẽ được khớp
một cách tự động và liên tục. Số lượng nhà đầu tư trên thị trường ngày càng tăng, số lượng
giao dịch vào những giờ cao điểm có thể đến hàng nghìn, thời gian cần thiết cho một giao
dịch đi qua cũng tăng lên và đã dẫn đến tình trạng quá tải của toàn hệ thống.
TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 5(40).2010
159
Vậy vấn đề đặt ra của một sàn giao dịch chứng khoán (GDCK) là phải có khả năng
tiếp nhận đồng thời một số lượng lớn các giao dịch, thời gian xử lý một giao dịch phải đủ
nhỏ, đảm bảo sự gắn bó dữ liệu giữa mạng lưới các server được phân bố rải rác về mặt địa
lý, nhằm đảm bảo tính liên tục và khả năng chịu lỗi của toàn hệ thống.
Một phương pháp được sử dụng phổ biến đó là tất cả được định tuyến thông qua
một (một cụm) máy chủ trung tâm. Hệ thống này sẽ làm việc tốt với một thị trường nhỏ
hoặc chuyển động chậm chạp, nhưng sẽ nhanh chóng bị tắc nghẽn khi có hàng nghìn giao
dịch được xử lý.
Cách tiếp cận thị trường tự do mà không có sự giám sát trung ương, không phụ
thuộc vào hiệu năng tính toán của hệ thống trung tâm, giải pháp TTL có thể là cách tốt nhất
để khắc phục các hạn chế trên 0. Trong đó, quản trị dữ liệu cũng là một trong những thách
thức lớn đối với các sàn GDCK. Công nghệ TTL hoàn toàn có thể giải quyết thách thức này
với một giải pháp lý tưởng, nó cho phép TTCK chia sẻ và quản lý dữ liệu phân tán với các
nhà đầu tư thông qua mô hình lưới dữ liệu (Data grid) 0.
Bài viết này, tập trung nghiên cứu và đề xuất giải pháp khả thi để ứng dụng công
nghệ TTL cho sàn GDCK, khắc phục tình trạng tắc nghẽn thường xảy ra ở các sàn GDCK.
2. Hoạt động giao dịch chứng khoán
2.1. Qui trình giao dịch chứng khoán
Hình 1. Qui trình giao dịch chứng khoán
TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 5(40).2010
160
Qui trình hoạt động của GDCK 0 được mô tả trong hình 1, bao gồm:
Bước 1: Nhà đầu tư đến mở tài khoản và đặt lệnh mua/bán chứng khoán tại một
công ty chứng khoán1.
Bước 2: Công ty chứng khoán chuyển lệnh đó cho đại diện của công ty tại sở
GDCK để nhập vào hệ thống giao dịch của Sở GDCK.
Bước 3: Sở GDCK thực hiện ghép lệnh và thông báo kết quả giao dịch cho công ty
chứng khoán.
Bước 4: Công ty chứng khoán thông báo kết quả giao dịch cho nhà đầu tư.
Bước 5: Nhà đầu tư nhận được chứng khoán (nếu là người mua) hoặc tiền (nếu là
người bán) trên tài khoản của mình tại công ty chứng khoán.
2.2. Khớp lệnh chứng khoán (Order-matching stock)
2.2.1. Khớp lệnh liên tục
Theo qui trình GDCK ở hình 1, thì toàn bộ việc xử lý khớp lệnh được diễn ra tại
sở GDCK. Theo yêu cầu về độ ưu tiên khớp lệnh liên tục thì các lệnh được xử lý theo
quy tắc FIFO, như vậy những lệnh vào sau sẽ phải nằm trong hàng đợi hệ thống cho đến
khi được xử lý, thời gian chờ phụ thuộc vào năng lực của Trung tâm xử lý dữ liệu
(TTXLDL) tại sở GDCK. Vậy nếu xảy ra tắc nghẽn trong toàn hệ thống thì khả năng
cao nhất là tại TTXLDL giao dịch.
2.2.2. Thuật toán khớp lệnh liên tục xử lý tại TTXLDL của sở GDCK
Ký hiệu:
- Lt : lệnh của nhà đầu tư phát sinh tại thời điểm t (t phản ánh thứ tự phát sinh lệnh)
- Lm, Lb: lệnh đối ứng Mua, lệnh đối ứng Bán
- giat và khoiluongt : giá và khối lượng của lệnh Lt
- Q, M, B: hàng đợi lệnh Mới phát sinh, lệnh chờ Mua và lệnh chờ Bán
- T: tập các lệnh đã khớp thành công và chờ thanh toán bù trừ
- Tongdm, Tongdb: tổng dư mua, tổng dư bán
Thuật toán khớp lệnh liên tục:
Algorithm MATCHING _STOCK(Lt)
Description: Giải thuật thực hiện khớp lệnh Lt với các lệnh mua/bán đang chờ khớp
Input: Lệnh giao dịch Lt
Output: Kết quả khớp, Khối lượng khớp, Tổng dư mua và Tổng dư bán
Method:
1
2
Q = Q ∪ { Lt }, Q = Q ∩ { Lk }, k =min(i,j), ∀Li, Lj ∈ Q và i ≠ j
if (Lk là lệnh Bán) then // Khớp giá chào Mua
1 Công ty môi giới chứng khoán
TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 5(40).2010
161
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
do
M = M ∩ { Lm }, Lm ∈M, với: giam = max(giau, giav) và giam >= giak ∀Lu, Lv
∈M
if (Lm ∅= ) then
B = B ∩ { Lk }, break
else if (khoiluongk = khoiluongm) then
khoiluongk = khoiluongm = 0
T = T∪ { Lk }∪ { Lm }, break
else if (khoiluongk < khoiluongm) then
khoiluongm = khoiluongm – khoiluongk, khoiluongk = 0
T = T∪ { Lk }, M = M ∪ { Lm }, break
else
khoiluongk = khoiluongk – khoiluongm, khoiluongm = 0
T = T∪ { Lm }
endif
while (Lm ≠ ∅ )
else // Khớp giá chào Bán
do
B = B ∩ { Lb }, Lb ∈B, với: giab = min(giau, giav) và giab <= giak ∀Lu, Lv ∈B
if (Lb ∅= ) then
M = M ∪ { Lk }, break
else if (khoiluongk = khoiluongb) then
khoiluongk = khoiluongb = 0
T = T∪ { Lk }∪ { Lb }, break
else if (khoiluongk < khoiluongb) then
khoiluongb = khoiluongb – khoiluongk, khoiluongk = 0
T = T∪ { Lk }, B = B ∪ { Lb }, break
else
khoiluongk = khoiluongk – khoiluongm, khoiluongm = 0
T = T∪ { Lb }
endif
while (Lb ≠ ∅ )
endif
Tongdm = ∑ ikhoiluong MLi ∈∀ , Tongdb = ∑ ikhoiluong BLi ∈∀
End Algorithm.
Gọi n là số lượng giao dịch chờ khớp, ta có độ phức tạp của thuật toán là: O(n).
TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 5(40).2010
162
3. Mô hình giải pháp và chương trình thực nghiệm dựa trên Alchemi Framework
3.1. Alchemi Framework
Alchemi là một .NET-based framework cung cấp các giải pháp để xây dựng môi
trường lưới và phát triển các ứng dụng TTL 0. Alchemi gồm có 4 thành phần chính:
Manager (M), Executor (E), User (U)
& Cross-Platform Manager (X).
Thành phần Manager được triển
khai ở máy chủ trung tâm, tiếp nhận các
yêu cầu tính toán từ User, tổ chức lập
lịch và điều phối các luồng xử lý đến
các nút lưới (Executor).
Thành phần Executor được triển
khai trên các nút lưới, có chức năng tiếp
nhận các luồng tính toán được yêu cầu
từ Manager và xử lý chúng.
Thành phần User là nơi tiêu thụ các ứng dụng lưới của người dùng cuối, các yêu
cầu này sẽ được User gửi đi và nhận kết quả về từ Manager.
Thành phần Cross-Platform Manager cung cấp các dịch vụ để kiểm soát thành
phần Manager thông qua giao diện web.
3.2. Giải pháp ứng dụng tính toán lưới cho sàn GDCK
3.2.1. Mô hình triển khai lưới dịch vụ
Hình 3. Giải pháp ứng dụng tính toán lưới cho sàn GDCK
Hình 2. Các thành phần của Alchemi
U X
M
E E E E E
Custom Grid
Middleware
U
M
E
X
Nút User
Nút Manager
Nút Executor
Nút Cross
Platform Manager
TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 5(40).2010
163
Thành phần User sẽ được triển khai trên hệ thống máy chủ ở các công ty chứng
khoán, thành phần Manager được triển khai tại TTXLDL của Sở GDCK, thành phần
Excuter thực thi các ứng dụng lưới được triển khai trên mạng lưới các máy tính cộng
tác tài nguyên.
3.2.2. Giải pháp xử lý lệnh trên lưới tính toán
Theo giải pháp xử lý tuần tự (sequence) truyền thống, khi TTXLDL tiếp nhận
một lệnh, lệnh sẽ được chuyển vào hàng đợi xử lý (job queue) để đợi đến lượt xử lý và
thanh toán bù trừ (nếu được khớp). Theo mô phỏng ở hình 5.
Hình 4. Giải pháp xử lý lệnh tuần tự
Giải pháp này đã bộc lộ một số hạn chế của hệ thống như: thời gian chờ của các
lệnh vào sau sẽ tăng dần kéo theo thời gian chờ trung bình của các lệnh tăng lên và tỉ lệ
thuận với số lệnh phát sinh, TTXLDL sẽ dần cạn kiệt tài nguyên và có nguy cơ tắc
nghẽn vào giờ cao điểm, …
Để khắc phục hạn chế này, xử lý song song kết hợp với khả năng huy động
nguồn lực tính toán đa dạng của công nghệ TTL là giải pháp khả thi.
Hình 5. Giải pháp xử lý lệnh song song trên lưới
Dựa vào đặc trưng của quy trình xử lý lệnh chứng khoán, chúng ta có thể phân
luồng để xử lý lệnh theo nhóm mã chứng khoán và loại giao dịch, các lệnh sau khi
TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 5(40).2010
164
được lập lịch sẽ được phân phối đến các nút lưới để xử lý, việc này giúp kéo giảm thời
gian chờ trung bình của các lệnh và giảm tối đa thời gian chết của các lệnh chờ khớp,
theo mô phỏng ở hình 6.
4. Xây dựng chương trình thực nghiệm
4.1. Kịch bản
Chúng tôi đã xây dựng một lưới tính toán gồm 1 nút Manager và cụm các nút
lưới Executor. Một phân hệ User, cho phát sinh ngẫu nhiên một số lượng lớn các lệnh
chứng khoán với số liệu tương đương trong môi trường thực, lần lượt đệ trình các lệnh
này theo thứ tự phát sinh đến nút Manager. Nút Manager tiếp nhận và gửi lệnh vào lưới
tính toán để thực hiện khớp.
4.2. Triển khai
4.2.1. Môi trường
Môi trường thực nghiệm gồm có 7 PC, trong đó 1 PC làm nút Manager và 6 PC
là các nút Executor, được kết nối trên mô hình mạng LAN.
4.2.2. Phương pháp
Lần lược cho phát sinh ngẫu nhiên: 1000, 2000, 3000, 4000 và 5000 lệnh xử lý
trực tiếp trên server local (không sử dụng lưới) và xử lý trên dịch vụ lưới lần lượt với 2,
3, 4, 5 và 6 nút lưới Executor. Sau đó tiến hành quan sát và đánh giá kết quả.
4.2.3. Một số kết quả quan sát
Phân hệ trên nút Manager ở hình 7, có chức năng giám sát tình trạng của các
lệnh phát sinh (1); chức năng giám sát thông tin khớp lệnh trên sàn (2); chức năng giám
sát nhật ký hoạt động của sàn (3). Giao diện trên hình 8, có chức năng phân tích số liệu
Hình 6. Hệ thống mô phỏng ứng dụng tính toán lưới (1)
2
1
3
TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 5(40).2010
165
tăng trưởng chứng khoán bằng biểu đồ kỹ thuật (4), chức năng giám sát trạng thái của
các nút Execute trên lưới (5), chức năng giám sát các luồng công việc được phân bổ trên
lưới (6).
Hình 7. Hệ thống mô phỏng ứng dụng tính toán lưới (2)
4.3. Phân tích kết quả thực nghiệm
Kết quả thực nghiệm được biểu diễn trong biểu đồ ở hình 9, phản ánh mối tương
quan giữa số lượng lệnh phát sinh và thời gian xử lý (được tính trên đơn vị thời gian là
giây) với số lượng nút lưới được huy động để xử lý trong lưới tính toán.
Hình 8. Biểu đồ tương quan giữa thời gian xử lý và số nút lưới
Qua biểu đồ cho thấy, thời gian xử lý của hệ thống không sử dụng lưới (cột thứ
nhất trong mỗi nhóm) tăng dần theo số lượng lệnh phát sinh. Thời gian trung bình để xử
lý lệnh cũng tăng dần, năng lực xử lý của hệ thống giảm dần. Ta thấy xuất hiện tình
trạng quá tải của hệ thống khi số lượng giao dịch tăng lên.
Khi sử dụng lưới tính toán để xử lý, thời gian xử lý của hệ thống giảm kéo theo
thời gian trung bình để xử lý lệnh giảm rõ rệt, dấu hiệu quá tải chưa thấy xuất hiện trong
hệ thống. Tuy nhiên, khi huy động càng nhiều nút lưới trong lưới tính toán thì mức độ
cải thiện về thời gian xử lý vẫn không đáng kể, nguyên nhân ở đây là do chi phí đường
truyền, chi phí xử lý các nghiệp vụ phân luồng và lập lịch,… của nút Manager cũng sẽ
tăng khi có thêm nhiều nút lưới trong lưới tính toán.
4
5
6
TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 5(40).2010
166
5. Kết luận
Thông qua bài báo này, các tác giả đã đề xuất một giải pháp kỹ thuật khả thi ứng
dụng TTL cho sàn GDCK, tăng khả năng xử lý lệnh giao dịch phù hợp với hoàn cảnh
của nước ta. Giải pháp đã được triển khai thực nghiệm và cho kết quả khả quan, hiệu
suất và tính ổn định của hệ thống được cải thiện đáng kể so với giải pháp truyền thống.
Kết quả thực nghiệm cho thấy, lưới tính toán tăng đáng kể tốc độ xử lý của TTXLDL
giao dịch, thời gian xử lý trung bình cho một lệnh cũng giảm rõ rệt.
Tuy nhiên, tùy nhu cầu thực tế mà huy động số nút lưới vào lưới tính toán cho
phù hợp, nhằm khai thác tối ưu hiệu năng tính toán và giảm chi phí trung gian của hệ
thống. Trong môi trường thực lưới tính toán còn phụ thuộc nhiều vào hạ tầng mạng, tốc
độ và tính ổn định của môi trường truyền thông.
Trong phạm vi nghiên cứu, chúng tôi chỉ mới đề cập đến giải pháp lưới tính toán
trong xử lý giao dịch. Lưới tính toán cung cấp các dịch vụ riêng biệt, hoạt động độc lập
nhưng chỉ khi kết hợp với lưới dữ liệu thì lưới tính toán mới phát huy hết sức mạnh của
mình. Bên cạnh những kết quả đạt được, bài báo vẫn còn một số vấn đề cần phải tiếp
tục nghiên cứu phát triển như:
• Phát triển lưới dữ liệu cho sàn GDCK, nhằm tăng khả năng liên kết và quản lý dữ
liệu hiệu quả của dịch vụ lưới
• Tính toán nhu cầu tài nguyên của TTXLDL ở mỗi thời điểm để đảm bảo sự huy
động tối ưu các nút lưới
• Khả năng khai thác nguồn lực tính toán từ chính PC của các nhà đầu tư sử dụng để
truy cập dịch vụ cũng là một hướng phát triển, nhằm huy động tối đa nguồn lực tính
toán và giải quyết thế bế tắc về năng lực tính toán của các giải pháp truyền thống
khi số lượng truy cập dịch vụ tăng lên.
TÀI LIỆU THAM KHẢO
[1]. Nguyễn Văn Hân (2009), Giáo trình Thị trường và các định chế tài chính, trường
Đại học Kinh tế - Đại học Đà Nẵng.
[2]. Cisco Systems, Inc. (2008), Trading Floor Architecture.
[3]. Krishna Nadiminti, Akshay Luther, Rajkumar Buyya. Alchemi: A .NET-based
Enterprise Grid System and Framework.
[4]. Rajkumar Buyya and Srikumar Venugopal. The Gridbus Toolkit for Service
Oriented Grid and Utility Computing: An Overview and Status Report.
[5]. Stock Market Data Grid.
market-data-grid-a-tool-which-promotes-efficiency-545619.html#ixzz0luG59Nqn,
Truy cập 24/4/2010.
[6]. Stock exchange for ‘grid’ computing.
Truy cập 24/4/2010.