XML Web Services 관련 기술로는 HTTP, SOAP, WSDL, UDDI가 있다.
📌 HTTP
HyperText Transper Protocol의 약자로, 서로 다른 시스템을 통신할 수 있는 프로토콜이다.
HyperText라는 것은, 컴퓨터 화면 및 전자 기기에서 볼 수 있는 텍스트 데이터를 의미하는데, 이것을 빠르게 네트워크 상에서 교환하기 위한 프로토콜인 것이다.
Client - Server
웹에서 이루어지는 대표적인 인터넷 프로토콜이며, 클라이언트에서 URL을 통해서 서버에 요청(Request)을 하면, 서버에서는 해당 요청에 대한 응답(Response)을 하는 형태로 동작한다.
Stateless
서버에서는 클라이언트에 대한 상태를 전혀 보관하지 않는다.
Connectionless
또한, 클라이언트는 서버로부터 응답을 받은 후, 연결이 끊어지게 된다.
최근에는 보안상 HTTPS를 사용하는데, HTTP와 HTTPS의 차이에 대한 것도 정리해두면, 링크를 걸어둘 생각이다.
📌SOAP
Simple Object Access Protocol의 약자로, HTTP, HTTPS, SMTP 등을 사용하여 XML 기반의 메시지를 네트워크 상에서 교환하는 XML 메시징 프로토콜이다.
웹 서비스에서 다른 시스템 간의 상호작용을 위해서 어떻게 메시지를 전달할 지에 대한 기반이 된다.
XML을 기반으로 하고 있으며, envelop, header, body, fault의 구조로 구성되어 송수신된다.
📌WSDL
Web Services Description Language의 약자로, 웹 서비스의 이름과 위치, 메시지 포맷, 프로토콜과 같은 웹 서비스에 대한 상세 정보들을 XML 형식으로 구현해둔 언어이다.
서비스를 호출하기 위해 알아야 하는 상세 정보 즉, 서비스 인터페이스를 XML로 제공주는 것이다.
📌UDDI
Universal Description, Discovery and Integration의 약자로, 웹 서비스에 대한 상세 정보인 WSDL을 등록하고 검색하기 위한 저장소이다.
서비스 제공자(Service Provider)는 UDDI를 통해서 XML Web Services를 등록하고, 서비스 이용자(Service Customer)는 UDDI를 통해서 원하는 서비스를 검색할 수 있다.
📌XML Web Service의 동작 과정
XML Web Service에 사용되는 각 기술들과 역할을 알아보았으니, XML Web Service는 어떤 동작을 거쳐 진행되는 지를 알아보자면,
1. 클라이언트는 UDDI를 통해서 원하는 웹 서비스를 검색한다.
2. 서버에 WSDL을 요청하여 웹 서비스에 대한 상세 정보를 제공 받는다.
3. WSDL를 통해 웹 서비스 호출 방법을 알게 되었으니, 원하는 웹 서비스를 이용한다.
1. 서버는 웹 서비스를 구현한다.
2. 웹 서비스에 대한 상세 정보인 WSDL을 생성한다.
3. 웹 서비스를 UDDI 스펙(표준, 규칙 및 규정)을 준수하여 등록한다.
4. 클라이언트의 WSDL 요청이 들어오면, WSDL을 담아 응답한다.
5. 웹 서비스를 제공한다.
XML Web Services는 REST Web Services와의 차이를 함께 보며 장단점을 정리하는 것이 더 좋은 것 같다. 일단, 추후에 REST Web Services를 정리해보겠지만, 간단하게만 장단점을 정리해두자면 아래와 같다.
✅ 장점
- HTTP, SOAP처럼 표준 통신 규약을 따른다.
- 플랫폼이나 프로그래밍에 독립적이다.
✅ 단점
- XML은 다른 데이터 포맷보다 데이터 크기가 크다.
- 따라서, 처리 속도가 느리다.
- 개발 난이도가 높은 편으로, REST 방식보다 어려움이 있다.