Kiến trúc mới của Jade được tạo ra bằng cách xem xét các yêu cầu sau: • Thực thi các tính năng nền tảng như những module tách biệt.
• Khả năng mở rộng linh hoạt để hỗ trợ cho việc tích hợp những tính năng mới và sửa đổi những tính năng đang tồn tại.
• Dễ dàng triển khai các tính năng dựa trên một nền tảng phân tán.
• Chiến lược triển khai: “Triển khai những gì bạn cần” để chỉ các tính năng được bắt đầu và sử dụng mục tiêu thực thi cụ thể. Ví dụ như cho môi trường di động.
Khi nói tới các yêu cầu này, kiến trúc đã thu hút được một số cảm hứng từ lập trình hướng khía cạnh (AOP), trong đó nguyên lý chính là khuyến khích chia nhỏ mối quan tâm một cách rõ ràng. Điều này đạt được bằng cách viết code như một tập hợp các khía cạnh độc lập, mỗi một khía cạnh biểu hiện về những mối quan tâm khác nhau. Các khía cạnh sau đó được kết hợp một cách cẩn thận theo một số quy tắc trong một tiến trình được gọi là quá trình thêu dệt khía cạnh (aspect weaving). Hiện đã có một số phương pháp để cài đặt aspect weaving, cách phổ biến nhất là aspect weaving tại thời điểm tải các lớp thư viện (classload-time aspect weaving). Trong cách tiếp cận này, một ClassLoader được sử dụng để kết hợp các khía cạnh khác nhau khi tải các lớp java. Tuy nhiên, trong một lỗ lực để làm cho công việc này trở nên đơn giản nhất có thể, và xem xét các yêu cầu để chạy Jade trên thiết bị di động, nơi mà các kỹ thuật tải lớp tinh vi thường không sẵn sàng, thì một cách tiếp cận (được đề xuất bởi Aksit et al., 1993) đã được chọn. Trong cách tiếp cận này, được biết đến như các bộ lọc kết hợp, mỗi đối tượng được cung cấp bởi 2 kênh lọc (filter chain) một kênh đến – các bộ lọc của nó được gọi bất cứ khi nào mà đối tượng nhận một lời gọi phương thức và một kênh đi – các bộ lọc của nó sẽ được gọi khi mà đối tượng sẽ gọi
tới một vài phương thức của đối tượng khác. Kiến trúc bộ lọc cộng tác phân tán bắt nguồn từ cách tiếp cận lọc kết hợp này và hướng đến phân tán qua nhiều container.
6.1.2 Các thành phần chính
Các thành phần chính trong kiến trúc Distributed coordinated filters được mô tả trong Hình 5.1. Mỗi một jade container sẽ đặt ngay phần đầu của mỗi node. Trong khi container được thiết kế để lưu trữ các Agent thì node sẽ lưu trữ các dịch vụ. Một dịch vụ được cài đặt bởi các đặc tính mức nền mà được nhóm lại theo tính gắn kết về mặt khái niệm giữa chúng. Đây là một sự trừu tượng nguyên thủy của kiến trúc lọc cộng tác phân tán. Các dịch vụ như Messaging Service, Agent Management Service và Mobility Service đều cài đặt các cơ chế cho phép agent di cư giữa các container.
Thành phần quản lý hoạt động của các dịch vụ bên trong một node được gọi là dịch vụ quản lý (Service Manager). Trên thực tế, Service Manager sẽ tồn tại với node lưu trữ main container. Service Manager này lưu trữ các bảng của tất cả các node ở trong một platform và danh sách tất cả các dịch vụ đang hoạt động tại mỗi node. Service Manager trên các container ngoại vi chỉ là các proxy.