Service-Oriented Architecture in a Nutshell
-
Upload
kim-jongseon -
Category
Technology
-
view
1.061 -
download
3
description
Transcript of Service-Oriented Architecture in a Nutshell
Service-Oriented Service-Oriented Architecture in a NutshellArchitecture in a Nutshell
발표자 발표자 : : 김종선김종선일시 일시 : 2006: 2006 년 년 11 월 월 2020일일
AgendaAgenda
SOASOA 의 소개 및 기술적인 패러다임의 소개 및 기술적인 패러다임 SOA SOA 참조 아키텍처 관찰참조 아키텍처 관찰 효율적으로 효율적으로 SOASOA 을 디자인하기 위한 을 디자인하기 위한
가이드라인가이드라인
개발 방법의 진화개발 방법의 진화
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
비즈니스를 바라보는 시각의 변화비즈니스를 바라보는 시각의 변화
궁극적인 목적 궁극적인 목적 : : 사람들이 손으로 해왔던 기업 내의 사람들이 손으로 해왔던 기업 내의 비즈니스를 것을 어떻게 시스템화하느냐비즈니스를 것을 어떻게 시스템화하느냐 !!!!궁극적인 목적 궁극적인 목적 : : 사람들이 손으로 해왔던 기업 내의 사람들이 손으로 해왔던 기업 내의 비즈니스를 것을 어떻게 시스템화하느냐비즈니스를 것을 어떻게 시스템화하느냐 !!!!
IT IT 성숙 모델 성숙 모델
ProactiveProactive
ValuesValues
ServicesServices
ReactiveReactive
Fire FightingFire Fighting
The Gartner Group
•발등에 떨어진 불끄기발등에 떨어진 불끄기
•전산조직이 생김전산조직이 생김•스케줄링가능스케줄링가능
•전산조직에 의한 전반적인 관리전산조직에 의한 전반적인 관리•시스템일정관리 등의 대한 가이드라인시스템일정관리 등의 대한 가이드라인(( 예예 ) ERP() ERP( 현업의 비즈니스를 현업의 비즈니스를 ERPERP 에 맞춤에 맞춤 ))
• 서비스를 만들어놓으면 찾아서 사용서비스를 만들어놓으면 찾아서 사용• UDDIUDDI 에 웹 서비스 관련 정보 등록 가능에 웹 서비스 관련 정보 등록 가능 (( 예예 )) 예전에는 생소했던 사이트 검색예전에는 생소했던 사이트 검색
• 20102010 년 형성예상년 형성예상• 기업내의 기업내의 ITIT 조직에서 부가가치를 만들어냄조직에서 부가가치를 만들어냄 (( 예예 ) ) 월마트의 인공위성시스템월마트의 인공위성시스템 ->-> 주가상승주가상승
소프트웨어의 진화소프트웨어의 진화
애플리케이션 아키텍처의 진화애플리케이션 아키텍처의 진화
Clients
PCs
Web
Web Services
TMainframeDBMS
Business Logic
GUIClient/Server DBMSBusiness
LogicBusiness
Logic
BrowserMulti-Tier DBMSBusiness
Logic
Service-Oriented DBMS
Business Logic Business
Logic
SODASODAService Oriented Development ArchitectureService Oriented Development Architecture
Legacy WrappingReuse CultureProcess-Driven
Internet DeploymentHosted Culture
Dynamic Integration
Source : Gartner Research
SOA SOA 패러다임의 진화패러다임의 진화
SOA SOA 정의를 내려보면정의를 내려보면…… .. 서비스서비스 ::
WSDLWSDL 로 표현되고 로 표현되고 SOAPSOAP 을 통해 접근 을 통해 접근 가능한 하나 이상의 행위들의 집합 가능한 하나 이상의 행위들의 집합
서비스 지향 애플리케이션서비스 지향 애플리케이션 :: 하나 이상의 서비스를 통해 전부 또는 하나 이상의 서비스를 통해 전부 또는
일부의 기능을 제공하는 애플리케이션일부의 기능을 제공하는 애플리케이션
서비스 지향 아키텍처 서비스 지향 아키텍처 (SOA):(SOA): 서비스 지향 애플리케이션을 구축하거나 서비스 지향 애플리케이션을 구축하거나
사용하는 방법에 대한 가이드라인사용하는 방법에 대한 가이드라인
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
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
AgendaAgenda
SOASOA 의 소개 및 기술적인 패러다임의 소개 및 기술적인 패러다임 SOA SOA 참조 아키텍처 관찰참조 아키텍처 관찰 효율적으로 효율적으로 SOASOA 을 디자인하기 위한 을 디자인하기 위한
가이드라인가이드라인
Enterprise ApplicationEnterprise Application
비즈니스 목적과 요구 사항을 모두 만족시켜야 한다비즈니스 목적과 요구 사항을 모두 만족시켜야 한다 .. 급변하는 비즈니스 환경에 빠른 대처가 가능해야 한다급변하는 비즈니스 환경에 빠른 대처가 가능해야 한다 .. 수익성 있는 비즈니스 모델 반영수익성 있는 비즈니스 모델 반영 Business AgilityBusiness Agility
{{ 기업 구성원기업 구성원 }}nn
비즈니스 목적비즈니스 목적
= Business Agility= Business AgilityBusiness Application * tBusiness Application * t
Evolution to Service Oriented Evolution to Service Oriented
재사용 가능한 비즈니스 컴포넌트 설계재사용 가능한 비즈니스 컴포넌트 설계
CRM
파트너
물류 관리 시스템
고객 정보 시스템
CBD (Component Based Development)CBD (Component Based Development)
Why Service Oriented ?Why Service Oriented ?
분산 객체 기술 구현 예분산 객체 기술 구현 예
여신 관리 시스템
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. 결과 반환
플랫폼플랫폼 , , 벤더벤더 , , 버전버전 , , 시간시간 , , 공간에 종속된다공간에 종속된다 변경 및 업데이트가 힘들다변경 및 업데이트가 힘들다 확장 성이 떨어진다확장 성이 떨어진다 인간 친화적이지 못하며 설계가 힘들다인간 친화적이지 못하며 설계가 힘들다 (Function(Function 위주와 위주와 FlowFlow 로 구성하고 호출하여 처리로 구성하고 호출하여 처리 )) 유지 보수 비용이 증가한다유지 보수 비용이 증가한다 테스트가 힘들며 통합성이 떨어진다테스트가 힘들며 통합성이 떨어진다
분산 객체 기반 기술의 단점분산 객체 기반 기술의 단점Tightly Coupled ArchitectureTightly Coupled Architecture
단순 웹 서비스의 한계단순 웹 서비스의 한계
인코딩 방식인코딩 방식 , , 객체 수명객체 수명 , , 컴포넌트 서비스가 플랫폼컴포넌트 서비스가 플랫폼 , , 벤더벤더 , , 버전 별로 다름버전 별로 다름
플랫폼 간 통합 커넥터플랫폼 간 통합 커넥터 , , 프록시 생성 요구프록시 생성 요구
방화벽을 통과하는 방화벽을 통과하는 RPC RPC 이상이 되지 못함이상이 되지 못함 벤더 종속적이며 인프라 어플리케이션의 영속성 개선이 벤더 종속적이며 인프라 어플리케이션의 영속성 개선이
약함약함
결과적으로 분산 컴포넌트 방식은 현재 기업 구조를 결과적으로 분산 컴포넌트 방식은 현재 기업 구조를 반영하지 못함반영하지 못함
기술특징 기술특징 #1 #1 Course-grained Business InterfaceCourse-grained Business Interface
매장 점원매장 점원 손님손님안녕하세요안녕하세요 ?? 캠코더 있어요캠코더 있어요 ??
어디 것으로어디 것으로 ?? ABCABC 사 것으로사 것으로……
모델은 요모델은 요 ?? DC DC 시리즈로시리즈로구입 후구입 후 , , 카드카드 , , 현금 등을 통해 지급현금 등을 통해 지급
VS.VS.
카탈로그 습득카탈로그 습득 상품 표기상품 표기 , , 주문자 표시 주문자 표시
카탈로그 전송카탈로그 전송 대금 결제대금 결제
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
기술특징 기술특징 #2#2Loosely Coupled ArchitectureLoosely Coupled Architecture
기술 독립적인 비즈니스 인터페이스기술 독립적인 비즈니스 인터페이스 인터페이스 변경에 보다 유연하게 적응인터페이스 변경에 보다 유연하게 적응 적은 네트워크 라운드 트립적은 네트워크 라운드 트립 조정 가능한 캐싱조정 가능한 캐싱 , , 머징머징 안정적안정적 , , 스케일러블 서비스 가능스케일러블 서비스 가능 인간 친화적 어플리케이션 분석 설계인간 친화적 어플리케이션 분석 설계 오피스 자원의 어플리케이션 수준 활용오피스 자원의 어플리케이션 수준 활용
기간 어플리케이션 재 사용 및 영속성 보장기간 어플리케이션 재 사용 및 영속성 보장
성능 향상 성능 향상 가능성가능성
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
모 바 일모 바 일
디 바 이 스디 바 이 스
쇼 핑 몰쇼 핑 몰
어 플 리 케 이 션어 플 리 케 이 션
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">
비즈니스비즈니스워크플로우워크플로우
개 인 고 객 관 리개 인 고 객 관 리
메 인 프 레 임메 인 프 레 임
Business Service Business Service Reference Architecture Reference Architecture (Infrastructure Model)(Infrastructure Model)
웹 서비스 아키텍처 개요웹 서비스 아키텍처 개요
컴포넌트 아키텍처
서비스 아키텍처
컴포넌트 아키텍처
Source: CBDi Forum
워크 플로우 , 선행 / 후행 조건서비
스 사
용자
서비
스 제
공자
비즈니스 프로세스
비즈니스 서비스 버스
더욱 유연해진 비즈니스 환경더욱 유연해진 비즈니스 환경
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
브라우저 기반
AgendaAgenda
SOASOA 의 소개 및 기술적인 패러다임의 소개 및 기술적인 패러다임 SOA SOA 참조 아키텍처 관찰참조 아키텍처 관찰 효율적으로 효율적으로 SOASOA 을 디자인하기 위한 을 디자인하기 위한
가이드라인가이드라인
서비스 지향 어플리케이션 개발 순서서비스 지향 어플리케이션 개발 순서
비즈니스 도메인 분석비즈니스 도메인 분석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
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
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
ppaaggee 3322