Tag Archives: Search

집단지성을 활용하는 Collaborative Filtering(CF) 알고리즘 – 추천 알고리즘으로 많이 이용되고 있지만, 한계도 알아야 해

오늘은 Collaborative Filtering에 대해 간단히 정리해보려고 합니다. 업무상 이와 관련된 내용을 자주 접하지만, 어딘가 정리를 해서 놓을 필요가 있다는 생각이 들어 블로그에 올려봅니다. 참고로 이는 전혀 새로운 알고리즘이나 방법이 아니며, 이미 학술적으로도… 또한 업계에서도 널리 응용되고 있는 방법입니다.

본 포스트에서는 Collaborative Filtering에 대해 그 정의와 응용(Application)에 대해 간단히 소개하고자 합니다.

 

1. Collaborative filtering이란?

Collaborative filtering (CF; 이하는 CF로 줄여서 표기)은 추천 시스템에서 사용하는 기법 중 하나입니다.

 

CF는 여러 에이젼트, 뷰포인트, 데이터 소스와의 협업(콜레보레이션; Collaboration)을 포함하는 기술을 사용하여 정보 또는 패턴을 필터링하는 프로세스입니다. 뉴스나 드라마에서 콜라보(Collaboration의 줄임말)를 했다는 말을 종종 들으셨을 것입니다. 콜라보란 협업(Collaboration)을 했다는 의미인데, 이를 바탕으로 CF를 다시 정의하면, 사전적으로는 여러 소스를 참조하여 불필요한 정보를 차단한다는 의미인데, 다르게 해석하면 관심 있어할 정보만 찾아준다는 것으로 풀이할 수 있습니다.

 

CF 알고리즘은 빅데이터(Big-Data)를 기반으로 처리되는데, 다음과 같은 분야에 널리 이용되고 있습니다.

  • 다양한 센서를 이용한 광물 탐사
  • 신용카드사의 고객 행태분석
  • 사용자 데이터를 기반으로 한 서비스(쇼핑몰, VOD) 등

 

알고리즘 측면에서 CF를 다시 정의하면 CF는 다양한 사용자의 선호도를 수집하여 사용자의 관심 분야를 자동으로 예측하도록 하는 방법입니다. CF의 가장 흔한 접근 방법은 “당신이 구입한 제품을 구입한 다른 고객은 A라는 제품에도 관심을 보이셨습니다.”라는 방식의 접근입니다. 다른 사례로는 “명량”이라는 영화를 본 사람이 있다고 하면, 이 사람에게 “명량을 보신 고객분들 중 많은 분들이 해적도 보셨습니다”라고 추천을 해주는 것을 예로 들을 수 있습니다. 이는 서비스를 운영하는 사람의 관점에 있어서는 2차 구매를 유도하여 또 다른 수익을 내는 기회를 만들어낼 수 있다는 장점이 있습니다. 이러한 처리 기법은 아마존(Amazon)이나 알리바바(Alibaba) 같은 쇼핑몰은 물론 넷플릭스(Netflix)같은 VOD 서비스 업체에도 적용이 된 바 있습니다.

 

 

2. CF 방법론(Methodology)

1) User-based CF

: 일반적으로 가장 많이 이용되는 방법으로 Nearest Neighbor Algorithm이라고도 불리우며 그 처리 프로세스는 다음과 같습니다.

  • Step 1: 같은 패턴을 가지는 사용자를 찾는다. 예) A라는 아이템에 대해 별 5개를 준 고객이 있다고 할 경우, 이와 같은 등급을 부여한 B라는 고객을 찾는다.
  • Step 2: 같은 유형의 사람들이 했던 패턴을 예측(Prediction) 정보로 제공한다.

 

아래의 사례가 본 사례와 유사한 것 같습니다.

집단지성을 활용하는 Collaborative Filtering(CF) 알고리즘 - 추천 알고리즘으로 많이 이용되고 있지만, 한계도 알아야 해

 

2) Item-based CF

: 아마존(Amazon)이 이를 처음으로 사용한 것으로 알려져 있으며,  통상 “users who bought x also bought y”라는 형태로 많이 알려져 있습니다. 이 방식에 대한 처리 프로세스는 다음과 같습니다.

  • Step 1: 아이템에 대해 서로의 관계를 알 수 있는 매트릭스를 만든다.
    집단지성을 활용하는 Collaborative Filtering(CF) 알고리즘 - 추천 알고리즘으로 많이 이용되고 있지만, 한계도 알아야 해
  • Step 2: 사용자와 일치하는 데이터를 찾아 매트릭스에 대입하여 현재 사용자의 선호도를 예측한다.
    집단지성을 활용하는 Collaborative Filtering(CF) 알고리즘 - 추천 알고리즘으로 많이 이용되고 있지만, 한계도 알아야 해

 

하나 주시해야 할 점은 별점(등급) 방식은 모든 사용자를 만족시키는 것이 아니라 평균적인 대중의 의견을 반영하는 것이므로 선호도나 관심도가 다양한 분야에 적용 시, 그 결과가 만족스럽지 않을 수 있습니다. 이런 경우 검색(Search)이나 Data Clustering같은 방법을 이용하는 편이 좋은 결과로 이어지는 경우가 많습니다.

 

 

3. CF 구현 방식

CF 구현방식에는 Memory-based CF, Model-based CF, Hybrid CF의 3가지 방식이 있습니다. CF 알고리즘을 적용하려고 계획하고 있다면, 그 용도와 Data Source의 Size에 대해 충분히 고민한 후 구현 방식을 정하는 것이 적절하다 판단됩니다.

 

1) Memory-based CF

Memory-based CF는 사용자의 선호도(Rating) 기반으로 사용자(User) 또는 아이템(Item)의 유사도를 계산하는 방법을 이용하는 것으로, 추천 솔루션 개발에 널리 이용됩니다. 쇼핑몰이나 VOD 서비스에서 제공하는 대다수의 추천 기술은 이 방식으로 서비스 되고 있습니다. 위에 기술했습니다만, Nearest Neighbor Algorithm이 널리 이용되고 있으며 아이템(Item)/사용자(User) 기반 top-N 추천 알고리즘 또한 널리 이용되고 있습니다.

이 방식의 단점은 다음과 같습니다.

  • 사람의 선호도(Rating) 의존적
  • 표본데이터 모수가 적으면 성능도 떨어짐. 이 때문에 새로운 사용자나 아이템이 추가되는데 따르는 확장성(Scalability)이 떨어짐.

    집단지성을 활용하는 Collaborative Filtering(CF) 알고리즘 - 추천 알고리즘으로 많이 이용되고 있지만, 한계도 알아야 해

 

2) Model-based CF

이는 Usage 데이터를 기반으로 Training을 하여 패턴을 발견하는 과학적인 기법입니다. 이는 보통 실제 Data에 대한 예측을 하는데 이용되는데, 일기예보 등이 이에 해당합니다. 여기에는 베이지안, 클러스터링, 시맨틱 등 수학적 모델을 기반으로 추천을 하는 다양한 알고리즘이 존재합니다.

Model-based CF는 Memory-based에 비해 적은 소스 모수를 사용하고 데이터가 크면 클수록 예측 퍼포먼스가 좋아 진다는 장점이 있으며, 반대로 모델을 만드는데 비용이 많이 소요되고, 데이터가 크면 클수록 퍼포먼스가 떨어진다는 단점이 있습니다.

집단지성을 활용하는 Collaborative Filtering(CF) 알고리즘 - 추천 알고리즘으로 많이 이용되고 있지만, 한계도 알아야 해

3) Hybrid CF

당연한 예측 결과겠지만, Memory-based CF와 Model-based CF를 혼용하면 적은 모수의 소스에 대해서도 대응이 가능하다는 장점이 있으나, 이에 따라 비용이 증가하고 구현 복잡도도 높아진다는 단점이 있습니다.

예를 들어 Google의 뉴스 추천 서비스가 이에 해당합니다.

 

 

4. CF의 문제점

1) 정확도

추천 시스템을 만드는 많은 과학자들이 “그래서 추천 정확도가 높아졌어?”라는 질문을 받습니다. CF만 가지고 개인화 추천의 선호도를 모두 맞추는 것은 불가능합니다, 다만 대중의 의견을 반영하였으므로 대개는 맞아떨어진다고 하는 것이 맞습니다.

2) 콜드스타트(Cold Start)

CF는 수집된 패턴을 근간으로 움직이므로, 새로운 사용자나 새로운 아이템이 등장했을 경우 사용 데이터 부족으로 인하여, 적절하게 추천되지 않을 가능성이 높습니다. 이런 경우라면 새로운 사용자의 경우에는 좋아하는 영화, 좋아하는 음식, 장르 등… 선호도를 미리 기초 데이터로 받아야 할 것이고, 새로운 아이템이 등장했을 경우에는 이것이 필요한 사람들에게 의도적으로 노출되게 하는 UI(User Interface)적 접근이 필요 할 것입니다.

집단지성을 활용하는 Collaborative Filtering(CF) 알고리즘 - 추천 알고리즘으로 많이 이용되고 있지만, 한계도 알아야 해

 

 

5. CF 알고리즘 적용 시 고려 사항

CF를 구현함에 있어, CF의 성능에 방해가 되는 여러 요인들이 있습니다. 하여 CF 구현 시 아래의 항목에 대한 대응 전략이 있는지… 미리 검토/고민 할 필요가 있습니다.

1) 소스 데이터의 분량(Data Sparsity)

2) 확장성(Scalability)

3) 유사품(Synonyms)에 대한 처리 정책

4) 검색봇(bot) 등 추천에 방해되는 인자(Grey sheep)에 대한 예외 처리 정책

5) 일부러 남의 경쟁자의 아이템에 대해 부정적인 Voting을 하고, 자기 아이템에 대해 긍정적인 Voting을 하는 Shilling attacks에 대한 대응 방안

6) 오래된 아이템(Long Tail)에 대한 Rating이 높아 새로운 아이템이 추천되지 못할 가능성에 대한 대응 방안: 신규 아이템은 별도 노출을 해주는 UI 구성 등.

 

이상 CF(Collaborative Filtering)에 대해 알아보았습니다.

 

 

UPnP 네트워크의 예

UPnP 네트워킹에서 각각의 단계들이 언제 어떻게 실행되는지 그 원리를 더 잘 이해하기 위해서, 몇 개의 장치로만 구성된 소규모 네트워크를 정의해 보겠습니다. 그리고 나서 이들 장치가 UPnP 기능과 관련하여 어떻게 상호 작용하는지를 설명할 수 있습니다.

아래의 그림 6번은 다음의 UPnP 구현 장치들을 포함하는 네트워크를 보여줍니다:

  • 인터넷 게이트웨이. 이 장치는 독립 실행형 게이트웨이 장치 또는 게이트웨이 역할을 하는 PC일 수 있습니다. 이 장치는 제어 포인트(control point)가 될 수도 있고 그렇지 않을 수도 있습니다. 이 장치를 사용하면 인터넷 액세스, DHCP(동적 호스트 구성 프로토콜) 서버, DNS 프록시 및 저장소 등의 서비스를 받을 수 있습니다. 또한 이 게이트웨이는 여러 가정의 LAN 미디어에 연결되기도 하고, 관련된 미디어들에 대한 브리지 기능을 수행하기도 합니다. 사용되는 미디어로는 무선 IEEE 802.11 , 전선 네트워크, 전화선 네트워크 및 IEEE 1394 등이 있습니다.
  • 다수의 스마트 가전기기. 아래 그림에서, 네트워크에는 UPnP 기능을 가진 가정용 기기들을 포함할 될 수 있습니다. 즉 라디오 시계, 커피포트 및 전자 렌지 오븐 등 전선 네트워크에 연결할 할 수 있는 기구들 및 전화선 네트워크에 연결된 UPnP 프린터도 포함 할 수 있습니다.
  • 가정 오락 시스템. 가정 오락 시스템에는 IEEE1394 또는 방화벽과 게이트웨이 장치에 함께 연결된 여러 장비들이 포함됩니다. 이 시스템의 구성 요소들은 튜너를 장착한 스테레오 시스템, 리시버 및 CD 주크박스 플레이어, TV 및 VCR, 비디오나 디지털 카메라와 같은 부가적인 A/V 장치와의 연결 등을 포함합니다. 또한 새로운 DVD 주크박스 플레이어도 이 네트워크에 추가할 수 있습니다.
  • 무선 랩톱. 어떤 사람들은 직장에서 무선 네트워크 어댑터를 장착한 랩톱 컴퓨터를 사용하여 일을 하고, 때때로 못다한 작업을 마무리 하기 위하여 이 컴퓨터를 가정으로 가져 오기도 합니다.

다양한 구성 요소들이 네트워크에 포함될 수 있지만, 여기에서는 비교적 간단한 네트워크의 예를 들어 UPnP 운영 원리를 쉽게 설명하였습니다.

UPnP 네트워크의 예

네트워크의 예

시나리오의 시작

이 시나리오는 랩톱과 DVD 재생장치를 제외하고는 위의 네트워크에 포함되는 모든 구성 요소들이 작동 중이며, UPnP 프로토콜을 사용하여 각각의 장비가 서로를 인식하고 있는 상황을 전제로 시작합니다.

이 시나리오에 등장하는 가족은 몇 주 전 저녁식사 시간에 비디오 시장에서의 DVD 열풍에 대하여 이야기 하면서, 왜 자신들은 아직까지 비디오 카세트 플레이어만을 사용하면서 고화질 영상을 보지 못하고 있는지에 대하여 이야기 하였습니다.

어머니는 어느 날 DVD 클럽에 가입하라는 광고메일을 받았습니다. 그날 가족들은 모여 앉아 각자가 원하는 DVD를 몇 개 선택하였습니다. 오늘 어머니는 아버지의 직장에 전화를 걸어 주문한 DVD가 도착했다고 합니다. 그러나 정작 가장 중요한 DVD 플레이어를 주문하는 것은 잊고 있었습니다.

이러한 제품 구입에 있어서 전문가인 아버지는 퇴근길에 전자제품 대리점을 방문하여 UPnP 기능을 가진 제품인지 확인한 후 최신 DVD 주크박스 플레이어를 구입하였습니다.

아버지가 집에 도착하자마자 식구들은 제품 포장을 열고 이 새 플레이어를 IEEE 1394를 사용하는 오락 시스템에 연결하였습니다. UPnP 기능이 있으므로, 장치가 연결만 되면 홈 네트워크에 있는 모든 장치들은 새로운 장치가 연결되었음을 인식합니다.

장치의 주소지정

새로운 DVD 플레이어가 해야 할 첫번째 작업은 네트워크에 참여하기 위한 주소를 확보하는 것입니다. 각각의 장치는 DHCP 클라이언트를 가지고 있어서, 장치가 네트워크에 처음 연결됐을 때 DHCP 서버를 검색합니다.

만약 DVD 플레이어의 DHCP 클라이언트가 서버로부터 응답을 받지 못하면, 서버가 응답할 수 있는지 확인하기 위하여 다시 시도합니다. 만약 네트워크가 DHCP 서버를 운영하지 않는다면, DVD 플레이어는 알맞은 주소를 선택하기 위하여 자동 IP 주소지정(Auto-IP) 기능을 사용할 것입니다.

Auto-IP 기능을 사용하여, 장치는 169.254/16 범위 내에서 IP 주소를 자동으로 선택합니다. 이 범위내의 처음과 마지막 256 주소들은 계속 유지되어야 하며 사용되어서는 안됩니다. 주소가 선택된 다음에는 이미 그 주소가 사용 중인지 아닌지를 검사합니다. 만약 주소가 다른 장치용으로 사용 중이면, 다른 주소를 선택하여 테스트합니다.

만약 네트워크가 사용 가능한 DHCP 서버를 가지고 있다면, 이러한 모든 절차를 완료하는데 1초도 채 걸리지 않을 것입니다. 그러나 만약 네트워크가 DHCP 서버를 가지고 있지 않다면, Auto-IP 기능을 사용할 수 있는 장치가 필요하고 절차도 조금 더 오래 걸립니다. 만약 Auto-IP기능을 사용하여 주소를 지정하면, DVD 플레이어는 장치들과의 연결을 계속 유지하기 위하여, 네트워크 상의 DHCP 서버가 사용 가능한지 정기적으로 검사할 것입니다.

이 때, DVD 플레이어는 DHCP 서버에 의하여 할당된 주소를 받든지 (네트워크의 모든 기타 장치들은동일 서브넷에 주소를 가짐) 아니면 Auto-IP 주소를 가지게 됩니다. 어느 경우에도 DVD 플레이어는 TCP/IP를 사용하여 네트워크 상의 다른 장치들과 통신할 수 있습니다.

DVD 플레이어가 적합한 네트워크용 IP 주소를 가지게 되면, 그 주소를 통해서 네트워크상에서 검색 및 조회가 가능합니다. 최종 사용자가 장치를 찾아 확인해야 할 경우도 있습니다. 이 경우에는 IP 주소보다는 편한 이름으로 장치를 설정하는 것이 사용하기에 훨씬 용이합니다. 그러나 이름을 사용하여 매핑 주소를 지정하기 위해서 DNS를 사용하는 것은 UPnP 기능 범주에 속하지 않습니다.

검색 – 알림(Discovery – Advertisement)

새로운 장치에 주소가 부여되었고 네트워크 상에서 통신이 가능하므로 이것을 UPnP 제어 포인트에 알려야 합니다. 이것이 UPnP에서의 검색의 한 형태입니다. 장치가 네트워크에 추가되면 UPnP 검색 프로토콜을 사용하여 장치는 자신의 서비스를 네트워크에 있는 제어 포인트들에 알립니다.

새로운 장치가 네트워크에 추가되면 이 장치는 보유한 장치 및 서비스를 알리는 검색 메시지를 멀티캐스트 합니다. 해당되는 모든 제어 포인트는 새로운 서비스의 사용이 가능하다는 통보를 송신할 표준형 멀티캐스트용 주소를 수신하게 됩니다.

이 DVD 플레이어가 송신할 검색 메시지는 알림 내용을 유효하게 유지할 기간을 나타내는 타임 스탬프(time stamp)를 포함할 것입니다. 이 시간이 만료되기 전에 DVD 플레이어는 알림 내용을 다시 전송해야 합니다. 그렇지 않으면 제어 포인트는 이 장비가 더 이상 유효하지 않다고 인식합니다. DVD 플레이어는 또한 오프라인 상태로 전환할 경우에는 사전에 네트워크 연결을 끊는다는 메시지도 반드시 전송해야 합니다.

아래 그림에서 나타내는 프로토콜 스택은 알림을 송수신할 때 사용됩니다.

UPnP 네트워크의 예

검색 알림을 위한 프로토콜 스택

우리의 DVD 플레이어는 네트워크에 연결되면 보유한 장치나 서비스에 대한 GENA 알림 내용을 전송하여 자신의 존재를 널리 알립니다. 이러한 메시지들은 신뢰성이 떨어지는 UDP를 통하여 전달되므로 해당되는 제어 포인트들이 반드시 수신할 수 있도록 몇 번에 걸쳐서 송신됩니다.

검색 (Discovery – Search)

DVD 플레이어에 대한 연결 작업을 마쳤으므로, 아버지는 랩톱을 가지고 월요일에 발표할 프리젠테이션 작업을 끝내려고 합니다.

아버지의 랩톱도 UPnP 기능이 구현되어 있기 때문에 검색 및 알림 작업엔 새로운 DVD 플레이어와 동일한 작업 방식이 적용됩니다. 아버지는 추가적인 구성작업 없이 홈 네트워크의 일부로서 일을 시작합니다. 금요일 저녁이기 때문에 아직 저녁 먹을 시간은 한 시간이나 남아있고 월요일 프리젠테이션 작업에는 많은 시간이 남아 있으므로, 아버지는 새로운 게임을 하려고 합니다.

아버지는 좋아하는 DVD 영화를 보고 새로운 게임의 작동 방법도 알아보려고 합니다. 물론 그는 플레이어와 함께 제공되는 새로운 원격 조작 방법도 시험하여 파악할 수 있지만, 이미 아버지는 소파에서 랩톱으로 작업을 하고 있었고 또한 DVD도 UPnP 네트워크 상에서 사용할 수 있으므로 굳이 움직일 필요가 없습니다.

아버지는 랩톱에서 비디오 제어 어플리케이션을 시작합니다. 이 어플리케이션을 시작하면 새로운 제어 포인트가 네트워크에 나타납니다. 네트워크 상의 모든 비디오 장치가 표시되고 아버지는 DVD 플레이어를 선택합니다. 그런 후에 듣고 싶은 디스크를 선택하여 재생합니다. 또한 아버지는 비디오 제어 어플리케이션을 사용하여 TV를 켤 수도 있습니다.

UPnP 네트워킹에 있어서 일부 다른 단계들이 막 시작되었습니다. 먼저 새로운 제어 포인트가 네트워크 상에 나타납니다. 새로운 제어 포인트가 네트워크에 추가되면 이것은 SSDP 검색 메시지를 멀티캐스트하여 원하는 장치 및 서비스를 검색합니다. 모든 장치들이 이 메시지에 대한 표준 멀티케스트용 주소를 수신해야 하며, 그들의 내장 장치나 서비스 중에서 검색 메시지의 검색조건에 일치하는 것이 있으면 반드시 응답을 해야 합니다. 특히 아버지가 시작하는 비디오 제어 어플리케이션은 비디오 소스 장치를 검색합니다.

이러한 검색 메시지 용으로 사용되는 프로토콜 스택은 다음과 같습니다:

UPnP 네트워크의 예

검색(Discovery Search)용 프로토콜 스택

이러한 검색 메시지는 특정 공급업체 정보( 장치나 서비스 형태 및 식별자 등)를 포함합니다. 이러한 장치의 형태에 대하여 UPnP 작업 위원회가 정의한 장치나 서비스의 형태 ( 이 예에서는 비디오 소스 장치)도 추가됩니다. 이 정보는 HTTPMU를 사용하여 전송되는 SSDP 요청에 캡슐화 됩니다. 이러한 검색 요청에 대한 응답은 SSDP 헤더를 가진 유니캐스트 UDP를 사용하여 전송됩니다.

이 요청에 대한 응답은 검색 알림에 포함되어 있는 정보와 동일한 내용을 포함하고 있습니다. 해당 응답은 검색을 시작하는 제어 포인트의 IP 주소(이 경우에는 아버지의 랩톱)로 전송됩니다.

설명 (Description)

아버지의 랩톱에서 운영되는 새로운 제어 포인트는 이제 네트워크에 있는 모든 비디오 소스 장비에 대한 정보를 확보하고 있습니다. 그리고, 이 시나리오에서 우리는 처음으로 하나의 장치에 대한 추가 정보가 필요한 상황에 놓여 있으며, 따라서 설명 단계로 넘어가겠습니다.

검색 요청과 관련하여 수신한 응답은 장치 설명서를 제공한 URL을 포함하고 있습니다.

UPnP 장치 설명을 받기 위하여 제어 포인트는 검색 메시지(discovery message)를 통하여 URL에 관한 HTTP GET 요청을 발행하고, 장치는 장치 설명서 보내줍니다. 서비스 설명에 대한 URL은 장치 설명의 일부이며, 따라서 서비스 설명도 동일한 방법으로 검색이 가능합니다. 설명 단계에서 사용되는 프로토콜 스택은 다음과 같습니다:

UPnP 네트워크의 예

설명용 프로토콜 스택

장치에 대한 UPnP 설명은 XML 문서로서 공급업체와 관련된 정보, 포함되어 있는 장치에 대한 정의, 장치 공급 URL, 제공하는 모든 서비스 내용, 제품 제어 및 이벤트용 URL 등에 관한 정보를 포함하고 있습니다. UPnP 관련 제품 공급업체는 표준형 장치 및 서비스 설명서를 확장하여 추가적인 상태 변수, 동작 및 전체 서비스까지도 포함할 수 있습니다. 이러한 방법으로 UPnP는 기본적 표준을 준수하면서도 유연성을 제공합니다. 장치 및 서비스 설명서 샘플은 UPnP 장치 구조 문서에 포함되어 있습니다.

프리젠테이션

아버지의 랩톱에서 운영되는 어플리케이션은 제공할 장치 및 서비스의 대상 및 제공 방법을 결정할 수 있습니다. 다른 방법으로는 만약 DVD 플레이어가 프리젠테이션 웹 페이지를 호스팅하고 있는 경우에 이 HTML 페이지를 다운로드 하여 장치를 제어하는데 활용하는 것도 가능합니다.

프리젠테이션 페이지에 대한 URL은 장치 설명서에 포함되어 있습니다. 이 페이지를 검색하려면 프리젠테이션 URL로 HTTP GET 요청을 발행할 제어 포인트가 필요합니다. 그러면 장치가 프리젠테이션 페이지 정보를 반환합니다. 이 때 사용되는 프로토콜 스택은 다음과 같습니다.

UPnP 네트워크의 예

프리젠테이션용 프로토콜 스택

UPnP Device Architecture 문서는 이 페이지를 HTML로 작성해야 한다고 명시하고 있습니다. 이 과정에서는 아버지가 제어를 위하여 장치를 조회한다는 점을 제외하고는 웹 브라우징 기법과 비슷합니다.

프리젠테이션 페이지의 기능은 전적으로 UPnP 제품 공급업체 의하여 지정됩니다. 프리젠테이션 페이지를 구현하기 위하여 UPnP 제품 공급업체는 장치의 기존 기능을 최대한 활용하면서 제어 기능 및 이벤트를 위한 UPnP 기능을 사용하기 원할 것입니다. 프리젠테이션과 관련하여 정의된 UPnP Forum 구성요소는 전혀 없고 전적으로 공급업체에 의하여 결정된다는 점에 유의하십시오.

제어

아버지는 DVD 플레이어를 제어하고 DVD 영화를 선택하고, 플레이어를 재생시키려고 합니다. 이 작업을 위해서는 프리젠테이션 페이지나 일반적 비디오 제어 어플리케이션을 사용할 수도 있습니다.

일단 제어 포인트가 장치 및 장치의 서비스를 인식하였으면, 이것은 그러한 서비스에 대한 동작을 실행하고 반환 값을 받습니다. 동시에, 제어 포인트는 서비스 상태 변수 값을 확인하기 위하여 서비스들을 폴링할 수도 있습니다.

동작을 실행시키는 것은 일종의 원격 프로시저 호출입니다. 즉, 제어 포인트가 동작을 장치의 서비스로 전송하고, 동작이 완료되면( 또는 실패하면) 서비스가 모든 결과 값 및 오류 내용을 반환합니다. 제어 포인트는 또한 상태 변수의 값을 폴링하는 것도 가능합니다.

DVD 플레이어를 제어하기 위하여 아버지의 랩톱은 제어 메시지를 DVD 서비스용 제어 URL( 장치 설명서에 포함되어 있음)로 보냅니다. DVD 플레이어 서비스는 동작의 모든 결과 및 오류 내역을 반환합니다. 동작의 효과는 서비스의 상태 변수의 변경을 통해서도 감시할 수 있습니다. 이러한 상태 변수의 변경은 이벤트 부분에서 설명한 것처럼 모든 관련 제어 포인트로 통보되지만, 이 상태 변수 값들에 대한 쿼리가 가능하고, 이는 제어 요청의 한 유형이라고 할 수 있습니다.

다음의 프로토콜 스택이 제어용으로 사용됩니다.

UPnP 네트워크의 예

제어용 프로토콜 스택

제어 메시지에 포함된 공급업체 관련 정보는 독립변수를 포함합니다. UPnP Forum 작업 위원회는 동작 이름(action names)과 이 메시지에 포함된 독립변수 이름(argument names) 및 변수(variables)를 정의합니다. 이들 정보는 UPnP 용 포맷으로 캡슐화 되고 SOAP를 사용하여 포맷된 후, TCP/IP를 통한 HTTP를 사용하여 전송됩니다.

장치는 반드시 제어 요청에 30초 이내에 응답해야 합니다. 이 응답은 동작이 아직 보류 상태에 있지만 곧 완료된다는 것을 의미합니다.

또한 여기서의 제어 어플리케이션은 또한 특정 서비스 변수의 상태를 질의할 수도 있습니다. 예를 들어 DVD 플레이어 서비스는 특정 DVD 런타임을 포함하는 상태 변수를 알려주는 서비스를 가지고 있을 수 있습니다. 아버지는 이 변수를 파악하고 저녁 밥을 먹기 전에 어느 정도 영화를 볼 수 있을 것인지 알 수 있을 것입니다. 그러나 각각의 쿼리에 대해서 하나의 변수만이 전송됩니다.

검색, 설명, 제어에 대한 재차 설명

이제 DVD가 재생되고 아버지는 프리젠테이션 작업을 시작합니다. 새로 받은 자료를 보면서 시계가 깜박거리는 것을 확인합니다. 그 뿐만 아니라 VCR의 시계도 깜박거립니다. 그는 간단히 생각해서 자기 테이프를 가져와서 옛날에 하던 방식으로 깜박거리는 것을 중지시키려고 하지만, 어머니가 오후에 잠깐 전기가 나갔기 때문에 전자 레인지, 커피 포트 및 자명종 시계 모두가 맞지 않다고 말합니다.

아버지는 인터넷 게이트웨이와 함께 시계 설정 어플리케이션이 제공되었다는 사실을 기억해냅니다. 지금이 이것을 시험해보는 절호의 기회입니다. 그는 그 어플리케이션을 랩톱에 로드하는데, 두 가지 요소가 이 어플리케이션을 찾아 실행하는 절차를 아주 간단하게 합니다.

먼저, 게이트웨이는 홈 네트워크에 스토리지 서비스를 제공합니다. 이것은 네트워크상에서 디스크 공간을 확보할 수 있도록 하는 스토리지 서비스를 가지고 있습니다. 이 시간 설정 어플리케이션은 게이트웨이와 공유하는 디스크에서 사용할 수 있습니다. 이 어플리케이션을 쉽게 운영할 수 있도록 하는 두 번째 사항은 아버지의 랩톱에 있는 운영체제가 UpnP 기능을 가지고 있으며 파일 브라우저를 포함하고 있다는 점입니다. 브라우저는 자동으로 파일 스토리지 서비스를 제공하는 장치용 네트워크를 검색하고, 게이트웨이 장치에 있는 스토리지가 나타납니다.

아버지가 시간 설정 어플리케이션을 클릭하면 어플리케이션은 다음과 같은 작업을 수행합니다:

  • 인터넷 연결을 찾아서 공식적인 시간을 파악하기 위하여 인터넷에서 시간 소스에 연결합니다.
  • UPnP 검색 기능을 활용하여 시간 서비스를 제공하는 네트워크 상의 모든 장치를 검색합니다.
  • 각 장치의 시간 서비스에 “설정 (set)” 동작을 전송합니다.

아주 간단합니다. 아버지는 좀더 내용을 파악하고서는 시간 어플리케이션은 제어 포인트 역할을 하는 게이트웨이에서 주기적으로 실행되도록 설정할 수 있다는 것을 알았습니다. 따라서 이 어플리케이션이 매일 아침 4시에 실행되도록 설정하였으므로 시간 맞추는 일에 대하여 다시 걱정할 필요가 없어졌습니다.

이벤트 작업

저녁 식사 시간이 가까워지고 아버지는 프리젠테이션 작업을 마칩니다. 아버지는 작업 내용을 인쇄하여 저녁 식사하면서 검토하고자 합니다. UPnP 프린터는 부엌에 있는 전화선 네트워크에 연결되어 있으므로 랩톱에서 사용하는 것이 가능합니다.

아버지는 랩톱을 통하여 이 프린터로 출력하려고 하는데 프린터의 잉크가 떨어졌다는 메시지가 나타납니다. 아버지는 아들에게 전화를 걸어 잉크 카트리지를 변경해달라고 말했는데, 아들이 와서는 문제가 이미 해결되었다고 말합니다. 아들이 자기 방에서 PC로 숙제를 하는 동안 아들의 PC에도 같은 통보가 전송되었기 때문입니다. 이벤트에 등록된 네트워크 상의 모든 제어 포인트는 이 통보를 받습니다.

서비스 설명에서 언급했던 상태 변수도 이벤트화가 가능합니다. 이 서비스는 상태가 변경되면 업데이트를 발행합니다. 제어 포인트(여기서는 프린트 브라우저)가 구독 등록 메시지를 전송할 경우, 이 정보를 정기적으로 받아보거나 더 이상 필요가 없는 경우에는 정보 수신 구독을 취소하는 것도 가능합니다.

다음의 프로토콜 스택이 이벤트 작업 시에 사용됩니다:

UPnP 네트워크의 예

이벤트용 프로토콜 스택

구독용 URL, 구독기간, 특정 변수 값 및 변수 이름들은 GENA를 사용하여 포맷되고 TCP/IP를 사용하여 전송됩니다.

요약

이제는 컴퓨팅 파워가 보다 작고 일반적인 장치에서도 구현되고 있으며, 저렴한 범용 네트워킹 매체 기술이 실현되고 있는 추세입니다. 네트워킹 비용은 하락하고, 컴퓨팅 파워는 더욱 강해지고 있습니다

컴퓨팅 기능과 구성/사용이 편리한 일상 생활용품이 결합되어 새로운 많은 장점과 혜택을 제공합니다. 즉, 일상 업무의 수행방법이 매우 쉬워졌으며, 사람들은 보다 높은 수준의 생활을 누리게 되었습니다. 그리고 사람들은 그 어느 때보다도 세계 여러 장소로 연결이 가능하며 또한 사람들을 압도할 수 있는 기술에도 연결이 가능합니다. 따라서 작업 수행 방식은 용이하게 구현되어 사람들이 효율적으로 사용할 수 있어야 합니다.

범용 플러그 앤 플레이 기능은 기존의 표준, 기존의 기술 및 기존의 지식을 활용하고 재정의하여 네트워크 세계에 새로운 약속과 기회를 창출하고자 하는 첫걸음이라 할 수 있습니다. 표준 기반, 소형 장치에서도 구현 가능한 단순성, 전세계 인터넷으로 확장될 수 있는 강력한 기능, 그리고 인터넷 프로토콜에 대한 입증된 접근 방식을 기반으로 한다는 특징을 가진 UPnP는 한 차원 높은 접근 방식인 동시에 이미 그 기능이 검증된 접근 기법입니다.