Categories
Software Architecture

Các Kiểu Kiến Trúc 3: Đường Ống Và Bộ Lọc

Đường ống và bộ lọc

  • Mỗi thành phần có
    • Tập hợp đầu vào (đọc)
    • Tập hợp đầu ra (được tạo ra)
  • Thành phần bộ lọc
    • Các biến đổi tăng dần một số lượng dữ liệu ở đầu vào thành dữ liệu ở đầu ra
      • Biến đổi luồng sang luồng
      • Chuyển đổi cục bộ
    • Sử dụng một ít ngữ cảnh cục bộ trong luồng xử lý
    • Độc lập, không chia sẻ trạng thái với các bộ lọc khác (bất biến)
    • Không biết danh tính của các luồng đến và đi (bất biến)

Đường ống và bộ lọc tiếp tục

  • Ống kết nối
    • Di chuyển dữ liệu từ đầu ra một bộ lọc đến đầu vào một bộ lọc
    • Đường ống tạo thành đồ thị truyền dữ liệu
  • Tính toán tổng thể
    • Chạy đường ống và bộ lọc (không xác định) cho đến khi không thể tính toán thêm được nữa
    • Tính đúng đắn của đầu ra của mạng đường ống và bộ lọc không được phụ thuộc vào trình tự (bất biến)
  • Các chuyên môn hóa
    • Đường ống dẫn (Pipelines), đường ống giới hạn (bounded pipes), đường ống định kiểu (typed pipes)
    • Hệ thống tuần tự hàng loạt: đường ống suy biến (degenerated pipeline)

Ví dụ về đường ống và bộ lọc

  • Các chương trình được viết bằng Unix shell
    • Bộ lọc: Các tiến trình Unix
    • Pipes: cơ chế thời gian chạy để hiện thực chúng
  • Trình biên dịch (ví dụ của đường ống)
    • (các giai đoạn thường không tăng dần)
    • Phân tích từ vựng, phân tích cú pháp, phân tích ngữ nghĩa, tạo mã
  • Các lĩnh vực xử lý tín hiệu
  • Lập trình song song
  • Lập trình phân tán

Đường ống và bộ lọc.

Ưu điểm và nhược điểm

  • Adv
    • I/O tổng thể là một hợp thành của các hành vi của các bộ lọc độc lập
    • Hỗ trợ tái sử dụng
    • Dễ dàng bảo trì, cải tiến
    • Cho phép phân tích (phân tích thông lượng, bế tắc)
    • Hỗ trợ thực thi đồng thời
  • Disadv
    • Thường dẫn đến việc tổ chức xử lý hàng loạt
    • Không tốt xử lý các ứng dụng tương tác
    • Khá phức tạp
    • Không hiệu quả lắm

Leave a Reply

Your email address will not be published. Required fields are marked *