java - RFC:远程编辑非常大的二进制文件的好方法是什么?

标签 java editor client-server large-files rfc

我有许多相当大的二进制文件(固定长度记录,其布局在另一个文本文件中描述)。数据文件最大可达 6 GB。布局文件(cobol copybook)较小,通常小于 5 KB。

所有数据文件都集中在 GNU/Linux 服务器中(尽管它们是在大型机中生成的)。

我需要为测试人员提供编辑这些二进制文件的方法。有一个名为 RecordEdit ( http://record-editor.sourceforge.net/ ) 的免费产品,但它有两个严重的缺点:

  1. 它强制测试人员下载 通过SFTP传输大文件,只为了 每次稍微上传一次 已经做出改变。 非常 效率低下。

  2. 它加载整个 文件存入工作内存,渲染 除了相对较小的以外,它对所有人都没用 数据文件。

我想到的是基于 Java 的客户端/服务器架构:

  • 服务器将永久运行 过程,监听 面向版本的请求来自 客户端。此类请求将 包括类似的内容

    • 返回可用文件列表

    • 锁定特定文件的版本

    • 修改该记录中的数据

    • 返回第 n 页记录

    等等……

  • 客户端可以采用任何形式 (基于桌面的 RCP——这是我的第一个候选者——,ncurses 在同一台服务器上,一个中间网络 应用程序...)只要它能够 向服务器发送请求。

为了实现该方案,我一直在探索 NIO(因为它的缓冲区)和 MINA(因为协议(protocol)透明性)。然而,在进一步推进这项工作之前,我想收集您的专家意见。

我的方法是解决问题的合理方法吗?

使用我正在考虑的语言和框架来做到这一点是否可行?方便吗?

您是否知道任何与我正在尝试做的事情类似或与之相关的模式、蓝图、成功案例或开放项目?

最佳答案

据我所知,这里棘手的事情是解码服务器上的文件。一旦你写好了,它应该很容易。

我建议,无论您使用客户端是什么,它基本上都应该上传该人的更改的“差异”。

为这些数据创建一个类似数据库(或使用现有数据库)的东西可能有意义吗?还是说太多了?

根据有多少人需要执行此操作,快速而肮脏的解决方案是通过 X 转发运行程序 - 这消除了许多问题..只要该服务器有相当多的 RAM免费。

关于java - RFC:远程编辑非常大的二进制文件的好方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3136546/

相关文章:

winforms - 编写文档编辑器的编程技巧?

visual-studio - Visual Studio 2008 - 小 map

linux - Server单个端口(socket)最大并发连接数

c# - 我应该在 C# 中为我的项目使用 WPF 还是 Windows 窗体应用程序?

java - 编写一个 junit 测试用例来调用方法

java - 仅重复 3 个字母最多 6 次

java - 如何使用 IContentAssist 处理器在自动完成中显示弹出的附加信息

python - 如何从客户端接收 int 和 string 的缓冲区,并正确存储它们? (cpp 服务器,python 客户端)

java - 致命异常:AsyncTask (Android)

java - Swing 高性能图表库