在线应用平台的应用间通信方法、客户端及应用进程管理器的制作方法

文档序号:7892906阅读:145来源:国知局
专利名称:在线应用平台的应用间通信方法、客户端及应用进程管理器的制作方法
技术领域
本发明涉及在线应用平台领域,特别是涉及在线应用平台的应用通信方法和在线应用平台的客户端及应用进程管理器。
背景技术
传统的IPC (Inter-Process Communication,进程间通信)方法有管道、消息队列、信号量、共享内存等,这些进程间通信的技术通常针对的对象为单个的计算机资源内部 的应用进程之间通信。而在线应用平台的应用服务分布于地理位置独立的计算机中心或者机房,因此传统操作系统的IPC通信技术仅适用于单个操作系统内部的进程通信,而不适用于在线应用平台的各种应用之间的通信。目前针对在线应用平台的应用通信技术通常有以下几种方法方案I :通过互相信赖的应用服务器之间的HTTP或Socket协议进行远程调用和数据交换;方案2 :由用户參与的第三方验证技术和开放平台,如OAUTH,0PENID。由于在线应用平台的应用间通信过程是在网络传输,因此需要考虑通信数据的安全性问题,上述两种技术依赖应用服务器之间的点对点通信,为了保证通信的安全性,通信双方必须协商某种通信协议,而不同的应用提供商之间协议千差万別,同一应用需多次协商通信协议以适用于不同场景。另外方案I仅适于互相依赖的服务厂商之间,不具备普适性,不符合云计算的开放性原则,因此主要存在于企业内部系统。方案2在应用间通信的过程中需要用户多次參与,用户体验极差,对于ー些访问频繁的应用场景几乎不具备可用性。

发明内容
基于此,针对现有技术中在线应用通信由于安全性问题而引入的用户參与和授权过程,提供ー种在线应用平台的应用通信方法、在线应用平台的客户端及在线应用平台的进程管理器。本发明提供了一种在线应用平台的应用间通信方法,包括步骤在线应用平台的客户端启动应用,按照预定的通信协议创建应用进程;并记录所述应用可处理的消息类型;所述应用进程为所述应用在所述客户端运行时的存在形态,包括应用进程ID、应用名称、上下文空间、消息队列、可执行程序路径;所述消息队列为在线应用平台与所述应用进程进行通信的载体;当应用间进行通信时,接收发送方应用的消息,所述消息包括根据预定通信协议定义的应用名称、消息类型、消息体;将所述消息投递至接收方应用所对应的应用进程的消息队列中;所述接收方应用的应用进程监控消息队列中的消息,并进行处理;当所述发送方应用或接收方应用退出时销毁所述应用进程。本发明还提供了一种在线应用平台的客户端,用于实现在线应用平台内应用间的通信,所述客户端包括多个应用和应用进程管理器;所述应用,用于通知所述应用进程管理器可处理的消息类型以及根据预定的通信协议生成消息;所述消息包括应用名称、消息类型、消息体;所述应用进程管理器包括进程创建接ロ,用于根据所述应用名称按照预定的通信协议创建应用进程,所述应用进程为所述应用在所述客户端运行时的存在形态,包括应用进程ID、应用名称、上下文空间、消息队列、可执行程序路径;所述消息队列为在线应用平台与所述应用进程进行通信的载体,所述应用进程监控所述消息队列中的消息,并进行处理;发送进程消息接ロ,用于接收发送方的消息,将所述消息投递至接收方应用所对应的应用进程的消息队列中;进程销毁接ロ,用于当所述发送方或接收方应用退出时销毁所述发送方或接收方应用的应用进程。本发明还提供了一种在线应用平台的应用进程管理器,用于实现在线应用平台内应用间的通信,所述应用进程管理器位于在线应用平台的客户端,包括进程创建接ロ,用于根据应用名称按照预定的通信协议创建应用进程,所述应用进程为所述应用在所述客户端运行时的存在形态,包括应用进程ID、应用名称、上下文空间、消息队列、可执行程序路径;所述消息队列为在线应用平台与所述应用进程进行通信的载体,所述应用进程监控所述消息队列中的消息,并进行处理;发送进程消息接ロ,用于接收发送方应用的消息,所述消息包括应用名称、消息类型、消息体;将所述消息投递至接收方应用所对应的应用进程的消息队列中;进程销毁接ロ,用于当所述发送方或接收方应用退出时销毁所述发送方或接收方应用的应用进程。
首先,由于本发明在线平台内的应用之间的通信可完全在终端进行,避免通信过程在网络传输,从而从根本上避免由于信息传输中安全因素而引入的用户參与和授权过程。相互不受信任的应用之间亦可通过在线应用平台这一可信的第三方实现间接通信,通信安全性由在线应用平台保障。其次,在线应用平台中的应用以应用进程的形态存在,应用进程之间通过预定的标准协议通信,所有应用进程角色平等,因此所有应用在平台内角色平等,应用之间无显式依赖。另外,应用之间的通信通过在线应用平台内核的解析和中转,使用単一的通信协议,可避免通信接ロ的重复建设,相同能力的应用可互相替代,功能互补的应用可协作提供更丰富的能力。


图I为在线应用平台的应用间通信方法流程图;图2为应用进程管理器的逻辑框图;图3为应用进程处理消息队列的消息的流程图。
具体实施方式
本发明提供的在线应用平台的应用间通信方法是在在线应用平台的客户端进行的,作为ー个实施例,在线应用平台的客户端可以为浏览器或嵌入了浏览器内核的应用程序。应用的入口可以是URL,或者Javascript脚本。本发明中所涉及的应用是在在线应用平台客户端内启动和使用的,运行于在线应用平台的窗体内部(通过Iframe嵌入或者Div嵌入),而非以単独的网页浏览方式使用。值得ー提的是,本发明中定义了ー种虚拟进程,通过该虚拟进程完成应用间的通信,由于该虚拟进程所实现的功能与操作系统中进程有些类似,因此在本发明中将这种虚拟进程命名为应用进程。该应用进程的具体定义为应用在在线应用平台客户端运行时的存在形态,通过预定的通信协议定义的应用进程的关键因素包括进程ID,应用名称,上下文空间,消息队列,可执行程序路径。
进程ID为应用进程的唯一标识;应用名称是指应用进程所属应用的唯一名称,作为ー个实施例,同一应用可启动多个应用进程,应用进程只属于单ー应用;上下文空间是指应用进程在内存中的空间块,用于保存应用进程运行过程中的状态数据。作为ー个实施例,该上下文空间可以只允许应用本身和在线应用平台访问,对其它应用不可见。消息队列是在线应用平台与应用进程进行通信的载体。可执行程序路径是可以被在线应用平台执行的类或对象。该类或对象可以由main函数(或功能类似的主入口)供平台执行。执行该类的main函数(或功能类似的主入口)即可开启该应用。如图I所示,该通信方法包括步骤在线应用平台的客户端启动应用(作为一个实施例,可以通过URL,或者Javascript脚本启动应用),按照预定的通信协议创建应用进程(SlOl);并记录所述应用可处理的消息类型(S102);当被启动的应用间进行通信时,运行在在线应用平台的客户端的发送方应用按照预定的通信协议生成消息,发送给在线应用平台的客户端(S103);在线应用平台的客户端将收到的消息投递至接收方应用所对应的应用进程的消息队列中(S104);接收方应用的应用进程监控消息队列中的消息,并进行处理(S105);当接收方或发送方应用退出时销毁该退出的应用所对应的应用进程(S106)。在步骤S101-S106中所提到的预定的通信协议为应用进程通信时的语言和内容,通信协议的格式支持单不局限于以下格式JSON,TEXT, XML。通信协议除了定义应用进程的关键因素外,通过该通信协议定义还定义了消息的关键因素。消息内包含以下关键元素应用名称,消息类型,消息体。作为ー个实施例,应用名称是在线应用在平台内的唯一名称标识;消息类型是由应用自定义的唯一消息类型标识,同一应用的消息类型不重复。消息体承载消息的内容,作为ー个实施例,其格式及所代表的意义可以由应用自行定义。步骤S105中接收方应用进程监控消息队列中的消息,并进行处理的过程包括步骤当接收方的应用进程监控到所对应的应用进程的消息队列的中存在消息吋,将所述消息复制到待处理队列;清空消息队列;获取所述待处理队列中的消息,并解析出消息体进行处理。
与本发明的在线应用平台的应用间通信方法相对应,本发明还提供了ー种在线应用平台的客户端,需要通信的应用均在该客户端内完成通信。该客户端内还包括应用进程管理器,负责应用进程的创建、销毁。应用进程管理器为在线应用平台的内部装置,与在线应用平台共享同一用户会话。如图2所示,应用进程管理器包括进程创建接ロ 201、发送进程消息接ロ 202和进程销毁接ロ 203。应用进程管理器的工作原理如下在线应用经应用进程管理器启动后,进程创建接ロ根据应用名称按照预定的通信协议创建应用进程,在线应用向应用进程管理器报告可处理的消息类型。当已启动的应用间进行通信时,发起方应用生成消息,调用进程管理器提供的发送进程消息接ロ向接收方应用发起通信请求,发送进程消息接ロ接收发送方应用的消息,投递至接收方应用进程的消息队列中,接收方的应用进程监控消息队列中的消息,并进行处理。当接收方或发送方应用退出时进程销毁接ロ销毁所述发送方或接收方应用的应用进程。作为ー个应用实例,在图3中列举了ー个接收方应用进程处理消息队列中消息的具体流程检查消息队列长度(S301);判断消息队列的长度是否为0(S302);如果是,则退出(S303);否则,将消息队列中的消息复制到待处理队列(S304);清空消息队列(S305);使用FIFO规则从待处理队列依次获取消息(S306);解析消息体并处理(S307)。以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
权利要求
1.一种在线应用平台的应用间通信方法,其特征在于,包括步骤 在线应用平台的客户端启动应用,按照预定的通信协议创建应用进程;并记录所述应用可处理的消息类型;所述应用进程为所述应用在所述客户端运行时的存在形态,包括应用进程ID、应用名称、上下文空间、消息队列、可执行程序路径;所述消息队列为在线应用平台与所述应用进程进行通信的载体; 当应用间进行通信时,接收发送方应用的消息,所述消息包括根据预定通信协议定义的应用名称、消息类型、消息体; 将所述消息投递至接收方应用所对应的应用进程的消息队列中; 所述接收方应用的应用进程监控消息队列中的消息,并进行处理; 当所述发送方应用或接收方应用退出时销毁所述应用进程。
2.根据权利要求I所述的在线应用平台的应用间通信方法,其特征在于,在线应用平台的客户端启动应用的入口包括URL或javascript脚本。
3.根据权利要求I所述的在线应用平台的应用间通信方法,其特征在于,所述接收方应用进程监控消息队列中的消息,并进行处理的过程包括步骤 当监控到所述消息队列的中存在消息时,将所述消息复制到待处理队列; 清空所述消息队列; 获取所述待处理队列中的消息,并解析出消息体进行处理。
4.一种在线应用平台的客户端,用于实现在线应用平台内应用间的通信,其特征在于,所述客户端包括多个应用和应用进程管理器; 所述应用,用于通知所述应用进程管理器可处理的消息类型以及根据预定的通信协议生成消息;所述消息包括应用名称、消息类型、消息体; 所述应用进程管理器包括 进程创建接口,用于根据所述应用名称按照预定的通信协议创建应用进程,所述应用进程为所述应用在所述客户端运行时的存在形态,包括应用进程ID、应用名称、上下文空间、消息队列、可执行程序路径;所述消息队列为在线应用平台与所述应用进程进行通信的载体,所述应用进程监控所述消息队列中的消息,并进行处理; 发送进程消息接口,用于接收发送方的消息,将所述消息投递至接收方应用所对应的应用进程的消息队列中; 进程销毁接口,用于当所述发送方或接收方应用退出时销毁所述发送方或接收方应用的应用进程。
5.根据权利要求4所述的在线应用平台的客户端,其特征在于,在线应用平台的客户端还包括启动所述应用的入口,所述应用的入口包括URL或javascript脚本。
6.根据权利要求5所述的在线应用平台的客户端,其特征在于,所述应用进程监控消息队列中的消息,并进行处理的过程为当监控到所述消息队列中存在消息时,将所述消息复制到待处理队列;清空所述消息队列;获取所述待处理队列中的消息,并解析出消息体进行处理。
7.—种在线应用平台的应用进程管理器,用于实现在线应用平台内应用间的通信,其特征在于,所述应用进程管理器位于在线应用平台的客户端,包括 进程创建接口,用于根据应用名称按照预定的通信协议创建应用进程,所述应用进程为所述应用在所述客户端运行时的存在形态,包括应用进程ID、应用名称、上下文空间、消息队列、可执行程序路径;所述消息队列为在线应用平台与所述应用进程进行通信的载体,所述应用进程监控所述消息队列中的消息,并进行处理; 发送进程消息接口,用于接收发送方应用的消息,所述消息包括应用名称、消息类型、消息体;将所述消息投递至接收方应用所对应的应用进程的消息队列中; 进程销毁接口,用于当所述发送方或接收方应用退出时销毁所述发送方或接收方应用的应用进程。
8.根据权利要求7所述的在线应用平台的应用进程管理器,其特征在于,所述应用进程监控消息队列中的消息,并进行处理的过程为当监控到所述消息队列的中存在消息时,将所述消息复制到待处理队列;清空所述消息队列;获取所述待处理队列中的消息,并解析出消息体进行处理。
全文摘要
本发明提供的在线应用平台的应用间通信方法,在线应用平台的客户端启动应用,按照预定的通信协议创建应用进程;并记录应用可处理的消息类型;当应用间进行通信时,接收发送方应用的消息,将消息投递至接收方应用所对应的应用进程的消息队列中;接收方应用的应用进程监控消息队列中的消息,并进行处理;当发送方应用或接收方应用退出时销毁应用进程。本发明还提供了在线应用平台的客户端,包括多个应用和应用进程管理器。另外还提供了在线应用平台的应用进程管理器,包括进程创建接口、发送进程消息接口和进程销毁接口。本发明从根本上避免由于信息传输中安全因素而引入的用户参与和授权过程。
文档编号H04L29/06GK102662776SQ20121009419
公开日2012年9月12日 申请日期2012年4月1日 优先权日2012年4月1日
发明者徐军, 薛珂 申请人:杭州格畅科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1