SOA

개념
SOA(Service Oriented Architecture)의 정의 - 다양한 비즈니스 환경에서 이 기종 통합 및 loosely coupled 하게 서비스단위를 재사용, 재조립을 가능하게 하는 서비스 지향 아키텍처

I. 비즈니스 관점의 소프트웨어 서비스화, SOA의 개요

가. SOA(Service Oriented Architecture)의 정의

- 다양한 비즈니스 환경에서 이 기종 통합 및 loosely coupled 하게 서비스단위를 재사용, 재조립을 가능하게 하는 서비스 지향 아키텍처

 

나. SOA의 특징

특징

내용

약결합

서비스간 종속성을 줄이고 프로세스를 단순화

상호 운용성

약결합 방식이므로 기존의 컴포넌트보다 이기종간 상호운용성이 높음

위치 투명성

서비스의 물리적인 위치와 무관한 서비스 접근

프로세스 중심

- 프로세스 서비스를 별도의 구성요소로 두어 통합에 필요한 메시지처리 담당

- 각 애플리케이션 진입 지점을 프로세스 서비스로 단일화하고 업무 프로세스 추적을 가능하게 해줌

 

II. SOA 구성도 및 구성요소

가. SOA의 구성도

  • WSDL(Web Service Description Language), UDDI(Universal Description, Discovery and Integration)등의 기술을 통해 인터넷상의 공용 Registry에 등록하고 호출하여 서비스를 이용하는 서비스 기반 아키텍처

 

나. SOA의 구성요소

구성요소

설명

Service Broker

- 서비스 저장 및 관리를 담당하는 중재자

- 서비스에 대한 설명정보 저장 및 검색 엔진 제공

Service Provider

- 서비스 제공자

- 서비스 사용자가 호출시 입력값을 이용하여 그에 해당하는 결과 제공

Service Consumer

- 서비스 제공자에 의해 제공되는 하나 이상의 서비스를 사용

 

다. SOA 핵심기술

구분

기술요소

설명

데이터교환

XML

- 인터넷 데이터 교환기술

미들웨어

ESB

- 메시징을 통한 다수의 시스템에 Loosely Coupled한 방식으로 연결
하여 SOA를 구현하는 미들웨어

서비스호출

SOAP

- Simple Object Access Protocol
- XML언어를 이용한 분산환경에서의 정보교환을 위한 프로토콜

서비스기록

WSDL

- Web Services Description Language
- Web Service의 기능, 사용법 등을 기술한 XML기반의 언어

서비스등록

UDDI

- Universal Description, Discovery and Integration
- 인터넷상에서 Web Service에 대한 정보 등록, 검색하는 공용 Registry 서비스

 

 

III. SOA의 애플리케이션 아키텍처와 구축방안

가. SOA 기술 아키텍처 Layer

Layer

설명

대표기술

Presentation

표현 계층

X-Internet, Portal 솔루션

Biz-Process

업무 프로세스 계층

BPM

Service Intermediary

서비스 중간 계층

ESB, Web Service

Application

어플리케이션 계층

EAI(Adapter)

Persistency

데이터 저장 계층

 

 

나. SOA 구성형태에 따른 분류

 

구성형태

설명

Primitive SOA

- Point-to-Point 형태

- 모든 연결이 Node가 증가 할 때 마다 증가되어 복잡한 형태

Networked SOA

- 유연성과 복잡함을 해결하기 위해 Intermediary를 두고 공통된 Bus 형태의 통합을 지원하는 형태

Process-Enabled SOA

- Process Orchestration기반

  위에서 동작하는 형태

- SOA-BPM이 결합된 환경

 

다. SOA 구축방안

- SOA의 공정도

구분

설명

SOA 도입방안수립

전반적인 SOA 도입 전략을 수립하고, IT 과제 도출, 과제의 구체적인 구현 방안을 정의

요구사항 정의

구축될 시스템의 이해관계자로부터 시스템에 대한 요구사항을 도출하여 정리하고 유스케이스 명세서를 도출

요구사항 분석

유스케이스를 분석하고 실현(Realization)을 토대로 개념적인 도메인 객체모델을 생성

아키텍처 수립

유스케이스 모델로부터 구현하고자 하는 시스템에 대한 기능,비기능적 요구사항과 품질속성을 식별해서 소프트웨어 아키텍처 후보를 도출하고 각각에 대한 제약사항 및 평가를 실시

서비스 식별

정련된 후보서비스로부터 서비스를 식별하고 명세하는 단계

서비스 설계

서비스 명세를 물리 아키텍처에 맞추어 상세 설계하며 서비스 Flow는 ESB로 구현됨

구현

설계서를 바탕으로 컴포넌트 구현

 

 

Ⅳ. SOA 연관 기술

가. SOA를 실현하는, ESB의 개요

1)ESB(Enterprise Service Bus)의 정의

- 메시징과 웹서비스, 데이터변형 인텔리전트 라우팅을 결합하여 다양한 어플리케이션의 상호작용을 트랜잭션 무결성으로 연결 및 조절하는 표준기반의 통합 플랫폼

 

2)ESB의 특징

- 다양한 시스템과 연동하기 위한 멀티프로토콜 지원

- 느슨한 결합(Loosely Coupled)

- 소프트웨어 컴포넌트를 조합하여 서비스를 조립하는 BPM지원

- 이벤트지향적, 표준지향적

 

3) ESB의 구성도

 

4) ESB의 구성요소

구분

설명

어댑터 형태의 레거시 연동 컴포넌트

-  ESB는 기본적으로 다양한 표준 프로토콜을 어댑터형태로 지원해야 한다.

 - 통합 개발 환경에서 Pluggable 할 수 있도록 간단한 형태여야 한다.

메시지의 변환, 가공

- 데이터 포맷과 형태 등을 통합 개발 환경 등을 통해 자유롭게 변화하고 가공한다.

BPM(Business Process Management)

- 다양한 시스템의 데이터와 애플리케이션과의 연동을 통해 하나의 서비스를 이용한다.

컨트롤과 모니터링

- 여러 과정들은 통합적인 조작과 모니터링이 가능해야 한다.

 - 모니터링의 대상 : 어댑터 단에서의 진행되고 있는 프로세스의 상태 및 데이터 값

통합개발환경

- 통합개발환경은 ESB에서 필요한 요소 중 하나이다.

 

 

나. 이기종 간 상호운용성 구현 기술, 웹 서비스(Web Service)의 개요

1) 웹 서비스(Web Service)의 정의

- SOAP, WSDL, UDDI 등의 표준 기술을 이용하여 네트워크에 연결된 다른 컴퓨터간의 분산 컴퓨팅을 지원하는 소프트웨어 및 기술

 

2) 웹 서비스의 특징

특징

설명

단순성

XML 기반으로 기존의 분산 컴퓨팅 모델에 비해 보다 단순하고 확장이 용이한 모델을 제공

상호운영성

교환 메시지를 포함한 모든 정보 표현에 잇어 XML을 이용하여, 기존의 웹 환경위에 바로 구현

시스템 구조의 유연성

메인프레임 또는 서버-클라이언트 방식과 달리 유연한 소프트웨어 구조를 통해 이질적인 데이터 표준을 유연하게 통합/운영

사용의 편리성

사용자는 소프트웨어를 설치한 후 자연스럽게 서비스를 제공받게 되며, 인터넷을 연결할 수 있는 유/무선 단말기를 통해 장소에 관계없는 접근이 가능

통합 환경 제공

이질적인 어플리케이션간의 통합 서비스를 제공받을 수 있고 새로운 시스템과의 통합도 자동적으로 이루어진다

비용 효율적

분산 시스템의 소프트웨어 간 통합을 자동화적으로 이행해줌으로써 IT개발 및 운영비용을 절감

 

3) 웹 서비스의 구성도

- 웹 서비스(Web Services)는 3가지 역할(Service Provider, Service Broker, Service Consumer)에 따른 아키텍처 모델에 따라 구현된 기술

 

 

4) 웹 서비스의 구성요소

구성요소

설명

Service Provider

특정 서비스 스펙을 구현하여 서비스를 제공한다

Service Broker (Service Registry)

서비스 등록 및 검색, 저장, 관리를 통해 Service Provider가 제공하는 서비스를 Service Consumer에게 연결한다..

Service Consumer (Service Requester)

Service Broker를 통해 특정 서비스를 찾아서 Service Provider의 서비스를 요청하고 사용한다.

 

5) 웹 서비스의 주요 기술 요소

기술 요소

설명

UDDI

 

- Universal Description, Discover and Integration

- 필요한 서비스를 찾을 수 있는 웹 서비스 레지스트리 (서비스 등록, 검색)

- 웹 서비스와 비즈니스를 발행(publish)/검색(Find)하기 위한 기술적인 스펙

- UDDI데이터 범주

  • White 페이지: 회사에 대한 일반적인 정보 (비즈니스 이름, 세부내용, 주소)
  • Yellow 페이지: 회사나 서비스가 제공하는 분류된 데이터 (표준 분류법을 토대로 산업별, 제품별, 지리적 코드별로 나뉜 데이터)
  • Green 페이지: 웹 서비스에 대한 기술적인 정보. (외부 스펙을 가리키거나 웹 서비스 호출에 대한 주소)

WSDL

- Web Services Description Language

- 웹 서비스를 표현하고 기술하는 언어 (서비스 표현)

- 웹 서비스의 공개 인터페이스를 설명하기 위한 XML문법

- 공개 인터페이스

  • 공개적으로 사용할 수 있는 기능들의 정보
  • XML 메시지를 위한 데이터 타입 정보
  • 사용된 전송 프로토콜에 관한 바인딩 정보
  • 특정한 서비스 위치에 관한 주소 정보

- WSDL은 XML 메시지 시스템에 꼭 필요한 것은 아니지만 SOAP 메시지를 기술하기 위한 빌드인 익스텐션(built-in extensions)을 포함하고 있다.

SOAP

- Simple Object Access Protocol

- 웹 서비스에서 사용되는 보편적이며 확장성 있는 메시지 프로토콜 (데이터 통신 프로토콜)

- 분산 컴퓨터 환경에서 정보를 교환하기 XML 기반 프로토콜

- 객체의 수요자와 제공자 사이의 메시징 프로토콜을 정의

- 플랫폼에 독립적인 단순한 XML 기반 포맷

- SOAP 메시지는 웹의 기본 프로토콜인 HTTP 를 통하여 전송되는데, 웹 서버의 default port 인 80 포트를 이용하여 모든 서버에 접근이 가능

 

다. REST의 개요

1) REST(Representational State Transfer)의 정의

- 인터넷상에 존재하는 리소스와 이에 대한 주소를 지정하는 HTTP와 XML 기반의 웹 통신기술

- 도메인 지향 데이터를 HTTP위에서 SOAP이나 쿠키기를 통한 세션 트래킹 같은 부가적인 전송 레이어 없이 전송하기 위한 간단한 인터페이스

 

2) REST의 특징

- 무상태(statelessness) : 웹서비스 제공 서버측에서 클라이언트의 상태정보를 저장, 관리하지 않는 것을 의미

- 리소스 중심의 표현, 전달, 접근방식의 특성으로 인해 리소스기반 아키텍처(ROA)라고 함

 

3)REST의 구성도

 

라. 시맨틱 웹서비스

1) 시맨틱 웹서비스의 정의

- 인터넷에 개발된 수많은 웹서비스를 보다 의미적으로 활용하기 위하혀 시맨틱 기술을 도입한 웹서비스

 

2) 시맨틱 웹서비스 기술

- 웹 서비스에 다양한 의미 정보를 부가하여 궁극적으로 의미적 검색을 통한 동적 서비스 조합을 실현하는데 필요한 요소 기술

 

마. 매쉬업

1) 매쉬업(Mashup)의 정의

- 웹(Web)으로 제공하고 있는 정보(information)와 서비스(service)를 융합하여 새로운 소프트웨어나 서비스, 데이터베이스 등을 만드는 것을 의미

 

2) 매쉬업의 특징

- 자료구축의 비용이나 개발비가 거의 들지 않음

 

3) 자사의 기술을 웹 서비스로서 API를 공개하는 경우가 많아짐에 따라 여기에 독자적 사용자 인터페이스(User Interface)를 융합하여 새로운 서비스를 제공함

 

바. Web 2.0과 SOA의 융합체, WOA의 개요

1) WOA(Web-Oriented Architecture)의 정의

- 월드와이드웹을 이루는 HTTP를 사용하면서도 SOAP보다 간단한 REST 프로토콜을 사용하여 URI 형태로 참조되면서 웹 서비스를 구현하는 개념

 

2) WOA의 특징

- 상태정보가 없는 C/S 구조

- 캐시 활용 옵션 : 정보의 반복적인 요청을 캐시에서 직접 응답 처리함

- 클라이언트에서 실행될 수 있는 코드 : 서버의 부하를 줄임

 

Ⅴ. SOA 2.0

가. Advanced SOA, SOA 2.0의 개요

- SOA에 이벤트기반아키텍처(EDA, Event Driven Architecture) 개념을 추가

 

나. EDA의 개요

1) EDA(Event Driven Architecture)의 정의

- 분산된 시스템 간에 이벤트를 생성, 발행하고 발행된 이벤트를 필요로 하는 수신자에게 전송, 필요에 따라 처리하는 시스템 아키텍처

 

2) EDA의 구성요소

- Event generator : 시스템 내,외부의 상태 변화를 감지하여 표준화된 형식의 이벤트를 생성

- Event channel : 이벤트를 필요로 하는 시스템까지 발송

- Event processing engine : 수신한 이벤트를 식별, 적절한 처리를 함. 때에 따라 이벤트 처리의 결과로 또 다른 이벤트를 발생시킬 수 있음.

 

3) EDA와 SOA의 차이점

- SOA : 동기화된 요청/응답 방식

- EDA : 비동기화된 배포/구독 방식

 

Ⅵ. 서비스간의 인터랙션을 진작하는 대표적 SOA기술, OSGi 의 개요

가.OSGi(Open Service Gateway Initiative)의 정의

- 가정 정보 기기 및 보안 시스템과 같은 인터넷 장비의 표준 연결 방법을 위해 OSGi 단체가 제안한 산업체 표준안

 

나. OSGi의 특징

1) SW Component Management : 자바 기반의 컴포넌트 구조로서 J2ME, J2SE, J2EE에서 작동이 가능한 환경

2)Remote Component Management : 번들을 업데이트하거나 업그레이드를 원격에서 관리하고 제어할 수 있음(번들: 배포, 관리의 기본단위로 OSGi에서 수행되는 SW 컴포넌트의 리소스)

 

다. OSGi의 구성도

 

라. OSGi의 구성요소

구성요소

설명

Class Loading

OSGi의 근간이 되는 번들을 정의하는 레이어

Life Cycle

번들이 어떻게 동적으로 설치되고 관리될 수 있는지 정의하는 레이어

Service

서비스 레지스트리를 통해 서비스를 등록하고 찾을 수 있도록 지원하는 레이어

Security Layer

자바의 보안 구조에 기반하고 있으며 패키지나 서비스에 대한 권한을 관리하거나 Digitally Signed JAR파일에 대한 지원을 해주는 레이어

JVM(Execution Environment)

번들이 실행될 수 있는 환경을 말하는 것으로 J2ME, J2SE등과 같은 환경

Bundles

왼쪽 위에 있는 Bundles는 레이어 개념이 아닌 OSGi의 레이어를 통하여 작성되고, 프레임워크에 올려진 실제 번들을 의미

 

 

Ⅶ. SOA 연관 기술 비교

가. SOA와 Web 2.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개발에 활용

 

댓글