我有两个同一个第三方设备的C库。区别在于一种(例如A库)比另一种(例如库B)具有更多的功能。我有两个大平台在使用这个设备。平台A使用库A,平台B使用库B。
为了支持更多的平台和系统,我正在考虑是否应该创建设备函数调用的Web服务(例如SOAP)。如果是这样的话,不改变现有函数接口的库的任何更改都不需要在大型平台上重新编译。另外,如果引入一个新的平台,则可以重用库和web服务。设计如下:
平台<-- SOAP ->轻量级Web服务器<-- JNI ->设备库
这是个好设计吗?有什么缺点吗?
此外,由于有两个库,我是否可以创建一个支持这两个库的Java类?如果是,我如何处理未实现的方法?
谢谢你提前给我建议。
发布于 2014-02-10 11:02:33
这看起来更像是一个依赖关系管理问题,可以通过声明性依赖管理工具来解决。
您考虑过将DLL作为独立的工件存储在类似于附件的服务器依赖工具中吗?这样,您就可以使用带有适当DLL库工件的类似maven的工具来准备不同的部署配置文件(假设在普通的java代码库中没有代码更改)。
这样就可以在部署时解决所有问题,并且在运行时不需要额外的webservices来查找设备库(这会导致其他问题,比如服务的可用性,或者从哪里开始发布)。
https://stackoverflow.com/questions/21675256
复制相似问题