KR101602645B1 - Middleware device for efficient data collection and efficient data collection method of middleware device - Google Patents
Middleware device for efficient data collection and efficient data collection method of middleware device Download PDFInfo
- Publication number
- KR101602645B1 KR101602645B1 KR1020140031992A KR20140031992A KR101602645B1 KR 101602645 B1 KR101602645 B1 KR 101602645B1 KR 1020140031992 A KR1020140031992 A KR 1020140031992A KR 20140031992 A KR20140031992 A KR 20140031992A KR 101602645 B1 KR101602645 B1 KR 101602645B1
- Authority
- KR
- South Korea
- Prior art keywords
- queue
- data
- queues
- socket
- middleware
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1482—Generic software techniques for error detection or fault masking by means of middleware or OS functionality
Abstract
본 발명은 효율적인 데이터 수집을 위한 미들웨어 장치 그리고 미들웨어 장치의 효율적인 데이터 수집 방법에 관한 것으로서, 데이터 송신 장치로부터 소켓으로 데이터가 전송됨에 따라, 미들웨어 장치가 복수의 큐를 포함한 클러스터링 큐에서 특정 큐를 선택하여 상기 소켓에 할당하는 단계, 상기 미들웨어 장치가 상기 소켓으로 전송된 데이터를 상기 특정 큐에 저장하는 단계, 상기 미들웨어 장치가 상기 클러스터링 큐에 포함된 상기 복수의 큐에 유휴(idle) 상태인 큐가 존재하는지 관찰하는 단계, 및 상기 미들웨어 장치가 관찰 결과에 따라 유휴 상태인 특정 큐에 저장된 데이터를 데이터베이스에 저장하는 단계를 포함하며, 이를 통해 클러스터링 큐에 포함된 복수의 큐 중 특정 큐를 선택하여 소켓에 할당함으로서, 소켓으로 전송된 데이터를 큐에 임시로 저장함에 따른 시간이 단축되고, 데이터 수집 및 저장을 위한 전체 소요시간이 절약된다.The present invention relates to an efficient data collection method for a middleware apparatus and a middleware apparatus for efficiently collecting data. As data is transmitted from a data transmission apparatus to a socket, a middleware apparatus selects a specific queue from a plurality of queues including a plurality of queues Storing the data transmitted to the socket in the specific queue; and transmitting, by the middleware apparatus, data stored in the queue to the socket, And storing the data stored in a specific queue that is idle according to the observation result in the database, thereby selecting a specific one of the plurality of queues included in the clustering queue and storing the selected queue in the socket By allocating, the data sent to the socket is queued The time required for temporary storage is shortened, and the total time for data collection and storage is saved.
Description
본 발명은 데이터 수집 기술과 관련한 것으로, 더욱 상세하게는 데이터를 수집하여 데이터베이스에 저장하는 미들웨어 장치의 데이터 수집 효율을 개선한, 효율적인 데이터 수집을 위한 미들웨어 장치 그리고 미들웨어 장치의 효율적인 데이터 수집 방법에 관한 것이다.The present invention relates to a data collection technique, and more particularly, to a middleware apparatus and an efficient data collection method for a middleware apparatus for efficiently collecting data, which improves the data collection efficiency of a middleware apparatus that collects data and stores the collected data in a database .
사물에 통신 기능을 부과하여 지능적으로 정보를 수집하고 전달하는 사물통신(M2M, Machine to Machine) 기술에 대한 연구가 진행되어 상용화가 이루어지고 있다. 이러한 사물통신을 이용해 특정 센서에서 수집한 정보나 특정 기기의 정보를 다른 기기와의 통신을 통해 전송하는 방식으로 정보의 수집이 가능하게 되었다.M2M (Machine to Machine) technology, which intelligently collects and transmits information by imposing a communication function on objects, has been studied and commercialized. By using this object communication, it is possible to collect information by collecting information collected from a specific sensor or information of a specific device through communication with other devices.
도 1은 종래의 미들웨어 장치가 데이터를 수집하여 저장하는 모습을 나타낸 도면이다. 도 1에서 각종 정보를 수집하여 전송하는 클라이언트 장치(1)는 미들웨어 장치(2)로 데이터를 전송하고, 미들웨어 장치(2)는 수집한 데이터를 데이터베이스(3)에 저장하여 보관한다.FIG. 1 is a diagram illustrating a conventional middleware device collecting and storing data. In FIG. 1, the
이때, 클라이언트 장치(1)는 복수의 클라이언트(1-1, 1-2, ..., 1-n)를 포함하고, 각 클라이언트(1-1, 1-2, ..., 1-n)는 대응하는 미들웨어 장치(2)의 소켓(2-1, 2-2, ..., 2-n)으로 데이터를 전송한다. 그런데 미들웨어 장치(2)는 소켓(2-1, 2-2, ..., 2-n)으로 전송되는 데이터를 한꺼번에 데이터베이스(3)에 저장할 수 없어, 각각의 데이터를 효율적으로 저장하기 위한 방안이 요청된다.At this time, the
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 데이터를 수집하여 데이터베이스에 저장하는 미들웨어 장치에서, 클러스터링 큐를 이용해 저장에 따른 소요 시간을 현저히 단축할 수 있는, 효율적인 데이터 수집을 위한 미들웨어 장치 그리고 미들웨어 장치의 효율적인 데이터 수집 방법을 제공하기 위한 것이다.SUMMARY OF THE INVENTION It is an object of the present invention to solve the above problems and to provide a middleware apparatus for efficiently collecting data, which can significantly reduce a time required for storage using a clustering queue in a middleware apparatus for collecting data and storing the collected data in a database, And to provide an efficient data collection method of the middleware device.
상기와 같은 목적을 달성하기 위한 본 발명의 효율적인 데이터 수집을 위한 미들웨어 장치는, 데이터 송신 장치로부터 소켓으로 데이터가 전송됨에 따라, 복수의 큐를 포함한 클러스터링 큐에서 특정 큐를 선택하여 상기 소켓에 할당하는 큐 관리 모듈, 상기 소켓으로 전송된 데이터를 상기 특정 큐에 저장하는 큐 저장 모듈, 및 상기 클러스터링 큐에 포함된 상기 복수의 큐를 관찰하고, 유휴(idle) 상태인 상기 특정 큐에 저장된 데이터를 데이터베이스에 저장하는 데이터 저장 모듈을 포함하는 것을 특징으로 한다.According to another aspect of the present invention, there is provided a middleware apparatus for efficiently collecting data, the apparatus comprising: a plurality of queues including a plurality of queues, A queue management module, a queue storage module for storing the data transmitted to the socket in the specific queue, and the plurality of queues included in the clustering queue, and for storing data stored in the specific queue in an idle state, And a data storage module for storing the data.
본 발명의 효율적인 데이터 수집을 위한 미들웨어 장치에 있어서, 상기 큐 관리 모듈은, 상기 클러스터링 큐에 포함된 상기 복수의 큐의 개수를 조절하거나, 상기 복수 큐에 할당된 각 메모리의 크기를 조절하는 것을 특징으로 한다.In the middleware apparatus for efficient data collection according to the present invention, the queue management module may adjust the number of the plurality of queues included in the clustering queue, or adjust the size of each memory allocated to the plurality of queues .
본 발명의 효율적인 데이터 수집을 위한 미들웨어 장치에 있어서, 상기 큐 관리 모듈은, 상기 복수의 큐의 가용 저장 공간을 참조하여 상기 특정 큐를 상기 소켓에 할당하는 것을 특징으로 한다.In the middleware apparatus for efficiently collecting data according to the present invention, the queue management module allocates the specific queue to the socket by referring to the available storage space of the plurality of queues.
본 발명의 효율적인 데이터 수집을 위한 미들웨어 장치에 있어서, 상기 데이터 저장 모듈은, 먼저 발견된 유휴 큐의 데이터를 데이터베이스에 먼저 저장하거나, 복수의 유휴 큐의 가용 저장 공간을 참조하여 특정 유휴 큐의 데이터를 데이터베이스에 먼저 저장하는 것을 특징으로 한다.In the middleware apparatus for efficient data collection according to the present invention, the data storage module stores data of an idle queue found first in a database or refers to an available storage space of a plurality of idle queues, And stores it in the database first.
상기와 같은 목적을 달성하기 위한 본 발명의 미들웨어 장치의 효율적인 데이터 수집 방법은, 데이터 송신 장치로부터 소켓으로 데이터가 전송됨에 따라, 미들웨어 장치가 복수의 큐를 포함한 클러스터링 큐에서 특정 큐를 선택하여 상기 소켓에 할당하는 단계, 상기 미들웨어 장치가 상기 소켓으로 전송된 데이터를 상기 특정 큐에 저장하는 단계, 상기 미들웨어 장치가 상기 클러스터링 큐에 포함된 상기 복수의 큐에 유휴(idle) 상태인 큐가 존재하는지 관찰하는 단계, 및 상기 미들웨어 장치가 관찰 결과에 따라 유휴 상태인 특정 큐에 저장된 데이터를 데이터베이스에 저장하는 단계를 포함하는 것을 특징으로 한다.According to another aspect of the present invention, there is provided a method for efficiently collecting data in a middleware apparatus, the method comprising the steps of: receiving data from a data transmitting apparatus to a socket, the middleware apparatus selecting a specific queue from a clustering queue including a plurality of queues, Storing the data transmitted to the socket in the specific queue; and checking whether the middleware apparatus has queues that are idle in the plurality of queues included in the clustering queue And storing the data stored in the specific queue that is idle in accordance with the observation result in the database by the middleware apparatus.
본 발명의 미들웨어 장치의 효율적인 데이터 수집 방법에 있어서, 상기 소켓에 할당하는 단계 전에, 상기 미들웨어 장치가 상기 클러스터링 큐에 포함된 상기 복수의 큐의 개수를 조절하거나, 상기 복수 큐에 할당된 각 메모리의 크기를 조절하는 단계를 더 포함하는 것을 특징으로 한다.In the method of efficiently collecting data of the middleware apparatus of the present invention, before the step of allocating to the socket, the middleware apparatus adjusts the number of the plurality of queues included in the clustering queue, And a step of adjusting the size.
본 발명의 미들웨어 장치의 효율적인 데이터 수집 방법에 있어서, 상기 소켓에 할당하는 단계는, 상기 미들웨어 장치가 상기 복수의 큐의 가용 저장 공간을 참조하여 상기 특정 큐를 상기 소켓에 할당하는 것을 특징으로 한다.In the efficient data collection method of the middleware apparatus of the present invention, in the step of allocating to the socket, the middleware apparatus refers to the available storage space of the plurality of queues and allocates the specific queue to the socket.
본 발명의 미들웨어 장치의 효율적인 데이터 수집 방법에 있어서, 상기 데이터베이스에 저장하는 단계는, 상기 미들웨어 장치가 먼저 발견된 유휴 큐의 데이터를 데이터베이스에 먼저 저장하거나, 복수의 유휴 큐의 가용 저장 공간을 참조하여 특정 유휴 큐의 데이터를 데이터베이스에 먼저 저장하는 것을 특징으로 한다.In the method of efficiently collecting data in the middleware apparatus according to the present invention, the step of storing the data in the database may firstly store data of the idle queue found by the middleware apparatus in the database or refer to an available storage space of a plurality of idle queues And the data of the specific idle queue is first stored in the database.
상기와 같은 목적을 달성하기 위해 본 발명은, 상기한 미들웨어 장치의 효율적인 데이터 수집 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능 기록매체를 제공한다.In order to accomplish the above object, the present invention provides a computer readable recording medium on which a program for performing an efficient data collection method of the above-described middleware apparatus is recorded.
본 발명의 효율적인 데이터 수집을 위한 미들웨어 장치 그리고 미들웨어 장치의 효율적인 데이터 수집 방법에 따르면, 데이터를 수집하는 미들웨어 장치가, 클러스터링 큐에 포함된 복수의 큐 중 특정 큐를 선택하여 소켓에 할당함으로서, 소켓으로 전송된 데이터를 큐에 저장함에 따른 시간이 단축된다. 또한 미들웨어 장치는 클러스터링 큐 중 유휴(idle) 상태인 큐를 찾아, 해당 유휴 큐에 저장된 데이터를 데이터베이스에 저장함으로서, 각 큐에 저장된 데이터를 차례로 데이터베이스에 저장할 수 있다.According to an efficient data collection method of a middleware apparatus and a middleware apparatus for efficient data collection of the present invention, a middleware apparatus for collecting data selects a specific queue among a plurality of queues included in a clustering queue and allocates the queue to a socket, The time taken to store the transmitted data in the queue is shortened. In addition, the middleware apparatus can find the queues in the idle state among the clustering queues, store the data stored in the idle queues in the database, and store the data stored in each queue in the database in sequence.
도 1은 종래의 미들웨어 장치가 데이터를 수집하여 저장하는 모습을 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 미들웨어 장치가 데이터를 수집하여 저장하는 모습을 나타낸 도면이다.
도 3은 본 발명의 다른 일 실시예에 따른 미들웨어 장치가 데이터를 수집하여 저장하는 모습을 나타낸 도면이다.
도 4는 도 3의 실시예에 따른 미들웨어 장치의 구성을 나타낸 도면이다.
도 5는 본 발명의 다른 일 실시예에 따라 미들웨어 장치가 데이터를 수집하는 과정을 나타낸 도면이다.FIG. 1 is a diagram illustrating a conventional middleware device collecting and storing data.
2 is a diagram illustrating a state in which a middleware apparatus according to an embodiment of the present invention collects and stores data.
3 is a diagram illustrating a state in which a middleware apparatus according to another embodiment of the present invention collects and stores data.
4 is a diagram illustrating a configuration of a middleware apparatus according to the embodiment of FIG.
5 is a flowchart illustrating a process of collecting data by a middleware according to another embodiment of the present invention.
하기의 설명에서는 본 발명의 실시예를 이해하는데 필요한 부분만이 설명되며, 그 이외 부분의 설명은 본 발명의 요지를 흩트리지 않도록 생략될 것이라는 것을 유의하여야 한다.In the following description, only parts necessary for understanding the embodiments of the present invention will be described, and the description of other parts will be omitted so as not to obscure the gist of the present invention.
이하에서 설명되는 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 바람직한 실시예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.The terms and words used in the present specification and claims should not be construed as limited to ordinary or dictionary meanings and the inventor is not limited to the meaning of the terms in order to describe his invention in the best way. It should be interpreted as meaning and concept consistent with the technical idea of the present invention. Therefore, the embodiments described in the present specification and the configurations shown in the drawings are merely preferred embodiments of the present invention, and are not intended to represent all of the technical ideas of the present invention, so that various equivalents And variations are possible.
본 발명은 데이터를 수집하는 미들웨어 장치와 관련한 것이다. 이하, 첨부된 도면을 참조하여 본 발명의 실시예를 보다 상세하게 설명하기로 한다.The present invention relates to a middleware apparatus for collecting data. Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 2는 본 발명의 일 실시예에 따른 미들웨어 장치(20)가 데이터를 수집하여 저장하는 모습을 나타낸 도면이다.FIG. 2 is a diagram illustrating a state in which the
도 2를 참조하면, 데이터 송신 장치(10), 미들웨어 장치(20) 및 데이터베이스(60)가 도시되어 있다.Referring to FIG. 2, a
데이터 송신 장치(10)는 각종 정보를 수집하여 미들웨어 장치(20)로 전송하는 장치로서, 사물통신(M2M, Machine to Machine)을 통해 정보를 송수신하는 장치가 될 수 있다.The
사물통신이란 사람이나 사물과 환경에 대한 정보를 감지, 저장, 가공, 통합할 수 있고, 언제 어디서나 안전하고 편리하게 원하는 맞춤형 지식/지능 정보 서비스를 제공할 수 있는 방송 통신 융합 인프라를 의미한다. 이러한 사물통신은 광대역 통합망(BcN), 차세대 인터넷 주소 체계(IPv6) 같은 사람 중심의 인터넷 인프라를 인간 대 사물, 사물 대 사물 간의 영역으로 확대하고 연계해, 안전하게 정보를 감지, 전달할 수 있는 환경을 제공한다.Object communication refers to a broadcasting and communication convergence infrastructure that can detect, store, process, and integrate information about people, objects and environments, and provide customized knowledge / intelligence information services that are safe and convenient anytime and anywhere. This kind of object communication extends the human-centered Internet infrastructure such as Broadband Integrated Network (BcN) and Next Generation Internet Address System (IPv6) to the area between human vs. object, object-to-object, to provide.
데이터 송신 장치(10)는 각종 상황을 감지하기 위한 센서를 포함할 수 있고, 사물통신 등을 통해 각종 메시지나 데이터를 송수신하기 위한 통신 인터페이스를 구비한다.The
데이터베이스(60)는 미들웨어 장치(20)가 수집한 데이터를 저장하기 위한 저장소이다. 데이터베이스(60)는 데이터를 구조화하여 저장함으로써 자료 검색과 갱신의 효율을 높일 수 있다.The
미들웨어 장치(20)는 데이터 송신 장치(10)로부터 수집한 데이터를 데이터베이스(60)에 저장하는 기능을 한다.The
통상 미들웨어(middleware)는 클라이언트와 서버 간의 통신을 담당하는 시스템 소프트웨어 또는 컴퓨터와 컴퓨터의 연결을 담당하는 시스템 소프트웨어를 말하며, 일반적으로 미들웨어는 광범위한 개념으로 해석된다. 이러한 미들웨어는 이기종 구성요소 간 확장 기능을 제공하며, 특정 응용 프로그램의 프로시저(procedure)를 다른 응용 프로그램에서 호출할 수 있도록 하거나, 응용 프로그램의 객체를 배포하여 이기종 네트워크 간에 공유할 수 있도록 하거나, 분산 응용 프로그램 간에 메시지 및 데이터를 전달하고 교환할 수 있게 해 준다.Middleware usually refers to system software that is responsible for communication between a client and a server or system software that is responsible for connecting a computer and a computer. In general, middleware is interpreted as a broad concept. This middleware provides extensibility between heterogeneous components and can be used to make a procedure of a specific application callable by another application or to distribute an object of an application program so that it can be shared among heterogeneous networks, It allows you to communicate and exchange messages and data between applications.
본 실시예의 미들웨어 장치(20)는 각각의 데이터 송신 장치(10)와 통신을 수행하기 위한 통신 인터페이스를 구비하고, 데이터 송신 장치(10)로부터 수신된 데이터에서 유효 데이터를 추출하여 데이터베이스(60)에 저장할 수 있다.The
이때, 데이터 송신 장치(10)의 각 객체(10-1, 10-2, ..., 10-n)는, 미들웨어 장치(20)의 각 소켓(20-1, 20-2, ..., 20-n)으로 데이터를 전송한다. 소켓(socket)은 미들웨어 장치(20)의 특정 서비스를 식별하는 식별자로서, 미들웨어 장치(20)는 소켓의 프로토콜 체계, 소켓의 전송 타입, 소켓이 통신하는데 사용하는 프로토콜을 정의하여 각 소켓(20-1, 20-2, ..., 20-n)을 생성할 수 있다.At this time, each of the objects 10-1, 10-2, ..., 10-n of the
그리고 미들웨어 장치(20)의 내부 쓰레드(thread)는 각 소켓(20-1, 20-2, ..., 20-n)을 통해 수신된 데이터를 큐(30)에 임시로 저장한다. 큐(queue)는, 리스트의 한쪽에서는 데이터가 삽입되고 다른쪽에서는 데이터가 삭제되도록 순서화된 것으로서, 먼저 삽입된 데이터가 가장 먼저 삭제된다. 이때 미들웨어 장치(20)는 큐(30)에 데이터가 삽입된 순서에 따라 먼저 저장된 데이터부터 순차적으로 데이터베이스(60)에 저장하고, 데이터베이스(60)에 쓰여진 데이터를 큐(30)에서 삭제한다.The internal thread of the
본 실시예에서는 미들웨어 장치(20)가 데이터베이스(60)에 데이터를 쓰기 전에, 내부의 큐(30)를 이용하여 임시로 저장함으로써, 데이터 수집에 따른 시간을 절약할 수 있다. 다만, 소켓(20-1, 20-2, ..., 20-n)을 통해 수신한 데이터를 단일의 큐(30)에 저장함으로써, 데이터의 임시 저장을 위한 대기 시간이 발생하는 한계가 있다.In the present embodiment, the
이와 같은 점을 개선한 본 발명의 다른 실시예에 대해서는 도 3 및 도 4를 참조하여 설명하기로 한다.Another embodiment of the present invention, which has been improved in this respect, will be described with reference to FIGS. 3 and 4. FIG.
도 3은 본 발명의 다른 일 실시예에 따른 미들웨어 장치(40)가 데이터를 수집하여 저장하는 모습을 나타낸 도면이다. 도 4는 도 3의 실시예에 따른 미들웨어 장치(40)의 구성을 나타낸 도면이다.FIG. 3 is a diagram illustrating a state in which the
도 3을 참조하면, 데이터 송신 장치(10), 미들웨어 장치(40) 및 데이터베이스(60)가 도시되어 있다.Referring to FIG. 3, a
데이터 송신 장치(10) 및 데이터베이스(60)의 기능은 도 2를 참조하여 설명한 바와 유사하므로, 이하에서는 미들웨어 장치(40)의 차별화된 기능을 중심으로 설명한다.The functions of the
데이터 송신 장치(10)는 각종 정보를 수집하여 미들웨어 장치(40)로 전송하는 장치로서, 각종 상황을 감지하기 위한 센서를 포함할 수 있고, 사물통신 등을 통해 각종 메시지나 데이터를 송수신하기 위한 통신 인터페이스를 구비할 수 있다.The
데이터베이스(60)는 미들웨어 장치(20)가 수집한 데이터를 저장하기 위한 저장소이다. The
미들웨어 장치(40)는 데이터 송신 장치(10)로부터 수집한 데이터를 데이터베이스(60)에 저장하는 기능을 한다.The
본 실시예의 미들웨어 장치(40)는 각각의 데이터 송신 장치(10)와 통신을 수행하기 위한 통신 인터페이스를 구비하고, 데이터 송신 장치(10)로부터 수신된 데이터에서 유효 데이터를 추출하여 데이터베이스(60)에 저장할 수 있다.The
이때, 데이터 송신 장치(10)의 각 객체(10-1, 10-2, ..., 10-n)는, 미들웨어 장치(40)의 각 소켓(40-1, 40-2, ..., 40-n)으로 데이터를 전송한다. 소켓(socket)은 미들웨어 장치(40)의 특정 서비스를 식별하는 식별자로서, 미들웨어 장치(40)는 소켓의 프로토콜 체계, 소켓의 전송 타입, 소켓이 통신하는데 사용하는 프로토콜을 정의하여 각 소켓(40-1, 40-2, ..., 40-n)을 생성할 수 있다.At this time, each of the objects 10-1, 10-2, ..., 10-n of the
한편 미들웨어 장치(40)는 복수의 큐(50-1, 50-2, ..., 50-n)를 포함한 클러스터링(clustering) 큐(50)를 구비한다. 클러스터링 큐(50)는 데이터의 임시 저장소인 큐(50-1, 50-2, ..., 50-n)들의 묶음이다.Meanwhile, the
이때, 미들웨어 장치(40)의 내부 쓰레드(thread)는 각 소켓(40-1, 40-2, ..., 40-n)을 통해 수신된 데이터를, 대응하는 큐(50-1, 50-2, ..., 50-n)에 임시로 저장한 후, 데이터베이스(60)에 저장한다.At this time, the internal thread of the
이러한 동작을 수행하는 미들웨어 장치(40)는 도 4와 같이 큐 관리 모듈(21), 큐 저장 모듈(22), 데이터 저장 모듈(23)을 포함하여 구성된다.As shown in FIG. 4, the
큐 관리 모듈(21)은 데이터 송신 장치(10)로부터 각 소켓(40-1, 40-2, ..., 40-n)으로 데이터가 전송되면, 복수의 큐(50-1, 50-2, ..., 50-n)를 포함한 클러스터링 큐(50)에서 특정 큐를 선택하여 해당 소켓(40-1, 40-2, ..., 40-n)에 각각 할당하는 스케줄링(scheduling)을 수행한다. When data is transmitted from the
예를 들어 큐 관리 모듈(41)은 아래의 수도 코드(pseudo code)를 이용하여, 각 소켓(40-1, 40-2, ..., 40-n)에 큐(50-1, 50-2, ..., 50-n)를 할당하는 과정을 진행할 수 있다.For example, the
01: while (true) 01: while (true)
02: waiting a request for sending data from clients; 02: waiting for a request for sending data from clients;
03: creates a socket for catching the request; 03: creates a socket for catching the request;
04: do-while 04: do-while
05: queue <- find an idle queue in the clustering queue 05: queue <- find an idle queue in the clustering queue
06: if queue is valid then 06: if queue is valid then
07: allocates the queue to the socket 07: allocates the queue to the socket
08: end if 08: end if
09: end do-while 09: end do-while
10: end while; 10: end while;
상기한 코드에서 미들웨어 장치(40)는 데이터 송신 장치(10)에 포함된 객체(10-1, 10-2, ..., 10-n)로부터 데이터 전송을 위한 요청이 수신되는지 기다리고, 해당 객체(10-1, 10-2, ..., 10-n)와의 통신을 위한 소켓(40-1, 40-2, ..., 40-n)을 생성한다. 그리고 미들웨어 장치(40)의 큐 관리 모듈(41)은, 예를 들어 클러스터링 큐(50)에 포함된 복수의 큐(50-1, 50-2, ..., 50-n) 중에서 특정 큐(50-1)를 선택하여 객체(10-1)로부터의 데이터 수신에 이용될 특정 소켓(40-1)에 할당한다.In the above code, the
한편 본 실시예의 큐 관리 모듈(41)은 상황에 따라 클러스터링 큐(50)에 포함된 큐(50-1, 50-2, ..., 50-n)의 개수를 조절하거나, 복수 큐에 할당된 메모리의 크기를 조절할 수 있다. 예를 들어 큐(50-1, 50-2, ..., 50-n)에 데이터를 쓰기위한 공간이 모자란 경우 클러스터링 큐(50)에 새로운 큐를 추가할 수 있고, 반대로 큐(50-1, 50-2, ..., 50-n)에 데이터를 쓰기위한 공간이 남는 경우 클러스터링 큐(50)에서 일부 큐를 삭제할 수 있다. 또한 큐(50-1, 50-2, ..., 50-n)의 데이터 저장 상황에 따라, 저장 공간이 부족한 경우 각 큐(50-1, 50-2, ..., 50-n)에 할당된 메모리의 크기를 늘릴 수 있고, 반대로 저장 공간이 과도한 경우 각 큐(50-1, 50-2, ..., 50-n)에 할당된 메모리의 크기를 줄여 적절하게 관리할 수 있다.The
더하여 큐 관리 모듈(41)은 클러스터링 큐(50)에 포함된 복수의 큐(50-1, 50-2, ..., 50-n)의 가용 저장 공간을 참조하여, 특정 큐를 특정 소켓에 할당할 수 있다. 예를 들어 가용 저장 공간이 상대적으로 많은 큐를 우선적으로 특정 소켓에 할당할 수 있을 것이다.In addition, the
큐 저장 모듈(42)은 각 소켓(40-1, 40-2, ..., 40-n)으로 전송된 데이터를, 대응하여 할당된 큐(50-1, 50-2, ..., 50-n)에 저장하는 역할을 한다.The
예를 들어, 데이터 전송 장치(10)의 특정 객체(10-1)가 미들웨어 장치(40)의 특정 소켓(40-1)으로 데이터를 전송하고, 큐 관리 모듈(41)이 소켓(40-1)에 특정 큐(50-1)를 할당한 경우라면, 큐 저장 모듈(42)은 소켓(40-1)으로 수신된 데이터를 해당 특정 큐(50-1)에 저장한다.For example, when a specific object 10-1 of the
데이터 저장 모듈(43)은 클러스터링 큐(50)에 포함된 복수의 큐(50-1, 50-2, ..., 50-n)를 지속적으로 관찰하고, 소켓(40-1, 40-2, ..., 40-n)으로부터 데이터를 쓰는(write) 동작이 진행되지 않는 유휴(idle) 상태의 큐를 발견하면, 해당 큐에 저장된 데이터를 데이터베이스(60)에 저장한다.The
예를 들어 데이터 저장 모듈(43)은 아래의 수도 코드(pseudo code)를 이용하여, 클러스터링 큐(50)에 포함된 복수의 큐(50-1, 50-2, ..., 50-n)로부터 데이터를 읽어와서 데이터베이스(60)에 쓰는 과정을 진행할 수 있다.For example, the
01: while (true) 01: while (true)
02: foreach(queue in clustering_queue) 02: foreach (queue in clustering_queue)
03: if data exists in the queue then 03: if data exists in the queue then
04: save the data to a database 04: save the data to a database
05: end if 05: end if
06: end foreach 06: end foreach
07: end while; 07: end while;
상기한 코드에서 데이터 저장 모듈(43)은 유휴 상태인 특정 큐에 데이터가 존재하면, 해당 특정 큐의 값을 데이터베이스(60)에 쓰게(write) 된다.In the above code, the
이때, 데이터 저장 모듈(43)은, 클러스터링 큐(50)에 포함된 복수의 큐(50-1, 50-2, ..., 50-n)를 관찰하던 도중, 먼저 발견된 유휴 큐의 데이터를 데이터베이스(60)에 먼저 저장하거나, 복수의 유휴 큐의 가용 저장 공간을 참조하여 특정 유휴 큐의 데이터를 데이터베이스(60)에 먼저 저장하는 방식으로 스케줄링(scheduling)할 수 있다.During the observation of the plurality of queues 50-1, 50-2, ..., and 50-n included in the
본 실시예와 같이 미들웨어 장치(40)가 복수의 큐(50-1, 50-2, ..., 50-n)를 포함한 클러스터링 큐(50)를 구비하고 상황에 맞게 특정 큐를 소켓(40-1, 40-2, ..., 40-n)에 할당하여 데이터를 저장하는 경우, 단일 큐를 이용하는 경우와 대비하여, 데이터 저장에 따른 시간을 단축할 수 있다. 그리고 복수의 큐(50-1, 50-2, ..., 50-n)에 저장된 데이터는, 각 큐(50-1, 50-2, ..., 50-n)가 유휴 상태인지에 따라 데이터베이스(60)에 차례로 저장되므로, 클러스터링 큐(50)를 사용함에 따른 시간의 지연을 최대한 방지할 수 있다.The
본 발명에 따라 미들웨어 장치가 데이터를 수집하는 과정에 대해서는 도 5를 참조하여 설명하기로 한다.The process of collecting data by the middleware according to the present invention will be described with reference to FIG.
도 5는 본 발명의 다른 일 실시예에 따라 미들웨어 장치가 데이터를 수집하는 과정을 나타낸 도면이다.5 is a flowchart illustrating a process of collecting data by a middleware according to another embodiment of the present invention.
도 5를 참조하면, 미들웨어 장치는, 데이터 송신 장치로부터 내부의 소켓으로 데이터가 전송됨에 따라(S1), 복수의 큐를 포함한 클러스터링 큐에서 특정 큐를 선택하여 해당 소켓에 할당한다(S2).Referring to FIG. 5, the middleware apparatus selects a specific queue from a clustering queue including a plurality of queues and allocates the selected queue to the corresponding socket (S2) as data is transmitted from the data transmitting apparatus to an inner socket (S1).
한편 미들웨어 장치는 단계(S1) 전에, 소켓을 통한 데이터 수신 상황이나, 클러스터링 큐의 데이터 저장 상황 등을 고려하여, 클러스터링 큐에 포함된 복수의 큐의 개수를 조절하거나, 복수 큐에 할당된 각 메모리의 크기를 조절할 수 있다.Meanwhile, before step S1, the middleware apparatus adjusts the number of queues included in the clustering queue in consideration of the data reception state through the sockets and the data storage state of the clustering queue, Can be adjusted.
또한 단계(S2)의 미들웨어 장치는, 클러스터링 큐에 포함된 복수의 큐의 가용 저장 공간을 참조하여 특정 큐를 소켓에 할당할 수 있다.The middleware apparatus of step S2 may allocate a specific queue to the socket by referring to the available storage space of the plurality of queues included in the clustering queue.
그리고 미들웨어 장치는 내부의 소켓으로 전송되는 데이터를, 단계(S2)에서 할당한 특정 큐에 임시로 저장한다(S3).Then, the middleware apparatus temporarily stores the data transmitted to the internal sockets in a specific queue allocated in step S2 (S3).
이렇게 클러스터링 큐(50)에 포함된 복수의 큐에 데이터가 저장되면, 미들웨어 장치는 클러스터링 큐에 포함된 복수의 큐에 유휴(idle) 상태인 큐가 존재하는지 관찰한다(S4).When data is stored in the plurality of queues included in the
단계(S4)에서의 관찰 결과 유휴 상태인 특정 큐가 발견되면, 미들웨어 장치는 해당 특정 큐에 저장된 데이터를 데이터베이스에 저장한다(S5).If a specific queue in the idle state is found as a result of the observation in step S4, the middleware device stores the data stored in the specific queue in the database (S5).
단계(S5)의 미들웨어 장치는, 단계(S4)에서의 관찰 결과에 따라 먼저 발견된 유휴 큐의 데이터를 데이터베이스에 먼저 저장할 수 있다.The middleware apparatus in step S5 may first store the data of the idle queue found earlier according to the observation result in step S4, in the database.
또한 단계(S5)의 미들웨어 장치는 복수의 유휴 큐의 가용 저장 공간을 참조하여 특정 유휴 큐의 데이터를 데이터베이스에 먼저 저장할 수도 있다.In addition, the middleware apparatus of step S5 may store the data of the specific idle queue in the database by referring to the available storage space of the plurality of idle queues.
본 발명의 실시예에 따른 미들웨어 장치의 효율적인 데이터 수집 방법은 다양한 컴퓨터 수단을 통하여 판독 가능한 프로그램 형태로 구현되어 컴퓨터로 판독 가능한 기록매체에 기록될 수 있다. The method of efficiently collecting data of the middleware according to an embodiment of the present invention may be implemented in a form of a program readable by various computer means and recorded in a computer-readable recording medium.
한편, 본 명세서와 도면에 개시된 실시예들은 이해를 돕기 위해 특정 예를 제시한 것에 지나지 않으며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형예들이 실시 가능하다는 것은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게는 자명한 것이다. 또한, 본 명세서와 도면에서 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다.It should be noted that the embodiments disclosed in the present specification and drawings are only illustrative of specific examples for the purpose of understanding, and are not intended to limit the scope of the present invention. It will be apparent to those skilled in the art that other modifications based on the technical idea of the present invention are possible in addition to the embodiments disclosed herein. Furthermore, although specific terms are used in this specification and the drawings, they are used in a generic sense only to facilitate the description of the invention and to facilitate understanding of the invention, and are not intended to limit the scope of the invention.
10: 데이터 송신 장치 10-1, 10-2, ..., 10-n: 객체
20, 40: 미들웨어 장치 20-1, 20-2, ..., 20-n: 소켓
30, 50-1, 50-2, ..., 50-n: 큐 50: 클러스터링 큐
60: 데이터베이스10: Data transmission apparatuses 10-1, 10-2, ..., 10-n:
20, 40: Middleware device 20-1, 20-2, ..., 20-n: Socket
30, 50-1, 50-2, ..., 50-n: queue 50: clustering queue
60: Database
Claims (9)
상기 소켓으로 전송된 데이터를 상기 특정 큐에 저장하는 큐 저장 모듈; 및
상기 클러스터링 큐에 포함된 상기 복수의 큐를 관찰하고, 유휴(idle) 상태인 상기 특정 큐에 저장된 데이터를 데이터베이스에 저장하는 데이터 저장 모듈;
을 포함하고,
상기 큐 관리 모듈은, 상기 클러스터링 큐에 포함된 상기 복수의 큐의 개수를 조절하거나, 상기 복수 큐에 할당된 각 메모리의 크기를 조절하는 것을 특징으로 하는 효율적인 데이터 수집을 위한 미들웨어 장치.A queue management module for selecting a specific queue from a clustering queue including a plurality of queues and allocating the selected queue to the socket as data is transmitted from the data transmission device to the socket;
A queue storage module for storing data transmitted to the socket in the specific queue; And
A data storage module that observes the plurality of queues included in the clustering queue and stores data stored in the specific queue in an idle state in a database;
/ RTI >
Wherein the queue management module adjusts the number of queues included in the clustering queue or adjusts the size of each memory allocated to the plurality of queues.
상기 큐 관리 모듈은, 상기 복수의 큐의 가용 저장 공간을 참조하여 상기 특정 큐를 상기 소켓에 할당하는 것을 특징으로 하는 효율적인 데이터 수집을 위한 미들웨어 장치.The method according to claim 1,
Wherein the queue management module allocates the specific queue to the socket with reference to an available storage space of the plurality of queues.
상기 데이터 저장 모듈은, 먼저 발견된 유휴 큐의 데이터를 데이터베이스에 먼저 저장하거나, 복수의 유휴 큐의 가용 저장 공간을 참조하여 특정 유휴 큐의 데이터를 데이터베이스에 먼저 저장하는 것을 특징으로 하는 효율적인 데이터 수집을 위한 미들웨어 장치.The method according to claim 1,
Wherein the data storage module stores the data of the idle queue found first in the database or stores the data of the idle queue in the database with reference to the available storage space of the plurality of idle queues. Middleware device for.
상기 미들웨어 장치가 상기 소켓으로 전송된 데이터를 상기 특정 큐에 저장하는 단계;
상기 미들웨어 장치가 상기 클러스터링 큐에 포함된 상기 복수의 큐에 유휴(idle) 상태인 큐가 존재하는지 관찰하는 단계; 및
상기 미들웨어 장치가 관찰 결과에 따라 유휴 상태인 특정 큐에 저장된 데이터를 데이터베이스에 저장하는 단계;
를 포함하고,
상기 소켓에 할당하는 단계 전에, 상기 미들웨어 장치가 상기 클러스터링 큐에 포함된 상기 복수의 큐의 개수를 조절하거나, 상기 복수 큐에 할당된 각 메모리의 크기를 조절하는 단계;
를 더 포함하는 것을 특징으로 하는 미들웨어 장치의 효율적인 데이터 수집 방법.Selecting a particular queue from a clustering queue including a plurality of queues and allocating the queue to the socket as the data is transmitted from the data transmitting device to the socket;
Storing the data transmitted to the socket in the specific queue by the middleware device;
The middleware device observing whether there is a queue in an idle state in the plurality of queues included in the clustering queue; And
Storing the data stored in a specific queue that is idle in the database according to an observation result of the middleware apparatus;
Lt; / RTI >
Adjusting the number of the plurality of queues included in the clustering queue or adjusting the size of each memory allocated to the plurality of queues before allocating to the socket;
The method of claim 1, further comprising:
상기 소켓에 할당하는 단계는, 상기 미들웨어 장치가 상기 복수의 큐의 가용 저장 공간을 참조하여 상기 특정 큐를 상기 소켓에 할당하는 것을 특징으로 하는 미들웨어 장치의 효율적인 데이터 수집 방법.6. The method of claim 5,
Wherein the allocating to the socket allocates the specific queue to the socket by referring to the available storage space of the plurality of queues.
상기 데이터베이스에 저장하는 단계는, 상기 미들웨어 장치가 먼저 발견된 유휴 큐의 데이터를 데이터베이스에 먼저 저장하거나, 복수의 유휴 큐의 가용 저장 공간을 참조하여 특정 유휴 큐의 데이터를 데이터베이스에 먼저 저장하는 것을 특징으로 하는 미들웨어 장치의 효율적인 데이터 수집 방법.6. The method of claim 5,
The storing in the database may include storing data of an idle queue found first by the middleware device in a database or storing data of a specific idle queue in a database with reference to an available storage space of a plurality of idle queues Wherein the middleware device is a data warehouse.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140031992A KR101602645B1 (en) | 2014-03-19 | 2014-03-19 | Middleware device for efficient data collection and efficient data collection method of middleware device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140031992A KR101602645B1 (en) | 2014-03-19 | 2014-03-19 | Middleware device for efficient data collection and efficient data collection method of middleware device |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20150109511A KR20150109511A (en) | 2015-10-02 |
KR101602645B1 true KR101602645B1 (en) | 2016-03-14 |
Family
ID=54340823
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140031992A KR101602645B1 (en) | 2014-03-19 | 2014-03-19 | Middleware device for efficient data collection and efficient data collection method of middleware device |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101602645B1 (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013257798A (en) | 2012-06-14 | 2013-12-26 | Nec Corp | Data collection system and data collection method |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100481604B1 (en) * | 2002-12-23 | 2005-04-08 | 한국전자통신연구원 | Multi-threaded socket polling server system |
KR20130118593A (en) | 2012-04-20 | 2013-10-30 | 한국전자통신연구원 | Apparatus and method for processing data in middleware for data distribution service |
-
2014
- 2014-03-19 KR KR1020140031992A patent/KR101602645B1/en active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013257798A (en) | 2012-06-14 | 2013-12-26 | Nec Corp | Data collection system and data collection method |
Also Published As
Publication number | Publication date |
---|---|
KR20150109511A (en) | 2015-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9892124B2 (en) | Method and device for transferring file | |
US10474691B2 (en) | Micro-staging device and method for micro-staging | |
KR101494143B1 (en) | Radio resource optimization method, device and system | |
CN104735077B (en) | It is a kind of to realize the efficiently concurrent methods of UDP using Circular buffer and circle queue | |
US8903972B2 (en) | Method and apparatus for sharing contents using information of group change in content oriented network environment | |
EP2755363A1 (en) | Data-fast-distribution method and device | |
CN103139157A (en) | Network communication method based on socket, device and system | |
CN109462631A (en) | Data processing method, device, storage medium and electronic device | |
JP2017515400A (en) | Method and apparatus for resource reuse | |
JP7046983B2 (en) | Packet transmission method and equipment | |
US9350606B2 (en) | System and method for assigning server to terminal and efficiently delivering messages to the terminal | |
WO2018121705A1 (en) | Stream data bidirectional transmission method and device | |
US9537735B2 (en) | Data collection method, mobile terminal and data storage device | |
CN104813610A (en) | Providing multiple content items for display on multiple devices | |
CN108965359A (en) | Communication means, communication device, readable medium and electronic equipment | |
US11723023B2 (en) | System and method for managing collisions in multiple-transmission-and-reception-points communications | |
CN107018045A (en) | Distributed memory system method of testing and system based on RPC | |
US10805905B2 (en) | Terminal station device and bandwidth allocation method | |
CN106790354B (en) | Communication method and device for preventing data congestion | |
KR101602645B1 (en) | Middleware device for efficient data collection and efficient data collection method of middleware device | |
CN107911317B (en) | Message scheduling method and device | |
WO2018121681A1 (en) | Method and device for remotely opening stream data transmission | |
CN103997508A (en) | Method and apparatus for concentrated fixture storage | |
JP2017535899A (en) | Method, apparatus and system for processing service data | |
KR101059498B1 (en) | Method and apparatus for transmitting / receiving time stamps for providing a multicast service in a communication system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
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: 20200115 Year of fee payment: 5 |