KR100426270B1 - A multimedia streaming server and an Interconnection Method of multimedia streaming system and multimedia database - Google Patents

A multimedia streaming server and an Interconnection Method of multimedia streaming system and multimedia database Download PDF

Info

Publication number
KR100426270B1
KR100426270B1 KR10-2002-0028130A KR20020028130A KR100426270B1 KR 100426270 B1 KR100426270 B1 KR 100426270B1 KR 20020028130 A KR20020028130 A KR 20020028130A KR 100426270 B1 KR100426270 B1 KR 100426270B1
Authority
KR
South Korea
Prior art keywords
multimedia
streaming
block
shared memory
database
Prior art date
Application number
KR10-2002-0028130A
Other languages
Korean (ko)
Other versions
KR20030090130A (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 KR10-2002-0028130A priority Critical patent/KR100426270B1/en
Publication of KR20030090130A publication Critical patent/KR20030090130A/en
Application granted granted Critical
Publication of KR100426270B1 publication Critical patent/KR100426270B1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Abstract

본 발명은 통신망을 통하여 음성 또는 영상과 같은 멀티미디어 데이터를 전송하는 스트리밍 시스템과 멀티미디어 데이터베이스 시스템을 구비한 스트리밍 서버의 구조 및, 스트리밍 서버 내에 있는 스트리밍 시스템과 멀티미디어 데이터베이스 시스템간의 연동 기법에 관한 것으로서, 상세하게는 스트리밍 시스템은 데이터베이스 커넥터, 미디어 관리부, 전송 관리부, 세션 관리부, 자원 관리부, 게이트웨이로 구성되고, 멀티미디어 데이터베이스 시스템은 미디어 클라이언트와 데이터베이스 서버로 구성되고, 이들 스트리밍 시스템과 멀티미디어 데이터베이스 시스템은 공유메모리와 세마포어를 이용하여 데이터를 블록 단위로 주고받으며, 스트리밍 시스템은 메시지 큐를 이용하여 작업 내역을 멀티미디어 스트리밍 시스템에게 전송한다.The present invention relates to a structure of a streaming server including a streaming system and a multimedia database system for transmitting multimedia data such as voice or video over a communication network, and an interworking technique between a streaming system and a multimedia database system in a streaming server. Streaming system consists of database connector, media management unit, transmission management unit, session management unit, resource management unit, gateway, multimedia database system is composed of media client and database server, these streaming system and multimedia database system is a shared memory and semaphore Data is sent and received in units of blocks, and the streaming system transmits a work history to the multimedia streaming system using a message queue.

Description

멀티미디어 스트리밍을 제공하는 서버 및 그 장치 내에 있는 스트리밍 시스템과 멀티미디어 데이터베이스 시스템간의 연동방법{A multimedia streaming server and an Interconnection Method of multimedia streaming system and multimedia database}A multimedia streaming server and an Interconnection Method of multimedia streaming system and multimedia database}

본 발명은 통신망을 통하여 음성 또는 영상과 같은 멀티미디어 데이터를 전송하는 스트리밍 시스템과 멀티미디어 데이터베이스 시스템을 구비한 스트리밍 서버의 구조 및, 스트리밍 서버 내에 있는 스트리밍 시스템과 멀티미디어 데이터베이스 시스템간의 연동 기법에 관한 것이다.The present invention relates to a structure of a streaming server having a multimedia system and a streaming system for transmitting multimedia data such as voice or video over a communication network, and an interworking technique between a streaming system and a multimedia database system in a streaming server.

오늘날 멀티미디어 운영체제, 통신, 응용서비스 기술, 그리고 이들을 지원할 수 있는 고성능 하드웨어의 발전에 힘입어 인터넷 방송, VOD, 무선 이동 환경에서 스트리밍 서비스가 점차 일반화되고 있다. 이러한 스트리밍 서비스는 스트리밍 서버가 특정 저장공간에 있는 멀티미디어 재생 데이터를 읽어와서 멀티미디어 재생기인 스트리밍 클라이언트에게 전송함으로써 이루어진다.Today, streaming services are becoming increasingly common in Internet broadcasting, VOD, and wireless mobile environments, thanks to advances in multimedia operating systems, communications, application services, and high-performance hardware that can support them. Such a streaming service is obtained by a streaming server reading multimedia playback data in a specific storage space and transmitting the multimedia playback data to a streaming client which is a multimedia player.

현재 상용 서비스가 이루어지고 있는 스트리밍 서비스 방식은 스트리밍 서버의 하드디스크에 존재하는 멀티미디어 재생 파일을 사용자에게 스트리밍 해주는 구조를 가지고 있다. 나아가, 이러한 멀티미디어 스트리밍 외에도 사용자들이 멀티미디어 정보를 관람 및 검색할 수 있도록, 멀티미디어 정보 데이터들을 관계형 데이터베이스(relational database)형태로 저장하여, 스트리밍 시스템이 이들 관계형 데이터베이스와 연동하여 멀티미디어 정보를 읽어 온 후 이 멀티미디어 정보를 사용자에게 전송하는 기능도 가지고 있다.The current streaming service method has a structure that streams multimedia playback files existing on the hard disk of the streaming server to the user. Furthermore, in addition to the multimedia streaming, the multimedia information data is stored in a relational database so that users can view and search the multimedia information. It also has the ability to send information to the user.

그러나, 이러한 멀티미디어 스트리밍 방식은 멀티미디어 재생 데이터와 멀티미디어의 정보 데이터를 분리하여 관리하기 때문에 멀티미디어 재생 데이터와 정보 데이터와의 불일치가 발생할 수 있어 사용자의 시스템 신뢰성에 악영향을 미칠 수 있는 문제가 있다. 또한, 파일 시스템에 저장되어 있는 멀티미디어 재생 데이터를 전송하는 방식을 취하고 있기 때문에 파일 시스템이 가지고 있는 제약점을 그대로 가지고 있어 효율적인 멀티미디어 데이터의 검색 및 재결합을 통한 스트리밍 서비스를 충분히 활용할 수 없다는 단점을 가지고 있다.However, since the multimedia streaming method separates and manages the multimedia playback data and the multimedia information data, there is a problem that a mismatch between the multimedia playback data and the information data may occur, which may adversely affect the system reliability of the user. In addition, since it takes the method of transmitting the multimedia playback data stored in the file system, it has the limitation that the file system has, so it has a disadvantage that it cannot fully utilize the streaming service through efficient multimedia data search and recombination. .

따라서, 기존의 대표적인 스트리밍 서버인 RealNetwor사의 RealSystem과 MicroSoft사의 NetShow 서버는 위에서 설명한 방식을 채택하고 있어 잠재적인 문제점을 안고 있는 시스템이라 할 수 있다.Therefore, the existing representative streaming server RealNetwor's RealSystem and MicroSoft's NetShow server adopt the method described above, which is a system having potential problems.

상기의 문제점을 보완하기 위하여, 본 발명은 데이터베이스가 멀티미디어 데이터의 정보뿐만 아니라 멀티미디어 재생 데이터도 관리하게 함으로써, 정보 데이터와 멀티미디어 재생 데이터와의 불일치를 극복하여 시스템의 신뢰성을 높이고, 스트리밍 중에도 재생중인 멀티미디어에 관련된 정보들을 사용자의 요구사항에 따라 다양한 형태로 검색할 수 있도록 하며, 또한 사용자가 원하는 데이터를 검색 및 재결합하여 각 사용자의 요구에 따른 형태로 스트리밍 할 수 있도록 하여 다양한 멀티미디어 서비스를 가능하도록 함을 목적으로 한다. 본 발명의 또 다른 목적은, 멀티미디어 재생 데이터와 멀티미디어 정보 데이터가 저장되는 다양한 멀티미디어 데이터베이스 시스템에 스트리밍 시스템이 쉽게 연동할 수 있도록 플러그 인 형태의 확장성을 고려한 데이터베이스 커넥터를 구현함을 목적으로 한다.In order to solve the above problems, the present invention allows the database to manage not only multimedia data but also multimedia playback data, thereby overcoming inconsistencies between information data and multimedia playback data, thereby increasing the reliability of the system and playing multimedia during streaming. It is possible to search the information related to the user in various forms according to the user's requirements, and to enable various multimedia services by searching and recombining the data desired by the user and streaming it in the form according to the needs of each user. The purpose. Another object of the present invention is to implement a database connector considering plug-in extensibility so that a streaming system can easily interoperate with various multimedia database systems in which multimedia playback data and multimedia information data are stored.

도 1는 스트리밍 시스템과 멀티미디어 데이터베이스 시스템간의 연동하는 모습을 나타낸 구성 블록도.1 is a block diagram showing the interworking between the streaming system and the multimedia database system.

도 2는 메시지 큐에 담기는 메시지 프레임의 구조를 나타낸 프레임 구성도.2 is a frame diagram illustrating a structure of a message frame put in a message queue.

도 3은 본 발명의 연동기법에 따른 멀티미디어 스트리밍 작동 알고리즘을 나타낸 플로우차트.3 is a flowchart illustrating a multimedia streaming operation algorithm according to an interlocking method of the present invention.

도 4는 멀티미디어 데이터 추출 및 저장 단계를 나타낸 플로우차트.4 is a flowchart showing the steps of extracting and storing multimedia data.

도 5는 멀티미디어 데이터를 공유메모리에서 읽어오는 단계를 나타낸 플로우차트.5 is a flowchart showing steps of reading multimedia data from a shared memory.

도 6은 본 발명에 의한 연동기법 적용시의 전송율에 대한 실험 결과를 나타낸 그래프.Figure 6 is a graph showing the experimental results for the transmission rate when applying the interlocking technique according to the present invention.

*도면의 주요 부분에 대한 부호의 설명** Description of the symbols for the main parts of the drawings *

100: 스트리밍 시스템 200: 멀티미디어 데이터베이스 시스템100: streaming system 200: multimedia database system

110: 데이터베이스 커넥터 120: 미디어 관리부110: database connector 120: media management unit

130: 전송 관리부 210: 미디어 클라이언트130: transmission management unit 210: media client

220: 데이터베이스 서버 300: 메시지 큐220: Database Server 300: Message Queuing

350: 공유메모리350: shared memory

이와 같은 목적을 달성하기 위하여 본 발명은, 스트리밍 서버는 스트리밍 시스템과 멀티미디어 데이터베이스 시스템을 구비하고 있고, 이들 두 시스템은 중간에 메시지 큐를 두어 메시지를 주고받으며, 또한 공유메모리를 통하여 멀티미디어 재생 데이터, 멀티미디어 정보 데이터(이하에서는, 멀티미디어 재생 데이터, 멀티미디어 정보 데이터, 멀티미디어 리스트 등 멀티미디어에 관련된 데이터를 멀티미디어 데이터라 부르기로 함)등을 주고받을 수 있도록 되어 있다.In order to achieve the above object, the present invention provides a streaming server including a streaming system and a multimedia database system, and these two systems have a message queue in between to send and receive messages, and also play multimedia data and multimedia through a shared memory. Information data (hereinafter, referred to as multimedia data such as multimedia reproduction data, multimedia information data, multimedia list, etc.) may be exchanged.

상기의 스트리밍 시스템은, 멀티미디어 데이터를 네트웍 프로토콜에 따라 패킷화하는 전송관리부, 공유메모리로부터 읽어온 멀티미디어 데이터를 전송관리부에게 전달해 주는 기능을 하는 미디어 관리부, 스트리밍 세션을 생성/삭제하고 멀티미디어 데이터베이스 시스템에게 작업 메시지를 전송하는 데이터베이스 커넥터로구성된다.The streaming system includes a transmission management unit for packetizing multimedia data according to a network protocol, a media management unit for delivering multimedia data read from a shared memory to the transmission management unit, and creating / deleting a streaming session and working on the multimedia database system. It consists of a database connector that sends a message.

그리고, 멀티미디어 데이터베이스 시스템은, 멀티미디어 데이터가 저장된 장소로서 스트리밍 시스템으로부터 스트리밍 요청된 멀티미디어 데이터를 상기의 공유메모리에 저장하는 데이터베이스 서버, 데이터베이스 커넥터로부터 전달된 메시지를 해석하여 데이터베이스 서버로 하여금 해당 작업을 수행하도록 요청하는 미디어 클라이언트로 구성된다.In addition, the multimedia database system is a place where the multimedia data is stored, and the database server for storing the multimedia data streamed from the streaming system in the shared memory, the message transmitted from the database connector to interpret the message from the database server to perform the operation It consists of the requesting media client.

이들 스트리밍 시스템과 멀티미디어 데이터베이스 시스템과의 연동 방법은 공유메모리와 세마포어를 이용하여 데이터를 블록 단위로 주고받으며, 스트리밍 시스템은 메시지 큐를 이용하여 작업 메시지를 멀티미디어 스트리밍 시스템에게 전송한다.The interworking method between these streaming systems and the multimedia database system exchanges data in block units using shared memory and semaphores, and the streaming system transmits a work message to the multimedia streaming system using a message queue.

한편, 스트리밍 시스템이 다양한 멀티미디어 데이터베이스 시스템과 연동할 수 있도록 하기 위해, 트랜잭션 인터페이스와 스트리밍 인터페이스가 존재한다. 트랜잭션이란, 정보의 교환이나 데이터베이스 갱신 등 연관되는 작업들과 관련하여 요청된 작업을 완수하기 위한 작업의 기본 단위로서, 트랜잭션 인터페이스에서는 데이터베이스의 트랜잭션을 지원하기 위하여 읽기, 쓰기, 찾기, 재생의 4가지 프리미티브(primitive)가 정의한다.Meanwhile, a transaction interface and a streaming interface exist to enable the streaming system to interoperate with various multimedia database systems. A transaction is a basic unit of work for completing a requested task in relation to related tasks such as exchanging information or updating a database. In the transaction interface, four types of transactions are used to support transactions in a database: read, write, find, and replay. Defined by primitives.

트랜잭션 인터페이스는 스트리밍 시스템이 멀티미디어 데이터베이스 시스템내에서의 트랜잭션을 요청하고 멀티미디어 데이터베이스 시스템이 이를 처리하기 위한 일련의 과정을 다루는 인터페이스이며, 스트리밍 인터페이스는 스트리밍 시스템과 멀티미디어 데이터베이스 시스템사이의 미디어 스트림을 처리하기 위한 과정을 다루는 인터페이스이다.A transaction interface is an interface that a streaming system requests a transaction in a multimedia database system, and a multimedia database system handles a series of processes for processing it. A streaming interface is a process for processing a media stream between a streaming system and a multimedia database system. This is an interface to deal with.

한편, 본 발명에서 스트리밍 시스템과 멀티미디어 데이터베이스 시스템은 하나의 호스트에 존재하지만 같은 호스트내의 서로 다른 프로세스에 의해 동작되어 지도록 구성된다. 본 발명에서는 이러한 서로 다른 프로세스들이 통신을 하기 위하여 프로세스간 통신(IPC, Interprocess Communication)기반의 연동을 하도록 되어있다. 본래 IPC 통신은 프로그래머가 하나의 운영체계에서 동시에 수행될 개별 프로그램을 생성하고 다룰 수 있도록 해주는 프로그래밍 인터페이스 집합으로서, 하나의 프로그램이 동시에 많은 프로세스의 요구를 처리할 수 있도록 하는 것이다.Meanwhile, in the present invention, the streaming system and the multimedia database system exist in one host but are configured to be operated by different processes in the same host. In the present invention, these different processes are intended to interwork based on interprocess communication (IPC) in order to communicate. Inherently, IPC communication is a set of programming interfaces that allow programmers to create and manipulate individual programs to be executed simultaneously on one operating system, allowing one program to handle the needs of many processes at the same time.

일반적으로 두 개 이상의 프로세스가 서로 연동하기 위한 방법으로는 대표적으로 RPC(Remote Procedure Call) 통신과 IPC(interprocess communication) 통신이 있다. RPC 통신은 특정 호스트에 수행되는 프로세스가 네트웍 상의 다른 호스트에 위치하고 있는 프로세스에 서비스를 요청하는데 사용되는 프로토콜로서, 메시지 큐나 공유메모리가 필요 없이 클라이언트로부터 스트리밍 요청이 들어오면 스트리밍 시스템이 데이터베이스 시스템에게 해당 미디어 정보를 요청하고, 데이터베이스 시스템은 요청대로 해당 미디어 블록을 스트리밍 서버에 직접 넘겨주는 아키텍쳐를 갖는다. 이러한 RPC 연동 기법은 스트리밍 시스템과 멀티미디어 데이터베이스 시스템간의 연동에 적용 될 수도 있어, 스트리밍 시스템과 데이터베이스 시스템이 같은 호스트가 아니더라도 연동 될 수 있다는 장점을 가질 수 있다. 그러나, RPC 연동기법은 IPC 연동기법에 비해 프로세스간의 확장성이 떨어지는 한계가 있고 또한, RPC는 하나의 프로세스가 다른 프로세스에 요청한 작업에 대한 처리결과를 수령할 때까지 일시 정지되어야 하는 운영방식이므로 시간 지연 및 끊김 현상이 자주 발생하는 문제가 있다. 반면에, 본 발명에서는 이러한 한계를 극복하기 위하여 스트리밍 시스템과 멀티미디어 데이터베이스 시스템이 같은 호스트 상에 존재하며 공유메모리와 세마포어를 이용하여 프로세스간 IPC 통신을 함으로써, 본 발명의 실시 예에서 쓰이는 미국 위스콘신 대학에서 개발한 Beehive 멀티미디어 데이터베이스 시스템 외에도 다른 멀티미디어 데이터베이스 시스템과의 연동이 가능하도록 하였고, 또한 미디어 스트리밍 시에 끊김 현상을 적게 하여 재생 품질을 RPC 연동기법보다 향상되도록 하였다.In general, there are two methods for interworking two or more processes with each other: RPC (Remote Procedure Call) communication and IPC (interprocess communication) communication. RPC communication is a protocol used by a process running on one host to request a service from another host on the network. When a streaming request comes in from a client without the need for a message queue or shared memory, the streaming system sends the media to the database system. Requesting information, the database system has an architecture that passes the media block directly to the streaming server as requested. This RPC interworking technique may be applied to interworking between a streaming system and a multimedia database system, and may have an advantage that the streaming system and the database system may be interworked even if they are not the same host. However, the RPC interworking technique has a limitation that the inter-process scalability is inferior to the IPC interworking technique. Also, since the RPC is an operation method that must be paused until one process receives the processing result for the work requested by the other process, There is a problem that delays and dropouts frequently occur. On the other hand, in the present invention, in order to overcome this limitation, a streaming system and a multimedia database system exist on the same host, and inter-process IPC communication is performed using shared memory and semaphores, and thus, the University of Wisconsin used in the embodiment of the present invention. In addition to the developed Beehive multimedia database system, interworking with other multimedia database systems is possible, and the quality of playback is improved compared to the RPC interworking method by reducing the interruption in media streaming.

이하, 첨부된 도면을 참조하여 스트리밍 시스템과 멀티미디어 데이터베이스 시스템의 구조화, 두 시스템간의 연동기법의 바람직한 일 실시 예를 상세히 설명한다.Hereinafter, with reference to the accompanying drawings will be described in detail a preferred embodiment of the structure of the streaming system and multimedia database system, the interworking technique between the two systems.

도 1은 스트리밍 재생기인 스트리밍 클라이언트로부터 멀티미디어 스트리밍 서비스 요구가 있을 시에 스트리밍 시스템(100)과 멀티미디어 데이터베이스 시스템(200)간에 연동되는 모습을 나타낸 구성 블록도이다.FIG. 1 is a block diagram illustrating the interworking between the streaming system 100 and the multimedia database system 200 when a multimedia streaming service request is received from a streaming client which is a streaming player.

먼저, 스트리밍 시스템(100)과 멀티미디어 데이터베이스 시스템(200)간의 연동되는 모습을 간략하게 살펴보면 다음과 같다. 스트리밍 클라이언트가 스트리밍 시스템(100)에게 선택한 멀티미디어를 요청(S11)하게 되면 데이터베이스 커넥터(110)는 멀티미디어 데이터베이스 시스템(200)에게 해당 멀티미디어를 스트리밍을 요청하기 위한 메시지를 구성하여 메시지 큐(300)에 담아 미디어 클라이언트(210)에게 알려주는 한편(S12), 해당 공유메모리 주소와 세마포어를 미디어 관리부(120)에게 알려준다(S18). 메지지 큐를 받은 미디어 클라이언트(210)는 해당 메시지를 데이터베이스 서버(220)가 사용하는 트랜잭션(transaction)으로 변환하여 데이터베이스 서버(220)에게 트랜잭션을 요청(S13)한다. 트랜잭션을 요청 받은 데이터베이스 서버(220)가 해당 멀티미디어 데이터를 공유메모리(350)에 담아주게 되면(S14), 대기하고 있던 미디어 관리부(120)는 공유메모리에 저장된 데이터를 읽어와서(S15) 전송 관리부(130)에게 넘겨준다(S16). 전송 관리부(130)는 해당 멀티미디어 데이터를 네트워크를 통하여 멀티미디어 스트리밍 클라이언트에게 전송하게 된다(S17).First, a brief look at the interworking between the streaming system 100 and the multimedia database system 200 is as follows. When the streaming client requests the selected multimedia to the streaming system 100 (S11), the database connector 110 constructs a message for requesting streaming of the multimedia to the multimedia database system 200, and puts the message in the message queue 300. While notifying the media client 210 (S12), the media management unit 120 informs the shared memory address and semaphore (S18). The media client 210 receiving the message queue converts the message into a transaction used by the database server 220 and requests a transaction from the database server 220 (S13). When the database server 220 that has received the transaction includes the corresponding multimedia data in the shared memory 350 (S14), the media management unit 120 that is waiting reads the data stored in the shared memory (S15) and transmits the management unit ( Hand over to 130) (S16). The transmission manager 130 transmits the multimedia data to the multimedia streaming client through the network (S17).

상기의 연동 기법을 구체적으로 설명하기에 앞서, 각 모듈의 용도에 대하여 설명하기로 한다.Before describing the interworking technique in detail, the use of each module will be described.

스트리밍 시스템(100)은 데이터베이스 커넥터(110), 미디어 관리부(120), 전송관리부(130)를 포함하고 있다. 스트리밍 서비스를 구현하기 위하여 이외에도 스트리밍 시스템(100)은 스트리밍 세션을 제어하는 세션관리부, 스트리밍 서비스 품질을 보장하는 자원관리부, 네트웍상의 스트리밍 클라이언트와의 네트웍 통신입구가 되는 게이트웨이, 스트리밍 클라이언트와의 인터페이스를 담당하는 인터페이스부가 더 필요로 하나, 여기에서는 본 발명에 필요한 모듈만 상세히 설명하기로 한다.The streaming system 100 includes a database connector 110, a media manager 120, and a transmission manager 130. In addition to implementing the streaming service, the streaming system 100 is responsible for a session management unit for controlling a streaming session, a resource management unit for guaranteeing a streaming service quality, a gateway that is a network communication inlet with a streaming client on a network, and an interface with a streaming client. One more interface unit is required, but only the modules required for the present invention will be described in detail.

데이터베이스 커넥터(110)는 스트리밍 시스템과 멀티미디어 데이터베이스를연결시켜 주는 매개체 역할을 하는 스트리밍 시스템의 내부 모듈로, 스트리밍 클라이언트가 멀티미디어 스트림을 요구할 때 각 세션의 아이디를 부여하고, 미디어 클라이언트에게 트랜잭션을 요청하는 메시지 큐의 주소를 스트리밍 시스템 운영 체계로부터 얻어오고, 생성된 세션을 삭제하고, 각 세션의 우선 순위를 부여하는 기능을 한다. 그리고, 서버의 CPU 클럭수, 네트워크 대역폭, 메인 메모리 용량 등의 서버의 성능에 따라 최대 사용자 수를 제한할 수 있는 기능을 가지고 있다.The database connector 110 is an internal module of the streaming system that serves as a medium connecting the streaming system and the multimedia database. When the streaming client requests the multimedia stream, the database connector 110 assigns an ID of each session and requests a transaction to the media client. It obtains the address of the queue from the streaming system operating system, deletes the created sessions, and gives priority to each session. In addition, it has a function of limiting the maximum number of users according to the performance of the server, such as the number of CPU clocks, network bandwidth, main memory capacity of the server.

미디어 관리부(120)는 미디어 스트림이 어떠한 타입의 소스로부터 얻어지며, 그것이 어떠한 종류의 스트림 인가를 판별한다. 그리고, 공유메모리로부터 획득한 미디어의 인코딩 타입을 확인하여 가장 적절하게 처리할 수 있는 방법으로 디코딩하며, 어떠한 미디어 디바이스를 통해 재생되어야 효과적인지를 식별하고 관리한다.The media manager 120 determines what type of source the media stream is from and what kind of stream it is. Then, the encoding type of the media obtained from the shared memory is identified and decoded in the most appropriate manner, and the media device is identified and managed through which media device is effective.

전송 관리부(130)는 스트리밍 시스템에서 네트워크 부분을 담당하는 모듈로서, RTP/UDP 및 TCP 프로토콜을 지원하고 패킷들의 전송 상태로 모니터링 하기 위한 RTCP(real-time transport control protocol) 프로토콜도 지원한다. 따라서, 미디어 관리부로부터 얻은 미디어 스트림의 패킷을 프로토콜에 따라 스트리밍 클라이언트에게 전송하기 위하여 미디어 스트림을 일정한 크기로 패킷 타이징 하여 RTP 프로토콜을 이용하여 스트리밍 클라이언트에게 전송을 하는 역할을 수행한다.The transmission management unit 130 is a module in charge of the network part in the streaming system, and supports the RTP / UDP and TCP protocols, and also supports the real-time transport control protocol (RTCP) protocol for monitoring the transmission status of packets. Therefore, in order to transmit the packet of the media stream obtained from the media management unit to the streaming client according to the protocol, the media stream is packetized to a certain size and transmits to the streaming client using the RTP protocol.

멀티미디어 데이터베이스 시스템(200)은 데이터베이스 서버(220)와 미디어 클라이언트(210)를 포함하고 있다. 이러한 멀티미디어 데이터베이스 시스템(200)으로는 미국 위스콘신 대학에서 개발한 쇼어(SHORE)라는 파일 시스템 위에서 멀티미디어 기능을 지원하는 멀티미디어 데이터베이스인 BeeHive 시스템 또는 ETRI에서 개발한 멀티미디어 데이터베이스인 BADA-III등이 검토되어 질 수 있으나, 본 발명에서는 BeeHive 멀티미디어 데이터베이스 시스템을 이용하기로 한다. BADA-III도 멀티미디어 데이터베이스를 저장하고 관리하는 기능을 가지고 있기는 하지만 기본적으로 일반적인 자료관리 또는 정보 색인 및 검색을 주된 데이터베이스 서비스로 하고 있어 스트리밍 시스템과의 연동에 그리 적합한 형태를 가지고 있지는 않다. 따라서, BeeHive 시스템을 이용함으로써, 실시간 지원 및 오디오/비디오를 위한 QoS(Quality of Service), 고장허용, 보안기능을 지원할 수 있게 되고 또한 공개된 시스템으로 인해 소스코드가 공개되어 있기 때문에 본 발명인 연동기법을 적용하기에 적당하다.The multimedia database system 200 includes a database server 220 and a media client 210. As the multimedia database system 200, the BeeHive system, which is a multimedia database supporting multimedia functions, or the BADA-III, which is a multimedia database developed by ETRI, can be reviewed on a file system called SHORE developed by the University of Wisconsin. However, in the present invention, BeeHive multimedia database system will be used. Although BADA-III also has a function to store and manage multimedia databases, it is basically a general database management or information indexing and retrieval as a main database service. Therefore, by using the BeeHive system, it is possible to support quality of service (QoS), fault tolerance, and security functions for real-time support and audio / video, and the source code is disclosed due to the disclosed system. It is suitable to apply.

데이터베이스 서버(220)는 미디어 클라이언트에게 전송하기 위한 멀티미디어 재생 데이터들이 일정한 크기의 블록으로 나뉘어 저장되어 있으며, 또한, 미디어 블록의 인덱스 리스트와 미디어 데이터에 관한 정보들이 저장되어 있다. 이렇게 블록화 된 멀티미디어 데이터들은 스트리밍 요청이 있을 시에 공유메모리에 데이터를 블록별로 저장된다. 또한, 공유메모리에 데이터를 저장 중에 사용자로부터 스트리밍 중지 요청이 있을 시에는 공유메모리에 저장하고 있던 데이터블록까지만 저장하고 나머지 데이터 블록의 저장을 중지한다.The database server 220 stores multimedia playback data for transmission to a media client in blocks of a predetermined size, and also stores index lists of media blocks and information on media data. The blocked multimedia data are stored in the shared memory block by block when a streaming request is made. In addition, when a streaming stop request is received from the user while storing data in the shared memory, only the data block stored in the shared memory is stored and the storage of the remaining data blocks is stopped.

미디어 클라이언트(210)는 스트리밍 시스템(100)과 멀티미디어 데이터베이스 시스템(200)이 연동될 때 메시지들을 주고받을 수 있는 메시지 큐를 초기화한다.그리고, 스트리밍 시스템으로부터 전달된 메시지들을 데이터베이스 서버가 사용하는 트랜잭션으로 변환하여 데이터베이스 서버(322)로 하여금 해당 트랜잭션을 하도록 요청하는 기능을 한다.The media client 210 initializes a message queue that can exchange messages when the streaming system 100 and the multimedia database system 200 interoperate. The media client 210 converts the messages transmitted from the streaming system into a transaction used by the database server. It converts and requests the database server 322 to perform the transaction.

공유메모리(350)는 데이터베이스 서버(220)에 저장되어 있는 데이터를 임시적으로 저장하는 곳이다. 본 발명에서 스트리밍 서버 시스템과 멀티미디어 데이터베이스 시스템과의 연동을 위해 공유메모리와 세마포어를 사용한다. 공유메모리(350)에 저장된 데이터는 미디어 관리부(120)에 의해 읽혀져서 스트리밍 클라이언트에게 전송되어진다. 또한, 공유메모리(350)는 데이터를 블록 단위로 저장할 수 있게 제1블록(351), 제2블록(352)과 같이 여러 개의 블록단위로 이루어진다. 즉, 공유메모리(350)는 데이터베이스 서버에 저장되어 있는 멀티미디어 데이터들을 스트리밍 시스템으로 전송하기 위하여 필요한 모듈로서, 데이터베이스 서버에서 꺼내온 멀티미디어 데이터를 공유메모리에 넣으면 공유메모리에 있는 데이터를 스트리밍 시스템이 꺼내어 가지는 구조를 갖는다. 일반적인 멀티미디어 데이터의 용량은 작게는 몇 MByte에서 많게는 수십 수백 MByte의 크기를 가지고 있다. 작은 데이터의 경우에는 데이터베이스에 저장할 때 하나의 블록으로 저장하여 한번에 꺼내 줄 수 있겠지만, 데이터의 크기가 수십 수백 MBtye의 크기라면 한번에 미디어 데이터의 크기만큼 메모리를 할당 할 수는 없다. 이러한 단점을 보완하기 위하여 본 발명에서는 미디어 데이터를 여러 개의 조각으로 나누어 데이터베이스에 저장하고 그 조각들의 인덱스를 저장하는 방식을 사용한다. 또한 멀티미디어 데이터들은연속적이라는 속성을 가지고 있기 때문에 스트리밍을 하기 위해서는 단일 메모리 블록이 아닌 두 개 이상의 메모리 블록을 필요로 한다. 즉, 하나의 메모리 블록은 스트리밍 시스템에서 데이터를 읽어 가는 블록이고, 다른 메모리 블록은 스트리밍 시스템이 스트리밍 중인 데이터 블록의 다음 데이터 블록을 미리 데이터베이스 서버로부터 추출하여 저장하기 위한 메모리 블록이다. 이런 이유로 본 발명의 실시 예에서는 스트리밍 시스템과 멀티미디어 데이터베이스 시스템이 멀티미디어 데이터를 주고받기 위한 공유메모리 블록을 제1블록(351), 제2블록(352)같은 여러 개의 공유메모리 블록을 둠으로써, 연속적인 속성을 가지는 멀티미디어 데이터를 스트리밍 할 수 있도록 하였다.The shared memory 350 is a place for temporarily storing data stored in the database server 220. In the present invention, a shared memory and a semaphore are used for interworking with a streaming server system and a multimedia database system. Data stored in the shared memory 350 is read by the media manager 120 and transmitted to the streaming client. In addition, the shared memory 350 is formed of a plurality of block units such as the first block 351 and the second block 352 so that data can be stored in block units. That is, the shared memory 350 is a module necessary for transmitting multimedia data stored in the database server to the streaming system. When the multimedia data taken out of the database server is put into the shared memory, the shared memory 350 takes out the data in the shared memory. Has a structure. General multimedia data can be as small as a few MBytes and as many as tens or hundreds of MBytes. In case of small data, it can be saved as a block when it is stored in the database, and it can be taken out at once. However, if the size of data is tens or hundreds of MBtye, the memory cannot be allocated as much as the size of media data at once. In order to compensate for this drawback, the present invention uses a method of dividing the media data into pieces and storing them in a database and storing the indexes of the pieces. In addition, since multimedia data have a property of being continuous, streaming requires two or more memory blocks instead of a single memory block. That is, one memory block is a block for reading data from a streaming system, and the other memory block is a memory block for extracting and storing the next data block of the data block being streamed from the database server in advance. For this reason, in the embodiment of the present invention, the streaming system and the multimedia database system place a plurality of shared memory blocks such as the first block 351 and the second block 352 to exchange multimedia data. It is possible to stream multimedia data with attributes.

한편, 두 개의 다른 시스템이 공유메모리를 사용할 때 동시에 공유메모리를 엑세스하는 경우와 같은 두 시스템간의 동기화 문제가 발생하는데, 이를 해소하기 위해서 세마포어를 사용한다. 세마포어는 공유메모리 블록의 개수와 같은 동일한 수가 생성되고 세마포어의 키 값은 첫 번째 세마포어는 베이스 키 값에 데이터베이스 커넥터가 할당한 세션아이디를 더한 값을 이용하고, 두 번째 세마포어는 베이스 키 값에 세션아이디와 세션의 최대 값을 더한 값을 이용한다. 이렇게 공유메모리 접근 시에 세마포어를 사용함으로써, 어느 특정 순간에 확인되는 세마포어의 값에 따라 공유메모리에 접근할 수 있는지를 알게된다. 즉, 세마포어가 공유메모리 사용가능 값으로 되어있다면 스트리밍 시스템나 멀티미디어 데이터베이스 시스템의 어느 하나의 프로세스는 즉시 공유메모리 자원을 사용할 수 있으며, 반면에 공유메모리가 특정 프로세스에 의해 이미 사용되고 있는 것으로 세마포어 값이 설정되어 있으면 공유메모리가 특정 프로세스에 의해 사용 중이라는 사실을 알게되므로 다른 프로세스는 해당 공유메모리에 접근하기 전에 일정 시간을 기다려야만 한다.On the other hand, when two different systems use shared memory, there is a synchronization problem between two systems, such as accessing shared memory at the same time. To solve this problem, semaphores are used. The semaphore generates the same number as the number of shared memory blocks, the semaphore's key value is the first semaphore using the base key value plus the session ID assigned by the database connector, and the second semaphore is the session key value. And the session maximum. By using the semaphore when accessing the shared memory, it is possible to know whether the shared memory can be accessed according to the value of the semaphore identified at a particular moment. That is, if a semaphore is set to the shared memory available value, either process in the streaming system or the multimedia database system can immediately use the shared memory resource, while the semaphore value is set to that shared memory is already used by a particular process. If you do, you know that shared memory is being used by a particular process, so other processes have to wait some time before accessing the shared memory.

메시지 큐(300)는 스트리밍 시스템(100)과 멀티미디어 데이터베이스 시스템(200)간의 메시지를 주고받는 장소로서, 일반적으로 임시저장 메모리인 스택(stack)에 존재한다.The message queue 300 is a place for exchanging messages between the streaming system 100 and the multimedia database system 200 and is generally present in a stack, which is a temporary storage memory.

도 2는 메시지 큐(300)에 담기는 메시지 프레임의 구조를 나타낸 프레임 구성도이다.2 is a frame diagram illustrating the structure of a message frame contained in the message queue 300.

메시지 큐는 외관상으로 볼 때, 스트리밍 서버 내 메모리상의 스택상에 메시지를 담거나 빼는 장소라 할 수 있다. 즉, 어떤 시스템의 프로세스가 메시지를 메시지 큐에 담아 두면 다른 시스템 프로세스가 메지지 큐에 담긴 메시지를, 대기 행렬에 들어간 항목들 중 스택의 밑바닥을 먼저 처리하는 방식인 선입선출(FIFO) 또는 스택의 맨 꼭대기에 있는 항목을 제일 먼저 처리하는 방식인 후입선출(FIFO)로 처리한다.A message queue is a seemingly place to put or pull messages on a stack in memory in a streaming server. That is, when a system's process puts a message on a message queue, another system process processes the message on the message queue first, or first-in first-out (FIFO) The topmost items are processed first-in first-out (FIFO).

스트리밍 시스템과 멀티미디어 데이터베이스 시스템은 같은 호스트내에 존재하지만, 서로 다른 프로세스에 의해 동작하므로 서로 통신을 하기 위한 메시지 전달 방법이 필요하며, 이를 수행하기 위한 방법으로 상기의 메시지 큐를 이용하여 메시지를 주고받는 것이다. 이 메시지 큐는 멀티미디어 데이터베이스에서 생성과 초기화를 수행하도록 구현한다.The streaming system and the multimedia database system exist in the same host, but because they are operated by different processes, a message delivery method is needed to communicate with each other. To accomplish this, messages are transmitted and received using the message queue. . This message queue implements the creation and initialization of the multimedia database.

메시지 큐에 담기는 메시지 프레임은 크게 커맨드 필드, 세션 ID 필드, 데이터베이스 ID 필드, 파라미터 필드로 이루어진다.The message frame put in the message queue consists of a command field, a session ID field, a database ID field, and a parameter field.

커맨드(command) 필드(11)는 메시지의 종류를 나타내는 필드로서 각 메시지의 종류는 다음의 표와 같다.The command field 11 is a field indicating the type of a message, and the type of each message is shown in the following table.

메지지 종류Medium type 설 명Explanation rr 요구된 메시지의 정보를 얻어온다.Retrieves information about the requested message. pp 요구된 미디어 블록으로부터 마지막 미디어 블록까지 데이터베이스로부터 추출하여 전송한다.Extracted from the requested media block to the last media block from the database and sent. qq 전송을 중지한다.Stop the transfer. ll 데이터베이스에 저장된 미디어들의 리스트를 보여준다.List media stored in the database. ss 데이터베이스에 미디어를 저장한다.Store media in a database. dd 데이터베이스에 저장된 미디어를 삭제한다.Delete the media stored in the database.

여기서 r 메시지는 세션을 생성하고, 세션 아이디를 부여하고, 요청한 미디어의 정보를 얻을 때 사용된다. r메시지로부터 얻어진 세션 아이디는 공유메모리 주소, 세마포어 아이디를 생성할 때 사용된다. 그리고, 메시지가 데이터베이스에 전달되면 데이터베이스 아이디에 해당하는 멀티미디어 데이터에 관한 정보, 예를 들면 영화의 경우 제목, 감독, 주연 배우 등의 메타 정보들을 얻어 올 수 있다. p 메시지는 스트리밍을 위하여 데이터베이스에 저장된 미디어 블록을 요청하는 메시지로, p 메시지가 발생하면 요구되어진 데이터베이스 아이디의 미디어 블록을 데이터베이스로부터 추출하여 공유메모리에 복사하는 작업을 한다. 이 작업은 q 메시지가 발생할 때까지 계속한다. q 메시지는 멀티미디어 데이터의 전송을 중지하는 메시지로 q 메시지가 발생하면 데이터베이스는 미디어 블록을 공유메모리에 복사하는 작업을 멈추게 된다. l 메시지는 현재 데이터베이스에 저장되어 있는 미디어들의 리스트를 보여주는 메시지이다. s 메시지는 멀티미디어 데이터를 데이터베이스에 저장하기 위한 메시지로, 이 작업을 통하여 데이터베이스는 저장할 미디어에 고유의 데이터베이스 아이디를 부여한다. d 메시지는 데이터베이스에 저장된 멀티미디어 데이터를 데이터 베이스에서 삭제할 때 사용하는 메시지이다.The r message is used to create a session, give it a session ID, and get information about the requested media. The session ID obtained from the message is used to generate the shared memory address and semaphore ID. When the message is transmitted to the database, information about multimedia data corresponding to the database ID, for example, a movie, a meta title such as a title, a director, and an actor can be obtained. The p message is a request for a media block stored in the database for streaming. When a p message occurs, the p message extracts the media block of the requested database ID from the database and copies it to the shared memory. This operation continues until the q message occurs. The q message stops the transmission of multimedia data. When the q message occurs, the database stops copying the media block to the shared memory. The message l shows a list of media currently stored in the database. The s message is for storing multimedia data in a database. Through this operation, the database assigns a unique database ID to the media to be stored. The d message is used to delete multimedia data stored in the database.

세션 ID 필드(13)는 클라이언트가 데이터베이스에 저장되어 있는 미디어 데이터의 요구 시에 데이터베이스 커넥터가 부여하는 각 클라이언트의 아이디를 나타내는 부분이다. 이 아이디 값은 공유메모리와 세마포어를 생성할 때 사용되기고 한다.The session ID field 13 is a portion indicating the ID of each client that the database connector grants when the client requests media data stored in the database. This id value is used to create shared memory and semaphores.

데이터베이스 ID 필드(15)는 미디어 데이터가 데이터베이스에 저장될 때 미디어 데이터에 데이터베이스가 부여하는 고유의 값을 나타내는 부분으로 스트리밍 클라이언트가 선택한 미디어의 아이디 값을 가지는 필드이다.The database ID field 15 is a field indicating a unique value that the database assigns to the media data when the media data is stored in the database. The database ID field 15 has a media ID value selected by the streaming client.

파라미터 필드(17)는 메시지의 종류에 따라 필요한 정보를 넣어주는 필드로서, 예를 들어 재생 트랜잭션일 경우 요구되어진 미디어 스트림의 위치에 따른 미디어 블록의 인덱스 값 또는 다른 스트리밍 시 필요한 정보를 넣은 필드로 메시지의 종류에 따라 다른 용도로 사용된다.The parameter field 17 is a field for inputting necessary information according to the type of the message. For example, in the case of a playback transaction, the parameter field 17 is a field for inputting an index value of a media block according to the location of a requested media stream or another information for streaming. It is used for different purposes depending on the type of.

참고적으로, 상기의 메시지 큐를 프로그램 상에 구현하기 위한 구조체(struct)와 관련 함수를 정의한다면 다음과 같은 구조를 가질 수 있다.For reference, if you define a struct and related functions for implementing the message queue on a program, it can have the following structure.

typedef struct {typedef struct {

long priority;long priority;

char Message[MAX_MSG];char Message [MAX_MSG];

} QueueMessage;} QueueMessage;

int GetQueue( key_t QueueKey, int *QueueID );int GetQueue (key_t QueueKey, int * QueueID);

int RemoveQueue( key_t QueueKey );int RemoveQueue (key_t QueueKey);

int RemoveQueue( int QueueID );int RemoveQueue (int QueueID);

int SendMsg( int QueueID, QueueMessage *Send );int SendMsg (int QueueID, QueueMessage * Send);

int RecvMsg( int QueueID, QueueMessage *Recv );int RecvMsg (int QueueID, QueueMessage * Recv);

이하에서는, 상기에서 기술한 메시지 큐, 공유메모리, 세마포어 등을 이용하여 스트리밍 시스템과 멀티미디어 데이터베이스 시스템간의 IPC 기반 연동 알고리즘을 상세히 설명하기로 한다.Hereinafter, the IPC-based interworking algorithm between the streaming system and the multimedia database system using the above-described message queue, shared memory, semaphore, etc. will be described in detail.

IPC 기반 연동 알고리즘을 간단히 요약하면, 데이터베이스 커넥터에서 클라이언트의 요청을 받게되면 스트리밍 시스템 내의 데이터베이스 커넥터가 해당되는 미디어를 데이터베이스에게 메시지 큐로 요청울 하게되고, 멀티미디어 데이터베이스 시스템 시스템내의 미디어 클라이언트는 데이터베이스 서버에게 메시지 큐의 내용을 보내주면, 데이터베이스 서버는 공유메모리에 접근하여 해당되는 미디어를 추출하여 공유메모리에 넣어준다. 이렇게 공유메모리에 데이터가 저장되면 미디어 관리부는 공유메모리의 데이터를 전송 관리부에게 전해주고, 전송 관리부는 전송된 미디어 데이터를 클라이언트에게 전송하게 된다.To summarize the IPC-based interworking algorithm, when the client receives a request from the database connector, the database connector in the streaming system requests the database as a message queue, and the media client in the multimedia database system system sends a message queue to the database server. If you send the contents of, the database server accesses the shared memory, extracts the media and puts it in the shared memory. When the data is stored in the shared memory, the media manager transmits the data in the shared memory to the transfer manager, and the transfer manager transmits the transmitted media data to the client.

상기의 연동기법에 따른 미디어 스트리밍 작동 알고리즘은 크게 데이터베이스 서버가 공유메모리에 데이터를 저장하는 과정과, 스트리밍 시스템이 공유메모리에 저장된 데이터를 읽어와서 이를 스트리밍 클라이언트에게 전송하는 과정으로 나눌 수 있다. 이러한 데이터를 저장하는 과정과 데이터를 읽어오는 과정은 멀티미디어 데이터베이스 시스템, 스트리밍 시스템에서 각각 동작하는 프로세스에 의해 조작되어 진다.The media streaming operation algorithm according to the interlocking technique can be largely divided into a process in which a database server stores data in a shared memory, and a process in which a streaming system reads data stored in a shared memory and transmits the data to a streaming client. The process of storing such data and the process of reading the data are manipulated by processes operating in the multimedia database system and the streaming system, respectively.

도 3은 본 발명의 연동기법에 따른 미디어 스트리밍 작동 알고리즘을 나타낸 플로우차트이다.3 is a flowchart illustrating a media streaming operation algorithm according to an interworking method of the present invention.

미디어 클라이언트로부터 미디어 스트리밍 요청이 있으면, 스트리밍 시스템은 초기화 단계(S301)를 가진다. 즉, 스트리밍 시스템은 모든 모듈을 초기화한 후 본 발명의 운용시 동작하는 프로그램상의 특정 객체 클래스에서 생성한 메시지 큐를 얻어온다. 또한, 데이터베이스 서버로부터 해당 미디어 데이터를 받기 위한 공유메모리를 생성한다.If there is a media streaming request from the media client, the streaming system has an initialization step (S301). In other words, the streaming system initializes all modules and obtains a message queue generated by a specific object class on a program that operates in the operation of the present invention. In addition, it creates a shared memory for receiving the media data from the database server.

그후, 스트리밍 시스템은 멀티미디어 데이터베이스 시스템에게 해당 미디어 정보를 알려줄 것을 요청하는 r 메시지를 전송하고, 이에 의하여 멀티미디어 데이터베이스 시스템으로부터 해당 정보를 수령 받는 멀티미디어 정보 수령단계(S302)를 가진다. 이렇게 수령한 미디어 정보를 기초로 하여 세션과 세마포어를 생성한다. 또한, r 메시지에 의해 영화 제목, 영화감독 같은 정보도 멀티미디어 데이터베이스 시스템으로부터 얻을 수 있다.Thereafter, the streaming system transmits an r message requesting the multimedia database system to inform the media information, and thereby has a multimedia information receiving step (S302) of receiving the information from the multimedia database system. The session and semaphore are generated based on the received media information. In addition, information such as a movie title and a movie director can also be obtained from the multimedia database system by the r message.

상기와 같이 스트리밍 시스템 초기화 및 미디어 정보 수령단계 등의 미디어 데이터 오픈단계를 거친 후에는 실질적인 스트리밍 단계가 진행된다. 우선, 데이터베이스 커넥터는 선택된 멀티미디어 데이터 전송을 요구하는 메시지들을 메시지 큐를 이용하여 전송한다(S303). 메시지를 수령한 미디어 클라이언트는 데이터베이스 서버에게 메시지에 해당하는 트랜잭션을 발생하고, 이러한 트랜잭션 요구를 받은데이터베이스 서버는 해당 멀티미디어 데이터를 추출하여 공유메모리에 저장하는 단계(S304)와 동시에 스트리밍 시스템내의 미디어 관리부가 공유메모리에 저장된 미디어 데이터를 읽어오는 단계(S305)를 갖는다. 스트리밍 시스템내의 전송 관리부는 미디어 관리부로부터 데이터를 받아와서 이를 스트리밍 클라이언트에게 전송해준다(S306). 상기의 전송단계가 끝나면, 스트리밍 시스템은 멀티미디어 데이터베이스 시스템간의 연동 세션을 닫고 할당받았던 공유메모리와 세마포어를 제거하는 종료 단계(S307)를 갖는다.After the media data opening step such as the initialization of the streaming system and the step of receiving the media information as described above, the actual streaming step proceeds. First, the database connector transmits messages requesting transmission of the selected multimedia data using the message queue (S303). The media client receiving the message generates a transaction corresponding to the message to the database server, and the database server receiving the transaction request extracts the multimedia data and stores the multimedia data in the shared memory (S304). There is a step of reading the media data stored in the shared memory (S305). The transmission management unit in the streaming system receives the data from the media management unit and transmits it to the streaming client (S306). After the above transmission step, the streaming system has an end step (S307) of closing the interworking session between the multimedia database system and removing the allocated shared memory and semaphore.

도 4는 도3에서 설명한 멀티미디어 데이터 추출 및 저장 단계(S304)를 세마포어와 관련하여 좀더 구체적으로 나타낸 플로우차트이다. 공유메모리는 하나의 블록 또는 여러 개의 블록으로 구성될 수 있으며, 각 블록마다 동기화를 위한 세마포어가 존재한다.FIG. 4 is a flowchart showing in more detail the multimedia data extraction and storage step S304 described with reference to FIG. 3 in relation to semaphores. The shared memory may be composed of one block or several blocks, and each block has a semaphore for synchronization.

데이터베이스 서버는 멀티미디어 데이터를 추출(S401)한다.The database server extracts the multimedia data (S401).

공유메모리 블록의 인덱스를 나타내는 N을 1로 설정한다(S402). 따라서, 맨 처음 데이터를 저장되는 N 번째 블록이라 함은 첫 번째 블록을 의미하게 된다. 그 후, 공유메모리 N 번째 블록의 사용권을 독점하기 위하여 해당 블록의 세마포어를 설정하는 단계(S403)를 갖는다. 상술하면, 데이터베이스 서버는 공유메모리 N 번째 블록의 세마포어를 확인한다. 공유메모리 미사용(not use)의 키 값으로 되어있다면 해당 세마포어를 가져와서 사용중(in use)의 값으로 설정한다. 반면에, 세마포어 확인 결과, 세마포어가 사용중으로 되어 있다면 사용가능으로 될 때가지 세마포어를 계속 감시하며 대기하여, 사용가능으로 될 때 세마포어를 가져와 독점한다. 이렇게 세마포어를 사용중으로 설정해 놓아야 다른 프로세스의 접근을 막고 자신 혼자만 공유메모리를 독점할 수 있어, 각 프로세스간의 공유메모리에 대한 접근 충돌을 막을 수 있다.N representing the index of the shared memory block is set to 1 (S402). Therefore, the N-th block in which the first data is stored means the first block. Thereafter, in step S403, a semaphore of the corresponding block is set to monopolize the use rights of the shared memory Nth block. In detail, the database server checks the semaphore of the Nth block of the shared memory. If it is set to the key value of shared memory not use, the corresponding semaphore is taken and set to the value in use. On the other hand, as a result of the semaphore check, if the semaphore is in use, the semaphore is continuously monitored and waited until it becomes available, and the semaphore is taken and monopolized when it becomes available. If you set the semaphore in this way, you can prevent the access of other processes and monopolize the shared memory by yourself.

멀티미디어 데이터베이스 시스템내의 데이터베이스 서버는 상기의 방법으로 세마포어를 가져온 후, 추출한 멀티미디어 데이터를 공유메모리 N 번째 블록에 저장하는 단계(S404)를 갖는다. 공유메모리 N 번째 블록에 저장하는 단계가 끝난 후, 데이터베이스 서버는 공유메모리 N 번째 블록의 세마포어를 미사용으로 설정하여 독점권을 해제한다(S405). 이렇게 세마포어 독점을 해제함으로써, 다른 프로세스는 해당 N번째 공유메모리 사용을 할 수 있게 된다.The database server in the multimedia database system has a step of obtaining the semaphore by the above method and storing the extracted multimedia data in the shared memory N-th block (S404). After the step of storing in the shared memory N-th block is finished, the database server releases the exclusive right by setting the semaphore of the shared memory N-th block to unused (S405). This release of the semaphore monopoly allows other processes to use that Nth shared memory.

그후, 데이터베이스 서버는 공유메모리 N 번째 블록에 저장한 데이터가 추출한 멀티미디어 데이터의 마지막 블록인가를 판단(S406)한 후, 데이터의 마지막 블록으로 판단될 때에는 저장과정을 종료한다(S406a). 만약, 공유메모리 N 번째 블록에 저장된 멀티미디어 데이터가 추출한 데이터의 마지막 블록이 아닐 때에는, 나머지 데이터를 다른 공유메모리 블록에 저장하는 단계를 갖는다(S406b). 이를 위하여 먼저, 공유메모리 N 번째 블록이 공유메모리 마지막 블록인가 판단하는 단계를 갖는다(S407). 즉, 공유메모리 N 번째 블록이 마지막 블록으로 판단될 때에는 다시 맨 첫 번째 공유메모리 블록에 나머지 데이터를 저장하는 단계를 갖고(407b), 공유메모리 N 번째 블록이 마지막이 아닐 때(S407b)에는 공유메모리 블록 인덱스 값을 1 증가시켜(S408) 다음 공유메모리 블록에 데이터를 저장하게 된다. 그후, 세마포어 설정단계(S403), 멀티미디어 데이터 저장(S404), 세마포어 해제(S405), 데이터 저장 완료 판단 단계(S406)등을 반복하여 가지게 된다.Thereafter, the database server determines whether the data stored in the Nth block of the shared memory is the last block of the extracted multimedia data (S406), and when it is determined that the data is the last block of the data (S406a). If the multimedia data stored in the shared memory N-th block is not the last block of the extracted data, the remaining data is stored in another shared memory block (S406b). To this end, first, it is determined whether the shared memory Nth block is the last block of the shared memory (S407). That is, when it is determined that the shared memory Nth block is the last block, the remaining data is stored in the first shared memory block again (407b), and when the shared memory Nth block is not the last (S407b) The block index value is increased by 1 (S408) to store data in the next shared memory block. Thereafter, the semaphore setting step (S403), the multimedia data storage (S404), the semaphore release (S405), the data storage completion determination step (S406) and the like repeatedly.

도 5는 도 3에서 설명한 데이터 읽어오기 단계(S305)를 세마포어와 관련하여 좀더 구체적으로 나타낸 플로우차트이다. 앞에서와 마찬가지로 공유메모리는 하나의 블록 또는 여러 개의 블록으로 구성될 수 있으며, 각 블록마다 동기화를 위한 세마포어가 존재한다.FIG. 5 is a flowchart illustrating the data reading step S305 described with reference to FIG. 3 in more detail with respect to semaphores. As before, the shared memory may be composed of one block or several blocks, and each block has a semaphore for synchronization.

블록인덱스 값 K를 1로 설정한다(S501). 스트리밍 시스템내의 미디어 관리부는 공유메모리 K 번째 블록의 세마포어를 확인하여 미사용으로 되어있다면, 세마포어를 가져와서 사용 중으로 설정(S502)한 후, 공유메모리 K 번째 블록에 저장된 멀티미디어 데이터 블록을 읽어 온다(S503). 공유메모리 K 번째 블록의 멀티미디어 데이터를 다 읽어 온 후에는, 공유메모리 K 번째 블록의 세마포어를 해제(S504)하고 다음 멀티미디어 데이터 블록이 있는가를 판단(S505)하여 다음 멀티미디어 데이터 블록이 없을 시에는 읽어오는 과정을 종료(S505a)한다. 이러한 판단은 스트리밍 오픈 단계에서 r 메시지를 보내서 받은 미디어 블록의 크기, 미디어 인덱스 등의 미디어 정보를 바탕으로 할 수 있게된다. 만약, 읽어온 데이터 블록이 마지막 블록이 아닐 시에는 다음 데이터 블록을 읽어오는 과정을 갖는다(S505b).The block index value K is set to 1 (S501). The media management unit in the streaming system checks the semaphore of the shared memory K-th block, and if it is not in use, takes the semaphore and sets it in use (S502), and then reads the multimedia data block stored in the shared memory K-th block (S503). . After reading the multimedia data of the shared memory K-th block, the semaphore of the shared memory K-th block is released (S504), and it is determined whether the next multimedia data block exists (S505). End (S505a). This determination can be based on media information such as media block size and media index received by sending r message in the streaming open step. If the read data block is not the last block, the next data block is read (S505b).

K 번째 블록이 공유메모리의 마지막 블록일 때에는 다시 블록 인덱스 값을 1로 하여 공유메모리의 첫 번째 블록에 있는 멀티미디어 데이터를 읽어온다(S506b). K 번째 블록이 공유메모리의 마지막 블록이 아니고 다음 공유메모리 블록에 멀티미디어 데이터가 저장되어 있다면(S506a), 블록인덱스 K를 1 증가 시켜(S507) K 번째 다음 블록에 저장된 멀티미디어 데이터를 읽어온다.When the K-th block is the last block of the shared memory, the multimedia data in the first block of the shared memory is read by setting the block index value to 1 again (S506b). If the K-th block is not the last block of the shared memory and the multimedia data is stored in the next shared memory block (S506a), the block index K is increased by 1 (S507) to read the multimedia data stored in the K-th next block.

상기 도4 및 도 5에서 설명한 미디어 추출/저장 단계와 스트리밍 단계가 동시에 수행될 수 있는 것은 해당 과정들이 서로 다른 시스템에 의해서 동작되기 때문에 동시에 여러 프로세스가 동작할 수 있기 때문이다.The media extraction / storage step and the streaming step described in FIG. 4 and FIG. 5 may be simultaneously performed because several processes may operate simultaneously because the processes are operated by different systems.

참고적으로, 상기의 IPC 기반 연동의 알고리즘을 구현하는데 있어 세마포어와 공유메시지, 메시지 큐의 용도가 중요한 부분을 차지하는데, 실질적으로 이러한 것을 프로스램상으로 구현하기 위해 프로그램은 여러 개의 기능모듈과 객체 클래스(class)를 가진다. 이러한 기능 모듈과 객체 클래스는, C++, Java같은 객체지향 프로그래밍 (OOP, object-oriented programming)의 IPC 기반 연동의 알고리즘 구현을 위한 프로그래밍을 하는데 유용하다.For reference, the use of semaphores, shared messages, and message queues play an important part in implementing the IPC-based interworking algorithms. In order to implement these on a programmatic basis, a program has several functional modules and object classes. has a class These functional modules and object classes are useful for programming IPC-based algorithmic implementations of object-oriented programming (OOP) such as C ++ and Java.

본 발명의 기술사상은 상기 바람직한 실시 예에 따라 구체적으로 기술되었으나 상기한 실시 예는 그 설명을 위한 것으로서, 본 발명의 기술분야의 통상의 전문가라면 본 발명의 기술사상의 범위에서 다양한 실시 예가 가능함을 이해할 수 있을 것이다.Although the technical spirit of the present invention has been described in detail according to the above-described preferred embodiment, the above-described embodiment is for the purpose of description, and various ordinary embodiments of the present invention may be made by those skilled in the art. I can understand.

이상에서 설명한 바와 같이 본 발명은, 스트리밍 시스템과 멀티미디어 데이터베이스를 메시지 큐와 공유메모리, 세마포어를 이용하여 연동함으로써, 기존의스트리밍 시스템과 데이터베이스를 직접 연동시키는 방식에서 이루어 질 수 없었던 다양한 멀티미디어 서비스를 지원할 수 있다. 또한, 멀티미디어 정보 데이터, 멀티미디어 실행 데이터 등 다양한 멀티미디어 데이터를 모두 같은 시스템인 멀티미디어 데이터베이스에서 관리함으로써 클라이언트는 서버의 정보를 신뢰할 수 있고, 데이터베이스 서버에 저장된 멀티미디어 데이터를 블록단위로 전송함으로써, 클라이언트가 요구하는 사항에 따라 미디어의 검색 및 재결합을 통한 다양한 멀티미디 스트리밍 서비스가 가능하게 되었다.As described above, the present invention can support various multimedia services that could not be achieved by directly interworking a streaming system and a database by interworking a streaming system and a multimedia database using a message queue, a shared memory, and a semaphore. have. In addition, by managing various multimedia data such as multimedia information data and multimedia execution data in a multimedia database, which is the same system, the client can trust the information of the server and transmit the multimedia data stored in the database server in units of blocks. Depending on the requirements, various multimedia streaming services are possible through media search and recombination.

참고적으로, 본 발명에 의한 연동기법 적용시의 전송율에 대한 실험 결과를 살펴본다. 도 6은 기존의 스트리밍 시스템들이 채택하고 있는 파일 시스템에 저장된 미디어를 스트리밍 할 때와 본 발명에 따라서 멀티미디어 데이터베이스 시스템인 BeeHive 시스템 상에 블록단위로 저장된 미디어를 블록단위로 스트리밍 할 때 각각의 경우에 따른 데이터 전송률을 비교하여 그 성능 차이를 나타낸 그래프이다. 이 실험은 인트라넷 환경에서 1392640bits/sec로 인코딩 되어진 MPEG-1 미디어를 가지고 실험하였다. 그래프에서 점선은 파일 시스템을 이용했을 때의 결과이고, 실선은 멀티미디어 데이터베이스 시스템을 이용했을 때 나타나는 결과이며, 여기서 가로축은 스트리밍 경과 시간(sec)을 나타내고, 세로축은 초당 서버가 전송하는 데이터 양(Byte/Second)을 나타낸다.For reference, look at the experimental results for the transmission rate when applying the interlocking technique according to the present invention. FIG. 6 illustrates a case where streaming media stored in a file system adopted by existing streaming systems and streaming media stored in block units on a BeeHive system, which is a multimedia database system according to the present invention. A graph showing the performance difference by comparing data rates. This experiment was conducted with MPEG-1 media encoded in 1392640bits / sec in an intranet environment. The dotted line in the graph is the result of using the file system, the solid line is the result of using the multimedia database system, where the horizontal axis represents elapsed streaming time (sec), and the vertical axis represents the amount of data transmitted by the server per second (Byte). / Second).

실험 결과 파일 멀티미디어 데이터베이스 시스템과 연동한 스트리밍 서버의 경우는 데이터베이스로부터 미디어 블록을 추출하는데 걸리는 초기지연으로 인하여 스트리밍 초기에 어느 정도 시간이 지난 후에 안정적으로 스트리밍한다는 것을 알수 있다. 이때, 파일 스프리밍과 달리 데이터 전송 양의 변화 폭이 자주 생기는 것을 볼 수 있는데, 이는 스트리밍 서버가 두 개의 공유메모리에서 데이터를 꺼내올 때 메모리 믈록을 교체하면서 생기는 지연 시간으로 인하여 발생한 것이다. 그러나, 이러한 데이터 전송양의 변화 폭은 스트리밍 시 크게 영향을 끼치는 요소는 아니다. 따라서 본 발명에서 제안한 데이터베이스 기반의 스트리밍 방법을 사용함으로써, 파일 시스템 기반의 데이터를 스트리밍 하는 것에 비하여 큰 성능에 저하 없이 멀티미디어 데이터베이스 시스템 서비스를 제공함과 동시에 멀티미디어 데이터를 검색, 결합할 수 없는 파일 시스템 상의 단점을 극복할 수 있게 되었다. 향후, 두 개의 공유메모리 블록을 사용하는 데에서 기인되는 오버헤드를 줄이기 위하여 캐쉬 기능을 적용한다면 데이터 전송 양의 변화 폭을 줄일 수 있어 성능 향상을 이룰 수 있을 것으로 예측된다.Experimental results show that the streaming server linked with the file multimedia database system streams stably after some time at the beginning of the streaming due to the initial delay in extracting media blocks from the database. At this time, unlike file streaming, a change in data transfer amount occurs frequently, which is caused by a delay caused by replacing a memory block when a streaming server fetches data from two shared memories. However, the variation in the amount of data transmission is not a factor that greatly affects streaming. Therefore, by using the database-based streaming method proposed in the present invention, compared to streaming data based on the file system, while providing a multimedia database system service without a significant loss in performance, while at the same time can not search and combine the multimedia data on the file system Overcome it. In the future, if the cache function is applied to reduce the overhead caused by using two shared memory blocks, it is expected that the change of the data transfer amount can be reduced and the performance can be improved.

Claims (15)

데이터베이스 서버에 저장되어 있는 멀티미디어 데이터를 멀티미디어 재생기인 스트리밍 클라이언트에 전송하기 위한 멀티미디어 스트리밍 서버에 있어서, 상기 멀티미디어 스트리밍 서버는,In the multimedia streaming server for transmitting the multimedia data stored in the database server to the streaming client which is a multimedia player, the multimedia streaming server, 멀티미디어 데이터를 상기 스트리밍 클라이언트에게 전송하여 주는 스트리밍 시스템,Streaming system for transmitting the multimedia data to the streaming client, 저장되어 있는 멀티미디어 데이터를 상기의 스트리밍 시스템에 전송하는 멀티미디어 데이터베이스 시스템,Multimedia database system for transmitting the stored multimedia data to the streaming system, 상기의 멀티미디어 데이터베이스 시스템 내의 멀티미디어 데이터를 스트리밍 시스템으로 전송하기 위하여 임시적으로 데이터를 저장하는 공유메모리 및,Shared memory for temporarily storing the data for transmitting the multimedia data in the multimedia database system to the streaming system, 스트리밍 시스템과 멀티미디어 데이터베이스 시스템간에 메시지를 주고받는 장소로서, 스트리밍 서버내의 임시 저장 메모리인 스택(stack)에 존재하는 메시지 큐Message queues on the stack, temporary storage memory in a streaming server, where messages are exchanged between a streaming system and a multimedia database system. 를 구비하며,Equipped with 상기의 스트리밍 시스템은,The streaming system above, 멀티미디어 데이터를 스트리밍 클라이언트에 전송하기 위한 프로토콜에 따라 미디어 데이터를 패킷화하는 전송관리부,Transmission management unit for packetizing the media data according to the protocol for transmitting the multimedia data to the streaming client, 상기의 공유메모리로부터 멀티미디어 데이터를 읽어와서 디코딩한 후 전송관리부에게 전달해 주는 미디어 관리부 및A media management unit which reads and decodes multimedia data from the shared memory and delivers the multimedia data to the transmission management unit; 스트리밍 클라이언트로부터 스트리밍 요청이 있는 경우 해당 멀티미디어 스트리밍 세션을 생성하고 멀티미디어 데이터베이스 시스템에게 작업 메시지를 전송하며, 스트리밍 작업이 끝난 경우에는 스트리밍 세션을 삭제하는 기능을 하는 데이터베이스 커넥터A database connector that creates a multimedia streaming session when a streaming request is received from a streaming client, sends a job message to the multimedia database system, and deletes the streaming session when the streaming job is finished. 를 포함하며,Including; 상기의 멀티미디어 데이터베이스 시스템은,The multimedia database system, 멀티미디어 데이터가 저장된 장소로서, 스트리밍 시스템으로부터 스트리밍 요청된 멀티미디어 데이터를 상기의 공유메모리에 저장하는 기능을 하는 데이터베이스 서버,A database server storing multimedia data requested by a streaming system in the shared memory, the multimedia server storing a multimedia data; 상기의 데이터베이스 커넥터로부터 전달된 메시지를 해석하여 데이터베이스 서버로 하여금 해당 작업을 수행하도록 요청하는 미디어 클라이언트Media client that interprets the message from the database connector and requests the database server to perform the operation. 를 포함하는 것을 특징으로 하는 멀티미디어 스트리밍 서버.Multimedia streaming server comprising a. 제1항에 있어서, 상기의 공유메모리는,The method of claim 1, wherein the shared memory, 데이터가 블록단위로 저장되고 읽혀지도록 2이상의 블록단위 구조로 되어 있음을 특징으로 하는 멀티미디어 스트리밍 서버.Multimedia streaming server, characterized in that the structure of two or more block units so that data is stored and read in block units. 멀티미디어 재생기인 스트리밍 클라이언트로부터 멀티미디어 스트리밍 요청이 있는 때에 스트리밍 시스템은 스트리밍 시스템을 초기화하고, 멀티미디어 데이터베이스에게 전달할 메시지를 담아두는 메시지 큐와 멀티미디어 데이터가 저장되는 블록단위로 이루어진 공유메모리를 생성하는 초기화 단계와,The streaming system initializes the streaming system when a multimedia streaming request is received from the streaming client, which is a multimedia player, and initializes the streaming system and generates a shared memory including a message queue for storing messages to be delivered to the multimedia database, and a block unit for storing multimedia data. 스트리밍 시스템이 멀티미디어 데이터베이스 시스템으로부터 수령한 미디어 정보에 기초하여 해당 스트리밍에 대한 세션 아이디를 생성하고, 공유메모리 사용권한을 제어하는 데 쓰이는 세마포어를 생성하는 멀티미디어 정보 수령 단계와,A multimedia information receiving step of generating a session ID for the streaming based on the media information received from the multimedia database system by the streaming system, and generating a semaphore used to control the use of the shared memory; 스트리밍 시스템내의 데이터베이스 커넥터가 작업 메시지를 멀티미디어 데이터베이스 시스템내의 미디어 클라이언트에게 전송하는 메시지 전송단계와,Transmitting a message by a database connector in a streaming system to a media client in a multimedia database system; 상기의 메시지를 수령한 미디어 클라이언트가 메시지를 해석한 후, 해당 메시지에 따른 작업을 하도록 요구하는 트랜잭션을 멀티미디어 데이터베이스 시스템내의 데이터베이스 서버에게 요청하는 단계와,Requesting a database server in the multimedia database system for a transaction requiring the media client receiving the message to interpret the message and then acting on the message; 상기의 데이터베이스 서버가 요청된 트랜잭션에 따라 해당되는 멀티미디어 데이터를 추출하여 공유메모리에 저장하는 멀티미디어 데이터 추출 및 저장 단계와,Extracting and storing multimedia data in which the database server extracts corresponding multimedia data according to a requested transaction and stores the multimedia data in a shared memory; 상기의 멀티미디어 데이터 추출 및 저장 단계와 동시에 스트리밍 시스템이 공유메모리에 저장된 멀티미디어 데이터를 읽어와서 미디어 재생기인 스트리밍 클라이언트에게 스트리밍 해주는 단계 및,Simultaneously with the step of extracting and storing the multimedia data, the streaming system reads the multimedia data stored in the shared memory and streams it to the streaming client which is a media player; 상기의 전송하는 단계가 모두 끝난 후 스트리밍 시스템과 멀티미디어 데이터베이스 시스템간의 연동 세션을 닫고 할당받았던 공유메모리와 세마포어를 제거하는 세션 종료 단계End of session to close the interworking session between the streaming system and the multimedia database system and to remove the allocated shared memory and semaphore after all the above transmitting steps are completed. 를 포함하는 스트리밍 시스템과 멀티미디어 데이터베이스 시스템을 연동하는 방법.How to interwork with a streaming system and multimedia database system comprising a. 제3항에 있어서, 메시지 전송단계에 있어서 메시지의 구조는,The method of claim 3, wherein the message structure in the message transmission step, 작업 메시지의 종류를 나타내는 커맨드 필드와,A command field indicating the type of work message, 스트리밍을 요청한 스트리밍 클라이언트를 나타내고 해당 스트리밍 작업의 종류를 나타내는 세션 ID 필드와,A session ID field indicating the streaming client that requested the streaming and indicating the type of the streaming job; 데이터베이스 서버에 저장되어 있는 멀티미디어 데이터의 종류를 나타내는 데이터베이스 ID 필드 및,A database ID field indicating the type of multimedia data stored in the database server; 작업 메시지의 종류에 따른 해당 작업에 필요한 추가적인 정보가 담긴 파라미터 필드Parameter field containing additional information required for the task, depending on the type of task message. 를 포함하는 것을 특징으로 하는 스트리밍 시스템과 멀티미디어 데이터베이스 시스템을 연동하는 방법Method for interworking with a streaming system and a multimedia database system comprising a 제3항에 있어서, 메시지 전송단계에 있어서 메시지의 종류는,The method of claim 3, wherein the type of message in the message transmission step, 스트리밍 클라이언트로부터 요청된 멀티미디어의 정보를 전송해줄 것을 요청하는 메시지와,A message requesting to transmit the requested information of the multimedia from the streaming client, 스트리밍 클라이언트로부터 요청된 멀티미디어를 데이터베이스 서버로부처 추출하여 해당 데이터 블록 전부를 전송해줄 것을 요청하는 메시지와,A message requesting to extract the requested multimedia from the streaming client to the database server and to transmit all of the corresponding data blocks; 데이터베이스 서버가 전송하고 있는 데이터의 전송을 중지할 것을 요청하는 메시지와,A message requesting that the database server stop sending data that is being sent, 데이터베이스 서버에 저장되어 있는 멀티미디어들의 리스트를 전송해줄 것을요청하는 메시지와,A message requesting to transmit a list of multimedia stored in the database server, 데이터베이스 서버에 멀티미디어를 저장할 것을 요청하는 메시지 및,A message requesting that the multimedia server be stored, and 데이터베이스 서버에 저장된 멀티미디어를 삭제할 것을 요청하는 메시지Message requesting to delete multimedia stored on database server 를 포함하는 것을 특징으로 하는 스트리밍 시스템과 멀티미디어 데이터베이스 시스템을 연동하는 방법Method for interworking with a streaming system and a multimedia database system comprising a 제3항에 있어서, 멀티미디어 정보 수령 단계에서의 세마포어는,The method of claim 3, wherein the semaphore in the multimedia information receiving step, 공유메모리내의 각각의 블록마다 존재하는 것을 특징으로 하는 스트리밍 시스템과 멀티미디어 데이터베이스 시스템을 연동하는 방법.A method of interworking a streaming system and a multimedia database system, characterized in that each block exists in a shared memory. 제3항에 있어서, 멀티미디어 데이터 추출 및 저장 단계는,The method of claim 3, wherein the extracting and storing the multimedia data comprises: 멀티미디어 데이터베이스 시스템이 스트리밍 시스템으로부터 전송되어 온 메시지 요청에 해당하는 멀티미디어 데이터를 블록단위로 하여 추출하는 단계와,Extracting, by the multimedia database system, the multimedia data corresponding to the message request transmitted from the streaming system in units of blocks; 공유메모리 블록 인덱스 정수 값 N을 1로 설정하는 단계와,Setting the shared memory block index integer value N to 1, 상기에서 추출한 멀티미디어 데이터를 공유메모리의 N 번째 블록에 저장하는 N 번째 블록 저장 단계와,N-th block storing step of storing the extracted multimedia data in the N-th block of the shared memory, 추출한 멀티미디어 데이터의 마지막 블록이 공유메모리 N 번째 블록에 저장된 때에는 당해 데이터 추출 및 저장 단계를 종료하는 단계 및,When the last block of the extracted multimedia data is stored in the shared memory N-th block, ending the data extraction and storing step; 추출한 멀티미디어 데이터의 마지막 블록이 공유메모리의 N 번째 블록에 저장되지 못한 때에는 공유메모리 블록 인덱스 값을 1 증가시켜 공유메모리 N 번째다음 블록인 N+1 블록에 멀티미디어 데이터를 저장하는 공유메모리 N+1 번째 블록 저장 단계When the last block of the extracted multimedia data is not stored in the Nth block of the shared memory, the shared memory block index value is increased by 1, and the shared memory N + 1th is used to store the multimedia data in the N + 1 block, the Nth block next to the shared memory. Block save step 를 포함하는 것을 특징으로 하는 스트리밍 시스템과 멀티미디어 데이터베이스 시스템을 연동하는 방법.Method of interlocking a streaming system and a multimedia database system comprising a. 제7항에 있어서, 공유메모리 N+1 번째 블록 저장 단계는,The method of claim 7, wherein the N + 1 th block storing step of shared memory, 멀티미디어 데이터베이스 시스템에서 추출된 멀티미디어 데이터의 마지막 블록이 공유메모리 N 번째 블록에 저장될 때까지 반복하는 것을 특징으로 하는 스트리밍 시스템과 멀티미디어 데이터베이스 시스템을 연동하는 방법.A method of interworking a streaming system with a multimedia database system, wherein the last block of the multimedia data extracted from the multimedia database system is repeated until the last block of the multimedia data is stored in the shared memory Nth block. 제7항에 있어서, 공유메모리 N+1 번째 블록 저장 단계는,The method of claim 7, wherein the N + 1 th block storing step of shared memory, N 번째 블록이 공유메모리 마지막 블록일 때에는 N+1번째 블록대신에 공유메모리 첫 번째 블록에 멀티미디어 데이터를 저장하는 것을 특징으로 하는 스트리밍 시스템과 멀티미디어 데이터베이스 시스템을 연동하는 방법.If the N-th block is the last block of the shared memory, the streaming system and the multimedia database system, characterized in that the multimedia data is stored in the first block of the shared memory instead of the N + 1-th block. 제7항에 있어서, 추출한 멀티미디어 데이터를 공유메모리의 N 번째 블록 저장 단계 및 N+1 번째 블록 저장 단계는,The method according to claim 7, wherein the storing of the extracted multimedia data in the N-th block and the N + 1-th block storing step of the shared memory comprises: 각 블록의 세마포어를 멀티미디어 데이터베이스 시스템만 사용하도록 하는 사용중(in use) 값 설정 단계와,A step of setting an in use value so that the semaphore of each block is used only by the multimedia database system, 추출한 멀티미디어 데이터를 공유메모리 각 블록에 저장하는 단계 및,Storing the extracted multimedia data in each block of the shared memory; 해당 블록에 대한 저장단계가 끝난 후 공유메모리 각 블록의 세마포어를 미사용(not use) 값으로 설정하는 단계After the save step is completed, set the semaphore of each block of the shared memory to a not use value. 를 포함하는 것을 특징으로 하는 스트리밍 시스템과 멀티미디어 데이터베이스 시스템을 연동하는 방법.Method of interlocking a streaming system and a multimedia database system comprising a. 제3항에 있어서, 공유메모리에 저장된 멀티미디어 데이터를 스트리밍 시스템이 읽어오는 단계는,The method of claim 3, wherein the streaming system reads the multimedia data stored in the shared memory. 공유메모리 블록 인덱스 정수 값 K를 1로 설정하는 단계와,Setting the shared memory block index integer value K to 1, 공유메모리 K 번째 블록에 저장된 멀티미디어 데이터를 읽어오는 K 번째 블록 읽기 단계와,Reading the K-th block to read the multimedia data stored in the K-th block of the shared memory; 읽어온 멀티미디어 데이터가 마지막 블록일 때에는 멀티미디어 데이터를 읽어오는 단계를 종료하는 단계 및,Terminating the step of reading the multimedia data when the read multimedia data is the last block; 읽어온 멀티미디어 데이터가 마지막 블록이 아닐 때에는 공유메모리 블록 인덱스 값을 1 증가시켜 공유메모리 K 번째 다음 블록인 K+1블록에 있는 멀티미디어 데이터를 읽어오는 공유메모리 K+1 번째 블록 읽기 단계If the read multimedia data is not the last block, read the shared memory K + 1st block to read the multimedia data in K + 1 block, the K-th block of shared memory K by increasing the shared memory block index value by 1. 를 포함하는 것을 특징으로 하는 스트리밍 시스템과 멀티미디어 데이터베이스 시스템을 연동하는 방법.Method of interlocking a streaming system and a multimedia database system comprising a. 제11항에 있어서, 공유메모리 K+1 번째 읽기 단계는,12. The method of claim 11, wherein the shared memory K + 1 th read step includes: 데이터베이스 서버로부터 추출한 멀티미디어 데이터의 마지막 블록을 읽어올때까지 반복하는 것을 특징으로 하는 스트리밍 시스템과 멀티미디어 데이터베이스 시스템을 연동하는 방법.A method of interworking a streaming system and a multimedia database system, characterized by repeating until the last block of the multimedia data extracted from the database server is read. 제11항에 있어서, 공유메모리 K+1 번째 블록 읽기 단계는,The method of claim 11, wherein the reading of the shared memory K + 1 th block comprises: K 번째 블록이 공유메모리 마지막 블록일 때에는 공유메모리 K+1 번째 블록 대신 첫 번째 블록에 있는 멀티미디어 데이터를 읽어오는 것을 특징으로 하는 스트리밍 시스템과 멀티미디어 데이터베이스 시스템을 연동하는 방법.When the K-th block is the last block of the shared memory, the streaming system and the multimedia database system, wherein the multimedia data is read in the first block instead of the shared memory K + 1 th block. 제11항에 있어서, 공유메모리의 K 번째 블록 읽기 단계 및 K+1 번째 블록 읽기 단계는,The method of claim 11, wherein the reading of the K th block and the K + 1 th read step of the shared memory include: 각 블록의 세마포어를 스트리밍 시스템만 사용하도록 설정하는 사용중(in use) 값 설정 단계와,An in use value setting step of setting the semaphore of each block to use only the streaming system, 공유메모리 각 블록에서 데이터를 읽어오는 단계 및,Reading data from each block of shared memory; 해당 블록의 멀티미디어 데이터를 읽어오는 단계가 끝난 후 공유메모리 각 블록의 세마포어를 미사용(not use) 값으로 설정하는 단계After the step of reading the multimedia data of the block is completed, the step of setting the semaphore of each block of the shared memory to a not use value 를 포함하는 것을 특징으로 하는 스트리밍 시스템과 멀티미디어 데이터베이스 시스템을 연동하는 방법.Method of interlocking a streaming system and a multimedia database system comprising a. 제10항 또는 제14항에 있어서, 사용중(in use) 값 설정 단계는,15. The method of claim 10 or 14, wherein the setting the in use value comprises: 해당 블록의 세마포어를 읽어와서 세마포어의 상태를 확인하는 단계와,Reading the semaphore of the block and checking the state of the semaphore; 세마포어 확인결과 해당 공유메모리가 다른 시스템에 의해 이용되고 있지 아니할 때에는 세마포어를 사용중(in use) 값으로 설정하는 단계 및,Setting the semaphore to an in use value when the shared memory is not used by another system as a result of checking the semaphore, and 세마포어 확인결과 해당 공유메모리가 이미 다른 시스템에 의해 이용되고 있는 때에는, 세마포어를 계속 관찰하며 대기하다 세마포어 값이 공유메모리 미사용(not use)으로 될 때에 해당 세마포어를 사용중(in use) 값으로 설정하는 단계If the shared memory is already in use by another system, the semaphore checks and waits for the semaphore. When the semaphore value is not used, the semaphore is set to an in use value. 를 포함하는 것을 특징으로 하는 스트리밍 시스템과 멀티미디어 데이터베이스 시스템을 연동하는 방법.Method of interlocking a streaming system and a multimedia database system comprising a.
KR10-2002-0028130A 2002-05-21 2002-05-21 A multimedia streaming server and an Interconnection Method of multimedia streaming system and multimedia database KR100426270B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2002-0028130A KR100426270B1 (en) 2002-05-21 2002-05-21 A multimedia streaming server and an Interconnection Method of multimedia streaming system and multimedia database

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0028130A KR100426270B1 (en) 2002-05-21 2002-05-21 A multimedia streaming server and an Interconnection Method of multimedia streaming system and multimedia database

Publications (2)

Publication Number Publication Date
KR20030090130A KR20030090130A (en) 2003-11-28
KR100426270B1 true KR100426270B1 (en) 2004-04-08

Family

ID=32383758

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0028130A KR100426270B1 (en) 2002-05-21 2002-05-21 A multimedia streaming server and an Interconnection Method of multimedia streaming system and multimedia database

Country Status (1)

Country Link
KR (1) KR100426270B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101728417B1 (en) * 2011-12-15 2017-05-04 엔트릭스 주식회사 System and method for providing service menu based on cloud streaming

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5893097A (en) * 1995-08-29 1999-04-06 Fuji Xerox Co., Ltd. Database management system and method utilizing a shared memory
WO2000062199A2 (en) * 1999-04-14 2000-10-19 Tyco Submarine Systems, Ltd. Database management architecture
JP2001229058A (en) * 2000-02-16 2001-08-24 Hitachi Ltd Data base server processing method
WO2001093101A2 (en) * 2000-06-01 2001-12-06 Moani, Inc. Video messaging system
KR20030026373A (en) * 2001-09-06 2003-04-03 오정석 Transmitting server having apparatus for managing memory and method thereof

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5893097A (en) * 1995-08-29 1999-04-06 Fuji Xerox Co., Ltd. Database management system and method utilizing a shared memory
WO2000062199A2 (en) * 1999-04-14 2000-10-19 Tyco Submarine Systems, Ltd. Database management architecture
JP2001229058A (en) * 2000-02-16 2001-08-24 Hitachi Ltd Data base server processing method
WO2001093101A2 (en) * 2000-06-01 2001-12-06 Moani, Inc. Video messaging system
KR20030026373A (en) * 2001-09-06 2003-04-03 오정석 Transmitting server having apparatus for managing memory and method thereof

Also Published As

Publication number Publication date
KR20030090130A (en) 2003-11-28

Similar Documents

Publication Publication Date Title
US6581102B1 (en) System and method for integrating arbitrary isochronous processing algorithms in general media processing systems
US6865610B2 (en) Wire protocol for a media server system
US6029194A (en) Audio/video media server for distributed editing over networks
US6807667B1 (en) Method and system of an application program interface for abstracting network traffic control components to application programs
EP0698982B1 (en) A semiconductor memory based server for providing multimedia information on demand over wide area networks
KR20030056701A (en) Apparatus and method for providing multimedia streaming service by using point-to-point connection
WO1994011814A1 (en) Collaborative working in a network
JP2009512279A (en) Media data processing using different elements for streaming and control processing
CN106411767A (en) Transporting operations of arbitrary size over remote direct memory access
US6339794B2 (en) Wire protocol for a media server system
JP2002520732A (en) Inexpensive and scalable open architecture media server
US20060187925A1 (en) Method for performing data transport over a serial bus using Internet Protocol and apparatus for use in the method
KR20050002604A (en) System and method for message-based scalable data transport
JPH10504668A (en) Method for simultaneously digitally processing a plurality of data packets to be transmitted from or to an audio / video device in a computer system
KR100426270B1 (en) A multimedia streaming server and an Interconnection Method of multimedia streaming system and multimedia database
Zitterbart et al. Application-driven flexible protocol configuration
Vina et al. Real-time multimedia systems
Tsaoussidis et al. A CORBA-based application service middleware architecture and implementation
KR100823731B1 (en) Apparatus and method of content installation in the high-performance streaming server system
Schill et al. A quality of service abstraction tool for advanced distributed applications
Yang et al. Architecture of high capacity vod server and the implementation of its prototype
Wang et al. Cooperating intelligent mobile agents mechanism for distributed multimedia synchronization
Amini et al. Mediamesh: An architecture for integrating isochronous processing algorithms into media servers
Cortes et al. Data to the People-It’sa Matter of Control
Teixeira et al. A Free Software Streaming Video Application based on MMTP

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20110328

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee