具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例1
参见图1,本发明实施例提供了一种发送数据的方法,包括:
101:将服务数据对象SDO数据的结构类型由基本SDO数据结构映射为通用SDO数据结构。
102:发送通用SDO数据结构的SDO数据。
进一步地,基本SDO数据结构为业务数据DataObject、基本类型属性Property,通用SDO数据结构为节点Node、属性Attribute,将SDO数据的结构类型由基本SDO数据结构映射为通用SDO数据结构,包括:
将DataObject映射到Node;
将Property映射到Attribute。
进一步地,将DataObject映射到Node,包括:
将DataObject的类型的资源标识符URI映射到Node的属性URI;
将DataObject的类型的名称Name映射到Node的属性Name;
将DataObject的基本数据类型属性映射到Node的Attribute;
将DataObject的复杂数据类型属性映射到Node的子节点。
进一步地,将Property映射到Attribute,包括:
将Property的属性名映射为Attribute的属性Name;
将Property的值映射为Attribute的属性值Value。
进一步地,该方法还包括:
判断SDO数据的结构类型;
如果SDO数据的结构类型为基本SDO数据结构,则执行将SDO数据的结构类型由基本SDO数据结构映射为通用SDO数据结构的步骤;
如果SDO数据的结构类型为通用SDO数据结构,则执行发送通用SDO数据结构的SDO数据的步骤。
本发明实施例所述的发送数据的方法,通过将SDO数据的结构类型由基本SDO数据结构映射为通用SDO数据结构后发送,使得接收端系统不需要建立元数据交换机制即可识别出该SDO数据,减少了接收端系统的开销。
实施例2
参见图2,本发明实施例提供了一种发送数据的方法,包括:
201:A系统向B系统发送SDO数据时,判断发送的SDO数据的结构类型,如果SDO数据的结构类型为基本SDO数据结构,则执行202;如果SDO数据的结构类型为通用SDO数据结构,则执行203;
本发明实施例中基本SDO数据结构为(DataObject(业务数据),Property(基本类型属性)),通用SDO数据结构为(Node(节点),Attribute(属性))。(DataObject,Property)是一种强类型数据结构,DataObject中具体的每一项数据保存在其下的每一个Property中,Property既可以是基本数据类型(如String(字符串)、int(整数)、double(双精度数)等),也可以是复杂数据类型(如DataObject类型)。当对应到面向对象语言时,DataObject即为“类”,Property即为类下面的“属性”,而且属性又可分为基本数据类型属性和类属性。(Node,Attribute)是一种树结构。
需要说明的是,通用SDO数据结构并不限于是树结构的形式,还可以是其他任何可行的结构形式,例如:链表结构、数组结构、列表结构或图结构等形式,可以根据实际应用状况灵活设置,对此不做具体限定。
202:A系统将SDO数据的结构类型由基本SDO数据结构映射为通用SDO数据结构,然后执行203。
本发明实施例中基本SDO数据结构为(DataObject,Property),通用SDO数据结构为(Node,Attribute),将SDO数据的结构类型由基本SDO数据结构映射为通用SDO数据结构,即将SDO数据的结构类型由(DataObject,Property)映射为(Node,Attribute)(其中DataObject对应Node,Property对应Attribute),具体如下:
1、参见图3,将DataObject映射到Node,具体为:
将DataObject的类型的URI(Uniform Resource Identifier,资源标识符)映射到Node的属性URI;
将DataObject的类型的Name(名称)映射到Node的属性Name;
将DataObject的基本数据类型属性映射到Node的Attribute;
将DataObject的复杂数据类型属性(内容为DataObject的Property)映射到Node的ChildNode(子节点)(同为Node)。
其中,Node中Attribute1和Attribute2,以及ChildNode1和ChildNode2使用DataObject的list(列表)实现,所以Node本身还具备动态添加和删除数据的动态特性,可以在原数据的基础上自由的添加任何其他的数据。
2、参见图4,将Property映射到Attribute,具体为:
将Property的属性名映射为Attribute的属性Name;
将Property的值映射为Attribute的属性Value(值)。
需要说明的是,Property的结构与Attribute的结构看似类似,但Attribute的结构实际实现的是一个DataObject,即将基本类型的Property映射到一个Attribute类型的DataObject。
并且需要说明的是,从上述可以看出,本发明实施例中通用SDO数据结构的实现皆采用标准的SDO接口实现,即Node、Attribute本身也是SDO数据。
203:A系统发送通用SDO数据结构的SDO数据到B系统。
需要说明的是,在执行本发明实施例前,需要事先在A系统和B系统中引入一套通用SDO数据结构(例如可以在A系统和B系统初始化时引入),即使A系统和B系统均可以识别通用SDO数据结构,也就是说本发明实施例默认实施前A系统和B系统中已经引入一套通用SDO数据结构。并且,具体可以通过XML Schema(XML模式)等现有技术中任意可行的方式引入,对此不做具体限定。
本发明实施例所述的发送数据的方法,在A系统和B系统中引入一套通用SDO数据结构后,A系统只需将SDO数据的结构类型由基本SDO数据结构映射为通用SDO数据结构后发送给B系统,B系统即可识别出该SDO数据,不需要建立元数据交换机制,减少了B系统的开销;并且,A系统不需要事先给B系统发元数据,所以B系统也不需要建立元数据管理系统,可以进一步地减少B系统的开销;另外,无论A系统的SDO数据的结构发生何种改变,由于最终发送给B系统的是通用SDO数据结构的SDO数据,所以B系统仍可识别出SDO数据,所以使得A系统的SDO数据可具有一定的动态性,使得系统之间的兼容性更好。
实施例3
参见图5,本发明实施例提供了一种发送数据的装置,包括:
映射模块301,用于将服务数据对象SDO数据的结构类型由基本SDO数结构映射为通用SDO数据结构。
发送模块302,用于发送通用SDO数据结构的SDO数据。
进一步地,基本SDO数据结构为业务数据DataObject、基本类型属性Property,通用SDO数据结构为节点Node、属性Attribute,映射模块301包括:
第一映射单元,用于将DataObject映射到Node;
第二映射单元,用于将Property映射到Attribute。
进一步地,第一映射单元包括:
第一映射子单元,用于将DataObject的类型的资源标识符URI映射到Node的属性URI;
第二映射子单元,用于将DataObject的类型的名称Name映射到Node的属性Name;
第三映射子单元,用于将DataObject的Property映射到Node的Attribute;
第四映射子单元,用于将DataObject的复杂属性映射到Node的子节点。
进一步地,第二映射单元包括:
第五映射子单元,用于将Property属性名映射为Attribute的属性Name;
第六映射子单元,用于将Property的值映射为Attribute的属性值Value。
进一步地,参见图6,该装置还包括:
判断模块303,用于判断SDO数据的结构类型。
第一通知模块304,用于当判断模块303的判断结果是SDO数据的结构类型为基本SDO数据结构时,通知映射模块301执行将SDO数据的结构类型由基本SDO数据结构映射为通用SDO数据结构的步骤。
第二通知模块305,用于当判断模块303的判断结果是SDO数据的结构类型为通用SDO数据结构时,通知发送模块302执行发送通用SDO数据结构的SDO数据的步骤。
本发明实施例所述的发送数据的装置,通过将SDO数据的结构类型由基本SDO数据结构映射为通用SDO数据结构后发送,使得接收端系统不需要建立元数据交换机制即可识别出该SDO数据,减少了接收端系统的开销。
实施例4
参见图7,本发明实施例提供了一种发送数据的系统,包括:
发送端系统401,用于将服务数据对象SDO数据的结构类型由基本SDO数据结构映射为通用SDO数据结构,发送通用SDO数据结构的SDO数据,其中,发送端系统401中引入有一套通用SDO数据结构。
接收端系统402,用于接收发送端系统401发送的通用SDO数据结构的SDO数据,其中,接收端系统402中引入有一套通用SDO数据结构。
进一步地,发送端系统401,还用于判断SDO数据的结构类型,如果SDO数据的结构类型为基本SDO数据结构,则执行将SDO数据的结构类型由基本SDO数据结构映射为通用SDO数据结构的步骤,如果SDO数据的结构类型为通用SDO数据结构,则执行发送通用SDO数据结构的SDO数据的步骤。
本发明实施例所述的发送数据的系统,在发送端系统和接收端系统中引入一套通用SDO数据结构后,发送端系统只需将SDO数据的结构类型由基本SDO数据结构映射为通用SDO数据结构后发送给接收端系统,接收端系统即可识别出该SDO数据,不需要建立元数据交换机制,减少了接收端系统的开销;并且,发送端系统不需要事先给接收端系统发元数据,所以接收端系统也不需要建立元数据管理系统,可以进一步地减少接收端系统的开销;另外,无论发送端系统的SDO数据的结构发生何种改变,由于最终发送给接收端系统的是通用SDO数据结构的SDO数据,所以接收端系统仍可识别出SDO数据,所以使得发送端系统的SDO数据可具有一定的动态性,使得系统之间的兼容性更好。
以上实施例提供的技术方案中的全部或部分内容可以通过软件编程实现,其软件程序存储在可读取的存储介质中,存储介质例如:计算机中的硬盘、光盘或软盘。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。