WO2016175430A1 - 무선 센서 네트워크 데이터베이스 시스템에서 공간쿼리를 위한 연산자 및 에너지 효율적인 쿼리 처리 - Google Patents
무선 센서 네트워크 데이터베이스 시스템에서 공간쿼리를 위한 연산자 및 에너지 효율적인 쿼리 처리 Download PDFInfo
- Publication number
- WO2016175430A1 WO2016175430A1 PCT/KR2016/000852 KR2016000852W WO2016175430A1 WO 2016175430 A1 WO2016175430 A1 WO 2016175430A1 KR 2016000852 W KR2016000852 W KR 2016000852W WO 2016175430 A1 WO2016175430 A1 WO 2016175430A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- query
- node
- operator
- sensor network
- space
- Prior art date
- Legal status (The legal status 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 status listed.)
- Ceased
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
Definitions
- Embodiments of the present invention relate to a technique for processing spatial queries in a wireless sensor network database system.
- the Wireless Sensor Network consists of multiple sensor nodes for monitoring the physical world.
- the wireless sensor network collects and uses data from distributedly installed sensor nodes (eg, military applications, environmental applications, health care applications, home applications, other applications, etc.).
- the sensor network database (SNDB) is used as a virtual storage means for collecting data from the sensor nodes constituting the wireless sensor network (WSN).
- This sensor network database (SNDB) features data from distributed sensor nodes. And that it consists of devices with energy limitations.
- SNDB sensor network database
- multi-targeting needs to be considered when processing a query for a specific area.
- SNDB sensor network database
- the present invention provides a query processing language that can easily express and process region information for a query, and a method and apparatus for efficiently processing a query.
- SNDB sensor network database
- a method for processing a query in a wireless sensor network implemented by a computer comprising: transmitting a query on the wireless sensor network at a base station belonging to the wireless sensor network; And collecting, at the sensor node receiving the query, sensor data as the query is performed, wherein the query is a requirement for data collection expressed in a sensor network query language (SNQL).
- SNQL sensor network query language
- the present invention provides a query processing method in a sensor network database, wherein a spatial operator for identifying a geometric target space to perform the query is defined.
- the spatial operator may include an envelope operator for setting a geometric space satisfying a given condition as a target region.
- the space operator is a nearby operator for setting a geometric space closest to a target position as a target area, and a distance operator for setting a space within a given distance from a given geometric space as a target area. distance operator), and a direction operator for setting a space in a given direction from a given geometric space as a target region.
- the spatial operator is a set operator using two or more operands, the intersection operator for setting an intersection area between given geometric spaces as a target area.
- a union operator for setting the union area between the given geometric spaces as the target area, and a difference operator for setting the difference area between the given geometric spaces as the target area may include at least one operator.
- the collecting of the sensor data may include: checking the number of child nodes passing the query if the query includes two or more tasks; Determining whether a lower common ancestor (LCA) node is determined according to the number of child nodes; Reconstructing the query using sensor data received from the child node when the LCA node corresponds to the LCA node; And retransmitting the reconstructed query to the child node.
- LCA lower common ancestor
- the step of determining whether the LCA node, if the number of the first child node that the query is first transmitted in the transmission path of the query may be determined as the LCA node.
- the sensor node manages metadata of at least one child node and a subtree directly connected, and the metadata of the child node includes coordinates, identification numbers, and sensor types of the child nodes.
- the metadata of the subtree may include coordinates of a minimum boundary rectangle (MBR) of the subtree and a sensor type.
- the query may be delivered to a child node included in the subtree.
- SNQL sensor network query language
- the existing sensor network query language can be extended so that the sensor network database (SNDB) can process various spatial operators to precisely express the target space. . Therefore, the area information for the query can be easily expressed and processed, and the query can be processed efficiently.
- the intermediate result of the query is not received at the node-level lower common ancestor (LCA) node without transmitting the query to the server.
- LCA common ancestor
- a query processing may be performed on an unstructured area when querying a specific area object in the sensor network database SNDB.
- 1 is an exemplary diagram for describing an envelope of an extended sensor network query language (SNQL) according to an embodiment of the present invention.
- SNQL extended sensor network query language
- 2 to 9 are exemplary diagrams for describing a process of forming an envelope by executing a spatial operator of an extended sensor network query language (SNQL) according to an embodiment of the present invention. .
- SNQL extended sensor network query language
- FIG. 10 is an exemplary diagram for describing a query processing process using a lower common ancestor (LCA) node according to an embodiment of the present invention.
- LCA common ancestor
- FIG. 11 is a block diagram illustrating a system structure of a sensor network database using an extended sensor network query language (SNQL) according to an embodiment of the present invention.
- SNQL extended sensor network query language
- FIG. 12 is a diagram for describing metadata management according to an embodiment of the present invention.
- the present embodiments relate to a technique for processing a query in a wireless sensor network, and more particularly, to an energy efficient query processing technique in a sensor network database (SNDB) and a query processing technique targeting a target in an unstructured area.
- SNDB sensor network database
- the following introduces the spatial operators of the sensor network query language (SNQL) to support various spatial operations.
- SNQL sensor network query language
- the geometric target area of the sensor network query language is represented by a rectangle called the SNQL envelope, which is the basic unit of spatial query operations.
- SNQL envelope is similar to ENVELOPE used in GIS, it shows a difference from GIS ENVELOPE which responds with the minimum limit box of geometric object. It is identified as a group of responding sensor nodes.
- the SNQL envelope is represented in the form of ⁇ space-ID, (x_i, x_j, y_i, y_j) ⁇ , where space-ID is a geometric space identifier and (x i , x j , y i , y j ) is shown in FIG. 1.
- the space notation means the vertices of the envelope ⁇ (x i , y i ), (x j , y j ), (x i , y j ), (x j , y j ) ⁇ .
- Useful spatial operators can be designed based on the characteristics of the SNQL envelope that identifies the target region.
- the envelope operation will result in a group of sensors constituting the geometric space while satisfying the given conditions.
- the query "find a space consisting of sensor nodes whose temperature exceeds 30 degrees” may be expressed as Envelope (temp> 30).
- SNQL envelopes merge between adjacent ones.
- 2 illustrates how leaf nodes (smallest envelopes) are merged into larger envelopes.
- eight nodes from node 1 to node 8 form SNQL envelope e1 to envelope e8 while satisfying the query condition.
- the SNQL envelopes e1, e2, e3 are merged with e4, e5, e6, resulting in a relatively new and larger SNQL envelope e4, e5, e6.
- This process is repeated until a new, larger SNQL envelope e7 is formed as in step 3.
- envelope e4 no longer extends because node 9 does not satisfy the given condition.
- envelopes e4, e7 and e8 are sent to the base station as a result of the envelope (temp> 30).
- N means any sensor node.
- the child node of N is defined as N child , and the physical location of N is (x N , y N ).
- space-ID is a geometric space identifier
- (x i , x j , y i , y j ) means a vertex of e m that identifies a group of sensor nodes satisfying a given condition.
- SNQL envelope e N is generated in the form of ⁇ timestamp, (x N , x N , y N , y N )>. Timestamp is used to ensure the uniqueness of the envelope and (x N , x N , y N , y N ) is the envelope notation for node N located at (x N , y N ). If another envelope is created from N child , this envelope is merged into a larger e N. As a result, e N is added to S result .
- the query is sent through the nodes to the target location, and nodes in the query path register the query.
- a node corresponding to a subtree including a given coordinate receives and registers a query of NearBy (10, 10, 20, 20). The query then passes along nodes 1 through 6.
- node 7 through node 10 do not receive a query because node 5 and node 6 do not send a query because their subtree does not contain the given coordinates.
- node 4 forms SNQL envelope e3 and receives SNQL envelopes e1 and e2 formed by nodes 5 and 6.
- Node 4 then sends e1 to the base station with SNQL envelope e1 nearest to the given target location.
- SNQL envelope e N is generated in the form of ⁇ timestamp, (x N , x N , y N , y N )>. If another envelope is created by N child , compare it with e N to find the closest coord. Then, the nearest envelope is returned.
- the Distance operation identifies the range of values from the specified geometric space to the other space.
- the point of position is also represented by the SNQL envelope.
- the query "Find a space consisting of sensor nodes 10 meters away from a geometric space with a temperature of 30 degrees or more" can be expressed as Distance (Envelope (temp> 30), 10m).
- node 5 identifies two SNQL envelopes e1 and e2 whose members satisfy the temperature condition.
- node 5 generates the extended SNQL envelopes e1 and e2 according to the given range values and sends a query to the extended SNQL envelopes e1 and e2.
- the distance calculation process is the same as the algorithm in Table 3.
- e k is the newly extended envelope of the existing e k
- S result ⁇ e 1 ', e 2 '. , e k ' ⁇
- the envelope of each e k is expanded by the range value of +/-, the second input index. Then, S result is returned.
- the Direction operation displays the geometric space outside the specified space in a given direction of east, west, south and north, and a mixture of them.
- the query "Find a space consisting of sensor nodes located to the west of a space with a temperature above 30 degrees” is expressed as Direction (Envelope (temp> 30), WEST).
- step 1 Node 5 as an LCA node identifies SNQL envelopes e1 and e2 whose members satisfy the temperature condition.
- step 2 node 5 recognizes that envelope e2 is the westernmost envelope of the envelope and returns SNQL envelope e3 as a result.
- e N having spatial coordinates (X min , X max , ⁇ ⁇ y j , Y max ) is generated as a result space having y i larger than ⁇ ⁇ y j .
- X max or X min means the maximum or minimum value of the x coordinate of the region
- Y max or Y min means the maximum or minimum value of the y coordinate of the region.
- the set operator is designed to identify sensor nodes in the target area by using two operand spaces.
- SNQL allows an application programmer to represent more sophisticated target regions.
- An example query is "Get a node ID of a region that is identified as a composite region where the temperature is above 30 degrees and the humidity is lower / lower than 10% and / or low or on the western ridge of the mountain.” This query uses the Intersection, Union, and Difference operations to identify the sensor nodes in the new space.
- step2 the intersect envelope e i1 e i2 is identified via the cross product between elements of S a and S b .
- step 3 the element envelopes constituting S a S b are compared whether the space exists around e i1 e i2 in the eight directions by north, south, west, and the combination thereof.
- Intersection operations use two operand spaces, either explicitly specified as space-IDs or implicitly specified as the result of two spatial operations (eg, SNQL envelopes). For example, use the example query “Get the node ID of the cross-section on the western ridge of the mountain where the temperature is above 30 degrees and the humidity is below 10%.” This query is feasible through multiple combinations of overlapping discrete spaces that satisfy a given condition and therefore a set of discrete spaces (eg, SNQL envelopes) will be returned.
- step 7 shows the execution of the Intersection operation.
- Node 1 receives an SNQL envelope e1 having a temperature of 30 degrees or more and a SNQL envelope e2 having a humidity of 10% or less.
- node 1 calculates the intersection of envelopes e1 and e2. It then creates an SNQL envelope e3 and sends a query to e3.
- Union operations use two operand spaces, either explicitly specified as space-IDs or implicitly specified as the result of two spatial operations (eg, SNQL envelopes).
- An example query is used, "Get the node ID of the union region on the western ridge of the mountain where the temperature is above 30 degrees and the humidity is below 10%.” This example suggests that this is feasible through multiple combinations of overlapping discrete spaces meeting a given condition, and the resulting set of discrete spaces will result in a result (eg, SNQL envelope).
- step 8 shows an exemplary implementation of the Union operation.
- Node 1 receives an SNQL envelope e1 having a temperature of 30 degrees or more and a SNQL envelope e2 having a humidity of 10% or less.
- node 1 calculates their union region by separating envelopes el and e2 based on the intersection region.
- Node 1 then creates envelopes e3 through e9 and sends queries to the sensor nodes e3 through e9.
- the union operation generates a set of envelopes representing the union area of two spaces when combined as shown in FIG.
- the difference operation uses two operand spaces, either explicitly specified as space-IDs or implicitly specified as the result of two spatial operations (eg SNQL envelopes).
- An example query is used, "Get a node ID for an area on the western ridge of a mountain where the temperature is above 30 degrees and the humidity is above 10%.” This example suggests that this is feasible through multiple combinations of overlapping discrete spaces that satisfy a given condition, and consequently, the set of constituent discrete spaces will return as a result (e.g., SNQL envelope).
- step 9 shows an example implementation of the difference operation.
- Node 1 receives an SNQL envelope e1 having a temperature of 30 degrees or more and a SNQL envelope e2 having a humidity of 10% or less.
- node 1 calculates an area in which e1 and e2 differ by dividing a common area. It then creates the SNQL envelopes e3, e4, e5 and sends the query to the nodes e3, e4, e5. Similar to the union operation, the difference operations generate a set of envelopes that combine as shown in FIG. 9 to form a separated space as a result of the difference operation.
- a S within each envelope e a and e b are overlapped when the S b, cross envelope e i is generated in the form of ⁇ timestamp, (x N, x N, y N, y N)>.
- e a is divided into a directional configuration envelope.
- e b is divided in the same manner.
- the envelope is identified by its position in e i . In the case of FIG.
- SNQL Sensor Network Query Language
- the existing Sensor Network Query Language is based on the Select-From-Where structure and supports one-time, continuous, and event-based queries.
- the algorithm in Table 7 shows the basic structure of the existing sensor network query language (SNQL).
- EVENT ON is an event that is set to execute the next query when an event occurs.
- the SELECT item depicts attributes corresponding to sensor data collected from each sensor node.
- the FROM item represents the initial target area for query delivery.
- the WHERE item describes the selection condition.
- the SAMPLE PERIOD item is an indication of the various times for data collection.
- the OUTPUT ACTION item defines the action of the sensor to be executed when an event or selection condition is met.
- the WHITHIN item represents the percentage of sensor furnaces participating in the query process among all sensor nodes.
- the CASE WHEN item specifies the branching of the conditional query.
- ⁇ SpatialFunc> is composed of ⁇ Envelope>, ⁇ NearBy>, ⁇ Distance>, ⁇ Direction>, ⁇ Intersection>, ⁇ Union>, and ⁇ Difference>.
- ⁇ NearBy> is represented by integer values representing x and y coordinates.
- ⁇ Distance> is represented by a constant indicating the distance from the operator selected from ⁇ SpatialFunc>.
- ⁇ Direction> is represented by a constant indicating the operator and direction selected from ⁇ SpatialFunc>.
- ⁇ Intersection> consists of a combination of ⁇ SpatialFunc> to find the intersection.
- ⁇ Union> consists of a combination of ⁇ SpatialFunc> to find the union area.
- ⁇ Difference> consists of a combination of ⁇ SpatialFunc> to find the difference region.
- ⁇ envelope>, ⁇ attribute>, ⁇ operator>, and ⁇ constant> are basic attributes and further explanation is omitted.
- Sensor network queries often have multiple data readings within a single query.
- the example query given "Get the temperature of the western ridge region of the mountain with humidity below 10%” includes two separate tasks: (1) reading humidity from all nodes of the western ridge, (2) Reading the temperature of a node with a humidity of 10% or less. In existing systems, this task requires two traversal queries between the base station and the target node in the specified space.
- the query processing algorithm according to the present invention enables multiple query tasks to be processed by an in-network node called LCA.
- An LCA node is a kind of intermediate ancestor node that sends the query at least and first to include all child nodes of the target area. It is designed to act as a reconfiguration and retransmission of in-network queries for multiple reading tasks.
- the query processing algorithm according to the present invention effectively reduces the energy consumption of the wireless sensor node caused by unnecessary multiple query / data exchanges between the base station (eg, root node) and the target node.
- Each node in the query path manages two metrics (#Ancestor max_send, #Child send ).
- the former means the maximum number of ancestor nodes that sent queries to child nodes, and the latter means the number of child nodes that delivered queries.
- the LCA node is identified as the node whose #Child send value is greater than 1 first in the query path.
- N01 receives the query and the query processor finds N02, which is the receiving node of the target area.
- N01 is because it does not have an ancestor node, #Ancestor max _send is zero.
- #Child send is 1.
- N07 receives a query from N06 and forwards the query to two child nodes.
- N07 becomes the LCA node, which is the lowest intermediate node that covers at least all nodes in the target area of this query.
- the LCA node regenerates a query for data collection at the final target node (eg, a node with less than 10% humidity in the first target area).
- the LCA node plays an important role in identifying the final target node and resends the next query task to that node (e.g. temperature collection).
- the function of the LCA operation receives #Ancestor max _send as input and returns true / false as a result of determining whether or not the current node is an LCA node.
- the query processor or disseminator is then called to resend the reconstructed query. And true is returned (lines 3-5 of the algorithm). If the current node is not an LCA node, false is returned (line 6 of the algorithm).
- the sensor network database system includes a base station 110 serving as an SNQL server, and a sensor node 120 located in a target area.
- the query processor 111 While receiving the query at the base station 110, the query processor 111 analyzes the query and plans execution, and then transmits the analyzed query to the network manager 112. This is used to determine the path to the target node through metadata about the node-to-node connection (eg topology). Nodes in the path recorded up to the sensor node 120 in the original target area register the analyzed query as an ancestor node of the target node, and one of the nodes to identify a new target node when multiple spatial operations are applied. It acts as an LCA node.
- the query processor 121 of the sensor node 120 which is a node of the target region, includes an executor, an event manager, an action manager, and a sender.
- the performer executes a query and transmits data to the SNQL server through an ancestor node, and the event manager manages an event query registered in the target node.
- the action manager manages actions to be executed when the query condition is satisfied (for example, alarm sound generation), and the sender resends the reconstructed query to another node.
- the network manager 122 forwards the analyzed query to the nodes of the target area, receives the query result, and returns the result to its ancestor node.
- the base station 110 post-processes the sensor data collected in the format requested by the given query before delivering it to the application.
- Metadata of SNQL such as attribute type, location information, and minimum boundary rectangle (MBR) of sensor node are used during query processing.
- Each node manages the metadata of the directly connected child nodes in the following format: ⁇ (x i , y i ), (NodeID, ⁇ sensorType ⁇ ) ⁇ , where (x i , y i ) is a child node The coordinate of, and (NodeID, ⁇ sensorType ⁇ ) means nodeID and sensor type.
- the metadata of the subtree is represented in the following format: ⁇ (x i , x j , y i , y j ), ⁇ sensorType ⁇ , where (x i , x j , y i , y j ) means the vertex of the MBR and ⁇ sensorType ⁇ means the sensor type of the subtree.
- the circle represents the sensor node and the dotted line represents the MBR of the subtree.
- the base station manages " ⁇ (10, 60), (N01, ⁇ sensorType ⁇ ) ⁇ " as the metadata of the directly connected child nodes and serves " ⁇ (10, 50, 40, 100), ⁇ sensorType ⁇ ” Managed by the metadata of the tree.
- N01 node manages "((25,95), (N02, ⁇ sensorType ⁇ )), ((22,58), (N03, ⁇ sensorType ⁇ ))" as metadata of directly connected child nodes and "( ((25, 45, 77,100), ⁇ sensorType ⁇ ), ((22,50,40,58, ⁇ sensorType ⁇ )) "are managed as metadata in the subtree.
- N02 connects two directly connected It manages the metadata of the child nodes and the metadata of the two subtrees, including the MBR, where the MBR of the subtree is used to determine whether to forward queries to the child nodes when the target region overlaps with the MBR of the subtree.
- This metadata is created when the sensor network is configured, and when a node is added or deleted, the metadata is reconstructed by updating its ancestor nodes and child nodes.
- the existing sensor network query language is extended so that the sensor network database (SNDB) can process various spatial operators to precisely express the target space. It was. Therefore, the area information for the query can be easily expressed and processed, and the query can be processed efficiently.
- the intermediate result of the query is not received at the node-level lower common ancestor (LCA) node without transmitting the intermediate result of the query to the server. By using them, you can reduce the cost of query processing.
- LCA node-level lower common ancestor
- query processing of a specific area target in the sensor network database may be performed on an unstructured area. have.
- Methods according to an embodiment of the present invention may be implemented in program instruction form that can be executed by various computer systems and recorded in a computer readable medium.
- the apparatus described above may be implemented as a hardware component, a software component, and / or a combination of hardware components and software components.
- the devices and components described in the embodiments are, for example, processors, controllers, arithmetic logic units (ALUs), digital signal processors, microcomputers, field programmable gate arrays (FPGAs).
- ALUs arithmetic logic units
- FPGAs field programmable gate arrays
- PLU programmable logic unit
- the processing device may execute an operating system (OS) and one or more software applications running on the operating system.
- the processing device may also access, store, manipulate, process, and generate data in response to the execution of the software.
- processing device includes a plurality of processing elements and / or a plurality of types of processing elements. It can be seen that it may include.
- the processing device may include a plurality of processors or one processor and one controller.
- other processing configurations are possible, such as parallel processors.
- the software may include a computer program, code, instructions, or a combination of one or more of the above, and configure the processing device to operate as desired, or process it independently or collectively. You can command the device.
- Software and / or data may be any type of machine, component, physical device, virtual equipment, computer storage medium or device in order to be interpreted by or to provide instructions or data to the processing device. Or may be permanently or temporarily embodied in a signal wave to be transmitted.
- the software may be distributed over networked computer systems so that they may be stored or executed in a distributed manner.
- Software and data may be stored on one or more computer readable recording media.
- the method according to the embodiment may be embodied in the form of program instructions that can be executed by various computer means and recorded in a computer readable medium.
- the computer readable medium may include program instructions, data files, data structures, etc. alone or in combination.
- the program instructions recorded on the media may be those specially designed and constructed for the purposes of the embodiments, or they may be of the kind well-known and available to those having skill in the computer software arts.
- Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks.
- Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like.
- the hardware device described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
- Databases & Information Systems (AREA)
Abstract
무선 센서 네트워크 데이터베이스 시스템에서 공간쿼리를 위한 연산자 및 에너지 효율적인 쿼리 처리 기술이 개시된다. 무선 센서 네트워크에서의 쿼리 처리 방법은, 상기 무선 센서 네트워크에 속하는 기지국에서 상기 무선 센서 네트워크 상에 쿼리를 전송하는 단계; 및 상기 쿼리를 수신한 센서 노드에서, 상기 쿼리를 수행함에 따라 센서 데이터를 수집하는 단계를 포함하고, 상기 쿼리는 센서 네트워크 쿼리 언어(sensor network query language, SNQL)로 표현된 데이터 수집의 요구 사항으로, 상기 쿼리를 수행할 기하학적 타겟 영역(geometric target space)을 식별하기 위한 공간 연산자(spatial operator)가 정의된다.
Description
본 발명의 실시예들은 무선 센서 네트워크 데이터베이스 시스템에서 공간 쿼리를 처리하는 기술에 관한 것이다.
무선 센서 네트워크(Wireless Sensor Network: WSN)는 물리적 세계를 모니터링 하기 위해 다수의 센서 노드들로 구성된다. 무선 센서 네트워크(WSN)는 분산되어 설치된 센서 노드들로부터 데이터를 수집하여 사용한다(예컨대, Military applications, Environmental applications, Health care applications, Home applications, Other applications 등).
무선 센서 네트워크(WSN)를 구성하는 센서 노드들로부터 데이터를 수집하는 가상의 저장 수단으로 센서 네트워크 데이터베이스(SNDB)를 활용한다.. 이러한 센서 네트워크 데이터베이스(SNDB)의 특징은 분산된 센서 노드들로부터 데이터를 수집한다는 점과 에너지 제한이 있는 디바이스로 구성된다는 점에 있다.
기존 센서 네트워크 데이터베이스(SNDB)에서는 쿼리 언어의 불충분한 표현력(expressive power)으로 인해 노드들이 위치한 물리적 영역을 쿼리 조건으로 표현하기 어려운 문제가 있다. 또한, 멀티 타겟(multiple target)의 위치 파악을 위한 쿼리/데이터를 서버까지 전송해야 하므로 쿼리 처리를 위한 데이터 전송 비용이 커지고 노드의 에너지 소비가 커지는 문제가 발생한다. 그리고, 기존의 쿼리는 직사각형(rectangle) 영역을 대상으로 쿼리를 전송하기 때문에 비정형 영역 대상의 쿼리가 필요한 경우 불필요한 쿼리/데이터 전송이 발생하게 된다.
이에, 센서 네트워크 데이터베이스(SNDB)에서 특정 영역을 대상으로 하는 쿼리 처리가 필요하며, 특정 영역을 대상으로 쿼리 처리 시 멀티 타겟에 대한 고려가 필요하다. 그리고, 센서 네트워크 데이터베이스(SNDB)에서 특정 영역 대상의 쿼리 처리 시 비정형 영역의 타겟에 대한 고려가 필요하다.
쿼리를 위한 영역 정보를 용이하게 표현하고 처리할 수 있는 쿼리 처리 언어 및 효율적으로 쿼리를 처리할 수 있는 방법 및 장치를 제공한다.
쿼리의 중간 결과 수집 후 이를 이용하여 쿼리를 다시 수행하는 경우 쿼리의 중간 결과를 서버까지 전송하지 않고 노드 레벨에서 처리하여 쿼리 처리 비용을 줄일 수 있는 방법 및 장치를 제공한다.
센서 네트워크 데이터베이스(SNDB)에서 특정 영역 대상의 쿼리 처리 시 비정형 영역을 대상으로 쿼리를 처리할 수 있는 방법 및 장치를 제공한다.
컴퓨터로 구현되는 무선 센서 네트워크에서의 쿼리 처리 방법에 있어서, 상기 무선 센서 네트워크에 속하는 기지국에서 상기 무선 센서 네트워크 상에 쿼리를 전송하는 단계; 및 상기 쿼리를 수신한 센서 노드에서, 상기 쿼리를 수행함에 따라 센서 데이터를 수집하는 단계를 포함하고, 상기 쿼리는 센서 네트워크 쿼리 언어(sensor network query language, SNQL)로 표현된 데이터 수집의 요구 사항으로, 상기 쿼리를 수행할 기하학적 타겟 영역(geometric target space)을 식별하기 위한 공간 연산자(spatial operator)가 정의되는 것을 특징으로 하는 센서 네트워크 데이터베이스에서의 쿼리 처리 방법을 제공한다.
일 측면에 따르면, 상기 공간 연산자는 주어진 조건(condition)을 만족시키는 기하학적 공간을 타겟 영역으로 설정하기 위한 엔벨롭 연산자(envelope operator)를 포함할 수 있다.
다른 측면에 따르면, 상기 공간 연산자는 타겟 위치와 가장 가까운 기하학적 공간을 타겟 영역으로 설정하기 위한 니어바이 연산자(nearby operator), 주어진 기하학적 공간으로부터 주어진 거리 이내에 있는 공간을 타겟 영역으로 설정하기 위한 거리 연산자(distance operator), 주어진 기하학적 공간으로부터 주어진 방향에 있는 공간을 타겟 영역으로 설정하기 위한 방향 연산자(direction operator) 중 적어도 하나의 연산자를 더 포함할 수 있다.
또 다른 측면에 따르면, 상기 공간 연산자는 둘 이상의 피연산자(operand)를 사용하는 집합 연산자(set operator)로서, 주어진 기하학적 공간 간의 교차 지역 (intersection area)을 타겟 영역으로 설정하기 위한 교차 연산자(intersection operator), 주어진 기하학적 공간 간의 합집합 지역(union area)을 타겟 영역으로 설정하기 위한 합집합 연산자(union operator), 주어진 기하학적 공간 간의 차집합 지역(difference area)을 타겟 영역으로 설정하기 위한 차집합 연산자(difference operator) 중 적어도 하나의 연산자를 포함할 수 있다.
또 다른 측면에 따르면, 상기 센서 데이터를 수집하는 단계는, 상기 쿼리가 둘 이상의 태스크를 포함하는 경우, 상기 쿼리를 전달하는 자식 노드의 수를 확인하는 단계; 상기 자식 노드의 수에 따라 LCA(lowest common ancestor) 노드 여부를 결정하는 단계; 상기 LCA 노드에 해당되는 경우 상기 자식 노드로부터 수신된 센서 데이터를 이용하여 상기 쿼리를 재구성하는 단계; 및 상기 재구성된 쿼리를 상기 자식 노드로 재전송하는 단계를 포함할 수 있다.
또 다른 측면에 따르면, 상기 LCA 노드 여부를 결정하는 단계는, 상기 쿼리의 전송 경로에서 최초로 쿼리가 전달된 상기 자식 노드의 수가 1을 초과하는 경우 상기 LCA 노드로 결정할 수 있다.
또 다른 측면에 따르면, 상기 센서 노드는 직접 연결된 적어도 하나의 자식 노드와 서브트리(subtree)의 메타데이터를 관리하고, 상기 자식 노드의 메타데이터는 상기 자식 노드의 좌표와 식별 번호 및 센서 종류를 포함하고, 상기 서브트리의 메타 데이터는 상기 서브트리의 MBR(minimum boundary rectangle)의 좌표와 센서 종류를 포함할 수 있다.
또 다른 측면에 따르면, 상기 서브트리의 MBR이 상기 타겟 영역에 해당되는 경우 상기 서브트리에 포함되는 자식 노드로 상기 쿼리가 전달될 수 있다.
적어도 하나의 프로그램이 로딩된 메모리; 및 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 상기 프로그램의 제어에 따라, 무선 센서 네트워크에 속하는 기지국에서 상기 무선 센서 네트워크 상에 쿼리를 전송하는 과정; 및 상기 쿼리를 수신한 센서 노드에서, 상기 쿼리를 수행함에 따라 센서 데이터를 수집하는 과정을 처리하고, 상기 쿼리는 센서 네트워크 쿼리 언어(sensor network query language, SNQL)로 표현된 데이터 수집의 요구 사항으로, 상기 쿼리를 수행할 기하학적 타겟 영역(geometric target space)을 식별하기 위한 공간 연산자(spatial operator)가 정의되는 것을 특징으로 하는 센서 네트워크 데이터베이스에서의 쿼리 처리 장치를 제공한다.
본 발명의 실시예에 따르면, 센서 네트워크 데이터베이스(SNDB)가 다양한 공간 연산자(spatial operator)를 처리하여 타겟 영역(target space)을 정교하게 표현할 수 있도록 기존 센서 네트워크 쿼리 언어(SNQL)를 확장할 수 있다. 따라서, 쿼리를 위한 영역 정보를 용이하게 표현하고 처리할 수 있고 효율적으로 쿼리를 처리할 수 있다.
본 발명의 실시예에 따르면, 수집된 중간 쿼리 결과를 기준으로 다시 쿼리를 수행하는 경우 쿼리를 쿼리의 중간 결과를 서버까지 전송하지 않고 노드 레벨인 LCA(lowest common ancestor) 노드에서 쿼리의 중간 결과를 이용하여 처리함으로써 쿼리 처리 비용을 줄일 수 있다.
본 발명의 실시예에 따르면, 다각형 모양의 공간(polygon shaped space)과 공간 연산자를 정의함으로써 센서 네트워크 데이터베이스(SNDB)에서 특정 영역 대상의 쿼리 처리 시 비정형 영역을 대상으로 쿼리 처리를 수행할 수 있다.
도 1은 본 발명의 일 실시예에 있어서, 확장된 센서 네트워크 쿼리 언어(SNQL)의 엔벨롭(envelop)을 설명하기 위한 예시 도면이다.
도 2 내지 도 9는 본 발명의 일 실시예에 있어서, 확장된 센서 네트워크 쿼리 언어(SNQL)의 공간 연산자(spatial operator)를 실행하여 엔벨롭(envelop)을 형성하는 과정을 설명하기 위한 예시 도면이다.
도 10은 본 발명의 일 실시예에 있어서, LCA(lowest common ancestor) 노드를 이용한 쿼리 처리 과정을 설명하기 위한 예시 도면이다.
도 11은 본 발명의 일 실시예에 있어서, 확장된 센서 네트워크 쿼리 언어(SNQL)를 이용한 센서 네트워크 데이터베이스의 시스템 구조를 도시한 블록도이다.
도 12는 본 발명의 일 실시예에 있어서, 메타데이터 관리를 설명하기 위한 예시 도면이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
본 실시예들은 무선 센서 네트워크에서 쿼리를 처리하는 기술에 관한 것으로, 특히 센서 네트워크 데이터베이스(SNDB)에서 에너지 효율성이 우수한 쿼리 처리 기술 및 비정형 영역의 타겟을 대상으로 하는 쿼리 처리 기술에 관한 것이다.
센서 네트워크
쿼리
언어(
SNQL
)를 위한 공간 연산자
- 센서 네트워크 쿼리 언어(SNQL) 공간의 설계
이하에서는 다양한 공간 연산을 지원하기 위한 센서 네트워크 쿼리 언어(SNQL)의 공간 연산자를 소개한다.
센서 네트워크 쿼리 언어(SNQL)의 기하학적 타겟 영역은 공간적 쿼리 연산의 기본 단위인 SNQL 엔벨롭(envelope)이라 불리는 직사각형으로 표현된다. SNQL 엔벨롭의 개념은 GIS에 사용되는 ENVELOPE과 유사하기는 하나, 기하학적 오브젝트의 최소 한계 박스로 응답하는 GIS ENVELOPE과의 차이를 보이며, 본 발명에서의 SNQL 엔벨롭은 주어진 조건을 만족시키고 타겟 영역으로 응답하는 센서 노드의 그룹으로 식별된다.
SNQL 엔벨롭은 {space-ID, (x_i, x_j, y_i, y_j)}의 형태로 대표되는데, space-ID는 기하학적 공간 식별자이고, (xi, xj, yi, yj)는 도 1에 도시된 바와 같이 {(xi, yi), (xj, yj), (xi, yj), (xj, yj)}인 엔벨롭의 꼭지점들을 의미하는 공간 표기이다.
위치의 점 또한 i=j인 SNQL 엔벨롭의 일종으로 고려한다. 이는 1개의 센서 노드도 도 2(step1)에 도시된 바와 같이 엔벨롭을 형성한다는 것을 의미한다. 그러므로, 모든 SNQL 공간은 공간적 쿼리 연산을 위한 폐쇄 특성(closure property)을 성취하기 위한 SNQL 엔벨롭으로 표현된다.
타겟 영역을 식별하는 SNQL 엔벨롭의 특성에 기초하여 유용한 공간 연산자를 설계할 수 있다.
공간 식별 연산자(space Identification Operators)
- Envelope(Condition(s))
엔벨롭 연산은 주어진 조건을 만족시키면서 기하학적 공간을 구성하는 센서들의 그룹으로 결과를 보일 것이다. 예를 들어, "온도가 30도를 초과한 센서 노드로 이루어진 공간을 찾아라"라는 쿼리는 Envelope(temp>30)으로 표현될 수 있다.
SNQL 엔벨롭은 인접한 것들끼리 합병된다. 도 2는 리프 노드(leaf node)(가장 작은 엔벨롭)이 어떻게 더 큰 엔벨롭으로 합병되는지를 표현한 것이다. 도 2의 단계1(step1)에서, 노드1부터 노드8까지 8개의 노드가 SNQL 엔벨롭 e1부터 엔벨롭 e8까지를 형성하면서 쿼리 조건을 만족시킨다. 이후 단계2(step2)에서, SNQL 엔벨롭 e1, e2, e3는 e4, e5, e6과 합병되며, 상대적으로 새롭고 더 커진 SNQL 엔벨롭 e4, e5, e6를 생성한다. 이 과정은 단계3(step3)과 같은 새롭고 더 커진 SNQL 엔벨롭 e7이 형성될 때까지 반복된다. 반면에, 엔벨롭 e4는 더 이상 확장하지 않는데, 이는 노드9가 주어진 조건을 만족하지 않기 때문이다. 마침내, 엔벨롭 e4, e7과 e8은 Envelope(temp>30)의 결과물로서 베이스 스테이션으로 전송된다.
엔벨롭 연산의 과정은 표 1의 알고리즘과 같다.
[표 1]
N은 임의의 센서 노드를 의미한다. N의 자식 노드는 Nchild로 정의되고, N의 물리적 위치는 (xN, yN)이다. 이 연산은 입력을 cond(예를 들어, 조건)와 같은 지표로 수신하고 기하적 공간의 집합을 e_m={space-ID, (xi, xj, yi, yj)}인 Sresult={em}의 형태로 리턴한다. 여기서 space-ID는 기하학적 공간 식별자이고, (xi, xj, yi, yj)는 주어진 조건을 만족시키는 센서 노드 그룹을 식별하는 em의 꼭지점을 의미한다. 우선, 만약 노드 N이 조건을 만족한다면, SNQL 엔벨롭 eN은 <timestamp, (xN, xN, yN, yN)>의 형태로 생성된다. 타임스탬프(Timestamp)는 엔벨롭의 고유성을 확보하기 위해 사용되고 (xN, xN, yN, yN)은 (xN, yN)에 위치한 노드N에 대한 엔벨롭 표기이다. 만약 다른 엔벨롭이 Nchild로부터 생성된다면, 이 엔벨롭은 더 큰 eN으로 합병된다. 그 결과, eN이 Sresult에 추가된다.
- NearBy(xi, xj, yi, yj)
NearBy연산은 특정된 목표 위치와 가장 가까운 노드의 기하학적 위치를 i=j인 {space-ID, (xi, xj, yi, yj)}의 형태로 생성하여 리턴한다. 쿼리는 노드들을 거쳐 타겟 위치까지 전송되고, 쿼리 경로에 있는 노드들은 쿼리를 등록한다.
도 3은 쿼리가 어떻게 타겟 위치에 가장 근접한 노드까지 전송되는 과정을 보여준다. 예를 들어, "좌표 (x=10, y=20)과 가장 가까운 센서 노드로 이루어진 공간을 찾으라."에 해당되는 쿼리는 NearBy(10, 10, 20, 20)으로 표현된다.
도 3의 단계1(step1)에서 알 수 있듯이, 주어진 좌표를 포함하는 서브트리에 해당되는 노드는 NearBy(10, 10, 20, 20)의 쿼리를 수신하고 등록한다. 그리고, 쿼리는 노드1부터 노드6까지를 따라 통과한다. 반면, 노드7부터 노드10은 노드5와 노드6이 그들의 서브트리가 주어진 좌표를 포함하지 않기 때문에 쿼리를 전송하지 않음에 따라 쿼리를 수신하지 않는다. 단계2(step2)에서, 노드4가 SNQL 엔벨롭 e3을 형성하고 노드5와 노드6에 의해 형성된 SNQL 엔벨롭 e1과 e2를 수신한다. 그리고 노드4는 SNQL 엔벨롭 e1을 주어진 타겟 위치로부터 가장 가까운 것으로 e1을 베이스 스테이션에 전송한다.
NearBy 연산의 과정은 표2의 알고리즘과 같다.
[표 2]
NearBy 연산은 coord(예를 들어, 타겟 위치의 좌표)를 입력으로 수신하고 em={space-ID, (xi, xj, yi, yj)}인 Sresult={em}의 형태로 기하학적 공간의 집합을 리턴한다. 먼저, SNQL 엔벨롭 eN은 <timestamp, (xN, xN, yN, yN)>의 형태로 생성된다. 만약, 다른 엔벨롭이 Nchild에 의해 생성되어 있다면, coord와 가장 근접한 것을 찾기 위해 eN과 비교한다. 그리고, 가장 가까운 엔벨롭이 리턴된다.
- Distance(Envelope, Range Value)
Distance 연산은 지정된 기하학적 공간으로부터 타 공간까지의 범위값을 식별한다. 상기한 바와 같이, 위치의 점 또한 SNQL 엔벨롭으로 표현한다는 것을 알고 있다. 예를 들어, "온도가 30도 이상인 기하학적 공간으로부터 10미터 떨어진 센서 노드로 이루어진 공간을 찾아라."라는 쿼리는 Distance(Envelope(temp>30), 10m)로 표현될 수 있다.
도 4의 단계1(step1)에서 알 수 있듯이, LCA 노드로서 노드5는 구성원이 온도 조건을 만족하는 두 SNQL 엔벨롭 e1과 e2를 식별한다. 단계2(step2)에서, 노드5는 주어진 범위 값에 따라 확장된 SNQL 엔벨롭 e1과 e2를 생성하고 확장된 SNQL 엔벨롭 e1과 e2에 쿼리를 전송한다.
Distance 연산의 과정은 표 3의 알고리즘과 같다.
<표 3>
Distance 연산의 함수는 기하학적 공간의 집합 ek={space-ID, (xi,xj,yi,yj)}인 Sin={e1,e2,…,ek}와 범위 값을 입력으로 수신한다. ek가 기존 ek의 새롭게 확장된 엔벨롭인 Sresult={e1',e2'…,ek'}를 리턴한다. 범위값에 따른 새로운 엔벨롭을 찾기 위해 각 ek의 envelope은 두 번째 입력 지표인 +/-의 범위값에 의해 확장된다. 그리고, Sresult가 리턴된다.
- Direction(Envelope, Direction Value)
Direction 연산은 지정된 공간 밖의 기하학적 공간을 동, 서, 남, 북의 주어진 방향과 이들의 혼합으로 표시한다. 예를 들어, "온도가 30도 이상인 어떤 공간의 서쪽에 위치한 센서 노드로 이루어진 공간을 찾아라."라는 쿼리는 Direction(Envelope(temp>30), WEST)로 표현된다.
도 5는 Direction 연산을 설명한다. 단계1(step1)에서, LCA 노드로서 노드5는 구성원이 온도조건을 만족하는 SNQL 엔벨롭 e1과 e2를 식별한다. 단계2(step2)에서, 노드5는 엔벨롭 e2를 엔벨롭 중 가장 서쪽에 있는 엔벨롭임을 인지하고 SNQL 엔벨롭 e3을 결과로 리턴한다.
Direction 연산의 과정은 표 4의 알고리즘과 같다.
Direction 연산의 함수는 기하학적 공간의 집합 ek={space-ID, (xi,xj,yi,yj)}인 Sin={e1,e2,…,ek}와 방향값을 입력으로 수신한다. em={space-ID, (xi, xj, yi, yj)}인 Sresult={em}의 형태로 기하학적 공간의 집합을 결과로 리턴한다. Sin으로 주어진 방향의 가장 끝 엔벨롭을 찾은 뒤, 주어진 방향 D로 결과의 기하학적 엔벨롭 eN이 식별된다. 예를 들어, 방향이 북쪽으로 주어졌을 때, Sin중 가장 북쪽의 엔벨롭이 찾아지고 엡실론 ε으로 식별된다. 그리고, 공간좌표(Xmin, Xmax, ε·yj, Ymax)를 갖는 엔벨롭 eN을 ε·yj보다 큰 yi를 갖는 결과공간으로서 생성한다. 여기서, Xmax나 Xmin은 영역의 x좌표의 최대값 또는 최소값을 의미하고, Ymax나 Ymin은 지역의 y좌표의 최대값 또는 최소값을 의미한다.
<표 4>
집합 연산자(Set Operators)
집합 연산자는 두 개의 피연산(operand) 공간을 사용함으로써 타겟 영역의 센서 노드를 식별하기 위해 설계된 것이다. 집합 연산자를 사용함으로써 SNQL은 응용프로그래머로 하여금 더 정교한 타겟 영역을 표현할 수 있게 한다. "온도가 30도 이상이면서 습도는 10%보다 낮고/낮지 않으며/낮거나 산의 서쪽 능선에 있는/있지 않은 복합 영역으로 식별되는 지역의 노드ID를 얻으라."라는 예시 쿼리가 있다. 이 쿼리에는 새로운 공간의 센서 노드를 식별하기 위해 Intersection, Union, Difference연산을 사용한다.
Union연산과 Difference연산은 결과의 최선의 정확도를 위해 도 6과 같이 다수의 분리된 공간을 생성한다는 것을 알고 있다. 주어진 공간은 다음과 같이 분리된 공간으로 분할된다. 단계1(step1)에서, Sa={ea1,ea2}, S_b={eb1,eb2}과 같은 두 개의 피연산 공간이 주어진다. 단계2(step2)에서, Sa와 Sb의 각 요소간 외적을 거쳐, intersect envelope ei1 ei2가 식별된다. 단계3(step3)에서, Sa Sb를 구성하는 요소 envelope들은 그 공간이 동서남북, 그리고 그 조합에 의한 8방향으로 ei1 ei2를 둘러싸고 존재하는지 비교된다. 그리고 존재하는 공간이 Sa={es11,es12,es13,es23,es24,es25}, Sb={es15,es16,es17,es21,es27,es28}을 형성한다.
- Intersection((s1, s2)|Envelope, Envelope)
Intersection연산은 명확하게 space-ID로 특정되거나 두 개의 공간연산의 결과값으로 함축적으로 특정된(예를 들어, SNQL 엔벨롭) 두 피연산 공간을 사용한다. 예컨대, "온도가 30도 이상이고 습도는 10%이하인 산의 서쪽 능선에 있는 교차 지역의 노드 ID를 얻어라."라는 예시 쿼리를 이용한다. 이 쿼리는 주어진 조건을 만족하는 중첩되는 분리된 공간의 다수의 조합을 통해 실현 가능하고 그러므로 분리된 공간의 집합(예를 들어, SNQL 엔벨롭)이 결과로 돌아올 것이다.
도 7이 Intersection 연산의 실행을 보여준다. 단계1(step1)에서, LCA 노드로서 노드1이 온도가 30도 이상인 SNQL 엔벨롭 e1을 수신하고 습도가 10%이하인 SNQL 엔벨롭 e2를 수신한다. 단계2(step2)에서, 노드1이 엔벨롭 e1과 e2의 교차지역을 계산한다. 그리고, SNQL 엔벨롭 e3를 생성하고 e3에게 쿼리를 전송한다.
- Union((s1, s2)|Envelope, Envelope)
Union연산은 명확하게 space-ID로 특정되거나 두 개의 공간연산의 결과값으로 함축적으로 특정된(예를 들어, SNQL 엔벨롭) 두 피연산 공간을 사용한다. "온도가 30도 이상이고 습도는 10%이하인 산의 서쪽 능선에 있는 합집합 지역의 노드 ID를 얻어라."라는 예시 쿼리가 사용된다. 이 예시는 주어진 조건을 만족하는 중첩되는 분리된 공간의 다수의 조합을 통해 실현 가능함을 암시하고, 결과적으로 구성하는 분리된 공간의 집합이 결과로 돌아올 것이다(예를 들어, SNQL 엔벨롭).
도 8이 Union연산의 예시 실행을 나타낸다. 단계1(step1)에서, LCA노드로서 노드1이 온도가 30도 이상인 SNQL 엔벨롭 e1을 수신하고 습도가 10%이하인 SNQL 엔벨롭 e2를 수신한다. 단계2(step2)에서, 노드1은 엔벨롭 e1과 e2을 교차지역에 기초하여 분리함으로써 이들의 합집합 지역을 계산한다. 그리고 노드1은 엔벨롭 e3부터 e9까지를 생성하고 쿼리를 e3부터 e9까지의 센서 노드로 전송한다. Intersection연산과 달리 Union연산은 도 8과 같이 합쳐졌을 때 두 공간의 합집합 지역을 나타내는 엔벨롭의 집합을 생성한다는 것이다.
- Difference((s1,s2)|Envelope, Envelope)
Difference연산은 명확하게 space-ID로 특정되거나 두 개의 공간연산의 결과값으로 함축적으로 특정된(예를 들어, SNQL 엔벨롭) 두 피연산 공간을 사용한다. "온도가 30도 이상이고 습도는 10%이상인 산의 서쪽 능선에 있는 지역의 노드 ID를 얻어라."라는 예시 쿼리가 사용된다. 이 예시는 주어진 조건을 만족하는 중첩되는 분리된 공간의 다수의 조합을 통해 실현 가능함을 암시하고, 결과적으로, 구성하는 분리된 공간의 집합이 결과로 돌아올 것이다(예를 들어, SNQL 엔벨롭).
도 9가 Difference연산의 예시 실행을 보여준다. 단계1(step1)에서, LCA노드로서 노드1은 온도가 30도 이상인 SNQL 엔벨롭 e1을 수신하고 습도가 10%이하인 SNQL 엔벨롭 e2를 수신한다. 단계2(step2)에서, 노드1은 공통지역을 분할함으로써, e1과 e2의 차이가 나는 지역을 계산한다. 그리고, SNQL 엔벨롭 e3,e4,e5를 생성하고 쿼리를 e3,e4,e5노드에 전송한다. Union연산과 유사하게, Difference 연산은 도 9에 나타나듯 합쳐져서 Difference연산의 결과 분리된 공간을 형성하는 엔벨롭의 집합을 생성한다.
상기한 Set연산의 과정은 표 5의 알고리즘과 같다.
<표 5>
Set연산의 함수는 op_name(예를 들면, 연산자 이름), Sa={es11,es12,es13,es23,es24,es25}, Sb={es15,es16,es17,es21,es27,es28}을 입력으로 수신하고 em={space-ID, (xi, xj, yi, yj)}인 Sresult={em}의 형태로 기하학적 공간의 집합을 결과로 리턴한다(알고리즘의 1-4줄). 우선, Sa내 각 엔벨롭 ea들이 Sb의 eb와 겹칠 때, 교차 엔벨롭 ei가 <timestamp, (xN, xN, yN, yN)>의 형태로 생성된다. 이를 8방향(동서남북 그리고 그 조합)과 비교하여, ea가 각 방향의 ei의 옆에 위치할 때, ea는 방향별 구성 엔벨롭으로 나뉜다. 그리고, 방향별 구성 엔벨롭들은 εa={e1, e2, e3, …, ek}를 형성한다. 또한, eb도 같은 방식으로 나뉜다. 여기서, 엔벨롭은 ei에 위치에 의해 식별된다. 도 8의 경우에서, e3은 교차점 엔벨롭으로서 생성되고, εa={e7, e8, e9}, εb={e4, e5, e6}가 e3을 둘러싸고 생성되는 반면 e3의 북서와 동서쪽 방향으로는 엔벨롭들이 생성되지 않는다(알고리즘의 5-6줄). 만약 op_named이 "Intersection"이라면, ei는 Sresult에 추가된다(알고리즘의 7줄). 만약 op_name이 "Difference"라면, εa가 Sresult에 추가된다(알고리즘의 8줄). 만약 op_name이 "Union"이라면, εa, εb, ei가 Sresult에 추가된다(알고리즘의 9줄). 만약 겹치는 부분이 존재하지 않는다면, op_name이 "Difference"일 때 ea가 Sresult에 추가되는 한편 op_name이 "Union"일 때는 ea와 eb가 Sresult에 추가된다(알고리즘의 10-12줄). 마침내 Sa와 Sb의 내적에 의해 발생한 불필요한 엔벨롭은 Sresult로부터 제거된다(알고리즘의 16줄).
SNQL에서의 공간 연산자는 표 6과 같다.
<표 6>
센서 네트워크 쿼리 언어(SNQL)에서의 공간적 표현
공간 연산자를 지원 할 수 있도록 센서 네트워크 쿼리 언어(SNQL)를 확장하였다. 기존 센서 네트워크 쿼리 언어(SNQL)는 Select-From-Where 구조에 기초하여 만들어졌고 일회성, 연속형 그리고 이벤트에 기반의 쿼리를 지원한다.
표 7의 알고리즘은 기존 센서 네트워크 쿼리 언어(SNQL)의 기본 구조를 나타낸 것이다.
<표 7>
EVENT ON 항목은 이벤트가 발생했을 때, 다음 쿼리가 실행되도록 미리 설정된 이벤트이다. SELECT 항목은 각각의 센서 노드로부터 모아진 센서 데이터에 상응하는 속성을 묘사한다. FROM 항목은 쿼리 전달을 위한 초기 타겟 영역을 의미한다. WHERE 항목은 selection 조건을 묘사한다. SAMPLE PERIOD 항목은 데이터 수집을 위한 다양한 시간에 대한 표시이다. OUTPUT ACTION 항목은 이벤트나 선택조건이 만족되었을 때 실행될 센서의 액션을 정의한다. WHITHIN 항목은 모든 센서 노드 중 쿼리 과정에 참가하는 센서 노의 비율을 의미한다. CASE WHEN 항목은 조건에 따른 쿼리의 브랜칭을 지정한다.
센서 네트워크 쿼리 언어(SNQL)에 공간 연산자를 추가하기 위하여, WHERE 항목과 WHEN 항목의 표현을 표 8처럼 확장하였다.
<표 8>
더 구체적으로는, 앞서 설명한 공간 연산자를 사용하기 위해서 <SpatialFunc>를 <Expression>의 <SQLSimpleExp>에 추가하였다. <SpatialFunc>는 <Envelope>, <NearBy>, <Distance>, <Direction>, <Intersection>, <Union>, <Difference>로 구성되어 있다. <Envelope>은 속성(예를 들어 온도), 연산자(예를 들어 ">", "<", "=")와 상수가 혼합된 형태로 표현된다. <NearBy>는 x와 y좌표를 표시하는 정수값들로 표현된다. <Distance>는 <SpatialFunc>로부터 선택된 연산자와 거리를 가리키는 상수로 표현된다. <Direction>은 <SpatialFunc>로부터 선택된 연산자와 방향을 가리키는 상수로 표현된다. <Intersection>은 교차영역을 구하기 위한 <SpatialFunc>의 조합으로 구성되어 있다. <Union>은 합집합영역을 구하기 위한 <SpatialFunc>의 조합으로 구성되어 있다. <Difference>는 차집합영역을 구하기 위한 <SpatialFunc>의 조합으로 구성되어 있다. <envelope>, <attribute>, <operator>, <constant>는 기초 속성들로 추가적인 설명은 생략한다.
LCA: In-Network Qurey Processing Algorithm
센서 네트워크 쿼리는 단일 쿼리내에서 다중 데이터 리딩이 자주 일어난다. 예를 들어, "습도가 10%이하인 산의 서쪽능선 지역의 온도를 얻어라"라고 주어진 예제 쿼리는 두 개의 분리된 태스크를 포함한다: (1)서부능선의 모든 노드로부터 습도를 읽어오는 것, (2)습도가 10%이하인 노드의 온도를 읽어오는 것이 그 것이다. 현존하는 시스템에서 이 작업은 베이스스테이션과 지정된 공간의 타겟 노드 간에 두 번의 순회하는 질의를 필요로 한다.
본 발명에 따른 쿼리 처리 알고리즘은 다중의 쿼리 태스크가 LCA라 불리는 인-네트워크 노드에 의해 처리되는 것이 가능하게 한다. LCA노드는 타겟 영역의 모든 자식 노드를 모두 포함하도록 최소한 그리고 최초로 쿼리를 전송하는 중간 조상 노드의 일종이다. 이는 다중 리딩 태스크를 위해 인-네트워크 쿼리의 재구성과 재전송의 역할을 하기 위해 설계되는 것이다.
본 발명에 따른 쿼리 처리 알고리즘은 베이스스테이션(예를 들어, 루트 노드)과 타겟 노드 간 불필요한 다중의 쿼리/데이터 교환에 의해 발생하는 무선 센서 노드의 에너지 소비를 효율적으로 줄여준다.
LCA노드를 찾는 과정은 다음과 같다.
쿼리 경로에 있는 각 노드는 두 지표를 관리한다(#Ancestormax_send, #Childsend). 전자는 조상 노드가 자식 노드로 쿼리를 전송한 최대 개수를 의미하고, 후자는 쿼리를 전달한 자식 노드의 숫자를 의미한다. LCA노드는 #Childsend 값이 쿼리 경로 중 첫 번째로 1보다 커지는노드로 식별된다.
도 10 (a)는 LCA노드가 어떻게 예시 쿼리 첫 타겟 영역에서 결정되는지를 보여준다. 베이스스테이션으로서 N01은 쿼리를 수신하고 쿼리 프로세서는 타겟 영역의 수신 노드인 N02를 찾는다. 여기서, N01은 조상 노드를 가지고 있지 않기 때문에, #Ancestormax
_send가 0이다. 그리고, 쿼리를 N02로만 보내기 때문에, #Childsend가 1이다. 이러한 방식으로, 첫 목표까지의 쿼리경로에 있는 N03, N04, N05, N06은 (#Ancestormax_send=1, #Childsend=1)을 갖는다. N07은 N06으로부터 쿼리를 수신하고 두 개의 자식 노드로 쿼리를 전달한다. 그래서 처음으로 자식 노드의 수가 1보다 크게 된다(#Ancestormax_send=1, #Childsend=2). 그러므로, N07은 이 쿼리의 타겟 영역의 모든 노드를 최소로 커버하는 최저의 중간 노드인 LCA노드가 된다.
도 10 (b)에서, LCA노드는 최종 목표 노드에서(예를 들어 최초의 타겟 영역에서 습도가 10%이하인 노드) 데이터 수집을 위한 쿼리를 다시 생성한다. 이때, LCA노드는 최종 목표 노드를 식별하는 데 중요한 역할을 하고 다음 쿼리 업무를 그 노드에 재전송한다(예를 들어 온도 수집).
LCA 연산의 과정은 표 9의 알고리즘과 같다.
LCA 연산의 함수는 #Ancestormax
_send를 입력으로 수신하고 현재 노드가 LCA노드인지 아닌지에 대한 결정에 따라 참/거짓을 결과로 리턴한다. 우선, 등록된 쿼리는 자식 노드로부터 수신된 엔벨롭으로 재구성된다. 만약 현재 노드가 다음의 조건을 만족한다면: (1) 노드는 (#Ancestormax
_send=1, #Childsend>1), (2) 베이스스테이션은 (#Ancestormax_send=0, #Childsend>1)(알고리즘의 1-2줄). 그리고, 쿼리 프로세서(또는 Disseminator)은 재구성된 쿼리를 재전송하기 위해 불려진다. 그리고 참이 반환된다(알고리즘의 3-5줄). 만약, 현재 노드가 LCA노드가 아니라면, 거짓이 반환된다(알고리즘의 6줄).
<표 9>
Architecture
본 발명에 따른 센서 네트워크 데이터베이스 시스템의 구조를 설명한다.
- 개요
도 11을 참조하면, 본 발명에 따른 센서 네트워크 데이터베이스 시스템은 SNQL 서버 역할을 하는 베이스스테이션(110), 및 타겟 영역 내에 위치한 센서 노드(120)로 구성되어 있다.
베이스스테이션(110)에서 쿼리를 받는 중, 쿼리 프로세서(111)는 쿼리를 분석하고 실행을 계획한 후 분석된 쿼리를 네트워크 매니저(Network Manager)(112)에게 전송한다. 이는 노드와 노드 간 연결(예를 들어 토폴로지)에 대한 메타데이터를 통해 목표 노드까지의 경로를 결정하는 데에 사용한다. 최초의 타겟 영역의 센서 노드(120)까지 기록된 경로에 있는 노드들은 분석된 쿼리를 목표 노드의 조상 노드로 등록하고, 노드들 중 하나가 다중의 공간 연산이 적용될 때 새로운 타겟 노드를 식별하기 위한 LCA노드의 역할을 한다.
타겟 영역의 노드인 센서 노드(120)의 쿼리 프로세서(121)는 실행자(Executor), 이벤트 매니저(Event Manager), 액션 매니저(Action Manager), 및 전송자(Disseminator)를 포함한다.
센서 노드(120)에서 실행자는 쿼리를 실행하고 조상 노드를 통해 SNQL 서버로 데이터를 전송하고, 이벤트 매니저는 타겟 노드에 등록된 이벤트쿼리를 관리한다. 그리고, 액션 매니저는 쿼리 조건이 만족되었을 때 실행되어야 할 액션(예를 들어 경보음 발생 등)을 관리하고, 전송자는 재구성된 쿼리를 다른 노드로 재전송 하는 역할을 한다.
네트워크 매니저(122)는 목표 지역의 노드들까지 분석된 쿼리를 전달하고, 쿼리 결과를 수신하며, 자신의 조상 노드로 결과를 리턴한다. 결국, 베이스스테이션(110)은 어플리케이션으로 전달하기 전 주어진 쿼리에 의해 요청된 형식으로 수집된 센서 데이터를 후처리한다.
- 메타데이터 관리
속성종류, 위치 정보, 센서노드의 MBR(minimum boundary rectangle)과 같은 SNQL의 메타데이터는 쿼리 처리과정 중 사용된다. 각 노드는 직접 연결된 자식 노드의 메타데이터를 다음과 같은 형식으로 관리한다: {(xi, yi), (NodeID, {sensorType})}의 형식인데, (xi, yi)는 자식 노드의 좌표를 의미하고, (NodeID, {sensorType})는 nodeID와 센서종류를 의미한다. 또한, 서브트리의 메타데이터는 다음과 같은 형식으로 표현된다: {(xi, xj, yi, yj), {sensorType}}의 형태인데, (xi, xj, yi, yj)는 MBR의 꼭짓점을 의미하고 {sensorType}는 서브트리의 센서 종류를 의미한다.
도 12는 메타데이터 관리의 예시를 보여준다. 원은 센서 노드를 의미하고, 점선은 그 서브트리의 MBR을 의미한다. 베이스스테이션은 "{(10, 60), (N01, {sensorType})}"을 직접 연결된 자식 노드의 메타데이터로 관리하고 "{(10, 50, 40, 100), {sensorType}}"을 서브트리의 메타데이터로 관리한다. 또한 N01노드는 "((25,95),(N02,{sensorType})), ((22,58),(N03,{sensorType}))"을 직접 연결된 자식 노드의 메타데이터로 관리하고 "(((25, 45, 77,100),{sensorType}), ((22,50,40,58,{sensorType}))"을 서브트리의 메타데이터로 관리한다. 이러한 방식으로, N02는 두 개의 직접 연결된 자식노드의 메타데이터를 관리하고 MBR을 포함한 두 개의 서브트리의 메타데이터를 관리한다. 여기서, 서브트리의 MBR은 타겟 영역이 서브트리의 MBR과 겹칠 때 자식 노드로 쿼리를 전달할 것인지 결정하는 데에 사용한다. 이 메타데이터는 센서 네트워크가 구성될 때 생성된다. 또한, 노드가 추가되거나 삭제될 때, 메타데이터는 그 조상 노드와 자식 노드를 업데이트 함으로서 재구성된다.
이와 같이, 본 발명의 실시예에 따르면, 센서 네트워크 데이터베이스(SNDB)가 다양한 공간 연산자(spatial operator)를 처리하여 타겟 영역(target space)을 정교하게 표현할 수 있도록 기존 센서 네트워크 쿼리 언어(SNQL)를 확장하였다. 따라서, 쿼리를 위한 영역 정보를 용이하게 표현하고 처리할 수 있고 효율적으로 쿼리를 처리할 수 있다. 더욱이, 본 발명의 실시예에 따르면, 수집된 중간 쿼리 결과를 기준으로 다시 쿼리를 수행하는 경우 쿼리의 중간 결과를 서버까지 전송하지 않고 노드 레벨인 LCA(lowest common ancestor) 노드에서 쿼리의 중간 결과를 이용하여 처리함으로써 쿼리 처리 비용을 줄일 수 있다. 그리고, 본 발명의 실시예에 따르면, 다각형 모양의 공간(polygon shaped space)과 공간 연산자를 정의함으로써 센서 네트워크 데이터베이스(SNDB)에서 특정 영역 대상의 쿼리 처리 시 비정형 영역을 대상으로 쿼리 처리를 수행할 수 있다.
본 발명의 실시예에 따른 방법들은 다양한 컴퓨터 시스템을 통하여 수행될 수 있는 프로그램 명령(instruction) 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
Claims (16)
- 컴퓨터로 구현되는 무선 센서 네트워크에서의 쿼리 처리 방법에 있어서,상기 무선 센서 네트워크에 속하는 기지국에서 상기 무선 센서 네트워크 상에 쿼리를 전송하는 단계; 및상기 쿼리를 수신한 센서 노드에서, 상기 쿼리를 수행함에 따라 센서 데이터를 수집하는 단계를 포함하고,상기 쿼리는 센서 네트워크 쿼리 언어(sensor network query language, SNQL)로 표현된 데이터 수집의 요구 사항으로, 상기 쿼리를 수행할 기하학적 타겟 영역(geometric target space)을 식별하기 위한 공간 연산자(spatial operator)가 정의되는 것을 특징으로 하는 센서 네트워크 데이터베이스에서의 쿼리 처리 방법.
- 제1항에 있어서,상기 공간 연산자는 주어진 조건(condition)을 만족시키는 기하학적 공간을 타겟 영역으로 설정하기 위한 엔벨롭 연산자(envelope operator)를 포함하는 것을 특징으로 하는 센서 네트워크 데이터베이스에서의 쿼리 처리 방법.
- 제2항에 있어서,상기 공간 연산자는 타겟 위치와 가장 가까운 기하학적 공간을 타겟 영역으로 설정하기 위한 니어바이 연산자(nearby operator), 주어진 기하학적 공간으로부터 주어진 거리 이내에 있는 공간을 타겟 영역으로 설정하기 위한 거리 연산자(distance operator), 주어진 기하학적 공간으로부터 주어진 방향에 있는 공간을 타겟 영역으로 설정하기 위한 방향 연산자(direction operator) 중 적어도 하나의 연산자를 더 포함하는 것을 특징으로 하는 센서 네트워크 데이터베이스에서의 쿼리 처리 방법.
- 제2항에 있어서,상기 공간 연산자는 둘 이상의 피연산자(operand)를 사용하는 집합 연산자(set operator)로서, 주어진 기하학적 공간 간의 교차 지역(intersection area)을 타겟 영역으로 설정하기 위한 교차 연산자(intersection operator), 주어진 기하학적 공간 간의 합집합 지역(union area)을 타겟 영역으로 설정하기 위한 합집합 연산자(union operator), 주어진 기하학적 공간 간의 차집합 지역(difference area)을 타겟 영역으로 설정하기 위한 차집합 연산자(difference operator) 중 적어도 하나의 연산자를 포함하는 것을 특징으로 하는 센서 네트워크 데이터베이스에서의 쿼리 처리 방법.
- 제1항에 있어서,상기 센서 데이터를 수집하는 단계는,상기 쿼리가 둘 이상의 태스크를 포함하는 경우,상기 쿼리를 전달하는 자식 노드의 수를 확인하는 단계;상기 자식 노드의 수에 따라 LCA(lowest common ancestor) 노드 여부를 결정하는 단계;상기 LCA 노드에 해당되는 경우 상기 자식 노드로부터 수신된 센서 데이터를 이용하여 상기 쿼리를 재구성하는 단계; 및상기 재구성된 쿼리를 상기 자식 노드로 재전송하는 단계를 포함하는 센서 네트워크 데이터베이스에서의 쿼리 처리 방법.
- 제5항에 있어서,상기 LCA 노드 여부를 결정하는 단계는,상기 쿼리의 전송 경로에서 최초로 쿼리가 전달된 상기 자식 노드의 수가 1을 초과하는 경우 상기 LCA 노드로 결정하는 것을 특징으로 하는 센서 네트워크 데이터베이스에서의 쿼리 처리 방법.
- 제1항에 있어서,상기 센서 노드는 직접 연결된 적어도 하나의 자식 노드와 서브트리(subtree)의 메타데이터를 관리하고,상기 자식 노드의 메타데이터는 상기 자식 노드의 좌표와 식별 번호 및 센서 종류를 포함하고,상기 서브트리의 메타 데이터는 상기 서브트리의 MBR(minimum boundary rectangle)의 좌표와 센서 종류를 포함하는 것을 특징으로 하는 센서 네트워크 데이터베이스에서의 쿼리 처리 방법.
- 제7항에 있어서,상기 서브트리의 MBR이 상기 타겟 영역에 해당되는 경우 상기 서브트리에 포함되는 자식 노드로 상기 쿼리가 전달되는 것을 특징으로 하는 센서 네트워크 데이터베이스에서의 쿼리 처리 방법.
- 적어도 하나의 프로그램이 로딩된 메모리; 및적어도 하나의 프로세서를 포함하고,상기 적어도 하나의 프로세서는, 상기 프로그램의 제어에 따라,무선 센서 네트워크에 속하는 기지국에서 상기 무선 센서 네트워크 상에 쿼리를 전송하는 과정; 및상기 쿼리를 수신한 센서 노드에서, 상기 쿼리를 수행함에 따라 센서 데이터를 수집하는 과정을 처리하고,상기 쿼리는 센서 네트워크 쿼리 언어(sensor network query language, SNQL)로 표현된 데이터 수집의 요구 사항으로, 상기 쿼리를 수행할 기하학적 타겟 영역(geometric target space)을 식별하기 위한 공간 연산자(spatial operator)가 정의되는 것을 특징으로 하는 센서 네트워크 데이터베이스에서의 쿼리 처리 장치.
- 제9항에 있어서,상기 공간 연산자는 주어진 조건(condition)을 만족시키는 기하학적 공간을 타겟 영역으로 설정하기 위한 엔벨롭 연산자(envelope operator)를 포함하는 것을 특징으로 하는 센서 네트워크 데이터베이스에서의 쿼리 처리 장치.
- 제10항에 있어서,상기 공간 연산자는 타겟 위치와 가장 가까운 기하학적 공간을 타겟 영역으로 설정하기 위한 니어바이 연산자(nearby operator), 주어진 기하학적 공간으로부터 주어진 거리 이내에 있는 공간을 타겟 영역으로 설정하기 위한 거리 연산자(distance operator), 주어진 기하학적 공간으로부터 주어진 방향에 있는 공간을 타겟 영역으로 설정하기 위한 방향 연산자(direction operator) 중 적어도 하나의 연산자를 더 포함하는 것을 특징으로 하는 센서 네트워크 데이터베이스에서의 쿼리 처리 장치.
- 제10항에 있어서,상기 공간 연산자는 둘 이상의 피연산자(operand)를 사용하는 집합 연산자(set operator)로서, 주어진 기하학적 공간 간의 교차 지역(intersection area)을 타겟 영역으로 설정하기 위한 교차 연산자(intersection operator), 주어진 기하학적 공간 간의 합집합 지역(union area)을 타겟 영역으로 설정하기 위한 합집합 연산자(union operator), 주어진 기하학적 공간 간의 차집합 지역(difference area)을 타겟 영역으로 설정하기 위한 차집합 연산자(difference operator) 중 적어도 하나의 연산자를 포함하는 것을 특징으로 하는 센서 네트워크 데이터베이스에서의 쿼리 처리 장치.
- 제9항에 있어서,상기 센서 데이터를 수집하는 과정은,상기 쿼리가 둘 이상의 태스크를 포함하는 경우,상기 쿼리를 전달하는 자식 노드의 수를 확인하는 과정;상기 자식 노드의 수에 따라 LCA(lowest common ancestor) 노드 여부를 결정하는 과정;상기 LCA 노드에 해당되는 경우 상기 자식 노드로부터 수신된 센서 데이터를 이용하여 상기 쿼리를 재구성하는 과정; 및상기 재구성된 쿼리를 상기 자식 노드로 재전송하는 과정을 포함하는 센서 네트워크 데이터베이스에서의 쿼리 처리 장치.
- 제13항에 있어서,상기 LCA 노드 여부를 결정하는 과정은,상기 쿼리의 전송 경로에서 최초로 쿼리가 전달된 상기 자식 노드의 수가 1을 초과하는 경우 상기 LCA 노드로 결정하는 것을 특징으로 하는 센서 네트워크 데이터베이스에서의 쿼리 처리 장치.
- 제9항에 있어서,상기 센서 노드는 직접 연결된 적어도 하나의 자식 노드와 서브트리(subtree)의 메타데이터를 관리하고,상기 자식 노드의 메타데이터는 상기 자식 노드의 좌표와 식별 번호 및 센서 종류를 포함하고,상기 서브트리의 메타 데이터는 상기 서브트리의 MBR(minimum boundary rectangle)의 좌표와 센서 종류를 포함하는 것을 특징으로 하는 센서 네트워크 데이터베이스에서의 쿼리 처리 장치.
- 제7항에 있어서,상기 서브트리의 MBR이 상기 타겟 영역에 해당되는 경우 상기 서브트리에 포함되는 자식 노드로 상기 쿼리가 전달되는 것을 특징으로 하는 센서 네트워크 데이터베이스에서의 쿼리 처리 장치.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020150059752A KR101712727B1 (ko) | 2015-04-28 | 2015-04-28 | 무선 센서 네트워크 데이터베이스 시스템에서 공간쿼리를 위한 연산자 및 에너지 효율적인 쿼리 처리 |
| KR10-2015-0059752 | 2015-04-28 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2016175430A1 true WO2016175430A1 (ko) | 2016-11-03 |
Family
ID=57199351
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/KR2016/000852 Ceased WO2016175430A1 (ko) | 2015-04-28 | 2016-01-27 | 무선 센서 네트워크 데이터베이스 시스템에서 공간쿼리를 위한 연산자 및 에너지 효율적인 쿼리 처리 |
Country Status (2)
| Country | Link |
|---|---|
| KR (1) | KR101712727B1 (ko) |
| WO (1) | WO2016175430A1 (ko) |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20060282498A1 (en) * | 2005-06-09 | 2006-12-14 | Hitach, Ltd. | Sensor network system, method for data processing of a sensor network system |
| KR20120097302A (ko) * | 2011-02-24 | 2012-09-03 | 연세대학교 산학협력단 | 데이터 스트림에서의 다중 조인 질의 처리 방법 |
| KR101480261B1 (ko) * | 2014-02-21 | 2015-01-12 | 한국과학기술원 | 모바일 환경의 센서 데이터베이스에서 질의언어를 처리하는 방법 및 시스템 |
-
2015
- 2015-04-28 KR KR1020150059752A patent/KR101712727B1/ko not_active Expired - Fee Related
-
2016
- 2016-01-27 WO PCT/KR2016/000852 patent/WO2016175430A1/ko not_active Ceased
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20060282498A1 (en) * | 2005-06-09 | 2006-12-14 | Hitach, Ltd. | Sensor network system, method for data processing of a sensor network system |
| KR20120097302A (ko) * | 2011-02-24 | 2012-09-03 | 연세대학교 산학협력단 | 데이터 스트림에서의 다중 조인 질의 처리 방법 |
| KR101480261B1 (ko) * | 2014-02-21 | 2015-01-12 | 한국과학기술원 | 모바일 환경의 센서 데이터베이스에서 질의언어를 처리하는 방법 및 시스템 |
Non-Patent Citations (3)
| Title |
|---|
| LIM, CHONG SOK ET AL.: "Design and Implementation of Spatial Operators and Energy-Efficient Query Processing Strategy in Wireless Sensor Network Database System''.", INTERNATIONAL JOURNAL OF DISTRIBUTED SENSOR NETWORKS - SPECIAL ISSUE ON MOBILE SENSING AND DATA MANAGEMENT FOR SENSOR NETWORKS 2014, vol. 2015, January 2015 (2015-01-01), pages 1 - 17, XP055326240 * |
| LIM, JONG SEOK: "Spatial Operators and Energy-Efficient Query Processing Strategy in Wireless Sensor Network Database System", DOCTORAL THESIS, February 2015 (2015-02-01) * |
| PARK, MIN JEE ET AL.: "Efficient Space Assignment Query Language and Processing Scheme in Sensor Database: An Explorative Stud", JOURNAL OF KOREAN INSTITUTE OF INFORMATION SCIENTISTS AND ENGINEERS, vol. 40, no. 1, February 2013 (2013-02-01), pages 36 - 42 * |
Also Published As
| Publication number | Publication date |
|---|---|
| KR20160128524A (ko) | 2016-11-08 |
| KR101712727B1 (ko) | 2017-03-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN114003613B (zh) | 高精地图车道线更新方法、装置、电子设备以及存储介质 | |
| Volkov et al. | Interaction of the IoT traffic generated by a smart city segment with SDN core network | |
| US10644964B2 (en) | Method and system for discovering and presenting access information of network applications | |
| WO2020015115A1 (zh) | 故障告警方法及终端设备 | |
| WO2019240452A1 (ko) | 실 공간에서 관심지점 관련 정보를 자동으로 수집 및 업데이트하는 방법 및 시스템 | |
| WO2022267175A1 (zh) | 信息处理方法、装置、计算机设备及存储介质 | |
| WO2018030747A1 (ko) | 배송 경로를 학습하여 배송 계획을 생성하는 장치 및 방법 | |
| CN118447723B (zh) | 低空空域网格化无人机管理系统 | |
| CN112445881B (zh) | 路径规划方法、装置、设备及存储介质 | |
| US9350810B2 (en) | Constructing an integrated road network | |
| CN105893577B (zh) | 路网数据处理方法及装置 | |
| CN114116946A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
| WO2021025364A1 (ko) | 라이다와 카메라를 이용하여 이미지 특징점의 깊이 정보를 향상시키는 방법 및 시스템 | |
| CN115225545B (zh) | 一种报文传输方法及装置 | |
| CN114564019B (zh) | 一种信息安全路径规划方法、系统、设备及可读存储介质 | |
| WO2016175430A1 (ko) | 무선 센서 네트워크 데이터베이스 시스템에서 공간쿼리를 위한 연산자 및 에너지 효율적인 쿼리 처리 | |
| CN103201739B (zh) | 信息处理设备 | |
| JP3809985B2 (ja) | 属性データ管理方法 | |
| CN114880418B (zh) | 路口的失效通行限制信息的挖掘方法及装置、设备和介质 | |
| CN114430364B (zh) | 信息展示方法、装置、电子设备和计算机可读介质 | |
| CN118228263A (zh) | 工控漏洞分析方法及装置、计算机存储介质及终端 | |
| CN115002196A (zh) | 一种数据处理方法、装置、车端采集设备 | |
| KR102733522B1 (ko) | 크라우드 소싱 기반 차량 주행 보조 시스템 및 방법 | |
| CN114691019A (zh) | 数据采集方法、系统、装置、服务器和存储介质 | |
| CN114363259A (zh) | 用于overlay网络的路径探测系统以及路径探测方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 16786617 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 16786617 Country of ref document: EP Kind code of ref document: A1 |








