SOI(서비스 지향 통합)란 무엇인가?
SOI(Service-Oriented Integration, 서비스 지향 통합)는 서비스 지향 방식에서 서비스 간 협업만을 통해 컴퓨팅 요소들을 통합하는 기술을 의미합니다. SOI는 레거시 시스템이나 경직된 이기종(heterogeneous) 시스템을 통합할 때 발생하는 문제를 해결해 주며, IT 조직이 기존 소프트웨어에 잠겨 있던 기능들을 재사용 가능한 서비스 형태로 제공할 수 있도록 지원합니다.
이러한 통합 방식의 활용 범위는 매우 넓으며, 대표적으로 여러 애플리케이션의 프로세스와 데이터를 결합한 복합(composite) 소프트웨어 또는 애플리케이션을 구축하는 것이 있습니다. 예를 들어 이 패러다임을 활용하면 개발자는 인터페이스를 정의하고, 필요에 따라 해당 인터페이스를 인터넷에 연결된 애플리케이션 서비스와 바인딩하여 애플리케이션 서비스를 손쉽게 추가할 수 있습니다.
서비스 지향 통합의 주요 특징
- 명확하고 표준화된 인터페이스 – 소비자는 최소한의 학습만으로 일관된 방식으로 기본 서비스에 접근할 수 있습니다.
- 불투명성(Opaqueness) – 서비스 인터페이스 뒤에서 기능을 실제로 지원하는 애플리케이션의 기술과 영역은 외부에 노출되지 않습니다. 또한 특정 서비스 제공자가 고정되어 있을 필요도 없습니다.
- 유연성(Flexibility) – 서비스 제공자와 사용자 모두 언제든 변경될 수 있으며, 유일하게 고정되는 것은 서비스 정의뿐입니다. 제공자와 소비자가 서비스 정의만 계속 준수한다면 소프트웨어는 정상적으로 동작합니다.
SOAI(서비스 지향 애플리케이션 통합)의 이해
SOAI(Service-Oriented Application Integration)는 애플리케이션들이 공통의 비즈니스 로직이나 프로세스를 공유할 수 있도록 하는 기술입니다. 이는 공유 가능한 메서드를 정의하여 통합하거나, 웹 서비스와 같은 메서드 공유용 프레임워크를 지원함으로써 구현됩니다.
다양한 메서드는 중앙 서버에서 호스팅되거나, 애플리케이션 간 직접 연동 방식(예: 분산 객체), 또는 .NET을 포함한 표준 웹 서비스 메커니즘을 통해 공유될 수 있습니다.
SOAI는 원격 시스템에 존재하는 서비스들을 활용하여 복합 애플리케이션을 구축할 수 있는 구조를 제공합니다. 흥미롭게도 공통 프로세스를 공유한다는 개념은 10년 이상 전으로 거슬러 올라가는 오랜 역사를 가지고 있습니다. 당시 멀티티어(multi-tier) 클라이언트/서버 환경에서 공통 서버 상의 공유 서비스 집합이 기업에 재사용과 통합의 프레임워크를 제공했으며, 이후 분산 객체(distributed object) 운동으로 이어졌습니다.
재사용성이 주는 가치
재사용성(reusability)은 애플리케이션 통합에서 매우 중요한 목표입니다. 기업 애플리케이션 간에 일반적인 메서드 집합을 공유하면 재사용성이 높아지고, 그 결과 중복되는 프로세스와 애플리케이션의 필요성이 크게 줄어듭니다. 애플리케이션 통합의 도구와 기법을 활용하면 공통 메서드를 공유하는 방법을 효과적으로 익힐 수 있습니다.
이러한 도구와 기법들은 공유를 현실로 만들어 주는 프레임워크를 구축합니다. 이 기회를 적극적으로 활용하면 데이터를 공유하기 위해 소프트웨어를 통합하는 동시에, 비즈니스 로직의 재사용을 지원하는 견고한 프레임워크까지 함께 마련할 수 있습니다.