2010-05-11 32 views
16

Mặc dù điều này có thể xuất hiện dưới dạng bản sao của Java Web Services, tôi muốn biết Bắt đầu và tiếp tục ở đâu. Trước đây, tôi đã đầu tư rất nhiều thời gian để tìm nơi bắt đầu nhưng Tôi đã không thể. Có rất nhiều thuật ngữ và sự hỗn loạn (ít nhất là đối với tôi!) Trong khi đọc các trang về các dịch vụ web. Có rất nhiều điều khoản - như JAX-RPC, JAX-WS, Axis, Rest, Servlet as WebService, EJB's là Dịch vụ web và các điều khoản khác mà tôi không biết. Nhóm người dùng này có thể hợp nhất và đưa ra một tổng quan về các dịch vụ Web Java dễ hiểu và dễ hiểu không? Tôi đánh giá cao lòng tốt của bạn và cảm ơn sự giúp đỡ của bạn.Cách viết các dịch vụ web hiệu quả trong java

Trả lời

33

Đó thực sự là một khu rừng nhiệt đới để hiểu các dịch vụ web. Trang wikipedia là phong nha, nhưng vẫn thiếu một số yếu tố.

Tôi đã gắn cờ câu trả lời này là wiki cộng đồng, vì vậy vui lòng cập nhật hoặc chỉnh sửa nó. Nó chỉ là cơ sở.

Một thuật ngữ cồng kềnh:

Thứ nhất, hạn dịch vụ web được sử dụng để tham khảo nhiều điều. Mặc dù nhiều người sử dụng nó để tham khảo dịch vụ web dựa trên SOAP, thuật ngữ này có thể được sử dụng để biểu thị bất kỳ dịch vụ nào được cung cấp qua giao diện web; đây là một nguồn gây nhầm lẫn.

Thực hiện và thiết kế phong cách:

  • dựa trên SOAP - SOAP vẫn là tiêu chuẩn de-facto cho các dịch vụ web. SOAP là giao thức trên đầu trang của HTTP mô tả việc trao đổi thông điệp và ngoại lệ. SOAP phát triển từ một cái gì đó đơn giản đến một cái gì đó rất phức tạp với tất cả các WS-* standards đã được thêm vào sau này. Quan trọng nhất là: WS-Policy, WS-Security, WS-Addressing, WS-Transaction. Một thông số quan trọng khác là MTOM cho thông điệp lớn.
  • RESTful - Thuật ngữ RESTful liên quan đến thực tế là dịch vụ không trạng thái và tất cả thông tin liên quan được chuyển làm tham số. Ngoài ra, thay vì sử dụng giao thức như SOAP, các động từ HTTP đồng đều được sử dụng, ví dụ: Get, Put, Delete, Update.
  • Không quốc tịch - WS thường không có quốc tịch. Đôi khi, các doanh nghiệp được xử lý dựa vào các định danh tương quan (được gọi là WS-Addressing) được sử dụng để đối sánh các yêu cầu và phản hồi với nhau; đây là ý tưởng giống như lưu trữ số nhận dạng phiên trong cookie vì HTTP không có trạng thái.
  • Stateful - Có một số đề xuất để có WS stateful, nhưng tôi không biết nhiều về nó.

thực hiện và công nghệ ngăn xếp:

  • Servlet - The-mức thấp nhất cách để thực hiện một WS: về cơ bản bạn phân tích các yêu cầu và nhổ phản ứng HTTP tất cả bởi chính mình.
  • EJB - Vì EJB3, EJB có thể được hiển thị dưới dạng dịch vụ web rất dễ dàng. Cần một container EJB, tất nhiên.
  • Apache Axis - Đã từng là ngăn xếp công nghệ phổ biến hiện đang giảm.
  • Apache CXF - Một lựa chọn phổ biến khác.
  • JBossWS - Tuy nhiên, một lựa chọn popluar khác.
  • JAX-WS - Ngăn xếp dịch vụ web chính thức từ Sun, rất tốt. Cho đến nay tôi đã biết, replaces JAX-RPC này đã được đổi tên thành JAX-WS một cách đơn giản.

khái niệm liên quan và biệt ngữ:

  • WSDL - Xác định hợp đồng/giao diện của dịch vụ web, trong trường hợp của WS dựa trên SOAP.
  • Hợp đồng đầu tiên - Đề cập đến thực tế là một công nghệ có thể hỗ trợ bất kỳ WSDL nào được cung cấp trả trước. Trái với công nghệ triển khai sẽ tạo WSDL dựa trên việc thực hiện dịch vụ web, trong trường hợp đó, WSDL có thể không luôn được tùy chỉnh khi cần thiết
  • Profile - Để đơn giản hóa mớ hỗn độn này, chúng đã được giới thiệu các cấu hình là các nhóm các đặc tả/khả năng liên quan cần được hỗ trợ cho khả năng tương tác. Cái chính là WS-I Basic Profile.
  • UDDI và khám phá - Dường như một số người nghĩ rằng dịch vụ web sẽ được xuất bản trong sổ đăng ký công khai để người tiêu dùng tiềm năng có thể khám phá. Tôi không nghĩ rằng tầm nhìn này đã đạt được nhiều động lực.
+0

+1 Chi tiết cho tổng quan điểm. – CoolBeans

+0

+1 Bài đăng rất hay - thứ mà tôi rất cần hôm nay, đủ thuận tiện. – aperkins

+0

Có thể ai đó chia sẻ quy trình thiết lập, với nhật thực, trục2, tomcat –

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