SOA(Service-Oriented Architecture, 서비스 지향 아키텍처)는 분산 시스템을 구축하기 위해 고안된 설계 패턴으로, 여러 애플리케이션에 프로토콜을 통해 서비스를 제공할 수 있도록 지원합니다. 특정 프로그래밍 언어나 플랫폼에 종속되지 않는 하나의 개념적 설계 방식이라는 점이 특징입니다.
SOA의 기본 개념
SOA는 소프트웨어 설계에서 애플리케이션 구성 요소들이 통신 프로토콜, 일반적으로 네트워크를 통해 다른 구성 요소에 서비스를 제공하는 아키텍처 디자인입니다. 서비스 지향의 특성은 특정 제품, 벤더, 기술에 종속되지 않으며 독립적으로 유지됩니다.
SOA를 활용하면 여러 네트워크에 분산된 소프트웨어 구성 요소들이 서로 협업하기가 훨씬 쉬워집니다. SOA 아키텍처에 따라 구축된 웹 서비스는 더욱 독립적으로 동작할 수 있으며, 서로 간에 정보를 교환할 수 있습니다. 이러한 웹 서비스는 기본 원칙 위에서 설계되기 때문에 사람의 개입 없이 자동으로 상호작용하고, 코드 수정 없이도 연동이 가능합니다. 그 결과 네트워크상의 인터넷 서비스들이 끊김 없이 매끄럽게 연결될 수 있습니다.
EAI(엔터프라이즈 애플리케이션 통합)의 중요성
비즈니스 프로세스는 조직 내 여러 부서 간의 상호작용을 포함합니다. 따라서 비즈니스 프로세스를 자동화하려면 조직 내 다양한 애플리케이션들과의 연동이 필수적입니다.
IT 조직이 이러한 애플리케이션들을 통합할 때 직면하는 주요 과제는 서로 다른 도메인, 아키텍처, 기술 간의 통합입니다. 이러한 문제를 해결하려면 체계적으로 계획된 EAI(Enterprise Application Integration) 전략과 아키텍처가 반드시 필요합니다.
EAI는 크게 두 가지 형태로 나뉩니다. 첫 번째는 intra-EAI로, 한 회사 내부의 애플리케이션들을 통합하여 첫 번째 비즈니스 요구를 충족합니다. 두 번째는 inter-EAI로, B2B(Business-to-Business) 통합과 관련되어 두 번째 비즈니스 요구를 담당합니다.
EAI의 주요 통합 전략
- 애플리케이션 인터페이스 통합(Application Interface Integration) – 한 애플리케이션이 다른 애플리케이션에 존재하는 기능을 공유하여 사용할 수 있도록 하며, 애플리케이션 구성 요소의 공유를 가능하게 합니다.
- 비즈니스 메서드 통합(Business Method Integration) – 한 애플리케이션이 다른 애플리케이션이 제공하는 비즈니스 서비스를 공유하여 활용할 수 있습니다.
- 프레젠테이션 통합(Presentation Integration) – 최종 사용자에게 데이터의 통합된 단일 뷰(unified view)를 제공합니다.
- B2B 통합(B2B Integration) – 서로 다른 두 조직에 존재하는 애플리케이션들의 통합을 지원합니다.
SOA의 역할
EAI 전략 중 가장 효과적인 방식은 비즈니스 메서드 통합입니다. 이 방식은 한 애플리케이션이 다른 애플리케이션이 제공하는 비즈니스 서비스를 활용할 수 있게 해주며, B2B 통합 역시 한층 수월해집니다. 궁극적으로 이는 프로토콜과 전송(transport) 기술의 선택 문제로 귀결됩니다.
프로토콜은 통신의 '언어'를 정의하고, 전송 계층은 해당 프로토콜에 따라 메시지를 한 애플리케이션에서 다른 애플리케이션으로 전달합니다. 서비스 지향 아키텍처(SOA)는 바로 이 비즈니스 메서드 통합 전략을 실현하는 핵심적인 활성화 요소(enabler) 역할을 합니다.
SOA는 기술 중심이 아닌 비즈니스 중심의 애플리케이션 아키텍처를 지향합니다. 즉, 비즈니스 서비스를 애플리케이션 내 기술 구성 요소에 손쉽게 매핑할 수 있도록 설계되어, 변화하는 비즈니스 요구에 유연하게 대응할 수 있는 IT 환경을 만들어 줍니다.