[发明专利]基于C++与Java混合编程的分布式服务系统有效
申请号: | 201610987580.7 | 申请日: | 2016-11-10 |
公开(公告)号: | CN106775616B | 公开(公告)日: | 2020-08-11 |
发明(设计)人: | 方冰;王超 | 申请(专利权)人: | 中国电子科技集团公司第二十八研究所 |
主分类号: | G06F8/30 | 分类号: | G06F8/30 |
代理公司: | 南京苏高专利商标事务所(普通合伙) 32204 | 代理人: | 柏尚春 |
地址: | 210003 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 c++ java 混合 编程 分布式 服务 系统 | ||
本发明公开了一种基于C++与Java混合编程的分布式服务系统,其特征在于,包括服务端,中间件,服务总线和客户端,服务端是服务的提供者,包括C++应用和JAVA应用,服务总线用来实现监听服务端提供的服务并形成服务清单,客户端调用服务端提供的服务,包括C++应用和JAVA应用,中间件包括服务端与服务总线之间和客户端与服务总线之间两部分,其中服务端与服务总线之间的中间件用来向服务总线注册服务端C++应用提供的服务,客户端与服务总线之间的中间件提供调用服务的Rest接口,辅助客户端实现服务调用。该系统同时支持C++和JAVA开发的服务,提高了程序开发效率,增强了软件的运行速度与稳定性。
技术领域
本发明属于计算机技术领域,具体涉及一种分布式服务系统。
背景技术
随着计算机技术的发展,采用多台计算机组成一个分布式服务系统可以为用户提供比传统的集中式系统更好的服务,特别是可以克服主机资源紧张和响应瓶颈的缺陷,更好地实现任务的分配与优化。目前,可实现调用、监听服务、提供远程通信与信息交换的分布式系统很多,如阿里巴巴旗下开源的分布式服务框架dubbo、开源软件Apache Hadoop的分布式服务框架Zookeeper等。但上述框架均是Java版本的,无法支持大量现有的C++应用。
发明内容
发明目的:针对现有技术中存在的问题,本发明公开了一种基于C++与Java混合编程的分布式服务系统,该分布式服务系统支持C++应用和JAVA应用,并且增强了软件的运行速度与稳定性。。
技术方案:一种基于C++与Java混合编程的分布式服务系统,包括服务端,中间件,服务总线和客户端;其中服务端是服务的提供者,包括C++应用和JAVA应用;服务总线用来实现监听服务端提供的服务并形成服务清单;客户端调用服务端提供的服务,包括C++应用和JAVA应用;中间件包括服务端与服务总线之间和客户端与服务总线之间两部分,其中服务端与服务总线之间的中间件用来向服务总线注册服务端C++应用提供的服务,客户端与服务总线之间的中间件提供调用服务的Rest接口,辅助客户端实现服务调用。
服务端通过HttpServlet将自身信息封装成服务;服务端C++应用包括C++方法和C++动态库两部分,其中C++方法采用C++反射机制将其信息通过Rest接口供中间件调用,中间件中的JAVA代理自动加载C++动态库的函数,并以服务的形式注册到服务总线。
服务总线包括传输客户端、数据传输、传输服务器。传输客户端发起服务请求,接收客户端提供的方法和参数,发送至传输服务器;传输过程中数据传输对方法和参数根据数据格式进行编码和解码;传输服务器接收解码后的方法和参数,通过中间件调用服务端的C++方法。
客户端与服务总线之间中间件的JAVA代理提供Rest接口,客户端的C++应用通过HttpClient来调用此Rest接口实现服务的调用;客户端的JAVA应用通过WebSocket调用服务端提供的服务。
中间件的JAVA代理通过开源的java框架调用C++动态库,自动实现Java和C++的数据类型映射。
具体地,中间件的JAVA代理通过JNA(Java Native Access)调用C++动态库,JNA提供了一个动态的C++语言编写的转发器,来自动实现Java和C++的数据类型映射。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国电子科技集团公司第二十八研究所,未经中国电子科技集团公司第二十八研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610987580.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:通知消息管理的方法和装置
- 下一篇:一种应用软件的业务逻辑配置方法及配置系统