SOA 서비스 조합 필수조건「조립질 인터페이스」

일반입력 :2004/10/26 20:04

Jeff Hanson

서비스 지향 아키텍처(SOA)로 얻을 수 있는 혜택 중 하나는 애플리케이션, 프로세스나 비교적 단순한 서비스를 조합해 보다 복잡한 서비스를 만들어낼 내는 능력이다.

때때로 ‘서비스 합성’이라 불리는 이 작업을 통해 개발자들은 이기종 환경 상에서 세부 사양이나 차이점 등을 고려하지 않고도 애플리케이션과 서비스를 구성할 수 있다. 이와 같은 SOA 기능은 조립질 인터페이스로 구축·표현되는 서비스에 상당 부분 의존하고 있다.

서비스 입도

서비스 입도(粒度)란 한 서비스가 드러내는 기능성의 범위를 지칭한다. 미립질 서비스란 기초적인 데이터 액세스처럼 비즈니스 프로세스의 유용성을 소폭 상승시키는 서비스를 말한다.

서비스가 조금 더 조립질에 가깝더라도 기초적인 역할을 제공할 수 있다. 그러나 이것은 시스템 전문가에게는 유용하지만 비즈니스 프로세스 전문가에는 큰 의미를 제공하지 못한다.

비즈니스 전문가에게 가장 중요한 가치를 갖는 서비스는 낮은 수준의 서비스, 컴포넌트, 그리고 특정 비즈니스 필요를 만족시키기 위해 지능적으로 구조화된 객체 등을 통해 만들어진다.

이와 같은 조립질 서비스는 현재 보유한 시스템에서도 비즈니스 프로세스의 필요사항을 만족시키는 인터페이스를 정의하거나 표현하는 것 등을 통해 만들어진다.

입도 수준

그림 A에서 볼 수 있는 것처럼 입도 수준은 일반적으로 실질적인 소프트웨어의 목적에 의해 좌우된다.

서비스에 대한 입도 수준은 객체 또는 컴포넌트 대상의 입도 수준보다 낮은 경향이 있으며 하나의 서비스는 전형적으로 하나의 신중한 비즈니스 프로세스를 드러내고 있다.

합성 인터페이스로의 서비스

서비스 제어 시스템은 조립질 인터페이스를 사용해 각 서비스가 참조하는 객체에 접근한다. 각 서비스는 미립질 객체 그룹을 배경으로 하나의 추출물로 실행될 수 있는 반면 객체 그 자체는 공적 접근이 불가능하도록 숨겨질 수 있다.

또한 각 서비스는 객체, 컴포넌트, 잘 만들어진 서비스 등을 그룹화하며 그림 B에서 볼 수 있는 것처럼 외관이나 인터페이스를 활용함으로써 단일 유닛으로 노출되는 것 등을 통해 실행될 수 있다.

효과적인 서비스 인터페이스

비즈니스 전문가도 완전히 만족할 만한 솔루션이 되려면 서비스 인터페이스는 요청된 입력 매개변수, 가능한 에러나 기대치, 결과 등의 요소 뿐 아니라 수행하는 비즈니스 작업들에 대해서도 명확히 표현해야 한다.

서비스 인터페이스는 전문적인 지식을 갖추지 못한 비즈니스 전문가도 쉽게 이해할 수 있어야 한다. 이로 인해 비즈니스 전문가는 비즈니스 프로세스와 애플리케이션을 생산적으로 구성해낼 수 있다.

그림 C를 보면 인터페이스 입도, 비즈니스 프로세스 합성과 이런 애플리케이션이 시스템/비즈니스 전문가의 역할에 어떻게 영향을 미치는 지에 대한 상관관계를 알 수 있다.

사례 분석

조립질 인터페이스 개념을 묘사하기 위해, 간단한 객체 한 쌍을 선정해 새로운 외관을 적용함을써 보다 유용한 비즈니스 서비스를 구성해보자.

UserInfo와 UserAccount라는 클래스가 각각 있다고 가정해 보자. 이 과정들을 표현하기 위한 새로운 인터페이스를 구축함으로써 두 가지 클래스로부터 유용한 비즈니스 프로세스인 ‘getUserAccouts’를 도출해 낼 수 있다. 개발 언어로는 자바가 사용된다.

리스트 A에 있는 코드는 간단한 UserInfo 클래스를 정의하며, 리스트 B의 코드는 간단한 UserAccout 클래스를 정의한다. 이제 getUserAccounts 비즈니스 프로세스를 포함하는 서비스 인터페이스를 정의해보자.

package com.jeffhanson.services;

public interface FinanceServices

{

public UserAccount[] getUserAccounts(UserInfo userInfo);

}

우리가 원하던 인터페이스와 함께 보기로 든 2개 클래스로 ‘getUserAccounts’라는 유용한 비즈니스 프로세스를 만들 수 있다는 것을 리스트 C에서 확인할 수 있다.

서비스 합성

서비스 합성을 이용하면 이기종 환경의 세부 내용이나 차이점 등에 상관없이 각각의 서비스를 이용해 애플리케이션이나 프로세스 등을 구성할 수 있다. 만약 서비스가 조립질 인터페이스로 구축돼 있다면 서비스 합성은 훨씬 더 구성하기 쉽다.

효과적으로 설계·합성된 조립질 서비스의 지원을 받으면 비즈니스 전문가는 새로운 비즈니스 프로세스와 애플리케이션을 생산적으로 구성할 수 있다. @