25/05/2018, 10:19

Các kiểu kiến trúc chương trình truyền thông

Ở mức luận lý, các chức năng mà một chương trình ứng dụng thực hiện có thể xếp thành một trong 3 loại sau: 1. Các chức năng thực hiện việc tương tác với người dùng như tạo các giao diện nhập liệu hay in các báo biểu, thông báo ra màn ...

Ở mức luận lý, các chức năng mà một chương trình ứng dụng thực hiện có thể xếp thành một trong 3 loại sau:

1. Các chức năng thực hiện việc tương tác với người dùng như tạo các giao diện nhập liệu hay in các báo biểu, thông báo ra màn hình. Các chức năng này được gọi chung là Dịch vụ giao diện người dùng (User Interface Service).

2. Các chức năng tính toán các dữ liệu, xử lý thông tin theo những qui luật (rule), giải thuật được qui định bởi vấn đề mà ứng dụng giải quyết. Các chức năng này được gọi chung là Dịch vụ nghiệp vụ (Business Rule Service).

3. Trong  quá trình tính toán, chương trình ứng dụng cần truy vấn đến các thông tin đã có được lưu trên đĩa cứng hay trong các cơ sỡ dữ liệu. Cũng như cần thiết  phải lưu lại các kết quả tính toán được để sử dụng về sau. Các chức năng này được gọi chung là Dịch vụ lưu trữ (Data Storage Service).

Ở mức vật lý, các chức năng này có thể được cài đặt vào một hay nhiều tập tin thực thi hình thành các kiểu kiến trúc chương trình khác nhau. Cho đến thời điểm hiện nay, người ta chia kiến trúc của chương trình thành 3 loại được trình bày tiếp theo sau.

Kiến trúc đơn tầng (Single-tier Architecture)

Trong kiểu kiến trúc này, cả 3 thành phần của chương trình ứng dụng (User Interface, Business Rule, Data Storage) đều được tích hợp vào một tập tin thực thi.

Ví dụ: BKAV, D2, Winword, . . .

Các ứng dụng kiểu này chỉ được thực thi trên một máy tính.

Kiến trúc chương trình đơn tầng
User Interface
Business Rule
Data Storage

Ưu điểm:

Dễ dàng trong thiết kế cài đặt ứng dụng kiểu này.

Nhược điểm:

. Bởi vì cả 3 thành phần được cài vào một tập tin thực thi, nên việc sửa lỗi hay nâng cấp chương trình thì rất khó khăn. Toàn bộ chương trình phải biên dịch lại cho dù chỉ sửa đổi một lỗi rất nhỏ trong một thành phần nào đó ( User Interface chẳng hạn).

. Việc bảo trì, nâng cấp ấn bản mới là một công việc cực kỳ nặng nề vì ta phải thực hiện việc cài đặt trên tất cả các máy tính.

. Trong kiểu này, mỗi máy tính duy trì một cơ sở dữ liệu riêng cho nên rất khó trong việc trao đổi, tổng hợp dữ liệu.

. Máy tính phải đủ mạnh để có thể thực hiện đồng thời cả 3 loại dịch vụ.

Kiến trúc hai tầng (Two – Tier Architecture)

Kiến trúc này còn được biết đến với tên kiến trúc Client-Server. Kiến trúc này gồm 2 chương trình thực thi: chương trình Client và chương trình Server. Cả hai chương trình có thể được thực thi trên cùng một máy tính hay trên hai máy tính khác nhau. 

Client và Server trao đổi thông tin với nhau dưới dạng các thông điệp (Message) . Thông điệp gởi từ Client sang Server gọi là các thông điệp  yêu cầu (Request Message) mô tả công việc mà phần Client muốn Server thực hiện. 

Kiến trúc chương trình Client-Server

Mỗi khi Server nhận được một thông điệp yêu cầu, Server sẽ phân tích yêu cầu, thực thi công việc theo yêu cầu và gởi kết quả về client (nếu có) trong một thông điệp trả lời (Reply Message). Khi vận hành, một máy tính làm Server phục vụ cho nhiều máy tính Client.

Mỗi một ứng dụng Client-Server phải định nghĩa một Giao thức (Protocol) riêng cho sự trao đổi thông tin, phối hợp công việc giữa Client và Server. Protocol qui định một số vấn đề cơ bản sau:

. Khuôn dạng loại thông điệp.

. Số lượng và ý nghĩa của từng loại thông điệp.

. Cách thức bắt tay, đồng bộ hóa tiến trình truyền nhận giữa Client và Server.

. . . . . 

Thông thường phần client đảm nhận các chức năng về User Interface, như tạo các form nhập liệu, các thông báo, các báo biểu giao tiếp với người dùng.

Phần Server đảm nhận các chức năng về Data Storage. Nhờ đó dễ dàng trong việc bảo trì, chia sẻ tổng hợp dữ liệu trong toàn bộ công ty hoặc tổ chức.

Các chức năng về Business Rule có thể được cài đặt ở phần client hoặc ở phần server tạo ra hai loại kiến trúc Client -  Server là: 

. Fat Client 

. Fat Server.

Loại Fat Client

Trong loại này Business Rule được cài đặt bên phía Client.  Phần Server chủ yếu thực hiện chức năng về truy vấn và lưu trữ thông tin. 

Kiến trúc chương trình Client – Server theo kiểu Fat Server

Ưu điểm

. Tạo ra ít giao thông trên mạng nhờ dữ liệu tạm thời trong quá trình tính toán được lưu tại Client.

Nhược điểm

. Vì  Business Rule được cài đặt trên phía Client, đòi hỏi máy tính thực thi phần Client phải đủ mạnh, dẫn đến tốn kém trong chi phí đầu tư phần cứng cho các công ty xí nghiệp.

Phải cài lại tất cả các máy tính Client khi nâng cấp chương trình.

Loại Fat Server

Trong loại này, phần lớn các chức năng về Business Rule được đặt ở phần Server. Phần Client chỉ thực hiện một số chức năng nhỏ của Business Rule về kiểm tra tính hợp lệ của dữ liệu nhập bởi người dùng.

Kiến trúc chương trình Client – Server theo kiểu Fat Client

Ưu điểm

. Vì Business Rule được đặt ở phần Server, các máy tính Client không cần phải có cấu hình mạnh.

. Việc nâng cấp chương trình khi Business Rule thay đổi trở nên nhẹ nhàng hơn vì chỉ phải cài đặt lại phần Server.

Nhược điểm

. Tạo ra nhiều thông điệp trao đổi giữa Client và Server làm tăng giao thông trên mạng.

. Tăng tải trên máy Server vì nó phải đồng thời thực hiện các chức năng của Business Rule và Data Storage làm giảm hiệu năng của chương trình.

Kiến trúc đa tầng (N-Tier Architecture)

Đây là kiến trúc cho các Ứng dụng phân tán (Distributed Application). Thông thường là kiến trúc 3 tầng. Chương trình ứng dụng được tách thành 3 phần riêng biệt tương ứng cho 3 chức năng User Interface, Business Rule và Data Storage. Vì các chức năng thuộc về Business Rule được tách thành một phần riêng,  nó có thể được thực thi trên một máy tính Server riêng giải quyết được hầu hết các nhược điểm mắc phải của kiến trúc đơn tầng và kiến trúc hai tầng nói trên.

Kiến trúc chương trình đa tầng

Kiến trúc này đáp ứng tốt với những thay đổi về qui luật  xử lý dữ liệu của vấn đề mà ứng dụng giải quyết. Việc thay đổi chỉ ảnh hưởng trên tầng Business Rule mà không ảnh hưởng đến hai tầng còn lại.

Thông thường, người ta gọi tên các thành phần trên là:

Client – Application Server – Database Server

0