CHƯƠNG 2 THIẾT KẾ HỆ THỐNG THỜI GIAN THỰC TRONG HOẠT ĐỘNG GIAO DỊCH MUA, BÁN VÀ THANH TOÁN CHỨNG KHOÁN
2.2.2. Thiết kế các khía cạnh thời gian thực trong hệ thống giao dịch chứng khoán
Theo các nội dung đã chỉ ra tại mục 1.3.4 và mục 1.3.5, yếu tố thời gian thực thể hiện rõ nét và là yêu cầu quan trọng nhất, vì vậy luận văn sẽ tập trung mô tả thiết kế khía cạnh thời gian thực quá trình mua, bán chứng khoán đảm bảo yêu cầu thời gian thực nhƣ tên của luận văn đã đƣa ra.
2.2.2.3 Mô hình hóa chức năng mua bán, thanh toán chứng khoán theo thời gian thực
Mô hình hóa khía cạnh thời gian thực trong quá trình thực hiện giao dịch của hệ thống thiết kế tập trung vào ba hướng :
1. Giao dịch tương tranh: Nhiều giao dịch mua, bán được thực hiện chia sẻ trên một hệ thống;
2. Giao dịch song song: Nhiều giao dịch mua, bán đƣợc thực hiện song song trên một hệ thống;
3. Giao dịch phân tán: Nhiều giao dịch mua, bán đƣợc thực hiện song song
trên nhiều hệ thống.
2.2.2.1. Về nghiệp vụ
Giao dịch mua, bán và thanh toán chứng khoán gồm nhiều hoạt động và dịch vụ đi kèm nhƣ việc mua bán thỏa thuận, mua bán kỹ gửi,... mỗi nghiệp vụ đƣợc thực hiện theo các phương thức, luồng khác nhau như phân tích ở mục 1 nên không nằm trong phạm vi thiết kế tại đề tài này.
Luận văn tập trung vào giải quyết vấn đề luồng xử lý lệnh mua, bán chứng khoán từ khách hàng gửi đến CTCK và luồng xử lý kiểm tra và xác nhận số dƣ tài khoản đủ đảm bảo giao dịch cho CTCK trước khi chuyển lệnh lên TTGDCK và thực hiện thanh toán tiền cho nhà đầu tƣ.
2.2.2.2. Về kỹ thuật
Do môi trường công nghệ hiện tại quá rộng và đa dạng, việc đánh giá đầy đủ rất khó khăn và phải có các công cụ để phân tích, đánh giá về cả chất lƣợng (độ chính xác), khối lƣợng (tải hoặc đảm bảo hiệu năng của hệ thống) nên đề tài chỉ tập trung vào nội dung thiết kế kỹ thuật theo nhu cầu nghiệp vụ đã đề cập ngay trên đây.
Yêu cầu giả định:
1. Các mẫu tin (message) thiết kế tối ƣu, đầy đủ thông tin và có độ dài không đổi và việc truyền nhận dữ liệu trên mạng nội bộ gần nhƣ là tức thời nên thời gian xử lý message và truyền nhận dữ liệu phụ thuộc vào máy chủ và cơ sở dữ liệu dùng để cài đặt. Sự phụ thuộc này đƣợc phân tích cụ thể tại mục 2.2.3.2.
2. Yêu cầu khi sử dụng dịch vụ từ nhà cung cấp dịch vụ: Đối với các dịch vụ công cộng, dịch vụ khác khi ngân hàng, CTCK sử dụng sẽ phụ thuộc vào nhà cung cấp và chất lƣợng dịch vụ cam kết nhƣ dịch vụ viễn thông, xác thực chữ ký số,... Trong yêu cầu giả định, các dịch vụ đƣợc coi nhƣ có chất lƣợng dịch vụ đều, không có sự tăng/giảm đột biến và phù hợp với hơp đồng/cam kết của nhà cung cấp dịch vụ.
3. Yêu cầu về mẫu thử nghiệm: Mẫu thử đối với giao dịch chứng khoán ở đây chủ yếu là khối lƣợng giao dịch cùng đồng thời đƣa vào hệ thống.
2.2.3.1. Mối quan hê ̣ giữa các bên
Khách hàng
Công ty chứng khoán
Ngân hàng
Ủy thác quản lý chứng khoán
Đặt lệnh/ mua bán chứng khoán
Truy cập, tra cứu thông tin ủy thác
S d ng dịch v khác
Mở tài khoản tại ngân hàng
Thực hiện các giao dịch tài chính
Phong tỏa tài khoản chờ thanh toán
Chuyển tiền mua/ bán chứng khoán
Đối chiếu, quyết toán các giao dịch, phí giao dịch chứng khoán
Hình 2.10. Mối quan hê ̣ giữa khách hàng, công ty chứng khoán và ngân hàng
1. Quan hệ giữa khách hàng và ngân hàng: Khách hàng là người sử dụng dịch vụ của cả CTCK và ngân hàng. Trong quan hệ với ngân hàng, khách hàng sử dụng toàn bộ các dịch vụ ngân hàng theo nhu cầu và yêu cầu. Theo đó, khách hàng ủy quyền gửi tiền tại ngân hàng và có quyền yêu cầu ngân hàng thực hiện các giao dịch hợp pháp nhƣ chuyển tiền cho cá nhân, tổ chức khác, thanh toán các dịch vụ mà ngân hàng cung cấp như thanh toán hóa đơn điện, hóa đơn nước, hóa đơn điện thoại,... Như các bạn sinh viên có thể thanh toán tiền học phí qua ngân hàng BI.DV nhƣ hiện đang áp dụng tại Đại học Quốc gia Hà Nội.
Trong giao dịch chứng khoán, khách hàng vẫn sử dụng tài khoản đã ủy quyền tại ngân hàng cho các giao dịch dân sự mô tả ngay trên đây và sử dụng vào mục đích đầu tƣ chứng khoán khi thực hiện mua cổ phiếu và yêu cầu ngân hàng thanh toán khoản tiền mua đó để sở hứu chứng khoán.
Nhiều hệ thống ngân hàng do chƣa đƣợc thiết kế hợp lý, nên tại Việt Nam còn nhiều ngân hàng thực hiện mở riêng cho khách hàng tài khoản đầu tƣ chứng khoán. Việc này tiết kiệm cho ngân hàng nhƣng bất tiện
cho khách hàng vì nếu có nhu cầu mua chứng khoán nhƣng tài khoản không đủ tiền sẽ phải thực hiện giao dịch chuyển tiền vào tài khoản đầu tƣ chứng khoán mới có thể giao dịch đƣợc. Trong khi đó, nhƣ BI.DV là ngân hàng cho phép khách hàng chỉ cần duy nhất một tài khoản để có thể thực hiện nhiều mục đích miễn là giao dịch hợp pháp và có nhiều chính sách ƣu đãi nhƣ miễn phí nhiều giao dịch chuyển tiền.
2. Quan hệ giữa khách hàng và CTCK: Khách hàng đối với CTCK thực hiện ủy quyền quản lý danh mục chứng khoán (còn gọi là danh mục đầu tƣ chứng khoán) tại CTCK.
Khách hàng tại CTCK yêu cầu CTCK thực hiện lệnh bán một loại cổ phiếu nào đó với giá cả và số lƣợng do khách hàng quyết định. CTCK sẽ kiểm tra và đảm bảo số lƣợng chứng khoán mà khách hàng đang sở hữu đúng yêu cầu và thực hiện chuyển lệnh tới TTGDCK để bán.
Khách hàng có thể yêu cầu CTCK mua một khối lƣợng chứng khoán và giá cả do khách hàng quyết định để đầu tƣ và sở hữu một khối lƣợng chứng khoán với kỳ vọng sẽ đƣợc trả cổ tức cao hay đơn giản chỉ cần giá chứng khoán tăng lên để có đƣợc chênh lệch giá. Chính vì vậy, ở đây, khách hàng còn đƣợc gọi là nhà đầu tƣ.
Việc khách hàng đầu tƣ mua hoặc bán có rủi ro nhƣ công ty phát hành cổ phiếu làm ăn thua lỗ thì sẽ không đƣợc chia cổ tức hoặc giá cổ phiếu giảm xuống thì số tiền đầu tư ban đầu sẽ giảm tương ứng với giá cổ phiếu chênh lệch tại thời điểm mua và bán. Đây chính là quy luật của thị trường chứng khoán mà nhà đầu tư chấp nhận rủi ro khi đầu tư.
3. Quan hệ giữa CTCK và ngân hàng: Nếu từ phía ngân hàng thì CTCK chính là một khách hàng của ngân hàng và là khách hàng bắt buộc của một ngân hàng nàp đó vì theo Luật định, CTCK không đƣợc nắm gửi tài khoản bằng tiền của nhà đầu tƣ. Các giao dịch bằng tiền tại CTCK phải đƣợc một ngân hàng nào đó nắm giữ và thực hiện.
Ngân hàng và CTCK cùng chia sẻ lợi ích khi phục vụ khách hàng là nhà đầu tƣ chứng khoán. CTCK đƣợc thu phí giao dịch của khách hàng và là
khách hàng sẽ được quay vòng lại thị trường như một khoản vốn lưu động trong kinh doanh với chi phí thấp (đƣợc gọi là tiền gửi không kỳ hạn – tiền gửi không kỳ hạn là do khách hàng có thể rút bất cứ lúc nào, nhưng với khối lượng khách hàng lớn nên việc sử dụng vốn lưu động này cũng là phần rất quan trọng với ngân hàng).
2.2.3.2. Giao dịch mua
Trung tâm giao dịch chứng khoán
Hệ thống giao dịch chứng khoán tại công
ty chứng khoán
Hệ thống kết nối, thanh toán chứng khoán của
ngân hàng Khách hàng
1. Đặt lệnh mua
2. Phong tỏa số tiền
3. Ngân hàng xác nhận phong tỏa 4. Đưa lệnh vào sàn giao dịch 5. Khớp lệnh
6. Bù trừ quyết toán
7. Chuyển bản kê lệnh giao dịch
Hình 2.11. Sơ đồ giao dịch đặt lệnh mua
Nhƣ mô tả tại phần đầu mục 2.2.2, giao dịch mua và bán là giao dịch quan trọng nhất đòi hỏi thiết kế hệ thống thời gian thực. Yêu cầu thời gian thực đối với lệnh mua đƣợc phân tích và thiết kế giải pháp theo trình tự quy trình thực hiện lệnh đƣợc mô tả theo 7 bước tại sơ đồ 2.11 như sau:
1. Bước 1: Khách hàng có thể đến CTCK viết phiếu lệnh bán thủ công và giao cho nhân viên của CTCK để thực hiện hoặc khách hàng đƣợc cấp một tài khoản (user) để truy cập vào hệ thống giao dịch của CTCK và tự thực hiện đặt lệnh mua chứng khoán. Giai đoạn này đƣợc khách hàng cân nhắc kỹ càng với kỳ vọng và rủi ro khi quyết định thực hiện đặt lệnh.
Các lệnh mua sẽ đƣợc chuyển đổi thành các mẫu tin có cầu trúc (message) để chuyển giao giữa các hệ thống.
2. Bước 2, 3: Ngay sau khi nhận được lệnh mua chứng khoán hợp lệ, CTCK phải ngay lập tức nhập phiếu lệnh vào hệ thống để chuyển vào TTGDCK để hiện thực hóa lệnh mua. Ở đây, tình huống nhân viên CTCK nhập lệnh vào sẽ không thuộc phạm vi đề tài đang thực hiện mà đề tài thực hiện ở giai đoạn tiếp ngay sau khi lệnh mua đƣợc đƣa vào hệ
thống giao dịch của CTCK (lúc này là các message). Lệnh mua vào hệ thống đòi hỏi phải trả lời rất nhanh là khách hàng có đủ số tiền để mua khối lượng chứng khoán đã đặt lệnh không hoặc trong trường hợp thủ công, CTCK phải liên lạc với ngân hàng để kiểm tra tài khoản có đủ để thực hiện giao dịch không. Vì vậy, hệ thống kết nối thanh toán giữa ngân hàng và CTCK đƣợc thiết lập ở đây sẽ phải thực hiện và trả lời trong thời gian nhanh nhất để CTCK quyết định đƣa lệnh mua vào TTGDCK.
Bài toán đặt ra là thời gian kiểm tra số dƣ và phản hồi từ ngân hàng là nhanh nhất có thể để lệnh mua đƣợc xác nhận và chuyển đến TTGDCK.
Các nội dung và thời gian cần lý ở đây bao gồm:
(1) Thời gian chuyển message từ hệ thống giao dịch chứng khoán của CTCK tới hệ thống kết nối thanh toán chứng khoán.
(2) Thời gian chuyển message tới ngân hàng
(3) Thời gian kiểm tra số dƣ tài khoản tại ngân hàng
(3.1) Không đủ số dƣ: Thời gian gắn trạng thái không đủ số dƣ vào message
(3.2) Đủ số dƣ:
- Thời gian phong toả số tiền đặt lệnh mua chứng khoán tại hệ thống lõi ngân hàng (corebanking)
- Thời gian gắn trạng thái xác nhận hợp lệ vào message (4) Thời gian phản hồi xác nhận giao dịch
(5) Thời gian tiếp nhận message của hệ thống giao dịch chứng khoán và đẩy lệnh vào TTGDCK.
Nhƣ vậy ở đây có 02 biểu đồ thời gian cho giao dịch không hợp lệ và giao dịch hợp lệ nhƣ sau:
Hình 2.12 Mô hình thời gian xử lý giao dịch đặt lệnh mua hợp lệ
Trong đó:
t1: Khoảng thời gian chuyển lệnh mua (message) từ hệ thống giao dịch chứng khoán của CTCK sang hệ thống kết nối thanh toán t2: Khoảng thời gian chuyển lệnh mua (message) trên đường truyền từ CTCK sang ngân hàng.
t3: Khoảng thời gian nhận lệnh mua (message) vào hệ thống nết nối thanh toán chứng khoán.
t4: Khoảng thời gian tra cứu số dƣ tài khoản trên hệ thống lõi của ngân hàng.
t5: Khoảng thời gian thực hiện phong toả số tiền dự kiến mua chứng khoán trên tài khoản của khách hàng.
t6: Khoảng thời gian cập nhật nội dung xác nhận hợp lệ đối với lệnh mua
t7: Khoảng thời gian chuyển lệnh mua (message) trên đường truyền từ ngân hàng sang CTCK.
t8: Khoảng thời gian cập nhật lệnh mua trên hệ thống kết nối thanh
toán và trả về cho hệ thống giao dịch chứng khoán tại CTCK.
Hình 2.13 Mô hình thời gian xử lý giao dịch đặt lệnh mua không hợp lệ
Trong đó:
t1: Khoảng thời gian chuyển lệnh mua (message) từ hệ thống giao dịch chứng khoán của CTCK sang hệ thống kết nối thanh toán t2: Khoảng thời gian chuyển lệnh mua (message) trên đường truyền từ CTCK sang ngân hàng.
t3: Khoảng thời gian nhận lệnh mua (message) vào hệ thống nết nối thanh toán chứng khoán.
t4: Khoảng thời gian tra cứu số dƣ tài khoản trên hệ thống lõi của ngân hàng.
t5: Khoảng thời gian cập nhật nội dung xác nhận không hợp lệ đối với lệnh mua.
t6: Khoảng thời gian chuyển lệnh mua (message) trên đường truyền từ ngân hàng sang CTCK.
t7: Khoảng thời gian cập nhật lệnh mua trên hệ thống kết nối thanh toán và trả về cho hệ thống giao dịch chứng khoán tại CTCK.
Phân tích các bước và xử lý thời gian trong quá trình đặt lệnh mua của
giao dịch hợp lệ và giao dịch không hợp lệ thì tổng thời gian tối đa và đầy đủ cho 1 giao dịch là T = t1 + … + t8. Theo biểu đồ thời gian ở đây ta cần phân tích và thiết kế thời gian chấp nhận đƣợc cho ba nhóm tiến trình sau:
(1) Tiến trình ứng dụng xử lý giao dịch bao gồm các tiến trình t1, t3, t4, t7. Theo phần giả định tại mục 2.2.2.2 trên, các tiến trình xử lý ứng dụng đƣợc thiết kế theo các mô hình xử lý thời gian thực đƣợc phân tích và đánh giá nhƣ sau:
(1.1) Theo mô hình xử lý tương tranh: 1 hệ thống tuần tự các giao dịch về cơ bản là rất tiết kiệm tuy nhiên đây là hệ thống suy hao hiệu năng rất nhanh khi xử lý khối lƣợng lớn tập trung vào một khoảng thời gian nhất định. Mô hình này về cơ bản chỉ phù hợp khi kết nối một CTCK vào một hệ thống kết nối thanh toán, khi kết nối với một CTCK khác phải thiết lập thêm một hệ thống tương tự, tức là nhân bản số hệ thống theo số lƣợng kết nối với CTCK.
(1.2) Theo mô hình xử lý song song: hệ thống thiết kế cần xây dựng song song nhiều cổng kết nối dựa trên nguyên tắc cổng giao tiếp (port services) theo đó, dịch vụ tiếp nhận giao dịch của hệ thống đƣợc quy hoạch và mở cho các yêu cầu kết nối vào hệ thống.
Mỗi CTCK đƣợc mở một hoặc nhiều cổng kết nối để thực hiện kết nối thanh toán với ngân hàng. Do đó tại ngân hàng chỉ cần thiết lập một hệ thống kết nối để tiếp nhận giao dịch từ nhiều CTCK, tuy nhiên do mỗi CTCK lại có các yêu cầu về dữ liệu chuyển đi và nhận về khác nhau nên hệ thống kết nối chung phải có khả năng tuỳ biến rất cao để đảm bảo yêu cầu của các CTCK. Ví dụ, CTCK A khi nhận message trả về yêu cầu 3 trường dữ liệu nhưng CTCK B lại yêu cầu trả về 7 trường dữ liệu để đảm bảo tính khớp đúng và CTCK đỡ phải xử lý một số thông tin vì phía ngân hàng đã xử lý trước và đưa vào message.
Kết hợp với mô hình xử lý song song là việc phân tích và thiết kế hiệu năng xử lý của hệ thống theo đánh giá đã phân tích tại mục
2.2.1 trên đây tuỳ theo khối lƣợng khách hàng để tính toán và xây dựng (sizing) hệ thống cho phù hợp.
(1.3) Đối với mô hình xử lý phân tán: hệ thống kết nối chứng khoán không áp dụng mô hình này vì cả khách hàng, ngân hàng và CTCK đều quản lý tập trung hợp nhất tài sản sở hữu của mình không phân chia thành từng phần nhỏ và mỗi phần lại nằm trên các hệ thống khác nhau.
(2) Tiến trình truyền thông gồm tiến trình t2, t6. Việc mô hình hoá cũng được phân tích trên 3 mô hình xử lý tương tranh, song song và phân tán. Việc kết nối truyền thông ở đây cần phân tích, thiết kế về vật lý và phần mềm kết nối:
(2.1) Về vật lý: việc kết nối truyền thông vậy lý tập trung về một nút đầu mối sẽ cho mô hình xử lý tuần tự, kết nối nhiều đường vật lý sẽ có các kết nối song song và kết hợp với các trung tâm trung chuyển sẽ có kết nối phân tán.
(2.2) Về phần mềm kết nối truyền thông: cần thiết kế và áp dụng các bộ phần mềm hỗ trợ truyền thông để tăng hiệu quả, ví dụ nhƣ phần mềm hỗ trợ và làm tăng hiệu quả rất cao nhƣ RabitMQ, IBM Websphere MQ,… Việc áp dụng các phần mềm này vừa nâng cao hiệu suất hệ thống, vừa thuận tiện trong việc quản trị, bảo mật dữ liệu trên đường truyền. Tuy nhiên khi đầu tư cần cân nhắc vì đây cũng là khoản chi phí không nhỏ trong triển khai hệ thống.
Nguồn : http://mgiay.com/2015.08.27_23.00.10_id.118/tim-hieu-rabbitmq-phan-1 Hình 2.14. Mô hình kết nối message queue
(3) Tiến trình hệ thống ngoài gồm tiến trình t5. Đây là tiến trình giao tiếp
đƣợc thực hiện và chuyển hoá thành giao dịch phong toả số tiền mà khách hàng đang dự kiến mua và đầu tƣ một khoản chứng khoán nào đó theo phiếu lệnh khách hàng đã đặt lệnh.
Đây là hệ thống chính của các ngân hàng nên đƣợc thiết kế và đầu tƣ bài bản nên có hiệu suất rất cao và thời gian thực hiện giao dịch cũng rất nhanh. Ví dụ nhƣ hệ thống corebanking của BI.DV, theo báo cáo hàng năm, có thể thực hiện khoảng 5-7 triệu giao dịch 1 ngày và khoảng 1,4 tỷ giao dịch 1 năm. Do đây là nội dung liên quan nhƣng coi như ảnh hưởng không nhiều đến đề tài nên học viên xin phép không đi sâu và không báo cáo tại luận văn này.
3. Bước 4,5: Sau khi CTCK nhận được xác nhận giao dịch sẽ trả lại cho khách hàng nếu là giao dịch không hợp lệ và thực hiện đẩy giao dịch vào TTGDCK để chờ khớp lệnh. Tại TTGDCK, nếu lệnh mua đƣa vào phù hợp nhƣ mô tả tại mục 1.3.5.
4. Bước 6: Khi lệnh mua được khớp tại TTGDCK, lúc đó mới chính thức lệnh mua đƣợc hoàn thành và lúc kết thúc ngày giao dịch TTGDCK sẽ không thực hiện từng giao dịch riêng lẻ và tự động cân đối và bù trừ tổng số tiền đã giao dịch trong ngày cho các CTCK.
5. Bước 7: Kết thúc ngày giao dịch, ngân hàng sẽ đối khớp các giao dịch với CTCK trên cơ sở kết quả khớp lệnh của TTGDCK để thực hiện giải toả các lệnh mua không đƣợc và thực hiện chuyển tiền chính thức từ khách hàng sang cho CTCK để thanh toán cho người bán thông qua bước bù trừ quyết toán tại TTGDCK.
2.2.3.3. Giao dịch bán
Trung tâm giao dịch chứng khoán
Hệ thống giao dịch chứng khoán tại công
ty chứng khoán
Hệ thống kết nối, thanh toán chứng khoán của
ngân hàng Khách hàng 1. Đặt lệnh bán
2. Đưa lệnh vào sàn giao dịch 3. Khớp lệnh
4. Bù trừ quyết toán
5. Chuyển bản kê lệnh giao dịch