62
UPnP 순순순순순순 순순순순순순순 순순순

Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

Embed Size (px)

Citation preview

Page 1: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

UPnP

순천향대학교 정보기술공학부

이상정

Page 2: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

UPnP 개요

Page 3: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 3

2002-2 컴퓨터공학응용UPnP 란 ?

UPnP(Universal Plug and Play)• PC 와 정보가전들 간에 peer-to-peer 연결을 위한 미들웨어 • 이미 검증된 네트워크 프로토콜 및 웹 기술을 기반으로 홈

네트워킹 기기간의 제어 모델 구현

특징• 플랫폼에 독립적이어서 다양한 운영체제 및 프로그래밍 언어에

적용 가능 • 로열티 및 특허 제약이 없음• HTTP, XML 등을 사용하여 인터넷의 자연스러운 확장• 비교적 단순하고 가벼운 프로토콜 구조 및 스택

Page 4: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 4

2002-2 컴퓨터공학응용UPnP Forum

http://upnp.org MS, 인텔 , IBM, Sony, 삼성 등 460 개사 회원 UIC(UPnP Implementer’s Corporation)

• UPnP 제품 인증 기관으로 , 검사에 합격되면 UPnP Logo 사용허가

UPnP Working Committee• Appliance Working Group• Home Automation and Security Working Group• Audio/Video Working Group• Internet Gateway Working Group• Image Working Group• Mobile Devices Working Group

Page 5: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 5

2002-2 컴퓨터공학응용UPnP 네트워크

Page 6: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 6

2002-2 컴퓨터공학응용UPnP 구성요소

장치 (device) 서비스 컨트롤 포인트

(control point) DeviceDevice

ServiceService

Control PointControl Point

Control PointControl Point

DeviceDevice

ServiceService

Page 7: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 7

2002-2 컴퓨터공학응용 장치와 서비스 UPnP 장치

• UPnP 기능이 내장된 가전제품 서비스

• 가장 작은 제어 단위이며 장치가 사용자에게 제공• 상태 테이블 , 컨트롤 서버 , 이벤트 서버로 구성• 상태 테이블은 상태 변수를 통하여 서비스 상태를

모델링• 컨트롤 서버는 액션 요청을 받아 이를 실행하며

상태 테이블을 갱신• 이벤트 서버는 자신의 상태가 바뀔 때 , 컨트롤

포인트에게 이를 이벤트로서 알리는 기능 수행

Page 8: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 8

2002-2 컴퓨터공학응용 컨트롤 포인트 홈 네트워크에 연결된 장치들을 감지하고 제어 장치를 검색하여 서비스 정의와 서비스 목록을 갖는다 . 서비스의 액션을 실행시키고 장치로부터 이벤트를 수신한다 .

Page 9: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 9

2002-2 컴퓨터공학응용

UPnP Enabled DeviceUPnP Enabled Device

UPnP Enabled DeviceUPnP Enabled Device

UPnP Enabled DeviceUPnP Enabled Device

Control PointControl Point

DeviceDevice

Root DeviceRoot Device

Embedded DeviceEmbedded Device

DeviceDevice

ServiceService

Service 2Service 2Service 1Service 1

ServiceService

Service 2Service 2Service 1Service 1

Control PointControl Point

ServiceService

StateStateTableTable

ControlControlServerServer

EventEventServerServer

Page 10: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

UPnP 프로토콜 스택

Page 11: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 11

2002-2 컴퓨터공학응용 프로토콜 스택

UPnP Device ArchitectureUPnP Device Architecture

UDPUDP

IPIP

HTTPU/MUHTTPU/MU GENAGENA SSDPSSDP SOAPSOAP

HTTPHTTP

HTTPHTTP GENAGENA

TCPTCP

UPnP ForumUPnP Forum

UPnP vendorUPnP vendor

Page 12: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 12

2002-2 컴퓨터공학응용HTTP 통신

UPnP 는 TCP/IP 기술을 바탕으로 HTTP 사용하여 통신• HTTP • HTTPU(HTTP over UDP)• HTTPMU(HTTP Multicast over UDP)

Page 13: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 13

2002-2 컴퓨터공학응용SSDP

SSDP(Simple Service Discovery Protocol) 네트워크 서비스들을 발견하는 방식을 정의한 프로토콜 HTTP 또는 HTTPMU 상에서 동작하며 네트워크에서 특정 리소스를 찾기 위한 컨트롤 포인터와 네트워크에서 서비스를 제공하는 장치에 대한 통신 방식을 정의 컨트롤 포인터가 홈 네트워크에서 SSDP 검색 요청을 전송하면 자신이 제어 가능한 장치 및 서비스들을 검색할 수 있다 . 또한 장치들은 이 프로토콜을 이용하여 자신을 광고 할 수 있다 .

Page 14: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 14

2002-2 컴퓨터공학응용GENA

GENA(General Event Notification Architecture) 는 HTTP 와 HTTPMU 를 이용하여 장치에서 발생한 이벤트 메시지를 전송한다 .

또한 이벤트의 수신 요청과 수신 거부를 이 프로토콜을 이용하여 전송할 수 있다 .

Page 15: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 15

2002-2 컴퓨터공학응용SOAP

SOAP(Simple Object Access Protocol) 은 원격 프로시저 호출을 수행하기위한 XML 문서와 HTTP 프로토콜의 사용 방법을 정의한다 .

SOAP 을 이용하여 원격의 장치에게 입력 인자를 포함하여 제어 메시지를 전송할 수 있으며 , 이에 대한 응답으로 출력 인자를 전송 받을 수 있다 .

Page 16: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

UPnP 네트워크 동작

Page 17: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 17

2002-2 컴퓨터공학응용 네트워크 연결 동작 단계

0 Control point and device get addresses1 Control point finds interesting device2 Control point learns about device capabilities3 Control point invokes actions on device4 Control point listens to state changes of device5 Control point controls device and/or views device

status using HTML UI

0 Addressing0 Addressing

1 Discovery1 Discovery

2 Description2 Description

5 Presentation5 Presentation4 Eventing4 Eventing3 Control3 Control

Page 18: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 18

2002-2 컴퓨터공학응용 구성요소 동작순서

Gateway(internet sharing,Firewell,VPN…)

Web BrowserPresentation Server(HTML UI)

수동기기 (Controlled Device) 능동기기 (Control Point)

0 Addressing: (1) DHCP / AutoIP+ARP (2) DNS0 Addressing: (1) DHCP / AutoIP+ARP (2) DNS0 Control point and device get addresses

5 Presentation5 Presentation5 Control point controls device and/or views device status using HTML UI

외부망 모뎀 접속

Gateway

3 Control: SOAP3 Control: SOAP3 Control point invokes actions on device

2 Description2 Description2 Control point learns about device capabilities

1 Discovery: GENA, SSDP1 Discovery: GENA, SSDP1 Control point finds interesting device

Control Client

Description Client

Discovery Client

Control Server( 실제 구동 제어 )

Discovery Server( 기본 제원 설명 )

Description Server(Device, Service by XML)

Event ClientEvent Server 4 Eventing: GENA4 Eventing: GENA4 Control point listens to state changes of device

MultiISP

Page 19: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

Addressing

Page 20: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 20

2002-2 컴퓨터공학응용Addressing(1)

0* Control point and device get addresses1 Control point finds interesting device2 Control point learns about device capabilities3 Control point invokes actions on device4 Control point listens to state changes of device5 Control point controls device and/or views device

status using HTML UI

0* Addressing0* Addressing

1 Discovery1 Discovery

2 Description2 Description

5 Presentation5 Presentation4 Eventing4 Eventing3 Control3 Control

Page 21: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 21

2002-2 컴퓨터공학응용Addressing(2)

DHCP(Dynamic Host Configuration Protocol) 를 사용하여 IP 주소 할당

DHCP 로 주소할당을 할 수 없으면 Auto-IP 수행 Auto-IP 동작

• Pick an address in 169.254.XXX.XXX• Check its availability using ARP• If in use, try another address• Periodically try a DHCP Server

Page 22: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 22

2002-2 컴퓨터공학응용Addressing(3):Use DHCP service

DHCP ServerControl points Control points

Device Device Device

search

169.254.XXX.XXX

Page 23: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 23

2002-2 컴퓨터공학응용Addressing(4):Use Auto-IP

DHCP ServerControl points Control points

Device Device Device

Use Auto-IP169.254.XXX.XXX

Page 24: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

Discovery

Page 25: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 25

2002-2 컴퓨터공학응용Discovery(1)

0* Control point and device get addresses1 Control point finds interesting device2 Control point learns about device capabilities3 Control point invokes actions on device4 Control point listens to state changes of device5 Control point controls device and/or views device

status using HTML UI

0 Addressing0 Addressing

1* Discovery1* Discovery

2 Description2 Description

5 Presentation5 Presentation4 Eventing4 Eventing3 Control3 Control

Page 26: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 26

2002-2 컴퓨터공학응용 Discovery(2):Protocol Stack

UPnP vendorUPnP vendor

UPnP ForumUPnP Forum

UPnP Device ArchitectureUPnP Device Architecture

UDPUDP

IPIP

HTTPMUHTTPMU(multicast)(multicast)

GENAGENA SSDPSSDP HTTPUHTTPU(unicast)(unicast)

SSDPSSDP

Page 27: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 27

2002-2 컴퓨터공학응용Discovery(3):SSDP

IETF Draft Simple Service Discovery Protocol

주요 동작• Multicast 광고• Unicast 응답• UDP

Page 28: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 28

2002-2 컴퓨터공학응용Discovery(4):Advertising

디바이스가 광고 메시지 송신• 디바이스는 홈 네트워크의 접속되면 , 일정한 시간 간격으로

디바이스와 디바이스가 제공하는 서비스들에 대한 정보를 광고• 미리 정해진 멀티캐스트 주소 (239.255.255.250) 와 포트번호 (1

900) 로 메시지를 송신• 컨트롤 포인터도 항상 새로운 디바이스나 서비스가 홈 네트워크

상에 장착되었는지를 감지하기 위해 이를 청취한다 . 광고 메시지 내용

• 이벤트 알림을 위한 ‘ NOTIFY’ 메소드• HTTP 헤더내 ‘ NTS’ 필드의 값을 ‘ ssdp:alive’ 로 하여 현재

디바이스가 작동하고 있음을 나타내는 기본적인 정보를 광고• 광고 메시지의 수명• 보다 상세한 디바이스 정보를 포함하는 XML 상세 문서에 대한 U

RL 을 포함• 현재 디바이스의 운영체제 정보와 UPnP 프로토콜 버전 및

디바이스의 제품 버전 및 UUID

Page 29: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 29

2002-2 컴퓨터공학응용Discovery(5):Advertising

Who? Device multicasts When? Added What?

NOTIFY * HTTP/1.1HOST: 239.255.255.250:1900CACHE-CONTROL: max-age = seconds until advertisement expiresLOCATION: URL for UPnP description for root deviceNT: search targetNTS: ssdp:aliveUSN: advertisement UUID

Page 30: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 30

2002-2 컴퓨터공학응용Discovery(6):Searching

UPnP 컨트롤 포인터는 홈 네트워크에 연결됨과 동시에 홈 네트워크 상에서 자신이 관심을 가지는 디바이스와 서비스의 검색을 수행• 검색 메시지를 보낼 때에는 SSDP 프로토콜에서 정의한

멀티캐스트 채널을 이용• 응답은 검색 메시지를 보낸 호스트로 직접 유니캐스트하여

메시지를 송신 • 관심있는 디바이스나 서비스의 지시자 (UUID) 를 명시하여

검색할 수 있으며 , 디바이스나 서비스의 종류 (type) 을 명시하여서도 검색 가능

• UPnP 포럼에서는 이들 디바이스와 서비스종류를 정의하고 , 지시자는 UPnP 제조회사들에 의해 정의

• 검색 메시지에서는 SSDP 에서 정의힌 ‘ M-SEARCH’ 메소드를 사용하며 , MAN 필드에 “ ssdp:discover”를 기입

Page 31: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 31

2002-2 컴퓨터공학응용Discovery(7):Searching

Who? Control point multicasts When? Looking for device or

service What?

M-SEARCH * HTTP/1.1HOST: 239.255.255.250:1900MAN: "ssdp:discover"MX: seconds to delay responseST: search target

Page 32: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 32

2002-2 컴퓨터공학응용Discovery(8):Responding

Who? Device unicasts When? If ST matches an NT What?

HTTP/1.1 200 OKCACHE-CONTROL: max-age = seconds until advertisement expiresLOCATION: URL for UPnP description for root deviceST: search targetUSN: advertisement UUID

Page 33: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 33

2002-2 컴퓨터공학응용Discovery(9)

DHCP ServerControl points Control points

Device Device Device

Advertising

Searching

Responding

Page 34: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

Description

Page 35: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 35

2002-2 컴퓨터공학응용Description(1)

0 Control point and device get addresses1 Control point finds interesting device2* Control point learns about device capabilities3 Control point invokes actions on device4 Control point listens to state changes of device5 Control point controls device and/or views device status using

HTML UI

0 Addressing0 Addressing

1 Discovery1 Discovery

2* Description2* Description

5 Presentation5 Presentation4 Eventing4 Eventing3 Control3 Control

Page 36: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 36

2002-2 컴퓨터공학응용Description(2)

Description Documents expressed in XML

Device description• Physical / Logical /

UI properties Service description

• Available actions• State Information

Protocol stack

UPnP vendorUPnP vendor

UPnP ForumUPnP Forum

UPnP Device ArchitectureUPnP Device Architecture

IPIP

HTTPHTTP

TCPTCP

Page 37: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 37

2002-2 컴퓨터공학응용Description(3)

컨트롤 포인터가 디바이스 검색 응답에는 간략한 정보• 디바이스나 서비스의 ID 나 그 메시지의 Lifetime 등 • 상세한 정보를 얻기 위해서는 메시지의 LOCATION 필드의 URL

에 해당하는 XML 상세 문서를 다운로드 디바이스 상세 문서

• UPnP 포럼에서 표준화한 XML 문서 형식의 디바이스와 서비스에 대한 정보가 기술

• 기본 디바이스 (root device) 에 대하여 모델 이름과 제품번호 , 제조회사명 , 관련 URL 등과 서비스 상세문서의 URL 및 서비스 제어 URL과 이벤트 URL 등의 정보가 XML표기법으로 기술

서비스 상세 문서• 서비스 형식 (Type)별로 문서 제공• 각 문서에는 서비스가 제공하는 명령 (Action) 들과 서비스의 상태

정보를 나타내는 변수들의 변수형과 범위 , 기본값 등이 정의

Page 38: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 38

2002-2 컴퓨터공학응용Description(4):Device(phys)

<?xml version="1.0"?><root xmlns="urn:schemas-upnp-org:device-1-0">   <URLBase>base URL for all relative URLs</URLBase>

  <device>    <friendlyName>short user-friendly title</friendlyName>    <manufacturer>manufacturer name</manufacturer>    <manufacturerURL>URL to manufacturer site</manufacturerURL>    <modelDescription>long user-friendly title</modelDescription>    <modelName>model name</modelName>    <modelNumber>model number</modelNumber>    <modelURL>URL to model site</modelURL>    <serialNumber>manufacturer's serial number</serialNumber>    <UDN>uuid:UUID</UDN>    <UPC>Universal Product Code</UPC>    <deviceType>urn:schemas-upnp-org:device:deviceType</deviceType>    <serviceList>      <service>        <serviceType>urn:schemas-upnp-org:service:serviceType:v</serviceType>        <serviceId>urn:upnp-org:serviceId:serviceID</serviceId>        <SCPDURL>URL to service description</SCPDURL>        <controlURL>URL for control</controlURL>        <eventSubURL>URL for eventing</eventSubURL>      </service>      Declarations for other services (if any) go here    </serviceList>    <deviceList>Description of embedded devices (if any) go here</deviceList>    <iconList>      <icon>        <mimetype>image/format</mimetype>        <width>horizontal pixels</width>        <height>vertical pixels</height>        <depth>color depth</depth>        <url>URL to icon</url>      </icon>      XML to declare other icons, if any, go here    </iconList>    <presentationURL>URL for presentation</presentationURL>

  </device>  <specVersion>    <major>1</major> <minor>0</minor>  </specVersion>

</root>

Page 39: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 39

2002-2 컴퓨터공학응용Description(5):Device(logical)

<?xml version="1.0"?>

<root xmlns="urn:schemas-upnp-org:device-1-0">  <URLBase>base URL for all relative URLs</URLBase>  <device>    <friendlyName>short user-friendly title</friendlyName>    <manufacturer>manufacturer name</manufacturer>    <manufacturerURL>URL to manufacturer site</manufacturerURL>    <modelDescription>long user-friendly title</modelDescription>    <modelName>model name</modelName>    <modelNumber>model number</modelNumber>    <modelURL>URL to model site</modelURL>    <serialNumber>manufacturer's serial number</serialNumber>    <UDN>uuid:UUID</UDN>    <UPC>Universal Product Code</UPC>

    <deviceType>urn:schemas-upnp-org:device:deviceType :v</deviceType>    <serviceList>      <service>        <serviceType>urn:schemas-upnp-org:service:serviceType:v</serviceType>        <serviceId>urn:upnp-org:serviceId:serviceID</serviceId>        <SCPDURL>URL to service description</SCPDURL>        <controlURL>URL for control</controlURL>        <eventSubURL>URL for eventing</eventSubURL>      </service>      Declarations for other services (if any) go here    </serviceList>    <deviceList>Description of embedded devices (if any) go here</deviceList>    <iconList>      <icon>        <mimetype>image/format</mimetype>        <width>horizontal pixels</width>        <height>vertical pixels</height>        <depth>color depth</depth>        <url>URL to icon</url>      </icon>      XML to declare other icons, if any, go here    </iconList>    <presentationURL>URL for presentation</presentationURL>

  </device>  <specVersion>    <major>1</major> <minor>0</minor>  </specVersion>

</root>

Page 40: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 40

2002-2 컴퓨터공학응용Description(6):Device(other)

<?xml version="1.0"?>

<root xmlns="urn:schemas-upnp-org:device-1-0">   <URLBase>base URL for all relative URLs</URLBase>

  <device>    <friendlyName>short user-friendly title</friendlyName>    <manufacturer>manufacturer name</manufacturer>    <manufacturerURL>URL to manufacturer site</manufacturerURL>    <modelDescription>long user-friendly title</modelDescription>    <modelName>model name</modelName>    <modelNumber>model number</modelNumber>    <modelURL>URL to model site</modelURL>    <serialNumber>manufacturer's serial number</serialNumber>    <UDN>uuid:UUID</UDN>    <UPC>Universal Product Code</UPC>   <deviceType>urn:schemas-upnp-org:device:deviceType</deviceType>    <serviceList>      <service>        <serviceType>urn:schemas-upnp-org:service:serviceType:v</serviceType>        <serviceId>urn:upnp-org:serviceId:serviceID</serviceId>        <SCPDURL>URL to service description</SCPDURL>        <controlURL>URL for control</controlURL>        <eventSubURL>URL for eventing</eventSubURL>      </service>      Declarations for other services (if any) go here    </serviceList>    <deviceList>Description of embedded devices (if any) go here</deviceList>

    <iconList>      <icon>        <mimetype>image/format</mimetype>        <width>horizontal pixels</width>        <height>vertical pixels</height>        <depth>color depth</depth>        <url>URL to icon</url>      </icon>      XML to declare other icons, if any, go here    </iconList>    <presentationURL>URL for presentation</presentationURL>  </device>  <specVersion>    <major>1</major> <minor>0</minor>  </specVersion></root>

Page 41: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 41

2002-2 컴퓨터공학응용Description(7):Service(actns)

<?xml version="1.0"?><scpd xmlns="urn:schemas-upnp-org:service-1-0">  <actionList>    <action>      <name>actionName</name>      <argumentList>        <argument>          <name>formalParameterName</name>          <direction>in xor out</direction>          <retval />          <relatedStateVariable>stateVariableName</relatedStateVariable>        </argument>       Declarations for other arguments (if any) go here      </argumentList>    </action>    Declarations for other actions (if any) go here  </actionList>  <serviceStateTable>    <stateVariable sendEvents=“yes” xor “no”>      <name>variableName</name>      <dataType>variable datatype</dataType>      <defaultValue>default value</defaultValue>      <allowedValueRange>        <minimum>minimum value</minimum>        <maximum>maximum value</maximum>        <step>increment value</step>      </allowedValueRange>    </stateVariable>    <stateVariable sendEvents=“yes” xor “no”>      <name>variableName</name>      <dataType>variable data type</dataType>      <defaultValue>default value</defaultValue>      <allowedValueList>        <allowedValue>some value</allowedValue>        <allowedValue>some value</allowedValue>      </allowedValueList>    </stateVariable>    Declarations for other state variables (if any) go here  </serviceStateTable>  <specVersion>    <major>1</major> <minor>0</minor>  </specVersion>

</scpd>

Page 42: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 42

2002-2 컴퓨터공학응용Description(8):Service(vars)

<?xml version="1.0"?><scpd xmlns="urn:schemas-upnp-org:service-1-0">  <actionList>    <action>      <name>actionName</name>      <argumentList>        <argument>          <name>formalParameterName</name>          <direction>in xor out</direction>          <retval />          <relatedStateVariable>stateVariableName</relatedStateVariable>        </argument>       Declarations for other arguments (if any) go here      </argumentList>    </action>    Declarations for other actions (if any) go here  </actionList>

  <serviceStateTable>    <stateVariable sendEvents=“yes” xor “no”>      <name>variableName</name>      <dataType>variable datatype</dataType>      <defaultValue>default value</defaultValue>      <allowedValueRange>        <minimum>minimum value</minimum>        <maximum>maximum value</maximum>        <step>increment value</step>      </allowedValueRange>    </stateVariable>    <stateVariable sendEvents=“yes” xor “no”>      <name>variableName</name>      <dataType>variable data type</dataType>      <defaultValue>default value</defaultValue>      <allowedValueList>        <allowedValue>some value</allowedValue>        <allowedValue>some value</allowedValue>      </allowedValueList>    </stateVariable>    Declarations for other state variables (if any) go here

  </serviceStateTable>  <specVersion>    <major>1</major> <minor>0</minor>  </specVersion>

</scpd>

Page 43: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 43

2002-2 컴퓨터공학응용Description(9)

DHCP ServerControl points Control points

Device Device Device

Request

Responding

Device, Service

description

Page 44: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

Control

Page 45: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 45

2002-2 컴퓨터공학응용Control(1)

0 Control point and device get addresses1 Control point finds interesting device2 Control point learns about device capabilities3* Control point invokes actions on device4 Control point listens to state changes of device5 Control point controls device and/or views device status using

HTML UI

0 Addressing0 Addressing

1 Discovery1 Discovery

2 Description2 Description

5 Presentation5 Presentation4 Eventing4 Eventing3* Control3* Control

Page 46: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 46

2002-2 컴퓨터공학응용Control(2)

컨트롤 포인트는 디바이스에 대한 상세 문서를 전송 받아온 후 , 디바이스의 서비스들에 대해 명령들을 보낼 수 있다 .• 컨트롤 포인터는 디바이스 상세 문서에 나타나있는 서비스 제어

URL 에 대하여 명령 요청 메시지를 보냄으로써 , 디바이스의 제어를 행한다 . 제어 메시지는 역시 XML 로 표현되는 SOAP 프로토콜을 사용한다 .• 이러한 메시지는 함수의 호출과 비슷하게 , 명령에 관련된 값들을 인자로 주고 결과를 전송 받을 수 있도록 구성되어 있다 .

제어 명령 요청의 수행결과로 디바이스 상태 값이 변한다면 , 서비스 상세 문서에서 정의한 것에 따라 결과를 응답 메시지 내에 인자로 넘겨 줄 수 있다 .

Page 47: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 47

2002-2 컴퓨터공학응용Control(3)

Simple Object Access Protocol• XML format for

information exchange

• Delivers data using HTTP over TCP/IP

• SOAP is a standard convention for remote procedure calls

Protocol stackUPnP vendorUPnP vendor

UPnP ForumUPnP Forum

UPnP Device ArchitectureUPnP Device Architecture

IPIP

SOAPSOAP

HTTPHTTP

TCPTCP

Page 48: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 48

2002-2 컴퓨터공학응용Control(4):Invoke Action

Who? Control point When? To invoke action on device What?

POST path of control URL HTTP/1.1HOST: host of control URL:port of control URLCONTENT-TYPE: text/xml; charset="utf-8"SOAPACTION: "urn:schemas-upnp-org:service:serviceType:v#actionName"

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"    s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">  <s:Body>

  </s:Body></s:Envelope>

    <u:actionName xmlns:u="urn:schemas-upnp-org:service:serviceType:v">      <argumentName>in arg value</argumentName>      other in args and their values (if any) go here    </u:actionName>

Page 49: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 49

2002-2 컴퓨터공학응용Control(5):Action Result

Who? Device When? Action completes What?

HTTP/1.1 200 OKCONTENT-TYPE: text/xml; charset="utf-8"<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"    s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">  <s:Body>

  </s:Body></s:Envelope>

    <u:actionNameResponse xmlns:u="urn:schemas-upnp-org:service:serviceType:v">      <argumentName>out arg value</argumentName>      other out args and their values (if any) go here    </u:actionNameResponse>

Page 50: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 50

2002-2 컴퓨터공학응용Control(6)

DHCP Server

Control points Control points

Device Device Device

Invoke Action

Action Result

Page 51: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

Eventing

Page 52: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 52

2002-2 컴퓨터공학응용Eventing(1)

0 Control point and device get addresses1 Control point finds interesting device2 Control point learns about device capabilities3 Control point invokes actions on device4* Control point listens to state changes of device5 Control point controls device and/or views device status using

HTML UI

0 Addressing0 Addressing

1 Discovery1 Discovery

2 Description2 Description

5 Presentation5 Presentation4* Eventing4* Eventing3 Control3 Control

Page 53: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 53

2002-2 컴퓨터공학응용Eventing(2)

이벤트는 디바이스에 존재하는 서비스들의 변화된 상태 값들을 컨트롤 포인트에게 알려주는 동작• 컨트롤 포인트는 관심을 가지는 디바이스의 서비스에

대해 이벤트 구독 (Subcription) 신청을 하고 , 디바이스는 각 컨트롤 포인트마다 ID 를 할당한다 .

• 등록된 구독신청에 대해 디바이스는 이벤트 발생시 해당 컨트롤 포인터에게 상태 변수값들을 이벤트로 공지

Page 54: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 54

2002-2 컴퓨터공학응용Eventing(3)

General Event Notification Architecture• GENA is based on XML d

elivered via HTTP on TCP/IP

• Eventing is a very simple push model

Protocol stackUPnP vendorUPnP vendor

UPnP ForumUPnP Forum

UPnP Device ArchitectureUPnP Device Architecture

IPIP

HTTPHTTP GENAGENA

TCPTCP

Page 55: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 55

2002-2 컴퓨터공학응용Eventing(4):Subscribing

Who? Control point When? Before receiving any events What?

SUBSCRIBE publisher path HTTP/1.1HOST: publisher host:publisher portCALLBACK: <delivery URL>NT: upnp:eventTIMEOUT: Second-requested subscription duration

Page 56: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 56

2002-2 컴퓨터공학응용Eventing(5):Subscription

Who? Device When? Accepts subscription What?

HTTP/1.1 200 OKSID: uuid:subscription-UUID TIMEOUT: Second-actual subscription duration

Page 57: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 57

2002-2 컴퓨터공학응용Eventing(6):Notify

Who? Device When? A state variable changes What?

NOTIFY delivery path HTTP/1.1HOST: delivery host:delivery portCONTENT-TYPE: text/xml

NT: upnp:eventNTS: upnp:propchangeSID: uuid:subscription-UUIDSEQ: event key<e:propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">  <e:property>    <variableName>new value</variableName>  </e:property>  Other variable names and values (if any) go here</e:propertyset>

Page 58: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 58

2002-2 컴퓨터공학응용Eventing(7)

DHCP ServerControl points Control points

Device Device Device

Subscription

Subscribing

Notify

1

3

2

Page 59: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

Presentation

Page 60: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 60

2002-2 컴퓨터공학응용Presentation(1)

0 Control point and device get addresses1 Control point finds interesting device2 Control point learns about device capabilities3 Control point invokes actions on device4 Control point listens to state changes of device5* Control point controls device and/or views device

status using HTML UI

0 Addressing0 Addressing

1 Discovery1 Discovery

2 Description2 Description

5* Presentation5* Presentation4 Eventing4 Eventing3 Control3 Control

Page 61: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 61

2002-2 컴퓨터공학응용Presentation(2)

프리젠테이션의 URL 은 디바이스 상세 문서의 ‘ Presentation URL’ 요소에 기술 • 컨트롤 포인트는 디바이스로부터 이 문서를 브라우저로 전송 받아 , 장치의 상태 정보를 보고 받으며 , 장치를 제어할 수 있도록 사용자에게 인터페이스를 제공한다 .

• 프리젠테이션 문서의 작성을 UPnP 포럼에서는 디바이스나 서비스의 상세문서와 달리 전적으로 디바이스 제작회사 측에 전담시키고 있다 .

Page 62: Decoupled Value Prediction on Trace Processorscs.sch.ac.kr/lecture/CompApp/02-UPnP.ppt · PPT file · Web view · 2016-04-04UPnP 순천향대학교 정보기술공학부 이상정

순천향대학교 정보기술공학부 이 상 정 62

2002-2 컴퓨터공학응용Presentation(3)

Presentation URL Presentation page can

be used for control or setup by a standard browser

Protocol stack

UPnP vendorUPnP vendor

UPnP Device ArchitectureUPnP Device Architecture

IPIP

HTTPHTTP

TCPTCP