II. Cấu trúc Client/ Server Three-Tier:
2. So sánh ba hệ thống One-Tier, Two-Tier, Three-Tier:
One-Tier : Một chương trình làm tất cả mọi việc:
Hệ thống One-Tier dùng một chương trình làm hết tất cả mọi việc. Hình bên dưới minh hoạ ứng dụng chạy trên mainframe. Nó chịu trách nhiệm về mọi mặt của hệ thống: giao diện người dùng, chuần hoá đầu vào, thi hành luật kinh doanh, xử lý yêu cầu xuất nhập các file dữ liệu.
SVTH: Lương Ngọc Tuấn 34 1998 - 2003
Nguyễn Minh Quân
Chương trình ứng dụng Giao diện chuẩn hoá Thi hành luật kinh doanh
Xử lý yêu cầu Mainframe Database Mạng SNA Người dùng trên một Terminal Người dùng trên một Terminal Người dùng trên một Terminal Người dùng trên một Terminal Người dùng trên một Terminal Hệ thống One-tier MainFrame
Khách quan về hệ thống One-tier là hệ thống file Server tựa PC. Đây là hệ thống thường gặp ở các công ty nhỏ có ít hơn 10 trạm làm việc trên một hệ thống LAN chia sẽ các database Access hay Foxpro.
Các thuật ngữ one-tier và Client Server thì loại trừ lẫn nhau. Theo định nghĩa hệ thống Client/ Server phải có ít nhất 2 máy, một máy đóng vai trò Client , maý còn lại đóng vai trò Server.
Như vậy, mô hình one-tier sẽ làm việc rất nặng.
Mô hình Two-Tier : làm việc thông minh hơn, bớt cực hơn
Hệ thống Two-Tier dưới đây thật sự là một bước tiến tới đa xử lý. Đây là mô hình Client/ Server phổ biến nhất ngày nay, trên lý thuyết thì database trên Server không cần phải là database quan hệ.
SVTH: Lương Ngọc Tuấn 35 1998 - 2003
Nguyễn Minh Quân
Database trên đĩa
Database server
DBMS Quan hệ Thi hành luật kinh doanh
Xử lý yêu cầu
Mạng Enterprice LAN hay WAN
Trạm làm việc Front-End Giao diện người dùng Kiểu dữ liệu chuẩn hoá
Luật kinh doanh chuẩn Trạm làm việc
Front-End Giao diện người dùng Kiểu dữ liệu chuẩn hoá
Luật kinh doanh chuẩn
Người dùng ở trạm làm việc Người dùng ở trạm làm việc
Trong hệ thống này nhiệm vụ của chương trình ứng dụng được phân chia làm 2 phần. Client ứng dụng front-end, thu nhập các input của người dùng, chuẩn hoá các kiểu dữ liệu (như ngày tháng hay số điện thoại) và chuẩn hoá các luật kinh doanh đơn giản (như là đơn đặt hàng này có thể nhằm vào những loại hàng nào mà công ty không có). Còn phía Server thì có trách nhiệm thi hành thật sự các luật kinh doanh. Có nghĩa là nó hoạt động thật sự như người gác cổng loại bỏ tất cả những yêu cầu có thể gây ra những dữ liệu sai có thể lưu vào database.
Mô hình này chiếm tải mạng nhẹ hơn mô hình One-Tier. Client không cần Server chuyển cho mình một khối lượng lớn hơn các file dữ liệu qua mạng. Ví dụ Client chỉ cần chuyển qua mạng bởi chuổi text theo tieu chuẩn ASCII mô tả những gì nó cần xem (query) và những gì phải thay đổi trong dữ liệu (transaction). Trong thực tế tất cả những yêu cầu được viết bằng một ngôn ngữ gọi là Structure Query Language (SQL). Chuỗi ký tự đó sẽ được diễn dịch tại Server bởi một hệ thống CSDL quan hệ như là : Oracle, Sysbase, Informix hay Microsoft SQL Server.
SVTH: Lương Ngọc Tuấn 36 1998 - 2003
Trong hình vẽ trên, luật kinh doanh xuất hiện ở cả hai nơi Client và Server. Những chuẩn hoá đơn giản sẽ được thực hiện ở Client còn server thì thi hành chúng thực sự,. Sự bất lợi ở đây là khi ta thay đổi luật thì phải làm ở cả hai nơi.
Có nhiều nguyên nhân để đặt luật kinh doanh ở hai nơi như trên. Thứ nhất server có thể ở rất xa trong LAN, điều này bắt buộc server phải chuẩn hoá tất cả các luật để đảm bảo thống nhất dữ liệu sẽ làm chậm ứng dụng đi rất nhiều. Thứ hai, giao diện với người dùng được thiết kế để lấy được những thuận lợi của kinh doanh. Ví dụ các yêu cầu có thể được thực hiện bằng các listbox kéo xuống thay vì người dùng phải vật vã với các dòng SQL. Bởi vì trong mô hình dữ liệu được rút ra từ nhu cầu của luật kinh doanh.
Three-Tier : Con đường dẫn tới xử lý phân bố :
Một hệ thống Three-Tier, hay đôi khi là n-tier, là một mô hình được biến đổi từ các mô hình trứơc đó. Các front-end sẽ nhỏ gọn hơn. nó sẽ chỉ chứa code để thu thập dữ liệu một cách sạch sẽ và hiệu quả. Luật kinh doanh sẽ được dời càng nhiều càng tốt sang “tầng giữa” gọi là tầng dịch vụ hay là middleware. Tầng có nhiệm vụ tạo ra các giao dịch sẽ chuyển cho các Server dữ liệu.
Hệ thống Tree-Tier có thể được gọi là n-tier bởi vì tầng giữa có thể phức tạp với nhiều thành phần tương tác nhau. Nếu chúng ta coi mỗi thành phần là một tầng thì chúng ta có thể lên rất nhiều tầng. Vì thế một số người đã gọi mô hình này là n-tier.
Mô hình two-tier dựa trên các câu lệnh SQL để giao tiếp giữa các tầng. Nhưng thật không may, SQL là một ngôn ngữ thông dịch cho nên chúng được kiểm tra cú pháp và chuẩn hoá trước khi thi hành. Mặc dù chúng có một ưu điểm to lớn là việc gửi các yêu cầu từ môi trường này sang môi trường khác – như là từ một PC sang hệ thống UNIX– nhưng nó có một số nhược điểm làm chậm chương trình.
SVTH: Lương Ngọc Tuấn 37 1998 - 2003
Nguyễn Minh Quân
Cơ sở dữ liệu trên đĩa Datavase RDBMS Server Xử lý yêu cầu Xuất nhập file dữ liệu
Datavase RDBMS Server
Xử lý yêu cầu Xuất nhập file dữ liệu
Server ứng dụng Tầng giữa (middleware) Thi hành luật kinh doanh
Mạng LAN hay MAN
Trạm làm việc Front-end Giao diện Trạm làm việc Front-end Giao diện Người dùng ở trạm làm việc Người dùng ở trạm làm việc
Hệ thống Three-tier Client/ Server
Trong những hệ thống Three-Tier mới đây, người ta vẫn dùng các chuỗi text để giao tiếp qua mạng. Điều này có nghĩa là tầng giữa vẫn chậm (bởi vì chúng phải diễn dịch các chuỗi) và thụ động (vì chúng xử lý các chuổi như là những thực tế đóng kín di chuyển từ nơi này sang nơi khác- giống như bưu điện xử lý một lá thư).
Với sự phát triển nhanh chóng của Microsoft nhu là một cấu hình chuẩn cho PC, cộng với sự xuất hiện của Network OLE thì đã có một giao thức được định nghĩa cho sự giao tiếp giữa các ứng dụng thay cho việc gửi các chuổi text như trước. Đó là remote OLE một cánh cửa mở rộng cho dù hiện thời nó chạy vẫn còn khá chậm nhưng trong tương lai gần, hu vọng chúng ta sẽ được chứng kiến những tiến bộ đầy kịch tính của nó.
Một ưu điểm to lớn của mô hình Three-Tier là chúng ta không cần dùng SQL để mã hoá các luật kinh doanh. Trong mô hình Two-tier các luật kinh doanh nằm ở các server chỉ nói có một ngôn ngữ đó là SQL. Bởi vì SQL dựa trên nền của lý thuyết tập hợp cho nên nó chỉ lý tưởng cho việc chọn lựa dữ liệu từ một khối lớn nhưng dùng nó rất bất tiện cho việc mô tả những luật kinh doanh. Các luật kinh doanh dường như dễ mô tả hơn khi dùng ngôn ngữ lập trình như VB hay C++
Các mô hình dịch vụ : mọi thứ đều có việc làm :
SVTH: Lương Ngọc Tuấn 38 1998 - 2003
Đi từ mô hình Two-tier sanng mô hình Three-tier thì dường như không phải là một bước tiến lớn chỉ cần thên một khối trong mô hình gọi là Tầng giữa. Nhưng thực tế trong mô hình Three-tier khái niệm mỗi tầng được đại diện bởi một chương trình bị mất hết ý nghĩa. Đột nhiên khái niệm xử lý phân bố trở nên hiện thực hơn bao giờ hết.
Trong hệ thống Two-tier Client Server dường như phải được phát triển đồng thời; cái này đựơc thiết kế để giao tiếp với cái kia và ngược lại. Trong nhiều hệ thống Two- tier mỗi truy xuất từ một back-end không thiết kế cho nó đều để lại các lổ thủng về an ninh.
Trong hệ thống Three-tier, tầng giữa là một tập hợp các chương trình cung cấp các dịch vụ cho các front-end. Vì vậy, khi nó được thiết kế tốt thì hệ thống vừa dễ phát triển vừa dễ bảo đảm an ninh.
Ta có thể chia thành phần trung gian qua nhiều máy. Vì vậy, cấu trúc 3 tầng khi đó trở thành cấu trúc n tầng.