CN101621539A - 一种构建垂直虚拟组的p2p网络的方法 - Google Patents
一种构建垂直虚拟组的p2p网络的方法 Download PDFInfo
- Publication number
- CN101621539A CN101621539A CN200910100926A CN200910100926A CN101621539A CN 101621539 A CN101621539 A CN 101621539A CN 200910100926 A CN200910100926 A CN 200910100926A CN 200910100926 A CN200910100926 A CN 200910100926A CN 101621539 A CN101621539 A CN 101621539A
- Authority
- CN
- China
- Prior art keywords
- node
- virtual group
- enterprise
- message
- factory
- 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.)
- Granted
Links
Images
Abstract
本发明涉及一种构建垂直虚拟组的P2P网络的方法,包括按产业对企业进行分类步骤:根据企业生产经营的产品或服务按分类方法分为各种垂直组织;构建垂直虚拟组语义P2P网络的步骤;它还包括分布式动作执行的步骤,本发明与现有技术相比具有以下有益效果:本发明的方法采用将所有企业按一定的分类标准进行分类,而形成分级企业树,树中各个路径形成一个垂直虚拟组织,每个企业归属于一个或多个垂直虚拟组织,所有的垂直虚拟组织形成全球的企业虚拟组织;企业按其类型进行分类,加入到相应的虚拟组织,全球所有的企业按分类标准加入到相应的垂直虚拟组织,从而相互联结起来;各个企业利用此大虚拟组织可方便地进行企业间合作。
Description
技术领域
本发明涉及计算机网络通信领域,具体地说,涉及一种构建网络垂直虚拟组的P2P网络的方法。
背景技术
随着越来越多的企业布署企业管理系统以及与Internet连接的Web服务器,利用IT技术进行企业间的合作正逐步得到企业界和学术界的认同。目前,大多数的企业采用IT技术通过客户/服务器模式的平台进行价格发现、购买、付款等。然而,如果企业采用IT技术进行覆盖整个供应链的企业间合作,客户/服务器模式会遇到一些问题。供应链涉及到很多不同类型的企业,其中大多数为中小型企业。中小型企业为数众多,且数据格式不一致,缺乏文档,中小企业间合作的信息化具有较大的困难。P2P网络即对等(peer to peer)网络是解决以上问题的一个可能途径。相对于Client/Server计算模型,P2P具有许多优点,目前世界上主要存在两种P2P网络,一是无结构的P2P网络,采用洪泛协议发现节点,这种P2P网络存在通讯阻塞,不能保证发现适合的节点的缺点,二是有结构的P2P网络,采用DHT将内容与节点映射到相同格式的全局唯一标识,其缺点为节点和内容本身的语义被哈希函数打破了。由于节点语义的缺失,大规模企业间采用信息技术进行相互合作具有较大的困难。
发明内容
本发明所要解决的技术问题是:提供一种用具有语义的P2P网络构建一个涵盖全球所有企业的大虚拟组织的方法,该方法将所有企业采用统一的分类方法进行分类,所有企业计算机自动构造语义P2P覆盖网络,并且企业间能采用信息技术进行相互合作。
为了解决上述技术问题,本发明的方法采用以下技术方案:
一种构建垂直虚拟组的P2P网络的方法,其特征在于:包括按产业对企业进行分类步骤:根据企业生产经营的产品或服务按分类方法分为各种垂直组织;构建垂直虚拟组语义P2P网络的步骤:1)网络起始节点设置其路由表内容,并建立虚拟组,路由表内容主要包括节点实体信息,实体信息包含节点ID和IP地址,其中节点ID为企业名@域名,域名由几级组成,各级之间由圆点“.”隔开,各级均是具有企业分类含义的文字、字符及数字,虚拟组根据企业分类含义划分为分级的域,2)节点根据分级的域加入企业分类的P2P覆盖网络步骤,3)节点离开P2P覆盖网络步骤;它还包括分布式动作执行的步骤,具体如下:
1a)用户节点确定对目标节点的执行动作,并包含在动作消息中,在动作消息中,确定目标节点的目标虚拟组域名;
1b)用户节点通过查找其路由表,转发动作消息到更接近目标虚拟组域名的邻近节点作为下一跳节点;
1c)邻近的节点通过查找其路由表,转发动作消息到更接近目标虚拟组域名的节点作为下一跳节点;
1d)判断是否是目标虚拟组,若判断结果是,则执行下一步骤,若判断结果否,则重复步骤1c)~1d);
1e)目标虚拟组一节点D对目标虚拟组所有节点广播动作消息;
1f)目标虚拟组所有节点检查是否符合动作消息的条件,若符合,执行动作消息中规定的动作,并将结果返回给动作消息广播节点D;
1g)动作消息广播节点D整合结果,并发送到用户节点;
1h)用户节点将动作消息广播节点D缓存到路由表中。
其中动作消息采用自定义动作语句编写,动作语句格式为:
Act actscripts On domainref [WHERE search_condition];
其中Act为动作谓词,actscripts为动作规定,domainref为虚拟组域名,search_condition为SQL语言查询语句中的条件表达式。
其中节点根据分级的域加入企业分类的P2P覆盖网络步骤,具体如下:
3a)节点A按企业分类确定要加入的虚拟组,并找到已加入此虚拟组的一个节点;
3b)节点A向此节点发送包含节点A实体信息的加入消息,此节点向该虚拟组所有其他节点转发该加入消息;
3c)虚拟组每个节点将节点A的实体信息增加到自己的路由表中,同时向节点A发送包含自身节点实体信息的确认消息,节点A将虚拟组每个节点的实体信息增加到自己的路由表中;
3d)判断是否是根虚拟组或虚拟组中已有N个节点加入上层虚拟组,若判断结果是,则节点A加入步骤结束,若判断结果否,则找到上一层虚拟组的一个节点,并重复步骤3b)~3d)。
其中节点离开P2P覆盖网络步骤,具体如下:
4a)离开节点B寻找到自己加入的最顶层虚拟组V;
4b)虚拟组V如有下一层虚拟组,节点B选择虚拟组V的下一层虚拟组的一个节点C,加入虚拟组V,节点C向节点B发出加入消息,节点B向虚拟组V所有其他节点转发节点C加入消息,虚拟组V每个节点在路由表中加入节点C的实体信息,并向节点C发确认消息,节点C将虚拟组V各个节点的实体信息保存在自己的路由表中;
4c)离开节点B向虚拟组V所有其他节点转发离开消息,虚拟组V每个节点从自己的路由表中将离开节点B实体信息删除;
4d)判断是否是最底层虚拟组?若是,节点离开P2P覆盖网络步骤结束,否则,找到下一层虚拟组V,重复步骤4b~4c。
本发明与现有技术相比具有以下有益效果:本发明的方法采用将所有企业按一定的分类标准进行分类,而形成分级企业树,树中各个路径形成一个垂直虚拟组织,每个企业归属于一个或多个垂直虚拟组织,所有的垂直虚拟组织形成全球的企业虚拟组织;企业按其类型进行分类,加入到相应的虚拟组织,全球所有的企业按分类标准加入到相应的垂直虚拟组织,从而相互联结起来;各个企业利用此大虚拟组织可方便地进行企业间合作。采用综合多倍的虚拟树型结构化网络和随机缓存的非结构网络来构建垂直虚拟组织的P2P网络。节点动态地形成相应于垂直虚拟组织的虚拟树拓扑,并与随机缓存的节点组成网络状拓扑结构,路由表由虚拟树节点和缓存的节点所组成,和普通P2P覆盖网络一样克服了集中式单点失败和通信瓶颈问题,同时不像DHTP2P打破语义,巧妙地保持了节点的语义,以此基础上,采用动作语句向定位的节点子集合请求执行规定的动作,能有效解决巨大数量的企业间相互合作的问题。
附图说明
图1为本发明构建垂直虚拟组织的语义P2P网络总流程框图;
图2为本发明企业按分类标准分级分类垂直组织总图;
图3为本发明节点加入与离开流程图;
图4为本发明分布式动作执行流程图。
具体实施方式
相关术语:
节点:节点为参与多个虚拟分层组的计算机,它具有路由表。
节点ID(PeerID):为层次式域名表示,例如:杭州为民鸡蛋厂@企业.农牧业.畜产品。
节点实体(PNE):节点实体指明节点ID(PeerID),IP地址等。
路由表:由许多节点实体组成。
网关角色:具有路由角色的节点担任几个不同层次的虚拟组的网关功能。
网关最上层(GUL):网关角色中最上层虚拟组在虚拟树中的位置。
虚拟组:由节点组成。上层虚拟组由具有网关角色的节点组成。
N倍虚拟组树:由虚拟组形成的树。高层虚拟组由低层具有网关角色的每组N个节点组成。重复此过程,以形成虚拟树。
加入消息:加入节点发送的消息,必须包括加入节点的实体信息。
离开消息:离开节点发送的消息,必须包括离开节点的实体信息。
动作消息:用户请求节点执行规定动作时发送的消息,必须包含
定位目标节点的条件。
参见图1,本发明是一种垂直虚拟组的P2P网络的方法,包括按产业对企业进行分类步骤、构建垂直虚拟组语义P2P网络的步骤和分布式动作执行的步骤;
按产业对企业进行分类就是按企业生产经营的产品或服务按分类方法分为各种垂直组织,例如:将生产疫苗的制药厂分为制造.药品与处方.药品.疫苗垂直组织,
参见图2,企业按分类标准分级分类形成垂直组织,各个垂直组织形成全球企业垂直组织。每个树路径相应于一个垂直组织,叶域名为企业加入的组织,每个叶域名都有上一层域名,上一层域名有上上层域名,直至根域名,相应于叶节点组织,上级组织,上上级组织,直至顶级组织。
参见图3,构建构垂直虚拟组语义P2P网络,该网络是基于企业分类的具有语义P2P覆盖网络,具体步骤包括:
一、网络起始节点设置其路由表内容,并建立虚拟组,路由表内容主要包括节点实体信息,实体信息包含节点ID和IP地址,其中节点ID为企业名@域名,域名的格式与域名系统(DNS)的格式相似,域名由几级组成,各级之间由圆点“.”隔开,各级均是具有企业分类含义的文字、字符及数字,虚拟组根据企业分类含义划分为分级的域,
二、节点加入P2P覆盖网络,节点根据分级的域加入企业分类的P2P覆盖网络,节点加入步骤具体如下:
a)节点A按企业分类确定要加入的虚拟组,并找到已加入此虚拟组的一个节点;
b)节点A向此节点发送包含节点A实体信息的加入消息,此节点向该虚拟组所有其他节点转发该加入消息;
c)虚拟组每个节点将节点A的实体信息增加到自己的路由表中,同时向节点A发送包含自身节点实体信息的确认消息,节点A将虚拟组每个节点的实体信息增加到自己的路由表中;
d)判断是否是根虚拟组或虚拟组中已有N个节点加入上层虚拟组,若判断结果是,则节点A加入步骤结束,若判断结果否,则找到上一层虚拟组的一个节点,并重复步骤b)~d)。
节点离开P2P覆盖网络步骤;具体步骤如下:
a)离开节点B寻找到自己加入的最顶层虚拟组V;
b)虚拟组V如有下一层虚拟组,节点B选择虚拟组V的下一层虚拟组的一个节点C(C以变量表示),加入虚拟组V,节点C向节点B发出加入消息,节点B向虚拟组V所有其他节点转发节点C加入消息,虚拟组V每个节点在路由表中加入节点C的实体信息,并向节点C发确认消息,节点C将虚拟组V各个节点的实体信息保存在自己的路由表中;
c)离开节点B向虚拟组V所有其他节点转发离开消息,虚拟组V每个节点从自己的路由表中将离开节点B实体信息删除;
d)判断是否是最底层虚拟组?若是,节点离开P2P覆盖网络步骤结束,否则,找到下一层虚拟组V(V以变量表示,此虚拟组V与原来的虚拟组V不同),重复步骤b~c。
参见图4,分布式动作执行的步骤,具体如下:
1a)用户节点确定对目标节点的执行动作,并包含在动作消息中。在动作消息中,确定目标节点的目标虚拟组域名;
1b)用户节点通过查找其路由表,转发动作消息到更接近目标虚拟给域名的邻近节点作为下一跳节点;
1c)邻近的节点通过查找其路由表,转发动作消息到更接近目标虚拟组域名的节点作为下一跳节点;
1d)判断是否是目标虚拟组,若判断结果是,则执行下一步骤,若判断结果否,则重复步骤1c)~1d);
1e)目标虚拟组一节点D对目标虚拟组所有节点广播动作消息;
1f)目标虚拟组所有节点检查是否符合动作消息的条件,若符合,执行动作消息中规定的动作,并将结果返回给动作消息广播节点D;
1g)动作消息广播节点D整合结果,并发送到用户节点;
1h)用户节点将动作消息广播节点D缓存到路由表中;
下面以实例详细说明构建基于企业分类的垂直虚拟组织的语义的P2P网络的过程:
实施例1
构建疫苗制药厂供应链所涉及的企业的垂直虚拟网络:
疫苗制药厂供应链所涉及的企业按国际标准产业分类International Standard Industrial Classification of AllEconomic Activities(ISIC)进行分类。 例如:生产甲肝疫苗的厂归属于“企业.制造业.药品及医药化学剂.药品.疫苗”。生产甲肝疫苗用到鸡蛋作为原料,生产鸡蛋企业归属于“企业.农牧业.畜产品”。包装材料有纸盒等,纸盒生产企业归属于“企业.制造业.造纸及纸制品.纸容器”,纸盒生产企业的原料木材归属于“企业.农牧业.木材”。甲肝疫苗批发企业归属于“企业.批发.西药批发”。按图2,这些垂直虚拟组织形成一个树形拓扑结构。根节点为企业;下一层为农牧业、制造业或批发等;下下一层为药品及医药化学剂、造纸及纸制品等;叶节点为疫苗、畜产品、纸容器、木材或西药批发等。
各企业按分类加入相关虚拟组。所有企业计算机作为节点按用户域名建立领域的覆盖网络。节点ID为企业名@域名,如:企业M@企业.农业.畜产品。
假设有企业:纸包装厂甲为生产纸盒包装企业,其节点ID为纸包装厂甲@企业.制造业.造纸及纸制品.纸容器。所用的电脑IP地址为11.20.3.26;
纸包装厂乙为生产纸盒包装企业,其节点ID为纸包装厂乙@企业.制造业.造纸及纸制品.纸容器。所用的电脑IP地址为12.89.6.15;
疫苗制药厂甲为疫苗制药厂企业,其节点ID为疫苗制药厂甲@企业.制造业.药品及医药化学剂.药品.疫苗。所用的电脑IP地址为201.12.123.150;
鸡蛋厂甲为生产鸡蛋企业,其节点ID为鸡蛋厂甲@企业.农牧业.畜产品。所用的电脑IP地址为1 51.100.68.11 2;
木材厂甲为生产木材企业,其节点ID为木材厂甲@企业.农牧业.木材。所用的电脑IP地址为166.102.43.23;
疫苗批发公司甲为甲肝疫苗批发企业,其节点ID为疫苗批发公司甲@企业.批发.西药批发。所用的电脑IP地址为28.109.15.123;
假设纸包装厂乙为建立网络的第一个企业。按图3,纸包装厂乙电脑为网络起始节点,设置其路由表内容为其节点实体(节点ID:纸包装厂乙@企业.制造业.造纸及纸制品.纸容器,IP地址:12.89.6.15);建立纸容器虚拟组,上层的造纸及纸制品虚拟组,上上层的制造业虚拟组和企业根虚拟组。
纸包装厂甲加入网络。纸包装厂甲按企业分类确定要加入的虚拟组为企业.制造业.造纸及纸制品.纸容器,并找到已加入纸容器虚拟组的一个节点纸包装厂乙。纸包装厂甲节点向纸包装厂乙节点发送包含纸包装厂甲实体信息(节点ID:纸包装厂甲@企业.制造业.造纸及纸制品.纸容器,IP地址11.20.3.26)的加入消息;纸包装厂乙节点向纸容器虚拟组所有其他节点转发该加入消息(因此时只有纸包装厂乙本身一个节点,故不转发);纸容器虚拟组每个节点(此时只有纸包装厂乙一个节点)将纸包装厂甲节点的实体信息(节点ID:纸包装厂甲@企业.制造业.造纸及纸制品.纸容器,IP地址:11.20.3.26)增加到自己的路由表中,同时向纸包装厂甲节点发送确认消息。纸包装厂甲节点将虚拟组每个节点实体信息(节点ID:纸包装厂乙@企业.制造业.造纸及纸制品.纸容器,IP地址:12.89.6.15)增加到自己的路由表中。 假设N为1,因已有1个节点加入上层虚拟组(纸包装厂乙节点),节点加入结束。
疫苗制药厂甲加入网络。疫苗制药厂甲按企业分类确定要加入的虚拟组为企业.制造业.药品及医药化学剂.药品.疫苗,此时网络还不存在疫苗虚拟组和上层药品虚拟组以及上上层药品及医药化学剂虚拟组;所以找到最相近的制造业虚拟组的一个节点纸包装厂乙。疫苗制药厂甲节点向纸包装厂乙节点发送加入消息(包含疫苗制药厂甲的实体信息);纸包装厂乙节点向制造业虚拟组所有其他节点转发加入消息(因此时只有一个节点,故不转发);制造业每个节点(纸包装厂乙)将疫苗制药厂甲节点的实体信息(节点ID:疫苗制药厂甲@企业.制造业.药品及医药化学剂.药品.疫苗,IP地址:201.12.123.150)增加到自己的路由表中,同时向疫苗制药厂甲节点发送确认消息(包含自身的节点信息,此时只有纸包装厂乙一个节点信息)。疫苗制药厂甲节点将虚拟组每个节点实体信息(节点ID:纸包装厂乙@企业.制造业.造纸及纸制品.纸容器,IP地址:12.89.6.15)增加到自己的路由表中。并建立下层药品及医药化学剂、药品和疫苗虚拟组,节点加入结束。
鸡蛋厂甲加入网络。鸡蛋厂甲按企业分类确定要加入的虚拟组为企业.农牧业.畜产品,此时网络还不存在农牧业和畜产品虚拟组;所以找到最相近的企业虚拟组的一个节点纸包装厂乙。鸡蛋厂甲节点向纸包装厂乙节点发送加入消息(包含鸡蛋厂甲的实体信息);纸包装厂乙节点向企业虚拟组所有其他节点转发加入消息(因此时只有纸包装厂乙一个节点,故不转发);企业虚拟组每个节点(纸包装厂乙)将鸡蛋厂甲节点的实体信息(节点ID:鸡蛋厂甲@企业.农牧业.畜产品,IP地址:151.100.68.112)增加到自己的路由表中,同时向鸡蛋厂甲节点发送确认消息。鸡蛋厂甲节点将企业虚拟组每个节点实体信息(节点ID:纸包装厂乙@企业.制造业.造纸及纸制品.纸容器,IP地址:12.89.6.15)增加到自己的路由表中。 并建立下层农牧业虚拟组以及下下层畜产品虚拟组,假设N为1,结束。
木材厂甲加入网络。木材厂甲按企业分类确定要加入的虚拟组为企业.农牧业.木材,此时网络还不存在木材虚拟组;所以找到相同农牧业虚拟组的一个节点鸡蛋厂甲。木材厂甲节点向鸡蛋厂甲节点发送加入消息(包含木材厂甲的实体信息);鸡蛋厂甲节点向农牧业虚拟组所有其他节点转发加入消息(因此时只有鸡蛋厂甲一个节点,故不转发);农牧业虚拟组每个节点(鸡蛋厂甲)将木材厂甲节点的实体信息(节点ID为木材厂甲@企业.农牧业.木材,IP地址:166.102.43.23) 增加到自己的路由表中,同时向木材厂甲节点发送确认消息。木材厂甲节点将农牧业虚拟组每个节点实体信息(节点ID:鸡蛋厂甲@企业.农牧业.畜产品,IP地址:151.100.68.112)增加到自己的路由表中。假设N为1,结束。
疫苗批发公司甲加入网络。疫苗批发公司甲按企业分类确定要加入的虚拟组为企业.批发.西药批发,此时网络还不存在批发和西药批发虚拟组;所以找到相同企业虚拟组的一个节点纸包装厂乙。疫苗批发公司甲向纸包装厂乙节点发送加入消息(包含疫苗批发公司甲的实体信息);纸包装厂乙节点向企业虚拟组所有其他节点转发加入消息(此时向鸡蛋厂甲节点转发);虚拟企业组每个节点(鸡蛋厂甲和纸包装厂乙)将疫苗批发公司甲节点的实体信息(节点ID:疫苗批发公司甲@企业.批发.西药批发,IP地址:28.109.15.123)增加到自己的路由表中,同时向疫苗批发公司甲节点发送确认消息。疫苗批发公司甲节点将企业虚拟组每个节点实体信息(节点ID:纸包装厂乙@企业.制造业.造纸及纸制品.纸容器,IP地址:12.89.6.15和节点ID:鸡蛋厂甲@企业.农牧业.畜产品,IP地址:151.100.68.112)增加到自己的路由表中。假设N为1,结束。
分布式动作执行:
示例1:疫苗制药厂甲生产了新批量优质甲肝疫苗,希望通知感兴趣的疫苗批发公司。按图4,疫苗制药厂甲发出的动作消息,包括用一种自定义语言编写的动作语句,其格式为:
Act actscripts On domainref[WHERE search_condition];
其中Act为动作谓词,actscripts为动作规定,domainref为虚拟组域名,search_condition为SQL语言查询语句中的条件表达式。
疫苗制药厂甲编写的动作语句:Advocate noticeContext On企业.批发.西药批发where prod=“HAVvaccine”;
Advocate为广播动作;noticeContext为通知内容;企业.批发.西药批发为通知的虚拟组;通知的产品涉及甲肝疫苗。整个语句的意思为将通知内容通知到所有批发甲肝疫苗的疫苗批发公司。
疫苗制药厂甲节点目前路由表包括纸包装厂乙节点(纸包装厂乙@企业.制造业.造纸及纸制品.纸容器,IP地址:12.89.6.1 5)。疫苗制药厂甲节点通过查找其路由表,转发动作消息到更接近目标虚拟组域名的邻近节点作为下一跳节点。具体过程如下:按图4,疫苗制药厂甲节点与目标节点(属于企业.批发.西药批发虚拟组)的共享前缀为企业,长度为1。通过查找其路由表,节点纸包装厂乙与目标节点的共享前缀为企业,长度为1。因纸包装厂乙的网关最上层(GUL)比疫苗制药厂甲小(即纸包装厂乙更接近或等于根虚拟组,此时为根虚拟组),所以,疫苗制药厂甲节点转发动作消息到更接近目标虚拟组域名的下一跳节点纸包装厂乙。纸包装厂乙节点路由表包括鸡蛋厂甲节点(节点ID:鸡蛋厂甲@企业.农牧业.畜产品,IP地址:151.100.68.112),疫苗制药厂甲节点(节点ID:疫苗制药厂甲@企业.制造业.药品及医药化学剂.药品.疫苗,IP地址:201.12.123.150),纸包装厂甲节点(节点ID:纸包装厂甲@企业.制造业.造纸及纸制品.纸容器,IP地址11.20.3.26),疫苗批发公司甲节点(节点ID:疫苗批发公司甲@企业.批发.西药批发,IP地址:28.109.15.123)。通过查找其路由表,节点疫苗批发公司甲与目标节点的共享前缀相同。此时,疫苗批发公司甲就是目标虚拟组企业.批发.西药批发的一个节点。疫苗批发公司甲节点对目标虚拟组所有节点(疫苗批发公司甲自身)广播动作消息。目标虚拟组所有节点检查是否符合利语句的where条件。疫苗批发公司甲是批发甲肝疫苗的公司,接受动作消息,并执行动作,并将结果返回给疫苗批发公司甲节点(此时为疫苗批发公司甲节点自身)。疫苗批发公司甲节点整合结果,并发送到疫苗制药厂甲节点。疫苗制药厂甲节点在自身的路由表中缓存疫苗批发公司甲节点的信息。即将疫苗批发公司甲节点(节点ID:疫苗批发公司甲@企业.批发.西药批发,IP地址:28.109.15.123)加入到疫苗制药厂甲节点的路由表中。
疫苗制药厂甲生产的下一批甲肝疫苗,想通知批发公司。疫苗制药厂甲发出包含企业.批发.西药批发虚拟组的动作消息。此时,疫苗制药厂甲路由表中有缓存的疫苗批发公司甲节点(疫苗批发公司甲@企业.批发.西药批发,IP地址:28.109.15.123)。疫苗批发公司甲就是目标虚拟组企业.批发.西药批发的一个节点。故疫苗制药厂甲不需要转动作消息到纸包装厂乙,而直接到疫苗批发公司甲节点。疫苗批发公司甲节点对目标虚拟组所有节点(疫苗批发公司甲自身)广播动作消息。目标虚拟组所有节点检查是否符合利语句的where条件。疫苗批发公司甲是批发甲肝疫苗的公司,接受动作消息,并执行动作,并将结果返回给疫苗批发公司甲节点。疫苗批发公司甲节点整合结果,并发送到疫苗制药厂甲节点。
示例2:疫苗制药厂甲为了生产甲型疫苗招标原材料--鸡蛋,希望对所有鸡蛋进行招标。按图4,疫苗制药厂甲发出的动作消息,包括编写的动作语句:Bid lowestPrice 0n企业.农牧业.畜产品where prod=“鸟蛋”and schedule=“2009-08-20”and quality=“best”and amount=“10000”;语句的意思为从企业.农牧业.畜产品虚拟组中的所有鸡蛋厂以最低价招标10000枚最好的鸡蛋,必须满足2009-08-20交货条件。
疫苗制药厂甲节点目前路由表包括纸包装厂乙节点(纸包装厂乙@企业.制造业.造纸及纸制品.纸容器,IP地址:12.89.6.15)和缓存的疫苗批发公司甲节点(疫苗批发公司甲@企业.批发.西药批发,IP地址:28.109.15.123)。疫苗制药厂甲节点通过查找其路由表,转发动作消息到更接近目标虚拟组域名的邻近节点作为下一跳节点。具体过程如下:按图4,疫苗制药厂甲节点(属于企业.制造业.药品及医药化学剂.药品.疫苗虚拟组)与目标节点(属于企业.农牧业.畜产品虚拟组)的共享前缀为企业,长度为1。通过查找其路由表,节点纸包装厂乙和疫苗批发公司甲与目标节点的共享前缀都为企业,长度都为1。因纸包装厂乙和疫苗批发公司甲的网关最上层(GUL)相等(都是根虚拟组),所以,下一跳节点为纸包装厂乙和疫苗批发公司甲其中之一。由于纸包装厂乙路由表中包含鸡蛋厂甲节点,故疫苗制药厂甲节点转发动作消息到更接近目标虚拟组域名的下一跳节点纸包装厂乙。纸包装厂乙节点路由表包括鸡蛋厂甲节点(节点ID:鸡蛋厂甲@企业.农牧业.畜产品,IP地址:151.100.68.112),疫苗制药厂甲节点(节点ID:疫苗制药厂甲@企业.制造业.药品及医药化学剂.药品.疫苗,IP地址:201.12.123.150),纸包装厂甲节点(节点ID:纸包装厂甲@企业.制造业.造纸及纸制品.纸容器,IP地址11.20.3.26),疫苗批发公司甲节点(节点ID:疫苗批发公司甲@企业.批发.西药批发,IP地址:28.109.15.123)。通过查找其路由表,节点鸡蛋厂甲与目标节点的共享前缀相同。此时,鸡蛋厂甲就是目标虚拟组企业.农牧业.畜产品的一个节点。鸡蛋厂甲节点对目标虚拟组所有节点(鸡蛋厂甲自身)广播动作消息。目标虚拟组所有节点检查是否符合利语句的where条件。鸡蛋厂甲是生产鸡蛋的公司,接受动作消息,并执行动作,并将最低价格结果返回给鸡蛋厂甲节点节点。鸡蛋厂甲节点整合结果,并发送到疫苗制药厂甲节点。疫苗制药厂甲节点在自身的路由表中缓存鸡蛋厂甲节点的信息。即将鸡蛋厂甲节点(节点ID:鸡蛋厂甲@企业.农牧业.畜产品,IP地址:151.100.68.112)加入到疫苗制药厂甲节点的路由表中。
示例3:疫苗制药厂甲对纸包装盒进行采购。按图4,疫苗制药厂甲发出的动作消息,包括编写的动作语句:ProcureProcurement-workflow-scripts1 On企业.制造业.造纸及纸制品.纸容器where prod=“甲肝疫苗纸包装盒”;。语句的意思为从企业.制造业.造纸及纸制品.纸容器虚拟组中的所有包装厂中按Procurement-workflow-scripts1采购条件与流程采购甲肝疫苗纸包装盒。
疫苗制药厂甲节点目前路由表包括纸包装厂乙节点(纸包装厂乙@企业.制造业.造纸及纸制品.纸容器,IP地址:12.89.6.15)和缓存的疫苗批发公司甲节点(疫苗批发公司甲@企业.批发.西药批发,IP地址:28.109.15.123)以及缓存的鸡蛋厂甲节点(节点ID:鸡蛋厂甲@企业.农牧业.畜产品,IP地址:151.100.68.112)。疫苗制药厂甲节点通过查找其路由表,转发动作消息到更接近目标虚拟组域名的邻近节点作为下一跳节点。具体过程如下:按图4,疫苗制药厂甲节点(属于企业.制造业.药品及医药化学剂.药品.疫苗虚拟组)与目标节点(属于企业.制造业.造纸及纸制品.纸容器虚拟组)的共享前缀为企业.制造业,长度为2。通过查找其路由表,纸包装厂乙节点与目标节点的共享前缀相同。此时,纸包装厂乙节点就是目标虚拟组企业.制造业.造纸及纸制品.纸容器的一个节点。纸包装厂乙节点对目标虚拟组所有节点(纸包装厂乙节点自身和纸包装厂甲节点)广播动作消息。目标虚拟组所有节点检查是否符合利语句的where条件。假定纸包装厂乙节点和纸包装厂甲节点是生产甲肝疫苗纸包装盒,接受动作消息,并执行动作。纸包装厂乙节点和纸包装厂甲节点通过发送动作消息ProcureProcurement-workflow-scripts2 On企业.农牧业.木材where prod=“造纸木材”;到企业.农牧业.木材虚拟组的节点(同图4的过程),企业.农牧业.木材虚拟组仅有木材厂甲@企业.农牧业.木材一个节点。木材厂甲@企业.农牧业.木材节点分别执行纸包装厂乙节点和纸包装厂甲节点发送的动作消息规定的动作,并将结果返回给纸包装厂乙节点和纸包装厂甲节点。包装厂乙节点和纸包装厂甲节点分别缓存木材厂甲@企业.农牧业.木材节点的信息。包装厂乙节点和纸包装厂甲节点分别执行疫苗制药厂甲节点发送的动作消息规定的动作,并将结果返回到疫苗制药厂甲节点。疫苗制药厂甲节点在自身的路由表中缓存纸包装厂甲节点的信息。即将纸包装厂甲节点ID为纸包装厂甲@企业.制造业.造纸及纸制品.纸容器,IP地址为11.20.3.26加入到疫苗制药厂甲节点的路由表中。
按以上建好的网络,假设鸡蛋厂甲离开网络:
a)鸡蛋厂甲节点寻找到自己加入的最顶层虚拟组(此时为企业)。鸡蛋厂甲@企业.农牧业.畜产品
b)有下一层虚拟组(农牧业虚拟组),鸡蛋厂甲节点选择此企业组的下一层虚拟组(农牧业虚拟组)的一个节点(木材厂甲节点,节点ID为木材厂甲@企业.农牧业.木材。IP地址为166.102.43.23)加入此企业虚拟组。木材厂甲节点向鸡蛋厂甲节点发出加入消息,鸡蛋厂甲节点向该企业组所有其他节点(纸包装厂乙节点和疫苗批发公司甲)转发木材厂甲节点加入消息。该企业虚拟组每个节点(纸包装厂乙节点和疫苗批发公司甲)在路由表中加入木材厂甲节点的实体信息,并向木材厂甲节点发确认消息。木材厂甲节点将此企业虚拟组各个节点(纸包装厂乙节点,节点ID:纸包装厂乙@企业.制造业.造纸及纸制品.纸容器,IP地址:12.89.6.15和疫苗批发公司甲,节点ID:疫苗批发公司甲@企业.批发.西药批发,IP地址:28.109.15.123)的实体信息保存在自己的路由表中。
c)鸡蛋厂甲节点向企业虚拟组所有其他节点(纸包装厂乙节点和疫苗批发公司甲)转发离开消息;企业虚拟组每个节点从自己的路由表中将鸡蛋厂甲节点实体信息删除。
d)由于不是最底层虚拟组,虚拟组织指向下层虚拟组农牧业,转向步骤b),具体步骤如下:b1)农牧业虚拟组有下层虚拟组畜产品,因畜产品无其他节点,故跳过此步c1)鸡蛋厂甲节点向农牧业虚拟组所有其他节点(此示例仅有木材厂甲节点)转发离开消息;农牧业虚拟组每个节点从自己的路由表中将鸡蛋厂甲节点实体信息删除(木材厂甲节点路由表中将鸡蛋厂甲节点实体信息删除);循环一次后,由于不是最底层虚拟组,虚拟组织指向下层虚拟组畜产品,转向步骤b),具体步骤如下:b2)畜产品虚拟组为最底层虚拟组,故跳过此步;c2)鸡蛋厂甲节点向畜产品虚拟组所有其他节点(无其他节点)转发离开消息;故跳过此步;再循环一次后,是最底层虚拟组,结束。
Claims (4)
1、一种构建垂直虚拟组的P2P网络的方法,其特征在于:包括按产业对企业进行分类步骤:根据企业生产经营的产品或服务按分类方法分为各种垂直组织;构建垂直虚拟组语义P2P网络的步骤:1)网络起始节点设置其路由表内容,并建立虚拟组,路由表内容主要包括节点实体信息,实体信息包含节点ID和IP地址,其中节点ID为企业名@域名,域名由几级组成,各级之间由圆点“.”隔开,各级均是具有企业分类含义的文字、字符及数字,虚拟组根据企业分类含义划分为分级的域,2)节点根据分级的域加入企业分类的P2P覆盖网络步骤,3)节点离开P2P覆盖网络步骤;它还包括分布式动作执行的步骤,具体如下:
1a)用户节点确定对目标节点的执行动作,并包含在动作消息中,在动作消息中,确定目标节点的目标虚拟组域名;
1b)用户节点通过查找其路由表,转发动作消息到更接近目标虚拟组域名的邻近节点作为下一跳节点;
1c)邻近的节点通过查找其路由表,转发动作消息到更接近目标虚拟组域名的节点作为下一跳节点;
1d)判断是否是目标虚拟组,若判断结果是,则执行下一步骤,若判断结果否,则重复步骤1c)~1d);
1e)目标虚拟组一节点D对目标虚拟组所有节点广播动作消息;
1f)目标虚拟组所有节点检查是否符合动作消息的条件,若符合,执行动作消息中规定的动作,并将结果返回给动作消息广播节点D;
1g)动作消息广播节点D整合结果,并发送到用户节点;
1h)用户节点将动作消息广播节点D缓存到路由表中。
2、如权利要求1所述的一种构建垂直虚拟组的P2P网络的方法,其特征在于:其中动作消息采用自定义动作语句编写,动作语句格式为:
Act actscripts On domainref[WHERE search_condition];
其中Act为动作谓词,actscripts为动作规定,domainref为虚拟组域名,search_condition为SQL语言查询语句中的条件表达式。
3、如权利要求1所述的一种构建垂直虚拟组的P2P网络的方法,其特征在于其中节点根据分级的域加入企业分类的P2P覆盖网络步骤,具体如下:
3a)节点A按企业分类确定要加入的虚拟组,并找到已加入此虚拟组的一个节点;
3b)节点A向此节点发送包含节点A实体信息的加入消息,此节点向该虚拟组所有其他节点转发该加入消息;
3c)虚拟组每个节点将节点A的实体信息增加到自己的路由表中,同时向节点A发送包含自身节点实体信息的确认消息,节点A将虚拟组每个节点的实体信息增加到自己的路由表中;
3d)判断是否是根虚拟组或虚拟组中已有N个节点加入上层虚拟组,若判断结果是,则节点A加入步骤结束,若判断结果否,则找到上一层虚拟组的一个节点,并重复步骤3b)~3d)。
4、如权利要求1所述的一种构建垂直虚拟组的P2P网络的方法,其特征在于其中节点离开P2P覆盖网络步骤,具体如下:
4a)离开节点B寻找到自己加入的最顶层虚拟组V;
4b)虚拟组V如有下一层虚拟组,节点B选择虚拟组V的下一层虚拟组的一个节点C,加入虚拟组V,节点C向节点B发出加入消息,节点B向虚拟组V所有其他节点转发节点C加入消息,虚拟组V每个节点在路由表中加入节点C的实体信息,并向节点C发确认消息,节点C将虚拟组V各个节点的实体信息保存在自己的路由表中;
4c)离开节点B向虚拟组V所有其他节点转发离开消息,虚拟组V每个节点从自己的路由表中将离开节点B实体信息删除;
4d)判断是否是最底层虚拟组?若是,节点离开P2P覆盖网络步骤结束,否则,找到下一层虚拟组V,重复步骤4b~4c。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101009267A CN101621539B (zh) | 2009-08-06 | 2009-08-06 | 一种构建垂直虚拟组的p2p网络的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101009267A CN101621539B (zh) | 2009-08-06 | 2009-08-06 | 一种构建垂直虚拟组的p2p网络的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101621539A true CN101621539A (zh) | 2010-01-06 |
CN101621539B CN101621539B (zh) | 2012-05-30 |
Family
ID=41514580
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101009267A Expired - Fee Related CN101621539B (zh) | 2009-08-06 | 2009-08-06 | 一种构建垂直虚拟组的p2p网络的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101621539B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102651699A (zh) * | 2011-02-25 | 2012-08-29 | 华平信息技术股份有限公司 | 一种树状分层结构监控系统及监控方法 |
CN104702690A (zh) * | 2015-03-12 | 2015-06-10 | 杭州域竹科技有限公司 | 基于虚拟树型网络技术的分布式高性能计算的方法 |
CN108038490A (zh) * | 2017-10-30 | 2018-05-15 | 上海思贤信息技术股份有限公司 | 一种基于互联网数据的p2p企业自动识别方法与系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100385443C (zh) * | 2005-09-09 | 2008-04-30 | 湖南大学 | 一种基于分档Bloom Filter结构的查询方法 |
CN101087403B (zh) * | 2007-05-31 | 2010-10-06 | 杭州搜视网络有限公司 | 基于p2p技术上的分布式流媒体点播系统及其点播流媒体节目的实现方法 |
CN101394428B (zh) * | 2008-11-10 | 2012-11-28 | 北京邮电大学 | 一种服务定位方法 |
-
2009
- 2009-08-06 CN CN2009101009267A patent/CN101621539B/zh not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102651699A (zh) * | 2011-02-25 | 2012-08-29 | 华平信息技术股份有限公司 | 一种树状分层结构监控系统及监控方法 |
CN104702690A (zh) * | 2015-03-12 | 2015-06-10 | 杭州域竹科技有限公司 | 基于虚拟树型网络技术的分布式高性能计算的方法 |
CN108038490A (zh) * | 2017-10-30 | 2018-05-15 | 上海思贤信息技术股份有限公司 | 一种基于互联网数据的p2p企业自动识别方法与系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101621539B (zh) | 2012-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101529809B (zh) | 链路状态协议控制的网络中路由选择信息的分布式存储 | |
Hsu et al. | Political discourse among key Twitter users: The case of Sejong city in South Korea | |
CN100536423C (zh) | 一种基于结构化p2p应用服务平台及其实现方法 | |
US20090089408A1 (en) | XML Router and method of XML Router Network Overlay Topology Creation | |
CN102571839A (zh) | 基于用户社会属性的p2p内容分发方法及系统 | |
CN100407201C (zh) | 一种网络搜索系统及其实现方法 | |
US8948178B2 (en) | Network clustering | |
Xia et al. | Exploiting social relationship to enable efficient replica allocation in ad-hoc social networks | |
CN105743664A (zh) | 用于内容中心网络中的多源组播的系统和方法 | |
CN1953413A (zh) | 一种流媒体直播系统中控制流的树形网络组织方法 | |
CN103338252A (zh) | 一种分布式数据库并发存储虚拟请求机制 | |
CN101621539B (zh) | 一种构建垂直虚拟组的p2p网络的方法 | |
CN100454308C (zh) | 文件发布和检索的方法及其系统 | |
CN100473007C (zh) | 内容交换网络 | |
Martha et al. | A study on Twitter user-follower network: A network based analysis | |
CN104537091A (zh) | 一种基于层次标识路由的网络化关系数据查询方法 | |
Akrida et al. | On verifying and maintaining connectivity of interval temporal networks | |
Katsoni et al. | Use of innovation systems for an effective tourism marketing development strategy. | |
Tran et al. | Enabling content-based publish/subscribe services in cooperative P2P networks | |
CN106210090A (zh) | 基于p2p网络的双层环状路由结构的网络服务搜索方法 | |
CN101616182B (zh) | 一种构建具有语义的p2p网络的方法 | |
Ma et al. | A general scalable and elastic matching service for content‐based publish/subscribe systems | |
CN102929914A (zh) | 一种基于p2p节点调度的移动地图服务搜索方法 | |
CN111562990A (zh) | 一种基于消息的轻量级无服务器计算方法 | |
CN106612298A (zh) | 一种基于大规模网络节点的内容分发方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120530 Termination date: 20150806 |
|
EXPY | Termination of patent right or utility model |