1. SOA는 무엇인가?
상태바
1. SOA는 무엇인가?
  • 승인 2006.01.11 00:00
  • 댓글 0
이 기사를 공유합니다

Tech Guide - SOA
정해영
한국IBM 웹스피어 마케팅 부장
hyjeong@kr.ibm.com

연재순서
1. SOA는 무엇인가?
2. SOA 라이프 사이클
3. SOA, 어떻게 시작하는가?

소비자의 취향이 바뀌고, 경쟁도 심해지는 비즈니스 환경에서 변화는 어느 기업이든지 피할 수 없는 화두가 되고 있다. 이미 많은 변화가 예견되고 있는 상황에서 어느 기업도 현재 비즈니스 환경에서 잘하고 있다고 해서 미래에도 잘 할 수 있다고 확신할 수 없는 것이다.
과거에도 기업들은 이러한 변화에 대응하기 위해서 많은 노력을 해온 것이 사실이다. 향후 비즈니스의 변화 등을 예측해 새로운 사업부를 출범하거나 인수합병을 통해 새로운 사업에 진출하기도 하고 완전히 다른 업종으로 전환하기도 하는 등의 노력을 해왔다. 그렇다면 현재 이야기 되고 있는 변화와 과거의 변화는 어떤 차이가 있는가? 한마디로 이야기하면 유연성과 속도라고 말할 수 있다. 이러한 유연성과 속도를 위해 최근 SOA는 가장 가능성 있는 방법론으로 부상하고 있다. <편집자>

과거 기업 환경 변화를 미리 예측하고 이에 따라 비즈니스 형태를 변화시켜왔지만 이제는 이러한 변화를 예측하기가 매우 어렵다. 소비자의 행동패턴도 과거와는 다르고 자주 바뀔 뿐만 아니라 경쟁도 비교할 수 없을 정도로 치열해졌기 때문이다. 또한 정부의 규제도 강화되고 기업간의 인수합병도 활발하기 때문에 미리 예측하고 이에 대응하는 형태로는 현재의 변화의 속도를 따라갈 수 없다.
예측할 수 없는 비즈니스 환경에서 갑작스러운 변화에 잘 대응할 수 있도록 해주는 비즈니스의 유연성과 변화가 생기면 다른 경쟁업체보다 빠르게 대응할 수 있는 속도는 이러한 환경에서 다른 기업과의 차별성을 보여줄 수 있는 유일한 수단이라 말할 수 있다.
유연성과 속도는 사실 서로 분리해서 생각할 수 없다. 유연성이 없으면 속도를 낼 수 없다. 현재의 많은 변수를 미리 예측해 거기에 맞춰 비즈니스 모델을 변경할 수 없으므로 어떤 변화가 있더라도 수용할 수 있는 비즈니스 체질을 갖춰 놓고 변화가 감지됐을 때 이를 반영해 비즈니스 모델을 변경할 수 있도록 한다면 그렇지 못한 기업과는 차이가 날 수밖에 없다.

민첩한 변화를 위한 제안
비즈니스의 유연성을 확보함으로써 외부 변화에 대응해 신속하게 비즈니스를 바꿀 수 있도록 하는 온디맨드 비즈니스를 구현하기 위해서는 IT 시스템의 유연성이 필수다. 그러나 기존 IT 시스템은 이러한 비즈니스의 유연성과 속도의 필요성을 충족시키는 데 상당히 어려운 상태다. 과거에는 비즈니스 환경의 변화에 맞춰 IT 시스템을 변화하기가 비교적 용이했다. 그러나 현재 빠르게 변화하는 환경변화에 대응하기에 IT 시스템은 매우 경직된 특성을 가지고 있다. 즉 변화하기가 쉽지 않다는 것이다.
소비자의 욕구 변화나 새로운 경쟁자의 등장과 같은 경쟁상황의 변화가 나타났을 때 기존 IT 시스템의 경우 변화를 분석해 어떻게 IT 시스템에 반영할지 설계, 개발하고 적용했었다. 과거에는 이러한 방식을 사용해도 문제가 없었지만 오늘날과 같이 변화의 속도가 빠를 때 전통적인 방식을 사용해 IT 시스템을 변경하면 완료되는 시점에서는 이미 또 다른 변화가 있어 소용이 없을 수 있다. 그래서 심하게 이야기해서 IT 시스템이 기업 경쟁력을 약화시킨다는 평가를 받기도 한다.
따라서 전통적인 IT 시스템과는 다른 패러다임이 필요하며 그것이 서비스 지향 아키텍처(Service Oriented Architecture)다. 서비스 지향 아키텍처(SOA)는 변화에 대해 적시에 적절히 대응할 수 있는 IT 시스템을 구축할 수 있도록 하는 개념이다. 이를 위해 기업 내부 프로세스, 애플리케이션들을 각각 ‘서비스’라는 기본적인 기능 단위로 나누고 이들 ‘서비스’를 연결해 원하는 기능을 하도록 구성해 환경이 변화됐을 때 변화를 반영, 서비스의 연결 구성을 변화시켜 새로운 기능을 제공하도록 쉽고 빠르게 구성할 수 있도록 하는 것이다.

서비스 조립으로 재사용성 향상
서비스 지향 아키텍처에서 이야기 하고 있는 ‘서비스’는 ‘반복사용이 가능한 비즈니스 기능’으로 정의할 수 있다. 서비스는 개별 기능을 수행하는 단위로서 다른 서비스와는 독립적으로 정의된다. 예를 들면, 고객 신용도 조사, 신규계좌개설 등을 서비스로 정의할 수 있다.
‘서비스 지향’이란 비즈니스를 서로 연결된 서비스와 연결로 인해 발생하는 결과물로 통합하는 방식을 말한다. 다시 말하면 내부 비즈니스를 서비스로 정의하고 정의된 서비스를 서로 연결해 산출물을 내는 방식이다.
따라서 SOA는 ‘서비스 지향’ 비즈니스를 지원하는 IT 아키텍처 방식이다. 그리고 이러한 아키텍처상에서 운영되는 애플리케이션을 ‘컴포지트(composite) 애플리케이션’이라고 한다. 컴포지트 애플리케이션은 기존 애플리케이션 개발 방식과는 달리 정의된 서비스를 비즈니스 요구사항에 맞춰 조립(Composite)해 원하는 기능을 구현한다. 만약 기존 컴포지트 애플리케이션을 변경해야 한다면 컴포지트 애플리케이션을 구성하는 서비스 중 해당 서비스를 빼고 원하는 서비스를 넣어서 새로운 기능을 하도록 변경할 수 있다. 따라서 매우 빠르게 애플리케이션을 만들어 낼 수 있는 강점이 있다.
<그림 2>에서 보면 컴포지트 애플리케이션은 비즈니스 요구를 분해해 필요한 기능을 조립해서 만들어진다는 것을 볼 수 있다. 이들 서비스는 각각 업무 시스템의 특정 시스템을 통해 구현된다. 이들 업무 시스템은 기존 시스템이 될 수도 있고 새로 만들어진 시스템 일 수 있다.
ESB(Enterprise Service Bus)는 정의된 서비스들이 서로 커뮤니케이션하는 통로다. ESB는 애플리케이션을 느슨한 결합(loosely coupled) 비즈니스 서비스로서 연결 및 중재(Broker and Mediate) 해주는 표준 메커니즘을 제공한다.

SOA 구현 단계
SOA는 다음 4단계를 거쳐 구현된다.
첫 번째 단계에서는 애플리케이션에서 수행되는 비즈니스 기능, 프로세스에서 사용되는 데이터, 시스템에서 제공되는 서비스 및 사람에 의해서 수행되는 과제 등의 기존 비즈니스 프로세스의 요소를 확인하고 이들 요소의 사용자를 파악한다.
두 번째 단계에서는 이들 요소를 실행 가능한 서비스로 만든다. 서비스 사용자를 위한 클라이언트를 정의하고 웹 서비스의 WSDL(Web Services Description Language)을 사용해 각 서비스의 인터페이스를 생성한다. 또한 각 서비스에 의해 사용되는 데이터 구조를 XML로 정의한다.
세 번째 단계에서는 ESB(Enterprise Service Bus)를 사용해 위치, 전송형태 및 조직 범위에 상관없이 서비스와 서비스 사용자를 연결한다. 마지막으로 이러한 기반 위에 각각의 서비스로 구현된 업무들을 통합한다.

SOA 라이프 사이클
구현된 SOA는 라이프 사이클을 가진다.

SOA 라이프 사이클 : 모델(Model) → 조립(Assemble) → 운영(Deploy) → 관리(Manage) → 모든 단계를 관리/통제하는 거버넌스(Gervernance & Pricesses)

모델(Model) 단계에서는 비즈니스를 잘 아는 현업 담당자가 비즈니스 요건을 분석해 어떤 서비스를 어떻게 조립할 것이고 그 흐름이 어떻게 되는지 정의해 비즈니스 모델을 만든다. 기존 애플리케이션 개발은 운영해 봐야 애플리케이션의 문제를 파악할 수 있는 반면에 SOA 라이프 사이클에서는 애플리케이션을 IT 전문가가 개발하기 전에 현업 담당자가 정의한 비즈니스 모델을 미리 시뮬레이션 해서 개발 전에 미리 비즈니스 모델의 문제나 개선점을 파악해 비즈니스 모델에 반영함으로써 문제 가능성을 최소화 한다.
조립(Assemble)단계에서는 모델 단계에서 만들어진 모델을 가지고 이를 실제로 운영할 수 있는 컴포지트 애플리케이션을 조립한다. 모델 단계에서 정의된 서비스와 프로세스를 기존의 시스템으로 연결하거나 신규로 작성해 운영 가능하게 만든다.
운영(Deploy) 단계에서 작성된 컴포지트 애플리케이션을 운영한다. 관리(Manage) 단계에서는 운영되는 컴포지트 애플리케이션의 운영 상황을 실시간으로 모니터링해 정의된 서비스와 프로세스가 문제가 없는지 개선점이 없는지 판단한다. 만일 개선해야 할 것이 있다면 다시 모델(Model) 단계로 가서 작성된 모델을 수정한 후 다시 조립단계, 운영 단계를 거쳐 다시 모니터링 하는 단계를 순환하게 된다.
이 과정에서 전체 단계에 있어서의 거버넌스(Governance & Process)를 통해 관리/통제를 한다. 전체 프로세스를 제어하고 각각의 서비스에 대한 비용관리 뿐만 아니라 서비스의 복잡한 서비스 사이의 관계를 정의하고 이들이 원활하게 운영될 수 있도록 통제한다.

다양한 적용방법 가능
서비스 지향 아키텍처를 적용하는 것은 각 기업마다 다르다. 어떤 기업은 전사적으로 적용하기도 하고 아니면 기존 시스템 중 일부를 SOA로 구현한 후 확장하는 방식을 취할 수 있다. 전체적으로 보면 각 기업에서 SOA를 적용하는 방식을 4가지로 나눌 수 있다.
첫 번째는 초기 적용 단계로서 특정 애플리케이션을 연결하는 것이다. 특정의 기존 혹은 신규 애플리케이션을 웹 서비스 기술을 이용해 연계한다. 두 번째는 여러 애플리케이션을 SOA를 통해 통합하는 단계다. 비즈니스 프로세스상의 요구 충족을 위해 한정된 업무에 있어서 복수의 애플리케이션 프로세스를 연결 하고 제어한다. EAI 구축 시 SOA를 기반으로 한다면 이 단계라고 할 수 있다. 세 번째는 전사적 단계로서 ESB 등에 의한 전사적인 SOA 인프라를 구축해 사업부를 넘어 기업의 모든 영역에서 서비스의 공유, 연계를 가능하게 한다
마지막 단계로서 CBM 등에 의해 도출된 새로운 비즈니스 모델을 수행하기 위한, 기업을 넘은 밸류 체인 전체의 비즈니스 최적화를 목표로 한다.

유연한 비즈니스 구현 가능
SOA는 유연한 비즈니스를 가능하게 하는 유연한 IT를 구현할 수 있게 한다. SOA의 특징을 보면 다음과 같다.

·유연성 - 서비스 컴포넌트 단위의 조립, 재조합의 용이성
·재사용성 - 공통으로 이용할 수 있는 서비스 컴포넌트를 만들고 기존 시스템을 서비스 컴포넌트화
·확장성, 통합성 - 조직 및 회사 전체에 걸쳐 시스템 애플리케이션 간의 데이터 연계가 용이하고 업무 프로세스간의 제어를 자동화
·감시, 모니터링 - 프로세스 이벤트의 모니터링 및 이벤트 취득을 위한 표준 기반

이런 특징을 가지는 SOA는 현업 측면에서 보면 시장 변화에 즉시 대응할 수 있도록 하고 비용을 절감하며 기업의 핵심역량에 집중할 수 있게 한다. 또한 IT 측면에서 보면 개발기간을 단축하고 운영을 단순화해 비용을 절감할 수 있게 한다. 또한 기존 시스템을 활용할 수 있는 방안을 제시한다.

IBM과 SOA
단순히 SOA 라이프 사이클 상의 각 단계에서 필요한 솔루션을 가진다고 해서 SOA를 구현할 수 있는 것은 아니다. SOA를 구현하기 위해서는 서비스 정의단계, 작성 단계, 운영 및 관리 단계에 있어서 적절한 가이드와 지침이 필요하다.
IBM은 SOA를 구현하는데 필요한 SOA 라이프 사이클 상의 모든 단계에서 필요한 솔루션을 제공할 뿐만 아니라 ‘SOA 인더스트리 엑셀러레이터’를 통해 산업별로 특화된 프로세스 참조 모델과 컴포넌트 모델 및 프로세스 플로우에 대한 참조 모델을 제공, SOA의 계획에서 구현과정까지 발생 가능한 오류를 최소화하고, 프로젝트의 성공확률을 높인다.
또한 SOMA(Service Orientation Modeling and Architecture)라는 SOA 방법론을 통해 비즈니스 컴포넌트에 기반해 서비스를 정의해 기업이 시행착오를 최소화 하도록 하면서 SOA를 구현할 수 있도록 지원한다.


댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.