Xây dựng mô hình hệ thống

Một phần của tài liệu Xây dựng hệ thống kết nối thanh toán giữa ngân hàng và các công ty chứng khoán (Trang 34)

3.2.1 Mô hình kết nối

Hệ thống được xây dựng dựa trên nền web service và thông tin trao đổi giữa các đầu là các thông điệp SOAP qua WebSphere MQ.

Tất cả các lệnh xuất phát từ CTCK hay chi nhánh Ngân hàng gửi đến hệ thống kết nối thanh toán đều được truyền tải qua phương thức SOAP của WebSphere MQ, tới các web service trên máy chủ BankGateway và được các service này xử lý. Nếu các yêu cầu có liên quan đến việc xử lý tại CoreBanking của Ngân hàng như việc vấn tin tài khoản, phong toả, bỏ phong toả tài khoản, chuyển tiền…thì các service sẽ chuyển tiếp yêu cầu đó đến hệ thống CoreBanking, đợi nhận về kết quả và trả kết quả thực hiện về cho client cũng theo phương thức SOAP qua WebSphere MQ.

Hệ thống gồm có hai phần chính là các Công ty chứng khoán và Ngân hàng. Hội sở chính và các Chi nhánh trong Ngân hàng thực hiện giao dịch kết nối chứng khoán với CoreBanking thông qua máy chủ Bank Gateway. Các CTCK kết nối với Ngân hàng thông qua đường Leased Line.

Server của các CTCK, Server của các chi nhánh, hội sở chính và máy chủ Bank Gateway của Ngân hàng đều được cài đặt WebSphere MQ Server. Các máy trạm của CTCK và Ngân hàng thực hiện các chức năng của hệ thống kết nối chứng khoán đều được cài WebSphere MQ Client.

Hình 3.2-1: Mô hình Hệ thống kết nối thanh toán

Sản phẩm WebSphere Message Queue (Websphere MQ) nằm trong bộ sản phẩm hỗ trợ tích hợp doanh nghiệp IBM WebSphere của hãng IBM. WebSphere MQ cung cấp một phương thức chung để giao tiếp giữa các chương trình, không bị phụ thuộc bởi ngôn ngữ, hệ điều hành, bộ xử lý, các giao thức truyền thông, đồng thời cung cấp một cơ chế giao tiếp độc lập (giao tiếp không đồng bộ) giữa các chương trình với nhau. WebSphere MQ bảo đảm thông tin trao đổi giữa các phần trong hệ thống không bị mất cũng như không bị trùng lặp khi truyền.

Máy chủ Bank Gateway là phần trọng tâm trong mô hình kết nối, trên đó lưu trữ toàn bộ dữ liệu tập trung phục vụ cho việc kết nối và cũng là nơi đặt Web service server cho phép client và server tương tác được với nhau ngay cả trong những môi trường khác nhau, với những ngôn ngữ lập trình khác nhau. Web Service này bao gồm các mô đun độc lập tương ứng với các chức năng phục vụ cho việc kết nối, giao dịch giữa Ngân hàng và CTCK.

Trên máy chủ Bank Gateway được cài đặt các web service SCService, BRService và HOService là các service thực hiện việc quản lý các CTCK, tài khoản khách hàng và các giao dịch mua bán chứng khoán. Các service này được

viết bằng ngôn ngữ C# trong bộ Microsoft Visual studio, kết nối tới cơ sở dữ liệu Core Banking của ngân hàng và cơ sở dữ liệu Oracle trên Bank Gateway. Các CTCK gửi các yêu cầu (như vấn tin TK khách hàng, phong toả, giải phong toả, chuyển khoản, báo cáo đối chiếu…) đến máy chủ Bank Gateway và web service SCService trên máy chủ này sẽ thực hiện giao dịch với hệ thống Core Banking, kết hợp với CSDL lưu tại Bank Gateway để trả về kết quả. Tương tự, hội sở chính cũng gửi các yêu cầu về quản lý các CTCK và người dùng tại các CTCK, các báo cáo đối chiếu đến Bank Gateway, được web service HOService xử lý yêu cầu, và nhận kết quả trả về. Các chi nhánh của ngân hàng thực hiện gửi các yêu cầu mở và gắn kết TK của nhà đầu tư CK, nộp rút tiền từ TK chuyên dụng của nhà đầu tư tại Ngân hàng, yêu cầu các báo cáo đối chiếu đến Bank Gateway, được web service BRService xử lý yêu cầu, và nhận được kết quả trả về.

3.2.2 Cấu hình WebSphere MQ

Trong mô hình này WebSphere MQ server được cài đặt tại máy chủ Bank Gateway, máy chủ của CTCK, máy chủ của hội sở chính và máy chủ của các chi nhánh. Các máy client tham gia thực hiện các chức năng của hệ thống sẽ được cài đặt WebSphere MQ client.

WebSphere MQ chịu trách nhiệm phân phối yêu cầu tới queue request (nơi SOAP/WebSphere MQ listener tìm thấy nó) sau khi bên sender đặt message vào queue manager.

Queue manager

Trên mỗi máy chủ sẽ được thiết lập một Queue manager chứa các queue và các channel để kết nối các Queue manager với nhau phục vụ cho việc truyền nhận message.

Queue

Trong mỗi queue manager có một queue local để chứa message nhận được, một queue Dead để chứa các message không được phân phối.

Trong các queue manager của CTCK, hội sở chính và chi nhánh của Ngân hàng sẽ chứa một queue remote đến queue local của gateway, một queue tranmission để chứa message trước khi nó được truyền đến queue manager gateway.

Trong queue manager Gateway có các queue remote đến queue local của CTCK, hội sở chính và chi nhánh của Ngân hàng, các queue tranmission để chứa message trước khi nó được truyền đến queue manager của CTCK, hội sở chính và chi nhánh của Ngân hàng.

WebSphere MQ sử dụng các kênh (channel) để truyền tải message giữa các queue manager. Một channel hay một message channel là một tiến trình đọc các message từ transmission queue và gửi chúng đi thông qua liên kết truyền thông tới một tiến trình tương tự tại một hệ thống ở xa, sau đó ghi chúng vào queue đích.

WebSphere MQ sử dụng các channel như client connection channel hoặc

server connection channel để kết nối giữa các ứng dụng client và queue manager. Các tuỳ chọn kết nối trong URI phải được xác định để client có thể truy cập vào các channel.

Trong các queue manager của CTCK, hội sở chính và chi nhánh của Ngân hàng có một channel để gửi message đến queue manager gateway và một channel nhận message từ queue manager gateway trả về.

Trong queue manager Gateway có các channel để gửi message đến queue manager CTCK, hội sở chính và chi nhánh của Ngân hàng và các channel nhận message trả về, các channel này tương ứng và có tên trùng với channel nhận và gửi message của các queue manager CTCK, hội sở chính và chi nhánh Ngân hàng.

Listener

Trong mỗi queue manager của gateway, CTCK, hội sở chính và chi nhánh Ngân hàng đều có một Listener, đó là một Websphere MQ process để “nghe” các kết nối tới queue manager. Listener có chức năng phát hiện kết nối từ các channel và quản lý kết nối từ sending channel đến receiving channel. Trong mạng TCP/IP, Listener sẽ “nghe” các kết nối tại một cổng đặc biệt được chỉ ra khi cấu hình.

Cụ thể cấu hình WebSphere MQ trên các máy chủ được thiết lập như sau với ví dụ trong mô hình kết nối giữa CTCK có mã 01 với tài khoản tiền gửi được mở tại chi nhánh Ngân hàng có mã 106:

Bank Gateway CTCK Hội sở chính Chi nhánh

Queue manager GW SC01 HO BR106 Các Queue: -Local queue -Remote queue Q.LOCAL.GW.SC Q.LOCAL.GW.HO Q.LOCAL.GW.BR Q.RMT.GW.SC Q.RMT.GW.HO Q.RMT.GW.BR Q.LOCAL.SC Q.RMT.SC.GW Q.LOCAL.HO Q.RMT.HO.GW Q.LOCAL.BR Q.RMT.BR.GW

-Transmission queue -Dead-letter queue Q.XMIT.GW.SC Q.XMIT.GW.HO Q.XMIT.GW.BR Q.DEAD.GW Q.XMIT.SC Q.DEAD.SC Q.XMIT.HO Q.DEAD.HO Q.XMIT.BR Q.DEAD.BR Channel: -Server connection -Sender -Receiver CH.GW.SVRCONN CH.GW.SC CH.GW.HO CH.GW.BR CH.SC.GW CH.HO.GW CH.BR.GW CH.SC.SVRCONN CH.SC.GW CH.GW.SC CH.HO.SVRCONN CH.HO.GW CH.GW.HO CH.BR.SVRCON N CH.BR.GW CH.GW.BR

Listener LISTENER.TCP LISTENER.TCP LISTENER.TCP LISTENER.TCP

Bảng 3.2-1: Cấu hình WebSphere MQ trên các máy chủ

Các remote queue Q.RMT.BR.GW, Q.RMT.SC.GW, Q.RMT.HO.GW định

nghĩa các local queue Q.LOCAL.GW.BR, Q.LOCAL.GW.SC,

Q.LOCAL.GW.HO của queue manager GW tại các queue manager tương ứng BR106, SC01, HO. Cấu hình của mỗi remote queue này chỉ ra queue local của queue manager mà nó remote đến cùng với một transmission queue tương tự như sau:

Hình 3.2-2: Cấu hình Remote queue Q.RMT.BR.GW

Các remote queue Q.RMT.GW.SC, Q.RMT.GW.HO, Q.RMT.GW.BR trong queue manager GW định nghĩa local queue Q.LOCAL.SC, Q.LOCAL.HO,

Q.LOCAL.BR tương ứng của các queue manager SC01, HO, BR106 với cấu hình tương tự như sau:

Hình 3.2-3: Cấu hình Remote queue Q.RMT.GW.BR

Các transmission queue Q.XMIT.BR, Q.XMIT.HO, Q.XMIT.SC là các queue truyền tải của các queue manager tương ứng BR106, HO, SC01. Đó là nơi message được lưu trữ cho tới khi chúng có thể được truyền đi và lưu trữ thành công tại queue manager GW. Trong cấu hình của các transmission queue này phải chỉ ra sender channel mà nó sẽ kết hợp để truyền tải message đi, tương tự như sau:

Hình 3.2-4: Cấu hình transmision queue Q.XMIT.BR

Các transmission queue Q.XMIT.GW.SC, Q.XMIT.GW.HO,

Q.XMIT.GW.BR trong queue manager GW là các queue truyền tải để lưu trữ message cho tới khi chúng có thể được truyền đi và lưu trữ thành công tại queue manager SC01, HO, BR106 tương ứng. Cấu hình của các queue này tương tự như sau:

Hình 3.2-5: Cấu hình transmision queue Q.XMIT.GW.BR

Hình 3.2-6: Các queue của queue manager GW

Các channel CH.BR.GW, CH.HO.GW, CH.SC.GW là các sender channel của các queue manager tương ứng BR106, HO, SC01 được dùng để truyền message tới queue manager GW. Trong mỗi sender channel này định nghĩa một transmission queue cùng với một cổng đặc biệt dùng để gửi message đi. Cấu hình của mỗi sender channel đó tương tự như sau:

Hình 3.2-7: Cấu hình channel CH.BR.GW

Và để nhận message từ các queue manager SC01, BR106, HO thì trên queue manager GW sẽ phải định nghĩa các receiver channel tương ứng có cùng tên với sender channel như hình dưới đây:

Hình 3.2-8: Các channel của queue manager GW

Tương tự như vậy, để gửi message tới các queue manager SC01, BR106, HO thì trên queue manager GW sẽ phải định nghĩa các sender channel CH.GW.SC, CH.GW.BR, CH.GW.HO với cấu hình tương tự như sau:

Và trong các queue manager SC01, BR106, HO cũng phải định nghĩa các receiver channel tương ứng cùng tên để nhận message trả về từ GW.

Queue manager connection

Các ứng dụng WebSphere MQ server được lưu trữ trên cùng hệ thống Bank Gateway, các ứng dụng client tại CTCK, hội sở chính và chi nhánh Ngân hàng truy cập đến các queue manager và ứng dụng server thông qua các proxy để gọi đến các phương thức ở xa. Lớp proxy được tạo từ WSDL và được dịch cũng như được làm cho sẵn sàng cục bộ như một phần của quá trình triển khai. Web Service được truy cập bởi client thông qua URI (Universal Resource Indicator) được định nghĩa trong proxy.

Với ứng dụng chạy trên cùng hệ thống với queue manager sẽ kết nối đến theo chế độ Server hay Binding, còn ứng dụng chạy trên hệ thống khác với queue manager thì kết nối đến theo chế độ Client. Đây là các phương thức được sử dụng khá thường xuyên khi triển khai ứng dụng, SOAP/WebSphere MQ listener và ứng dụng server chạy trên cùng 1 máy, máy chủ hoạt động theo chế độ Server và client kết nối đến queue manager theo chế độ Client.

3.2.3 Cơ chế hoạt động

Các web service dựa trên mô hình “request-and-response” sử dụng các thông điệp được mã hoá dưới giao thức SOAP. Các thông điệp này được định dạng theo XML và thông điệp SOAP được gửi thông qua HTTP. SOAP là giao thức vận chuyển độc lập, vì vậy WebSphere MQ được sử dụng như một cơ chế vận chuyển luân phiên.

Hình 3.2-10: Mô hình “request-and-response” vận chuyển message dƣới giao thức SOAP thông qua WebSphere MQ. Send Client Aplication Receive Proxy SOAP Layer Send SOAP/WMQ Sender Receive WMQ Receive SOAP/WMQ Listener Send Server (Target Service) SOAP Layer Client request transaction

Client response transaction

Các bước sau đây chỉ ra quá trình liên quan đến việc tạo và xử lý yêu cầu (request):

1. Client gọi 1 phương thức của 1 lớp lưu trữ trên server thông qua một proxy của lớp có khả năng truy cập tới client.

2. Tầng SOAP bắt giữ lời gọi phương thức và tạo một sự miêu tả lời gọi bằng mẫu XML

3. XML tự gói nó trong vỏ bọc SOAP vẫn trong định dạng XML

4. Dữ liệu vừa được xây dựng sẽ được tầng SOAP chuyển tới SOAP/WebSphere MQ sender.

5. SOAP/WebSphere MQ sender đặt thông điệp SOAP vào hàng đợi giống một thông điệp WebSphere MQ.

6. Tiến trình SOAP/WebSphere MQ listener sẽ đọc thông điệp từ hàng đợi và chuyển dữ liệu SOAP tới tầng SOAP phía server.

7. Tầng SOAP phía server phân tích vỏ bọc SOAP, rút ra biểu diễn XML của phương thức

8. Tầng SOAP xác định dịch vụ đích và gọi hàm theo yêu cầu của client 9. Dịch vụ thi hành hàm và trả về kết quả

10.Kết quả được trả về cho client với kiểu tương tự.

Hình vẽ dưới đây minh hoạ chi tiết hơn nữa đường đi của message theo chế độ kết nối server (server binding):

Hình 3.2-11: Đƣờng đi của message theo chế độ kết nối server.

Client Aplication SOAP Layer SOAP/WMQ Sender Q.RMT.SC(/BR/HO).GW Q.XMIT.SC(/BR/HO) Q.LOCAL.SC(/BR/HO)

Queue Manager SC01(/BR106/HO)

SOAP/WMQ Listener Server (Target Service) SOAP Layer Q.LOCAL.GW.SC(/BR/HO) Q.RMT.GW.SC(/BR/HO) Q.XMIT.GW.SC(/BR/HO) Queue Manager GW Sender Channel Receiver Channel

Khi client từ CTCK, chi nhánh hoặc hội sở chính của Ngân hàng tạo một reqquest, SOAP/WebSphere MQ sender thông qua URI biết được phải đặt message vào request queue nào của queue manager GW thông qua remote queue với sự trợ giúp của transmission queue trong queue manager SC01, BR106 hay HO tương ứng. Message được gửi đi thông qua sender channel tương ứng của mỗi queue manager đó. Service tương ứng trên Gateway sẽ tìm kiếm message trong request queue của queue manager GW, lấy message ra và xử lý chúng, sau đó trả về response message. Response message này được đặt vào transmission queue thông qua service listener, và thông qua message header, message được quyết định đưa đến queue đích nào và thông qua receiver channel phía client, nó được trả về queue manager đích. Lúc này Listener sẽ đọc message từ local response queue và trả nó về cho client.

Như vậy, để client có thể gọi tới Web service nhằm thực thi các chức năng của hệ thống thì Web services phải được xử lý qua một chuỗi các bước triển khai. Các bước này sẽ định nghĩa target service tới kiến trúc hạ tầng máy chủ .NET; tạo ra các phương thức proxy để client dễ dàng xử lý việc gọi service từ client; chuẩn bị một file script để start các service listener cũng như thực hiện cấu hình một số queue và tiến trình trong WebSphere MQ.

3.2.3.1. Triển khai Gateway Banking Service

SCService, BRService, HOService là các Web Service đặt trên máy chủ Bank Gateway nhằm thực hiện các yêu cầu giao dịch từ phía client của CTCK, chi nhánh và hội sở chính của Ngân hàng. Các Web Service này đưa ra giao diện được mô tả theo chuẩn văn bản XML gọi là ngôn ngữ mô tả dịch vụ web WSDL (Web Services Description Language) và sử dụng WSDL để tạo ra một proxy. Proxy này hoạt động như một phần trung gian giữa client và Web Service, nó che dấu sự phức tạp bên trong Web Service và chuyển các lời gọi hàm từ client tới Web Service.

Web Service phải được xử lý thông qua một chuỗi các bước triển khai để gửi thông điệp SOAP của chúng qua WebSphere MQ. Các bước này định nghĩa Web Service tới kiến trúc .NET trên máy chủ. Quá trình triển khai sẽ tạo ra WSDL và các phương thức proxy cho các lời gọi service từ client, đồng thời chuẩn bị file script để khởi động service listener, xử lý cấu hình trong WebSphere MQ.

Hình 3.2-12: Triển khai WebSphere MQ transport for SOAP

Các hoạt động chính mà tiện ích triển khai này đảm nhiệm là:

- Xác nhận URI được cung cấp

- Chuẩn bị WSDL

- Triển khai service từ WSDL

- Tạo ra các client proxy từ WSDL

- Chuẩn bị script để gọi Microsoft .NET listener trong nền Web Service.

- Cấu hình WebSphere MQ với các queue được yêu cầu và các xử lý cần thiết để thực thi service.

Dưới đây là 2 đoạn lệnh dùng để tạo các proxy đã được tuỳ chỉnh để điều khiển bằng tay thông qua việc thực thi các lệnh command line:

Tạo proxy tên MQSCProxy.dll dùng cho ứng dụng thực thi client phía CTCK:

(1:) @echo off

set COMPLUS_Version=v2.0.50727

set WSDL_TOOL="C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\wsdl.exe" set COMPILER="C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\csc.exe" set QUEUE_MANAGER=GW set CLIENT_CHANNEL=CH.GW.SRVCONN set CLIENT_CONNECTION=10.10.1.225(1516) (2:) set QUEUE_REQUEST=Q.LOCAL.GW.SC

set QUEUE_RESPONSE=Q.RMT.GW.SC set WEB_SERVICE=SCServices.asmx set PROXY_NAME=SCProxy set WEB_SERVICE=SCServices.asmx set PROXY_NAME=SCProxy (3:) @echo on md proxy

@echo Make WMQService Proxy amqswsdl

"jms:/queue?destination=%QUEUE_REQUEST%@%QUEUE_MANAGER%&connectionFa ctory=(connectQueueManager(%QUEUE_MANAGER%)clientChannel(%CLIENT_CHA NNEL%)clientConnection(%CLIENT_CONNECTION%))&initialContextFactory=c om.ibm.mq.jms.Nojndi&targetService=%WEB_SERVICE%&replyDestination=%Q UEUE_RESPONSE%" %WEB_SERVICE% .\Proxy\%PROXY_NAME%_Wmq.wsdl

%WSDL_TOOL% .\Proxy\%PROXY_NAME%_Wmq.wsdl /n:WMQService /o:.\Proxy\MQ%PROXY_NAME%.cs

%COMPILER% /t:library /out:.\Proxy\MQ%PROXY_NAME%.dll .\Proxy\MQ%PROXY_NAME%.cs

Đoạn lện 3 thực hiện việc tạo thư mục proxy, sau đó gọi lệnh amqswsdl để tạo file SCProxy_Wmq.wsdl để rồi từ file này sinh ra file MQSCProxy.cs, và từ file MQSCProxy.cs sinh ra file proxy MQSCProxy.dll.

Trong cấu trúc URI của lệnh amqswsdl có khai báo các tham số:

- Sự truyền tải: đây là phần của URI khai báo WebSphere MQ như một

Một phần của tài liệu Xây dựng hệ thống kết nối thanh toán giữa ngân hàng và các công ty chứng khoán (Trang 34)

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

(74 trang)