Vai trò của máy chủ trong kiến ​​trúc máy khách-máy chủ hai tầng. Các toán tử logic SQL. Xây dựng truy vấn hiệu quả

Bất kể khái niệm kiến ​​trúc máy khách-máy chủ được định nghĩa như thế nào (và có rất nhiều định nghĩa như vậy trong tài liệu), cơ sở của khái niệm này là mô hình tính toán phân tán. Chớm ban đầu trường hợp chung dưới khách hàngmáy chủ hai quy trình tương tác được hiểu, một trong số đó là nhà cung cấp một số dịch vụ cho quy trình kia.

Thuật ngữ "máy khách-máy chủ" dùng để chỉ kiến ​​trúc này gói phần mềm, trong đó các bộ phận chức năng của nó tương tác theo sơ đồ “yêu cầu-phản hồi”. Nếu chúng ta xem xét hai phần tương tác của tổ hợp này thì một trong số chúng (máy khách) sẽ thực hiện chức năng hoạt động, tức là bắt đầu các yêu cầu và bên kia (máy chủ) phản hồi chúng một cách thụ động. Khi hệ thống phát triển, các vai trò có thể thay đổi, ví dụ, một khối phần mềm nhất định sẽ đồng thời thực hiện các chức năng của máy chủ liên quan đến một khối và máy khách liên quan đến khối khác.

Máy chủ - một hoặc nhiều bộ xử lý nhiều người dùng với trường đơn bộ nhớ, theo nhu cầu của người dùng, cung cấp cho họ các chức năng tính toán, liên lạc và truy cập cơ sở dữ liệu. Máy chủ có thể được gọi là chương trình cung cấp một số dịch vụ cho các chương trình khác. Ví dụ về máy chủ là máy chủ web Apache, máy chủ cơ sở dữ liệu - MySQL, ORACLE, hệ thống tệp mạng và máy in Windows.

Khách hàng - trạm làm việcđối với một người dùng, cung cấp chế độ đăng ký và các chức năng cần thiết khác tại nơi làm việc của anh ta - tính toán, liên lạc, truy cập cơ sở dữ liệu, v.v. Máy khách có thể được gọi là chương trình sử dụng dịch vụ do chương trình máy chủ cung cấp. Ví dụ về khách hàng - MSIE (MS trình duyệt web IE), khách hàng ICQ.

Thông thường mọi người chỉ đơn giản đề cập đến máy tính chạy một trong những chương trình này với tư cách là máy khách hoặc máy chủ.

Về bản chất, máy khách và máy chủ là các vai trò, chương trình thực thi. Máy khách và máy chủ có thể cư trú trên cùng một máy tính. Cùng một chương trình có thể đồng thời là máy khách và máy chủ, v.v... đây chỉ là các vai trò.

Nếu chúng ta rút ra sự tương đồng với xã hội - một ngân hàng hoặc một cửa hàng - “máy chủ”. Họ cung cấp một số dịch vụ cho khách hàng của họ. Nhưng ngân hàng có thể đồng thời là khách hàng của một số công ty khác, v.v...

Xử lý máy khách-máy chủ là môi trường trong đó quá trình xử lý ứng dụng được phân phối giữa máy khách và máy chủ. Máy móc thường tham gia vào quá trình xử lý các loại khác nhau, và máy khách và máy chủ liên lạc với nhau bằng một bộ cố định giao thức chuẩn trao đổi và thủ tục truy cập vào các nền tảng từ xa.

Cơ sở dữ liệu với những máy tính cá nhân(chẳng hạn như Clipper, DBase, FoxPro, Paradox, Clarion có phiên bản mạng, chỉ đơn giản là chia sẻ các tệp cơ sở dữ liệu có cùng định dạng cho PC, đồng thời thực hiện khóa mạng để hạn chế quyền truy cập vào bảng và bản ghi. Trong trường hợp này, tất cả công việc được thực hiện trên PC. Máy chủ được sử dụng đơn giản như một máy chủ dùng chung đĩa từ xa dung lượng lớn. Cách làm việc này dẫn đến nguy cơ mất dữ liệu do lỗi phần cứng.

So với các hệ thống như vậy, các hệ thống được xây dựng theo kiến ​​trúc Client-Server có những ưu điểm sau:

    cho phép bạn tăng kích thước và độ phức tạp của các chương trình chạy trên máy trạm;

    đảm bảo chuyển các hoạt động sử dụng nhiều lao động nhất sang máy chủ, đây là máy có khả năng tính toán cao hơn;

    giảm thiểu khả năng mất thông tin có trong cơ sở dữ liệu thông qua việc sử dụng các cơ chế bảo vệ dữ liệu nội bộ có sẵn trên máy chủ, chẳng hạn như hệ thống theo dõi giao dịch, khôi phục sau khi xảy ra lỗi và các phương tiện đảm bảo tính toàn vẹn dữ liệu;

    làm giảm lượng thông tin được truyền qua mạng nhiều lần.

    Trong kiến ​​trúc client-server, máy chủ cơ sở dữ liệu không chỉ cung cấp quyền truy cập vào dữ liệu được chia sẻ mà còn xử lý tất cả việc xử lý dữ liệu đó. Máy khách gửi yêu cầu đến máy chủ để đọc hoặc thay đổi dữ liệu được tạo bằng SQL. Máy chủ tự làm mọi thứ sự thay đổi cần thiết hoặc mẫu, đồng thời giám sát tính toàn vẹn và nhất quán của dữ liệu và kết quả dưới dạng một bộ hồ sơ hoặc mã trả về sẽ được gửi đến máy tính của khách hàng.

    Nó cho phép bạn phân phối tối ưu tải tính toán giữa máy khách và máy chủ, điều này cũng ảnh hưởng đến nhiều đặc điểm của hệ thống: chi phí, hiệu suất, hỗ trợ.

    1.2. Câu chuyện…

    Kiến trúc và thuật ngữ "máy khách-máy chủ" lần đầu tiên được sử dụng vào đầu những năm 80. Các ứng dụng đầu tiên có kiến ​​trúc client-server là cơ sở dữ liệu.

    Trước đó, không có sự phân chia rõ ràng - chương trình thường tự làm mọi việc - kể cả làm việc với dữ liệu trong hệ thống tập tin, trình bày dữ liệu cho người dùng, v.v. Theo thời gian, khối lượng và mức độ quan trọng của dữ liệu đối với doanh nghiệp tăng lên và điều này theo thời gian bắt đầu làm nảy sinh các vấn đề (hiệu suất, bảo mật và các vấn đề khác).

    Sau đó, họ nhận ra rằng sẽ thuận tiện hơn khi cài đặt cơ sở dữ liệu trên một máy chủ mạnh mẽ. máy tính riêng biệt(máy chủ) và cho phép nhiều người dùng máy tính nhỏ (máy khách) sử dụng cơ sở dữ liệu này qua mạng, điều này đã được thực hiện.

    Về cơ bản, sự “bùng nổ” phổ biến của công nghệ client-server là do phát minh của công ty gây ra. IBM đơn giản ngôn ngữ truy vấn Cơ sở dữ liệu quan hệ dữ liệu SQL. Ngày nay SQL là tiêu chuẩn phổ quát để làm việc với cơ sở dữ liệu. TRONG Gần đây“sự bùng nổ” này tiếp tục với việc phát minh ra Internet, trong đó mọi tương tác đều diễn ra bằng cách sử dụng kiến ​​trúc máy khách-máy chủ.

    1.3. Giao thức

    Máy chủ và máy khách trên mạng “nói chuyện” với nhau bằng một “ngôn ngữ” (bằng theo nghĩa rộng từ) có thể hiểu được đối với cả hai bên. “Ngôn ngữ” này được gọi là giao thức.

    Trong trường hợp của ngân hàng, giao thức có thể được gọi là các biểu mẫu mà khách hàng điền vào.

    Trong trường hợp của chúng tôi, ví dụ về các giao thức:

    FTP ( Chuyển tập tin giao thức)

    HTTP ( Siêu văn bản Giao thức chuyển giao)

    SMTP (Giao thức truyền thư đơn giản)

    IP (Giao thức Internet)

    Giao thức máy khách/máy chủ MySQL

    Lưu ý rằng các giao thức có thể cấp độ khác nhau. Hệ thống phân loại các cấp độ có thể khác nhau, nhưng một trong những dòng nổi tiếng nhất là OSI (Kết nối hệ thống mở), có 7 cấp độ.

    Ví dụ: HTTP là giao thức lớp ứng dụng (thứ bảy - cao nhất) và IP là giao thức lớp mạng (thứ ba).

    1.4. Phân phối chức năng trong kiến ​​trúc client-server

    TRONG kiến trúc cổ điển Máy khách-máy chủ phải phân phối ba phần chính của ứng dụng trên hai mô-đun vật lý. Thông thường, phần mềm lưu trữ dữ liệu được đặt trên một máy chủ (ví dụ: máy chủ cơ sở dữ liệu), giao diện người dùng ở phía máy khách, nhưng việc xử lý dữ liệu phải được phân phối giữa các phần máy khách và máy chủ. Đây là nhược điểm chính của kiến ​​trúc hai tầng, từ đó một số tính năng khó chịu, làm phức tạp đáng kể sự phát triển của hệ thống máy khách-máy chủ.

    Quá trình phát triển của các hệ thống như vậy khá phức tạp và một trong những nhiệm vụ quan trọng nhất chính xác là quyết định cách phân phối chức năng của ứng dụng giữa các phần máy khách và máy chủ. Cố gắng giải quyết vấn đề này, các nhà phát triển có được kiến ​​trúc hai tầng, ba tầng và nhiều tầng. Tất cả phụ thuộc vào số lượng liên kết trung gian được bao gồm giữa máy khách và máy chủ.

    Nhiệm vụ chính mà ứng dụng khách giải quyết là cung cấp giao diện với người dùng, tức là nhập dữ liệu và trình bày kết quả ở dạng thân thiện với người dùng cũng như quản lý các kịch bản ứng dụng.

    Các chức năng chính của DBMS máy chủ là đảm bảo độ tin cậy, tính nhất quán và bảo mật dữ liệu, quản lý các yêu cầu của khách hàng, xử lý nhanh Truy vấn SQL.

    Toàn bộ logic của ứng dụng - tác vụ ứng dụng, quy tắc nghiệp vụ - trong kiến ​​trúc hai tầng được nhà phát triển phân phối giữa hai quy trình: máy khách và máy chủ (Hình 1).

    Lúc đầu, hầu hết các chức năng của ứng dụng đều do client giải quyết, server chỉ tham gia xử lý các truy vấn SQL. Kiến trúc này được gọi là “máy khách dày - máy chủ mỏng”.

    Sự xuất hiện của khả năng tạo các thủ tục lưu trữ trên máy chủ, tức là các chương trình được biên dịch với logic vận hành bên trong, đã dẫn đến xu hướng chuyển ngày càng nhiều chức năng sang máy chủ. Máy chủ ngày càng “béo” và máy khách ngày càng “mỏng”.

    Giải pháp này có những ưu điểm rõ ràng, chẳng hạn như dễ bảo trì hơn vì tất cả các thay đổi chỉ cần được thực hiện ở một nơi - trên máy chủ.

    Các mô hình được thảo luận ở trên có những nhược điểm sau.

    1. Khách hàng “dày”:

    – sự phức tạp của việc quản lý;

    – việc cập nhật phần mềm trở nên phức tạp hơn vì phải thay thế đồng thời trên toàn bộ hệ thống;

    – việc phân bổ quyền lực trở nên phức tạp hơn, vì quyền truy cập bị giới hạn không phải bởi hành động mà bởi các bảng;

    – mạng bị quá tải do truyền dữ liệu chưa được xử lý qua mạng;

    – khả năng bảo vệ dữ liệu yếu vì khó phân phối quyền hạn một cách chính xác.

    2. Máy chủ “Béo”:

    – việc triển khai trở nên phức tạp hơn vì các ngôn ngữ như PL/SQL không phù hợp để phát triển phần mềm đó và không có quỹ tốt gỡ lỗi;

    – hiệu suất của các chương trình được viết bằng các ngôn ngữ như PL/SQL thấp hơn đáng kể so với các chương trình được tạo bằng các ngôn ngữ khác, điều này rất quan trọng đối với hệ thống phức tạp;

    – các chương trình viết bằng ngôn ngữ DBMS thường hoạt động không đáng tin cậy; một lỗi trong chúng có thể dẫn đến lỗi toàn bộ máy chủ cơ sở dữ liệu;

    – các chương trình kết quả hoàn toàn không thể chuyển sang các hệ thống và nền tảng khác.

    Để 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. Kiến trúc máy khách-máy chủ đa cấp có thể đơn giản hóa đáng kể tính toán phân tán, khiến nó không chỉ đáng tin cậy hơn mà còn dễ truy cập hơn.

    Tuy nhiên, ngôn ngữ viết các thủ tục lưu trữ không đủ mạnh hoặc linh hoạt để dễ dàng triển khai logic ứng dụng phức tạp.

    Sau đó có xu hướng giao phó việc thực hiện bài toán ứng dụng và quy luật kinh doanh thành phần riêng biệt các ứng dụng (hoặc một số thành phần) có thể chạy cả trên một máy tính chuyên dụng - máy chủ ứng dụng và trên cùng một máy tính nơi máy chủ cơ sở dữ liệu chạy. Đây là cách kiến ​​trúc máy khách-máy chủ ba tầng và nhiều tầng xuất hiện.


    Cơm. 1. Phân bổ chức năng giữa client và server

    Có một điều đặc biệt phần mềm Middleware (phần mềm) phải cho phép nhiều thành phần của một ứng dụng nhiều thành phần đó hoạt động cùng nhau. Những ứng dụng như vậy rất linh hoạt, có thể mở rộng nhưng khó phát triển.


    THƯ MỤC

  1. Tin học / Ed. N.V. Makarova – M.: Tài chính và Thống kê, 1998.

    Evdokimov V.V. và những người khác. St Petersburg: Peter, 2004.

    Kazakov S.I. Khái niệm cơ bản công nghệ mạng– M.: Đài phát thanh và Truyền thông, 2004.

    Kogalovsky M.R., Công nghệ cơ sở dữ liệu trên máy tính cá nhân, - M.: Tài chính và Thống kê, 2003.

    Popov V.V. Nguyên tắc cơ bản của công nghệ máy tính. –M.: Tài chính và Thống kê, 2001.

    Figurnov V.E. Máy tính IBM dành cho người dùng. M., 2000.

HỆ ĐIỀU HÀNH MS-DOS. CÁC KHÁI NIỆM VÀ LỆNH CƠ BẢN KHÁI NIỆM CƠ BẢN: CƠ SỞ DỮ LIỆU, DBMS, THỰC THỂ, THUỘC TÍNH, MỐI QUAN HỆ (MỘT ĐỐI MỘT, MỘT ĐẾN NHIỀU, NHIỀU ĐẾN NHIỀU), MỐI QUAN HỆ, KHÓA CHÍNH

DB, về cấu trúc ngôn ngữ truy vấn SQL (Ngôn ngữ truy vấn có cấu trúc), là tiêu chuẩn công nghiệp trong thế giới của cơ sở dữ liệu quan hệ. Máy chủ từ xa chấp nhận yêu cầu và chuyển tiếp nó đến máy chủ cơ sở dữ liệu SQL. Máy chủ SQL – chương trình đặc biệt, quản lý cơ sở dữ liệu từ xa. Máy chủ SQL cung cấp khả năng diễn giải yêu cầu, thực thi yêu cầu đó trong cơ sở dữ liệu, tạo kết quả của yêu cầu và phân phối yêu cầu đó đến ứng dụng khách. Trong trường hợp này, tài nguyên của máy khách không liên quan đến việc thực hiện yêu cầu về mặt vật lý; máy khách chỉ gửi yêu cầu đến cơ sở dữ liệu máy chủ và nhận kết quả, sau đó nó sẽ diễn giải yêu cầu đó khi cần thiết và trình bày nó cho người dùng. Vì kết quả của yêu cầu được gửi đến ứng dụng khách nên chỉ có dữ liệu mà khách hàng cần mới “di chuyển” qua mạng. Kết quả là tải trên mạng giảm xuống. Vì yêu cầu được thực thi ở nơi dữ liệu được lưu trữ (máy chủ) nên không cần phải gửi lô dữ liệu lớn. Ngoài ra, SQL Server, nếu có thể, sẽ tối ưu hóa truy vấn nhận được để nó được thực thi trong thời gian tối thiểu với ít chi phí nhất [[3.2], [3.3]]. hệ thống được thể hiện trong hình. 3.3.

Tất cả điều này làm tăng hiệu suất hệ thống và giảm thời gian chờ đợi kết quả yêu cầu. Khi các truy vấn được máy chủ thực thi, mức độ bảo mật dữ liệu sẽ tăng lên đáng kể vì các quy tắc toàn vẹn dữ liệu được xác định trong cơ sở dữ liệu trên máy chủ và giống nhau đối với tất cả các ứng dụng sử dụng cơ sở dữ liệu này. Điều này giúp loại bỏ khả năng xác định các quy tắc xung đột để duy trì tính toàn vẹn. Công cụ giao dịch mạnh mẽ được hỗ trợ bởi máy chủ SQL giúp ngăn chặn những thay đổi đồng thời đối với cùng một dữ liệu của những người dùng khác nhau và cung cấp khả năng quay ngược lại giá trị ban đầu khi thực hiện các thay đổi đối với cơ sở dữ liệu kết thúc bất thường [[3.2], [3.3]].


Cơm. 3.3. Kiến trúc máy khách-máy chủ

  • Có một mạng cục bộ bao gồm các máy khách, mỗi máy có một ứng dụng khách được cài đặt để làm việc với cơ sở dữ liệu.
  • Trên mỗi máy khách, người dùng có khả năng chạy ứng dụng. Sử dụng ứng dụng được cung cấp giao diện người dùng, nó bắt đầu cuộc gọi đến DBMS nằm trên máy chủ để truy xuất/cập nhật thông tin. Dùng để liên lạc ngôn ngữ đặc biệt Truy vấn SQL, tức là Chỉ văn bản yêu cầu được truyền qua mạng từ máy khách đến máy chủ.
  • DBMS bắt đầu các cuộc gọi đến dữ liệu nằm trên máy chủ, do đó tất cả quá trình xử lý dữ liệu được thực hiện trên máy chủ và chỉ kết quả của yêu cầu mới được sao chép vào máy khách. Do đó, DBMS trả về kết quả cho ứng dụng.

Chúng ta hãy xem sự tách biệt các chức năng giữa máy chủ và máy khách trông như thế nào.

  • Chức năng ứng dụng khách:
    • Gửi yêu cầu đến máy chủ.
    • Giải thích kết quả truy vấn nhận được từ máy chủ.
    • Trình bày kết quả cho người dùng dưới một số hình thức (giao diện người dùng).
  • Chức năng phía máy chủ:
    • Tiếp nhận yêu cầu từ ứng dụng client.
    • Giải thích các yêu cầu.
    • Tối ưu hóa và thực hiện các truy vấn cơ sở dữ liệu.
    • Gửi kết quả đến ứng dụng khách.
    • Đảm bảo hệ thống an ninh và kiểm soát truy cập.
    • Quản lý toàn vẹn cơ sở dữ liệu.
    • Thực hiện sự ổn định của chế độ hoạt động nhiều người dùng.

Cái gọi là DBMS “công nghiệp” hoạt động theo kiến ​​trúc máy khách-máy chủ. Chúng được gọi là công nghiệp vì chính DBMS thuộc lớp này có thể đảm bảo hoạt động của các hệ thống thông tin ở quy mô của một doanh nghiệp, tổ chức hoặc ngân hàng vừa và lớn. Danh mục DBMS công nghiệp bao gồm MS SQL Server, Oracle, Gupta, Informix, Sybase, DB2, InterBase và một số loại khác [[3.2]].

Theo quy định, máy chủ SQL được duy trì bởi một cá nhân hoặc một nhóm nhân viên (quản trị viên máy chủ SQL). Họ quản lý các đặc tính vật lý của cơ sở dữ liệu, thực hiện tối ưu hóa, cấu hình và xác định lại Các thành phần khác nhau cơ sở dữ liệu, tạo cơ sở dữ liệu mới, thay đổi cơ sở dữ liệu hiện có, v.v. và cũng cấp các đặc quyền (quyền truy cập ở một mức nhất định vào cơ sở dữ liệu cụ thể, máy chủ SQL) người dùng khác nhau [ [ 3.2 ] ].

Chúng ta hãy xem xét những ưu điểm chính của kiến ​​trúc này so với kiến ​​trúc máy chủ tệp:

  • Lưu lượng mạng giảm đáng kể.
  • Độ phức tạp của các ứng dụng khách giảm đi (phần lớn tải rơi vào phần máy chủ) và do đó, các yêu cầu về dung lượng phần cứng của máy khách cũng giảm xuống.
  • Sự sẵn có của đặc biệt công cụ phần mềm– Máy chủ SQL – dẫn đến thực tế là một phần quan trọng của nhiệm vụ thiết kế và lập trình đã được giải quyết.
  • Tính toàn vẹn và bảo mật của cơ sở dữ liệu được tăng lên đáng kể.

Những bất lợi bao gồm chi phí tài chính cao hơn cho phần cứng và phần mềm, và thực tế là một số lượng lớn các máy khách nằm trong Những nơi khác nhau, gây ra một số khó khăn nhất định trong việc cập nhật kịp thời các ứng dụng khách trên tất cả các máy khách. Tuy nhiên, kiến ​​trúc client-server đã được chứng minh trong thực tế, trong Hiện nay Có một số lượng lớn cơ sở dữ liệu được xây dựng theo kiến ​​trúc này.

3.4. Kiến trúc máy khách-máy chủ ba tầng (nhiều tầng).

Ba liên kết (trong một số trường hợp là đa liên kết) ngành kiến ​​​​trúc(N-tier hoặc đa- kiến trúc ba tầng? Giờ đây, khi logic nghiệp vụ thay đổi, không còn cần thiết phải thay đổi ứng dụng khách và cập nhật chúng cho tất cả người dùng nữa. Ngoài ra, các yêu cầu đối với thiết bị của người dùng cũng được giảm thiểu nhiều nhất có thể.

Vì vậy, kết quả là, công việc được cấu trúc như sau:

  • Cơ sở dữ liệu ở dạng tập hợp các tệp được đặt trên ổ cứng của một máy tính chuyên dụng đặc biệt (máy chủ mạng).
  • DBMS cũng được đặt trên máy chủ mạng.
  • Có một máy chủ ứng dụng chuyên dụng đặc biệt chứa phần mềm phân tích nghiệp vụ (logic nghiệp vụ) [[3.1]].
  • Có nhiều máy khách, mỗi máy có một cái gọi là " khách hàng mỏng" là một ứng dụng khách triển khai giao diện người dùng.
  • Trên mỗi máy khách, người dùng có cơ hội chạy một ứng dụng - một máy khách mỏng. Sử dụng giao diện người dùng do ứng dụng cung cấp, nó sẽ bắt đầu cuộc gọi đến phần mềm nghiệp vụ thông minh nằm trên máy chủ ứng dụng.
  • Máy chủ ứng dụng phân tích yêu cầu của người dùng và tạo truy vấn tới cơ sở dữ liệu. Để giao tiếp, ngôn ngữ truy vấn đặc biệt SQL được sử dụng, tức là Chỉ văn bản yêu cầu được truyền qua mạng từ máy chủ ứng dụng đến máy chủ cơ sở dữ liệu.
  • DBMS gói gọn trong chính nó tất cả thông tin về cấu trúc vật lý của cơ sở dữ liệu nằm trên máy chủ.
  • DBMS khởi tạo các cuộc gọi đến dữ liệu nằm trên máy chủ, do đó kết quả của truy vấn được sao chép vào máy chủ ứng dụng.
  • Máy chủ ứng dụng trả về kết quả cho ứng dụng khách (người dùng).
  • Ứng dụng sử dụng giao diện người dùng sẽ hiển thị kết quả của các truy vấn.

Thuận lợi

· Trong hầu hết các trường hợp, có thể phân phối các chức năng hệ thống máy tính giữa một số máy tính độc lập trên mạng. Điều này làm cho việc bảo trì hệ thống máy tính trở nên dễ dàng hơn. Đặc biệt, việc thay thế, sửa chữa, nâng cấp hay di chuyển máy chủ không ảnh hưởng tới khách hàng.

· Tất cả dữ liệu được lưu trữ trên máy chủ, theo quy luật, máy chủ này được bảo vệ tốt hơn nhiều so với hầu hết các máy khách. Việc thực thi các biện pháp kiểm soát quyền trên máy chủ sẽ dễ dàng hơn để chỉ cho phép những khách hàng có quyền truy cập phù hợp truy cập dữ liệu.

· Cho phép bạn kết hợp khách hàng khác nhau. Khách hàng có nền tảng phần cứng, hệ điều hành khác nhau, v.v. thường có thể sử dụng tài nguyên của một máy chủ.

sai sót

· Lỗi máy chủ có thể khiến toàn bộ mạng máy tính không thể hoạt động được.

· Hỗ trợ vận hành hệ thống này cần có chuyên gia riêng - quản trị viên hệ thống.

· Giá thành thiết bị cao.

Kiến trúc client-server đa tầng

Kiến trúc client-server đa cấp là một kiểu kiến ​​trúc client-server trong đó chức năng xử lý dữ liệu được thực hiện trên một hoặc nhiều máy chủ riêng biệt. Đ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 để biết thêm sử dụng hiệu quả khả năng của máy chủ và máy khách.

Các trường hợp đặc biệt của kiến ​​trúc đa cấp:

TRONG công nghệ máy tính Kiến trúc ba tầng, đồng nghĩa với kiến ​​trúc ba tầng hoặc Đa 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ột máy chủ ứng dụng, sau đó được kết nối với một máy chủ ứng dụng. máy chủ cơ sở dữ liệu.

Tổng quan về kiến ​​trúc

Khách hàng- đây là 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ó được tải trên thiết bị đầu cuối.

Máy chủ ứng dụng được đặt ở cấp độ thứ hai. Cấp độ thứ hai chứa hầu hết logic nghiệp vụ. Bên ngoài nó có các đoạn được xuất sang thiết bị đầu cuối (xem ở trên), 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 khả năng 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 thuật ngữ mô hình quan hệ, thì cấp độ thứ hai được xây dựng như giao diện phần mềm, liên kết các thành phần máy khách với logic ứng dụng cơ sở dữ liệu.

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, nơi 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 “đúng” (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 thiết bị đầu cuối được kết nối qua mạng.

Thuận lợi

So với kiến ​​trúc client-server hoặc file-server, có thể nhận thấy những ưu điểm sau: kiến trúc ba tầng:

· 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 (với việc triển khai kiến ​​trúc phù hợp) một cách nhanh chóng và bằng những cách đơn giản cấu hình lại hệ thố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 thiết bị đầu cuối và máy chủ ứng dụng

yêu cầu hiệu suất thấp và Thông số kỹ thuật thiết bị đầu cuối, dẫn đến giảm chi phí của họ. Thiết bị đầu cuối có thể không chỉ là máy tính mà còn có thể là điện thoại di động.

sai sót

Những nhược điểm nối tiếp những ưu điểm. So với kiến ​​trúc client-server hoặc file-server, có thể xác định những nhược điểm sau của kiến ​​trúc ba 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.

Máy khách-máy chủ là một kiến ​​trúc máy tính hoặc mạng trong đó các tác vụ hoặc tải mạng được phân phối giữa các nhà cung cấp dịch vụ, được gọi là máy chủ và khách hàng dịch vụ, được gọi là máy khách. Thông thường, máy khách và máy chủ giao tiếp qua mạng máy tính và có thể là các thiết bị vật lý hoặc phần mềm khác nhau.

Thuận lợi

Trong hầu hết các trường hợp, giúp phân phối các chức năng của một hệ thống máy tính giữa một số máy tính độc lập trên mạng. Điều này làm cho việc bảo trì hệ thống máy tính trở nên dễ dàng hơn. Đặc biệt, việc thay thế, sửa chữa, nâng cấp hay di chuyển máy chủ đều không ảnh hưởng tới máy khách.

Tất cả dữ liệu được lưu trữ trên máy chủ, theo quy luật, máy chủ này được bảo vệ tốt hơn nhiều so với hầu hết các máy khách. Việc thực thi các biện pháp kiểm soát quyền trên máy chủ sẽ dễ dàng hơn để chỉ cho phép những khách hàng có quyền truy cập phù hợp truy cập dữ liệu.

Cho phép bạn kết hợp các khách hàng khác nhau. Khách hàng có nền tảng phần cứng, hệ điều hành khác nhau, v.v. thường có thể sử dụng tài nguyên của một máy chủ.

[biên tập]

sai sót

Lỗi máy chủ có thể khiến toàn bộ mạng máy tính không thể hoạt động.

Hỗ trợ hoạt động của hệ thống này cần có một chuyên gia riêng - quản trị viên hệ thống.

Chi phí thiết bị cao.

[biên tập]

Kiến trúc client-server đa tầng

Kiến trúc client-server đa cấp là một kiểu kiến ​​trúc client-server trong đó chức năng xử lý dữ liệu được thực hiện trên một hoặc nhiều máy chủ riêng biệt. Đ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.

Các trường hợp đặc biệt của kiến ​​trúc đa cấp:

Kiến trúc ba tầng

[biên tập]

Mạng máy chủ chuyên dụng

Mạng có máy chủ chuyên dụng (mạng Máy khách/Máy chủ tiếng Anh) là mạng cục bộ mạng máy tính(LAN), trong đó Thiết bị mạng tập trung và được quản lý bởi một hoặc nhiều máy chủ. Các máy trạm hoặc máy khách riêng lẻ (chẳng hạn như PC) phải truy cập tài nguyên mạng thông qua (các) máy chủ.

Giới thiệu

Rất nhiều điều đã được viết về công nghệ máy khách-máy chủ. Bạn có thể thấy rằng sự phấn khích xung quanh chủ đề này diễn ra hai năm trước giờ đây chắc chắn đã lắng xuống. Các bài báo trên báo chí và các cuộc trò chuyện bên lề đã có giọng điệu bình tĩnh, giống như kinh doanh và giờ đây, theo quy định, thảo luận về các khía cạnh cụ thể của việc ứng dụng công nghệ này. Câu hỏi "Trở thành hay không trở thành kiến ​​trúc client-server?" Bây giờ không ai nêu ra - mọi người đều biết rằng "To be!"

Tuy nhiên, nhiều độc giả có thể chỉ mới quan tâm đến chủ đề này gần đây, vì vậy, theo ý kiến ​​​​của chúng tôi, đáng để quay lại chủ đề này một lần nữa và bình tĩnh, theo cách thức kinh doanh, thảo luận về kiến ​​trúc client-server là gì, tại sao cần thiết và làm thế nào để Tiếp cận nó.

Kiến trúc client-server là gì?

Nói chung, hệ thống máy khách-máy chủ được đặc trưng bởi sự hiện diện của hai quy trình độc lập tương tác - máy khách và máy chủ, nói chung, có thể được thực thi trên các máy tính khác nhau, trao đổi dữ liệu qua mạng. Theo sơ đồ này, các hệ thống xử lý dữ liệu dựa trên DBMS, thư và các hệ thống khác có thể được xây dựng. Tất nhiên, chúng ta sẽ nói về cơ sở dữ liệu và hệ thống dựa trên chúng. Và ở đây sẽ thuận tiện hơn không chỉ khi xem xét kiến ​​​​trúc máy khách-máy chủ mà còn so sánh nó với kiến ​​​​trúc khác - máy chủ tệp.

Trong hệ thống máy chủ tệp, dữ liệu được lưu trữ trên máy chủ tệp (ví dụ: Novell NetWare hoặc Windows NT Server) và quá trình xử lý chúng được thực hiện trên các máy trạm, theo quy định, vận hành một trong những cái gọi là “DBMS máy tính để bàn” - Access, FoxPro, Paradox, v.v.

Ứng dụng trên máy trạm “chịu trách nhiệm về mọi thứ” - để tạo giao diện người dùng, xử lý dữ liệu logic và thao tác dữ liệu trực tiếp. Máy chủ tập tin chỉ cung cấp dịch vụ cấp thấp- mở, đóng và sửa đổi tệp, tôi nhấn mạnh - tệp, không phải cơ sở dữ liệu. Cơ sở dữ liệu chỉ tồn tại trong “bộ não” của máy trạm.

Do đó, một số quy trình độc lập và không nhất quán có liên quan đến việc thao tác trực tiếp dữ liệu. Ngoài ra, để thực hiện bất kỳ quá trình xử lý nào (tìm kiếm, sửa đổi, tổng hợp, v.v.), tất cả dữ liệu phải được truyền qua mạng từ máy chủ đến máy trạm (xem Hình. So sánh mô hình máy chủ tệp và máy khách-máy chủ)

Trong hệ thống máy khách-máy chủ, có (ít nhất) hai ứng dụng - máy khách và máy chủ, chia sẻ với nhau những chức năng đó, trong kiến ​​trúc máy chủ tệp, được thực hiện hoàn toàn bởi một ứng dụng trên máy trạm. Việc lưu trữ và thao tác trực tiếp dữ liệu được thực hiện bởi một máy chủ cơ sở dữ liệu, có thể là Microsoft Máy chủ SQL, Oracle, Sybase, v.v..

Giao diện người dùng được tạo bởi máy khách, bạn có thể sử dụng toàn bộ dòng các công cụ đặc biệt, cũng như hầu hết các DBMS trên máy tính để bàn. Logic xử lý dữ liệu có thể được thực thi trên cả máy khách và máy chủ. Máy khách gửi yêu cầu đến máy chủ, thường được tạo bằng SQL. Máy chủ xử lý các yêu cầu này và gửi kết quả đến máy khách (tất nhiên có thể có nhiều máy khách).

Do đó, một quy trình chịu trách nhiệm thao tác trực tiếp dữ liệu. Đồng thời, quá trình xử lý dữ liệu diễn ra ở cùng nơi lưu trữ dữ liệu - trên máy chủ, giúp loại bỏ nhu cầu truyền lượng lớn dữ liệu qua mạng.

Khi nào bạn cần kiến ​​trúc client-server?

Ngay cả một phân tích rất chi tiết về các tính năng của kiến ​​trúc client-server cũng có thể không trả lời được câu hỏi “Điều này sẽ mang lại cho tôi điều gì?” Chúng ta hãy nhìn vào kiến ​​trúc này từ góc độ nhu cầu kinh doanh. Máy khách-máy chủ mang lại những phẩm chất gì cho hệ thống thông tin:

độ tin cậy

Bất cứ ai đã từng đảm nhiệm vai trò quản trị viên cơ sở dữ liệu ít nhất một lần vào thời điểm cơ sở dữ liệu này “chết” do máy chủ hoặc máy trạm “đóng băng”, mất điện hoặc một số sự cố không may khác sẽ không bao giờ bỏ qua các vấn đề về độ tin cậy (nếu, của tất nhiên, sẽ có thể giữ lại vai trò này). Nếu bạn chưa đóng vai này, tôi hy vọng bạn có trí tưởng tượng để diễn lại bộ phim kinh dị này trong đầu và sự thận trọng để giữ cho cơ sở dữ liệu của bạn (và chính bạn) an toàn nhất có thể. Kiến trúc máy khách-máy chủ giúp ích như thế nào ở đây?

Máy chủ cơ sở dữ liệu thực hiện sửa đổi dữ liệu dựa trên cơ chế giao dịch, cơ chế này cung cấp cho bất kỳ tập hợp hoạt động nào được khai báo là giao dịch các thuộc tính sau:

tính nguyên tử - trong mọi trường hợp, tất cả các hoạt động của giao dịch sẽ được thực hiện hoặc không có hoạt động nào được thực hiện; tính toàn vẹn dữ liệu khi hoàn thành giao dịch;

tính độc lập - các giao dịch do những người dùng khác nhau thực hiện không can thiệp vào công việc của nhau;

khả năng chống thất bại - sau khi giao dịch hoàn tất, kết quả của nó sẽ không bị mất.

Cơ chế giao dịch được hỗ trợ bởi máy chủ cơ sở dữ liệu hiệu quả hơn nhiều so với cơ chế tương tự trong các DBMS trên máy tính để bàn, bởi vì máy chủ kiểm soát tập trung hoạt động của các giao dịch. Ngoài ra, trong hệ thống máy chủ tệp, lỗi trên bất kỳ máy trạm nào có thể dẫn đến mất dữ liệu và không thể truy cập được vào các máy trạm khác, trong khi ở hệ thống máy khách-máy chủ, lỗi trên máy khách hầu như không bao giờ ảnh hưởng đến tính toàn vẹn của dữ liệu. và tính sẵn có của chúng đối với các khách hàng khác.

Khả năng mở rộng

Khả năng mở rộng là khả năng hệ thống thích ứng với sự tăng trưởng về số lượng người dùng và khối lượng cơ sở dữ liệu với sự gia tăng phù hợp về hiệu suất của nền tảng phần cứng mà không cần thay thế phần mềm.

Người ta biết rằng khả năng của DBMS trên máy tính để bàn bị hạn chế nghiêm trọng - tương ứng là 5 đến 7 người dùng và 30-50 MB. Tất nhiên, các con số đại diện cho một số giá trị trung bình; trong những trường hợp cụ thể, chúng có thể sai lệch theo một trong hai hướng. Quan trọng nhất, những rào cản này không thể vượt qua được bằng cách tăng cường khả năng phần cứng.

Các hệ thống dựa trên máy chủ cơ sở dữ liệu có thể hỗ trợ hàng nghìn người dùng và hàng trăm GB thông tin - chỉ cần cung cấp cho họ nền tảng phần cứng phù hợp.

Sự an toàn

Máy chủ cơ sở dữ liệu cung cấp các phương tiện mạnh mẽ để bảo vệ dữ liệu khỏi bị truy cập trái phép, điều này không thể thực hiện được trong các DBMS trên máy tính để bàn. Đồng thời, quyền truy cập được quản lý rất linh hoạt - đến cấp độ các trường bảng. Ngoài ra, bạn hoàn toàn có thể cấm truy cập trực tiếp vào các bảng, cho phép người dùng tương tác với dữ liệu thông qua các đối tượng trung gian - dạng xem và thủ tục được lưu trữ. Vì vậy, quản trị viên có thể chắc chắn rằng không có người dùng quá thông minh nào sẽ đọc những gì anh ta không được phép đọc.

Uyển chuyển

Trong một ứng dụng dữ liệu, có ba lớp logic:

giao diện người dùng;

quy tắc xử lý logic (quy tắc kinh doanh);

quản lý dữ liệu (không nên nhầm lẫn các lớp logic với mức độ thể chất, sẽ được thảo luận dưới đây).

Như đã đề cập, trong kiến ​​trúc máy chủ tệp, cả ba lớp đều được triển khai trong một ứng dụng nguyên khối chạy trên máy trạm. Do đó, những thay đổi ở bất kỳ lớp nào rõ ràng sẽ dẫn đến việc sửa đổi ứng dụng và cập nhật các phiên bản của nó trên máy trạm sau đó.

Trong ứng dụng máy khách-máy chủ hai tầng được hiển thị trong Hình. 1, theo quy định, tất cả các chức năng tạo giao diện người dùng được triển khai trên máy khách, tất cả các chức năng quản lý dữ liệu được triển khai trên máy chủ, nhưng các quy tắc nghiệp vụ có thể được triển khai cả trên máy chủ bằng các cơ chế lập trình máy chủ (thủ tục được lưu trữ, trình kích hoạt, lượt xem, v.v.) và trên máy khách. Trong ứng dụng ba tầng, cấp độ trung gian thứ ba xuất hiện, thực hiện các quy tắc kinh doanh, là các thành phần ứng dụng được thay đổi thường xuyên nhất (xem Hình. Mô hình ứng dụng máy khách-máy chủ ba tầng)

Sự hiện diện của không chỉ một mà nhiều cấp độ cho phép sự linh hoạt và chi phí tối thiểuđiều chỉnh ứng dụng để thay đổi yêu cầu kinh doanh.

Hãy thử minh họa tất cả những điều trên bằng một ví dụ nhỏ. Giả sử rằng các quy tắc trả lương (quy tắc kinh doanh) của một tổ chức nào đó đã thay đổi và phần mềm tương ứng cần được cập nhật.

1) Trong hệ thống máy chủ tệp, chúng tôi "đơn giản" thực hiện các thay đổi đối với ứng dụng và cập nhật phiên bản của nó trên máy trạm. Nhưng điều này “đơn giản” đòi hỏi chi phí lao động tối đa.

2) Trong hệ thống máy khách-máy chủ hai tầng, nếu thuật toán trả lương được triển khai trên máy chủ dưới dạng quy tắc trả lương, thì nó sẽ được thực thi bởi máy chủ quy tắc kinh doanh, được triển khai, chẳng hạn như máy chủ OLE và chúng tôi sẽ cập nhật một trong các đối tượng của nó mà không thay đổi bất cứ điều gì trong ứng dụng khách, cũng như trên máy chủ cơ sở dữ liệu.

Các giai đoạn xây dựng hệ thống client-server.

Giả sử ngày nay bạn đang sử dụng một ứng dụng, được triển khai theo kiến ​​trúc máy chủ tệp, sử dụng các phương tiện Microsoft truy cập và suy nghĩ về sự phát triển của nó. Các bước sau đây có thể được xem xét.

1. Chuyển cơ sở dữ liệu sang Microsoft SQL Máy chủ, giữ nguyên giao diện và logic vận hành. Đồng thời, bạn sẽ không tận dụng được tất cả các ưu điểm của kiến ​​trúc client-server nhưng bạn có thể yên tâm rằng dữ liệu của bạn được lưu trữ an toàn.

2. Phát triển ứng dụng máy khách-máy chủ hai tầng chính thức bằng cách sử dụng cùng một tổ hợp Access - SQL Server, ứng dụng này hoạt động rất tốt. Ví dụ, điều này có thể được thực hiện bằng cách thay đổi dần từng thành phần riêng lẻ của ứng dụng thu được ở bước 1. Một giải pháp thay thế là phát triển một ứng dụng hoàn toàn mới bằng cách sử dụng Visual Basic, Delphi hoặc bất kỳ công cụ nào khác trong số hàng tá công cụ có sẵn với tư cách là khách hàng.

3.Nếu bạn đang lập kế hoạch phát triển nghiêm túc cho tổ chức của mình thì việc sử dụng kiến ​​trúc ba tầng sẽ cho phép bạn phân phối tải trọng ngày càng tăng giữa các máy chủ một cách linh hoạt hơn và giảm thiểu chi phí duy trì và phát triển hệ thống.

Chúng tôi hy vọng bài viết này đã mang lại cho bạn sự hiểu biết chung về kiến ​​trúc client-server và những lợi ích của nó. Trong các số tới, chúng tôi dự định sẽ nói chi tiết hơn về Microsoft SQL Server và xây dựng các hệ thống dựa trên nó.

Kiến trúc IS hai cấp máy khách-máy chủ

Sự khác biệt chính Kiến trúc máy khách-máy chủ từ kiến ​​trúc máy chủ tệp là một sự trừu tượng hóa từ cách biểu diễn dữ liệu bên trong (lược đồ dữ liệu vật lý). Với kiến ​​trúc này, các chương trình máy khách thao tác dữ liệu ở cấp độ mạch logic. Để triển khai kiến ​​trúc máy khách-máy chủ, các DBMS nhiều người dùng thường được sử dụng, ví dụ: Oracle hoặc Microsoft SQL Server.

máy khách-máy chủ Hệ thống thông tin gồm ba thành phần chính: phần mềm máy chủ; phần mềm người dùng cuối; phần mềm trung gian (Hình 1.7). Phần mềm máy chủ, ngoài việc quản lý cơ sở dữ liệu, còn cung cấp dịch vụ khách hàng.

Các DBMS như vậy cung cấp cơ chế khóa và kiểm soát truy cập nhiều người dùng để bảo vệ dữ liệu khỏi những rủi ro vốn có khi truy cập đồng thời. Ngoài ra, máy chủ cơ sở dữ liệu phải bảo vệ dữ liệu khỏi bị truy cập trái phép, tối ưu hóa các truy vấn cơ sở dữ liệu, đảm bảo tính toàn vẹn dữ liệu và kiểm soát việc hoàn thành giao dịch. Trong tổ chức máy khách-máy chủ, máy khách có thể khá mỏng, nhưng máy chủ phải đủ dày để đáp ứng nhu cầu của tất cả máy khách, phần mềm bao gồm các công cụ phát triển. chương trình ứng dụng và trình tạo báo cáo, bao gồm bảng tínhbộ xử lý từ ngữ Sử dụng phần mềm này, người dùng thiết lập kết nối với máy chủ, hình thành các truy vấn được tạo tự động thành truy vấn SQL và gửi đến máy chủ. Máy chủ chấp nhận và xử lý các yêu cầu, sau đó truyền kết quả đến máy khách. Middleware là một phần của hệ thống client-server kết nối phần mềm người dùng cuối với máy chủ.

Việc sử dụng kiến ​​trúc máy khách-máy chủ giúp tạo ra các hệ thống thông tin nhiều người dùng đáng tin cậy (về mặt toàn vẹn dữ liệu) với cơ sở dữ liệu tập trung, độc lập với phần cứng (và thường là phần mềm) của máy chủ cơ sở dữ liệu và hỗ trợ GUI người dùng trên các trạm khách được kết nối mạng nội bộ. Hơn nữa, chi phí phát triển ứng dụng đã giảm đáng kể.

Kiến trúc này có hai cấp độ, tính năng đặc trưngđó là các chương trình máy khách làm việc với dữ liệu thông qua các yêu cầu tới phần mềm máy chủ và chức năng cơ bản các ứng dụng được phân chia giữa máy khách và máy chủ (Hình 1.8).

Ưu điểm của kiến ​​trúc này bao gồm:

· hỗ trợ đầy đủ công việc nhiều người dùng;

· Đảm bảo tính toàn vẹn dữ liệu.

Nên sử dụng kiến ​​trúc hai tầng trong các doanh nghiệp có vài chục người dùng, vì hệ điều hành máy chủ trong thời gian bảo trì số lượng lớn Khách hàng bị quá tải với việc quản lý nhiều kết nối đến máy chủ.

Nhược điểm của kiến ​​trúc client-server hai tầng là:

· Logic nghiệp vụ của các ứng dụng vẫn còn trong phần mềm máy khách. Với bất kỳ sự thay đổi nào về thuật toán, cần phải cập nhật phần mềm người dùng trên từng máy khách.

· Yêu cầu cao về băng thông kênh thông tin liên lạc với máy chủ, điều này ngăn cản việc sử dụng các trạm máy khách ngoài mạng cục bộ.

· Bảo vệ yếu dữ liệu từ việc hack, đặc biệt là từ những người dùng hệ thống vô đạo đức.

· Độ phức tạp cao trong việc quản trị và cấu hình các máy trạm của người dùng hệ thống.

· Nhu cầu sử dụng PC mạnh mẽ tại địa điểm của khách hàng.

· Độ phức tạp cao của việc phát triển hệ thống do nhu cầu thực hiện logic nghiệp vụ và cung cấp giao diện người dùng trong một chương trình.