Nhìn chung, mụ hình cài đặt các thành phần trong dịch vụ 4ECloud dựa trên mô hình của các thành phần đã đề cập trong phần thiết kế.
Danh sách bài kiểm tra đã làm
Ngày 01/01/2011 Trình độ B Kết quả 20/30 Ngày 02/01/2011 Trình độ C Kết quả 30/30
Quá trình cài đặt các thành phần trong dịch vụ 4ECloud vấp phải khá nhiều vấn đề. Một phần do thời gian tiếp cận công nghệ chưa đủ dài, để có thể kiểm soát được mọi lỗi phát sinh. Một phần khác là do bản thân vấn đề giao tiếp giữa các nền tảng. Mặc dù giao dịch giữa các thành phần trong dịch vụ đều sử dụng các giao thức đã chuẩn hóa, tuy nhiên vẫn bị hạn chế nhiều mặt.
Trong dịch vụ 4ECloud, công nghệ dịch vụ web được lựa chọn để thực thi kiến trúc hướng dịch vụ. Vì vậy, dịch vụ web đóng vai trò quan trọng trong việc tạo kênh giao tiếp thông suốt giữa các thành phần trong dịch vụ 4ECloud.
Phần trình bày dưới đây tập trung vào cỏc cụng cụ dịch vụ web được sử dụng để tháo gỡ những khó khăn kể trên.
.V.1. Thành phần dịch vụ web
Nội dung trỡnh bày trong phần này bao gồm mô hình cài đặt, thư viện WebServiceServlet[13] và các hàm chức năng chính của phần dịch vụ web.
.V.1.1. Mô hình cài đặt
Mô hình cài đặt theo hình 4 trong phần thiết kế, mô tả mô hình chung của thành phần dịch vụ web.
.V.1.2. Thư viện WebServiceServlet
Tại thời điểm thực hiện đề tài, nền tảng đám mây Google App Engine chưa hỗ trợ các thư viện Java phục vụ dịch vụ web, như javax.jws.*[10] . Dịch vụ 4ECloud lựa chọn sử dụng thư viện mã nguồn mở WebServiceServlet[13] để xây dựng thành phần dịch vụ web. Đây là dự án đi tiên phong trong việc xây dựng công cụ hỗ trợ nhà phát triển triển khai dịch vụ web trên GAE. Trang chủ dự án WebServiceServlet đặt tại địa chỉ: http://code.google.com/p/webserviceservlet/; cung cấp đầy đủ các tài liệu hướng dẫn sử dụng thư viện. Nội dung phần này chỉ nhằm tóm tắt lại những chú ý khi sử dụng thư viện WebServiceServlet.
Trong lõi của thư viện WebServiceServlet, có một lớp (class) WebServiceServlet, làm nhiệm vụ đón nhận cỏc yờu cầu (request[13]) thông qua giao thức HTTP/ HTTPS[13]. Class này thực hiện phân tích các request, sau đó chuyển hướng tới các class chịu trách nhiệm xử lý nghiệp vụ. Nhiệm vụ của thành phần dịch vụ web trong 4ECloud là xây dựng các class xử lý nghiệp vụ đú. Cỏc class này gồm cú cỏc hàm chức năng tuân theo giao diện chuẩn đã định nghĩa.
Có một điểm lưu ý đối với các kiểu dữ liệu tự định nghĩa (ví dụ các class entity định nghĩa dữ liệu trong thành phần dịch vụ web). Để các ứng dụng khách hàng có thể gửi/nhận các đối tượng dữ liệu phức tạp, thỡ phía dịch vụ web phải cung cấp một file cấu trúc (schema) dạng XML, trong đó định nghĩa cấu trỳc cỏc kiểu dữ liệu sử dụng cho các lời gọi dịch vụ. File cấu trúc này đóng vai trò quan trọng, trong việc giúp ứng dụng sử dụng dịch vụ web hiểu được loại đối tượng dữ liệu nào đang gửi
đi và loại nào được dịch vụ web trả lại. Ngoài ra, file cấu trúc này được tạo ra bằng cách sử dụng tiện ích schemagen được Java Development Kit(JDK[10]) cung cấp, trong thư mục cài đặt JDK. Mỗi khi có sự thay đổi trong định nghĩa các class entity (ví dụ thờm/bớt/chỉnh sửa các thuộc tính), thì đều cần thực hiện thao tác tạo lại file cấu trúc và cập nhật lên thành phần dịch vụ web.
.V.1.3. Các hàm chức năng chính của thành phần dịch vụ web
Bảng 14 dưới đây liệt kê chi tiết các hàm chính của thành phần dịch vụ web
Bảng 14. Các hàm chính của dịch vụ web
Tên hàm Tham số Kết quả Chức năng Chức năng quản trị
addLesson Lesson Boolean Thêm 1 bài học ngữ pháp addLessonType LessonType Boolean Thêm 1 nhóm bài học addQuestion Question Boolean Thêm 1 câu hỏi addTest Test Boolean Thêm 1 bài kiểm tra addWord Word Boolean Thêm 1 từ
addWordGroup WordGroup Boolean Thêm 1 bộ từ vựng addUser User Boolean Thêm 1 tài khoản deleteLesson Long Boolean Xóa 1 bài học ngữ pháp deleteLessonType Long Boolean Xóa 1 nhóm bài học ngữ
pháp
deleteQuestion Long Boolean Xóa 1 câu hỏi deleteTest Long Boolean Xóa 1 bài kiểm tra deleteUser Long Boolean Xóa 1 tài khoản deleteWord Long Boolean Xóa 1 từ
deleteWordGroup Long Boolean Xóa 1 nhóm từ vựng
Chức năng học Tiếng Anh
getLessons Lesson[] Lấy danh sỏch cỏc bài học
getLessonByKey Long Lesson Lấy 1 bài học theo khóa getLessonTypes LessonType[] Lấy danh sỏch cỏc nhúm
bài học
getLessonTypeByKey Long LessonType Lấy 1 nhóm bài học theo khóa
getTests Test[] Lấy danh sỏch cỏc bài kiểm tra
Tên hàm Tham số Kết quả Chức năng
khóa
getWords Word[] Lấy danh sỏch cỏc từ vựng
.V.2. Thành phần ứng dụng khách hàng
Phần này bao gồm phần mềm cho di động Android và website học Tiếng Anh.
.V.2.1. Phần mềm học Tiếng Anh cho di động Android
V.2.1.1. Mô hình cài đặt
Mô hình cài đặt theo hình 10 trong phần thiết kế, mô tả các thành phần trong phần mềm theo phân tầng từ trên xuống.
V.2.1.2. Thư viện Ksoap2 – Android
Đặt trong kiến trúc của 4ECloud, yêu cầu đối với phần mềm cho di động Android là phải thực hiện hiệu quả những lời gọi tới thành phần dịch vụ web. Thư viện mã nguồn mở Ksoap2 – Android[14] được lựa chọn để hỗ trợ phần mềm trong việc giao tiếp với các dịch vụ web thông qua giao thức SOAP. Trang chủ dự án Ksoap2 - Android đặt tại địa chỉ: http://code.google.com/p/ksoap2-android. Thư viện này hoạt động rất tốt với các kiểu dữ liệu cơ bản như String, Long,.. Muốn sử dụng các loại dữ liệu tự định nghĩa, phần mềm buộc phải khai báo theo khuôn dạng được Ksoap2 – Android quy định.
Một điểm bất tiện trong phiên bản hiện tại của Ksoap2 – Android, đó là các đối tượng dữ liệu nhận về từ dịch vụ web được đặt chung vào một danh sách. Phía phần mềm phải thực hiện thủ công việc phân tách các trường dữ liệu và gán vào class tương ứng. Mặc dù thao tác này không tốn nhiều công sức, tuy nhiên trong trường hợp dịch vụ web sửa đổi cấu trúc dữ liệu, thỡ phớa ứng dụng buộc phải thay đổi mã nguồn, để đảm bảo phân tách chính xác.
.V.2.2. Website học Tiếng Anh
V.2.2.1. Mô hình cài đặt
Mô hình cài đặt theo hình 17 trong phần thiết kế, mô tả các thành phần trong website.
V.2.2.2. Thư viện Windows Communication Framework
Website xây dựng sử dụng công cụ ASP.NET MVC, trên nền tảng .NET. Nền tảng này có thời gian phát triển lâu dài, được áp dụng cho mọi loại hình ứng dụng, với đủ các kiến trúc khác nhau. Vì vậy, việc sử dụng dịch vụ web trong website không gặp bất cứ trở ngại gì. Thư viện Windows Communication Framework[15] hỗ trợ đắc lực cho website trong việc sử dụng các hàm chức năng của thành phần dịch vụ web.
Với sự linh hoạt và tính tương thích cao như vậy, .NET luôn đóng vai trò quan trọng trong các hệ thống đa nền tảng.
Phần cài đặt đã khái quát mô hình cài đặt và giải pháp mà dịch vụ 4ECloud lựa chọn để giải quyết các vấn đề đối với dịch vụ web. Phần tiếp theo trình bày về quá trình kiểm thử và thử nghiệm. Kết quả của bước này phục vụ cho việc hiệu chỉnh và hoàn thiện các thành phần trong dịch vụ.