2012-06-20 2 views
9

웹 서비스는 웹 (Http)을 통해 다른 프로그램에서 액세스 할 수있는 기능입니다. 조금 명확히하기 위해 PHP로 HTML을 출력하는 웹 사이트를 만들 때 대상은 브라우저이고 확장자는 브라우저에서 페이지를 읽는 것입니다. 웹 서비스는 사람을 대상으로하는 것이 아니라 다른 프로그램을 대상으로합니다.RESTful 웹 응용 프로그램의 의미는 무엇입니까?

  1. SOAP와 REST는 WebServices를 만드는 두 가지 방법입니다. 내가 가 잘못 되었다면 나를 바로 잡을 것입니까?
  2. WebService를 만들 수있는 다른 방법은 무엇입니까?
  3. 완전히 RESTful 웹 응용 프로그램이란 무엇을 의미합니까?
+3

이것은 아마도 http://programmers.stackexchange.com 또는 [Google] (http://google.com)에도 속합니다. – lanzz

+0

광고. 1 필요는 없습니다. 두 가지 방법은 Big Web Services와 RESTful Web Services입니다. SOAP을 사용하거나 사용하지 않는 것보다 조금 더 복잡합니다. SOAP는 REST에 따라 사용될 수 있습니다. Ad. 3 로이 필딩의 논문을 읽어보십시오. 또한 REST 자체의 개념보다 다소 구체적 인 ROA (Resource Oriented Architecture)에 대한 읽기를 권장합니다. 또한 가장 일반적으로 적용되는 RESTful 디자인이기도합니다. 종종 REST 자체와 혼동됩니다. – toniedzwiedz

+0

HTTP로 제공되는 웹 사이트는 사람을 대상으로하지는 않지만 우선 HTTP 브라우저에서 사용됩니다.) 그래서 WWW에서 제공하는 하이퍼 텍스트 문서는 웹 서비스입니다. – hakre

답변

4
  1. 올바른
  2. W3C의는 "Web service"로 "네트워크를 통해 상호 운용 시스템 간 상호 작용을 지원하기 위해 설계된 소프트웨어 시스템"을 정의합니다.
  3. 완전히 RESTful 인 서비스는 모두이거나 로이 필딩의 논문에서 제시 한 건축상의 제약 인 Architectural Styles and the Design of Network-based Software Architectures을 준수하는 서비스입니다. 그것은 오랫동안 읽었으며 많은 해석이 있습니다. 좋은 시작은 Richardson Maturity Model에 익숙해지는 것입니다. 참고 : RESTful이라고 주장하는 대부분의 웹 서비스는 해당 모델의 level 2에만 있습니다.
0

완전히 RESTful 인 서비스를 이해하려면 RESTful 서비스와 표준 웹 서비스의 차이점을 이해해야한다고 생각합니다. 오라클 JEE6 튜토리얼에서 꽤 좋은 exaplained 것 :

NonRESTful 웹 서비스를 (JAX-WS와 같은 자바에서는) : 큰 웹 서비스는 단순 개체 액세스 프로토콜에 따라 XML 메시지 (SOAP) 표준 XML 언어의 정의를 사용 메시지 구조 및 메시지 형식 이러한 시스템은 인터페이스를 구문 적으로 정의하기위한 XML 언어 인 웹 서비스 설명 언어 (WSDL)로 작성된 서비스가 제공하는 작업에 대한 기계 판독 가능 시스템 설명을 포함 할 수 있습니다. SOAP 메시지 형식과 WSDL 인터페이스 정의 언어가 널리 채택되어 이되었습니다. NetBeans IDE와 같은 많은 개발 도구는 웹 서비스 응용 프로그램 개발의 복잡성을 줄일 수 있습니다. SOAP 기반 디자인에는 다음 요소가 포함되어야합니다.

■ 웹 서비스에서 제공하는 인터페이스를 설명하는 공식 계약이 수립되어 있어야합니다. WSDL은 메시지, 작업, 바인딩 및 웹 서비스의 위치를 ​​포함 할 수있는 계약의 세부 정보를 설명하는 데 사용할 수 있습니다. WSDL을 게시하지 않고도 SOAP 메시지를 JAX-WS 서비스에서 처리 할 수 ​​있습니다.

아키텍처는 복잡한 비 기능 요구 사항을 처리해야합니다. 많은 웹 서비스 사양은 이러한 요구 사항을 다루고 공통된 어휘를 설정합니다. 예제에는 거래, 보안, 주소 지정, 신뢰, 조정 등이 포함됩니다.

아키텍처는 비동기 처리 및 호출을 처리해야합니다.이러한 경우 웹 서비스 안정적인 메시징 (WSRM)과 클라이언트 측 비동기 호출 을 지원하는 JAX-WS와 같은 API와 같은 표준에서 제공하는 인프라를 에서 즉시 사용할 수 있습니다.

RESTful 웹 서비스 (Java에서 JAX-RS) Java EE 6에서 JAX-RS는 Representational State Transfer (RESTful) 웹 서비스에 대한 기능을 제공합니다. REST는 기본 Ad-hoc 통합 시나리오에 매우 적합합니다. RESTful 웹 서비스 인 은 SOAP 기반 서비스보다 HTTP와 더 잘 통합되는 경우가 많으며 XML 메시지 또는 WSDL 서비스 API 정의가 필요하지 않습니다. Project Jersey는 JAX-RS 사양에 대한 생산 준비 참조 구현입니다. Jersey는 JAX-RS 사양에 정의 된 주석을 지원하므로 개발자가 Java 및 Java 가상 머신 (JVM)을 사용하여 RESTful 웹 서비스를 쉽게 만들 수 있습니다. . 웹 서비스의

유형 때문에 RESTful 웹 서비스를 사용하는 기존의 잘 알려진 W3C 및 인터넷 엔지니어링 태스크 포스 (IETF) 표준 (HTTP, XML, URI, MIME)와 서비스를 구축 할 수 있습니다 경량 인프라가 최소한의 도구로 RESTful 웹 서비스를 개발하는 것은 저렴하고 이므로 채택하기에 매우 낮은 장벽이 있습니다. NetBeans IDE와 같은 개발 도구를 사용하여 RESTful 웹 서비스 개발의 복잡성을 줄일 수 있습니다. 다음 조건이 충족되면 RESTful 설계가 적절할 수 있습니다.

■ 웹 서비스는 완전히 상태가 저장되지 않습니다. 좋은 테스트는 상호 작용 이 서버를 재시작 할 수 있는지 여부를 고려하는 것입니다.

■ 성능을 위해 캐싱 인프라를 활용할 수 있습니다. 웹 서비스 이 반환하는 데이터가 동적으로 생성되지 않고 캐싱 될 수있는 경우 웹 서버 및 기타 중개자가 본질적으로 제공하는 캐싱 인프라를 활용하여 성능을 향상시킬 수 있습니다. 그러나 개발자는 대부분의 서버에서 이러한 캐시가 HTTP GET 메서드 인 으로 제한되어 있으므로주의해야합니다.

■ 서비스 생산자와 서비스 소비자는 컨텍스트를 상호 이해하고 콘텐츠가 전달됩니다. 웹 서비스 인터페이스를 설명하는 공식적인 방법이 없기 때문에 양 당사자는 데이터가 교환되고 의미있는 방식으로 처리되는 방법을 설명하는 스키마의 대역 외에서 동의해야합니다. 실제로, RESTful 구현으로 서비스를 제공하는 대부분의 상업용 응용 프로그램은 널리 사용되는 프로그래밍 언어 언어로 개발자를위한 인터페이스를 설명하는 부가 가치 도구 키트를 배포합니다.

■ 대역폭은 특히 중요하므로 제한되어야합니다. REST는 과 같은 제한된 프로필 장치 (예 : 헤더의 오버 헤드 및 XML 페이로드의 SOAP 요소의 추가 계층을 제한해야하는 PDA 및 휴대폰)에 특히 유용합니다.

■ 웹 서비스 전달 또는 기존 웹 사이트에 대한 집계는 RESTful 스타일을 사용하여 쉽게 사용할 수 있습니다. 개발자는 JAX-RS 및 Asynchronous AJAX (JavaScript with JavaScript) 및 DWR (Direct Web Remoting)과 같은 기술을 사용하여 웹 응용 프로그램에서 서비스를 으로 사용할 수 있습니다.처음부터 시작하는 대신 서비스는 을 XML로 노출하고 HTML 페이지에서 사용하고 기존 웹 사이트 아키텍처를 크게 리팩토링하지 않아도됩니다. 기존 기술자들은 이라는 신기술을 처음부터 새로 시작하지 않고 이미 익숙한 것을 추가하기 때문에 생산성이 더 좋아질 것입니다.

기본적으로 사용하는 웹 서비스의

유형 결정, 당신은 웹을 통해 통합을위한 RESTful 웹 서비스를 사용하고 ( 서비스의 품질을 고급 엔터프라이즈 애플리케이션 통합 시나리오에 큰 웹 서비스를 사용하고자하는 것 QoS) 요구 사항.

■ WebServices : 기업에서 일반적으로 발생하는 고급 QoS 요구 사항을 처리합니다. 컴퓨팅. [..]

과 같이 응용 프로그램에서 바람직한 속성을 유도하기 위해 REST 스타일의 일부 또는 모든 제한 조건을 적용하는 웹 응용 프로그램을 작성하는 것이 더 쉽습니다. 기존 클라이언트를 깨뜨림), 확장 성 (작기 시작 및 성장) 및 아키텍처 단순성 (프록시 또는 HTTP 라우터와 같은 기성품 구성 요소 사용). 서버 유형을 진화 및 확장 할 수 있도록하면서 많은 유형의 클라이언트가 RESTful 웹 서비스를 사용하는 것이 더 쉽기 때문에 웹 애플리케이션에 JAX-RS를 사용하도록 선택합니다. 클라이언트는 서비스의 일부 또는 모든 측면을 사용하도록 선택하고 다른 웹 기반 서비스와 함께 을 매시업 할 수 있습니다.

관련 문제