SOA(Service-oriented architecture)

SOA(Service-oriented architecture)란 무엇인가?

서 비스 지향 아키텍처는 기업이 내부 애플리케이션을 기업 내·외부까지 통합할 수 있는 표준 소프트웨어 요소이자 비즈니스 프로세스의 집합체이다. 예를 들어 알파벳에서 하나하나의 문자들을 서비스로 본다면, SOA는 이 문자들을 활용해서 문장이나 글로 써나가는 규칙을 설명하는 문법책이라고 볼 수 있다. 또한 레고 블록 하나 하나를 서비스로 본다면, SOA는 이들 블록을 사용하여 건물이나 자동차 등을 만들 수 있는 방향과 지침을 제시하는 것으로 비유할 수 있다. 따라서 IT 측면에서 볼 때 SOA는 기업 IT 자원간의 궁극적인 상호 호환성을 제공하기 위한 차세대 통합 개념이라고 할 수 있다.
SOA는 데이터와 애플리케이션을 표준 블록 단위로 나눠 하나의 서비스로 구성한 뒤 웹서비스 기술 등을 적용해 각 서비스를 조합 또는 재사용할 수 있게 한다. 내부 애플리케이션과 서비스를 통합하는 것은 물론이고 협력사·하도급업체 등의 외부 시스템까지 연계할 수 있다.

일례로 모 기업은 전사적자원관리(ERP)를 비롯한 주요 엔터프라이즈 애플리케이션으로 상이한 2개 업체 제품을 사용하고 있다. 게다가 고객과 제품·직원 및 파트너에 관한 엔터프라이즈 데이터베이스도 운영하면서 문서와 콘텐츠관리서비스·구글의 서치 서비스 등도 운영 중이다.

이처럼 분산된 정보시스템 인프라를 가지고 있는 사용자가 쉽게 서비스 받을 수 있는 환경을 만드는 것이 SOA의 기본 이념이다. 즉 시스템을 누구나 이용 가능한 서비스로 간주하고 연동과 통합을 전제로 아키텍처를 만든다는 것이다.

SOA는 컴퓨팅 환경 내에서 분산된 로직(서비스)을 유연하게 디자인·개발·배치·관리하기 위한 소프트웨어 인프라 시스템 패러다임이다. 이 정의는 SOA의 전반적인 범위를 표현한다.

SOA의 원리

SOA는 비즈니스 기능들을 네트워크 상에서 재사용이 가능한 공유서비스의 집합으로 구현한 소프트웨어 디자인 패러다임이다. Burton Group의 부사장이자 연구 책임자인 Anne Thomas Manes는 ‘웹서비스는 표준 메시지 포맷과 프로토콜을 사용하는 서비스 중심의 통합 기술’이라고 말했다.

한 덩어리의 방대한 코드로 이루어진 애플리케이션들을 각각 개발하는 대신 SOA를 디자인 패턴으로 채택하면 각각의 비즈니스 기능들로 이루어진 유연한 인프라를 구축할 수 있다. 즉 이 비즈니스 기능들을 조합하거나 분리함으로써 유연하면서도 상세하게 모든 비즈니스 프로세스들을 구현할 수 있게 되면서 급변하는 환경에 맞춰 신속하게 비즈니스 프로세스들을 수정할 수 있다.

그래서 SOA는 웹서비스 표준 지원, 기존 투자된 애플리케이션 인프라를 활용하기 위한 전사 애플리케이션 통합 하부구조, 비즈니스 프로세스를 자동화하고 애플리케이션간 비즈니스 프로세스 상호 교환을 위한 서비스 오케스트레이션, XML·non-XML·객체 등 다양한 유형별 데이터 통합 및 맵핑, 기존 컴포넌트 시스템 통합, 서비스 개발 환경을 위한 개발 도구 등을 요건으로 하고 있다.

SOA는 여러 시스템에서 애플리케이션 기능을 재사용할 수 있도록 함으로써 애플리케이션 개발과 통합 작업을 간소화할 것이다. 물론 이전의 컴포넌트 기반 아키텍처에서도 이런 시도는 있었다. SOA와 컴포넌트 기반 아키텍처의 근본적인 차이점은 SOA는 주로 표준 기반의 웹서비스에 의존하고 있기 때문에 기반 기술로서 그 어떤 것도 필요로 하지 않는다는 점이다.

도입 필요성

가트너 그룹은 ‘2008년에는 60% 이상의 기업이 회사의 핵심 애플리케이션과 프로세스를 개발할 때 SOA를 소프트웨어 개발 원칙으로 사용할 것’이라고 밝혔다. 또한 웹서비스 컨설팅전문회사 잽 씽크(ZapThink)는 ‘오는 2006년까지 네트워크화된 비즈니스 시스템에서 SOA가 지배적인 디자인이 될 것’이라고 예상하고 있다.

SOA를 적용하면 기존에 힘들게 애플리케이션 코드를 프로그래밍하던 방식에서 탈피, 애플리케이션 전체나 일부가 서비스 개념으로 인식되어 쉬운 조립(assembly)을 통해 새로운 비즈니스 애플리케이션을 빠르게 개발할 수 있다. 이를 통해 현업부서가 쉽게 업무를 재구축할 수 있도록 해주면서 기존 IT부서 중심의 컴퓨팅 환경은 비즈니스 중심으로 바뀌어 더욱 신속히 비즈니스 요구를 반영할 수 있다.

SOA 도입에 따른 혜택


- 탄력성의 증가로 인한 컴퓨팅 시스템 변경시 매우 유리
- 대규모 시스템이거나 원거리 협력 작업 용이
- 모듈의 재구성 가능에 따른 소프트웨어의 재사용 가능
- 이기종 환경의 통합
- 통합이 쉬워지고 민첩성이 높아지므로 ROI 높아짐
- 개발자들은 모든 종류의 사용자 접점 시스템과 작동하기에 충분할 만한 일반적인 서비스 디자인 가능
Posted by 아름프로
BLOG main image

카테고리

분류 전체보기 (539)
이야기방 (19)
토론/정보/사설 (16)
IBM Rational (9)
U-IT (0)
SOA/WS/ebXML (110)
개발방법론/모델링 (122)
J2SE (34)
J2EE (60)
DataBase (39)
Open Projects (30)
BP/표준화 (50)
Apache Projects (15)
Web/보안/OS (22)
Tools (7)
AJAX/WEB2.0 (1)
Linux/Unix (1)
영어 (0)
비공개방 (0)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

달력

«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

글 보관함

Total :
Today : Yesterday :