2011-12-27 38 views
6

Có 2 loại dịch vụ web như tôi biết. Đầu tiên là thông điệp định dạng xml tùy chỉnh và thông báo xml tiêu chuẩn thứ hai của SOAP. Sự khác nhau giữa chúng là gì? Cái nào tốt hơn, ưu và nhược điểm của mỗi phương pháp đó là gì?Sự khác nhau giữa dịch vụ web thông thường và dịch vụ web dựa trên xà phòng là gì?

+0

tôi nghĩ rằng dưới hai liên kết có thể giúp bạn. http://www.eggheadcafe.com/community/xml/4/82443/difference-between-xml-and-soap.aspx http://stackoverflow.com/questions/80112/whats-the-difference-between-xml -rpc-and-soap –

Trả lời

5

"Dịch vụ web" đề cập đến khái niệm trừu tượng và khái quát hơn. Chúng ta có thể nói rằng bất cứ điều gì có thể được phục vụ trên web là một dịch vụ Web. Các dịch vụ Web SOAP hoặc các dịch vụ RESTful là các loại dịch vụ Web đặc biệt được chấp nhận rộng rãi và có các tiêu chuẩn riêng của chúng. Trong khi các dịch vụ SOAP được xây dựng dựa trên một tiêu chuẩn dựa trên XML mới, phương pháp RESTful sử dụng các phương thức HTTP hiện có, do đó được chấp nhận rộng rãi hơn (theo kinh nghiệm của tôi).

+0

"Có một so sánh nhỏ gọn trong [liên kết đã cho]". Không có! –

+0

Dường như liên kết đã chết; người kiểm duyệt đã xóa trang. Tôi đã xóa câu đó đề cập đến trang đã chết. – anilsinaci

24

Bằng cách "bình thường", tôi giả sử bạn có nghĩa là các dịch vụ RESTful. Cuộc thảo luận này sẽ là một cuộc thảo luận dài, vì vậy tôi sẽ cố gắng cung cấp cho bạn một số điểm chính:

  1. Dịch vụ yên tĩnh là hương vị được sử dụng nhiều nhất của Dịch vụ Web. Chúng được liên kết chặt chẽ với các chức năng và nguyên tắc của HTTP và có thể được truy cập đơn giản như một yêu cầu GET (các hoạt động khác là POST, DELETE và PUT). Khái niệm cốt lõi là "tài nguyên" được xác định bởi một URI. Các định dạng phổ biến cho REST là XML và JSON. Đó là một công nghệ khá đơn giản và dễ sử dụng, đó là những gì làm cho nó rất phổ biến.

  2. dịch vụ web SOAP dựa trên XML, hầu hết trong số họ tôn trọng những RPC-phong cách thiết kế ứng dụng (gọi phương thức từ xa trên một máy chủ và nhận được phản hồi), và sử dụng 3 trụ cột chính:

    • WSDL - Ngôn ngữ mô tả dịch vụ Web - được sử dụng để mô tả một dịch vụ về các hoạt động, tham số, vv ..
    • SOAP - Giao thức truy cập đối tượng đơn giản - được sử dụng để xây dựng thông điệp tương tác giữa các thực thể liên quan (máy khách, máy chủ).
    • UDDI - Mô tả, Khám phá và Tích hợp Chung - được sử dụng để phân loại và xuất bản các dịch vụ web có sẵn cho một kho lưu trữ và cho phép người dùng tiềm năng khám phá.

Dịch vụ SOAP Web thường có chi phí cao và thường có thông điệp rất dài dòng, nhưng có thể tốt nếu bạn cần phải thực hiện chức năng phức tạp hơn và tương tác trong ứng dụng của bạn.

+1

Ước gì tôi có thể bỏ phiếu nhiều lần. Đây thực sự là câu trả lời tốt hơn cả. – Dienekes

+0

+1 Ở đây tôi đồng ý! – Pinch

11

Nói đúng cách chỉ các dịch vụ Xà phòng là các dịch vụ web. Chúng dựa trên WS-* Specs được chuẩn hóa bởi W3C và Oasis. Đôi khi cũng được gọi lại là Webservice được gọi là POX-Endpoint (XML cũ) hoặc REST Endpoint, cho phép bạn chỉ cần lấy XML thô thông qua HTTP GET.

Dịch vụ SOAP mang giản đồ của chúng dưới dạng điểm cuối wsdl (thường nối thêm wsdl vào điểm cuối dịch vụ), vì vậy có rất nhiều công cụ để tạo đối tượng proxy và ẩn sự phức tạp của cuộc gọi webservice. Với Dịch vụ POX, bạn cần biết lược đồ nào cần sử dụng từ ví dụ: tài liệu.

Dịch vụ SOAP mang trọng tải bên trong Phong bì SOAP (một Lược đồ XML có tiêu đề và nội dung có trọng tải trong phần thân). Có tiêu đề độc lập với tải trọng cho phép định tuyến lại nội dung, ký và mã hóa, xác thực vv mà không biết nội dung. Nhưng bạn trả bằng chi phí bổ sung trong chính thư đó.

Mặt khác, POX để tất cả những thứ đó với máy chủ web và thường xuyên dựa vào HTTP để xác thực và nén. Việc ghi chép và ký tên phải được thực hiện bởi hệ thống của bạn. Đó là chi phí thấp nhưng cũng có khả năng phát hiện thấp.

Các công trình phù hợp nhất với bạn phụ thuộc rất nhiều vào kịch bản của bạn. Nếu bạn làm việc trong một .Net hoặc Java World, bạn thường tìm thấy nó đơn giản nhất để tạo một proxy và sử dụng nó để làm việc với các dịch vụ web như các đối tượng từ xa. Bạn có cơ sở hạ tầng xây dựng tốt và trải nghiệm lập trình thoải mái. Nếu môi trường của bạn không hỗ trợ việc tạo proxy hoặc nếu nó phải được gọi từ bất cứ thứ gì, thì POX có thể sẽ rất nhẹ nhàng hơn.

Các vấn đề liên quan