与服务器和客户端共享应用程序特定的数据类型

Asked
Viewd279

1

我必须创建一个服务器(java)-客户端(c ++)系统,服务器和客户端都必须使用对象(数据类型),但客户端和服务器的对象(数据类型)是相同的,例如汽车对象将在客户端上创建,然后将其发送到服务器,在服务器上将对汽车对象进行附加计算。我想做的是创建car对象的一个​​通用实现,然后在服务器和客户端中使用此实现。首先,我想到了用客户端和服务器创建所有数据类型都相同的dll(在c ++中),但是这种解决方案有一个缺点。因为此解决方案仅在Windows OS下有效,所以我必须支持Win,Mac,Linux。那么,有没有针对我的问题的多平台解决方案?

感谢您的所有答复。

5 个答案

1

和协议缓冲区一样,还有一个叫做thrift的文件(facebook的协议缓冲区)。参见 http://incubator.apache.org/thrift/

请参阅此页面进行比较 http://stuartsierra.com / 2008/07/10 / thrift-vs-protocol-buffers

0

看看CORBA: http://en.wikipedia.org/wiki/CORBA

3

Google有一个名为协议缓冲区的开源库,用于在客户端和客户端之间传输数据对象。服务器根据您的情况。它支持C ++,Java和Python。

0

对于XML来说,这看起来不错。那就是我要开始的地方。

0

假设您坚持使用标准库(跨平台),那么在OS X和Linux上将库(DLL)重新编译为共享库(.so)时不会有任何困难。当然,用Java加载它们是另一个问题(我没有专门知识)。

但是,更重要的是,对于客户端服务器应用程序,您可能希望研究有效的对象的序列化,以便它们可以通过网络传输并由接收器可靠地重建。

  • 用Java加载它们很简单(System.loadLibrary),但是它们需要为它们提供JNI包装器(这可能是为此设计的。)

    TofuBeerFebruary 27, 2009 07:41