SOA로 가는길 - 2. SOA란 무엇인가? (1)

2.1 서비스 지향 아케텍쳐의 정의, 그리고 이점
이와 같이 서비스 지향 개념을 기반으로 소프트웨어 시스템을 구축하고자 하는 노력을 총칭하여 서비스 지향 아키텍쳐(service-oriented architecture, SOA)라고 한다. SOA에 대한 정의한 관점에 따라 다양하게 존재한다.


여러 SOA에 대한 정의 중에서 필자가 가장 마음에 드는 것은, Service-Oriented Architecture Compass(2006, Norbert Bieberstein 외, IBM press)의 것이다.
"서비스 지향 아키텍쳐는 비즈니스 프로세스와 그것을 지원하는 IT 기반 구조를 안전하고 표준화된 컴포넌트-서비스로 통합하기 위한 프레임워크이며, 이들 서비스는 변화하는 비즈니스 우선순위를 해결하기 위해 재사용하고 결합된다."


SOA에 대한 가장 많은 정의는 아키텍쳐와 구현 기술 관점에서 바라보는 것이다.


아키텍쳐 관점에서는 개방형 표준(open standard)을 따라 자치적인 서비스(autonomous service)가 메시지 기반(message-based)으로 서로 커뮤니케이션하도록 소프트웨어 시스템을 설계하는 방식을 정의하는 아키텍쳐적인 원리와 패턴을 포함하는 일종의 아키텍쳐 스타일(archirectural style)로 SOA를 정의한다. 이 관점에서 SOA는 다음과 같이 서비스 공급자(service provider)와 소비자(service consumer), 그리고 서비스 브로커(service broker) 등 3개의 주요 요소로 구성된다.

 

 

구현 기술 관점에서 SOA는 웹서비스(web services)와 같은 표준(standard)이나 도구(tool), 기술(technology)로 완성되는 프로그래밍 모델(programming model)이다. 즉, 웹서비스가 SOA의 구현이 된다.

 

그 이전에도 SOA의 구현은 있었다. CORBA(common object request broker architecture)나 DCOM(distributed component object model), Java RMI(remote method invocation) 등이 바로 그것이다. 그러나 이들 기술은 모두 SOA의 이상을 구현하기에는 부족한 점이 많았다. 서로 다른 그룹의 사람들이 서로 다른 장소에서, 서로 다른 시간에, 서로 다른 플랫폼 상에서 애플리케이션을 생성하는 경우에 이들 애플리케이션의 통합이 어렵기 때문이다. 하지만 이제 우리는 웹 서비스의 등장으로 SOA의 이상을 실현할 수 있게 되었다.


여기에서 주목할 만한 하나의 사실은 전 세계의 소프트웨어 기술을 주도하는 대부분의 벤더들이 처음으로 하나의 표준 즉, 웹 서비스에 동의했다고 하는 사실이다. 이것은 향후 기업에서 어떤 기술을 사용하여 소프트웨어 시스템을 구현하든 지금까지 변화에 대한 대응의 걸림돌로 작용하였던 상호운영성을 손쉽게 확보할 수 있다는 것을 의미한다.


그러나 보다 중요한 것은 SOA가 비즈니스 관점에서 어떤 의미를 가져다 주는 가이다.

비즈니스 관점에서 SOA는 비즈니스가 자신의 클라이언트나 파트너, 또는 다른 조직에게 노출하기를 원하는 비즈니스 서비스(business service)의 집합으로 이해할 수 있다. 다시 말하면 기업 내 여러 시스템에 분산되어 있는 비즈니스 서비스를 해체하여, 여러 시스템에서 공유할 수 있는 공유 비즈니스 서비스(shared business service)로 통합하는 것이다.


다음 그림은 생명보험사의 영업 채널 시스템의 아키텍쳐 예를 보여준다.

대부분의 생명보험사는 여러 영업 채널을 가동한다. 그리고 이들 각 영업 채널마다 각기 독립적인 시스템을 구현하고 있으며, 이들 각 영업 채널 시스템은 고객관리, 상품고나리, 청약관리, 얻더라이팅 등의 유사한 기능을 포함하고 있다. 다만 각 영업 채널의 정책에 따라서 관리되는 비즈니스 로직과 데이터의 형식이 조금씩 다를 뿐이다. 이와 같은 아키텍쳐에도 장점이 있다. 각 태널 시스템마다 특화되고 최적화된 기능을 제공할 수 있다는 것이다.


그러나 생명보험사 전체의 관점에서 본다면 여러가지 문제점을 노출한다. 가령 어떤 한 영업 채널이 아니라 생명보험사 전체에 걸쳐 정책이 변경된다면, 각 채널 시스템을 모두 변경해야만 한다. 이것은 정책 변경에 민첩하게 대응하지 못한다는 것을 의미한다. 또한 보험사 전체의 관점에서 본다면, 하나의 채널 시스템에 구현된 기능을 다른 채널 시스템에서 재사용하지 못함으로써 중복하여 투자를 하게 되는 셈이다. 영업 정책이 변경되어 또 다른 영업 채널이 추가된다면 어떨까? 또 하나의 영업 채널 시스템을 구축하는데 다시 많은 시간과 돈이 투자되어야만 할 것이다. 그리고 그 사이에 고객은 다른 생명보험사로 옮길 수도 있고, 또 다시 영업 정책이 변경될 수도 있다.


그렇다면 어떻게 하면 변화에 민첩하게 대응할 수 있고, 이미 구현된 기능을 재사용함으로써 중복된 투자를 제거할 수 있을까? 이 질문에 대한 해답을 SOA가 제공한다. 다음 그림은 SOA를 적용한 생명보험사의 아키텍쳐를 보여준다.

 

 

앞에서 SOA란 기업 내 여러 시스템에 분산되어 있는 비즈니스 서비스를 해체하여, 여러 시스템에서 공유할 수 있는 공유 비즈니스 서비스(shared busienss service)로 통합하는 것이라고 하였다. 생명보험사의 예에서는 위의 그림과 같이 각 채널 시스템에 분산되어 있는 고객관리, 상품관리, 청약관리, 언더라이팅서비스 등의 공유 비즈니스 서비스로 통합시킨다. 이제 생명보험사 전체에 걸쳐 정책이 변경될 때 통합된 공유 비즈니스 서비스를 변경하기만 하면 모든 영업 채널 시스템에 신속하여 변경된 정책을 반영할 수 있게 된다. 또한 새로운 영업 채널이 추가되는 경우에도 이미 구현되어 있는 공유 비즈니스 서비스를 재사용함으로써 중복된 투자없이 신속하게 새로운 영업 채널 시스템을 구축할 수 있게 된다.


이와 같이 SOA를 적용함으로써 비즈니스에 단일화되고 작업 중심적인 뷰(unified, task-oriented view)를 제공할 수 있게 되고, 불투명한 블랙박스(black-box)시스템을 '비즈니스 투명성(business transparecy)'을 제공하는 하부 구조로 손쉽게 대체할 수 있게된다. 따라서 기업은 변화에 대하여 민첩하고 유연하고 효과적으로 대응할 수 있게 된다.

 

[출처: 06/04/29 MSDN 세미나 - 전병선]

by 내다 | 2008/07/16 18:14 | programming | 트랙백 | 덧글(0)

트랙백 주소 : http://cooljohn.egloos.com/tb/4491965
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]

:         :

:

비공개 덧글

◀ 이전 페이지 다음 페이지 ▶