Chương 3: Mô hình mạng chia sẻ đồ vật và khai thác thông tin.
3.3. Thiết kế kiến trúc hệ thống.
3.3.1. Thiết kế kiến trúc tổng thể
Hệ thống MiGi được xây dựng thiết kế theo kiến trúc kinh điển gồm ba tầng: Data Access Layer, Business Layer, Presentor. Đồng thời hệ thống có tính mở để có thể kết nối với nhiều dịch vụ và ứng dụng khác nhau như các ứng dụng Facebook, Twister, ứng dụng mobile…
Hình 3.4. Kiến trúc tổng thể của hệ thống
Mô tả một số tầng:
• Tầng WebUI: Tầng Web là nơi cung cấp ứng dụng web để cho người dùng truy cấp. Nó cung cấp các tính năng chính của toàn bộ hệ thống cho người dùng. Tầng Web UI được xây dựng dựa trên nền tảng mới nhất ASP.NET MVC 2.0 của Microsoft, kết hợp với các thư viện javascript mã nguồn mở là Jquery, Facebook SDK, GoogleMap SDK.
• Tầng Business: Tầng này chưa toàn bộ nghiệp vụ của hệ thống. Tầng này được xây dựng dựa trên các interface, qua đó đảm bảo tính liên kết lỏng lẻo dễ dàng bóc tách nâng cấp sau này mà không bị ảnh hưởng tới các tầng bên trên.
• Tầng Data: Chứa các truy vấn và nghiệp vụ làm việc với Database. Tầng Data được xây dựng dựa trên framework ADO.NET Entity của Microsoft và SQL Server 2008. Framework ADO.NET Entity cho phép xây dựng những sơ đồ liên kết giữa các thực thể (entity) linh hoạt, cung cấp nhiều cách truy vấn khác nhau để giúp cho quá trình lập trình được trở nên dễ dàng.
• Các Service: Hệ thống được xây dựng với tư tưởng tạo liên kết mở để dễ dàng phát triển các ứng dụng tương tác với hệ thống. Do đó hệ thống cung cấp nhiều service để làm viêc với các ứng dụng khác nhau như ứng dụng mobile, các ứng dụng ở faebook, google… Các service của hệ thống được xây dựng dựa trên nền tảng WCF- Window Communication Foundation.
• Thumbnail Image Server: Hệ thống sử dụng riêng xây dựng cơ chế hiển thị hảnh với nhiều kích cỡ khác nhau một cách linh hoạt cho website. Qua đó giảm số lượng request tới webserver, và tăng tốc độ web.
• Caching Server: Để tăng tốc độ của web site, hệ thống sử dụng các cơ chế cache để lưu trữ sẵn các dữ liệu cần hiển thị.
• Ứng dụng facebook: Hệ thống còn có các ứng dụng trên facebook để người dùng dễ dàng tương tác với hệ thống thông qua facebook.
• Ứng dụng Mobile/Silverlight: Để thuận tiện cho người dùng, hệ thống còn cung cấp ứng dụng cho mobile, viết dựa trên silverlight cho nền tảng window phone 7. Giúp cho người dùng dễ dàng chia sẻ thông tin ở mọi lúc mọi nơi.
3.3.2. Sơ đồ Package
Hệ thống MiGi được thiết kế với bốn Package chính là:
• Package DAL tương ứng với tầng Data Access Layer
• Package Models tương ứng với tầng Business Layer
• Package Web UI tương ứng với tầng Presentor
• Package Entity chứa các đối tượng dữ liệu dùng để các tầng trao đổi với nhau. Giúp tránh sự trùng lặp, hay phụ thuộc vòng tròn.
Hình 3.5. Sơ đồ phụ thuộc của các package chính của hệ thống/
3.3.3. Sơ đồ lớp
Các lớp ở các tầng của MiGi đều được định ra các interface tương ứng. Giữa các tầng trao đổi giao tiếp thông qua interface. Do đó việc thay đổi giữa các tầng không bị ảnh hưởng tới toàn bộ hệ thống miền là interface được giữ nguyên. Thể hiện của các interface được khởi tạo theo pattern : Factory Method. Điều đó đảm bảo tính che đậy triệt để giữa các tầng, các tầng không biết cụ thể lớp nào là thể hiện tương ứng với interface. Điều này tạo ra liên kết lỏng lẻo, giúp việc bảo trì code dễ dàng hơn, thay đổi bóc tay đơn giản hơn.
Hình 3.6: Sơ đồ các liên kết các lớp chính của hệ thống
3.3.4. Biểu đồ diễn tiến
a. Chức năng đăng ký
Hình 3.7 Biều đồ diễn tiến chức năng đăng ký
Hình 3.8. Biểu đồ diễn tiến chức năng đăng nhập
c. Chức năng tạp mới offer
Hình 3.9 Biểu đồ diễn tiến chức năng Offer
d. Chức năng tạo mới request
Hình 3.10 Biểu đồ diễn tiến chức năng tạo mới request đồ vật
Hình 3.11 Biểu đồ diễn tiến cho chức năng hiển thị danh sách offer đồ vật
f. Chức năng hiển thị danh sách request
Hình 3.12 Biểu đồ diễn tiến cho chức năng hiển thị danh sách các request đồ vật
g. Chức năng request một đồ vật được chia sẻ
Hình 3.13 Biểu đồ diễn tiến cho chức năng request tới một đồ vật được chia sẻ
Hình 3.14 Biểu đồ diễn tiến cho chức năng offer đồ vật cho một request