service-oriented architecture in a nutshell

32
Service-Oriented Service-Oriented Architecture in a Architecture in a Nutshell Nutshell 발발발 발발발 : : 발발발 발발발 발발 발발 : 2006 : 2006 1 1 20 20

Upload: kim-jongseon

Post on 15-Dec-2014

1.061 views

Category:

Technology


3 download

DESCRIPTION

SOA에 대한 기본개념의 이해를 통해서 서비스 및 연구소의 발전방향에 대해서 모색해본다.

TRANSCRIPT

Page 1: Service-Oriented Architecture in a Nutshell

Service-Oriented Service-Oriented Architecture in a NutshellArchitecture in a Nutshell

발표자 발표자 : : 김종선김종선일시 일시 : 2006: 2006 년 년 11 월 월 2020일일

Page 2: Service-Oriented Architecture in a Nutshell

AgendaAgenda

SOASOA 의 소개 및 기술적인 패러다임의 소개 및 기술적인 패러다임 SOA SOA 참조 아키텍처 관찰참조 아키텍처 관찰 효율적으로 효율적으로 SOASOA 을 디자인하기 위한 을 디자인하기 위한

가이드라인가이드라인

Page 3: Service-Oriented Architecture in a Nutshell

개발 방법의 진화개발 방법의 진화

ObjectObject

FunctionFunction

ComponentComponent

ServiceService

DocumentDocument

Object -> OOD, OOSE, OODBObject -> OOD, OOSE, OODB

구조적 방법론구조적 방법론 ,information engineering, Flow-chart,information engineering, Flow-chart

DOA(Document Oriented Architecture)DOA(Document Oriented Architecture)

CBD, package softwareCBD, package software

SOASOA

비즈니스를 바라보는 시각의 변화비즈니스를 바라보는 시각의 변화

궁극적인 목적 궁극적인 목적 : : 사람들이 손으로 해왔던 기업 내의 사람들이 손으로 해왔던 기업 내의 비즈니스를 것을 어떻게 시스템화하느냐비즈니스를 것을 어떻게 시스템화하느냐 !!!!궁극적인 목적 궁극적인 목적 : : 사람들이 손으로 해왔던 기업 내의 사람들이 손으로 해왔던 기업 내의 비즈니스를 것을 어떻게 시스템화하느냐비즈니스를 것을 어떻게 시스템화하느냐 !!!!

Page 4: Service-Oriented Architecture in a Nutshell

IT IT 성숙 모델 성숙 모델

ProactiveProactive

ValuesValues

ServicesServices

ReactiveReactive

Fire FightingFire Fighting

The Gartner Group

•발등에 떨어진 불끄기발등에 떨어진 불끄기

•전산조직이 생김전산조직이 생김•스케줄링가능스케줄링가능

•전산조직에 의한 전반적인 관리전산조직에 의한 전반적인 관리•시스템일정관리 등의 대한 가이드라인시스템일정관리 등의 대한 가이드라인(( 예예 ) ERP() ERP( 현업의 비즈니스를 현업의 비즈니스를 ERPERP 에 맞춤에 맞춤 ))

• 서비스를 만들어놓으면 찾아서 사용서비스를 만들어놓으면 찾아서 사용• UDDIUDDI 에 웹 서비스 관련 정보 등록 가능에 웹 서비스 관련 정보 등록 가능 (( 예예 )) 예전에는 생소했던 사이트 검색예전에는 생소했던 사이트 검색

• 20102010 년 형성예상년 형성예상• 기업내의 기업내의 ITIT 조직에서 부가가치를 만들어냄조직에서 부가가치를 만들어냄 (( 예예 ) ) 월마트의 인공위성시스템월마트의 인공위성시스템 ->-> 주가상승주가상승

Page 5: Service-Oriented Architecture in a Nutshell

소프트웨어의 진화소프트웨어의 진화

Page 6: Service-Oriented Architecture in a Nutshell

애플리케이션 아키텍처의 진화애플리케이션 아키텍처의 진화

Clients

PCs

Web

Web Services

TMainframeDBMS

Business Logic

GUIClient/Server DBMSBusiness

LogicBusiness

Logic

BrowserMulti-Tier DBMSBusiness

Logic

Service-Oriented DBMS

Business Logic Business

Logic

Page 7: Service-Oriented Architecture in a Nutshell

SODASODAService Oriented Development ArchitectureService Oriented Development Architecture

Legacy WrappingReuse CultureProcess-Driven

Internet DeploymentHosted Culture

Dynamic Integration

Source : Gartner Research

Page 8: Service-Oriented Architecture in a Nutshell

SOA SOA 패러다임의 진화패러다임의 진화

Page 9: Service-Oriented Architecture in a Nutshell

SOA SOA 정의를 내려보면정의를 내려보면…… .. 서비스서비스 ::

WSDLWSDL 로 표현되고 로 표현되고 SOAPSOAP 을 통해 접근 을 통해 접근 가능한 하나 이상의 행위들의 집합 가능한 하나 이상의 행위들의 집합

서비스 지향 애플리케이션서비스 지향 애플리케이션 :: 하나 이상의 서비스를 통해 전부 또는 하나 이상의 서비스를 통해 전부 또는

일부의 기능을 제공하는 애플리케이션일부의 기능을 제공하는 애플리케이션

서비스 지향 아키텍처 서비스 지향 아키텍처 (SOA):(SOA): 서비스 지향 애플리케이션을 구축하거나 서비스 지향 애플리케이션을 구축하거나

사용하는 방법에 대한 가이드라인사용하는 방법에 대한 가이드라인

Page 10: Service-Oriented Architecture in a Nutshell

Public Public networknetwork(WEB)(WEB)

J2EE .NET

WSDLWSDL

SOAP

UDDI

Service RequesterService Requester Service ProviderService Provider

Service BrokerService Broker

PublishFind / Locate

Binding / interact / Invoke

XML

현재의 구현기술 현재의 구현기술 ::WebService ArchitectureWebService Architecture

Page 11: Service-Oriented Architecture in a Nutshell

Web services

Application B

Application A

Application C

Application D

Illustrating a Service-Oriented Illustrating a Service-Oriented EnvironmentEnvironment

Business Processes

Applications

New business process

New application

Page 12: Service-Oriented Architecture in a Nutshell

AgendaAgenda

SOASOA 의 소개 및 기술적인 패러다임의 소개 및 기술적인 패러다임 SOA SOA 참조 아키텍처 관찰참조 아키텍처 관찰 효율적으로 효율적으로 SOASOA 을 디자인하기 위한 을 디자인하기 위한

가이드라인가이드라인

Page 13: Service-Oriented Architecture in a Nutshell

Enterprise ApplicationEnterprise Application

비즈니스 목적과 요구 사항을 모두 만족시켜야 한다비즈니스 목적과 요구 사항을 모두 만족시켜야 한다 .. 급변하는 비즈니스 환경에 빠른 대처가 가능해야 한다급변하는 비즈니스 환경에 빠른 대처가 가능해야 한다 .. 수익성 있는 비즈니스 모델 반영수익성 있는 비즈니스 모델 반영 Business AgilityBusiness Agility

{{ 기업 구성원기업 구성원 }}nn

비즈니스 목적비즈니스 목적

= Business Agility= Business AgilityBusiness Application * tBusiness Application * t

Page 14: Service-Oriented Architecture in a Nutshell

Evolution to Service Oriented Evolution to Service Oriented

재사용 가능한 비즈니스 컴포넌트 설계재사용 가능한 비즈니스 컴포넌트 설계

CRM

파트너

물류 관리 시스템

고객 정보 시스템

CBD (Component Based Development)CBD (Component Based Development)

Why Service Oriented ?Why Service Oriented ?

Page 15: Service-Oriented Architecture in a Nutshell

분산 객체 기술 구현 예분산 객체 기술 구현 예

여신 관리 시스템

class Account {ProcessWithdraw (Account pDetail, Customer cust, Delivery delivery) { //}

}

class Account {ProcessWithdraw (Account pDetail, Customer cust, Delivery delivery) { //}

}

Account account = new Account();

account.ProcessWithdraw (pDetail, cust, delivery);

Account account = new Account();

account.ProcessWithdraw (pDetail, cust, delivery);

1. 원격 서버의 Account 객체 생성2. ProcessWithdraw method 호출3. 필요한 정보를 인자로 전달4. 결과 반환

Page 16: Service-Oriented Architecture in a Nutshell

플랫폼플랫폼 , , 벤더벤더 , , 버전버전 , , 시간시간 , , 공간에 종속된다공간에 종속된다 변경 및 업데이트가 힘들다변경 및 업데이트가 힘들다 확장 성이 떨어진다확장 성이 떨어진다 인간 친화적이지 못하며 설계가 힘들다인간 친화적이지 못하며 설계가 힘들다 (Function(Function 위주와 위주와 FlowFlow 로 구성하고 호출하여 처리로 구성하고 호출하여 처리 )) 유지 보수 비용이 증가한다유지 보수 비용이 증가한다 테스트가 힘들며 통합성이 떨어진다테스트가 힘들며 통합성이 떨어진다

분산 객체 기반 기술의 단점분산 객체 기반 기술의 단점Tightly Coupled ArchitectureTightly Coupled Architecture

Page 17: Service-Oriented Architecture in a Nutshell

단순 웹 서비스의 한계단순 웹 서비스의 한계

인코딩 방식인코딩 방식 , , 객체 수명객체 수명 , , 컴포넌트 서비스가 플랫폼컴포넌트 서비스가 플랫폼 , , 벤더벤더 , , 버전 별로 다름버전 별로 다름

플랫폼 간 통합 커넥터플랫폼 간 통합 커넥터 , , 프록시 생성 요구프록시 생성 요구

방화벽을 통과하는 방화벽을 통과하는 RPC RPC 이상이 되지 못함이상이 되지 못함 벤더 종속적이며 인프라 어플리케이션의 영속성 개선이 벤더 종속적이며 인프라 어플리케이션의 영속성 개선이

약함약함

결과적으로 분산 컴포넌트 방식은 현재 기업 구조를 결과적으로 분산 컴포넌트 방식은 현재 기업 구조를 반영하지 못함반영하지 못함

Page 18: Service-Oriented Architecture in a Nutshell

기술특징 기술특징 #1 #1 Course-grained Business InterfaceCourse-grained Business Interface

매장 점원매장 점원 손님손님안녕하세요안녕하세요 ?? 캠코더 있어요캠코더 있어요 ??

어디 것으로어디 것으로 ?? ABCABC 사 것으로사 것으로……

모델은 요모델은 요 ?? DC DC 시리즈로시리즈로구입 후구입 후 , , 카드카드 , , 현금 등을 통해 지급현금 등을 통해 지급

VS.VS.

카탈로그 습득카탈로그 습득 상품 표기상품 표기 , , 주문자 표시 주문자 표시

카탈로그 전송카탈로그 전송 대금 결제대금 결제

Page 19: Service-Oriented Architecture in a Nutshell

Service GranularityService Granularity

Looser coupling requiredLooser coupling required

Looser couplingLooser couplingdesireddesired

Looser coupling ?Looser coupling ?

Add orderAdd orderRelease orderRelease order

Add order headerAdd order headerrelease order itemrelease order item

Order processOrder processmanagermanager

Order processOrder processmanagermanager

Location.ValidateLocation.Validate

LocationLocationcomponentcomponent

PostcodePostcodecomponentcomponent

AddressAddressmanagermanager

Gran

ularity

Gran

ularity

Gran

ularity

Gran

ularity

Coarse-Coarse-

grainedgrained

Fine-Fine-

grainedgrained

Page 20: Service-Oriented Architecture in a Nutshell

기술특징 기술특징 #2#2Loosely Coupled ArchitectureLoosely Coupled Architecture

기술 독립적인 비즈니스 인터페이스기술 독립적인 비즈니스 인터페이스 인터페이스 변경에 보다 유연하게 적응인터페이스 변경에 보다 유연하게 적응 적은 네트워크 라운드 트립적은 네트워크 라운드 트립 조정 가능한 캐싱조정 가능한 캐싱 , , 머징머징 안정적안정적 , , 스케일러블 서비스 가능스케일러블 서비스 가능 인간 친화적 어플리케이션 분석 설계인간 친화적 어플리케이션 분석 설계 오피스 자원의 어플리케이션 수준 활용오피스 자원의 어플리케이션 수준 활용

기간 어플리케이션 재 사용 및 영속성 보장기간 어플리케이션 재 사용 및 영속성 보장

성능 향상 성능 향상 가능성가능성

Page 21: Service-Oriented Architecture in a Nutshell

Reference ArchitectureReference Architecture

View, Control LayerView, Control Layer

Persistent LayerPersistent LayerDataDataAccessorsAccessors

Business Logic LayerBusiness Logic LayerBusiness Business ComponentComponent

ModelModel

DispatcherDispatcher웹 서버웹 서버

WASWAS

TPMTPM

Conceptual ModelConceptual Model Technical ModelTechnical Model

Web ApplicationWeb Application

Page 22: Service-Oriented Architecture in a Nutshell

모 바 일모 바 일

디 바 이 스디 바 이 스

쇼 핑 몰쇼 핑 몰

어 플 리 케 이 션어 플 리 케 이 션

Business Service Business Service Reference Architecture Reference Architecture (Conceptual Model)(Conceptual Model)

X-X- 인터넷인터넷 (( 프리젠테이션 레이어프리젠테이션 레이어 ))UI UI 컴포넌트컴포넌트

UI UI 프로세스 컴포넌트프로세스 컴포넌트

문서 지향 서비스 인터페이스문서 지향 서비스 인터페이스

비즈니스 비즈니스 엔티티 레이어엔티티 레이어

비즈니스 비즈니스 엔티티엔티티

비즈니스 비즈니스 컴포넌트컴포넌트

데이터 데이터 액세스 레이어액세스 레이어

데이터 액세스 데이터 액세스 로직 컴포넌트로직 컴포넌트

서비스 서비스 에이전트에이전트

비 즈 니 스 프 로 세 스 서 비 스비 즈 니 스 프 로 세 스 서 비 스

<?xml version='1.0'?><Account Id="001" > <AccountDetail AccountId ="00A">

<?xml version='1.0'?><Account Id="001" > <AccountDetail AccountId ="00A">

<?xml version='1.0'?><Account Id="001" > <AccountDetail AccountId ="00A">

<?xml version='1.0'?><Account Id="001" > <AccountDetail AccountId ="00A">

<?xml version='1.0'?><Account Id="001" > <AccountDetail AccountId ="00A">

<?xml version='1.0'?><Account Id="001" > <AccountDetail AccountId ="00A">

중 소 기 업 고 객 관 리중 소 기 업 고 객 관 리

Connector

<?xml version='1.0'?><Account Id="001" > <AccountDetail AccountId ="00A">

<?xml version='1.0'?><Account Id="001" > <AccountDetail AccountId ="00A">

비즈니스비즈니스워크플로우워크플로우

개 인 고 객 관 리개 인 고 객 관 리

메 인 프 레 임메 인 프 레 임

Page 23: Service-Oriented Architecture in a Nutshell

Business Service Business Service Reference Architecture Reference Architecture (Infrastructure Model)(Infrastructure Model)

Page 24: Service-Oriented Architecture in a Nutshell

웹 서비스 아키텍처 개요웹 서비스 아키텍처 개요

컴포넌트 아키텍처

서비스 아키텍처

컴포넌트 아키텍처

Source: CBDi Forum

워크 플로우 , 선행 / 후행 조건서비

스 사

용자

서비

스 제

공자

비즈니스 프로세스

비즈니스 서비스 버스

Page 25: Service-Oriented Architecture in a Nutshell

더욱 유연해진 비즈니스 환경더욱 유연해진 비즈니스 환경

HTTP/HTMLHTTP/HTML

HTTP/HTML

HTTP/HTML

인터넷 쇼핑몰

배송 업체

XML Web Service

XML Web ServiceXML W

eb Serv

ice

XML Web S

ervice

XML Web ServiceXML Web Service

XML Web Service

XML Web Service

금융 기관

창고 업체

B2B, A2A, EAI, P2P, 파트너 통합

B2C

다양한 디바이스

XML Web Service

XML Web Service

B2C

브라우저 기반

Page 26: Service-Oriented Architecture in a Nutshell

AgendaAgenda

SOASOA 의 소개 및 기술적인 패러다임의 소개 및 기술적인 패러다임 SOA SOA 참조 아키텍처 관찰참조 아키텍처 관찰 효율적으로 효율적으로 SOASOA 을 디자인하기 위한 을 디자인하기 위한

가이드라인가이드라인

Page 27: Service-Oriented Architecture in a Nutshell

서비스 지향 어플리케이션 개발 순서서비스 지향 어플리케이션 개발 순서

비즈니스 도메인 분석비즈니스 도메인 분석OLACustomer

Identify Entertainm

ent Item

Confirm Customer

IdentitySell Entertainment Item

Take Remote Payment

Identify Customer

Submit Membersh

ip Informatio

n

WEP Solution

비즈니스 서비스 버스 설계비즈니스 서비스 버스 설계

«interface»:Stock::IStock

«user»Instance

:Product Catalog

OnSearchSearchForItem( In SearchCriteriaXML, out ProductResultsXML )SearchForItem( In SearchCriteriaXML, out ProductResultsXML )

OnGetDetailsGetProductDetails( In ProductSelectedXML, out ProductDetailsXML )GetProductDetails( In ProductSelectedXML, out ProductDetailsXML )

메시지 설계 메시지 설계 : : XML, XSD, SOAP, WSDL, XML, XSD, SOAP, WSDL, 기타 확장 표준 기타 확장 표준

구현 구현 : .NET & J2EE, WSDK, SOAP ToolKit: .NET & J2EE, WSDK, SOAP ToolKit

퍼블리싱 퍼블리싱 : : UDDIUDDI

Page 28: Service-Oriented Architecture in a Nutshell

Looking For BoundariesLooking For Boundaries

Browse Products

Select Products

Agree Delivery

Provide Payment

Place Order

Catalogue

Authorise Credit

Record Order

Post transaction

Schedule Delivery

Check Stock

Update Stock

Replenish Stock

Record Order

Check Customer

Identify Customer

E-Commerce Storefront System

Outsourced Logistics

Existing Sales System

General Ledger

Supplier(s)

Credit Agency

Update Catalogue

Security, identity requirements?

Transport?

Message structure?

When?

External Internal

Pre/post conditions?

Behaviour?

Interface?

XM

L W

eb S

erv

ice

s

Native Platform Communications

Source: CBDDi forum - Microsoft

Page 29: Service-Oriented Architecture in a Nutshell
Page 30: Service-Oriented Architecture in a Nutshell
Page 31: Service-Oriented Architecture in a Nutshell

ReferenceReference

1.1. Zapthink, Zapthink, http://www.zapthink.com/, Oct. , Oct. 31, 200531, 2005

2.2. Gartner, Gartner, http://www.gartner.com/

3.3. Microsoft, Microsoft, http://www.microsoft.com/

4.4. SUN, SUN, http://www.sun.com

5.5. 마이크로소프트웨어마이크로소프트웨어 , “, “ 비주얼 스튜디오 비주얼 스튜디오 20052005 를 이용한 를 이용한 SOASOA 구축과 개발”구축과 개발” , Nov. , Nov. 9, 20059, 2005

Page 32: Service-Oriented Architecture in a Nutshell

ppaaggee 3322