Digital object access method and system in man-machine-object fusion environment

文档序号:1831343 发布日期:2021-11-12 浏览:10次 中文

阅读说明:本技术 一种人机物融合环境下的数字对象访问方法和系统 (Digital object access method and system in man-machine-object fusion environment ) 是由 黄罡 罗超然 马郓 张颖 于 2021-10-13 设计创作,主要内容包括:本申请提供了一种人机物融合环境下的数字对象访问方法和系统,属于通讯技术领域。本申请实施例基于分布式哈希表DHT构建P2P网络,并利用Kademlia算法构建每个节点对应的Kad路由表,并根据Kad路由表中各个节点距离目标节点的逻辑距离,构建索引二叉树;存储数字对象的节点向根节点传递消息的过程中,消息途径的节点均构建针对该数字对象的反向路由表,使得在数据查询阶段,从任意节点出发通过Kad路由表和反向路由表均能找到目标数据,能够在不增加数据寻址复杂度的基础上,实现基于DHT的P2P网络中数据实体的数据标识与其存储位置的解耦,允许数字对象存储在P2P网络中的任意节点中,满足人机物融合环境下数字对象空间约束的同时也可以提高数字对象的访问效率。(The application provides a digital object access method and system in a man-machine-object fusion environment, and belongs to the technical field of communication. The method includes the steps that a P2P network is built on the basis of a DHT (distributed hash table), a Kad routing table corresponding to each node is built through a Kademlia algorithm, and an index binary tree is built according to the logical distance between each node in a Kad routing table and a target node; in the process of transmitting a message to a root node by a node storing a digital object, all nodes in a message path construct a reverse routing table aiming at the digital object, so that target data can be found from any node through an Kad routing table and the reverse routing table in a data query stage, the decoupling of data identification and a storage position of a data entity in a P2P network based on DHT can be realized on the basis of not increasing the complexity of data addressing, the digital object is allowed to be stored in any node in the P2P network, and the access efficiency of the digital object can be improved while the space constraint of the digital object under a man-machine-object fusion environment is met.)

1. A method for accessing a digital object in a human-computer-object fusion environment, the method comprising:

constructing a P2P network based on a DHT (distributed hash table), wherein each node in the P2P network comprises a node identification corresponding to the node; according to the node identification, an Kad routing table corresponding to each node is constructed by using a Kademlia algorithm;

taking any node in the P2P network as a target node, calculating the logical distance from each node in a Kad routing table corresponding to the target node, and constructing an index binary tree according to the logical distance from each node to the target node;

Under the condition that any node in the index binary tree obtains a data entity of the digital object, determining the node as an adjacent warehouse node;

the adjacent warehouse node generates a first data identifier aiming at the data entity, and transmits the first data identifier to the parent node at the upper level of the adjacent warehouse node in sequence until the first data identifier reaches the root node of the index binary tree, so that the parent node and the root node construct a reverse routing table containing the first data identifier;

determining any node in the index binary tree as a query starting node under the condition that the node obtains a query request aiming at the data entity;

under the condition that the reverse routing table is not stored in the query starting node, sequentially forwarding the query request to a parent node at the upper level in the index binary tree according to the Kad routing table until the query request reaches the parent node or the root node of the reverse routing table containing the first data identifier;

forwarding the query request to the adjacent warehouse node by a parent node or a root node of a reverse routing table containing the first data identifier according to the reverse routing table;

And the adjacent warehouse node returns the current state information of the data entity to the query starting node according to the query request.

2. The method of claim 1, wherein the step of calculating the logical distance from each node in the Kad routing table corresponding to the target node with any node in the P2P network as the target node comprises:

calculating the logical distance from each node in the Kad routing table corresponding to the target node by adopting the following XOR calculation formula;

d(node1,node2)=IDnode1⊕IDnode2

wherein node1 is the target node, IDnode1A node identification of the target node; node2 is any node in Kad routing table, IDnode2A node identification for any node in the Kad routing table; d (node1, node2) is the logical distance between the target node and any node in the Kad routing table.

3. The method according to claim 1, wherein said step of constructing an indexed binary tree based on the logical distances of said respective nodes from said target node comprises:

sequentially storing the tree nodes of the ith layer of the index binary tree according to the logical distance between each node and the target node in an ascending order or a descending order, wherein the logical distance between each node and the target node is [2 ] i-1,2i) A node within the range, wherein i is a positive integer.

4. The method according to claim 1, wherein the step of the neighboring warehouse node generating a first data identifier for the data entity and sequentially transmitting the first data identifier to a parent node at a higher level of the neighboring warehouse node until the first data identifier reaches a root node of the binary indexing tree, so that the parent node and the root node construct a reverse routing table containing the first data identifier comprises:

the neighbor warehouse node generates a reverse routing table based on a bloom filter, the reverse routing table comprising a ternary routing group<IDnode,Address,Set[BF Vector]>Wherein IDnodeFor the node identification of the adjacent warehouse node, Address is the network Address of the adjacent warehouse node, Set [ BF Vector]Identifying a set for data contained by the proximate warehouse node;

the adjacent warehouse node generates a first data identifier of the data entity, writes the first data identifier into Set [ BF Vector ] of the adjacent warehouse node, and transmits the first data identifier to an upper-level father node;

under the condition that the father node obtains the first data identifier, judging whether the father node contains a reverse routing table pointing to the adjacent warehouse node;

If yes, the father node writes the first data identification into Set [ BF Vector ] of the father node, and transmits the first data identification to the next father node of the father node until the root node of the index binary tree is reached, so that the father node and the root node construct a reverse routing table containing the first data identification;

and if not, the father node generates a ternary routing group of the father node based on a bloom filter, writes the first data identifier into Set [ BF Vector ] of the father node, and transmits the first data identifier to the next father node of the father node until reaching the root node of the index binary tree, so that the father node and the root node construct a reverse routing table containing the first data identifier.

5. The method as claimed in claim 4, wherein the step of forwarding the query request to its parent node in the binary indexing tree sequentially according to the Kad routing table until the query request reaches the parent node or root node of the reverse routing table containing the first data identifier, in case that the reverse routing table is not stored in the query starting node, comprises:

Under the condition that the reverse routing table is not stored in the query starting node, sequentially forwarding the query request to a parent node at the upper level in the index binary tree according to the Kad routing table, wherein the query request comprises the first data identifier and the node identifier of the query starting node;

and under the condition that the Set [ BF Vector ] in the superior father node does not contain the first data identifier, the superior father node transmits the query request to the next father node until the query request reaches the father node or the root node of the reverse routing table containing the first data identifier.

6. A digital object access system in a human-machine-object fusion environment, the system comprising:

a P2P network construction module, configured to construct a P2P network based on a distributed hash table DHT, where each node in the P2P network includes a node identifier corresponding to the node; according to the node identification, an Kad routing table corresponding to each node is constructed by using a Kademlia algorithm;

an index binary tree construction module, configured to use any node in the P2P network as a target node, calculate a logical distance between each node in the Kad routing table corresponding to the target node and the target node, and construct an index binary tree according to the logical distance between each node and the target node;

A first determining module, configured to determine, when any node in the binary index tree obtains a data entity of a digital object, the node as an adjacent warehouse node;

a reverse routing table construction module configured to the adjacent warehouse node, where the reverse routing table construction module is configured to generate a first data identifier for the data entity, and transmit the first data identifier to a parent node at a previous stage of the adjacent warehouse node in sequence until the first data identifier reaches a root node of the indexed binary tree, so that the parent node and the root node construct a reverse routing table including the first data identifier;

a second determining module, configured to determine, when any node in the binary index tree obtains a query request for the data entity, the node as a query start node;

a forward query module configured at the query start node, where the forward query module forwards the query request to its parent node in the binary index tree in sequence according to the Kad routing table when the reverse routing table is not stored, until the query request reaches the parent node or root node of the reverse routing table containing the first data identifier;

A reverse query module configured to a parent node or a root node of a reverse routing table including the first data identifier, where the reverse query module is configured to forward the query request to the neighboring warehouse node according to the reverse routing table;

and the information returning module is configured to return the digital object state information returned by the adjacent warehouse node for the query request to the query starting node.

7. The system of claim 6, wherein the indexing binary tree building module comprises:

the distance calculation submodule is used for calculating the logical distance between each node in the Kad routing table corresponding to the target node and the target node by adopting the following XOR calculation formula;

d(node1,node2)=IDnode1⊕IDnode2

wherein node1 is the target node, IDnode1A node identification of the target node; node2 is any node in Kad routing table, IDnode2A node identification for any node in the Kad routing table; d (node1, node2) is the logical distance between the target node and any node in the Kad routing table.

8. The system of claim 6, wherein the indexing binary tree building module further comprises:

A tree construction submodule, configured to sequentially store the tree nodes in the ith layer of the indexed binary tree in ascending order or descending order according to the logical distances from the nodes to the target node, where the logical distances from the tree nodes to the target node are [2 ]i-1,2i) A node within the range, wherein i is a positive integer.

9. The system of claim 6, wherein the reverse routing table building module comprises:

reverse routing table generation submodelA block configured at the neighbor warehouse node, the reverse routing table generation submodule configured to generate a reverse routing table based on a bloom filter, the reverse routing table including a ternary routing group<IDnode,Address,Set[BF Vector]>Wherein IDnodeFor the node identification of the adjacent warehouse node, Address is the network Address of the adjacent warehouse node, Set [ BF Vector]Identifying a set for data contained by the proximate warehouse node;

the first transmission sub-module is configured to the adjacent warehouse node, and is configured to generate a first data identifier of the data entity, write the first data identifier into a Set [ BF Vector ] of the adjacent warehouse node, and transmit the first data identifier to an upper parent node;

The judging submodule is used for judging whether the father node contains a reverse routing table pointing to the adjacent warehouse node or not under the condition that the father node obtains the first data identifier;

a second delivery submodule, configured in the parent node, where the second delivery submodule is configured to, when the parent node includes a reverse routing table pointing to the adjacent warehouse node, write the first data identifier into a Set [ BF Vector ] of the parent node, and deliver the first data identifier to a next parent node until a root node of the indexed binary tree is reached, so that the parent node and the root node construct a reverse routing table including the first data identifier;

and a third delivery submodule configured in the parent node, where the third delivery submodule is configured to, when the parent node does not include a reverse routing table pointing to the adjacent warehouse node, generate a ternary routing group of the parent node based on a bloom filter, write the first data identifier into Set [ BF Vector ] of the parent node, and deliver the first data identifier to a next parent node until a root node of the indexed binary tree is reached, so that the parent node and the root node construct a reverse routing table including the first data identifier.

10. The system of claim 9, wherein the forward query module comprises:

a fourth forwarding sub-module, configured to the query start node, where the fourth forwarding sub-module is configured to, when the query start node does not store the reverse routing table, forward the query request to an upper-level parent node in sequence according to the Kad routing table, where the query request includes the first data identifier and the node identifier of the query start node;

and the fifth transmission submodule is configured in the superior father node and is used for transmitting the query request to the next father node under the condition that the Set [ BF Vector ] in the superior father node does not contain the first data identifier until the query request reaches the father node or the root node of the reverse routing table containing the first data identifier.

Technical Field

The present application relates to the field of communications technologies, and in particular, to a digital object access method and system in a human-computer-physical fusion environment.

Background

The digital Object architecture doa (digital Object architecture) is a software architecture proposed by professor robert-kan in the internet and awarded by the chariot awards, and solves the inter-operation between information system resources in open environment with digital Object as the center. The DOA abstracts the resources into digital objects and models the digital objects into three parts of description information, state information and data entities so as to shield the heterogeneity of the resources, and models the interaction behavior with the resources into three steps of searching, analyzing and accessing so as to reduce the complexity of interaction. The digital object is essentially data abstraction of a resource entity, the resource entity in the internet environment is mainly data resources such as files, base tables and the like in an information system, and the existing DOA realizes access service of the data resource entity facing the internet environment.

The human-computer-object fusion environment is a novel environment formed by gradually blurring and fusing the boundaries between the human society, the physical world and the information system. The resources in the man-machine object fusion environment mainly comprise man entities and object entities, and the man-machine object resources are abstracted by using the man-machine object digital objects, so that the various and heterogeneous characteristics of the man entities and the object entities can be shielded.

The cloud server in the internet environment, although the physical location is not completely centralized, has abundant computing and network resources, so that the cloud server can provide stable digital object access service in the information space to shield the dispersion of the physical location. However, human and physical entities in the human-computer-physical fusion environment have spatial attributes, are not reproducible, and are restricted by the real world in mobility. Many human and physical entities are generated, stored and consumed in terminal equipment, and the terminal equipment is extremely dispersed on physical and network spaces, and how to access a human-computer digital object in the dispersed space is a problem to be solved urgently in the man-computer environment.

Disclosure of Invention

The application provides a digital object access method and system in a man-machine-object fusion environment, which aim to solve the problem that a man-machine-object digital object in a dispersed space cannot be accessed in real time in the man-machine-object fusion environment.

In order to solve the above problems, the present application adopts the following technical solutions:

in a first aspect, an embodiment of the present application provides a digital object access method in a human-computer fusion environment, where the method includes:

constructing a P2P network based on a DHT (distributed hash table), wherein each node in the P2P network comprises a node identification corresponding to the node; according to the node identification, an Kad routing table corresponding to each node is constructed by using a Kademlia algorithm;

Taking any node in the P2P network as a target node, calculating the logical distance from each node in a Kad routing table corresponding to the target node, and constructing an index binary tree according to the logical distance from each node to the target node;

under the condition that any node in the index binary tree obtains a data entity of the digital object, determining the node as an adjacent warehouse node;

the adjacent warehouse node generates a first data identifier aiming at the data entity, and transmits the first data identifier to the parent node at the upper level of the adjacent warehouse node in sequence until the first data identifier reaches the root node of the index binary tree, so that the parent node and the root node construct a reverse routing table containing the first data identifier;

determining any node in the index binary tree as a query starting node under the condition that the node obtains a query request aiming at the data entity;

under the condition that the reverse routing table is not stored in the query starting node, sequentially forwarding the query request to a parent node at the upper level in the index binary tree according to the Kad routing table until the query request reaches the parent node or the root node of the reverse routing table containing the first data identifier;

Forwarding the query request to the adjacent warehouse node by a parent node or a root node of a reverse routing table containing the first data identifier according to the reverse routing table;

and the adjacent warehouse node returns the current state information of the data entity to the query starting node according to the query request.

In an embodiment of the present application, the step of calculating, with an arbitrary node in the P2P network as a target node, a logical distance from each node in the Kad routing table corresponding to the target node includes:

calculating the logical distance from each node in the Kad routing table corresponding to the target node by adopting the following XOR calculation formula;

d(node1,node2)=IDnode1⊕IDnode2

wherein node1 is the target node, IDnode1A node identification of the target node; node2 is any node in Kad routing table, IDnode2A node identification for any node in the Kad routing table; d (node1, node2) is the logical distance between the target node and any node in the Kad routing table.

In an embodiment of the present application, the step of constructing an indexed binary tree according to the logical distances from the respective nodes to the target node includes:

Sequentially storing the tree nodes of the ith layer of the index binary tree according to the logical distance between each node and the target node in an ascending order or a descending order, wherein the logical distance between each node and the target node is [2 ]i-1,2i) A node within the range, wherein i is a positive integer.

In an embodiment of the present application, the step of generating, by the adjacent warehouse node, a first data identifier for the data entity, and sequentially transmitting the first data identifier to a parent node on an upper level of the adjacent warehouse node until the first data identifier reaches a root node of the binary index tree, so that the parent node and the root node construct a reverse routing table including the first data identifier includes:

the nearby warehouse node generates a reverse route based on a bloom filterA table, the reverse routing table comprising a ternary routing group<IDnode,Address,Set[BF Vector]>Wherein IDnodeFor the node identification of the adjacent warehouse node, Address is the network Address of the adjacent warehouse node, Set [ BF Vector]Identifying a set for data contained by the proximate warehouse node;

the adjacent warehouse node generates a first data identifier of the data entity, writes the first data identifier into Set [ BF Vector ] of the adjacent warehouse node, and transmits the first data identifier to an upper-level father node;

Under the condition that the father node obtains the first data identifier, judging whether the father node contains a reverse routing table pointing to the adjacent warehouse node;

if yes, the father node writes the first data identification into Set [ BF Vector ] of the father node, and transmits the first data identification to the next father node of the father node until the root node of the index binary tree is reached, so that the father node and the root node construct a reverse routing table containing the first data identification;

and if not, the father node generates a ternary routing group of the father node based on a bloom filter, writes the first data identifier into Set [ BF Vector ] of the father node, and transmits the first data identifier to the next father node of the father node until reaching the root node of the index binary tree, so that the father node and the root node construct a reverse routing table containing the first data identifier.

In an embodiment of the present application, in a case that the query start node does not store the reverse routing table, the step of forwarding the query request to a parent node of an upper level in the binary index tree in sequence according to the Kad routing table until the query request reaches the parent node or a root node of the reverse routing table that includes the first data identifier includes:

Under the condition that the reverse routing table is not stored in the query starting node, sequentially forwarding the query request to a parent node at the upper level in the index binary tree according to the Kad routing table, wherein the query request comprises the first data identifier and the node identifier of the query starting node;

and under the condition that the Set [ BF Vector ] in the superior father node does not contain the first data identifier, the superior father node transmits the query request to the next father node until the query request reaches the father node or the root node of the reverse routing table containing the first data identifier.

In a second aspect, based on the same inventive concept, an embodiment of the present application provides a digital object access system in a human-computer fusion environment, where the system includes:

a P2P network construction module, configured to construct a P2P network based on a distributed hash table DHT, where each node in the P2P network includes a node identifier corresponding to the node; according to the node identification, an Kad routing table corresponding to each node is constructed by using a Kademlia algorithm;

an index binary tree construction module, configured to use any node in the P2P network as a target node, calculate a logical distance between each node in the Kad routing table corresponding to the target node and the target node, and construct an index binary tree according to the logical distance between each node and the target node;

A first determining module, configured to determine, when any node in the binary index tree obtains a data entity of a digital object, the node as an adjacent warehouse node;

a reverse routing table construction module configured to the adjacent warehouse node, where the reverse routing table construction module is configured to generate a first data identifier for the data entity, and transmit the first data identifier to a parent node at a previous stage of the adjacent warehouse node in sequence until the first data identifier reaches a root node of the indexed binary tree, so that the parent node and the root node construct a reverse routing table including the first data identifier;

a second determining module, configured to determine, when any node in the binary index tree obtains a query request for the data entity, the node as a query start node;

a forward query module configured at the query start node, where the forward query module forwards the query request to its parent node in the binary index tree in sequence according to the Kad routing table when the reverse routing table is not stored, until the query request reaches the parent node or root node of the reverse routing table containing the first data identifier;

A reverse query module configured to a parent node or a root node of a reverse routing table including the first data identifier, where the reverse query module is configured to forward the query request to the neighboring warehouse node according to the reverse routing table;

and the information returning module is configured to return the digital object state information returned by the adjacent warehouse node for the query request to the query starting node.

In an embodiment of the present application, the indexing binary tree building module includes:

the distance calculation submodule is used for calculating the logical distance between each node in the Kad routing table corresponding to the target node and the target node by adopting the following XOR calculation formula;

d(node1,node2)=IDnode1⊕IDnode2

wherein node1 is the target node, IDnode1A node identification of the target node; node2 is any node in Kad routing table, IDnode2A node identification for any node in the Kad routing table; d (node1, node2) is the logical distance between the target node and any node in the Kad routing table.

In an embodiment of the present application, the indexing binary tree building module further includes:

a tree construction submodule, configured to sequentially store the tree nodes in the ith layer of the indexed binary tree in ascending order or descending order according to the logical distances from the nodes to the target node, where the logical distances from the tree nodes to the target node are [2 ] i-1,2i) Nodes within range thereofIn the formula, i is a positive integer.

In an embodiment of the present application, the reverse routing table building module includes:

a reverse routing table generation submodule configured at the neighboring warehouse node, the reverse routing table generation submodule configured to generate a reverse routing table based on a bloom filter, the reverse routing table including a ternary routing group<IDnode,Address,Set[BF Vector]>Wherein IDnodeFor the node identification of the adjacent warehouse node, Address is the network Address of the adjacent warehouse node, Set [ BF Vector]Identifying a set for data contained by the proximate warehouse node;

the first transmission sub-module is configured to the adjacent warehouse node, and is configured to generate a first data identifier of the data entity, write the first data identifier into a Set [ BF Vector ] of the adjacent warehouse node, and transmit the first data identifier to an upper parent node;

the judging submodule is used for judging whether the father node contains a reverse routing table pointing to the adjacent warehouse node or not under the condition that the father node obtains the first data identifier;

a second delivery submodule, configured in the parent node, where the second delivery submodule is configured to, when the parent node includes a reverse routing table pointing to the adjacent warehouse node, write the first data identifier into a Set [ BF Vector ] of the parent node, and deliver the first data identifier to a next parent node until a root node of the indexed binary tree is reached, so that the parent node and the root node construct a reverse routing table including the first data identifier;

And a third delivery submodule configured in the parent node, where the third delivery submodule is configured to, when the parent node does not include a reverse routing table pointing to the adjacent warehouse node, generate a ternary routing group of the parent node based on a bloom filter, write the first data identifier into Set [ BF Vector ] of the parent node, and deliver the first data identifier to a next parent node until a root node of the indexed binary tree is reached, so that the parent node and the root node construct a reverse routing table including the first data identifier.

In an embodiment of the present application, the forward query module includes:

a fourth forwarding sub-module, configured to the query start node, where the fourth forwarding sub-module is configured to forward the query request to an upper-level parent node in sequence according to the Kad routing table under the condition that the query start node does not store the reverse routing table, where the query request includes the first data identifier and the node identifier of the query start node;

and the fifth transmission submodule is configured in the superior father node and is used for transmitting the query request to the next father node under the condition that the Set [ BF Vector ] in the superior father node does not contain the first data identifier until the query request reaches the father node or the root node of the reverse routing table containing the first data identifier.

Compared with the prior art, the method has the following advantages:

in the embodiment of the application, a P2P network is constructed based on a DHT (distributed hash table), a Kad routing table corresponding to each node in the P2P network is constructed by using a Kademlia algorithm, and an index binary tree can be constructed by using any node in the P2P network as a target node according to the logical distance between each node in the Kad routing table and the target node, so that when a data entity of a digital object is stored in any node in the index binary tree, a first data identifier corresponding to the data entity can start from the node and sequentially transmit a first data identifier to an upper-level father node of the node until the first data identifier reaches the root node, and the root node and all father nodes of a first data identifier path can construct a reverse routing table containing the first data identifier; when any node in the index binary tree obtains a query request for a data entity, namely in a state query stage, forward addressing is firstly carried out based on the Kad routing table until a father node or a root node of the reverse routing table containing the first data identifier is queried, the father node or the root node of the reverse routing table containing the first data identifier can directly carry out reverse addressing again according to the reverse routing table until the data entity is found, and finally current state information of the data entity is returned to a query starting node. The embodiment of the application carries out bidirectional routing addressing by constructing Kad routing tables and reverse routing tables, can realize the decoupling of the data identification and the storage position of the data entity in the P2P network based on DHT on the basis of not increasing the complexity of data addressing, allows the data entity of the digital object to be stored in any node in the P2P network, meets the space constraint of the digital object under the man-machine-object fusion environment, and can improve the access efficiency of the digital object.

Drawings

FIG. 1 is a block diagram illustrating the overall architecture of a digital object architecture in an embodiment of the present application;

FIG. 2 is a flowchart illustrating steps of a digital object accessing method in an embodiment of the present application in a human-computer-object fusion environment;

FIG. 3 is a schematic diagram of a digital object index based on bidirectional routing in an embodiment of the present application;

fig. 4 is a schematic connection relationship diagram of a digital object access system in a human-computer-object fusion environment in the embodiment of the present application.

Reference numerals: 600-a digital object access system in a human-computer-object fusion environment; 601-P2P network construction module; 602-an indexing binary tree building module; 603-a first determination module; 604-reverse routing table construction module; 605-a second determination module; 606-forward query module; 607-reverse query module; 608-information return module.

Detailed Description

The technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the drawings in the embodiments of the present invention, and it is obvious that the described embodiments are only a part of the embodiments of the present invention, and not all of the embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.

It should be noted that, referring to fig. 1, an overall architecture diagram of a digital object architecture is shown, and an overall architecture of the DOA is divided into two parts, namely a data model and an interaction model.

In terms of data models, DOAs take digital objects, which are abstract representations of resources, as essential elements in their architecture. The identification is a unique identity mark of the digital object, and the identification does not change along with the change of the storage environment, the access environment and the content of the digital object. A complete digital object can be divided into three parts: the description information, the data entity and the state information establish an association relationship through the identification of the digital object and point to the same logic digital object. The description information represents metadata related to the digital object and the application and service, and is used for searching the required digital object according to the application requirement, for example: usage of the digital object, classification of the digital object, etc.; the entity represents the actual content of the digital object and is the real target of the interoperation; the state information represents the current state of the digital object, and is used for searching and verifying the digital object, and comprises the following steps: storage location of the digital object, ownership information, digital object Hash, etc. Taking a digital object of a music file as an example, the description information includes information such as music name, author, album to which the music file belongs, music style and the like; the entity is then the actual audio file, such as: xxx.mp 3; the status information includes the actual storage location of the audio file, the actual owner of the audio file, and the Hash value of the content of the audio file. In a man-machine-object fusion environment, the man-machine object resources can be abstracted by using the digital objects, and a uniform resource model is provided so as to shield the heterogeneity of the man-machine object resources.

In the aspect of interaction model, DOA proposes three components for three components of the digital object model: the digital object Registry (DO Registry), the digital object Repository (DO Repository), and the identity Resolution System (Identifier/Resolution System) are used to manage description information, entities, and status information, respectively. The digital object registry is used for managing description information of a digital object and providing index and search service of the digital object to the outside, the index service takes the description information and identification of the digital object as input, the registry establishes the index of the digital object according to the input information, and the search service retrieves the index of the digital object according to the input query keyword and returns a matched digital object identification; the digital object warehouse actually stores the digital object and provides access service of the digital object to the outside, and the access service comprises actions of increasing, deleting, modifying, checking and the like of the digital object; the identification/analysis system is responsible for managing the state information of the digital object, providing identification analysis service, returning the state information of the digital object according to the identification of the target digital object, and in addition, the identification analysis system is responsible for the identification distribution work of the digital object. DOA also makes two standard protocols to specify the interaction behavior of these three components, respectively: a digital Object Interface Protocol doip (digital Object Interface Protocol) for interacting with the digital Object registry, the digital Object repository, and an identity Resolution Protocol (Identifier Resolution Protocol) for interacting with the identity/Resolution system. The DOIP protocol standardizes the access behavior of the digital object, and can be used as abstraction and specification of the interoperation behavior of the man-machine object resources in the man-machine object environment so as to reduce the complexity of the interoperation behavior.

In the internet environment, digital objects are mainly generated in information systems, and are transformed from database tables, documents, pictures and other data already existing in the information systems, for example, the most widespread digital object application DOI currently assigns a unique identifier to a published paper and considers the paper as a digital object. In the aspect of digital object expression, in the existing DOA implementation, a digital object is regarded as a standard data serialization format and a minimum data unit, data is formatted into two parts, namely an attribute and an element, the attribute expresses metadata, actual data content is stored in an element field, and then the digital object is assigned with a unique identifier and is stored in a digital object warehouse uniquely. In the aspect of digital object access, a digital object warehouse generally takes a cloud server as a main part, provides access service of a digital object externally through a unique network entry, can acquire a service address of the warehouse where the digital object is currently located according to the identification resolver state information of the digital object, and further realizes the increasing, deleting, modifying and checking of the digital object through a DOIP protocol, wherein the access mode of the digital object warehouse is not essentially different from the access mode of the existing object database. In terms of access rights management, the manager of the digital object repository is also the owner of all locally stored digital objects, having the right to modify all digital objects.

It can be seen that, in the internet environment, a digital object is an abstract expression of data such as a library table, a document, a picture and the like of an entity in an internet information system, and the data is essentially a string of bit sequences and has the characteristics of easy movement, reproducibility and little static change. Therefore, the access of the data resource entity in the internet environment can be effectively realized based on the DOA.

However, in the context of human-computer-object fusion, human-computer-object digital objects are generated, stored and consumed in spatially dispersed terminal devices, and the primary requirement for accessing human-computer-object digital objects is to efficiently locate dispersed target digital objects. For a cloud server in an internet environment, although the physical location of the cloud server is not completely centralized, the rich computing and network resources of the cloud server enable the cloud server to provide stable digital object access service in an information space so as to shield the dispersion of the physical location. However, the physical space of the terminal device is more distributed, and a stable access entrance cannot be provided due to resource limitation. As a main operation environment of the man-machine digital object, the terminal device cannot provide a stable man-machine digital object access service.

Meanwhile, a P2P (Peer to Peer) network based on a distributed Hash table dht (distributed Hash table) is widely used in distributed storage due to its efficient data addressing manner. In the DHT, each participating node is assigned a unique identifier and records information of other nodes in a local routing table, and the node determines a next hop node for message forwarding according to the local routing table. In this way, the DHT can efficiently deliver messages to any target node of the overall network in a completely decentralized manner. In general, the DHT-based P2P stores nodes that can reach a logarithmic level, data addressing complexity, and can find the node where the target data is located from any node only through logN message routes, where N is the number of nodes in the network. The data lookup in the DHT is also a lookup for a node where the data is located, so in the conventional DHT, a distance between the data and the node is generally defined, and the data is required to be stored on a node designated by an algorithm thereof, generally a node closest to the node, so as to implement o (logn) -level data access.

However, a human-machine digital object cannot be physically remote from the terminal device that generated the digital object. On one hand, the terminal equipment cannot directly establish a routing relation with any node like a P2P node of the Internet, and generally, the terminal equipment can only establish connection with equipment such as a mobile phone and a gateway adjacent to the terminal equipment through Internet of things protocols such as WIFI, Bluetooth and ZigBee; on the other hand, due to timeliness and privacy of the man-machine digital object, forced storage of the man-machine digital object on a node far away from the production terminal cannot guarantee that the accessed digital object is up-to-date, and meanwhile, the privacy leakage risk exists.

Based on the defects in the prior art, it is difficult for the existing DOA to effectively access any man-machine-object digital object in a dispersed space in real time in a man-machine-object fusion environment, and therefore, embodiments of the present application aim to provide a digital object access method in a man-machine-object fusion environment based on bidirectional routing, which implements decoupling of data identifiers and storage locations of data entities in a P2P network based on DHT, and further allows the data entities of the digital objects to be stored in any node of the whole network, thereby satisfying space constraints of the digital objects in the man-machine-object fusion environment and simultaneously implementing o (logn) -level access efficiency.

Referring to fig. 2, a digital object access method in a human-computer-object fusion environment according to the present application is shown, which may include the following steps:

step S101: constructing a P2P network based on a DHT (distributed hash table), wherein each node in the P2P network comprises a node identification corresponding to the node; and according to the node identification, constructing an Kad routing table corresponding to each node by using a Kademlia algorithm.

It should be noted that, in the DHT-based P2P network, each participating node is assigned with a network-wide unique identifier, which is generally a Hash value (Hash) with a fixed length. In the Kademlia algorithm, each node is assigned oneNode identification ID with length of 160bitnodeAnd simultaneously defining the distance d between the nodes as the exclusive OR of the hash values of the two nodes.

In the Kademlia algorithm, each node locally maintains an Kad routing table, the Kad routing table is composed of 160K-buckets (K-buckets), each K-bucket stores the routing items of K other nodes, and the routing items are calculated by the following steps<IDnode,Address>Formally expressed, local node when discovering a new nodelocalAnd placing the node in different K-buckets according to the distance between the node and the node, wherein the ith K-bucket stores the nodes with the distance within the range of [2i, 2i +1), and if the number of the routing entries in the K-bucket exceeds K, replacing the routing entry of the node which does not respond for the longest time. Identified as ID at the receiving node targetTarget node of (2)targetWhen looking up a message, a nodelocalCalculates oneself and IDtargetDistance d (node)local,nodetarget) And forwarding the message to alpha nodes closest to the target in the corresponding K-bucket, wherein alpha is the number of message forwarding nodes and is also called as message parallelism. According to the construction rule of the K-barrel, the next hop nodenextAnd a nodetargetWill satisfy d (node)next,nodetarget)≤d(nodelocal,nodetarget) 2, i.e. each time a message is forwarded to a next hop nodenextTime, next hop nodenextAnd target nodetargetThe distance between will be shortened by at least half, thereby ensuring that within a logN hop a message can be forwarded from any node to the destination node. It should be noted that the message parallelism α can also be improved to increase the number of neighbor nodes selected when the node transmits the message, so as to improve the query success rate and efficiency.

Because the message is forwarded from nodes further from the destination node to nodes closer to the destination node in the Kad routing table, Kademlia-based addressing is referred to herein as "forward addressing" and the Kademlia routing table for a node is referred to as a "forward routing table".

Step S102: taking any node in the P2P network as a target node, calculating the logical distance from each node in the Kad routing table corresponding to the target node, and constructing an index binary tree according to the logical distance from each node to the target node;

It should be noted that, when the data entity of the digital object is stored in the node in P2P based on Kademlia algorithm, the data entity data is also assigned a data identifier IDdata. The DHT selects K nodes closest to the data entity in the whole network according to the data identification IDdata of the data entity data, K data copies are stored in the K nodes respectively, and the target data can be found only by finding the node with the smallest d (data) in the whole network during data query. In this way, the query request of the DHT to the data entity data can be regarded as the search of the node identified as the IDdata, and the target data can be found only through the maximum logN message routes from any node. In P2P storage, message passing delay between nodes is the main overhead of data addressing, so DHT-based P2P storage can greatly improve the efficiency of data addressing. However, also due to such characteristics of the DHT, data must be stored in the node closest to the whole network according to the identification, and thus, the data entity cannot be stored in the appropriate node according to the heterogeneity of the storage space, bandwidth and availability of the node, so that the efficiency of data access often depends on the short board node in the storage network. Therefore, in a DHT-based P2P storage network, the primary challenge to improve data access efficiency is to achieve decoupling between the data identity of a data entity and its storage location.

In order to achieve the decoupling of the data identification of the data entity in the DHT-based P2P network from its storage location, in the present embodiment, the routing relationship between the nodes of the Kad routing table is converted into the form of an indexed binary tree based on the distance of the target node from each node in the Kad routing table. Specifically, step S102 may include the following specific sub-steps:

substep S102-1: taking any node in the P2P network as a target node, and calculating the logical distance from each node in the Kad routing table corresponding to the target node by adopting the following XOR calculation formula;

d(node1,node2)=IDnode1⊕IDnode2 (1);

wherein node1 is the target node, IDnode1A node identification of the target node; node2 is any node in Kad routing table, IDnode2A node identification for any node in the Kad routing table; d (node1, node2) is the logical distance between the target node and any node in the Kad routing table.

In one example, the IDnode1Is 00110, IDnode200111, d (node1, node2) =001 through the calculation of formula (1), that is, the logical distance between node1 and node2 is 1.

Substep S102-2: sequentially storing the tree nodes at the ith layer of the index binary tree according to the logical distance between each node and the target node in an ascending order or a descending order, wherein the logical distance between each node and the target node is [2 ] i-1,2i) A node within the range, wherein i is a positive integer.

Referring to fig. 3, which shows a digital object index diagram based on bidirectional routing in the embodiment of the present application, the node network size N =15 shown in fig. 3.

Referring to fig. 3 (a) in fig. 3, a root node of the binary index tree is a node closest to the target node in the whole network, and the root node is at level 1 in the binary index tree; layer 2 is the logical distance from the target node is [2 ]1,22) Nodes within the range, namely nodes with the distances of 2 and 3 from the target node; layer 3 is the logical distance from the target node is [2 ]2,23) Nodes within the range, i.e. nodes at distances of 4, 5, 6, 7 from the target node; and analogizing in sequence, after obtaining the nodes of each hierarchy, arranging the nodes according to the ascending order or the descending order, and constructing an index binary tree by taking the nodes with large distances as the direction to point to the nodes with small distances.

It should be noted that, in practical applications, because there may be some cases of node failure, etc., the binary index tree is not necessarily a full tree, for example, a node having a distance of 5 from the target node in fig. 3 fails, and in the process of data addressing, a node having a distance of 10 from the target node may directly jump to a node having a distance of 2 from the target node, in which case, the efficiency of data addressing is faster; or, if a node with a distance of 1 from the target node fails, the distance between the closest node to the target node and the target node may be 2, 3, or other distances.

Therefore, when the binary index tree is a full tree, the "worst case" situation is the situation, that is, the theoretical maximum number of hops is required to jump to the target node. Therefore, it should be understood that the binary tree index in fig. 3 is only an example, and the specific structure of the tree is not particularly limited in this embodiment.

Step S103: in the event that any node in the binary tree is indexed to obtain a data entity for the digital object, the node is determined to be a neighboring warehouse node.

In this embodiment, since the DHT selects k nodes closest to the data entity in the whole network according to the data identifier IDdata of the data entity data, and stores k copies of the data in the k nodes, respectively, any node in the indexed binary tree can be used as a neighboring warehouse node for storing the data entity.

Step S104: and the adjacent warehouse nodes generate first data identifiers aiming at the data entities, and transmit the first data identifiers to the parent nodes at the upper level adjacent to the warehouse nodes in sequence until the first data identifiers reach the root nodes of the index binary tree, so that the parent nodes and the root nodes construct a reverse routing table containing the first data identifiers.

In this embodiment, with reference to fig. 3 (a) in fig. 3 as an example, taking a node with a distance of 10 from a target node (hereinafter referred to as "node 10"), the node is taken as a neighboring warehouse node for storing a data entity, and the neighboring warehouse node generates a first data identifier corresponding to the data entity in a data storage phase, and transmits the first data identifier to an upper parent node, that is, to a node with a distance of 5 from the target node (hereinafter referred to as "node 5"), and then the node 5 transmits the first data identifier to a node with a distance of 2 from the target node (hereinafter referred to as "node 2"), until the first data identifier reaches a root node of an indexed binary tree, that is, a node with a distance of 2 from the target node, and reaches a node with a distance of 1 from the target node (hereinafter referred to as "root node").

Thus, when the root node receives the query request for the data entity corresponding to the first data identifier, the root node can know that the data entity exists in the routing table of the node 2, the node 2 knows that the data entity exists in the routing table of the node 5, and the node 5 knows that the data entity exists in the routing table of the node 10 until the node 10 is queried in a reverse direction, and finally, the required data entity is found in the node 10. Thus, the process of addressing the reverse routing table may be referred to as "reverse addressing".

Step S105: in the case that any node in the indexed binary tree obtains a query request for a data entity, the node is determined as a query start node.

It should be noted that, in this embodiment, any node in any binary index tree can be used as the start node of the query request.

Step S106: and under the condition that the reverse routing table is not stored in the query starting node, sequentially forwarding the query request to the parent node at the upper level in the index binary tree according to the Kad routing table until the query request reaches the parent node or the root node of the reverse routing table containing the first data identifier.

In this embodiment, addressing is performed according to the Kad routing table addressing rule, that is, the forward addressing process, specifically, each time a message is forwarded to a next hop node nextTime, next hop nodenextAnd target nodetargetThe distance between will be shortened by at least half. Referring to fig. 3 b in fig. 3, with a node with a distance of 7 from a target node (hereinafter referred to as node 7) as a query start node, according to the addressing rule of Kad routing table, node 7 forwards a query request to a node with a distance of 3 from the target node (hereinafter referred to as node 3), and node 3 forwards the query request to a root node.

In this embodiment, it should be noted that, in the forward addressing process, it is found that the root node is the "worst case", that is, the root node needs to be jumped to a maximum number of times. If the condition that the initial node is the node No. 4 is inquired, the node No. 2 of the reverse routing table containing the first data identification can be found only by jumping once, and reverse addressing is started at the node No. 2, so that the node No. 4 does not need to jump to the root node.

It should be further explained that, if the query start node is exactly the node in which the reverse routing table is stored, for example, if the query start node is the root node, the node No. 2, or the node No. 5, the data entity corresponding to the first data identifier can be directly found according to the reverse routing table.

Step S107: and forwarding the query request to the adjacent warehouse node by the parent node or the root node of the reverse routing table containing the first data identifier according to the reverse routing table.

In this embodiment, when the query request is forwarded to the parent node or the root node of the reverse routing table containing the first data identifier, the corresponding parent node or the root node can directly find the data entity corresponding to the first data identifier according to the reverse routing table.

Step S108: and the adjacent warehouse node returns the current state information of the data entity to the query starting node according to the query request.

In this embodiment, based on the indexed binary tree, the query request can reach the neighboring warehouse node in logN hops by using the forward routing table and the reverse routing table, so as to achieve o (logN) -level access efficiency, and the neighboring warehouse node returns the current state information of the data entity to the query start node according to the query request, thereby completing the state query of the data entity of the digital object.

The digital object access method based on the bidirectional routing in the man-machine-object fusion environment is based on the data entity which adopts the P2P network of the peer-to-peer network architecture and is used for storing the digital object, so that the connection between corresponding terminal devices with dispersed space is realized, and the man-machine-object digital object access environment is constructed; meanwhile, the data entity of the man-machine-object-digital object is backed up in the constant nodes by a constant-level multi-backup mode of respectively storing k copies of the data in the k nodes, to ensure high availability of digital object access, finally, the distributed hash table DHT technology is adopted to optimize the connection relation between the nodes corresponding to the terminal equipment and establish a digital object index algorithm through the bidirectional routing technology, so as to realize the decoupling of the data identification and the storage position of the data entity in the P2P network based on DHT, allow the data entity of the digital object to be stored in any node in the P2P network, the privacy leakage risk existing when the man-machine object digital object is stored in a node far away from a production terminal is avoided, the space constraint of the digital object in a man-machine object fusion environment is met, the access efficiency of the digital object is improved, and the accessed digital object is guaranteed to be the latest.

In one possible embodiment, step S104 may specifically include the following sub-steps:

substep S104-1: the adjacent warehouse nodes generate a reverse routing table based on the bloom filter, and the reverse routing table comprises a ternary routing group<IDnode,Address,Set[BF Vector]>Wherein IDnodeFor the node identification of the node near the warehouse, Address is the network Address of the node near the warehouse, Set [ BF Vector]Sets are identified for data contained in proximate warehouse nodes.

It should be noted that, in this embodiment, a Bloom Filter (Bloom Filter) is a binary vector data structure, and is also a random data structure with a simple structure and a small spatial complexity, which has good spatial and temporal efficiency, and which can accurately represent a set and answer a similar decision as "whether element x is in set a".

It should be noted that, the Set [ BF Vector ] in the reverse routing table generated based on the Bloom Filter stores the data identifier Set in the routing entry in a Vector Set manner, which means that the Bloom Filter can store the data identifiers corresponding to the multiple data entities in the Set [ BF Vector ] of the node, and simultaneously, the storage and query requirements of the multiple data entities are met.

Substep S104-2: and generating a first data identifier of the data entity by the adjacent warehouse node, writing the first data identifier into Set [ BF Vector ] of the adjacent warehouse node, and transmitting the first data identifier to the upper-level father node.

Substep S104-3: and under the condition that the father node obtains the first data identifier, judging whether the father node contains a reverse routing table pointing to the adjacent warehouse node.

Substep S104-4: if the first data identifier is included, the father node writes the first data identifier into Set [ BF Vector ] of the father node, and transmits the first data identifier to the next father node of the father node until the next father node of the father node reaches the root node of the index binary tree, so that the father node and the root node construct a reverse routing table containing the first data identifier.

Substep S104-5: and if not, the father node generates a ternary routing group of the father node based on the bloom filter, writes the first data identifier into Set [ BF Vector ] of the father node, and transmits the first data identifier to the next father node of the father node until the next father node reaches the root node of the index binary tree, so that the father node and the root node construct a reverse routing table containing the first data identifier.

In this embodiment, each node in the first data identifier path generates a reverse routing table based on the Bloom Filter, where the reverse routing table includes a ternary routing group<IDnode,Address,Set[BF Vector]>。

In one example, referring to fig. 3 (a), with node 10 as a neighbor warehouse node, node 10 first generates a reverse routing table based on Bloom Filter, writes a first data identifier into Set [ BF Vector ] of node 10, and passes the first data identifier to node 5. Node 5 determines whether a routing entry for node 10 is included. If the first data identifier is included in the Set [ BF Vector ] of the node No. 5, the first data identifier is directly written into the Set [ BF Vector ] of the node No. 2 without constructing a new ternary routing group, and the first data identifier is transmitted to the node No. 2; and if not, generating a new ternary routing group, writing the first data identifier into Set [ BF Vector ] of the node No. 5, and transmitting the first data identifier to the node No. 2. And further, the adjacent warehouse node where the data entity corresponding to the first data identifier is located can be ensured to be inquired reversely through the reverse routing table.

In the present embodiment, since the storage overhead, the storage complexity, and the determination complexity of the bloom filter are in constant level, the storage overhead of the reverse routing table can be reduced while the construction requirement of the reverse routing table is satisfied.

Although the Bloom Filter has a certain probability of false positive, that is, an element that does not belong to a set is determined to belong to the set with a certain probability, the false positive of the Bloom Filter does not affect the accuracy of data addressing in the present embodiment. Because the addressing message can be transferred to the neighbor nodes closer to the data storage node if the target data is in the reverse routing table in the reverse addressing process, the false positive of the Bloom Filter does not affect the correct reverse addressing path. A false positive of Bloom Filter will result in a certain probability that the message is forwarded to the wrong node, but will only affect the complexity of the reverse addressing and will stop after at most 2logN hops, so that a Bloom Filter based reverse routing table can still achieve an o (logN) level access efficiency even in the worst case.

In one possible embodiment, step S106 may include the following specific sub-steps:

Substep S106-1: under the condition that a reverse routing table is not stored in the query starting node, sequentially forwarding a query request to a parent node at the upper level in the index binary tree according to the Kad routing table, wherein the query request comprises a first data identifier and a node identifier of the query starting node;

in this embodiment, the node identifier of the query start node is written into the query request, so that when the data entity corresponding to the target data, i.e., the first data identifier, is found, the state information of the data entity can be directly returned to the query start node.

Substep S106-2: under the condition that the Set [ BF Vector ] in the upper-level father node does not contain the first data identifier, the upper-level father node transmits the query request to the next father node until the query request reaches the father node or the root node of the reverse routing table containing the first data identifier.

In the embodiment, that is, in the process of forward routing, the method is also used for judging whether the first data identifier exists in Set [ BF Vector ] of the parent node at the upper level based on Bloom Filter, if yes, it indicates that the parent node at the upper level exists in a reverse routing table for the first data identifier, and in this case, the reverse addressing is directly performed according to the reverse routing table; and if not, continuing to transmit the query request to the root node.

Because the root node necessarily comprises the reverse routing table aiming at the first data identification, no matter which node the initial node is inquired at, the reverse routing table aiming at the first data identification can be inquired and reverse routing is carried out finally necessarily through limited jumping, and then access to the data entity is realized.

In this embodiment, the digital object access method in the human-computer fusion environment provided in this embodiment of the present application is further analyzed for algorithm overhead, so as to prove that the present embodiment can find target data from any node, and time, storage, and network overhead are low.

Addressing complexity analysis: in a structured P2P network constructed based on the Kademlia algorithm, a directed acyclic graph can be obtained for a certain data, and the construction process of the reverse routing table in this embodiment can be regarded as a routing process from any node to a root node, and the length of the reverse routing table is longest, so the complexity of the reverse routing table construction algorithm is o (logN). The addressing flow for the digital entity can be divided into a forward stage and a reverse stage, wherein the forward stage is a route from any node to a root node, and the reverse stage is a process of reverse route from the root node along an edge in the directed acyclic graph, and the length is longest and is also logN, so the addressing complexity of the embodiment is o (logN).

Impact of false positives on addressing efficiency: false positives for Bloom filters do not affect the accuracy or complexity of addressing, but only add certain redundant messages (the same message is passed multiple times and treated as multiple). The reasonable setting of the probability of the false positive can ensure that the redundant message volume caused by the false positive does not bring large network overhead.

For a network with the node size of N, the node identification at least comprises logN bits, namely each node needs logN K-buckets locally, each K-bucket has at most K neighbor nodes, wherein K is the capacity of the node routing table, and therefore the maximum number of routing entries in the forward routing table of each node is K multiplied by logN. Assuming that the connection relationship between the nodes is constructed randomly and the routing relationship in the forward routing table is distributed uniformly, the number of neighbor nodes included in the node reverse routing table is k × logN according to the symmetry principle. There is also a probability of false positives, p, so the number of false positive addressing message forks that each hop may cause during reverse addressing is expected to be kp × logN. All reverse addressing will stop within logN hops, resulting in false positive messages on the first hop passing at most logN hops, false positive messages on the second hop passing at most logN-1 hops, and so on. Therefore, the amount of redundant messages caused by false positives is at most:

In the formula, R is the redundant message quantity; k is the node routing table capacity; p is the probability of false positive; and N is the node scale.

For a Kademlia storage network with a node size of 1000 and a K-bucket capacity of 20, if the probability of false positive is 0.001, the redundant message amount generated by false positive of a reverse routing table in a single query is about 10 at most. In addition, false positives result in redundant addressing and correct addressing paths being in parallel and therefore do not affect the response time of the query.

The storage overhead of the embodiment is mainly embodied in the space occupied by the Bloom filters in the reverse routing table, and the storage overhead of the embodiment is evaluated by averaging the number of the Bloom Filter vectors contained in the reverse routing table of each node under the condition of evaluating different network scales N, data volumes M and message parallelism alpha. Through simulation experiments, the number of Bloom Filter vectors contained in the reverse routing table of each node on average increases with the increase of alpha and M and finally tends to be stable. Illustratively, for a storage network with N =1000 and α =3, the number of Bloom Filter vectors contained in each node is about 60 on average when M reaches 10000. Assuming that the number of elements expected to be contained in each Bloom Filter is 1000 and the false positive probability p =0.001, the storage space occupied by each Bloom Filter vector is as follows:

Thus the average per-node reverse routing table overhead is only about 60 × S =864 Kbits.

In summary, the digital object access method in the man-machine-object fusion environment based on the bidirectional routing technology provided by the embodiment not only realizes the decoupling of the data identifier of the data entity and the storage location thereof without increasing the data addressing complexity, allows the data entity of the digital object to be stored in any node in the P2P network, and can find the target data from any node, but also has low time, storage and network overhead.

In a second aspect, referring to fig. 4, based on the same inventive concept, an embodiment of the present application provides a digital object access system 600 in a human-computer fusion environment, where the system includes:

a P2P network construction module 601, configured to construct a P2P network based on a DHT, where each node in the P2P network includes a node identifier corresponding to the node; according to the node identification, an Kad routing table corresponding to each node is constructed by using a Kademlia algorithm;

an index binary tree building module 602, configured to take any node in the P2P network as a target node, calculate a logical distance from each node in the Kad routing table corresponding to the target node, and build an index binary tree according to the logical distance from each node to the target node;

A first determining module 203, configured to determine a node as an adjacent warehouse node in a case where any node in the indexed binary tree obtains a data entity of the digital object;

a reverse routing table constructing module 604, configured to be adjacent to the warehouse node, where the reverse routing table constructing module 604 is configured to generate a first data identifier for the data entity, and transmit the first data identifier to a parent node at an upper stage adjacent to the warehouse node in sequence until the first data identifier reaches a root node of the indexed binary tree, so that the parent node and the root node construct a reverse routing table including the first data identifier;

a second determining module 605, configured to determine a node as a query starting node if any node in the binary index tree obtains a query request for the data entity;

a forward query module 606 configured at the query start node, where the forward query module 606 forwards the query request to its parent node in the binary index tree in sequence according to the Kad routing table when the reverse routing table is not stored, until the query request reaches the parent node or root node of the reverse routing table containing the first data identifier;

a reverse query module 607 configured to a parent node or a root node of a reverse routing table including the first data identifier, where the reverse query module 607 is configured to forward the query request to an adjacent warehouse node according to the reverse routing table;

And an information returning module 608 configured to be located near the warehouse node, where the information returning module 608 is configured to return the digital object status information returned by the warehouse node for the query request to the query start node.

In an embodiment of the present application, the indexing binary tree building module 602 includes:

the distance calculation submodule calculates the logical distance between each node in the Kad routing table corresponding to the target node and the target node by adopting the following XOR calculation formula;

d(node1,node2)=IDnode1⊕IDnode2

wherein node1 is the target node, IDnode1A node identification of the target node; node2 is any node in Kad routing table, IDnode2A node identification for any node in the Kad routing table; d (node1, node2) is the logical distance between the target node and any node in the Kad routing table.

In an embodiment of the present application, the indexing binary tree building module 602 further includes:

a tree construction submodule for constructing a logical distance between each node and a target nodeSequentially storing the tree nodes of the ith layer of the index binary tree according to the ascending order or the descending order to ensure that the logical distance from the target node is [2 ]i-1,2i) A node within the range, wherein i is a positive integer.

In an embodiment of the present application, the reverse routing table constructing module 604 includes:

A reverse routing table generation submodule configured at the adjacent warehouse node and used for generating a reverse routing table based on the bloom filter, wherein the reverse routing table comprises a ternary routing group<IDnode,Address,Set[BF Vector]>Wherein IDnodeFor the node identification of the node near the warehouse, Address is the network Address of the node near the warehouse, Set [ BF Vector]Identifying a set for data contained in a node adjacent to the warehouse;

the first transmission submodule is configured on the adjacent warehouse node and used for generating a first data identifier of the data entity, writing the first data identifier into a Set [ BF Vector ] of the adjacent warehouse node and transmitting the first data identifier to the upper-level father node;

the judging submodule is used for judging whether the father node contains a reverse routing table pointing to the adjacent warehouse node or not under the condition that the father node obtains the first data identifier;

the second transmission submodule is configured in the father node and used for writing the first data identifier into Set [ BF Vector ] of the father node and transmitting the first data identifier to the next father node until the next father node reaches the root node of the index binary tree under the condition that the father node contains a reverse routing table pointing to the adjacent warehouse node, so that the father node and the root node construct the reverse routing table containing the first data identifier;

And the third transmission submodule is configured in the father node and used for generating a ternary routing group of the father node based on a bloom filter under the condition that the father node does not contain a reverse routing table pointing to an adjacent warehouse node, writing the first data identifier into Set [ BF Vector ] of the father node, and transmitting the first data identifier to the next father node until the root node of the index binary tree is reached, so that the father node and the root node construct the reverse routing table containing the first data identifier.

In an embodiment of the present application, the forward query module 606 includes:

the fourth transmission submodule is configured at the query starting node and is used for sequentially forwarding the query request to the upper-level father node according to the Kad routing table under the condition that the query starting node does not store the reverse routing table, wherein the query request comprises the first data identifier and the node identifier of the initiating node of the query request;

the second judgment submodule is used for judging whether the Set [ BF Vector ] in the parent node at the upper level contains the first data identifier or not;

the fifth transmission submodule is configured in the upper-level father node and is used for returning the digital object state information corresponding to the first data identifier to the query starting node under the condition that the Set [ BF Vector ] in the upper-level father node contains the first data identifier;

And the sixth transmission submodule is configured in the superior father node and is used for transmitting the query request to the next father node of the superior father node under the condition that the Set [ BF Vector ] in the superior father node does not contain the first data identifier until the query request reaches the father node or the root node of the reverse routing table containing the first data identifier.

It should be noted that, for a specific implementation of the digital object access system 600 in the human-computer-object fusion environment according to the embodiment of the present application, reference may be made to the foregoing specific implementation of the digital object access method in the human-computer-object fusion environment according to the embodiment of the present application, and details are not described here again.

As will be appreciated by one skilled in the art, embodiments of the present invention may be provided as a method, apparatus, or computer program product. Accordingly, embodiments of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, embodiments of the present invention may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, and the like) having computer-usable program code embodied therein.

Embodiments of the present invention are described with reference to flowchart illustrations and/or block diagrams of methods, terminal devices (systems), and computer program products according to embodiments of the invention. It will be understood that each flow and/or block of the flow diagrams and/or block diagrams, and combinations of flows and/or blocks in the flow diagrams and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing terminal to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing terminal, create means for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.

These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing terminal to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks.

These computer program instructions may also be loaded onto a computer or other programmable data processing terminal to cause a series of operational steps to be performed on the computer or other programmable terminal to produce a computer implemented process such that the instructions which execute on the computer or other programmable terminal provide steps for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.

While preferred embodiments of the present invention have been described, additional variations and modifications of these embodiments may occur to those skilled in the art once they learn of the basic inventive concepts. Therefore, it is intended that the appended claims be interpreted as including preferred embodiments and all such alterations and modifications as fall within the scope of the embodiments of the invention.

Finally, it should also be noted that, herein, relational terms such as first and second, and the like may be used solely to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions. Also, the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or terminal that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or terminal. Without further limitation, an element defined by the phrase "comprising an … …" does not exclude the presence of other like elements in a process, method, article, or terminal that comprises the element.

The method and system for accessing digital objects in a human-computer-object fusion environment provided by the invention are described in detail, specific examples are applied in the text to explain the principle and the implementation of the invention, and the description of the above embodiments is only used to help understand the method and the core idea of the invention; meanwhile, for a person skilled in the art, according to the idea of the present invention, there may be variations in the specific embodiments and the application scope, and in summary, the content of the present specification should not be construed as a limitation to the present invention.

23页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:向量索引构建方法、向量检索方法和与方法对应的系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!