서비스 지향 아키텍쳐 (soa)

44
대대대 대대대대 대대 대대대 대대 대대대대

Upload: terry-cho

Post on 16-Apr-2017

1.814 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: 서비스 지향 아키텍쳐 (SOA)

대용량 아키텍쳐 설계서비스 지향 아키텍쳐

Page 2: 서비스 지향 아키텍쳐 (SOA)

# 목표“ 백앤드 아키텍쳐에 많은 영향을 준 서비스 지향 아키텍쳐에 대해서 알아본

다 .”

SOA 는 XML 기반의 웹서비스로 오역되어 있지만 , SOA 는 아키텍쳐 스타일 뿐이다 . 근래에 유행하는 REST API 나 마이크로 서비스 아키텍쳐들은 SOA 에 근간을 두고 있다 .

Page 3: 서비스 지향 아키텍쳐 (SOA)

기본 개념의 이해

#1

Page 4: 서비스 지향 아키텍쳐 (SOA)

4

오늘 SOA 를 보는 이유 ?

• SOA 는 2000 년대 초반에 부각된 아키텍쳐 스타일• 세부 구현 기술은 변했으나 , 현대의 분산 시스템의 아키텍쳐 사상으로 그대로 반영되고

있음• SOA 의 본질적인 개념을 파악하여 대용량 분산 시스템 구현에 활용

Page 5: 서비스 지향 아키텍쳐 (SOA)

5

목 차1. SOA 의 기본 개념2. 서비스란 ?

3. SOA 아키텍쳐 발전 모델4. SOA 아키텍쳐 구현시 고려 사항5. SOA 수행 전략6. 결론

Page 6: 서비스 지향 아키텍쳐 (SOA)

SOA 의 기본 개념

#1

Page 7: 서비스 지향 아키텍쳐 (SOA)

7

엔터프라이즈 시스템의 발전

Approach Timeframe Development Model Business Motivations

Mainframe 1960s – 1980s Procedural (COBOL) Automated Business

Client-server 1980s – 1990s Database(SQL),Fat Client (Visual Basic) Computing On the Desktop

N-Tier model and the Web 1990s – 2000s

Component or Object-Oriented

(EJB, COM)Internet and e-Business

Service Oriented 2000s – for the time being Service-Oriented Business Agility

• IT 시스템의 패러다임의 변화

Page 8: 서비스 지향 아키텍쳐 (SOA)

8

WHAT IS SOA?

• SOA (Service Oriented Architecture) 란 ?• 기존의 애플리케이션의 기능들을 비지니스적인 의미를 가지는 기능 단위로 묶어서 표준화된 호출

인터페이스를 통해서 서비스로 구현하고 , 이 서비스들을 기업의 업무에 따라 조합하여 애플리케이션을 구성하는 소프트웨어 개발 아키텍쳐

EJB

POJO

RULE 엔진 메인프레임 TP Monitor

고객 정보 조회 대출 심사 계좌 이체 대출내역관리

고객정보 조회 대출 심사 계좌 이체 대출 내역 관리

개인 신용 정보 대출 가능 금액대출 금리

계좌 정보

대출 내용이체 내용

업무 시스템을 업무적인의미를 갖는 컴포넌트로묶은후 업무 기능을 표준 인터페이스로 제공하는 서비스 구현

서비스를 조합하여업무를 구현함

서비스 조합

서비스화

Page 9: 서비스 지향 아키텍쳐 (SOA)

9

WHY SOA?

• SOA 가 주목 받는 이유• 웹서비스의 등장 (CORBA,DCOM 등의 기술적 복잡도를 낮춤 ) 기술적인 대안 등장• 점점 확장되어가는 독립된 업무 시스템 통합에 대한 요구• 기업의 비즈니스 속도가 빨라져 감에 따라 IT 시스템의 업무 변화에 대한 민첩한 대응력이 필요하게 됨

민첩성에 대한 요구

Page 10: 서비스 지향 아키텍쳐 (SOA)

서비스

#2

Page 11: 서비스 지향 아키텍쳐 (SOA)

11

서비스의 정의• 서비스란 ?

• 플랫폼에 종속되지 않는 표준 인터페이스를 통해서 기업의 업무를 표현한 Loosely Coupled 하고 상호 조합 가능한 소프트웨어 컴포넌트

• 서비스의 예시• 임직원정보 서비스• 계좌이체 서비스• 상품 주문 서비스

• 서비스로 적절하지 않은것• JNDI Lookup• SMTP 이메일 클라이언트

Page 12: 서비스 지향 아키텍쳐 (SOA)

12

서비스의 개념• 서비스 구성

• 비즈니스적 의미를 가지는 기능 (Method) 들을 모아놓은 소프트웨어 컴포넌트이다 .

주문서비스

주문 정보 := 상품 주문 ( 주문자 정보 , 주문내용 , 결재 내용 )주문 정보 :=주문 내용 조회 ( 조회 조건 )

서비스 인터페이스- 비지니스적 의미를 가짐-Coarse grained

# 서비스 : 주문 서비스# 위치 : http://cjeishopping/OrderService

# 데이터 타입 정의주문자 정보 { 이름 : 문자열 주민번호 : 문자열 :}

주문내용 { 반복 [ 물품번호 , 수량 ]}:# 인터페이스 정의메서드 : 상품 주문입력값 : 주문자 정보 , 주문내용 , 결제 내용출력값 : 주문 정보

서비스 사용 규약(Service Contract)

서비스

Page 13: 서비스 지향 아키텍쳐 (SOA)

13

서비스의 특징• 서비스의 특징

• Vertical Slicing• Has standard based interface • Loosely coupled• Composable• Coarse grained• Discoverable

EJB

POJO

EJB

MODELMODEL

DAO DAO DAO

EJB

ADO

DCOM

MODEL

비즈니스컴포넌트

모델컴포넌트

DAO

횡적분할Horizontal Slicing

고객 신상 정보 조회

신용도 조회 포인트조회 재고 처리

수직적 분할Vertical Slicing

Page 14: 서비스 지향 아키텍쳐 (SOA)

14

서비스 구성• 서비스의 구성

• 서비스 규약 (Contract)ex) WSDL

• 서비스 인터페이스• 서비스 구현체 (Implementation)

데이터와 비지니스로직을 모두 포함

Page 15: 서비스 지향 아키텍쳐 (SOA)

15

서비스의 종류• 비즈니스 서비스

• 일반적으로 SOA 에서 정의하는 서비스• Task centric service EJB Session Bean• Data centric service EJB Entity Bean

※ 서비스의 종류 분류 기준 Enterprise SOA - DIRK KRAFZIG / Prentice hall

Page 16: 서비스 지향 아키텍쳐 (SOA)

서비스의 종류• Intermediary 서비스

• Routing• Transformation• Functional adding• Façade etc.

16

백화점 구매 구매 프로세스

백화점 구매 Intermediary서비스일반 고객

VIP 고객총 구매 금액 > 1000 만원Routing

백화점 구매 구매 프로세스 구매자 이름 , 구매액 , 물품목록

구매자 이름 , 구매 내용

Intermediary서비스백화점 구매구매 내용 = 구매액 + 물품목록

서비스 메시지 항목이 변경되거나호출 포맷이 맞지 않음

Transformation

새로운구매 프로세스

백화점 구매 구매 프로세스

백화점 구매 구매 프로세스Intermediary서비스

포인트 적립

FunctionalAdding

* 채널 시스템

Page 17: 서비스 지향 아키텍쳐 (SOA)

17

서비스의 종류• Process Centric 서비스

• 비즈니스 서비스를 조합 (Orchestration)• 업무 프로세스를 구현• 상태 정보가 있을 수 있음 (Stateful)

고객 심사 시스템

심사관 이체시스템

대출 신청

대출 승인

데이터 조회성 서비스Data centric service

비즈니스 기능성 서비스Task centric service

Page 18: 서비스 지향 아키텍쳐 (SOA)

18

서비스 종류 요약• Application 서비스

• 테크니컬한 기능을 구현한 서비스예 ) Load Balancing 서비스 , Transaction 관리 서비스 , Service adapter, 보안 인증 , Docu-

ment Parsing, Logging etc

• Public Enterprise 서비스• 타기업이나 외부 시스템으로 서비스를 제공하고자할때 정의됨• 보안 , 과금 , 성능등이 고려됨예 ) 금융권 대외계 업무

Page 19: 서비스 지향 아키텍쳐 (SOA)

19

서비스 종류 요약Application Service Business Service Intermediary Service Process centric Ser-

vicePublic Enterprise Ser-vice

Description Express technology-specific functionality

Contains business logic and data.

Bride the gap from concept or design

Encapsulate business process and orches-trate other services

Export business logic to other enterprise or organization

Sub category Wrapper svcUtility svc

Task centric ,Entity centric

Façade,Function Adding,Routing,Transforming

Process centric

State mgmt No No No Yes NoReusability ?? High Low Very Low HighMandatory in SOA No Yes No No No

Note Most Important Service* Hybrid svc

It needs when new service or new ser-vice connection is made

Page 20: 서비스 지향 아키텍쳐 (SOA)

SOA 아키텍쳐 발전 모델

#3

Page 21: 서비스 지향 아키텍쳐 (SOA)

21

SOA 단계적 발전구조• SOA 는 시스템의 규모와 업무적 요구 사항에 따라 다음 3 단계 순서로 발전할 수 있다 .

• Fundamental SOA • Networked SOA • Process Oriented SOA

Page 22: 서비스 지향 아키텍쳐 (SOA)

Fundamental SOA

• 기존 시스템들을 서비스화하여 , 각 시스템들을 통합하는 단계• 서비스화와 통합이 중점 전체를 한 시스템화함• 서비스에 대한 조합 Application Front End 에서 담당• 비즈니스 서비스 + Application 서비스로만 구성됨

22

T TT

D D D D D

A A A

BT

Web Client, Rich Client, Enterprise Portal etc

< Fundamental SOA 개념도 >

Application service

Data centric service

Task centric service

Application front end

Software component or Legacy ※ 서비스 아답터기존의 Legacy 시스템의 기능을 웹서비스화 해주는 솔루션EX) SALT (Tuxedo to WebService) IWAY 아답터 시리즈 (CICS,SAP,Siebl

Page 23: 서비스 지향 아키텍쳐 (SOA)

Fundamental SOA

• Fundamental SOA 예제

23

웹 클라이언트 XML/HTTPServlet EJB + IBatis

Spring

기업포탈Application Front End

Service

HTTP Servlet+ XML Solution EJB Tuxedo웹 클라이언트

WebService EJB

Tuxedo

FLEX

WebServiceAdapter

Page 24: 서비스 지향 아키텍쳐 (SOA)

24

Networked SOA

• Fundamental SOA 의 문제점• 시스템의 크기가 증가함에 따라 서비스와 서비스 , 서비스와 Application Front End 단의 연결이 매우 복잡해짐 ( 거미줄식

P2P 연결 )• 시스템의 유연성이 떨어짐• 관리 및 중앙 통제에 있어서 문제가 발생

• Networked SOA• SOA 시스템의 가운데 서비스 허브 (ESB:Enterprise Service Bus) 를 둬서 서비스의 중앙 통제력 및 유연성을 강화함• Intermediary 서비스가 ESB 에 위치함

Applicationfront end

ServicesServices

Application front end

ESB

Intermediary service

Fundamental SOA Networked SOA라우팅변환로깅서비스 통제 등

Page 25: 서비스 지향 아키텍쳐 (SOA)

Process Oriented SOA

• Process Oriented SOA• 비즈니스 플로우 (Business Flow) 가 있을 경우에만 적용• 서비스의 조합을 통한 업무의 구현을 BPM 을 이용함• 업무 ( 기능 ) 변화에 매우 민첩하게 반응 가능 (Agility)• 기술조직과 비즈니스 조직간의 의사 소통이 원할함CF. BPA, BPM

25고객 심사 시스템 심사관 이체시스템

대출 신청 대출 승인

서비스

ESB

BPM

Page 26: 서비스 지향 아키텍쳐 (SOA)

Process Oriented SOA

26

Process Modeling, Simulation and Documentation

Process Management and Real-Time BAM

Historical & Trend Analysis Tools

BusinessOwners

HiPer Workspace

ProcessParticipants

Process Server and Monitoring Repository

AquaLogic BPMEnterprise Server

BusinessSystems

CRMDB

ERP

BusinessAnalysts

Use Cases1.0 Get the stuff2.0 Build the picture3.0 BAM Consoles

Requirements1.1 Process Diagram2.1 Launch screen3.1 Monitoring screen

ProcessAnalyst Process

Developmentand Systems Integration

BPA

BAM

BPMStart

Page 27: 서비스 지향 아키텍쳐 (SOA)

SOA reference structure

• Reference architecture

27

Fundamental SOA

Networked SOA

Process OrientedSOA

Page 28: 서비스 지향 아키텍쳐 (SOA)

28

SOA 단계적 발전 단계

Page 29: 서비스 지향 아키텍쳐 (SOA)

SOA 구현시 고려 사항

#4

Page 30: 서비스 지향 아키텍쳐 (SOA)

30

서비스화• Service Adapter 고려

• 기존의 서비스를 손쉽게 웹서비스화 하기 위해서는 Service Adapter 의 도입을 고려• Ant Task 등을 이용한 EJB,POJO 의 자동 웹서비스화• Adapter 를 이용한 Tuxedo,SAP 등의 Legacy 자동 웹서비스화

• 서비스 인터페이스 표준 결정• 인터페이스 표준을 어떤것을 사용할것인가 ?

• 웹서비스 ? CORBA? XML/HTTP? 확장성 , 기술 도입 편이성 , 호환성• 웹서비스의 경우

웹서비스의 확장 규격인 WS* (WS-Transaction,WS-Coordination,WS-Security etc) 을 사용할 경우 Service Adapter별로 지원하는 수준이 다름

Page 31: 서비스 지향 아키텍쳐 (SOA)

31

트렌젝션 처리• 표준 Webservice 스펙으로는 서비스간 트렌젝션 관리가 불가• 전체 서비스중 트렌젝션 연계가 필요한 업무는 10% 미만 (Enterprise SOA- DIRK KRAFZIG)

• 방안1. WS* 중 WS-Transaction & WS-Coordination 을 통해서 구현가능 아직 솔루션들에서 완벽하게 지원하지 않음

2. EAI 를 통한 Transaction 이 보장되는 Tightly coupled service 구성3. Compensation Transaction( 보상 트렌젝션 ) 등 대안 구현4. 서비스별 Logging

Page 32: 서비스 지향 아키텍쳐 (SOA)

32

보안• 인증과 권한

• 분산된 서비스에 대한 통합된 사용자 인증과 권한 관리 필요• 암호화

• 암호화 방법 ( 대칭키 , 비대칭키 ) 결정• 암호화 범위 결정

• 전체 메시지를 암호화 할것인가 ? 메시지 내용중 중요 데이터만 암호화 할것인가 ?• 암호화할 내용을 메시지 헤더에 넣을것인가 ? BODY 에 넣을것인가 ?

Page 33: 서비스 지향 아키텍쳐 (SOA)

33

모니터링• 모니터링

• 각 서비스의 성능 / 용량 데이터 필요• 서비스들을 조합하여 새로운 업무를 구현하고자 할때 업무의 수행시간과 가용 사용자를 예측할 수 있어야 함• 이를 위한 성능 데이터 수집이 필요

• 서비스 간 연동시 병목 구간 추적 필요• 장애시에 병목 구간에 대한 원인 추적을 위해 필요

• 로깅• 어느 수준 ( 단위 )까지 로그를 남길것인가 ? 업무 ? 서비스 ?• 어디에 로그를 저장할것인가 ? 각각 시스템 ? 중앙 집중형 ?

Page 34: 서비스 지향 아키텍쳐 (SOA)

34

서비스 검색• 서비스를 조합하여 업무를 구현하고자 할 때 서비스를 검색할 수 있어야 함

• 운영시 서비스 검색 (UDDI)• 서비스의 위치와 서비스 명세 (WSDL)• 그외 메타 정보 ( 과금 , 권한 , 보안 규약 etc)

• 개발시 서비스 검색 (Enterprise Repository)• 개발시에 서비스를 개발이나 수정할 경우 , 서비스 구현에 필요한 Resource 를 찾을 수 있어야 함• 분석 ,설계 명세 ,LIB,source code,DB 정보• 서비스 버전 관리

Page 35: 서비스 지향 아키텍쳐 (SOA)

어떻게 SOA 를 수행할것인가 ?

#5

Page 36: 서비스 지향 아키텍쳐 (SOA)

36

SOA 수행 방법• SOA 프로젝트를 수행함에 있어서 , 각 관점에 따른 진행 전략

• 전략• 비용• 통제• 프로젝트 관리• 레퍼런스 아키텍쳐

Page 37: 서비스 지향 아키텍쳐 (SOA)

37

전략• 기업의 장기적인 비즈니스 전략에 따라 IT 시스템을 전략 적용 단계에 맞춰서 개발

• 기존 비즈니스 각 전략 단계별로 각각의 독립된 시스템을 따로 개발• SOA 하나의 SOA 시스템에 비즈니스 전략에 따라 해당 기능을 추가해 나감

• 서비스의 우선순위와 SOA 화 범위를 비즈니스 전략의 실행단계에 맞춰서 정의* 기업 전략2004 년 매출 증대2005 년 고객 만족 실현2006 년 브랜드 이미지 관리* SOA 전략2004 년 매출 내용 전산화2005 년 CRM 도입을 통한 고객 정보 수집과 매출 내용을 기반으로 고객 패턴 추출2006 년 수집된 고객 정보를 토대로 마케팅 집중

Page 38: 서비스 지향 아키텍쳐 (SOA)

38

레퍼런스 아키텍쳐• 전체 기업 업무를 단일 시스템으로 운영하기 위한 플랫폼이 필요• SOA 레퍼런스 아키텍쳐

• Fundamental SOA• Networked SOA• Process Oriented SOA• Google 과 Naver 의 SOA 전략• Adobe 기반의 SOA+ 보안 인증 , Application Front end, Service repository

• SOA 시스템의 크기 , 기업 시스템의 SOA 화 , 기업 비즈니스 전략에 따라서 지속적으로 레퍼런스 아키텍쳐 ( 플랫폼 ) 을 발전 시켜 나감

Page 39: 서비스 지향 아키텍쳐 (SOA)

39

제어 통제• 제어 통제가 필요한 이유 ( 대부분 이것 때문에 실패했음 )

• 전체 IT 시스템을 SOA 화 함에 따라 장기적인 중앙 통제 그룹과 관리 도구가 필요함• 통제 조직

- SOA 시스템에 대한 정책 수립 및 표준화 - Standard- SOA 관련 기술 전파 및 가이드 - Evangelist- SOA 구축 계획 수립 및 실행 ( 로드맵 )- Strategy- 자금 조달 및 집행 계획 - 업무 분석 및 설계- 문화 변화 IT 조직과 비즈니스 협업 조직의 협업문화 개발- 모범사례 수집과 배포

Page 40: 서비스 지향 아키텍쳐 (SOA)

40

제어 통제• 통제 도구

• ESB & 모니터링 툴- 서비스의 상태 , 사용 현황 , 성능등을 중앙 관리

• UDDI (Run-time)- 배포 서비스의 검색 , 위치 정보- 메타 정보 ( 가격 , 보안 정책 등 )

• Enterprise Repository (Implementation-time)- 서비스 개발에 필요한 사항 ( 분석 ,설계 내용 , 패턴 , 개발정책 , 라이브러리 , 소스 )- 서비스 개발 및 배포전 승인 프로세스- 프로젝트 일정 관리등- 버그 트랙킹 시스템 등

Page 41: 서비스 지향 아키텍쳐 (SOA)

41

비용• 초기 플랫폼을 구축하는 데 비교적 많은 비용이 소요됨• 서비스를 재사용 재조합하여 새로운 업무를 구현함으로써 , 처음부터 개발하는 기존

시스템에 비해서 시스템이 성숙화 되어감에 따라 개발 비용이 감소함• 중앙 통제와 제어를 통해서 유지보수 비용이 감소함

A

B

C

D

E

F

G

1 2 3

1 3 4 5

6 7 5

2 7 8 9

10 117

8 1210

3 1191 7

119

서비스

애플리키이션

4,5 만 신규 개발

6,7 만 신규 개발

8,9 만 신규 개발

10 과 11 만 신규 개발

12 만 신규 개발

신규 개발 없음

Page 42: 서비스 지향 아키텍쳐 (SOA)

42

프로젝트 진행• 반복적 개발 모델

• 업무를 개발해서 운영 하면서 점진적으로 업무에 맞도록 개선 및 변경해나가면서 시스템의 성숙도를 늘려감 BPABPMBAM

• 각 단위 서비스 업그레이드를 통해서 가능• Thin Thread Model

CF. 수직적 분할에 따른 개발

개발 경험으로 다음 모듈 개발

개발 경험으로 다음 모듈 개발

한 업무에 대한 기능을 모델 , 비즈니스 , 프리젠테이션을 포함해서 모두 개발 미리 검증 가능 ( 파일럿 ) 경험 축척

미진한 부분을보강해 나감

[ 반복적 개발 모델 ]

[ Thin Thread Model ]

Page 43: 서비스 지향 아키텍쳐 (SOA)

43

결론• SOA 는 이미 녹아들어있다 .

- 의도를 했건 안했건 현재 시스템들은 SOA 적인 성격을 가지는 경우가 많다 .

• 기업의 업무 환경과 요구에 맞는 단계적인 SOA 적용이 필요- 현재 단계에서 ESB,BPM 이 필요한가 ?

- SOA 단계적 발전 모델• 서비스 개발에 대한 통제와 관리 시스템 구축 (Governance Tool) 필요

- 개발 시작 단계에서 부터 서비스 개발에 대한 표준 , 재사용을 위한 Repository 관리 필요- UDDI,CVS 에서 부터라도 시작

Page 44: 서비스 지향 아키텍쳐 (SOA)

44

현대의 웹 분산 아키텍쳐• 구현 기술의 변화

• ESB API Platform• UDDI API Portal• SOAP JSON/HTTP• WebService REST

• 세부 구현 기술은 변했을지라도 , 기반 아키텍쳐 사상은 그대로 적용됨