SOA
태그 :
- 개념
- 기존 어플리케이션의 서비스를 조합함으로써, 새로운 어플리케이션을 구현할 수 있도록 한 통합 기술 및 아키텍처 모델 서비스간의 약결합(Loosely Coupled)으로 시스템 통합을 가능하게 해 주는 소프트웨어 아키텍처
1. 서비스 지향 아키텍처 모델, SOA의 개요
가. SOA(Service Oriented Architecture)의 정의
기존 어플리케이션의 서비스를 조합함으로써, 새로운 어플리케이션을 구현할 수 있도록 한 통합 기술 및 아키텍처 모델
서비스간의 약결합(Loosely Coupled)으로 시스템 통합을 가능하게 해 주는 소프트웨어 아키텍처
나. SOA의 목적
모든 서비스와 프로세스의 블록화를 통한 전산실의 서비스 창고화
블록화된 서비스의 재사용으로 인한 비즈니스 역량 증가
현업 실무자가 프로그래머의 도움 없이 서비스 모듈을 조립 및
재사용할 수 있는 환경 마련
기업간 서비스 모듈 공유로 기업 비즈니스 촉진
다. SOA의 특징
특징 |
내용 |
프로세스 중심 |
-비즈니스 프로세스를 별도의 독립된 구성요소로 보고, 이를 설계 시에 분리 -비즈니스 로직은 비즈니스 서비스에 두고, 프로세스 서비스는 각 비즈니스 서비스를 통합 |
플랫폼 독립적 어플리케이션 통합 |
-구현 기술에 관계없는 연결보장 -성능요구,보안수준,신뢰성 보장 |
Loosely Coupled 메시지 및 프로세스 상태관리 |
-서비스간 종속성을 줄이고, 프로세스를 단순화 -메시지 상태관리:중복된 메시지,비동기 메시지관리 -서비스가 전체프로세스 상에서 어느상태인지 관리 |
협업과 재사용 |
-서로 모듈을 공유하면서 새로운 서비스를 제공, 협업 |
라. 통합Architecture의 발전단계
2. SOA 개념도, 기술 아키텍처 및 구현기술
가. SOA 개념도
- WSDL(Web Service Description Language), UDDI(Universal Description, Discovery and Integration)등의 기술을 통해 인터넷상의 공용 Registry에 등록하고 호출하여 서비스를 이용하는 서비스 기반 아키텍처
나. SOA 구현기술
구분 |
기술요소 |
내용 |
데이터교환 |
XML |
인터넷 데이터 교환 기술 |
서비스호출 |
SOAP |
-Simple Object Access Protocol -XML언어를 이용한 분산환경에서의 정보교환을 위한 프로토콜 |
서비스기술 |
WSDL |
- Web services Description Language -Web Service의 기능, 사용법 등을 기술한 XML기반의 언어 |
서비스등록 |
UDDI |
-Universal Description, Discovery and Integration -인터넷상에서 Web Service에 대한 정보 등록, 검색하는 공용 Registry 서비스 |
미들웨어 |
ESB |
- Enterprise Service Bus -메시징을 통해 다수의 System에 대해 약결합 [loosely coupling] 방식으로 연결하여 SOA구현을 가능케하는 통합 미들웨어 |
3. SOA 기술 아키텍처 Layer 및 구성형태, 접근방법에 따른 분류
가. SOA 기술 아키텍처 Layer
Layer |
설명 |
대표기술 |
Presentation |
표현 계층 |
X-Internet, Portal 솔루션 |
Biz-Process |
업무 프로세스 계층 |
BPM |
Service Intermediary |
서비스 중간 계층 |
ESB, Web Service |
Application |
어플리케이션 계층 |
EAI(Adapter) |
Persistency |
데이터 저장 계층 |
|
나. SOA 구성형태에 따른 분류
Primitive SOA |
Networked SOA |
Process-Enabled SOA |
- Point-to-point 형태로 연결 하는 구조의 형태 |
- 공통된 Bus형태의 통합을 지원하는 형태 |
- Process Orchestration 기반 위에서 동작하는 형태이며, SOA-BPM이 결합된 환경 |
4. SOA 구축전략 및 구축절차
가. SOA 구축전략
구축전략 |
내용 |
전체 아키텍처 관점에서 고민 |
전사 아키텍처 관점의 통합과 표준 정의, 재사용, 조합들 통한 IT아키텍처 민첩성을 극대화에 중점 |
IT전체를 대상으로 고려 |
IT관련 조직, 전략, 프로세스에 대한 표준과 방안들이 종합적으로 고민되어야 함 |
크게 시작하되 작게 시작 |
Think Big, Start Small 큰 그림과 상세한 전술적인 방안이 같이 나와야 SOA구축을 위한 최적화된 방안이 나옴 |
적용 성숙도 모델 참조 |
적용 범위에 대하여 SOA 적용 성숙도 모델을 참고하여 적용 |
나. SOA 구축절차
절차 |
내용 |
SOA 전략 수립 |
SOA 가치 평가, ROI 분석, SOA Roadmap 수립 |
서비스 인지 |
서비스 그룹화 및 생성, 서비스 아키텍처 수립 |
서비스 컴포넌트 설계 |
SOA 설계 (서비스 프로세스, 컴포넌트, 인터페이스) |
인프라 통합 및 구현 |
서비스 조립 및 테스트, 서비스 배포 |
SOA 유지보수 |
서비스 품질관리, 서비스 변경 및 포트폴리오 관리 |
5. SOA와 다른 프레임워크 비교
가. SOA와 Web2.0
구분 |
SOA |
Web 2.0 |
서비스모델 |
웹 서비스 |
웹 서비스 |
서비스 개념 |
협의의 웹서비스 |
관의의 웹서비스 |
표준 기술 |
WSDL, UDDI, SOAP, BPEL |
HTTP, XML, RSS, REST |
메시지 교환 프로토콜 |
SOAP기반에 국한 XML을 통한 메시지 교환 |
프로토콜이나 교환 포맷에 독립적 |
재사용성 |
약간 높음 |
매우 높음 |
유용성/순응성 |
조합과 통합 서비스 지향의 원칙 |
단순한 데이터 포멧 간결한 프로그래밍 모델 |
비즈니스 모델 |
BPM(Business Process Management) 자산통합(Asset Integration) 데이터 퓨전(Data Fusion) Legacy자산의 생명주기연장 비즈니스 활동 모니터링 |
롱테일 효과 네트워크 효과 집단 지능 활용 고객 셀프 서비스 |
설계플랫폼 |
Service Layer Service Bus |
AJAX 신디케이션 |
핵심역량 |
기능의 재정비 자산으로서의 데이터 접근 가능성 시스템/데이터 통합 비용절감 비즈니스 기민성(Agility) 온톨로지 소비자 중심의 비즈니스 프로세스 |
서비스로서의 SW(SaaS) 데이터 소스에 대한 통제 공동개발자로서의 사용자 신뢰 플랫폼 독립적 가벼운 UI, 개발모델, 비즈니스 채용 |
나. SOA와 CBD
구분 |
SOA |
CBD |
시스템 관점 |
기업 내 외부 통합관점 |
기업내부 특정시스템 관점 |
프로세스 |
컴포넌트를 연결하는 프로세스에 대한 고려 비중이 큼 |
프로세스보다는 개별 컴포넌트에 집중 |
컴포넌트 특성 |
서비스 컴포넌트 중심 |
기능 컴포넌트 중심 |
추상화 |
상대적으로 높음 |
상대적으로 낮음 |
모델링 기법 |
컨설팅기법, UML, EA |
UML |
목표 |
비즈니스 목표와 연결시키는 것이 목적, 성과 측정과 연계 |
시스템 관점에서 컴포넌트 구축 |
플랫폼 |
이 기종 통합 연계 |
J2EE, .NET 개별적 연계 |
연계방식 |
Loosely Coupling(SOAP) |
Tightly Coupling(Serialization) |
인터페이스 |
공개적인 인터페이스(WSDL활용) |
개별 인터페이스 활용 |
응용기술 |
EAI, Web Service, BPM, 웹 기술 |
WAS 기반 웹 기술 |
다. SOA 와 SW Architecture
구분 |
SOA |
SW Architecture |
방식 |
서비스 중심 |
기능 중심 |
특성 |
웹기반의 이기종 플랫폼 간 통합 서비스 제공 |
프로젝트 중심적인 기능 모듈 상호 연동 및 시스템 통합 |
활용사례 |
SOA기반의 웹 서비스 |
SW개발에 활용 |
라. SOA와 EAI
구분 |
SOA |
EAI |
특징 |
비즈니스 프로세스 중심 |
메시지 중심 |
플랫폼 |
독립적 |
일부 플랫폼에 종속 |
구성형태 |
Loosely Coupled |
Tightly Coupled |
용도 |
내외부 연계 자동화 |
내부 프로세스 통합 |
기술요소 |
SOAP, UDDI, WSDL, ESB, BPM |
EAI 미들웨어, Meta data관리 |
마. SOA와 WOA
구분 |
SOA |
WOA |
Full name |
Service Oriented Architecture |
Web Oriented Architecture |
Focus |
서비스 재활용 |
데이터 |
디자인 방식 |
벤더를 중심으로 Top Down 형태 |
개발자들 중심의 Bottom Up 방식 |
기본 프로토콜 |
SOAP |
HTTP 프로토콜 EST(Representational State Transfer) 프로토콜 URI(Uniform Resource Identifier) 형태로 참조 |
보안 |
WS-Security 사용 |
HTTPS 사용 |
웹 서비스 간의 상호 운영성 |
XML 스키마 사용 |
어떤 포맷도 가능 |
사용성 |
웹 브라우저 및 매시업 형태로 사용하기 어렵다 |
어디서나 쉽게 사용 가능 |
6. SOA 도입효과 및 고려사항
가. 도입효과
- 이기종간의 서비스 재사용으로 시시각각 변하는 경영환경에 대응
구분 |
내용 |
재사용성 |
반복적인 개발비용을 줄이고 서비스 재사용을 통해서 쉽고 빠르게 고품질의 시스템 구축 |
비즈니스 민첩성 |
서비스 조합을 통해서 쉽고 빠르게 변경내역을 시스템에 반영할 수 있음 |
가시성 |
BPM 기술 적용을 통해 업무처리 및 의사결정을 위한 가시성 향상 |
유지비용 절감 |
동일한 업무 기능 모듈을 공유서비스로 재사용함으로써 중복된 서비스를 제거하고 시스템 관리비용 절감 |
컴플라이언스 및 규제대응 |
실시간 분석 및 모니터링을 통해 Compliance나 Governance에 대한 감지하여 조치 가능 |
나. 고려사항
구분 |
내용 |
관점 |
IT적인 요인보다는 비즈니스적인 요인에 의해 검토 |
서비스 설계 측면 |
서비스 항목을 도출하기 위해 Top down방식의 비즈니스 관점과 Bottom up 방식의 기술적 관점을 모두 고려 |
시스템 구성 측면 |
미들웨어 사용 극대화, 트랜잭션 관리, 에러 수정, 기존 레거시 시스템의 재사용 |
관리/통제 측면 |
Tighter Management/Governance 서비스오너쉽/책임제, 이용할당, 우선순위 |