かなり大きなバイナリファイルがいくつかあります (固定長のレコードで、そのレイアウトは別のテキスト ファイルに記述されています)。データ ファイルのサイズは 6 GB にもなります。レイアウト ファイル (COBOL コピーブック) はサイズが小さく、通常は 5 KB 未満です。
すべてのデータ ファイルは GNU/Linux サーバーに集中しています (ただし、メインフレームで生成されています)。
これらのバイナリ ファイルを編集する手段をテスターに提供する必要があります。RecordEdit ( http://record-editor.sourceforge.net/ )という無料の製品がありますが、2 つの重大な欠点があります。
テスターは SFTP 経由で巨大なファイルをダウンロードする必要があり、わずかな変更が加えられるたびにもう一度アップロードするだけです。非常に 非効率的です。
ファイル全体を作業メモリにロードし、比較的小さなデータ ファイルを除いてすべてのファイルを役に立たなくします。
私が考えているのは、Java ベースのクライアント/サーバー アーキテクチャです。
サーバーは永続的なプロセスを実行し、クライアントからのエディション指向のリクエストをリッスンします。そのようなリクエストには次のようなものが含まれます
利用可能なファイルのリストを返す
編集のために特定のファイルをロックする
そのレコードのこのデータを変更する
レコードの n ページ目を返す
など…</p>
クライアントは、サーバーにリクエストを送信できる限り、任意の形式 (私の最初の候補であるデスクトップの RCP ベース、同じサーバーのncurses 、中間 Web アプリケーションなど) を取ることができます。
このスキームを実装するために、NIO (バッファがあるため) と MINA (プロトコルの透過性があるため) を調査してきました。ただし、この取り組みをさらに進める前に、専門家の意見を収集したいと思います。
私の問題を組み立てる合理的な方法はありますか?
私が考えている言語とフレームワークを使用してそれを行うことは可能ですか? 便利ですか?
私がやろうとしていることに似ている、または関係しているパターン、青写真、成功例、または進行中のプロジェクトを知っていますか?