Java로 웹 서비스를 배워야합니다. 다른 유형은 무엇입니까? [닫은]


91

최근에 저는 자바 웹 서비스에 대해 배우기로 결정했고 Google에서 자바 웹 서비스에 대한 자습서를 검색하기 시작했을 때 XML 기반, SOAP 기반, RESTful 웹 서비스 유형이 많다는 것을 알게되었습니다.

또한 xml 기반 웹 서비스에 대한 JAX-WS 사양과 RESTful 웹 서비스 생성을위한 JAX-RS 사양이 있음을 발견했습니다.

Q1) 혼란 스러웠습니다.이 다른 유형의 웹 서비스의 차이점을 이해하는 데 도움을 줄 수있는 사람이 있으면 어떤 것을 먼저 배울 지 결정할 수 있으면 좋을 것 같습니다.

Q2) 또한 Java에서 다양한 유형의 웹 서비스를 만드는 방법에 대해 자세히 배우고 싶습니다. 각 종류의 웹 서비스에 대한 통찰력과 이들 간의 비교를 제공 할 수있는 자습서 또는 리소스가 있습니까?

Q3) 어떤 시나리오와 조건에 따라 SOAP 서비스가 아닌 XML 기반 웹 서비스를 만들거나 RESTful 서비스를 사용해야한다고 결정해야합니다.


답변:


142
  1. SOAP 웹 서비스 는 표준 기반이며 거의 모든 소프트웨어 플랫폼에서 지원됩니다. SOAP 웹 서비스 는 XML에 크게 의존하며 트랜잭션, 보안, 비동기 메시지 및 기타 많은 문제를 지원합니다. 꽤 크고 복잡한 표준이지만 거의 모든 메시징 상황을 다룹니다. 반면에 RESTful 서비스 는 HTTP 프로토콜과 동사 (GET, POST, PUT, DELETE)를 사용하여 모든 형식, 선호하는 JSON 및 XML로 메시지를 교환합니다. 매우 간단하고 우아한 아키텍처 접근 방식입니다.
  2. Java World의 모든 주제와 마찬가지로 웹 서비스를 구축 / 소비하는 여러 라이브러리가 있습니다. SOAP 측에는 JAX-WS 표준Apache Axis 가 있으며 REST 에서는 다른 라이브러리 중에서 Restlet 또는 Spring REST 기능을 사용할 수 있습니다 .

질문 3 에서이 기사 에서는 RESTful 서비스가이 시나리오에 적합하다고 설명 합니다.

  • 대역폭이 제한된 경우
  • 작업이 상태 비 저장 인 경우 : 한 호출에서 다음 호출까지 정보가 보존되지 않으며 각 요청은 독립적으로 처리됩니다.
  • 클라이언트에 캐싱이 필요한 경우.

SOAP는 다음과 같은 경우에 사용할 수있는 방법입니다.

  • 비동기 처리가 필요한 경우
  • 정식 계약 / 인터페이스가 필요한 경우
  • 서비스 운영은 상태 저장입니다. 예를 들어 요청에 대한 정보 / 데이터를 저장하고 다음 요청에 저장된 데이터를 사용합니다.

11
+1 너무 명확하고 시나리오를 설명하기 위해 :)
Rajesh Pantula

명확하고 명확한 답변.
Krishna

좋은 답변에 +1 ... !!!
Shailesh Saxena 2013-04-22

좋은 대답입니다. 상태 비 저장 / 상태 저장 작업이 무엇인지 말씀해 주시겠습니까?
Keerthivasan

나는 그 개념을 포함하여 대답을 편집했습니다.
Carlos Gavidia-Calderon

13

Q1) 다음은 읽어야 할 몇 가지 사항 또는 Google 더 많은 정보입니다.

Java http://www.ajaxonomy.com/2008/xml/web-services-part-1-soap-vs-rest 에서 SOAP와 RESTful 웹 서비스의 주요 차이점

무엇을 먼저 배우고 싶은지는 당신에게 달려 있습니다. CXF 프레임 워크를 살펴 보는 것이 좋습니다 . 휴식 / 비누 서비스를 모두 구축 할 수 있습니다.

Q2) 다음은 비누에 대한 몇 가지 좋은 자습서입니다 (책갈피로 표시했습니다).

http://united-coders.com/phillip-steffensen/developing-a-simple-soap-webservice-using-spring-301-and-apache-cxf-226

http://www.benmccann.com/blog/web-services-tutorial-with-apache-cxf/

http://www.mastertheboss.com/web-interfaces/337-apache-cxf-interceptors.html

배우는 가장 좋은 방법은 단지 튜토리얼을 읽는 것이 아닙니다. 그러나 먼저 튜토리얼을 통해 기본적인 아이디어를 얻으면 무언가를 생산할 수 있는지 여부를 알 수 있으며 동기 부여가 될 것입니다.

그래서 특정 기술 (또는 그 이상)을 배우는 좋은 방법이고, 사람들은 이상한 질문을 많이하고 이상한 대답이 있습니다. 그러나 전반적으로 다른 방법으로 문제를 해결하는 방법에 대해 배웁니다. 그 방법을 몰랐을 수도 있고, 혼자서 생각하지 못했을 수도 있습니다.

흥미롭고 끈질긴 태그 몇 개를 구독하고, 좋은 질문을하고, 좋은 대답을하려고 노력하세요. 시간이 지남에 따라 이것을 배우게 될 것입니다.

Q3) 이 질문에 직접 답해야합니다. 먼저 무엇을 만들지 결정하고, 결국 미니 프로젝트 나 무언가를 생각하고 거기에서 가져와야합니다.

REST / SOAP 서비스 구축을위한 프레임 워크로 CXF를 사용하기로 결정했다면이 책을 찾아 보는 것이 좋습니다 Apache CXF Web Service Development. 환상적이고 읽기 어렵지 않으며 너무 크지도 않습니다 (승리).


7

SOAP WS는 원격 프로 시저 호출 (예 : RPC) 및 메시지 지향 미들웨어 (MOM) 통합 스타일을 모두 지원합니다. Restful 웹 서비스는 RPC 통합 스타일 만 지원합니다.

SOAP WS는 전송 프로토콜 중립적입니다. HTTP (S), 메시징, TCP, UDP SMTP 등과 같은 여러 프로토콜을 지원합니다. REST는 전송 프로토콜에 따라 다릅니다. HTTP 또는 HTTPS 프로토콜 만 지원합니다.

SOAP WS는 XML 데이터 형식 만 허용합니다. POST를 통해 터널링하는 작업을 정의합니다. 초점은 명명 된 작업에 액세스하고 응용 프로그램 논리를 서비스로 노출하는 것입니다. REST는 XML, JSON 데이터, 텍스트, HTML 등과 같은 여러 데이터 형식을 허용합니다. REST 접근 방식은 표준 GET, PUT, POST 및 DELETE 웹 작업을 사용하기 때문에 모든 브라우저를 사용할 수 있습니다. 초점은 명명 된 리소스에 액세스하고 데이터를 서비스로 노출하는 것입니다. REST는 AJAX를 지원합니다. XMLHttpRequest 객체를 사용할 수 있습니다. 상태 비 저장 CRUD (만들기, 읽기, 업데이트 및 삭제) 작업에 적합합니다. GET-represent () POST-acceptRepresention () PUT-storeRepresention () DELETE-removeRepresention ()

SOAP 기반 읽기는 캐시 할 수 없습니다. REST 기반 읽기를 캐시 할 수 있습니다. 더 나은 성능과 확장 성. SOAP WS는 SSL 보안과 WS- 보안을 모두 지원합니다.이 기능은 필요한 지점까지 보안을 유지하고, 지점 간 SSL만이 아닌 중개자를 통해 ID를 유지하고, 메시지의 다른 부분을 다른 보안 알고리즘 등이 있습니다. REST는 지점 간 SSL 보안 만 지원합니다. SSL은 모든 메시지가 민감한 지 여부에 관계없이 전체 메시지를 암호화합니다. SOAP는 단기 트랜잭션에 대한 ACID 기반 트랜잭션 관리와 장기 실행 트랜잭션에 대한 보상 기반 트랜잭션 관리를 모두 포괄적으로 지원합니다. 또한 분산 된 리소스에 대한 2 단계 커밋을 지원합니다. REST는 트랜잭션을 지원합니다.

SOAP에는 성공 또는 재시도 논리가 내장되어 있으며 SOAP 중개자를 통해서도 종단 간 안정성을 제공합니다. REST에는 표준 메시징 시스템이 없으며 서비스를 호출하는 클라이언트가 다시 시도하여 통신 실패를 처리 할 것으로 예상합니다.

출처 http://java-success.blogspot.in/2012/02/java-web-services-interview-questions.html


> Restful 웹 서비스는 RPC 통합 스타일 만 지원합니다. REST는 RPC가 아닙니다. RPC는 "무언가를 수행하는 일부 메서드를 정의"하는 반면 REST는 "일부 리소스를 정의하면 이러한 메서드를 갖게됩니다"라고 말합니다. peej.co.uk/articles/rest.html
urmalp 2014

0

응용 프로그램이 http 프로토콜을 자주 사용하는 경우 REST가 가볍기 때문에 가장 좋으며 응용 프로그램이 SOAP를 선택하는 http 프로토콜 만 사용한다는 사실을 아는 것은 무겁기 때문에 좋지 않습니다. 우리가 사용하는 프로토콜을 기반으로 웹 서비스 선택을 결정하는 것이 좋습니다 우리의 응용 프로그램에서.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.