关于C++和 java web的集成

georg 2015-04-23 10:17:46
从事多年的C++服务端开发工作,客户端一直习惯了用MFC做一个plain UI。在当前web当道的社会里,CS显然是上个世纪的东西了。想改成BS结构的,可总是有些想不明白如何弄。目前身边几个弄JAVA的哥们只会弄jsp,只会围绕数据库摆弄一些东西。考虑到通信的问题,c++和java可以采用通信协议Google Protocol Buffer。但若写一个具有和c++通信的java application,该java application又如何集成到web里面,供用户通过web控制呢?问题不晓得说清楚了没有,求教大家!
...全文
458 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
宝龙哥 2015-04-24
  • 打赏
  • 举报
回复
你使用JAVA制作服务器端,那么还要那个C++的服务器干什么?把那个C++的服务器废掉,把C++实现的算法部分等封装成DLL给JAVA的服务器调用不是可以减少两者之间的通讯么? 如果一定要保留的C++服务器的话,那么JAVA服务器相当于一个转发服务器,你只要实现你C++客户端的通讯能力就可以了,这些通讯协议只要接口和数据结构正确和用什么工具开发并无关系 如果想通过增加一个java服务器减轻C++服务器的负担,必须把JAVA服务器做成一个缓存池,否则的话并不能减c++服务器的负担
georg 2015-04-24
  • 打赏
  • 举报
回复
不过道理还是一样的,该dll还是要负责和后台的C++伺服器程序进行通信。同时该方案还会导致 dll和伺服器程序之间的紧耦合,没有采用Google Protocol Buffer这种和平台无关的通信方案好。
georg 2015-04-24
  • 打赏
  • 举报
回复
非常感谢您的答复: 您的意思是说 把服务器的 操作部分的api封装成一个dll,供java web调用么?
宝龙哥 2015-04-24
  • 打赏
  • 举报
回复
不过,你可以将c++代码封装成dll或使用ole之类的接口
宝龙哥 2015-04-24
  • 打赏
  • 举报
回复
大哥,你的这种结构中间经过两次转换结果才到了客户端,效率可想而知,况且中间的两个程序之间的通信也要分别开发,这样开发和修改的效率很低下,不建议这么做

georg 2015-04-24
  • 打赏
  • 举报
回复
主要是实现 将CS结构的软件改成BS的。服务端程序是用C++完成。客户端也是通过C++,通过socket实现链接。我想若是改成BS之后,一种方法是在程序里面编写一个轻量级的http server线程。这种将业务程序和http server 紧耦合的方法,很难扩充,并且自己写的http server压力测试根本无法保证。因此考虑将c++服务程序和http server剥离,用c++和java程序通信,然后利用java web的强大功能实现对c++通信的二次封装。并且从将业务逻辑和通信逻辑分离。无论多少人登陆 该web,压力都该在该http server上,目前市场上流行的譬如nginx等抗压测试都很强大。和c++服务程序无关。understand?
宝龙哥 2015-04-24
  • 打赏
  • 举报
回复
看不明白你具体要实现什么,只能猜测着说两句 java在WEB服务器开发方面功能很强,尤其是其内部集成的web功能模块十分完善和强大 业界公认,C++可以找不到帮助,JAVA则一定能,就我使用BCB的经验看,C++找不到解决代码的情况很普遍,而JAVA是不是都能找到虽然不一定,但比C++容易找到估计是有可能的 至于通讯,其实关系到两方面,一种是接口的使用,二是数据结构,这两种 都正确实现了就可以正确通讯了
georg 2015-04-24
  • 打赏
  • 举报
回复
特别还是在linux环境下,采用gdb进行调试
georg 2015-04-24
  • 打赏
  • 举报
回复
这种思路 还从来没弄过,有些工作量,该服务器程序调用了大量的其他第三方库,能否行的通 还需要实验以下。不过 这样跟踪调试起来 是不是 更加困难了。
georg 2015-04-24
  • 打赏
  • 举报
回复
非常感谢,终于有些明白了。把c++的exe文件改成dll封装,然后采用类似jnative的库来启用服务,调用该服务程序的相关函数接口。
georg 2015-04-23
  • 打赏
  • 举报
回复
我在一个c++的服务器里面增加了对Google Protocol Buffer的支持。用c++的功底用java和netty库写一个APP也是不再话下,问题是如何让这个java application 加上web页面,给该C++的服务器发送消息呢。
Delphi XE2 正式版的破解程序,有效哦。 Delphi XE2 官方完整 delphicbuilder_xe2_win_dl.iso下载地址: http://altd.embarcadero.com/download/radstudio/xe2/delphicbuilder_xe2_win_dl.iso 文件大小: 2.33G MD5: de8b9f897e2ad678643b64898470b707 Delphi Prism XE2 - ISO 1.28G http://altd.embarcadero.com/download/prism/xe2/prism_xe2_win.iso RadPHP XE2 - ISO 343M http://altd.embarcadero.com/download/radphp/xe2/radphp_xe2_win.iso 建议大家用迅雷下载 ************************************** 英巴卡迪诺发布新版RAD Studio XE2开发工具套件 日前,英巴卡迪诺宣布发布新版RAD Studio XE2软件开发工具套件,新版包含了10多年来最深入全面的特性升级。RAD Studio XE2中包含了新版本的Delphi、C++Builder、Prism和RadPHP。主要特性包括完整的Delphi 64位Windows支持,通过全新的FireMonkey富商业应用平台支持Mac OSX和iOS,以及通过RadPHP XE2支持安卓web和移动应用开发。 对Delphi XE2和C++Builder XE2来说,一个极其重要的新特性就是FireMonkey,业界第一款用于创建商业软件的原生的能全面利用到CPU和GPU计算能力的富应用平台。使用 FireMonkey,Delphi和C++Builder开发人员能开发出视觉绚丽的高清和3D应用程序,并与后台的企业级数据库如Oracle、微软 SQL Server、IBM DB2、Sybase和其他数据库互联互通。FireMonkey应用以原生方式运行在Windows PC和Mac上,可以完全利用到现代GPU的处理能力,以不可置信的细节处理能力和优异的性能表现展现数据和用户界面。FireMonkey还可以使 Delphi XE2用户为移动(iOS)设备创建原生的高清和3D应用程序。 Delphi和C++Builder为应用开发提供原生开发方式,而RadPHP XE2则支持web开发和移动设备应用的开发。使用RadPHP XE2,开发人员可以轻松为移动智能电话和平板电脑创建支持触碰和UI优化的web应用。开发人员可以部署他们的移动Web应用为原生移动应用到苹果公司的iOS应用商店和安卓的应用市场。在他们的移动Web应用中,可以直接访问移动设备的硬件,如相机、GPS和重力感应器。 其他新增特性包括: Delphi XE2 和C++Builder XE2 Delphi XE2包括完整的Windows 64位对FireMonkey、编译器、调试器、RTL 和VCL的支持; dbExpress具有新的对InterBase XE, FireBird 2.5, SQL Anywhere 12 和ODBC的连接能力; 新的DataSnap移动连接器,带有原生的平台组件和示例以创建从移动客户端到Delphi DataSnap服务器的连接,支持安卓(Java), iOS (Objective C), 黑莓(Java) 和Windows Phone 7 (C#); 新增和更新的扩展工具,包括FastReport,用于快速设计和生成报表;Documentation Insight,用于Delphi的源代码文档工具; TeeChart、IBX、InstallAware、IP*Works、Aqtime、FinalBuilder、IntraWeb和Indy 的64位版本。 TeeChart、Indy和FinalBuilder还支持Mac平台; C++Builder XE2中还包含了新的代码审计和QA度量工具; LiveBindings使用户能连接任意类型的信息到任意的FireMonkey用户界面和图形对象上。用户可以绑定实时数据到标准的用户界面控件、高清或3D图形元素上,以创建可视化任意类型数据的崭新方式; RadPHP: 集成式为移动优化的Web开发; 部署应用到Web, iOS, 或安卓; 扩展的Zend框架组件集; Embarcadero Prism: 来自RemObjects的全新的.NET Oxygene编译器; 匿名接口实现; FastReport.net

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧