웹 서비스는 SOA 구현에 적합한 기술입니다. 근본적으로 웹 서비스는 자기 기술 형(self-describing) 모듈 식 애플리케이션으로서, 인터넷을 통해 게시, 검색 및 호출 가능한 서비스 형태로 비즈니스 로직을 공개합니다. XML 표준을 바탕으로 웹 서비스는 느슨하게 결합된 애플리케이션 컴포넌트 형태로 개발할 수 있습니다. 프로그래밍 언어, 프로토콜 또는 플랫폼의 제한이 없습니다. 이러한 개발 모드에서는 언제 어디서나 누구든지, 어떤 플랫폼을 사용하더라도 접근 가능한 서비스 형태로 비즈니스 애플리케이션을 공급할 수 있습니다. 물론 웹 서비스가 SOA 구현에 사용 가능한 유일한 기술은 아닙니다. 다른 기술을 이용해 SOA를 성공적으로 구현한 예도 많습니다. 또한 서비스 지향적이지 않은 아키텍처 구현에 웹 서비스를 사용한 경우도 있습니다.


SOA는 미래의 IT 인프라에 대한 청사진입니다. SOA는 서비스를 이용해 전사적 IT 인프라가 어떻게 설계되어야 하는가에 대한 지침을 제시함으로써, 웹 서비스가 제공하는 가치를 확장합니다. IBM은 SOA 도입의 4가지 단계를 정의합니다.
- 개별 웹 서비스 구현 - 신규 또는 기존 애플리케이션에 포함된 태스크로부터 서비스를 생성합니다.
- 비즈니스 기능의 서비스 지향적 통합 - 비즈니스 목표를 지향하면서 사내 외 여러 애플리케이션을 망라해 서비스를 통합합니다.
- 전사적 IT 변환 - 아키텍처에 바탕을 둔 구현으로 전사적으로 여러 비즈니스 기능을 망라해 통합을 실현합니다.
- 온 디맨드 비즈니스 변환 - 기존 비즈니스 모델 또는 운용된 새 비즈니스 모델을 광범위하게 변환합니다.
웹 서비스와 SOA에서는 운영 체제 플랫폼이나 구현 언어와 상관 없이 상호 운용 가능한 애플리케이션 통합의 걸림돌을 줄이거나 제거하는 데 중점을 둡니다. 다음은 웹 서비스와 SOA의 가장 대표적인 특징을 요약, 집중 조명한 것입니다.
컴포넌트화
SOA에서는 소프트웨어가 서비스라는 컴포넌트로 캡슐화되는 시스템 개발 방식을 채택합니다. 서비스는 게시된 인터페이스에 부합하는 메시지 교환을 통해 상호 작용합니다. 예비 사용자는 서비스가 지원하는 인터페이스에만 신경을 쓰면 됩니다. 서비스 자체의 구현 세부 사항은 모든 서비스 사용자들이 알 필요가 없습니다.
플랫폼 독립성
SOA에서 구현 세부 사항은 숨겨지므로, 프로그래밍 언어, 플랫폼 및 기타 구현 세부 사항과 상관 없이 서비스를 결합하고 조정할 수 있습니다. 웹 서비스는 다양한 전송 프로토콜을 통해 소프트웨어 컴포넌트에 대한 액세스를 제공하므로, 소프트웨어 컴포넌트에 액세스할 수 있는 채널 수가 크게 늘어납니다.
투자 보호
컴포넌트화 및 캡슐화의 이점 중 하나로, SOA 내부에서 웹 서비스 기술을 이용하여 기존 소프트웨어 자산을 서비스 형태로 공개할 수 있습니다. 이렇게 공개되는 기존 소프트웨어 자산은 SOA에 참여하기에 적합한 서비스 형태로 확장, 재 분해되고 변경됩니다. 이러한 재활용을 통해 비용을 절약하고 기존의 투자 환경을 보호할 수 있습니다. 웹 서비스가 채택하는 점진적인 접근 방식 덕분에 기존 솔루션을 걷어내고 교체할 필요가 없습니다.
느슨한 결합
컴포넌트화의 또 다른 이점은, SOA 방식에서 서비스 간의 느슨한 결합을 장려하므로 서비스 간의 전제 조건 및 요구 조건이 줄어든다는 것입니다. SOA 시스템 전체의 정상적인 활동을 중단하지 않고서도, 구현된 개별 서비스를 대체하고 장기적으로 발전시킬 수 있습니다. 따라서 느슨하게 결합된 시스템에서는 변경 사항이 컴포넌트의 내부 구현에 미치는 영향을 격리하고 컴포넌트의 재사용을 촉진시킴으로써 전반적인 개발 및 유지 보수 비용이 절약되는 편입니다.
분산 컴퓨팅 표준화
웹 서비스는 현재 분산 컴퓨팅 기술의 진보와 관련하여 추진되는 표준화 이니셔티브 중(대부분은 아니더라도) 상당수에서 중추 역할을 맡고 있습니다. 뿐만 아니라 컴퓨터 업계의 연구 개발 작업 중 상당 부분이 웹 서비스를 중심으로 수행되는 중입니다.
업계에서의 폭 넓은 지원
핵심적인 웹 서비스 표준(SOAP, WSDL, XML 및 XML 스키마)은 대표적인 소프트웨어 벤더 모두에서 보편적으로 지원하고 있습니다. 이 보편적인 지원 덕분에 서비스 지향적 애플리케이션 구축 시 사용할 미들웨어 및 툴 제품에 대해 폭 넓은 선택의 기회가 주어집니다.
조립성 (ComposabiLIty)
웹 서비스 기술은 설계자가 구성(Composition)을 통해 각기 다른 기능을 혼합하고 대응시킬 수 있도록(Mix and Match) 설계되었습니다. 예를 들어, 메시지 수준의 보안이 필요한 시스템에서는 웹 서비스 보안 표준을 활용할 수 있습니다. 메시지 수준의 보안이 필요하지 않은 시스템은 그 메시지를 서명하거나 암호화하는 데 따르는 복잡성과 오버헤드를 감수할 필요가 없습니다. 이러한 구성 방식은 메시지, 트랜잭션 등의 안정적인 전달 등 QoS(QuaLIty of Service)의 모든 측면에 적용됩니다. 조립성 덕분에 웹 서비스 기술은 필요한 기능만 구현되는 방식으로 다양한 사용 시나리오에서 일관성 있게 적용될 수 있습니다.
웹 서비스 기술과 SOA 접근 방식을 적절히 결합한다면 SOA 지원 환경 구축에서 발생하는 여러 문제를 해결 할 수 있습니다. 웹 서비스와 SOA는 개별 구현이 가능하므로 본질적으로 연계되지는 않습니다. 실제로 중요한 SOA 중 상당수는 안정적인 메시징 및 EAI(Enterprise AppLIcation Integration) 미들웨어(예: WebSphere MQ, WebSphere Business Integration Message Broker)를 기반으로 하는 고유한, 즉 맞춤형 구현이며, 웹 서비스 기술을 사용하지 않습니다. 뿐만 아니라 기존의 웹 서비스 대부분은 정의된 협력 파트너들 사이에서 한정된 비즈니스 기능의 집합을 다루는 Point-to-Point 통합으로 구성되었습니다.
그러나 기존의 SOA 구현에서는 주로 단일 기업 환경에서 SOA의 이점이 입증되었으며, 기존의 웹 서비스 사용 사례에서는 조직 내부 및 조직 간에 이 기종 시스템을 통합할 경우 웹 서비스 기술이 제공하는 이점이 입증된 바 있습니다. 커스터마이즈 방식을 적용한다면 이기종 문제를 해결해야 합니다. 독점적인 기술 방식을 적용한다면 단일 IT 벤더에 구속되는 문제가 생깁니다. 웹 서비스와 같은 표준 기반 방식을 도입한다면 이러한 문제에 대한 해결책이 마련될 수 있습니다.
웹 서비스와 SOA 간의 논리적인 연결 고리는 이들이 상호 보완적임을 암시합니다.
웹 서비스는 서비스 인터페이스에 대해 명시적이고 구현 독립적인 스펙을 생성하는, 공개 표준에 바탕을 두고 기기에서 판독 가능한 모델을 제공합니다.
웹 서비스는 위치 투명성과 상호 운용성을 갖춘 통신 메커니즘을 제공합니다.
WS-BPEL(구 BPEL4WS), 문서 스타일 SOAP, WSDL 및 새로운 기술(예: WS-ResourceFramework)을 통해 발전 중인 웹 서비스는 재사용 가능한 기능을 유연한 방식으로 캡슐화, 모델링 하는 잘 설계된 서비스의 기술적 구현을 뒷받침합니다.
웹 서비스와 SOA가 결합하면 온 디맨드 환경을 구축하는 과정에서 겪게 되는 많은 기술적 문제를 해결할 수 있습니다. SOA와 웹 서비스는 종종 미래 시스템 통합의 방향으로 함께 제시되곤 합니다. 그러나 웹 서비스의 WSDL이 SOA에서 인터페이스가 의미하는 바를 모두 규정하지 않음에 유의해야 합니다. WSDL에서는 서비스 수준 또는 선행 및 후행 조건을 지정하지 않습니다. BPEL4WS가 이와 같은 역할을 해낼 수 있지만, 요구 사항의 부분 집합(예: 프로세스 모델)으로 한정됩니다. 모든 SOA 프로젝트는 표준 프로젝트 문서화, 맞춤 서비스 스펙 또는 다른 어떤 수단을 통해 이 약점을 해결해야 합니다.
SOA와 웹 서비스는 비즈니스 기능을 서비스 형태로 공개하는 방식에 부합하는 모델을 통해 더 유연하고 빠르며 보편적인 통합을 실현할 새로운 기회를 제시합니다. SOA와 웹 서비스는 이러한 서비스를 모델링, 실행 및 모니터링 가능한 프로세스로 구성합니다. 이러한 기법 및 기술은 유연한 SOA를 구현하고 온 디맨드 비즈니스 모델을 향해 발전하는 데 필요한 수단이 됩니다. 그러나 SOA는 어떤 기술이나 제품이 아니라 아키텍처 방식 중 하나입니다. SOA를 구현하기 위해서는 ESB와 같이 이 아키텍처를 지원할 인프라가 필요합니다.

