웹 서비스(Web Service) 소개 및 기본구현 |
웹서비스(Web Services)는 웹으로 제공되는 메소드 서비스이다. 여기에서 웹은 인터넷 사이트이며 서비스는 특정한 기능, 예를 들어 항공권 예약, 인터넷 배팅, 쇼핑 및 조달 구매 등을 의미한다. 지금까지는 사이트에 접속해서 지정한 양식에 맞게 정보를 입력하고 한 가지 일을 처리하고 나서 다른 사이트로 이동하는 식의 작업을 반복했다. 그러나 웹서비스는 제공하는 사이트에 필요한 값(웹서비스 메소드의 매개변수)을 XML 형식으로 보내주면 마친 결과가 웹페이지가 나타난다.
웹서비스는 표준 인터넷 프로토콜을 사용하여 액서스 할 수 있는 일종의 메소드로서 프로그램 코드에서 그러한 메소드로서 프로그램 코드에서 그러한 메소드를 사용할 수 있다. 웹서비스는 구성 요소를 이용한 개발과 웹 방식의 장점을 결합한 것이다. 웹서비스도 구성 요소처럼 서비스 구현을 위한 재사용 방식을 이용할 수 있다. 다시 말해서, 자주 사용되는 웹서비스를 만들어두면 다른 웹페이지를 만들 때 사용할 수 있다. |
웹서비스의 고려사항 |
다음의 두 가지 경우를 생각해 보자. 다음 2가지는 시스템 구현시 한번쯤은 생각해 볼 수 있는 부분이 일 것이다. 조건1) 두 사이트 혹은 하나의 사이트와 다중의 클라이언트들은 서로 간에 많은 데이터들은 인터넷을 통해 손쉽게 교환해야 한다. 조건2) 데이터 교환의 매개는 어떤 클라이언트건 간에 플랫폼과 데이터 형식의 제한을 받지 않고 사용할 수 있어야 한다. |
(조건1)에 대한 해결방안으로 네트워크 내부의 데이터 교환에 있어서 아무런 제약 조건 없는 통신 프로트콜의 선정을 가장 먼저 생각해 볼 수 있다. 그러나 불행히도 보안상의 문제로 방화벽이나 프록시 서버를 설치하여 HTTP가 통신할 수 있는 80포트와 이메일 전송을 위한 포트를 제외한 대부분의 포트를 봉쇄하고 있는 추세이다. 그러므로 표준 프로트콜인 HTTP를 이용해야 한다.
(조건2)를 해결하기 위해선 어떠한 플랫폼과 데이터베이스와도 종속적이지 않은 독립적인 데이터 교환수단이 필수적이다. 이러한 문제점을 해결할 수 있는 기술로 XML(Extensible Markup Language)이 있다. XML은 데이터의 조직화를 보다 쉽게 이루어 낼 수 있음은 물론 텍스트 기반이므로 쉽게 가공할 수 있다는 장점을 가지고 있다. 따라서 HTTP 프로트콜을 사용하면서 XML로 데이터를 전송하는 방식을 사용해야 한다. |
웹서비스의 특징 |
1) 방화벽 같은 특수한 환경적 제약을 받지 않고 표준 프로트콜을 HTTP를 이용해서 원격지의 웹서비스를 호출할 수 있다. 2) 인터넷을 통해 애플리케이션들이 서로 통신하고 데이터를 교환할 수 있는 환경을 제공한다. 3) 특정 언어에 종속되지 않는 언어 독립성(Language Independent)을 제공한다. 4) 서비스 호출을 위해서 특정 프로토콜을 사용하지 않고 표준 프로토콜을 사용하므로 독립성(Protocol Independent)을 제공한다. 5) XML을 기반으로 특정 운영체제나 플랫폼에 종속되지 않는 플랫폼 독립성(Platform Independent)을 제공한다. |
웹서비스 실행 모델 |
1) 다이렉트 클라이언트(Direct Client) 클라이언트가 웹서비스를 직접 요청하는 방식이다. 클라이언트가 웹 브라우저를 이용하여 주소를 입력하여 웹서비스를 요청하게 되면, 제공 서버는 요청받은 서비스에 대한 설명을 클라이언트에게 전송을 하고, 클라이언트는 서비스의 설명을 읽고 필요한 파라미터 등을 입력해서 웹서비스를 HTTP GET방식으로 요청한다. 따라서 웹서비스가 호출되고 실행된 결과는 XML로 클라이언트에게 전송된다. |
|
2) 프록시 클라이언트(Proxy Client) 웹 애플리케이션 내에서 웹서비스를 호출하는 방법으로 간접적으로 웹서비스를 호출하게 되며 클라이언트는 요청에 의한 결과가 웹서비스에 의해서 얻어 결과인지는 알지 못한다. 웹 애플리케이션에서 웹서비스를 사용하는 경우 웹 서버에는 웹서비스 호출과 처리를 위한 프록시가 생성된다. 웹 서버와 웹서비스 제공 서버 사이에는 SOAP을 이용해서 웹서비스가 호출되고 실행 결과 값을 전송하게 된다. |
|
SOAP(Simple Object Access Protocol) |
SOAP은 정보 교환을 위한 프로토콜이다. SOAP 사양에는 XML과 관련된 규칙이 정의되어 있다. 또한 확장 가능한 메시지 형식이나 SOAP 메시지 형식을 사용하여 RPC(원격 프로시저 호출)를 나타내는 규칙과 HTTP 프로토콜에 바인딩 하는 방법도 정의되어 있다. 인터넷을 통하여 웹 애플리케이션과 워도 애플리케이션은 모두 웹서비스를 사용할 수 있으며 웹서비스는 또 다른 웹서비스를 사용할 수도 있다. 즉, 인터넷상에서라면 어떠한 애플리케이션도 모두 웹서비스를 통하여 통합될 수 있는 것이다. 이 모든 일련의 과정들의 메시징 처리에는 XML로 규약 된 SOAP이 사용되며 메시징 전달의 매개로는 HTTP 표준 프로트콜이 사용된다. |
|
WSDL(Web Services Description Language) |
WSDL(웹서비스 계약 설정을 위한 표준 언어)은 마이크로소프트와 IBM에서 개발한 XML 기반의 계약 언어로서, 웹서비스가 주어지면 웹서비스에서 수락하고 생성하는 메시지가 어떤 것인지 표준화하여 문서로 만든다. 즉 제공자와 사용자의 규칙인 웹서비스 계약을 문서화하는 표준방법이다.(Visual Studio.NET에서는 웹서비스를 만드는 개발자 도구에서 WSDL을 지원) |
UDDI(Universal Description, Discovery, Integration) |
우리가 웹서비스를 사용함에 있어서 가장 먼저 접하게 되는 문제는 필요로 하는 기능을 제공해주는 웹서비스가 어디에 있느냐 것이다. 예를 들어 주식정보를 웹서비스로 제공하는 공급자가 있다고 하더라도 소비자 입장에서는 그 사실을 알 수 없다. 이를 위해서 제공되는 서비스가 UDDI이다. UDDI(웹서비스 검색 기술)에는 웹서비스 공급자가 자신의 웹서비스를 광고하고 웹서비스 소비자는 관심 있는 웹서비스를 찾을 수 있게 하는 기술이다. UDDI를 활용하면 사용하려는 웹서비스에 대한 주소를 모르더라도 일정한 조건으로 검색해서 필요한 웹서비스를 사용할 수 있다. |
• http://www.salcentral.com • http://uddi.microsoft.com |
|
|
'SOAP' 카테고리의 다른 글
JAVA로 SOAP 구축 관련 자료들 (0) | 2011.04.05 |
---|---|
JAVA로 SOAP 구축하기(3) (0) | 2011.04.05 |
JAVA로 SOAP 구축하기(2) (0) | 2011.04.05 |
JAVA로 SOAP 구축하기(1) (0) | 2011.04.05 |
[SOAP강좌] Java 서버 - Delphi 클라이언트 (0) | 2011.04.05 |