III/ Danh mục hình vẽ Hình 1a Mô hình tổng quát của hệ thống GTS Hình 2 Cổng kết nối với các thành viên trung tâm Hình 4 Modul đại diện giao dịch Hình 5 Modul quản lý giao dịch Hình 6 S
Trang 1Mục lục
I/ Khái niệm và thuật ngữ 2
II/ Danh mục bảng biểu 3
III/ Danh mục hình vẽ 4
Mở đầu 6
Chương 1: Đặt vấn đề 8
1.1 Tổng quan về hệ thống 8
1.1.1 Mục tiêu của hệ thống 8
1.1.2 Phạm vi của hệ thống 8
1.1.3 Kiến trúc chức năng yêu cầu của hệ thống GTS 9
1.1.4 Việc lựa chọn công nghệ xây dựng 9
1.2 Một số ưu điểm của hệ quản trị CSDL Oracle 10
1.3 Tính năng của Oracle Form & Oracle Form services 13
1.4 Các yêu cầu ảnh hưởng tới kiến trúc 13
Chương 2: Phân tích và thiết kế hệ thống 15
2.1 Kiến trúc ứng dụng 15
2.1.1 Cổng kết nối với các thành viên trung tâm: 17
2.1.2 Modul khớp lệnh: 18
2.1.3 Modul đại diện giao dịch: 19
2.1.4 Modul quản lý giao dịch: 20
2.2 Phân tích hệ thống 21
2.2.1 Mô hình phân rã chức năng 21
2.2.2 Các luồng cơ bản D Các tiến trình chính trong ngày 22
2.2.3 Tiến trình bắt đầu ngày 24
2.2.4 Tiến trình kết thúc ngày 25
2.2.5 Thuật toán khớp lệnh liên tục 26
2.3 Thiết kế cơ sở dữ liệu 29
2.3.1 Các thành phần dữ của CSDL 29
2.3.2 Chức năng của các package, các queue và job 30
2.3.3 Danh sách thực thể thông tin 33
Chương 3: Cài đặt hệ thống 36
3.1 Yêu cầu về nền tảng phần cứng và phần mềm 36
3.2 Xây dựng tầng CSDL 36
3.3 Quá trình xây dựng tầng ứng dụng (Application) 39
3.3.1 Xây dựng các Form nhập liệu những Form có khả năng update: 39
3.3.2 Xây dựng Form tra cứu thông tin 39
Kết luận 40
1 Kết quả đạt được 40
2 Các hạn chế của hệ thống 40
3 Hướng phát triển: 41
Tài liệu tham khảo 43
Phụ lục ……… 44
Trang 2I/ Khái niệm và thuật ngữ
Trang 3II/ Danh mục bảng biểu
Trang 4III/ Danh mục hình vẽ
Hình 1a Mô hình tổng quát của hệ thống GTS
Hình 2 Cổng kết nối với các thành viên trung tâm
Hình 4 Modul đại diện giao dịch
Hình 5 Modul quản lý giao dịch
Hình 6 Sơ đồ phân rã chức năng
Hình 7 Các tiến trình trong ngày
Hình 8 Tiến trình bắt đầu ngày
Hình 9 Tiến trình kết thúc ngày
Hình 10 Thuật toán khớp lệnh
Hình 11 Tổ chức dữ liệu của hệ thống
Hình 12 Tương tác giữa CSDL và Application
Hình 13 Demo các bảng xây dựng trong CSDL
Hình 14 Giao diện form nhập liệu
Hình 15 Giao diện form tra cứu
Trang 5Mở đầu
Ngành công nghiệp phần mềm nói riêng và ngành công nghiệp công nghệ thông tin nói chung trong hơn một thập kỷ trở lại đây đã có những bước phát triển vượt bậc trên thế giới Do yêu cầu của công việc và việc giảm chi phí sản xuất nên bắt buộc nhà sản xuất trong hầu hết các lĩnh vực phải ứng dụng công nghệ thông tin vào công việc quản lý điều hành và sản xuất Đó là một yếu tố thúc đẩy cho nên công nghiệp phần cứng phát triển với tốc độ chóng mặt, các ngôn ngữ lập trình như C, VB, JAVA … từ khi ra đời đến nay liên tục đưa ra các bản nâng cấp cố gắng theo kịp những tính năng của các thiết bị phần cứng Nền công nghiệp phần mềm xây dựng dựa trên nền phần cứng và ngôn ngữ lập trình do đó nó cũng phải nâng cấp và phát triển liên tục để có thể tận dụng tốc
độ của thiết bị phần cứng Một phiên bản nâng cấp của phần mềm lại yêu cầu một mức cao hơn các hệ quản trị cơ sở dữ liệu do đó các hệ quản trị cơ sở dữ liệu cũng liên tục được phát triển
Những năm gần đây ngành công nghệ thông tin ở Việt Nam có những bước phát triển rất mạnh mẽ Các sản phẩm phần mềm ngày càng khẳng định được vị thế của mình trong nước và trên thế giới Các công ty phần mềm tại Việt Nam ngày càng phong phú và đa dạng, những sản phẩm phần mềm làm ra
đã được ứng dụng rộng rãi vào nhiều lĩnh vực khác nhau Hầu hết các phần mềm được viết dựa chủ yếu vào nhu cầu của khách hàng, khách hàng đưa ra những yêu cầu thực tế, qua việc khảo sát phân tích các khía cạnh của vấn đề những nhà phát triển sẽ tiến hành xây dựng nên những bộ phần mềm có khả năng đáp ứng những yêu cầu khách hàng đặt ra Hiện tại việc những công ty phần mềm tại Việt Nam ký những hợp đồng gia công phần mềm cho các công
ty nước ngoài cũng là một hướng phát triển tốt của nền công nghiệp phần mềm nước ta Thứ nhất, nó là một hướng tốt để nền công nghiệp phần mềm Việt Nam có điều kiện tiếp cận với phương pháp và mô hình phát triển phần mềm của các nước có nền công nghiệp phần mềm phát triển như Ấn Độ, Nhật Bản Thứ hai, nó đã giải quyết được vấn đề việc làm cho nguồn nhân lực công nghệ cao và tạo ra một nguồn thu khá cao cho ngân sách của nhà nước cũng như các công ty phần mềm
Vàng là một loại tiền mà con người chúng ta đã biết sử dụng từ rất lâu để làm trung gian cho trao đổi hàng hóa Kể từ khi nước Mỹ trở thành siêu cường
số một thế giới thì đồng Đô La dần trở thành một đồng tiền chung mà các nước dựa vào đó để trao đổi hàng hóa Chính vì vậy trước đây có vị ngoại trưởng
Mỹ trong một cuộc nói chuyện với báo giới đã từng tuyên bố với thế giới rằng:
”Đô La là của chúng tôi nhưng vấn đề là ở các vị” – ‘các vị’ chính là ám chỉ tới những nước khác trên thế giới, cho thấy uy lực của đồng Đô La Trong thời
Trang 6kỳ hiện tại thế giới chúng ta đang trong thời kỳ không được ổn định, kinh tế thế giới bị phụ thuộc quá nhiều vào đồng Đô La Mỹ nên bất cứ vấn đề nào có thể ảnh hưởng tới nền kinh tế Mỹ và một khu vực nào đó đều có thể làm cho giá của đồng Đô La Chính vì vậy vàng đã được nhiều nước trên thế giới coi là một nguồn để có thể đối phó với tình hình suy thoái kinh tế bởi độ ổn định về giá trị của vàng Ở hầu hết các nước vào khoảng vài năm gần đây thì tình hình giao dịch buôn bán vàng diễn ra trên thị trường đang trở nên sôi động hơn
Các sàn giao dịch vàng được mở ra nhiều và tại Việt Nam tình hình cũng diễn ra tương tự nhằm giúp những cá nhân, tổ chức có một sàn giao dịch hợp pháp và lành mạnh, tại đây họ có thể trực tiếp đặt lệnh mua hoặc bán các mã vàng một cách rõ ràng và minh bạch Trong thời đại công nghệ thông tin phát triển như hiện nay, việc ra đời một sàn giao dịch vàng đòi hỏi kèm theo nó là một bộ phần mềm để có thể khớp lệnh tập trung có chức năng tương tự như hai trung tâm khớp lệnh Hà Nội và Hồ Chí Minh của các sàn giao dịch chứng khoán Việc nghiên cứu phát triển một hệ thống khớp lệnh giao dịch vàng là một yêu cầu thực tế và cấp thiết, trong đó mặt tính năng nghiệp vụ cũng tương
tự như hệ thống giao dịch chứng khoán nhưng có phần giảm bớt độ phức tạp
về nghiệp vụ
Theo yêu cầu đặt ra của khách hàng và định hướng phát triển của công ty, Navisoft JSC đã đề xuất triển khai giải pháp GTS nhằm giúp khách hàng tổ chức một sàn giao dịch vàng quy củ và hiện đại, góp phần giảm chi phí, nâng cao năng lực cạnh tranh và cung cấp cho khách hàng một dịch vụ tốt nhất GTS là một hệ thống cung cấp khả năng xử lý phân tán trên cơ sở dữ liệu tập trung, thiết kế của GTS cho phép xử lý các giao dịch trực tuyến với thông lượng cao Các mođun của hệ thống được thiết kế độc lập, tham số hóa giúp cho các sàn giao dịch dễ dàng tổ chức hoạt động cũng như mở rộng trong tương lai Do yêu cầu bảo mật, do điều kiện thời gian và mức độ tham gia vào
dự án nên em chỉ xin trình bày về một phần của hệ thống đó là phân hệ khớp lệnh liên tục, Do phân hệ này xây dựng xong có thể họat động riêng nên nó cũng được coi như một hệ thống trong hệ thống lớn GTS
Trong báo cáo này em trình bày những nội dung cơ bản trong việc thiết
kế, xây dựng và triển khai hệ thống này Ngoài phần mở đầu và kết luận, nội dung của báo cáo tập trung vào 3 chương chính, mô tả quá trình phân tích, thiết kế, lập trình và kiểm thử hệ thống Ngoài ra báo cáo còn có phần phụ lục
và tài liệu tham khảo Sau đây là các nội dung chính của báo cáo:
Mở đầu: Giới thiệu về mục đích của hệ thống sẽ xây dựng
Chương 1 9 Đặt vấn đề : Trình bày mục tiêu của hệ thống cần phải đạt được, vấn đề lựa chọn công nghệ để xây dựng ứng dụng cho hệ thống
Trang 7Chương 2 9 Phân tích và thiết kế hệ thống : Mô tả các phân hệ trong hệ thống sắp xây dựng, những thiết kế trong tầng database cùng với việc mô những package xây dựng bên trong cơ sở dữ liệu
Chương 3 9 Cài đặt hệ thống : Yêu cầu nền tảng phần cứng và phần mềm, Cài đặt và triển khai hệ thống trong mạng LAN
Kết luận : Trình bày những vấn đề đạt được và chưa đạt của hệ thống sau khi đạt được, qua đó trình bày hướng phát triển cho tương lai
Phụ lục: Trình bày cách cài đặt các phần mềm, mô tả về một số bảng trong hệ thống và giới thiệu về một số chức năng của phân hệ khớp lệnh
Tài liệu tham khảo: Giới thiệu một số tài liệu về đặc tả hệ thống, tài liệu liên quan tới ứng dụng
Trang 8Chương 1: Đặt vấn đề
Chương này trình bày một mô hình tổng quan về phân hệ khớp lệnh của
hệ thống GTS sẽ xây dựng Tiếp đến là vấn đề lựa chọn công nghệ để xây dựng
và phát triển Và cuối cùng là những yếu tố yêu cầu mà hệ thống sau khi xây dựng phải đạt được trước khi có thể đem ra triển khai trên môi trường thực tế
1.1 Tổng quan về hệ thống
1.1.1 Mục tiêu của hệ thống
Xây dựng phân hệ khớp lệnh nằm tại trung tâm có khả năng nhận lệnh ngay tại trung tâm hoặc những giao dịch từ xa, đáp ứng được yêu cầu của bài toán đặt ra
•••• Quản trị nghiệp vụ (Xử lý phiên, xử lý ngày giao dịch, đặt lịch giao dịch cho hệ thống, thiết lập các tham số cho ngày giao dịch)
•••• Quản trị hệ thống (Phân quyền truy cập, giám sát User truy cập hệ thống, giám sát hoạt động của hệ thống,…)
•••• Theo dõi các thông tin giao dịch (Số lệnh đặt, số lệnh giao dịch, Thông tin vàng, thông tin thị trường…)
Trang 9•••• Khai thác thông tin
•••• Trao đổi thông tin
•••• Lãnh đạo sàn giao dịch: Khai thác các thông tin đã qua tổng hợp, phân tích, các thông tin chi tiết về hoạt động thị trường theo các mẫu báo cáo
1.1.3 Kiến trúc chức năng yêu cầu của hệ thống GTS
Mô tả toàn bộ hệ thống và môi trường xung quanh, dữ liệu được lưu trong
hệ thống yêu cầu được bảo mật tốt Quá trình dữ liệu từ các máy trạm nhập liệu truyền theo cơ chế nào để đảm báo tính bảo mật cao Đó chính là vấn đề lớn mà bài toán cần phải giải quyết được khi hoàn thành
Hình 1a: Mô hình chức năng tổng quát
1.1.4 Việc lựa chọn công nghệ xây dựng
Một phần mềm trước khi được khách hàng sử dụng thì cần những yêu cầu cần thiết và chủ đạo của một phần mềm:
• Đối với những ứng dụng làm việc phần lớn với Cơ sở dữ liệu thì quan trọng nhất là phần giao diện nhập liệu phải đảm bảo tính chính xác
và mức độ kiểm soát quá trình nhập (valid data ) cao, tránh rườm rà
• Giảm tới mức tối thiểu sự dư thừa thông tin
Trang 10• Chuẩn hóa dữ liệu
Hệ thống GTS là một hệ thống tương đối lớn, xử lý số lượng giao dịch trong một ngày là khá lớn và liên quan tới vấn đề quyền lợi về tài sản của mỗi khách hàng tham gia Do đó, vấn đề lựa chọn giải pháp công nghệ phù hợp được đặt ra cho những nhà phát triển phần mềm nói chung và NVS nói riêng
Để giải quyết cho câu hỏi cái gì sẽ được sử dụng thì lại phải cần tới kinh nghiệm trong việc phát triển phần mềm và các nền tảng ứng dụng sẵn có trên thị trường Việc xây dựng phần mềm GTS theo từng modul riêng biệt, nên tùy vào các modul có thể sử dụng các công cụ khác nhau mà không ảnh hưởng tới hoạt động thống nhất của toàn bộ hệ thống Phân hệ khớp lệnh của sàn giao dịch vàng có yêu cầu về bảo mật khá cao, tốc độ xử lý nhanh và tính ổn định… Hơn thế nó đòi hỏi phải tương tác được với các phân hệ khác của hệ thống giao dịch, ngoài ra có thể có thêm yêu cầu thêm trong quá trình ứng dụng vào thực tế
Qua thực tế sử dụng và những ứng dụng đang hoạt động ổn định cao trên nền hệ quản trị CSDL Oracle vì vậy Oracle chính là một giải pháp tốt nhất cho CSDL của hệ thống Đồng bộ với CSDL Oracle ở tầng Application, Oralce Form và Oracle Form Service cũng là một giải pháp được lựa chọn Sau đây ta
có thể xét qua một số đặc điểm của các tool được chọn lựa này
1.2 Một số ưu điểm của hệ quản trị CSDL Oracle
Đây có thể nói là một hệ quản trị CSDL hàng đầu trên thế giới Hơn hai phần ba trong số 500 tập đoàn công ty lớn nhất thế giới (Fortune 500) sử dụng Oracle Ở Việt Nam hầu hết các đơn vị lớn thuộc các ngành ngân hàng, kho bạc, thuế, bảo hiểm, bưu điện, hàng không, dầu khí,… đều sử dụng hệ quản trị CSDL Oracle Có được như thế là vì Oracle hiện đang dẫn đầu về các tính năng như:
Trang 11• Độ ổn định và tin cậy cao
• Khả năng xử lý dữ liệu rất lớn, có thể lên đến hàng trăm TeraByte (1 TeraByte ~ 1,000 GigaByte ~ 1,000,000,000 KiloByte) mà vẫn đảm bảo tốc độ xử lý dữ liệu rất cao
• Khả năng bảo mật rất cao, Oracle đạt độ bảo mật cấp C2 theo tiêu chuẩn bảo mật của Bộ Quốc Phòng Mỹ và công nghệ CSDL Oracle vốn được hình thành từ yêu cầu đặt hàng của các cơ quan an ninh FBI và CIA
• Khả năng bảo mật rất cao, Oracle đạt độ bảo mật cấp C2 theo tiêu chuẩn bảo mật của Bộ Quốc Phòng Mỹ và công nghệ CSDL Oracle vốn được hình thành từ yêu cầu đặt hàng của các cơ quan an ninh FBI và CIA
và kinh nghiệm khai thác các công nghệ này Bên cạnh đó, hiện tại Oracle vẫn luôn là công nghệ “cao cấp” nhưng không còn đắt tiền nữa, thậm chí mới đây Oracle đã cho ra đời phiên bản Oracle 10g Express Edition hoàn toàn miễn phí dành cho các doanh nghiệp vừa và nhỏ
Ngoài ra, Oracle còn là một hệ CSDL độc lập với hệ điều hành Nó cho phép không chỉ chạy trên các hệ điều hành thương mại Windows mà còn có thể chạy trên các hệ điều hành mã nguồn mở miễn phí như Linux rất mạnh và rất phổ biến hiện nay Điều này có thể giúp khách hàng sử dụng tiết kiệm được một khoản chi phí đầu tư khá lớn dành cho hệ điều hành và hệ quản trị cơ sở
dữ liệu trong dự án triển khai hệ thống phần mềm Các giải pháp nội địa hiện nay đa số xây dựng dựa trên công nghệ của Microsoft Do đó muốn triển khai các giải pháp này, khách hàng sẽ phải trả một khoản khá lớn tiền bản quyền sử dụng hệ điều hành Windows và hệ quản trị cơ sở dữ liệu MS SQL Server vì Luật Sở Hữu Trí Tuệ của Việt nam bắt đầu có hiệu lực kể từ ngày 01/07/2006 (Nguồn: http://forum.utehy.edu.vn/forum/archive/index.php?tˆ22.html)
Trang 12• Ngoài ra ra hệ quản trị CSDL còn phải đảm bảo chức năng phân quyền truy nhập và bảo mật trên đường truyền
Trong các hệ quản trị CSDL phân tán hiện nay thì hệ quản trị CSDL Oracle được đánh giá là ưu việt nhất với các chức năng tiên tiến: phân tán, sao bản (replication), bảo mật cao, tính nhất quán dữ liệu, thủ tục chạy ngầm (procedure storeg), xử lý sự kiện kích hoạt (triggers), khoá dữ liệu đến từng hàng, chạy thông suốt trên 120 loại phần cứng từ máy lớn đến máy nhỏ và 19 hệ điều hành, hỗ trợ hầu hết các giao thức mạng, là CSDL đầu tiên trên thế giới tích hợp Web Do đó bài báo này sẽ phân tích kỹ hệ quản trị này giúp người đọc có cái nhìn cụ thể
Oracle database là một tập hợp được xử lý như một khối thống nhất, nhằm mục đích lưu trữ và kết xuất thông tin có liên quan với nhau Để đảm bảo quy tắc nghiệp vụ và để bảo đảm tính toàn vẹn về dữ liệu, Oracle cung cấp một số quy tắc ràng buộc dữ liệu:
• Oracle cung cấp các quyền và quy tắc có sẵn cho người sử dụng Mỗi người sử dụng (user) sử dụng cơ sở dữ liệu Oracle đều phải đăng ký một tài khoản (account) trong cơ sở dữ liệu bao gồm:
ˆ Use namer: mỗi người sử dụng kết nối với cơ sở dữ liệu với tên duy nhất, được gắn liền với mật khẩu Các trạm làm việc cùng chia sẻ tài nguyên và cơ sở dữ liệu
ˆ User password: gắn với User name
ˆ Database name: định nghĩa tên của CSDL mà người sử dụng muốn kết nối vào SQL* Net là phần mềm truyền thông cho phép các trạm làm việc kết nối với CSDL trên Oracle Server và thao tác trên Oracle Server
Chỉ tiêu tablespace (không gian đĩa có sẵn) cho người sử dụng
Giới hạn nguồn tài nguyên hệ thống cho người sử dụng Sau khi tạo ra người dùng, DBA phải gán quyền cho người dùng có thể truy cập vào hệ thống CSDL Quyền của người sử dụng CSDL Oracle
có thể chia thành hai loại:
System privilege (quyền hệ thống) cho phép người sử dụng thực hiện trên hệ thống rộng riêng hoặc một hoạt
Trang 13động đặc biệt trên một kiểu đối tượng đặc biệt Ví dụ, quyền tạo bảng, chỉ mục trên bất kỳ một tablespace nào, quyền tạo người dùng mới, quyền cập nhật hỏi đáp dữ liệu trên bất kỳ bảng nào đó là quyền của hệ thống
Object privileges (quyền với các đối tượng) cho phép người sử dụng thực hiện hành động riêng trên một đối tượng cụ thể nào đó Ví dụ như quyền cập nhật dữ liệu trên một bảng nào đó hoặc quyền đọc dữ liệu từ một view nào đó quyền đối tượng là quyền cuối cùng của người
sử dụng
Như vậy, với các quyền đối tượng và quyền hệ thống,cũng như bằng cách sử dụng nhóm quyền, hệ quản trị CSDL Oracle cho phép ta gán những quyền hạn thích hợp cho người dùng và nhóm người dùng một cách linh hoạt, hiệu quả Do đó đảm bảo được tính bảo mật của hệ thống.Với Oracle ta có thể tạo sẵn một số người sử dụng nào đó và thực hiện phân quyền cho họ khi thiết kế dữ liệu, có thể phân quyền trực tiếp trên các đối tượng dữ liệu cho từng người sử dụng hoặc tạo ra các nhóm (role) quyền sử dụng dữ liệu và gán người sử dụng vào các nhóm này
1.3 Tính năng của Oracle Form & Oracle Form services
Oracle Form & Oracle Form services là hai bộ tool được Oracle giới thiệu
để xây dựng dựng form có chức năng chủ yếu cho nhập liệu vào CSDL Oracle
Nó đươc xây dựng theo công nghệ Applet chạy trên nền Web browser và công nghệ java Do tính ổn định và tốc độ tương tác với database Oracle nên nó rất hay được sử dụng trong ngành tài chính ˆ ngân hàng và rất nhiều ứng dụng không yêu cầu khắt khe lắm về giao diện phục vụ cho các công ty chứng khoán Cụ thể như VIBank cũng đã xây dựng hệ thống Egateway bằng công nghệ này và nền J2EE … Cho thấy việc lựa chọn Oracle Form & Oracle Form services để xây dựng hệ thống GTS là phù hợp
Việc sử dụng công nghệ này cũng làm giảm bớt công việc cho những nguời lập trình viên bởi việc xây dựng được hỗ trợ tối đa trong vịêc kéo thả giao diện Các control được xây dựng sẵn cho việc kéo thả như trong IDE khác của Sun hoặc Microsoft
1.4 Các yêu cầu ảnh hưởng tới kiến trúc
Các yếu tố tối quan trọng có thể làm ảnh hưởng đến kiến trúc hệ thống như:
Độ lớn và độ tăng trưởng dữ liệu : Dữ liệu lớn tại một số bảng quan trọng dẫn đến tốc độ tra cứu dữ liệu tại chương trình quản lý sẽ được xử lý bằng cách tạo các bảng dữ liệu phân chia theo partition và index theo các bảng dữ liệu lớn (lưu log quá trình xử lý và giao dịch)
Trang 14Số lượng giao dịch: Số lượng giao dịch đáp ứng được trung bình trong vòng 1000 giao dịch/ngày
Số lượng concurrent connection: Đáp ứng được trung bình 200 concurrent connection
Yêu cầu xử lý real time/ batch: Chương trình xử lý batch cho các giao dịch vào cuối mỗi ngày và chạy tự động
Yêu cầu xử lý online/offline
Yêu cầu bảo mật: Đáp ứng các dịch vụ bảo mật cung cấp của mobivi, verisign
Yêu cầu backup/ sao lưu dữ liệu : Dữ liệu được backup hàng ngày và cũng có thể backup bất cứ lúc nào khi cần thiết) Công việc này do quản trị hệ thống sẽ thực hiện
Trong phần trên ta đã trình bày mục tiêu và yêu cầu chính của hệ thống Trong chương tiếp theo ta sẽ sang bước tiếp theo trong quá trình phát triển một phần mềm: phân tích và thiết kế hệ thống
Trang 15Chương 2: Phân tích và thiết kế
Trong chương 2 này trình bày về kiến trúc ứng dụng của hệ thống trong
hệ thống lớn GTS, các modul trong hệ thống và các tiến trình trong những modul đó Sau đó tới phần mô tả tổng quan về hệ thống database (CSDL) được xây dựng trên nền tảng ứng dụng của hệ quản trị cơ sở dữ liệu Oracle 10g
2.1 Kiến trúc ứng dụng
Dưới đây chính là mô hình tổng quát cho toàn bộ hệ thống GTS:
Hình 1: Mô hình tổng quát của hệ thống GTS
Trang 16Mô tả sơ lược:
Cổng kết nối với các thành viên trung tâm: bao gồm các web service chứa các hàm và thủ tục kết nối với nhiều thành viên giao tiếp đẩy lệnh giao dịch vàng vào hệ thống khớp lệnh giao dịch Các web service các hàm thủ tục viết trên ngôn ngữ Java và được thiết kế trên nền J2EE Các web service có nhiệm vụ chính sau:
• Đặt lệnh mua/bán
• Sửa, hủy lệnh mua/bán
• Tra cứu thông tin lệnh đặt, hủy, sửa
• Tra cứu thông tin lệnh khớp
• Tra cứu thông tin giá vàng
• Tra cứu thông tin thị trường
Modul khớp lệnh: Có nhiệm vụ nhận lệnh từ các thành viên giao dịch qua cổng giao tiếp nhận lệnh hoặc từ modul ĐDGD của trung tâm khớp lệnh Sau khi nhận lệnh hệ thống khớp lệnh thực hiện đưa lệnh vào queue để thực hiện khớp lệnh tuần tự Modul này sẽ xử lý ngầm dưới Database Oracle 10g
Modul đại diện giao dịch: Modul thực hiện nhập giao dịch lệnh modul này được sử dụng khi cổng kết nối gặp trục trặc trong quá trình giao dịch Modul được xây dựng trên nền Oracle Form & Report Deverloper và được triển khai trên nền Oracle Form & Report service
Modul quản lý giao dịch: Modul quản lý các tham số phục vụ cho modul khớp lệnh và quản trị các tiến trình chạy cũng như các giao dịch chuyển đến từ các kênh nhận lệnh Modul được xây dựng trên nền Oracle Form & Report Deverloper và được triển khai trên nền Oracle Form & Report service
Lớp cơ sở dữ liệu: Bao gồm toàn bộ cơ sở dữ liệu của toàn bộ hệ thống khớp lệnh Chia ra hai phần chính:
• Các bảng: bao gồm toàn bộ các bảng dữ liệu cần thiết cho giao dịch, các tham số phục vụ cho việc quản trị và vận hành của hệ thống và một số bảng chứa những tham số chung
• Store procedure: là các procedure thực hiện kích hoạt các tiến trình trong ngày và thực hiện công việc khớp lệnh trong hằng đợi của hệ thống
Trang 172.1.1 Cổng kết nối với các thành viên trung tâm
Dưới đây là mô hình cho modul Cổng kết nối với các thành viên trung tâm, hiện tại modul không được tích hợp trong phân hệ khớp lệnh Dưới đây
là mô hình cho modul:
Hình 2: Cổng kết nối với các thành viên trung tâm Bao gồm những API cung cấp cho những kênh đẩy lệnh và có chức năng sau:
• Đặt lệnh mua/bán
• Sửa, hủy lệnh mua/bán
• Tra cứu thông tin lệnh đặt, hủy, sửa
• Tra cứu thông tin lệnh khớp
• Tra cứu thông tin giá vàng
• Tra cứu thông tin thị trường
Trang 182.1.2 Modul khớp lệnh:
Mô hình tổng quát của modul khớp lệnh, modul có chức năng chính trong toàn phân hệ khớp lệnh Nó chỉ có chức năng tiếp nhận lệnh đặt, thực hiện khớp lệnh và sau đó là trả về kết quả khớp lệnh
Hình 3: Modul khớp lệnh
Trang 19• Trả về thông tin thị trường
2.1.3 Modul đại diện giao dịch:
Mô hình của modul ĐDGD:
Hình 4: Modul đại diện giao dịch
Modul này phục vụ cho đại diện bên mua và bên bán trong khi thực hiện giao dịch và tra cứu thông tin, nó gồm những chức năng sau:
Nhập lệnh giao dịch:
• Đặt lệnh mua/bán
• Sửa lệnh mua/bán
• Hủy lệnh mua/bán
Trang 20Tra cứu thông tin giao dịch:
• Tra cứu thông tin sổ lệnh đặt/sửa/hủy
• Tra cứu thông tin sổ lệnh khớp
Tra cứu thông tin về:
• Tra cứu thông tin vàng giao dịch
• Tra cứu thông tin thị trường
2.1.4 Modul quản lý giao dịch:
Mô hình của modul quản lý giao dịch:
Hình 5: Modul quản lý giao dịch Modul này sẽ sử dụng cho những người quản lý thông tin tại trung tâm khớp lệnh trong việc:
Quản lý tham số:
• Quản lý tham số chung
• Quản lý tham số giao dịch
• Đơn vị yết giá
• Lịch giao dịch
Trang 21• Thiết lập thị trường
• Thuộc tính lệnh
• Quản lý tiến trình,
Quản trị người sử dụng:
• Nhập, sửa, xóa người sử dụng
• Phân quyền người sử dụng
Quản lý thông tin giao dịch:
• Tra cứu cập nhật thông tin vàng
• Tra cứu cập nhật thông tin thị trường
• Tra cứu thông tin sổ lệnh đặt/hủy/sửa
• Tra cứu thông tin sổ lệnh chờ khớp
• Tra cứu thông tin sổ lệnh khớp
2.2 Phân tích hệ thống theo chức năng
2.2.1 Mô hình phân rã chức năng
Do quy mô và độ phức tạp của bài toán là không lớn nên bài toán được ưu tiên phân tích theo hướng chức năng Như ta đã biết mô hình hướng chức năng được các nhà phát triển phần mềm sử dụng trong việc xây dựng và phát triển các phần mềm từ khi nền công nghiệp phần mềm ra đời Mặc dù hiện nay một
mô hình mới ra đời và được các nhà phát triển phần mềm sử dụng rất rộng rãi
là mô hình hướng đối tượng Mô hình này có nhiều ưu điểm của nó như tính khả chuyển, dễ dàng trong việc bảo trì và nâng cấp… Đối với một hệ thống lớn phức tạp thì việc phân tích và thiết kế hệ thống theo hướng đối tượng sẽ đạt được những ưu việt của phương pháp này nhưng với hệ thống hiện tại do cũng không có nhiều modul và vấn đề là tốc độ xử lý nên phân hệ khớp lệnh này vẫn được phân tích và thiết kế hướng theo chức năng của từng modul riêng rẽ
Do yêu cầu của bài toán cần độ bảo mật cao, an toàn cho dữ liệu nên hệ quản trị cơ sở dữ liệu Oracle được sử dụng và đồng thời với nó Oracle Form cũng được chọn để xây dựng tầng Application do tốc độ truy vấn, nhập liệu chính xác Oracle Form với database Oracle nhanh hơn bất cứ một ngôn ngữ phát triển phần mềm nào khác
Trang 22Từ kiến trúc tổng quan về hệ thống cộng với kinh nghiệm trong việc phát triển phần mềm của những người có kinh nghiệm của những nhân viên của công ty Navisoft đã đưa ra mô hình phân rã chức năng theo từng modul của phân hệ khớp lệnh trong hệ thống GTS:
Hình 6: Sơ đồ phân rã chức năng 2.2.2 Các luồng cơ bản \ Các tiến trình chính trong ngày
Trên đây chúng ta đã có sơ đồ phân rã chức năng của phân hệ khớp lệnh Sau đây là phần mô tả tương đối rõ ràng về các tiến trình hoạt động trình tự trong của phân hệ khớp lệnh phải thực hiện Gồm 1 sơ đồ mô tả các bước tiến trình chạy trong ngày theo trình tự từ B1 (Bắt đầu ngày) đến B10 (Kết thúc ngày), phần còn lại là những mô tả thêm về những thao tác mà các tiến trình này phải thực hiện Qua đó chúng ta thấy được phần nào tổng quan về sơ đồ luồng hoạt động của hệ thống, dễ dàng nắm được những phương thức xử lý bên trong của hệ thống Toàn bộ hệ thống hoạt động theo phương thức tự động, quản trị viên chỉ quản lý việc bắt đầu một ngày giao dịch và cuối mỗi ngày là kết thúc ngày giao dịch Các tiến trình phía trong sẽ tự động được xử
lý hoặc có thể được kích hoạt xử lý manual
Trang 23B1 Tiến trình bắt đầu ngày + Kiểm tra các Object Database xem trạng thái có sẵn sàng cho ngày giao dịch hiện tại
+ Cho phép CBQL có thể làm các thao tác kiểm tra chuẩn bị trước khi cho phép nhận lệnh giao dịch
+ Nếu chưa bắt đầu ngày làm việc hệ thống không cho phép NSD sử dụng các chức năng của ứng dụng
+ Tiến trình này bắt buộc phải có trong một ngày giao dịch Việc kích hoạt tiến trình sẽ do cán bộ quản lý thực hiện B2 Tiến trình mở cửa thị trường
+ Tiến trình này bắt buộc phải có trong một ngày giao dịch + Sau khi mở cửa thị trường thì ĐDGD mới được phép nhập lệnh vào hệ thống
B3 Phiên giao dịch xác định giá mở cứa
+ Phiên giao dịch này có thể có hoặc không có trong một ngày giao dịch
+ Đối với các vàngkhớp lệnh liên tục mới tham gia phiên giao dịch này Như vậy, vàng tham gia hệ thống báo giá trung tâm sẽ tham gia phiên giao dịch này Đối với hệ thống khớp lệnh tập trung nếu trong ngày giao dịch chỉ có khớp lệnh định kỳ Thì các lệnh GD vàng trong hệ thống khớp lệnh tập trung sẽ không được nhận trong phiên GD này + Những loại vàng mới niêm yết sẽ tham gia phiên giao dịch này để xác định giá tham chiếu cho các phiên giao dịch sau này Những loại vàng này sẽ giao dịch không có biên độ trần sàn Và tính lại giá trần sàn dựa trên cơ sở giá giao dịch của phiên XĐ giá mở cửa
B4 Phiên giao dịch thông thường
+ Đối với hệ thống Báo giá trung tâm sẽ nhận lệnh khớp lệnh liên tục Còn với hệ thống khớp lệnh tập trung sẽ áp dụng 1 trong 2 hình thức khớp lệnh: Định kỳ, Liên tục + Một Call khớp lệnh định kỳ bao gồm các giai đoạn: Nhận lệnh, Tạm dừng GD để khớp, Khớp lệnh định kỳ
+ Có thể được phép nhận lệnh giao dịch thoả thuận trong khoảng thời gian này
+ Trong TH không có Call giao dịch xác định giá mở cửa Thì những loại vàng mới niêm yết sẽ giao dịch không có trần sàn ở CALL 1 (Đối với khớp lệnh định kỳ) hoặc trong suốt phiến giao dịch thông thường (Khớp lệnh liên tục)
Đối với khớp lệnh định kỳ: Giá khớp lệnh của call khớp lệnh đầu tiến sẽ là giá mở cửa của ngày giao dịch và giá của call khớp lệnh cuối cùng sẽ là giá đóng cửa của ngày giao dịch Giá tham chiếu cho ngày hôm sau sẽ = giá đóng cửa
Đối với khớp lệnh liên tục: Giá của lệnh khớp sớm nhất sẽ là giá mở cửa còn giá của lệnh khớp cuối cùng sẽ là giá đóng cửa của ngày giao dịch cho loại vàng đó Giá tham chiếu cho ngày hôm sau sẽ = giá bình quân của các lệnh khớp
B5 Phiên giao dịch xác định giá đóng cứa + Phiên giao dịch này có thể có hoặc không có trong một ngày giao dịch
+ Mục đích xác định giá đóng cửa cho ngày giao dịch Những loại vàng tham gia khớp lệnh liên tục trong Phiên giao dịch thông thường hoặc mới niêm yết sẽ tham gia phiên giao dịch này Giá khớp lệnh của phiên giao dịch XĐ giá đóng cửa sẽ là giá tham chiếu cho loại vàng đó ngày giao dịch sau
Trang 24B6 Giao dịch thoả thuận sau giờ + Thực hiện các giao dịch thoả thuận sau giờ Giao dịch thoả thuận này cho cả 2 hệ thống: Báo giá trung tâm, Khớp lệnh tập trung Hình thức thanh toán của giao dịch thoả thuận sau giờ có thể là thanh toán song phương hoặc đa phương B7 Giao dịch thoả thuận Trade by Trade
+ Thực hiện các giao dịch thoả thuận cho các tổ chức lớn Hình thức thanh toán áp dụng là Thanh toán trực tiếp (Trade
by Trade) B8 Đóng cứa thị trường + Sinh thông tin các lệnh khớp cho các giao dịch thoả thuận
+ Nhận số liệu điều chỉnh số lượng nắm giữ người đầu tư nước ngoài từ bên Lưu ký
B10 Kết thúc ngày làm việc + Sao lưu sổ lệnh, Thông tin vàng giao dịch, thị trường sang các bảng thông tin quá khứ
+ Chuyển sang ngày giao dịch kế tiếp Thiết lập các tham số chuẩn bị cho ngày giao dịch đó
Hình 7: Các tiến trình trong ngày 2.2.3 Tiến trình bắt đầu ngày
Hình 8: Tiến trình bắt đầu ngày
B1 Kiểm tra trạng thái ngày giao dịch
B2 Kiểm tra trạng thái của các Object CSDL
B3 Kiểm tra Thông tin
vàng GD
B4 Kiểm tra trạng thái
Sổ lệnh
B5 Kiểm tra các tham
số cho ngày giao dịch
B6 Thực hiện chuyển trạng thái bắt đầu ngày
Trang 25Các tham số trong năm bước kiểm tra đầu tiên để đảm bảo là hệ thống database đã thực sự được thiết lập thông số chuẩn bị cho hoạt động ngày giao dịch mới
2.2.4 Tiến trình kết thúc ngày
Hình 9: Tiến trình kết thúc ngày
B1 KT Chuyển số liệu giao
dịch
B2 Thực hiện sao lưu dữ liệu
B3 Sao lưu sổ lệnh trong
ngày
B4 Sao lưu dữ liệu vàng
B5 Sao lưu dữ liệu thị trường
B6 Chuyển sang ngày giao
Trang 26Hình trên mô tả các bước tiến trình kết thúc ngày, các bước được thực hiện theo thứ tự từ B1 tới B14 là một quá trình mà hệ thống phải thực hiện để sao lưu dữ liệu, thiết lập những thông số về thị trường và dữ liệu bảng cho ngày giao dịch tiếp theo
2.2.5 Thuật toán khớp lệnh liên tục
* Hiện nay có 2 phương thức khớp lệnh chính mà thực tế đang sử dụng:
a Khớp lệnh định kỳ: Là phương thức giao dịch được thực hiện trên
cơ sở so khớp các lệnh mua và lệnh bán ( chứng khoán) tại một thời điểm xác định
Phưong thức khớp lệnh định kỳ được sử dụng để xác định giá mở cửa
và giá đóng cửa ( chứng khoán) trong phiên giao dịch
b Khớp lệnh liên tục: Là phương thức giao dịch được thực hiện trên cơ sở so khớp các lệnh mua và lệnh bán vàng ( hoặc chứng khoán) ngay khi lệnh được nhập vào hệ thống giao dịch
Nguyên tắc khớp lệnh:
Trong mỗi phiên giao dịch, giá giao dịch của mỗi loại vàng ( hoặc chứng khoán) được hình thành sau khi khớp các lệnh được nhập vào hệ thống theo trình tự nguyên tắc về ưu tiên sau:
a Ưu tiên về mức giá:
+ Lệnh MUA có mức giá CAO hơn sẽ được ưu tiên thực hiện trước + Lệnh BÁN có mức giá THẤP hơn sẽ được ưu tiên thực hiện trước
b Ưu tiên về thời gian:
Trường hợp các lệnh mua bán có cùng mức giá thì lệnh nào nhập trước vào hệ thống giao dịch được ưu tiên thực hiện trước
c Ưu tiên về khối lượng:
Nếu cả mức giá và thời gian đều như nhau thì lệnh nào có khối lượng lớn hơn sẽ được ưu tiên thực hiện trước
* Giá giao dịch được xác định theo nguyên tắc:
Là mức giá thực hiện được khối lượng giao dịch lớn nhất:
ˆ Nếu có nhiều mức giá cùng thỏa mãn khối lượng giao dịch lớn nhất thì chọn mức giá gần với giá tham chiếu
ˆ Nếu vẫn có nhiều mức giá cùng thỏa mãn 2 nguyên tắc trên thì mức giá cao nhất sẽ được chọn
Mô tả một quá trình lệnh đặt mua vào hệ thống GTS:
Trang 27Sổ lệnh trong khớp lệnh liên tục bao giờ cũng ở trong tình trạng không thể có giao dịch được nữa Nếu một lệnh đưa vào sẽ thực hiện so khớp lệnh với bên sổ lệnh đối ứng Nếu có lệnh thoả mãn sẽ khớp ngay
(Giá tham chiếu: 50,000 đ) Bán Thang giá Mua
50,600
200 50,400
50,200 1100 1300© 50,000 500
49,800 100 49,600 200 49,400 300
Bảng 1: Bảng lệnh demo đặt
Đặt lệnh mua 1300 ©, Trước tiên sẽ khớp 1100 tại mức giá 50200 và khớp 200 tại mức giá 50000
Sổ lệnh sau khi khớp sẽ như sau:
Bảng 2: Dữ liệu lệnh Demo sau khớp
Bán Thang giá Mua
50,600
200 50,400
50,200 1100 1300© 50,000 200,300
49,800 100 49,600 200 49,400 300
Trang 28Thủ tục khớp lệnh được mô tả rõ nhất bằng sơ đồ thuật toán và các bước mô tả bên cạnh:
Thực hiện theo các bước:
1 Kiểm tra thông tin lệnh có phù hợp hay không
2 So khớp với các lệnh bên sổ lệnh chờ đối ứng
3 Sinh lệnh khớp và cập nhật lại thông tin vàng
Đưa vào danh sách lệnh chờ tương ứng.
Kiểm tra thông tin lệnh Các kiểm tra bao gồm: + Kiểm tra số lượng nước ngoài nắm giữ
+ Kiểm tra thuộc tính lệnh có thoả mãn hay không + Kiểm tra thị trường có được phép nhận lệnh này không
So khớp lệnh + Đối chiếu lệnh với danh sách lệnh chờ đối ứng VD: nếu lệnh bán sẽ thực hiện so khớp với các lệnh danh sách lệnh mua chờ khớp Nguyên tắc so khớp căn cứ theo nguyên tắc: Độ ưu tiên, Giá, thời gian
Sinh thông tin lệnh khớp và cập nhật thông tin vàng
+ Sau khi so khớp lệnh được khớp Khi đó sẽ sinh thông tin lệnh khớp và cập nhật lại thông tin vàng + Trong TH lệnh khớp không hết Thì phần giá trị khớp không hết sẽ được để lại trong danh sách lệnh chờ khớp (TH B4)
Đưa vào danh sách lệnh chờ khớp + Danh sách lệnh chờ khớp phải sắp xếp ngay theo thứ tự ưu tiên khớp lệnh Đế thuận tiện cho việc so khớp lệnh sau này
Trang 292.3 Thiết kế cơ sở dữ liệu
Các bảng lưu dữ liệu cho các phân hệ của hệ thống
Các package, các queue và job có chức năng xử lý và vận hành cả hệ thống
Dưới đây sẽ mô tả quan hệ giữa các thành phần của hệ thống CSDL, qua
đó thấy mối quan hệ liên tác giữa những thành phần trong CSDL:
Tầng App tương tác trực tiếp với cả 2 thành phần của CSDL, với dữ liệu từ các bảng và view, tương tác với khối điều khiển Package – Queue
Ở tầng Database dữ liệu từ các bảng, view được xử lý trong các
Package trả về cho các bảng và application
Trang 30Hình 12: Tương tác giữa CSDL và Application
2.3.2 Chức năng của các package, các queue và job
Giới thiệu chức năng của các package, queue và job hoạt động trong hệ thống:
Chức năng của hàm này chính là vịêc kiểm tra user đăng nhập vào
hệ thống có thuộc user trong bảng USERS
+ FNC_GET_FUNC_RIGHTS ( P_USER_NAME , P_PASSWORD
Trang 31Chức năng mở cửa thị trường
ˆ CTS_PACK_ORDERS_EXECUTION: Thực thi việc khớp lệnh
Trang 32+ FUNC_GEN_CONFIRMNO ( P_FLOORCODE , P_TRADINGDATE