Một điểm mạnh trong OpenDaylight là bộ phần mềm được mô đun hóa và có tính linh hoạt cao. Tất cả các mã được thực hiện trong Java và được chứa trong Java Virtual Machine (JVM) của riêng nó. Như vậy, nó có thể được triển khai trên bất kỳ phần cứng và nền tảng hệ điều hành nào hỗ trợ Java.
5.3 REST
REpresentational State Transfer (REST) là một kiểu kiến trúc được sử dụng để xác định các APIs. REST đã trở thành một phương thức chuẩn để xây dựng API hướng Bắc cho bộ điều khiển SDN. Một API REST, hay một API được RESTful (tuân thủ các ràng buộc của REST) không phải là một giao thức, ngôn ngữ hoặc tiêu chuẩn đã được thiết lập. Có tất cả sáu yêu cầu cơ bản mà một API phải tuân theo để RESTful. Mục tiêu của những ràng buộc này là tối đa hóa khả năng mở rộng và độc lập/khả năng tương tác của các tương tác phần mềm và cung cấp một phương thức đơn giản để xây dựng các API.
REST giả định rằng các khái niệm về truy cập dựa trên web được sử dụng cho sự tương tác giữa ứng dụng và dịch vụ ở cả hai bên của API. REST không xác định các chi
• Client-server • Stateless • Cache
• Giao diện thống nhất • Hệ thống được phân lớp • Mã hóa theo yêu cầu
5.4 Bộ điều khiển tập trung và phân tán
Một điểm quan trọng then chốt trong thiết kế kiến trúc là liệu một bộ điều khiển tập trung đơn lẻ hay bộ điều khiển phân tán sẽ được sử dụng để kiểm soát các switches trong mặt bằng dữ liệu.
Bộ điều khiển tập trung là một máy chủ duy nhất quản lý tất cả các switches trong mặt bằng dữ liệu trong mạng. Trong một mạng doanh nghiệp lớn, việc triển khai một bộ điều khiển duy nhất để quản lý tất cả các thiết bị mạng có thể dẫn đến khó sử dụng hoặc bất cập không mong muốn. Một kịch bản có khả năng hơn là nhà điều hành của một doanh nghiệp lớn hoặc mạng lưới các nhà cung cấp chia mạng lưới toàn bộ thành một số miền SDN không trùng lặp, còn được gọi là các “SDN islands” (Hình 3.9), được quản lý bởi các bộ điều khiển phân tán.