我有许多相当大的二进制文件(固定长度的记录,其布局在另一个 -<strong>textual- 文件中描述)。数据文件可以达到 6 GB。布局文件(cobol copybooks)很小,通常小于 5 KB。
所有数据文件都集中在 GNU/Linux 服务器中(尽管它们是在大型机中生成的)。
我需要为测试人员提供编辑这些二进制文件的方法。有一个名为 RecordEdit ( http://record-editor.sourceforge.net/ ) 的免费产品,但它有两个严重的缺点:
它迫使测试人员通过 SFTP 下载大文件,每次稍作更改时才再次上传。非常 低效。
它将整个文件加载到工作内存中,除了相对较小的数据文件外,它对所有文件都无用。
我想到的是基于 Java 的客户端/服务器架构:
服务器将运行一个永久进程,监听来自客户端的面向版本的请求。此类请求将包括以下内容
返回可用文件列表
锁定特定文件以供编辑
修改该记录中的此数据
返回第 n 页记录
等等……</p>
客户端可以采用任何形式(基于 RCP 的桌面——这是我的第一个候选者——、同一服务器中的ncurses、中间 Web 应用程序……)只要它能够向服务器发送请求。
为了实现该方案,我一直在探索 NIO(因为它的缓冲区)和 MINA(因为协议透明性)。但是,在进一步推进这项工作之前,我想收集您的专家意见。
我的方法是解决问题的合理方法吗?
使用我正在考虑的语言和框架是否可行?方便吗?
您是否知道与我正在尝试做的事情相似或与之相关的任何模式、蓝图、成功案例或开放项目?