공부하는 스누피
[소프트웨어 공학] SOA, EAI, ESB 본문
SOA(Service Oriented Architecture)
대규모 컴퓨터 시스템을 구축할 때의 개념으로, 업무상의 일 처리에 해당하는 App 기능을 서비스로 판단하고, 그 서비스를 네트워크상에 연동하여 시스템 전체를 구축해 나가는 방법론이다 (Wikipedia).
간단히 말하자면, 회사 업무 App이 채팅 앱, 회계 프로그램, 일정 관리 프로그램 등 여러 가지가 있다고 하자.
이때 모든 App들을 컴포넌트 단위로 서비스화한 다음, 표준 인터페이스를 통해서 하나의 커다란 업무 관리 App을 만드는 것이다.
- 소프트웨어의 재사용성이 강조된다.
- 비즈니스 환경의 변화에 빠르게 대응할 수 있다.
- 각 서비스는 의존성이 최소화(Loosely Coupled)되어 있어야 한다.
- 아키텍처 모델에는 시스템 통합을 위한 Fundamental SOA, 버스를 통해 유연성과 통제를 추가한 Networked SOA 두 가지가 있다.
=> Fundamental SOA는 기존의 독립된 시스템을 각각 서비스화하고, 이를 통합하여 하나의 시스템으로 운영한다.
=> EAI가 대표적인 Fundamental SOA 방식이다.
=> Networked SOA는 SOA 시스템의 유지보수성을 높여준다. 하나의 버스를 통해 모든 서비스를 관리하여 다른 시스템 사이의 연결의 복잡도를 해결한다.
=> ESB가 대표적인 Networked SOA 기술이다.
- 접근 방법
=> Top-down 방식은 비즈니스 요구사항에 최적화된 형태로, 효율성에 중점을 둔다 (stakeholder 주도).
=> Bottom-up 방식은 서비스 가상화, 비용 최소화, 유연성 강화에 중점을 둔다. (IT 기업 주도)
EAI(Enterprise Application Integration)
기업에서 운영되는 서로 다른 플랫폼 및 App 간의 정보 전달, 연계, 통합을 가능하게 해 주는 솔루션.
실제 송수신 처리와 진행 현황을 모니터링/통제하는 서버.
- 각 시스템 간의 통합/연계성을 증대시켜 확장성을 높여 준다.
- 중앙에 집중된 형식으로 주로 성(Star)형 구성도를 가진다.
ex)
slidesplayer.org/slide/16274732/
ESB(Enterprise Service Bus)
기업에서 운영되는 서로 다른 플랫폼 및 App들을 하나의 시스템으로 관라 운영할 수 있도록 서비스 중심의 통합을 지향하는 아키텍처 기술.
- 버스를 중심으로 각각의 프로토콜이 호환이 가능하도록 함 (느슨한 결합 - Loose Coupling).
- 소규모 환경에서는 혜택이 적다.
ex)
서비스 가상화(Service Virtualization)
ESB를 활용하여 IP 주소 등 low-level 머신 정보들을 비즈니스 로직으로부터 분리하고, 단순하고 안정적인 인터페이스를 제공할 수 있다. 비즈니스 고려 사항과 IT 고려사항을 분리할 수 있다. 설계 단계에서 명확한 레이어링이 요구된다.
(참고)
'CS > 소프트웨어 공학' 카테고리의 다른 글
[정보처리기사] 실기정리_1: 요구사항 확인 (0) | 2020.11.03 |
---|---|
[정보처리기사] 시큐어 코딩 가이드 (0) | 2020.10.04 |
[정보처리기사] 4-3 응용 소프트웨어 기초 기술 정리 (0) | 2020.08.19 |
[정보처리기사] 디자인 패턴 (0) | 2020.07.25 |
[정보처리기사] 모듈의 결합도, 응집도 (0) | 2020.07.23 |