Sự khác biệt giữa REST và SOAP

Giới thiệu

Bài viết này thảo luận về hai giao thức truy cập dịch vụ web, XÀ BÔNG TẮM (Giao thức truy cập đối tượng đơn giản đơn giản) và NGHỈ NGƠI ("Chuyển trạng thai biểu hiện").

Dịch vụ web

Các dịch vụ web được xác định để chủ động tìm nạp, đọc hoặc chuyển dữ liệu từ một nguồn được xác định để tạo ra một kết quả được chỉ định - một kết quả.

Ví dụ thô sơ sau đây cho thấy việc sử dụng cơ bản các dịch vụ web trước khi hiểu cách dữ liệu được truyền đến và từ dịch vụ web, sử dụng SOAP hoặc REST.

Nếu một nhà phát triển đang viết một ứng dụng yêu cầu một số tính toán dữ liệu ở một nơi, thì sẽ viết phương thức tính toán trong mã, ở một nơi đó. Tuy nhiên, nếu việc tính toán dữ liệu là cần thiết trong các phần khác của ứng dụng, việc duy trì sẽ không hiệu quả và không thực tế nếu nhà phát triển đặt phương thức tính toán ở mọi khu vực cần thiết.

Phải thực hiện một thay đổi cho phương thức đó sẽ yêu cầu tìm mọi trường hợp để chỉnh sửa (và kiểm tra lại). Kịch bản này sẽ có lợi từ việc sử dụng một dịch vụ web để hoạt động tối ưu và cải thiện sự linh hoạt trong kinh doanh.

Bằng cách tạo một dịch vụ web với các phương thức có thể truy cập để cộng, trừ, chia và nhân, ứng dụng sẽ tương tác với dịch vụ web đó bất cứ khi nào cần tính toán dữ liệu; nó gọi dịch vụ web để thực hiện tính toán và đưa ra kết quả. Vì vậy, chỉ có một nơi để nhà phát triển duy trì phương pháp tính toán dữ liệu.

Cách xử lý dữ liệu trong các dịch vụ web được xác định bởi liệu SOAP hoặc REST được triển khai.

SOA và BPMN

Một ứng dụng được xây dựng trên các quy trình thực thi được dựa trên một Kiến trúc hướng dịch vụ (Nhật Bản SOA). Đó là một cách tiếp cận về cách sử dụng các dịch vụ chuyển, sản xuất, xác nhận hoặc tính toán dữ liệu.

SOA ngày càng trở nên thuận lợi hơn để cải thiện chất lượng và thời gian phát triển, đồng thời cải thiện hiệu suất và khả năng mở rộng của ứng dụng.

Ký hiệu mô hình hóa quy trình kinh doanh (Nhật Bản BPMN) đang mô hình hóa một quy trình dịch vụ hoặc kinh doanh, có thể được thực hiện bởi những người không có kỹ thuật, tức là nhà phân tích kinh doanh. Sử dụng BPM, Các mô hình kinh doanh (đối với dịch vụ) dễ dàng được giải thích bởi các nhà phát triển triển khai mô hình như một quy trình thực thi và các quy trình này có thể hoặc không cần phải có sự tương tác của con người.

Giao thức truy cập đối tượng đơn giản (SOAP)

SOAP là một phương thức truyền dữ liệu qua internet.

Được phát triển bởi Microsoft do sự ra đời của Internet, SOAP đã thay thế cái cũ DCOMCORBA các công nghệ và nó đã tồn tại lâu hơn rất nhiều so với REST.

SOAP được coi là nặng hơn REST, tức là cần nhiều hành lý hơn để truyền dữ liệu, điều đó có nghĩa là cần nhiều băng thông hơn cho mỗi yêu cầu tin nhắn và nguồn dữ liệu và mục tiêu phải làm nhiều việc hơn khi đóng gói và nhận dữ liệu.

SOAP chỉ sử dụng XML đối với các dịch vụ nhắn tin qua internet và các yêu cầu thông báo XML có thể rất phức tạp và nếu được phát triển thủ công, cần có sự chú ý cẩn thận vì SOAP không linh hoạt với các lỗi.

Có thể tự động hóa các yêu cầu thông báo SOAP bằng ngôn ngữ .NET (làm ví dụ), trong đó các nhà phát triển không cần phải làm việc với XML vì nó được tạo tự động trong nền.

Nếu có bất kỳ vấn đề nào gặp phải với yêu cầu tin nhắn, thông tin lỗi chi tiết được trả về trong phản hồi tin nhắn và quá trình này cũng có thể được tự động hóa bằng cách tham khảo các mã lỗi tiêu chuẩn được cung cấp trong phản hồi tin nhắn.

Do đó, ngôn ngữ lập trình được sử dụng là yếu tố quyết định mức độ khó thực hiện SOAP.

Một trong những hành lý đi kèm với tin nhắn SOAP là Dịch vụ web Ngôn ngữ mô tả (Tiếng WSDL ') để giải thích cách thức hoạt động của dịch vụ web. Khi một ứng dụng tham chiếu dịch vụ web, nó sẽ đọc và hiểu phải làm gì với dịch vụ web.

SOAP không bị ràng buộc sử dụng HTTP (Giao thức truyền siêu văn bản) độc quyền; nó có thể được sử dụng qua SMTP và các giao thức vận chuyển khác.

Vì SOAP đã được chuẩn hóa, nó cứng hơn REST, mặc dù cả hai đều phụ thuộc vào các quy tắc được thiết lập.

NGHỈ NGƠI

REST là anh em họ mới hơn và đẹp hơn của SOAP và nhanh chóng trở thành lựa chọn cho hầu hết các ứng dụng web và di động.

Hơn một thập kỷ sau khi được giới thiệu, REST là cách tương tác nhẹ hơn, dễ bảo trì hơn và có thể mở rộng hơn với các dịch vụ web.

Không giống như SOAP, REST không sử dụng XML duy nhất; văn bản thô, CSV, và RSS có thể được sử dụng, cũng như JSON cho các cuộc gọi AJAX; miễn là cả nguồn và đích đều có thể hiểu các định dạng được sử dụng.

REST ít phức tạp hơn và được coi là một đường cong học tập nhỏ hơn so với SOAP. Hầu hết các ngôn ngữ lập trình hiện đại đều có thư viện và khung để tạo điều kiện cho các dịch vụ REST (RESTful), như C #, Python, Java và Perl.

REST nhanh hơn do xử lý tối thiểu và hiệu quả hơn bằng cách sử dụng các định dạng thông báo khác nhau.

Có cả ưu điểm và nhược điểm của cả hai, vì vậy khi xem xét sử dụng giao thức truy cập nào, hãy xem xét các ngôn ngữ lập trình được sử dụng trong tổ chức, môi trường ứng dụng và yêu cầu ứng dụng.