Các module trong mô hình logic hệ thống thanh toán chứng khoán

Một phần của tài liệu Ứng dụng công nghệ truyền tin Message Queue trong hệ thống thanh toán chứng khoán (Trang 49)

Bảng 3.1: Danh sách các module

Tên module Công

nghệ Máy cài đặt Ghi chú

Payment1 Java Máy chủ

gateway

Xử lý các giao dịch vấn tin tài khoản, hold, unhold, vấn tin giao dịch gần nhất

Payment2 Java Máy chủ

gateway

Xử lý các giao dịch gửi bảng kê, vấn tin bảng kê, vấn tin các giao dịch hold, unhold

SecurityPayment Java Máy chủ

gateway

Xử lý các giao dịch thanh toán theo lô bảng kê thanh toán, hold, unhold.

Bank

Webservice

.NET Máy chủ

gateway

Xử lý việc kết nối đến Oracle, SIBS, LDAP, MQ phục vụ cho chƣơng trình chi nhánh và HO Chƣơng trình tại

chi nhánh và HO

.NET Máy chi nhánh Xử lý việc quản lý chi nhánh, công

ty chứng khoán, ngƣời sử dụng, xử lý bảng kê giao dịch gửi đến, đối chiếu

Chƣơng trình tại CTCK

VB, .NET Máy công ty chứng khoán

Thực hiện đóng gói message và gửi đến webserivce

BAP

Webservice

Java Mảy chủ BAP Cung cấp giao diện cho chƣơng

trình của công ty chứng khoán, trao đổi với Payment1 và Payment2 thông qua MQ

3.4 Mô hình hóa lớp đối tượng và biểu đồ tuần tự

3.4.1 Mô hình lớp đối tƣợng

Đƣợc viết trên nền tảng Webservice bao gồm các lớp chính: Account, MQInterface, XmlMesage.

a. Lớp Account:

Đƣợc cài đặt trên máy BAP, là máy chủ tại các công ty chứng khoán. Lớp này cung cấp các dịch vụ liên quan đến các nghiệp vụ tƣơng tác với các tài khoản

của nhà đầu tƣ và công ty chứng khoán. Dƣới đây là mô tả về thiết kế lớp Account và các mô tả chi tiết chức năng của các phƣơng thức trong lớp Account.

Bảng 3.1: Thiết kế lớp Account

Bảng 3.2: Mô tả chi tiết lớpAccount

Đối tƣợng Account

Phƣơng thức Chú thích

getBalance Lấy số dƣ khả dụng của khách hàng

holdAccount Phong toả tiền mua chứng khoán của khách hàng

unholdAccount Giải phong toả tiền mua chứng khoán của khách hàng

getLatestHoldTrans Lấy 5 giao dich phong tảo tài khoản gần nhất đối với một tài khoản của khách hàng

postSecuritiesTrans Chuyển bảng kê giao dịch chứng khoán

getHoldTranList Vấn tin các giao dịch đã phong toả trong ngày

getunholdTranList Vấn tin các giao dịch giả phong toả trong ngày

validateUser Xác thực lời gọi Webservice

b. Lớp XmlMesage

Đƣợc cài đặt trên máy chủ BAP của công ty chứng khoán. Là lớp cung cấp các phƣơng thức chuyển đối cấu trúc thông điệp:

Bảng 3.3: Thiết kế lớp XmlMessage

Bảng 3.4: Mô tả chi tiết lớp XmlMessage

Đối tƣợng XmlMesage

Thuộc tính Chú thích

MessageId Mã thông thông điệp

Scid Mã số công ty chứng khoán

CustAcctnumber Số tài khoản của khách hàng

CustAcctName Tên tài khoản của khách hàng

Balance Số dƣ hiện tại

AvailBalance Số dƣ khả dụng

HoldAmount Số tiền cần phong toả

UnholdAmount Số tiền cần giải phong toả

Ref Số tham chiếu dùng cho việc đối chiếu

Transtate Trang thái giao dịch

Desc Chú thích trạng thái giao dịch

TranDate Ngày giao dịch

UserId Mã số ngƣời dùng

DigitalSignatureSc Chữ ký điện tự gửi kèm để xác thực thông điệp

getRequestMessageContent() Lấy nội dung thông điệp yêu cầu getResponseMessageContent() Lấy nội dụng thông điệp phản hồi contructRequestMessage() Tạo nội dung thông điệp yêu cầu contructResponseMessage() Tạo nội dụng thông điệp phản hồi

c. Lớp MqInterface

Đƣợc cài đặt trên máy chủ BAP của công ty chứng khoán và trên cả máy Gateway ngân hàng. Lớp này thực hiện các tác vụ tƣơng tác với IMB Message Queue. Dƣới đây mô tả các phƣơng thức và chức năng của các phƣơng thức trong lớp MqInterface:

Bảng 3.5: Thiết kế lớp MqInterface

Bảng 3.6: Mô tả chi tiết lớp MQInterface

Đối tƣợng MQInterface

Thuộc tính Chú thích

WMQ_PORT Số hiệu cổng của queue cần kết nối

openOptions Cách thức tƣơng tác với queue

SVR_CON Kênh kết nối

MQQManName Tên của Queue Manager

qName Tên queue cần tƣơng tác

outQueue Queue gửi dữ liệu phản hồi

intQueue Queue dữ liệu gửi đến

replyToQueue Tên queue hồi đáp

Phƣơng thức

accessQMgr() Tạo kết nối với queue

SetCnnProperties() Tạo thông số kết nối

sendAsynMsg() Gửi thông điệp ở chế độ không đồng bộ

sendRequestMsg() Gửi thông điệp yêu cầu

getReplyMsg() Phƣơng thức lấy thông điệp phản hồi

c. MQEchoServer

Đƣợc cài đặt trên máy Gateway, xử lý các giao dịch Online

Bảng 3.7: Thiết kế lớp MQEchoServer

Bảng 3.8: Thiết kế lớp MQEchoServer

Đối tƣợng MQEchoServer

Thuộc tính Chú thích

MQQueueManager Tên queue Manager

qName Tên queue cần tƣơng tác

inQueue Queue dữ liệu đến

tellerId Mã số giao dịch viên, sữ dụng để thực hiện giao dịch

trên SIBS

Phƣơng thức Chú thích

dữ liệu tại Queue và xử lý.

checkCutOffTime Kiểm tra giờ đóng cửa giao dịch

getCurrentTime Lấy giờ hiện tại của máy Gateway

d. Lớp SignAndVerify

Cài đặt trên máy chủ công ty chứng khoán BAP và Gateway. Thực hiện ký và xác thực ngƣời dùng với công ty chứng khoán và ngƣời dùng tại các chi nhánh.

Bảng 3.9: Thiết kế lớp SignAndVerify

Bảng 3.10: Mô tả chi tiết lớp SignAndVerify

Đối tƣợng SignAndVerify

Thuộc tính Chú thích

Key Khoá lƣu tại file

Cert Chứng chỉ lƣu trong file

signatureAlgrorithm Giải thuật sử dụng để ký

MPrivateKey Khoá bí mật

fileInputStream Biến chứa nộ dung file đọc vào

Cpassword Mật khẩu mở file

Phƣơng thức Chú thích

sign(() Ký chữ ký điện tử

3.4.2 Biểu đồ tuần tự

a. Phƣơng thức vấn tin tài khoản

: Bidv Gateway : Securities Trading : Account : Bank

Access Point : Bidv Core Banking

Get Balance

SOAP Message

MQ Message

Check CA, Write Log

SIBS Message SIBS Message Write Log Create MQ Message MQ Message SOAP Message Return Balance SCID CustAcctNumber UserId Password Ref DigitalSignatureSC Balance Available Balance TranState ErrDesc

Hình 3.3: Biểu đồ tuần tự phương thức vấn tin tài khoản

Chƣơng trình tại công ty chứng khoán gọi Webservice trên máy BAP, là máy chủ tại công ty chứng khoán, gửi yêu cầu vấn tin tài khoản. Máy BAP đóng gói thành xâu XML ghi vào MQ trên máy BAP. MQ trên máy BAP truyền thông điệp đến MQ trên gateway của ngân hàng, Gateway ngân hàng đọc dữ liệu thông điệp

gửi đến và xử lý gửi dữ liệu đến host là hệ thống máy chủ ngân hàng để yêu cầu xử lý và nhận kết quả trả lại. Sau khi đã nhận đầy đủ thông tin, Gateway đóng gói thành chuỗi XML gửi kết quả trả lại lên MQ tại Gateway. MQ tại Gateway lại truyền dữ liệu cho MQ trên máy BAP. Webservice tại máy BAP nhận dữ liệu và gửi kết quả cho chƣơng trình tại công ty chứng khoán.

: Account : MQInterface : XmlMessage : Securities Trading System 2: validateUser( ) 5: SetCnnProperties( ) 6: accessQMgr( ) 7: sendRequestMsg( ) 3: contructRequestMessage( ) 4: sendMsg( ) 1: getBalance( )

b. Phƣơng thức phong toả tài khoản

: Securities Trading

: Account

: Bank

Access Point Gateway : Bidv

: Bidv Core Banking Hold Account Return Balance SOAP Message SOAP Message MQ Message

Check CA, Write Log

Write Log MQ Message SIBS Message SIBS Message SCID CustAcctNumber UserId Password Ref Desc HoldAmount Write Log

Rev erse Transaction(If Transaction faile d)

Hình 3.5: Biểu đồ tuần tự phương thức phong toả tài khoản

Chƣơng trình tại công ty chứng khoán gọi Webservice trên máy BAP, là máy chủ tại công ty chứng khoán, gửi yêu cầu phong toả tài khoản. Máy BAP đóng gói thành xâu XML ghi vào MQ trên máy BAP. MQ trên máy BAP truyền thông điệp đến MQ trên gateway của ngân hàng, Gateway ngân hàng đọc dữ liệu thông điệp

gửi đến và xử lý gửi dữ liệu đến host là hệ thống máy chủ ngân hàng để yêu cầu xử lý và nhận kết quả trả lại. Sau khi đã nhận đầy đủ thông tin, Gateway đóng gói thành chuỗi XML gửi kết quả trả lại lên MQ tại Gateway. MQ tại Gateway lại truyền dữ liệu cho MQ trên máy BAP. Webservice tại máy BAP nhận dữ liệu và gửi kết quả cho chƣơng trình tại công ty chứng khoán.

: Account : MQInterface : XmlMessage : Securities Trading System 2: validateUser( ) 5: SetCnnProperties( ) 6: accessQMgr( ) 7: sendRequestMsg( ) 3: contructRequestMessage( ) 4: sendMsg( ) 1: holdAccount( )

c. Phƣơng thức giải phong toả tài khoản : Bank Access Point : Securities Trading : Account : Bidv Gateway : Bidv Core Banking SCID CustAcctNumber UserId Password Ref Desc UnholdAmount Write Log unhold Account Return Balance SOAP Message SOAP Message MQ Message

Check CA, Write Log

Write Log

MQ Message

Rev erse Transaction(If Transaction failed) SIBS Message

SIBS Message

Hình 3.7: Biểu đồ tuần tự phương thức giải phong toả tài khoản

Chƣơng trình tại công ty chứng khoán gọi Webservice trên máy BAP, là máy chủ tại công ty chứng khoán, gửi yêu cầu giải phong toả tài khoản. Máy BAP đóng gói thành xâu XML ghi vào MQ trên máy BAP. MQ trên máy BAP truyền thông điệp đến MQ trên gateway của ngân hàng, Gateway ngân hàng đọc dữ liệu thông điệp gửi đến và xử lý gửi dữ liệu đến host là hệ thống máy chủ ngân hàng để yêu

cầu xử lý và nhận kết quả trả lại. Sau khi đã nhận đầy đủ thông tin, Gateway đóng gói thành chuỗi XML gửi kết quả trả lại lên MQ tại Gateway. MQ tại Gateway lại truyền dữ liệu cho MQ trên máy BAP. Webservice tại máy BAP nhận dữ liệu và gửi kết quả cho chƣơng trình tại công ty chứng khoán.

: Account : MQInterface : XmlMessage : Securities Trading System 2: validateUser( ) 4: sendMsg( ) 5: SetCnnProperties( ) 6: accessQMgr( ) 7: sendRequestMsg( ) 3: contructRequestMessage( ) 1: unholdAccount( )

CHƢƠNG 4: KẾT QUẢ THỰC HIỆN HỆ THỐNG

4.1 Triển khai hệ thống

Hệ thống thanh toán chứng khoán đã đƣợc triển khai thực tế ở 13 công ty chứng khoán. Ngoài ra, hệ thống đang cho chạy thử nghiệm với 63 công ty chứng khoán khác. Dƣới đây là thiết kế mô hình vật lý hệ thống thanh toán chứng khoán.

BIDV Gateway SIBS DMZ BIDV WAN CTCK BAP

Hình 4.1: Mô hình vật lý hệ thống thanh toán chứng khoán

Các công ty chứng khoán kết nối trực tiếp với ngân hàng thông qua các đƣờng cáp quang, hoặc các đƣờng leasedline thuê riêng, tuỳ theo quy mô và khả năng của từng công ty chứng khoán.

Với các công ty chứng khoán lớn và vừa, các máy BAP đƣợc đặt tại các công ty chứng khoán. Sử dụng phƣơng án này các công ty chứng khoán phải đầu tƣ về đƣờng truyền.

Với các công ty chứng khoán nhỏ, để tiết kiệm đƣờng truyền, máy BAP đƣợc đặt tại các trung tâm xử lý miền.

Tuỳ theo yêu cầu, một số công ty chứng khoán nhỏ sử dụng phƣơng án kết nối offline, không cần phải đầu tƣ về máy chủ BAP và đƣờng truyền.

4.2 Một số use case chính của hệ thống

4.2.1 Nhóm use case xử lý nghiệp vụ

Giao dịch viên CN

Quản lý tài khoản

nhà đầu tư Đóng băng tài khoản NDT

In bảng kê giao dịch Giải đóng băng tài

khoản NDT

Đối chiếu chênh lệch các giao dịch Vấn tin trạng thái

giao dịch

Báo cáo giao dịch

Kiểm soát viên CN Giải mã, kiểm tra chữ

ký bảng kê giao dịch (online)

Nhận file bảng kê giao dịch thanh toán,hold,unhold Duyệt bảng kê giao

dịch

Hủy bút toán đẩy thành công vào SIBS

Xuất file số dư tài khoản CTCK (offline)

Duyệt lại các giao dịch không thành công

Hình 4.2: Usecase của nhóm xử lý nghiệp vụ

Trên đây là use case của giao dịch viên, kiểm soát viên chi nhánh. Tại các chi nhánh, giao dịch viên có thể thực hiện các chức năng:

- Quản lý tài khoản nhà đầu tƣ

- Đóng băng, giải đóng băng tài khoản nhà đầu tƣ - In bảng kê giao dịch

- Vấn tin trạng thái giao dịch - Báo cáo giao dịch

4.2.2 Nhóm use case ở công ty chứng khoán

Chương trình ở CTCK

Vấn tin tài khoản Phong tỏa tài khoản

Vấn tin 5 giao dịch phong tỏa gần nhất

Hủy phong tỏa tài khoản

Vấn tin danh sách giao dịch phong tỏa trong ngày

Vấn tin danh sách giải phong tỏa trong ngày

Gửi bảng kê giao dịch Lấy thông tin về

bảng kê giao dịch

Hình 4.3: Nhóm usecase tại công ty chứng khoán

Tại công ty chứng khoán, các giao dịch viên có thể thực hiện các chức năng: - Vấn tin tài khoản

- Phong toả tài khoản - Huỷ phong toả tài khoản - Vấn tin 5 giao dịch gần nhất

- Vấn tin danh sách phong toả và huỷ phong toả trong ngày - Gửi bảng kê giao dịch

- Lấy thông tin về bảng kê giao dịch

4.3 Một số màn hình demo

4.3.1. Giao dịch online

Đƣợc thực hiện khi đƣờng truyền giữa ngân hàng với các công ty chứng khoán đƣợc đảm bảo lƣu thông.

Để thực hiện các giao dịch vấn tin, phong tỏa, hủy phong tỏa, giao dịch viên kích chọn mục “Giao dịch Online” từ Menu chính của chƣơng trình. Màn hình giao diện chính của chức năng giao dịch Online:

Hình 4.4: Màn hình giao dịch online

a. Vấn tin tài khoản

Sau khi kích hoạt chức năng “Giao dịch Online” giao dịch viên có thể vấn tin một tài khoản tiền gửi thanh toán của khách hàng để kiểm tra thông tin tài khoản nhằm hỗ trợ cho việc đặt lệnh mua chứng khoán và hold tài khoản.

b. Phong tỏa tài khoản

Khi khách hàng thực hiện một lệnh mua chứng khoán thì giao dịch viên sử dụng chức năng Phong tỏa (Hold) tài khoản khách hàng ứng với lƣợng giao dịch mà khách hàng muốn thực hiện để đảm bảo cho việc thực hiện giao dịch đó.

Hình 4.6: Giao dịch phong toả tài khoản

c. Huỷ phong tỏa tài khoản

Hình 4.7: Giao dịch huỷ phong toả tài khoản

4.3.2. Giao dịch cuối ngày

Sau khi kết thúc các phiên giao dịch thì GDV thực hiện hạch toán cuối ngày bằng việc gửi toàn bộ các giao dịch Hold / UnHold sang bên ngân hàng để tiến hành hạch toán.

a. Hạch toán cuối ngày

Giao dịch viên thực hiện chọn file tổng hợp các giao dịch để chuẩn bị chuyển về ngân hàng hạch toán:

b. Giải phong toả theo lô

Hình 4.9: Giao dịch giải phong toả theo lô

4.3.3. Vấn tin giao dịch trong ngày và bảng kê

Sau khi kết thúc các phiên giao dịch thì giao dịch viên thực hiện hạch toán cuối ngày bằng việc gửi toàn bộ các giao dịch Hold / UnHold sang bên ngân hàng để tiến hành hạch toán.

b. Liệt kê các giao dịch huỷ phong toả trong trong ngày

Hình 4.11: Vấn tin các giao dịch giải phong toả trong ngày

4.4 Đánh giá hoạt động truyền tin trong hệ thống thanh toán chứng khoán

Trong quá trình chạy thử nghiệm với 63 công ty chứng khoán, tại thời điểm tất cả các công ty chứng khoán đều đang hoạt động, đƣờng truyền hoạt động ổn định, các giao dịch thực hiện vấn tin, phong toả tài khoản, giải phong toả tài khoản của nhà đầu tƣ thƣờng có tốc độ lớn hơn so với các giao dịch gửi bảng kê hạch toán cuối ngày. Do việc gửi giao dịch hạch toán cuối ngày thƣờng phải truyền các thông điệp có dung lƣợng lớn hơn. Dƣới đây xem xét mức độ ảnh hƣởng của độ lớn thông điệp lên tốc độ thực hiện giao dịch trong điều kiện đƣờng truyền thông ổn định, các máy chủ hoạt động bình thƣờng, các bộ nghe trên Gateway ngân hàng đều đƣợc kích hoạt.

4.4.1 Các giao dịch vấn tin, phong toả, giải phong toả tài khoản nhà đầu tƣ đầu tƣ

Trong các giao dịch này, dung lƣợng thông điệp nhỏ, thƣờng nhỏ hơn 32K. Đồ thị dƣới đây tổng hợp từ kết quả thực hiện giao dịch. Dung lƣợng các thông điệp nằm trong giao dịch này dao động từ khoảng 50 byte-32K. Tốc độ thực hiện giao dịch tính theo đơn vị giây. Các thông điệp có dung lƣợng nhỏ, 50 byte, tốc độ thực hiện giao dịch chỉ vào khoảng 1.5s. Với các thông điệp dung lƣợng lớn hơn, tốc độ thực hiện giao dịch tăng nhƣ thể hiện trong biểu đồ dƣới đây:

Ảnh hƣởng của dung lƣợng thông điệp lên tốc độ truyền giao dịch 0 0.5 1 1.5 2 2.5 3 3.5 50 500 1024 2048 4096 8192 16384 32768

Dung lƣợng thông điệp(byte)

Th i gi an thự c hi ện gi ao dị ch( s)

Biểu đồ 4.1: Đánh giá ảnh hưởng của dung lượng thông điệp lên thời gian giao dịch(đối với các thông điệp có dung lượng nhỏ 50 byte-32K)

4.4.2 Các giao dịch gửi bảng kê hạch toán cuối ngày(32K-2MB)

Trong các giao dịch này, dung lƣợng thông điệp lớn hơn so với các giao dịch vấn tin, phong toả và huỷ phong toả tài khoản, thƣờng là từ 32K-2MB. Đồ thị dƣới

Một phần của tài liệu Ứng dụng công nghệ truyền tin Message Queue trong hệ thống thanh toán chứng khoán (Trang 49)

Tải bản đầy đủ (PDF)

(73 trang)