KR100425681B1 - Apparatus and method for carrying out api of dsm-cc based device - Google Patents
Apparatus and method for carrying out api of dsm-cc based device Download PDFInfo
- Publication number
- KR100425681B1 KR100425681B1 KR10-2001-0044226A KR20010044226A KR100425681B1 KR 100425681 B1 KR100425681 B1 KR 100425681B1 KR 20010044226 A KR20010044226 A KR 20010044226A KR 100425681 B1 KR100425681 B1 KR 100425681B1
- Authority
- KR
- South Korea
- Prior art keywords
- directory
- dsm
- name
- resolver
- file
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/643—Communication protocols
- H04N21/6433—Digital Storage Media - Command and Control Protocol [DSM-CC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
- H04N21/4431—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB characterized by the use of Application Program Interface [API] libraries
Abstract
본 발명은 디에스엠-씨씨 기반 장치의 에이피아이 구현 장치 및 방법에 관한 것으로, 애플리케이션(Application) 태스크로부터 전달받은 경로명 스트링(String)을 분석해서, 경로명의 길이(Depth) 및 디렉토리, 파일명을 스트링 형식으로 저장하는 파저와; 현재 처리(resolve) 중인 디렉토리의 하위 리스트에 있는 디렉토리와 파일명 중에서, 상기 파저에서 분석한 디렉토리나 파일명과 동일한 것을 찾아, 모듈 메니저에서 실제 객체가 저장된 위치를 전달받는 리졸버(resolver)와; 상기 리졸버가 가리키는 위치 정보를 바탕으로, 필요로 하는 객체를 디에스엠-씨씨(DSM-CC) 객체가 저장되어 있는 객체 저장부(Module List Cache)로부터 찾아 전달하는 모듈 메니저와; 상기 리졸버의 동작 중 객체가 존재하지 않는 등의 예외 상황이 발생할 경우 예외 처리를 담당하는 예외 처리부로 구성하여, "Application" 태스크와 "DSM-CC API" 태스크간의 파일 데이터 전송이 단 한 번에 이루어지도록 단축하므로서, 동작 속도를 증가시키고 메모리 사용량 및 시스템에 걸리는 부하를 감소시키는 효과가 있다.The present invention relates to an APIA implementation device and a method of a DSM-CC-based device, and analyzes a path name string received from an application task, and analyzes the path name length, directory, and file name in a string format. A parser for storing as; A resolver that finds the same directory or file name as that parsed by the parser among the directories and file names in the sub-list of the directory currently being resolved, and receives a location where the actual object is stored in the module manager; A module manager for searching for and transferring a required object from a module list cache in which a DSM-CC object is stored, based on the location information indicated by the resolver; When an exception occurs such that no object exists during the operation of the resolver, the exception processing unit is configured to handle exceptions, and file data transfer between the "Application" task and the "DSM-CC API" task is performed at once. By shortening the speed, it increases the speed of operation and reduces the memory usage and the load on the system.
Description
본 발명은 디지털 티브이 등의 디에스엠-씨씨(DSM-CC : Data Storage Media Command Control) 기반 장치에서 데이터를 수신하기 위해 이용하는 DSM-CC API(Application Programming Interface)에 관한 것으로, 특히 서비스 속도를 개선하기 위한 디에스엠-씨씨(DSM-CC) 기반 장치의 에이피아이(API) 구현 장치 및 방법에 관한 것이다.The present invention relates to a DSM-CC application programming interface (API) used for receiving data from a DSM-CC (Data Storage Media Command Control) -based device such as a digital TV. The present invention relates to an API implementation apparatus and method of a DSM-CC based device.
최근 미국, 일본, 영국 등 전 세계적으로 기존의 아날로그 티브이에서 디지털 티브이로의 전환이 이루어지고 있다.Recently, the transition from the existing analog TVs to digital TVs in the United States, Japan, and the United Kingdom has been made.
디지털 티브이는 신호의 디지털화를 바탕으로 하여 고화질의 영상, 음성을 제공하며, 이 외에도 뉴스, TV 프로그램 안내, 날씨, 게임 등 다양한 데이터 서비스가 가능하다는 특징이 있다.Digital TVs provide high quality video and audio based on the digitization of signals, and in addition, various data services such as news, TV program guide, weather, and games are available.
이러한 데이터 서비스를 제공하기 위하여 디지털 티브이에서는 DSM-CC(Data Storage Media Command Control) 규약(Protocol)을 사용한다.To provide such data services, digital TVs use the Data Storage Media Command Control (DSM-CC) protocol.
이 프로토콜(DSM-CC)은 코바(CORBA)를 기반으로 하여 플랫폼에 구애받지 않고, 같은 API(Application Programming Interface)를 사용하여 로컬, 네트워크, 심지어 지상파나 위성 등을 이용한, 방송에 의한 데이터 전송에 대해서도 사용자가 동일한 API를 이용한 접근이 가능하도록 해 준다는 특징이 있다.This protocol (DSM-CC) is based on CORBA, regardless of platform, and uses the same API (Application Programming Interface) to transmit data by broadcasting using local, network, even terrestrial or satellite. It also features that it allows users to access using the same API.
여기서, DSM-CC(Digital Storage Media-Command and Control)는 MPEG-1 및MPEG-2 비트 스트림을 다루기 위한 제어 기능 및 함수를 정의하고 있는 프로토콜로서, 일반 응용 프로그램, MHEG(Multimedia and Hypermedia Information coding Expert Group) 응용 프로그램 및 스크립트 응용 프로그램 등이 스트림 및 데이터에 접근할 수 있도록 한다.Here, DSM-CC (Digital Storage Media-Command and Control) is a protocol that defines the control functions and functions for handling MPEG-1 and MPEG-2 bit streams, and is a general application, Multimedia and Hypermedia Information coding Expert Group) Allows applications and script applications to access streams and data.
다음, 응용 프로그래밍 인터페이스(API)란, 각기 다른 응용프로그램에서 생성된 어떤 데이터를 다른 어떤 한 응용프로그램이 이용할 수 있도록 만든 정해진 규칙들의 집합으로서 대표적인 규격으로는 OLE, CORBA, Plug-in 등이 있다.Next, an application programming interface (API) is a set of rules that make certain data generated by different applications available to one application. The representative standards include OLE, CORBA, and Plug-in.
현재 유럽에서는 이미 상기 프로토콜(DSM-CC)을 이용한 데이터 방송이 이루어지고 있으며, 티브이 상에 구현되어 있는 MHEG 엔진 등의 애플러케이션(Application)에서 사용되는 파일뿐만 아니라, 자바(Java)를 이용하여 애플러케이션(Application) 자체를 전송하는 서비스도 준비중에 있다.At present, data broadcasting using the protocol (DSM-CC) has already been carried out in Europe, and using Java as well as files used in applications such as the MHEG engine implemented on TV. A service that sends the application itself is also in preparation.
도1은 종래의 "DSM-CC API" 태스크와 "Application" 태스크간의 인터페이스를 보인 예시도이다.1 is an exemplary view showing an interface between a conventional "DSM-CC API" task and an "Application" task.
이에 도시된 바와 같이, "DSM://Dir1/a.mhg"라는 경로명으로 나타내어지는 하나의 파일 객체를 얻기 위해서는 먼저, "GetName() API"를 이용하여 "DSM://"로 나타내어지는 서비스 게이트웨이(Service Gateway) 객체(pSRG)를 얻는다(S11).As shown in this figure, in order to obtain a file object represented by a path name of "DSM: //Dir1/a.mhg", a service represented by "DSM: //" using "GetName () API" is first used. Obtain a gateway (Service Gateway) object (pSRG) (S11).
여기서, 상기 "DSM://"는 도스(DOS) 환경에서 "C://" 또는 "D://"와 같은, DSM-CC에 기반한 일종의 루트 디렉토리(root directory) 이고, 그 이하는 서브 디렉토리가 되는 것이다.Here, "DSM: //" is a kind of root directory based on DSM-CC, such as "C: //" or "D: //" in a DOS environment, and the sub It will be a directory.
다음, 경로명을 분석하여 "Dir1"이라는 디렉토리(Directory) 객체의이름(Name)을 얻은 후(S12), 그 이름으로부터 서비스 게이트웨이의 "resolve() API"를 이용하여 상기 "Dir1"에 해당하는 디렉토리 객체(pDir1)를 얻는다(S13).Next, after analyzing the path name to obtain the name of the directory object "Dir1" (S12), the directory corresponding to "Dir1" using the "resolve () API" of the service gateway from the name. The object pDir1 is obtained (S13).
다음, 마찬가지 방법으로 경로명을 분석하여 "a.mhg"라는 파일(File) 객체의 이름을 얻고(S14), 그 이름으로부터 디렉토리의 "resolve() API"를 이용하여 "a.mhg"에 해당하는 파일 객체(pFile)를 얻는다(S15),Next, the path name is analyzed in the same manner to obtain the name of the file object "a.mhg" (S14), and from that name, the "resolve () API" of the directory corresponds to "a.mhg". Obtain a file object (pFile) (S15),
다음, 상기 파일의 "_get_Content() API"를 이용하여 실제 파일의 내용(pContent)을 얻고(S16), 그 내용(pContent)을 내부 처리 과정을 거쳐 디스플레이 하는 것이다(S17).Next, the content (pContent) of the actual file is obtained using the "_get_Content () API" of the file (S16), and the content (pContent) is displayed through internal processing (S17).
도2는 종래 "DSM-CC API"의 구성을 보인 블록도이다.2 is a block diagram showing the configuration of a conventional "DSM-CC API".
이에 도시된 바와 같이, 리졸버(Resolver)(2)는 "Application"(1)에서 요청한 디렉토리나 파일명과 동일한 것을 찾아, 실제 객체가 저장된 위치를 모듈 메니저(Module Manager)(3)에 요청하여 전달받는다.As shown therein, the resolver 2 finds the same directory or file name as requested by the "Application" 1 and requests the module manager 3 to receive the location where the actual object is stored. .
모듈 메니저(Module Manager)(3)는 리졸버(resolver)(1)가 가리키는 위치 정보를 바탕으로, 여러 객체가 저장된 객체 저장부(Module List Cache)(4)에서 리졸버(2)가 필요로 하는 객체를 전달한다.The module manager (3) is based on the location information pointed to by the resolver (1), the object needed by the resolver (2) in the object list cache (4) that stores several objects To pass.
여기서, 상기 객체 저장부(Module List Cache)(4)는 DSM-CC 객체를 저장하는 수단이다.The object list cache 4 is a means for storing the DSM-CC object.
다음, 도3은 상기 도2에서 리졸버(2)의 동작 과정을 보인 순서도이다.Next, FIG. 3 is a flowchart illustrating an operation of the resolver 2 in FIG.
이에 도시된 바와 같이, 리졸버(2)는 'Application"에서 요청하는 디렉토리 객체(pDir) 및 그 하위 객체에 해당하는 경로명(Path)을 전달받아 이를 처리하기위한 초기화를 수행한다(S21).As shown therein, the resolver 2 receives a directory object (pDir) requested by the 'Application' and a path name (Path) corresponding to the sub-object thereof and performs initialization to process it (S21).
이때, 경로명(Path)은 '/'로 구분된 다중 경로가 아니라, 디렉토리 내에 있는 단일 객체에 대한 경로이다.In this case, the path name is not a multipath separated by '/', but a path to a single object in the directory.
다음, 해당 경로(Path)의 IOR(Inter-Operable Reference : 경로가 전달되는 실제 모듈의 위치)을 탐색한다(S22).Next, an IOR (Inter-Operable Reference: location of an actual module to which a path is delivered) of the corresponding path is searched (S22).
이에 따라, 상기 탐색된 IOR로부터 실제 모듈을 탐색한다(S24).Accordingly, the actual module is searched from the searched IOR (S24).
여기서, 모듈은 일정 경로(디지털 티브이의 경우, 방송 전파)를 통해 "DSM-CC API"로 전달되는 일종의 데이터 패킷으로서, 하나 또는 여러개의 객체(Object)로 이루어져 있으며, 하드웨어에 의존한 레벨에서 수신, 조합된다.Here, the module is a kind of data packet transmitted to the "DSM-CC API" through a certain path (in the case of digital TV, broadcast propagation), and is composed of one or several objects and is received at a hardware dependent level. , Are combined.
다음, 실제 모듈 중에서 IOR을 바탕으로 찾고자 하는 객체(Object)를 탐색한다(S26).Next, the object to be searched is searched based on the IOR among the actual modules (S26).
그 결과, 객체가 있을 경우에는 그 객체를 'Application"에 리턴 해 주고(S28), 객체가 없을 경우에는 "null"값을 리턴 해 준다(S29).As a result, if there is an object, the object is returned to 'Application' (S28), and if there is no object, "null" is returned (S29).
물론, 상기 IOR 탐색이나 모듈 탐색 과정에서 IOR이나 모듈의 탐색 결과가 나오지 않을 경우(S23, S25)에는, 역시 "null" 값을 리턴 해 준다(S29)Of course, if the search result of the IOR or module does not come out during the IOR search or the module search process (S23, S25), it also returns a "null" value (S29).
그러나, 상기와 같은 구조는 "Application"이 실제 파일을 이용하여 수행해야 하는 여러 작업을 할 때마다, 두 태스크(DSM-CC API, Application)간에 여러 번 데이터 전송이 이루어져야 하므로, 처리 속도를 저하시키게 된다.However, the above structure reduces the processing speed since data must be transmitted several times between two tasks (DSM-CC API, Application) whenever "Application" performs a number of tasks that need to be performed using actual files. do.
또한, 여러 가지의 API 에 해당하는 코드를 작성하여야 하므로 코드 크기가 증가되며, 디렉토리와 파일 등 여러 개의 객체를 반드시 생성해 주어야 하므로 필요한 메모리의 양이 증가하게 되는 문제점이 있다.In addition, since the code corresponding to various APIs must be written, the code size is increased, and since a number of objects such as directories and files must be created, the amount of memory required is increased.
따라서, 본 발명은 상기와 같은 종래의 문제점을 해결하기 위하여 창출한 것으로, "DSM-CC" 기반의 장치 및 "Application"에서 "Application" 태스크와 "DSM-CC API" 태스크간의 파일 데이터 전송이 단 한 번에 이루어지도록 단축하므로서, 동작 속도를 증가시키고 메모리 사용량 및 시스템에 걸리는 부하를 감소시키는 효과와, 디지털 티브이의 MHEG 엔진 등 "DSM-CC" 기반의 장치 및 "Application"에 적용하여 설계의 효율성 및 동작 성능을 향상시킬 수 있도록 하기 위한 디에스엠-씨씨(DSM-CC) 기반 장치의 에이피아이(API) 구현 장치 및 방법을 제공함에 그 목적이 있다.Accordingly, the present invention has been created to solve the above-mentioned conventional problems, and the file data transfer between the "Application" task and the "DSM-CC API" task in the "DSM-CC" based device and the "Application" is short. Reduced to one time, increases the operation speed, reduces the memory usage and the load on the system, and design efficiency by applying to "DSM-CC" based devices and applications, such as the digital TV MHEG engine And an apparatus and method for implementing APIs of a DSM-CC based device for improving operation performance.
도 1은 종래의 "DSM-CC API" 태스크와 "Application" 태스크간의 인터페이스를 보인 예시도.1 is an exemplary view showing an interface between a conventional "DSM-CC API" task and an "Application" task.
도 2는 종래 'DSM-CC API'의 구성을 보인 블록도.Figure 2 is a block diagram showing the configuration of a conventional 'DSM-CC API'.
도 3은 상기 도2에서 리졸버의 동작 과정을 보인 순서도.3 is a flowchart illustrating an operation of a resolver in FIG. 2.
도 4는 본 발명에 의한 "DSM-CC API"를 이용할 경우, "Applicaton"과 "DSM-CC API" 태스크간의 인터페이스를 보인 예시도.4 is an exemplary view showing an interface between an "Applicaton" and a "DSM-CC API" task when using the "DSM-CC API" according to the present invention.
도 5는 본 발명에 의한 "DSM-CC API"를 구현하기 위한 기능 블록도.5 is a functional block diagram for implementing the "DSM-CC API" according to the present invention.
도 6은 상기 도5의 구성에 있어서, 파저의 동작을 보인 순서도.FIG. 6 is a flowchart showing the operation of the fuser in the configuration of FIG. 5; FIG.
도 7은 상기 도5의 구성에 있어서, 리졸버의 동작을 보인 순서도.7 is a flowchart showing the operation of the resolver in the configuration of FIG.
도 8은 상기 도5의 구성에 있어서, 예외 처리부의 동작을 보인 순서도.FIG. 8 is a flowchart showing an operation of an exception processing unit in the configuration of FIG. 5. FIG.
*** 도면의 주요 부분에 대한 부호의 설명 ****** Explanation of symbols for the main parts of the drawing ***
10 : 파저 20 : 리졸버10: parser 20: resolver
30 : 예외 처리부30: exception handling unit
이와 같은 목적을 달성하기 위한 본 발명은, 애플리케이션(Application) 태스크로부터 전달받은 경로명 스트링(String)을 분석해서, 경로명의 길이(Depth) 및 디렉토리, 파일명을 스트링 형식으로 저장하는 파저와; 현재 처리(resolve) 중인 디렉토리의 하위 리스트에 있는 디렉토리와 파일명 중에서, 상기 파저에서 분석한 디렉토리나 파일명과 동일한 것을 찾아, 모듈 메니저에서 실제 객체가 저장된 위치를 전달받는 리졸버(resolver)와; 상기 리졸버가 가리키는 위치 정보를 바탕으로, 필요로 하는 객체를 디에스엠-씨씨(DSM-CC) 객체가 저장되어 있는 객체 저장부(Module List Cache)로부터 찾아 전달하는 모듈 메니저와; 상기 리졸버의 동작 중 객체가 존재하지 않는 등의 예외 상황이 발생할 경우 예외 처리를 담당하는 예외 처리부로 구성한 것을 특징으로 한다.The present invention for achieving the above object, the parser for analyzing the path name string (String) received from the Application task, and stores the length (Depth) and directory, file name of the path name in the form of a string; A resolver that finds the same directory or file name as that parsed by the parser among the directories and file names in the sub-list of the directory currently being resolved, and receives a location where the actual object is stored in the module manager; A module manager for searching for and transferring a required object from a module list cache in which a DSM-CC object is stored, based on the location information indicated by the resolver; When an exception occurs, such as an object does not exist during the operation of the resolver, it is characterized by comprising an exception processing unit in charge of exception processing.
이하, 본 발명에 따른 일실시예를 첨부한 도면을 참조하여 상세히 설명하면다음과 같다.Hereinafter, an embodiment according to the present invention will be described in detail with reference to the accompanying drawings.
먼저, 도4는 본 발명에 의한 "DSM-CC API"를 이용할 경우, "Applicaton" 태스크와 "DSM-CC API" 태스크간의 인터페이스를 보인 예시도이다.First, Figure 4 is an exemplary view showing the interface between the "Applicaton" task and the "DSM-CC API" task when using the "DSM-CC API" according to the present invention.
이에 도시한 바와 같이 "Applicaton" 태스크는 "FilePath"로 표시된 스트링(String)을 "DSM-CC API" 태스크에 전달하고, "DSM-CC API" 태스크에서는 도1에 도시된 바와 같은 종래의 "GetName()", "resolve()", "_get_Content()" API 에 해당하는 동작을 자체에서 내부적으로 반복 수행한 후, 최종 결과인 파일 객체(pFile)의 내용을 "Application" 태스크에 전달하는 것이다.As shown in this figure, the "Applicaton" task passes a string represented by "FilePath" to the "DSM-CC API" task, and in the "DSM-CC API" task, the conventional "GetName" as shown in FIG. () "," resolve () "," _get_Content () "Iteratively repeats the operations in itself, and delivers the final result of the file object (pFile) to the" Application "task.
이에 따라, 두 태스크(DSM-CC API, Application)간에는 단 한번의 인터페이스 전송이 이루어져 처리 속도가 향상되고, 또한 여러 가지의 API 에 해당하는 코드 및 디렉토리와 파일 등의 여러 객체를 생성할 필요가 없게되어 필요한 메모리의 양도 감소하게 된다.As a result, only one interface transfer is performed between two tasks (DSM-CC API, Application), thereby improving processing speed and eliminating the need to create various objects such as code, directories, and files corresponding to various APIs. This reduces the amount of memory required.
그럼, 상기와 같이 두 태스크(DSM-CC API, Application)간에 단 한번의 데이터 전송이 이루어지도록 하기 위한 방법을 도5 내지 도8을 참조하여 설명하기로 한다.Then, a method for only one data transmission between two tasks (DSM-CC API, Application) as described above will be described with reference to FIGS.
도5는 본 발명에 의한 "DSM-CC API"를 구현하기 위한 기능 블록도이다.5 is a functional block diagram for implementing the "DSM-CC API" according to the present invention.
여기서, "Application"(1)은 MHEG 등 "DSM-CC API"를 사용하는 임의의 태스크를 나타내며, 파저(Parser)(10)는 상기 "Application" 태스크로부터 전달받은 경로명 스트링(String)을 분석해서, 경로명의 길이(Depth)가 얼마나 되는지를 카운터에 저장하고, 각 디렉토리와 파일명을 스트링 형식으로 저장한다.Here, "Application" 1 represents an arbitrary task using "DSM-CC API" such as MHEG, and Parser 10 analyzes the path name string received from the "Application" task. The counter stores how long the path name depth is, and stores each directory and file name in string format.
다음, 리졸버(Resolver)(20)는 "resolve() API"의 기능을 수행하는 부분으로, 현재 처리(resolve) 중인 디렉토리의 하위 리스트에 있는 디렉토리와 파일명 중에서, 파저(10)에서 분석한 디렉토리나 파일명과 동일한 것을 찾아, 실제 객체가 저장된 위치를 모듈 메니저(Module Manager)(3)에 요청하여 전달받는다.Next, the resolver 20 performs a function of the "resolve () API". Among the directories and file names in the sub-list of the directory currently being resolved, the resolver 20 or the directory analyzed by the parser 10 It finds the same name as the file name and requests the module manager 3 to receive the location where the actual object is stored.
다음, 모듈 메니저(Module Manager)(3)는 리졸버(resolver)(20)가 가리키는 위치 정보를 바탕으로, 여러 DSM-CC 객체가 저장된 객체 저장부(Module List Cache)(4)에서 리졸버(20)가 필요로 하는 객체를 전달한다.Next, the module manager 3 determines the resolver 20 in the module list cache 4 in which several DSM-CC objects are stored, based on the location information indicated by the resolver 20. Pass in the object that is needed.
다음, 객체 저장부(Module List Cache)(4)는 DSM-CC 객체를 저장하는 역할을 하며, 예외 처리부(Exception Handler)(30)는 리졸버(20)의 동작 중 객체가 존재하지 않는 등의 예외 상황이 발생할 경우 예외 처리를 담당한다.Next, the object list cache 4 serves to store the DSM-CC object, and the exception handler 30 exceptions such that no object exists during the operation of the resolver 20. It takes care of exception handling when a situation occurs.
가령, "Application" 태스크에서 "DSM://Dir1/Dir2/File"의 경로명에 해당하는 파일을 요청하는 경우, 본 발명에 의한 "DSM-CC API"의 동작 과정을 살펴보기로 한다.For example, when a file corresponding to a path name of "DSM: // Dir1 / Dir2 / File" is requested by the "Application" task, the operation of the "DSM-CC API" according to the present invention will be described.
먼저, "Application" 태스크는 필요로 하는 객체의 경로명("DSM://Dir1/Dir2/File1")을 스트링 형태로 "DSM-CC API" 에 전달한다.First, the "Application" task passes the path name ("DSM: // Dir1 / Dir2 / File1") of the required object to the "DSM-CC API" as a string.
그러면, 파저(10)는 상기 스트링을 분석하여 경로명의 길이(Depth)가 얼마나 되는지를 카운터(미도시)에 저장하고, 각 디렉토리(Dir1, Dir2)와 파일명(File1)을 스트링 형식으로 저장한다.Then, the parser 10 analyzes the string and stores how long the length of the path name Depth is in a counter (not shown), and stores each directory Dir1 and Dir2 and the file name File1 in a string format.
이 경우 카운터에는 3이 저장되며, "Dir1", "Dir2", "File1"이 따로 스트링으로 저장된다.In this case, 3 is stored in the counter, and "Dir1", "Dir2", and "File1" are stored separately as strings.
다음, 리졸버(20)는 일반 파일 시스템의 루트 디렉토리에 해당하는 서비스 게이트웨이를 모듈 메니저(3)에 요청한다. 이는 "DSM-CC API"의 "GetName() API"에 해당한다.Next, the resolver 20 requests the module manager 3 for a service gateway corresponding to the root directory of the general file system. This corresponds to "GetName () API" of "DSM-CC API".
이에 따라, 모듈 메니저(3)는 객체 저장부(4)에 저장되어 있는 모듈 리스트 중에서 서비스 게이트웨이에 해당하는 객체를 찾아 리졸버(20)에 전달한다.Accordingly, the module manager 3 finds an object corresponding to the service gateway from the module list stored in the object storage unit 4 and delivers the object to the resolver 20.
그러면, 리졸버(20)는 서비스 게이트웨이의 바인딩 리스트(Binding List : 하위 디렉토리나 파일명과의 실제 위치를 묶은 리스트)를 탐색하여 순서에 따라 "Dir1"의 이름을 가진 바인딩의 실제 위치를 찾고, 그 해당 위치를 모듈 메니저(3)에 전달하여 객체를 요청한다.Then, the resolver 20 searches the binding list of the service gateway (Binding List: a list of subdirectories or file names with their actual locations), and finds the actual location of the binding with the name "Dir1" in order. Request the object by passing the location to the module manager (3).
이에 따라, 모듈 메니저(3)는 객체 저장부(4)에서 "Dir1"에 해당하는 객체를 찾아 리졸버(20)에 전달한다.Accordingly, the module manager 3 finds an object corresponding to "Dir1" in the object storage unit 4 and delivers the object to the resolver 20.
이하는 마찬가지 방식으로 디렉토리("Dir2")와 파일("File1")에 해당하는 객체를 찾고, 파일("File1")에 해당하는 객체를 찾으면 리졸버(20)는 파일 객체의 내용을 "Application"(1)에 전달하는 것이다.In the same way, if the object corresponding to the directory ("Dir2") and the file ("File1") is found, and the object corresponding to the file ("File1") is found, the resolver 20 reads the contents of the file object as "Application". (1) to pass.
그런데, 상기 동작 중에 일치하는 바인딩이 존재하지 않거나 실제 위치에 객체가 존재하지 않는 경우, 그에 해당하는 정보가 예외 처리부(30)에 전달되며, 그에 따라 예외 처리부(30)에서는 각각의 경우에 맞는 에러 코드를 "Application"(1)에 전달한다.However, when there is no matching binding or no object exists at the actual location during the operation, the corresponding information is transmitted to the exception processing unit 30, and accordingly the exception processing unit 30 receives an error for each case. Pass the code to "Application" (1).
이때, 모듈 메니저(3) 및 객체 저장부(4)는 그 기능에 있어서, 종래의 동작과 큰 차이가 없다.At this time, the module manager 3 and the object storage unit 4 are not significantly different from the conventional operation in their functions.
따라서, 본 발명에서는 새로 추가되거나 그 기능이 확장된 기능 블록의 동작에 대해서 도6 내지 도8을 참조하여 보다 상세히 설명하기로 한다.Therefore, in the present invention, the operation of a newly added or expanded function block will be described in more detail with reference to FIGS. 6 to 8.
먼저, 도6은 본 발명에 의한 파저(10)의 동작 순서도로서, 초기화 과정이 완료된 후(S31), "Application" 태스크에서 수신된 경로명('/'로 구분된 전체 경로명)으로부터(S32) "strstr()" 함수를 사용하여 '/'로 구분되는 각각의 경로를 분석한다.(S33).First, Figure 6 is a flow chart of the operation of the parser 10 according to the present invention, after the initialization process is completed (S31), from the path name (full path name separated by '/') received in the "Application" task (S32) " Analyzes each path separated by '/' using strstr () "function (S33).
다음, "Strcpy()" 함수를 사용하여 상기 구분된 위치까지의 스트링을 분리하여 개별 경로명에 저장한다(S35).Next, the string up to the separated position is separated using the "Strcpy ()" function and stored in a separate path name (S35).
다음, 카운터를 증가시키고(S36) 다시 '/'로 구분된 경로명을 탐색한다(S33).Next, the counter is incremented (S36) and the path name separated by '/' is searched again (S33).
이 과정은 "strstr()" 함수의 리턴값이 "null"이 될 때 까지 반복 수행하고(S34), 리턴값이 "null"이 되면 경로명의 마지막을 나타내므로 최종 경로명을 저장하고 종료한다(S37, S38).This process is repeated until the return value of the "strstr ()" function is "null" (S34). If the return value is "null", the end of the path name is indicated, so the final path name is saved and terminated (S37). , S38).
이때, 상기 동작 수행을 위해 사용된 함수는 그 기본적인 동작은 같으면서 사용자 또는 시스템에 따라 다른 명칭으로 사용할 수 있음은 자명하다.At this time, it is obvious that the function used to perform the operation may have a different name depending on the user or the system while the basic operation is the same.
다음, 도7은 본 발명에 의한 리졸버(20)의 동작 순서도로서, 먼저 객체(pSRG)에는 "GetName() API"를 호출하여 얻은 서비스 게이트웨이(root directory)를, 나머지 변수는 "null"로 초기화한다(S41).Next, FIG. 7 is an operation flowchart of the resolver 20 according to the present invention. First, an object pSRG is initialized with a service gateway (root directory) obtained by calling the "GetName () API", and the remaining variables are initialized to "null". (S41).
다음, 파저(10)에서 얻은 첫 번째 경로명을 가져와 기존 리졸버와 같은 방식으로 객체의 위치를 탐색한다(S42, S44, S49).Next, the first path name obtained from the parser 10 is taken and the position of the object is searched in the same manner as the existing resolver (S42, S44, S49).
상기 과정을 거쳐 탐색이 완료되면 변수 "i"로 지정된 카운터(미도시)를 증가시키고(S51), 서비스 게이트웨이가 저장된 객체(pDir)를 탐색한 결과 객체로 변경하고, 다음 경로 명을 파저(10)에서 가져와 다음 탐색을 시작한다.When the search is completed through the above process, the counter (not shown) designated by the variable "i" is increased (S51), the service gateway searches for the stored object (pDir), changes the result to the object, and changes the next path name to the parser (10). ) And start the next search.
이에 따라, 카운터가 파저(10)의 "Path_Count"값과 같아지면(S52), 최종 객체(pObj)에서 "_get_Content() API"를 호출하여 객체의 실제 내용을 얻어와 "Application" 태스크로 전달한다(S53).Accordingly, when the counter is equal to the value of "Path_Count" of the parser 10 (S52), the "_get_Content () API" is called from the final object pObj to obtain the actual content of the object and deliver it to the "Application" task. (S53).
한편, 상기 처리(resolve) 과정 중 예외가 발생한 경우(S43, S46, S49), 해당하는 에러 코드(Error_Code)를 해당 예외값으로 세팅한 후, 예외 처리부(Exception Handler)(30)에 전달한다(S45, S47, S50).On the other hand, if an exception occurs during the process (Resolve) (S43, S46, S49), the corresponding error code (Error_Code) is set to the corresponding exception value, and then delivered to the exception handler (Exception Handler) 30 ( S45, S47, S50).
다음, 도8은 본 발명에 의한 예외 처리부(30)의 동작 순서도로서, 먼저 예외 처리부는 에러 코드(Error Code)를 초기화하고(S61), 리졸버(20)에서 에러 코드가 전달되면 이 값에 따라 필요한 여러 가지 처리를 하게 된다(S62).Next, FIG. 8 is an operation flowchart of the exception processing unit 30 according to the present invention. First, the exception processing unit initializes an error code (S61), and when an error code is transmitted from the resolver 20 according to this value. Various processing is necessary (S62).
즉, 상기 에러 코드가 객체 없음을 의미할 경우(Error_Code = No_Object)에는, 해당 객체의 경로는 존재하나 실제 객체의 내용이 존재하지 않는 경우로, 그에 따른 에러 코드를 "Application" 태스크에 전달한다(S64).That is, when the error code means no object (Error_Code = No_Object), the path of the object exists but the actual object content does not exist, and the error code is transmitted to the "Application" task ( S64).
다음, 상기 에러 코드가 경로가 잘못되었음을 의미할 경우(Error_Code = InvalidName)에는, 해당 객체의 경로가 잘못되어 객체를 찾을 수 없는 경우로, 그에 따른 에러 코드를 "Application" 태스크에 전달한다(S65).Next, when the error code means that the path is wrong (Error_Code = InvalidName), the path of the corresponding object is not found and the object is not found. Therefore, the error code is transmitted to the "Application" task (S65).
다음, 상기 에러 코드가 객체 미수신을 의미할 경우(Error_Code = Not_yet_Dnld)에는, 해당 객체가 존재하나 하드웨어 레벨에서 아직 수신이 완료되지 않은 것으로(S66), 이 경우에는 에러 코드를 전달해도 되나 "Application" 태스크의 설계상 편의를 위하여 객체가 수신 완료된 후(S67), 이를 다시 처리(resolve)하여 "Application" 태스크에 전달해 주도록 한다(S68).Next, when the error code means that the object is not received (Error_Code = Not_yet_Dnld), the object exists, but the reception is not yet completed at the hardware level (S66), in this case, the error code may be passed but "Application" For the convenience of designing the task, after the object is received (S67), it is processed again (resolved) and delivered to the "Application" task (S68).
물론, 상기에서 제시하는 예외 처리부의 동작 과정은 일 실시예 일 뿐, 예외 처리는 시스템의 요구에 따라 알맞은 다른 방식으로도 구현할 수 있다.Of course, the above-described operation of the exception processing unit is only an embodiment, and exception handling may be implemented in other manners appropriate to the requirements of the system.
이상에서 설명한 바와 같이 본 발명 디에스엠-씨씨 기반 장치의 에이피아이 구현 장치 및 방법은, "Application" 태스크와 "DSM-CC API" 태스크간의 파일 데이터 전송이 단 한 번에 이루어지도록 단축하므로서, 동작 속도를 증가시키고 메모리 사용량 및 시스템에 걸리는 부하를 감소시키는 효과가 있다.As described above, the AP-implementation apparatus and method of the DSM-C based apparatus of the present invention shortens the file data transfer between the "Application" task and the "DSM-CC API" task to be performed only once, thereby speeding up the operation. Increase the memory usage and reduce the memory usage and load on the system.
또한, 본 발명은 디지털 티브이의 MHEG 엔진 등 "DSM-CC" 기반의 장치 및 "Application"에 적용하여 설계의 효율성 및 동작 성능을 향상시킬 수 있도록 하는 효과가 있다.In addition, the present invention is effective to improve the efficiency and operation performance of the design by applying to the "DSM-CC" -based device and "Application", such as MHEG engine of the digital TV.
Claims (7)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2001-0044226A KR100425681B1 (en) | 2001-07-23 | 2001-07-23 | Apparatus and method for carrying out api of dsm-cc based device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2001-0044226A KR100425681B1 (en) | 2001-07-23 | 2001-07-23 | Apparatus and method for carrying out api of dsm-cc based device |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20030009670A KR20030009670A (en) | 2003-02-05 |
KR100425681B1 true KR100425681B1 (en) | 2004-04-03 |
Family
ID=27716199
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-2001-0044226A KR100425681B1 (en) | 2001-07-23 | 2001-07-23 | Apparatus and method for carrying out api of dsm-cc based device |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100425681B1 (en) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US2357922A (en) * | 1941-12-06 | 1944-09-12 | Electronbeam Ltd | Electronic translating device |
EP0680185A2 (en) * | 1994-04-28 | 1995-11-02 | Thomson Consumer Electronics, Inc. | A distributed computer system |
US5581706A (en) * | 1994-06-30 | 1996-12-03 | Rca Thomson Licensing Corporation | Method forming an audio/video interactive data signal |
KR20000028421A (en) * | 1998-10-31 | 2000-05-25 | 전주범 | Method for transmitting web-type multimedia in digital broadcasting system |
KR20010020250A (en) * | 1997-05-08 | 2001-03-15 | 코야마 리오 | Hardware accelerator for an object-oriented programming language |
KR20020064426A (en) * | 2001-02-01 | 2002-08-09 | 엘지전자 주식회사 | apparatus and method for scenario search of menu formula |
-
2001
- 2001-07-23 KR KR10-2001-0044226A patent/KR100425681B1/en not_active IP Right Cessation
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US2357922A (en) * | 1941-12-06 | 1944-09-12 | Electronbeam Ltd | Electronic translating device |
EP0680185A2 (en) * | 1994-04-28 | 1995-11-02 | Thomson Consumer Electronics, Inc. | A distributed computer system |
US5581706A (en) * | 1994-06-30 | 1996-12-03 | Rca Thomson Licensing Corporation | Method forming an audio/video interactive data signal |
KR20010020250A (en) * | 1997-05-08 | 2001-03-15 | 코야마 리오 | Hardware accelerator for an object-oriented programming language |
KR20000028421A (en) * | 1998-10-31 | 2000-05-25 | 전주범 | Method for transmitting web-type multimedia in digital broadcasting system |
KR100283669B1 (en) * | 1998-10-31 | 2001-03-02 | 전주범 | Web-type multimedia transmission method in digital broadcasting system |
KR20020064426A (en) * | 2001-02-01 | 2002-08-09 | 엘지전자 주식회사 | apparatus and method for scenario search of menu formula |
Also Published As
Publication number | Publication date |
---|---|
KR20030009670A (en) | 2003-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0996898B1 (en) | Using a hierarchical file system for indexing data broadcast to a client from a network of servers | |
US7140011B2 (en) | Dynamically loading program code over a push-based network | |
KR100940130B1 (en) | A method of compiling bytecode to native code | |
US7836152B2 (en) | Methods and systems for adaptive delivery of multimedia contents | |
US6324637B1 (en) | Apparatus and method for loading objects from a primary memory hash index | |
US20060179465A1 (en) | Handling feature availability in a broadcast | |
EP1083496A1 (en) | Transmitter, receiver, transmitter/receiver system, transmission method and reception method | |
CN1433629A (en) | Method and apparatus for efficiently accessing periodically broddcast data | |
EP1107600A1 (en) | Method and system for optimising a data carousel | |
US20020073218A1 (en) | Stream device management system for multimedia clients in a broadcast network architecture | |
WO2002093846A1 (en) | Method of transferring a divided file | |
US11303969B2 (en) | Methods and systems for implementing an elastic cloud based voice search using a third-party search provider | |
CN106294663A (en) | A kind of electronic equipment and application image processing method and system | |
US7028251B2 (en) | System and method for reducing the size of data difference representations | |
CN103974141A (en) | Video automatic skip and playing method, terminal and system | |
KR100425681B1 (en) | Apparatus and method for carrying out api of dsm-cc based device | |
US20070096952A1 (en) | Compressing log files | |
KR101035107B1 (en) | Method for broadcast of an html application | |
US20080209453A1 (en) | System and Method for Reducing the Start-up Time of Mhp Applications | |
KR20030010748A (en) | Service access system | |
CN1606736A (en) | Method and apparatus for obtaining internet content for a wireless device | |
KR100672405B1 (en) | Apparatus and method for user interface in digital TV | |
US6269476B1 (en) | Information processing apparatus, method, and recording medium for recording a computer program to be executed by a computer to carry out processing of constructing software | |
AU731113B2 (en) | Method and system for enabling access to a multimedia document | |
KR100649717B1 (en) | Statistical page prefetching system for performance enhancement in software streaming service and method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
N231 | Notification of change of applicant | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20080102 Year of fee payment: 5 |
|
LAPS | Lapse due to unpaid annual fee |