论文部分内容阅读
在物联网环境下,物理设备产生的事件需要及时的推送到响应式服务中进行处理,事件的处理可能涉及多个不同的服务协作完成,这时需要保证服务之间的协作及时有序的进行。并且,物理设备在地域上的分布是较为分散的,其中部分对实时性要求较高的服务需要贴近部署在物理设备附近,分散部署的服务很难进行有效的管理。本文通过对比目前的分布式服务系统,创新的提出把事件驱动的特性融入到服务构建的过程中,解决服务之间高效、有序的协作问题。通过构建分布式服务运行时环境,针对分散部署的服务进行有效的管理以及监控。服务的生成分为原子服务和组合服务两个层面。在原子服务生成层面使用了 Actor模型,构建服务内部的事件响应逻辑。这里改进了服务描述方式,使其可以描述具有事件驱动特性的服务。在服务组合层面,把服务组合融入到了流程建模的过程中,这里使用了 EPC模型作为具有事件驱动特性的建模标准,保证了服务的有序协作。首先,构建出EPC模型的流程编辑器。然后,在编辑器中构建流程模型的语法检查功能。最后,在建模过程中进行具体的服务信息绑定,以此来提供分布式服务运行时代理对服务协调管理的依据。为了对分散部署的服务进行高效的管理,首先,对已经构建好的流程模型进行分割操作,把其中的函数与事件关系提取出来。其次,根据服务域的不同把分割出来的函数划分到不同的代理中进行管理。代理向发布订阅系统订阅自己服务域内的事件主题,具体的事件消息由代理发送给服务。通过之前的分割操作,获取到的事件函数对应关系来协调服务域内的服务调用。最后,对流程的运行进行管理与监控。管理中心的服务既可以接受代理发来的状态信息,也可以发送控制流信息到代理中去,通过这样的设计可以对分布式的服务进行高效的监控与管理。本文详细阐述了基于事件驱动的分布式服务系统的功能需求、设计原理和系统实现,并通过系统测试验证了系统的可用性。