최정준 SK C&C 소프트웨어공학센터 팀장

 

현재 SK C&C 소프트웨어공학센터 SOA와 CBD 기술지원 담당 팀장. 주요 관심 분야는 소프트웨어 아키텍처와 서비스 모델링 분야 등이다.

 

초기의 상업화된 컴퓨터는 단일한 기계 박스 안에 CPU가 직접 이해하여 동작할 수 있는 언어로 기술된 프로그램과 이것을 지원하는 운영환경에서 시작하였다. 이때의 프로그램은 현재 메인 프레임이라고 불리는 하드웨어를 직접 다루기 위한 것으로부터 시작되어, 하드웨어제품에 대한 종속성이 매우 높아 폐쇄적이었으며, 거기에 따른 고비용 구조에, 오늘날 같은 소프트웨어 개념도 따로 존재하지 않았다. 이후, 소프트웨어를 통해 기계를 효율적으로 운영하기 위한 운영체계 개념이 등장하게 되고, 다양한 컴퓨터 언어가 개발되면서, 하드웨어와 독립적인 소프트웨어의 개념이 등장하게 된다.

운영체계에서도 하드웨어에 대한 종속성을 최소화한 유닉스 계열의 오픈 시스템이 각광을 받고, TCP/IP로 네트워크 기술이 표준화되면서, PC 자원을 클라이언트로 활용하고, 유닉스 기반의 서버 자원을 원격 호출을 통하여 사용하는 모델이 일반화되게 된다. 이러한 초기의 투티어(2 Tier) 모델이 쓰리티어(3 Tier) 모델로 진화하고, 지금의 분산 환경에서는 엔티어(N Tier) 모델이 매우 일반화되었다.

이처럼 소프트웨어가 탑재되는 티어(Tier)의 갯수가 역할에 따라 분산되어 증가하고, 레이어(Layer)기반의 아키텍처에 따라 다양한 벤더의 솔루션이 혼용돼 활용되고 있다. 따라서, 티어 간 및 레이어 간 다양한 솔루션과 객체들 간의 상호 운영을 위한 기술 표준이 갈수록 중요하게 되었다.

이에 클라이언트 측면의 데이터 표현 기술로 텍스트 기반의 HTML 기술이 사용자와의 상호작용을 담당하는 표준이 되어, 인터넷 프로토콜을 통하여 정규화된 데이터가 전송되게 되었고, 서버 측면에서는 HTML 보다 데이터 표현 능력이 우수한 XML 표준이 채택됐다.

이렇게 볼 때, 하드웨어의 급격한 성능향상에 따른, 소소프트웨어 기술의 변화는 한마디로 추상화 수준과 추상화 레이어 계층의 증가라고 요약할 수 있다. 예로 J2EE, 닷넷 등 하부 인프라 구조의 표준화와 상용 제품(Commercial Off-The-Shelf) 활용 증가 등에 따라, 소프트웨어 개발 활동의 추상화 수준이 점차 높아가고 있으며, 개방형 국제 표준의 확산에 따라

시스템 간 상호 운용성이 점차 제고되어 가고 있다.


SOA는 이러한 분산 객체 컴퓨팅 패러다임의 연장선 상에서 등장하였으며, 객체간 통신 기술의 표준화 측면에서는 XML 기반의 웹서비스가 가장 널리 활용되어 진다.

비즈니스 트렌드 측면에서는 많은 기업들이 경쟁기업으로부터 차별화될 수 있는 핵심 역량을 규정하고, 핵심 역량 이외의 지원 기능은 자체 운영보다는, 가격 경쟁력 있는 서비스 제공자에게 아웃소싱 하는 추세가 일반화되고 있다. 실례로 국내외의 경우, 대규모 전산 자원의 개발과 운영을 더 이상 기업 내 전산실에서 자체적으로 모두 처리하지 않는다거나, 미국 기업들이 콜센터나 빌링 서비스 등을 인도나 필리핀 등 역외로까지 오프쇼어(OffShore) 아웃소싱하는 것 등이 그 전형적인 예라고 볼 수 있다. 이처럼 비즈니스 실행의 효율화를 통한 경쟁력 제고를 위해 비즈니스 가치 사슬(Value Chain)이 해체되어 서비스화되고, 소수의 핵심 가치를 가진 서비스를 중심으로 기타 지원 서비스들이 잘 정의된 계약 관계에 의해 느슨하게 연결되는 구조로 변해가고 있다.

넓게 보면 이렇게 서비스화되어 가는 비즈니스 생태계의 움직임을 모방하여, IT의 아키텍처(구조)를 서비스 중심의 비즈니스의 구조에 맞게 재구조화시키려는 움직임을 최근 화두가 되고 있는 서비스 지향 아키텍처(SOA) 라고 볼 수 있다.

현재 기업의 정보시스템은 인터넷 네크워킹 기술을 기반으로, 컴퓨터의 물리적인 위치에 관계없이, 용도별로 특화된 다수의 분산 서버들간 정보를 처리하여 기업 활동을 통제하고, 모니터링 하는 역할을 수행하고 있다.

이때, 분산된 IT자원 내 객체들 간의 역할과 책임을 효과적으로 규정하기 위한, IT의 접근 방식은 다음과 같다.

 

접근 방식 1) 전체적인 관점에서 중복 요소를 제거하여, 공유할 수 있는 객체를 식별하여 재사용성을 높인다(Reuse).

 

접근 방식 2) 비즈니스 내의 서비스 기능(Function) 단위로 IT를 재구조화한다(Service Orientation).

 

접근 방식 3) 객체간의 연결을 사용자와 제공자 사이의 계약관계에 입각하여 최대한 느슨하게 연결하여, 비즈니스의 서비스화에 따른 변화에 최대한 빠르게 대응하여 재조합 할 수 있게 한다(Loosely Coupled Composition).


대표적인 기술로는 웹 서비스로 통칭되는 XML 문서기반의 표준화된 연결 방식이 선호된다. 이때, IT의 더욱 유연성을 높이기 위해서, 가변성 있는 비즈니스 규정과 이를 수행하기 위한 IT의 규칙은 메타 데이터 형태의 설정(Configuration)정보로 정의/관리하여, 메타 데이터를 통해 IT 를 통제하고 관리하는 형태를 취하게 된다.

접근 방식 4) 이때, 중심이 되는 서비스 정의의 단위를 단위 객체나 컴포넌트 보다 추상화 수준을 높여, 비즈니스 레벨의 계약 관계 수준에 최대한 가깝게 격상시켜, 서비스가 비즈니스 기능(Function)에 정렬(Align)되어 관리되고, 추적될 수 있게 한다.


상기 접근 방식 4)에서 언급된 것처럼, 추상화된 서비스 계약을 기반으로 IT를 통제하고 관리하기 위하여, 쉽게 재정의 가능한 서비스 메타 데이터를 기반으로 서비스 소비자와 서비스 제공자 사이의 연결을 관리하고 모니터링한다. 이를 통해 비즈니스 서비스와 IT서비스 간의 연계성을 추적하고 최적화 함으로써 비즈니스 서비스화와 끊임 없는 변화에 동태적으로 대응할 수 있는 IT 체계를 구축하는 것이다.

마지막으로 요약하면 SOA는 서비스로 대변되는 단위 비즈니스 기능(Function)에 대응하는 추상화된 서비스 계약을 기반으로, IT 아키텍처를 비즈니스 지향적으로 재 구조화하고자 하는 IT의 비전이자, 추구가치 내지는 사명이라고 할 수 있다.

 

저작권자 © 디지털투데이 (DigitalToday) 무단전재 및 재배포 금지