主权项 |
一种支持QoS的服务注册方法,其特征在于在服务注册系统中实现,其具体服务注册过程为:(1)、在信用记录值调整子模块中设定触发服务关系发生改变的6种信用事件以及与服务组件信用记录的对应关系,这个数字允许在实际应用中根据服务系统对QoS的具体需求进行扩充和调整,信用事件激活机制设计成计算机体系结构的中断向量表用以处理服务意外失效所产生的异常,服务注册系统根据信用事件类型对服务系统正常执行时间带来额外的时间开销大小,为服务组件分配不同的信用记录值;其中的六种信用事件为:信用事件1:w<sub>6</sub>=1:(State(s)=Serv→State(s)=Finish)∩(State(s)=Serv→State(s)=Ready)一个被调用的服务组件能够保证运行于其上的任务完成并重新置为就绪态;信用事件2:w<sub>5</sub>=1:(State(d)=Serv→State(d)=Finish)∩(State(s)=Serv→State(s)=Unready)一个服务组件能够允许运行于其上的任务完成后申请离线操作;信用事件3:w<sub>4</sub>=0:t=0∩(State(d)=Serv→State(d)=Sub)∩(State(s)=Serv→State(s)=Unready)一个被调用且预留时间为0的服务组件,向信用服务管理系统申请下线,并有时间保存任务现场;信用事件4:w<sub>3</sub>=‑0.5:t≠0∩(State(d)=Serv→State(d)=Sub)∩(State(s)=Serv→State(s)=Unready)一个被调用且预留时间不为0的服务组件,向信用服务管理系统申请下线,并有时间保存任务现场;信用事件5:w<sub>2</sub>=‑0.8:t=0∩State(d)=Serv∩(State(s)=Serv→State(s)=Unready)一个被调用服务组件突然失效,系统没有时间保存任务现场;信用事件6:w<sub>1</sub>=‑1:t≠0∩State(d)=Serv∩(State(s)=Serv→State(s)=Unready)当一个被调用且任务正在运行其上的服务组件突然失效,系统没有时间保存任务现场;其中w<sub>i</sub>(i=1,2,…,6)表示服务组件的权值;(2)、信用记录值调整子模块持续监听服务注册系统调用的服务组件执行情况,捕获所有引起服务关系终止的信用事件;监听到有信用事件发生时,调用并执行该信用事件的代码;再根据信用事件的类型为该服务组件重新计算服务提供者相应的权值w<sub>i</sub>(i=1,2,…,6),实现对该服务组件的信用记录值进行调整;并更新信用记录数据库中该服务提供者的信用记录;信用记录值调整子模块运行一定时间后就会累计服务提供者的信用记录值,信用记录值越大的服务组件,其可用性越高,信用记录值越小的服务组件其可用性越低,使信用记录值驱动的服务调度系统能提供可用服务的服务组件运行;(3)、服务注册子模块接收用户发出的服务注册请求,从服务提供者识别符信息中获取其信用记录值,将服务组件按信用记录值降序排列插入相对应的服务池并设定该服务组件的状态为就绪状态后设定计时器并开始倒计时;(4)、任务提交与服务调度子模块监听任务提交接口,任务提交与服务调度子模块接收用户提交的任务请求,按任务请求的到达时间、截止时间或任务规模进行排序,并解析每一个任务请求的功能性描述将其插入相应服务池调度器的任务队列;然后获取每一个任务请求的服务性能描述信息,按服务组件信用记录值由大到小的降序排列服务依次进行用户请求的任务与服务组件的匹配;服务性能描述和任务请求性能描述都可用时生成一个服务调用,并通知服务关系的双方开始任务部署;(5)、服务预留与服务备份子模块监听系统预留行为和服务调度行为,检测服务提供者是否需要延长服务时间;服务提供者要延长服务时间时,重设计时器;引发服务备份;服务提供者无响应或不延长服务时间时不重设计时器;遍历服务关系数据库中的每一条服务关系的添加,服务的信用记录值小于任务的需求时,则执行服务备份操作;然后遍历每一个服务备份请求,查询相对应的服务队列,调度满足要求的备份服务执行;任务完成后,释放备份的服务以便允许其接受再次调度。 |