2010-08-30 22 views
5

Ý tôi là, đúng interop đúng: từ Java để NET, từ PHP để Java, vvKhả năng tương tác SOAP thực sự là một huyền thoại?

Tôi hỏi vì sức mạnh của chúng tôi là được muốn chúng tôi thực hiện API công cộng phải đối mặt với các dịch vụ web SOAP, và tôi đang cố gắng tạo một điểm mạnh có lợi cho RESTful XML/JSON API.

lập luận của họ là rất nhiều tẩy não gây ra:

  • SOAP là một giao thức dựa trên tiêu chuẩn (chưa nói đến một trong những nhà phát triển của chúng tôi đã dành 4 ngày qua chôn trong cấu hình XML và an ninh tùy chỉnh serializers dấu hiệu cố gắng bằng cách nào đó uốn cong WCF client để nó sẽ gọi dịch vụ WSE 3.0 và nó tạo ra tất cả các loại lỗi tối nghĩa),
  • SOAP là an toàn (nhưng kinh doanh khôn ngoan chúng ta không cần mã hóa cũng như chữ ký số - HTTP qua SSL sẽ nhiều hơn đủ)
  • Cuối cùng, SOAP tương thích với nhau và đây dường như là poi bán chạy nhất nt cho họ (toàn bộ điểm của câu hỏi này)

Để nhắc lại: SOAP có thực sự tương thích được không? Câu chuyện chiến tranh trong thế giới thực của bạn sẽ tuyệt vời.

Trả lời

3

Miễn là bạn tuân thủ các tiêu chuẩn SOAP WS-I-based thì interop thường khá dễ dàng. WS-I được thiết kế để giải quyết các vấn đề interop ban đầu mà các triển khai SOAP ban đầu phải chịu đựng.

Các vấn đề có xu hướng tăng lên khi sử dụng dịch vụ web trước WS-I (ví dụ: công cụ mã hóa rpc) hoặc khi sử dụng tiện ích mở rộng bảo mật ưa thích mà WCF thích. Những người nhận được phức tạp, và khó khăn để gỡ lỗi khi họ đi sai.

+0

điều này đúng. Chúng tôi đã có một số kinh nghiệm với các dịch vụ web được viết bằng các ngôn ngữ khác nhau với các phương thức bảo mật khác nhau và chúng tôi đã gặp rất nhiều vấn đề. Vì vậy, miễn là bạn gắn bó với các tiêu chuẩn tất cả mọi thứ nên được ok. – user29964

1

Có, phần lớn nó là, mặc dù đôi khi nó có thể là một trận chiến. Tôi có một số dịch vụ xà phòng dựa trên các tiêu chuẩn và một số ngôn ngữ/thư viện có vẻ dễ hơn các ngôn ngữ khác.

Tuy nhiên, tất cả đều không hài lòng với đất SOAP. Một thư viện đặc biệt là nghịch ngợm (Apache Axis), theo mặc định biên dịch một bản sao của WSDL thành các nhánh của nó .... mà không phải là lẻ trong chính nó bởi vì .net cũng làm như vậy .... nhưng vấn đề là nó cũng xác nhận WSDL cho bất kỳ thay đổi nào. Và nếu một thay đổi được phát hiện nó sẽ ném lên.

Vì vậy, giả sử bạn có phương thức tạo người dùng và bạn thêm trung bình ban đầu 5 tháng xuống đường. Bạn sẽ phá vỡ dịch vụ cho tất cả người tiêu dùng bằng cách sử dụng Axis ... ngay cả khi ban đầu ở giữa KHÔNG bắt buộc và dịch vụ có thể quan tâm ít hơn nếu bạn gửi nó. Vì vậy, tại địa điểm của chúng tôi, chúng tôi phải gửi tin nhắn cho khách hàng tháng trước khi thêm bất kỳ thông số tùy chọn nào để họ có thể thuê lại nhà thầu của họ để chỉ biên dịch lại WSDL vào đêm phát hành.

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