웹서비스

기본 개념

  • 네트워크 상의 접근 가능한 소프트웨어의 기능단위
  • 플랫폼, 프로그래밍 언어, 컴포넌트 모델에 독립적인 기술
  • SOA ( Service-Oriented Architecture ) 기반
    • SOA에서는 소프트웨어의 기능이 서비스의 집합으로 분류된다. 
  • SOA의 메카니즘 
    • Service provider : 어떤 동작을 기술(description) 하고 이를 Registry 에 등록( publish ) 한다.
    • Service registry : provider를 등록하고, consumer에게 provider의 정보를 제공한다.
    • Service comsumer : registry에서 provider정보를 찾아 ( find ) , provider를 연결(bind) 한다.

Web Service Stack

  •  Web service stack - 특정 플랫폼이나 제조사에 의존적이지 않음 ( platform- and vender-netural )
  • Stack 구조
    • Service publication Discovery : UDDI
    • Service Description : WSDL
    • XML Messaging : SOAP
    • Transport network : http, smtp, ftp, https over tcp/ip
  • Stack에 대한 설명 
    • UDDI : Universal Description and Discovery Interface : 웹 서비스를 공개하고 탐색하는 표준 메카니즘
    • WSDL : Web Service Descritpion Language : 웹 서비스를 기술하는 표준 메카니즘
    • SOAP : Simple Object Access Protocol : 웹 서비스를 호출하는 표준 메카니즘


Web Service Call ( XML RPC , SOAP )

XML-RPC

  1. RPC - Remote Procedure Call - 원격지의 메소드를 호출 한다.
  2. XML RPC - XML을 이용해서 원격지의 메소드를 호출한다.
  3.  특징
    1. XML 사용
    2. Http를 사용

SOAP

  • 기본적으로는 RPC 와 같음
  • Http 이외의 다른 전송 프로토콜 지원
  • 복잡한 Data Type 지원
  • 메세지의 처리 방법을 기술
  • 응답은 HTTP 방식을 이용
    • 200일 경우에는 Content-Type 이 XML 형태이나
    • 500일 경우에는 text/html 형태로 들어올 수 있다.
  • SOAP의 호출 동작 
    •  SOAP Client  <->  Web Server <-> SOAP Server <-> Web Service


WSDL

  • WSDL : Web Service Descritpion Language
  • 웹 서비스를 기술 ( 표현, 설명 ) 한다. 
    • 웹서비스가 하는 일
    • 호출 가능한 메소드
    • 전달해야 하는 파라미터
    • 파라미터의 Type
    • 사용하는 바인딩 프로토콜
  • 즉, WSDL 문서가 있다면 웹서비스의 기능을 호출할 수 있다.
  • WSDL 문서의 구조 
    • Implementation Specific 
      • Service : 특정 바인딩을 어떠한 Port ( 주소 ) 로 연결할것인가?
      • Port : 웹 서비스로 접근 가능한 주소 ( End-point? )
    • Abstract Definition 
      • Binding : 사용될 전송 프로토콜 ( Port type에서 사용할 프로토콜 - SOAP ) , 요청방식 ( rpc , document )
      • Port Type : 공개된 ( 호출할 수 있는 ) 메소드 집합.
      • Message : 메소드에서 사용할 파라미터
      • Types : Data Type ( integer , float, String ... )


UDDI

  •  UDDI : Universal Description and Discovery Interface 
  • 웹 서비스 제공자와 클라이언트들이 함께 사용할 수 있는 중앙 저장소 제공  
    • 클라이언트가 필요한 웹 서비스를 찾아 내 줄 수 있게 해야 함.
    • 웹서비스 제공자가 서비스를 공개할 방법이 필요 

이 글은 스프링노트에서 작성되었습니다.

신고
크리에이티브 커먼즈 라이선스
Creative Commons License

+ Recent posts