REST được viết tắt bởi Representational State Transfer được giới thiệu đầu tiên năm 2000. Là cách thiết kế kiến trúc phần mềm cho các hệ thống phân phối. Được viết dưới dạng một Servlet để trả lời các yêu cầu dưới định dạng HTTP. Dịch vụ REST nhận các yêu cầu HTTP và chuyển đổi chúng thành các dữ liệu đầu vào để thực hiện một nhiệm vụ nào đó. Tùy thuộc vào yêu cầu được gửi đi, nó sẽ trả về dữ liệu phù hợp từ Servlet.
Các đặc điểm chính của REST:
Trong REST, mỗi một đối tượng tài nguyên sẽ được xác định bởi một định danh. Thông qua HTTP, mỗi đối tượng này sẽ có các đặc tả dưới dạng URI (Uniform Resource Identifier – Định danh tài nguyên đồng nhất) của nó.
Các tài nguyên được tổ chức phân cấp với các URI của nó.
REST hỗ trợ các phương thức GET, POST, PUT, DELETE trên HTTP để thực hiện các tác vụ của nó đối với tài nguyên.
Các đối tượng tài nguyên trong REST được hỗ trợ đặc tả bằng nhiều kiểu dữ liệu khác nhau như XML, JSON, XHTML…
REST là giải pháp tốt để ứng dụng vào việc phát triển dịch vụ quản lý và phân phối tài nguyên vì:
Trong môi trường điện toán đám mây, các thiết bị được ảo hóa và nhóm thành các kiểu tài nguyên ảo khác nhau như là máy ảo, lưu trữ dữ liệu ảo, mảng ảo. Tất cả các tài nguyên này có thể được định danh và gán với một URI xác định.
Các tài nguyên trong điện toán đám mây có thể được tổ chức phân cấp phù hợp với đặc điểm của REST như là:
– Chia các tài nguyên thành nhiều trung tâm dữ liệu ảo (Virtual Data Center).
– Chia các trung tâm dữ liệu ảo thành các cụm dữ liệu ảo (Virtual Cluster).
– Chia các cụm dữ liệu ảo thành các vùng dữ liệu ảo (Resource Pool). – Trong các Resource Pool sẽ chứa các máy ảo.
Hình dưới đây minh họa phân cấp tài nguyên mà chúng ta có thể tổ chức trong VMWare vSphere:
Hình 7: Minh họa tổ chức phân cấp tài nguyên trong VMWare vSphere
Trong môi trường ảo hóa, các thao tác trên tài nguyên chủ yếu là tạo mới, cấu hình lại/sửa đổi, truy vấn thông tin và xóa tài nguyên. Vì thế các phương thức của HTTP là POST, PUT, GET, DELETE phù hợp với các thao tác này.
Các thuộc tính của tài nguyên có thể được mô tả dưới dạng XML, JSON, XHTML…
Trong môi trường ảo hóa, các thao tác trên tài nguyên không làm thay đổi định danh của chúng. Vì thế các thao tác trên tài nguyên có thể được thiết kế như các phiên làm việc không xung đột.