在线应用平台上应用间通信的回调应答方法、应用及在线应用平台的制作方法

文档序号:7894785阅读:166来源:国知局
专利名称:在线应用平台上应用间通信的回调应答方法、应用及在线应用平台的制作方法
技术领域
本发明涉及在线应用平台上应用的通信技术,尤其涉及在线应用平台上应用间通信的回调应答方法、在线应用平台上的应用及在线应用平台。
背景技术
传统的回调机制主要有以下实现方法第一种对于一般的结构化语言,可以通过回调函数来实现回调。回调函数由调用 方自己实现,供被调用方使用。第二种在面向对象的语言中,回调机制则是通过接口或抽象类来实现的,我们把实现这种接口的类称为回调类,回调类的对象称为回调对象。第三种对于分布式组件代理体系C0RBA,异步处理有多种方式,如回调、事件服务、通知服务等。事件服务和通知服务是CORBA用来处理异步消息的标准服务,他们主要负责消息的处理、派发、维护等工作。对一些简单的异步处理过程,我们可以通过回调机制来实现。传统回调机制的实现方法中,前两种方法都只是本地进程内部的回调,所有操作均依赖于本地进程通信,无法应用于在线应用平台。第三种方式CORBA依赖于相互之间使用SOCKET技术通信,这在WEB环境中无法提供,另外CORBA非常笨重,无法应用于简洁的在线环境。仅适用于有限应用服务器间通信和协作,而且也只能用于内部环境,不具备公开性。对于复杂的网络环境,由于异步处理过程将处理结果返回时会导致调用前的上下文受到干扰和破坏,因此调用方必须对返回的处理结果进行分析,因此无法保证通信的完整性和高效性。

发明内容
本发明提供一种在线应用平台上应用间通信的回调应答方法、在线应用平台上的应用及在线应用平台,能够实现在线应用平台上应用间的应答通信,且使用于复杂的网络环境。本发明提供的在线应用平台上应用间通信的回调应答方法,包括步骤当在线应用平台的客户端启动应用时,按照预定的通信协议创建应用进程;并记录所述应用可处理的消息类型;所述应用进程为所述应用在所述客户端运行时的存在形态,包括应用进程I D、应用名称、上下文空间、消息队列、可执行程序路径;所述消息队列为在线应用平台与所述应用进程进行通信的载体;当请求方应用调用应答方应用的服务时,请求方应用将回调函数按照预定规则转 换为字符串,并构造服务调用消息,所述服务调用消息包括根据预定通信协议定义的应用名称、消息类型、消息体;所述消息类型用于承载所述应答方应用的服务的处理逻辑,所述消息体用于承载回调函数ID,所述回调函数ID为回调函数所转换的字符串,所述回调函数用于承载所述请求方应用所对应的上下文环境;所述请求方应用将所述服务调用消息发送至所述应答方应用所对应的应用进程的消息队列中;所述应答方应用的应用进程监控消息队列中的服务调用消息,根据所述预定规则识别出所述回调函数ID;根据所述消息类型执行所述服务,生成所述服务的执行结果;利用所述服务的执行结果及所述回调函数ID构造应答消息,并发送至所述请求方应用所对应的应用进程的消息队列中;所述请求方应用的应用进程监控消息队列中的应答消息,根据所述预定规则识别出所述回调函数ID,调用所述回调函数ID对应的回调函数处理所述服务的执行结果。本发明提供的在线应用平台上的应用,包括转换装置,用于将回调函数按照预定规则转换为字符串;构造消息装置,用于当所述应用作为请求方调用其他应用的服务时,构造服务调用消息,所述服务调用消息包括根据预定通信协议定义的应用名称、消息类型、消息体;所述消息类型用于承载所述应答方应用的服务的处理逻辑,所述消息体用于承载回调函数ID,所述回调函数ID为回调函数所转换的字符串,所述回调函数用于承载所述请求方应用对应的上下文环境;当所述应用作为应答方时,利用所述服务的执行结果及所述回调函数ID构造应答消息;识别装置,用于根据预定规则从收到的服务调用消息或应答消息中识别出所述回调函数ID ;服务逻辑处理装置,用于当作为应答方时,根据所述消息类型执行所述服务,生成所述服务的执行结果;当作为请求方时,调用所述回调函数ID对应的回调函数处理所述服务的执行结果。本发明提供的在线应用平台,包括应用和应用进程管理器,所述应用进程管理器位于在线应用平台的客户端,包括进程创建接口,用于根据应用名称按照预定的通信协议创建应用进程,所述应用进程为所述应用在所述客户端运行时的存在形态,包括应用进程ID、应用名称、上下文空间、消息队列、可执行程序路径;所述消息队列为在线应用平台与所述应用进程进行通信的载体,所述应用进程监控所述消息队列中的消息,并进行处理;发送进程消息接口,用于接收和发送消息,所述消息包括应用名称、消息类型、消息体;将所述消息投递至应答方应用所对应的应用进程的消息队列中,所述接收和发送的消息包括服务调用消息和应答消息;进程销毁接口,用于当所述请求方或应答方应用退出时销毁所述请求方或应答方应用的应用进程;所述应用包括转换装置,用于将回调函数根据预定规则转换为字符串;构造消息装置,用于当所述应用作为请求方调用其他应用的服务时,构造服务调用消息;所述消息类型用于承载所述应答方应用的服务的处理逻辑,所述消息体用于承载 回调函数ID,所述回调函数ID为回调函数所转换的字符串,所述回调函数用于承载所述请求方应用所对应的上下文环境;当所述应用作为应答方时,利用所述服务的执行结果及所述回调函数ID构造应答消息;识别装置,用于根据预定规则从收到的服务调用消息或应答消息中识别出所述回调函数ID ;服务逻辑处理装置,用于当作为应答方时,根据所述消息类型执行所述服务,生成所述服务的执行结果;当作为请求方时,调用所述回调函数ID对应的回调函数处理所述服务的执行结果。本发明基于在线应用进程及应用进程间通信,使用本方案,调用方可以使用回调函数接收被调用方送回的结果,实现应答式通信的效果,而回调函数可以表示上下文环境,从而可以保证在结果回来之时,调用前的上下文不受干扰和破坏,从而保证了通信的完整性和高效性;屏蔽了通信细节,避免了由于重构上下文需求而传递过量的信息到被调用方而导致的信息泄露,令到调用更加安全可靠;服务提供方接口更加简单清晰,甚至不用区分请求者是来自远程或者本地上下文。


图I为在线应用平台上应用间通信的回调应答方法的流程图;图2为在线应用平台原理框图。
具体实施例方式本申请人在申请号为201210094195. 1,发明名称为《在线应用平台的进程通信方法、客户端、应用进程管理器》的专利申请中公开了一种基于应用进程实现在线应用平台上应用间通信的技术。本发明在该专利申请的基础上进一步的改进,针对一些需等待返回结果的应用场景,以及需要同时调用多方应用时处理议程造成的繁琐效率低下的问题,吸收传统回调机制的特点和优势,提出了一种应用间通过回调机制高效通信的方法。如图I所示,本发明提供的在线应用平台上应用间通信的回调应答方法,首先需要根据申请号为201210094195. I的专利申请提供的途径建立虚拟进程,以便通过应用进程实现应用之间的通信当在线应用平台的客户端启动应用时,按照预定的通信协议创建应用进程;并记录所述应用可处理的消息类型(S100);所述应用进程为所述应用在所述客户端运行时的存在形态,包括应用进程ID、应用名称、上下文空间、消息队列、可执行程序路径;所述消息队列为在线应用平台与所述应用进程进行通信的载体;请求方应用通过回调函数承载请求方所对应的上下文环境,当请求方应用调用应答方应用的服务时,将回调函数转换字符串(SlOl),本发明要求回调函数按照预先定义的格式(即预定规则)转换为字符串,以便后续能够根据字符串的格式识别出是否为回调函数;然后构造服务调用消息(S102),服务调用消息包括预定通信协议定义的应用名称、消息类型、消息体;消息类型承载了应答方应用的服务的处理逻辑(即需要应答方应用执行的事件),本发明在构造服务调用消息时将回调函数转换的字符串加入消息体中,代替回调函数发送给应答方应用(S103);请求方应用将服务调用消息发送至应答方应用所对应的应用进程的消息队列中(S104);
应答方应用的应用进程监控消息队列中的服务调用消息,根据预定规则识别出所述回调函数ID(S105);根据消息类型执行所述服务,生成所述服务的执行结果(S106);利用服务的执行结果及回调函数ID构造应答消息,应答消息包括预定通信协议定义的应用名称、消息类型、消息体;消息类型为唯一特定的回调函数结果返回标识,本发明在构造应答消息时将利用服务的执行结果及回调函数ID转换的字符串加入消息体中,并发送至请求方应用所对应的应用进程的消息队列中(S107);请求方应用的应用进程监控消息队列中的应答消息,根据预定规则识别出所述回调函数ID(SlOS),调用所述回调函数ID对应的回调函数处理所述服务的执行结果(S109)。
与上述在线应用平台上应用间通信的回调应答方法相对应,本发明还提供了相应的在线应用平台,如图2所示,包括在线应用平台上的各种应用和应用进程管理器,在线应用平台上的应用包括转换装置、构造消息装置和识别装置,应用进程管理器位于在线应用平台的客户端,包括进程创建接口、发送进程消息接口和进程销毁接口。工作原理如下所述进程创建接口根据应用名称按照预定的通信协议创建应用进程,所述应用进程为所述应用在所述客户端运行时的存在形态,包括应用进程ID、应用名称、上下文空间、消息队列、可执行程序路径;消息队列为在线应用平台与所述应用进程进行通信的载体,应用进程监控所述消息队列中的消息,并进行处理;当请求方应用需要调用应答方应用的服务时,请求方应用的转换装置将回调函数按照预定规则转换成字符串,构造消息装置构造服务调用消息,将字符串作为回调函数ID发送给发送进程消息接口,发送进程消息接口将服务调用消息投递至应答方应用所对应的应用进程的消息队列中;应答方应用监控消息队列中的消息,通过识别装置根据预定规则从收到的服务调用消息识别出所述回调函数ID ;服务逻辑处理装置根据消息类型执行相应服务,生成所述服务的执行结果;构造消息装置利用服务的执行结果及回调函数ID构造应答消息;通过发送进程消息接口发送至请求方应用的消息队列;请求方应用监控到应答消息后,通过服务逻辑处理装置调用所述回调函数ID对应的回调函数处理所述服务的执行结果。当所述请求方或应答方应用退出时进程销毁接口销毁请求方或应答方应用的应用进程。上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他任何未背离本发明的精神实质和原理下所作的修改、修饰、替代、组合、简化,均应为等效的置换方式,都应包含在本发明的保护范围之内。
权利要求
1.一种在线应用平台上应用间通信的回调应答方法,其特征在于,包括步骤 当在线应用平台的客户端启动应用时,按照预定的通信协议创建应用进程;并记录所述应用可处理的消息类型;所述应用进程为所述应用在所述客户端运行时的存在形态,包括应用进程ID、应用名称、上下文空间、消息队列、可执行程序路径;所述消息队列为在线应用平台与所述应用进程进行通信的载体; 当请求方应用调用应答方应用的服务时,请求方应用将回调函数按照预定规则转换为字符串,并构造服务调用消息,所述服务调用消息包括根据预定通信协议定义的应用名称、消息类型、消息体;所述消息类型用于承载所述应答方应用的服务的处理逻辑,所述消息体用于承载回调函数ID,所述回调函数ID为回调函数所转换的字符串,所述回调函数用于承载所述请求方应用所对应的上下文环境; 所述请求方应用将所述服务调用消息发送至所述应答方应用所对应的应用进程的消息队列中; 所述应答方应用的应用进程监控消息队列中的服务调用消息,根据所述预定规则识别出所述回调函数ID ; 根据所述消息类型执行所述服务,生成所述服务的执行结果; 利用所述服务的执行结果及所述回调函数ID构造应答消息,并发送至所述请求方应用所对应的应用进程的消息队列中; 所述请求方应用的应用进程监控消息队列中的应答消息,根据所述预定规则识别出所述回调函数ID,调用所述回调函数ID对应的回调函数处理所述服务的执行结果。
2.一种在线应用平台上的应用,其特征在于,包括 转换装置,用于将回调函数按照预定规则转换为字符串; 构造消息装置,用于当所述应用作为请求方调用其他应用的服务时,构造服务调用消息,所述服务调用消息包括根据预定通信协议定义的应用名称、消息类型、消息体;所述消息类型用于承载所述应答方应用的服务的处理逻辑,所述消息体用于承载回调函数ID,所述回调函数ID为回调函数所转换的字符串,所述回调函数用于承载所述请求方应用对应的上下文环境;当所述应用作为应答方时,利用所述服务的执行结果及所述回调函数ID构造应答消息; 识别装置,用于根据预定规则从收到的服务调用消息或应答消息中识别出所述回调函数ID ; 服务逻辑处理装置,用于当作为应答方时,根据所述消息类型执行所述服务,生成所述服务的执行结果;当作为请求方时,调用所述回调函数ID对应的回调函数处理所述服务的执行结果。
3.—种在线应用平台,其特征在于,包括应用和应用进程管理器,所述应用进程管理器位于在线应用平台的客户端,包括 进程创建接口,用于根据应用名称按照预定的通信协议创建应用进程,所述应用进程为所述应用在所述客户端运行时的存在形态,包括应用进程ID、应用名称、上下文空间、消息队列、可执行程序路径;所述消息队列为在线应用平台与所述应用进程进行通信的载体,所述应用进程监控所述消息队列中的消息,并进行处理; 发送进程消息接口,用于接收和发送消息,所述消息包括应用名称、消息类型、消息体;将所述消息投递至应答方应用所对应的应用进程的消息队列中,所述接收和发送的消息包括服务调用消息和应答消息; 进程销毁接口,用于当所述请求方或应答方应用退出时销毁所述请求方或应答方应用的应用进程; 所述应用包括 转换装置,用于将回调函数根据预定规则转换为字符串; 构造消息装置,用于当所述应用作为请求方调用其他应用的服务时,构造服务调用消息;所述消息类型用于承载所述应答方应用的服务的处理逻辑,所述消息体用于承载回调函数ID,所述回调函数ID为回调函数所转换的字符串,所述回调函数用于承载所述请求方应用所对应的上下文环境;当所述应用作为应答方时,利用所述服务的执行结果及所述回调函数ID构造应答消息; 识别装置,用于根据预定规则从收到的服务调用消息 或应答消息中识别出所述回调函数ID ; 服务逻辑处理装置,用于当作为应答方时,根据所述消息类型执行所述服务,生成所述服务的执行结果;当作为请求方时,调用所述回调函数ID对应的回调函数处理所述服务的执行结果。
全文摘要
本发明的在线应用平台上应用间通信的回调应答方法、在线应用平台上的应用和在线应用平台,当在线应用平台的客户端启动应用时,按照预定的通信协议创建应用进程;并记录应用可处理的消息类型;请求方应用将回调函数按照预定规则转换为字符串,并构造服务调用消息,将服务调用消息发送至应答方应用;应答方应用识别出回调函数ID;执行服务生成服务的执行结果;利用服务的执行结果及回调函数ID构造应答消息,发送至请求方应用,请求方应用的应用进程监控消息队列中的应答消息,识别出所述回调函数ID,调用回调函数ID对应的回调函数处理服务的执行结果。本发明能够实现在线应用平台上应用间的应答通信,且使用于复杂的网络环境。
文档编号H04L29/06GK102662778SQ20121013298
公开日2012年9月12日 申请日期2012年4月28日 优先权日2012年4月28日
发明者徐军, 薛珂 申请人:杭州格畅科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1