我有许多相当大的二进制文件(固定长度记录,其布局在另一个文本文件中描述)。数据文件最大可达 6 GB。布局文件(cobol copybook)较小,通常小于 5 KB。
所有数据文件都集中在 GNU/Linux 服务器中(尽管它们是在大型机中生成的)。
我需要为测试人员提供编辑这些二进制文件的方法。有一个名为 RecordEdit ( http://record-editor.sourceforge.net/ ) 的免费产品,但它有两个严重的缺点:
它强制测试人员下载 通过SFTP传输大文件,只为了 每次稍微上传一次 已经做出改变。 非常 效率低下。
它加载整个 文件存入工作内存,渲染 除了相对较小的以外,它对所有人都没用 数据文件。
我想到的是基于 Java 的客户端/服务器架构:
服务器将永久运行 过程,监听 面向版本的请求来自 客户端。此类请求将 包括类似的内容
返回可用文件列表
锁定特定文件的版本
修改该记录中的数据
返回第 n 页记录
等等……
客户端可以采用任何形式 (基于桌面的 RCP——这是我的第一个候选者——,ncurses 在同一台服务器上,一个中间网络 应用程序...)只要它能够 向服务器发送请求。
为了实现该方案,我一直在探索 NIO(因为它的缓冲区)和 MINA(因为协议(protocol)透明性)。然而,在进一步推进这项工作之前,我想收集您的专家意见。
我的方法是解决问题的合理方法吗?
使用我正在考虑的语言和框架来做到这一点是否可行?方便吗?
您是否知道任何与我正在尝试做的事情类似或与之相关的模式、蓝图、成功案例或开放项目?
最佳答案
据我所知,这里棘手的事情是解码服务器上的文件。一旦你写好了,它应该很容易。
我建议,无论您使用客户端是什么,它基本上都应该上传该人的更改的“差异”。
为这些数据创建一个类似数据库(或使用现有数据库)的东西可能有意义吗?还是说太多了?
根据有多少人需要执行此操作,快速而肮脏的解决方案是通过 X 转发运行程序 - 这消除了许多问题..只要该服务器有相当多的 RAM免费。
关于java - RFC:远程编辑非常大的二进制文件的好方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3136546/