C++ 和 Java 对象通信
Posted
技术标签:
【中文标题】C++ 和 Java 对象通信【英文标题】:C++ and Java objects communication 【发布时间】:2010-09-01 16:18:45 【问题描述】:我需要在我的应用程序中建立 C++ 层和 Java 层之间的通信模型。最初,我计划将 SOAP 与 XML 结合使用,但我的客户有兴趣建立一个数据库通信通道。
我是 DB 新手,不知道如何继续。我想听听您对使用数据库实现C++和Java层之间的对象通信的真诚建议。
谢谢, 呸
【问题讨论】:
这两层如何与数据库交互?您需要从 Java 调用 C++ 代码还是反过来? 不希望在Java层建立对象数据库,从C++层查询细节并填充对象属性。 让您的客户相信 CORBA 将是一种不那么受虐的方法。 您是否正在尝试将对象从 C++ 转换为 Java(即,将 C++ 字符串转换为 Java 字符串,反之亦然)? 【参考方案1】:数据库作为通信? 颤抖
http://en.wikipedia.org/wiki/Database-as-IPC
这是一种反模式。你能改变客户的想法吗?
套接字比成熟的 SOAP 接口更容易。
【讨论】:
【参考方案2】:如果您有 2 个不同的应用程序进行通信,那么套接字就是最佳选择。如果你的 C++ 层更像是一个库,你也可以使用 JNI(http://en.wikipedia.org/wiki/JNI,google for tutorials)。
【讨论】:
【参考方案3】:通信通道和阻塞模型的选择很大程度上取决于应用程序,但如果您不需要担心安全性,套接字可能会工作得最好。 SSL/Mutual auth 是您的下一步。
我自己推出了自己的产品,但如果我必须再做一次,我会使用 google 协议缓冲区。 http://code.google.com/p/protobuf/
它们似乎捕获了人们想要从 ASN1 中得到的大部分内容(但并非全部搞砸了),并且让您可以做人们经常尝试通过序列化 java 属性来做的事情。
【讨论】:
以上是关于C++ 和 Java 对象通信的主要内容,如果未能解决你的问题,请参考以下文章