2.2.2.1 Web service
Khi xây dựng, thiết kế một hệ thống việc lựa chọn kiến trúc web service là một trong những việc quan trọng đầu tiên phải làm. Hiện nay, có hai webservice chính để giao tiếp với ứng dụng là SOAP( Simple Access Protocol) và REST(REpresentational State Transfer). Đó đều là những kiến trúc web service tốt và mỗi giải pháp đề có những ưu nhược điểm riêng.
Hình 2.1:Mơ hình RESTful và SOAP[1] [1]
1. SOAP
SOAP là một bộ giao thức được định nghĩa dựa hoàn toàn vào XML để cung cấp các service truyền tin. Một trong những tính năng quan trọng nhất của SOAP là xử lý lỗi tích hợp. Nếu có sự cố với request của bạn, responses chứa thơng tin lỗi mà bạn có thể sử dụng để khắc phục sự cố. Điều thú vị ở SOAP là bạn có thể khơng sử dụng nó với giao thức HyperText Transfer Protocol(HTTP). SOAP sử dụng nhiều phương thức truyển tải khác nhau như HTTP hoặc SMTP.
2. REST
Những khái niệm đầu tiên về REST(REpresentational State Transfer) được đưa ra vào năm 2000 trong luận văn tiến sĩ của Roy Thomas Fielding (đồng sáng lập giao thức HTTP). Trong luận văn ông giới thiệu khá chi tiết về các ràng buộc, quy ước cũng như cách thức thực hiện với hệ thống để có được một hệ thống REST.
Hiểu đơn giản nó là một bộ các ràng buộc và quy ước , khi áp dụng đầy đủ vào hệ thống thì ta có một hệ thống REST.
REST không chứa thêm các thông điệp bổ sung và tập trung vào thiết kế để tạo ra các dịch vụ rõ ràng. Một người dùng có thể truy cập vào hệ thống bằng cách sử dụng một URI duy nhất và một bộ dữ liệu sẽ được trả về. Trong khi các truy cập vào hệ thống RESTful với giao thức HTTP, URL của hệ thống được dùng như một định danh của hệ thống và các giao thức GET, POST, PUT, DELETE và HEAD là các hoạt động HTTP chuẩn được thực hiện trên hệ thống đó.
3. So sánh REST và SOAP
Cả REST và SOAP là những sự lựa chọn tốt để thiết kế một web service. Chúng đều có những ưu và nhược điểm riêng. Một số ưu điểm của SOAP:
• SOAP được thiết kế độc lập với nền tảng, hệ điều hành, và ngơn ngữ.
• Hoạt động tốt trong mơi trường doanh nghiệp phân tán
• SOAP tiêu chuẩn hóa.
• Cung cấp khả năng mở rộng đáng kể trước khi xây dựng dưới dạng các tiêu chuẩn WS*.
• Tích hợp xử lý lỗi.
• Tự động hóa khi được sử dụng với một số sản phẩm ngơn ngữ nhất định. Trong khi đó REST dễ sử dụng và linh hoạt hơn và có những lợi thế như:
• Hiệu quả (SOAP sử dụng XML cho tất cả các thơng báo, REST có thể sử dụng các định dạng thơng báo nhỏ hơn như csv,json,.. )
• Nhanh chóng (khơng cần xử lý nhiều).
Bên cạnh đó REST rất phù hợp với các tương tác dựa trên trình duyệt. Trình duyệt và các engine phía sau chúng được xây dựng để đi qua các liên kết trong nội dung họ xử lý, cũng như cung cấp các trình xử lý cho các loại phản ứng khác nhau có thể. Ngơn ngữ chính cho các trình duyệt là JavaScript. Vì vậy để đối mặt với việc phải viết một ứng dụng với giao thức SOAP trong JavaScript là một điều khác rắc rối. Bởi khi đó chúng ta sẽ phải tốn thời gian cho việc chuyển đổi từ ngôn ngữ đánh dấu mở rộng(XML) về cấu trúc dữ liệu đối tượng trong JavaScript (JSON). Chính vì lý
do trên cùng với những ưu điểm vượt trội của REST mà nhóm quyết định chọn hiện thực Web service theo mơ hình RESTful.
2.2.2.2 Giới thiệu MongoDB
• Khái niệm MongoDB