Hoka Kuk,
agradezco su interés y las preguntas detalladas sobre la librería. Me disculpo por la demora en responder; he estado inmerso en otros compromisos laborales.
Propósito Inicial:
El objetivo primario de la librería era demostrar la viabilidad de la inserción de registros en caliente a un archivo COBOL desde un entorno PHP, y que estos registros pudieran ser leídos correctamente por el runtime de COBOL.
A continuación, abordo sus inquietudes:
1. Naturaleza Binaria de los Ficheros Indexados de PowerCOBOL
Es correcto que llamo a los archivos indexados de COBOL "binarios" debido a su estructura física subyacente, y esta es la explicación técnica (IA):
Codificación Binaria: A diferencia de los archivos de texto que almacenan datos como caracteres legibles (ASCII o EBCDIC), los ficheros indexados de COBOL (incluyendo PowerCOBOL) son binarios porque sus datos se guardan en la memoria tal como son utilizados por el programa. Esto es especialmente cierto para campos numéricos definidos con cláusulas como COMP-3 (Packed Decimal), COMP (Binary/Native), o COMP-6. Estos formatos almacenan números de manera compacta, ocupando menos espacio que su representación en texto, pero son ilegibles directamente por un humano o un editor de texto estándar.
Bloques de Control y Metadatos: La cabecera (que contiene la firma RMKF) y los árboles de índice del archivo también son estructuras binarias, esenciales para el sistema de tiempo de ejecución (runtime) de COBOL.
Conclusión: Un archivo indexado no es una simple secuencia de registros de texto, sino una mezcla compleja de registros de datos compactos, metadatos y estructuras de índices, lo que colectivamente lo define como un fichero binario estructurado.
2. Alcance y Compatibilidad de la Librería PHP (RMKF)
Tiene razón al señalar que la compatibilidad entre los diversos formatos de archivos indexados es compleja, incluso dentro de la familia RMKF.
Mi librería ha sido diseñada y testeada íntegramente con ficheros indexados generados por PowerCOBOL (Fujitsu) v4 y 5, un entorno del cual poseo la licencia y me permite realizar pruebas exhaustivas de lectura, inserción y validación de registros y realizar las pruebas de ingenieria inversa sobre mis propios archivos.
Compatibilidad RMKF: Si bien PowerCOBOL utiliza la firma de cabecera RMKF (que también es empleada por RM/COBOL), las especificaciones internas de las funciones de gestión de archivos, los códigos de estado y, crucialmente, los niveles de formato específicos de cada implementación pueden diferir ligeramente.
Restricciones de Prueba: Actualmente, no he tenido la oportunidad de probar la librería contra entornos que utilicen la firma RMKF, pero no provengan de Fujitsu (como RM/COBOL o AcuCOBOL). Por lo tanto, aunque la compatibilidad es altamente probable debido a la similitud del formato RMKF base, no está certificada hasta que pueda realizar pruebas directas.
Lamento que no haya habido comentarios sobre la prueba de concepto de inserción de registros. Esperaba una respuesta más positiva respecto al interés y a las pruebas que otros pudieran realizar con distintos runtimes, como RM/COBOL, especialmente en lo referente a la compatibilidad del formato RMKF y sus índices asociados.
Dado que no hubo devoluciones, he decidido posponer el proyecto por el momento y continuar las pruebas por mi cuenta, explorando otras alternativas que permitan una validación más amplia del manejo de índices y estructuras de datos.
Ni bien tenga un panorama más completo, retomare el tema para ayudar a quienes realmente les interese su implementacion.
Gracias nuevamente por su tiempo y por plantear preguntas tan específicas que confirman la complejidad de estos formatos de archivo legados.
Saludos cordiales.
Jorge Anna.
pd. Subo la librería RmFile.php y RmFileDelete adaptada a la version PHP 8.x
|