KR20020027467A - 애플리케이션 실행 및 테스트 - Google Patents

애플리케이션 실행 및 테스트 Download PDF

Info

Publication number
KR20020027467A
KR20020027467A KR1020027000148A KR20027000148A KR20020027467A KR 20020027467 A KR20020027467 A KR 20020027467A KR 1020027000148 A KR1020027000148 A KR 1020027000148A KR 20027000148 A KR20027000148 A KR 20027000148A KR 20020027467 A KR20020027467 A KR 20020027467A
Authority
KR
South Korea
Prior art keywords
decoder
receiver
application
workstation
file
Prior art date
Application number
KR1020027000148A
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
Priority claimed from EP99401746A external-priority patent/EP1067455A1/en
Application filed by 삐에르 레꾸르, 까날 + (쏘시에떼 아노님) filed Critical 삐에르 레꾸르
Publication of KR20020027467A publication Critical patent/KR20020027467A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N17/00Diagnosis, testing or measuring for television systems or their details
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

예를 들어 아날로그 또는 디지털 텔레비젼 시스템에서 사용하기 위한 애플리케이션을 테스트하는 리시버/디코더가 개시된다. 이 리시버/디코더는 네트워크와 메시지를 교환하는 수단과, 네트워크로부터 수신된 메시지에 따라 애플리케이션을 실행하는 수단을 포함한다. 리시버/디코더는 애플리케이션을 디버깅하는데 사용될 수 있다. 관련 워크스테이션과, 애플리케이션을 편집 및 테스트하는 애플리케이션 개발 툴도 개시된다. 워크스테이션에서 리시버/디코더로 애플리케이션을 전송하는 방법과, 리시버/디코더에서 애플리케이션을 실행시키는 방법도 개시된다.

Description

애플리케이션 실행 및 테스트{RUNNING AND TESTING APPLICATIONS}
본 발명은 리시버/디코더를 위한 애플리케이션의 개발, 테스트 및 디버깅에 관련하여 특별히 적용되고, 또한 예를 들어 그와 같은 애플리케이션을 입증하는데도 사용된다.
디지털 텔레비젼 시스템은 통상 텔레비젼 채널을 아날로그 형태보다는 디지털 형태로 시청자에게 전송한다. 디지털 채널은 송신기 단부에서 디지털 데이터 스트림으로 코딩되며, 디지털 셋-탑 박스(DSTB) 또는 통합된 디지털 텔레비젼의 디지털 디코더를 사용하여 리시버 단부에서 디코딩된다. 대화식이 가능하도록, 텔레비젼 채널을 전달하는 매체 또는 전화망 링크와 같은 다른 매체를 통하는 업링크가 제공될 수 있다. 본 명세서에서 사용되는 것과 같이, 용어 "디지털 텔레비젼 시스템"은, 예를 들면, 모든 위성 방송, 지상 방송, 케이블 방송 및 그 밖의 방송 시스템을 포함한다.
디지털 디코더는 통상 애플리케이션으로서 알려진 프로그램이 실행될 수 있는 프로세서를 포함한다. 그러한 애플리케이션의 예는 프로그램 가이드, 텔레쇼핑, 퀴즈, 홈 뱅킹 및 텔레보우팅(Televoting)을 포함한다. 그러한 애플리케이션은 통상 사용자가 특정 옵션에서 선택할 수 있는 텔레비젼 스크린상의 메뉴를 표시한다. 애플리케이션에서 사용되는 데이터는 텔레비젼 채널에서 사용되는 것과 같은 데이터 스트림으로 디코더로 전송될 수 있다. 선택의 결과는 디코더에서 실행되는 애플리케이션에 의해 직접 해석되거나 업링크를 통해 전송되어 적절한 동작이 취해질 수 있게 한다.
애플리케이션은 DSTB 또는 통합된 디지털 텔레비젼에 영구히 상주하거나, 요구 및 필요할 때 디지털 매체를 통해 다운로드될 수 있다. 애플리케이션을 실행하기 위하여, 디코더는 예를 들어 자바 애플리케이션을 실행하기 위한 가상 기계(VM)와 같은 런 타임 환경을 갖는다.
사용자에게 제공되는 서비스의 수가 급속히 증가함에 따라, 애플리케이션을 설계, 작성, 디버그 및 테스트할 수 있게 하는 애플리케이션 개발 툴에 대한 요구가 있다. 그러한 애플리케이션 툴의 일예는 CANAL+사에 의해 공급되는미디어하이웨이 애플리케이션 워크샵이다.
알려진 애플리케이션 개발 툴은 통상 애플리케이션이 PC나 UNIX 워크스테이션과 같은, 워크스테이션에서 개발되게 한다. 애플리케이션이 테스트될 단계에서 애플리케이션은 DSTB와 같은 디지털 디코더로 다운로드된다.
본 출원인의 이름으로 출원된 국제 특허 공개 번호 WO 98/43165호에 개시된바와 같이, 그 내용이 참조로써 본 명세서에 결합되며, 리시버/디코더 형태의 장치에 결합된 워크스테이션이 애플리케이션을 디버깅하는데 제공될 수 있다. 애플리케이션을 디버깅하기 위해, 링크를 사용하여 리시버/디코더로 애플리케이션 전체가 다운로드된다. 워크스테이션의 디버거는 리시버/디코더로 및 리시버/디코더로부터 제어 신호를 전달하는 2개의 부가적 링크를 사용하여 애플리케이션의 동작을 모니터 및/또는 제어한다.
본 발명은 (예를 들면, 아날로그 또는 디지털 텔레비젼 시스템용) 리시버/디코더, 워크스테이션 및 저작 툴(Authoring Tool)과, 애플리케이션을 리시버/디코더로 전송하는 방법 및 애플리케이션을 리시버/디코더에서 실행하는 방법에 관한 것이다.
도 1은 통상의 디지털 텔레비젼 시스템의 구성을 나타낸 도면.
도 2는 도 1의 디지털 텔레비젼 시스템의 대화식 시스템의 구성을 나타낸 도면.
도 3은 도 1의 시스템의 리시버/디코더의 구성도.
도 4는 리시버/디코더의 계층화된 구성의 기능 블럭도.
도 5는 저작 툴의 개관을 나타낸 도면.
도 6은 도 5의 저작 툴의 주요 구성 요소를 나타낸 도면.
도 7은 도 5의 저작 툴의 동작을 나타낸 도면.
도 8은 도 5의 저작 툴의 입/출력층의 구성을 나타낸 도면.
도 9는 네트워크 데이터 프레임을 나타낸 도면.
도 10은 본 발명의 다른 실시예의 기능도.
본 발명의 하나의 측면에 따르면, 애플리케이션을 저장하는 수단(예를 들면, 메모리)과, 저장된 애플리케이션을 실행하는 수단(예를 들면, 프로세서, 가상 기계, 런타임 엔진 또는 다른 적합한 런타임 수단 또는 환경)과, 워크스테이션이 저장된 애플리케이션을 디버깅하는데 사용되는 디버깅 메시지를 네트워크를 통해 원격 워크스테이션으로 전송하는 수단(예를 들면, 인터페이스)을 포함하는 리시버/디코더가 제공된다.
지금까지, 단순한 원-투-원 링크에 비하여, 리시버/디코더에 네트워킹 능력을 제공하는데 관련된 특별한 복잡성 때문에 상기와 같은 장치가 고려되지 않았다. 그러나, 본 발명에 의하면 애플리케이션 테스트 및/또는 디버깅에 관련하여, 리시버/디코더에 네트워크 능력을 제공함으로써 다양한 이점이 생긴다는 것을 알 수 있다.
네트워크를 통해 통신 메시지를 디버깅하는 수단을 갖는 리시버/디코더를 제공함으로써, 리시버/디코더가 애플리케이션 개발자의 환경의 일부가 될 수 있고,이에 따라 예를 들어 파일, 제어 신호 또는 정보 신호가 애플리케이션을 테스트하면서 리시버/디코더와 워크스테이션 사이에서 교환될 수 있다. 이것은 이전 경우보다 애플리케이션의 테스트에 있어 보다 높은 유연성을 허용할 수 있다.
더욱이, 리소스는 네트워크에 연결된 리시버/디코더, 워크스테이션 및 다른 장치간에 공유될 수 있다. 예를 들면, 리시버/디코더는 네트워크를 통해 워크스테이션의 하드 디스크와 같은, 외부 저장 장치에 직접 액세스할 수 있다.
네트워킹 능력의 제공으로 인하여, 리시버/디코더는 애플리케이션이 디버깅되는 동안 워크스테이션으로부터 물리적으로 떨어질 수 있다. 네트워크가 신호 증폭을 제공할 수 있어서 리시버/디코더는 가능한 다른 방법보다 더 멀리 분리될 수 있다.
본 명세서에서 사용되는 용어 "디버깅"은 바람직하게, 애플리케이션의 에러, 또는 "버그"를 식별하도록 애플리케이션이 제어 및/또는 모니터되는 것을 함축한다. 디버깅 메시지는 바람직하게 메시지가 리시버/디코더에 의해 수신 또는 전송될 수 있는 애플리케이션을 디버깅하는 제어 및/또는 모니터링 메시지를 포함한다. 예를 들면, 리시버/디코더는 애플리케이션 또는 리시버/디코더의 상태에 관한 특정 정보를 전송하도록 지시하는 명령을 수신할 수 있으며, 그 명령과 정보는 디버깅 메시지라 칭한다. 이러한 방식으로, 변수의 모니터링, 실행의 개시 및 종료, 추적 기능, 리시버/디코더의 상태 모니터링 및 그 밖의 디버깅 기능과 같은, 디버깅 기능이 실행될 수 있다. 리시버/디코더는 바람직하게 애플리케이션을 디버깅하는 디버깅 모드에서 동작할 수 있다.
용어 "네트워크"는 바람직하게 장치가 어드레스를 할당받는 것을 함축한다. 이것은 바람직하게 하나의 논리적 네트워크에서 2개 이상의 장치를 가질 능력을 제공하며, 이들 장치는 어드레스에 의해 구별된다. 이것은, 예를 들면, 2개 장치 사이의 간단한 직렬 링크와는 구별된다. 바람직하게, 네트워크는 리시버/디코더가 워크스테이션의 하드 디스크와 같은 원격 저장 장치의 파일을 액세스할 수 있도록 하는 프로토콜을 갖는다. 바람직하게, 네트워크는 목적지 어드레스를 갖는 데이터의 패킷 형태로 신호를 전송한다. 바람직하게, 리시버/디코더는 리시버/디코더의 어드레스(또는 식별자)를 저장하는 수단을 포함한다.
애플리케이션이 다수의 파일을 포함하는 경우, 리시버/디코더는 외부 저장 수단에 있는 파일중 적어도 하나를 선택적으로 판독하는 수단(예를 들면, 인터페이스)을 포함할 수 있다. 그러나, 판독 수단을 구비하지 않은 리시버/디코더가 제공될 수도 있다.
디버깅 메시지를 전송하는 수단은 네트워크로부터 디버깅 메시지를 수신할 수 있으며, 바람직하게는 메시지에 따라 애플리케이션의 실행을 제어한다. 따라서, (워크스테이션과 같은) 원격지에 존재하는 운영자가 애플리케이션의 실행을 제어할 수 있다.
바람직하게, 메시지는 원격 호스트의 식별자를 포함하며, 디버깅 메시지를 전송하는 수단은 메지시내에서 식별된 원격 호스트로 또 하나의 디버깅 메시지를 전송한다.
디버깅 메시지를 전송하는 수단은 디버깅 메시지를 네트워크로 전송할 수 있으며, 메시지는 바람직하게 애플리케이션의 실행에 관련된 정보를 포함한다. 이로 인해, 원격지에 운영자는 애플리케이션의 실행을 감시할 수 있다.
본 발명의 다른 측면에 있어서, 원격 리시버/디코더에서 실행되는 애플리케이션을 디버깅하는 워크스테이션이 제공되며, 워크스테이션은 바람직하게 리시버/디코더의 애플리케이션의 실행을 제어 및/또는 모니터하기 위하여 네트워크를 통해 리시버/디코더와 디버깅 메시지를 통신하는 수단(예를 들면, 인터페이스)을 포함한다.
본 발명은 상술한 모든 형태의 리시버/디코더와, 상술한 모든 형태의 워크스테이션을 포함하는 애플리케이션 개발 툴도 제공한다. 애플리케이션 개발 툴은 리시버/디코더와 워크스테이션 사이의 통신을 실행하는데 작용하는 넷 프록시를 포함할 수 있다.
본 발명은 상술한 바와 같은 애플리케이션 개발 툴과, 워크스테이션과 리시버/디코더가 메시지를 교환하는 네트워크를 포함하는 애플리케이션 개발 환경도 제공한다.
본 발명의 방법 측면에 있어서, 저장된 애플리케이션을 디버깅하고 리시버/디코더상에서 실행하는 방법이 제공되며, 이 방법은 워크스테이션이 저장된 애플리케이션을 디버깅하는데 사용되는 디버깅 메시지를 네트워크를 통해 원격 워크스테이션과 통신하는 단계를 포함한다.
리시버/디코더는, 바람직하게 메시지에 따라 애플리케이션의 실행을 제어하도록 네트워크로부터 디버깅 메시지를 수신할 수 있다. 메시지는 원격 호스트의 식별자를 포함할 수 있으며, 방법은 메시지로 식별된 원격 호스트와 더 디버깅 메시지를 통신하는 단계를 포함한다.
본 발명의 방법은 디버깅 메시지를 네트워크로 전송하는 단계를 포함할 수 있으며, 그 메시지는 바람직하게 애플리케이션의 실행에 관련된 정보를 포함한다.
본 발명에서 확인된 바와 같은 종래 기술의 문제점은 리시버/디코더에서의 테스트의 결과로서 애플리케이션에 어떤 변경을 가할 필요가 있을 경우 그 적절한 변경은 애플리케이션 개발 툴에서 수행되어야만 하며, 애플리케이션은 상주하여 재컴파일링되고 전체 상주 애플리케이션과 가상 기계가 디코더로 다운로드되어야 한다는 것이며, 이 처리 과정은 시간 소모적이고 성가실 수 있다.
상술한 모든 형태의 리시버/디코더에 의존하거나 의존하지 않고 제공될 수 있는, 본 발명의 다른 측면에 따르면, 다수의 파일을 포함하는 애플리케이션을 실행하는 수단과, 원격 워크스테이션으로부터의 파일 중 적어도 하나를 선택적으로 판독하는 수단을 포함하는 리시버/디코더가 제공된다.
본 발명은 다수의 파일을 포함하는 애플리케이션을 실행하는 수단과, 외부 저장 수단으로부터의 파일중 적어도 하나를 선택적으로 판독하는 수단을 포함하는 리시버/디코더도 제공한다. 바람직하게, 외부 저장 수단은 네트워크에 연결되며, 리시버/디코더는 네트워크로부터의 파일 중 적어도 하나를 선택적으로 판독하는 수단을 포함한다.
네트워크로부터의 파일을 선택적으로 판독할 수 있는 리시버/디코더를 제공함으로써, 애플리케이션의 일부가 예를 들어 일정 부분의 수정후에 리시버/디코더에 의해 판독될 수 있다.
본 발명의 모든 측면에 있어서, 애플리케이션을 실행하는 수단은 프로세서, 가상 기계, 런타임 엔진, 또는 다른 적당한 런타임 수단 또는 환경과 같은 런타임 수단일 수 있으며, 네트워크 또는 외부 저장 수단으로부터의 파일중 적어도 하나를 판독하는 수단은 입/출력 포트 및 관련 드라이버일 수 있다. 외부 저장 수단은 컴퓨터 또는 네트워크의, 파일을 저장하는 하드 디스크, 또는 그 밖의 저장 매체일 수 있다.
본 명세서에서 사용되는 용어 "리시버/디코더"는 코딩되거나 코딩되지 않은 신호, 예를 들면, 어떤 다른 수단에 의해 방송되거나 전송될 수 있는 텔레비젼 및/또는 라디오 신호를 수신하는 리시버를 내포할 수 있다. 용어는 수신된 신호를 디코딩하는 디코더를 내포할 수 있다. 그러한 리시버/디코더의 실시예는, 예를 들면, "셋-탑 박스"의 수신된 신호를 디코딩하는 리시버와 통합된 디코더를 포함할 수 있으며, 그러한 디코더는 물리적으로 떨어진 리시버와 결합하여 기능하거나, 그러한 디코더는 웹 브라우져, 비디오 리코더, 또는 텔레비젼과 같은, 부가적인 기능을 포함한다. 본 명세서에서 사용되는 것과 같이, 용어 "리시버/디코더"는 애플리케이션을 테스트 및/또는 디버깅하는데 사용될 수 있는 리시버/디코더 형태의 장치도 포함할 수 있다.
바람직하게, 리시버/디코더는 파일이 저장된 위치의 식별자를 포함하는 메시지를 수신한다. 바람직하게, 리시버/디코더는 네트워크 또는 외부 저장 수단으로부터의 개별적인 파일을 판독하여 필요이상의 데이터가 전송되지 않는다.
애플리케이션은 애플리케이션을 실행하는데 항상 요구되지 않는 몇 개의 파일을 포함할 수 있기 때문에, 애플리케이션 전체를 한 번에 다운로드하지 않으며, 리시버/디코더는 바람직하게 애플리케이션을 실행하는데 요구되는 만큼의 상기 적어도 하나의 파일을 판독한다.
리시버/디코더는 업데이트된 파일을 판독할 수 있으며, 따라서 파일이 수정되면 리시버/디코더는 수정된 파일에 의해 업데이트될 수 있다.
외부 저장 수단은 워크스테이션, 예를 들면, 애플리케이션을 편집하는 워크스테이션의 일부일 수 있다. 외부 저장 수단은 네크워크상에 장착된 파일 저장일 수 있다. 리시버/디코더가 네트워크 스택을 가질 수 없다는 사실을 보상하기 위하여, 리시버/디코더는 워크스테이션의 시뮬레이션된 네트워크 스택을 자체의 네트워크 스택으로서 사용할 수 있다. 대안적으로, 네트워크 스택이 리시버/디코더에 제공될 수 있다.
애플리케이션을 초기화하기 위하여, 리시버/디코더는 바람직하게 외부 저장 수단으로부터 부트 파일을 로드한다.
상술한 모든 형태의 워크스테이션에 의존하거나 의존하지 않고 제공될 수 있는, 본 발명의 다른 측면에 따르면, 리시버/디코더에서 실행되어야 할, 다수의 파일을 포함하는, 애플리케이션을 저장하는 (하드 디스크 또는 그 밖의 저장 매체와 같은) 저장 수단과, 네트워크에 의해 워크스테이션에 연결된 리시버/디코더에 의해 적어도 하나의 파일에 액세스하는 것을 가능케하는 (입/출력 포트 및 관련 드라이버와 같은) 수단을 포함하는 워크스테이션이 제공된다.
본 발명의 다른 측면에 따르면, 다수의 파일을 포함하는 애플리케이션을 저장하는 (하드 디스크 또는 그 밖의 저장 매체와 같은) 저장 수단과, 리시버/디코더에 의해 적어도 하나의 파일에 액세스를 가능케하는 (입/출력 포트 및 관련 드라이버와 같은) 수단을 포함하는 워크스테이션이 제공된다.
상기 적어도 하나의 파일에 액세스를 가능케하는 수단은 개별적인 파일이 판독되도록 할 수 있다. 워크스테이션은 애플리케이션을 편집하는 수단을 더 포함할 수 있다.
상술한 모든 형태의 애플리케이션 개발 툴에 의존하거나 의존하지 않고 제공될 수 있는, 본 발명의 다른 측면에 따르면, 애플리케이션을 편집하는 워크스테이션과, 애플리케이션을 실행하는 리시버/디코더를 포함하는 애플리케이션 개발 툴이 제공되며, 상기 리시버/디코더는 파일을 저장하는 네트워크로부터의 애플리케이션의 적어도 일부를 선택적으로 판독하는 수단을 가지며, 상기 워크스테이션은 리시버/디코더로 그 또는 각 부분의 전송을 초기화하는 수단을 갖는다.
본 발명의 다른 측면에 따르면, 애플리케이션을 편집하는 워크스테이션과, 애플리케이션을 실행하는 리시버/디코더를 포함하는 애플리케이션 개발 툴이 제공되며, 상기 리시버/디코더는 워크스테이션으로부터의 애플리케이션의 적어도 일부를 선택적으로 판독하는 수단을 가지며, 상기 워크스테이션은 리시버/디코더와 그 또는 각 부분을 통신하는 수단을 갖는다. 워크스테이션은 애플리케이션을 저장하는, 하드 디스크 또는 그 밖의 저장 매체와 같은 저장 수단을 더 포함할 수 있다.
상기 측면에 있어서, 애플리케이션은 다수의 파일을 포함할 수 있다. 리시버/디코더는 저장 수단으로부터의 개별적인 파일을 판독할 수 있다. 리시버/디코더는 애플리케이션을 실행하는데 요구되는 만큼의 파일을 판독할 수 있다. 워크스테이션은 파일을 업데이트할 수 있으며, 파일이 업데이트되면 리시버/디코더는 상기 파일을 판독할 수 있다.
업데이트된 파일이 리시버/디코더에 의해 사용되도록, 리시버/디코더는 파일의 가장 최근 버젼을 판독할 수 있다. 부가적으로 또는 대안적으로, 워크스테이션은 리시버/디코더가 파일, 예를 들면, 업데이트된 파일의 구버젼을 버리도록 지시할 수 있어서, 다음에 리시버/디코더가 그 파일이 필요할 때, 업데이트된 파일이 워크스테이션에서 판독될 것이다.
애플리케이션 개발 툴은 리시버/디코더와 네트워크 사이의 통신을 실행하는데 작용하는 넷 프록시를 더 포함할 수 있다. 더욱이, 워크스테이션은 통상 네트워크에 연결된다.
애플리케이션 개발 툴의 바람직한 실시예에 있어서, 워크스테이션은 리시버/디코더상에서 애플리케이션의 실행을 제어 및/또는 모니터하는데 동작될 수 있는 디버거를 더 포함한다. 디버거 및 애플리케이션은 네트워크를 통해 제어 신호를 교환할 수 있다. 특히, 파일 및 제어 신호는 동일한 네트워크에서 전달될 수 있다.
본 발명의 방법 측면에 따르면, 다수의 파일을 포함하는 애플리케이션을 편집하는 워크스테이션에서 애플리케이션을 실행하는 리시버/디코더로 애플리케이션을 전송하는 방법으로서, 워크스테이션에서 리시버/디코더로 개별 파일을 (통상, 네트워크를 통해) 전송하는 단계를 포함하는 방법이 제공된다. 파일은 애플리케이션의 실행이 요구될 때만 전송될 수 있다. 방법은 파일을 업데이트하는 단계와, 업데이트된 파일을 리시버/디코더로 전송하는 단계를 더 포함할 수 있다.
다른 방법 측면에 따르면, 다수의 파일을 포함하는 애플리케이션을 리시버/디코더에서 실행하는 방법으로서, 애플리케이션을 실행하기 위해 요구되는 만큼 리시버/디코더로 파일을 전송하는 단계를 포함하는 방법이 제공된다.
다른 방법 측면에 따르면, 부트 파일 및 적어도 하나 더 파일을 포함하는 애플리케이션을 리시버/디코더에서 실행하는 방법이 제공되며, 상기 방법은:
부트 파일을 (선택적으로, 네트워크를 통해) 리시버/디코더로 전송하는 단계;
리시버/디코더에서 부트 파일을 실행하는 단계; 및
요구될 때, 적어도 하나 더 파일을 전송하는 단계를 포함한다.
적어도 하나의 부트 파일 및 적어도 하나의 다른 파일은 파일을 저장한 네트워크로부터 전송될 수 있다.
본 발명은 그에 저장된, 상술한 모든 방법을 실행하는 프로그램을 갖는 컴퓨터 판독가능 매체와, 상술한 모든 방법을 실행하는 프로그램을 포함하는 컴퓨터 프로그램 제품도 제공한다.
본 발명은 첨부된 도면을 참조하여 기술 및 도시된 바와 같은 장치와, 첨부된 도면중 도 7의 참조로서 기술된 바와 같은 방법도 제공한다.
하나의 측면의 특징은 다른 측면에 적용될 수 있고, 장치 특징은 방법 측면에 적용될 수 있으며, 반대의 경우도 마찬가지이다.
이제, 본 발명의 바람직한 특징이 첨부된 도면을 참조하여 예시로서만 설명될 것이다.
디지털 텔레비젼 시스템의 개관
디지털 텔레비젼 시스템(1)의 개관이 도 1에 도시되어 있다. 본 발명은 압축된 디지털 신호를 전송하기 위하여, 알려진 MPEG-2 압축 시스템을 사용하는 통상의 디지털 텔레비젼 시스템(2)을 포함한다. 보다 상세하게는, 방송 센터의 MPEG-2 압축기(3)는 디지털 신호 스트림(통상, 비디오 신호의 스트림)을 수신한다. 압축기(3)는 링크(5)에 의해 멀티플렉서 및 스크램블러(4)와 연결된다.
멀티플렉서(4)는 다수의 더 입력 신호를 수신하고, 전송 스트림을 어셈블하고, 원격 통신 링크를 포함하는 다양한 형태를 수용할 수 있는 방송 센터의 송신기 (6)로 연결(7)을 통해 압축된 디지털 신호를 전송한다. 송신기(6)는 통신 위성 트랜스폰더(9)를 향하여 업링크(8)를 통해 전자기 신호를 전송하며, 이 전자기 신호는 통상 최종 사용자에 의해 소유 또는 대여되는 접시 형태의 지상 리시버(12)로 가공의 다운링크(10)를 통해 전기적으로 처리 및 방송된다. 지상 방송, 케이블 전송, 결합된 통신 위성/케이블 링크, 전화망 네트워크 등과 같은, 데이터의 전송을 위한 다른 전송 채널이 물론 가능하다.
리시버(12)에 의해 수신된 신호는 최종 사용자에 의해 소유 또는 대여되며, 최종 사용자의 텔레비젼 세트(14)에 연결된 통합 리시버/디코더(13)로 전송된다. 리시버/디코더(13)는 압축된 MPEG-2 신호를 텔레비젼 세트(14)에 대한 텔레비젼 신호로 디코딩한다. 분리된 리시버/디코더가 도 1에 도시되어 있지만, 리시버/디코더는 통합된 디지털 텔레비젼의 일부일 수도 있다. 본 명세서에서 사용되는 것과 같이, 용어 "리시버/디코더"는 셋-탑 박스와 같은 분리된 리시버/디코더와, 통합된 리시버/디코더를 갖는 텔레비젼을 포함한다.
다중 채널 시스템에 있어서, 멀티플렉서(4)는 다수의 병렬 소스로부터 수신된 사운드 및 비디오 정보를 처리하며, 해당 채널 수에 따라 정보를 방송하도록 송신기(6)와 상호작용한다. 시청각 정보에 더하여, 메시지 또는 애플리케이션 또는 어떤 다른 종류의 디지털 데이터가, 전송된 디지털 사운드 및 비디오 정보와 점철된 이들 채널의 일부 또는 모두에 도입될 수 있다.
조건부 액세스 시스템(15)은 멀티플렉서(4)와 리시버/디코더(13)에 연결되며, 부분적으로 방송 센터에 부분적으로 디코더에 위치된다. 이것은 최종 사용자가 하나 또는 그 이상의 방송 공급자로부터의 디지털 텔레비젼 방송을 액세스할 수 있게 한다. 상업적 제공(즉, 방송 공급자에 의해 판매되는 하나 또는 몇 개의 텔레비젼 프로그램)과 관련있는 메시지를 판독할 수 있는 스마트카드가 리시버/디코더 (13)에 삽입될 수 있다. 디코더(13)와 스마트카드를 사용하여, 최종 사용자는 서브스크립션 모드 또는 페이-퍼-뷰 모드중 하나로 상업적 제공을 얻을 수 있다. 본 명세서에서 사용되는 바와 같이, 용어 "스마트카드"는, 전적으로 그렇지는 않지만, 칩 기반 카드 장치, 또는, 예를 들면, 마이크로 프로세서 및/또는 메모리 저장을 갖는 유사한 기능 및 성능의 물체를 포함한다. 카드의 다른 물리적 형태를 갖는 장치, 예를 들면, TV 디코더 시스템에 종종 사용되는 것과 같은 열쇠 형태 장치가 이 용어에 포함된다.
상술한 바와 같이, 시스템에 의해 전송된 프로그램은 멀티플렉서(4)에서 스크램블되며, 주어진 전송에 적용되는 조건 및 암호화 키는 액세스 제어 시스템( 15)에 의해 판단된다. 이러한 방식에 있어서의 스크램블드 데이터의 전송은 페이 TV 시스템의 분야에서 잘 알려져 있다. 통상, 스크램블드 데이터는 데이터를 디스크램블하는 제어 워드와 함께 전송되며, 제어 워드 그 자체는 소위 이용키(Exploi tation Key)에 의해 암호화되고 암호화된 형태로 전송된다.
스크램블드 데이터와 암호화된 제어 워드는, 암호화된 제어 워드를 해독하고전송된 데이터를 디스크램블하기 위하여 디코더에 삽입되는 스마트 카드에 저장된 이용 키와 동등한 액세스를 갖는 디코더(13)에 의해 수신된다. 납입을 끝낸 가입자는 방송 월정 ECM(권한 부여 제어 메시지)에서 전송을 보기 위하여, 암호화된 제어 워드를 해독하는데 필요한 이용 키를 수신할 것이다.
멀티플렉서(4)및 리시버/디코더(13)에 연결되며, 부분적으로 방송 센터에 부분적으로 디코더에 연결된 대화식 시스템(16)은 최종 사용자가 모뎀드 백 채널(17)을 통해 다양한 애플리케이션과 상호작용할 수 있게 한다. 모뎀드 백 채널은 조건부 액세스 시스템(15)에 사용되는 통신에 사용될 수 있다. 대화식 시스템은, 예를 들면, 시청자가 특정 사건을 시청하고, 애플리케이션 등을 다운로드하기 위한 허가를 요구하도록 전송 센터와의 즉시 통신을 가능케 할 수 있다.
도 2는 본 발명의 디지털 텔레비젼 시스템(1)의 대화식 텔레비젼 시스템(16)의 일반적인 구성을 나타낸다.
예를 들면, 대화식 시스템(16)은 최종 사용자가 온스크린 카탈로그로부터 아이템을 구입하며, 요구가 있는 즉시 지역 뉴스 및 기상도를 보며, 텔레비젼 세트를 통해 게임을 할 수 있게 한다.
대화식 시스템(4000)은 다음 4개의 주요 요소를 포함한다.
* 방송 공급자의 애플리케이션 작성, 개발, 디버그 및 테스트를 가능케하는, 방송 센터 또는 다른 곳의, 저작 툴(4004);
* 최종 사용자에게 방송되어야 할 MPEG-2 전송 스트림(통상, 그것의 전용 부분)으로의 삽입을 위해 멀티플렉서 및 스크램블러(4)로의 전달에 대한 애플리케이션 및 데이터를 방송 공급자가 준비, 입증 및 포맷하도록 하는 저작 툴(4004)에 연결된, 방송 센터의, 애플리케이션과 데이터 서버(4006);
* 실행을 위해 디코더(13)의 작업 메모리로 최종 사용자가 애플리케이션을 수신, 입증, 압축해제 및 로딩하도록 하는, 최종 사용자에 의해 소유 또는 대여되는 리시버/디코더(13)에 설치된 실행가능한 코드인 런 타임 엔진(RTE:4008)을 포함하는 가상 기계; 엔진(4008)은 상주, 일반 목적 애플리케이션을 실행한다. 엔진(4 008)은 하드웨어 및 운영 체제와 독립적이다.
* 최종 사용자의 요구에 데이터 및 애플리케이션을 MPEG-2 전송 스트림으로서버(4006)를 지시하는 신호가 삽입하게 하도록 리시버/디코더(13)와 애플리케이션과 데이터 서버(4006)사이의 모뎀드 백 채널(17).
대화식 텔레비젼 시스템은 그 내에 포함된, 리시버/디코더 및 다양한 장치의 기능을 제어하는 "애플리케이션"을 사용하여 동작한다. 애플리케이션은 "리소스 파일"로서 엔진(4008)에서 대표된다. "모듈"은 일련의 리소스 파일 및 데이터이다. 리시버/디코더의 "메모리 볼륨"은 모듈에 대한 저장 공간이다. 모듈은 MPEG-2 전송 스트림에서 리시버/디코더(13)로 다운로드될 수 있다.
리시버/디코더
도 3을 참조하여, 이제, 리시버/디코더(13) 또는 셋-탑 박스의 요소가 설명될 것이다. 이 도면에 나타낸 요소는 기능적 블럭의 관점에서 설명될 것이다.
리시버/디코더(13)는 관련 메모리 요소를 포함하며 직렬 인터페이스(21)로부터 입력 데이터를 수신하는 중앙 처리 장치(20)와, 병렬 인터페이스(22)와, (도 1의 모뎀 백 채널(17)에 연결된) 모뎀(23)과, 디코더의 전방 패널상의 스위치 컨택 (24)을 포함한다.
리시버/디코더는 제어 장치(26)를 통해 적외선 원격 제어(25)로부터의 입력을 수신하는데 부가적으로 적용되며, 뱅크 또는 서브스크립션 스마트카드(29,30)를 각각 판독하는 2개의 스마트카드 판독기(27,28)를 갖는다. 서브스크립션 스마트카드 판독기(28)는 암호화된 방송 신호를 디스크램블하도록 디멀티플렉서/디스크램블러(30)에, 필요한 제어 워드를 공급하기 위하여, 삽입된 서브스크립션 카드(30) 및 부가적 액세스 장치(29)와 맞물린다. 디코더는 장치(30)에 의해 필터링되고 디멀티플렉스되기 전에 통신 위성 전송을 수신 및 복조하기 위하여 종래의 튜너(31) 및 복조기(32)도 포함한다.
리시버/디코더에서의 데이터 처리는 일반적으로 중앙 처리 장치(20)에 의해 이루어진다. 도 4는 리시버/디코더의 중앙 처리 장치(20)의 소프트웨어 구성을 나타낸다. 도 4를 참조하면, 소프트웨어 구성은 하나 또는 그 이상의 애플리케이션( 4056)을 실행하는 런 타임 엔진(4008), 장치 관리자(4068) 및 다수의 장치(4062) 및 장치 드라이버(4066)를 포함한다.
본 명세서에서 사용되는 바와 같이, 애플리케이션은 바람직하게 리시버/디코더(13)의 하이레벨 기능을 제어하는 하나의 컴퓨터 코드이다. 예를 들면, 최종 사용자가 원격 제어(25)의 초점을 텔레비젼 세트(14)의 화면에 나타난 버튼 물체에 놓고 유효 키를 누를 때, 버튼과 관련된 명령 시퀀스가 실행된다.
대화식 애플리케이션은 메뉴를 제안하고, 최종 사용자의 요구에 명령을 실행하고, 애플리케이션의 목적과 관련된 데이터를 제공한다. 애플리케이션은 상주 애플리케이션, 즉 리시버/디코더(13)의 ROM(또는 FLASH 또는 그 밖의 비휘발성 메모리)에 저장되거나 리시버/디코더(13)의 RAM 또는 FLASH 메모리에 방송 및 다운로드될 수 있다.
애플리케이션은 리시버/디코더(13)의 메모리 위치에 저장되며, 리소스 파일로서 표현된다. 리소스 파일은, 상술한 특허 명세서에 보다 상세히 기술된 바와 같이, 예를 들면, 그래픽 물체 설명 장치 파일, 변수 블럭 장치 파일, 명령 시퀀스 파일, 애플리케이션 파일 및 데이터 파일을 포함할 수 있다.
리시버/디코더는 RAM 볼륨, FLASH 볼륨 및 ROM 볼륨으로 분할된 메모리를 포함하지만 이러한 물리적 구성은 논리적 구성과 구별된다. 메모리는 다양한 인터페이스와 관련된 메모리 볼륨으로 더 분할될 수 있다. 하나의 관점에서, 메모리는 하드웨어의 일부로서 간주될 수 있으며, 다른 관점에서, 메모리는 하드웨어와 분리하여 나타낸 전체 시스템을 지원 및 포함하는 것으로서 간주될 수 있다.
중앙 처리 장치(20)는 가상 기계(4007)의 일부를 형성하는 런 타임 엔진(40 08)의 중앙으로서 간주될 수 있다. 이것은 한편("하이 레벨")으로는 애플리케이션에, 다른 한편("로우 레벨")으로는 상술한 바와 같은 다양한 포트(즉, 예를 들면, 직렬 인터페이스(21), 병렬 인터페이스(22), 모뎀(23) 및 제어 장치(26))를 포함하는 리시버/디코더 하드웨어(4061)에, 하기에 설명된 다양한 중간 논리 장치를 통해 결합된다.
도 4를 참조하면, 다양한 애플리케이션(4057)이 가상 기계(4007)에 결합되며, 보다 일반적으로 사용되는 애플리케이션의 얼마간이 (4057)에 나타낸 것과 같이, 시스템에 다소 영구적으로 상주할 수 있는 반면, 나머지는, 예를 들면, MPEG 데이터 스트림 또는 다른 포트로부터, 요구되는 만큼 시스템으로 다운로드될 것이다.
가상 기계(4007)는 런 타임 엔진(4008)에 더하여, 툴 박스(4058)를 포함하는 몇 개의 상주 라이브러리 함수(4006)를 포함한다. 라이브러리는 엔진(4008)에 의해 사용된 C 언어로 기타 함수를 포함한다. 이것은 데이터 구성의 압축, 확장 또는 비교, 라인 드로잉 등과 같은 데이터 조작을 포함한다. 라이브러리(4006)는 하드웨어 및 소프트웨어 버젼 번호 및 사용 가능한 RAM 공간과 같은 리시버/디코더(13)의 펌웨어에 대한 정보와 새로운 장치(4062)를 다운로드 할 때 사용된 기능을 포함한다. 기능은 FLASH 또는 RAM 메모리에 저장되는, 라이브러리로 다운로드될 수 있다.
런타임 엔진(4008)은 포트 또는 인터페이스에 교대로 결합되는 장치 드라이버(4060)에 결합되는 일련의 장치(4062)에 결합되는 장치 관리자(4068)에 결합된다. 넓은 용어에 있어서, 장치 드라이버는 논리적 인터페이스를 정의하는 것으로서 간주될 수 있어서 2개의 상이한 장치 드라이버가 공통의 물리적 포트에 결합될 수 있다. 장치는 일반적으로 하나 이상의 장치 드라이버에 결합될 것이며, 장치가 단일 장치 드라이버에 결합되면, 장치는 통신하는데 요구되는 전체 기능성을 통합하도록 설계되어 별개의 장치 드라이버가 필요 없다. 정해진 장치가 그 자체사이에서 통신할 수 있다.
리시버/디코더(13)의 각 기능은 리시버/디코더(13)의 소프트웨어 구조의 장치(4062)로서 표현된다. 장치는 지역 장치 또는 원격 장치일 수 있다. 지역 장치( 4064)는 스마트카드, SCART 커넥터 신호, 모뎀, 직렬 및 병렬 인터페이스, MPEG 비디오 및 사운드 플레이어 및 MPEG 섹션 및 테이블 추출기를 포함한다. 포트 및 프로시저는 리시버/디코더 제조업자에 의해 제공 및 설계되는 장치 및 장치 드라이버에 의해서기 보다는 시스템 허가 또는 설계자에 의해 정의되어야 한다는 점에서 원격지에서 실행되는 원격 장치(4066)는 지역 장치와 다르다.
런 타임 엔진(4008)은 마이크로 프로세서 및 공통 애플리케이션 프로그래밍 인터페이스의 제어하에서 실행한다. 그것이 리시버/디코더(13)마다 설치되어서 모든 리시버/디코더(13)가 애플리케이션 관점에서 식별된다.
엔진(4008)은 리시버/디코더(13)에서 애플리케이션(4056)을 실행한다. 이것은 대화식 애플리케이션(4056)을 실행하고, 리시버/디코더(13)의 외부로부터 사건을 수신하고, 그래픽 및 텍스트를 표시하고, 서비스에 대한 장치를 호출하고, 특정 계산을 위한 엔진(4008)에 연결된 라이브러리(4006)의 함수를 사용한다.
런 타임 엔진(4008)은 각 리시버/디코더(13)에 설치된 실행가능한 코드이며, 애플리케이션을 해석 및 실행하는 해석기를 포함한다. 엔진(4008)은 (MS-DOS와 같은) 단일 작업 운영 체제를 포함하는 모든 운영 체제에 적용 가능하다. 엔진(4008)은 (다양한 동작을 실행하기 위하여, 키 프레스와 같은 다양한 사건을 수용하는) 프로세스 시퀀서 장치를 기반으로 하며, 다른 하드웨어 인터페이스로부터의 사건 큐를 관리하기 위하여 그 자체의 스케쥴러를 포함한다. 이것은 그래픽과 텍스트의 표시도 처리한다. 프로세스 시퀀서 장치는 일련의 동작 그룹을 포함한다. 사건의특성에 따라 각 사건은 현재의 동작 그룹에서 다른 동작 그룹으로 전송하고, 새로운 동작 그룹의 동작을 실행하도록 프로세스 시퀀서 장치에 시킨다.
엔진(4008)은 애플리케이션(4056)을 리시버/디코더 메모리에 로드 및 다운로드하기 위하여 코드 로더를 포함한다. 최적의 사용을 위하여, 필요한 코드만 RAM 또는 FLASH 메모리에 로딩된다. 다운로드 데이터는 애플리케이션(4056)의 어떠한 수정, 또는 허가되지 않은 모든 애플리케이션의 실행을 방지하기 위하여 입증자 메커니즘에 의해 입증된다. 엔진(4008)은 압축 해제기를 더 포함한다. 애플리케이션 코드(중간 코드의 형태)는 MPEG 스트림으로부터 또는 내장 리시버/디코더 모드를 통해 공간을 절약하고 고속으로 다운로드하기 위하여 압축되기 때문에, 코드는 RAM에 로딩되기 전에 압축 해제되어야 한다. 엔진(4008)은 다양한 변수 값을 업데이트하며 상태 변화를 판단하기 위하여 애플리케이션 코드를 해석하는 해석기와, 에러 체커도 포함한다.
저작 툴
상술한 바와 같이, 저작 툴(4004)은 애플리케이션이 설계, 작성, 테스트 및 디버깅되게 한다. 저작 툴은 윈도우 NT, 윈도우 95 또는 윈도우 98을 실행하는 개인 컴퓨터(PC), 또는 UNIX 머신, 또는 그 밖의 다른 운영 체제를 실행하는 워크스테이션과 같은, 워크스테이션(WS)에서 실행된다. 저작 툴은 워크스테이션 스크린상에서 편집함으로써, 애플리케이션 개발자가 애플리케이션을 설계 및 작성할 수 있게 한다.
바람직한 실시에 따르면, 애플리케이션을 테스트 및 디버그하기 위하여, 워크스테이션에 링크된 리시버/디코더가 제공된다. 애플리케이션으로 이루어진 다양한 파일이 필요한 만큼/필요할 때, 리시버/디코더에 다운로드되도록 리시버/디코더는 워크스테이션에 링크된다.
도 5를 참조하면, 개관에 있어서, 저작 툴은 링크(228)에 의해 리시버/디코더(226)에 연결되는 워크스테이션(200)을 포함한다. 워크스테이션(200)은 스크린( 210), 컴퓨터(212), 키보드(214) 및 마우스(216)를 포함한다. 컴퓨터(212)는 컴퓨터에 진부적인 다른 하드웨어 및 소프트웨어 뿐만 아니라, 프로세서(218), 메모리 (220), 하드 디스크(222), 입/출력(I/O) 포트(224)를 포함한다. 리시버/디코더(22 6)는 텔레비젼(230) 또는 다른 디스플레이에 연결된다.
저작 툴(4004)의 다양한 구성 요소가 도 6에 보다 상세히 도시되어 있다. 저작 툴은 애플리케이션을 이루는 다양한 파일을 작성 및 편집하는 에디터(410)와, 에디터(410)에 의해 사용되는 현재 파일을 저장하는 라이브러리(412)와, 도 4의 가상 기계(4007)와 같은 가상 기계에 의하여 이해될 수 있는 중간 언어로 에디터(4 10)에 의해 산출된 파일을 컴파일하는 컴파일러(414)를 포함한다. "클래스 파일"로 불리는 컴파일된 파일은 워크스테이션(200)의 하드 디스크(222)의 디렉토리인 디렉토리(416) 또는 워크스테이션이 연결된 네트워크의 다른 볼륨에 저장된다. 리시버/디코더(226)는 도 3에 나타낸 것과 같은, 종래의 리시버/디코더에서 발견되는 다른 구성 요소뿐만이 아니라, CPU(424) 및 관련 메모리, 입/출력(I/O) 포트(422)를 포함한다. (후에 기술될) 넷 프록시(418)는 리시버/디코더(226)가 리시버/디코더I/O 포트(422), 직렬 링크(228) 및 워크스테이션 I/O 포트(420)를 통해 디렉토리(416)에 저장된 클래스 파일을 액세스 하도록 워크스테이션에서 제공된다. 리시버/디코더(226)에서 실행되는 애플리케이션을 디버깅하는 (후에 기술될) 디버거(430)도 제공된다.
애플리케이션 개발자는 에디터(410)를 사용하여 애플리케이션에 대한 파일을 만들기 위하여 새로운 파일을 작성하고/작성하거나 라이브러리(412)에 저장된 현재 파일을 사용한다. 애플리케이션은 가상 기계를 위하여 설계된, 자바와 같은 포괄적인 언어로 기록된 명령을 포함하는 소스 파일과, 선택적으로, 애플리케이션에 의해 사용되어야 하는 데이터를 포함하는 데이터 파일을 포함한다. 편집되는 파일은 워크스테이션 스크린(210)상에 표시되며, 변경은 키보드(214) 및 마우스(216)를 사용하여 입력된다. 파일은 다양한 방식으로 표시될 수 있다. 예를 들면, 그래픽 파일은 스크린상에 그래픽으로서 표시될 수 있지만, 리소스 파일에 대해서, 파일의 코드가 표시되거나, 코드의 전체 구성 또는 구조의 표현이 표시될 수 있다.
팬톡(Pantalk)으로 알려진 프로그래밍 언어를 사용하는 특정 실행에 있어서, 애플리케이션은 리소스 파일의 아래 유형중 하나 이상을 포함할 수 있다.
* 소스 파일 - 애플리케이션의 진입점을 정의
* 패널 파일 - 스크린을 정의(이것은 그래픽 소스 파일이다)
* 클래스 파일 - 애플리케이션에서 사용되는 데이터 구성을 정의
* 선택적으로, 스크립트 파일 - 애플리케이션의 반응을 정의
데이터 파일의 예가 다음과 같다.
* 아이콘 라이브러리 파일 - 이것은, 예를 들면, 4 비트/픽셀 비트맵의 컬렉션을 포함한다. 이 아이콘은 버튼 또는 장식으로서 패널에 의해 사용될 수 있다.
* 이미지 - 이 파일은 256 가지 칼러를 제공하는, 모든 사이즈가 4비트/픽셀을 갖는 단일 비트맵을 포함한다. 이 이미지 유형은 패널의 백그라운드로서 통상 사용된다.
* 칼러 테이블 - 이것은 모듈이 스크린상에 표시할 수 있는 칼러를 정의하는데 사용된다.
* 사용자 데이터 파일 - 이 파일은 애플리케이션에 의해 사용하기 위한 사용자에 의해 정의된다. 그것은 ASCII 텍스트 파일 또는 2진 데이터 파일이다.
다른 구현에 있어서, 자바와 같은 다른 프로그래밍 언어가 사용된다. 당업자에게 명백해지는 것과 같이, 다른 언어는 그 언어에 적절한 다른 애플리케이션 구성일 것이다.
애플리케이션 테스트
일단 애플리케이션이 작성되면, 컴파일러(414)에 의해 가상 기계로써 이해될 수 있는 중간 언어로 변화되고 디렉토리(416)에 클래스 파일로서 저장된다. 애플리케이션을 리시버/디코더(226)의 프로세서(424)에서 실행함으로써 테스트될 수 있다. 애플리케이션을 테스트하기 위하여, 워크스테이션(200)은 통신에 사용되어야 하는 서버명과 클래스 파일이 저장되어 있는 디렉토리명을 포함하는 메시지의 형태로 요구를 리시버/디코더(226)로 보낸다.
종래의 리시버/디코더에 비하여, 본 실시예의 리시버/디코더(226)는 처음 턴온 할 때, 네트워크 파일 시스템(NFS) 로더에서 호출된 상주 프로그램을 실행하도록 프로그램된다. 이 프로그램은 워크스테이션(200)으로부터 수신되어야 할 요구를 기다린다. 프로그램이 요구를 수신할 때, 지정된 포트를 사용하여 요구에 지정된 디렉토리를 액세스한다. 디렉토리(416)는 부트 파일, 즉 애플리케이션을 초기화하는 파일의 이름을 포함하는 startup.txt를 호출하는 파일을 포함한다. NFS 로더는 부트 파일명을 판독하고 워크스테이션 디렉토리로부터 그 파일을 다운로드하고 리시버/디코더의 메모리에 저장한다. 부트 파일은 리시버/디코더의 프로세서(424)에 의하여 실행된다.
부트 파일은 요구되는 파일이 프로세서에 로드되어야 할 경우에, 다른 파일에 포함되는 호출을 루틴하기 위하여 포함할 수 있다. 이 경우에, 프로세서는, 예를 들면, 이미 사용되었기 때문에, 필요한 파일이 지역적으로 저장되었는지를 살피기 위하여 처음 리시버/디코더 메모리에서 찾는다. 파일이 지역적으로 저장되지 않았으면, 프로세서는 파일을 찾기 위하여 워크스테이션으로부터의 요구에서 지정된 워크스테이션 디렉토리에서 찾는다. 파일은 다운로드되고, 리시버/디코더에 의하여 사용되도록 리시버/디코더 메모리(예를 들면, RAM 또는 FLASH 메모리)에 저장된다. 이러한 방식에 있어서, 에디터(410)에 의하여 작성되고 디렉토리(416)에 저장된 애플리케이션은 리시버/디코더(226)에서 실행된다. 리시버/디코더(226)로부터의 출력이 텔레비젼 세트(230)에 표시된다. 이것으로 리시버/디코더 및 텔레비젼에서 실행할 때 애플리케이션이 어떻게 보이는지를 애플리케이션 개발자가 볼 수 있다.
도 7을 참조하여, 애플리케이션을 작성 및 테스트하는 다양한 단계가 설명될 것이다. 단계(450)에서, 애플리케이션이 에디터(410)를 사용하여 작성된다. 단계(452)에서, 애플리케이션이 컴파일되고, 단계(454)에서, 컴파일된 애플리케이션이 클래스 파일로서 디렉토리(416)에 저장된다. 단계(456)에서, 통신에 사용되어야 할 디렉토리와 포트명을 지정하는 요구가 워크스테이션에서 리시버/디코더로 보내진다. 단계(458)에서, 부트 파일이 디렉토리에서 리시버/디코더로 로딩되고, 단계(4 60)에서 부트 파일이 리시버/디코더의 프로세서에서 실행된다. 단계(462)에서, 새로운 클래스 파일이 요구되는지가 프로세서에 의해 판단된다. 새로운 클래스 파일이 요구되면, 단계(464)에서, 새로운 클래스 파일이 리시버/디코더로 로딩되고 단계(466)에서 새로운 클래스 파일이 실행된다. 더 클래스 파일이 리시버/디코더로 로딩되고 요구되는 만큼 프로세서에 의해 실행된다.
에디터(410)는 애플리케이션을, 예를 들면, 테스트의 결과로서 바꿀 수 있다. 그러한 변화의 결과로서, 디렉토리(416)에 저장된 파일의 일부 또는 전부가 업데이트될 수 있다. 업데이트된 파일은 이제 설명되는 것과 같은, 몇 개의 방식중 하나로 리시버/디코더(226)로 전송될 수 있다.
하나의 실시예에 있어서, 리시버/디코더(226)의 파일을 업데이트하는데 특별한 준비는 없다. 리시버/디코더가 턴온될 때, 단지 디렉토리(416)에서 요구하는 파일을 다운로드한다. 이 경우, 리시버/디코더로 이미 다운로드된 파일에 변화가 이루어졌으면, 업데이트된 파일이 다운로드되도록 리시버/디코더가 재 시작되어야 한다. 이것은, 예를 들면, 리시버/디코더를 오프(off)하고 다시 온(on)함으로써 이루어진다. 리시버/디코더는 애플리케이션을 실행하는데 필요한, 어떠한 수정된 파일도 포함하는 모든 파일을 다운로드한다.
다른 실시예에 있어서, 리시버/디코더의 파일이 워크스테이션에서 리시버/디코더로 "언로드 파일" 명령을 보냄으로써 업데이트된다. 리시버/디코더가 이 명령을 수신할 때, 지정된 파일을 삭제한다. 파일이 요구되는 다음 시기가 리시버/디코더에 지역적으로 존재하지 않아서 파일의 업데이트된 버젼이 디렉토리(416)로부터 다운로드될 것이다.
또 다른 실시예에 있어서, 리시버/디코더는 지역적으로 및 워크스테이션에서 사용가능한 모든 파일의 최종 수정의 시간 및 날짜를 체크하며, 모든 파일의 가장 최근 버젼을 사용한다. 이러한 방식에 있어서, 수정된 파일은 리시버/디코더로 자동적으로 전송된다.
저작 툴 네트워크
도 8은 디렉토리(416)를 포함하는 경우와 같은, 워크스테이션의 하드 디스크 또는 네트워크 볼륨에 리시버/디코더(226)가 액세스하도록 하는 다양한 층의 구조를 나타낸다. 지역 저장 장치와 같이 리시버/디코더가 워크스테이션의 하드 디스크 또는 네트워크 볼륨상의 디렉토리를 사용하도록 하는 클라이언트 네트워크 파일 시스템(NFS)이 리시버/디코더에 제공된다. 본 예에서, 리시버/디코더가 네트워크 스택을 갖지 않아서 프록시 스택("넷 프록시":418)이 리시버/디코더에 의해 사용되도록 워크스테이션에 제공된다. 이 프록시는 워크스테이션의 네트워크 스택과 리시버 /디코더에 연결된 물리적 포트사이에 링크를 만든다.
도 8을 참조하면, 리시버/디코더(226)는 물리층(250), 데이터 링크층(252), 넷 프록시층(254), NFS/RPC층(256) 및 파일 시스템층(258)을 포함한다.
물리층(250)은 리시버/디코더(226)와 워크스테이션(200)사이의 물리적 포트를 제공한다. 그와 같이, 이것은 어떠한 또는 모든 직렬 포트, 병렬 포트 또는 모뎀을 (그밖의 가능성 사이에서) 포함할 수 있다.
데이터 링크층(252)의 목적은 물리층(250)과 넷 프록시층(254)사이의 데이터 프레임의 교환을 처리하는 것이다. 이것은 교환되는 프레임의 무결성을 보장하고, 다른 목적지로부터 도착하는 프레임을 디멀티플렉스하게 한다.
데이터 링크층(252)은 SLPD로서 식별되는 프로토콜을 사용할 수 있다. SLPD 프로토콜은 도 9에 나타낸 5개의 필드를 포함하는 프레임으로 데이터를 처리한다. 필드는 다음과 같이 이 프레임에 포함된다.
* SYNC_WORD(500): SLPD 프레임의 시작을 식별하는 고정 16 비트 값.
* LENGTH(502): SLPD 프레임에서 뒤이으도록 바이트의 카운트인 16 비트 값.
* PROTOCOL_ID(504): SLPD 프레임에 포함된 데이터의 프로토콜을 식별하는 16 비트 값. 이 필드는 데이터의 멀티플렉싱에 사용된다.
* DATA(506): SLPD 프레임에 의해 전송된 데이터의 LENGTH 4 바이트를 포함하는 가변 길이 필드.
* CRC16(508): SLPD 프레임의 무결성을 검증하도록 데이터를 포함하는 16 비트 필드. 이 필드는 필드 PROTOCOL_ID 및 DATA에서 산출된 16 비트 순환 중복 체킹 값을 포함한다.
데이터 링크층(252)의 기능성은 아래의 공개된 방법의 준비를 포함한다.
MhwNFSRpcComRegisterProtocol: 이 기능은 포로토콜과 관련된 콜백 기능을등록한다. 2개의 콜백 기능, aSendCallback 및 aRevCallback 은 각 프로토콜과 관련되며, 각각 데이터 프레임의 전송의 종료 및 데이터 프레임의 수신을 나타내기 위해 호출된다.
MhwNFSRpcComUnregisterProtocol: 이 기능은 프로토콜과 관련된 콜백 기능을 삭제한다.
MhwNFSRpcComPortInit,MhwNFSRpcComPortClose: 이 기능은 각각 (직렬 포트, 병렬 포트, 또는 모뎀 장치와 같은) 통신 포트를 초기화 및 종료하며 포트에 관한 어드레스를 얻는다. 바람직한 실시예에 있어서, 동일한 장치에 대하여 이 기능을 몇 번 호출할 수 있다. 장치의 초기화는 제 1 호출이외에 영향을 주지 않는다. 데이터 링크층(252)은 각 장치에 대한 MhwNFSRpcComPortInit 호출의 수를 카운터에 저장한다. 매 번 뒤이은 호출이 각 장치에 대하여 MhwNFSRpcComPortClose로 되며, 그 장치에 대한 카운터가 감소된다. 포트는 카운터가 제로가 될 때까지 실제로 닫히지 않는다.
MhwNFSRpcComInit, MhwNFSRpcComClose: 이 기능은 각각 데이터 링크층(252)을 초기화 및 정확하게 종료하기 위해 호출된다.
MhwNFSRpcComDatagramSend: 이 기능은 통신 포트를 통해 SLPD 프레임을 전송한다. 전송 종료시, SLPD 프레임에서 식별된 프로토콜에 대한 콜백 기능 aSendCa llback은 프레임이 전송되었다는 것을 클라이언트에게 알리도록 호출된다.
넷 프록시층(254)은 디코더의 네트워크 스택의 부재를 보상하는 소프트웨어 층이다. 넷 프록시(254)층은 리시버/디코더(226) 및 워크스테이션(200)의 중간 데이터 링크층(252,262) 및 물리층(250,260)을 통해 워크스테이션(200)의 넷 프록시층(264)과 통신한다. 워크스테이션(200)에서, 넷 프록시층(264)에 의해 수신된 모든 메시지가 UDP 소켓(268)을 통해 원격 호스트로 전방으로 전송하는 동안 네트워크 스택(266)으로 전달된다. 유사하게, UDP 소켓(268)에 의해 수신된 모든 메시지가 리시버/디코더(226)로 전송된다. 리시버/디코더의 NFS/RPC층(256)이 리시버/디코더의 파일 시스템(258)과 넷프록시층 사이에서 인터페이스를 제공하는 반면, 워크스테이션의 NFS/RPC층(270)은 워크스테이션의 파일 시스템과 네트워크 스택사이에서 인터페이스를 제공한다.
(리시버/디코더(226) 또는 워크스테이션(200)의) 넷 프록시층은 호스트명과 속성 길이의 데이터 패킷을 포함하는 데이터 패킷을 처리한다. 넷 프록시층은 다음의 공개 방법을 제공한다.
NFSRpcProxy, NFSRpcProxyClose: 이 기능은 각각 넷 프록시 서버를 초기화 및 종료한다.
NFSRpcProxyBindHostName, NFSRpcProxyUnbindHostName: 이 기능의 첫 번째는 호스트명과 물리 인터페이스를 관련짓는 것이다. 다음은 넷 프록시에 의해 유지되는 호스트의 리스트로부터의 이전 등록된 호스트명을 삭제하는 것이다.
NFSRpcProxyBindResolveName: 이 기능은 이름으로써 식별된 호스트의 어드레스를 얻는다.
NFSRpcProxyRpcSend: 이 기능은 원격 호스트에서 RPC 호출을 만든다.
NFS/RPC층은 RFC(1057), RFC(1094) 및 관련 ISO 표준과 일치하는 RPC 명령을발생시키기 위해 필요한 기능성을 구현한다.
수정된 실시예가 도 10에 도시되어 있다. 이 실시예에서, 디렉토리(416)는 워크스테이션(200)과 떨어진 NFS 서버(600)의 네트워크 볼륨에 저장된다. 개발 워크스테이션(620)에서 근무하는 개발자는 서버(600)에 연결된 네트워크(612)를 통해 디렉토리(416)의 파일에 액세스할 수 있다. 리시버/디코더(226)가 네트워크에 액세스 할 수 있도록 개발자의 워크스테이션(620)과 분리된 넷 프록시(610)가 제공된다.
도 10의 장치에 있어서, 리시버/디코더는 이전의 도면을 참조하여 상술한 바와 같이 구성된다. 넷 프록시(610)는 편리하게도 PC 워크스테이션과 같이 하드웨어에서 실행하는 소프트웨어로서 구현될 수 있다. 통상, 개발 워크스테이션은 유닉스 워크스테이션과 같이, 보다 강력한 개발 기계이다. 넷 프록시(610)를 통해, 리시버 /디코더(226)의 실행 환경은 개발자의 워크스테이션(620), 공통 파일 서버(600), 및 다른 지역 또는 원격 개발자의 워크스테이션(도시하지 않음)을 포함하는 네트워크(612)에 연결된 다양한 볼륨의 다수의 디렉토리의 파일을 액세스할 수 있다.
디버거
다시 도 6을 참조하면, 워크스테이션(200)은 리시버/디코더(226)의 런타임 실행 환경에서 코드의 실행을 모니터 및 제어하는 소프트웨어 형태의 디버깅 툴(4 30)을 포함한다. 상술한 국제 특허 공개 번호 WO 98/43165호에 개시된 바와 같이, 개발 워크스테이션에서 실행되는 디버거는 실행 환경에서 실행하는 프로그램의 실행을 제어 및/또는 모니터하기 위해 리시버/디코더(226)의 실행 환경과 제어 메시지를 교환할 수 있다.
본 실시예에 있어서, 디버거가 리시버/디코더(226)에서 실행하는 애플리케이션의 동작을 제어하도록, 제어 메시지가 넷 프록시(418 또는 610)를 통해 네트워크와 리시버/디코더(226)사이에서 실행된다. 원격 디버깅 세션이 초기화되면, 디버거 (430)는 인보케이션 파라미터로서 원격 호스트의 호스트명으로 발생된다. 이것으로 지정된 원격 호스트에 보내지고, 넷 프록시(418 또는 610)를 통해 리시버/디코더 (226)로 데이터 패킷이 전송된다. 데이터 패킷은 디버깅 모드로 들어가도록 지시하는 실행 환경에 대한 명령 신호를 포함하며, 디버깅 제어 신호가 전송되는/전송된 호스트명(일반적으로, 개발자의 워크스테이션의 호스트명)을 더 포함한다. 디버깅 동작동안, 실행 환경은 리시버/디코더의 넷 프록시 및 지역 통신 포트를 통해 제어 신호를 전송 및 수신할 것이다.
디버깅 동작동안, 리시버/디코더에서 실행되는 애플리케이션은 디버거로 전송된 명령에 따라 모니터 및 제어된다. 애플리케이션을 형성하는 클래스 파일은 테스트 동작과 관련하여 상술한 바와 같이, 필요한 만큼 리시버/디코더로 다운로드된다. 업데이트된 파일은 테스트 동작과 관련하여 설명된 모든 방식으로 리시버/디코더로 전송될 수 있다.
다양한 디버깅 동작이 디버거(430)에 의해 실행될 수 있다. 예를 들면, 디버거(430)는 애플리케이션의 변수, 이 목적을 위해 정의되는 모니터되어야 할 변수의 리스트를 모니터할 수 있다. 정의된 변수의 값은 애플리케이션의 실행의 정의된 포인트에서 표시될 수 있으며/있거나 변수의 값은 값의 어떠한 변경에서 (변수명에따라) 표시될 수 있다. 더욱이, 디버거(430)는 리시버/디코더의 변수 값을 수정할 수 있다. 이것은 변수를, 수용할 다른 변수로 설정하는 효과를 거의 즉시 운영자가 볼 수 있는 능력을 제공한다. 이 변수 제어 기능은 (모든 디버거 기능이 명백해 질 수 있는 것과 같이) 물론 디버거에 의하여 명백해질 것이다.
유사하게, 애플리케이션의 실행동안, 모듈, 변수 블럭 장치 파일 및 물체와 같은, 엔티티의 다른 유형이 마주치게 될 때, 디버거(430)는 리시버/디코더가 신호를 보내도록 설정할 수 있다.
디버거(430)는 정지점을 삽입 (및 그것을 삭제)함으로써 애플리케이션의 실행을 제어할 수도 있다. 보다 상세하게는, 실행은 정의된 포인트 및/또는 정의된 서브 루틴사이 또는 전체 애플리케이션에 대해, 중단없이 실행, 정지점 및 정지로 실행, 원할 때 정지점 및 (재시작) 단계에서 실행, 서브루틴 호출 실행 또는 서브루틴에서 복귀, 또는 단계적으로 진행(즉, 운영자에 반응해서만 각 문장에서 스태핑)하게 허용될 수 있다(서브 루틴은 애플리케이션에 의해 호출 또는 실행될 수 있는 문장의 시퀀스인 명령 시퀀스일 수 있다).
디버거(430)는 하나 또는 그 이상의 지정된 루틴 또는 그것의 유형을 연속, 로딩, 복귀 또는 점프, 실행을 시작 또는 종료, 또는 인터럽트와 같은 하나 또는 그 이상의 다양한 동작을 검출 및 신호하는 추적 기능을 동작할 수 있다.
디버거(430)는 애플리케이션의 실행의 원하는 포인트에서 리시버/디코더 및 애플리케이션의 상태를 모니터 및 레포트할 수도 있다. 상태가 모니터 및 레포트될
명령 설명
next 함수에 뒤이으지 않고 코드의 라인의 실행
step 함수에 뒤이어 코드 라인의 실행
cont 프로그램의 정지 포인트 또는 종료까지 실행을 계속
until<라인 번호> 지정된 라인 번호까지 실행을 계속
finish 현재 함수의 종료까지 실행을 계속
break<스트링> 정지점을 삽입
break<string if<조건> 조건부 정지점을 삽입
breakcount<번호><스트링> 카운터로 정지점을 삽입(프로그램은 정지점이 지정된 시간 번호를 통과한 후 정지할 것이다)
breakcount<번호><스트링> if<조건> 카운터로 조건부 정지점을 삽입
delete<정지점 번호> 정지점을 삭제
disable<정지점 번호> 정지점을 비활성화
enable<정지점 번호> 정지점을 활성화
command<정지점 번호> 명령과 정지점을 관련지음
watchexception<예외> 예외 상황이 발생될 때 정지점을 삽입
unwatchexception<워치익셉션 번호> 예외 상황과 관련된 정지점을 삭제
info 정지점의 리스트 및 상태를 표시
print<식> 식의 값을 프린트
set<식1><식2> 식 2의 값을 식 1으로 설정
whatis<식> 식의 유형을 나타냄
inherit<식> 식의 마더 클래스의 리스트를 표시
fields<식> 식의 필드 리스트를 표시
methods<식> 식의 방법 리스트를 표시
dump<포맷><어드레스> <카운트> 메모리 부분의 컨텐츠를 표시
where 현재의 쓰레드의 스택을 표시
up 현재의 프레임을 호출하는 프레임을 선택
down 호출된 프레임을 선택
threads 쓰레드 및 그 메인 속성의 리스트를 표시
getthr 상세화된 쓰레드의 속성 리스트를 표시
monitors 쓰레드의 모니터의 리스트를 표시
getmon 상세화된 모니터의 속성 리스트를 표시
dbginfo 추적 레벨이 정의되는 모듈을 리스트
dbgset 모듈의 추적 레벨을 수정
fs<동작>parameters 파일 시스템으로부터 정보를 얻음
수 있는 요소는 다음과 같다. 메모리 사이즈, 프리 메모리, 버퍼 풀 특성, 시스템 버젼 번호 등; 전체 메모리 또는 그것(예를 들면, RAM, FLASH 및 ROM)의 지정된 부분의 메모리 컨텐츠(메모리 덤프); 장착된 볼륨, 로딩된 모듈(및 현재 모듈), 및 변수 블럭 장치 파일(변수 블럭 장치 파일의 번호, 사용된 메모리, 리스트); 명령 시퀀스 상태(번호, 실행 및/또는 인터럽트된 번호, 사용되는 메모리 등); 및 복귀스택 컨텐츠(즉, 복귀되어야 할 서브루틴의 리스트).
바람직한 실시예에서 사용가능한 디버거 기능의 예가 표1에 나타나 있다.
어떤 상황에 있어서, 하나 이상의 호스트가 리시버/디코더(226)와 통신되어야 하는 것이 바람직하다. 예를 들면, 실행 환경은 실시간으로 디버깅 정보를 네트워크 프린터로 전송하도록 구성될 수 있다.
다른 실시예에 있어서, 네트워크 스택이 리시버/디코더(226)에 제공되며, 상술한 넷 프록시층이 필요 없게 된다.
워크스테이션 및 리시버/디코더가 저작 툴을 참조하여 상술되었다. 그러나, 리시버/디코더 및 워크스테이션은 애플리케이션을 입증하는 것과 같이, 다른 목적에 사용될 수 있다.
본 출원인의 이름으로 출원된 유럽 특허 출원 번호 994017440.0호에 기술된 장치 시뮬레이터가 본 발명과 함께 사용될 수 있다. 그 특허 출원의 내용이 참조로써 본 명세서에 통합된다.
본 발명은 예시로서만 상술되었으며, 세부의 수정이 본 발명의 범위내에서 이루어질 수 있다는 것이 이해될 것이다.
명세서에 개시되거나 청구 범위 및 도면에 나타난 특징들은 독립적으로 또는 적절한 조합으로 제공될 수 있다.
청구 범위에 나타낸 참조 번호는 단지 예시로서 사용되고 청구 범위에 제한을 두고자 한 것은 아니다.

Claims (51)

  1. 애플리케이션을 저장하는 수단과, 저장된 애플리케이션을 실행하는 수단과, 워크스테이션이 상기 저장된 애플리케이션을 디버깅하는데 사용되는 디버깅 메시지를 네트워크를 통해 원격 워크스테이션으로 전송하는 수단을 포함하는 리시버/디코더.
  2. 제 1항에 있어서, 상기 디버깅 메시지를 전송하는 수단은, 상기 디버깅 메시지에 따라 리시버/디코더가 애플리케이션의 실행을 제어하도록 네트워크로부터 상기 디버깅 메시지를 수신하는 것을 특징으로 하는 리시버/디코더.
  3. 제 2항에 있어서, 상기 디버깅 메시지는 원격 호스트의 식별자를 포함하며, 상기 디버깅 메시지를 전송하는 수단은 상기 메시지내에서 식별된 원격 호스트로 또 하나의 디버깅 메시지를 전송하는 것을 특징으로 하는 리시버/디코더.
  4. 상기 청구항중 어느 한 항에 있어서, 상기 디버깅 메시지를 전송하는 수단은 리시버/디코더에서 애플리케이션을 실행하는 것과 관련된 정보를 포함하는 디버깅 메시지를 전송하는 것을 특징으로 하는 리시버/디코더.
  5. 상기 청구항중 어느 한 항에 있어서, 상기 애플리케이션은 다수의 파일을 포함하며, 상기 리시버/디코더는 상기 원격 워크스테이션으로부터의 파일 중 적어도 하나를 선택적으로 판독하는 수단을 포함하는 것을 특징으로 하는 리시버/디코더.
  6. 다수의 파일을 포함하는 애플리케이션을 실행하는 수단과, 외부 저장 수단으로부터의 파일 중 적어도 하나를 선택적으로 판독하는 수단을 포함하는 리시버/디코더.
  7. 제 6항에 있어서, 상기 외부 저장 수단은 원격 워크스테이션의 일부인 것을 특징으로 하는 리시버/디코더.
  8. 제 5항 또는 7항에 있어서, 상기 리시버/디코더는 상기 원격 워크스테이션으로부터의 개별적인 파일을 판독하는 것을 특징으로 하는 리시버/디코더.
  9. 제 8항에 있어서, 상기 리시버/디코더는 상기 원격 스테이션의 시뮬레이션된 네트워크 스택을 자체의 네트워크 스택으로서 사용하는 것을 특징으로 하는 리시버 /디코더.
  10. 제 5항 및 7항 내지 9항중 어느 한 항에 있어서, 상기 리시버/디코더는 상기 원격 워크스테이션으로부터의 부트 파일을 로드하는 것을 특징으로 하는 리시버/디코더.
  11. 제 5항 내지 10항중 어느 한 항에 있어서, 상기 리시버/디코더는 상기 애플리케이션을 실행하기 위해 요구되는 만큼 상기 적어도 하나의 파일을 판독하는 것을 특징으로 하는 리시버/디코더.
  12. 제 5항 내지 11항중 어느 한 항에 있어서, 상기 리시버/디코더는 업데이트된 파일을 판독하는 것을 특징으로 하는 리시버/디코더.
  13. 저장된 애플리케이션을 디버깅하고 원격 리시버/디코더에서 실행하며, 네트워크를 통해 상기 리시버/디코더와 디버깅 메시지를 통신하는 수단을 포함하는 워크스테이션.
  14. 제 13항에 있어서, 리시버/디코더상에서 실행되어야 할 다수의 파일을 포함하는 애플리케이션을 저장하는 저장 수단과, 네트워크에 의해 상기 워크스테이션에 연결된 리시버/디코더에 의해 적어도 하나의 파일을 액세스할 수 있게 하는 수단을 포함하는 것을 특징으로 하는 워크스테이션.
  15. 리시버/디코더상에서 실행되어야 할 다수의 파일을 포함하는 애플리케이션을 저장하는 수단과, 네트워크에 의해 상기 워크스테이션에 연결된 리시버/디코더에 의해 적어도 하나의 파일에 액세스하도록 하는 수단을 포함하는 워크스테이션.
  16. 제 14항 또는 15항에 있어서, 상기 적어도 하나의 파일로의 액세스를 가능케하는 상기 수단은 개별적인 파일이 판독되도록 하는 것을 특징으로 하는 워크스테이션.
  17. 제 14항 내지 17항중 어느 한 항에 있어서, 상기 애플리케이션을 편집하는 수단을 더 포함하는 것을 특징으로 하는 워크스테이션.
  18. 제 1항 내지 12항중 어느 한 항의 리시버/디코더와, 제 13 내지 17항중 어느 한 항의 워크스테이션을 포함하는 애플리케이션 개발 툴.
  19. 제 18항에 있어서, 상기 리시버/디코더와 상기 워크스테이션 사이에서 통신을 실행하는데 작용하는 넷 프록시를 포함하는 것을 특징으로 하는 애플리케이션 개발 툴.
  20. 애플리케이션을 편집하는 워크스테이션과, 상기 애플리케이션을 실행하는 리시버/디코더를 포함하며, 상기 리시버/디코더는 상기 워크스테이션으로부터 상기 애플리케이션의 적어도 일부를 선택적으로 판독하는 수단을 가지고, 상기 워크스테이션은 상기 리시버/디코더로 그 또는 각 부분을 전송하는 수단을 갖는 애플리케이션 개발 툴.
  21. 제 20항에 있어서, 상기 워크스테이션은 상기 애플리케이션을 저장하는 저장 수단을 포함하는 것을 특징으로 하는 애플리케이션 개발 툴.
  22. 제 20항 또는 21항에 있어서, 상기 애플리케이션은 다수의 파일을 포함하는 것을 특징으로 하는 애플리케이션 개발 툴.
  23. 제 22항에 있어서, 상기 리시버/디코더는 상기 저장 수단으로부터의 개별적 파일을 판독하는 것을 특징으로 하는 애플리케이션 개발 툴.
  24. 제 22항 또는 23항에 있어서, 상기 리시버/디코더는 상기 애플리케이션을 실행하기 위해 요구되는 만큼 파일을 판독하는 것을 특징으로 하는 애플리케이션 개발 툴.
  25. 제 22항 내지 24항중 어느 한 항에 있어서, 상기 워크스테이션은 파일을 업데이트하며, 상기 리시버/디코더는 업데이트된 상기 파일을 판독하는 것을 특징으로 하는 애플리케이션 개발 툴.
  26. 제 22 내지 25항중 어느 한 항에 있어서, 상기 리시버/디코더는 파일의 가장 최근 버젼을 판독하는 것을 특징으로 하는 애플리케이션 개발 툴.
  27. 제 22항 내지 26항중 어느 한 항에 있어서, 상기 워크스테이션은 파일을 버리도록 상기 리시버/디코더에 지시하는 것을 특징으로 하는 애플리케이션 개발 툴.
  28. 제 26항 또는 27항의 애플리케이션 개발 툴과, 워크 스테이션과 리시버/디코더가 통신하는 네트워크를 포함하는 애플리케이션 개발 환경.
  29. 저장된 애플리케이션을 디버깅하고 리시버/디코더상에서 실행하는 방법으로서, 상기 방법은 상기 워크스테이션에 의해 상기 저장된 애플리케이션을 디버깅하는데 사용되는 디버깅 메시지를 리시버/디코더에서 네트워크를 통해 원격 워크스테이션으로 전송하는 단계를 포함하는 방법.
  30. 제 29항에 있어서, 상기 디버깅 메시지는 상기 메시지에 따라 상기 애플리케이션의 실행을 제어하기 위해 네트워크를 통해 상기 리시버/디코더에 의해 수신되는 것을 특징으로 하는 방법.
  31. 제 30항에 있어서, 상기 메시지는 원격 호스트의 식별자를 포함하며, 상기 방법은 메시지내에서 식별된 원격 호스트로 또 하나의 디버깅 메시지를 전송하는 단계를 포함하는 것을 특징으로 하는 방법.
  32. 제 29항 내지 31항중 어느 한 항에 있어서, 상기 애플리케이션의 실행과 관련있는 정보를 포함하는 디버깅 메시지를 상기 리시버/디코더로부터 전송하는 단계를 포함하는 것을 특징으로 하는 방법.
  33. 제 29항 내지 32항중 어느 한 항에 있어서, 상기 애플리케이션은 다수의 파일을 포함하며, 상기 방법은 상기 원격 워크스테이션으로부터의 파일중 적어도 하나를 선택적으로 판독하는 단계를 포함하는 것을 특징으로 하는 방법.
  34. 다수의 파일을 포함하는 애플리케이션을 편집하는 워크스테이션에서 상기 애플리케이션을 실행하는 리시버/디코더로 상기 애플리케이션을 전송하며, 상기 워크스테이션에서 상기 리시버/디코더로 개별적인 파일을 전송하는 단계를 포함하는 방법.
  35. 제 34항에 있어서, 상기 애플리케이션의 실행이 필요할 때 파일이 전송되는 것을 특징으로 하는 방법.
  36. 제 34항 또는 35항에 있어서, 파일을 업데이트하는 단계와, 상기 업데이트된 파일을 상기 리시버/디코더로 전송하는 단계를 포함하는 것을 특징으로 하는 방법.
  37. 리시버/디코더에서, 다수의 파일을 포함하는 애플리케이션을 실행하며, 상기애플리케이션을 실행하기 위해 요구되는 만큼 상기 리시버/디코더로 파일을 전송하는 단계를 포함하는 방법.
  38. 부트 파일 및 적어도 하나 더 파일을 포함하는 애플리케이션을 리시버/디코더에서 실행하는 방법으로서,
    상기 리시버/디코더로 부트 파일을 전송하는 단계;
    상기 리시버/디코더의 상기 부트 파일을 실행하는 단계; 및
    요구될 때 상기 적어도 하나 더 파일을 전송하는 단계를 포함하는 방법.
  39. 제 38항에 있어서, 상기 부트 파일중 적어도 하나 또는 상기 적어도 하나 더 파일이 네트워크를 통해 전송되는 것을 특징으로 하는 방법.
  40. 제 39항에 있어서, 상기 부트 파일의 적어도 하나와 상기 적어도 하나 다른 파일이 파일을 저장하는 네트워크로부터 전송되는 것을 특징으로 하는 방법.
  41. 그 내에 저장된, 제 29항 내지 40항중 어느 한 항의 방법을 실행하는 프로그램을 갖는 컴퓨터 판독가능 매체.
  42. 제 29항 내지 40항중 어느 한 항의 방법을 실행하는 프로그램을 포함하는 컴퓨터 프로그램 제품.
  43. 제 29항 내지 40항중 어느 한 항의 방법을 수행하는 컴퓨터 프로그램을 구현하는 신호.
  44. 본 명세서에 기술된 것과 같은 리시버/디코더.
  45. 본 명세서에 기술된 것과 같은 워크스테이션.
  46. 본 명세서에 기술된 것과 같은 애플리케이션 개발 툴.
  47. 본 명세서에 기술된 것과 같은 애플리케이션 개발 환경.
  48. 본 명세서에 기술된 것과 같은 애플리케이션을 디버깅하는 방법.
  49. 본 명세서에 기술된 것과 같이 애플리케이션을 편집하는 워크스테이션에서 상기 애플리케이션을 실행하는 리시버/디코더로 상기 애플리케이션을 전송하는 방법.
  50. 본 명세서에 기술된 것과 같은 리시버/디코더상에서 애플리케이션을 실행하는 방법.
  51. 본 명세서에 기술된 것과 같은 컴퓨터 판독가능 매체, 컴퓨터 프로그램 제품 또는 신호.
KR1020027000148A 1999-07-09 2000-07-05 애플리케이션 실행 및 테스트 KR20020027467A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
EP99401746.5 1999-07-09
EP99401746A EP1067455A1 (en) 1999-07-09 1999-07-09 Running and testing applications
EP00102043A EP1067458A1 (en) 1999-07-09 2000-02-02 Running and testing applications
EP00102043.7 2000-02-02
PCT/IB2000/000995 WO2001004751A2 (en) 1999-07-09 2000-07-05 Running and testing applications

Publications (1)

Publication Number Publication Date
KR20020027467A true KR20020027467A (ko) 2002-04-13

Family

ID=26070490

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020027000148A KR20020027467A (ko) 1999-07-09 2000-07-05 애플리케이션 실행 및 테스트

Country Status (13)

Country Link
EP (2) EP1067458A1 (ko)
JP (1) JP2003504950A (ko)
KR (1) KR20020027467A (ko)
CN (1) CN1372662A (ko)
AU (1) AU5560600A (ko)
CA (1) CA2377486A1 (ko)
CZ (1) CZ200243A3 (ko)
HK (1) HK1044602A1 (ko)
IL (1) IL147382A0 (ko)
NO (1) NO20020023L (ko)
PL (1) PL352186A1 (ko)
TR (1) TR200200009T2 (ko)
WO (1) WO2001004751A2 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011065782A3 (ko) * 2009-11-26 2011-09-09 애니포인트 미디어 그룹 사용자 애플리케이션의 테스트가 가능한 미디어 재생 장치 및 이를 이용한 사용자 애플리케이션의 테스트 방법
WO2011065783A3 (ko) * 2009-11-26 2011-09-15 애니포인트 미디어 그룹 컴퓨팅 장치 및 미디어 재생 장치를 이용한 사용자 애플리케이션 테스트 시스템 및 테스트 방법

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050035970A1 (en) * 1999-08-03 2005-02-17 Wirtschafter Jenny Dana Methods and apparatuses for authoring declarative content for a remote platform
ATE330210T1 (de) * 2002-06-14 2006-07-15 Mettler Toledo Gmbh Objektorientiertes verfahren, system und software für eine gravimetrisches messinstrument
US7162664B2 (en) * 2003-06-20 2007-01-09 Microsoft Corporation Debugging breakpoints on pluggable components
EP1515542A1 (en) * 2003-09-12 2005-03-16 Sony NetServices GmbH Method to provide logging information of an application in a digital broadcast system
US20050096935A1 (en) * 2003-11-03 2005-05-05 Data I/O Corporation Remote development support system and method
CN102253882B (zh) * 2004-12-31 2014-11-26 英特尔公司 远程记录机制
WO2006069491A1 (en) 2004-12-31 2006-07-06 Intel Corporation Remote logging mechanism
US7675854B2 (en) 2006-02-21 2010-03-09 A10 Networks, Inc. System and method for an adaptive TCP SYN cookie with time validation
US8312507B2 (en) 2006-10-17 2012-11-13 A10 Networks, Inc. System and method to apply network traffic policy to an application session
US8584199B1 (en) 2006-10-17 2013-11-12 A10 Networks, Inc. System and method to apply a packet routing policy to an application session
US9960967B2 (en) 2009-10-21 2018-05-01 A10 Networks, Inc. Determining an application delivery server based on geo-location information
KR101084289B1 (ko) * 2009-11-26 2011-11-16 애니포인트 미디어 그룹 미디어 재생 장치에서 실행되는 사용자 애플리케이션을 제공하는 컴퓨팅 장치 및 제공 방법
US9215275B2 (en) 2010-09-30 2015-12-15 A10 Networks, Inc. System and method to balance servers based on server load status
US9609052B2 (en) 2010-12-02 2017-03-28 A10 Networks, Inc. Distributing application traffic to servers based on dynamic service response time
CN102567198B (zh) * 2010-12-30 2014-12-10 中国移动通信集团公司 对应用程序在物理系统环境中进行测试的系统及其方法
US8897154B2 (en) 2011-10-24 2014-11-25 A10 Networks, Inc. Combining stateless and stateful server load balancing
US9386088B2 (en) 2011-11-29 2016-07-05 A10 Networks, Inc. Accelerating service processing using fast path TCP
US9094364B2 (en) 2011-12-23 2015-07-28 A10 Networks, Inc. Methods to manage services over a service gateway
US10044582B2 (en) 2012-01-28 2018-08-07 A10 Networks, Inc. Generating secure name records
CN102595188B (zh) * 2012-02-27 2014-08-20 四川长虹电器股份有限公司 智能电视的测试方法
US8782221B2 (en) 2012-07-05 2014-07-15 A10 Networks, Inc. Method to allocate buffer for TCP proxy session based on dynamic network conditions
CN103748871A (zh) 2012-08-17 2014-04-23 弗莱克斯电子有限责任公司 互动频道浏览与切换
US11368760B2 (en) 2012-08-17 2022-06-21 Flextronics Ap, Llc Applications generating statistics for user behavior
US20160119675A1 (en) 2012-09-06 2016-04-28 Flextronics Ap, Llc Programming user behavior reporting
US10021174B2 (en) 2012-09-25 2018-07-10 A10 Networks, Inc. Distributing service sessions
CN108027805B (zh) 2012-09-25 2021-12-21 A10网络股份有限公司 数据网络中的负载分发
US10002141B2 (en) 2012-09-25 2018-06-19 A10 Networks, Inc. Distributed database in software driven networks
US9843484B2 (en) 2012-09-25 2017-12-12 A10 Networks, Inc. Graceful scaling in software driven networks
US9338225B2 (en) 2012-12-06 2016-05-10 A10 Networks, Inc. Forwarding policies on a virtual service network
WO2014092812A1 (en) * 2012-12-13 2014-06-19 Flextronics Ap, Llc Report database intelligent television
US9531846B2 (en) 2013-01-23 2016-12-27 A10 Networks, Inc. Reducing buffer usage for TCP proxy session based on delayed acknowledgement
US9900252B2 (en) 2013-03-08 2018-02-20 A10 Networks, Inc. Application delivery controller and global server load balancer
US9992107B2 (en) 2013-03-15 2018-06-05 A10 Networks, Inc. Processing data packets using a policy based network path
US10027761B2 (en) 2013-05-03 2018-07-17 A10 Networks, Inc. Facilitating a secure 3 party network session by a network device
WO2014179753A2 (en) 2013-05-03 2014-11-06 A10 Networks, Inc. Facilitating secure network traffic by an application delivery controller
US10230770B2 (en) 2013-12-02 2019-03-12 A10 Networks, Inc. Network proxy layer for policy-based application proxies
US10020979B1 (en) 2014-03-25 2018-07-10 A10 Networks, Inc. Allocating resources in multi-core computing environments
US9942152B2 (en) 2014-03-25 2018-04-10 A10 Networks, Inc. Forwarding data packets using a service-based forwarding policy
US9942162B2 (en) 2014-03-31 2018-04-10 A10 Networks, Inc. Active application response delay time
US9806943B2 (en) 2014-04-24 2017-10-31 A10 Networks, Inc. Enabling planned upgrade/downgrade of network devices without impacting network sessions
US9906422B2 (en) 2014-05-16 2018-02-27 A10 Networks, Inc. Distributed system to determine a server's health
US10129122B2 (en) 2014-06-03 2018-11-13 A10 Networks, Inc. User defined objects for network devices
US9992229B2 (en) 2014-06-03 2018-06-05 A10 Networks, Inc. Programming a data network device using user defined scripts with licenses
US9986061B2 (en) 2014-06-03 2018-05-29 A10 Networks, Inc. Programming a data network device using user defined scripts
CN104299490A (zh) * 2014-09-15 2015-01-21 肇庆智力科技发展有限公司 一种智能拼装电子积木
US10581976B2 (en) 2015-08-12 2020-03-03 A10 Networks, Inc. Transmission control of protocol state exchange for dynamic stateful service insertion
US10243791B2 (en) 2015-08-13 2019-03-26 A10 Networks, Inc. Automated adjustment of subscriber policies
US10318288B2 (en) 2016-01-13 2019-06-11 A10 Networks, Inc. System and method to process a chain of network applications
US10389835B2 (en) 2017-01-10 2019-08-20 A10 Networks, Inc. Application aware systems and methods to process user loadable network applications
CN107040777A (zh) * 2017-06-08 2017-08-11 深圳市创维软件有限公司 一种远程调试方法、机顶盒和服务器

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5635979A (en) * 1994-05-27 1997-06-03 Bell Atlantic Dynamically programmable digital entertainment terminal using downloaded software to control broadband data operations
US5615331A (en) * 1994-06-23 1997-03-25 Phoenix Technologies Ltd. System and method for debugging a computing system
US5940074A (en) * 1996-06-03 1999-08-17 Webtv Networks, Inc. Remote upgrade of software over a network
US5983017A (en) * 1996-11-12 1999-11-09 Lsi Logic Corporation Virtual monitor debugging method and apparatus
US6618854B1 (en) * 1997-02-18 2003-09-09 Advanced Micro Devices, Inc. Remotely accessible integrated debug environment

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011065782A3 (ko) * 2009-11-26 2011-09-09 애니포인트 미디어 그룹 사용자 애플리케이션의 테스트가 가능한 미디어 재생 장치 및 이를 이용한 사용자 애플리케이션의 테스트 방법
WO2011065783A3 (ko) * 2009-11-26 2011-09-15 애니포인트 미디어 그룹 컴퓨팅 장치 및 미디어 재생 장치를 이용한 사용자 애플리케이션 테스트 시스템 및 테스트 방법
KR101104166B1 (ko) * 2009-11-26 2012-01-12 애니포인트 미디어 그룹 컴퓨팅 장치 및 미디어 재생 장치를 이용한 사용자 애플리케이션 테스트 시스템 및 테스트 방법
KR101104165B1 (ko) * 2009-11-26 2012-01-13 애니포인트 미디어 그룹 사용자 애플리케이션의 테스트가 가능한 미디어 재생 장치 및 이를 이용한 사용자 애플리케이션의 테스트 방법
US9189368B2 (en) 2009-11-26 2015-11-17 Sk Planet Co., Ltd. System and method for testing a user application using a computing apparatus and a media playback apparatus

Also Published As

Publication number Publication date
NO20020023D0 (no) 2002-01-03
EP1194847A2 (en) 2002-04-10
CN1372662A (zh) 2002-10-02
JP2003504950A (ja) 2003-02-04
HK1044602A1 (zh) 2002-10-25
NO20020023L (no) 2002-03-11
PL352186A1 (en) 2003-08-11
CZ200243A3 (cs) 2002-05-15
EP1067458A1 (en) 2001-01-10
CA2377486A1 (en) 2001-01-18
WO2001004751A2 (en) 2001-01-18
IL147382A0 (en) 2002-08-14
AU5560600A (en) 2001-01-30
TR200200009T2 (tr) 2002-06-21
WO2001004751A3 (en) 2001-12-06

Similar Documents

Publication Publication Date Title
KR20020027467A (ko) 애플리케이션 실행 및 테스트
KR100632363B1 (ko) 디지털 디코더에서 애플리케이션의 다운로딩
JP4201975B2 (ja) デジタルトランスポートストリーム処理
US20020184643A1 (en) Tansmission of a command to a receiver or to a decoder
CA2341248C (en) Application data table for a multiservice digital transmission system
US7167820B2 (en) Apparatus for and method of testing applications
US6360195B1 (en) Television or radio control system development
AU742956B2 (en) Television or radio control system development
JP4549532B2 (ja) レシーバ/デコーダおよびビデオデータの処理方法
EP1067806A1 (en) Apparatus for and method of testing applications
JP4303884B2 (ja) モデム制御
AU742213B2 (en) Access control system
EP1067455A1 (en) Running and testing applications
KR20000076403A (ko) 텔레비젼 또는 라디오 제어 시스템 전개
CZ20001579A3 (cs) Způsob zavádění proveditelných aplikací do dekodéru, dekodér a paměťová karta
MXPA01003050A (en) Application data table for a multiservice digital transmission system
MXPA00000833A (en) Digital transport stream processing

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid