Loosely coupled - 해당되는 글 1건

[1편] SOA와 Service의 정의
[2편] BPM을 통한 서비스 분류하기
[3편] ESB를 이용하여 Service Enabling 하기
[4편] SOA 잘 돌리기(계획)

[3편] ESB를 이용하여 Service Enabling 하기

우리는 "[2편] BPM을 통한 서비스 분류하기"를 통해서 어떻게 서비스를 분류해 낼지에 대해 이야기를 했다. 실질적인 업무의 예를 들지 못한것이 아쉬움으로 남는다. - 추후 적절한 예시가 있으면 업데이트 하겠다.

3편에서는 둥실 둥실 떠있는 서비스 들을 어떻게  Enable 시킬 것인가?

예를 들면, 대출 신규 신청이란 어플리케이션이 있다고 가정하자.

이 업무를 수행하기 위해서
1. 고객정보 조회
2. 대출 신규신청
3. 고객 담보대출 신용도 조회
4. 대출 신규신청 취소
5. 승인 / 반려

위의 5가지 서비스가 도출 되었다고 가정하자.
기존의 방식으로 J2EE Application으로 구현한 경우 아래의 그림과 같이 될것이다.


사용자 삽입 이미지

기존방식으로 구현


J2EE 어플리케이션 내에서 복잡한 로직을 구현함으로 여러개의 비즈니스들과 타이트하게 연결되어 있다.

만일, 기존 서버스가 변경이 되면 어플리케이션에서 변경이 쉽지 않고, 대응 또한 쉽지 않다.

위와 같은 어플리케이션은 SOA가 추구하는 목적에 위배되는 구조이다.
사용자 삽입 이미지

SOA가 추구하는4가지 목표(from oracle)


(공동이용 가능한, 조립가능하고, 재사용가능하고, 약결합된...)

SOA가 추구하는 4가지 목표 에 위배되는 어플리케이션 구조이다.

그럼 위의 예를 SOA가 추구하는 목표에 부합되도록 변경해보자.

사용자 삽입 이미지

ESB를 사용한 구현

위의 그림은 ESB를 활용하여 <신규대출 신청>이란 업무를 재구성한 것이다.

이와 같이 J2EE App에서 ESB를 통해 서비스에 대한 결과를 얻을수 있고, 내부적인 비즈니스 서비스에 대한 연결은 ESB를 통하여 구현하면, <신규대출신청> 이란 어플리케이션과 각 서비스간의 Loosely Coupled한 구조로 연결될 수 있고, 또한 서비스의 재사용이 가능하며, <신규대출신청>이란 업무에 새로운 서비스가 추가 또는 삭제될 때에도 자유로이 대응할 수 있다.
자세히 표현되지는 않았지만, 기본적으로 ESB에서 서비스에 연결될때는 표준프로토콜을 사용하는 것이 일반적이다.( 특정 프로토콜이 사용되는 경우도 있다.)

ESB를 활용하여 구성된 서비스를 enabling 시킴으로서 SOA의 목표에 부합될 수 있는 환경을 구축할 수 있다.

      Service Oriented  |  2007. 3. 20. 11:17



archidream's Blog is powered by Daum