Máy khách được gọi là kiến ​​trúc máy chủ. 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

Hệ thống máy khách-máy chủ. Phần 2

Kiến trúc client-server: định nghĩa, điều kiện tiên quyết cho ứng dụng, ưu và nhược điểm

Kiến trúc client-server là gì? Tùy chọn xây dựng ứng dụng

Vì vậy, cuối cùng hãy nói về

Chính xác thì máy khách-máy chủ là gì? . Nói một cách chính xác, cần phân biệt công nghệ client-server theo nghĩa rộng, có thể sử dụng trong bất kỳ hệ thống máy tính nào, từ chính kiến ​​trúc client-server trong mối quan hệ với các ứng dụng thông tin nói chung và hệ thống quản lý doanh nghiệp tự động nói riêng.

Theo từ điển trực tuyến thuật ngữ máy tính, máy khách-máy chủ là một loại hệ thống phân tán trong đó có một máy chủ đáp ứng các yêu cầu của máy khách và máy chủ và máy khách giao tiếp với nhau bằng giao thức này hay giao thức khác.

Máy khách là một chương trình sử dụng tài nguyên và máy chủ (trong tiếng Anh là người hầu) là chương trình phục vụ các yêu cầu của máy khách về một loại tài nguyên nhất định. Định nghĩa rộng như vậy bao gồm hầu hết mọi công nghệ phần mềm liên quan đến nhiều hơn một chương trình, các chức năng giữa chúng được phân bổ không đối xứng. Theo đó, họ nói về công nghệ CS liên quan đến hệ điều hành, mạng cục bộ và toàn cầu, v.v.

Một định nghĩa rộng như vậy tạo ra một số nhầm lẫn. Do đó, hệ thống máy chủ tệp cũng sử dụng công nghệ máy khách-máy chủ, nhưng từ quan điểm của kiến ​​trúc chương trình ứng dụng, điều quan trọng là loại tài nguyên mà máy chủ cung cấp cho máy khách.

Khái niệm kiến ​​trúc máy khách-máy chủ trong hệ thống quản lý doanh nghiệp gắn liền với việc phân chia bất kỳ chương trình ứng dụng nào thành ba thành phần hoặc lớp chính. Ba thành phần này được

:
  • thành phần trình bày dữ liệu (trực quan hóa);
  • thành phần logic ứng dụng;
  • thành phần quản lý cơ sở dữ liệu.
  • Thật vậy, bất kỳ chương trình nào tin học hóa việc thực thi một tác vụ ứng dụng cụ thể đều phải trao đổi thông tin với người dùng, thực hiện quá trình xử lý thực tế thông tin này như một phần của quá trình tự động hóa một quy trình kinh doanh cụ thể và cuối cùng là lưu trữ dữ liệu được sử dụng trong chương trình. trên một hoặc một phương tiện vĩnh viễn khác.

    Đối với các ứng dụng cục bộ chạy hoàn toàn trên PC (ví dụ: Word hoặc Excel), tất cả các thành phần này được tập hợp lại với nhau và không thể phân phối giữa các máy tính khác nhau. Một chương trình như vậy là nguyên khối và chỉ sử dụng để thực thi các tài nguyên của máy tính mà nó được thực thi.

    Trong các ứng dụng máy chủ tệp, một phần thành phần lưu trữ được chuyển đến máy chủ tệp, tuy nhiên, tất cả các thao tác với cấu trúc dữ liệu được thực hiện trên máy khách và mã chương trình người dùng cũng chỉ chạy trên máy chủ đó.

    Tiêu chí cho phép phân loại một chương trình ứng dụng là kiến trúc client-server là ít nhất một trong ba thành phần của nó được thực thi hoàn toàn trên một máy tính khác và sự tương tác giữa các thành phần trên các máy tính khác nhau được thực hiện thông qua môi trường mạng này hoặc môi trường mạng khác bằng cách truyền các yêu cầu về một hoặc một tài nguyên khác.

    Vì kiến ​​trúc client-server là một trường hợp đặc biệt của công nghệ client-server nên nó nhất thiết phải có client và server. Theo đó, phía máy khách và máy chủ của ứng dụng được phân biệt. Phía khách hàngỨng dụng này 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ía máy chủ hoạt động trên một tổ hợp chuyên biệt 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à chính cấu trúc dữ liệu.

    Sự tương tác giữa các phần máy khách và máy chủ của ứng dụng được thực hiện thông 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 tương ứngở đây nó 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ư giao thức hoặc các giao thức thực tế để trao đổi yêu cầu và kết quả thực hiện chúng.

    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).

    Thành phần logic được áp dụng thực sự giải quyết được 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ể. 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à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. Trong kiến ​​trúc client-server, thành phần này luôn chạy trên 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

    . Hai cấp độ hệ thống chỉ bao gồm một máy khách và một máy chủ. TRONG ba cấp độ Giữa máy khách người dùng và máy chủ lưu trữ và xử lý cơ sở dữ liệu, lớp trung gian thứ ba xuất hiện, là máy chủ dành cho người dùng và máy khách dành cho hệ thống quản lý cơ sở dữ liệu. 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. Cái giá phải trả cho việc này là 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, đồng thời đòi hỏi chi phí đáng kể và nhân sự có trình độ cao.

    Phần thứ ba xem xét một ví dụ về cấu trúc ba tầng Máy chủ Baikonur.

    Trong kiến ​​trúc client-server, có một số loại khác nhau mô hình ứng dụng, tùy thuộc vào sự phân bố của các thành phần ứng dụng giữa các phần máy khách và máy chủ. Trong lịch sử, cái đầu tiên được phát triển mô hình máy chủ truy cập dữ liệu từ xa. Trong mô hình này, phần máy chủ chỉ lưu trữ dữ liệu và tất cả logic ứng dụng được thực hiện bởi phần máy khách. 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.

    Trong mô hình máy chủ truy cập dữ liệu từ xa, không có phần ứng dụng nào của hệ thống được thực thi ở phía máy chủ, điều này có thể dẫn đến tình trạng máy chủ bị quá tải và máy khách bị quá tải. Do đó, sau đó nó đã được đề xuất và thực hiện kiến trúc máy chủ cơ sở dữ liệu. Trong đó, một phần logic ứng dụng được triển khai trên máy chủ bằng ngôn ngữ lập trình đặc biệt và một phần - trên máy khách. Điều này trở nên khả thi nhờ năng suất tăng lên của các máy chủ DBMS hiện đại. So với tùy chọn máy chủ truy cập dữ liệu từ xa, trong trường hợp này tải sẽ giảm nhẹ

    về phía máy khách, cường độ trao đổi dữ liệu mạng và trong một số trường hợp, cấu trúc ứng dụng được đơn giản hóa. Hiện nay, tùy chọn này cho hệ thống xây dựng là phổ biến nhất.

    Một lựa chọn khác cho kiến ​​trúc client-server là máy chủ ứng dụng. Trong trường hợp này, máy khách chỉ thực hiện các hoạt động nhập dữ liệu và trực quan hóa, còn máy chủ triển khai tất cả logic ứng dụng. Việc trao đổi giữa máy khách và máy chủ trong các hệ thống như vậy được thực hiện ở cấp độ lệnh hiển thị dữ liệu trên màn hình và kết quả đầu vào của người dùng. Ví dụ nổi bật nhất của kiến ​​trúc này là kiến ​​trúc nổi tiếng trình duyệt web. Thông thường, trong mô hình máy chủ ứng dụng, các thành phần quản lý dữ liệu và logic ứng dụng được triển khai riêng biệt.

    Kiến trúc máy chủ ứng dụng thường được gọi là khách hàng "gầy", Không giống một máy khách "dày" truyền thống được triển khai trong kiến ​​trúc máy chủ cơ sở dữ liệu. Máy khách tối thiểu là một tùy chọn có thể được sử dụng khi tài nguyên có sẵn tại máy trạm của người dùng không đủ để thực thi logic ứng dụng. Ngoài ra, công nghệ này cho phép bạn giảm chi phí vận hành các thành phần máy khách của hệ thống do tính đơn giản hóa mạnh mẽ của chúng.

    Điều kiện tiên quyết cho sự xuất hiện của kiến ​​trúc client-server trong doanh nghiệp

    Tin học hóa một doanh nghiệp công nghiệp có thể diễn ra trong một thời gian khá dài trong khuôn khổ nơi làm việc hoặc kiến ​​trúc địa phương được mô tả trước đó máy chủ tập tin. Tuy nhiên, sớm hay muộn có thể sẽ đến lúc lựa chọn duy nhất để phát triển hơn nữa hệ thống quản lý doanh nghiệp tự động sẽ là kiến ​​trúc. máy khách-máy chủ. Hãy thử liệt kê lý do chính tại sao điều này lại trở nên cần thiết.

    Thứ nhất, kiến ​​trúc client-server trở nên quan trọng khi số lượng người dùng đồng thời tích cực sử dụng cùng một dữ liệu vượt quá 10-15 người. Do những hạn chế cơ bản vốn có trong các ứng dụng máy chủ tệp, các hệ thống như vậy khó có thể chấp nhận được với 15 người dùng đồng thời và thường không hoạt động với 20 người dùng. Do đó, nếu doanh nghiệp phải đối mặt với nhiệm vụ xây dựng một hệ thống trong đó số lượng địa điểm làm việc tích cực đồng thời với dữ liệu vượt quá 20, thì thực tế, lựa chọn duy nhất cho doanh nghiệp đó là máy khách-máy chủ.

    Công bằng mà nói, cần lưu ý rằng các máy tính lớn cũng có khả năng xử lý hàng chục, thậm chí hàng trăm người dùng. Tuy nhiên, do chi phí phần cứng cao, chi phí phát triển cao và quan trọng là chi phí đáng kể để vận hành các thiết bị và chương trình đó cho nó, nên lựa chọn sử dụng kiến ​​trúc tập trung khi giới thiệu các hệ thống mới ở nước ta hầu như không bao giờ được xem xét. .

    Một điểm quan trọng khác cho quá trình chuyển đổi sang kiến ​​trúc máy khách-máy chủ là quá trình chuyển đổi sang giải quyết các vấn đề ở quy mô doanh nghiệp và quản lý toàn bộ doanh nghiệp. Tự động hóa các công việc riêng lẻ có thể được hoàn thành thành công ngay cả khi không sử dụng công nghệ mạng; máy chủ tệp có thể xử lý các nhiệm vụ ở quy mô bộ phận, nhưng chỉ có thể xây dựng một hệ thống tự động tích hợp bao trùm toàn bộ doanh nghiệp hoặc ít nhất bất kỳ hệ thống con quản lý nào. công nghệ client-server.

    Một tình huống khác mà máy khách-máy chủ là cách duy nhất để xây dựng hệ thống là khi hệ thống tự động có người dùng từ xa, người cần trao đổi thông tin trong thời gian thực. Theo quy mô thời gian thực, chúng tôi muốn nói đến giây-phút ở đây. Trong trường hợp này, việc trao đổi dữ liệu trên đĩa mềm về cơ bản là không phù hợp và kiến ​​trúc máy chủ tệp sẽ yêu cầu tốc độ trao đổi rất cao và điều này về cơ bản là không thể hoặc rất tốn kém. Ví dụ cá nhân của các tổ chức giàu có đã xây dựng hệ thống máy chủ tệp toàn thành phố (ví dụ: Inkombank của Nga) là những trường hợp ngoại lệ chứng minh quy luật này.

    Và cuối cùng, kiến ​​trúc client-server là cần thiết khi Nhiệm vụ đảm bảo tính toàn vẹn thông tin trở nên quan trọng. Theo quan trọng, chúng tôi muốn nói đến một tình huống trong đó chi phí của một lỗi dữ liệu có thể tương đương với chi phí tạo ra một hệ thống máy khách-máy chủ. Trước hết, điều này có liên quan đến các dịch vụ tài chính của doanh nghiệp.

    Nỗ lực giải quyết bất kỳ vấn đề nào được liệt kê ở trên như một phần của quá trình tin học hóa một doanh nghiệp công nghiệp nhất thiết sẽ kéo theo sự xuất hiện của hệ thống máy khách-máy chủ. Ngoài ra, kiến ​​trúc này có thể nổi lên như một sự phát triển tự nhiên của các hệ thống điều khiển sản xuất tự động, ngay cả khi những hạn chế của kiến ​​trúc trước đó trong một doanh nghiệp nhất định vẫn chưa trở nên nghiêm trọng. Tùy chọn này là thích hợp nhất vì một mặt, việc triển khai nhận được sự hỗ trợ từ bên trong, mặt khác, có thời gian để chuẩn bị cho sự thay đổi suôn sẻ trong kiến ​​trúc của các ứng dụng thông tin.

    Kiến trúc máy khách-máy chủ: Có, nhưng...

    Chúng ta đã nói về những ưu điểm của kiến ​​trúc client-server. Một câu hỏi tự nhiên có thể được đặt ra: nếu nó tốt như vậy thì tại sao họ vẫn chưa chuyển sang? Tất cả người sử dụng chính của hệ thống thông tin. Nó thực sự không đơn giản như vậy.

    Trước hết, đối với các doanh nghiệp công nghiệp trong nước, điều quan trọng là yếu tố chi phí. Không giống như các doanh nghiệp phương Tây, theo quy định, chúng ta đang nói về việc thay thế các hệ thống tập trung khá đắt tiền bằng hệ thống máy khách-máy chủ, chi phí trực tiếp thấp hơn, các doanh nghiệp trong nước hầu như không bao giờ có đủ vốn để triển khai các hệ thống tập trung lớn. Rất thường xuyên, các hệ thống thông tin có sẵn trong doanh nghiệp được xây dựng trên phần cứng lỗi thời, cần phải thay thế hoàn toàn khi chuyển sang kiến ​​trúc client-server.

    Chữ "nhưng" lớn tiếp theo chính là khối lượng lớn các thay đổi công nghệ các vấn đề nảy sinh khi cố gắng triển khai kiến ​​trúc client-server. Hệ thống máy khách-máy chủ yêu cầu trình độ hiểu biết kỹ thuật khác nhau về phía cả nhân viên dịch vụ thông tin và người dùng cuối. Chi phí đào tạo lại người dùng và nhân viên vận hành, tái cấu trúc cơ cấu tự động hóa doanh nghiệp chiếm phần lớn hơn trong tảng băng trôi so với chi phí trực tiếp thấy rõ của việc nâng cấp thiết bị, mua và/hoặc phát triển phần mềm cần thiết.

    Và cuối cùng, cạm bẫy lớn nhất trên con đường xây dựng hệ thống CS tại doanh nghiệp chính là nhu cầu thay đổi cơ cấu quản lý và chi phí tổ chức liên quan

    .

    Nỗ lực giới thiệu các giải pháp công nghệ mới mà không thay đổi bất kỳ điều gì về bản chất của quy trình kinh doanh tự động có thể sẽ vô ích. Trong trường hợp này, doanh nghiệp sẽ bị tổn thất vật chất trực tiếp do khối lượng lớn phần cứng và phần mềm đắt tiền nằm trong trọng lượng chết, cũng như do nhân viên mất tập trung khi thực hiện nhiệm vụ công việc chính của họ. Trong trường hợp tốt nhất, các phần riêng biệt của hệ thống máy khách-máy chủ sẽ được giới thiệu, trong khi trên thực tế, phần mềm mới sẽ được sử dụng ở cấp độ tư tưởng cũ.

    Nếu sau khi cân nhắc tất cả ưu và nhược điểm, doanh nghiệp vẫn quyết định tạo hệ thống client-server thì doanh nghiệp sẽ phải đối mặt với nhiệm vụ lựa chọn thành phầnđể xây dựng hệ thống này. Trong mọi trường hợp, thành phần cần thiết là cái này hay cái khác máy chủ cơ sở dữ liệu cấp độ công ty. Các thành phần còn lại phụ thuộc vào con đường được doanh nghiệp lựa chọn để phát triển hơn nữa hệ thống điều khiển tự động.

    Nếu doanh nghiệp đã quyết định tự mình phát triển hệ thống, thì trước hết anh ta phải đối mặt với nhiệm vụ lựa chọn các công cụ phát triển. Nếu công ty đặt lệnh xây dựng hệ thống một công ty phát triển cụ thể thì công ty đó sẽ phải đối mặt với một nhiệm vụ tương tự.

    Trong trường hợp người ta đưa ra quyết định không tự mình phát triển hệ thống mà sử dụng một trong những giải pháp có sẵn trên thị trường, thì thành phần chính của sự lựa chọn là hệ thống tự động hóa doanh nghiệp làm sẵn (ở mức độ này hay mức độ khác). Trên thực tế, từ "có sẵn" nên được sử dụng rất cẩn thận, vì rất khó để phân biệt rõ ràng giữa việc tùy chỉnh cho nhu cầu sử dụng cụ thể và khả năng thích ứng của hệ thống, thường bao gồm việc sửa đổi các mô-đun hệ thống hoặc thậm chí phát triển thêm các phần mềm đáp ứng nhu cầu của khách hàng.

    Chúng là những thành phần không đồng đều của mạng thông tin. Một số sở hữu một tài nguyên và do đó được gọi là máy chủ; những người khác truy cập vào các tài nguyên này và được gọi là máy khách. Hãy xem cách chúng tương tác với nhau và kiến ​​trúc client-server là gì.

    Kiến trúc máy khách-máy chủ

    Kiến trúc “Máy khách-Máy chủ” là sự tương tác của các thành phần cấu trúc trong mạng dựa trên các thành phần cấu trúc được mạng xác định, trong đó các thành phần cấu trúc là máy chủ và các nút cung cấp một số chức năng (dịch vụ) chuyên biệt nhất định, cũng như các máy khách sử dụng dịch vụ này . Các chức năng cụ thể thường được chia thành ba nhóm dựa trên việc giải quyết các vấn đề cụ thể:

    • chức năng nhập và trình bày dữ liệu được thiết kế để người dùng tương tác với hệ thống;
    • các hàm được áp dụng - mỗi hàm có tập hợp riêng;
    • các chức năng quản lý tài nguyên được thiết kế để quản lý hệ thống tệp, các cơ sở dữ liệu khác nhau và các thành phần khác.

    Ví dụ: một máy tính không có kết nối mạng đại diện cho các thành phần trình bày, ứng dụng và điều khiển ở nhiều cấp độ khác nhau. Các cấp độ này bao gồm hệ điều hành, phần mềm ứng dụng và tiện ích cũng như các tiện ích khác nhau. Theo cách tương tự, tất cả các thành phần trên được trình bày trên Internet. Điều chính là đảm bảo đúng đắn sự tương tác mạng giữa các thành phần này.

    Cách thức hoạt động của kiến ​​trúc client-server

    Kiến trúc máy khách-máy chủ thường được sử dụng để tạo cơ sở dữ liệu công ty, trong đó thông tin không chỉ được lưu trữ mà còn được xử lý định kỳ bằng nhiều phương pháp khác nhau. Cơ sở dữ liệu là thành phần chính của bất kỳ hệ thống thông tin công ty nào và máy chủ chứa cốt lõi của cơ sở dữ liệu này. Do đó, hầu hết các hoạt động phức tạp liên quan đến nhập, lưu trữ, xử lý và sửa đổi dữ liệu đều diễn ra trên máy chủ. Khi người dùng (client) truy cập vào cơ sở dữ liệu (máy chủ), yêu cầu được xử lý: truy cập trực tiếp vào cơ sở dữ liệu và trả về phản hồi (kết quả xử lý). Kết quả của quá trình xử lý là một thông báo mạng về sự thành công của thao tác hoặc có lỗi. Máy chủ có thể xử lý đồng thời các yêu cầu từ nhiều máy khách cho cùng một tệp. Công việc như vậy qua mạng cho phép bạn tăng tốc hoạt động của các ứng dụng bạn sử dụng.

    Kiến trúc client-server: ứng dụng công nghệ

    Kiến trúc này được sử dụng để truy cập các tài nguyên khác nhau bằng công nghệ mạng: cơ sở dữ liệu, máy chủ thư, tường lửa, máy chủ proxy. Sự phát triển của các ứng dụng máy khách-máy chủ có thể cải thiện tính bảo mật, độ tin cậy và hiệu suất của các ứng dụng được sử dụng và toàn bộ mạng. Các ứng dụng máy khách-máy chủ thường được sử dụng nhiều nhất để tự động hóa doanh nghiệp.

  • Phát triển cho iOS,
  • Phát triển ứng dụng di động
  • Hãy để tôi đặt trước ngay rằng tôi là nhà phát triển thiết bị di động và bài viết chủ yếu dành cho các nhà phát triển ở phía bên kia đám mây - các nhà phát triển thiết bị di động đã biết về tất cả những điều này. Tôi đã viết ứng dụng web cuối cùng cách đây nhiều năm và có thể tôi sai về thuật ngữ web, có thể không biết một số xu hướng mới nhất trong các dịch vụ web .NET, PHP hoặc Java, vì vậy đừng phán xét quá khắt khe.

    Giống như bất kỳ nhà phát triển front-end nào, trong hầu hết mọi dự án, tôi đều phải xử lý các giao thức máy khách-máy chủ - tôi không thể làm gì nếu không có chúng. Và rất, rất thường xuyên, bạn phải làm việc với những kiến ​​trúc được suy nghĩ sơ sài.

    Ngoài ra, việc phát triển giao thức và kiến ​​trúc thường rơi vào vai nhà phát triển web, điều này không phải lúc nào cũng đúng - trong hầu hết các trường hợp, nó chỉ nên được phát triển cùng với những người sẽ thích ứng với kiến ​​trúc này. Thật không may, sau khi thực hiện hàng chục dự án trong ba năm qua, tôi chỉ có cơ hội tham gia quy hoạch phần kiến ​​​​trúc này 3 hoặc 4 lần - trong tất cả các trường hợp khác, nó đã được cung cấp ở các mức độ sẵn sàng khác nhau. khách hàng. Nhưng thế giới có thể tốt đẹp hơn biết bao!

    Xử lý lỗi

    Thông thường tôi gặp một cái gì đó như thế này:

    Mã HTTP 200 (Được) SAI Tên người dùng hoặc mật khẩu không chính xác. Vui lòng thử lại.
    Những thứ kia. kết quả của việc xử lý yêu cầu được chứa trong chính XML đã gửi, mã trả về HTTP là 200, tức là. được rồi, dữ liệu được trình bày dưới dạng RPC thông thường. Ví dụ: việc xử lý lỗi trong giao thức SOAP được triển khai theo cách tương tự trong 90% trường hợp.

    Trong các trường hợp đặc biệt nâng cao, đặc biệt là điển hình cho mã Ấn Độ, sai có thể được đặt ở nhiều vị trí khác nhau trong XML, điều này làm phức tạp đáng kể việc phân tích cú pháp, dẫn đến sự phức tạp quá mức và mang lại niềm vui to lớn cho một lập trình viên nhàm chán.

    Nhưng về nguyên tắc, hãy xem xét những nhược điểm của phương pháp này.

    • Đầu tiên, bạn phải phân tích cú pháp XML. Đây là dữ liệu bổ sung được truyền qua mạng, CPU dành thêm thời gian cho việc phân tích cú pháp XML, RAM bổ sung để lưu trữ dữ liệu văn bản. Tất cả điều này không quá đáng sợ trên các thiết bị hiện đại trong vùng Wi-Fi, nhưng ngay cả những sự dư thừa như vậy cũng có thể gây ra vấn đề trong tàu điện ngầm giữa các ga trong một ứng dụng gửi hàng chục yêu cầu cùng lúc (và với cách tiếp cận này, các khối trống để xử lý lỗi sẽ được đưa vào mọi yêu cầu, thậm chí thành công).
    • Thứ hai, nhà phát triển web phải tự mình phát minh ra các văn bản lỗi. Rất thường xuyên, chúng hoàn toàn không thể hiểu được đối với người dùng, bởi vì... độ chính xác của từ ngữ là điều cuối cùng mà nhà phát triển web nghĩ đến khi viết một dịch vụ. Văn bản lỗi trong 90% trường hợp không phù hợp với người bản ngữ và cuối cùng nhưng quan trọng nhất là một số lượng lớn ứng dụng di động cần bản địa hóa. Mặc dù văn bản lỗi rất có thể luôn chỉ được viết bằng tiếng Anh, do đó, nó hoàn toàn vô dụng đối với một lập trình viên front-end - anh ta không thể đơn giản lấy nó và hiển thị nó.

    Nhưng thời gian mà người lập trình web cần để tìm ra nội dung của tin nhắn sẽ bị lãng phí và kênh cũng chứa đầy những thông tin không cần thiết.

    Làm thế nào để giải quyết một vấn đề?

    Giao thức HTTP đã có khả năng thêm mã lỗi của riêng bạn trong nhiều năm; để làm được điều này, chúng chỉ cần nằm trong phạm vi từ 512 đến 597. Tôi chắc chắn rằng số lỗi này sẽ đủ để bao gồm tất cả các lỗi có thể xảy ra trong một ứng dụng cỡ trung bình. Rõ ràng điều này mang lại những lợi ích gì, nhưng hãy tóm tắt:

    1. Không có sự dư thừa. Chỉ có mã HTTP trong tiêu đề được truyền đi, đơn giản là không có nội dung yêu cầu.
    2. Về phía máy khách, chỉ có hai nhánh mã xử lý yêu cầu - thực thi thành công hoặc lỗi thực thi (cả hai lệnh gọi lại đều đã được triển khai ngay lập tức trong bất kỳ thư viện yêu cầu nào). Không có chủ đề "yêu cầu đã hoàn thành thành công nhưng có thể có lỗi logic trong nội dung phản hồi".
    Lỗi máy chủ 5xx

    Máy chủ không thể thực hiện được yêu cầu có vẻ hợp lệ.
    Mã trạng thái phản hồi bắt đầu bằng chữ số “5” cho biết các trường hợp máy chủ biết rằng nó đã gặp lỗi hoặc không có khả năng thực hiện yêu cầu. Ngoại trừ khi phản hồi yêu cầu HEAD, máy chủ phải bao gồm một thực thể chứa phần giải thích về tình huống lỗi và cho biết đó là tình trạng tạm thời hay vĩnh viễn. Tương tự như vậy, tác nhân người dùng sẽ hiển thị bất kỳ thực thể nào được bao gồm cho người dùng. Các mã phản hồi này có thể áp dụng cho bất kỳ phương thức yêu cầu nào.

    Những thứ kia. khách hàng phải hiển thị cho người dùng tin nhắn được gửi bởi máy chủ. Người Mỹ đã viết gì ngay lập tức rõ ràng. Nhân tiện, người Nga đã dịch nó một cách ngu ngốc.

    Mặc dù chúng tôi sẽ không khái quát hóa – ý tưởng sử dụng mã HTTP đã được một người Mỹ đề xuất với tôi vài năm trước.

    Nói chung, hệ tư tưởng là thế này: khách hàng luôn biết rõ hơn cách báo cáo lỗi. Và máy chủ phải thông báo lỗi cho khách hàng một cách nhanh nhất và tiết kiệm chi phí nhất.

    Liên kết với một phiên hoặc cookie.

    Kết nối này rất có thể xảy ra nếu một trang web được tạo trước và chỉ sau đó khách hàng mới quyết định tạo giao diện người dùng di động. Mặc dù có thể làm việc với các biến phiên trên thiết bị di động nhưng đó không phải là cách làm tốt vì Thường không có bộ công cụ thông thường để làm việc với những công cụ này.

    Hạn chế thứ hai, toàn cầu là Safari (hoặc bất kỳ trình duyệt nào trên Android) không chia sẻ cookie và biến phiên của nó với ứng dụng, điều này tất nhiên là đúng từ quan điểm bảo mật nhưng dẫn đến một số vấn đề và nạng. .

    Giả sử ứng dụng di động của bạn chỉ triển khai được 70% chức năng của trang web. 30% chức năng còn lại chỉ có trên web và ứng dụng của bạn chỉ chứa các liên kết đến các trang web có liên quan.

    Cũng có thể những trang này chỉ có người dùng được ủy quyền mới có thể truy cập được. Do đó, người dùng đã đăng nhập vào ứng dụng khách di động sẽ được yêu cầu đăng nhập lại - lần này là dưới dạng web bất tiện và sẽ rất vui nếu sau khi đăng nhập, người dùng được chuyển hướng đến phần mong muốn của trang web.

    Điểm mấu chốt - nếu bạn đang thiết kế một giao thức chung, hãy quên những thứ như biến phiên và cookie. Một cách tốt hơn nhiều là chuyển một số mã thông báo duy nhất nhận được trong quá trình ủy quyền một cách rõ ràng trong nội dung của mỗi yêu cầu. Và các trang web cũng như ứng dụng web phải thích ứng với việc sử dụng một API duy nhất. Tôi chắc chắn rằng tất cả các nhà phát triển thiết bị di động thường thấy hai phiên bản API - một dành cho ứng dụng web, phiên bản còn lại dành cho ứng dụng di động. Nhưng đây là sự trùng lặp về chức năng, luôn đắt hơn cả ở giai đoạn phát triển và giai đoạn gỡ lỗi. Tốt hơn hết là phân bổ các dịch vụ web vào một lớp riêng biệt của hệ thống ngay từ đầu, thay vì nhúng chúng vào các phần khác gần với công nghệ web.

    Trả về HTML

    Điều này dẫn đến việc thiết kế các máy chủ web ban đầu chỉ được thiết kế cho trình duyệt. Các lỗi 403, 404 và đôi khi phức tạp hơn thường xuất hiện dưới dạng trang HTML, thường không có phương tiện để hiển thị trong ứng dụng di động. Chính xác hơn, có nhiều cách, nhưng khi nhìn thấy “Không tìm thấy trang 404” bằng màu đen Arial Black trên nền trắng bên trong chế độ xem web, người dùng di động sẽ sợ hãi và đóng ứng dụng.

    Hãy nhớ rằng, máy chủ phải trả về XML (hoặc JSON) cho bất kỳ lệnh gọi nào đến dịch vụ web và chỉ ở định dạng đã được thỏa thuận ban đầu. Nhà phát triển thiết bị di động không thể làm bất cứ điều gì hữu ích với HTML đến từ máy chủ.

    Sử dụng WSDL

    Tình hình với các công nghệ của Microsoft vẫn ổn - hầu hết các công nghệ hiện đại của họ đều hỗ trợ WSDL ngay từ đầu. Điều tương tự không thể nói về PHP và Java - đặc biệt là các nhà phát triển PHP thích tạo các trang thông thường theo cách thủ công, về cơ bản là các dịch vụ web. Nhưng để tích hợp với dịch vụ web tương thích với WSDL, nhà phát triển di động chỉ cần sử dụng công cụ này để tạo mã, trong khi các phản hồi dịch vụ web được biên dịch thủ công cũng cần được phân tích cú pháp bằng tay.

    Đúng, ở đây cũng có những điểm phức tạp - việc triển khai WSDL tiêu chuẩn từ MS và Sun (Oracle) vẫn có những điểm không tương thích, nhưng việc sửa những điểm không tương thích này bằng một tệp vẫn nhanh hơn là viết mọi thứ theo cách thủ công.

    Phần kết luận

    Tôi chỉ đề cập đến những lỗi thiết kế cấp bách nhất mà các nhà phát triển thiết bị di động phải giải quyết hàng ngày. Nếu bài viết được yêu cầu, tôi chắc chắn sẽ viết thêm hàng tá chi tiết về máy khách-máy chủ mà tôi thực sự muốn thấy trong API của các dịch vụ web mà bạn làm việc hàng ngày.

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

    Kiến trúc hệ thống thông tin truyền thống.

    Chức năng cơ bản của hệ thống thông tin.

    Kiến trúc hệ thống thông tin- khái niệm xác định mô hình, cấu trúc, chức năng được thực hiện và kết nối các thành phần của hệ thống thông tin. (Bảng chú giải)

    Từ quan điểm triển khai phần mềm và phần cứng Một số kiến ​​trúc IC điển hình có thể được xác định.

    Các thành phần của hệ thống thông tin có thể được chia thành ba lớp theo chức năng mà chúng thực hiện: lớp trình bày, lớp logic nghiệp vụ và lớp truy cập dữ liệu.

    Lớp trình bày- mọi thứ liên quan đến tương tác với người dùng: nhấn nút, di chuyển chuột, vẽ hình ảnh, hiển thị kết quả tìm kiếm, v.v.

    Logic kinh doanh- quy tắ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 sự kiện nội bộ, quy tắc xử lý dữ liệu.

    Lớp truy cập dữ liệu- lưu trữ, truy xuất, sửa đổi và xóa dữ liệu liên quan đến tác vụ ứng dụng đang được ứng dụng giải quyết

    Mạng cục bộ xuất hiện. Các tập tin bắt đầu được chuyển qua mạng. Lúc đầu có mạng ngang hàng - tất cả các máy tính đều có quyền bình đẳng. 3

    Sau đó nảy sinh ý tưởng lưu trữ tất cả các tệp có thể truy cập công khai trên một máy tính chuyên dụng trên mạng - máy chủ tệp.

    Ứng dụng máy chủ tệp là các ứng dụng có cấu trúc tương tự như ứng dụng cục bộ và sử dụng tài nguyên mạng để lưu trữ chương trình và dữ liệu. Chức năng server: lưu trữ dữ liệu và mã chương trình. Chức năng của máy khách: việc xử lý dữ liệu chỉ diễn ra ở phía máy khách.

    Số lượng khách hàng được giới hạn ở mức hàng chục.

    1. Chế độ nhiều người dùng để làm việc với dữ liệu;

    2. Thuận tiện kiểm soát truy cập tập trung;

    3. Chi phí phát triển thấp;

    1. Hiệu suất thấp;

    2. Độ tin cậy thấp;

    3. Khả năng mở rộng yếu;

    Những nhược điểm của kiến ​​trúc máy chủ tệp là rõ ràng và chủ yếu xuất phát từ thực tế là dữ liệu được lưu trữ ở một nơi và được xử lý ở nơi khác. Điều này có nghĩa là chúng phải được truyền qua mạng, dẫn đến tải mạng rất cao và kết quả là hiệu suất ứng dụng giảm mạnh khi số lượng máy khách đồng thời tăng lên. Nhược điểm quan trọng thứ hai của kiến ​​trúc này là giải pháp phi tập trung cho các vấn đề về tính toàn vẹn và nhất quán của dữ liệu cũng như truy cập dữ liệu đồng thời. Giải pháp này làm giảm độ tin cậy của ứng dụng.

    Sự khác biệt chính giữa kiến ​​trúc máy khách-máy chủ và kiến ​​trúc máy chủ tệp là sự trừu tượng hóa khỏi cách biểu diễn dữ liệu nội bộ (lược đồ dữ liệu vật lý). Các chương trình máy khách bây giờ thao tác dữ liệu ở cấp độ mạch logic.

    Vì vậy, việc sử dụng kiến ​​trúc máy khách-máy chủ có thể 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ợ giao diện đồ họa. giao diện người dùng (GUI) trên các trạm khách được kết nối bởi mạng cục bộ. Hơn nữa, chi phí phát triển ứng dụng đã giảm đáng kể.

    Các tính năng chính: 5

     Chương trình client làm việc với dữ liệu thông qua các yêu cầu tới phần mềm server.

     Các chức năng cơ bản của ứng dụng được phân chia giữa máy khách và máy chủ.

     Hỗ trợ đầy đủ cho công việc của nhiều người dùng

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

     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ỳ thay đổi nào về thuật toán, bạn cần 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 của các kênh 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 khách ngoài mạng cục bộ.

     Bảo vệ dữ liệu yếu khỏi bị 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 trong hệ thống.

     Nhu cầu sử dụng các PC mạnh mẽ tại các đị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 tầm quan trọng của việc thực thi logic nghiệp vụ và cung cấp giao diện người dùng trong một chương trình.

    Dễ dàng nhận thấy rằng hầu hết những thiếu sót của kiến ​​trúc client-server cổ điển hay 2 lớp đều xuất phát từ việc sử dụng trạm client làm người thực thi logic nghiệp vụ IS. Vì lý do này, một bước rõ ràng trong quá trình phát triển hơn nữa của kiến ​​trúc IS là ý tưởng về một “máy khách mỏng”, tức là chia các thuật toán xử lý dữ liệu thành các phần liên quan đến hiệu suất của các chức năng kinh doanh và liên quan đến việc hiển thị thông tin trong máy tính con người. -trình bày thân thiện. Đồng thời, chỉ còn lại phần thứ hai trên máy khách, liên quan đến việc xác minh chính và hiển thị thông tin, chuyển tất cả chức năng thực sự của hệ thống sang phần máy chủ.

    Chuyển tiếp sang kiến ​​trúc ba lớp (2,5 lớp)

    Việc sử dụng các thủ tục được lưu trữ và tính toán dữ liệu phía máy chủ sẽ làm giảm lưu lượng truy cập và tăng tính bảo mật. Máy khách vẫn thực hiện một phần logic nghiệp vụ.

    Như bạn có thể thấy, cách tổ chức hệ thống này rất gợi nhớ đến cách tổ chức của các hệ thống đơn nhất đầu tiên với điểm khác biệt duy nhất là vị trí của người dùng không phải là thiết bị đầu cuối (với màn hình xanh khét tiếng) mà là một máy tính cá nhân cung cấp GUI, ví dụ, gần đây các chương trình máy khách Trình duyệt www tiêu chuẩn thường được sử dụng. Tất nhiên, việc quay trở lại các hệ thống gần như đơn nhất như vậy xảy ra ở một trình độ công nghệ khác. Việc sử dụng DBMS với tất cả các ưu điểm của nó đã trở thành bắt buộc. Các chương trình phía máy chủ được viết chủ yếu bằng các ngôn ngữ chuyên dụng, sử dụng cơ chế thủ tục lưu trữ của máy chủ cơ sở dữ liệu. Tuy nhiên, ở cấp độ tổ chức logic, IS trong kiến ​​trúc máy khách-máy chủ với máy khách mỏng được chia thành ba lớp - lớp dữ liệu, lớp chức năng nghiệp vụ (thủ tục lưu trữ) và lớp trình bày. Thật không may, thông thường, trong sơ đồ thiết kế IS như vậy, không thể viết tất cả logic nghiệp vụ của ứng dụng bằng các ngôn ngữ DBMS tích hợp không dành cho mục đích này. Vì lý do này, một phần chức năng kinh doanh thường được triển khai trong phần máy khách của hệ thống, do đó chắc chắn sẽ “trở nên béo hơn”. Một phần vì điều này và một phần vì các IC như vậy về mặt vật lý bao gồm hai thành phần nên kiến ​​trúc này thường được gọi là kiến ​​trúc máy khách-máy chủ 2,5 lớp.

    Không giống như kiến ​​trúc 2 lớp, kiến ​​trúc 2,5 lớp thường không yêu cầu các kênh liên lạc tốc độ cao giữa các bộ phận máy khách và máy chủ của hệ thống, vì kết quả tính toán tạo sẵn được truyền qua mạng - hầu hết mọi tính toán đều được thực hiện ở phía máy chủ . Việc bảo vệ thông tin cũng được cải thiện đáng kể - người dùng được cấp quyền truy cập các chức năng của hệ thống và không truy cập dữ liệu của nó, v.v. Đồng thời, cùng với những ưu điểm của cách tiếp cận thống nhất, kiến ​​trúc 2.5 cũng thừa nhận tất cả những nhược điểm của nó như: khả năng mở rộng hạn chế, phụ thuộc vào nền tảng phần mềm, hạn chế sử dụng tài nguyên máy tính mạng. Ngoài ra, các chương trình dành cho phần máy chủ của hệ thống được viết bằng các ngôn ngữ thủ tục lưu trữ được tích hợp trong DBMS, nhằm mục đích xác thực dữ liệu và xây dựng các báo cáo đơn giản chứ không phải để viết IS quy mô doanh nghiệp. Tất cả điều này làm giảm hiệu suất của hệ thống, tăng độ phức tạp của việc tạo và sửa đổi IC và có tác động tiêu cực nhất đến chi phí phần cứng cần thiết cho hoạt động của nó.

    Gửi công việc tốt của bạn trong cơ sở kiến ​​thức rất đơn giản. Sử dụng mẫu dưới đây

    Các sinh viên, nghiên cứu sinh, các nhà khoa học trẻ sử dụng nền tảng kiến ​​thức trong học tập và công việc sẽ rất biết ơn các bạn.

    Đăng trên http://www.allbest.ru/

    1. Máy chủ. Thông tin cơ bản về máy chủ

    2. Mô hình client-server

    3. Phân loại máy chủ tiêu chuẩn

    1. Máy chủ. Thông tin cơ bản về máy chủ

    Máy chủ (từ máy chủ tiếng Anh, phục vụ). Tùy thuộc vào mục đích, có một số định nghĩa về khái niệm máy chủ.

    1. Máy chủ (mạng) - một nút mạng logic hoặc vật lý phục vụ các yêu cầu đến một địa chỉ và/hoặc tên miền (tên miền liền kề), bao gồm một hoặc một hệ thống máy chủ phần cứng trên đó một hoặc một hệ thống chương trình máy chủ được thực thi

    2. Server (software) - phần mềm nhận yêu cầu từ client (theo kiến ​​trúc client-server).

    3. Máy chủ (phần cứng) - một máy tính (hoặc thiết bị máy tính đặc biệt) chuyên dụng và/hoặc chuyên dụng để thực hiện các chức năng dịch vụ nhất định.

    3. Máy chủ trong công nghệ thông tin là thành phần phần mềm của hệ thống máy tính, thực hiện các chức năng dịch vụ theo yêu cầu của khách hàng, cung cấp cho khách hàng quyền truy cập vào một số tài nguyên nhất định.

    Mối liên hệ giữa các khái niệm. Một ứng dụng máy chủ (máy chủ) chạy trên một máy tính, còn được gọi là “máy chủ” và khi xem xét cấu trúc liên kết mạng, một nút như vậy được gọi là “máy chủ”. Nói chung, có thể một ứng dụng máy chủ đang chạy trên một máy trạm thông thường hoặc một ứng dụng máy chủ chạy trên một máy chủ trong cấu trúc liên kết đang được xem xét hoạt động như một máy khách (nghĩa là nó không phải là một máy chủ theo quan điểm của topo mạng).

    2. Mô hình client-server

    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.

    Các quy trình triển khai một dịch vụ, chẳng hạn như hệ thống tệp hoặc dịch vụ cơ sở dữ liệu, được gọi là may chủ(may chủ). Các quy trình yêu cầu dịch vụ từ máy chủ bằng cách gửi yêu cầu và sau đó chờ phản hồi từ máy chủ được gọi khách hàng(khách hà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. 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à việc xử lý dữ liệu đượ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 chỉ cung cấp mức dịch vụ thấp nhất - mở, đóng và sửa đổi tệp. Xin lưu ý - tập tin, không phải cơ sở dữ liệu. Hệ thống quản lý cơ sở dữ liệu được đặt trên 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 file-server và client-server)

    Cơm. So sánh mô hình file-server và client-server

    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áy chủ cơ sở dữ liệu, có thể là Microsoft SQL Server, Oracle, Sybase, v.v.

    Giao diện người dùng được tạo bởi máy khách, để xây dựng giao diện này, bạn có thể sử dụng một số 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.

    Kiến trúc client-server cung cấp những 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

    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 bất kỳ trường hợp nào, tất cả các hoạt động 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;

    · Sự độ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ịu lỗi- sau khi giao dịch hoàn tất, kết quả của nó sẽ không còn 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 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(đừng nhầm lẫn các lớp logic với các lớp vật lý, điều này sẽ được thảo luận bên dưới).

    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 trên, theo quy tắc, 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ủ sử dụ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, chế độ xem, v.v.) và trên máy khách.

    Trong ứng dụng ba tầng, có lớp trung gian thứ ba thực hiện các quy tắc kinh doanh, đây là các thành phần được thay đổi thường xuyên nhất của ứng dụng ( xem hình. Mô hình ứng dụng client-server ba tầng)

    Cơm. Mô hình ứng dụng client-server ba tầng

    Sự hiện diện của không phải một mà là nhiều cấp độ cho phép bạn điều chỉnh ứng dụng một cách linh hoạt và tiết kiệm chi phí để phù hợp với các yêu cầu kinh doanh đang thay đổi.

    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.

    3. Phân loại máy chủ tiêu chuẩn

    Thông thường, mỗi máy chủ phục vụ một (hoặc một số giao thức tương tự) và máy chủ có thể được phân loại theo loại dịch vụ mà chúng cung cấp.

    Máy chủ phổ thông là một loại chương trình máy chủ đặc biệt không tự cung cấp bất kỳ dịch vụ nào. Thay vào đó, các máy chủ phổ quát cung cấp cho các máy chủ dịch vụ một giao diện đơn giản hóa để xử lý các tài nguyên liên lạc và/hoặc quyền truy cập thống nhất của máy khách vào các dịch vụ khác nhau. Có một số loại máy chủ như vậy:

    · inetd từ tiếng Anh. daemon siêu máy chủ internet Daemon dịch vụ IP là một công cụ tiêu chuẩn cho các hệ thống UNIX - một chương trình cho phép bạn viết các máy chủ TCP/IP (và các giao thức mạng của các dòng khác) hoạt động với máy khách thông qua các luồng đầu vào và đầu ra tiêu chuẩn được chuyển hướng bởi inetd ( stdin và stdout).

    · RPC từ tiếng Anh. Cuộc gọi thủ tục từ xa là một hệ thống tích hợp các máy chủ dưới dạng các thủ tục có sẵn để người dùng từ xa gọi đến thông qua một giao diện hợp nhất. Giao diện do Sun Microsystems phát minh cho hệ điều hành của hãng (SunOS, Solaris; hệ thống Unix), hiện được sử dụng trong hầu hết các hệ thống Unix và Windows.

    · Ứng dụng công nghệ client-server Windows:

    o (D-)COM (Mô hình đối tượng thành phần (Distributed) tiếng Anh - mô hình của các đối tượng tổng hợp), v.v. - Cho phép một số chương trình thực hiện các thao tác trên đối tượng dữ liệu bằng cách sử dụng thủ tục của các chương trình khác. Ban đầu, công nghệ này nhằm mục đích “triển khai và liên kết các đối tượng” (OLE English. Liên kết và nhúng đối tượng), nhưng nói chung, cho phép bạn viết nhiều loại máy chủ ứng dụng khác nhau. COM chỉ hoạt động trong một máy tính; DCOM có thể truy cập được từ xa thông qua RPC.

    o Active-X -- phần mở rộng COM và DCOM để tạo các ứng dụng đa phương tiện.

    Universal server thường được dùng để ghi các loại server thông tin, server không có nhu cầu làm việc cụ thể với mạng, server không có nhiệm vụ gì ngoài việc phục vụ client. Ví dụ: các chương trình và tập lệnh bảng điều khiển thông thường có thể hoạt động như máy chủ cho inetd.

    Hầu hết các máy chủ Windows nội bộ và mạng cụ thể đều hoạt động thông qua các máy chủ chung (RPC, (D-)COM).

    Các dịch vụ mạng đảm bảo hoạt động của mạng, ví dụ, máy chủ DHCP và BOOTP cung cấp khởi tạo ban đầu cho máy chủ và máy trạm, DNS cung cấp dịch tên thành địa chỉ và ngược lại.

    Các máy chủ đường hầm (ví dụ: các máy chủ VPN khác nhau) và máy chủ proxy cung cấp khả năng liên lạc với một mạng không thể truy cập được bằng cách định tuyến.

    Máy chủ AAA và Radius cung cấp tính năng xác thực, ủy quyền và ghi nhật ký truy cập thống nhất trên toàn mạng.

    Dịch vụ thông tin. Dịch vụ thông tin bao gồm các máy chủ đơn giản nhất báo cáo thông tin về máy chủ (thời gian, ban ngày, motd), người dùng (ngón tay, nhận dạng) và máy chủ để theo dõi, ví dụ SNMP. Hầu hết các dịch vụ thông tin đều hoạt động thông qua các máy chủ phổ thông.

    Một loại dịch vụ thông tin đặc biệt là máy chủ đồng bộ hóa thời gian - NTP, ngoài việc thông báo cho khách hàng về thời gian chính xác, máy chủ NTP định kỳ thăm dò một số máy chủ khác để điều chỉnh thời gian của chính nó. Ngoài việc hiệu chỉnh thời gian, tốc độ của đồng hồ hệ thống cũng được phân tích và điều chỉnh. Việc hiệu chỉnh thời gian được thực hiện bằng cách tăng tốc hoặc làm chậm đồng hồ hệ thống (tùy thuộc vào hướng hiệu chỉnh) để tránh các sự cố có thể xảy ra khi thay đổi thời gian đơn giản.

    Máy chủ tệp là máy chủ để cung cấp quyền truy cập vào các tệp trên đĩa máy chủ. ứng dụng tập tin máy chủ máy khách

    Trước hết, đây là những máy chủ truyền tệp theo yêu cầu sử dụng giao thức FTP, TFTP, SFTP và HTTP. Giao thức HTTP tập trung vào việc truyền tệp văn bản, nhưng máy chủ cũng có thể gửi dữ liệu tùy ý dưới dạng tệp được yêu cầu, ví dụ: các trang web, hình ảnh, nhạc được tạo động, v.v.

    Các máy chủ khác cho phép bạn gắn các phân vùng đĩa của máy chủ vào dung lượng ổ đĩa của máy khách và hoạt động hoàn toàn với các tệp trên đó. Máy chủ giao thức NFS và SMB cho phép điều này. Máy chủ NFS và SMB hoạt động thông qua giao diện RPC.

    Nhược điểm của hệ thống máy chủ tập tin:

    * Tải mạng rất cao, yêu cầu băng thông tăng. Trong thực tế, điều này khiến cho một số lượng lớn người dùng gần như không thể làm việc đồng thời với lượng lớn dữ liệu.

    * Việc xử lý dữ liệu được thực hiện trên máy tính của người dùng. Điều này đòi hỏi yêu cầu phần cứng tăng lên cho mỗi người dùng. Càng có nhiều người sử dụng thì bạn sẽ phải bỏ ra càng nhiều tiền để trang bị cho máy tính của mình.

    * Khóa dữ liệu khi một người dùng chỉnh sửa khiến người dùng khác không thể làm việc với dữ liệu này.

    * Sự an toàn. Để đảm bảo khả năng làm việc với một hệ thống như vậy, bạn sẽ cần cấp cho mỗi người dùng toàn quyền truy cập vào toàn bộ tệp mà anh ta có thể chỉ quan tâm đến một trường

    Máy chủ truy cập dữ liệu duy trì cơ sở dữ liệu và cung cấp dữ liệu theo yêu cầu. Một trong những máy chủ đơn giản nhất thuộc loại này là LDAP (Giao thức truy cập thư mục hạng nhẹ).

    Không có giao thức duy nhất để truy cập máy chủ cơ sở dữ liệu, nhưng tất cả các máy chủ cơ sở dữ liệu được hợp nhất bằng cách sử dụng các quy tắc thống nhất để hình thành truy vấn - ngôn ngữ SQL (Ngôn ngữ truy vấn có cấu trúc).

    Dịch vụ nhắn tin cho phép người dùng gửi và nhận tin nhắn (thường là tin nhắn văn bản).

    Trước hết, đây là những máy chủ email hoạt động bằng giao thức SMTP. Máy chủ SMTP nhận tin nhắn và gửi nó đến hộp thư cục bộ của người dùng hoặc đến một máy chủ SMTP khác (máy chủ đích hoặc máy chủ trung gian). Trên máy tính nhiều người dùng, người dùng làm việc với thư trực tiếp trên thiết bị đầu cuối (hoặc giao diện web). Để làm việc với thư trên máy tính cá nhân, thư được truy xuất từ ​​hộp thư thông qua các máy chủ chạy bằng giao thức POP3 hoặc IMAP.

    Để tổ chức hội nghị, có các máy chủ tin tức chạy bằng giao thức NNTP.

    Để trao đổi tin nhắn trong thời gian thực, có các máy chủ trò chuyện; một máy chủ trò chuyện tiêu chuẩn hoạt động bằng giao thức IRC - trò chuyện phân tán cho Internet. Có một số lượng lớn các giao thức trò chuyện khác, chẳng hạn như ICQ hoặc Jabber.

    Máy chủ truy cập từ xa

    Các máy chủ truy cập từ xa, thông qua chương trình máy khách thích hợp, cung cấp cho người dùng quyền truy cập bảng điều khiển vào hệ thống từ xa.

    Để cung cấp quyền truy cập vào dòng lệnh, các máy chủ telnet, RSH và SSH được sử dụng.

    Giao diện đồ họa cho hệ thống Unix - X Window System, có một máy chủ truy cập từ xa tích hợp, vì nó được phát triển ban đầu với khả năng này. Đôi khi khả năng truy cập từ xa vào giao diện X-Window bị gọi không chính xác là “X-Server” (đây là thuật ngữ được sử dụng trong X-Window cho trình điều khiển video).

    Máy chủ tiêu chuẩn để truy cập từ xa vào giao diện đồ họa Microsoft Windows được gọi là máy chủ đầu cuối.

    Một số loại quản lý (chính xác hơn là giám sát và cấu hình) cũng được cung cấp bởi giao thức SNMP. Máy tính hoặc thiết bị phần cứng phải có máy chủ SNMP cho việc này.

    Máy chủ trò chơi được nhiều người dùng sử dụng để chơi đồng thời trong một tình huống chơi trò chơi. Một số trò chơi có máy chủ trong gói chính và cho phép bạn chạy nó ở chế độ không chuyên dụng (nghĩa là chúng cho phép bạn chơi trên máy mà máy chủ đang chạy).

    Giải pháp máy chủ là các hệ điều hành và/hoặc gói phần mềm được tối ưu hóa cho máy tính để thực hiện các chức năng của máy chủ và/hoặc chứa một bộ chương trình để triển khai các dịch vụ điển hình.

    Một ví dụ về giải pháp máy chủ là hệ thống Unix, ban đầu được thiết kế để triển khai cơ sở hạ tầng máy chủ hoặc sửa đổi máy chủ trên nền tảng Microsoft Windows.

    Cũng cần phải chọn các gói máy chủ và các chương trình liên quan (ví dụ: bộ máy chủ web/PHP/MySQL để triển khai lưu trữ nhanh) để cài đặt trong Windows (Unix có đặc điểm là cài đặt theo mô-đun hoặc “hàng loạt” của từng thành phần , vì vậy những giải pháp như vậy rất hiếm).

    Trong các giải pháp máy chủ tích hợp, việc cài đặt tất cả các thành phần được thực hiện cùng một lúc; ở mức độ này hay mức độ khác, tất cả các thành phần đều được tích hợp chặt chẽ và được cấu hình sẵn với nhau. Tuy nhiên, trong trường hợp này, việc thay thế một trong các máy chủ hoặc ứng dụng phụ (nếu khả năng của chúng không đáp ứng được nhu cầu) có thể gây ra vấn đề.

    Các giải pháp máy chủ nhằm đơn giản hóa việc tổ chức cơ sở hạ tầng CNTT cơ bản của các công ty, nghĩa là nhanh chóng xây dựng một mạng lưới chính thức trong công ty, kể cả từ đầu. Việc kết hợp các ứng dụng máy chủ riêng lẻ vào một giải pháp có nghĩa là giải pháp đó được thiết kế để thực hiện hầu hết các tác vụ thông thường; đồng thời, độ phức tạp của việc triển khai và tổng chi phí sở hữu cơ sở hạ tầng CNTT được xây dựng trên các giải pháp đó sẽ giảm đáng kể.

    Máy chủ proxy (từ proxy tiếng Anh - "đại diện, được ủy quyền") là một dịch vụ trong mạng máy tính cho phép khách hàng thực hiện các yêu cầu gián tiếp đến các dịch vụ mạng khác. Đầu tiên, máy khách kết nối với máy chủ proxy và yêu cầu một tài nguyên (ví dụ: e-mail) nằm trên một máy chủ khác. Sau đó, máy chủ proxy sẽ kết nối với máy chủ được chỉ định và lấy tài nguyên từ máy chủ đó hoặc trả về tài nguyên từ bộ đệm của chính nó (trong trường hợp proxy có bộ đệm riêng). Trong một số trường hợp, yêu cầu của máy khách hoặc phản hồi của máy chủ có thể được máy chủ proxy sửa đổi cho một số mục đích nhất định. Máy chủ proxy cũng cho phép bạn bảo vệ máy khách khỏi các cuộc tấn công mạng nhất định.

    Phần kết luận

    Vì vậy, bất kỳ mạng máy tính nào về cơ bản đều là mạng máy khách-máy chủ. Người dùng kết nối máy tính của mình với Internet sẽ xử lý mạng máy khách-máy chủ và ngay cả khi máy tính không có quyền truy cập vào mạng, phần mềm của nó và chính nó rất có thể được tổ chức theo sơ đồ máy khách-máy chủ.

    Thư mục

    1. Valery Korzhov Hệ thống máy khách-máy chủ đa cấp. Nhà xuất bản Hệ thống Mở (17/06/1997).

    3.ru.wikipedia.org

    Đăng trên Allbest.ru

    ...

    Tài liệu tương tự

      Các khái niệm cơ bản về máy chủ. Mô hình client-server. Phân loại máy chủ tiêu chuẩn. Nhược điểm của hệ thống máy chủ tập tin. Các phương pháp mã hóa bảo vệ thông tin. Máy chủ truy cập từ xa. Phương pháp, phương tiện đảm bảo an toàn thông tin.

      kiểm tra, thêm vào 13/12/2010

      Tạo ứng dụng máy khách-máy chủ "Trò chuyện" bằng môi trường phát triển ứng dụng trực quan Borland C++ Builder phiên bản 6. Mô tả chức năng của ứng dụng: sự hiện diện của kiến ​​​​trúc máy khách-máy chủ, trao đổi tin nhắn ngắn và truyền tệp.

      bài tập khóa học, được thêm vào ngày 30/01/2012

      Thiết kế các mô hình vật lý và logic của cơ sở dữ liệu từ xa cho các trạm xăng. Phát triển cơ sở dữ liệu trong Firebird DBMS bằng tiện ích IBExpert. Tạo ứng dụng khách cho Windows bằng công nghệ máy khách-máy chủ trong môi trường C++ Builder.

      bài tập khóa học, được thêm vào ngày 18/01/2017

      Kiến trúc client-server đa cấp. Sơ đồ các lớp thực hiện các mức trình bày, logic nghiệp vụ và cơ sở dữ liệu ứng dụng. Mô tả bằng lời về quá trình giao dịch. Tạo, sửa đổi và xóa các thủ tục được lưu trữ và thực hiện chúng.

      bài tập khóa học, được thêm vào ngày 23/03/2013

      Kiến trúc máy khách-máy chủ. Phân tích hệ thống cơ sở dữ liệu "Quảng cáo trên báo", thiết kế vật lý và thông tin của nó. Lập trình ở phía máy chủ SQL. Phát triển phần máy khách trong Borland C++ Builder 6.0 và sử dụng công nghệ Web.

      bài tập khóa học, được thêm vào ngày 07/07/2013

      Thiết kế và phát triển cơ sở dữ liệu trong Firebird RDBMS. Trình tự tạo một ứng dụng dựa trên công nghệ client-server và chạy trên hệ điều hành Windows. Thủ tục lưu trữ và kích hoạt. Truy cập mạng và giao dịch.

      bài tập khóa học, được thêm vào ngày 27/07/2013

      Phân tích kiến ​​trúc của một hệ thống thông tin, cấu trúc của nó bao gồm các hệ thống file-server và client-server. So sánh các ngôn ngữ truy vấn SQL và QBE. Nguyên tắc phát triển ứng dụng kiến ​​trúc client-server sử dụng ngôn ngữ truy vấn có cấu trúc SQL.

      bài tập khóa học, được thêm vào ngày 11/04/2010

      Cơ sở dữ liệu quan hệ là một phần của hệ thống thông tin doanh nghiệp, được xây dựng theo nguyên tắc công nghệ máy khách-máy chủ. Các đặc điểm chính của hệ quản trị cơ sở dữ liệu Firebird. Thiết kế cơ sở dữ liệu cho hệ thống thông tin “Thành phần máy tính”.

      bài tập khóa học, được thêm vào ngày 28/07/2013

      Đặc điểm của việc thiết lập mạng doanh nghiệp doanh nghiệp. Phát triển một ứng dụng đảm bảo hoạt động hiệu quả của mạng máy khách-máy chủ của phòng vé đường sắt. Bảo vệ chống truy cập trái phép, mã hóa mật khẩu cụ thể và một số biện pháp bảo mật khác.

      bài tập khóa học, được thêm vào ngày 30/01/2014

      So sánh kiến ​​trúc client-server và file-server. Đặc điểm của dự án phát triển hệ thống thông tin tự động “Duy trì quy trình giải quyết các vấn đề chưa giải quyết được về vật liệu cho Công ty Cổ phần Aviastar-SP.” Tính toán hiệu quả kinh tế khi triển khai AIS.