ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • REST와 SOAP 비교
    EDI 관련 기술 용어 2022. 10. 7. 11:00

     

    과거 프로토콜에서 SOAP과 REST에 대해 알아본 적이 있습니다.

    (SOAP 포스팅 확인하기↓)

     

    SOAP(Simple Object Access Protocol)

    SOAP(Simple Object Access Protocol)는 직역하면 단순객체 접근 프로토콜로 World Wide Web Consortium(W3C)에서 유지관리하는 공식 프로토콜입니다. (프로토콜이 궁금하시다면, 여기서 확인하세요↓) 프로토콜(..

    cloudedi.tistory.com

    (REST 포스팅 확인하기↓)

     

    REST(Representational State Transfer)

    웹서비스는 초기 SOAP, XML, WSDL, UDDI를 기반으로 웹 기반 응용을 통합하는 표준방법을 주로 사용했습니다. 하지만 현재는 XML기반 표준이 처리하기 무겁고 복잡해서, 상대적으로 가볍게 처리가 가

    cloudedi.tistory.com

     

    기억이 잘 안나시면, 위 포스팅에서 내용을 한 번 확인하고 오시면 더 좋으실 겁니다.

     


     

    한눈에 보는 REST와 SOAP 비교
      SOAP (Simple Object Access Protocol) REST (Representational State Transfer)
    정의
    컴퓨터 네트워크 상에서 HTTP, HTTPS 등을 통해 XML 기반의 메시지를 교환하는 프로토콜
    중간 매개체 없이 자원을 직접 주고 받는 아키텍처 스타일
    기능 SOA(Service Oriented Architecture)를 구현 ROA(Resource Oriented Architecutre)를 구현
    특징
    - XML: 모든 데이터 표현
    - WSDL: 데이터, 데이터 사용법을 XML로 작성
    - UDDI: 웹서비스 저장소, 서비스 공개
    - 자원: 고유한 ID(URI) 존재, 서버에 저장
    - 행위: HTTP Method(GET, POST, PUT, DELETE)
    - 표현: Client의 data 요청에 Server가 응답
                JSON, XML 등의 형태
    상태 Stateful Stateless
    장점
    보안, 트랜잭션, ACID를 준수해야 하는 기업용 애플리케이션에 적합
    Client – Server 구조
    명확히 구분되어 개발이 쉽고 확장성이 좋음
    한계 - WSDL 구조 복잡 + 무거움
    - 개발 환경 지원 필요(난이도 높음)
    - UDDI를 거쳐야만 서비스 사용 가능
    - 표준이 없음
    - HTTP 통신 모델만 지원
    → 4개의 Method
    - 분산 환경에 적합하지 않음

     

     

    SOAP은 프로토콜로 SOA를 구현한 것으로 UDDI라는 저장소에 WSDL이라는 서비스 명세서를 사용하여 작동합니다.

    이와는 다르게 REST는 중간 매개체가 없으면 ROA를 구현합니다.

    REST는 고유한 ID를 가지고 있는 자원, HTTP Method인 행위, Client의 data요청에 Server가 응답하는 표현으로 구성됩니다.

     

    SOAP은 stateful하지만 REST는 stateless 합니다.

     

    SOAP는 보안, ACID를 준수해야하는 기업용 애플리케이션에 적합하지만, 복잡하고 무겁기 때문에 오는 단점이 있습니다.

    REST는 Client-Server구조로 명확히 구분되어 개발이 쉽고 확장성이 좋지만, 표준이 없고 4개의 Method만 사용할 수 있다는 단점이 있습니다.

     

     

     

    Stateful과 Stateless

     

    위에서 SOAP은 주로 stateful하고 rest는 stateless 하다고 했습니다.

     

    stateful은 서비스 간 작업 처리의 상태가 항상 공유되고, stateless는 상태는 상관없이 작업 수행 뒤 응답만 전송합니다.

    이 둘의 차이는 클라이언트의 상태를 서버가 저장 하는지 안하는지로 구분됩니다.

     

     

     

    SOAP과 REST의 구조와 동작원리

     

     

    SOAP은 웹 서비스의 표준기술이기 때문에, 여기서의 주체들은 웹서비스의 주체들을 나타냅니다.

    웹 서비스 제공자는 웹 서비스를 WSDL로 인코딩하여 UDDI 레지스트리에 등록하고, 웹 서비스 요청자는 사용할 웹서비스를 WSDL로 인코딩하여 UDDI 레지스트리를 탐색합니다.

    해당하는 서비스가 있다면 바인딩하고 WSDL 데이터를 디코딩하여 해당 웹 서비스 기능을 수행합니다.

     

    여기서 WSDL이란 Web Services Description Language로 쉽게 말하면 웹서비스 설명서입니다.

    이 설명서를 UDDI라는 웹서비스 저장소에 등록하고 검색하고 저장할 수 있습니다.

    하지만 여기서 UDDI라는 것은 웹 서비스 중재자라는 개념적인 것이지, 모든 SOAP 웹 서비스가 모두 동일한 형태의 UDDI를 사용하진 않습니다.

    내 로컬 PC의 저장소일 수도 있고, 네트워크 상에 존재할 수도 있습니다.

    UDDI 또한 웹서비스를 등록하고 검색하고 저장하여 형상관리를 하는 저장소라는 개념입니다.

     

     

     

    SOAP은 UDDI라는 저장소를 거쳐야 했지만, REST는 중간에 다른 것을 거치치 않고 바로 요청과 응답이 이루어집니다.

    HTTP를 사용하여 JSON, XML, RSS 형태의 자원을 주고 받습니다.

     

    WADL은 Web Application Description Language 약자로 REST의 단점을 극복하기 위해 만들어졌습니다.

    HTTP 기반의 웹 애플리케이션을 설계합니다.

    SOAP의 WSDL처럼 서비스 명세에 대한 명확한 표준이 필요하여 등장하게 되었습니다.

    자원을 식별하는 URI로 표현되는 리소스의 집합이며, 이들의 관계가 나타나있고 자원에 적용될 HTTP Method도 포함됩니다.

    또한 지원되는 MIME type과 데이터 포맷이 나타나 있습니다.

     

     

     


     

     

     

    'EDI 관련 기술 용어' 카테고리의 다른 글

    TCP와 UDP  (0) 2022.11.04
    SSL/TLS  (0) 2022.10.14
    XSD (XML Schema Definition language)  (1) 2022.09.23
    XPath  (0) 2022.09.16
    HTML (Hypertext Markup Language)  (0) 2022.09.02

    댓글

Designed by CONNECT SERVICE