잘 알려지지 않았지만, MSE는 마이크로소프트가 SOA 영역, 특히 SOI (Service Oriencted Infrastructure) 영역에서 자신있게 내세우고 있는 서비스 가상화 솔루션으로 Codeplex를 통해 오픈 소스 (Ms-PL)로 제공하고 있다. MSE는 어느날 갑자기 세상에 나온 것이 아니라, 마이크로소프트 컨설팅 서비스가 다년간 서비스 인프라측면에서 자산으로 발전시키며 컨설팅에 활용해온 것이며 이를 오픈 소스로 공개한 것이다. 많은 mission-critical 시스템 구축에 사용되어 그 가치가 입증되었으며 현재 Codeplex에 공개된 최신 버전이 무려 7.0.0.6이다.
MSE는 외부로 노출된 서비스가 버전 업이 되면서 이전 wsdl 기반의 고객과 새로운 wsdl 기반의 고객이 아무 불편함이 없이 서비스를 받을 수 있도록 중간에서 서비스 버전닝을 제공하는데 이 또한 구성의 변경을 통해서 가능하게 한다. 또한 이전에 없던 새로운 정책을 일괄적으로 노출된 서비스들 즉, 시스템 전체 혹은 endpoint 레벨로 혹은 더 세밀하게 Operation 단위로 적용하고자 할 경우에도 구현에는 전혀 변경이 없으면서 drag-and-drop을 통해 정책을 강제할 수 있도록 WS-Policy를 지원하고 있다.
MSE는 위 그림에서 보듯이 사용자의 요청에 대해 적절한 타겟으로 서비스를 전송하기 위해 Messenger, Broker, Dispatcher로 구성되어 있으며 SQL Server 2005/2008을 Service Catalog로 사용하며 관리도구는 WPF로 구현되어 있다. (즉, MSE 설치시 관리도구를 선택하면 .NET Framework 3.5 SP1을 요구한다.) 실질적인 엔진은 설치와 함께 설치되는 MSE Catalog Service와 MSE Runtime Service이며 이들은 윈도우 서비스 형태로 구동되어 가상화 기능을 제공한다. 아래 그림과 같은 MSE 관리도구는 MSE Catalog Service에 접속하여 등록되어 있는 각 요소들과 기본 제공 요소들, 가령 각종 binding이나 정책들을 보여주며 이들을 이용하여 외부에 노출될 새로운 endpoint를 손쉽게 작성하게 한다.
아래와 같이 WCF로 구현된 서비스가 있을 경우, (이는 설치와 함께 제공되는 샘플이다.)
관리도구에서 wsdl을 통해 해당 서비스를 읽어 들일 수 있다. 또한 REST 기반의 웹 서비스도 가능하며 추후 데이터베이스에서 노출된 웹 서비스도 직접 읽어들일 수 있게 할 예정이다.
읽어들인 서비스의 개별 기능들을 원하는 조합으로 엮어 아래와 같이 Endpoint를 작성할 수 있다. 즉, 실제 서비스되고 있는 구현체의 포트나 URL과는 전혀 상관없는 임의의 포트와 URL을 주어 서비스 레이어를 구현체와 분리시켜 관리하는 것이다.
이렇게 drag-and-drop을 통해 서버단의 여러 서비스들로부터 조합된 새로운 endpoint가 MSE Messenger기능을 통해 외부로 노출되는 것이며, MSE는 이렇게 노출된 서비스를 테스트할 수 있는 테스트 클라이언트도 제공하고 있다.
웹 서비스 몇 개 노출시키는 것이 전부인 경우나 배치 작업과 같이 서버의 프로세싱이 전부인 경우 MSE를 적용하는 것은 무의미하다. 하지만, 서비스 노출하는 수가 증가하고 고객의 요구에 따라 공통 서비스의 버전이 달라지고, 예전에 없던 각종 규제등으로 인해 혹은 비지니스 환경의 변화로 인해 각종 정책을 다운 타임없이 적용하고자 할 경우 MSE는 중요한 역할을 한다. 미국내 많은 mission-critial 시스템의 경우 MSE가 BizTalk 서버 혹은 ESB guidance 와 함께 사용되고 있으며 곧 오픈 예정인 모(某)사의 항공 업무 시스템은 잠깐 동안의 다운타임에도 수백만 달러의 손실을 유발하는 mission-critical한 시스템인데 MSE와 WF/WCF를 이용하여 구축되었다. (Case Study 곧 공개 예정)
아래 그림과 같이사용자의 요청은 서비스 가상화를 제공하는 MSE를 통과하여 routing 기능을 제공하는 ESB 거쳐 실제 서비스 제공자에게 전달된다.
SQL Server 2005 혹은 2008과 .NET Framework 3.5 SP1이 설치되어 있다면, Codeplex에서 MSE를 다운로드 받아 설치해보길 권장하는 바이다. 설치 매뉴얼과 기술 문서가 codeplex에 함께 공유되고 있으며, 설치한 후에는 서너개의 웹 서비스 샘플과 정책 샘플들이 함께 제공되기 때문에 손쉽게 테스트해볼 수 있다.
[업데이트] 2009-03-23
본문에서 언급된 항공사 관련 SOA 적용사례에 대한 정보를 다음 링크에서 확인할 수 있다. EDS가 IBM 솔루션을 걷어 내고 마이크로소프트 닷넷 기반의 솔루션 기반으로 개발하여 오픈한 항공 산업 관련 시스템에 대한 내용을 확인해볼 수 있다.
- Service-Oriented Architecture In the Airline Industry
- Real World SOA 사례
[업데이트] 2009-03-25
읽어볼 만한 서비스 가상화에 대한 짤막한 아티클이 있어 소개한다.
Why Service Virtualization Matters
[업데이트] 2009-04-22
MSDN 매거진 5월호에 MSE 관련하여 "Service Virtualization With The Managed Services Engine"이라는 주제의 글이 게재되었다. 마이크로소프트의 SOA Infrastructure 전략과 연계하여 MSE가 어떤 역할을 하는지, MSE에 대한 간단한 소개 등을 볼 수 있다.
[업데이트] 2010-08-26
현재 Codeplex에 공개된 최신 버전 2009년 12월 CTP 버전으로 v.7.5이다. 마이크로소프트 컨설팅 부서에서 사용하고 있는 최신 버전은 2010년 7월자 v.7.6.1로 확인된다. 조만간 MSDN Code Gallery를 통해 공개되지 않을까 기대해본다. WCF 4.0이 나오고 Windows Server AppFabric이 공개되면서 MSE가 제공하는 기능과 중복되는 일부 기능이 AppFabric에서 제공하고 있어 향후 두 제품(?)의 포지셔닝을 궁금해하는 분들이 있다. 현재 v7.6.1의 Release Note를 보면 Windows Azure platform AppFabric을 지원한다고만 언급되었을 뿐, Windows Server AppFabric과의 관계에 대해서는 나와 있지 않다. 개인적인 의견으로는 Windows Server AppFabric이 MSE의 많은 기능을 흡수하는 것이 바람직할 것으로 생각한다.
댓글을 달아 주세요