论文部分内容阅读
近年来,面向服务的计算(Service Oriented Computing)和面向服务的体系结构(Service Oriented Architecture)得到了学术界和工业界的广泛关注。服务为实现开放的网络环境中各类资源的共享和集成提供了一条可行的途径。服务屏蔽了底层技术实现的细节,能够被其使用者直接地在线使用。因此,服务的使用者可根据其需求,复用网络上大量存在的软件服务,并以服务组装的方式来构造应用。服务组装得到了软件工程、业务流程管理、人工智能、数据库等领域的研究者的重视,并已取得了诸多成果和进展。
从使用者的实际需求出发,现有服务组装研究与实践尚存在不足,主要表现为:首先,当网络上出现大量功能相同或相似的服务时,使用者仍需花费较多的精力去逐一进行筛选;其次,服务之间潜在的组装关系能够对使用者提供辅助,而现有方法考虑较少;最后,组装工具应尽可能地提供较好的用户体验,以支持使用者快速地组装服务。
为了解决上述问题,本文提出了一种基于社区的服务组装方法,通过构造服务社区来组织服务资源和组装模板,辅助使用者进行服务发现和组装,并实现了一个基于Web浏览器的服务组装系统原型。
本文的主要工作和贡献包括:
1)本文提出了基于社区的服务组装原理框架,引入服务社区为使用者提供一组基础设施服务。在服务社区中,服务池聚合了一组具有相同或相似功能的服务,并提供统一的访问和调用接口,从而使得用户不必面对一个不断增长和变化的服务视图。任务模板模型描述了服务间数据依赖和控制逻辑,可以在组装服务时为使用者提供参考。进而,用户可以在服务社区的辅助下进行服务组装活动。根据不同的应用需求,支持两种服务组装模式:流程驱动的服务组装和用户驱动的推荐式组装。前者基于对任务模板的完全复用,组装过程体现为一个固定业务逻辑的流程服务;后者则基于对任务模板的部分复用,服务社区根据当前服务输出结果和执行语境对用户进行即时推荐,组装过程体现为使用者自主地开发应用。
2)在服务社区构造方面,本文提出了一种结合领域分析和数据挖掘的服务社区构建方法。一方面,通过特征建模技术确定服务社区的领域边界,以特征模型来描述服务社区。另一方面,对Web服务的元数据(包括操作、输入/输出消息)中隐含的概念进行聚类,提出了在语义层面的服务相似度计算方法。在此基础上,可以甄别出一组具有相同或相似功能的服务和挖掘出服务之间潜在的组装关系。通过实验验证了该挖掘方法的效果。
3)在组装模型和技术方面,本文提出一种基于层次图(Layered—Graph)的服务组装方法,支持流程驱动和用户驱动两种组装模式。第一层图以服务池为节点,第二层图以具体的Web服务为节点。基于此层次图模型,一方面,流程驱动的服务组装就转化为在层次图中的最短生成路径问题。另一方面,用户驱动的服务组装转化为两阶段的图搜索问题,第一阶段对服务池层的可达节点进行搜索,第二阶段根据用户偏好进行质量协商的Web服务选择。通过一组实验,验证了该组装方法的有效性和可扩展性。
4)在系统实现方面,本文实现了一个服务组装原型系统。通过基于Web浏览器的可视化组装环境,使用者能够完成服务组装的设计、部署和运行,并能够实时地对服务进行订阅。该工具具有较好的交互性,提高了组装系统的用户体验。