企业嵌入应用的跨平台数据库选择初步打算

来源:互联网 发布:telnet linux 命令 编辑:程序博客网 时间:2024/04/28 06:15

公司需要针对移动设备开发一款应用程序.根据经验及近几年的所见所闻,最终列出了几个感觉靠谱的项目.首要条件,目前尚未完全确认给予的移动操作平台,但主要也是在WM和Android中选择。个人知道的应用的嵌入数据库仅有不多的几个, sqlite、db4o、再有就是Berkeley ,最后这个由所闻但没有使用过,现在好像在oracle旗下。  移动设备从从选择一款使用的数据库后,下一个问题就是和j2ee系统的整合工作。

 

当移动设备提交数据或者接受web数据的话,主要有2种基本方法,数据流和文件流的处理。

  • 数据流的实现原则大体是将数据组成XML或者JSON这类可以进行解析的格式,因为移动设备和j2ee平台都有对应自身支持或者第三方扩展类库所以实现难度不大,并且由于数据的内容比较简单,所以应该不需要太繁复的实现。个人喜欢json格式的处理,由于近两年来的开发中一直都在使用,感觉类似这类企业应用中使用json完全可行,cf3.5环境下可选扩展的更多,android查看说明和其他老手的文章也是有直接支持的。如果数据格式不是很复杂的,我认完全可以替代N年以前的xml设计方案。
  • 文件流的实现原理是利用选择的嵌入数据库的一些跨平台的特点,比如在一个老的也是移动cf2.0+j2ee应用的项目,当时实现的方法是以wbservice传送sqlite数据库文件,在java环境中操作数据库,读取数据并重新插入企业应用的oracle数据库中,反向操作则是java生成sqlite数据库文件,再由移动设备进行接收并使用。我们一直在使用这种方式,但当初sqlite的实现是在java中使用jni的方法处理的,其实还是依赖于sqlite.dll这个动态链接库的。

目前面临的较大的顾虑和问题就是文件流方式下如何传输,因为就个人理解,如果当数据量过大的情况下,在内存中先去对象再组成数据流传输应该没有直接发送压缩的数据文件来得快吧。目前待实现的项目筑平台是HP Unix+j2ee开发的,如果能够完满的支持跨平台的数据库操作时最好的结果。目前也仅仅有实现的思路,但是所有的方法都尚有待考证。sqlite+j2ee基本上不成问题,pure jdbc的方法确实有,只不过版本是08年的,到目前是否通用还没来得及尝试。db4o我倒是实现了c#和java都可以对同一个数据文件进行插入查询操作,但是查询的结果都是通过自己平台插入的数据,但是从官方的文档中可以看到crosing platform这个知识点说明的,而且还有对应的typealias支持扩展,db4o现在可见的相关文档还不是很多,可能需要自行摸索,风险较sqlite大一些。至于oracle的那个Berkeley,这么多年了也是只闻其,但没有实际的应用,不过现在看来还想可以支持sql处理了,不过其核心好像是sqlite吧,囧。

 

尽管目前这个项目还没有进入开发,并且没有明确地提上日程,但是未雨绸缪我想还是必要的,因为早晚是需要做的。嵌入数据库的选型也影响了下一步的处理。如果确实没有能够完美解决跨平台处理数据的数据库方案,那么也只能从数据流的压缩和优化上想办法了。

 


 

原创粉丝点击