- Lược đồ tài nguyên Access Control .
Hình 6.26 - Lược đồ tài nguyên Access Control.
- URIs
Tất cả các sự tương tác với management service được thông qua một kết nối SSL. Như thế, tất cả các URI trong lược đồ tài nguyên đều dùng HTTPS scheme. URI gốc trong AppFabric Access Control management service là: Error!
Hyperlink reference not valid. 6.3.3.1. Service Namespace
Service namespace là tài nguyên cấp cao nhất trong lược đồ AppFabric Access Control. Tất cả các tài nguyên khác là cấp dưới của mỗi service namespace. Các tài nguyên AppFabric Access Control không thể chia sẻ giữa các service namespace với nhau.
6.3.3.2. Scope
Scope là tên URI mà AppFabric Access Control dùng để gom nhóm các rules. AppFabric Access Control so khớp giá trị của tham số wrap_scope trong yêu cầu token với URI scope này. Nếu so khớp, các rules trong scope này sẽ được dùng trong suốt quá trình tính toán claim output.
6.3.3.3. Issuer
Một issuer là tên của một bộ khóa mã hóa. Service consumers sử dụng nó khi chứng thực với AppFabric Access Control. Các Issuer có thể chứa một cặp base64- encoded 32-byte keys, hoặc một chứng chỉ X.509. Chú ý các issuer dùng chứng chỉ X.509 được dùng để chứng thực với SAML token.
6.3.3.4. Ruleset
Ruleset là tên của một tập các rule. Trong phiên bản hiện tại, ruleset được tạo tự động và tương ứng với mỗi scope. Có nghĩa, mỗi scope có duy nhất một ruleset.
6.3.3.5. Rule
Các rule trong AppFabric Access Control quyết định claim xuất hiện trong token được phát ra bởi AppFabric Access Control. Một rule chứa một giá trị tiền đề và một giá trị kết quả. Một rule phải liên kết với một ruleset.
6.3.3.6. Token Policy
Tài nguyên Token policy quyết định thời gian hết hạn, và khóa dùng để ký cho các token được phát ra bởi AppFabric Access Control. Một token policy được liên kết với 0 hoặc nhiều scope.
Chương 7 Ứng dụng mạng xã hội ảo cho cựu sinh viên.
7.1. Giới thiệu
Mạng xã hội ảo phát triển nhanh chóng và mạnh mẽ trong vài năm gần đây. Hiện tại có rất nhiều mạng xã hội xuất hiện trên thế giới. Mỗi mạng xã hội hướng tới một nhóm người dùng riêng, có những tính năng chuyên biệt dành cho nhóm
một mạng xã hội muốn thành công ở một đất nước hay một vùng địa lý nào đó thì nó phải mang đậm bản sắc văn hóa tại nơi đó, và nó cũng phải hướng tới một nhóm người dùng cụ thể. Tại Việt Nam, cựu sinh viên là nhóm người dùng tiềm năng và có số lượng đông đảo so với các nhóm người dùng khác. Nên việc xây dựng mạng xã hội dành riêng cho cựu sinh viên là một hướng đi tốt, đáp ứng các nhu cầu:
- Tập hợp các bạn cựu sinh viên:
• Tạo điều kiện giao lưu, trao đổi kinh nghiệm làm việc.
• Hỗ trợ lẫn nhau trong công việc, hợp tác kinh doanh,… - Tiến hành các hoạt động :
• Hỗ trợ sinh viên của Khoa/Trường.
• Hỗ trợ Khoa/Trường nâng cao chất lượng đào tạo để đáp ứng tốt hơn với yêu cầu của doanh nghiệp, xã hội.
• Tư vấn cho ban chủ nhiệm Khoa/Trường về cải tiến chương trình đào tạo, tiếp nhận sinh viên thực tập, giới thiệu việc làm cho sinh viên,…
- Làm cầu nối hợp tác giữa Khoa/Trường với doanh nghiệp :
• Hợp tác nghiên cứu, trao đổi học thuật.
• Nguồn lực nhân sự,…
Nên việc xây dựng một mạng xã hội dành riêng cho cựu sinh viên là một nhu cầu cấp thiết. Vì vậy, ứng dụng Windows Azure là tập trung xây dựng thử nghiệm mạng xã hội dành cho cựu sinh viên các trường Đại Học.
7.2. Chức năng
AlumniNetworking là một website dành cho cựu sinh viên, mang tính chất của một mạng xã hội ảo, với các chức năng cơ bản và đặc trưng cho cựu sinh viên như sau:
Tài khoản (Account)
- Đăng kí thành viên (chống spam/ email xác nhận tài khoản) - Đăng nhập - Đăng xuất.
- Thay đổi thông tin tài khoản - Thay đổi mật khẩu - Lấy mật khẩu đã mất. - Admin: Quản lí tài khoản thành viên.
Thông tin cá nhân (Profile)
- Hiển thị - Quản lý thông tin cá nhân - Cập nhật hình ảnh đại diện.
- Thiết lập tính riêng tư cho các trường thông tin(cho mình, bạn bè, …). - Có thể thêm các trường thông tin như: hoạt động, sở thích,…
- Thông báo các bài viết mới, cập nhật mới, thêm bạn cho người dùng. - Hiển thị danh sách bạn bè thu gọn.
- Cập nhật thông tin mới từ thành viên khác (trang chủ).
Bạn bè (Friends)
- Xem danh sách thành viên – bạn bè.
- Quản lý danh sách bạn bè – kết bạn với thành viên khác. - Gửi thư mời bạn bè: từ địa chỉ mail, qua outlook và gmail.
Blog
- Viết và quản lý bài viết.
- Viết bình luận và quản lí bình luận trên bài viết. - Thiết lập được tính riêng tư cho blog.
- Xem các bài viết của thành viên khác.
Diễn đàn (Forum)
- Viết bài theo từng chuyên mục, trao đổi thảo luận (hỗ trợ bộ soạn thảo). - Tạo chuyên mục thảo luận cho từng nhóm/lớp.
- Admin: Quản lí diễn đàn.
Lớp/Nhóm (Groups)
- Xem tất cả danh sách nhóm hoặc do người dùng tạo. - Thành lập và thay đổi thông tin lớp/nhóm.
- Quản lí thành viên trong lớp/nhóm, phân quyền cho thành viên. - Tham gia nhóm/lớp.
Tin nhắn (Message)
- Gửi và nhận mail giữa các thành viên trong hệ thống. - Quản lí tin nhắn.
Hình ảnh (Photo)
- Trao đổi, chia sẻ ảnh,… giữa các thành viên. - Quản lí album, hình ảnh.
- Đăng tải cùng lúc nhiều hình ảnh. - Rate, bình luận cho hình ảnh.
- Trình chiếu slide show trong một album.
Học bổng/ Quyên góp (Scholarship)
- Cập nhật tin tức liên quan đến học bổng, hỗ trợ.
- Đăng ký quyên góp cho quỹ học bổng (liên hệ hoặc qua Paypal). - Công bố các cá nhân, tập thể tham gia quyên góp.
- Gửi liên hệ đến ban quản lí.
- Admin: Quản lí liên hệ, quyên góp, tin tức, thành viên ban quản lí.
Công việc (Job)
- Xem tất cả công việc hoặc công việc do người dùng tạo. - Xem chi tiết thông tin, yêu cầu tuyển dụng.
- Đăng ký tuyển dụng, nộp đơn, hồ sơ xin việc.
- Đăng tin – Quản lí tuyển dụng, xem, download hồ sơ của ứng viên. - Admin: Quản lí công việc, hồ sơ tuyển dụng.
-
Ngoài ra, AlumniNetworking có khả năng đáp ứng các yêu cầu sau: - Giao diện đơn giản, dễ sử dụng, có khả năng thay đổi.
- Dễ bảo trì để không làm ảnh hưởng tới hoạt động của mạng xã hội ảo. - Ứng dụng có khả năng phân tải, xử lí nền, khả năng mở rộng dữ liệu.
7.3. Use-case
7.3.1. Mô hình Use-case
DangNhap TaoTaiKhoan ThayDoiThongTinCaNhan
DangKyQuyenGopHocBong DangTinTuyenDung DangKyTuyenDung XemThongTinTuyenDung XemViecDaDangKy QuanLyNhom QuanLyDanhSachBanBe TimKiemBanBe GuiVaNhanTinNhan QuanLyBlogEntries Xem Blog QuanLyAlbumAnh Upload Anh XemAlbum VietBaiTrenDienDan QuanLyTaiKhoan QuanLyDienDan QuanLyThongTinTuyenDung QuanLyCapNhatTinTuc Admin QuanLyQuyenGop Dang xuat QuanLyProfile Nguoi dung QuanLyChinhSachRiengTu Hình 7.27 - Sơ đồ Use-case. 7.3.2. Danh sách Use-case Bảng 7.9 – Danh sách các Use-case. STT Use-case Ý nghĩa
1 DangKy Người dùng đăng ký thành viên
2 DangNhap Người dùng đăng nhập vào site
3 DangXuat Người dùng đăng xuất khỏi site
4 ThayDoiThongTinCaNham Người dùng thay đổi các thông tin đã cung cấp lúc đăng ký
5 QuanLyProfile Người dùng thay đổi các thông tin trong profile của mình.
6 QuanLyChinhSachRiengTu Người dùng thay đổi các chính sách hiển thị thông tin của mình.
7 UploadAnh Người dùng chọn và tải ảnh của mình
8 QuanLyAlbumAnh Người dùng có thể thêm, xóa, cập nhật thông tin album và ảnh của mình.
9 XemAlbum Người dùng xem trình chiếu album ảnh
10 VietBaiTrenDienDan Người dùng có thể viết bài mới, trả lời bài viết, chỉnh sửa bài viết.
11 QuanLyBlogEntries Người dùng viết bài mới, chỉnh sửa bài viết của mình trên blog
12 XemBlog Người dùng xem blog của các thành viên
khác
13 GuiVaNhanTinNhan Người dùng có thể gửi và nhận tin nhắn với các thành viên khác trong site.
14 TimKiemBanBe Người dùng có thể tìm kiếm thông tin các thành viên khác
15 QuanLyDanhSachBanBe Người dùng có thể thêm, xóa các thành viên là bạn bè của mình.
16 QuanLyNhom
Người dùng có thể Tạo nhóm, Chấp
nhận/Xóa bỏ thành viên tham gia nhóm, hay Cho phép thành viên quản lý nhóm của mình 17 DangTinTuyenDung
Người dùng có thể đăng thông tin tuyển dụng của một công ty nào đó, để các thành viên khác đăng ký
18 DangKyTuyenDung Người dùng có thể đăng ký vào một công việc nào đó
19 XemViêcDaDangKy Người dùng có thể xem lại các công việc mà mình đã đăng ký
20 XemThongTinTuyenDung Người dùng xem tất cả các thông tin tuyển dụng được đăng trên site
21 DangKyQuyenGop Người dùng có thể đăng ký quyên góp 22 QuanLyTaiKhoan
Người dùng với quyền Admin, có thể quản lý thông tin tài khoản của các thành viên như: Reset mật khẩu, khóa tài
khoản,Thêm/Xóa quyền của tài khoản 23 QuanLyDienDan Người dùng với quyền Admin, có thể quản
các danh mục/diễn đàn/bài viêt…
24 QuanLyQuyenGop Người dùng với quyền Admin, có thể quản lý các thông tin về quyên góp
25 QuanLyCapNhatTinTuc
Người dùng với Quyền Admin, có thể đăng các tin tức mới, các thông tin về truờng, khoa, học bổng…
26 QuanLyThongTinTuyenDun g
Người dùng với quyền admin, quản lý việc đăng tin/đăng ký tuyển dụng các thành viên.
7.4. Kiến trúc hệ thống 7.4.1. Theo góc nhìn thiết kế
Ứng dụng được thiết kế theo mô hình MVP với các thành phần chủ yếu như sau:
Hình 7.28 – Sơ đồ kiến trúc tổng quan hệ thống.
STT Tên Ý nghĩa
1 Entities Chứa các lớp Entity, tương tác giữa các thành phần 2 Domain Chứa các lớp mở rộng của Entity, thuận tiện hơn trong
việc cung cấp dữ liệu cho Presenter và Web UI. 3 Data Access Chứa các lớp dùng để truy xuất dữ liệu. Đóng vai trò
Model trong mô hình MVP.
5 Presenter Đóng vai trò là Presenter trong mô hình MVP.
6 Web UI Chứa các Web control, web page, script…, Đóng vai trò là View trong mô hình MVP.
Hình 7.29 – Sơ đồ kiến trúc chi tiết hệ thống. 7.4.2. Ở góc nhìn ứng dụng
AlumniNetworking là tập hợp của nhiều Application và Plugin.
Application có thể hiểu theo nghĩa là các chức năng của AlumniNetworking như: Thông tin, Blog, Hình ảnh,….
Plugin là các thành phần bổ sung thêm chức năng cho Application như: Comment, Rating … Plugin có thể hỗ trợ một hoặc nhiều Application.
Hình 7.30 – AlumniNetworking ở góc nhìn ứng dụng. 7.4.3. Kiến trúc Application
Hình 7.31 – Sơ đồ kiến trúc Application.
Bảng 7.10 – Các thành phần kiến trúc Application.
STT Tên Ý nghĩa
1 AppContainer Thành phần điều khiển chính trong hệ thống, thực hiện load application, plugin.
2 AppPage Là một thành phần của một Application 3 Plugin Là thành phần được gắn thêm vào một
AppPage cụ thể.
• Hệ thống có 1 AppContainer, nhiều Application và nhiều Plugin.
7.4.3.1. Cách hoạt động:
• AppContainer load một trang (AppPage) của Application thông qua URL.
• AppPage sử dụng xử lý các thao tác cần thiết cho Application.
• Plugin dựa vào AppPage mà nó nhận được khi khởi tạo, mà có các thao tác tương ứng với AppPage đó.
7.4.3.2. Cấu trúc của AppPage
Hình 7.32 – Cấu trúc AppPage.
• 1 AppPage có tối đa 5 vùng như hình vẽ, tùy vào từng AppPage cụ thể mà có thể có ít hơn 5 vùng.
• Plugin dựa vào 5 vùng này để hiển thị plugin.
7.4.3.3. Tổ chức trong hệ thống
• Các thành phần được cài đặt trong project AlumniNetworking.Application
• BaseAppContainer, BaseAppPage, BasePluginController lần lượt cài đặt interface IAppContainer, IAppPage, IPluginController.
• Cài đặt cụ thể của AppPage là các tập tin .ascx nằm trong thư mục của Application, đồng thời cài đặt interface IUsercontrolView.
• Mỗi Application, Plugin có 1 thư mục riêng ở project Web. Tên thư mục chính là tên của Application, Plugin, và không được phép trùng tên.
7.5. Sơ đồ lớp Sơ đồ lớp Account-Profile-Friend: AccountPermis sion CreatedDate Application Name Description Add Application() Update Application() Delete Application() 0..* 1 0..* 1 PrivacyFlag CreatedDate ProfileAttribute Response CreatedDate ProfileAttrib uteType Name PrivacyFlagType Name VisibilityLevel 1 0..* 1 0..* Permission Name AddPermisson() DeletePermission() UpdatePermission() Profile Occupation Area Company Address Signature PhoneNumber IMMSN Avatar IMGIM IMYIM IMSkype
Add Profile if not exist() Update Profile()
Set Who can see Profile Attributes()
0..* 0..* 0..* 0..* 0..* 0..* 0..* 0..* Alert CreateDate Message Type Add Alert() Delete Alert() Account Name UserName Address BirthDay BirthPlace Password PasswordSalt Email EmailVerified Course Factory TrainingLevel StudenID CreatedDate
Check Username is used or not() Add Account()
Update Account() DeleteAccount() Set Permission for Account() Reset Password() ChangePassword() Invite Friend() Accept Friend Invitation() Check Email Is Used or Not() <<static>> GetAccount() 1..* 0..* 1..* 0..* 1 1 1 1 1 0..* 1 0..* 0..* 0..* 0..* Is Friend 0..* Friend CreateDate
<<static>> Get Friend List()
Hình 7.33 – Sơ đồ module Account, Profile, Friend.
Bảng 7.11 – Các lớp/quan hệ của sơ đồ module Account, Profile, Friend.
STT Tên lớp/quan hệ Loại Ý nghĩa/Ghi chú
1 Account Class Chứa thông tin về một tài khoản
2 Profile Class Chứa các thông tin về profile
3 ProfileAttributeType Class Các thuộc tính của profile
4 ProfileAttribute Association Một profile cụ thể có những thuộc tính 5 PrivacyFlagType Class Các thuôc tính cùng một chính sách
riêng tư
6 PrivacyFlag Association Các chính sách riêng tư của một tài khoản
7 Alert Class Hiển thị các thông tin cập nhật, ví dụ:
Có bài viết mới trên diễn đàn,Comment mới,…
8 Friend Association Cho biết một tài khoản kết bạn với tài khoản khác
trong hệ thống
10 Application Class Các ứng dụng có trong hệ thống
11 AccountPermission Association Cho biết một tài khoản có quyền gì đối với một ứng dụng cụ thể
Sơ đồ lớp Forum-Group:
Bảng 7.12 – Các lớp/quan hệ của sơ đồ module Forum, Group. STT Tên lớp/quan hệ Loại Ý nghĩa/Ghi chú
1 Category Class Các danh mục trong diễn đàn
2 Forum Claas Các diễn đàn con trong một danh mục.
3 ForumPost Class Các bài viết (Thread/Trả lời) trong diễn dàn. 4 Group Class Thể hiện các nhóm do người dùng tạo nên 5 GroupType Class Các loại nhóm/lớp, dựa trên thuộc tính
chung khi tạo một nhóm/lớp mới.
6 GroupForum Association Một group có một diễn đàn thảo luận riêng 7 GroupMember Association Thể hiện nhóm/lớp có những thành viên nào Sơ đồ lớp Message-Photo-Comment-Rating: Comment Message CreateDate SystemObjectRatingOption Name Description Ratting Score CreatedDate SystemObject Name 0..* 1 0..* 1 0..* 11 0..* ObjectToRate ObjectToComment 1 0..* 1 0..* MessageRecipient MessageRecipientType MessageStatusType MessageFolder Name 0..* 1 0..* 1 Messsage Subject Body CreatedDate MessageType MultimediaFile FileName SystemFileName Description FileSize Type UploadDate <<virtual>> Upload() Photo Height Width Thumbnail <<override>> Upload() PhotoAlbum Name Description Location CreateDate Create Album() Update Album() Delete Album() View Photo Of Album() Check Who Can See()
0..* 1 0..* 1 Account 0..*0..* 0..*0..* Rate 0..* 0..* 0..* 0..* Comment 1 0..* 1 0..* Sent 1 0..* 1 0..* Recieve 1 1..* 1 1..* 1 0..* 1 0..* Owner Upload
Hình 7.35 – Sơ đồ lớp module Message, Photo, Comment, Rating.
Bảng 7.13 – Các lớp/quan hệ của sơ đồ lớp Message, Photo, Comment, Rating.
STT Tên lớp/quan hệ Loại Ý nghĩa/Ghi chú
hệ thống. Ví dụ: Blog,Video, Photo…
2 SystemObjectRatingObject Class Thể hiện các lựa chọn để đánh giá cho một loại đối tượng nào đó. Ví dụ: đối tượng là photo có các tiêu chuẩn đánh giá là : Đẹp, Lạ, Chất lượng…
3 ObjectToRate Class Tượng trưng cho các đối tượng cụ
thể được đánh giá. Trong hệ thống, đó là các đối tượng Photo, Video,…
4 ObjectToCommetn Class Tượng trưng cho các đối tượng cụ thể được comment, trong hệ thống, đó là các đối tựợng Photo, Album, Blog…
5 Ratting Association Thể hiện một đối tượng cụ thể được đánh giá bởi một tài khoản. 6 Comment Association Thể hiện một đối tượng cụ thể
được một tài khoản nào đó comment.
7 Message Class Thể hiện nội dung của một tin .nhắn.
8 MessageRecipient Class Cho biết một tin nhắn được nhận bởi tài khoản nào.
9 MessageFolder Class Thể hiện một thư mục tin nhắn, ví dụ: Inbox, Spam,…
10 MultimediaiFile Class Thể hiện thông tin cơ bản của một