Một nút trong mạng CDS có kiến trúc phần mềm nhƣ hình 3.5 dƣới đây:
Hình 3.5. Kiến trúc của 1 nút trong mạng CDS
Theo mô hình 3.5, kiến trúc của một nút trong mạng CDS gồm 4 tầng: Application, CDS, DHT based overlay và TCP/IP.
Là tầng trên cùng, đƣợc xây dựng trên tầng CDS. Tầng này cung cấp thông tin về tài nguyên cần tìm kiếm. Tên tài nguyên đƣợc mô tả dƣới dạng cặp thuộc tính - giá trị AV nêu trên.
Các chức năng của tầng CDS
Tầng CDS cung cấp cho tầng ứng dụng các hàm API chứa ít nhất 2 chức năng sau: đăng ký (tên tài nguyên) và xác định tài nguyên (truy vấn). Khi nó nhận một tài nguyên, 1 tên tài nguyên hoặc 1 truy vấn từ tầng ứng dụng, CDS sẽ xác định tập các nút nó sẽ có thể gửi dữ liệu tới, tức là xác định tập các mã định danh ID của các nút. Trong hệ thống này, một tên tài nguyên đƣợc đăng ký với 1 tập nhỏ các nút của hệ thống gọi là RPs (Rendezvous Points – gọi là điểm hẹn, điểm trung gian mà truy vấn và nội dung phù hợp có thể gặp nhau), do đó, có thể tránh đƣợc việc các tên nội dung bị trùng lặp tại các nút. Các truy vấn đƣợc gửi trực tiếp tới bộ RPs phù hợp để giải quyết và không cần thiết tìm kiếm diện rộng trên mạng.
Tầng DHT
CDS sử dụng tầng DHT với 2 mục đích: xây dựng, quản lý mạng phủ và truyền thông điệp trong mạng. Trong DHT, mỗi nút đƣợc gắn một giá trị ID nhƣ là địa chỉ mạng của nút, là giá trị liên tiếp nhau trong không gian định danh m bit. ID của nút có thể đƣợc tạo ra một cách cục bộ, sử dụng hàm băm để băm một số thông tin cơ bản nhƣ địa chỉ IP của nút đó. CDS sử dụng bảng băm phân tán để truyền thông điệp của nó trong mạng, sử dụng mã định danh ID của các nút. Khi tầng DHT nhận đƣợc thông tin {nodeID, message} từ tầng CDS, nó sẽ chuyển thông điệp tới nút mà phụ trách khóa có giá trị nodeID. DHT không quan tâm cách CDS chọn nodeID cho thông điệp.
Tầng cuối cùng là tầng giao thức để truyền, nhận dữ liệu trên mạng.