Tải bản đầy đủ

Ứng dụng công nghệ truyền tin message queue trong hệ thống thanh toán chứng khoán

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
---------------*---------------

NGUYỄN HỒNG PHÚC

ỨNG DỤNG CÔNG NGHỆ TRUYỀN TIN MESSAGE
QUEUE TRONG HỆ THỐNG THANH TOÁN
CHỨNG KHOÁN

LUẬN VĂN THẠC SĨ

Hà Nội - 2008


ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
---------------*---------------

NGUYỄN HỒNG PHÚC


ỨNG DỤNG CÔNG NGHỆ TRUYỀN TIN MESSAGE
QUEUE TRONG HỆ THỐNG THANH TOÁN
CHỨNG KHOÁN

Ngành:
Công nghệ Thông tin
Chuyên ngành: Truyền dữ liệu và mạng máy tính
Mã số:
60 48 15

LUẬN VĂN THẠC SĨ

NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS. Nguyễn Hoài Sơn

Hà Nội - 2009


MỤC LỤC
MỤC LỤC ................................................................................................................ 1
DANH MỤC THUẬT NGỮ ..................................................................................... 3
MỞ ĐẦU .................................................................................................................. 4
CHƢƠNG 1: GIỚI THIỆU CHUNG HỆ THỐNG THANH TOÁN CHỨNG KHOÁN
1.1 Giới thiệu chung về hệ thống giao dịch thanh toán chứng khoán ...................... 6
1.2 Các tác vụ chính trong hệ thống ....................................................................... 7
1.2.1 Truy vấn số dƣ tài khoản tiền gửi nhà đầu tƣ: ............................................ 7
1.2.2 Yêu cầu xử lý phong toả tạm thời tài khoản............................................... 7
1.2.3 Yêu cầu xử lý phong toả chính thức kết quả mua chứng khoán:................. 7
1.2.4 Yêu cầu thanh toán hạch toán tiền mua, bán chứng khoán: ........................ 8
1.2.5 Xử lý yêu cầu hủy lệnh phong toả tạm thời mua chứng khoán từ các công ty
chứng khoán: ..................................................................................................... 8
1.3 Các yêu cầu chung. .......................................................................................... 9
1.3.1 Yêu cầu bảo mật chƣơng trình ................................................................... 9
1.3.2 Các yêu cầu khác trong hệ thống: .............................................................. 9
1.4 Yêu cầu về giao diện.......................................................................................10
1.5 Đánh giá chung ...............................................................................................11
CHƢƠNG 2: TRUYỀN TIN TRONG HỆ THỐNG THANH TOÁN CHỨNG KHOÁN
.................................................................................................................................12
2.1 Bài toán đặt ra trong hệ thống thanh toán chứng khoán. ..................................12
2.1.1 RPC(Remote Procedure Call - Lời gọi thủ tục từ xa) ................................12
2.1.2 OOM(Objected Oriented Middleware – Middleware hƣớng đối tƣợng) ....14


2.1.3 Middleware dựa trên sự kiện ....................................................................15
2.1.4 MOM(Message Oriented Middleware - Middleware hƣớng thông điệp) ...16
2.2 Giới thiệu chung về IBM Websphere MQ .......................................................17
2.2.1 Định nghĩa của Message Queue? ..............................................................17
2.2.2 Đặc trƣng chính của MQ ..........................................................................19
2.2.3 Bộ quản lý hàng đợi (Queue manager) .....................................................23
2.2.4 Giao diện hàng đợi thông điệp - Message Queue Interface (MQI) ............23
2.2.5 Các lợi ích có đƣợc khi sử dụng Message Queue ......................................24
2.3 Các chức năng cơ bản của IBM Websphere MQ ............................................27

6


2
2.3.1 Giao diện hàng đợi thông điệp ..................................................................27
2.3.2 Hàng đợi ..................................................................................................28
2.3.3 Truyền thông giữa bộ quản lý hàng đợi với ứng dụng ...............................34
2.3.4 Truyền thông giữa các bộ quản lý hàng đợi ..............................................36
2.3.5 Các hàng đợi vận chuyển (Transmission queues)......................................41
2.3.6 Truyền thông giữa client và server ...........................................................43
CHƢƠNG 3 THIẾT KẾ HỆ THỐNG VỚI CÔNG NGHỆ MESSAGE QUEUE ......45
3.1 Mô hình logic hệ thống thanh toán chứng khoán .............................................45
3.2 Các module trong mô hình logic hệ thống thanh toán chứng khoán .................47
3.4 Mô hình hóa lớp đối tƣợng và biểu đồ tuần tự .................................................47
3.4.1 Mô hình lớp đối tƣợng .............................................................................47
3.4.2 Biểu đồ tuần tự.........................................................................................53
CHƢƠNG 4: KẾT QUẢ THỰC HIỆN HỆ THỐNG ................................................59
4.1 Triển khai hệ thống .........................................................................................59
4.2 Một số use case chính của hệ thống ................................................................60
4.2.1 Nhóm use case xử lý nghiệp vụ ................................................................60
4.2.2 Nhóm use case ở công ty chứng khoán .....................................................61
4.3 Một số màn hình demo ...................................................................................61
4.3.1. Giao dịch online ......................................................................................61
4.3.2. Giao dịch cuối ngày ................................................................................63
4.3.3. Vấn tin giao dịch trong ngày và bảng kê ..................................................65
4.4 Đánh giá hoạt động truyền tin trong hệ thống thanh toán chứng khoán............67
4.4.1 Các giao dịch vấn tin, phong toả, giải phong toả tài khoản nhà đầu tƣ ......68
4.4.2 Các giao dịch gửi bảng kê hạch toán cuối ngày(32K-2MB) ......................68
CHƢƠNG 5: KẾT LUẬN ........................................................................................70
TÀI LIỆU THAM KHẢO ........................................................................................71


3

DANH MỤC THUẬT NGỮ
BIDV

Bank for Investment and Development of Vietnam – Ngân
hàng Đầu tƣ và Phát triển Việt Nam.

BIDV@Security Hệ thống thanh toán chứng khoán do Ngân hàng đầu tƣ và
phát triển Việt Nam xây dựng.

CTCK

Các công ty chứng khoán có hợp đồng dịch vụ với Ngân
hàng Đầu tƣ và phát triển.

MQ

Message Queue - Hàng đợi thông điệp, nơi chứa các thông
điệp trao đổi giữa các máy chủ trong hệ thống.

SIBS

Silverlake Integrated Banking System - Hệ thống ngân hàng
tích hợp Siverlake.

LDAP

Lightweight Directory Access Protocol – Giao thức thiết kế
và truy xuất dữ liệu.

Ikey

Là thiết bị bảo mật ngoài, lƣu chứng chỉ số và mã khoá bí
mật do ngân hàng cấp cho các cán bộ các chi nhánh ngân
hàng và các công ty chứng khoán.


4

MỞ ĐẦU
Đầu tƣ chứng khoán ở Việt Nam cũng nhƣ ở nhiều nƣớc thực sự là một cơ
hội. Ngày 23/2/2007, chính phủ ra nghị định số 27/2007 NĐ-CP về giao dịch điện
tử trong hoạt động tài chính và ngày 8/3/2007, chính phủ đƣa ra nghị định 35/2007
NĐ-CP về giao dịch điện tử trong hoạt động ngân hàng, trong đó tài khoản các nhà
đầu tƣ chứng khoán đều phải chuyển về cho các ngân hàng thƣơng mại quản lý
trƣớc ngày 1/10/2008 thay vì do các công ty chứng khoán quản lý nhƣ trƣớc. Nghị
định trên là cơ hội để cho các ngân hàng thƣơng mại thu hút khách hàng, nhà đầu tƣ.
Tuy nhiên, rất nhiều các công ty chứng khoán còn băn khoăn e dè khi phải chuyển
toàn bộ các tài khoản nhà đầu tƣ từ công ty chứng khoán quản lý sang cho các ngân
hàng quản lý. Lý do chủ yếu là lo ngại về tƣơng thích phần mềm, về bảo mật, an
toàn kỹ thuật kết nối, tốc độ xử lý giao dịch..vv khi mà khối lƣợng giao dịch tài
chính rất lớn và nhạy cảm.
Vì vậy, xây dựng cổng thanh toán chứng khoán trực tuyến kết nối với các
công ty chứng khoán là một vấn đề hết sức quan trọng. …
Các giao dịch vấn tin tài khoản, huỷ phong toả tài khoản, thanh toán mua bán
chứng khoán đƣợc gửi sang ngân hàng từ các công ty chứng khoán. Các giao dịch
này đƣợc thực hiện qua thông qua giao tiếp giữa các server của các công ty chứng
khoán với ngân hàng. Đây là các giao dịch tài chính, đòi hỏi tính chính xác cao, độ
trễ nhỏ. Do đó, cần phải tìm ra công nghệ truyền tin phù hợp, đảm bảo kết nối giữa
các công ty chứng khoán với ngân hàng.
Luận văn của học viên tập trung nghiên cứu vào việc sử dụng công nghệ
truyền tin IBM Message Queue trong việc xây dựng hệ thống thanh toán chứng
khoán trực tuyến. Công nghệ này giúp cho ngân hàng kết nối đƣợc với tất cả các
công ty chứng khoán, đảm bảo việc chất lƣợng truyền tin về mọi mặt cho dù hệ
thống giao dịch tại các công ty chứng khoán phát triển trên các môi trƣờng khác
nhau. Nó cũng giúp cho kết nối tránh đƣợc những phức tạp vốn có liên quan đến
mạng.


5
Các yêu cầu đối với hệ thống bao gồm quản lý tài khoản tiền gửi nhà đầu tƣ
chứng khoán mở tại ngân hàng, cung cấp thông tin số dƣ tài khoản nhà đầu tƣ,
phong toả tiền nhà đầu tƣ khi đặt lệnh mua chứng khoán, hạch toán kết quả mua bán
chứng khoán, trả cổ tức, trái tức... bằng hệ thống công nghệ kết nối giữa các công ty
chứng khoán với ngân hàng.
Luận văn “Ứng dụng công nghệ truyền tin Message Queue trong hệ thống
thanh toán” hƣớng đến việc ứng dụng công nghệ IBM Message Queue vào xây
dựng hệ thống thanh toán chứng khoán là cổng thanh toán giữa các Công ty chứng
khoán với Ngân hàng.
Luận văn bao gồm năm chƣơng:
Chƣơng 1: Giới thiệu chung hệ thống thanh toán chứng khoán
Chƣơng 2: Truyền tin trong hệ thống thanh toán chứng khoán. Giới thiệu
các công nghệ truyền tin, lựa chọn công nghệ truyền tin IBM Message Queue.
Chƣơng 3: Thiết kế hệ thống với công nghệ Message Queue. Trong chƣơng
này học viên tập trung vào việc xây dựng mô hình hệ thống thanh toán chứng khoán,
thiết kế hệ thống với công nghệ Message Queue.
Chƣơng 4: Kết quả thực hiện đƣợc. Chƣơng này đƣa ra các kết quả thực
hiện hệ thống, một số màn hình demo. Đánh giá hiệu suất làm việc của hệ thống.
Chƣơng 5: Kết luận


6

CHƢƠNG 1: GIỚI THIỆU CHUNG HỆ THỐNG THANH
TOÁN CHỨNG KHOÁN
1.1 Giới thiệu chung về hệ thống giao dịch thanh toán chứng khoán

Các Công ty
chứng khoán

Nhà đầu tƣ

Hệ thống
thanh toán
chứng khoán

Hệ thống
máy chủ
ngân hàng

Cán bộ Chi
nhánh

Hình 1.1: Mô hình tổ chức thông tin hệ thống thanh toán chứng khoán
Hệ thống thanh toán chứng khoán là cổng thanh toán chứng khoán trực tuyến, trong
đó ngân hàng quản lý toàn bộ tài khoản của các nhà đầu tƣ chứng khoán, thực hiện
các yêu cầu vấn tin, hạch toán, thanh toán chứng khoán của các nhà đầu tƣ chứng
khoán. Các yêu cầu này đƣợc các công ty chứng khoán tiếp nhận và gửi sang ngân
hàng thực hiện. Trong mô hình trên, các công ty chứng khoán kết nối với ngân hàng
thông qua hệ thống thanh toán chứng khoán, hệ thống bao gồm:
Các nhà đầu tƣ: Khi muốn mua bán chứng khoán hoặc thực hiện các giao dịch liên
quan đến thanh toán chứng khoán, đƣa yêu cầu trực tiếp đến công ty chứng khoán.
Các công ty chứng khoán: Tiếp nhận lệnh thanh toán chứng khoán từ các nhà đầu
tƣ. Yêu cầu này đƣợc các giao dịch viên công ty chứng khoán thực hiện trong
chƣơng trình cài đặt tại công ty chứng khoán.
Hệ thống thanh toán chứng khoán: Thực hiện các chức năng quản lý ngƣời dùng,
vấn tin, phong toả, giải phong toả tài khoản nhà đầu tƣ, nhận lệnh và xử lý hạch
toán kết quả mua bán chứng khoán, phí hoa hồng, trả cố tức, trái tức, hạch toán


7
quyền mua bán chứng khoán vào tài khoản tiền gửi nhà đầu tƣ và tài khoản của các
công ty chứng khoán đƣợc mở trong hệ thống Ngân hàng.
Các cán bộ chi nhánh: Các cán bộ tại các chi nhánh đƣợc cấp quyền hạn thực hiện
xử lý các lệnh thanh toán kết quả mua bán chứng khoán của các công ty chúng
khoán.
Hệ thống máy chủ ngân hàng: Chứa mọi thông tin về tài khoản của nhà đầu tƣ
chứng khoán.

1.2 Các tác vụ chính trong hệ thống
1.2.1 Truy vấn số dƣ tài khoản tiền gửi nhà đầu tƣ:
Hiển thị ngay lập tức các thông tin trên tài khoản tiền gửi nhà đầu tƣ tại Ngân
hàng (các thông tin nhƣ: số dƣ khả dụng, số tiền bị phong toả, thời điểm phong toả)
sau khi các công ty chứng khoán gửi yêu cầu truy vấn. Yêu cầu này do các nhà đầu
tƣ đƣa ra tại các phòng giao dịch của các công ty chứng khoán, sau đó các giao dịch
viên nhập các yêu cầu này từ màn hình cài đặt tại các công ty chứng khoán. Các
thông tin này đƣợc truyền sang ngân hàng, tại đây, hệ thống thanh toán chứng
khoán xử lý và trả kết quả về cho các công ty chứng khoán.
1.2.2 Yêu cầu xử lý phong toả tạm thời tài khoản
- Tại các công ty chứng khoán: Các nhà đầu tƣ đƣa ra yêu cầu mua chứng
khoán. Giao dịch viên (đã đƣợc cấp quyền) tại các công ty chứng khoán nhập các
yêu cầu của các nhà đầu tƣ vào chƣơng trình, thông qua phê duyệt của các kiểm
soát viên, các thông tin đã đƣợc phê duyệt đƣợc gửi sang ngân hàng.
- Tại ngân hàng: Chƣơng trình tự động nhận dạng thông điệp yêu cầu phong
toả tạm thời số dƣ tài khoản nhà đầu tƣ từ các công ty chứng khoán gửi đến, căn cứ
vào số hiệu tài khoản tiền gửi nhà đầu tƣ chƣơng trình tự động gửi yêu cầu vào hệ
thống máy chủ của ngân hàng.
1.2.3 Yêu cầu xử lý phong toả chính thức kết quả mua chứng khoán:
- Tại các công ty chứng khoán: Căn cứ kết quả khớp lệnh của trung tâm giao
dịch chứng khoán, công ty chứng khoán xác định số tiền phong toả chính thức để
mua chứng khoán và gửi yêu cầu phong toả tài khoản tới ngân hàng.


8
- Tại ngân hàng: Nhận thông tin phong toả chính thức tài khoản các nhà đầu
tƣ từ các công ty chứng khoán, chƣơng trình thanh toán chứng khoán căn cứ vào số
hiệu tài khoản tiền gửi nhà đầu tƣ chƣơng trình tự động giải toả số tiền phong toả
tạm thời và phong toả lại số tiền phong toả chính thức.
1.2.4 Yêu cầu thanh toán hạch toán tiền mua, bán chứng khoán:
File do các công ty chứng khoán gửi đến phải đƣợc lƣu các thông tin về ngày
giờ nhận tệp vào chƣơng trình, trạng thái của tệp.
- Tại ngân hàng: Kiểm soát viên sử dụng thiết bị Ikey để nhận lệnh thanh
toán đến. Chƣơng trình tự động kiểm tra ngày trên lệnh thanh toán với ngày làm
việc của hệ thống máy chủ ngân hàng , nếu khớp đúng chƣơng trình tự động tạo bút
toán, tự động in liệt kê các bút toán hạch toán. Lúc này, số tiền trong tài khoản các
nhà đầu tƣ đƣợc hạch toán theo đúng nội dung trong file đã nhận đƣợc từ các công
ty chứng khoán. (Hệ thống thực hiện ghi nợ, ghi có tài khoản các nhà đầu tƣ và các
công ty chứng khoán). Nếu không khớp đúng có thông báo "Ngày hạch toán khác
với ngày của hệ thống máy chủ".
- Kiểm soát viên duyệt bút toán chƣơng trình tạo ra và sử dụng thiết bị Ikey
để đẩy bút toán vào hệ thống máy chủ ngân hàng để thực hiện hạch toán tài khoản
của các nhà đầu tƣ..
Trƣờng hợp số dƣ tài khoản của nhà đầu tƣ không đủ, chƣơng trình thông
báo cho ngƣời sử dụng biết và bút toán đƣợc lƣu lại tại một hàng đợi riêng. Khi số
dƣ đã đủ Kiểm soát viên có thể sử dụng thiết bị Ikey để đẩy lại bút toán này vào hệ
thống máy chủ ngân hàng.
1.2.5 Xử lý yêu cầu hủy lệnh phong toả tạm thời mua chứng khoán từ
các công ty chứng khoán:
Nhận dạng thông điệp yêu cầu huỷ lệnh từ các công ty chứng khoán gửi, căn
cứ vào Số hiệu tài khoản nhà đầu tƣ chƣơng trình tự động tìm kiếm tài khoản tiền
gửi nhà đầu tƣ trong hệ thống máy chủ ngân hàng và thực hiện giải toả một phần
hoặc toàn bộ số tiền tuỳ theo yêu cầu của các công ty chứng khoán.


9

1.3 Các yêu cầu chung.
1.3.1 Yêu cầu bảo mật chƣơng trình
- Bảo mật mức đƣờng truyền: Hệ thống phải đảm bảo ngăn cản những xâm
nhập trái phép vào mạng.
- Bảo mật dữ liệu trên đƣờng truyền: Dữ liệu truyền nhận giữa các công ty
chứng khoán và ngân hàng phải đƣợc mã hoá trên đƣờng truyền.
- Cơ sở dữ liệu lƣu trữ các thông tin về ngƣời sử dụng và thông tin giao dịch
cần phải đƣợc bảo vệ. Chỉ có ngƣời có quyền quản trị hệ thống mới đƣợc quyền
truy nhập và thao tác với dữ liệu trong hệ thống. Ngƣời sử dụng khác không có
quyền thao tác trực tiếp vào dữ liệu tại máy chủ.
- Các thao tác và giao dịch trên chƣơng trình cần phải đƣợc ghi nhật ký.
- Mức ngƣời dùng: Ngƣời sử dụng đƣợc phân ra thành nhiều vai trò khác
nhau nhƣ: Giao dịch viên (Tạo bút toán hạch toán, in bảng kê giao dịch mua bán
chứng khoán, liệt kê hạch toán, phiếu hạch toán...) - Kiểm soát viên (Giải mã file
hạch toán kết quả mua bán chứng khoán, duyệt bút toán hạch toán vào hệ thống
SIBS ) - Quản trị (Các chức năng hệ thống của chƣơng trình), mỗi vai trò có một
nhóm các chức năng riêng biệt.
1.3.2 Các yêu cầu khác trong hệ thống:
- Nguyên tắc ƣu tiên thực hiện phong toả tài khoản tiền gửi nhà đầu tƣ tại
ngân hàng: Chƣơng trình tự động thực hiện phong toả tài khoản nhà đầu tƣ trên
nguyên tắc ƣu tiên thứ tự thời gian gửi yêu cầu từ công ty chứng khoán vào hệ
thống ngân hàng. Phải thiết lập đƣợc cơ chế truyền nhận tin sao cho ngân hàng nhận
biết đƣợc thứ tự ƣu tiên của các thông điệp gửi sang từ các công ty chứng khoán.
- Khả năng truy cập chƣơng trình từ nhiều điểm giao dịch của các công ty
chứng khoán: Chƣơng trình phải đáp ứng đƣợc tại cùng một thời điểm sẽ có nhiều
điểm truy cập vào chƣơng trình để yêu cầu các giao dịch truy vấn và phong toả tài
khoản nhà đầu tƣ tại hệ thống ngân hàng. Hiện tại chƣơng trình phải đáp ứng đƣợc
tối thiểu cho 50 công ty chứng khoán, mỗi công ty chứng khoán có 10 điểm truy
cập. Tƣơng lai số công ty chứng khoán này sẽ tăng dần lên. Với số lƣợng các công
ty chứng khoán kết nối lớn, các công ty này lại ở các quy mô lớn nhỏ khác nhau.
Qua khảo sát, các công ty này phát triển trên nhiều môi trƣờng khác nhau, cơ sở dữ


10
liệu và hệ điều hành khác nhau. Việc lựa chọn công nghệ phù hợp, có thể thích ứng
đƣợc với nhiều công ty chứng khoán đáp ứng nhu cầu kết nối với nhiều công ty là
yếu tố quan trọng trong xây dựng hệ thống thanh toán chứng khoán trực tuyến.
- Phƣơng án dự phòng: Đƣờng truyền tự động chuyển sang phƣơng án dự
phòng khi đƣờng truyền gặp sự cố.
- Phƣơng án khi hệ thống ngân hàng không hoạt động. Sử dụng giải pháp
máy chủ ngân hàng dự phòng.
- Nhận dạng file yêu cầu từ các công ty chứng khoán: Mỗi một lô (file) yêu
cầu nhƣ: Hạch toán thanh toán kết quả mua chứng khoán, hạch toán kết quả bán
chứng khoán hoặc mỗi thông điệp nhƣ: Vấn tin số dƣ, phong toả, giải toả tài khoản
nhà đầu tƣ, sửa lỗi.... phải có yêu cầu riêng về nhận dạng tệp và thông điệp(File và
Message).

1.4 Yêu cầu về giao diện
a. Giao dịch viên các công ty chứng khoán vấn tin tài khoản nhà đầu tƣ:
Giao dịch viên công ty chứng khoán nhập vào màn hình “vấn tin” các thông
tin về số tài khoản của nhà đầu tƣ. Để gửi đƣợc yêu cầu truy vấn tài khoản về hệ
thống phải sử dụng thiết bị bảo mật Ikey. Hệ thống tự động tìm kiếm thông tin về
tên, tài khoản của nhà đầu tƣ và trả thông tin về tài khoản bao gồm số dƣ sổ cái và
số dƣ khả dụng.
b. Phong toả tài khoản nhà đầu tƣ:
Giao dịch viên công ty chứng khoán nhập vào màn hình “phong toả” các
thông tin về số tài khoản nhà đầu tƣ, số tiền phong toả sau đó kích đúp nút “phong
toả”, yêu cầu phải sử dụng thiết bị bảo mật Ikey. Hệ thống tự động nhận thông tin
và trả về kết quả chấp nhận, từ chối phong toả hoặc timeout, nếu từ chối phải nêu rõ
lý do.
c. Huỷ phong toả tài khoản nhà đầu tƣ:
Giao dịch viên công ty chứng khoán nhập vào màn hình “giải phong toả” các
thông tin về số tài khoản nhà đầu tƣ, hệ thống tự động trả về danh sách các giao
dịch Hold cần huỷ, giao dịch viên công ty chứng khoán chọn giao dịch cần huỷ,
kích đúp nút “huỷ”. Yêu cầu chỉ cho phép thực hiện trên các giao dịch do bản thân
giao dịch viên đó đã thực hiện Hold.


11
d. Duyệt giao dịch huỷ phong toả.
Kiểm soát viên công ty chứng khoán vào màn hình “Duyệt giao dịch”:
- Duyệt huỷ phong toả, chƣơng trình sẽ liệt kê danh sách các tài khoản cần huỷ
phong toả do giao dịch viên điểm giao dịch đó lập, kiểm soát viên chọn giao dịch và
kích nút “Duyệt giải phong toả”. Việc duyệt phải đƣợc thực hiện bằng thiết bị bảo
mật Ikey do ngân hàng cung cấp cho các công ty chứng khoán.
e. Tạo lệnh thanh toán kết quả mua/ bán chứng khoán sang ngân hàng
Giao dịch viên CTCK tạo lệnh thanh toán mua/ bán chứng khoán.
f. Duyệt lệnh thanh toán mua bán chứng khoán gửi sang ngân hàng
Kiểm soát viên xem laị nội dung lệnh thanh toán (nếu cần), thực hiện “Duyệt
đẩy lệnh sang ngân hàng” bằng thiết bị bảo mật Ikey.

1.5 Đánh giá chung
Với một hệ thống thanh toán chứng khoán, toàn bộ thông tin việc thanh toán
mua bán chứng khoán đƣợc truyền qua kênh kết nối giữa các công ty chứng khoán
với ngân hàng. Vì vậy, việc lựa chọn mô hình thiết kế và công nghệ truyền tin giữa
các bên là rất quan trọng. Trong bối cảnh các công ty chứng khoán phát triển trên
các môi trƣờng khác nhau từ các nhà sản xuất khác nhau. Ở chƣơng 1 này, luận văn
đã nêu ra những vấn đề chính, đó là trƣớc những yêu cầu cần có trong hệ thống
thanh toán chứng khoán, bài toán đặt ra là phải lựa chọn một công nghệ truyền tin
thích hợp. Ở chƣơng tiếp theo, luận văn trình bày việc tìm hiểu một số công nghệ
truyền tin và đƣa ra công nghệ tối ƣu nhất ứng dụng trong mô hình thanh toán
chứng khoán.


12

CHƢƠNG 2: TRUYỀN TIN TRONG HỆ THỐNG THANH
TOÁN CHỨNG KHOÁN
2.1 Bài toán đặt ra trong hệ thống thanh toán chứng khoán.
Các giao dịch thanh toán chứng khoán nhƣ vấn tin, phong toả tài khoản, giải
phong toả tài khoản, ghi nợ, ghi có tài khoản khách hàng, tài khoản nhà đầu
tƣ,…đƣợc thực hiện thông qua giao tiếp giữa các server của các công ty chứng
khoán và gateway của hệ thống ngân hàng. Các giao dịch này đều là giao dịch tài
chính, đòi hỏi có độ chính xác cao và độ trễ đủ nhỏ để không ảnh hƣởng đến lợi ích
các nhà đầu tƣ. Tuy nhiên, việc giao tiếp giữa các hệ thống này sẽ rất khó khăn nếu
thông qua mạng internet. Ngoài ra, các server của các công ty chứng khoán và hệ
thống Gateway của ngân hàng đƣợc phát triển trên các môi trƣờng khác nhau về hệ
điều hành, về cơ sở dữ liệu, về ngôn ngữ lập trình,…vv. Vì vậy, cần phải tìm ra
công nghệ đảm bảo:
-

Các server giao tiếp với nhau dù tồn tại trong các môi trƣờng khác
nhau.

-

Truyền dữ liệu giữa các server phải đảm bảo, đúng, chính xác, không
bị lặp, không bị mất và đặc biệt không cho phép có độ trễ lớn, …đảm
bảo chất lƣợng truyền.

Hiện nay, có rất nhiều các công nghệ truyền tin, phục vụ giao tiếp giữa các
máy chủ. Các công nghệ phổ biến hiện nay nhƣ RPC(Remote Procedure Call - Lời
gọi thủ tục từ xa), OOM(Object Orient Middleware - Middleware hƣớng đối tƣợng),
EBM(Event Based Middleware – Middleware dựa trên sự kiện) và MOM(Messagee
Oriented Middleware – Middleware hƣớng thông điệp),..vv. Các công nghệ trên đều
có những ƣu nhƣợc điểm riêng. Dƣới đây, học viên trình bày sơ qua một số công
nghệ đã đƣợc xem xét đến trong quá trình khảo sát.
2.1.1 RPC(Remote Procedure Call - Lời gọi thủ tục từ xa)
Công nghệ này cho phép một chƣơng trình có thể thực hiện lời gọi một thủ
tục trên một máy tính khác trên mạng. RPC có mô hình client/server. RPC đóng gói


13
các tham số của hàm và trả về giá trị hàm. Các yêu cầu/phản hồi đƣợc thực thi trên
cơ chế truyền thông điệp. Một RPC đƣợc khởi tạo bởi client gửi một thông điệp yêu
cầu tới một máy chủ từ xa để thực hiện một thủ tục xác đinh trƣớc với các tham số
cần thiết. Một phản hồi (response) đƣợc trả về cho máy trạm, máy trạm sẽ chờ đợi
cho đến khi máy chủ xử lý xong lời gọi thủ tục.
Chi tiết cơ chế hoạt động của RPC:
Ứng dụng client gọi một stub cục bộ thay vì mã nguồn thực sự thực thi thủ tục. Các
stub đƣợc biên dịch và liên kết với ứng dụng client, mã nguồn stub thực hiện các
nhiệm vụ.
 Nhận các tham số đƣợc yêu cầu từ client.
 Dịch các tham số thành đinh dạng chuẩn cho việc truyền thông trên
mạng.
 Gọi các hàm trong thƣ viện RPC client để gửi các yêu cầu và tham số
tới server.
Server thực hiện các bƣớc sau để gọi thủ tục từ xa:
 Các hàm thƣ viện RPC server nhận yêu cầu và gọi thủ tục server stub.
 Server stub nhận các tham số từ bộ đệm mạng và chuyển từ định dạng
truyền thông trên mạng thành định dạng server cần.
 Server stub gọi thủ tục thực sự trên server.
Sau khi thủ tục từ xa đƣợc gọi, thông thƣờng sẽ sinh ra các tham số đầu ra và giá trị
trả về, khi lời gọi thủ tục này kết thúc, một chuỗi các bƣớc tƣơng tự đƣợc thực hiện
để trả dữ liệu về cho client.
 Lời gọi thủ tục từ xa trả kết quả về cho server stub.
 Server stub chuyển các tham số output thành định dạng đƣợc yêu cầu
cho truyền thông trên mạng và trả lại dữ liệu này cho các hàm thƣ
viện RPC run-time.
 Các hàm thƣ viện runtime RPC truyền dữ liệu này tới client.
Client hoàn tất tiến trình này bằng cách nhận dữ liệu từ mạng và trả nó cho hàm gọi,
theo các bƣớc sau:
 Thƣ viện RPC client nhận giá trị trả về và trả lại cho client stub.


14
 Client stub chuyển đổi dữ liệu thành định dạng đƣợc sử dụng bởi
client. Stub ghi dữ liệu vào bộ nhớ của client và trả về kết quả cho
chƣơng trình gọi trên máy client.
Một số tính chất của RPC:
-

Tƣơng tác yêu cầu/phản hồi đồng bộ.

-

Làm trong suốt tính phực tạp của hệ thống.

-

Dễ hiểu và dễ thực thi với ngƣời lập trình.

Các nhƣợc điểm của RPC:
-

Yêu cầu từ phía máy trạm có thể phải chờ đợi trong thời gian dài, vì vậy
sẽ cần phải có cơ chế đa luồng trong chƣơng trình.

-

Sự phụ thuộc giữa máy trạm và máy chủ là khá lớn, vì vậy khi máy chủ
có sự thay đổi thì máy trạm cũng phải thay đối theo để đáp ứng.

-

Mô hình RPC là không hƣớng đối tƣợng, client gọi các thủ tục và truyền
vào các tham số và nhận đƣợc kết quả trả về cho lời gọi hàm đó.

Caller

call(…
)

RPC Service
1) Marshal args
2) Generate ID
3) Start timer
8) Unmarshal
9) Acknowledge

RPC Service
message

4) Unmarshal
5) Record ID

Remote
Function
fun(…)

6) Marshal
7) Set timer

Hình2.1: Cơ chế truyền tin thông điệp trong mô hình RPC[5]
2.1.2 OOM(Objected Oriented Middleware – Middleware hƣớng đối
tƣợng)
Một số công nghệ đƣợc đã đƣợc xây dựng trên mô hình này, ví dụ nhƣ: RMI,
CORBA, DCOM[14]. Trong middleware hƣớng đối tƣợng, các đối tƣợng và các
tham chiếu đối tƣợng có thể là đối tƣợng cục bộ hoặc là từ xa bên ngoài. Ý tƣởng
của OOM là tạo ra các nguyên tắc về hƣớng đối tƣợng cho các hệ thống phân tán.


15
Mỗi OOM có một ngôn ngữ định nghĩa giao diện (interface definition
language - IDL). IDL hỗ trợ khái niệm của các kiểu đối tƣợng nhƣ các tham số, xử
lý lỗi và thừa kế. Một đối tƣợng máy chủ thực thi một kiểu đối tƣợng và có thể trả
về các đối tƣợng máy chủ khác. Điểm này đã khắc phục đƣợc nhƣợc điểm của RPC
đó là các thủ tục đƣợc gọi bởi một chƣơng trình RPC không thể trả lại về cho một
chƣơng trình RPC khác.
 Thực thi tầng trình diễn của OOM:
-

Thực thi của tầng trình diễn trong OOM tƣơng tự nhƣ là với RPC.
OOM cũng hỗ trợ mô hình client/server stub.

-

Tầng trình diễn của OOM cần đƣợc ánh xạ các tham chiếu đối tƣợng
tới định dạng vận chuyển.

 Các nhƣợc điểm của OOM
-

Chỉ có tƣơng tác request/reply đồng bộ, yêu cầu phƣơng thức không
đồng bộ. Tuy nhiên, các thực thi có thể vẫn tạo ra sự ràng buộc chặt
chẽ giữa máy trạm và máy chủ.

-

OOM cần có một bộ thu gom rác phân tán để giải phóng bộ nhớ cho
các đối tƣợng từ xa không đƣợc sử dụng.

2.1.3 Middleware dựa trên sự kiện

Hình2.2: Mô hình Middleware dựa trên sự kiện[5]
Hình trên mô tả cơ chế truyền thông trong EBM.
 Publisher xuất bản các sự kiện (event)
 Subscribers thể hiện các yêu cầu trong các sự kiện bằng các
subscriptions.


16
 Dịch vụ các sự kiện thông báo tới các Subscribers của thông điệp đã xuất
bản sau khi tìm đƣợc sự kiện phù hợp với các yêu cầu đã đăng ký.
Một số tính chất của EBM:
 Giao tiếp bất đồng bộ: các Publishers và Subscribers không bị ràng buộc
chặt chẽ.
 Tƣơng tác nhiều-nhiều giữa các Publishers và Subscribers. Các
Publishers không cần biết về các Subscribers.
2.1.4 MOM(Message Oriented Middleware - Middleware hƣớng thông
điệp)

Hình2.3: Mô hình truyền thông trong MOM[5]
Truyền thông trong MOM đƣợc thực hiện bởi việc sử dụng các thông điệp,
các thông điệp này đƣợc lƣu trữ trong các hàng đợi thông điệp. Một số công nghệ
phổ biến đƣợc xây dựng trên kiến trúc MOM là: IBM MQ, Java Messaging Service,
MS MQ..
Một số tính chất của MOM:
 Tƣơng tác bất đồng bộ: client/server không bị ràng buộc chặt chẽ, các
thông điệp đƣợc đặt vào hàng đợi. Các tính chất này rất tốt cho việc tích
hợp ứng dụng.
 Hỗ trợ dịch vụ truyền tin cậy, MOM giữ các hàng đợi trong các kho chứa.
 Xử lý các thông điệp bởi các server thông điệp trung gian. Có các cơ chế
nhƣ lọc, chuyển đổi, lƣu vết …


17
 Dễ dàng tích hợp với cơ sở dữ liệu.
Nhìn chung, các công nghệ đáp ứng bài toán đặt ra, tuy nhiên khả năng kết
nối với tính ổn định không cao, do đặc thù tính chất nhạy cảm trong thanh toán
chứng khoán, các giao dịch có độ trễ lớn sẽ ảnh hƣởng đến các nhà đầu tƣ. Khối
lƣợng đặt lệnh trên sàn rất lớn, các giao dịch là các giao dịch tài chính, không cho
phép có độ trễ lớn. Vì vậy công nghệ MQ(Message Queue) của IBM đáp ứng đƣợc
các yêu cầu trên đối với hệ thống. Giao tiếp giữa các máy chủ sẽ đƣợc thực hiện
thông qua IBM Message Queue. Các máy chủ sẽ không còn thực hiện giao tiếp trực
tiếp với nhau, mà thực chất là giữa các bộ quản lý hàng đợi(Queue manager) của
MQ và nhờ đó tránh đƣợc các phức tạp liên quan đến mạng. Ngoài ra, những ƣu
điểm của MQ giúp cho các máy chủ có thể làm việc hay không làm việc nhƣng vẫn
truyền nhận đƣợc dữ liệu của nhau. Công nghệ MQ đƣợc viết trên Java thực hiện
đƣợc giao tiếp giữa các máy chủ của hệ thống.

2.2 Giới thiệu chung về IBM Websphere MQ
Trong hầu hết các doanh nghiệp, nhiều công nghệ khác nhau tồn tại trong
cùng một hạ tầng Công nghệ thông tin. Các công nghệ khác nhau của các nhà sản
xuất khác nhau đƣa vào hệ thống xuất xứ từ nhiều nhà sản xuất, với các phần cứng,
ngôn ngữ lập trình, hệ điều hành và các kết nối giao tiếp khác nhau. Việc kết nối
giữa các hệ thống khác nhau thƣờng phức tạp và có thể rất đắt, làm cho nhiều hệ
thống tách biệt với các hệ thống khác. Hơn nữa, các doanh nghiệp cũng cần có giao
tiếp giữa các nhà cũng cấp với khách hàng. Một số cơ chế dễ dàng thực hiện, rẻ tiền,
và đang tin cậy rất cần để kết nối trong các hệ thống nhƣ vậy, để tích hợp bên trong
và bên ngoài hạ tầng công nghệ thông tin.
2.2.1 Định nghĩa của Message Queue?
Message Queue là gì? Messaging and Queuing cho phép các hệ thống liên
lạc với nhau dễ dàng mà không cần có kết nối logic trực tiếp giữa chúng[7].
Cách thức thực hiện đơn giản: các hệ thống liên lạc với nhau bằng việc lấy
các thông điệp từ hàng đợi thông điệp và gửi đi.
Messaging – Thông điệp: các hệ thống liên lạc với nhau bằng cách gửi dữ
liệu cho nhau thông qua thông điệp chứ không phải liên lạc trực tiếp.


18
Queuing- Hàng đợi: các thông điệp đƣợc đặt trong các hàng đợi, nhờ đó, các
hệ thống có thể thực hiện độc lập với nhau, với tốc độ, thời gian và vị trí khác nhau,
không cần có kết nối logic giữa chúng.

Hình 2.4: Hệ thống A gửi thông điệp cho hệ thống B thông qua hàng đợi 1[7]

Trong hình vẽ trên, hệ thống A và B có thể chạy trên cùng một bộ vi xử lý
trên cùng môi trƣờng, cũng có thể chạy trên các bộ xử lý khác nhau trên cùng môi
trƣờng, và có thể chạy trên các bộ xử lý khác nhau trên các môi trƣờng khác nhau.
Các giao tiếp có thể thực hiện theo một chiều hoặc hai chiều. Các giao tiếp
có thể đƣợc thực hiện theo một chiều (chẳng hạn hệ thống A gửi dữ liệu cho hệ
thống B) hoặc có thể trao đổi với nhau (thông điệp do hệ thống A gửi cho hệ thống
B, hệ thống B phải gửi thông điệp trả lời). Tuy nhiên giao tiếp theo hai chiều không
có tính ép buộc, nếu bên gửi thông điệp không yêu cầu, bên nhận sẽ không gửi
thông điệp trả lời.


19

Hình 2.5: Các hệ thống có thể giao tiếp theo một hoặc hai chiều[7]

Hình vẽ trên là giao tiếp hai chiều giữa hai hệ thống. Hệ thống A giao tiếp
với hệ thống B thông qua Queue 1. Nếu hệ thống B cần giao tiếp với hệ thống A thì
sẽ trả lời A bằng cách gửi thông điệp vào hàng đợi 2, là hàng đợi mà hệ thống A sẽ
nhận thông điệp tại đó.
2.2.2 Đặc trƣng chính của MQ
- Các hệ thống có thể liên lạc bất cứ lúc nào
- Không bị ràng buộc bởi cấu trúc của các ứng dụng
- Tránh đƣợc các vấn đề phức tạp liên quan đến mạng
a. Các hệ thống có thể liên lạc bất cứ lúc nào
Các hệ thống không nói chuyện trực tiếp qua mạng mà gián tiếp bằng việc để
lại thông điệp vào các hàng đợi thông điệp. Và do đó không cần quan tâm tới sự
khác biệt về thời gian, bên gửi và bên nhận các hệ thống không nhất thiết phải chạy
cùng lúc.
Bên nhận có thể bận lúc có thông điệp đƣa vào hàng đợi của nó. Thực tế là
thông điệp đến không ảnh hƣởng đến quá trình xử lý hiện thời của hệ thống vì
không nhất thiết phải xử lý ngay với thông điệp đó.
Bên nhận có thể không xử lý ngay với các thông điệp nhận đƣợc mà có thể
xử lý sau nhiều giờ hay nhiều ngày..tuỳ theo công việc khi cần đến.


20

Hình 2.6: Hệ thống B có thể không hoạt động khi có thông điệp gửi đến[7]
Bên nhận có thể không làm việc lúc bên gửi gửi thông điệp. Bên nhận có thể
đang bận khi thông điệp đƣợc đƣa vào hàng đợi của nó. Thông điệp gửi cho bên
nhận vẫn ở trong hàng đợi cho đến khi bên nhận làm việc trở lại. Hàng đợi chứa
thông điệp tồn tại độc lập với các hệ thống sử dụng nó, vì thế các hệ thống có thể
không hoạt động cùng lúc.
Trong hình vẽ trên, hệ thống B có thể đang bận hoặc không hoạt động, tuy
nhiên thông điệp gửi cho hệ thống B vẫn đƣợc lƣu trong Hàng đợi 1 cho đến khi hệ
thống hết bận hoặc hoạt động trở lại (Các hàng đợi thông điệp tồn tại độc lập với
các hệ thống sử dụng nó, vì thế các hệ thống có thể không hoạt động, tuy nhiên
thông điệp gửi đến cho hệ thống đó vẫn đƣợc duy trì trong hàng đợi cho đến khi hệ
thống hoạt động trở lại và xử lý nó).
b. Không bị ràng buộc bởi cấu trúc của các ứng dụng
Phần trên đã trình bày mối quan hệ một chiều giữa các hệ thống, và luồng dữ
liệu thông điệp có thể đi từ hệ thống A đến hệ thống B và ngƣợc lại. MQ cho phép
áp dụng với mọi ứng dụng cấu trúc phức tạp và do đó, luồng dữ liệu thông điệp
cũng phức tạp hơn. Có thể thiết lập mối quan hệ một - nhiều giữa các hệ thống.


21

Hình 2.7: Quan hệ một nhiều giữa các hệ thống[7]

Hình trên là mối quan hệ một - nhiều giữa các hệ thống, hệ thống A gửi dữ
liệu cho các hệ thống B, C, D và ngƣợc lại các hệ thống B, C, D có thể gửi dữ liệu
cho hệ thống A.
Trong hình trên, các hệ thống B, C, D có thể là:
-

Các bản sao của cùng một hệ thống chạy với mục đích cân bằng tải. Nhờ

đó, hệ thống A có thể làm việc năng suất cao hơn nếu bên nhận có đủ khả năng đáp
ứng tốc độ làm việc của hệ thống A.
-

Là ba hệ thống khác nhau lấy dữ liệu từ một hàng đợi. Trong một số

trƣờng hợp, các hệ thống cùng hoạt động sẽ có hiệu quả cao hơn làm việc tuần tự.
Có thể xây dựng mối quan hệ nhiều - một:

Hình 2.8: Mối quan hệ nhiều - một giữa các hệ thống[7]


22

Trong hình trên, hệ thống E có thể tập hợp thông tin, dữ liệu từ các hệ thống
B, C, D và ngƣợc lại thông điệp có thể đi từ hệ thống E đến với các hệ thống B,C,D.
Các hệ thống B, C, D có thể là các máy trạm của cùng một máy chủ, là hệ
thống E. Tuy nhiên, có thể không có kết nối trực tiếp giữa máy chủ và các máy trạm,
nên máy chủ có thể lấy dữ liệu từ hàng đợi theo thứ tự FIFO hoặc theo thứ tự ƣu
tiên của riêng hệ thống đó. Chẳng hạn nếu máy chủ(hệ thống E) biết dữ liệu gửi đến
từ hệ thống C là quan trọng hơn, có mức ƣu tiên cao hơn, nó sẽ lấy dữ liệu do C gửi
đến trƣớc. Nếu không sử dụng MQ, các hệ thống mô hình client – server truyền
thống sẽ phải xử lý theo thứ tự rất chặt chẽ, phức tạp.
Ngƣời ta có thể kết hợp các mối quan hệ 1-1, 1-nhiều, nhiều – 1, nhiều nhiều để đƣa ra các mô hình:

Hình 2.9: Kết hợp các mối quan hệ cơ bản[7]
Ứng dụng này kết hợp các cấu trúc:
Mối quan hệ một - một (quan hệ giữa E và F)
Mối quan hệ một - nhiều (giữa hệ thống A, B, C và D)
Mối quan hệ nhiều - một (giữa hệ thống B,C,D và E)
Có thể kết hợp các khối để đƣa ra những quan hệ phức tạp giữa nhiều hệ
thống. MQ cho phép kết hợp mà không bị ràng buộc gì về cấu trúc của hệ thống.
c. Tránh đƣợc các vấn đề phức tạp liên quan đến mạng
Hệ thống A giao tiếp với B bằng cách đặt vào hàng đợi thông điệp của B một
thông điệp. Hệ thống B nhận thông điệp từ hàng đợi. Tất cả các hoạt động liên quan


23
đều do MQ đảm nhiệm. Các hệ thống không giao tiếp trực tiếp với nhau, do đó
không liên quan đến tính phức tạp của mạng.
d. Ví dụ minh họa về Message Queue
Để minh hoạ hoạt động của MQ, giả sử có hai hệ thống, một hệ thống xử lý
yêu cầu khách hàng, một hệ thống thanh toán với khách hàng. Vì lý do tổ chức, các
hệ thống này không hoạt động trên cùng một máy tính.
Hệ thống Customer Order(CO) hoạt động trên bộ xử lý Tandem tại văn
phòng chi nhánh ở Chicago; hệ thống Customer Billing(CB) hoạt động trên máy
chủ ES/9000 tại văn phòng hội sở chính ở Düsseldorf. Tại một số vị trí, thông tin
phải đƣợc trao đổi giữa CO và CB, nhờ đó hoá đơn thanh toán sẽ đƣợc đƣa ra theo
đúng hàng hoá mà khách mua. Sử dụng giao diện do MQ cung cấp, hệ thống CO và
CB có thể giao tiếp với nhau bất cứ lúc nào.
2.2.3 Bộ quản lý hàng đợi (Queue manager)
Hệ thống CO thông báo về yêu cầu khách hàng với CB thông qua thông điệp
đặt tại hàng đợi của CB(Queue1). Khi CB lấy thông điệp từ Queue1, nó sử dụng
thông tin từ thông điệp đó để sinh ra hoá đơn tính phí. CB có thể gửi thông báo cho
CO, có thể là thông báo hàng hoá đã đƣợc tính tiền xong. CB làm đƣợc việc đó
bằng cách đặt thông điệp vào hàng đợi thông điệp của CO. Việc lƣu chuyển thông
điệp từ CO đến Queue 1 và từ CB đến Queue 2 đƣợc quản lý bởi “middleware”, gọi
là bộ quản lý hàng đợi.
2.2.4 Giao diện hàng đợi thông điệp - Message Queue Interface (MQI)
Hệ thống nói chuyện trực tiếp với bộ quản lý hàng đợi của nó, sử dụng giao
diện hàng đợi thông điệp - Message Queue Interface(MQI). Giao diện hàng đợi
thông điệp là tập các lời gọi để yêu cầu các dịch vụ của bộ quản lý hàng đợi. Chỉ có
2 thao tác cơ bản: MQPUT và MQGET.


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay

×