소개
본 장에서는 웹 서비스 게이트웨이에 대해 소개하고 동작구조에 대해 기술한다.
1. 개요
웹 서비스는 애플리케이션들이 플랫폼과 프로그래밍 언어와는 독립된 방식으로 서로 통신할 수 있도록 하는 표준화된 기술이며 표준 XML 메시징을 통해 네트워크로 접근되어 질 수 있는 오퍼레이션들을 기술하는 소프트웨어 인터페이스이다. 또 웹 서비스는 인터넷에만 연결되어 있다면 서비스에 대한 권한을 가지고 있는 사용자 누구에게라도 비즈니스를 공개하고 사용되어 질수 있도록 메시징 프로토콜, 프로그래밍 표준, 서비스 발견을 위한 편의 환경 등을 정의하고 있다.
1.1. 웹 서비스
웹 서비스는 인터넷의 Uniform Resource Identifier로 접근 가능한 애플리케이션이며 웹 서비스의 인터페이스와 바인딩은 XML 문서로 정의되어지고, 기술되며, 발견되어질 수 있다. 하나의 웹 서비스는 인터넷에 공개되어진 또 다른 웹 서비스와 상호 연동이 가능할 뿐 아니라 기존의 백엔드(back-end) 애플리케이션들과도 연동이 가능하다.
지금까지의 애플리케이션 아키텍처는 2가지의 범주에 속해 있었다. 하나는 메인프레임을 기반으로 작동하는 단일화된 시스템이며, 다른 하나는 데스크 탑에서 작동하는 클라이언트/서버(Client/Server) 기반의 시스템이었다.
시스템들은 물론 모두 다 잘 작동하지만, 이러한 아키텍처 위에 동작하는 프로그램들은 그 시스템에서만 작동할 수 있게 맞추어진 프로그램들이라는 한계점을 가지고 있다. 아키텍처 내에서의 프로그램들은 아주 폐쇄적이어서 접근이 용이하지 않으므로 웹상에 존재하는 무수히 많은 사용자들에게는 무용지물이다. 그래서 소프트웨어 산업은 서비스지향 아키텍처 (SOA:Service-Oriented Architecture) 라는 방향으로 진화하게 되었고, 이 기반 위에서의 애플리케이션들은 웹상에서 동적으로 상호 작용할 수 있게 되었다.
애플리케이션은 큰 규모로 이루어져 있던 소프트웨어 시스템을 더 작게 모듈화된 여러 서브 시스템으로 구성하게 만들었고, 이렇게 작게 모듈화된 서브 소프트웨어 시스템들은 각각 다양한 기술들로 구현할 수 있게 되었으며, 하나의 컴퓨터에 존재하지 않아도 되며, 재사용할 수 있게 되었다. 또한 XML과 HTTP 같은 표준 웹 프로토콜을 사용하여 인터넷 상의 어떠한 사용자라도 쉽게 접근할 수 있게 만들었다.
이러한 서비스 지향 기술은 이미 수년 전부터 RMI, COM 그리고 CORBA와 같은 여러 다양한 형태의 기술들로 구현되어져 왔으므로 최근에 발생한 완전한 새로운 형태의 것이라고 보기는 힘들다. 하지만 이렇게 언급한 기술들은 벤더에 종속적이거나 구현된 기술에 종속적이라는 단점이 있다. 웹 서비스는 이러한 단점들을 극복한다.
웹 서비스 특징
웹 서비스는 다음과 같은 특징이 있다.
-
웹 서비스는 웹을 통해 접근할 수 있다.
-
웹 서비스는 스스로 표방하고 서술한다.
-
웹 서비스는 스스로의 역할과 기능, 속성에 대해서 서술함에 따라서 웹 서비스 클라이언트가 서비스에 대한 이해할 수 있게 한다. WSDL(Web Service Description Language)이라는 파일에 서비스를 서술하여 이를 공개함으로써 다른 애플리케이션에서 서비스를 이용할 수 있게 한다.
-
Recovery/Rollback에 의한 안정성을 보장한다.
-
-
웹 서비스는 HTTP와 같은 표준 인터넷 프로토콜에 의해 전달되는 XML 메시지를 통해 웹 서비스 클라이언트와 교신한다. 웹 서비스 클라이언트는 애플리케이션일 수도 있고, 다른 웹 서비스일 수도 있다.
-
웹 서비스는 request-response 혹은 one-way 방식으로 작동하며, 동기 혹은 비동기 통신으로 호출되어 질 수 있다. 이러한 작동 방식과 통신 방식에는 무관하게 웹 서비스와 웹 서비스 클라이언트 간에 교환되는 근본적인 단위는 메시지이다.
웹 서비스 장점
웹 서비스에는 다음과 같은 장점이 있다.
-
인터넷 공개 표준을 지원한다.
웹 서비스는 SOAP(Simple Object Access Protocol), WSDL, UDDI(Universal Description, Discovery, and Integration)와 같은 공개 표준을 정하여 이를 근간으로 하여 상호 작용이 이루어지므로 웹 서비스를 지원하는 응용 프로그램들은 상호 작동에 문제가 없게 된다.
-
플랫폼과 언어에 독립적이다.
-
HTTP와 같은 웹 프로토콜을 사용하므로 방화벽과 같은 장애에도 문제가 없어 애플리케이션에 대한 접근이 용이하다.
2. 웹 서비스 게이트웨이
웹 서비스 게이트웨이(WebService Gateway, 이하 WSGW)는 웹 서비스 제공자가 Tmax의 서비스를 호출하기 위해서나 Tmax에서 외부의 웹 서비스 제공자의 서비스를 호출하기 위해서 제공되는 게이트웨이 서버이다.
WSGW는 제공자와 요청자의 역할을 수행한다. 웹 서비스 제공자로 기능을 수행하는 경우 Tmax 서비스를 특별한 변경없이 웹 서비스로 사용할 수 있다. HTTP 프로토콜을 기반으로 하는 SOAP 요청 메시지를 처리는 웹 서비스 제공자의 역할을 한다.
WSGW를 실행하기 위해서는 Tmax 환경 파일에 GATEWAY 절에 등록을 해야 하며 부가적으로 웹 서비스 게이트웨이 설정 파일, 서비스 정보 파일이 필요하다.
2.1. 웹 서비스 제공자 기능
웹 서비스 요청자가 보낸 SOAP 요청 메시지가 수신되면 웹 서비스 게이트웨이는 SOAP 메시지를 분석하여 해당하는 Tmax 서비스를 호출하고 그 결과를 다시 SOAP 메시지로 만들어서 요청자에게 보내게 된다.
웹 서비스 제공자 기능을 하는 WSGW가 동작하기 위해서 사용하는 유틸리티는 tmmbfgen, untmmbfgen, xwsdlgen이 있다. 서비스의 동작을 위해서 Tmax 환경설정 파일, 웹 서비스 게이트웨이 설정 파일, 서비스 정보파일(서비스 정보 바이너리 파일), WSDL 파일을 설정해야 한다.
다음은 웹 서비스 제공자 기능을 하는 WSGW 동작 구조이다.
-
서비스 정보 파일을 작성한다.
-
tmmbfgen으로 서비스 정보 바이너리 파일을 생성한다.
-
웹 서비스 게이트웨이 설정 파일을 작성한다.
-
Tmax 환경설정 파일에 웹 서비스 게이트웨이를 설정한다.
-
Tmax를 재부팅하거나 tmadmin에서 wsgwreload 명령어를 입력하여 웹 서비스 게이트웨이를 실행시킨다.
-
xwsdlgen으로 wsdl 문서를 생성하여 서비스 요청자에게 제공한다.
-
서비스 요청자는 wsdl 문서로 클라이언트 애플리케이션을 생성한다.
2.2. 웹 서비스 요청자 기능
Tmax에서 외부 웹 서비스를 제공하는 제공자에게 서비스를 요청하기 위한 기능으로 동작한다.
Tmax 클라이언트나 서버에서 웹 서비스 게이트웨이에 할당한 서비스를 호출할 때 요청 메시지는 웹 서비스 게이트웨이를 통해서 제공자(WAS와 같은)에게 SOAP 메시지를 전달한다. WSGW는 요청이 있을 때마다 제공자에게 연결을 맺고 메시지를 수신할 때 요청을 종료한다.
웹 서비스 요청자 기능을 하는 WSGW가 동작하기 위해서 사용하는 유틸리티는 tmmbfgen, untmmbfgen, xwsdlgen이 있다. 서비스의 동작을 위해서 Tmax 환경설정 파일, 웹 서비스 게이트웨이 설정 파일, 서비스 정보 파일(서비스 정보 바이너리 파일)을 설정해야 한다.
다음은 요청자 기능을 하는 WSGW이 동작 구조이다.
-
서비스 정보 파일을 작성한다.
-
tmmbfgen으로 서비스 정보 바이너리 파일을 생성한다.
-
웹 서비스 게이트웨이 설정 파일을 작성한다.
-
Tmax 환경설정 파일에 웹 서비스 게이트웨이를 설정한다.
-
Tmax를 재부팅하거나 tmadmin에서 wsgwreload 명령어를 입력하여 웹 서비스 게이트웨이를 실행시킨다.
-
Tmax 클라이언트와 서버에서 웹 서비스를 호출한다.