基于Eclipse的对等通信方法
【技术领域】
[0001]本发明涉及计算机技术领域,具体涉及一种基于Eclipse的对等通信方法。
【背景技术】
[0002]Eclipse是一个开放源代码的、主要基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
[0003]从Eclipse3.0 开始,Eclipse 中的插件机制通过 OSGi (Open Service GatewayInitiative,开放服务网关,一种以Java为技术平台的动态模块化规范)框架来实现。一个Eclipse插件等同于一个OSGi的Bundle。创建一个Eclipse插件,既可以采用基于扩展点的方式,又可以采用基于OSGi的Bundle概念。与之相关,插件间的通信方式也较为多样,其中就包括了采用超文本传送协议(HTTP协议)进行通信。而嵌入式Web服务器可以以OSGI Bundle的形式,作为插件成为Eclipse开发环境的有机组成部分。
[0004]目前,在分布式开发环境中,均采用典型的C/S(Client/Server,客户-服务模式)结构,由客户端发起请求,服务端接收请求,进行处理并进行应答。由于客户-服务通信是一次同步过程,这就使得某些较为复杂的事务,其运行结果和运行时间难以估算,需要客户端频繁发起查询请求,造成服务端的计算资源和网络资源的浪费,以及处理结果的反馈存在延时。
[0005]而且,目前分布式开发环境客户端采用轮询的方式来获取数据,客户端定时向服务器发送socket请求,服务器接到请求后需马上处理请求,响应信息并关闭连接。这种技术的缺点在于存在着大量的在业务上无用的请求,仅仅是为了查询某次请求的状态,对带宽和服务器资源造成了相当的浪费。每次状态查询之间总有物理上的时间间隔,这就造成了处理结果响应的不及时。另外,由于发送的是socket请求,需要对传输的数据进行解析,进而转化为应用级的数据,存在着协议标准不确定,接口描述不规范的问题,从而引入了诸多不稳定的因素,难以调试和维护。
【发明内容】
[0006]本发明所要解决的技术问题是针对现有技术中存在的分布式开发环境中客户-服务通信过程的高效和实时性问题,提供一种针对分布式开发环境的高效、实时的客户-服务通信技术。
[0007]根据本发明,提供了一种基于Eclipse的对等通信方法,其中,在Eclipse客户端中集成一个Web服务器插件,以用于对外提供Http服务;在服务端中集成用于对所述Eclipse客户端的Web服务器插件进行调用的Http客户端插件;在服务端处理完所述Eclipse客户端的请求后,在不等待接收所述Eclipse客户端的状态查询请求的情况下,直接把结果数据经由自身的Http客户端插件通过调用所述Eclipse客户端的服务传递给所述Eclipse客户端。
[0008]优选地,所述基于Eclipse的对等通信方法包括:
[0009]第一步骤:选择嵌入式web服务器插件的部署方式;
[0010]第二步骤:按照选择的部署方式在Eclipse客户端中集成Web服务器插件;
[0011]第三步骤:在服务端中提供Web服务器插件模块作为Http客户端插件;
[0012]第四步骤:通过事件机制提供插件间的通信。
[0013]优选地,第二步骤包括:
[0014]添加依赖项;
[0015]提供一个自定义的JettyServer类;
[0016]注册一个Servlet (NotifyServlet),用于接收从远程发过来的消息;
[0017]将消息标志解析成各种事件进行分发。
[0018]优选地,添加的依赖项为org.eclipse, equinox, http, jetty。
[0019]优选地,第四步骤包括:
[0020]将Web服务器插件模块作为一个事件源,该Web服务器插件模块中的操作作为事件,业务模块作为事件监听者;
[0021 ] 当业务模块被加载时,业务模块向Web服务器插件模块注册;
[0022]注册成功之后,一旦Web服务器插件模块中有业务模块感兴趣的事件发生,Web服务器插件模块便会将事件通知给监听者。
[0023]优选地,在第一步骤中,选择“Servlet Container in OSGi”部署方式。
[0024]优选地,在第二步骤中,选择Jetty服务器以一个Bundle的方式集成于OSGi框架中。
[0025]本发明的基于Eclipse的对等通信技术,将客户端作为一个轻量的Web服务器,利用了客户端所在物理机器的计算资源,减少了网络带宽的占用和对服务器计算资源的浪费,提供了实时的计算/处理结果反馈,并且便于调试维护。
【附图说明】
[0026]结合附图,并通过参考下面的详细描述,将会更容易地对本发明有更完整的理解并且更容易地理解其伴随的优点和特征,其中:
[0027]图1示意性地示出了根据本发明优选实施例的基于Eclipse的对等通信方法的具体示例的流程图。
[0028]需要说明的是,附图用于说明本发明,而非限制本发明。注意,表示结构的附图可能并非按比例绘制。并且,附图中,相同或者类似的元件标有相同或者类似的标号。
【具体实施方式】
[0029]为了使本发明的内容更加清楚和易懂,下面结合具体实施例和附图对本发明的内容进行详细描述。
[0030]本发明旨在淡化客户端和服务端的概念,在基于Eclipse的客户端(简称为Eclipse客户端)中集成一个轻量级的Web服务器插件,以用于对外提供Http服务;服务端中包含对所述Eclipse客户端Web服务器插件进行调用的Http客户端插件。
[0031]在服务端处理完所述Eclipse客户端的请求后,无需等待接收所述Eclipse客户端的状态查询请求,直接把结果数据通过自身的Http客户端插件通过调用述Eclipse客户端的服务传递给所述Eclipse客户端,从而避免无效请求,达到实时反馈的效果。
[0032]下面将结合附图来描述本发明的具体处理示例。
[0033]图1示意性地示出了根据本发明优选实施例的基于Ecl