Các giải pháp kiến ​​trúc khác nhau được sử dụng khi triển khai cơ sở dữ liệu nhiều người dùng. tổng quan ngắn gọn về subd. Đặc điểm kiến ​​trúc của thiết kế và phát triển ứng dụng web

Để giải quyết những vấn đề này, kiến ​​trúc máy chủ-máy khách đa cấp (ba cấp độ trở lên) được sử dụng.

Những kiến ​​trúc như vậy phân phối các mô-đun xử lý dữ liệu một cách thông minh hơn trường hợp được thực thi trên một hoặc nhiều máy chủ riêng biệt. Các mô-đun phần mềm này thực hiện các chức năng của máy chủ cho giao diện người dùng và máy khách cho máy chủ cơ sở dữ liệu. Ngoài ra, các máy chủ ứng dụng khác nhau có thể giao tiếp với nhau để phân chia hệ thống thành các đơn vị chức năng thực hiện các vai trò cụ thể một cách chính xác hơn.

Ví dụ: bạn có thể chọn một máy chủ quản lý nhân sự sẽ thực hiện tất cả các chức năng cần thiết cho việc quản lý nhân sự. Bằng cách liên kết một cơ sở dữ liệu riêng với nó, bạn có thể ẩn tất cả chi tiết triển khai của máy chủ này với người dùng, cho phép họ chỉ truy cập các chức năng công khai của nó. Ngoài ra, một hệ thống như vậy rất dễ thích ứng với Web, vì việc phát triển các biểu mẫu HTML sẽ dễ dàng hơn để người dùng truy cập các chức năng nhất định của cơ sở dữ liệu thay vì tất cả dữ liệu.

Trong kiến ​​trúc ba tầng, máy khách không bị quá tải với các chức năng xử lý dữ liệu mà thực hiện vai trò chính là một hệ thống trình bày thông tin đến từ máy chủ ứng dụng. Giao diện như vậy có thể được triển khai bằng các công cụ công nghệ Web tiêu chuẩn - trình duyệt, CGI và Java. Điều này làm giảm lượng dữ liệu được truyền giữa máy khách và máy chủ ứng dụng, cho phép các máy khách kết nối ngay cả trên đường dây chậm như đường dây điện thoại. Ngoài ra, phía máy khách có thể đơn giản đến mức trong hầu hết các trường hợp, nó được triển khai bằng trình duyệt phổ thông. Nhưng nếu bạn vẫn phải thay đổi nó thì thủ tục này có thể được thực hiện nhanh chóng và không gây đau đớn. Kiến trúc máy khách-máy chủ ba tầng cho phép gán quyền của người dùng chính xác hơn, vì họ nhận được quyền truy cập không phải vào chính cơ sở dữ liệu mà đối với một số chức năng nhất định của máy chủ ứng dụng. Điều này làm tăng tính bảo mật của hệ thống (so với kiến ​​trúc thông thường) không chỉ khỏi các cuộc tấn công có chủ ý mà còn khỏi các hành động sai lầm của nhân sự.

Ví dụ, hãy xem xét một hệ thống có nhiều phần khác nhau chạy trên nhiều máy chủ ở xa nhau. Giả sử rằng nhà phát triển đã nhận được phiên bản mới của hệ thống, để cài đặt phiên bản này trong kiến ​​​​trúc hai cấp, cần phải thay đổi đồng thời tất cả các mô-đun hệ thống. Nếu điều này không được thực hiện, thì sự tương tác của máy khách cũ với máy chủ mới có thể dẫn đến những hậu quả khó lường, vì các nhà phát triển thường không tính đến việc sử dụng hệ thống như vậy. Trong kiến ​​trúc ba tầng, tình huống được đơn giản hóa. Thực tế là bằng cách thay đổi máy chủ ứng dụng và máy chủ lưu trữ dữ liệu (điều này rất dễ thực hiện cùng lúc, vì cả hai chúng thường nằm gần nhau), chúng tôi ngay lập tức thay đổi tập hợp các dịch vụ có sẵn. Do đó, khả năng xảy ra lỗi do không khớp giữa các phiên bản của bộ phận máy chủ và máy khách sẽ giảm đáng kể. Nếu một dịch vụ biến mất trong phiên bản mới, thì các thành phần giao diện phục vụ dịch vụ đó trong hệ thống cũ sẽ không hoạt động. Nếu thuật toán của dịch vụ đã thay đổi, nó sẽ hoạt động chính xác ngay cả với giao diện cũ.

Các hệ thống máy khách-máy chủ đa cấp có thể được chuyển sang công nghệ Web khá dễ dàng - để làm được điều này, chỉ cần thay thế phần máy khách bằng một trình duyệt phổ thông hoặc chuyên dụng, đồng thời bổ sung cho máy chủ ứng dụng một máy chủ Web và các chương trình gọi thủ tục máy chủ nhỏ . Cả Giao diện cổng chung (CGI) và công nghệ Java hiện đại hơn đều có thể được sử dụng để phát triển các chương trình này.

Cũng cần lưu ý rằng trong hệ thống ba cấp, khá nhiều thông tin được truyền qua kênh liên lạc giữa máy chủ ứng dụng và cơ sở dữ liệu. Tuy nhiên, điều này không làm chậm quá trình tính toán vì có thể sử dụng các đường nhanh hơn để kết nối các phần tử này. Điều này đòi hỏi nỗ lực tối thiểu vì cả hai máy chủ thường được đặt trong cùng một cơ sở. Do đó, tổng hiệu suất của hệ thống tăng lên - hai máy chủ khác nhau hiện đang thực hiện một nhiệm vụ và việc liên lạc giữa chúng có thể được thực hiện thông qua đường truyền nhanh nhất với chi phí tối thiểu. Đúng vậy, có một vấn đề về tính nhất quán trong các tính toán chung mà người quản lý giao dịch - các yếu tố mới của hệ thống đa cấp - được yêu cầu giải quyết.

Kiến trúc máy khách-máy chủ(kiến trúc máy khách-máy chủ) là khái niệm về mạng thông tin trong đó phần lớn tài nguyên của nó tập trung vào các máy chủ phục vụ khách hàng của họ. Kiến trúc được đề cập xác định hai loại thành phần: máy chủ và máy khách.

Máy chủ - là một đối tượng cung cấp dịch vụ tới các đối tượng mạng khác theo yêu cầu của họ. Dịch vụ là một quá trình phục vụ khách hàng.

Hình kiến ​​trúc Client-server

Máy chủ hoạt động theo yêu cầu của khách hàng và quản lý việc thực hiện công việc của họ. Sau khi hoàn thành mỗi công việc, máy chủ sẽ gửi kết quả đến máy khách đã gửi công việc đó.

Chức năng dịch vụ trong kiến ​​trúc máy khách-máy chủ được mô tả bằng một tập hợp các chương trình ứng dụng, theo đó các quy trình ứng dụng khác nhau được thực hiện.

Một tiến trình gọi một hàm dịch vụ bằng các thao tác nhất định được gọi là khách hàng. Đây có thể là một chương trình hoặc một người dùng. Khách hàng- đây là những máy trạm sử dụng tài nguyên máy chủ và cung cấp các tiện ích giao diện người dùng. Giao diện người dùngĐây là các quy trình về cách người dùng tương tác với hệ thống hoặc mạng.

Hình mô hình Client-Server

Máy khách là người khởi xướng và sử dụng email hoặc các dịch vụ máy chủ khác. Trong quá trình này, khách hàng yêu cầu một dịch vụ, thiết lập phiên, nhận được kết quả mong muốn và báo cáo việc hoàn thành.

TRONG mạng có máy chủ tập tin chuyên dụng trên một thiết bị độc lập chuyên dụng máy tính một hệ điều hành mạng máy chủ được cài đặt. Cái này máy tính trở thành máy chủ. Phần mềm ( QUA), được cài đặt trên máy trạm, cho phép nó trao đổi dữ liệu với máy chủ. Các hệ điều hành mạng phổ biến nhất là:

Ngoài hệ điều hành mạng, cần có các ứng dụng mạng để tận dụng được lợi ích của mạng.

Mạng dựa trên máy chủ có hiệu suất tốt hơn và độ tin cậy tăng lên. Máy chủ sở hữu các tài nguyên mạng chính được các máy trạm khác truy cập.

Trong kiến ​​trúc máy khách-máy chủ hiện đại, bốn nhóm đối tượng được phân biệt: máy khách, máy chủ, dữ liệu và dịch vụ mạng. Khách hàng được đặt trong hệ thống tại máy trạm của người dùng. Dữ liệu chủ yếu được lưu trữ trên máy chủ. Dịch vụ mạng là các máy chủ và dữ liệu được chia sẻ. Ngoài ra, dịch vụ còn quản lý các thủ tục xử lý dữ liệu.

Mạng kiến ​​trúc client-server có những ưu điểm sau:

Cho phép bạn tổ chức các mạng với số lượng lớn máy trạm;

Cung cấp quản lý tập trung tài khoản người dùng, bảo mật và truy cập, giúp đơn giản hóa việc quản trị mạng;


Truy cập hiệu quả vào tài nguyên mạng;

Người dùng cần một mật khẩu để đăng nhập vào mạng và có quyền truy cập vào tất cả các tài nguyên mà quyền của người dùng được áp dụng.

Cùng với những ưu điểm của mạng client-server, kiến ​​trúc này cũng có một số nhược điểm:

Sự cố máy chủ có thể khiến mạng không thể hoạt động hoặc ít nhất là làm mất tài nguyên mạng;

Yêu cầu nhân sự có trình độ để quản lý;

Họ có chi phí mạng và thiết bị mạng cao hơn.

]. Điều này cho phép bạn tách biệt các chức năng lưu trữ, xử lý và trình bày dữ liệu để sử dụng hiệu quả hơn các khả năng của máy chủ và máy khách.

Trong số kiến ​​trúc client-server nhiều tầng, phổ biến nhất là kiến ​​trúc ba tầng ( kiến trúc ba tầng, ba tầng), giả định sự hiện diện của các thành phần ứng dụng sau: một ứng dụng khách (thường được gọi là "máy khách mỏng" hoặc thiết bị đầu cuối) được kết nối với máy chủ ứng dụng, do đó được kết nối với máy chủ cơ sở dữ liệu [ , ].

cơm. 5.4.


Cơm. 5.4. Trình bày kiến ​​trúc máy khách-máy chủ nhiều tầng

  • Thiết bị đầu cuối là một thành phần giao diện (thường là đồ họa) đại diện cho cấp độ đầu tiên, ứng dụng thực tế, cho người dùng cuối. Cấp độ đầu tiên không được có kết nối trực tiếp với cơ sở dữ liệu (vì lý do bảo mật), được tải logic nghiệp vụ cốt lõi (vì lý do khả năng mở rộng) và lưu trữ trạng thái ứng dụng (vì lý do độ tin cậy). Logic nghiệp vụ đơn giản nhất có thể và thường được đặt ở cấp độ đầu tiên: giao diện ủy quyền, thuật toán mã hóa, kiểm tra tính hợp lệ và tuân thủ định dạng của các giá trị đã nhập, các thao tác đơn giản (sắp xếp, nhóm, đếm giá trị) với dữ liệu đã được tải trên phần cuối.
  • Máy chủ ứng dụng nằm ở cấp độ thứ hai. Cấp độ thứ hai chứa hầu hết logic nghiệp vụ. Bên ngoài nó vẫn còn các mảnh được xuất đến thiết bị đầu cuối, cũng như các thủ tục được lưu trữ và trình kích hoạt được nhúng ở cấp độ thứ ba.
  • Máy chủ cơ sở dữ liệu cung cấp lưu trữ dữ liệu và được chuyển sang cấp độ thứ ba. Thông thường đây là một DBMS quan hệ hoặc hướng đối tượng tiêu chuẩn. Nếu cấp độ thứ ba là cơ sở dữ liệu cùng với các thủ tục được lưu trữ, trình kích hoạt và lược đồ mô tả ứng dụng theo mô hình quan hệ thì cấp độ thứ hai được xây dựng dưới dạng giao diện lập trình kết nối các thành phần máy khách với logic ứng dụng của cơ sở dữ liệu.

Trong cấu hình vật lý đơn giản nhất máy chủ ứng dụng có thể được kết hợp với máy chủ cơ sở dữ liệu trên một máy tính có một hoặc nhiều thiết bị đầu cuối được kết nối qua mạng.

Trong cấu hình “chính xác” (về bảo mật, độ tin cậy, mở rộng quy mô) máy chủ cơ sở dữ liệu nằm trên một máy tính (hoặc cụm) chuyên dụng mà một hoặc nhiều máy chủ ứng dụng, đến lượt các thiết bị đầu cuối được kết nối qua mạng.

Ưu điểm của kiến ​​trúc này là [ , , , ]:

  • phần mềm máy khách không yêu cầu quản trị;
  • khả năng mở rộng;
  • khả năng cấu hình – cách ly các cấp độ với nhau cho phép bạn cấu hình lại hệ thống một cách nhanh chóng và dễ dàng khi xảy ra lỗi hoặc trong quá trình bảo trì theo lịch trình ở một trong các cấp độ;
  • bảo mật cao;
  • độ tin cậy cao;
  • yêu cầu thấp về tốc độ kênh (mạng) giữa các thiết bị đầu cuối và máy chủ ứng dụng;
  • yêu cầu thấp về hiệu suất và đặc tính kỹ thuật của thiết bị đầu cuối, dẫn đến giảm giá thành.
  • sự phức tạp của phần máy chủ và do đó, chi phí quản lý và bảo trì ngày càng tăng;
  • độ phức tạp cao hơn của việc tạo ứng dụng;
  • khó triển khai và quản lý hơn;
  • yêu cầu hiệu suất cao máy chủ ứng dụngmáy chủ cơ sở dữ liệu, và do đó, chi phí thiết bị máy chủ cao;
  • yêu cầu cao về tốc độ kênh (mạng) giữa máy chủ cơ sở dữ liệumáy chủ ứng dụng.
  1. Hiệu suất;
  2. Lớp trình bày;
  3. Mức logic;
  4. Lớp dữ liệu;
  5. Dữ liệu.


Cơm. 5.5. Năm cấp độ kiến ​​trúc client-server nhiều tầng

Bản trình bày bao gồm tất cả thông tin được hiển thị trực tiếp cho người dùng: các trang HTML được tạo, biểu định kiểu, hình ảnh.

Lớp trình bày bao gồm mọi thứ liên quan đến giao tiếp của người dùng với hệ thống. Các chức năng chính của lớp trình bày bao gồm hiển thị thông tin và diễn giải đầu vào của người dùng và chuyển đổi chúng thành các hoạt động phù hợp trong bối cảnh logic và dữ liệu.

Mức logic chứa các chức năng chính của hệ thống được thiết kế để đạt được mục tiêu của nó. Các chức năng này bao gồm các tính toán dựa trên dữ liệu đầu vào và được lưu trữ, xác thực tất cả các thành phần dữ liệu và các lệnh xử lý từ lớp trình bày cũng như truyền thông tin đến lớp dữ liệu.

Lớp truy cập dữ liệu là một tập hợp con các chức năng cung cấp sự tương tác với các hệ thống của bên thứ ba thực hiện các tác vụ vì lợi ích của ứng dụng.

Dữ liệu hệ thống thường được lưu trữ trong cơ sở dữ liệu.

5.1.6. Kiến trúc hệ thống phân tán

Loại hệ thống này phức tạp hơn về mặt tổ chức hệ thống. Bản chất phân phối hệ thống là để lưu trữ các bản sao cục bộ của dữ liệu quan trọng.

Về mặt sơ đồ, một kiến ​​trúc như vậy có thể được biểu diễn như trong Hình 2. 5.6.


Cơm. 5.6.

Hơn 95% dữ liệu được sử dụng trong quản lý doanh nghiệp có thể được đặt trên một máy tính cá nhân, cho phép nó hoạt động độc lập. Dòng sửa đổi và bổ sung được tạo ra trên máy tính này không đáng kể so với lượng dữ liệu được sử dụng. Do đó, nếu bạn lưu trữ dữ liệu được sử dụng liên tục trên chính các máy tính và tổ chức trao đổi các sửa đổi và bổ sung cho dữ liệu được lưu trữ giữa chúng, thì tổng lưu lượng truyền sẽ giảm mạnh. Điều này giúp giảm yêu cầu về kênh liên lạc giữa các máy tính và thường xuyên sử dụng liên lạc không đồng bộ hơn, và nhờ đó, tạo ra các hệ thống thông tin phân tán hoạt động đáng tin cậy sử dụng các liên lạc không ổn định như Internet, thông tin di động và các kênh vệ tinh thương mại để kết nối cá nhân. các phần tử. Và việc giảm thiểu lưu lượng giữa các thành phần sẽ khiến chi phí vận hành kết nối như vậy trở nên khá phải chăng. Tất nhiên, việc triển khai một hệ thống như vậy không hề đơn giản và đòi hỏi phải giải quyết một số vấn đề, một trong số đó là việc đồng bộ hóa dữ liệu kịp thời.

Mỗi máy trạm độc lập, chỉ chứa thông tin cần thiết để làm việc và tính liên quan của dữ liệu trên toàn hệ thống được đảm bảo thông qua việc trao đổi tin nhắn liên tục với các máy trạm khác. Nhắn tin giữa các máy trạm có thể được thực hiện theo nhiều cách khác nhau, từ gửi dữ liệu qua email đến truyền dữ liệu qua mạng.

Bản dịch từ tiếng Anh: Chernobay Yu. A.

Phát triển hệ thống client-server

Kiến trúc của một hệ thống máy tính đã phát triển cùng với khả năng của phần cứng trong việc sử dụng các ứng dụng mà nó chạy. Đơn giản nhất (và sớm nhất) là "Kiến trúc máy tính lớn", trong đó tất cả các hoạt động và chức năng được thực hiện bên trong máy tính máy chủ (hoặc "máy chủ"). Người dùng tương tác với máy chủ thông qua các thiết bị đầu cuối "câm", truyền hướng dẫn bằng cách ghi lại các lần nhấn phím đến máy chủ và hiển thị kết quả của hướng dẫn cho người dùng. Các ứng dụng như vậy có tính chất điển hình và mặc dù sức mạnh tính toán tương đối lớn của máy tính chủ nhưng nhìn chung tương đối chậm và bất tiện khi sử dụng do cần phải truyền từng lần nhấn phím đến máy chủ.

Sự ra đời và sử dụng rộng rãi của PC, với khả năng xử lý tự nhiên và giao diện đồ họa người dùng, đã cho phép các ứng dụng trở nên phức tạp hơn và việc mở rộng các hệ thống nối mạng đã dẫn đến loại kiến ​​trúc hệ thống chính thứ hai, "Chia sẻ tệp". Trong kiến ​​trúc này, PC (hoặc "máy trạm") tải xuống các tệp từ một "máy chủ tệp" chuyên dụng và sau đó quản lý ứng dụng (bao gồm cả dữ liệu) cục bộ. Điều này hoạt động tốt khi mức sử dụng dữ liệu chia sẻ, cập nhật dữ liệu và lượng dữ liệu sẽ được truyền nhỏ. Tuy nhiên, người ta nhanh chóng nhận ra rằng việc chia sẻ tệp ngày càng làm tắc nghẽn mạng và các ứng dụng ngày càng phức tạp hơn cũng như yêu cầu truyền ngày càng nhiều dữ liệu theo cả hai hướng.

Các vấn đề liên quan đến ứng dụng xử lý dữ liệu qua tệp được chia sẻ qua mạng đã dẫn đến sự phát triển của kiến ​​trúc máy khách-máy chủ vào đầu những năm 1980. Theo cách tiếp cận này, máy chủ tệp được thay thế bằng máy chủ cơ sở dữ liệu, thay vì chỉ truyền và lưu trữ tệp đến các máy trạm (máy khách) được kết nối, máy chủ này nhận và thực hiện các yêu cầu về dữ liệu, chỉ trả về kết quả do máy khách yêu cầu. Bằng cách chỉ truyền dữ liệu do máy khách yêu cầu chứ không phải toàn bộ tệp, kiến ​​trúc này giúp giảm đáng kể tải mạng. Điều này giúp tạo ra một hệ thống trong đó nhiều người dùng có thể cập nhật dữ liệu thông qua giao diện GUI được liên kết với một cơ sở dữ liệu dùng chung.

Thông thường, Ngôn ngữ truy vấn có cấu trúc (SQL) hoặc Lệnh gọi thủ tục từ xa (RPC) được sử dụng để trao đổi dữ liệu giữa máy khách và máy chủ. Một số tùy chọn cơ bản để tổ chức kiến ​​trúc máy khách-máy chủ được mô tả dưới đây.

Trong kiến ​​trúc hai tầng, tải được chia sẻ giữa máy chủ (nơi chứa cơ sở dữ liệu) và máy khách (nơi chứa giao diện người dùng). Thông thường chúng được đặt trên các máy vật lý khác nhau, nhưng đây không phải là yêu cầu bắt buộc. Với điều kiện là các lớp được phân tách một cách hợp lý, chúng có thể được đặt (ví dụ: để phát triển và thử nghiệm) trên cùng một máy tính (Hình 1).

Hình 1: Kiến trúc hai tầng

Việc phân phối logic ứng dụng và xử lý dữ liệu trong mô hình này đã và vẫn còn có vấn đề. Nếu khách hàng “thông minh” và thực hiện việc xử lý dữ liệu chính thì các vấn đề sẽ phát sinh liên quan đến việc phân phối, cài đặt và bảo trì ứng dụng, vì mỗi khách hàng cần có bản sao phần mềm cục bộ của riêng mình. Nếu máy khách "ngớ ngẩn" thì logic ứng dụng và quá trình xử lý phải được triển khai trong cơ sở dữ liệu và do đó nó trở nên hoàn toàn phụ thuộc vào DBMS cụ thể đang được sử dụng. Trong mọi trường hợp, mỗi khách hàng phải đăng ký và tùy thuộc vào quyền truy cập mà mình nhận được, thực hiện một số chức năng nhất định. Tuy nhiên, kiến ​​trúc client-server hai tầng là một giải pháp tốt khi số lượng người dùng tương đối nhỏ (lên đến khoảng 100 người dùng đồng thời), nhưng khi số lượng người dùng tăng lên, có một số hạn chế trong việc sử dụng kiến ​​trúc này.

Hiệu suất: Khi số lượng người dùng tăng lên, hiệu suất bắt đầu xấu đi. Sự suy giảm hiệu suất tỷ lệ thuận với số lượng người dùng, mỗi người trong số họ có kết nối riêng với máy chủ, điều đó có nghĩa là máy chủ phải duy trì tất cả các kết nối này (sử dụng thông báo "Keep-Alive") ngay cả khi cơ sở dữ liệu không được sử dụng .

Bảo mật: Mỗi người dùng phải có quyền truy cập riêng vào cơ sở dữ liệu và được cấp quyền để vận hành ứng dụng. Để làm được điều này, cần lưu trữ quyền truy cập của từng người dùng trong cơ sở dữ liệu. Khi bạn cần thêm chức năng cho một ứng dụng và bạn cần cập nhật quyền của người dùng.

Chức năng: Bất kể loại máy khách nào được sử dụng, hầu hết quá trình xử lý dữ liệu đều phải nằm trong cơ sở dữ liệu, nghĩa là nó hoàn toàn phụ thuộc vào khả năng do nhà sản xuất cung cấp trong cơ sở dữ liệu. Điều này có thể hạn chế nghiêm trọng chức năng của ứng dụng vì các cơ sở dữ liệu khác nhau hỗ trợ các tính năng khác nhau, sử dụng các ngôn ngữ lập trình khác nhau và thậm chí triển khai các tính năng cơ bản như trình kích hoạt một cách khác nhau.

Tính di động: Kiến trúc hai tầng phụ thuộc vào việc triển khai cơ sở dữ liệu cụ thể nên việc chuyển các ứng dụng hiện có sang các DBMS khác nhau trở thành một vấn đề nghiêm trọng. Điều này đặc biệt đúng đối với các ứng dụng ở các thị trường dọc nơi việc lựa chọn DBMS không được nhà cung cấp xác định.

Nhưng bất chấp điều này, kiến ​​trúc hai tầng đã tìm thấy sức sống mới trong kỷ nguyên Internet. Nó có thể hoạt động tốt trong môi trường bị ngắt kết nối trong đó giao diện người dùng không hoạt động (ví dụ: trình duyệt). Tuy nhiên, theo nhiều cách, việc triển khai này thể hiện sự quay trở lại kiến ​​trúc máy tính lớn ban đầu.

Trong nỗ lực khắc phục những hạn chế của kiến ​​trúc hai lớp nêu trên, một lớp bổ sung đã được giới thiệu. Kiến trúc này là mô hình máy khách-máy chủ tiêu chuẩn với kiến ​​trúc ba tầng. Mục đích của lớp bổ sung (thường được gọi là lớp "giữa" hoặc lớp "quy tắc") là để quản lý việc thực thi ứng dụng và quản lý cơ sở dữ liệu. Giống như mô hình hai cấp, các cấp độ có thể được đặt trên các máy tính khác nhau (Hình 2) hoặc trên một máy tính ở chế độ kiểm tra.

Hình 2: Kiến trúc ba tầng

Bằng cách giới thiệu hàng giữa, những hạn chế của kiến ​​trúc hai tầng phần lớn đã được loại bỏ, mang lại một hệ thống linh hoạt và có khả năng mở rộng hơn nhiều. Vì máy khách hiện chỉ kết nối với máy chủ ứng dụng chứ không kết nối trực tiếp với máy chủ dữ liệu nên gánh nặng duy trì kết nối được loại bỏ cũng như nhu cầu triển khai logic ứng dụng trong cơ sở dữ liệu. Cơ sở dữ liệu hiện chỉ có thể thực hiện các chức năng lưu trữ và truy xuất dữ liệu, còn nhiệm vụ nhận và xử lý ứng dụng có thể được thực hiện bởi cấp trung của kiến ​​trúc ba tầng. Sự phát triển của hệ điều hành, bao gồm các yếu tố như kết nối tổng hợp, hàng đợi và xử lý giao dịch phân tán, đã củng cố (và đơn giản hóa) sự phát triển của tầng giữa.

Lưu ý rằng trong mô hình này, máy chủ ứng dụng không kiểm soát giao diện người dùng và người dùng cũng không thực sự truy vấn cơ sở dữ liệu một cách trực tiếp. Thay vào đó, nó cho phép nhiều khách hàng chia sẻ logic nghiệp vụ, tính toán và truy cập công cụ tìm kiếm dữ liệu. Ưu điểm chính là máy khách yêu cầu ít phần mềm hơn và không cần kết nối trực tiếp tới cơ sở dữ liệu, giúp cải thiện tính bảo mật. Do đó, ứng dụng có khả năng mở rộng cao hơn, chi phí hỗ trợ và cài đặt trên một máy chủ thấp hơn nhiều so với việc duy trì ứng dụng trực tiếp trên máy khách hoặc thậm chí trên kiến ​​trúc hai tầng.

Có nhiều biến thể của mô hình ba tầng cơ bản được thiết kế để thực hiện các chức năng khác nhau. Chúng bao gồm xử lý giao dịch phân tán (trong đó nhiều DBMS được cập nhật trong cùng một giao thức), các ứng dụng dựa trên thông báo (trong đó các ứng dụng không giao tiếp trong thời gian thực) và khả năng tương thích đa nền tảng (Ứng dụng Nhà môi giới yêu cầu đối tượng hoặc ứng dụng "ORB").

Kiến trúc nhiều tầng hoặc kiến ​​trúc N-tier

Với sự phát triển của các ứng dụng Internet trong bối cảnh số lượng người dùng ngày càng tăng, mô hình máy khách-máy chủ ba cấp độ cơ bản đã được mở rộng bằng cách giới thiệu các cấp độ bổ sung. Những kiến ​​trúc như vậy được gọi là "nhiều tầng" và thường bao gồm bốn lớp (Hình 3), trong đó một máy chủ trong mạng chịu trách nhiệm xử lý kết nối giữa máy khách trình duyệt và máy chủ ứng dụng. Lợi ích là nhiều máy chủ web có thể kết nối tới một máy chủ ứng dụng duy nhất, do đó tăng cường xử lý số lượng lớn hơn người dùng được kết nối đồng thời.

Hình 3: Kiến trúc N tầng

Cấp độ so với lớp

Những thuật ngữ này (không may) thường bị nhầm lẫn. Tuy nhiên, có một sự khác biệt lớn giữa chúng và chúng có một ý nghĩa nhất định. Sự khác biệt chính là các lớp nằm trong lớp vật lý và các lớp nằm trong lớp logic. Nói cách khác, về mặt lý thuyết, lớp có thể được triển khai độc lập trên một máy tính riêng biệt và lớp là một bộ phận logic trong lớp (Hình 4). Mô hình ba lớp điển hình được mô tả ở trên thường chứa ít nhất bảy lớp, được phân tách trên cả ba cấp độ.

Điều chính cần nhớ về kiến ​​trúc phân lớp là các yêu cầu và phản hồi từ mỗi luồng theo một hướng sẽ đi qua tất cả các lớp và không bao giờ được bỏ qua các lớp đó. Do đó, trong mô hình hiển thị trong Hình 4, lớp duy nhất có thể truy cập lớp “E” (lớp truy cập dữ liệu) là lớp “D” (lớp quy tắc). Tương tự, lớp "C" (lớp xác thực ứng dụng) chỉ có thể đáp ứng các yêu cầu từ lớp "B" (lớp xử lý lỗi).

Hình 4: Các hàng được chia thành các lớp logic

DB TRONG KIẾN TRÚC MÁY CHỦ-KHÁC

Phác thảo bài giảng

1. Máy khách và máy chủ của mạng cục bộ

2. Kiến trúc hệ thống client-server

3. Mô hình khối lượng công việc trong kiến ​​trúc client/server

4. Các cấp độ và mô hình kiến ​​trúc client-server

T. Connolly. Cơ sở dữ liệu. Thiết kế, triển khai và hỗ trợ. Lý thuyết và thực hành.: Bản dịch. từ tiếng Anh – M.: Nhà xuất bản. Nhà Williams, 2006. – 1440 tr.

1 Máy khách và máy chủ của mạng cục bộ

Việc sử dụng rộng rãi các mạng máy tính cục bộ dựa trên ý tưởng nổi tiếng về chia sẻ tài nguyên. Việc phát triển ý tưởng này dẫn tới sự tách biệt chức năng của các thành phần mạng: máy trạm và máy chủ mạng cục bộ. Máy chủ mạng cục bộ (máy chủ) cung cấp tài nguyên (dịch vụ) cho máy trạm và/hoặc máy chủ khác. Máy trạm (máy khách) - máy tính cung cấp quyền truy cập vào tài nguyên mạng do máy chủ cung cấp.

Do tập trung vào cách tiếp cận hệ thống mở, sẽ đúng hơn khi nói về các máy chủ logic (nghĩa là một tập hợp các tài nguyên và phần mềm cung cấp các dịch vụ trên các tài nguyên này). Ví dụ về các máy chủ logic bao gồm:

· một máy chủ tập tin duy trì một kho lưu trữ tập tin chung cho tất cả các máy trạm và, trong trường hợp có yêu cầu, toàn bộ tập tin hoặc dữ liệu sẽ được sao chép vào máy tính yêu cầu;

· Máy chủ ứng dụng chạy các phần ứng dụng của ứng dụng máy khách-máy chủ và cũng chứa dữ liệu có sẵn cho máy khách;

2 Kiến trúc hệ thống client-server

Các nguyên tắc cơ bản của kiến ​​trúc hệ thống máy khách-máy chủ như sau: IS được chia thành hai phần, có thể được thực thi ở các nút khác nhau của mạng - phần máy khách và máy chủ.

Phía máy chủ hoạt động trên một tổ hợp phần cứng chuyên dụng, bao gồm phần cứng mạnh mẽ, bộ phần mềm tiêu chuẩn cần thiết, hệ thống quản lý cơ sở dữ liệu và cơ sở dữ liệu.

Chương trình ứng dụng hoặc người dùng cuối tương tác với phía máy khách của hệ thống, trong trường hợp đơn giản nhất chỉ cung cấp giao diện qua mạng. Phía máy khách của ứng dụng hoạt động tại nơi làm việc của người dùng, trong phần lớn các trường hợp là máy tính cá nhân.

Phần máy khách của hệ thống, nếu cần, sẽ truy cập phần máy chủ qua mạng (cục bộ hoặc toàn cầu). Đồng thời, từ quan điểm của máy khách và máy chủ, sự tương tác được thực hiện một cách minh bạch. Thành phần mạng thực hiện tương tác này bao gồm một bộ thiết bị mạng cần thiết, một bộ công nghệ phần mềm đảm bảo truyền dữ liệu giữa các nút mạng, cũng như lớp phần mềm giao diện thực tế (giao thức hoặc các giao thức) để trao đổi các yêu cầu và kết quả thực hiện của chúng. . Giao diện chính giữa các phần máy khách và máy chủ là ngôn ngữ cơ sở dữ liệu SQL.

Hình thức đơn giản nhất của kiến ​​trúc client-server là phân chia tải tính toán giữa hai tiến trình riêng biệt: client và server. Hơn nữa, năm nhóm chức năng của một ứng dụng tương tác tiêu chuẩn được phân bổ giữa hai quy trình này:

1) chức năng hội thoại (Logic trình bày, PL) hoặc thành phần trực quan hóa. Thành phần trực quan hóa tác vụ ứng dụng cung cấp thông tin đầu vào của người dùng bằng các phương tiện nhất định, cũng như hiển thị thông tin trên màn hình và in. Thành phần trực quan hóa cho kiến ​​trúc máy khách-máy chủ luôn được thực thi tại máy trạm của người dùng (vì anh ta phải quan sát mọi kết quả của chương trình). Để tổ chức logic trình bày, mô hình giao diện người dùng đồ họa GUI (User Interface Graphical) hoặc giao diện Web chủ yếu được sử dụng;

2) các chức năng ứng dụng hoặc đây là một phần của mã ứng dụng với các thuật toán xử lý dữ liệu (Business Logic, BL). Thành phần logic được áp dụng thực sự giải quyết một hoặc một vấn đề khác liên quan đến việc xử lý dữ liệu trong một lĩnh vực chủ đề cụ thể và thể hiện các thuật toán để phản hồi của ứng dụng đối với hành động của người dùng hoặc các sự kiện nội bộ, quy tắc xử lý dữ liệu. Thành phần này có thể được phân phối giữa máy khách và máy chủ theo nhiều cách khác nhau tùy thuộc vào mô hình được sử dụng. Thông thường, mã này được lập trình bằng các ngôn ngữ lập trình cấp cao: C, C++, Visual Basic, Object Pascal, v.v.;

3) các chức năng xử lý dữ liệu trong ứng dụng (Database Logic, DL) - đây là một phần của mã ứng dụng liên quan đến việc truy xuất và thao tác dữ liệu (chính DBMS quản lý dữ liệu). Ngôn ngữ con là SQL.

Cấu trúc ứng dụng client-server điển hình

4) chức năng quản lý tài nguyên thông tin (Hệ thống quản lý cơ sở dữ liệu, DBMS). Thành phần lưu trữ cơ sở dữ liệu thực hiện các hoạt động vật lý liên quan đến lưu trữ dữ liệu, đọc thông tin từ cơ sở dữ liệu và ghi vào cơ sở dữ liệu, liên quan đến nhiệm vụ ứng dụng đang được ứng dụng giải quyết. Trong kiến ​​trúc client-server, thành phần này luôn chạy trên máy chủ;

5) chức năng dịch vụ đóng vai trò liên kết giữa các nhóm chức năng trước đó.

3 mô hình khối lượng công việc trong kiến ​​trúc client/server

Hệ thống "máy khách-máy chủ" có thể dựa vào một số kiểu phân bổ trách nhiệm giữa máy khách và máy chủ:

· Máy khách “thông minh” (máy khách dày - máy chủ mỏng);

· Máy chủ “thông minh” (máy khách mỏng - máy chủ dày);

· hệ thống hỗn hợp;

· Hệ thống đa cấp.

DIV_ADBLOCK80">

Máy chủ "thông minh". Bằng cách chuyển tất cả các quy tắc kinh doanh sang SQL Server, nơi chúng được triển khai dưới dạng các thủ tục được lưu trữ và trình kích hoạt cơ sở dữ liệu, một máy chủ “thông minh” sẽ được tạo ra; máy chủ cũng chịu trách nhiệm lưu trữ và vận hành cơ sở dữ liệu. Sự thông minh của máy chủ còn thể hiện ở khả năng thao tác dữ liệu (thực thi các truy vấn SQL) và trả về tập dữ liệu kết quả cho máy khách.

Chỉ logic trình bày dữ liệu được triển khai trên máy khách.

Thuận lợi:

· tăng hiệu suất của hệ thống thông tin: logic nghiệp vụ chạy trong cùng không gian địa chỉ với mã truy cập cơ sở dữ liệu và ngoài ra, được tích hợp chặt chẽ với cơ chế tìm kiếm dữ liệu. Điều này có nghĩa là dữ liệu không cần phải di chuyển hoặc sao chép trước khi xử lý, đồng nghĩa với việc lưu lượng truy cập mạng được giảm thiểu;

· dễ dàng hơn để đảm bảo tính toàn vẹn dữ liệu trên máy chủ;

· nếu cần thiết, logic nghiệp vụ được sửa đổi tập trung mà không thay đổi khách hàng.

Sai sót:

· tăng nhu cầu về tài nguyên máy chủ, nơi tất cả các yêu cầu và thao tác dữ liệu được thực hiện.

Hệ thống hỗn hợp. Các tùy chọn hỗn hợp cũng có thể thực hiện được, với lợi thế của cả máy chủ thông minh và máy khách thông minh. DBMS, logic thao tác dữ liệu và một phần logic nghiệp vụ phổ biến đối với nhiều máy khách thường được triển khai trên máy chủ. Logic trình bày dữ liệu và một phần logic nghiệp vụ dành riêng cho máy khách này được triển khai trên máy khách.

Ưu điểm của hệ thống hỗn hợp:

· Mã máy chủ có sẵn đồng thời cho nhiều khách hàng, giúp giảm chi phí khi thực hiện các yêu cầu tương tự;

· Hiệu suất của máy khách ít phụ thuộc vào lưu lượng mạng.

Sai sót:

· Logic nghiệp vụ được phân phối giữa máy khách và máy chủ, và khi hiện đại hóa ứng dụng, cần phân phối các phiên bản mới của phần máy khách cho nhiều đối tượng.

Hệ thống đa cấp(đôi khi được gọi là ba tầng) cho phép bạn tách biệt giao diện người dùng, quy tắc nghiệp vụ và cơ sở dữ liệu. Trong hệ thống nhiều tầng, các quy tắc nghiệp vụ được đặt trên máy chủ ứng dụng - một thành phần phần mềm được đặt giữa máy chủ cơ sở dữ liệu và máy khách. Máy khách chỉ chịu trách nhiệm về giao diện người dùng, máy chủ cơ sở dữ liệu chịu trách nhiệm bảo trì và vận hành cơ sở dữ liệu. Phần mềm trung gian là máy chủ cho người dùng và máy khách cho hệ thống quản lý cơ sở dữ liệu. Khách hàng, nếu cần, hãy chuyển sang máy chủ ứng dụng, sau đó máy chủ ứng dụng sẽ chuyển sang máy chủ cơ sở dữ liệu để lấy dữ liệu cần thiết để thực hiện các yêu cầu của khách hàng.

Ưu điểm của hệ thống đa cấp:

· Tách biệt các thành phần giao diện, quy tắc kinh doanh và lưu trữ dữ liệu, giúp tăng hiệu suất của máy chủ cơ sở dữ liệu và bảo vệ nó khỏi bị truy cập trái phép;

· sửa đổi tập trung các quy tắc kinh doanh;

Sai sót:

· Lưu lượng mạng tăng lên.

· Những hệ thống như vậy khó phát triển, triển khai và vận hành hơn nhiều và đòi hỏi chi phí đáng kể cũng như nhân sự có trình độ cao.

4 cấp độ và mô hình kiến ​​trúc"máy khách-máy chủ"

Xét về số lượng thành phần, hệ thống client-server được chia thành hai cấp và ba cấp.

Hệ thống hai tầng chỉ bao gồm một máy khách và một máy chủ.Các mô hình kiến ​​trúc máy khách-máy chủ hai tầng bao gồm:

1) mô hình máy chủ tệp (mô hình FS);

2) mô hình truy cập từ xa (mô hình RDA);

3) mô hình máy chủ hoạt động (mô hình DBS).

Mô hình ba tầng được thể hiện bằng một kiểu kiến ​​trúc máy khách-máy chủ dựa trên sơ đồ máy chủ ứng dụng khách-ứng dụng. Kiến trúc này cho phép phân phối linh hoạt hơn các chức năng hệ thống và tải giữa các thành phần của tổ hợp phần cứng và phần mềm, đồng thời cũng có thể giảm yêu cầu tài nguyên cho máy trạm của người dùng.

Kiến trúc máy chủ tập tin

Trong kiến ​​trúc “máy chủ tệp” (Máy chủ tệp, mô hình FS), tất cả các chức năng chính của ứng dụng hệ thống thông tin (logic trình bày, logic nghiệp vụ và các chức năng quản lý và xử lý dữ liệu) đều được đặt trên máy khách (Hình 2).

Máy chủ chứa các tệp dữ liệu và hỗ trợ truy cập vào các tệp.

Trong mô hình này, máy khách liên hệ với máy chủ để yêu cầu dữ liệu. Yêu cầu của khách hàng được xây dựng trong các lệnh NMD. DBMS chuyển yêu cầu này thành một chuỗi các lệnh tệp, Hệ thống quản lý tệp (FMS) đọc dữ liệu được yêu cầu từ cơ sở dữ liệu và chuyển từng khối dữ liệu này sang ứng dụng khách, sau đó máy khách DBMS sẽ phân tích thông tin nhận được và nếu khối nhận được không chứa câu trả lời cho yêu cầu, sau đó đưa ra quyết định về việc bơm khối thông tin tiếp theo, v.v. Trên thực tế, mô hình FS giả định hoạt động tự động của phần mềm IS trên các máy khác nhau trên mạng. Các thành phần IS chỉ tương tác thông qua sự hiện diện của bộ lưu trữ dữ liệu chung. Tất nhiên, kho lưu trữ như vậy phải là cơ sở dữ liệu được thiết kế tốt được quản lý bởi DBMS hỗ trợ mô hình FS, ví dụ: DBMS Informix SE. Loại DBMS này không thể được coi là một “máy chủ đích thực”.

Mô hình kiến ​​trúc máy chủ tệp

Khi sử dụng mô hình FS, một bản sao của DBMS được tạo cho mỗi phiên do người dùng khởi tạo với DBMS, phiên này chạy trên cùng bộ xử lý với quy trình của người dùng.

Nói chung, trong kiến ​​trúc IS máy chủ tệp, chúng ta có một máy khách “dày” và một máy chủ rất “mỏng” theo nghĩa là hầu hết mọi công việc được thực hiện ở phía máy khách và máy chủ chỉ yêu cầu đủ dung lượng bộ nhớ đĩa.

Những nhược điểm của kiến ​​trúc máy chủ tệp bao gồm:

· Lưu lượng truy cập mạng cao, liên quan đến việc truyền tải nhiều khối và tệp qua mạng theo yêu cầu của ứng dụng khách;

· Một số lượng hạn chế các lệnh thao tác dữ liệu, trên thực tế đây chỉ là các lệnh tập tin;

· hiệu suất thấp (tùy thuộc vào hiệu suất của mạng, máy chủ, máy khách);

· khả năng kết nối khách hàng mới kém;

· Thiếu các công cụ bảo vệ dữ liệu được phát triển (chỉ ở cấp độ hệ thống tệp).

Những lợi thế không thể nghi ngờ bao gồm

· hiệu quả cao khi làm việc với lượng dữ liệu nhỏ ở chế độ một người dùng.

· sự thuận tiện của việc kiểm soát truy cập tập trung;

· chi phí phát triển thấp;

· tốc độ phát triển cao;

· Chi phí cập nhật và thay đổi phần mềm thấp.

Mô hình FS không tương ứng với các ý tưởng hiện đại về công nghệ máy khách-máy chủ theo nghĩa được chấp nhận rộng rãi, do đó, phương pháp tổ chức điện toán phân tán này được coi là một kiến ​​trúc máy chủ tệp riêng biệt.

Mô hình truy cập từ xa đến dữ liệu RDA ( Xa Dữ liệu Truy cập , RDA )

Trong lịch sử, mô hình này là mô hình đầu tiên được phát triển. Trong mô hình này, phần máy chủ chỉ lưu trữ dữ liệu, lõi DBMS cũng được đặt ở đây và logic thao tác dữ liệu được triển khai, còn phần máy khách thực hiện tất cả logic ứng dụng. Trong trường hợp này, máy khách sẽ gửi yêu cầu đến máy chủ để lấy dữ liệu và máy chủ sẽ trả lại một số mẫu nhất định cho máy khách. Phương tiện giao tiếp phổ biến nhất giữa máy khách và máy chủ trong trường hợp này là SQL (ngôn ngữ truy vấn có cấu trúc) - một ngôn ngữ phi thủ tục tiêu chuẩn tập trung vào xử lý dữ liệu.

Máy khách đã giảm cân đáng kể so với mô hình FS, nhưng các chức năng của máy chủ đã mở rộng đáng kể, lưu lượng mạng giảm và ưu điểm quan trọng nhất của mô hình RDA: ngôn ngữ SQL đã xuất hiện với bộ định nghĩa dữ liệu và thao tác dữ liệu mở rộng các lệnh thống nhất giao diện máy khách-máy chủ.

Mô hình kiến ​​trúc truy cập dữ liệu từ xa

Ưu điểm của mô hình RDA:

· Việc chuyển Business Logic sang máy khách giúp giảm đáng kể máy chủ cơ sở dữ liệu, giảm thiểu tổng số quy trình trong hệ điều hành;

· Máy chủ cơ sở dữ liệu được giải phóng khỏi các chức năng bất thường đối với nó, điều đó có nghĩa là bộ xử lý có thể được tải đầy đủ các hoạt động để xử lý các truy vấn, dữ liệu và giao dịch;

· Tải mạng giảm mạnh, vì không phải các yêu cầu về đầu vào/đầu ra trong thuật ngữ tệp được truyền qua nó từ máy khách đến máy chủ mà là các yêu cầu về SQL và khối lượng của chúng ít hơn đáng kể. Để đáp lại các yêu cầu, máy khách chỉ nhận được dữ liệu liên quan đến yêu cầu chứ không nhận các khối tệp như trong mô hình FS.

Nhược điểm của mô hình RDA:

· Lưu lượng truy cập mạng vẫn cao, đặc biệt với số lượng lớn khách hàng và công việc chuyên sâu của họ ở chế độ tương tác;

· trùng lặp quá nhiều mã ứng dụng, ví dụ như lặp lại logic nghiệp vụ cho từng khách hàng;

· tăng độ phức tạp của các ứng dụng khách về mặt kiểm soát tài nguyên thông tin. Máy chủ đóng vai trò thụ động. Thật vậy, ví dụ, nếu chúng ta cần giám sát an toàn tồn kho hàng hóa trong kho, thì mỗi ứng dụng có liên quan đến sự thay đổi trạng thái của kho, sau khi thực hiện các hoạt động sửa đổi dữ liệu mô phỏng việc bán hoặc loại bỏ hàng hóa khỏi kho, phải thực hiện kiểm tra khối lượng của số dư và trong trường hợp, nếu nó nhỏ hơn lượng tồn kho an toàn, hãy tạo một yêu cầu tương ứng để cung cấp hàng hóa được yêu cầu. Điều này làm phức tạp ứng dụng khách

Mô hình máy chủ cơ sở dữ liệu (đôi khi được gọi là máy chủ hoạt động)

Mô hình máy chủ (Máy chủ cơ sở dữ liệu, DBS) là một khái niệm theo đó thành phần ứng dụng (logic nghiệp vụ) được đặt một phần hoặc toàn bộ trên máy chủ cơ sở dữ liệu (Hình 4). Logic nghiệp vụ được triển khai dưới dạng đơn vị chương trình được lưu trữ (SPU), trình kích hoạt và kiểu dữ liệu tùy chỉnh, được lưu trữ trong cơ sở dữ liệu và được quản lý bởi máy chủ. Cơ sở dữ liệu cũng tích lũy dữ liệu và tạo thành cơ sở dữ liệu siêu dữ liệu (MDB). Ứng dụng khách liên hệ với máy chủ bằng lệnh khởi chạy PrE và máy chủ, nếu cần, sẽ thực thi nó và ghi lại các thay đổi trong cơ sở dữ liệu. Máy chủ trả về kết quả của yêu cầu cho máy khách để xuất ra thiết bị ngoại vi hoặc để thực thi một phần logic nghiệp vụ được đặt trên máy khách. Với phương pháp phân phối xử lý dữ liệu này, lưu lượng mạng giảm mạnh.

Trình kích hoạt là một cơ chế để theo dõi các sự kiện đặc biệt có liên quan đến trạng thái của cơ sở dữ liệu. Trình kích hoạt trong cơ sở dữ liệu giống như một công tắc bật tắt được kích hoạt khi một sự kiện nhất định xảy ra trong cơ sở dữ liệu. Nhân DBMS giám sát tất cả các sự kiện gây ra các trình kích hoạt được tạo và mô tả trong cơ sở dữ liệu và khi một sự kiện tương ứng xảy ra, máy chủ sẽ khởi chạy trình kích hoạt tương ứng => trình kích hoạt là một chương trình chạy trên cơ sở dữ liệu và gọi các thủ tục được lưu trữ.

Mô hình máy chủ này hoạt động vì không chỉ máy khách mà chính máy chủ cũng sử dụng cơ chế kích hoạt.
Thuận lợi:

Mô hình DBS hỗ trợ hầu hết các DBMS hiện đại: Oracle, Sybase, Ingres, Informix, MS SQL Server, mặc dù chức năng của chúng khác nhau.


Ưu điểm của mô hình DBS:

· khả năng quản lý tập trung các chức năng ứng dụng;

· Giảm lưu lượng mạng do khả năng gọi thủ tục từ xa;

· khả năng phân tách các thủ tục theo một số ứng dụng và tiết kiệm tài nguyên máy tính bằng cách sử dụng kế hoạch thực hiện truy vấn SQL được tạo một lần. (vì các thủ tục và trình kích hoạt được lưu trữ được lưu trữ trong từ điển cơ sở dữ liệu và có thể được một số khách hàng sử dụng => giảm sự trùng lặp các thuật toán xử lý dữ liệu trong các ứng dụng khách khác nhau).

Sai sót:

Chức năng máy chủ:

1. Theo dõi các sự kiện liên quan đến các yếu tố kích hoạt được mô tả;

2. Cung cấp khả năng kích hoạt tự động các trình kích hoạt khi các sự kiện liên quan xảy ra;

3. Đảm bảo thực hiện chương trình nội bộ của từng trình kích hoạt;

4. Chạy các thủ tục được lưu trữ dựa trên yêu cầu của người dùng;

5. Khởi chạy các thủ tục được lưu trữ từ trình kích hoạt;

6. Trả về dữ liệu cần thiết cho khách hàng;

7. Cung cấp tất cả các chức năng của DBMS: truy cập dữ liệu, kiểm soát và duy trì tính toàn vẹn của dữ liệu trong cơ sở dữ liệu, kiểm soát truy cập, đảm bảo hoạt động chính xác của tất cả người dùng chỉ với một cơ sở dữ liệu.

Thật vậy, máy chủ thực hiện một tập hợp lớn các chức năng và phục vụ nhiều khách hàng. Để giảm tải cho máy chủ, các mô hình đa cấp và đặc biệt là mô hình ba cấp đã được phát triển.

Máy chủ ứng dụng

Máy chủ ứng dụng (Ứng dụng máy chủ, BẰNG) - một kiểu kiến ​​trúc máy khách-máy chủ đa cấp dựa trên sơ đồ máy chủ ứng dụng khách.

Mô hình này giới thiệu một lớp trung gian bổ sung giữa máy khách và máy chủ. Tầng giữa này chứa một hoặc nhiều máy chủ ứng dụng. Do đó có tên giống hệt nhau - “mô hình máy chủ ứng dụng” AS (Máy chủ ứng dụng).

Trong mô hình này, tất cả các thành phần IS được phân chia cho ba người biểu diễn.

Máy khách triển khai giao diện với người dùng, cung cấp logic trình bày của ứng dụng, chạy mã ứng dụng khách được bản địa hóa trên máy khách, thực hiện các chức năng giao tiếp để truy cập vào mạng cục bộ hoặc toàn cầu, giao diện ủy quyền, thuật toán mã hóa, kiểm tra đầu vào các giá trị về tính hợp lệ và tuân thủ định dạng, các thao tác đơn giản (sắp xếp, nhóm, đếm các giá trị) với dữ liệu đã được tải trên thành phần giao diện người dùng (thường là đồ họa), tức là ứng dụng thực tế cho người dùng cuối. Máy khách và máy chủ ứng dụng giao tiếp bằng API, còn máy chủ ứng dụng và máy chủ cơ sở dữ liệu giao tiếp bằng ngôn ngữ truy vấn SQL.

Mô hình máy chủ ứng dụng

Máy chủ ứng dụng thực thi các quy tắc kinh doanh phổ biến nhất, hỗ trợ môi trường miền và đảm bảo trao đổi tin nhắn giữa các thành phần ứng dụng. Chức năng ứng dụng của máy chủ ứng dụng được thiết kế dưới dạng dịch vụ riêng biệt hoặc dịch vụ (Service). Dịch vụ này cung cấp một số dịch vụ cho tất cả các chương trình sẵn sàng và có khả năng sử dụng chúng. Trong kiến ​​trúc IS, có thể có một số máy chủ ứng dụng và mỗi máy chủ ứng dụng cung cấp một tập hợp dịch vụ cụ thể. Bất kỳ chương trình nào sử dụng chúng đều được coi là máy khách của máy chủ ứng dụng AC (Máy khách ứng dụng). Chi tiết triển khai các chức năng ứng dụng trong máy chủ ứng dụng hoàn toàn bị ẩn khỏi máy khách ứng dụng. AS đưa ra yêu cầu tới một dịch vụ cụ thể chứ không phải tới AS. Các yêu cầu được xếp hàng vào quy trình AS, quy trình này chuyển chúng đến một dịch vụ cụ thể để xử lý theo mức độ ưu tiên đã thiết lập.

Các máy chủ cơ sở dữ liệu trong mô hình này chỉ xử lý các chức năng DBMS.

Trong cấu hình đơn giản nhất, máy chủ ứng dụng có thể được kết hợp vật lý với máy chủ cơ sở dữ liệu trên một máy tính mà một hoặc nhiều máy khách kết nối qua mạng.

Trong cấu hình “chính xác” (từ quan điểm về bảo mật, độ tin cậy, mở rộng quy mô), máy chủ cơ sở dữ liệu được đặt trên một máy tính (hoặc cụm) chuyên dụng, nơi một hoặc nhiều máy chủ ứng dụng được kết nối qua mạng, với đó, lần lượt, các máy khách được kết nối qua mạng.

Ưu điểm của mô hình AS:

· tăng năng suất bằng cách giảm tải cho máy chủ;

Giảm chi phí vận hành IP;

· khả năng phức tạp hóa logic kinh doanh mà không làm giảm hiệu suất;

· cải thiện tính di động và khả năng mở rộng của IS thông qua việc sử dụng các ngôn ngữ lập trình tiêu chuẩn, ví dụ C, C++, Borland Pascal, Small Talk, Java, để triển khai hầu hết logic nghiệp vụ.

· Phần mềm máy khách không yêu cầu quản trị;

· khả năng cấu hình – cách ly các cấp độ với nhau cho phép bạn cấu hình lại hệ thống một cách nhanh chóng và dễ dàng khi xảy ra lỗi hoặc trong quá trình bảo trì theo lịch trình ở một trong các cấp độ;

· bảo mật cao;

· độ tin cậy cao;

· Yêu cầu thấp về tốc độ kênh (mạng) giữa máy khách và máy chủ ứng dụng;

· Yêu cầu thấp về hiệu suất và đặc tính kỹ thuật của khách hàng do giảm chi phí.

Sai sót:

· Sự phức tạp của phần máy chủ và kết quả là chi phí quản lý và bảo trì ngày càng tăng;

· Độ phức tạp cao hơn của việc tạo ứng dụng;

· khó triển khai và quản lý hơn;

· yêu cầu cao về hiệu suất của máy chủ ứng dụng và máy chủ cơ sở dữ liệu, và do đó, chi phí thiết bị máy chủ cao;

· Yêu cầu cao về tốc độ kênh (mạng) giữa máy chủ cơ sở dữ liệu và máy chủ ứng dụng.

Kiến trúc phổ biến hiện nay của các hệ thống Web có thể được biểu diễn dưới dạng ba tầng.