CHƯƠNG 3: HIỆN TRẠNG, KIẾN TRÚC TRIỂN KHAI VÀ MÔ HÌNH HOẠT ĐỘNG
3.3 Kiến trúc triển khai
3.3.1 Khối chức năng “Quản lý, điều hành các dịch vụ đồng hành”
Khối chức năng “Quản lý, điều hành các dịch vụ đồng hành” đại diện cho giao thức kết nối để sử dụng các dịch vụ đồng hành hay dịch vụ Web (Web Services) thông qua giao diện lập trình ứng dụng (API - Application Programming Interface), trao đổi dữ liệu tương tác liên quan đến nội dung chương trình. Phân hệ Quản lý API (API Management) được đề cập đến ở tài liệu [4], là quá trình xuất bản, thúc đẩy và giám sát giao diện lập trình ứng dụng (API) trong một môi trường an toàn và có khả năng mở rộng. Mục tiêu của phân hệ Quản lý API là cho phép một tổ chức xuất bản một API để theo dõi vòng đời của giao diện và đảm bảo nhu cầu của các nhà phát triển và ứng dụng đang sử
dụng API. Phần mềm quản lý API có thể tự phát triển hay thuê dịch vụ từ một nhà cung cấp bên thứ ba nhƣ Mashery Inc., Apigee Corp hoặc SOA Software Inc. Công cụ phần mềm quản lý API thường cung cấp các chức năng sau:
- Tự động hóa và điều khiển các kết nối giữa một API và các ứng dụng sử dụng API đó.
- Đảm bảo sự thống nhất giữa nhiều API triển khai đồng thời và các phiên bản của cùng một API.
- Giám sát lưu lượng truy cập từ các ứng dụng cụ thể.
- Cung cấp phương thức quản lý bộ nhớ và các cơ chế bộ nhớ đệm.
- Bảo vệ API khỏi việc sử dụng sai mục đích bằng cách áp đặt các thủ tục và chính sách bảo mật.
Đối với ứng dụng gốc cài đặt trên các thiết bị đồng hành, chúng tôi tiến hành xây dựng và phát triển native app (ứng dụng đƣợc thiết kế đặc biệt chỉ chạy trên một hệ điều hành của một thiết bị nào đó và thường phải điều chỉnh để chạy đƣợc trên các thiết bị khác nhau) trên các nền tảng di động phổ biến hiện nay (iOS, Android, Windows Phone, v.v…). Kiến trúc khai triển của khối chức năng “Quản lý, điều hành các dịch vụ đồng hành” đƣợc minh họa ở Hình 3.3.
Hình 3.3: Khối chức năng “Quản lý, điều hành các dịch vụ đồng hành”
Dịch vụ Web sử dụng Web Service (ASMX), dựa trên SOAP (Simple Object Access Protocol), dữ liệu trả về dạng XML, sử dụng đƣợc với bất kỳ client nào hỗ trợ XML, host trên IIS. Quy trình xây dựng dịch vụ Web đƣợc trình bày đầy đủ ở bộ tài liệu [7, 10, 11, 12]:
- Bước 1: Định nghĩa và xây dựng các chức năng, các dịch vụ mà dịch vụ Web sẽ cung cấp
o tiếp nhận kết quả bình chọn đƣợc gửi từ khán giả - Bước 2: Tạo WSDL cho dịch vụ
- Bước 3: Xây dựng SOAP Server
- Bước 4: Đăng ký WSDL với UDDI Registry để cho phép các máy trạm (client), ở đây là ứng dụng cài đặt trên các thiết bị đồng hành, có thể tìm thấy và truy xuất.
- Bước 5: Máy trạm nhận File WSDL và từ đó xây dựng SOAP Client để có thể kết nối với SOAP Server.
- Bước 6: Xây dựng ứng dụng phía Client, trong trường hợp này là ứng dụng gốc – iOS, Android, v.v…, sau đó gọi thực hiện dịch vụ thông qua việc kết nối tới SOAP Server.
Ứng dụng gốc dùng thƣ viện mã nguồn mở kSOAP2-Android để kết nối SOAP Client và SOAP Server. kSOAP là một thƣ viện mở cho các dịch vụ Web sử dụng giao thức SOAP trong môi trường Java như Applet hay ứng dụng J2ME. kSOAP2 đƣợc thiết kế lại hoàn toàn dựa trên phiên bản đầu tiên kSOAP1.x. kSOAP2-Android là một nhánh trong thƣ viện kSOAP2 đƣợc thêm vào để hỗ trợ cho nền tảng Android. Tùy vào việc khán giả sử dụng chức năng nào của ứng dụng, ứng dụng sẽ yêu cầu máy chủ trả về dữ liệu theo nhiều định dạng khác nhau, tuy nhiên các bước cơ bản sử dụng kSOAP2-Android để gửi yêu cầu và nhận phản hồi từ máy chủ thì tương tự nhau:
- Trước hết phải tạo 1 class phía máy chủ dịch vụ Web (thiết lập thuộc tính Serializable) và 1 class phía ứng dụng Android (thực thi (implements) giao diện KvmSerializable) có tập thuộc tính giống nhau, làm nhiệm vụ ánh xạ thông tin giữa máy chủ dịch vụ Web và ứng dụng Android.
- Tạo bộ điều khiển class phía máy chủ dịch vụ Web và thêm mới phương thức (method) tương ứng
- Phía ứng dụng Android:
o Khởi tạo một SoapObject để gửi yêu cầu cho máy chủ với NAMESPACE và METHOD_NAME tùy theo yêu cầu.
o Tùy theo từng phương thức khác nhau mà tham số cần truyền vào khác nhau bằng hàm addProperty có sẵn của đối tƣợng SoapObject.
o Thiết lập Soap Envelope là thông điệp SOAP dùng để trao đổi giữa các ứng dụng và gửi tới máy chủ dịch vụ Web.
o Xử lý kết quả phản hồi từ máy chủ, lọc lấy thông tin cần thiết.