开放式知识库中数据服务模型的改进和应用

以下是资料介绍,如需要完整的请充值下载.
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
资料介绍:
Wiki模式的基本特征
作为开放式知识库中最重要的形式之一,Wiki是这样一种以“知识库文档”为中心,“共同创作”为手段,依靠“众人不断地更新修改”,借助互联网创建、积累、完善和分享知识的全新模式。后来Ward Cunningham 为Wiki 总结了开放、增长、有组织、通俗、全民、公开、统一、精确、宽容、透明和汇聚等设计原则,凡是基本符合这些设计原则的内容编辑系统都可称之为Wiki[1]。
需要强调说明的是,上述原则应用到一个内容编辑系统中去才可称为Wiki,如果不能在一个编辑系统中对内容进行开放式编辑修改,内容就不会增长,如果不公开透明和不能汇聚全民的参与,就无所谓宽容和统一。
Wiki 的原理在于开放编辑和自由协作,用户可以修改系统中所有开放的信息文本,Wiki 系统则记录下所有用户修订的版本历史。与Blog 强调个人的自主性相比,Wiki 更强调用户群体的集体协作,特别适合协同创作,如共同构建知识库、形成共同规范或标准化的文档说明等。比如在Wikipedia中,各个词条最终形成的中性客观定义就是在这样的机制中产生的。原本没有什么客观的知识,有的只是主观林立的意见分歧,在开放编辑的条件下,不同用户的反复修订相当于进行一场广泛参与的协商讨论,协商讨论得越充分,得到的结果越容易获得更多人的接受,越接近符合共同规范意义上的“客观的知识”。通过这种开放修改权限的方式,那些比较容易为他人所接受的观点能够保持较久的时间,从而获得更大的影响力和更广泛的传播范围,那些恶意的、低质量的修改则难以久留,最终沉淀下来的是得到大多数参与者广泛讨论和协商后的、观念之间博弈与平衡的结果[2]。
总之,Wiki 设计思想可以提炼为:相信用户、相信群体的智慧,只有借助于群体智慧创造的作品才能更好的满足群体的需求、才能获得群体的满意和认可。这种思想,作为web 2.0最重要的设计模式之一[3],已经被很多网络应用所采纳。除文本编辑之外,Google Map电子地图的开放编辑功能便是这种模式的典型应用。
1.2.2 数据竞争力
可以说,现在每一个重要的互联网应用都有一个专门的数据库驱动,无论是Wikipedia的词条库、Google的网络爬虫资源、Napster的分布式歌曲库还是MapQuest的地图数据库。离开了强大的数据支持,网络应用都难以发展。不过,Wiki模式的变革也为我们提出了一个问题:谁应拥有数据?
在传统的互联网模式下,由网站或互联网应用提供数据,用户只是简单的查询使用这些数据。一般情况下,数据的所有权和管理权完全在网站服务的提供者手中,而对有价值数据的掌控往往是公司竞争优势的来源,这里把这种竞争力称为数据竞争力。
服务组件架构(Service Component Architecture)
服务组件体系结构(Service Component Architecture,SCA)是一组规范,描述了用于使用面向服务的体系结构来构建应用程序和系统的模型。SCA 扩展了以前用于实现服务的方法,并对其形成补充,而且,SCA 构建于 Web 服务系列标准等开放标准之上,并扩展和补充了先前的服务实现方法[6]。
SCA 鼓励采用基于实现业务逻辑的 SOA 业务应用程序[7]代码组织方式,以便通过面向服务的接口公开其功能,以及通过面向服务的接口使用其他组件提供的功能(称为服务引用)。它将用于构建面向服务的应用程序的步骤分为两大部分:
(1) 组件的实现,提供服务和使用其他服务;
(2) 为了构建业务应用程序对组件集进行的组装,通过服务之间的引用完成。
SCA 强调将服务实现和服务组装分离开来,这种分离即体现在基础设施功能细节上,也体现在调用服务的访问方法细节上。服务组件在业务级别进行操作,只使用非常少的中间件 API 来工作。
服务组件可以使用众多编程语言中的任何一种语言编写的服务实现,这既包括常规的面向对象和过程的语言,例如 Java™、PHP、C++、COBOL,也包括 BPEL和 XSLT 等以 XML 为中心的语言,还包括 SQL 和 XQuery 等面向问题的语言。SCA 还支持各种编程样式,除了同步调用-返回样式外,还包括异步样式和面向消息的样式。
此外,该架构也支持各种用于调用服务的访问机制的绑定方式。这包括 Web 服务、消息传递系统和 CORBA IIOP。绑定是以声明方式处理的,独立于实现代码。基础设施功能(如安全、事务和可靠消息传递的使用)都是采用声明方式处理的,已从实现代码分离。SCA 通过策略使用基础设施功能,而策略旨在简化控制功能如何应用到业务系统的机制。 think58好,好think58 [来源:http://www.think58.com]
值得一提的是,SCA还促进了使用服务数据对象(SDO)来表示形成参数和服务返回值的业务数据,从而提供了对业务数据的统一访问方式,对 SCA 本身提供的业务服务统一访问方式形成了补充[8]。本文正是基于这个特点,将SDO作为业务数据的载体来实现数据服务的改进。
服务数据对象(Service Data Object)
SDO的设计是为了简化和统一应用程序处理数据的方式。利用SDO,应用程序编程人员可以一致地访问和操纵来自异构数据源的数据,包括关系数据库、XML数据源、Web服务和企业信息系统等[9]。
2.3.1 SDO模型框架
SDO 模型框架提供了一组核心组件,这些组件可以由支持 SDO 的实现和框架进行扩充。SDO 规范定义了数据持有者——数据对象 (Data Object) 和数据图 (Data Graph),还引用了一种叫做数据访问服务(Data Access Service,DAS)的组件。DAS 负责访问数据源和处理数据图。
数据对象是SDO框架的核心。数据对象是一个业务对象的一般表达,并且没有和特殊的持久化存储机制绑定。数据对象是保存数据的组件,简单地说,它是由属性的键/值对组成的,每个值都可以是原始的数据类型,或者是另一个数据对象。数据对象是可序列化的。
数据图是一个相关数据对象的集合。在SDO1.0里,一个数据图总是被一个DataGraph信封对象所包装,而在SDO2.0里,数据对象图可以存在于数据图(DataGraph)之外。Data graph作为两个单词分开使用时,指任何一个数据对象集合;DataGraph作为一个单一单词使用时,特指一个DataGraph信封对象。 think58好,好think58 [版权所有:http://think58.com]
所有数据图都有一个单一的根数据对象,它直接或间接的包含图里的所有其它数据对象。当的数据图里的所有数据对象仅仅引用自身的数据对象时,我们称该数据图是封闭的。封闭是一个数据图的标准状态。
一个数据对象图由以下组成:
(1) 一个单一的根数据对象。
(2) 通过对根数据对象属性的递归检索到的所有可达的数据对象。
作为开放式知识库中最重要的形式之一,Wiki是这样一种以“知识库文档”为中心,“共同创作”为手段,依靠“众人不断地更新修改”,借助互联网创建、积累、完善和分享知识的全新模式。后来Ward Cunningham 为Wiki 总结了开放、增长、有组织、通俗、全民、公开、统一、精确、宽容、透明和汇聚等设计原则,凡是基本符合这些设计原则的内容编辑系统都可称之为Wiki[1]。
需要强调说明的是,上述原则应用到一个内容编辑系统中去才可称为Wiki,如果不能在一个编辑系统中对内容进行开放式编辑修改,内容就不会增长,如果不公开透明和不能汇聚全民的参与,就无所谓宽容和统一。
Wiki 的原理在于开放编辑和自由协作,用户可以修改系统中所有开放的信息文本,Wiki 系统则记录下所有用户修订的版本历史。与Blog 强调个人的自主性相比,Wiki 更强调用户群体的集体协作,特别适合协同创作,如共同构建知识库、形成共同规范或标准化的文档说明等。比如在Wikipedia中,各个词条最终形成的中性客观定义就是在这样的机制中产生的。原本没有什么客观的知识,有的只是主观林立的意见分歧,在开放编辑的条件下,不同用户的反复修订相当于进行一场广泛参与的协商讨论,协商讨论得越充分,得到的结果越容易获得更多人的接受,越接近符合共同规范意义上的“客观的知识”。通过这种开放修改权限的方式,那些比较容易为他人所接受的观点能够保持较久的时间,从而获得更大的影响力和更广泛的传播范围,那些恶意的、低质量的修改则难以久留,最终沉淀下来的是得到大多数参与者广泛讨论和协商后的、观念之间博弈与平衡的结果[2]。
本文来自think58
[来源:http://www.think58.com]
总之,Wiki 设计思想可以提炼为:相信用户、相信群体的智慧,只有借助于群体智慧创造的作品才能更好的满足群体的需求、才能获得群体的满意和认可。这种思想,作为web 2.0最重要的设计模式之一[3],已经被很多网络应用所采纳。除文本编辑之外,Google Map电子地图的开放编辑功能便是这种模式的典型应用。
1.2.2 数据竞争力
可以说,现在每一个重要的互联网应用都有一个专门的数据库驱动,无论是Wikipedia的词条库、Google的网络爬虫资源、Napster的分布式歌曲库还是MapQuest的地图数据库。离开了强大的数据支持,网络应用都难以发展。不过,Wiki模式的变革也为我们提出了一个问题:谁应拥有数据?
在传统的互联网模式下,由网站或互联网应用提供数据,用户只是简单的查询使用这些数据。一般情况下,数据的所有权和管理权完全在网站服务的提供者手中,而对有价值数据的掌控往往是公司竞争优势的来源,这里把这种竞争力称为数据竞争力。
服务组件架构(Service Component Architecture)
服务组件体系结构(Service Component Architecture,SCA)是一组规范,描述了用于使用面向服务的体系结构来构建应用程序和系统的模型。SCA 扩展了以前用于实现服务的方法,并对其形成补充,而且,SCA 构建于 Web 服务系列标准等开放标准之上,并扩展和补充了先前的服务实现方法[6]。
think58
[资料来源:THINK58.com]
SCA 鼓励采用基于实现业务逻辑的 SOA 业务应用程序[7]代码组织方式,以便通过面向服务的接口公开其功能,以及通过面向服务的接口使用其他组件提供的功能(称为服务引用)。它将用于构建面向服务的应用程序的步骤分为两大部分:
(1) 组件的实现,提供服务和使用其他服务;
(2) 为了构建业务应用程序对组件集进行的组装,通过服务之间的引用完成。
SCA 强调将服务实现和服务组装分离开来,这种分离即体现在基础设施功能细节上,也体现在调用服务的访问方法细节上。服务组件在业务级别进行操作,只使用非常少的中间件 API 来工作。
服务组件可以使用众多编程语言中的任何一种语言编写的服务实现,这既包括常规的面向对象和过程的语言,例如 Java™、PHP、C++、COBOL,也包括 BPEL和 XSLT 等以 XML 为中心的语言,还包括 SQL 和 XQuery 等面向问题的语言。SCA 还支持各种编程样式,除了同步调用-返回样式外,还包括异步样式和面向消息的样式。
此外,该架构也支持各种用于调用服务的访问机制的绑定方式。这包括 Web 服务、消息传递系统和 CORBA IIOP。绑定是以声明方式处理的,独立于实现代码。基础设施功能(如安全、事务和可靠消息传递的使用)都是采用声明方式处理的,已从实现代码分离。SCA 通过策略使用基础设施功能,而策略旨在简化控制功能如何应用到业务系统的机制。 think58好,好think58 [来源:http://www.think58.com]
值得一提的是,SCA还促进了使用服务数据对象(SDO)来表示形成参数和服务返回值的业务数据,从而提供了对业务数据的统一访问方式,对 SCA 本身提供的业务服务统一访问方式形成了补充[8]。本文正是基于这个特点,将SDO作为业务数据的载体来实现数据服务的改进。
服务数据对象(Service Data Object)
SDO的设计是为了简化和统一应用程序处理数据的方式。利用SDO,应用程序编程人员可以一致地访问和操纵来自异构数据源的数据,包括关系数据库、XML数据源、Web服务和企业信息系统等[9]。
2.3.1 SDO模型框架
SDO 模型框架提供了一组核心组件,这些组件可以由支持 SDO 的实现和框架进行扩充。SDO 规范定义了数据持有者——数据对象 (Data Object) 和数据图 (Data Graph),还引用了一种叫做数据访问服务(Data Access Service,DAS)的组件。DAS 负责访问数据源和处理数据图。
数据对象是SDO框架的核心。数据对象是一个业务对象的一般表达,并且没有和特殊的持久化存储机制绑定。数据对象是保存数据的组件,简单地说,它是由属性的键/值对组成的,每个值都可以是原始的数据类型,或者是另一个数据对象。数据对象是可序列化的。
数据图是一个相关数据对象的集合。在SDO1.0里,一个数据图总是被一个DataGraph信封对象所包装,而在SDO2.0里,数据对象图可以存在于数据图(DataGraph)之外。Data graph作为两个单词分开使用时,指任何一个数据对象集合;DataGraph作为一个单一单词使用时,特指一个DataGraph信封对象。 think58好,好think58 [版权所有:http://think58.com]
所有数据图都有一个单一的根数据对象,它直接或间接的包含图里的所有其它数据对象。当的数据图里的所有数据对象仅仅引用自身的数据对象时,我们称该数据图是封闭的。封闭是一个数据图的标准状态。
一个数据对象图由以下组成:
(1) 一个单一的根数据对象。
(2) 通过对根数据对象属性的递归检索到的所有可达的数据对象。