soa 를 구현하기 위한 개발 및 적용 방안

80

Upload: fancy

Post on 05-Jan-2016

124 views

Category:

Documents


0 download

DESCRIPTION

SOA 를 구현하기 위한 개발 및 적용 방안. 한국마이크로소프트 개발자 플랫폼 비즈니스 그룹 손정민 아키텍쳐 전도사 ( 부장 ). 목차. 서비스 지향 패러다임으로의 변화 서비스 지향 개발을 위한 WCF 업무 프로세스 개발을 위한 WF 결언. ERP 애플리케이션. .NET 애플리케이션. 패키지 애플리케이션 X. J2EE 애플리케이션. Unix 애플리케이션. AS/400 애플리케이션. CICS 애플리케이션. 패키지 애플리케이션 Y. 엔터프라이즈 IT 의 현실. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: SOA 를 구현하기 위한 개발 및 적용 방안
Page 2: SOA 를 구현하기 위한 개발 및 적용 방안

SOA 를 구현하기 위한 개발 및 적용 방안

한국마이크로소프트

개발자 플랫폼 비즈니스 그룹

손정민 아키텍쳐 전도사 ( 부장 )

Page 3: SOA 를 구현하기 위한 개발 및 적용 방안

목차

서비스 지향 패러다임으로의 변화서비스 지향 개발을 위한 WCF 업무 프로세스 개발을 위한 WF결언

Page 4: SOA 를 구현하기 위한 개발 및 적용 방안

엔터프라이즈 IT 의 현실

패키지 애플리케이션

Y

ERP 애플리케이션

Unix 애플리케이션

J2EE 애플리케이션

.NET 애플리케이션

패키지 애플리케이션

X

CICS 애플리케이션

AS/400 애플리케이션

Page 5: SOA 를 구현하기 위한 개발 및 적용 방안

새로운 도전

• 안정적인 단일 수입원의 고갈– 새로운 요소는 기존 요소를 필요로 함– 기존 요소들 또한 새로운 요소를 필요로 함

• 여러 이질적인 시스템들이 혼재– 일률적인 업그레이드가 어려움– 단일 운영체제 / 하드웨어 플랫폼 선택의 난점

• “ 빅뱅” 효과에 대한 대처– 모든 플랫폼이 지속적으로 상호 이질화됨 – 모든 위치에서 데이터를 액세스 / 조작

Page 6: SOA 를 구현하기 위한 개발 및 적용 방안

도전 해결의 조건

• 시스템 구성과 재사용 수단–여러 애플리케이션이 자유롭게 교차–여러 기관과 신뢰의 경계를 자유롭게 교차

• 구현에 얽매이지 않을 것–공개 표준에 기반을 둔 상호 작용–특정한 언어나 플랫폼에 의존하지 않을 것

• 동적인 그룹화 및 재 그룹화• 비동기적 연산의 지원

Page 7: SOA 를 구현하기 위한 개발 및 적용 방안

엔터프라이즈 IT 의 이상

패키지 애플리케이션

Y

ERP 애플리케이션

유닉스 애플리케이션

자바애플리케이션

닷넷 애플리케이션

패키지 애플리케이션

X

CICS 애플리케이션

AS/400 애플리케이션

통합 커뮤니케이션

메커니즘

Page 8: SOA 를 구현하기 위한 개발 및 적용 방안

아키텍처의 진화의 필요성

데이터베이스 터미널메인프레임 비즈니스 로직

데이터베이스 GUI비즈니스

로직비즈니스

로직클라이언트 / 서버

데이터베이스 브라우저비즈니스

로직멀티 -티어

서비스 지향데이터베이스

비즈니스 로직 비즈니스

로직

클라이언트

PCs

서비스

Page 9: SOA 를 구현하기 위한 개발 및 적용 방안

서비스란 무엇인가 ?

• 애플리케이션을 구성하는 기본 단위– 위치 , 플랫폼 , 코드에 무관한 기능 블록으로 정의– 항상 여러 플랫폼 간 , 원격 사용을 가정– 구현과 관련된 세부적 사항을 무시할 수 있어야 함

• 서비스는 플랫폼 , 신뢰성 등의 경계가 있음– 객체는 경계 내부에서만 사용하는 것이 바람직하며

서비스는 경계 내 - 외부에 공히 사용될 수 있음– 경계는 서비스의 규모를 결정하는 요인임

Page 10: SOA 를 구현하기 위한 개발 및 적용 방안

객체 지향과 서비스 지향 비교

Object-oriented distributed solution Service-oriented distributed solution

Page 11: SOA 를 구현하기 위한 개발 및 적용 방안

서비스 지향 패러다임의 교의

교 의 의 미경계가 명확하다 서비스 기반의 기능성을 개발자가

자의적으로 외부에 공개한다

서비스는 독자적이다 배포 , 버전제어 , 보안 등을 독립적으로 결정할 수 있다

클래스나 객체 대신 스키마와 계약 관계를 공유한다

클래스 대신 메시지 형식과 교환 패턴에 기초하여 통합을 달성한다

서비스 호환성은 정책에 의해 결정된다

안정적 글로벌 명칭을 사용한 정책 선언에 기초하여 서비스 호환성을 결정한다

Page 12: SOA 를 구현하기 위한 개발 및 적용 방안

서비스 지향 패러다임의 개념도

ServicesServices

Message ExchangePattern

Message ExchangePattern

describe

OperationalRequirementsOperational

Requirements

enforce

StateState

manage

ApplicationsApplications

composed of

MessagesMessages

exchange

is a set ofContractsContracts

bound by

contain SchemasSchemas define structure of

governed byPoliciesPolicies

have

Page 13: SOA 를 구현하기 위한 개발 및 적용 방안

서비스 지향 패러다임의 중요성

• 차세대 시스템을 설계 / 구축하기 위한 방법을 정형화하는 기회 제공–극심한 상호 의존성의 최소화–독립성 증진–조립 / 통합 가능한 애플리케이션의 용이한 배급

• 높은 수준의 상호운용을 가능하게 함

• 현재 시스템의 핵심적 가정을 명확하게 함–특히 경계부와 국지적 정보

Page 14: SOA 를 구현하기 위한 개발 및 적용 방안

웹 서비스 표준 스택

Transports HTTP, TCP, SMTP

XML XML, XSD, XPath

Messaging SOAP, WS-Addressing, WS-Eventing

SecurityWS-Security

WS-TrustWS-Federation

ReliabilityWS-ReliableMessaging

TransactionsWS-TransactionsWS-Coordination

WS-AtomicTranscation

Meta

data

WSD

L, W

S-P

olic

y,

WS-D

isco

very

Page 15: SOA 를 구현하기 위한 개발 및 적용 방안

커뮤니케이션 메커니즘 통합의 필요성

ASMX

상호운용을 위한 웹 서비스

네이티브 .NET 커뮤니케이션

WS-* 스펙의 지원

.NETRemoting

비동기적 메시징

트랜잭션 표현과 처리

명시적 서비스 지향

EnterpriseServices

WSE MSMQ WCF

Page 16: SOA 를 구현하기 위한 개발 및 적용 방안

서비스 지향 패러다임에 관한보다 현실적인 관점

• 웹 서비스가 바람직한 미래이기는 하지만– Non-SOAP 서비스와의 연결 ,– 비즈니스 프로세스를 형성하는 서비스 구축의

필요성이 그만큼 더 증대됨• 비즈니스 프로세스를 구축 , 관리 , 감시하기

위한 프레임워크의 필요성–현재 환경에서의 직접적인 활용–서비스 지향적인 미래에도 여전히 유용함

Page 17: SOA 를 구현하기 위한 개발 및 적용 방안

목차

서비스 지향 패러다임으로의 변화서비스 지향 개발을 위한 WCF 업무 프로세스 개발을 위한 WF결언

Page 18: SOA 를 구현하기 위한 개발 및 적용 방안

What is WCF ?

• Windows Communication Foundation– 차세대 닷넷 Communication 인프라– .NET Framework 3.0 의 기능– Service Oriented Architecture 기반– Web Service (XML + SOAP) 기반– 다양한 Communication 프로토콜 지원

HTTP, TCP, Named Pipe, MSMQ, P2P– 다양한 웹 서비스 표준 지원

SOAP 1.2, WS-AddressingWSDL, WS-PolicyWS-Security, WS-Trust, WS-SecureConversationWS-ReliableMessagingWS-AtomicTransaction, WS-Coordinate

Page 19: SOA 를 구현하기 위한 개발 및 적용 방안

Windows Communication Founda-tion

Namespaces And ReferencesNamespace

System.ServiceModelSystem.Runtime.SerializationSystem.Security.AuthorizationSystem.Transaction

Assembly ReferenceSystem.ServiceModel.dll – Core LibrarySystem.Runtime.Serialization.dll – Serialization LibrarySystem.Secruity.Authorization – Security LibrarySystem.Transactions.dll – Transaction Library

Page 20: SOA 를 구현하기 위한 개발 및 적용 방안

Client Service

Clients and Services

Message

Page 21: SOA 를 구현하기 위한 개발 및 적용 방안

Client Service

Endpoints

EndpointEndpoint

Endpoint

EndpointMessage

Page 22: SOA 를 구현하기 위한 개발 및 적용 방안

Service

CBA

CBA

Client

Address, Binding, Contract

ABC

AddressWhere?

ContractWhat?

BindingHow?

Endpoint

CBAMessage

Page 23: SOA 를 구현하기 위한 개발 및 적용 방안

ServiceHost

Client Service

Creating Endpoints

ClientChannel

Message

ABC CBA

CBA

CBA

Page 24: SOA 를 구현하기 위한 개발 및 적용 방안

Channel

• WCF 프로그램 간의 메시지 통로– 채널 타입 ( 단순 입력 , 단순 출력 , 입 -출력 , 요청 -응답 메시지 패턴으로 구현 )– 클라이언트 채널은 서비스 endpoint 제작

• 클라이언트가 서비스로 처음 메시지를 전송하는 순간에 채널 확립– 최초 클라이언트 서비스 메시지 전송이 두 번째 메시지 전송 보다 더 시간이 소요될 수 있음

Page 25: SOA 를 구현하기 위한 개발 및 적용 방안

Service

외부에서 본 Service 구조

• WCF 프로그램이 채널을 통한 메시지 송수신시 서비스 endpoint 가 필요함

Page 26: SOA 를 구현하기 위한 개발 및 적용 방안

Service

내부에서 본 Service 구조

• WCF 프로그램이 채널을 통한 메시지 송수신시 서비스 endpoint 가 필요함

Page 27: SOA 를 구현하기 위한 개발 및 적용 방안

HelloWorld Demo

DEMO

Page 28: SOA 를 구현하기 위한 개발 및 적용 방안

Why WCF ?

• Future Communication Infra– 웹 서비스 기반 (XML + HTTP)– 서비스 지향 아키텍처 (SOA)– Interoperability

표준 WS-* 스펙 구현– Next generation communication infra of Microsoft

• Common Programming Model– Web Service, .NET Remoting, IPC, MSMQ 프로토콜에 관계 없이 하나의 프로그래밍 모델 사용 가능

– 단일 코드 베이스 사용 가능• New feature

– 트랜잭션 , 신뢰할 수 있는 메시징 , P2P, ……– 다양한 바인딩 ( 프로토콜 지원 )

Page 29: SOA 를 구현하기 위한 개발 및 적용 방안

WCF Features (1)• Web Service Based

– XML, HTTP, SOAP, WSDL 등 웹 서비스 스펙 준수• Security

– WS-Security, WS-Trust 등 메시지 기반 보안 제공– HTTPS, 인증 기반의 TCP/IP 등 트랜스포트 수준의 보안 제공

• Transaction– 분산 트랜잭션 지원

TCP 바인딩 사용 시 OLE Transaction 직접 사용HTTP 바인딩 사용 시 WS-AT 를 통해 트랜잭션 전파

• Reliability– 신뢰도 높은 메시징을 위해 WS-RM 프로토콜 구현– 세션 기능 제공 (ASP.NET 의 세션과는 다른 개념 )

• P2P Networking• Rich Built-in Bindings

– BasicHttp, WSHttp, WSDualHttp, NetTcp, NetMsmq, NetNamed-Pipe 등

Page 30: SOA 를 구현하기 위한 개발 및 적용 방안

WCF Features (2)

Page 31: SOA 를 구현하기 위한 개발 및 적용 방안

Enterprise Communication Infra• Requirements

– 개발 생산성 (Productivity)– 성능 (Performance)– 확장성 (Scalability)– 기능성 (Function)

트랜잭션 (Transaction)신뢰도 (Reliability)보안 (Security)

– 단일 프로그래밍 모델기존 ASMX, Remoting, DCOM(Enterprise Services), MSMQ 프로그래밍 모델을 통합하는 프로그래밍 모델

– 상호운영성 (Interoperability)– 유연성 (Flexibility)

Page 32: SOA 를 구현하기 위한 개발 및 적용 방안

Legacy Communication In-fra

• .NET Remoting– 성능적으로 우수함 (TCP Channel + Binary Formatter)– 상호운영성이 떨어짐– Proxy 객체 작성이 어려움 (Facade 어셈블리 참조 필요 )– IIS 호스팅에 한계를 가짐 (HTTP Channel 필수 )

• ASP.NET Web Service– 상호운영성이 우수함– 상대적으로 성능이 떨어짐– HTTP 만을 사용할 수 있음– 유연성이 떨어짐

• Enterprise Services(DCOM)/MSMQ– 가장 다양한 기능 보유 (트랜잭션 , 보안 , 객체 풀링 , 인스턴스 모델 )– 방화벽 통과가 어려움– 닷넷과 함께 사용시 성능 저하– 상호운영성이 크게 떨어짐

Page 33: SOA 를 구현하기 위한 개발 및 적용 방안

Business Service withLegacy Communication Infra

WAN

Service

BusinessLogic

Web ServiceInterface

(ASMX + WSE)

.NET RemotingInterface

MSMQInterface

Java clientLegacy application

.NET Client

MSMQ Client

MSMQ Message

MSMQ Message

MessageQueue

Binary MessageTCP Channel

XML MessageHTTP

Performance

Interoperability

Reliability

Off-line Messaging

Other COM+ Component

DCOMDistributedTransaction

PDA/MobileClient

Facade Layer

Page 34: SOA 를 구현하기 위한 개발 및 적용 방안

WCF as Enterprise Communica-tion Infra• Advantage

– 유연성HTTP, TCP, Named Pipe, MSMQ, P2P 등 다양한 트랜스포트 지원단일 프로그래밍 모델선언적 서비스 종점 (endpoint)

– 성능TCP 트랜스포트 + 바이너리 인코딩TCP 를 사용하면서도 IIS 7.0 에 호스팅 가능 (WAS)

– 상호운영성SOAP 기반의 메시지WS-* 기반의 인터넷 표준 사용

– 다양한 기능보안 , 트랜잭션 , 신뢰할 수 있는 메시징 등

• Disadvantage– 상대적으로 새로운 기술– 마이그레이션 필요

Page 35: SOA 를 구현하기 위한 개발 및 적용 방안

Business Service with WCF

WAN

Java clientLegacy application

WCF Client

WCF Client

Disconnected Client

WCF Message

WCF Message

MessageQueue

Interoperabil-itySecurityReliabilityTransaction

WCF Message

WCF Message

WCF Service

BusinessLogic

Endpoint

Address #1

Contract

WSHttpBinding

EndpointAddress #2

Contract

NetTcpBinding

EndpointAddress #3

Contract

NetMsmqBinding

Page 36: SOA 를 구현하기 위한 개발 및 적용 방안

Enterprise Communication Infra:Reliability

• Reliable Messaging in WCF– 네트워크 상의 중간 매개체의 메시지 전송 문제 해결– 메시지 전달에 대한 보장 (End-to-End Reliability)

메시지에 대한 ACK(acknowledge) 사용메시지 재전송 메커니즘메시지의 순차적인 전송

– WS-ReliableMessaging 표준 준수Reliable Session 사용WSHttpBinding, WSDualHttpBinding, NetTcpBinding

사용• Using MSMQ Transport

– 네트워크 뿐만 아니라 서비스가 다운된 상황에서도 메시지 전송– Off-line 시나리오– NetMsmqBinding 사용

Page 37: SOA 를 구현하기 위한 개발 및 적용 방안

Enterprise Communication Infra:Point-to-Point Reliability

Transport level Reliability

TransportChannel

Transport Channel

UnknownChannel

UnknownChannel

UnknownChannel

TransportChannel

Client Service

Proxy, Firewall, Router, ……

IntermediateServers

IntermediateServers

Cache server, Firewall, Router, …..Point-to-Point

Point-to-Point Point-to-Point

Page 38: SOA 를 구현하기 위한 개발 및 적용 방안

Enterprise Communication Infra:End-to-End Reliability

Client Service

Proxy, Firewall, Router, ……

IntermediateServers

IntermediateServers

Cache server, Firewall, Router, …..

End-to-End

Message withID

Message ReceivedAnd Send ACK

Message withID

Down

Retransmit !!!

Page 39: SOA 를 구현하기 위한 개발 및 적용 방안

MSMQSend Queue

Enterprise Communication Infra:Reliability with MSMQ

Client Service

Proxy, Firewall, Router, ……

IntermediateServers

IntermediateServers

Cache server, Firewall, Router, …..

Down

MessageQueued

Off-line

MSMQReceive Queue

ONLINE!

UP!

Page 40: SOA 를 구현하기 위한 개발 및 적용 방안

WCF Reliability Demo

DEMO

Page 41: SOA 를 구현하기 위한 개발 및 적용 방안

Enterprise Communication Infra:Distributed Transaction

• 서비스 / 클라이언트의 분산 트랜잭션– Enterprise Services 에 의해서만 지원되던 기능

COM+ 서버 어플리케이션 타입만이 지원– MSDTC 와 OLE Transaction 프로토콜 , DCOM 에 의해 제공– 다양한 제약 사항 존재

방화벽 통과가 어려움닷넷 환경에서 성능이 떨어짐

• Transaction in WCF– HTTP, TCP, Named Pipe 트랜스포트 지원

HTTP 사용시 방화벽 통과가 상대적으로 용이함– OLE Transaction 및 WS-AtomicTransaction 프로토콜 사용

상호운영성이 향상됨– System.Transactions 네임스페이스 기반

TransactionScope 객체를 통한 트랜잭션 지원

Page 42: SOA 를 구현하기 위한 개발 및 적용 방안

Enterprise Communication Infra:Transaction Scenario

카드 승인 웹 서비스 배송 요청 웹 서비스

재고데이터베이스

Distributed/Atomic Transaction

주문 처리 서비스

주문처리컴포넌트

재고관리컴포넌트

클라이언트

SOAP+HTTP

SOAP+HTTP

Page 43: SOA 를 구현하기 위한 개발 및 적용 방안

Enterprise Communication Infra:Transaction and MSDTC

카드 승인 웹 서비스 배송 요청 웹 서비스

재고데이터베이스

Distributed/Atomic Transaction

주문 처리 서비스

주문처리컴포넌트

재고관리컴포넌트

클라이언트

SOAP+HTTP

SOAP+HTTP

MSDTC MSDTC

MSDTC

Other TM

WS-AT and other standards

Page 44: SOA 를 구현하기 위한 개발 및 적용 방안

WCF Transaction Demo

DEMO

Page 45: SOA 를 구현하기 위한 개발 및 적용 방안

Enterprise Communication Infra:Peer-to-Peer

• P2P in Enterprise Environment– 사내 메신저– 서버 콘텐트 동기화

• P2P in WCF– 메쉬 (mesh) 기반의 P2P 지원

부분 연결된 메쉬– TCP 트랜스포트 기반– NetPeerTcpBinding 지원– 단일 프로그래밍 모델– 지원하는 P2P 인프라

PNRP(Peer Name Resolution Protocol)Custom Resolver

ServerServer

Server

Server

Server

Server

Partially Connected Mesh

Page 46: SOA 를 구현하기 위한 개발 및 적용 방안

Region CClients

Region BClients

Region AClients

Enterprise Communication Infra:P2P Scenario (1)

CentralizedContent Server

Congestion !!!

Page 47: SOA 를 구현하기 위한 개발 및 적용 방안

Region CClients

Region BClients

Region AClients

Enterprise Communication Infra:P2P Scenario (2)

CentralizedContent Server

LocalContent Server

LocalContent Server

LocalContent Server

P2P Network

Page 48: SOA 를 구현하기 위한 개발 및 적용 방안

WCF P2P Demo

DEMO

Page 49: SOA 를 구현하기 위한 개발 및 적용 방안

Enterprise Communication Infra:Other Features

• Callback– 클라이언트에 대한 통지 (notification)

배치 작업 종료공지 사항

• Performance + Reliability + Management– WAS(Windows Activation Service) with IIS 7.0

TCP 트랜스포트 + 바이너리 인코딩IIS 의 강력한 안정성

– Recycling, Web Garden, Health Monitoring, ......• Efficient Messaging

– 대용량 메시지 전송MTOM, Binary 메시지 인코딩Message Streaming

– Message Compression ChannelSOAP 메시지 압축Windows SDK Sample 참조

Page 50: SOA 를 구현하기 위한 개발 및 적용 방안

.NET Framework 3.5 & VS 2008:WCF 새로운 기능

• WCF Web Programming Model– Support REST(Representational State Transfer)

Non-SOAP 메시지 송수신 (JSON, XML, Other Binary Stream)HTTP GET/POST/PUT/..... 지원

– ASP.NET AJAX 에서 WCF 서비스 호출 가능• WCF Syndication

– WCF 서비스를 통해 RSS 2.0 및 ATOM 1.0 기능 제공– Syndication 을 위한 객체 모델 제공

SyndicationFeed, SyndicationItem, SyndicationLink,SyndicationPerson, SyndicationCategory, SyndicationContent

등• WCF Support in VS 2008

– 프로젝트 템플릿 통합– 새로운 UI 의 “서비스 참조”

다양한 프록시 생성 옵션 제공

Page 51: SOA 를 구현하기 위한 개발 및 적용 방안

Game Development Company

PC Game Rooms 국내 C 게임사

GameClient

(Written in C)

GameClient

(Written in C)

.......

Firewall

GameServer

C/C++

Window 2K

GameServer

C/C++

Linux

......

Firewall

L4 Switch(NLB)

BillingServer

WCF

Window 2003

......

BillingServer

WCF

Window 2003

Billing DBSQL

MSMQ

Log Info

Log InfoTransactionHandling in SP

WCF Handling Biz Logic

TCP/IP

TCP/IP

TCP/IP

TCP/IP

Bandwidth100 bps H/W Spec.

Dual 2 CPU

H/W Spec.4 CPU +8 Core +8 Giga

5000 TX/Sec.0.3 Sec/Response Time

WCF 적용 사례

Page 52: SOA 를 구현하기 위한 개발 및 적용 방안

IAS 의 일종으로 선박 운항시스템의 제어 콘솔 내의 감시 , 제어 및 엔지니어링을 목적으로 하는 S/W1. 선박 운항관련 주요 장비들의 상태 감시를 위한 MMI 모듈 .2. 소프트웨어 엔지니어링을 위한 Control Logic Designer 모듈 .3. 각종 이력 및 환경 데이터 관리를 위한 Database 모듈 .4. 각 WS 간의 안정적 네트워킹을 위한 통신 I/F 모듈 .

SSAS(Samsung Automation Sys-tem)

Page 53: SOA 를 구현하기 위한 개발 및 적용 방안

Before & After ComparisonBefore After

Platform Win32 .NET 3.5

Language VC++ C#

Tier 2 Tier N-Tier

UI MFC 6.0 / GDI2 separate applicationsNot Integrated UI

Windows Form / GDI+ / CAB1 integrated applicationVisual Studio-style UI

Communication Socket WCFSocket (for PCU)

Data Storage File Database (SQL 2005)

Data/File Format Ad-Hoc XML

Programmability Ad-Hoc Script VB Script

IEC61131 Compliant No Yes

Development Tool Visual Studio 6.0 Visual Studio 2008

ALM / SCM No SCM Visual Studio 2005 TFS

Development Methodology Waterfall (SHI Standard Process) MSF for CMMI Improvement

Page 54: SOA 를 구현하기 위한 개발 및 적용 방안

Screenshot – Monitoring UI

Page 55: SOA 를 구현하기 위한 개발 및 적용 방안

Key Factor• World-first .NET Adoption for IAS Market• World-first Implementation for IEC 61131-6(Standard

XML Schema)• Real-world WCF Adoption for Factory Automation– Very heavy load & High frequency– Require Reliability

• Case-study for Pattern & Practice’s CAB(Composite UI)

• Best Practice for ALM– SHI decide to change their Standard Methodology

to MSF-based Methodology– TFS used widely in organization

Page 56: SOA 를 구현하기 위한 개발 및 적용 방안

목차

서비스 지향 패러다임으로의 변화서비스 지향 개발을 위한 WCF 업무 프로세스 개발을 위한 WF결언

Page 57: SOA 를 구현하기 위한 개발 및 적용 방안

Workflow ?

• 어플리케이션의 Workflow ?

–모든 “ IF” 구문들–모든 웹 페이지들 간의 이동 (Navigation)

–어플리케이션이 복잡해 지는 가장 큰 요인

Page 58: SOA 를 구현하기 위한 개발 및 적용 방안

Windows Workflow Founda-tion

• 윈도우를 위한 워크플로우 기술– 마이크로소프트 제품들과 파트너 솔루션들을 위한

기반– 사용자와 시스템간의 워크플로우 시나리오를 위한 기술

• 어플리케이션에 워크플로우를 탑재하기 위한 프레임워크– 탑재를 위한 프레임워크 – 어플리케이션 혹은 서버가 아님– .NET FX 3.5 를 통해 개발자들 이용 가능

• .NET 개발의 중심에 Workflow 개념을 도입시키게 함– Workflow 의 패러다임을 어플리케이션 개발에 도입

Page 59: SOA 를 구현하기 위한 개발 및 적용 방안

Windows Workflow Foundation

핵심 개념

Host Process

WindowsWorkflow Foundation

Runtime Engine

A Workflow

An Activ-ity

Runtime Services

Base Activity Library

Custom Activity Library

Visual Designer

• Visual Designer: 그래픽 , 코드를 통한 비주얼 한 디자인 지원

• Workflow 란 Activity 들의 집합이다• Workflow 는 어떤 어플리케이션 혹은

서버상의 Host Process 상에서 구동될 수 있다

• 개발자들은 자신들만의 Custom Activ-ity Library 들을 추가할 수 있다

구성요소들• Base Activity Library: 기본 Activity

들에 대한 라이브러리• Runtime Engine: Workflow 실행과 관리

• Runtime Services: Workflow 호스팅

Page 60: SOA 를 구현하기 위한 개발 및 적용 방안

Activities 는 무엇인가 ?• Activity 는 workflow 의 각각의 단계– workflow 코드을 이용해서 속성들과

이벤트들을 가지고 프로그램을 할 수 있음 – workflow 런타임에서 메서더를 (예 , Exe-

cute) 호출할 수 있음• Forms & Controls 에 비유– Activity == Controls–Workflows == Forms

• Activities 는 크게 2 가지 범주로 나뉨– Basic –“ 업무 수행” 절차들– Composite – child activities 의 모임을

관리함

Page 61: SOA 를 구현하기 위한 개발 및 적용 방안

Activities: 확장 모델

OOB activities,workflow types,base typesGeneral-purposeActivity libraries define workflow con-structs

Create/Extend/Compose activitiesApp-specificbuilding blocksFirst-class citizens

Base ActivityLibrary

Custom ActivityLibraries

Author new activity

Base ActivityLibrary

Extend activity

Compose activities

Vertical-specificactivities & work-flowsBest-practice IP &Knowledge

Domain-SpecificWorkflow Packages

Compliance

RosettaNet

CRM

IT Mgmt

Page 62: SOA 를 구현하기 위한 개발 및 적용 방안

Base Activity Library

• WF 에서 제공하는 핵심 Activity• 디자인– 컨트롤 흐름 제어 모델링– 커뮤니케이션 모델링

• 예– IfElse, Delay, While, State, etc.– InvokeWebService, CallExternal-

Method, etc.

• 개발자들에게 동일한 API 형태의 구성되어 제공됨

Page 63: SOA 를 구현하기 위한 개발 및 적용 방안

HelloWorld with WF

DEMO

Page 64: SOA 를 구현하기 위한 개발 및 적용 방안

유연한 Workflow 제어

Rules-driven Activi-ties

Step2

Step1Rule1

Rule2

Data역할 + 데이터 상태가 프로세스 순서를 결정

• 데이터 중심• 단순 상태 , 복잡한 정책들• 규정된 Activity Group

State Machine Work-flow

State2

State1Event

Event

외부 이벤트가 처리 순서를 결정 지음

•이벤트 중심•Skip/re-work, exception handling

Sequential Work-flowStep1

Step2

순차적 구조

처리 순서를 사전에 기술

•사전 기술 , 일반적•자동화 시나리오•Flowchart

Page 65: SOA 를 구현하기 위한 개발 및 적용 방안

Sequence Workflow

DEMO

Page 66: SOA 를 구현하기 위한 개발 및 적용 방안

State Machine Workflow

DEMO

Page 67: SOA 를 구현하기 위한 개발 및 적용 방안

호스트와 워크플로우 값 전달

Workflow

HOST Process

메서드 파라미터이벤트

Page 68: SOA 를 구현하기 위한 개발 및 적용 방안

WCF 호스팅 WF

DEMO

Page 69: SOA 를 구현하기 위한 개발 및 적용 방안

Custom Activities• 원도우 어플리케이션이나 웹 어플리케이션에서 사용자 정의 컨트롤을 만드는 것과 같이 워크플로 입장에서 재사용 가능한 컴포넌트• Custom activity 예들

– SendEmail, FileSystemEvent, PurchaseOrderCreated, Assign-Task, ForEach, etc.

Simplicity

Flexibility

Code Activity

CallExternalMethod &HandleExternalEvent

Custom Activities

InvokeWebService Ac-tivity

워크플로우 실행 로직

Page 70: SOA 를 구현하기 위한 개발 및 적용 방안

Custom Activity

DEMO

Page 71: SOA 를 구현하기 위한 개발 및 적용 방안

엔터프라이즈 프로세스 플로우 자동화

BizTalk Server 2006

엔터프라이즈 영역의 프로세스 제어 및 자동화 EAI 및 엔터프라이즈 어플리케이션 간의프로세스 연동 및 자동화 기능 제공

대단위 업무 시스템

업무 프로세스

Service Service Service Service Service• 기존 레거시 자원을 서비스로 모듈화 시키고 비즈니스Capability 자원으로 재활용함

Page 72: SOA 를 구현하기 위한 개발 및 적용 방안

BizTalk 과 WF- 어플리케이션 프로세스 오케스트레이션

Legacy System

Data SourceUnix/Linux

Legacy System

Data SourceWindows

Legacy System

Data SourceM/F

BizTalk Server 2006

세분화된 어플리케이션 영역의 프로세스 제어

어플리케이션 범위 내에서 프로세스 플로우를동적으로 제어함

오케스트레이션 기능 제공

단위 업무 시스템 단위 업무 시스템

업무 프로세스

ServiceServiceService

업무 프로세스 플로우

WinFX - WF

업무 프로세스 플로우 업무 프로세스 플로우

• 기존 레거시 자원을 서비스로 모듈화 시키고 비즈니스Capability 자원으로 재활용함

단위 업무 시스템

Page 73: SOA 를 구현하기 위한 개발 및 적용 방안

WF BizTalk

공통 부분   업무 프로세스나 규칙을 정의할 수 있게끔 해주는 마이크로소프트 워크플로우 솔루션 차이점기술 .NET Framework 3.5 에서 제공하는

워크플로우 엔진 모듈을 이용해서 ,개발은 Visual Studio 2008 에서 제작

BizTalk 서 버 내 에 BPMS(Business Process Management System), BRE(Business Rule Engine),BAM(Business Activity Monitoring)가지고 있고 , Legacy 와 연동할 수 있는 다양한 Adapters 를 제공함

적용 분야 단위 업무에 대한 프로세스를 정의하고 개발자가 손쉽게 워크플로우를 제작할 수 있음

다양한 분야의 워크 플로우 적용이 가능함(예들 들면 , UI 흐름에 대한 워크 플로우와 같은 분야도 적용할 수 있음 )

엔터프라이즈 영역의 업무 프로세스 제어 및 자동화

EAI 및 엔터프라이즈 어플리케이션 간의 프로세스 연동 및 자동화 기능 제공

ESB 기능 없음  ESB 제작할 수 있는 Toolkit 를 제공함관리 기능 BPMS 를 가지고 있지 않음 .

워 크 플 로 우 대 한 Activity Monitoring 하 는 기능은  Native 하게 제공하지 않기 때문에 BizTalk 또는  SharePoint 와 연계해서 사용해야 함

 BAM(Business Activity Monitoring) 기능을 제공함 BPMS 내장하고 있어서 워크 플로우 관리가 용이함

공통 적용 단위 업무 별로 WF 를 적용해서 사용하다가 부서간의 통합이나 전사적으로 확산해서 적용할 경우 BizTalk 이 각 업무 단위 WF 를 결합한 BPMS(Business Process Management System) 을 구축할 수 있음

WF 와 BizTalk 의 공통점과 차이점

Page 74: SOA 를 구현하기 위한 개발 및 적용 방안

목차

서비스 지향 패러다임으로의 변화서비스 지향 개발을 위한 WCF 업무 프로세스 개발을 위한 WF결언

Page 75: SOA 를 구현하기 위한 개발 및 적용 방안

.NET Framework 2.0 + SP1

Windows Presentatio

n Foundation

Windows Communicati

on Foundation

Windows Workflow

Foundation

Windows CardSpace

.NET Framework 3.0 + SP1

.NET Framework 3.5

LINQ ASP.NET 3.5CLR Add-in Framework

Additional Enhancemen

ts

.NET Framework 3.5 구조

Page 76: SOA 를 구현하기 위한 개발 및 적용 방안

MS 의 New SOA Technologies

WinFX -WFWindows Workflow Foundation

WinFX - WCFWindows Communication Foundation

BizTalk Server 2006

SOA 개념을 지원하기 위한신개념 웹서비스 개발 플랫폼

SOA 의 어플리케이션프로세스 오케스트레이션을위한 개발 플랫폼

SOA 의 엔터프라이즈프로세스 자동화를위한 개발 및 실행 플랫폼

Page 77: SOA 를 구현하기 위한 개발 및 적용 방안

MS SOA 솔루션을 통한 SOA 실현 방안

비즈니스 모델링 및Capability 정의

Enterprise Application자동화

프로세스 플로우오케스트레이션

Contract 기반 서비스어플리케이션

Enterprise 라이브러리

MS Motion 방법론MicrosoftBizTalk Server2006

EAIMessage MappingProcess Automation

SOA 방법론

XML Script 기반의플로우 오케스트레이션Dynamic Control

Service ContractData ContractMessage Contract

AuthenificationLoggingData Access

MicrosoftWindows CommunicationFoundation

MicrosoftEnterprise Library

MicrosoftWindows WorkflowFoundation

프로세스 & CapabilityMapping

MS CSF

Page 78: SOA 를 구현하기 위한 개발 및 적용 방안

MS SOA 솔루션 구현 개념

Enterprise Process Automation (BizTalk Server 2006)

ApplicationBlock

Process Flow(WWF)

ApplicationBlock

ApplicationBlock

Process Flow(WWF)

Process Flow(WWF)

Process Flow(WWF)

Contract basedService Application(ASP.Net)

Contract basedService Application(ASP.Net)

Contract basedService Application(ASP.Net)

Contract basedService Application(ASP.Net)

MS Enterprise Library MS Enterprise Library MS Enterprise Library MS Enterprise Library

EnterpriseProcess Automation

Service Orchestration

Service Application

Service Library

BizTalk Server2006

MS WWFASP.Net

MS WCFASP.Net

MS EnterpriseLibrary

Start EndEAI

Messaging

Mapping

SQL Server 2005 SQL Server 2005 SQL Server 2005 SQL Server 2005

IIS / WindowsServer 2003

IIS / WindowsServer 2003

IIS / WindowsServer 2003

IIS / WindowsServer 2003

Application모듈화

Service모듈화

ProcessAutomation

ProcessOrchestration

Dynamic Connecting Dynamic Connecting Dynamic Connecting Dynamic ConnectingDynamic

Connecting

Dynamic ServiceConnecting

MS CSF

Page 79: SOA 를 구현하기 위한 개발 및 적용 방안

결언• WCF 는 SOA 통합 개발 모델이면서 차세대 통신 인프라를

제공해줌– 웹 서비스 기반 (XML + HTTP)– 서비스 지향 아키텍처 (SOA)– Interoperability

표준 WS-* 스펙 구현– Next generation communication infra of Microsoft

• WF 는 원도우 기반에서 워크플로우를 빠르고 쉽게 구축할 수 있게 해줌– 프로그램 모델 , 엔진 및 도구 제공– 확장 가능한 모델을 제공해서 최종 사용자 또는 다중 프로젝트에 재사용 가능한 워크플로우 기능 제공

Page 80: SOA 를 구현하기 위한 개발 및 적용 방안

Q & A