Web_Service_Computing

Download Report

Transcript Web_Service_Computing

Introduction to
Service-oriented Architecture
& Web Service Computing
Youn-Hee Han
[email protected]
LINK@KOREATECH
http://link.koreatech.ac.kr
시스템 패러다임 발전 과정
정보시스템 패러다임의 변화

1970년대: 로컬 머신 환경

1980년대: 클라이언트 서버 환경

1990년대: 분산 컴퓨팅 환경

2000년대: 서비스 중심 아키텍처 (Service-oriented Architecture) 환경

2010년대: SaaS(Software as a Service) & Cloud 컴퓨팅 환경
Service
Oriented
Distributed
Client-Server
Monolithic
1970’s
Increasing adaptability and Flexibility
2000’s
출처: “공공정보화 웹 서비스 도입방안 연구”, 한국전산원
2
Web Service Computing
시스템 패러다임 발전 과정
클라이언트 서버 (Client-Server) 환경
Client Program
서비스 요청
(인자 전달)
Server Program
Network
서비스 결과
(반환값 전달)
Client Side
3
Server Side
Web Service Computing
시스템 패러다임 발전 과정
분산컴퓨팅 (Distributed Computing) 환경
Grid System
PC Grid System based on P2P computing
4
Web Service Computing
시스템 패러다임 발전 과정
Cloud 컴퓨팅 환경
5
Web Service Computing
Architecture의 개념
[시스템 (System) – IEEE 1471]
시스템은 특정 기능(들)을 달성하도록 조직된 컴포넌트의 집합이다.
시스템이라는 용어에는 개별 애플리케이션, 전통적인 의미의 시스템, 하위 시스템,
시스템의 시스템, 제품 라인, 제품군, 전체 엔터프라이즈, 기타 이익의 집합 등을
아우른다. 시스템은 이 환경에서 한 개 이상의 미션을 수행하기 위해 존재한다.
[환경 or 컨텍스트 – IEEE 1471]
해당 시스템에 대한 개발, 작동, 정책, 기타 영향들의 설정 및 주변 요소
[아키텍쳐 (Architecture) - IEEE 1471]
각 컴포넌트로 구체화된 시스템의 기본적인 조직이며, 환경에 대한 관계를 설명하고
디자인과 진화를 이끄는 원리이다.
-아키텍쳐가 구조를 결정하고, 작동을 정의하며, 중요한 요소를 결정한다.
-아키텍쳐는 모든 시스템에 존재한다.
[소프트웨어 아키텍처(Software Architecture)의 정의]
소프트웨어 구성요소를 묘사하고, 해당 구성요소에 대한 기능을 할당하고,
구성요소의 기술적인 구조 및 특성과 구성요소간의 인터페이스를 설명하는
시스템에 대한 청사진이며, 시스템 구축을 위한 고차원의 함축적인 구조 설명
6
Web Service Computing
Welcome to EUTOPIA - SOA
Service



work done by one person or group that benefits another
기술이 아닌 가치를 창출하는 설계
Loose-Coupling(맞춤(tightly coupled)이 아닌)
Architecture


7
the principles of design, construction and ornamentation of
fine buildings
여러 가지 요소를 유기적으로 결합하는 방법
Web Service Computing
SOA 의 정의
S
Service
O
Oriented
A
Architecture
SOA는 엔터프라이즈 애플리케이션에 포함된 개별적인 기능들을 서비스
지향적으로 분리하여 동적인 비즈니스 요구 사항에 따라 신속하게 조립 및
재사용할 수 있는 상호 운영이 가능한 표준 기반 서비스로 구성하는 IT 전략
애플리케이션 중심이 아니라 서비스 중심으로 엔터프라이즈 IT를 구성함
으로써 원하는 성과를 거둔다.
8
Web Service Computing
SOA 아키텍처 로드맵
Enterprise
Layer
항공사
웹사이트
과금
애플리케이션
foundation
Layer
고객
항공편
예약
과금
[ 기초적 SOA Architecture RoadMap ]
9
Web Service Computing
SOA 아키텍처 로드맵
Enterprise
Layer
항공사
웹사이트
Relay
Layer
Book
&
Bill
foundation
Layer
고객
항공편
예약
과금
[ 네트워크 SOA Architecture RoadMap ]
10
Web Service Computing
SOA 아키텍처 로드맵
Enterprise
Layer
항공사
웹사이트
Process
Layer
예약
프로세스
Relay
Layer
Book
&
Bill
foundation
Layer
고객
항공편
예약
11
과금
[ 프로세스 SOA Architecture RoadWeb Service Computing
Map ]
서비스 지향 vs 객체지향
서비스 지향
객체지향
처리로직단위의 느슨한 결합
사전에 정의된 클래스 의존성이 기반
General한 인터페이스를 선호
정제된 인터페이스를 지원
서비스 단위
객체 단위
서비스의 자율성 강조
객체간 참조와 상속 관계
Point
서비스 지향은 객체 지향과 관련이 있으며 그로부터 파생됨.
다만, 상속과 같은 객체 지향 원칙들은 서비스 지향에는 적합하지
않으며 느슨한 결합과 자율성 등의 원칙은 객체지향에서 파생된 개념이
아니다.
12
Web Service Computing
SOA 의 특징
특징
13
내용
느슨한 결합
(Loose Coupling)
서비스들은 의존관계를 최소화하고 상호 식별에 꼭 필요한
관계만을
유지한다.
서비스 계약
(Service Contract)
서비스들은 커뮤니케이션에 동의해야 하며 하나 이상의 서
비스 명세와 관련 문서로 정의된다.
자율성
서비스는 캡슐화하고 있는 로직에 대해 스스로 제어 가능
하다.
추상화
서비스 명세에 서술된 것을 제외하고 서비스는 외부로부터
로직을 감춘다.
재사용성
재사용을 촉진하기 위해 로직은 여러 서비스로 나뉘어져
있다.
조합성
서비스의 집합은 조정(coordinate)될 수 있으며 조립된 서
비스 형태로 존재할 수 있다.
무상태 유지
(Stateless)
서비스는 측정 시점에 특화된 정보만을 유지한다.
발견성
서비스들은 외부에 잘 드러나도록 명세를 기반으로 하여
설계되므로 외부에서 쉽게 찾을 수 있고 서비스를 식별하
는 메커니즘을 통해 접근이 가능하다.
Web Service Computing
SOA 의 특징
느슨한 결합
서비스
내부로직
14
서비스
느슨하게 결합
내부로직
Web Service Computing
SOA 의 특징
서비스 계약
-
서비스
-
-
15
Web Service Computing
SOA 의 특징
자율성
실행 시에,
서비스는 자신의
기본 애플리케이션
로직에 대한
지배권을 가진다.
16
Web Service Computing
SOA 의 특징
추상화
User
UpdateAccount
서비스 오퍼레이션에 대한 기본적인
처리 상세 내용은 서비스 요청자가
누구인지와 관계없이 모든 서비스
요청자들에게 감추어져 있다.
17
Web Service Computing
SOA 의 특징
재사용성
GetAccount
계정
서비스
UpdateAccount
AddAccount
각각의 오퍼레이션은
다양한 서비스 요청자들에
의해서 재사용이 가능하다.
18
Web Service Computing
SOA 의 특징
조합성
서비스
서비스
UpdateAccount
서비스
19
UpdateEverything
UpdateLogs
서비스
UpdateHistory
Web Service Computing
SOA 의 특징
무상태성
메시지 A
보내기
Stateless
메시지 A에 대해 모른다.
-
메시지 A를 받아서
해석,처리,전송한다.
메시지 A
보내기
Stateless
메시지 A에 대해 모른다.
20
Web Service Computing
SOA 의 특징
발견성
서비스
1
서비스
A
-
-
서비스
2
-
서비스
B
-
서비스
E
내부
서비스
레지스트리
-
서비스
3
-
서비스
C
-
21
서비스
D
서비스
F
-
-
Web Service Computing
SOA의 구현
SOA의 가장 좋은 실현 방법
 웹 서비스 컴퓨팅 (Web-Service Computing)

Internet – WEB
 검증되고
 널리 분포되어 있고
 표준적이며
 많은 분야에서 활용되고 있다

프로토콜/언어
 HTTP/SMTP
 XML

초기 SOA의 성과 – CORBA, DCOM, RMI, …
 초기 SOA의 한계: 언어/플랫폼과 긴밀한 연결 (Tightly Coupled)
22
Web Service Computing
Web-Service Computing - Definition
Browser-based Simple Access
HTTP/XML-based Communication
Web 2.0 & Web 3.0
Web-based Computing
Web Service
Computing
(A web-based
distributed
computing for
‘service’ sharing)
Traditional Client/Server Model
Distributed Computing
(CORBA, JAVA RMI, DCOM)
Selling “Service” on the net
Service-based Computing
Web Service Computing



23
웹을 구성하는 표준 프로토콜인 HTTP/TCP(UDP)/IP 를 기반으로
구조화된 데이터 (Structured Data) 전달이 가능한 XML을 활용하여
네트워크로 접근 가능한 연산, 어플리케이션, 서비스 컴포넌트들을 활용하는 Distributed
Computing 기술
Web Service Computing
Web-Service - Definition
인터넷을 통해 XML 데이터를 주고 받는 인터페이스 (W3C)
인터넷 표준 프로토콜을 이용해 동적으로 상호작용하는
느슨하게 결합된(loosely coupled) 소프트웨어 컴포넌트 (가트너
리서치)
HTTP, XML, SOAP와 같은 표준화된 웹 프로토콜과 데이터
포맷을 사용하여 다른 애플리케이션에 데이터 및 서비스를
제공하는 단위 애플리케이션 로직 (마이크로소프트)
웹과 같은 네트워크에서 기술되고, 공표되며, 위치하고,
호출되는 독립적이고 모듈화된 애플리케이션 (IBM)
24
Web Service Computing
Web-Service - Definition
기존의 웹

HTTP, HTML, URL과 같은 기술을 통해 인터넷에
분산되어 있는 정보 자원들에 대하여 표준화된
접근과 정보 표현 방법
웹 서비스

25
새로운 기술이라기 보다는 컴포넌트, 인터넷, XML
등의 기술을 새로운 개념으로 적용하는 방법론을
의미
Web Service Computing
Features
Web Service Computing 의 특징

Use standardized Internet protocols
 표준화된 웹 기반 인터넷 프로토콜(HTTP, TCP/IP)을 통하여 구현

XML-based
 XML을 통하여 모든 Communication 이 이루어짐
XML
26
XML
Web Service Computing
Features
Web Service Computing 의 특징

Vendor, Platform, Language에 독립적
다양한 OS, Programming languages
다양한 Hardware platforms
27
Web Service Computing
Features
Web Service Computing 의 특징

Component-based
 하나의 웹 서비스는 대규모
웹 서비스의 일부 기능을 담당

Use directory service
 웹 서비스는 디렉토리 (Directory)에
공시되고, 클라이언트는 디렉토리를
통하여 웹 서비스 검색
개발이 용이하고 시간을 단축시킴
28
Web Service Computing
웹 서비스의 효과
웹 서비스의 효과
- 데이터 교환의 자동화 및 표준화
: 애플리케이션의 복잡한 접근정보 제어의 표준화
- 애플리케이션의 재사용성 및 기존 인프라의 재활용성 증가
29
Web Service Computing
웹 서비스 기본 요소 및 모델
Service
Broker
Find
Publish
Service
Contract
Service
Consumer
Service
Provider
Interact
Client
30
Server
Web Service Computing
웹 서비스 웹 서비스 기본 요소 및 모델
31
Web Service Computing
웹 서비스 구성요소와 동작과정
역할에 따라 서비스 제공자, 서비스 요청자, 서비스
중개자로 구성
서비스 제공자는 제공하려는 서비스에 대한 상세한 정보를
서비스 중개자의 UDDI 레지스트리에 등록 (Publish)
서비스 요청자는 자신이 원하는 서비스를 누가 제공하는지
알기 위하여 서비스 중개자의 UDDI 레지스트리에서
서비스를 검색 (Find)
서비스 요청자는 서비스 제공자의 WSDL 파일을 다운로드
한 후, 서비스의 인터페이스에 맞게 SOAP 전송
프로토콜을 사용하여 서비스를 요청하고, 서비스 제공자는
요청에 맞는 결과를 제공(Bind)
32
Web Service Computing
How to work?
Web Service Computing 의 구성 요소



Web Service Provider (웹 서비스 제공자)
Web Service Broker (웹 서비스 중개자)
Web Service Consumer (웹 서비스 사용자)
UDDI
FIND
Web Service
Consumer
Publish (WSDL)
BIND (SOAP)
Web Service
Provider
UDDI: Universal Description, Discovery and Integration
WSDL: Web Service Description Language
33
SOAP: Simple Object Access Protocol
Web Service Computing
웹서비스 활용 예
Google

자사의 검색서비스를 타사이트 또는 어플리케이션에 활용할 수 있도록 웹서비스
API를 무료로 제공
eBay

자사의 경매 데이터베이스를 통해 비즈니스하고자 하는 파트너에게 웹서비스
API를 제공
Amazon


34
자사가 보유하고 있는 서적 DB, 카탈로그 검색서비스, 구매업무 등을
웹서비스로 외부에 공개
15%의 로얄티 지불
Web Service Computing
웹서비스 활용 예
단순하게는 주식, 날씨 등의 정보를 다른 서비스
제공자가 제공하는 웹 서비스를 사용하여 쉽게
가져오는데 활용
기업 내 애플리케이션 통합을 위해 EAI(Enterprise
Application Integration) 용도로 웹 서비스가 활용
비즈니스 파트너와의 통합을 위해 B2B(Businessto-Business) 영역에 사용
35
Web Service Computing
웹 서비스의 활용 예 – 여권 발급 (1)
여권 발급 시나리오
36
Web Service Computing
웹 서비스의 활용 예 – 여권 발급 (2)
여권 발급 웹 서비스 구성
37
Web Service Computing
WSDL 정의
WSDL : Web Services Description Language
웹 서비스 사용자가 쉽고 빠르게 웹 서비스와 연동할 수
있도록 각각의 웹 서비스의 인터페이스에 관한 정보를
표준화된 방식으로 기술하기 위한 표준화된 XML 문서 형식
웹 서비스의 인터페이스 정의 언어(Interface Definition
Language: IDL)이며, 특정 웹 서비스의 방법과 프로토콜,
데이터 포맷들을 더욱 상세하게 정의하는 일종의 스크립트
특정 서비스가 어떤 방법과 속성을 가지며 어떤 인자로
호출해야 하고 어떤 방식의 반환값을 제공하는지를 알려주는
것
38
Web Service Computing
WSDL 문서
추상화
(서비스 인터페이스 정의)
포트타입(혹은 인터페이스)
오퍼레이션
메시지
구체화
(서비스 구현 정의)
바이딩
포트(혹은 엔드포인트)
서비스
[서비스 정의]
39
<definitions>
<interface name="Catalog">
...
</interface>
<message name="BookInfo">
...
</message>
<Service>
...
</Service>
<binding name="Binding1">
...
<binding>
</definitions>
[WSDL 문서]
Web Service Computing
WSDL 활용
40
Web Service Computing
SOAP
SOAP(Simple Object Access Protocol)



XML을 기반으로 분산 환경에서 정보를 교환하기 위한
단순하고 가벼운 메커니즘
메시지를 패키징하거나 XML 데이터 인코딩하는데 사용
메시징 시스템에서부터 원격 프로시져 호출(Remote
Procedure Call: RPC)의 영역에 이르기까지 다양하게
사용 가능
오퍼레이션
서비스
<A>
41
SOAP 메시지
-------
서비스
<B>
Web Service Computing
SOAP 메시징
<env:Envelope xmlns:env=http://www.w3.org/2003/05/soapenvelope>
헤더
<env:Header> … </env:Header>
<env:Body> … </env:Body>
헤
더
블
록
</env:Envelope>
[Envelope 생성자 구조]
<env:Envelope xmlns:env=http://www.w3.org/2003/05/soapenvelope>
<env:Header>
<n:shipping> UPS </n:shipping>
바디
</env:Header>
<env:Body> … </env:Body>
메시지 내용
(결함 정보 포함)
[SOAP Envelope]
</env:Envelope>
[SOAP 헤더 구조]
<env:Envelope xmlns:env=http://www.w3.org/2003/05/soapenvelope>
<env:Header> … </Header>
<env:Body>
<x:Book xmlns:x=http://www.examples.ws/>
<x:Title> … </x:Title>
</x:Book>
</env:Body>
</env:Envelope>
[BODY 생성자 구조]
42
Web Service Computing
UDDI 개념
UDDI (Universal Description, Discovery, and Integration)




43
웹 서비스를 검색할 수 있는 “전화번호부”의 역할
웹 서비스 제공자가 해당 웹 서비스의 정보를 등록하고, 웹
서비스의 사용자가 원하는 웹 서비스를 검색하여 정보를 얻는 웹
서비스의 레지스트리에 관한 표준
클라이언트는 UDDI 질의를 사용하여 서비스 공급자를 찾고, UDDI
응답은 찾고자 하는 웹 서비스 호출 방법에 대한 비즈니스 연락처
정보, 비즈니스 범주, 기술적인 세부사항 등의 정보를 포함
제공하는 서비스를 기술(Description)하고, 필요한 서비스를
검색(Discovery)하며, 서비스들을 통합(Integration)함으로써 웹
서비스를 수행하는 핵심 기반기술
Web Service Computing
UDDI 목적
웹 서비스의 상호 운용성을 증대
웹 서비스를 수작업이 아닌 프로그램을 통하여
검색하도록 하여 보다 효율적인 검색을 지원
다양한 업체의 웹 서비스를 프로그램 상으로
연동하여 여러 웹 서비스로 구성된 하나의 통합
서비스를 제공함
44
Web Service Computing
웹 서비스와 유비쿼터스 (1/3)
유비쿼터스 컴퓨팅

다양한 디바이스들이 실세계의 사물 및 환경과 상호연결하여
언제, 어디서나 이용할 수 있는 컴퓨팅 환경 제공
유비쿼터스 컴퓨팅 핵심 기술



하드웨어: Embedded System, 모바일 기술
네트워크: IPv6
소프트웨어: 웹 기술, 소프트웨어 기술 연구 발전 상태
웹 서비스



45
기존의 분산객체 미들웨어 기술들의 한계(통합성)를 극복
플랫폼 독립적인 애플리케이션 통합을 지원
유비쿼터스 컴퓨팅의 소프트웨어 통합 기반구조의 핵심
Web Service Computing
웹 서비스와 유비쿼터스 (2/3)
특징




46
다양한 장치(플랫폼)들과의 네트워크 연결
임베디드 OS + 미들웨어
모바일, 유선 랜 네트워크
P2P 분산 컴퓨팅
Web Service Computing
웹 서비스와 유비쿼터스 (3/3)
유비쿼터스와 웹 통합을 위한 분산 컴퓨팅 표준
유비쿼터스 웹 서비스 컴퓨팅
유비쿼터스 분산 컴퓨팅 + 웹 서비스 분산 컴퓨팅
유비쿼터스와 웹 환경을 위한 통합된 P2P 분산컴퓨팅
INTERNET
Office
Home
47
Mobile
Web Service Computing