背景:
对于旧有系统的改造和升级,最苦恼的莫过于跨平台,跨语言。我的一个朋友最近从Java专向了专攻.NET——因为.NET的CLR既有类似Java虚拟机概念这种已经被证明很成功的底层托管能力。又对于Windows的就有桌面应用提供了良好的兼容。
最近我的一个个人项目也面临着这样的需求。一个C语言开发的中间件,通过API暴露给二次开发及插件应用。现在由于对其应用的需求变得日趋复杂,而且正在脱离Unix的管理环境,走向基于JWS这样的BCS管理。有朋友推荐我用JNI,但这样一是增加了耦合度,二是让Java睡在JNI感觉不太安稳。在认知了上下两层的系统平台后,问题变得明朗起来:如何在HTTP协议下实现Java和C之间的交互?
思路:
本人对Java比较熟悉,先从Java的角度入手,Java间的通信方法:
1 通过URL,Applet/JWS访问被影射到URL的动态资源(Servlet)
2 通过URL,Applet/JWS访问共享的静态资源(Server定期更新静态资源)
3 通过序列化和反序列化,实现简单对象的传输(比如Resin的Hessian框架就提供了这种通信的方式)
4 通过一些工具做代码生成,利用Web Services实现客户端和服务端的交互
此外脱离HTTP,还可以做RMI,socket编程
现在问题是通信的一端由Java变成了C/C++, 于是, 解决方案1需要把动态资源由CGI来定义,而方案3变得不再适用。于是方案有:
1 通过URL,Applet/JWS访问被影射到URL的动态资源(CGI)
2 通过URL,Applet/JWS访问共享的静态资源(Server定期更新静态资源)
3 通过一些工具做代码生成,利用Web Services实现客户端和服务端的交互(×××这是我们讨论的重点×××)
查看 http://www.qqread.com/java/2008/03/r402280.html相关专题
- Java环境安装配置 (5705篇文章)
- Java编程开发手册 (8364篇文章)
- 热门通信技术专区 (2026篇文章)
- 通信技术专题 (2026篇文章)
- Java API (109篇文章)
- Java与其他集成开发篇 (184篇文章)
- Java网络及通讯编程 (673篇文章)
- 在Eclipse中配置Struts2项目 (64次浏览)
- 在Spring中使用JTA事务管理 (51次浏览)
- 详细讲解在Spring中进行集成测试 (47次浏览)
- 专家视点:Java能够替代C语言吗? (44次浏览)
- 使用Spring MVC表单标签 (38次浏览)
- 使用XFire+Spring构建Web Service (32次浏览)
- 在Spring中使用Quartz进行任务调度 (32次浏览)
- 使用myeclipse集成struts,hibernate,spring的 (30次浏览)
- 使用Acegi进行身份认证(之一) (29次浏览)
- Java初学者必须理解的六个大问题 (21次浏览)



