Jason's Beyond Right
SOA구축을 위한 구현 기술: Web Service 본문
<Source. /blog.naver.com/jirubak/60021839370 at 2006/04/23>
SOA는 기존 운영중인 이기종 리거시 시스템들과 신규 개발될 또다른 리거시 시스템들을 경쟁환경의 변화와 요구사항에 맞춰 손쉽게 재구성하여 운영할 수 있는 프레임웍을 말한다. 이러한 프레임웍을 구현하기 위해서는 이기종 환경하에서 구현된 서비스들간의 투명한 연결이 필요하다.
CORBA
기존의 이러한 목적을 위한 방법으로는 마이크로소프트의 DCOM과 OMG의 표준인 CORBA를 들 수 있다. 특히 CORBA는 산업계 표준으로 모든 플랫폼상의 분산 객체간의 호환을 제공하기 위해 IIOP(Interner Inter-Orb Protocol)을 지원한다. 하지만 현재 이러한 CORBA는 웹 환경하에서 응용 프로그램을 구축하고 전개하는 컴포넌트로서 다양한 곳에서 만날 수 있다. 가령, HTTP서버와 통합되어 WAS(Web Application Server)에서 CORBA의 기능을 만날 수 있다. CORBA는 실제 산업계의 표준이었지만 MS가 참여하지 못했으며 개발이 어렵다는 한계를 포함하고 있다. 특히, 객체간의 통신이 객체 참조자라는 프로그램 인스턴스를 주고받기 때문에 실제 다양한 플랫폼상에서 이를 처리하고 교환하는 데 많은 한계를 갖을 수 밖에 없다.
XML+HTTP
만일 이런 한계를 극복하기 위한 방법이 무엇일까? 바로 XML로 서비스를 주고 받는 것이다. XML 형태로 서비스를 요청하고 그 결과를 다시 XML로 전달한다면 플랫폼은 아무 문제도 되지 않는다. 또한 이러한 XML을 HTTP를 통해 교환한다면 플랫폼에 상관없이 서비스를 연계할 수 있는 가장 좋은 방법이 된다.
바로 이 방법이 SOA를 구현하는 데 있어 가장 기본이 되는 구현전략이다. 서로 다른 운영체제, 서로 다른 언어로 개발된 서비스들 간에 요청을 HTTP를 기반으로 한 XML형태로 주고 받는 것이다. 이러한 XML-HTTP 라는 기본 형태를 좀 더 가공한 형태가 존재한다. 가장 일반적으로 Web Service라고 알려져 있는 방법이 대표적이다.
SOAP Web Service = SOAP+UDDI+WSDL
Web Service는 XML형태의 메세지 통신을 담당하는 SOAP(Simple Object Access Protocol , 서비스들의 디렉토리 서비스를 담당하는UDDI(Universal Description, Discovery and Integration), 서비스의 사용을 기술하는 명세 양식인WSDL(Web Service Description Language) 이라는 요소들로 구성되어 있다.
SOAP은 현재 1.2이며 W3C XML protocol working group에서 관리하는 표준이다. SOAP은 실제 이름과 달리 객체에 대한 접근을 제공하는 것이 아니라 HTTP를 통해 XML형태의 메세지 통신을 담당한다. SOAP에서 XML 메세지는 header와 body로 구성되어 있는 envelop 내에 담겨진다.
일반적으로 SOAP은 기존의 IIOP와 RMI보다 10개 가량 느리다고 알려져있다. 왜냐하면 XML 포맷의 크기때문이다. 따라서 가능한한 작게 메세지를 쪼개서 사용하는 것이 유리하다.
SOAP의 대안으로는 XINS,Burlap,GXA,XML-RPC,BEEP,SSH,REST 등이 있으며 이중에서 REST가 가장 많이 사용된가. 국내에서는 egloos.com의 API가 XML-RPC로 되어 있다.
Representational State Transfer (REST) Web Service
REST는 HTTP 프로토콜의 특징인 stateless 메세지 방식과 통신 프로토콜인 GET/POST/PUT/DELETE , 그리고 리소스 표기 방식인 URI , 하이퍼미디어 방식인 HTML,XML 로 인해 이미 확장성 등 웹 서비스를 구현하는 데 필요한 모든 것을 갖고 있다고 판단한다. 따라서 REST는 별도의 추가적인 기능이나 모델없이 URL로 명기된 자원을 HTTP를 조작할 수 있다. 현재 Amazon,eBay,Bloglines,Yahoo!,Openomy,Blogsphere에서 이미 REST 방식의 개발자 인터페이스를 제공한다. 또한 thinkfree의 Open Web Office의 인터페이스도 REST 방식으로 제공하고 있다.
BPEL4WS(Business Process Execution Language for Web Services)
앞서 구현방법을 통해 구현한 웹서비스들은 1번의 호출을 그 전체로 한다. 다시 말해, 한 서비스가 다른 서비스를 호출하고 다시 다른 서비스를 호출하고 그 결과는 다른 서비스에 보내는 등 서비스들간의 호출 규칙,즉 실세계에서의 비지니스 업무를 수행하기 위한 프로세스가 발생하는 것이다. 이러한 웹 서비스간의 프로세스를 정의하는 언어로 IBM의 WSFL, MS의 XLANG, HP의 WSCL 등이 제안되었고 이 후 MS안과 MS안을 합병하여 BPEL4WS를 만들었다. 현재 IBM,BEA 등 SOA 솔루션 개발 업체에서는 비쥬얼한 BPEL 개발 툴과 관리툴을 제공한다.
실제 SOA를 구현하기 위한 개발 방법은 어려운 것이 아니다 오히려 중요한 것은 SOA를 전개하기 위한 전략과 전술, 운운영 방안 등이 보다 중요하며 구현 과정에 있어 중요한 것은 객체,컴포넌트,서비스로 이어지는 인터페이스를 이해하고 SOA의 구현 전략에 맞는 공용 인터페이스를 설계하고 유지,관리하는 것이다.
'Information Tech. > Solution' 카테고리의 다른 글
Communication Open API (0) | 2010.09.02 |
---|---|
아마존과 SOA (0) | 2010.09.02 |
Service Oriented Architecture에 대한 고찰 (0) | 2010.09.02 |
3D CAD solution (2) | 2010.09.02 |
X-Internet brief (0) | 2010.09.01 |