欢迎来到天天文库
浏览记录
ID:23694559
大小:55.00 KB
页数:7页
时间:2018-11-09
《基于异构服务组装的调度方法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、基于异构服务组装的调度方法摘要:异构服务组装是指在分布式环境下,将基于不同架构标准的服务,根据统一的基于XML的服务组装描述文档进行自动组装,形成功能更强、更大的服务或应用的软件复用方法。本文研究并设计了一个面向异构服务组装的基于工作流引擎的异构服务调度引擎,并对其中的关键技术和模块做出了详细的说明。关键词:异构服务服务组装调度引擎一、引言随着基于网络计算平台的分布式计算技术的迅猛发展。以支持应用互操作的应用需求为核心,以面向对象技术为主要特征的分布式构件技术和异构的服务技术得到了蓬勃发展,在开发大型分布式应用系统中表现出了强大的生命力,逐渐形成了三种具有代表性的主
2、流技术,即OMG组织的CORBA、Microsoft公司的/D,Sun公司的JavaBean/EJB[3]。针对服务的分布与异构特性,基于各种应用需求,本文提出了异构服务组装的概念。异构服务是指eterConfigurationofServicesList)中,这两个表分别存储在流程调度库和服务实例库中。2.流程调度多任务表模式流程调度任务表用来管理每个服务实例的调度信息,采用工作流多任务表模式,将流程定义文档中的服务组装流程信息与服务实例调用信息分别管理,此任务表是由解析器解析生成的。通过解析器将每个任务表项分解。(1)流程调度控制表流程调度控制表存储服务组装流程
3、信息,保存流程中每个服务实例待处理记录及服务实例处理的历史记录,所有的流程调度控制表都被存储在流程调度库中。流程调度控制表的结构为:PSaCL(ProcessID,ServicEiD,ServicEInstanceID,ServiceInstanceSatus,Pre_condition[],Post_condition[],Candidate)ProcessID:服务流程ID,服务实例所在流程的ID;ServiceID:服务ID,用于区别不同的服务;ServiceInstanceID:服务实例ID,同一个服务可以有多个运行实例,该字段用于标识同一服务的不同实例;S
4、erviceInstanceSatus:服务实例状态,标志服务实例的当前状态。其状态包含:激活(active)、运行(running)、等待(inated)、结束(finished)、失效(invalid);Pre_condition[]:前驱条件,这是一个数组,用来记录服务实例运行所需的所有前驱条件信息,包括前驱节点是否正常运行完毕,用户认证信息,安全认证等;Post_condition[]:后继条件,也是一个数组,记录服务实例正常运行结束后应触发的条件信息,包括后继服务的触发,权限的传递等;Candidate:候选标识位,当服务选取有多个满足条件时,用于表示该服
5、务是否为候选服务,按照服务质量降序排列,首选服务标志位为0。(2)服务参数配置表服务参数配置表存储服务实例调用信息,保存服务实例调用所需要的所有参数、操作信息以及认证信息,所有的服务参数配置表均被存储在服务实例库中。服务参数配置表的结构为:PCoFL(ServicEinstancEID,ServiceType,ServiceConfiguration{},SecurityCertification,IdentityCertification,QoS,ExpireTime)ServiceInstanceID:服务实例ID,与流程调度控制表中服务实例ID相同,用于映射流
6、程调度控制表项与服务参数配置表项的对应关系;ServiceType:服务类型,区别不同架构服务标志位,服务架构包括:e:响应超时阈值,单次服务实例请求响应最大时间。3.会话管理器会话管理器是用于处理服务间的通信问题的。会话管理器分为两个部分,一个是加载器,解决服务调用时参数名称、参数类型等格式不匹配问题,将服务参数配置表中的参数信息转化成编译器能够识别的格式,发送给实例调用驱动器。另一个是消息返回处理器,是会话管理器一个重要的组成部分。采用异步通信机制,能够保证服务相互通信时,时间上可以不相关,即前驱服务应用发送消息时不必关心其后继服务应用的是否在线。根据流程调度多
7、任务表模式,采用发布/订阅(Publish/Subscribe)模型,即当引擎判断可以向某个服务提出请求后,异构服务调用代理向远程服务器发送请求,请求调用相应服务,但无需等待服务器处理请求,只需保证请求到达服务器端后,就可以处理其他任务了。而服务器端返回消息将被保存在一个消息队列中,队列根据服务属性的Post_condition[]项,将消息传给所有后继服务。4.流程驱动机制根据多任务表模式,采用任务推动式流程驱动机制,对流程调度库中的流程调度表项循环遍历,判断是否有就绪服务实例满足调用条件。流程的驱动不严格依赖流程的顺序,每个服务只要满足调用条件即可运行,而不
此文档下载收益归作者所有