● 摘要
普通的Web服务通常是无状态的,在服务的不同调用间不能保存服务的状态,WSRF (Web服务资源框架) 的提出将Web服务与一组有状态的资源结合起来,通过资源的属性保存Web服务的状态,实现了“有状态”的Web服务。资源的状态是不断变化的,如果通过轮询的方式实时查看资源的状态,势必会增加服务端的负载和网络传输开销。WS-Notification提出的事件驱动的Web服务间异步通信模式,正满足了分布式计算环境下和有状态Web服务中的通信需求。本论文的研究目标是在北京航空航天大学ACT实验室自主研发的轻量级Web服务引擎的基础上构建一个符合WS-Notification规范的发布/订阅系统,解决有状态的Web服务中资源的共享和协同问题。本论文从分析传统发布/订阅系统的特点入手,分析了Web服务发布/订阅的相关规范和已有的系统实现,在此基础上设计和实现了一个符合WS-Notification协议的可扩展的Web服务发布/订阅系统。系统中基于回调机制将有状态的资源与特定的主题联系起来,实现了主题的封装,完成了有状态的Web服务对发布/订阅系统的支持。针对主题管理问题,建立了树状结构的主题容器,对不同主题表达式设计了统一的表达式解析引擎,提供统一的主题容器访问接口;针对主题发布、主题订阅和通知发布等关键问题,设计并实现了一种基于Metaset的操作算法,简化了引擎内部对发布/订阅系统的处理机制,使其可以通过标准的SOAP消息交换格式完成系统间的交互,屏蔽了不同平台间的差异性。同时,本文设计并实现了主题容器的序列化算法,基于Ajax技术实现了具有表达式生成功能的监控客户端,实现对主题信息的监控管理。最后,本文在此系统上开发了一个应用实例,对系统的功能进行了验证,并且对Web服务发布/订阅系统的实际运作能力进行了测试和分析。