基于移动Agent技术构建M2M应用支撑系统

发布时间:2023-04-20 作者:曲志峰(中兴软创)

 M2M业务是指以电信运营商的有线和无线网络为平台,采用多种传输方式如GPRS、CDMA、ADSL等,通过特种行业终端,服务于行业用户机器到机器(Machine To Machine)的数据采集、传输等业务。M2M业务使通信网络的应用范围极为广泛,能够极大地降低人力成本,目前在国内外都正呈加速发展的趋势。本文主要探讨通过利用移动Agent的重要特征构建M2M的应用支撑系统,使得M2M的系统具备分布式的计算能力和分布式数据存储和检索能力。

    Agent是指驻留在某一环境下,能持续自主地发挥作用,具备驻留性、反应性、社会性、主动性等特征的计算实体。移动Agent是一种特殊的Agent,其主要特点有:可以在异构网络和分布式计算机环境中自主、自动地迁移,携带信息或寻找适当的信息资源,进行就地的信息处理,代理用户完成信息传递、查询、数据发现、信息变换等多种任务。移动Agent可以支持异构计算机软件、硬件环境,能进行异步通信和计算。将Agent移动到信息存储的地方,进行局部搜索和选择后,将选中的信息通过网络传送给用户,会大大减少远程计算机网络的连接费用。移动Agent提供了一个独特的分布计算体系结构,为完成某项任务,用户可以创建多个Agent,将他们同时在相同或不同的节点上运行,从而将单一节点的负荷分散到网络的多个节点上,使小系统具有处理大规模、复杂问题的能力。移动Agent具有根据目标、网络通信能力和服务器负载等因素,动态地规划下一步操作的能力。智能化路由能很好地优化网络和计算资源,实现负载均衡,提高问题的求解速度,避免对资源的盲目访问。

    M2M的应用支撑系统中需要重点考虑几个问题:一,支持多种终端的接入和大量终端的接入问题,需要在设计中考虑多网关的情况;二,支持多种应用的接入,需要考虑多应用网关的情况;三,终端的异构性要求支撑系统不仅能够满足目前已知的终端类型,同时能适应未来不同类型终端的接入问题;四,终端与终端、终端与应用、终端与平台、应用与平台之间的信息传递能够实现智能路由、信息缓存及检索。

M2M应用支撑系统框架

    M2M的应用支撑系统在网络中主要起控制和管理的作用,它可以帮助目前的垂直管理的M2M的不同应用升级成扁平化管理的网络。利用移动Agent的分布式特性实现终端接入框架、应用接入框架、数据交换服务、数据存储服以及管理服务功能,使得平台具备开放性和统一性,同时具备易于扩展的、分布式平台框架和强大的服务支持能力。M2M应用支撑系统框架如图1所示。


 图1 M2M应用支撑系统框架

Agent的命名服务

    基于M2M应用支撑系统的需求,结合移动Agent的特征,应用支撑系统分别定义了应用网关Agent、M2M终端Agent和终端网关Agent。通过目录服务功能,完成对所有Agent的逻辑名称与Agent的绑定关系。命名服务的两个优点是位置的透明性和位置的独立性。位置的透明性表示我们无需知道Agent运行在哪个物理节点上。位置的独立性表示我们无需知道Agent数据的实际位置变化。

M2M终端的异构性

    M2M终端的异构性和M2M平台的统一性是M2M平台需要解决的主要问题之一,不同的M2M终端如RFID阅读器、智能电表、温湿度传感器,具有不同的特性。而对于平台来说,其主要功能是完成终端与应用之间的数据传输协议以及管理控制功能。如何满足共性和个性的统一是M2M应用支撑系统的一个关键点。通过移动Agent可以很好地解决这个问题。通过逻辑映射方法,对于终端Agent进一步映射为不同种类的Agent。当终端与应用、终端与终端、终端与网关进行通信时,M2M平台内部通过Agent的通信机制(共性部分)完成,使得平台具备了统一性。当应用和终端完成认证、鉴权、属性配置管理等操作时,每种类型的Agent能够根据各自的特性完成各自的行为和动作。

Agent的消息路由

    通过Agent的分布式通信接口完成三种Agent之间的信息互通,使得应用与终端、终端与终端、应用与应用能够通过Agent完成信息交互。

    ● 终端与应用之间的消息路由
    移动Agent可以为终端与应用提供透明的通信服务,通过移动Agent可实现消息的发布与订阅机制,终端和应用可以同时具备消息的提供者和消费者的角色,降低终端和应用的耦合性,如图2所示。


 图2 终端与应用的通信接口

    ● 终端与终端之间的消息路由
    M2M中终端与终端的消息路由借助于移动Agent可以方便地实现。每个移动Agent都有一个全局唯一的地址标识。通过移动Agent,终端无论在哪个网关接入,都可以通过Agent做到路由寻址,如图3所示。


 

图3 终端与终端的通信接口

Agent信息的分布式存储与检索

    在M2M应用支撑系统中,终端Agent、网关Agent和应用Agent都需要进行数据的存储和检索功能。传统的基于数据库的数据存储和检索方式很难满足基于M2M支撑平台的系统扩展需求。Agent所在的节点赋予Agent计算资源,任何一个节点都可以通过目录服务调用Agent的接口完成Agent的动作和行为。同时因为Agent的移动性,要求数据资源的物理位置对于Agent是透明的。如何实现计算资源和数据资源的分离是平台扩展性的重要指标。为了保证系统的实时性和可靠性,Agent的数据存储和检索需要通过访问嵌入式数据库或内存数据库资源来完成。通过利用分布式文件系统和分布式锁保证数据的一致性。同时,利用目录服务功能完成Agent与数据资源之间的解耦,可以实现计算资源与数据资源的分离。


    随着M2M终端技术的发展,终端也呈现出明显的多样化、智能化、多模化的趋势。智能电表、智能医疗、智能交通、智能城市等应用场景要求更加健壮的M2M应用支撑体系和架构。如何将复杂的数据处理、接入处理、数据转发传输、路由维护等工作交由M2M平台来完成,尽可能地降低M2M的应用研发的难度,需要有多种技术的融合,如分布式文件系统、网格计算、内存数据库等技术。这些技术也是构建M2M应用支撑系统必不可少的一部分。

    本文主要通过分析移动Agent的异构性、自主性、唯一性和分布式特性,阐述了移动Agent在M2M应用支撑系统中的应用模式,未来物联网的发展和应用方式都在不断的变化,对M2M系统支撑平台的要求也越来越高,通过移动Agent来满足应用和终端的多样化需求,可以使得M2M支撑平台具备更广泛的服务和支撑能力。