Bối cảnh và vấn đề nghiên cứu

Thị trường chứng khoán (TTCK) đóng vai trò là kênh dẫn vốn trung và dài hạn quan trọng cho nền kinh tế thị trường, tạo động lực phát triển cho doanh nghiệp thông qua phát hành cổ phiếu và mang lại cơ hội sinh lời cho nhà đầu tư. Tại Việt Nam, từ sau năm 2001, TTCK từng bước hình thành và tăng trưởng mạnh mẽ, kéo theo nhu cầu cấp thiết về việc cung cấp, quản lý và phân phối thông tin tài chính - chứng khoán một cách tập trung, nhanh chóng và chuẩn xác. Các chủ thể tham gia thị trường như nhà đầu tư cá nhân, quỹ đầu tư, công ty chứng khoán và các định chế tài chính đều cần một hệ thống thông tin tích hợp để theo dõi diễn biến thị trường, tra cứu hồ sơ doanh nghiệp niêm yết và hỗ trợ ra quyết định đầu tư.

Trước thực tế đó, tác giả Trần Hữu Tuyến (ngành Công nghệ phần mềm, Khoa Công nghệ thông tin – Trường Đại học Bách khoa Hà Nội) đã thực hiện đồ án tốt nghiệp với đề tài "Xây dựng Web thông tin chứng khoán trên nền Hệ quản trị nội dung CMS SiteFinity" dưới sự hướng dẫn của ThS. Lê Tấn Hùng (tháng 06/2008).

Căn cứ theo phiếu giao nhiệm vụ đồ án tốt nghiệp, các nhiệm vụ nghiên cứu và phát triển cụ thể bao gồm:

  1. Nghiên cứu hệ thống, khảo sát và phân tích tính năng của một hệ thống Web thông tin chứng khoán điển hình.
  2. Tìm hiểu hệ quản trị nội dung CMS SiteFinity: đặc điểm cấu trúc, cơ chế vận hành, phương pháp xây dựng Website/Portal và quy trình phát triển các module chức năng mở rộng.
  3. Phân tích yêu cầu chức năng, yêu cầu phi chức năng và thiết kế cơ sở dữ liệu vận hành hệ thống.
  4. Lập trình hiện thực hóa các module hoàn chỉnh, trọng tâm là module CompanyInfo (Thông tin công ty) và BalanceSheet (Báo cáo tài chính, bảng cân đối kế toán).
  5. Báo cáo tiến độ theo từng giai đoạn công việc.
  6. Tổng hợp kết quả và biên soạn tài liệu thuyết minh đồ án.

Đối tượng nghiên cứu của đề tài là nền tảng CMS SiteFinity (phiên bản 3.1) của hãng Telerik, hệ cơ sở dữ liệu trung gian Nolics.net 2005 và quy trình xây dựng ứng dụng web tài chính. Phạm vi nghiên cứu tập trung vào việc quản trị nội dung thông tin doanh nghiệp và số liệu giao dịch chứng khoán trên hai sàn giao dịch tại Việt Nam thời điểm 2007–2008 (sàn HOSTC - Trung tâm Giao dịch Chứng khoán TP.HCM và HASTC - Trung tâm Giao dịch Chứng khoán Hà Nội).


Cơ sở lý thuyết và phương pháp tiếp cận

Đồ án xây dựng giải pháp dựa trên nền tảng kỹ thuật công nghệ thông tin chuyên sâu kết hợp với nghiệp vụ quản trị nội dung web:

  • Nền tảng Microsoft .NET và ASP.NET 2.0: Được lựa chọn nhờ thư viện lớp phong phú (trên 5.000 lớp sẵn có), khả năng tách biệt hoàn toàn giữa mã xử lý (code-behind) và giao diện người dùng (UI), cơ chế lưu bộ đệm (cache) giúp nâng cao hiệu suất máy chủ gấp 5 lần so với công nghệ ASP truyền thống, đồng thời tiết kiệm 70% thời gian xây dựng nhờ hỗ trợ kéo thả điều khiển trong môi trường Visual Studio 2005. Đồ án ứng dụng kỹ thuật Web 2.0 AJAX để cập nhật dữ liệu từng phần trên trang mà không cần tải lại toàn bộ giao diện.
  • Hệ quản trị nội dung Telerik SiteFinity 3.1: Hoạt động trên nền ASP.NET và C#, cung cấp môi trường soạn thảo trực quan WYSIWYG, hệ thống xác thực và phân quyền (User Management, Admin), cùng cơ chế cho phép lập trình mở rộng các module linh hoạt. Hệ thống sử dụng bộ điều khiển giao diện RadControls (RadAjax, RadGrid, RadChart, RadMenu, RadTreeView, RadEditor, RadPanelBar, RadTabStrip...).
  • Cơ chế quản lý dữ liệu Nolics.net 2005: Hoạt động như một tầng ánh xạ đối tượng - quan hệ (Object-Relational Mapping Layer - ORML) nhúng sẵn trong SiteFinity. Nolics.net sử dụng ngôn ngữ đặc tả miền (Domain Specific Language - DSL) để sinh mã tự động cho các lớp dữ liệu lâu dài (persistent classes), tích hợp SQL Rule Engine để đồng bộ cấu trúc lớp với cơ sở dữ liệu quan hệ (MS SQL Server 2000/2005) và hỗ trợ công cụ nâng cấp lược đồ tự động (UpgradeTool).

Phương pháp nghiên cứu thực tế được tác giả triển khai bao gồm:

  • Phương pháp phân tích và mô hình hóa hệ thống: Phân tích nhu cầu thực tế của người dùng đối với các cổng thông tin chứng khoán (như Bloomberg, Saigon Times, các sàn giao dịch), mô hình hóa kiến trúc dữ liệu và phân rã các khối chức năng.
  • Phương pháp thiết kế hướng đối tượng: Xây dựng các lớp mở rộng kế thừa từ lớp cơ sở của SiteFinity (Telerik.WebModule, Telerik.ControlPanelBase, Telerik.IControlPanel).
  • Nguồn dữ liệu: Cấu trúc dữ liệu chỉ số tài chính, hồ sơ công ty niêm yết, báo cáo tài chính và dữ liệu giao dịch mẫu từ thị trường chứng khoán Việt Nam (điển hình là dữ liệu các mã chứng khoán như ACB, ACL năm 2007 - 2008).

Thiết kế và triển khai hệ thống

1. Yêu cầu kỹ thuật phần cứng và phần mềm

Thành phần Yêu cầu kỹ thuật xác định trong văn bản
Phần cứng máy chủ (Server) CPU tốc độ 2.4 GHz trở lên; Dung lượng RAM tối thiểu 2 GB; Máy chủ Web chạy Windows Server 2003 Enterprise; Mail Server quản lý gửi/nhận email; Database Server đảm bảo năng lực đáp ứng khoảng 10.000 kết nối đồng thời.
Phần cứng máy khách (Client) Hệ thống máy trạm (quy mô thử nghiệm 20 máy tính) có kết nối mạng Internet.
Phần mềm máy chủ Hệ điều hành Windows XP SP2 hoặc Windows Server; Nền tảng .NET Framework 2.0 trở lên; Máy chủ dịch vụ IIS 6.0 (đã đăng ký ASP.NET); Hệ quản trị cơ sở dữ liệu MS SQL Server 2000 hoặc SQL Server 2005; Nền tảng CMS SiteFinity 3.1.

2. Kiến trúc module và luồng xử lý Nolics.net

Hệ thống được tổ chức thành các module theo hai dạng kiến trúc:

  • Intra-Site Modules: Tập hợp các User Controls (.ascx) và các lớp nghiệp vụ trong thư mục App_Code, được nạp tự động vào hệ thống thông qua việc kế thừa lớp Telerik.WebModule.
  • Pluggable Modules: Đóng gói thành các tập tin thư viện liên kết động (.dll), kết hợp các giao diện quản trị CommandPanel và ControlPanel để cấu hình nghiệp vụ.

Quy trình truy xuất và đồng bộ dữ liệu qua Nolics.net được thực thi qua 3 pha nối tiếp:

  1. Pha 1 - Xây dựng ứng dụng: Trình sinh mã (Code Generator) chuyển đổi các định nghĩa DSL thành các lớp C# và cấu hình quy tắc ánh xạ SQL thông qua SQL Rule Engine.
  2. Pha 2 - Khởi tạo ứng dụng: Khởi tạo kết nối thông qua DataConnection.Initialize, đọc tập tin cấu hình web.config, thiết lập đối tượng ObjectDataProvider và đăng ký các assemblies.
  3. Pha 3 - Vận hành và thực thi giao dịch: Tạo đối tượng giao dịch (Transaction), ánh xạ trạng thái đối tượng sang bộ nhớ đệm (Cache), thực thi truy vấn thông qua các Query Objects liên kết trực tiếp với điều khiển hiển thị trên giao diện (sử dụng thuộc tính WebBinder=true). Quá trình thay đổi cấu trúc bảng được kiểm soát qua giao diện IodbEventLoaded và thuộc tính SchemaVersion.

3. Thiết kế cơ sở dữ liệu

Cơ sở dữ liệu của hệ thống được tổ chức thành các bảng chuyên biệt nhằm lưu trữ toàn diện thông tin doanh nghiệp và số liệu thị trường:

Tên bảng CSDL Mục đích và nội dung lưu trữ
CI_Company Danh mục thông tin chung của công ty niêm yết (Mã CK, tên công ty, sàn giao dịch).
CI_CompanyInfo Thông tin chi tiết, lĩnh vực hoạt động, tóm tắt hồ sơ doanh nghiệp.
CI_Leader Danh sách ban lãnh đạo, chức vụ và thông tin quản trị.
CI_AuthorityShareholder Danh sách cổ đông có thẩm quyền, cổ đông sáng lập.
CI_OwnershipStructure Dữ liệu về cơ cấu sở hữu vốn (nhà nước, nước ngoài, cổ đông khác).
CI_MajorHolder Thông tin chi tiết các cổ đông lớn nắm giữ tỷ lệ cổ phần trọng yếu.
CI_InsiderTransaction Nhật ký các giao dịch nội bộ của ban lãnh đạo và người có liên quan.
CI_PublishFinancial Dữ liệu công bố thông tin, bản cáo bạch định kỳ.
CI_BalanceSheet Danh mục chuẩn các chỉ tiêu trong bảng cân đối kế toán.
CI_BalanceSheet_Company Dữ liệu số liệu bảng cân đối kế toán chi tiết theo từng công ty và kỳ báo cáo (quý/năm).
CI_IncomeStatement Danh mục chuẩn các chỉ tiêu báo cáo kết quả hoạt động kinh doanh.
CI_IncomeStatement_Company Số liệu báo cáo kết quả kinh doanh chi tiết của từng doanh nghiệp theo kỳ.
STS_Market_info Dữ liệu thống kê giao dịch thị trường (giá mở cửa, đóng cửa, cao nhất, thấp nhất, khối lượng, giá trị giao dịch).

Nội dung chính theo từng chương

Chương 1 : Giới thiệu Web thông tin chứng khoán và quá trình phát triển

Chương này tổng thuật về vai trò của thị trường chứng khoán và nhu cầu tất yếu trong việc ứng dụng công nghệ thông tin để phân phối dữ liệu tài chính. Tác giả phân tích tình hình triển khai hệ thống thông tin chứng khoán trên phạm vi thế giới (các dịch vụ quy mô lớn tích hợp sàn giao dịch) và thực tiễn tại Việt Nam từ năm 2001 trở lại đây. Chương 1 đưa ra các luận cứ kỹ thuật để lựa chọn nền tảng ASP.NET 2.0 và công nghệ AJAX, chỉ rõ các lợi thế về hiệu năng xử lý bộ nhớ đệm, tính năng tách biệt tầng giao diện UI/mã nguồn và khả năng tăng tốc độ phát triển hệ thống so với PHP, JSP hay ASP 1.1.

Chương 2 : Hệ quản trị nội dung CMS SiteFinity và Cơ sở dữ liệu Nolics

Chương 2 trình bày chi tiết kiến trúc phần mềm của CMS SiteFinity 3.1 và tầng cơ sở dữ liệu Nolics.net. Nội dung làm rõ cấu trúc dự án (các thư mục App_Data, App_Master, App_Themes, Bin, RadControls), các khái niệm điều hướng, cơ chế gắn kết Master Page, Page Templates và bộ điều khiển giao diện RadControls. Tác giả phân tích sâu phương pháp xây dựng module mở rộng (Intra-Site Modules và Pluggable Modules) qua ví dụ thực nghiệm module Jobs và module Contacts. Đồng thời, chương này giải thích chi tiết nguyên lý vận hành 3 pha của Nolics.net, cơ chế ánh xạ ORM thông qua ngôn ngữ DSL, cùng công cụ đồng bộ lược đồ dữ liệu tự động UpgradeTool.

Chương 3 : Phân tích hệ thống Web thông tin chứng khoán. Yêu cầu chức năng. Mô Hình và thiết kế CSDL

Chương 3 tiến hành khảo sát và diễn tả chi tiết 4 khối chức năng chính của hệ thống web chứng khoán:

  1. Khối thông tin công ty: Chức năng tổng quan (Snapshot), hồ sơ công ty (Profile), báo cáo tài chính/bảng cân đối kế toán (BalanceSheet), biểu đồ kỹ thuật cơ bản (BasicChartForSymbol) và truy vấn giá lịch sử (HistoricalPriceForSymbol).
  2. Khối thông tin thị trường (MarketNews): Tìm kiếm và chọn mã chứng khoán theo ngành/sàn, lịch biểu sự kiện (EventCalendar), thống kê giao dịch hàng ngày trên hai sàn HOSTC và HASTC (Trading Statistics), lịch sử giá (HistoricalPrice) và theo dõi giao dịch của khối nhà đầu tư nước ngoài (ForeignTrading).
  3. Khối quản trị người dùng: Phân quyền truy cập cho quản trị viên và người dùng cuối.
  4. Khối giao dịch trực tuyến (OnlineBrokerage): Mô tả kết nối giao dịch định hướng tích hợp.

Chương này cũng xác định toàn bộ lược đồ cơ sở dữ liệu chi tiết gồm 13 bảng dữ liệu quan hệ (CI_Company, CI_BalanceSheet_Company, STS_Market_info...) và thiết lập các mối quan hệ ràng buộc khóa chính - khóa ngoại.

Chương 4 : Lập trình hai Modules CompanyInfo và BalanceSheet. Giao diện Website và các Module sử dụng

Chương 4 tập trung vào kết quả lập trình chi tiết hai module nghiệp vụ cốt lõi:

  • Module CompanyInfo: Xây dựng giao diện danh mục công ty theo bảng chữ cái ABC, bộ lọc phân cấp theo mã ngành và mã chứng khoán; thiết kế form nhập liệu và quản lý các thông số tài chính, ban lãnh đạo, cơ cấu sở hữu.
  • Module BalanceSheet: Xây dựng hệ thống nhập liệu và tổng hợp báo cáo tài chính, bảng cân đối kế toán và kết quả kinh doanh theo từng quý của các doanh nghiệp niêm yết.

Chương 5 : Tổng kết, đánh giá và phương hướng phát triển

Chương 5 tổng kết lại toàn bộ kết quả đạt được của đồ án trong việc làm chủ công nghệ CMS SiteFinity và Nolics.net; chỉ ra các ưu điểm về tính module hóa, giao diện tùy biến linh hoạt và tính nhất quán dữ liệu; đồng thời thẳng thắn đánh giá các mặt còn hạn chế để đề xuất hướng phát triển tiếp theo cho hệ thống.


Kết quả và đóng góp

1. Kết quả kỹ thuật và chức năng đạt được

Đồ án đã thiết kế và triển khai thành công một cổng thông tin chứng khoán tích hợp trên nền SiteFinity CMS 3.1 với các chức năng cụ thể:

  • Xây dựng hoàn chỉnh giao diện hiển thị các chỉ số tài chính cơ bản của doanh nghiệp niêm yết trên bảng thông tin tổng quan (Snapshot) và hồ sơ (Profile). Ví dụ dữ liệu thực nghiệm hiển thị cho cổ phiếu ACB (Ngân hàng TMCP Á Châu - sàn HASTC):
Chỉ số tài chính / Dữ liệu Giá trị hiển thị thực nghiệm trong hệ thống
Giá đóng cửa / Biến động 62.800 VNĐ (-1.33% hoặc -2.99% theo phiên)
Thu nhập trên mỗi cổ phần (EPS) 6.656 VNĐ
Hệ số giá trên thu nhập (P/E) 9.40
Tỷ suất sinh lời trên vốn CSH (ROE) 45.00%
Hệ số Beta 1.29
Vốn hóa thị trường 16.412 tỷ VNĐ
Số lượng cổ phiếu lưu hành 263.005.996 cổ phiếu
Khối lượng giao dịch trung bình 143.410 cổ phiếu
Khoảng giá 52 tuần Thấp nhất 62.400 VNĐ - Cao nhất 190.000 VNĐ
Thông tin cổ tức Tỷ lệ 200 (2.37%), ngày chốt quyền 12/01/2007, ngày trả 30/01/2007
  • Hoàn thiện bộ lọc tìm kiếm mã chứng khoán theo phân ngành và sàn giao dịch (như mã ACB thuộc nhóm Ngân hàng - HASTC; mã ACL thuộc Công ty CP Xuất Nhập Khẩu Thủy Sản Cửu Long An Giang, nhóm Thực phẩm & Đồ uống - HOSTC).
  • Xây dựng module nhập và kết xuất báo cáo tài chính cân đối kế toán đa kỳ theo mẫu chuẩn quy định.

2. Đóng góp của đề tài

  • Hệ thống hóa toàn bộ phương pháp luận và kỹ thuật mở rộng module trên nền tảng thương mại Telerik SiteFinity và tầng ORM Nolics.net tại thời điểm công nghệ còn tương đối mới mẻ ở Việt Nam.
  • Cung cấp một bản thiết kế cơ sở dữ liệu chi tiết, chuẩn hóa cho nghiệp vụ quản lý thông tin chứng khoán và báo cáo tài chính doanh nghiệp niêm yết.

Hạn chế và hướng nghiên cứu tiếp

  • Hạn chế: Hệ thống mới dừng lại ở mức hoàn thiện và thử nghiệm chuyên sâu hai module nghiệp vụ chính là CompanyInfo và BalanceSheet. Khối chức năng giao dịch trực tuyến (OnlineBrokerage) và các liên kết sàn chuyên sâu mới được khảo sát, mô hình hóa ở mức độ kiến trúc cơ bản mà chưa tích hợp luồng xử lý khớp lệnh thời gian thực hoàn chỉnh.
  • Hướng nghiên cứu tiếp:
    • Tiếp tục phát triển và hoàn thiện các module chức năng còn lại theo mô hình thiết kế (nâng cao tính năng biểu đồ phân tích kỹ thuật BasicChartForSymbol, tự động hóa nạp dữ liệu giao dịch trực tiếp từ sàn).
    • Nghiên cứu tối ưu hóa hiệu năng tầng Nolics.net và nâng cấp các phiên bản CMS SiteFinity mới hơn nhằm phục vụ triển khai diện rộng cho các tổ chức tài chính.

Giá trị tham khảo

Đồ án là tài liệu tham khảo hữu ích cho:

  • Sinh viên ngành Công nghệ phần mềm và Hệ thống thông tin: Tham khảo phương pháp phân tích thiết kế hệ thống thông tin quản lý, kỹ thuật xây dựng ứng dụng web phân tầng trên nền .NET Framework và ASP.NET 2.0.
  • Lập trình viên nghiên cứu về CMS và ORM: Tham khảo cơ chế viết Custom Module, Intra-Site Module, tích hợp bộ điều khiển RadControls trên SiteFinity 3.1 và cơ chế đồng bộ dữ liệu bằng Nolics.net.
  • Các đề tài về cổng thông tin tài chính - chứng khoán: Tham khảo mô hình phân rã chức năng và cấu trúc 13 bảng cơ sở dữ liệu chuẩn cho dữ liệu chứng khoán, chỉ số tài chính và bảng cân đối kế toán.

Câu hỏi thường gặp

1. Đồ án sử dụng phiên bản CMS SiteFinity nào và công nghệ cơ sở là gì?

Hệ thống sử dụng CMS SiteFinity phiên bản 3.1 do hãng Telerik phát triển, hoạt động trên nền tảng Microsoft .NET Framework (ASP.NET 2.0, C#), kết hợp bộ điều khiển giao diện RadControls và hệ quản trị cơ sở dữ liệu MS SQL Server thông qua tầng trung gian Nolics.net 2005.

2. Nolics.net đóng vai trò gì trong kiến trúc của hệ thống?

Nolics.net hoạt động như một tầng ánh xạ đối tượng - quan hệ (Object-Relational Mapping Layer - ORML) tập trung đối tượng. Nó sử dụng ngôn ngữ đặc tả DSL để sinh mã tự động cho các lớp dữ liệu lâu dài, phối hợp với SQL Rule Engine để chuyển đổi các thao tác đối tượng thành câu lệnh SQL cập nhật cơ sở dữ liệu và tự động nâng cấp cấu trúc bảng qua UpgradeTool.

3. Hệ thống phân chia thành những khối chức năng chính nào?

Hệ thống được phân tích thành 4 khối chức năng chính: (1) Khối thông tin công ty (Snapshot, Profile, BalanceSheet, BasicChartForSymbol, HistoricalPriceForSymbol); (2) Khối thông tin thị trường (MarketNews, Tìm mã CK, EventCalendar, Trading Statistics, HistoricalPrice, ForeignTrading); (3) Khối quản trị người sử dụng; (4) Khối giao dịch trực tuyến (OnlineBrokerage).

4. Hai module nào đã được tác giả trực tiếp lập trình hoàn chỉnh trong đồ án?

Hai module cốt lõi được tập trung lập trình và hiện thực hóa giao diện trong Chương 4 là CompanyInfo (quản lý, phân loại danh mục, thông số tài chính và hồ sơ công ty) và BalanceSheet (nhập liệu và hiển thị báo cáo tài chính, bảng cân đối kế toán theo từng quý).

5. Yêu cầu cấu hình phần cứng tối thiểu cho máy chủ hệ thống được quy định như thế nào?

Máy chủ Web Server yêu cầu cấu hình tối thiểu CPU 2.4 GHz trở lên, RAM từ 2 GB trở lên, chạy hệ điều hành Windows Server 2003 Enterprise; Database Server phải có năng lực xử lý đồng thời khoảng 10.000 kết nối.


Kết luận

Đồ án tốt nghiệp của tác giả Trần Hữu Tuyến đã giải quyết bài toán xây dựng cổng thông tin chứng khoán trực tuyến thông qua việc kết hợp nền tảng quản trị nội dung Telerik SiteFinity 3.1 và cơ chế quản lý dữ liệu Nolics.net trên nền ASP.NET 2.0. Nghiên cứu đã phân tích toàn diện các yêu cầu nghiệp vụ của thị trường chứng khoán Việt Nam (HOSTC và HASTC), thiết kế lược đồ cơ sở dữ liệu chuẩn gồm 13 bảng và hiện thực hóa thành công hai module nòng cốt là CompanyInfo và BalanceSheet. Kết quả của đồ án thể hiện tính khả thi cao trong việc ứng dụng các giải pháp CMS thương mại để phát triển nhanh các hệ thống cổng thông tin nghiệp vụ chuyên ngành.