在线应用平台上应用间的应答通信方法和在线应用平台的制作方法

文档序号:7894850阅读:218来源:国知局
专利名称:在线应用平台上应用间的应答通信方法和在线应用平台的制作方法
技术领域
本发明涉及在线应用平台,尤其涉及在线应用平台上应用间的应答通信方法和在线应用平台。
背景技术
在线应用平台上各应用间通信时需要解决各应用间的访问控制问题以及各应用间调用服务时的应答通信问题。传统的应用间通信时的访问控制技术有以下几种方案I :基于用户名和密码机制 当某应用需要代表用户使用另ー应用提供的服务时,要求用户提供其在目标应用的用户名及密码,把用户名和密码作为请求的一部分投递到目标应用。目标应用验证用户名及密码,以决定是否提供服务给调用方。方案2 :基于OAUTH机制当某应用需要代表用户使用另ー应用提供的服务时,首先会跳转到目标应用网站,用户在目标应用网站输入用户名及密码,目标网站验证通过后,会列举出本次请求访问的API信息,用户确认后,目标网站生成TOKEN并跳转回调用方网站。调用方下次使用TOKEN直接访问有权限的服务。上述方案I会直接泄露其它应用的用户名和密码,存在极大的安全隐患。方案2要求浏览器的多次跳转,用户体验极差,而且处理不了同时调用多个不同应用API的需求。传统的应答通信机制主要有以下实现方法第一种对于一般的结构化语言,可以通过回调函数来实现回调。回调函数由调用方自己实现,供被调用方使用。第二种在面向对象的语言中,回调机制则是通过接ロ或抽象类来实现的,我们把实现这种接ロ的类称为回调类,回调类的对象称为回调对象。第三种对于分布式组件代理体系C0RBA,异步处理有多种方式,如回调、事件服务、通知服务等。事件服务和通知服务是CORBA用来处理异步消息的标准服务,他们主要负责消息的处理、派发、维护等工作。对ー些简单的异步处理过程,我们可以通过回调机制来实现。前两种方法都只是本地进程内部的回调,所有操作均依赖于本地进程通信,无法应用于在线应用平台。第三种方式CORBA依赖于相互之间使用SOCKET技术通信,这在WEB环境中无法提供,另外CORBA非常笨重,无法应用于简洁的在线环境。仅适用于有线应用服务器间通信和协作,而且也只能用于内部环境,不具备公开性。对于复杂的网络环境,由于异步处理过程将处理结果返回时会导致调用前的上下文受到干扰和破坏,因此调用方必须对返回的处理结果进行分析,因此无法保证通信的完整性和高效性
发明内容
本发明提供一种在线应用平台上应用间的应答通信方法和在线应用平台,能够安全便捷的对线应用平台上的应用进行访问控制,且适用于复杂的在线应答环境。本发明的在线应用平台上应用间的应答通信方法,包括步骤当在线应用平台的客户端启动应用时,按照预定的通信协议创建应用进程;并记录所述应用可处理的消息类型;所述应用进程为所述应用在所述客户端运行时的存在形态,包括应用进程ID、应用名称、上下文空间、消息队列、可执行程序路径;所述消息队列为在线应用平台与所述应用进程进行通信的载体;当请求方应用对应答方应用进行访问时,在线应用平台的客户端接收请求方应用的访问请求,进行是否授权的处理,并生成授权结果信息返回所述请求方应用;所述授权结果信息包括允许访问信息和拒绝访问信息,如果所述请求方应用收到所述允许访问信息,则按照下述步骤与所述应答方应用进行应答通信当请求方应用调用应答方应用的服务时,请求方应用将回调函数按照预定规则转 换为字符串,并构造服务调用消息,所述服务调用消息包括根据预定通信协议定义的应用名称、消息类型、消息体;所述消息类型用于承载所述应答方应用的服务的处理逻辑,所述消息体用于承载回调函数ID,所述回调函数ID为回调函数所转换的字符串,所述回调函数用于承载所述请求方应用所对应的上下文环境;所述请求方将所述服务调用消息发送至所述应答方应用所对应的应用进程的消息队列中;所述应答方应用的应用进程监控消息队列中的服务调用消息,根据所述预定规则识别出所述回调函数ID;根据所述消息类型执行所述服务,生成所述服务的执行结果;利用所述服务的执行结果及所述回调函数ID构造应答消息,并发送至所述请求方应用所对应的应用进程的消息队列中;所述请求方应用的应用进程监控消息队列中的应答消息,根据所述预定规则识别出所述回调函数ID,调用所述回调函数ID对应的回调函数处理所述服务的执行結果。本发明的在线应用平台,包括多个应用和应用进程管理器,所述应用进程管理器位于在线应用平台的客户端,包括进程创建接ロ,用于根据应用名称按照预定的通信协议创建应用进程,所述应用进程为所述应用在所述客户端运行时的存在形态,包括应用进程ID、应用名称、上下文空间、消息队列、可执行程序路径;所述消息队列为在线应用平台与所述应用进程进行通信的载体,所述应用进程监控所述消息队列中的消息,并进行处理;发送进程消息接ロ,用于接收和发送消息,所述消息包括应用名称、消息类型、消息体;将所述消息投递至应答方或请求方应用所对应的应用进程的消息队列中,所述接收和发送的消息包括访问请求、授权结果信息、服务调用消息和应答消息;访问控制装置,用于对所述访问请求进行是否授权的处理,生成授权结果信息,所述授权结果信息包括允许访问信息和拒绝访问信息;所述应用包括转换装置,用于将回调函数根据预定规则转换为字符串;构造消息装置,用于当所述应用作为请求方调用其他应用的服务时,构造服务调用消息;所述消息类型用于承载所述应答方应用的服务的处理逻辑,所述消息体用于承载回调函数ID,所述回调函数ID为回调函数所转换的字符串,所述回调函数用于承载所述请求方所对应的上下文环境;当所述应用作为应答方时,利用所述服务的执行结果及所述回调函数ID构造应答消息;识别装置,用于根据预定规则从收到的服务调用消息或应答消息中识别出所述回调函数ID ;服务逻辑处理装置,用于当作为应答方时,根据所述消息类型执行所述服务,生成所述服务的执行结果;当作为请求方时,调用所述回调函数ID对应的回调函数处理所述服务的执行結果。由于本发明通过在线应用平台对应用的访问控制进行统ー处理,使用本发明时用户名和密码不会多次输入,因此根本上避免了泄露问题;进行访问控制的过程中不需要进行浏览器的跳转;可支持同时调用多个应用的API ;应用提供方和调用方均无须提供额外功能以支持方案的访问控制。同时,本发明基于在线应用进程及应用进程间通信,使用本方 案,调用方可以使用回调函数接收被调用方送回的結果,实现应答式通信的效果,而回调函数可以表示上下文环境,从而可以保证在结果回来之时,调用前的上下文不受干扰和破坏,从而保证了通信的完整性和高效性,从而适用于复杂的在线应用平台的应答通信;屏蔽了通信细节,避免了由于重构上下文需求而传递过量的信息到被调用方而导致的信息泄露,令到调用更加安全可靠;服务提供方接ロ更加简单清晰,甚至不用区分请求者是来自远程或者本地上下文。


图I为在线应用平台上应用间的应答通信方法的流程图;图2为在线应用平台的原理框图。
具体实施例方式本申请人在申请号为申请号为201210094195. 1,发明名称为《在线应用平台的进程通信方法、客户端、应用进程管理器》的专利申请中公开了ー种基于应用进程实现在线应用平台上应用间通信的技木。本发明在该专利申请的基础上进一歩的改进,对应用间的访问控制提出了解决方案,同时,针对已授权的应用间进行通信时需等待返回结果的应用场景,以及需要同时调用多方应用时处理议程造成的繁琐效率低下的问题,吸收传统回调机制的特点和优势,提出了一种应用间通过回调机制高效通信的方法。如图I所示,本发明提供的在线应用平台上应用间通信的回调应答方法,首先需要根据申请号为201210094195. I的专利申请提供的途径建立虚拟进程,以便通过应用进程实现应用之间的通信当在线应用平台的客户端启动应用时,按照预定的通信协议创建应用进程;并记录所述应用可处理的消息类型(S100);所述应用进程为所述应用在所述客户端运行时的存在形态,包括应用进程ID、应用名称、上下文空间、消息队列、可执行程序路径;所述消息队列为在线应用平台与所述应用进程进行通信的载体;当请求方应用对应答方应用进行访问时,在线应用平台的客户端接收请求方应用的访问请求,进行是否授权的处理(SlOl),并生成授权结果信息返回所述请求方应用(S102);所述授权结果信息包括允许访问信息和拒绝访问信息。作为ー个实施例,可以预先协商好可以授权的应用名単,并存储在可授权应用列表中,在执行步骤SlOl时,在预先存储的可授权应用列表中查找所述发送方应用,如果找至IJ,则生成所述允许访问信息。另外,作为ー个实施例,还可以预先协商好不可授权的应用名単,并存储在不可授权应用列表中,在执行步骤SlOl时,如果在预先存储的不可授权应用列表中找到所述发送方应用,则生成拒绝访问信息。值得指出的是,预先保存授权应用列表或不可授权应用列表中的一种还是同时保存两种列表可以由用户根据自己的需求确定。作为ー种优选实施例,如果在所保存的列表 中未找到,则提示用户是否对发送方应用授权,井根据用户的返回结果将所述发送方应用加入已保存的所述可授权应用列表或不可授权应用列表,并生成所述授权结果信息。作为ー个优选实施例,还可以预先保存ACL(访问控制列表(Access ControlList, ACL),作为ー个实施例,该ACL表中可以预先存储请求方、接收方、服务名以及访问权限的相关数据,步骤S102中可以根据ACL表进行授权处理,生成授权结果信息,例如,如果ACL表中存储以下信息请求方为A、接收方为B、服务名为打印、访问权限为允许,则当A请求B的打印服务时,即可生成允许授权信息。通过ACL表的引入,带来了以下好处(1)減少访问频率,提高访问效率。现有的不同应用间的毎次通信,都需要进行授权访问,即使对于同一个服务的调用,不管通信多少次,就需要进行多少次授权。通过ACL表,因已存在授权信息,不需要进行每次的授权访问,減少访问频率,对于同一个服务的调用,只需进行一次授权,保存在ACL中,以后都不需要进行授权,可直接调用,提高访问效率。(2)同时访问多服务时避免多次提示。目前,一个应用需要访问多个服务时,就需要对每个服务进行授权提示,进行多次操作,通过ACL表,不需要进行任何提示,同时可以一次性对多个服务请求访问进行授权操作,避免多次提示和多次授权操作。(3)可以嵌套访问。目前,多个应用进行嵌套访问,当超过两次调用访问时,需要进行两次以上的访问跳转,进行授权操作,因此,无法重现第一次调用访问时的上下文环境,即无法实现超过两层调用访问的嵌套访问。通过ACL表,在进行嵌套访问时,由于每层访问,可以直接进行授权操作,不需要进行访问跳转,即保留了毎次调用访问时的上下文环境,从而实现嵌套访问。由于本发明预先保存了是否可以对某个应用授权、不授权的列表以及ACL,通过区分受限资源和非受限资源,引入黒白名单,因此本发明每个应用仅需一次授权判断,減少了访问控制干预频度,增强了用户体验。为了能够更加清晰的理解本发明,以下列举ー个执行步骤SlOO至S102的应用实例应用A作为请求方需要与应用B进行访问,此时应用B为接收方。首先,在线应用平台的客户端创建应用A的进程a,应用B的进程b,应用A请求调用应用B的服务C,此时应用A构造请求消息,包括根据预定通信协议定义的应用名称B、消息类型C、消息体,并发送至在线应用平台的客户端,客户端先检查应用B的黒白名单中是否有应用A,如果在白名单中,即授权结果为允许,则进行通信,如果在黑名单中,即授权结果为禁止,则拒绝通信。如果应用B的黒白名单中均不存在应用A,则在ACL表中,进行搜索,是否存在应用B将服务C授权给应用A的记录,如果存在,且授权记录为允许,则进行通信,如果不存在,则进行授权提示,用户授权为允许,则进行此应用间通信,用户授权为拒绝,则禁止此应用间通信。此时,若应用A需要同时访问应用D、应用E等多个应用的服务时,将会统ー在ー个提示中,进行授权操作,避免多次提示授权。在进行提示授权操作后,将此次授权的结果记录在ACL表中,以便于下次的直接授权判断。达到每个应用仅需一次授权判断,減少了访问控制干预频度,增强了用户体验。如果所述请求方应用收到所述允许访问信息,则按照下述步骤与所述应答方应用进行应答通信请求方应用通过回调函数承载应答方应用所提供的请求方应用所对应的上下文环境,当请求方应用调用应答方应用的服务时,将回调函数转换为字符串(S103),本发明要求回调函数按照预先定义的格式(即预定规则)转换为字符串,以便后续能够根据字符串的格式识别出是否为回调函数;然后构造服务调用消息(S104),服务调用消息包括预定通信协议定义的应用名称、消息类型、消息体;消息类型承载了应答方应用的服务的处理逻辑(即需要应答方应用执行的事件),本发明在构造服务调用消息时将回调函数转换的字符串加入消息体中,作为回调函数ID发送给应答方应用(S105);请求方应用将服务调用消息发送至应答方应用所对应的应用进程的消息队列中(S106);应答方应用的应用进程监控消息队列中的服务调用消息,根据预定规则识别出所述回调函数ID(S107);根据消息类型执行所述服务,生成所述服务的执行结果(S108);利用服务的执行结果及回调函数ID构造应答消息,并发送至请求方应用所对应的应用进程的消息队列中(S108);请求方应用的应用进程监控消息队列中的应答消息,根据预定规则识别出所述回调函数ID(S109),调用所述回调函数ID对应的回调函数处理所述服务的执行结果(SllO)。与上述在线应用平台上应用间通信的回调应答方法相对应,本发明还提供了ー种在线应用平台,如图2所示,包括多个应用和应用进程管理器,应用进程管理器位于在线应用平台的客户端,在线应用平台上的应用包括转换装置、构造消息装置和识别装置,应用进程管理器位于在线应用平台的客户端,包括进程创建接ロ、发送进程消息接ロ、访问控制装置和进程销毁接ロ。工作原理如下所述 进程创建接ロ根据应用名称按照预定的通信协议创建应用进程,所述应用进程为所述应用在所述客户端运行时的存在形态,包括应用进程ID、应用名称、上下文空间、消息队列、可执行程序路径;消息队列为在线应用平台与所述应用进程进行通信的载体,应用进程监控所述消息队列中的消息,并进行处理;当请求方应用需要调用应答方应用的服务时,请求方应用将访问请求发送至发送进程消息接ロ,访问控制装置对访问请求进行是否授权的处理,生成授权结果信息,并通过发送进程消息接ロ发送给请求方应用;作为ー个实施例,应用进程管理器还包括第一存储模块,预先存储可授权应用列表;访问控制装置在可授权应用列表中查找发送方应用,如果找到,则生成允许访问信息。另外,作为ー个实施例,应用进程管理器还可以包括第二存储模块,预先存储不可授权应用列表;访问控制装置如果在第二存储模块中找到发送方应用,则生成拒绝访问信息。作为ー个优选实施例,所述应用进程管理器还包括第三存储装置,用于存储ACL表,所述ACL表为访问控制列表,用于存储请求方应用标识、接收方应用标识、月艮务名、访问权限;所述访问控制装置在预先存储的ACL表中查找所述发送方应用的服务,如果找到,则生成所述允许访问信息。用户可以根据需求决定在实现应用进程管理器时保存哪种列表。作为ー个优选实施例,访问控制装置如果在所保存的列表里未找到发送方应用,则提示用户是否对发送方应用授权,井根据用户的返回结果生成授权结果信息以及将发送方应用加入第一存储模块或第二存储模块或第三存储模块。如果请求方应用收到的授权结果信息是允许访问信息,则请求方应用的转换装置将回调函数按照预定规则转换成字符串,构造消息装置构造服务调用消息,将字符串作为回调函数ID发送给发送进程消息接ロ,发送进程消息接ロ将服务调用消息投递至应答方应用所对应的应用进程的消息队列中;应答方应用监控消息队列中的消息,通过识别装置根据预定规则从收到的服务调 用消息识别出所述回调函数ID ;服务逻辑处理装置根据消息类型执行相应服务,生成所述服务的执行结果;构造消息装置利用服务的执行结果及回调函数ID构造应答消息;通过发送进程消息接ロ发送至请求方应用的消息队列;请求方应用监控到应答消息后,通过服务逻辑处理装置调用所述回调函数ID对应的回调函数处理所述服务的执行結果。当所述请求方或应答方应用退出时进程销毁接ロ销毁请求方或应答方应用的应用进程。上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他任何未背离本发明的精神实质和原理下所作的修改、修饰、替代、组合、简化,均应为等效的置換方式,都应包含在本发明的保护范围之内。
权利要求
1.一种在线应用平台上应用间的应答通信方法,其特征在于,包括步骤 当在线应用平台的客户端启动应用时,按照预定的通信协议创建应用进程;并记录所述应用可处理的消息类型;所述应用进程为所述应用在所述客户端运行时的存在形态,包括应用进程ID、应用名称、上下文空间、消息队列、可执行程序路径;所述消息队列为在线应用平台与所述应用进程进行通信的载体; 当请求方应用对应答方应用进行访问时,在线应用平台的客户端接收请求方应用的访问请求,进行是否授权的处理,并生成授权结果信息返回所述请求方应用;所述授权结果信息包括允许访问信息和拒绝访问信息,如果所述请求方应用收到所述允许访问信息,则按照下述步骤与所述应答方应用进行应答通信 当请求方应用调用应答方应用的服务时,请求方应用将回调函数按照预定规则转换为字符串,并构造服务调用消息,所述服务调用消息包括根据预定通信协议定义的应用名称、消息类型、消息体;所述消息类型用于承载所述应答方应用的服务的处理逻辑,所述消息体用于承载回调函数ID,所述回调函数ID为回调函数所转换的字符串,所述回调函数用于承载所述请求方应用所对应的上下文环境; 所述请求方将所述服务调用消息发送至所述应答方应用所对应的应用进程的消息队列中; 所述应答方应用的应用进程监控消息队列中的服务调用消息,根据所述预定规则识别出所述回调函数ID ; 根据所述消息类型执行所述服务,生成所述服务的执行结果; 利用所述服务的执行结果及所述回调函数ID构造应答消息,并发送至所述请求方应用所对应的应用进程的消息队列中; 所述请求方应用的应用进程监控消息队列中的应答消息,根据所述预定规则识别出所述回调函数ID,调用所述回调函数ID对应的回调函数处理所述服务的执行結果。
2.根据权利要求I所述的应答通信方法,其特征在于,所述在线应用平台的客户端进行是否授权的处理的过程包括步骤 在预先存储的可授权应用列表中查找所述请求方应用,如果找到,则生成所述允许访问信息。
3.根据权利要求2所述的应答通信方法,其特征在于,所述在线应用平台的客户端进行是否授权的处理的过程还包括步骤 如果在预先存储的不可授权应用列表中找到所述请求方应用,则生成拒绝访问信息;如果未找到,则提示用户是否对所述请求方应用授权,井根据用户的返回结果将所述请求方应用加入所述可授权应用列表或不可授权应用列表,并生成所述授权结果信息。
4.根据权利要求I或2或3所述的应答通信方法,其特征在于,所述在线应用平台的客户端进行是否授权的处理的过程包括步骤 在预先存储的ACL表中查找所述发送方应用的服务,如果找到,则生成所述允许访问信息,所述ACL表为访问控制列表,用于存储对所述应用的服务的访问权限。
5.一种在线应用平台,其特征在于,包括多个应用和应用进程管理器,所述应用进程管理器位于在线应用平台的客户端,包括 进程创建接ロ,用于根据应用名称按照预定的通信协议创建应用进程,所述应用进程为所述应用在所述客户端运行时的存在形态,包括应用进程ID、应用名称、上下文空间、消息队列、可执行程序路径;所述消息队列为在线应用平台与所述应用进程进行通信的载体,所述应用进程监控所述消息队列中的消息,并进行处理; 发送进程消息接ロ,用于接收和发送消息,所述消息包括应用名称、消息类型、消息体;将所述消息投递至应答方或请求方应用所对应的应用进程的消息队列中,所述接收和发送的消息包括访问请求、授权结果信息、服务调用消息和应答消息; 访问控制装置,用于对所述访问请求进行是否授权的处理,生成授权结果信息,所述授权结果信息包括允许访问信息和拒绝访问信息; 所述应用包括 转换装置,用于将回调函数根据预定规则转换为字符串; 构造消息装置,用于当所述应用作为请求方调用其他应用的服务时,构造服务调用消息;所述消息类型用于承载所述应答方应用的服务的处理逻辑,所述消息体用于承载回调函数ID,所述回调函数ID为回调函数所转换的字符串,所述回调函数用于承载所述请求方所对应的上下文环境;当所述应用作为应答方时,利用所述服务的执行结果及所述回调函数ID构造应答消息; 识别装置,用于根据预定规则从收到的服务调用消息或应答消息中识别出所述回调函数ID ; 服务逻辑处理装置,用于当作为应答方时,根据所述消息类型执行所述服务,生成所述服务的执行结果;当作为请求方时,调用所述回调函数ID对应的回调函数处理所述服务的执行結果。
6.根据权利要求5所述的在线应用平台,其特征在于,所述应用进程管理器还包括第一存储模块,用于存储可授权应用列表; 所述访问控制装置在所述可授权应用列表中查找所述发送方应用,如果找到,则生成允许访问信息。
7.根据权利要求6所述的在线应用平台,其特征在于,所述应用进程管理器还包括第ニ存储模块,用于存储不可授权应用列表; 所述访问控制装置如果在所述第二存储模块中找到所述发送方应用,则生成拒绝访问信息;如果未找到,则提示用户是否对所述发送方应用授权,井根据用户的返回结果生成授权结果信息以及将所述发送方应用加入所述第一存储模块或第二存储模块。
8.根据权利要求5或6或7所述的在线应用平台,其特征在于,所述应用进程管理器还包括第三存储装置,用于存储ACL表,所述ACL表为访问控制列表,用于存储请求方应用标识、接收方应用标识、服务名、访问权限; 所述访问控制装置在预先存储的ACL表中查找所述发送方应用的服务,如果找到,则生成所述允许访问信息。
全文摘要
本发明的在线应用平台上应用间的应答通信方法以及在线应用平台,首先创建应用进程;并记录应用可处理的消息类型;在线应用平台的客户端接收请求方应用的访问请求,进行是否授权的处理,并生成授权结果信息返回请求方应用;如果请求方应用收到允许访问信息,将回调函数转换为字符串并构造服务调用消息,请求方将服务调用消息发送至应答方应用;应答方应用识别出回调函数ID;执行服务,生成服务的执行结果;构造应答消息并发送至请求方应用;请求方应用根据预定规则识别出回调函数ID,调用所述回调函数ID对应的回调函数处理服务的执行结果。本发明能够安全便捷的对在线应用平台上的应用进行访问控制,且适用于复杂的在线应答环境。
文档编号H04L29/06GK102693163SQ201210134059
公开日2012年9月26日 申请日期2012年4月28日 优先权日2012年4月28日
发明者徐军, 薛珂 申请人:杭州格畅科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1