KR20130009498A - 스케일러블 어플리케이션 서비스를 위한 장치 및 방법 - Google Patents

스케일러블 어플리케이션 서비스를 위한 장치 및 방법 Download PDF

Info

Publication number
KR20130009498A
KR20130009498A KR1020110070657A KR20110070657A KR20130009498A KR 20130009498 A KR20130009498 A KR 20130009498A KR 1020110070657 A KR1020110070657 A KR 1020110070657A KR 20110070657 A KR20110070657 A KR 20110070657A KR 20130009498 A KR20130009498 A KR 20130009498A
Authority
KR
South Korea
Prior art keywords
application
sadl
server
terminal
terminals
Prior art date
Application number
KR1020110070657A
Other languages
English (en)
Inventor
김경원
임태범
이석필
Original Assignee
전자부품연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 전자부품연구원 filed Critical 전자부품연구원
Priority to KR1020110070657A priority Critical patent/KR20130009498A/ko
Publication of KR20130009498A publication Critical patent/KR20130009498A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25808Management of client data
    • H04N21/25833Management of client data involving client hardware characteristics, e.g. manufacturer, processing or storage capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25808Management of client data
    • H04N21/25841Management of client data involving the geographical location of the client
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/43615Interfacing a Home Network, e.g. for connecting the client to a plurality of peripherals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8543Content authoring using a description language, e.g. Multimedia and Hypermedia information coding Expert Group [MHEG], eXtensible Markup Language [XML]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computer Graphics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

홈 네트워크 시스템과 같은 소정의 네트워크 시스템에서의 어플리케이션 서비스를 위한 장치 및 방법이 개시된다. 일 실시예에 따른 다수의 단말기들 각각에 적합한 어플리케이션을 서비스하는 방법은 자신의 특성 정보 및 요청하는 어플리케이션의 유형 정보가 포함된 어플리케이션 요청 신호를 서버로 전송하는 단계, 및 어플리케이션의 유형 정보에 대응하는 통합 문서에서 특성 정보에 따라서 선택 및 추출된 일부 컴포넌트로 생성된 어플리케이션을 서버로부터 수신하는 단계를 포함한다.

Description

스케일러블 어플리케이션 서비스를 위한 장치 및 방법{Apparatus and method for scalable application service}
본 발명은 어플리케이션 서비스(application service)에 관한 것으로, 보다 구체적으로 다양한 단말들로 이루어진 네트워크에서 적응적으로 어플리케이션 서비스를 제공하기 위한 장치와 방법에 관한 것이다.
정보통신 기술이 발전함에 따라 텔레비전(Television, TV) 방송 서비스 환경도 급변하고 있다. TV 방송 서비스는 아날로그 방송에서 디지털 방송으로 전환 중인 지상파 방송 서비스를 근간으로 하여, 케이블 방송, 위성 방송, 디지털 멀티미디어 방송(Digital Multimedia Broadcasting, DMB) 등으로 그 전달 매체가 다양화되고 있다. 또한, 최근에는 인터넷 망을 이용한 아이피티브이(IPTV) 서비스가 활성화되면서, 방송 서비스는 단순히 멀티미디어 콘텐츠를 시청자에게 제공하는 단방향 서비스에서 양방향 서비스로 그 성격이 변화하고 있을 뿐만 아니라 서비스 객체도 그 종류가 다양해지고 있다. 이에 따라서, IPTV 서비스는 비디오, 오디오, 이미지 등과 같은 멀티미디어 데이터를 제공하는 것에 한정되지 않고, TV 수상기, 컴퓨터, 휴대용 단말기 등과 같은 다양한 단말에서 실행 가능한 어플리케이션도 제공하려는 노력이 이루어지고 있다.
현재 IPTV 서비스는 이동 통신망을 이용하는 모바일 IPTV 서비스에 대한 기술적 준비가 시작되고 있다. 모바일 IPTV 서비스가 현실화되면, IPTV 서비스는 유무선을 통해 모두 지원이 가능한 IP 융합 서비스로 발전하게 된다. 특히, 모바일 IPTV 서비스는 이동 통신망을 통한 통신 기능이 구비된 모든 단말을 이용하여 제공될 수 있으므로, IPTV 서비스는 다양한 단말에 대하여 동시 지원이 가능한 서비스로 발전될 것으로 예측된다. IPTV 서비스에서 스케일러블 비디오 코딩(Scalable Video Coding, SVC) 등과 같은 다층화된 비디오 코딩 기법을 이용하여 다양한 단말에 대하여 적응적으로 멀티미디어 콘텐츠를 제공하는 방법이 모색되고 있다.
하지만, SVC는 하나의 비디오 콘텐츠(동영상)를 다양한 단말에게 제공할 수 있도록 계층적으로 부호화하는 기법일 뿐이다. 이와는 달리, 어플리케이션 서비스는 동영상을 포함한 다양한 콘텐츠를 사용자 단말기에서 직접 또는 다른 장치(예컨대, JAVA, FLASH 등)의 엔진에 탑재되어 실행이 가능한 프로그램을 제공하는 것으로서, 복수의 요소 및/또는 사항들이 통합된 것이다. 이러한 어플리케이션 프로그램이 재생되면, 사용자 단말기에 그래픽 사용자 인터페이스(Graphic User Interface, GUI) 등으로 통합된 요소 및/사항들이 반영되어 표현될 수 있다.
그런데, 현재는 단말의 종류나 특성 등에 상관없이 단일의 포맷으로 어플리케이션 프로그램이 제공될 뿐이며, 다양한 단말에 최적화하여 어플리케이션 프로그램을 제공하는 방법에 대해서는 아직 표준화나 기술 개발이 충분히 이루어지지 않고 있다. 보다 구체적으로, 현재 IPTV 서비스에서는 이를 이용하는 단말의 개별적인 특성(예컨대, 단말의 성능이나 디스플레이의 크기 등)을 고려하지 않는다. 예를 들어, IPTV 서비스를 통해 제공되는 멀티미디어 콘텐츠나 데이터 등을 재생하는 어플리케이션 프로그램은 그 특성(예컨대, 영상의 화질이나 음질, 보안 등급, GUI를 구성하는 콘텐츠의 종류나 개수, 접근 가능 범위 등)이 하나로 결정되어 있으며, IPTV 서비스를 이용하는 단말의 개별적인 특성을 반영하여 적응적으로 서비스를 제공하지는 않는다. 따라서 각 단말에 대하여 해당 단말의 성능 규격에 최적화된 어플리케이션 서비스를 제공하기가 어렵다.
단말의 성능 규격에 최적화된 어플리케이션 서비스를 제공하는 하나의 방법은 서비스 제공자가 다양한 단말의 성능 규격을 고려하여 GUI 등을 복수의 포맷으로 만들어서 제공하는 것이다. 예를 들어, 크기가 작은 디스플레이를 갖는 모바일 기기에서 웹 브라우징을 할 때, 네이버나 다음 등을 비롯한 콘텐츠 제공자들은 각 단말에 맞게 웹을 표현하기 위해 미리 모바일 기기에 맞게 제작한 웹 페이지로 접속하도록 하고 있다. 그러나 이 경우에는 서비스 서버에 다양한 포맷의 콘텐츠가 미리 만들어서 저장되어 있어야 하므로, 서비스 제공자의 부담을 증가시켜서 서비스 비용을 증가시키는 단점이 있다. 또한, 다양한 특성을 갖는 모든 단말에 대하여 최적화된 GUI를 미리 만들어서 저장한다는 것은 현실적으로 불가능하다.
W3C(World Wide Web Consortium)에서는 웹 어플리케이션을 다양한 디바이스에서 끊임없이 이용하는 것을 목표로 CC/PP(Composite Capability/Preference Profile, 디바이스 정보에 대해서 프로파일링하는 표준) 외에도 DIAL(Device Independent Authoring Language, 디바이스 독립 저작 언어 표준), DISelect(Contents Selection for Device Independence, 다양한 디바이스에서 웹을 표현하기 위한 콘텐츠 선별 및 필터링 표준)와 DCI(Delivery Context Interfaces, 디바이스용 동적 콘텍스트 프로파일 표준)와 같은 콘텍스트 정보 표현 표준화를 추진하였으나 상용되는 서비스로의 발전이 미흡한 실정이다.
본 발명이 해결하려는 과제는 다양한 단말로 이루어진 네트워크 환경에서 각 단말기에게 최적화된 어플리케이션 프로그램을 제공하기 위한 장치와 방법을 제공하는 것이다.
상기한 과제를 해결하기 위한 본 발명의 일 실시예는, 다양한 단말기들로 이루어진 네트워크에서 각 단말기에 적합한 어플리케이션 서비스를 제공하는 방법으로서, 자신의 특성 정보 및 요청하는 어플리케이션의 유형 정보가 포함된 어플리케이션 요청 신호를 서버로 전송하는 단계, 및 상기 어플리케이션의 유형 정보에 대응하는 통합 문서에서 상기 특성 정보에 따라서 선택 및 추출된 일부 컴포넌트로 생성된 어플리케이션을 상기 서버로부터 수신하는 단계를 포함한다.
상기 실시예의 일 측면에 의하면, 상기 통합 문서는 상기 다수의 단말기 각각이 상기 어플리케이션을 각각 재생하기 위한 마크업 언어로 작성된 컴포넌트들이 통합된 것일 수 있다.
상기 실시예의 다른 측면에 의하면, 상기 특성 정보는 상기 단말기의 해상도, 상기 단말기의 대역폭, 상기 단말기의 위치, 상기 단말기가 위치한 지역의 시간, 상기 단말기의 사용자 정보, 상기 단말기의 보안설정 정도, 상기 어플리케이션의 제한 요소 중 적어도 하나를 포함할 수 있다.
상기 실시예의 또 다른 측면에 의하면, 사용자로부터 서비스받기를 원하는 상기 어플리케이션 유형 정보를 입력 받는 단계 및 입력된 상기 어플리케이션 유형 정보에 기초하여 상기 어플리케이션 요청 신호를 생성하는 단계를 더 포함할 수 있다.
상기한 과제를 해결하기 위한 본 발명의 일 실시예에 따른 단말기는, 다양한 단말기들로 이루어진 네트워크에서 어플리케이션 서비스를 이용하는 단말기로서, 사용자가 원하는 어플리케이션 유형을 입력하기 위한 입력부, 상기 입력부를 통해 입력된 상기 어플리케이션 유형에 기초하여, 어플리케이션 유형 정보와 단말의 특성 정보가 포함된 어플리케이션 요청 신호를 생성하고, 서버로부터 수신된 어플리케이션 응답 신호에 포함된 어플리케이션을 실행하기 위한 프로세서, 상기 프로세서에서 생성된 상기 어플리케이션 요청 신호를 서버로 전송하고 또한 상기 서버로부터 어플리케이션이 포함된 어플리케이션 응답 신호를 수신하기 위한 송수신부, 및 상기 프로세서에서 실행된 어플리케이션을 상기 사용자에게 출력하기 위한 출력부를 포함한다.
상기한 과제를 해결하기 위한 본 발명의 다른 실시예에 따른 단말기는, 다양한 단말기들로 이루어진 네트워크에서 어플리케이션 서비스를 이용하는 단말기로서, 사용자가 원하는 어플리케이션 유형을 입력하기 위한 입력부, 상기 입력부를 통해 입력된 상기 어플리케이션 유형에 기초하여 어플리케이션 유형 정보가 포함된 어플리케이션 요청 신호를 생성하고, 상기 어플리케이션 요청 신호에 대응하여 생성된 어플리케이션을 실행하기 위한 프로세서, 상기 어플리케이션 요청 신호를 서버로 전송하고, 상기 서버로부터 상기 어플리케이션 유형에 대응하는 통합 문서가 포함된 어플리케이션 응답 신호를 수신하기 위한 송수신부, 상기 송수신부에서 수신한 통합 문서를 이용하여 자신의 특성 정보에 따라서 일부 컴포넌트를 선택 및 추출하여 상기 프로세서가 실행하는 어플리케이션을 생성하는 프리파서, 및 상기 프로세서에서 실행된 어플리케이션을 상기 사용자에게 출력하기 위한 출력부를 포함한다.
상기 실시예의 일 측면에 의하면, 상기 프리파서는 상기 프로세서에 포함될 수 있다.
본 발명에 의하면, 시청 환경을 고려하여 서로 다른 성능을 가지는 단말기들에 최적화된 사용자 인터페이스와 어플리케이션 프로그램을 제공하기 위해 홈 네트워크상에서의 상황 인지형 스케일러블 사용자 인터페이스 기술인 통합 문서인 SADL(Scalable Application Description Language) 문서를 제공함으로써, IPTV 환경에서 비디오, 오디오, 그리고 이미지 파일 뿐만 아니라 어플리케이션 프로그램을 공유/연동할 수 있다. 그리고 이러한 어플리케이션 프로그램은 시청 환경이 서로 다른 디지털 기기에 동시에 적용하는 것이 가능하며 다양한 시청 환경에 최적화된 사용자 인터페이스를 제공할 수 있다. 따라서 본 발명에 의하면, 사용자 편의성을 증진시키고 콘텐츠뿐만 아니라 어플리케이션의 저장/관리/이용에 효율적이다. 아울러, 어플리케이션 프로그램을 요청하는 단말기 별로 또는 단말기의 사용자 별로 효율적으로 서비스를 제공할 수 있다.
도 1은 본 발명의 일 실시예에 따른 어플리케이션 서비스가 제공될 수 있는 네트워크 시스템의 구성의 일례를 보여 주는 블록도이다.
도 2는 주체가 서버인 경우에 본 발명의 일 실시예에 따른 어플리케이션 서비스 과정을 보여 주는 흐름도이다.
도 3은 주체가 단말기인 경우에 본 발명의 일 실시예에 따른 어플리케이션 서비스 과정을 보여 주는 흐름도이다.
도 4는 본 발명의 다른 실시예에 따른 어플리케이션 서비스가 제공될 수 있는 네트워크 시스템의 구성 및 서비스 과정의 일례를 보여 주는 다이어그램이다.
도 5는 본 발명의 다른 실시예에 따른 어플리케이션 서비스 과정을 보여 주는 흐름도이다.
도 6은 이러한 어플리케이션 서비스 과정을 수행하기 위한 서버의 구성을 보여 주는 블록도이다.
도 7은 본 발명의 또 다른 실시예에 따른 네트워크 시스템에서 어플리케이션 공유 방법을 설명하기 위한 개념도이다.
도 8은 본 발명의 또 다른 실시예에 따른 네트워크 시스템에서 어플리케이션 공유 방법을 설명하기 위한 순서도이다.
도 9는 본 발명의 실시예에 따른 단말기의 구성을 보여 주는 블록도이다.
도 10은 본 발명의 또 다른 실시예에 따른 네트워크 시스템에서의 어플리케이션 공유 방법을 보여 주는 다이어그램이다.
도 11은 본 발명의 또 다른 실시예에 따른 네트워크 시스템에서의 어플리케이션 공유 방법을 보여 주는 순서도이다.
이하, 첨부된 도면들을 참조하여 본 발명의 실시예를 상세하게 설명한다. 사용되는 용어들은 실시예에서의 기능을 고려하여 선택된 용어들로서, 그 용어의 의미는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 후술하는 실시예들에서 사용된 용어의 의미는, 본 명세서에 구체적으로 정의된 경우에는 그 정의에 따르며, 구체적인 정의가 없는 경우는 당업자들이 일반적으로 인식하는 의미로 해석되어야 할 것이다.
도 1은 본 발명의 일 실시예에 따른 어플리케이션 서비스가 제공될 수 있는 네트워크 시스템의 구성의 일례를 보여 주는 블록도이다. 도 1을 참조하면, 네트워크 시스템은 서버(100), 미들웨어(150), 및 다수의 단말기(200_1, 200_2, 200_3)를 포함한다. 그리고 도 2 및 도 3은 각각 본 발명의 일 실시예에 따른 어플리케이션 서비스 과정을 보여 주는 흐름도로서, 도 2는 주체가 서버인 경우이고 도 3은 주체가 단말인 경우이다.
다수의 단말기(200_1, 200_2, 200_3)는 댁내에서 홈 네트워크 시스템을 구성하거나 또는 이를 통하여 각종 서비스를 받을 수 있는 다양한 디지털 기기들일 수 있다. 하지만, 본 실시예가 홈 네트워크 시스템에만 한정되는 것은 아니며, 소정의 통신 네트워크(유선 네트워크 또는 무선 네트워크에 제한이 없으며, 이동통신 네트워크, 단거리 통신 네트워크, 모바일 네트워크 등일 수 있다). 이러한 다수의 단말기들(200_1, 200_2, 200_3)은, 예컨대 스마트 폰(smart phone), 피디에이(Personal Digital Assistant, PDA), 셀룰러 폰, 피씨에스(Personal Communication Service, PCS) 폰, 핸드-헬드 피씨이(hand-held PC), 지에스엠(global System for Mobile, GSM) 폰, 더블유씨디엠에이폰(Wideband Code Division Multiple Access, WCDMA) 폰, CDMA2000 폰, 및 엠비에스(Mobile Broadband System, MBS) 폰 등과 같은 모바일 디바이스이거나 또는 개인용 컴퓨터(Personal Computer, PC), 랩톱 컴퓨터(laptop computer), 태블릿 피씨이(tablet PC) 등과 같은 PC용 디바이스이거나 또는 디지털 티브이(TV) 등과 같은 TV용 디바이스일 수 있다.
이러한 다수의 단말기(200_1, 200_2, 200_3)는 서버(100)와 통신이 가능하도록 서버(100)와 유선 및/또는 무선을 통해 연결되어 있다. 이 때, 다수의 단말기(200_1, 200_2, 200_3)는 서버(100)와 직접 연결되거나 또는 해당 네트워크 시스템의 미들웨어(150)를 통해 서버(100)와 연결될 수 있다. 전자의 경우에, 다수의 단말기(200_1, 200_2, 200_3)와 서버(100) 사이의 통신은 직접 이루어지지만 후자의 경우에 다수의 단말기(200_1, 200_2, 200_3)와 서버(100) 사이의 통신은 미들웨어(150)를 통해서 이루어진다. 즉, 다수의 단말기(200_1, 200_2, 200_3)는 직접 또는 미들웨어(150)를 통해 서버(100)로 어플리케이션 프로그램을 요청하고, 서버(100)는 직접 또는 미들웨어(150)를 통해 단말기(200_1, 200_2, 200_3)로 어플리케이션 프로그램을 제공함으로써, 다수의 단말기(200_1, 200_2, 200_3)들 사이에 어플리케이션 프로그램이 공유될 수 있도록 한다.
도 2 및 도 3을 참조하여 보다 구체적으로 설명하면, 서버(100)는 다수의 단말기(200_1, 200_2, 200_3) 중에서 적어도 하나의 단말기로부터 어플리케이션 프로그램에 대한 어플리케이션 요청 신호를 수신한다(S210). 여기서, 어플리케이션 요청 신호는 어플리케이션 프로그램의 타입에 관한 정보와 어플리케이션 프로그램의 포맷에 관한 정보 중에서 적어도 하나를 포함할 수 있다. 이를 위해, 각 단말기(200_1, 200_2, 200_3)는 사용자로부터 어플리케이션 프로그램의 타입에 관한 정보와 어플리케이션 프로그램의 포맷에 관한 정보 중에서 적어도 하나를 입력받고, 어플리케이션 프로그램의 타입에 관한 정보 및 어플리케이션 프로그램의 포맷에 관한 정보 중 적어도 하나가 포함된 어플리케이션 요청 신호를 서버(100)로 송신할 수 있다. 그리고 각 단말기(200_1, 200_2, 200_3)는 자신의 특성 정보(Delivery Context, DC)를 추출한 다음(S310), 추출된 DC(DC_1, DC_2, DC_3)가 포함된 어플리케이션 요청을 서버(100)로 송신한다(S320).
서버(100)는 저장된 어플리케이션 프로그램 중에서 어플리케이션 요청 신호에 포함된 어플리케이션 프로그램 타입에 관한 정보 및 어플리케이션 프로그램의 포맷에 관한 정보에 부합하는 어플리케이션 프로그램을 검색한다(S220). 여기서, 어플리케이션 프로그램의 타입은 어플리케이션 프로그램에 포함되는 콘텐츠의 타입, 예컨대 오디오(audio), 비디오(video), 이미지(image) 등이 포함된 어플리케이션 프로그램 유형에서 어느 하나일 수 있고, 어플리케이션 프로그램의 포맷은 XHTML, JAVA, FLASH 중에서 적어도 하나를 포함할 수 있다. 한편, 어플리케이션 프로그램의 포맷은 앞서 예시한 XHTML, JAVA, FLASH 이외에도 객체 지향적이고 서술화 가능한 어플리케이션 프로그램일 경우에 더 확장이 가능하다. 즉, 어플리케이션 프로그램의 포맷에 대해서는 특별한 제한이 없으며, 다수의 단말기(200_1, 200_2, 200_3)들 사이에 또는 단말기(200_1, 200_2, 200_3)와 서버(100) 사이에 약속된 포맷들이 속한 그룹 내에서 어느 하나의 포맷을 갖는 어플리케이션 프로그램을 요청할 수 있다. 그리고 서버(100)는 단말(200_1, 200_2, 200_3)로부터 수신된 어플리케이션 요청에 포함되어 있는 특성 정보(DC_1, DC_2, DC_3)를 적용하여 각 단말(200_1, 200_2, 200_3)에게 최적화된 어플리케이션을 생성하는데, 이에 대해서는 뒤에서 상세히 설명한다.
그리고 서버(100)는 각 단말(200_1, 200_2, 200_3)로부터 요청되었으며 또한 각 단말(200_1, 200_2, 200_3)의 특성 정보(DC_1, DC_2, DC_3)가 적용된 어플리케이션이 포함된 어플리케이션 응답 신호를 단말기(200_1, 200_2, 200_3)로 전송하고(S230), 다수의 단말기(200_1, 200_2, 200_3) 각각은 어플리케이션 응답 신호, 즉 이에 포함된 자신의 특성 정보(DC_1, DC_2, DC_3)가 적용된 어플리케이션 프로그램을 수신한다(S330).
여기서, 다수의 단말기(200_1, 200_2, 200_3)로부터 서버(100)로의 어플리케이션 요청 신호의 전송은 미들웨어(150)를 통해 전송될 수도 있고 또는 미들웨어(150) 없이 다수의 단말기(200_1, 200_2, 200_3)로부터 서버(100)로 직접 전송이 될 수도 있다. 또한, 서버(100)로부터 다수의 단말기(200_1, 200_2, 200_3)로의 어플리케이션 응답 신호의 전송은 미들웨어(150)를 통해 전송이 되거나 또는 미들웨어(150) 없이 서버(100)로부터 직접 다수의 단말기(200_1, 200_2, 200_3)로 전송될 수도 있다.
이와 같이, 홈 네트워크 시스템과 같은 소정의 네트워크 시스템에서 다수의 단말기(200_1, 200_2, 200_3)들은 오디오, 비디오, 이미지뿐만 아니라 이를 재생하는데 이용되는 프로그램인 어플리케이션 프로그램 또한 공유할 수 있다. 여기서, 어플리케이션은, 예컨대 각 단말기(200_1, 200_2, 200_3)와 서버(100)와의 그래픽 사용자 인터페이스(Graphic User Interface, GUI), 콘텐츠와 연동 가능한 응용 프로그램, 다수의 단말기(200_1, 200_2, 200_3)와 미들웨어(150) 와의 그래픽 사용자 인터페이스(GUI) 중 어느 하나일 수 있다. 따라서 어플리케이션은 다수의 단말기(200_1, 200_2, 200_3)들 사이, 서버(100)와 다수의 단말기(200_1, 200_2, 200_3) 사이, 서버(100)와 미들웨어(150) 사이, 미들웨어(150)와 다수의 단말기(200_1, 200_2, 200_3) 사이에 공유가 가능하다.
한편, 다수의 단말기(200_1, 200_2, 200_3) 각각은 그 종류 및/또는 성능 등에 따라 사용자에게 다양한 시청 환경을 제공할 수 있다. 따라서 서버(100)는 다수의 단말기(200_1, 200_2, 200_3)들 각각에게 어플리케이션 프로그램을 서비스할 때, 다수의 단말기(200_1, 200_2, 200_3) 각각이 재생하기에 적절한 내용, 포맷, 등급, 구성 등을 갖는 콘텐츠를 서비스하는 것을 고려해볼 수 있다. 이것은 소정의 네트워크 시스템에서 다양한 단말기(200_1, 200_2, 200_3)가 콘텐츠를 포함한 어플리케이션 프로그램을 공유하면서도 각각의 특성에 따라 최적으로 재생 및/또는 실행할 수 있도록 하기 위한 하나의 방법이다.
도 4 내지 도 6을 참조하여 소정의 네트워크 시스템에서 본 발명의 다른 실시예에 따른 어플리케이션 서비스 방법에 대하여 설명한다. 도 4는 본 발명의 다른 실시예에 따른 어플리케이션 서비스가 제공될 수 있는 네트워크 시스템, 예컨대 홈 네트워크 시스템의 구성 및 서비스 과정을 보여 주는 다이어그램이고, 도 5는 본 발명의 다른 실시예에 따른 어플리케이션 서비스 과정을 보여 주는 흐름도이며, 도 6은 이러한 어플리케이션 서비스 과정을 수행하기 위한 서버의 구성을 보여 주는 블록도이다.
도 4를 참조하면, 네트워크 시스템은 서버(100)와 다수의 단말기(200_1, 200_2, 200_3)를 포함한다. 도면에 도시되어 있지는 않지만, 네트워크 시스템은 도 1에 도시된 것과 같이 미들웨어(150, 도 1 참조)를 더 포함할 수도 있다.
서버(100)는 다수의 단말기(200_1, 200_2, 200_3) 각각과 통신이 가능하도록 유선 및/또는 무선으로 연결되어 있다. 그리고 서버(100)는 다수의 단말기(200_1, 200_2, 200_3) 각각의 어플리케이션 프로그램의 공유 또는 다수의 단말기(200_1, 200_2, 200_3) 간의 연동을 제어할 수 있다. 또는, 서버(100)는 다수의 단말기(200_1, 200_2, 200_3)들 각각에게 동일 또는 유사한 기능의 어플리케이션(SADL_C1, SADL_C2, SADL_C3)을 다수의 단말기(200_1, 200_2, 200_3)들 각각의 종류, 성능, 상태 등에 따라 적절하게 제공함으로써, 다양한 시청 환경을 제공하는 다수의 단말기(200_1, 200_2, 200_3)들 사이에 어플리케이션이 개별적으로 최적화되어 공유되도록 할 수 있다. 이하, 이에 대하여 보다 구체적으로 설명한다.
먼저, 다수의 단말기(200_1, 200_2, 200_3)들 각각은 자신들의 특성 정보(DC_1, DC_2, DC_3)를 서버(103)로 전송한다. 여기서, 특성 정보(DC_1, DC_2, DC3)는 어플리케이션 프로그램이 서버(100)로부터 다수의 단말기(200_1, 200_2, 200_3)들 각각으로 제공될 때, 이 어플리케이션 프로그램이 다수의 단말기(200_1, 200_2, 200_3)들 각각에서 최적화되어 표현(또는 재생)되는데 있어서 필요한 다수의 단말기(200_1, 200_2, 200_3)들 각각의 고유한 정보를 의미할 수 있다. 예컨대, 특성 정보(DC_1, DC_2, DC_3)는 다수의 단말기(200_1, 200_2, 200_3)들 각각의 성능에 관한 정보, 사용자 상황에 관한 정보 및 서비스 정책에 관한 정보 중에서 적어도 하나를 포함할 수 있다. 여기서, 단말기의 성능에 관한 정보는 단말기의 종류에 관한 정보, 단말기의 디스플레이에 관한 정보 및 단말기의 디스플레이의 메모리 호환성에 관한 정보 중 적어도 하나를 포함하는 것일 수 있다. 사용자 상황에 관한 정보는 단말기의 네트워크 상태, 단말기의 사용자 위치, 사용하는 시간에 관한 정보, 언어 또는 문화를 포함하는 사용자의 지역 특성 정보 중 적어도 하나를 포함하는 것일 수 있다 그리고 단말기의 성능에 관한 정보, 사용자 상황에 관한 정보 및 서비스 정책에 관한 정보는 각각 불리언(Boolean), 스트링(string) 및 뉴메릭(numeric) 중 적어도 어느 하나로 표현될 수 있다.
또한, 다수의 단말기(200_1, 200_2, 200_3)들 각각은 원하는 어플리케이션을 서버(100)에 요청할 수 있다. 이를 위하여, 다수의 단말기(200_1, 200_2, 200_3)들 각각은 원하는 어플리케이션에 대한 정보(종류나 포맷 등)가 포함된 어플리케이션 요청 신호를 서버(100)로 전송한다. 전술한 특성 정보(DC_1, DC_2, DC_3)는 어플리케이션 요청 신호에 포함되어 서버(100)로 전송될 수 있다. 여기서, 어플리케이션 프로그램은 비디오, 오디오, 그리고 이미지 파일과 같이 다양한 종류 또는 다양한 포맷의 콘텐츠를 포함할 수 있으며, 또한 다수의 단말기(200_1, 200_2, 200_3)에서 실행될 수 있는 소정의 응용 프로그램일 수 있다. 이하에서는, 서버(100)로 요청되는 대상, 즉 서비스 객체가 그래픽 사용자 인터페이스(Graphic User Interface, GUI) 또는 어플리케이션(SADL_C1, SADL_C2, SADL_C3)인 경우를 예로 들어서 설명한다.
서버(100)는 다수의 단말기(200_1, 200_2, 200_3)들 각각으로부터 특성 정보(DC_1, DC_2, DC_3)가 포함된 어플리케이션 요청 신호를 수신하고(S510), 수신된 어플리케이션 요청 신호에서 다수의 단말기(200_1, 200_2, 200_3)들 각각의 특성 정보(DC_1, DC_2, DC3)를 파악한다. 이 때, 서버(100)는 다수의 단말기(200_1, 200_2, 200_3)로부터 어플리케이션(SADL_C1, SADL_C2, SADL_C3)에 대한 요청도 수신할 수 있는데, 여기서 어플리케이션에 대한 요청은 어플리케이션의 종류나 포맷 등에 대한 것이며, 해당 어플리케이션을 구성하는 컴포넌트들이 구체적으로 특정될 필요는 없다. 각 어플리케이션(SADL_C1, SADL_C2, SADL_C3)을 구성하는 컴포넌트들은 서버(100)가 수신된 단말의 특성 정보(DC_1, DC_2, DC_3)를 고려하여 결정할 수 있다.
그리고 서버(100)는 특성 정보(DC_1, DC_2, DC3)를 파악하고, 각 특성 정보(DC_1, DC_2, DC_3)에 따라 다수의 단말기(200_1, 200_2, 200_3) 각각이 재생하기에 가장 최적화된 어플리케이션(SADL_C1, SADL_C2, SADL_3)을 제공한다.
구체적으로, 서버(100)는 마크업 언어(Markup Language)로 작성된 통합 문서(SADL_S)를 자체 메모리 내부에 저장하고 있거나 또는 외부의 데이터베이스(Data Base, DB)에 저장해두고 있을 수 있다. 후자의 경우에, 서버(100)는 어플리케이션(SADL_C1, SADL_C2, SADL_C3)을 생성하기 이전에 외부의 DB로부터 통합 문서(SADL_S)를 통합 문서(SADL_S)를 미리 다운 받을 수도 있다. 통합 문서(SADL_S)는 다수의 단말기(200_1, 200_2, 200_3) 각각이 최적화된 어플리케이션(SADL_C1, SADL_C2, SADL_C3)을 재생할 수 있도록 하는 마크업 언어로 작성된 컴포넌트(또는 아이템)들(a 내지 z)이 통합된 문서일 수 있다. 따라서 서버(100)는 다수의 단말기(200_1, 200_2, 200_3) 각각으로부터 제공된 특성 정보(DC_1, DC_2, DC_3)에 따라 하나의 통합 문서(SADL_S)에서 적어도 하나의 컴포넌트를 선택 및 추출하여(S520), 다수의 단말기(200_1, 200_2, 200_3) 각각의 특성 정보(DC_1, DC_2, DC_3)에 대응하는 어플리케이션(SADL_C1, SADL_C2, SADL_C3)을 생성할 수 있다(S530). 그리고 서버(100)는 다수의 단말기(200_1, 200_2, 200_3) 각각에 최적화된 어플리케이션(SADL_C1, SADL_C2, SADL_C3)을 서비스 즉 송신한다(S540). 여기서, 어플리케이션(SADL_C1, SADL_C2, SADL_C3)은 XHTML, HTML, JAVA, Flash 중 적어도 하나로 구성될 수 있다.
예를 들어 설명하면, 서버(100)는 a 내지 z의 컴포넌트들로 구성된 통합 문서(SADL_S)를 갖고 있을 수 있다. 서버(100)는 제1 단말기(200_1)로부터 제1 특성 정보(DC_1)를 수신하고, 제1 특성 정보(DC_1)를 파악하여 제1 단말기(200_1)의 해상도 및 프로세싱 능력을 인식할 수 있다. 그리고 제1 단말기(200_1)의 해상도에서 재생가능하고 처리 가능한 컴포넌트들 a, d, x를 통합 문서(SADL_S)에서 선택 및 추출하여 컴포넌트들 a, d, x로 구성된 어플리케이션(SADL_C1)을 생성하고, 이를 제1 단말기(200_1)로 전송할 수 있다.
또는 서버(100)는 제2 단말기(200_2)로부터 제2 특성 정보(DC_2)를 수신하고, 제2 특성 정보(DC_2)를 파악하여 제2 단말기(200_2)의 지원 언어, 가용 대역폭, 댁내에서의 위치 등을 인식할 수 있다. 그리고 제2 단말기(200_2)의 지원 언어, 가용 대역폭, 댁내에서의 위치에서 재생 가능하고 처리 가능한 컴포넌트들 a, b, c, y를 통합 문서(SADL_S)에서 선택 및 추출하여 컴포넌트들 a, b, c, y로 구성된 어플리케이션(SADL_C2)을 생성하고 이를 제2 단말기(200_2)로 전송할 수 있다.
또는 서버(100)는 제3 단말기(200_3)로부터 제3 특성 정보(DC_3)를 수신하고, 제3 특성 정보(DC_3)를 파악하여 제3 단말기(200_3)의 사용자 정보, 단말기(200_3)의 보안설정 정도 등을 인식할 수 있다. 그리고 제3 단말기(200_3)의 사용자 정보, 단말기(200_3)의 보안설정 정도로 재생이 가능하고 처리 가능한 컴포넌트들 a, f, g를 통합 문서(SADL_S)에서 선택 및 추출하여 컴포넌트들 a, f, g로 구성된 어플리케이션(SADL_C3)을 생성하고 이를 제3 단말기(200_3)로 전송할 수 있다.
이와 같이, 서버(100)는 다수의 단말기(200_1, 200_2, 200_3) 각각의 특성에 따라 다수의 단말기(200_1, 200_2, 200_3) 각각이 최적으로 어플리케이션(SADL_C1, SADL_C2, SADL_C3)을 재생할 수 있도록 하나의 통합 문서(SADL_S)에서 일부 컴포넌트들을 선택 및 추출하여 제공하므로, 하나의 어플리케이션을 다수의 단말기(200_1, 200_2, 200_3) 각각에서 최적화된 상태로 공유할 수 있도록 한다. 여기서, 통합 문서(SADL_S)는 본 출원의 발명자들에 의하여 새롭게 정의된 것으로서, 마크업 언어로 작성되어 있으며, 다수의 단말기(200_1, 200_2, 200_3) 각각의 특성 정보(DC_1, DC_2, DC_3)에 따라 통합 문서(SADL_S)에서 적어도 일부를 선택 및 추출하여 해당 단말기에게 최적화된 어플리케이션을 생성할 수 있는 문서이므로, 즉, 통합 문서(SADL_S)가 스케일러블(scalable)하므로, 이하에서는 통합 문서(SADL_S)를 SADL(Scalable Application Description Language) 문서라 부르기로 한다.
이하에서는 서버(100)가 SADL 문서(SADL_S)를 이용하여 다수의 단말기(200_1, 200_2, 200_3) 각각에게 최적화된 어플리케이션(SADL_C1, SADL_C2, SADL_C3)을 효율적으로 서비스하는 방법에 대해 예를 들어 설명한다.
서버(100)는 다수의 단말기(200_1, 200_2, 200_3)들 각각으로부터 수신된 특성 정보(DC_1, DC_2, DC_3)를 파악하고, 다수의 단말기(200_1, 200_2, 200_3) 각각을 기 설정된 클래스들 중 어느 하나로 분류할 수 있다. 예컨대, 서버(100)는 베이스 프로파일(base profile)의 제1 클래스, 메인 프로파일(main profile)의 제2 클래스, 및 하이 프로파일(high profile)의 제3 클래스 중에서 어느 하나의 클래스로 다수의 단말기(200_1, 200_2, 200_3) 각각을 분류할 수 있다. 여기서, 각 클래스는 다수의 단말기(200_1, 200_2, 200_3) 각각의 성능 및/또는 해상도에 따라 구분될 수 있다. 예컨대, 베이스 프로파일의 제1 클래스는 모바일 디바이스의 성능 및 해상도에 해당하며, 메인 프로파일의 제2 클래스는 피씨이(PC)급 디바이스에 해당하고, 하이 프로파일의 제3 클래스는 HD TV급 디바이스에 해당할 수 있다. 이러한 구분 기준은 예시적인 것이며, 홈 네트워크 시스템에 따라 각 클래스를 구분하는 기준은 다양하게 설정될 수 있다.
그리고 SADL 문서(SADL_S)는 각 클래스에 대응하는 컴포넌트들이 통합되어 있다. 따라서 서버(100)는 다수의 단말기(200_1, 200_2, 200_3) 각각으로부터 수신된 특성 정보(DC_1, DC_2, DC_3)에 따라 다수의 단말기(200_1, 200_2, 200_3) 각각의 클래스를 분류하고, 분류된 클래스에 대응하는 컴포넌트들을 통합 문서(SADL_S)에서 선택 및 추출하여 어플리케이션(SADL_C1, SADL_C2, SADL_C3)을 서비스할 수 있다.
이와 같이, 서버(100)는 다수의 단말기(200_1, 200_2, 200_3) 각각을 기 설정된 클래스 중에서 어느 하나로 분류하고, 각 클래스에 대응하는 컴포넌트들이 통합되어 있는 SADL 문서(SADL_S)에서 클래스를 기준으로 적절한 컴포넌트들을 쉽게 효율적으로 선택 및 추출할 수 있다.
한편, 특성 정보(DC_1, DC_2, DC_3)에 대해 좀 더 구체적으로 설명하면, 특성 정보(DC_1, DC_2, DC_3)는 디바이스 성능 요소(device capability factor) 또는 외부 환경적 요소(external viewing environment factor)를 포함할 수 있다.
디바이스 성능 요소는 예컨대, 단말기(200_1, 200_2, 200_3)의 입출력 장치에 관한 요소들, 단말기(200_1, 200_2, 200_3)의 프로세싱 능력에 관한 요소들, 네트워크 요소들 등을 포함할 수 있다. 단말기(200_1, 200_2, 200_3)의 출력 장치에 관한 요소들은 예컨대, 단말기(200_1, 200_2, 200_3)의 화면 해상도, 세로 방향의 오리엔테이션(portrait) 또는 가로 방향 오리엔테이션(landscape) 등의 스크린 오리엔테이션, 모노 또는 스테레오 등의 오디오 출력 성능을 의미할 수 있다. 단말기(200_1, 200_2, 200_3)의 입력 장치에 관한 요소들은 키보드, 마우스, 터치스크린 등과 같은 입력 장치의 종류를 의미할 수 있다. 프로세싱 능력에 관한 요소들은 단말기(200_1, 200_2, 200_3)가 지원 가능한 MIME 타입, 스크립트 파서, 브라우저, 자바 가상머신, 플래시 플레이어, 자막 포맷, 지원 가능한 DRM 타입, 지원 가능한 CAS 타입 등을 의미할 수 있다. 네트워크 요소들은 단말기(200_1, 200_2, 200_3)가 지원 가능한 네트워크 인터페이스 유닛, 가용 대역폭, 대기 시간 등을 의미할 수 있다. 또한, 지원 언어, 단말기(200_1, 200_2, 200_3)가 위치한 지역의 시간, 댁내에서의 위치, 단말기(200_1, 200_2, 200_3)의 가용 전원 레벨 등을 포함할 수 있다.
단말기(200_1, 200_2, 200_3)의 외부 환경적 요소는 디바이스 성능 요소 이외에 어플리케이션(SADL_C1, SADL_C2, SADL_C3)을 표현하는데 영향을 미칠 수 있는 시청 환경, 선호하는 사용자의 취향과 정보에 관한 요소를 의미할 수 있다. 예컨대, 밝기, 온도, 소음 등의 시청 환경 요소와, 사용자 시청 환경 정보, 사용자 연령, 성별, 프라이버시, 공유할 어플리케이션(SADL_C1, SADL_C2, SADL_C3)의 제한 요소 등의 사용자 정보를 의미할 수 있다.
이러한 특성 정보(DC_1, DC_2, DC_3)에 따라 서버(100)는 SADL 문서(SADL_S)에서 적절한 컴포넌트들을 선택 및 추출하여 각 특성 정보(DC_1, DC_2, DC_2)에 대응하는 어플리케이션(SADL_C1, SADL_C2, SADL_C3)을 서비스할 수 있다.
한편, 도 6을 참조하여 도 4의 서버에 대해 구체적으로 설명한다.
도 6을 참조하면, 서버(100)는 요청 처리부(100)와, 클라이언트 성능 저장부(120)와, 어플리케이션 로더(130), 및 프리파서(140)를 포함할 수 있다.
먼저, 요청 처리부(110)는 단말기(200_1, 200_2, 200_3)로부터 어플리케이션 요청과 단말기(200_1, 200_2, 200_3) 각각의 특성 정보(DC_1, DC_2, DC_3)를 수신한다. 어플리케이션 요청 및 각 단말기(200_1, 200_2, 200_3)의 특성 정보(DC_1, DC_2, DC_3)를 이용하여 각 단말기(200_1, 200_2, 200_3)가 속한 클래스를 클라이언트 성능 저장부(120)에 조회할 수 있다. 그리고 요청 처리부(110)는 클라이언트 성능 저장부(120)로부터 조회결과 제공된 클래스의 정보를 후술하는 프리파서(140)에 제공하여, 프리파서(140)가 각 단말기(200_1, 200_2, 200_3)에 적합한 어플리케이션(SADL_C1, SADL_C2, SADL_C3)을 생성하도록 할 수 있다. 또한 요청 처리부(110)는 어플리케이션 요청에 대한 정보를 어플리케이션 로더(130)에 제공할 수 있다.
클라이언트 성능 저장부(120)는 요청 처리부(110)로부터 특성 정보(DC_1, DC_2, DC_3)를 입력 받아, 특성 정보(DC_1, DC_2, DC_3)로부터 파라미터를 추출하고, 추출된 파라미터를 이용하여 단말기(200_1, 200_2, 200_3)의 클래스를 결정한다. 여기서 파라미터는 전술한 디바이스 성능 요소 및 외부 환경적 요소를 나타낸다. 즉, 클라이언트 성능 저장부는 디바이스 성능 요소 및 외부 환경적 요소를 나타내는 파라미터를 이용하여, 예컨대 각 단말기(200_1, 200_2, 200_3)가 베이스 프로파일의 제1 클래스, 메인 프로파일의 제2 클래스 및 하이 프로파일의 제3 클래스 중 어느 클래스에 속하는지를 결정하고, 해당 클래스의 정보를 요청 처리부로 제공한다. 또한 클라이언트 성능 저장부는 향후 각 단말기(200_1, 200_2, 200_3)의 요청을 효율적으로 처리하기 위해, 각 단말기(200_1, 200_2, 200_3)의 성능에 대한 정보, 파라미터 또는 특성 정보(DC_1, DC_2, DC_3) 또는 클래스에 대한 정보를 저장한다. 예컨대, 각 단말기(200_1, 200_2, 200_3)의 ID 또는 단말기(200_1, 200_2, 200_3)의 사용자 정보 또는 특성 정보(DC_1, DC_2, DC_3)가 제공되면, 클라이언트 성능 저장부(120)는 파라미터 추출 과정 없이, 제공된 각 단말기(200_1, 200_2, 200_3)의 ID 또는 단말기(200_1, 200_2, 200_3)의 사용자 정보 또는 특성 정보(DC_1, DC_2, DC_3)를 토대로 곧바로 단말기(200_1, 200_2, 200_3)의 클래스 정보를 요청 처리부(110)에 제공할 수 있다.
어플리케이션 로더(130)는 어플리케이션 요청에 대한 정보를 이용하여 요청된 콘텐츠, 예컨대 요청된 어플리케이션(SADL_C1, SADL_C2, SADL_C3)에 대한 SADL 문서를 검색하여 다운로드한다. 예컨대 어플리케이션 로더(130)는 웹상에 저장된 다양한 SADL 문서 중에서 요청된 어플리케이션에 대응하는 SADL 문서를 검색하여 다운로드할 수 있다. 그리고 어플리케이션 로더(130)는 다운로드한 SADL 문서를 프리파서(140)에게 제공한다. 만약, 서버(100)가 이미 해당 SADL 문서를 보유하고 있는 경우라면, 웹상에서 검색하지 않고, 자신이 보유한 SADL 문서를 프리파서(140)로 제공할 수도 있다.
프리파서(140)는 클래스 정보 및/또는 특성 정보(DC_1, DC_2, DC_3)를 이용하여 어플리케이션 로더(130)로부터 제공된 SADL 문서(SADL_S)에서 적어도 일부의 컴포넌트를 선택 및 추출하여 각 단말기(200_1, 200_2, 200_3)에 최적화된 어플리케이션(SADL_C1, SADL_C2, SADL_C3)을 생성할 수 있다. 그리고 프리파서(140)는 요청 처리부(110)를 통해 각 단말기(200_1, 200_2, 200_3)에 생성된 어플리케이션(SADL_C1, SADL_C2, SADL_C3)을 제공할 수 있다.
한편, 프리파서(140)는 클래스 정보 및/또는 특성 정보(DC_1, DC_2, DC_3)를 이용하여 통합 문서(SADL_S)의 컴포넌트를 편집하거나 또는 다른 컴포넌트를 추가하여 어플리케이션(SADL_C1, SADL_C2, SADL_C3)을 생성할 수도 있다.
즉, 서버(100)는 단말기(200_1, 200_2, 200_3) 별로 적합한 어플리케이션(SADL_C1, SADL_C2, SADL_C3)을 생성하여 각 단말기(200_1, 200_2, 200_3)에게 서비스한다. 이러한 서버(100)는 각 단말기(200_1, 200_2, 200_3) 별로 생성한 어플리케이션(SADL_C1, SADL_C2, SADL_C3)을 저장 및 관리하여, 향후 어플리케이션(SADL_C1, SADL_C2, SADL_C3) 요청이 있을 때, 기 생성하여 저장 및 관리하고 있는 어플리케이션(SADL_C1, SADL_C2, SADL_C3)을 서비스함으로써 어플리케이션(SADL_C1, SADL_C2, SADL_C3) 공유 서비스의 효율성을 향상시킬 수 있다. 더 나아기 서버(100)는 생성된 어플리케이션(SADL_C1, SADL_C2, SADL_C3)을 사용자 정보를 토대로 단말기 별 및 단말기의 사용자 별로 관리하여, 어플리케이션 요청시 단말기 별 및 사용자 별 맞춤형 어플리케이션을 효율적으로 서비스할 수 있다.
이하에서 도 7 및 도 8을 참조하여 본 발명의 또 다른 실시예에 다른 홈 네트워크 시스템에서 어플리케이션 공유 방법을 설명한다. 도 7은 본 발명의 또 다른 실시예에 다른 홈 네트워크 시스템에서 어플리케이션 공유 방법을 설명하기 위한 개념도이고, 도 8은 본 발명의 또 다른 실시예에 다른 홈 네트워크 시스템에서 어플리케이션 공유 방법을 설명하기 위한 순서도이다.
본 실시예에서는 이전 실시예와 달리, 서버(100)는 하나의 SADL 문서(SADL_S)를 다수의 단말기(200_1, 200_2, 200_3)에게 전송하고, 각 단말기(200_1, 200_2, 200_3)는 자신의 특성 정보(DC_1, DC_2, DC_3)에 따라 수신한 SADL 문서(SADL_S)에서 일부를 선택 및 추출하여 자신에게 최적화된 어플리케이션(SADL_C1, SADL_C2, SADL_C3)을 생성하고 재생한다.
도 7 및 도 8을 참조하여 구체적으로 설명하면, 각 단말기(200_1, 200_2, 200_3)는 서버(100)로부터 SADL 문서(SADL_S)를 수신한다(S810). 예컨대, 각 단말기(200_1, 200_2, 200_3)는 서버(100)에게 어플리케이션(SADL_C1, SADL_C2, SADL_C3)을 요청하고, 그에 대한 응답으로 서버(100)로부터 SADL 문서(SADL_S)를 수신하다.
그리고 각 단말기(200_1, 200_2, 200_3)는 자신의 특성 정보(DC_1, DC_2, DC_3)에 따라 SADL 문서(SADL_S)에서 적어도 일부의 컴포넌트를 선택 및 추출하여(S820), 자신에게 최적화된 어플리케이션(SADL_C1, SADL_C2, SADL_C3)을 생성한다. 그리고 각 단말기(200_1, 200_2, 200_3)는 생성된 어플리케이션(SADL_C1, SADL_C2, SADL_C3)을 재생한다(S830).
도 9는 도 1 또는 도 4의 네트워크 시스템을 구성하는 단말기(200_1, 200_2, 200_3, 이하 참조 번호 '200'이라고 약칭하기로 한다)의 구성을 보여 주는 블록도이다. 도 9에 도시된 단말기(200)의 블록도는 전술한 실시예들에 따라서 단말기(200)의 구성을 기능에 따라서 구분한 개념적인 것이다. 따라서 단말기(200)를 구성하는 각 구성요소들은 실질적으로는 서로 독립적인 물리적 구성을 갖거나 또는 둘 이상의 구성요소들이 물리적으로 일체로 구현될 수도 있다. 또한, 어느 하나의 구성 요소가 물리적으로 복수의 형태로 구현될 수도 있다. 도 9를 참조하면, 단말기(200)는 입력부(210), 출력부(220), 프로세서(230), 및 송수신부(240)를 포함한다.
입력부(210)는 사용자로부터 소정의 요청이 입력되도록 하기 위한 것이다. 예를 들어, 사용자는 입력부(210)를 통하여 자신이 요청하는 어플리케이션에 대한 유형 및/또는 포맷 정보 등을 입력할 수 있다. 이러한 입력부(210)의 종류는 단말기(200)의 종류나 특성 등에 따라서 달라질 수 있다. 예를 들어, 입력부(210)는 터치 패드(touch pad)나 터치스크린(touch screen), 키패드(key pad), 리모컨 수신부, 입력 버튼(input button), 조이스틱(joy stick) 등일 수 있는데, 여기에만 한정되는 것은 아니다. 본 실시예에서 사용자는 입력부(210)를 통하여 자신이 원하는 어플리케이션의 유형이나 포맷 등에 관한 정보 중에서 적어도 하나를 입력할 수 있다.
출력부(220)는 프로세서(230)에서 처리된 결과를 사용자에게 전달하기 위한 수단이다. 예를 들어, 출력부(220)는 프로세서(230)에서 재생되는 어플리케이션의 그래픽 사용자 인터페이스(GUI)나 이를 통해 실행되는 콘텐츠를 보여 주기 위한 디스플레이 장치나 재생되는 콘텐츠의 소리를 출력하기 위한 오디오 장치, 단말기(200)를 진동시키기 위한 진동 수단 등일 수 있다. 그리고 출력부(220)는 프로세서(230)에서 수행되는 어플리케이션 프로그램을 사용자에게 전달하기 위한 디스플레이 장치 및/또는 오디오 장치일 수 있다.
프로세서(230)는 단말기(200)의 동작을 위하여 필요한 제반 제어 및 프로그램의 구동 등을 수행하는 수단이다. 우선, 사용자로부터 입력부(210)를 통하여 소정의 명령이 입력되면, 프로세서(230)는 입력된 명령에 대응하는 소정의 처리를 수행한다. 예를 들어, 사용자가 원하는 어플리케이션의 유형 및 포맷 등에 관하는 정보를 입력하면, 프로세서(230)는 이러한 사용자의 요청 사항이 포함된 어플리케이션 요청 신호를 생성하여 송수신부(240)로 전달할 수 있다. 이 경우에, 프로세서(230)는 단말기(200)의 특성 정보(Delivery Context, DC)를 어플리케이션 요청 신호에 포함시켜서 송수신부(240)로 전달할 수 있다. 특성 정보(DC)에 대해서는 후술한다.
그리고 프로세서(230)는 서버(100)로부터 송수신부(240)를 통해 전달되는 어플리케이션을 재생하거나 또는 구동시킬 수 있다. 만일, 서버(100)로부터 전달되는 어플리케이션이 자신에게 최적화된 어플리케이션, 즉 서버(100)가 통합 문서(SADL_S)에서 특성 정보에 따라서 일부 컴포넌트만을 선택 및 추출하여 최적화된 어플리케이션을 전송하는 경우에는, 프로세서(230)는 수신된 어플리케이션을 단순히 구동만 할 수 있다. 반면, 서버(100)로부터 전달되는 콘텐츠나 어플리케이션이 통합 문서(SADL_S) 자체인 경우에는, 프로세서(230)는 자신의 특성 정보를 반영하여 통합 문서(SADL_S)로부터 일부 컴포넌트만을 선택 및 추출하여 최적화된 어플리케이션을 생성한 다음 이를 구동할 수도 있다. 이에 대한 자세한 사항은 후술하기로 한다.
송수신부(240)는 서버(100)와의 통신을 위한 신호의 송수신 기능을 담당하는 구성 요소이다. 송수신부(240)는 서버(100)와 직접 통신을 하거나 또는 홈 네트워크의 미들웨어(150)를 통하여 서버(100)와 통신을 할 수 있다. 본 실시예에서 송수신부(240)의 구체적 구성이나 기능, 적용하는 통신 프로토콜 등에 대해서 특별한 제한이 없다.
도 10 및 도 11은 본 발명의 또 다른 실시예에 따른 어플리케이션 공유 방법을 설명하기 위한 도면이다. 여기서, 도 10은 본 발명의 또 다른 실시예에 따른 어플리케이션 공유 방법을 보여 주는 다이어그램이고, 도 11은 본 발명의 또 다른 실시예에 따른 어플리케이션 공유 방법을 보여 주는 순서도이다. 본 실시예에서는 서버(100)는 하나의 SADL 문서(SADL_S)를 다수의 단말기(200_1, 200_2, 200_3)에게 전송하고, 각 단말기(200_1, 200_2, 200_3)는 자신의 특성 정보(DC_1,DC_2, DC_3)에 따라 수신된 SADL 문서(SADL_S)에서 일부를 선택 및 추출하여 자신에게 최적화된 어플리케이션(SADL_C1, SADL_C2, SADL_C3)을 생성하고 실행한다는 점에서, 전술한 실시예와 차이가 있다. 이하, 이에 대하여 보다 구체적으로 설명한다.
도 10 및 도 11을 참조하면, 각 단말기(200_1, 200_2, 200_3)는 서버(100)로부터 SADL 문서(SADL_S)를 수신한다(S810). 이를 위하여, 각 단말기(200_1, 200_2, 200_3)는 서버(100)에게 어플리케이션(SADL_C1, SADL_C2, SADL_C3)을 요청한다. 이 때, 각 단말기(200_1, 200_2, 200_3)는 서버(200)로 전송하는 요청 신호에 자신의 특성 정보(DC_1, DC_2, DC_3)를 반드시 포함시킬 필요는 없다. 실시예에 따라서는, 각 단말기(200_1, 200_2, 200_3)가 서버(100)로 전송하는 요청 신호에 자신의 특성 정보(DC_1, DC_2, DC_3)를 포함시키도록 하거나 또는 각 단말기(200_1, 200_2, 200_3)는 자신이 SADL 문서(SADL_S)에서 자신의 특성 정보(DC_1, DC_2, DC_3)를 반영한 어플리케이션(SADL_C1, SADL_C2, SADL_C3)을 생성할 수도 있는 능력(capability)을 갖는다는 정보를 서버(100)로 전송할 수도 있다. 이와 같이, 각 단말기(200_1, 200_2, 200_3)가 어플리케이션(SADL_C1, SADL_C2, SADL_C3) 요청 신호를 전송하면 그에 대한 응답으로 서버(100)로부터 SADL 문서(SADL_S)를 수신한다.
그리고 각 단말기(200_1, 200_2, 200_3)는 자신의 특성 정보(DC_1, DC_2, DC_3)에 따라 SADL 문서(SADL_S)에서 적어도 일부의 컴포넌트를 선택 및 추출하여(S820), 자신에게 최적화된 어플리케이션(SADL_C1, SADL_C2, SADL_C3)을 생성한다. 이를 위하여, 각 단말기(200_1, 200_2, 200_3)는 자신의 특성 정보(DC_1, DC_2, DC_3)에 따라 SADL 문서(SADL_S)에서 적어도 일부의 컴포넌트를 선택 및 추출하여(S820), 자신에게 최적화된 어플리케이션(SADL_C1, SADL_C2, SADL_C3)을 생성하는 기능을 수행하는 수단을 구비할 수 있다. 이러한 수단의 명칭에는 특별한 제한이 없으며, 프리파서(pre-parser) 또는 도 9의 프로세서(230)에서 그러한 기능을 수행할 수도 있다. 또는, 각 단말기(200_1, 200_2, 200_3)는 도 9의 구성도에서 그러한 기능을 수행하기 위한 구성 요소 또는 기능 유닛을 추가로 포함할 수도 있다. 그리고 각 단말기(200_1, 200_2, 200_3)는 생성된 어플리케이션(SADL_C1, SADL_C2, SADL_C3)을 실행한다(S830).
이와 같이, 본 발명의 실시예에 의하면, 서버(100)는 각 단말기(200_1, 200_2, 200_3)의 특성 정보(DC_1, DC_2, DC_3)를 고려하지 않고, 모든 단말기(200_1, 200_2, 200_3)에게 동일한 데이터, 즉 SADL 문서(SADL_S)를 제공한다. 이 경우에, 해당 단말기(200_1, 200_2, 200_3)의 입장에서 보면 불필요한 데이터도 수신하게 되므로, 네트워크 부담이나 단말기(200_1, 200_2, 200_3)의 부담을 증가시킬 수도 있다. 하지만, 본 발명의 실시예에서는 모든 단말기(200_1, 200_2, 200_3)에게 동일한 데이터를 전송하므로, 서비스를 단순화시킬 수 있고 서버(100)의 부담을 최소화할 수도 있다.
100 : 서버
110 : 요청 처리부
120 : 클라이언트 성능 저장부
130 : 어플리케이션 로더
140 : 프리파서
150 : 미들웨어
200_1, 200_2, 200_3 : 단말기
210 : 입력부
220 : 출력부
230 : 프로세서
240 : 송수신부

Claims (7)

  1. 다수의 단말기들 각각에 적합한 어플리케이션을 서비스하는 방법에 있어서,
    자신의 특성 정보 및 요청하는 어플리케이션의 유형 정보가 포함된 어플리케이션 요청 신호를 서버로 전송하는 단계; 및
    상기 어플리케이션의 유형 정보에 대응하는 통합 문서에서 상기 특성 정보에 따라서 선택 및 추출된 일부 컴포넌트로 생성된 어플리케이션을 상기 서버로부터 수신하는 단계를 포함하는 홈 네트워크 시스템에서의 어플리케이션 서비스 방법.
  2. 제1항에 있어서,
    상기 통합 문서는 상기 다수의 단말기 각각이 상기 어플리케이션을 각각 재생하기 위한 마크업 언어로 작성된 컴포넌트들이 통합된 것을 특징으로 하는 어플리케이션 서비스 방법.
  3. 제1항에 있어서,
    상기 특성 정보는 상기 단말기의 해상도, 상기 단말기의 대역폭, 상기 단말기의 위치, 상기 단말기가 위치한 지역의 시간, 상기 단말기의 사용자 정보, 상기 단말기의 보안설정 정도, 상기 어플리케이션의 제한 요소 중 적어도 하나를 포함하는 것을 특징으로 하는 어플리케이션 서비스 방법.
  4. 제1항에 있어서,
    사용자로부터 서비스받기를 원하는 상기 어플리케이션 유형 정보를 입력 받는 단계; 및
    입력된 상기 어플리케이션 유형 정보에 기초하여 상기 어플리케이션 요청 신호를 생성하는 단계를 더 포함하는 것을 특징으로 하는 어플리케이션 서비스 방법.
  5. 사용자가 원하는 어플리케이션 유형을 입력하기 위한 입력부;
    상기 입력부를 통해 입력된 상기 어플리케이션 유형에 기초하여, 어플리케이션 유형 정보와 단말의 특성 정보가 포함된 어플리케이션 요청 신호를 생성하고, 서버로부터 수신된 어플리케이션 응답 신호에 포함된 어플리케이션을 실행하기 위한 프로세서;
    상기 프로세서에서 생성된 상기 어플리케이션 요청 신호를 서버로 전송하고 또한 상기 서버로부터 어플리케이션이 포함된 어플리케이션 응답 신호를 수신하기 위한 송수신부; 및
    상기 프로세서에서 실행된 어플리케이션을 상기 사용자에게 출력하기 위한 출력부를 포함하는 어플리케이션 서비스를 이용하는 단말기.
  6. 사용자가 원하는 어플리케이션 유형을 입력하기 위한 입력부;
    상기 입력부를 통해 입력된 상기 어플리케이션 유형에 기초하여 어플리케이션 유형 정보가 포함된 어플리케이션 요청 신호를 생성하고, 상기 어플리케이션 요청 신호에 대응하여 생성된 어플리케이션을 실행하기 위한 프로세서;
    상기 어플리케이션 요청 신호를 서버로 전송하고, 상기 서버로부터 상기 어플리케이션 유형에 대응하는 통합 문서가 포함된 어플리케이션 응답 신호를 수신하기 위한 송수신부;
    상기 송수신부에서 수신한 통합 문서를 이용하여 자신의 특성 정보에 따라서 일부 컴포넌트를 선택 및 추출하여 상기 프로세서가 실행하는 어플리케이션을 생성하는 프리파서; 및
    상기 프로세서에서 실행된 어플리케이션을 상기 사용자에게 출력하기 위한 출력부를 포함하는 어플리케이션 서비스를 이용하는 단말기.
  7. 제6항에 있어서,
    상기 프리파서는 상기 프로세서에 포함되어 있는 것을 특징으로 하는 단말기.
KR1020110070657A 2011-07-15 2011-07-15 스케일러블 어플리케이션 서비스를 위한 장치 및 방법 KR20130009498A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110070657A KR20130009498A (ko) 2011-07-15 2011-07-15 스케일러블 어플리케이션 서비스를 위한 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110070657A KR20130009498A (ko) 2011-07-15 2011-07-15 스케일러블 어플리케이션 서비스를 위한 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20130009498A true KR20130009498A (ko) 2013-01-23

Family

ID=47839275

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110070657A KR20130009498A (ko) 2011-07-15 2011-07-15 스케일러블 어플리케이션 서비스를 위한 장치 및 방법

Country Status (1)

Country Link
KR (1) KR20130009498A (ko)

Similar Documents

Publication Publication Date Title
CN102682063B (zh) 第二显示装置上的直接搜索启动
US8438492B2 (en) Apparatus and method for providing user interface service in a multimedia system
CN102740163B (zh) 由于多会话特征的个性化第二显示装置浏览体验
JP5850833B2 (ja) 通信システムにおけるユーザインターフェースを送受信する装置及び方法
KR102129154B1 (ko) 분산 크로스-플랫폼 사용자 인터페이스 및 애플리케이션 프로젝션
KR101173946B1 (ko) 홈 네트워크 시스템에서 어플리케이션 서비스 방법 및 어플리케이션 공유 방법
US20110302603A1 (en) Content output system, content output method, program, terminal device, and output device
KR20110047768A (ko) 멀티미디어 컨텐츠 재생 장치 및 방법
KR20170129398A (ko) 디지털 디바이스 및 그 제어 방법
KR101821603B1 (ko) 스케일러블 어플리케이션 서비스 시스템에서의 사용자 맞춤형 광고/뉴스의 제공 방법
KR101097372B1 (ko) 홈 네트워크 시스템에서 어플리케이션 서비스 방법 및 서버
CN102693257B (zh) 存储服务或内容列表以容易访问的***和方法
KR101597843B1 (ko) 기능 레벨들을 어드레싱하는 컨텐츠 관리
WO2021139045A1 (zh) 播放媒体项目的方法及显示设备
US10547891B2 (en) Apparatuses systems, and methods for adding functionalities to control buttons on a remote control device
KR101236481B1 (ko) 홈 네트워크 시스템에서 컨텐츠 공유 방법
KR102611253B1 (ko) 수신 장치, 송신 장치 및 데이터 처리 방법
CN111654753B (zh) 一种应用程序启动方法及显示设备
AU2013325363A1 (en) Display system with content presentation mechanism and method of operation thereof
KR20130009498A (ko) 스케일러블 어플리케이션 서비스를 위한 장치 및 방법
KR101158019B1 (ko) 홈 네트워크 시스템에서 어플리케이션 서비스 방법, 어플리케이션 공유 방법및 어플리케이션 서비스 장치
KR101805302B1 (ko) 멀티미디어 컨텐츠 재생 장치 및 방법
KR101834358B1 (ko) 스케일러블 어플리케이션 서비스를 위한 저작 장치 및 방법
KR20180038273A (ko) 디지털 디바이스 및 그 제어 방법
KR101841164B1 (ko) 스케일러블 어플리케이션 서비스를 위한 저작 장치 및 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application