2008-08-14 40 views
16

Tôi đã sử dụng Apache CXF để hiển thị khoảng mười lớp java dưới dạng dịch vụ web.Sự khác nhau giữa điểm cuối, dịch vụ và cổng khi làm việc với dịch vụ web là gì?

Tôi đã tạo khách hàng bằng CXF, Axis và .NET.

Trong Axis và CXF, "Dịch vụ" hoặc "Bộ định vị" được tạo. Từ dịch vụ này, bạn có thể nhận được một "Cổng". "Cổng" được sử dụng để thực hiện cuộc gọi riêng lẻ đến các phương thức được dịch vụ web tiếp xúc.

Trong .NET "Dịch vụ" trực tiếp hiển thị các cuộc gọi đến dịch vụ web.

Ai đó có thể giải thích sự khác biệt giữa cổng, dịch vụ, định vị và điểm cuối khi nói đến dịch vụ web không?

Axis:

PatientServiceImplServiceLocator locator = 
    new PatientServiceImplServiceLocator(); 
PatientService service = locator.getPatientServiceImplPort(); 

CXF:

PatientServiceImplService locator = new PatientServiceImplService(); 
PatientService service = locator.getPatientServiceImplPort(); 

.net:

PatientServiceImplService service = new PatientServiceImplService(); 

Trả lời

6

Tôi muốn chuyển sang http://www.w3.org/TR/wsdl.html mà tôi nghĩ giải thích rõ ràng về Cổng, Dịch vụ và Điểm cuối. Một bộ định vị là một cơ chế cụ thể thực hiện mà một số ngăn xếp WS sử dụng để cung cấp quyền truy cập vào các điểm cuối dịch vụ.

1

Như bạn đã đề cập, những điều khoản có nghĩa là những thứ khác nhau trong ngăn xếp khác nhau - không có ai câu trả lời chung chung cho các dịch vụ web.

31

Tôi tìm thấy thông tin dựa trên câu trả lời của Kevin Kenny, nhưng tôi nghĩ tôi sẽ đăng nó ở đây cho những người khác.

Tài liệu WSDL xác định dịch vụ làm bộ sưu tập điểm cuối mạng hoặc cổng. Trong WSDL, định nghĩa trừu tượng của các điểm cuối và các thông điệp được tách biệt khỏi việc triển khai mạng cụ thể hoặc các ràng buộc định dạng dữ liệu của chúng. Điều này cho phép tái sử dụng các định nghĩa trừu tượng: các thông điệp, là các mô tả trừu tượng về dữ liệu được trao đổi và các loại cổng là các bộ sưu tập trừu tượng của các hoạt động. Giao thức cụ thể và các đặc tả định dạng dữ liệu cho một loại cổng cụ thể cấu thành một ràng buộc có thể tái sử dụng. Một cổng được xác định bằng cách kết hợp một địa chỉ mạng với một ràng buộc có thể tái sử dụng và một tập hợp các cổng xác định một dịch vụ. Do đó, một tài liệu WSDL sử dụng các yếu tố sau trong định nghĩa của các dịch vụ mạng:

  • loại - một container cho các định nghĩa kiểu dữ liệu sử dụng một số hệ thống kiểu (như XSD).
  • Thông báo - định nghĩa trừu tượng về dữ liệu được truyền đạt.
  • Hoạt động - mô tả trừu tượng về một hành động được dịch vụ hỗ trợ.
  • Loại cổng - một bộ hoạt động trừu tượng được hỗ trợ bởi một hoặc nhiều điểm cuối.
  • Ràng buộc - giao thức cụ thể và đặc điểm định dạng dữ liệu cho một loại cổng cụ thể.
  • Cổng - một điểm cuối được xác định là kết hợp của địa chỉ liên kết và địa chỉ mạng.
  • Dịch vụ - tập hợp các điểm cuối có liên quan.
3

Tôi muốn nói thêm rằng <port><endpoint> phục vụ cùng một mục đích, nhưng port được sử dụng bởi WSDL 1.1 và endpoint bởi WSDL 2.0.

Nó làm tôi bối rối lúc đầu.

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