10/10/2018, 10:31

lập trình web với mô hình 3 lớp ????

em ko hiểu mô hình 3 lớp trong lập trình web là sao . Anh chị nào giải thích giủm em nhé. Em cám ơn nhiều
satthuhuydiet viết 12:31 ngày 10/10/2018
Được gửi bởi tho_ngoc_88
em ko hiểu mô hình 3 lớp trong lập trình web là sao . Anh chị nào giải thích giủm em nhé. Em cám ơn nhiều
chà chà cái này bạn nên qua một khóa về .Net hoặc Java RMI mới hiểu cặn kẽ được.
tho_ngoc_88 viết 12:46 ngày 10/10/2018
trời ơi, cám ơn anh

ủa, thế em lập trình web với PHP và mysql thì có đựơc áp dụng mô hình 3 lớp ko anh ?
dathuminh viết 12:35 ngày 10/10/2018
Muốn làm 1 lớp, 2 lớp hay nhiều lớp cũng được. Ít lớp thì khó quản lý mà nhiều lớp thì tính performance bị giảm. Thông thường người ta dùng 3 lớp cho các ứng dụng qua mạng. 3 lớp đó bao gồm:
- presentation tier: lớp giao diện người dùng (có thể có các script và validation đơn giản, không động chạm gì đến csdl)
- business logic tier: lớp xử lý các nghiệp vụ (validation có liên quan đến csdl, quyết định truy xuất cái gì, xử lý và trả về cái gì)
- data tier : lớp truy xuất csdl (tạo các câu lệnh sql, kết nối db thực hiện các yêu cầu select, insert, update, delete, ...)
babyheo viết 12:44 ngày 10/10/2018
chào bạn!
Mình có vài ý về vấn đề bạn hỏi thế này!
Trong lập trình, với những đồ án lớn 1 vài người không thể hoàn thành đc => nảy sinh vấn đề làm sao để nhiều người cùng làm mà mỗi nhóm làm độc lập, ko bị gối đầu nhau => phải chia dự án làm nhiều phần độc lập tương đối mà mỗi nhóm có thể làm mà ko phụ thuộc nhóm khác và mã viết ra phải đc sử dụng lại dễ dàng. Từ đó nảy sinh ra mô hình đa tầng trong lập trình!

Mỗi tầng sẽ do một nhóm đảm nhiệm và đóng vai trò như 1 hộp đen đối với các tầng khác. Nghĩa là, các tầng thấp chỉ đc biết trong tầng cao có các method nào, input và output ntn, và chấm hết! Những xử lý cụ thể thì ko cần biết làm gì!

Mục đích cuối cùng là tăng khả năng quản lý chứ ko tăng performance!

Nhìn vào một ứng dụng CSDL, mọi người có thể nhìn thấy rõ ràng là nó sẽ bao gồm 2 công việc chính:
1- NHập yêu cầu từ user và hiển thị kết quả cho user xem.
2- Ứng dụng xử lý yêu cầu!

ứng với đó, người ta chia ứng dụng là các tầng tương ứng như sau:
1- Presentation layer: Chịu trách nhiệm validate các input từ người dùng, đảm bảo người dùng ko nhập sai ( ví dụ nơi nhập tuổi thì phải gõ vào số >0 chứ ko gõ lung tung). Mục đích là giảm tải bới xử lý cho các tầng sau. Công việc xử lý này sẽ chạy trên client!

2- Business (logic) layer: Phần này theo như tên của nó, sẽ làm công việc tính toán các con số mà client đưa vào. Tầng này đc chạy trên webserver! Sau khi tính toán thì tầng này sẽ phải update vào Db. Tuy nhiên kết nối với DB server như thế nào thì tầng này ko thể quyết định đc. Nó phải gởi yêu cầu truy cập DB cho tầng 3. Bạn thử tưởng tượng, nếu để tầng logic truy cập vào DB, chưa nói đến vấn đề security, chỉ xét đến việc quản lý thì mỗi yêu cầu update DB, tầng này sẽ làm công việc 1- mở connection, 2- thi hành query, 3- đóng connection => rối rắm và nếu nhiều công việc như thế 1 lúc => chết db server. Theo tôi biết thì mấy năm trước, các website tra cứu điểm tuyển sinh cũng chết vì quản lý connection vào DB chưa tốt.

3- Data layer: Tầng này sẽ làm việc truy cập trực tiếp vào DB server. Lý do để sinh ra tầng này là để tập trung quản lý các connection vào DB. Tầng này sẽ làm việc tạo các kết nối, có cơ chế cache cũng như security... Microsoft có một bộ Enterprise library rất hay làm sẵn cho ta cái tầng 3 này rồi => vô cùng khỏe! ()

Tóm lại, những điều trên chỉ ở mức tương đối, phụ thuộc vào trình độ của project leaders khi phân tích thiết kế. Nhưng, trong nhiều trường hợp, sự quá độc lập dễ dẫn đến việc khó viết code và dẫn đến giảm performance. Đối với 1 số người, công việc của tầng logic chỉ là gọi đến tầng 3 chứ chẳng làm xử lý gì khác. Công việc xử lý các business sẽ đc viết trên stored procedure. Việc này có lợi ở chỗ, khi muốn thay đổi Business logic => thay đổi stored procedure chứ ko thay đổi ứng dụng => ko cần compile lại ứng dụng.

Cuối cùng, việc phân tầng này có thể đc implement trong các ứng dụng dù viết = ngôn ngữ gì, ko phải của java hay .net!

Còn nhiều điều nữa, nhưng sắp đến giờ ăn trưa rồi
Mọi người thấy có thiếu sót thì xin chỉ bảo. Thanks
tho_ngoc_88 viết 12:34 ngày 10/10/2018
thanks các anh nhiều nhiều lắm, em đã hiểu rồi. Các anh nhiệt tình thật, cám ơn các anh nha.
tienduydhkh viết 12:42 ngày 10/10/2018
các bác hãy chỉ cho em " cấu trúc của một trang web để có thể đưa vào ứng dụng thực tế".Em cần rất gấp nhờ các bác giúp giùm cho. Cám ơn nhiều.
vntux viết 12:41 ngày 10/10/2018
Chắc ý bạn này hỏi về MVC
lalan1 viết 12:34 ngày 10/10/2018
Bạn lập trình mô hình ba lớp tuần tự như sau : tạo class Mysql(chứa các function thực thi các câu truy vấn tới cơ sở dữ liệu như insert, delete, update, ...),class Events(chứa các function lấy các sự kiện của người dùng tác đọng vào tầng giao diện và gọi class Mysql ra để thao tác với CSDL...),class XTemplate(chứa các function lấy giao diện của trang web các file Xtemplate...) okey.
lightstarvn viết 12:38 ngày 10/10/2018
Bạn search MVC - hay 3-tier đi là biết về mô hình 3 lớp thôi
Bài liên quan
0