Sau khi đã cài đặt xong Profile Engine và các lớp để thực hiện việc xác thực và bảo mật, chúng ta sẽ trình bày về các lớp cài đặt phía Foloyu Server.
Hình 4-25: Sơ đồ các lớp cài đặt ở Foloyu Server
Gói com.foloyu.ws.profile:
Gói các lớp triển khai sử dụng Web Service. Các lớp này được Eclipse sinh mã tự động dựa trên văn bản WSDL của các Web Service. Chúng có vai trò trung gian để Foloyu server gọi và nhận dữ liệu từ Web Service.
Gói com.foloyu.dal.engines:
Gói chứa các lớp bao chứa các lời gọi hàm đến các webservice bao gồm FeedEngine, LocationEngine và ProfileEngine.
2 gói com.foloyu.kerberos.data và com.foloyu.kerberos.service chứa các lớp liên quan đến cài đặt giao thức Kerberos (đã được trình bày ở phần trên).
Gói com.foloyu.servlets:
Gói chứa các servlet để nhận yêu cầu và hồi đáp yêu cầu của người dùng.
o AccountServlet: Lớp xử lý các yêu cầu liên quan đến tài khoản người dùng.
o ApproveServiceServlet: Lớp xử lý yêu cầu xác thực để được sử dụng dịch vụ.
o FriendServlet: Lớp xử lý các yêu cầu liên quan đến bạn bè.
o LoginServlet: Lớp xử lý các yêu cầu liên quan đến đăng nhập vào hệ thống.
o LogoutServlet: Lớp xử lý các yêu cầu liên quan đến đăng xuất khỏi hệ thống.
o RegisterServlet: Lớp xử lý các yêu cầu liên quan đến đăng kí một tài khoản trong hệ thống.
o TicketGrantingServlet: Lớp xử lý các yêu cầu cấp vé sử dụng dịch vụ.
Gói com.fsn.core.util:
Gói chứa các lớp tiện ích được dùng trong toàn bộ project.
o AES: lớp chứa các hàm dùng để mã hóa và giải mã theo thuật toán mã hóa AES.
o CovertUtil: Lớp tiện ích để thực hiện việc chuyển đổi giữa các danh sách/tập hợp các đối tượng tổng quát sang mảng các đối tượng đó và ngược lại.
o DBProcess: Lớp quản lý việc mở kết nối/đóng kết nối với cơ sở dữ liệu và gọi các store procedure ở trong cơ sở dữ liệu.
o PageBreakInfo: Lớp chứa các thông tin phân trang.
o PageBreakResult: Lớp chứa các kết quả trả về từ một collection với thông tin truy vấn chứa trong một đối tượng có kiểu là PageBreakInfo.
o PagingUtil: Lớp tiện ích để thực hiện việc phân trang cho các collection có kiểu cụ thể.
o RandomGeneration: Lớp tạo khóa phiên ngẫu nhiên (16 bit).
o StringToKey: Lớp chứa hàm băm một chiều để băm mật khẩu của người dùng và của dịch vụ.
Gói com.foloyu.dal.memory:
Gói này chứa các lớp chứa và quản lý các dữ liệu ở phía bộ nhớ của Foloyu. Các lớp liên quan đến chức năng Profile và giao thức Kerberos bao gồm:
o ServicePrincipalManager: chứa toàn bộ tên các dịch vụ cùng với khóa bí mật tương ứng với dịch vụ đó.
o UserState: Lớp chứa trạng thái của người dùng, đại diện cho sự hiện diện của người dùng trong hệ thống. Nó định nghĩa các hoạt động của người dùng trông hệ thống Foloyu và các hoạt động, trạng thái của họ.
o UserStateManager: Lớp quản lý các UserState trong hệ thống.
1.9. Triển khai và kết quả thử nghiệm hệ thống
1.9.1. Triển khai thử nghiệm hệ thống Foloyu
Để có thể triển khai thử nghiệm hệ thống, cần có các thành phần sau: các máy chủ dịch vụ (Web Services server) cùng với các máy chủ dữ liệu tương ứng với máy chủ đó, máy chủ Foloyu và máy tính có cài đặt trình duyệt web. Do điều kiện thực tế nên tất cả các thành phần này đều đặt trên cùng một máy chủ.
Hình 4-26: Sơ đồ hoạt hộng của Foloyu
Trình tự thực hiện:
1. Khởi động tất cả các máy chủ dịch vụ và máy chủ dữ liệu.Lúc đầu, sẽ có một số dữ liệu quan trọng từ các máy chủ dịch vụ được tải lên phía bộ nhớ của máy chủ Foloyu như thông tin của người dùng, danh sách các địa điểm mới, địa điểm hot…Quá trình tải một số dữ liệu quan trọng từ các máy chủ dịch vụ lên máy chủ Foloyu sẽ được thực hiện theo chu kì nhất định.
2. Người dùng đăng nhập vào hệ thống, Foloyu Server gọi service ở phía Profile Engine để cung cấp dữ liệu xác thực. Sau đó, Foloyu sẽ sử dụng các hàm cài đặt cho Kerberos để tiến hành xác thực và cấp vé cho người dùng.
3. Nếu xác thực thành công, người dùng sẽ được chuyển đến trang chủ. Nếu không sẽ thông báo lỗi và quay lại trang đăng nhập.
4. Khi người dùng click vào link để thực hiện một chức năng nào đó, hệ thống sẽ tự động kiểm tra xem người đó có vé để sử dụng dịch vụ đó không. Nếu có sẽ tiến hành gửi các yêu cầu và trao đổi các thông điệp với Foloyu bằng khóa phiên giữa người dùng và dịch vụ đó. Nếu không, hệ thống sẽ tự động thực hiện các bước xin cấp vé dịch vụ rồi mới thực hiện việc gọi sử dụng dịch vụ.
5. Quá trình trên được tiến hành cho những lần gọi sử dụng dịch vụ khác.
1.9.2. Màn hình demo sản phẩm
Trang chủ Profile
Hình 4-27: Màn hình trang chủ phía Profile
Màn hình chức năng Friends
Hình 4-29: Màn hình chức năng xem danh sách yêu cầu kết bạn
Hình 4-30: Màn hình chức năng xem danh sách gợi ý kết bạn
Màn hình chức năng Edit Account:
Hình 4-31: Màn hình chức năng Edit Account
Hình 4-32: Màn hình chức năng Edit Privacy 1.9.3. Đánh giá
a. Ưu điểm
Hệ thống đã cơ bản đảm bảo các chức năng bảo mật đặt ra ban đầu đó là
o Cung cấp cơ chế đăng nhập một lần cho người dùng.
o Xác thực được người dùng để đảm bảo người dùng đó được quyền sử dụng dịch vụ.
o Cung cấp một cơ chế bảo mật kênh truyền giữa người dùng và các máy chủ dịch vụ
Xây dựng khá hoàn chỉnh Profile Engine, cung cấp các phương thức cho hoạt động của Foloyu Server.
b. Hạn chế
Về khả năng bảo mật vẫn chưa thực sự hoàn thiện: việc lưu các vé dịch vụ và các khóa phiên vẫn chưa thực sự an toàn và bảo mật.
Dự án Foloyu mới triển khai nên hệ thống cũng chưa thực sự hoàn thiện như chưa có Feed Engine nên việc kiểm thử và đánh giá cũng chưa hoàn toàn đầy đủ.
Chưa triển khai được hết các chức năng ở phía Foloyu Server do Profile Engine cung cấp.
Giao diện demo còn chưa đẹp và chưa thân thiện với người dùng.
Chưa tối ưu hóa về code. Do đó kích thước chương trình lớn. Một số xử lý còn rườm rà.
Kết Luận
Kết quả đạt được
Trong quá trình làm đồ án, thông qua việc xây dựng một cơ chế bảo mật cũng như xây dựng Profile Engine cung cấp dịch vụ cho mạng xã hội, sau đó áp dụng
một dự án thực tế là mạng xã hôi Foloyu,bản thân em đã thu được một số kết quả như sau:
Nắm được kiến trúc của mạng xã hội.
Hiểu rõ hơn giao thức Kerberos về quy trình hoạt động cũng như các khả năng ứng dụng của giao thức.
Xây dựng nên được một hệ thống đảm bảo việc xác thực và kênh truyền bảo mật trong mạng xã hội.
Hiểu rõ hơn về Web Service: các thành phần, cách hoạt động và cách triển khai một Web Service.
Đã triển khai được Profile Engine cung cấp các service cho máy chủ Foloyu.
Hiểu rõ và nắm bắt được quy trình từ cơ sở lý thuyết cho đến quá trình phân tích thiết kế đến quá trình triển khai trong một hệ thống thực tế.
Thành thạo hơn với kỹ năng lập trình với ngôn ngữ java, javascript, công nghệ Ajax.
Bên cạnh những kết quả đạt được nêu trên, vẫn còn một số tồn tại mà trong quá trình làm đồ án em chưa giải quyết hết được:
Việc xây dựng một hệ thống bảo mật cho mạng xã hội chưa thực sự hoàn hảo.
Chưa triển khai được hết các chức năng do Profile Engine cung cấp ở phía Foloyu Server.
Do thực hiện trong một dự án nên gặp khó khăn trong việc triển khai hệ thống một cách tổng thể và đầy đủ.
Giao diện phần Profile chưa đẹp và chưa thân thiện với người dùng.
Định hướng phát triển
Việc xây dựng hệ thống bảo mật cũng như xây dựng Profile Engine đã có một số kết quả nhất định nhưng để có thể triển khai tốt trong thực tế, cụ thể là trong mạng xã hội Foloyu thì cần phải thực hiện các công việc sau:
Hoàn thiện các chức năng liên quan đến Profile còn chưa đáp ứng ở phía Foloyu.
Cải thiện giao diện phần Profile.
Tối ưu hóa code, tìm cách tăng hiệu năng và hiệu quả chương trình.
Nghiên cứu để đưa giải pháp bảo mật nêu trên có thể áp dụng trên thiết bị di động.
Phụ lục
1.10. Đặc tả các Use Case của chứ năng Profile
Hình 5-33: Use Case quản lý tài khoản người dùng
Chức năng đăng ký (Register):
Tên UseCase Register
Tác nhân Người dùng chưa có tài khoản trong hệ thống
Mô tả Use case này cho phép người dùng có thể tạo một tài khoản
trên hệ thống.
Giá trị đầu vào 1. Tên truy cập hợp lệ (bắt buộc nhập)
2. Email hợp lệ (bắt buộc nhập) 3. Mật khẩu hợp lệ (bắt buộc nhập) 4. Giới tính
5. Ngày tháng năm sinh (bắt buộc nhập) 6. Địa chỉ
Kết quả đầu ra Hệ thống sẽ xử lý và sẽ đưa ra thông báo việc đăng kí có
thành công hay không?
Bảng 5-15: Đặc tả chức năng đăng kí