Chƣơng 3 : Bảo mật với dịch vụ RESTful
4.3 Hệ thống SMSGateway
Hệ thống SMSGateway được viết trong ngôn ngữ java, Java được chọn vì ngôn ngữ java có nhiểu tính năng mà một hệ thống SMSGateway cần phải có như:
Công nghệ Java, có thể hoạt động trên bất kỳ HĐH nào: Windows, Linux,.. Hỗ trợ nhiều loại database: Oracle, SQL Server, MySQL,..
Cơ chế QUEUE, STORE & FORWARD. Tự động điều chỉnh tốc độ gửi tin nhắn
Kết hợp lưu trữ database và file để đảm bảo không bị mất dữ liệu
Tự động phát hiện mất kết nối (với SMSC, database) và tự động kết nối lại. Cơ chế cảnh báo khi có sự cố (mất kết nối với SMSC, lỗi database,..) Hỗ trợ nhiều loại nội dung: text, logo, wap push, bookmark, vcard,.. Giao diện đơn giản, dễ thao tác, phù hợp với việc triển khai ở Việt Nam Hoạt động ổn định 24/24
Tính đến thời điểm này thì hệ thống SMSGateway cung cấp hai API, một cái được sử dụng để giao tiếp giữa máy tính và máy tính, và một cái được dùng để giao tiếp giữa người và máy tính, theo đó cấu trúc của hệ thống gồm có ba tầng chính như trong hình 4.3 và 4.4, tầng lưu trữ dữ liệu, tầng nghiệp vụ chứa hầu hết các nghiệp vụ logic, tầng thứ ba cũng là tầng trên cùng chứa một vài nghiệm vụ logic và API của GUI và XML-RPC. Như đã bàn luận trong phần 1.2 thì nhiều dịch vụ được cung cấp bởi cả hai API và lượng công việc và lượng code sẽ tăng gấp đối nếu tái sử dụng hoặc nâng cấp các dịch vụ trên, hơn nữa mỗi API đều có nhược điểm của nó: nhược điểm của XML-RPC thì như đã nêu ở phần 4.4 và nhược điểm của GUI gồm các điểm sau:
Hình 4.2 Mô hình hệ thống SMSGateway
Hiện tại chỉ cung cấp một kiểu dữ liệu trả về là HTML, mà nên cung cấp thêm các kiểu dữ liệu trả về khác để có thể tạo ra sự giao tiếp tốt nhất cho người dùng chẳng hạn như JSON, XML, v.v…
URI sử dụng hiện tại chưa tường minh cho người dùng và không cung cấp được khả năng nhận biết hệ thống.
CSDL
Tầng nghiệp vụ REST API
Máy chủ
Chức năng cache của giao thức HTTP không được sử dụng do thiết kế API hiện tại và hạn chế khả năng mở rộng các dịnh vụ.
Code GUI trộn lẫn với code mô hình logic nghiệm vụ.