2.2 비즈니스 서비스와 웹 서비스
SOA에서 비즈니스 서비스(business service)는 비즈니스 프로세스(business process)와 비즈니스 로직(business logic), 그리고 비즈니스 실체(business entity) 등을 캡슐화하는 가장 기본적인 빌딩 블록(building block)이다.
비즈니스 서비스의 가장 큰 특징은 자치적(autonomous)이라는 것이다. 여기에서 자치적이란 각각의 비즈니스 서비스가 다른 비즈니스 서비스에 의존하지 않고도 독립적으로 해당 로직을 제어할 수 있으며, 또한 해당 로직을 제어하는데 필요한 정보를 스스로 포함하고 있다는 것을 말한다. 그렇다고 해서 비즈니서 서비스가 완전히 독립적으로 실행되는 것만은 아니다. 비즈니스 서비스는 서비스 합성(service composition)에 멤버로서 참여하는 구성 요소가 될 수도 있기 때문이다.
비즈니스 서비스 특징 중 하나는 메시지 기반적(message-based)이라는 것이다. 비즈니스 서비스는 메시지를 통해 서로 커뮤니케이션을 한다. 메시지(message)란 하나의 서비스가 다른 서비스로 전성하는 정보의 단위로서, 스키마(schema)를 사용하여 고도로 구조화되어 전송되어야 하며, 메시지를 이해하는데 필요한 모든 정보를 포함하거나 참조함으로써 개념적으로 스스로 충족될 수 있어야만 한다.
이러한 두가지 비즈니스 서비스의 특징은 비즈니스 서비스가 느슨한 결합도(loosely-coupled)를 가지며, 커다란 입자성(coarse-grained)을 갖는다는 것을 의미한다. 객체지향기술(object-oriented technology)의 중심 개념인 객체(object)와 CBD(component-based development) 기술의 중심 개념인 컴포넌트(component)와 비교할 때, 다음 그림과 같이 비즈니서 서비스가 컴포넌트보다 더 큰 입자성과 느슨한 결합도를 갖게 된다.

비즈니스 서비스의 또 다른 중요한 특징은 개방 표준(open standard)를 기반으로 한다는 것이다. 여기에서 개방 표준이란 웹 서비스 표준을 말한다. 결국 웹 서비스(web service)는 비즈니스 서비스의 구현이 된다. 우리는 웹 서비스를 개방형 프로토콜(HTTP,SMTP등)을 사용하여 커뮤니케이션하며, SOAP 프로토콜을 사용하여 구성된 XML 메시지를 처리하며, XML 스키마를 사용하여 메시지를 기술하고, WSDL을 사용하여 서비스 인터페이스를 기술하며, UDDI를 사용하여 등록하고 검색할 수 있는 소프트웨어 컴포넌트라고 정의할 수 있다.
이제 우리는 이러한 비즈니스 서비스의 특징으로부터 다음과 같이 정의할 수 있다.
'비즈니스 서비스란 개방 표준을 따라 메시지 기반으로 서로 커뮤니케이션하는 자치적인 소프트웨어 컴포넌트이다'
이러한 비즈니스 서비스의 정의로부터 우리는 다음과 같은 기술적인 특징을 파생시킬 수 있다.
* 비동기 커뮤니케이션 지원 - 비동기적으로 커뮤니케이션을 할 수 있어야 한다.
* 커뮤니케이션 채널 독립성 - 이기종 커뮤니케이션 채널을 통해서도 커뮤니케이션을 할 수 있어야 한다.
* 플랫폼 독립성 - 서로 다른 플랫폼 상에서도 호스트될 수 있어야 한다.
* 언어 독립성 - 서로 다른 언어를 사용하여 구현될 수 있어야 한다.
2.3 비즈니스 서비스의 종류
우리는 비즈니스 서비스를 다음과 같이 4가지로 구분할 수 있다.
● 기본서비스(basic service)
● 중개서비스(intermediary service)
● 프로세스 서비스(process-centric service)
● 공개 서비스(public enterprise service)
이들 서비스 유형 사이의 특징을 요약하면 다음과 같다.

기본 서비스(basic service)는 용어 그대로 SOA의 기반이 되는 서비스로서, 수직적인 도메인(vertical domain)의 기본 요소를 표현한다. 다시 기본 서비스는 데이터 서비스(data centric service)와 로직 서비스(logic centric service)로 구분된다. 데이터 서비스는 식별된 비즈니스 엔터티(business endtity(의 데이터 저장과 조회, 로킹 메커니즘, 트랜잭션 관리 등을 담당한다. 로직 서비스는 비즈니스 로직(business logic)과 비교적 간단한 비즈니스 룰(business rule)을 캡슐화한다.
중개 서비스(intermediary service)는 레거시 시스템(legacy system)과 연결하는 게이트웨이(gateway) 기능이나 기존 다른 서비스의 시그너쳐(signature)나 메시지 형식(message format)을 클라이언트가 요구하는 형식으로 맵핑시켜주는 어댑터(adapter), 하나 이상의 기존 서비스에 대하여 통합되는 형식으로 다른 뷰를 제공하는 퍼사드(facade) 등의 기능을 제공하는 서비스이다.
프로세스 서비스(process service)는 비즈니스 프로세스(business process)를 캡슐화하며, 비즈니스 프로세스 로직을 제어하고 비즈니스 프로세스의 상태(state)를 관리한다. 비교적 복잡한 비즈니스 룰도 프로세스 서비스가 담당한다.
앞에서 언급한 서비스의 유형은 대부분 특정 기업의 내부에서만 사용된다. 그러나 공개 서비스(public enterprise service)는 다른 기업이나 조직과 공유하는 서비스로서, 주로 B2B(business to business)에 사용된다.
[출처: 06/04/29 MSDN 세미나 - 전병선]
[출처] SOA로 가는길 - 2. SOA란 무엇인가? (2)|작성자 마음대로







덧글