Ok, solía trabajar con AS/400 y sistemas de mainframe desde .NET hace varios años. Puede que no sea capaz de responder sus preguntas directamente, pero puedo informarle qué funcionó para mí y algunas de las cosas que hice en el pasado.
Un término común para este tipo de trabajo es Enterprise Application Integration (EAI) para que pueda comenzar leyendo sobre eso. Por lo que yo sé, es posible tener más que solo bases de datos DB2 en AS/400. Hubo 2 formas en las que trabajamos con pantalla verde (o herencia) aplicaciones:
- un acceso a la fuente de datos/tiendas directamente
- Crear una sesión, enviar pulsaciones de teclas, tales como F10, F4, etc., que la aplicación de legado utiliza para navegar a través de diferentes pantallas y tomar datos de puntos fijos en la pantalla heredada (esto a veces se llama raspado de pantalla).
Para responder parcialmente a la primera pregunta, para tener acceso a las fuentes de datos directamente creamos DSN (nombre de origen de datos) usando controladores ODBC que estaban disponibles a partir de 2 empresas en el momento, Rumba (hecha por Wall datos), y Attachmate (hecho por creo que IBM). Para crear un DSN de ODBC, normalmente ingresaba a Herramientas de administración/Fuentes de datos y agregaba un DSN del sistema. Necesitará el nombre de host (sistema heredado), el nombre de usuario para iniciar sesión y la contraseña. Luego usamos estos DSN dentro de las aplicaciones .NET para crear una conexión con las aplicaciones heredadas. Si tiene un DSN, puede usar algo como SQL Server DTS/SSIS para tomar datos del origen y guardarlos en alguna ubicación, ya sea la base de datos, los archivos CSV, los archivos de Excel, etc. También es muy posible que tenga una herramienta de informes (Crystal/SQL Server Reporting Services) accede a la fuente de datos directamente utilizando el DSN para que pueda informar directamente desde la fuente de datos. También probablemente podría crear conexiones DSN-less también, hace años necesitábamos DSN.
Para responder parcialmente a su segunda pregunta, es posible llamar y usar la lógica en las aplicaciones de pantalla verde si así lo desea. Una pantalla verde generalmente se divide en un número determinado de filas y columnas, y usamos un estándar llamado HLLAPI que envió las pulsaciones de teclas desde un sistema Windows a las posiciones en una pantalla heredada. Usamos Rumba para esto que estaba disponible como control OCX y estoy seguro de que Attachmate también lo está.Por ejemplo, podría crear un formulario de Winforms con cuadros de texto de ID de usuario y contraseña, luego crear una sesión para la aplicación heredada, y generalmente la primera pantalla sería una pantalla de inicio de sesión. Luego, usando las posiciones de los campos de nombre de usuario y contraseña en la pantalla verde, envíe la ID de usuario y la contraseña a esas posiciones, y luego envíe una tecla Enter o lo que sea necesario para iniciar sesión. Luego, puede navegar a otra pantalla, p. una pantalla de búsqueda, envíe los datos y las teclas para realizar una búsqueda, luego tome los datos resultantes de la pantalla verde. Otro enfoque es crear formularios Win/Web que repliquen la aplicación de pantalla verde y obtengan datos de los almacenes de datos directamente. La ventaja de esto es que no tiene que conocer las teclas/navegación de la aplicación heredada, que podría ser engorrosa para un sistema de pantalla verde grande. No está bien o mal, depende de las circunstancias. Nuestra compañía hizo una mezcla de ambos.
Para su tercera pregunta, depende del tipo de informes que desee. Si necesitan estar en tiempo real, entonces puede conectarse directamente al almacén de datos. Si no necesitan ser en tiempo real, podría hacer transferencias nocturnas de los datos del sistema heredado y almacenar los datos en SQL Server, por ejemplo, y luego ejecutar sus informes con los datos de SQL Server.
Una respuesta para su 4ta pregunta es que definitivamente necesitará poner sus manos en alguien que conozca la aplicación de pantalla verde. Pasará horas y horas revisando las pantallas de la aplicación heredada, por lo que acceder a los usuarios que conocen el sistema es crucial. También necesitará identificación de inicio de sesión y contraseñas, etc.
Finalmente, hay algunas empresas de terceros que se especializan en transferir datos de origen a destino, una de las que está por encima de mi cabeza es Data Mirror. Otro enfoque sería utilizar un producto de integración de nivel medio como BizTalk o Tibco, los cuales toman datos de una o más fuentes y los insertan en uno o más destinos, pero esto puede ser excesivo dependiendo de sus requisitos.
Espero que ayude y buena suerte :)
No cambie el valor del sistema QCCSID de 65535 sin pruebas significativas primero. Aunque es una muy buena idea no ejecutar el sistema en 65535 si la red es importante, algunos sistemas tienen sus aplicaciones configuradas para depender de él. – user2338816