2010-03-11 67 views
8

Sự khác nhau giữa XML và SOAP là gì? Tôi đã đọc một số bài báo giới thiệu về SOAP nhưng tôi rất bối rối. Đây là lần đầu tiên tôi đọc về SOAP vì vậy có lẽ điều đó là tự nhiên.Sự khác biệt giữa XML và SOAP

Ai đó có thể giải thích cho tôi SOAP là gì và nó được sử dụng để làm gì? Có thể cho tôi một số ví dụ về cách sử dụng của nó?

+20

Tôi đã từng gặp một lập trình viên cũng cần đặt câu hỏi "Ai đó có thể giải thích cho tôi SOAP là gì và nó được sử dụng để làm gì?", Nhưng không viết hoa. –

+0

nghiêm túc, tôi vẫn cười @ bình luận này ... –

+1

Người lập trình và vệ sinh tốt không phải luôn luôn đi đôi với nhau. –

Trả lời

9

Wikipedia có một số article tuyệt vời, bao gồm số example tốt.

SOAP, ban đầu được định nghĩa là Giao thức truy cập đối tượng đơn giản, là đặc tả giao thức để trao đổi thông tin có cấu trúc trong việc triển khai dịch vụ web trong mạng máy tính.

Một thực sự tốt ví dụ thực tế:

Một ví dụ của một cư sĩ về cách thủ tục SOAP có thể được sử dụng, một thông điệp SOAP có thể được gửi đến một trang web dịch vụ web-enabled (ví dụ, một cơ sở dữ liệu giá nhà) với các thông số cần thiết cho tìm kiếm. Sau đó, trang web sẽ trả về một tài liệu có định dạng XML với dữ liệu kết quả (giá cả, vị trí, tính năng, v.v ...). Vì dữ liệu được trả về ở định dạng có thể phân tích cú pháp được máy tiêu chuẩn hóa, sau đó nó có thể được tích hợp trực tiếp vào trang web của bên thứ ba.

2

SOAP là giao thức nhắn tin được sử dụng qua mạng để gọi web-services.
Các định dạng tin nhắn sử dụng XML, và được mô tả bởi WSDL 's - phát âm wizdil.

WSDL cũng là tài liệu XML.

XML là định dạng tài liệu sử dụng thẻ để xác định nội dung của tệp, việc sử dụng nó rộng hơn SOAP và WSDL là các loại XML cụ thể.
Xem hướng dẫn w3schools về XML tại http://www.w3schools.com/xml/default.asp

17

Sau khi đọc tất cả các câu trả lời hay khác, tôi nghĩ có thể hữu ích khi cung cấp phiên bản "siêu laymans". Tôi hy vọng nó sẽ giúp.


SOAP giống như phiên bản máy tính sử dụng dịch vụ bưu chính. Một tin nhắn (như một lá thư) được đặt trong một phong bì và gửi đến người mà nó được dự định.

Chủ yếu, SOAP là từ vựng XML. Nó định nghĩa một ngôn ngữ, sử dụng đặc tả XML, để biết cách gửi và gửi tin nhắn.

Cụ thể, nó chuẩn hóa những gì chúng ta gọi là:

  • "phong bì" (trên thực tế gọi là một phong bì SOAP)
  • "chữ" (gọi tắt là "cơ thể")
  • chú thích khác nhau (được gọi là "tiêu đề" - hãy nghĩ về những dấu như vậy, yêu cầu chữ ký, thông tin người gửi, v.v. - bưu điện sử dụng để định tuyến thư)

Ngoài ra, SOAP định nghĩa type-system, m uch giống như các định nghĩa kiểu bạn tìm thấy trong .Net, Java hoặc XSD.Tôi sẽ không giải thích về điều này - vì có rất nhiều tài liệu ở đó như đã đề cập trong các câu trả lời trước.

Trọng tâm thiết kế chính của ngôn ngữ/từ vựng này là cho phép khả năng tương tác trên các nền tảng. Vì vậy, Java gọi COM, gọi .Net, gọi J2EE và phần còn lại trong khi vẫn có thể mở rộng trong tương lai gần. Thay vì xây dựng một cầu nối khác giữa đối tượng COM và lớp Java, chúng ta có thể sử dụng SOAP để trưng ra chức năng của đối tượng để các nền tảng khác có thể sử dụng chúng mà không cần cầu nối. Hoặc, để đặt nó một cách khác nhau - SOAP là một cây cầu cuối cùng, được thiết kế để thay thế tất cả các cây cầu trước đó.

Hiện tại, tất cả các bộ công cụ phát triển chính đều có một số hình thức hỗ trợ SOAP. Điều này đã làm cho khả năng tương tác ngày càng có sẵn - nhưng trong hầu hết các môi trường, một mức cấu hình nhất định vẫn cần thiết để làm cho giao tiếp thực sự liền mạch.

Tôi cũng nên lưu ý rằng SOAP không còn là viết tắt của ý định ban đầu của nó. Tại một số điểm, tôi nghĩ rằng một số người quan trọng sẽ (lại) đặt tên cho nó: Service Oriented Access Protocol.

Tôi hy vọng điều này sẽ hữu ích!

+0

Giải thích tuyệt vời ... mặc dù tôi không chắc chính xác những gì 'siêu laymen 'có nghĩa là. Nhưng nếu bằng cách đó bạn có nghĩa là không phải ở tất cả trong 'điều khoản của laymen' đó là một tiêu đề apt;) –

+0

Cảm ơn bạn rất nhiều cho những phát hiện của bạn – d3vpasha

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