introduction to service-oriented architecture & web service...
Post on 27-Apr-2020
1 Views
Preview:
TRANSCRIPT
Introduction to Service-oriented Architecture
& Web Service Computing
Youn-Hee Han
yhhan@koreatech.ac.kr
LINK@KOREATECH
http://link.koreatech.ac.kr
Web Service Computing2
시스템 패러다임 발전 과정
정보시스템 패러다임의 변화
1970년대: 로컬 머신 환경
1980년대: 클라이언트 서버 환경
1990년대: 분산 컴퓨팅 환경
2000년대: 서비스 중심 아키텍처 (Service-oriented Architecture) 환경
2010년대: SaaS(Software as a Service) & Cloud 컴퓨팅 환경
출처: “공공정보화 웹 서비스 도입방안 연구”, 한국전산원
ServiceOriented
Distributed
Client-Server
Monolithic
1970’s 2000’sIncreasing adaptability and Flexibility
Web Service Computing3
시스템 패러다임 발전 과정
클라이언트 서버 (Client-Server) 환경
Client Program
Server SideClient Side
Server Program서비스요청(인자전달)
서비스결과(반환값전달)
Network
Web Service Computing4
시스템 패러다임 발전 과정
분산컴퓨팅 (Distributed Computing) 환경 Grid System
P2P computing
Web Service Computing5
시스템 패러다임 발전 과정
서비스 중심 아키텍처 (Service-oriented Architecture) 환경
Architecture의 개념
6 Web Service Computing
[시스템 (System) – IEEE 1471]시스템은 특정 기능(들)을 달성하도록 조직된 컴포넌트의 집합이다.
시스템은 한 개 이상의 미션을 수행하기 위해 존재한다.
[아키텍쳐 (Architecture) - IEEE 1471]각 컴포넌트로 구체화된 시스템의 기본적인 조직이다.
-아키텍쳐는 시스템의 세부 모습을 결정하고, 작동을 정의하며, 중요한 요소를 결정한다
-아키텍쳐는 모든 시스템에 존재한다.
[소프트웨어 아키텍처(Software Architecture)의 정의]소프트웨어 구성요소를 묘사하고, 해당 구성요소에 대한 기능을 할당하고,
구성요소의 기술적인 구조 및 특성과 구성요소간의 인터페이스를 설명하는
시스템에 대한 청사진이며, 시스템 구축을 위한 고차원의 함축적인 구조 설명
Web Service Computing7
Service & Architecture
Service
work done by one person or group that benefits another
기술이 아닌 가치를 창출하는설계
Loose-Coupling(맞춤(tightly coupled)이 아닌)
Architecture
the principles of design, construction and ornamentation of fine buildings
여러 가지 요소를 유기적으로결합하는방법
SOA 의 정의
ServiceS
OrientedO
ArchitectureA
SOA는 엔터프라이즈 애플리케이션에 포함된 개별적인 기능들을 서비스지향적으로 분리하여 동적인 비즈니스 요구 사항에 따라 신속하게 조립 및재사용할 수 있는 상호 운영이 가능한 표준 기반 서비스로 구성하는 IT 전략
애플리케이션 중심이 아니라 서비스 중심으로 엔터프라이즈 IT를 구성함으로써 원하는 성과를 거둔다.
8 Web Service Computing
서비스 지향 vs 객체지향
서비스 지향 객체지향
처리로직단위의 느슨한 결합 사전에 정의된 클래스 의존성이 기반
General한 인터페이스를 선호 정제된 인터페이스를 지원
서비스 단위 객체 단위
서비스의 자율성 강조 객체간 참조와 상속 관계
Point서비스 지향은 객체 지향과 관련이 있으며 그로부터 파생됨.다만, 상속과 같은 객체 지향 원칙들은 서비스 지향에는 적합하지않으며 느슨한 결합과 자율성 등의 원칙은 객체지향에서 파생된 개념이아니다.
9 Web Service Computing
SOA 의 특징
특징 내용
느슨한 결합(Loose Coupling)
서비스들은 의존관계를 최소화하고 상호 식별에 꼭 필요한관계만을 유지한다.
서비스 계약(Service Contract)
서비스들은 커뮤니케이션에 동의해야 하며 하나 이상의 서비스 명세와 관련 문서로 정의된다.
자율성서비스는 캡슐화하고 있는 로직에 대해 스스로 제어 가능하다.
추상화서비스 명세에 서술된 것을 제외하고 서비스는 외부로부터로직을 감춘다.
재사용성재사용을 촉진하기 위해 로직은 여러 서비스로 나뉘어져있다.
조합성서비스의 집합은 조정(coordinate)될 수 있으며 조립된 서비스 형태로 존재할 수 있다.
무상태 유지(Stateless)
서비스는 측정 시점에 특화된 정보만을 유지한다.
발견성서비스들은 외부에 잘 드러나도록 명세를 기반으로 하여설계되므로 외부에서 쉽게 찾을 수 있고 서비스를 식별하는 메커니즘을 통해 접근이 가능하다.
10 Web Service Computing
SOA 아키텍처 로드맵
항공사웹사이트
과금애플리케이션
EnterpriseLayer
foundation Layer
항공편
예약
고객
과금
[ 기초적 SOA Architecture Road-Map ]
11 Web Service Computing
SOA 아키텍처 로드맵
항공편
예약
고객
과금
[ 네트워크 SOA Architecture Road-Map ]
항공사웹사이트
EnterpriseLayer
foundation Layer
RelayLayer
Book&
Bill
12 Web Service Computing
SOA 아키텍처 로드맵
항공편
예약
고객
과금
항공사웹사이트
EnterpriseLayer
foundation Layer
RelayLayer
Book&
Bill
예약프로세스
ProcessLayer
[ 프로세스 SOA Architecture Road-Map ]13 Web Service Computing
Web Service Computing14
시스템 패러다임 발전 과정
Cloud 컴퓨팅 환경
Web Service Computing15
Cloud Computing
Cloud 컴퓨팅 정의
클라우드 컴퓨팅정의
C ommon, L ocation-independent. O nline U tility, on D emand Computing
인터넷기술을활용하여다수의고객들에게 높은 수준의확장성을가진 IT 자원들을 ‘서비스’로
제공하는컴퓨팅
1 클라우드컴퓨팅소비자유형
클라우스 컴퓨팅 서비스이용자유형및 클라우드컴퓨팅
서비스운용및 사용조직확장성에따라 프라이빗 클라우드
컴퓨팅 및 퍼블릭 클라우드 컴퓨팅으로 구분
2 클라우드서비스유형
클라우드 서비스는 일반 소비자 및 기업고객을 대상으로
인터넷을 통해 실시간으로 제공되고 소비되는 제품 및
서비스와 솔루션
IT 인프라서비스 (IaaS), 신규 어플리케이션 개발을 위한
플랫폼서비스 (PaaS), 어플리케이션 모듈을 제공하는
소프트웨어서비스(SaaS)의 3가지 서비스 Layer로 구성
클라우드컴퓨팅구현을위한기반인프라3
클라우드 컴퓨팅 구현을 위해 가상화 기술을 통한 Open
아키텍처 기반의 시스템의 효율적인자원 가상풀구현 및
클라우드 컴퓨팅 운영을 위한 사용량 기반의 Billing 및
Metering 체계구현필요
프라이빗클라우드컴퓨팅(Private Cloud Computing)
퍼블릭 클라우드컴퓨팅(Public Cloud Computing)
1
Software as a Service (SaaS)
Platform as a Service (PaaS)
Infrastructure as a Service (IaaS)
2
클라우드컴퓨팅기반아키텍쳐3
클라우드 컴퓨팅 구성요소
Cloud Computing
Cloud 컴퓨팅 서비스 유형 클라우드 서비스는 고객이 직접 자원을 구매 또는 구축하지 않고 필요 시
서비스로 이용하는 개념으로, 제공되는 자원의 종류에 따라 SaaS(Application), PaaS(개발 플랫폼), 그리고 IaaS(인프라)의 3가지로 구분
IT 구
조및
표준화
수준
향상
Application Cloud Services (SaaS)
Platform Cloud Services(PaaS)
Infrastructure Cloud Services(IaaS)
Collaboration CRM/ERP/HR
Business Processes
Industry Applications
MiddlewareWeb2.0 App
Runtime
DatabaseDevelopment
Tooling
Java Runtime
Servers Networking
Shared, Virtualized, Dynamic Provisioning
Datacenter
Storage
서버, 스토리지, 미들웨어 등의
인프라 자원에 대하여 사용자가
필요한 만큼 탄력적으로 제공하는
서비스
개발 Platform 환경을 제공하여
소프트웨어 컴포넌트의
구매/개발/판매를 지원해 주는
서비스
개인 및 기업 고객을 대상으로
애플리케이션, 패키지 등 원하는
SW 솔루션을 클라우드형태로
제공하는 서비스
Web Service Computing16
Cloud Computing
Cloud 컴퓨팅 서비스 유형 http://goo.gl/xHkE7K
[note] 아키텍처, 프레임워크, 플랫폼의 정의와 차이점.. http://goo.gl/bf8fA6
http://goo.gl/GhihtN
Web Service Computing17
Cloud Computing
Cloud 컴퓨팅 기술 요소 (1/3)
Web Service Computing18
클라우드
컴퓨팅
아키텍쳐
물리적시스템
Layer
클라우드컴퓨팅
서비스관리체계
Layer
클라우드서비스Layer
가상화Layer
IaaS PaaS SaaS
스토리지 네트워크블레이트서버
UNIX 서버
메인프레임Intel 서버
서버가상화 스토리지가상화 네트워크가상화
프로비져닝
Layer
서버프로비져닝( VM. OS)
네트워크프로비져닝 스토리지프로비져닝어플리케이션프로비져닝
워크플로우 셀프서비스포탈클라우드서비스
라이프사이클관리가상화이미지
라이프사이클관리
사용량및어카운팅관리
사용량미터링
과금관리
성능및가용성관리
장애관리
성능관리
백업복구관리
보안
인증
데이터보안
컴플라이언스관리
접근권한관리
네트워크보안
자원관리
패치관리
라이센스관리
구성관리
클라우드
컴퓨팅
아키텍쳐
물리적시스템
Layer
클라우드컴퓨팅
서비스관리체계
Layer
클라우드서비스Layer
가상화Layer
IaaS PaaS SaaSIaaS PaaS SaaS
스토리지 네트워크블레이트서버
UNIX 서버
메인프레임Intel 서버 스토리지 네트워크
블레이트서버
UNIX 서버
메인프레임Intel 서버
서버가상화 스토리지가상화 네트워크가상화
프로비져닝
Layer
서버프로비져닝( VM. OS)
네트워크프로비져닝 스토리지프로비져닝어플리케이션프로비져닝
서버프로비져닝( VM. OS)
네트워크프로비져닝 스토리지프로비져닝어플리케이션프로비져닝
서버프로비져닝( VM. OS)
네트워크프로비져닝 스토리지프로비져닝어플리케이션프로비져닝
워크플로우 셀프서비스포탈클라우드서비스
라이프사이클관리가상화이미지
라이프사이클관리
사용량및어카운팅관리
사용량미터링
과금관리
성능및가용성관리
장애관리
성능관리
백업복구관리
보안
인증
데이터보안
컴플라이언스관리
접근권한관리
네트워크보안
자원관리
패치관리
라이센스관리
구성관리
워크플로우 셀프서비스포탈클라우드서비스
라이프사이클관리가상화이미지
라이프사이클관리워크플로우 셀프서비스포탈
클라우드서비스라이프사이클관리
가상화이미지라이프사이클관리
워크플로우 셀프서비스포탈클라우드서비스
라이프사이클관리가상화이미지
라이프사이클관리
사용량및어카운팅관리
사용량미터링
과금관리
성능및가용성관리
장애관리
성능관리
백업복구관리
보안
인증
데이터보안
컴플라이언스관리
접근권한관리
네트워크보안
자원관리
패치관리
라이센스관리
구성관리 사용량및어카운팅관리
사용량미터링
과금관리
사용량및어카운팅관리사용량및어카운팅관리
사용량미터링
과금관리
사용량미터링
과금관리
성능및가용성관리
장애관리
성능관리
백업복구관리
성능및가용성관리성능및가용성관리
장애관리
성능관리
백업복구관리
장애관리
성능관리
백업복구관리
보안
인증
데이터보안
컴플라이언스관리
접근권한관리
네트워크보안
보안보안
인증
데이터보안
컴플라이언스관리
접근권한관리
네트워크보안
인증
데이터보안
컴플라이언스관리
접근권한관리
네트워크보안
자원관리
패치관리
라이센스관리
구성관리
자원관리
패치관리
라이센스관리
자원관리
패치관리
라이센스관리
구성관리
Cloud Computing
Cloud 컴퓨팅 기술 요소 (2/3)
Web Service Computing19
서비스운영자
Cloud관리자
OS
Application
WAS
가상 시스템
VM
OS
Application
WAS
가상 시스템
VM
Cloud
Computing
Service
사용자포탈
관리자포탈
Cloud 서비스포탈
리소스풀 관리/프로비저닝
미터링및 과금자원모니터링
Cloud 관리서버
운영프로세스자동화1
2 5 6
3 4
서비스신청현황/승인/반련자원모니터링현황체크
사용자셀프서비스 GUI를이용개발테스트를위한 IT 환경신청
사용리소스모니터링성능/장애모니터링수동/자동조치
프로세스자동화를위한워크플로우리소스성능/장애관리파라미터정의및인스턴스처리
서비스별자원사용량수집과금, 리포팅
자원프로비저닝자동화를위한워크플로우
자원리소스풀관리
Cloud Computing Management
Cloud Computing
Cloud 컴퓨팅 기술 요소 (3/3)
Web Service Computing20
가상화 기술
개요 기업의 주요 궁금 점
•가상화 기술은 하나의 물리적인 장비를가상적인 몇 개의 시스템으로 운영하는기술. 장비 통합 효과와 작업시간 단축, 효율적인 운영환경 등의 혜택 제공
•가상화를 통한 Application 시스템의 성능 영향도
•가상화를 통한 자원 최적 활용 방안 (비용 효과)-유휴 자원의 활용 모델
프로비져닝• Resource Pool을 구성하고 서비스 신청시 자동으로 시스템을 배치하는 기술
• VM, OS, Middleware, Application을구성해 줌
•타 벤더간의 Resource provision이 가능한가?
•모든 SW, Application, Middleware들이 Provision될수 있는가?
•타사업자간의 Cloud가 호환이 되는가?
워크 플로우•업무 운영 프로세스 및 Rule
•정의된 W/F Rule에 따라 서비스프로비져닝이 수행됨
•고객의 다른 서비스 관리 시스템과 연계가가능한가?
• To-be의 Workflow는 어떻게 가야 하는가?
분산 병렬 처리
•업무 Logic 및 I/O Processing에 부하가심한 경우, Multi-node에서 분산, 병렬처리하는 기술
• Grid Computing과 비슷한 개념
• IBM은 분산 병렬 처리 Framework을 보유하고있나?
•어떤 업무 성격이 이 기능을 필요로 하는가?
관리 툴•클라우드 관리 툴
•시스템 관리 툴
• Metering
•고객의 기존 관리 시스템과의 연계성
•미터링의 정책 및 방향 (To-be roadmap?)
• CC의 관리 영역 범위
Web Service Computing21
SOA의 구현
SOA의 가장 좋은 실현 방법 웹 서비스 컴퓨팅 (Web-Service Computing)
Internet – WEB
검증되고
널리분포되어있고
표준적이며
많은분야에서활용되고있다
프로토콜/언어
HTTP/SMTP
XML
초기 SOA의 성과 – CORBA, DCOM, RMI, …
초기 SOA의 한계: 언어/플랫폼과긴밀한연결 (Tightly Coupled)
Web Service Computing22
Web-Service Computing - Definition
Web Service Computing 웹을 구성하는표준 프로토콜인 HTTP/TCP(UDP)/IP 를 기반으로
구조화된데이터 (Structured Data) 전달이 가능한 XML을활용하여
네트워크로접근 가능한 연산, 어플리케이션, 서비스컴포넌트들을활용하는 Distributed Computing 기술
Web-based Computing Service-based Computing
Browser-based Simple Access
HTTP/XML-based Communication
Web 2.0 & Web 3.0
Traditional Client/Server Model
Distributed Computing (CORBA, JAVA RMI, DCOM)
Selling “Service” on the net
Web ServiceComputing
(A web-based distributed
computing for ‘service’ sharing)
인터넷을 통해 XML 데이터를 주고 받는 인터페이스 (W3C)
인터넷 표준 프로토콜을 이용해 동적으로 상호작용하는느슨하게 결합된(loosely coupled) 소프트웨어 컴포넌트 (가트너리서치)
HTTP, XML, SOAP와 같은 표준화된 웹 프로토콜과 데이터포맷을 사용하여 다른 애플리케이션에 데이터 및 서비스를제공하는 단위 애플리케이션 로직 (마이크로소프트)
웹과 같은 네트워크에서 기술되고, 공표되며, 위치하고, 호출되는 독립적이고 모듈화된 애플리케이션 (IBM)
Web-Service - Definition
Web Service Computing23
Web-Service - Definition
기존의 웹
HTTP, HTML, URL과 같은 기술을 통해 인터넷에분산되어 있는 정보 자원들에 대하여 표준화된접근과 정보 표현 방법
웹 서비스
새로운 기술이라기 보다는 컴포넌트, 인터넷, XML 등의 기술을 새로운 개념으로 적용하는 방법론을의미
Web Service Computing24
Web Service Computing25
Features
Web Service Computing 의 특징 Use standardized Internet protocols
표준화된 웹 기반 인터넷 프로토콜(HTTP, TCP/IP)을 통하여 구현
XML-based XML을 통하여 모든 Communication 이 이루어짐
XML XML
Web Service Computing26
Features
Web Service Computing 의 특징 Vendor, Platform, Language에 독립적
다양한 OS, Programming languages다양한 Hardware platforms
Web Service Computing27
Features
Web Service Computing 의 특징 Component-based
하나의 웹 서비스는 대규모웹 서비스의 일부 기능을 담당
Use directory service 웹 서비스는 디렉토리 (Directory)에
공시되고, 클라이언트는 디렉토리를통하여 웹 서비스 검색
개발이용이하고 시간을단축시킴
웹 서비스의 효과
- 데이터 교환의 자동화 및 표준화
: 애플리케이션의 복잡한 접근정보 제어의 표준화
- 애플리케이션의 재사용성 및 기존 인프라의 재활용성 증가
웹 서비스의 효과
Web Service Computing28
Web Service Computing29
웹 서비스 기본 요소 및 모델
Service
Provider
Service
Consumer
Client Server
Service
Broker
Interact
Service
Contract
Find Publish
Web Service Computing30
웹서비스 활용 예Google
자사의 검색서비스를 타사이트 또는 어플리케이션에 활용할 수 있도록 웹서비스API를 무료로 제공
eBay
자사의 경매 데이터베이스를 통해 비즈니스하고자 하는 파트너에게 웹서비스API를 제공
Amazon
자사가 보유하고 있는 서적 DB, 카탈로그 검색서비스, 구매업무 등을웹서비스로 외부에 공개
15%의 로얄티 지불
단순하게는 주식, 날씨 등의 정보를 다른 서비스제공자가 제공하는 웹 서비스를 사용하여 쉽게가져오는데 활용
기업 내 애플리케이션 통합을 위해 EAI(Enterprise Application Integration) 용도로 웹 서비스가 활용
비즈니스 파트너와의 통합을 위해 B2B(Business-to-Business) 영역에 사용
웹서비스 활용 예
Web Service Computing31
웹 서비스의 활용 예 – 여권 발급 (1)
여권 발급 시나리오
Web Service Computing32
여권 발급 웹 서비스 구성
웹 서비스의 활용 예 – 여권 발급 (2)
Web Service Computing33
Web Service Computing34
How to work?Web Service Computing 의 구성 요소 Web Service Provider (웹 서비스 제공자)
Web Service Broker (웹 서비스 중개자)
Web Service Consumer (웹 서비스 사용자)
FIND Publish (WSDL)
BIND (SOAP)
Web ServiceProvider
Web ServiceConsumer
WSDL: Web Service Description Language SOAP: Simple Object Access Protocol
UDDI
UDDI: Universal Description, Discovery and Integration
Web Service Computing35
How to work?Web Service Computing 의 구성 요소 Web Service Provider (웹 서비스 제공자)
웹 서비스를 운영하며 제공
UDDI 레지스트리에 사용 가능한 웹 서비스 등록
Web Service Broker (웹 서비스 중개자) 서비스 중개자는 제공자와 소비자 사이에서 제공자가 서비스를 출판하고 이를
소비자가 검색할 수 있도록 편의를 제공
Web Service Consumer (웹 서비스 사용자) 서비스 브로커를 통해 원하는 웹 서비스의 위치를 발견 및 사용
웹 서비스 제공자를 통해 웹 서비스와 연결
SOAP
SOAP(Simple Object Access Protocol)
XML을 기반으로 분산 환경에서 정보를 교환하기 위한메커니즘
메시지를 패키징하거나 XML 데이터 인코딩하는데 사용
메시징 시스템에서부터 원격 프로시져 호출(Remote Procedure Call: RPC)의 영역에 이르기까지 다양하게사용 가능
Web Service Computing36
서비스<A>
서비스<B>
------
------
오퍼레이션 SOAP 메시지
SOAP 메시징
헤더
바디
메시지 내용(결함 정보 포함)
헤 더 블 록
[SOAP Envelope]
<env:Envelope
xmlns:env=http://www.w3.org/2003/05/soap-envelope>
<env:Header> … </env:Header>
<env:Body> … </env:Body>
</env:Envelope>
<env:Envelope
xmlns:env=http://www.w3.org/2003/05/soap-envelope>
<env:Header>
<n:shipping> UPS </n:shipping>
</env:Header>
<env:Body> … </env:Body>
</env:Envelope>
<env:Envelope xmlns:env=http://www.w3.org/2003/05/soap-envelope>
<env:Header> … </Header><env:Body>
<x:Book xmlns:x=http://www.examples.ws/><x:Title> … </x:Title></x:Book>
</env:Body></env:Envelope>
[Envelope 생성자 구조]
[SOAP 헤더 구조]
[BODY 생성자 구조]
37 Web Service Computing
SOAP 메시징
38 Web Service Computing
A simple weather service
XML-based protocol for exchanging information between computers
RPCs transported via HTTP
SOAP vs. REST
39 Web Service Computing
RESTful API
SOAP vs. REST
40 Web Service Computing
Google Trends
Soap API vs. REST API
http://greatkim91.tistory.com/79
top related