3.1. Bài toán đặt ra.
Kinh doanh chứng khoán là một hoạt động diễn ra khá phổ biến hiện nay, trong một bộ phận xã hội không nhỏ, nhưng công việc giao dịch hiện nay vẫn chủ yếu bằng tiền mặt. Người mua chứng khoán vẫn phải trực tiếp đến các công ty chứng khoán giao dịch và công ty chứng khoán vẫn giữ toàn bộ số tiền của nhà đầu tư. Công việc này làm mất nhiều thời gian công sức, không đảm bảo sự an toàn cho nhà đầu tư và không mang tính chuyên nghiệp. Các doanh nghiệp đang hướng tới một hoạt động kinh doanh chứng khoán mà trong đó tất cả các hoạt động của nhà đầu tư, doanh nghiệp, ngân hàng đều được thực hiện thông qua Internet. Và cũng hiện nay cũng đã có một số hệ thống phần mềm kinh doanh chứng khoán. Tuy hoạt động chưa hiệu quả và vẫn còn gặp phải nhiều khó khăn nhưng điều đó cũng nói nên một nền tài chính không tiền mặt. Những người sử dụng có thể tiết kiệm thời gian, công sức mà vẫn đảm bảo lợi ích về lãi suất, khả năng thanh toán… Tuy nhiên hệ thống thông tin của các công ty chứng khoán và ngân hàng còn quá nhiều khác biệt và chưa kết nối được với nhau. Vấn đề này gây ra nhiều khó khăn và có thể dẫn đến bỏ lỡ cơ hội của nhà đầu tư. Mặt khác công ty chứng khoán phải đảm bảo kết nối với nhiều ngân hàng cùng một lúc vì mỗi nhà đầu tư chọn cho mình một ngân hàng khác nhau. Tương tự ngân hàng cũng muốn kết nối với nhiều công ty chứng khoán để mở rộng mạng lưới của mình. Khi đưa mọi hoạt động giao dịch lên mạng internet, một điều lo ngại đối với nhà đầu tư, công ty chứng khoán hay ngân hàng là các thông tin cá nhân của họ có được bảo mật một cách chặt chẽ và có chắc chắn rằng chúng sẽ không bị tấn công bởi cách hacker… Khi nhà đầu tư mở một tài khoản chứng khoán hoặc tài khoản ngân hàng họ sẽ được cung cấp username/password hay mã chứng khoán, mã ngân hàng. Vấn đề bài toán đặt ra là làm thế nào để nhứng thông tin đó được trao đổi giữa 2 bên một cách an toàn mà không bị tấn công.
Bài toán đặt ra là đưa ra một giải pháp kết nối giữa nhà đầu tư – công ty chứng
khoán – ngân hàng. Các giao dịch được thực hiện trực tiếp trên mạng mà vẫn đảm bảo an toàn cho các bên?
Khi một nhà đầu tư mở tài khoản chứng khoán có thể được cung cấp luôn tài khoản ngân hàng. Dịch vụ của công ty chứng khoán sẽ cung cấp thông tin về tài khoản của nhà đầu tư. Sau khi submit để hoàn thành việc đăng ký, username và password của nhà đầu tư sẽ được gửi đến email đăng ký. Thông tin về tài khoản ngân hàng của nhà đầu tư số dư trong tài khoản cũng được hiển thị.
Khi khách hàng muốn thực hiện một giao dịch, trước tiên cần đăng nhập vào hệ thống. Khách hàng sẽ nhập username/password và submit để gửi đến hệ thống của công ty chứng khoán. Sau khi đăng nhập khách hàng có thể thực hiện giao dịch mua/bán bằng tài khoản chứng khoán và tài khoản ngân hàng của mình, các thông điệp giữa khách hàng – công ty chứng khoán và nhà đầu tư được trao đổi qua lại. Nếu không có phương pháp bảo mật an toàn, các thông điệp này có thể dễ dàng bị đánh cắp bởi những phương pháp tấn công và dẫn đến thiệt hại cho các bên giao dịch. Để đáp ứng được các yêu cầu của bài toán đặt ra, đặc biệt là toàn bộ các giao dịch đều được đảm bảo chính xác, an toàn cho các bên tham gia sẽ không thể không sử dụng tới các kiến thức trong lĩnh vực Công nghệ thông tin. Có rất nhiều công cụ bảo mật cho web service như công nghệ bảo mật SSL và các thành phần của nó, giao thức HTTP, các chứng chỉ số… Trong luận văn này, tôi tập trung đi sâu vào nghiên cứu bảo mật web service theo công nghệ SSL, giao thức HTTP và đặc biệt là sử dụng bộ thư viện Web Service Enhencement (WSE) của .NET Framework Microsoft. Web services giao tiếp thông qua các message SOAP. WSE cung cấp những mở rộng của giao thức SOAP và cho phép người dùng tự định nghĩa bảo mật, truyền message đáng tin cậy, chính sách... Các nhà phát triển có thể thêm vào những kỹ thuật này trong quá trình xây dựng (dùng code) hoặc trong quá trình triển khai (policy file).
3.2. Mô tả hệ thống cần xây dựng
Hệ thống nghiên cứu và xây dựng bao gồm các chức năng chính: đăng nhập, đăng kí tài khoản, mua cổ phiếu, bán cổ phiếu. Dưới đây là biểu đồ hoạt động của hệ thống.
Hình 3.19. Biểu đồ hoạt động của hệ thống 3.3. Triển khai hệ thống
3.3.1. Lựa chọn ngôn ngữ lập trình
Để xây dựng xây dựng một hệ thống hoàn chỉnh thực hiện đầy đủ các chức năng yêu cầu đặt ra đòi hỏi phải có một thời gian dài. Trong thời gian qua tôi đã tiến hành nghiên cứu và sử dụng lại hệ thống chứng khoán đã bước đầu đạt được những kết quả và xây dựng xong một số chức năng cơ bản mà hệ thống đặt ra và chạy thử.
3.3.2. Hoạt động của hệ thống 3.3.2.1. Hiển thị thông tin trang chủ
Hiển thị bảng giá chứng khoán, khi chưa đăng nhập cho phép xem thông tin bảng giá và chuyển sang giao diện đăng nhập hoặc đăng ký.
Hình 3.20. Giao diện trang chủ 3.3.2.2. Đăng nhập
Thời điểm: Trước khi giao dịch
Mô tả: Trước khi thực hiện giao dịch nhà đầu tư cần đăng nhập vào tài khoản của mình (nếu nhà đầu tư chưa có một tài khoản có thể đăng ký một tài khoản mới theo phần đăng ký) để xác thực thông tin, sau khi đăng nhập các thông tin chi tiết của nhà đầu tư sẽ được hiển thị.
Hình 3.21. Giao diện đăng nhập 3.3.2.3. Đăng ký tài khoản mới
Thời điểm: Trước khi giao dịch
Mô tả: Để có thể thực hiện giao dịch trước tiên nhà đầu tư phải đăng kí tài khoản chứng khoán và tài khoản ngân hàng nhà đầu tư cung cấp các thông tin cá nhân cần thiết cho công ty chứng khoán để tạo tài khoản. Nếu thông tin đầy đủ
và chính xác thì hệ thống sẽ thông báo đăng ký tài khoản thành công, ngược lại sẽ báo lỗi tương ứng. Sau khi đăng ký tài khoản người dùng có thể đăng nhập và thực hiện giao dịch cổ phiếu bằng cách cung cấp các thông tin cá nhân.
Hình 3.22. Giao diện đăng ký 3.3.3.4. Thực hiện giao dịch
Thời điểm: Sau khi đăng nhập
Mô tả: Sau khi đăng nhập, nhà đầu tư có thể thực hiện việc mua bán bằng tài khoản của mình thông qua website.
- Bán: nhà đầu tư chỉ có thể thực hiện lệnh bán đối với những cổ phiếu có trong tài khoản, số lượng cổ phiếu bán ra không được vượt quá số lượng cổ phiếu đó có trong tài khoản. Số tiền có được khi bán cổ phiếu sẽ được đưa vào tài khoản ngân hàng tương ứng của nhà đầu tư.
- Mua: nếu cổ phiếu mà nhà đầu tư mua đã có trong tài khoản thì cổ phiếu đó sẽ được cập nhật lại, nếu chưa có thì cổ phiếu đó sẽ được thêm vào tài khoản của nhà đầu tư. Số tiền dùng để mua cổ phiếu sẽ được trừ vào tài khoản trong ngân hàng tương ứng của nhà đầu tư. Nếu tổng giá trị của số lượng cổ