Thông tin tài liệu:
Trong bài viết này không có tham vọng trình bày lại chi tiết mô hình thiết kế ứng dụng đa lớp/tầng là như thế nào. Chỉ tóm tắt ngắn gọn lại những điểm chính của mô hình 3 lớp, mà cụ thể là 3 lớp logic.
Nội dung trích xuất từ tài liệu:
Một số khái niệm về mô hình 3 lớp Một số khái niệm về mô hình 3 lớp Trong bài viết này không có tham vọng trình bày lại chi tiết mô hình thiết kế ứngdụng đa lớp/tầng là như thế nào. Chỉ tóm tắt ngắn gọn lại những điểm chính của môhình 3 lớp, mà cụ thể là 3 lớp logic.Lưu ý: Các bạn không nên nhầm lẫn khái niệm lớp(layer) trong phần này với khái niệmlớp(class) của các ngôn ngữ lập trình hướng đối tượng.Trong phát triển ứng dụng, để dễ quản lý các thành phần của hệ thống, cũng như khôngbị ảnh hưởng bởi các thay đổi, người ta hay nhóm các thành phần có cùng chức năng lạivới nhau và phân chia trách nhiệm cho từng nhóm để công việc không bị chồng chéo vàảnh hưởng lẫn nhau. Ví dụ trong một công ty bạn có từng phòng ban, mỗi phòng ban sẽchịu trách nhiệm một công việc cụ thể nào đó, phòng này không được can thiệp vàocông việc nội bộ của phòng kia như Phòng tài chính thì chỉ phát lương, còn chuyện lấytiền đâu phát cho các anh phòng Marketing thì các anh không cần biết. Trong phát triểnphần mềm, người ta cũng áp dụng cách phân chia chức năng này. Bạn sẽ nghe nói đếnthuật ngữ kiến trúc đa tầng/nhiều lớp, mỗi lớp sẽ thực hiện một chức năng nào đó,trong đó mô hình 3 lớp là phổ biến nhất. 3 lớp này là gì? Là Presentation, Business Logic,và Data Access. Các lớp này sẽ giao tiếp với nhau thông qua các dịch vụ(services) màmỗi lớp cung cấp để tạo nên ứng dụng, lớp này cũng không cần biết bên trong lớp kialàm gì mà chỉ cần biết lớp kia cung cấp dịch vụ gì cho mình và sử dụng nó mà thôi.Mô hình 3 lớp mà Microsoft đề nghị dùng cho các hệ thống phát triển trên nền .NET nhưsau:Bạn có thể tham khảo chi tiết các đề nghị thiết kế các thành phần trong lớp này như thếnào ở đây:http://www.microsoft.com/Downloads/details.aspx?familyid=A08E4A09-7AE3-4942-B466-CC778A3BAB34&displaylang=enPresentation LayerLớp này làm nhiệm vụ giao tiếp với người dùng cuối để thu thập dữ liệu và hiển thịkết quả/dữ liệu thông qua các thành phần trong giao diện người sử dụng. Lớp này sẽ sửdụng các dịch vụ do lớp Business Logic cung cấp. Trong .NET thì bạn có thể dùngWindows Forms, ASP.NET hay Mobile Forms để hiện thực lớp này.Trong lớp này có 2 thành phần chính là User Interface Components và User InterfaceProcess Components.UI Components là những phần tử chịu trách nhiệm thu thập và hiển thị thông tin chongười dùng cuối. Trong ASP.NET thì những thành phần này có thể là các TextBox, cácButton, DataGrid…UI Process Components: là thành phần chịu trách nhiệm quản lý các qui trình chuyển đổigiữa các UI Components. Ví dụ chịu trách nhiệm quản lý các màn hình nhập dữ liệutrong một loạt các thao tác định trước như các bước trong một Wizard…Lưu ý : lớp này không nên sử dụng trực tiếp các dịch vụ của lớp Data Access mà nên sửdụng thông qua các dịch vụ của lớp Business Logic vì khi bạn sử dụng trực tiếp nhưvậy, bạn có thể bỏ qua các ràng buộc, các logic nghiệp vụ mà ứng dụng cần phải có.Business Logic LayerLớp này thực hiện các nghiệp vụ chính của hệ thống, sử dụng các dịch vụ do lớp DataAccess cung cấp, và cung cấp các dịch vụ cho lớp Presentation. Lớp này cũng có thể sửdụng các dịch vụ của các nhà cung cấp thứ 3 (3rd parties) để thực hiện công việc củamình(ví dụ như sử dụng dịch vụ của các cổng thanh tóan trực tuyến như VeriSign,Paypal…).Trong lớp này có các thành phần chính là Business Components, Business Entities vàService Interface.Service Interface là giao diện lập trình mà lớp này cung cấp cho lớp Presentation sửdụng. Lớp Presentation chỉ cần biết các dịch vụ thông qua giao diện này mà không cầnphải quan tâm đến bên trong lớp này được hiện thực như thế nào.Business Entities là những thực thể mô tả những đối tượng thông tin mà hệ thống xử lý.Trong ứng dụng chúng ta các đối tượng này là các chuyên mục(Category) và bảntin(News). Các business entities này cũng được dùng để trao đổi thông tin giữa lớpPresentation và lớp Data Access.Business Components là những thành phần chính thực hiện các dịch vụ mà ServiceInterface cung cấp, chịu trách nhiệm kiểm tra các ràng buộc logic(constraints), các quitắc nghiệp vụ(business rules), sử dụng các dịch vụ bên ngoài khác để thực hiện các yêucầu của ứng dụng.Trong ứng dụng của chúng ta, lớp này sẽ chứa các thành phần là CategoryService vàNewsService làm nhiệm vụ cung cấp các dịch vụ quản lý chuyên mục và các bản tin(thêm, xóa, sửa, xem chi tiết, lấy danh sách…).Data Access LayerLớp này thực hiện các nghiệp vụ liên quan đến lưu trữ và truy xuất dữ liệu của ứngdụng. Thường lớp này sẽ sử dụng các dịch vụ của các hệ quản trị cơ sở dữ liệu nhưSQL Server, Oracle,… để thực hiện nhiệm vụ của mình. Trong lớp này có các thànhphần chính là Data Access Logic, Data Sources, Servive Agents).Data Access Logic components (DALC) là thành phần chính chịu trách nhiệm lưu trữ vàovà truy xuất dữ liệu từ các nguồn dữ liệu – Data Sources như RDMBS, XML, Filesystems…. Trong .NET Các DALC này thường được hiện thực bằng c ...