En este módulo, aprenderemos cómo el Lenguaje de Control (CL) puede interactuar con otros sistemas a través de la red. Exploraremos los conceptos básicos de la comunicación de red, los comandos y técnicas disponibles en CL para realizar estas tareas, y proporcionaremos ejemplos prácticos y ejercicios para reforzar el aprendizaje.

Objetivos del Módulo

  • Entender los conceptos básicos de la comunicación de red.
  • Aprender a utilizar comandos CL para la comunicación de red.
  • Implementar ejemplos prácticos de comunicación de red en CL.
  • Resolver ejercicios prácticos para consolidar los conocimientos adquiridos.

  1. Conceptos Básicos de la Comunicación de Red

¿Qué es la Comunicación de Red?

La comunicación de red se refiere al intercambio de datos entre sistemas a través de una red. En el contexto de CL, esto puede implicar la transferencia de archivos, la ejecución de comandos en sistemas remotos, o la interacción con servicios web.

Protocolos Comunes

  • FTP (File Transfer Protocol): Utilizado para transferir archivos entre sistemas.
  • HTTP/HTTPS: Utilizado para interactuar con servicios web.
  • SSH (Secure Shell): Utilizado para ejecutar comandos en sistemas remotos de manera segura.

  1. Comandos CL para la Comunicación de Red

Comando FTP

El comando FTP en CL se utiliza para transferir archivos entre sistemas. A continuación, se muestra un ejemplo básico de cómo utilizar este comando.

// Ejemplo de uso del comando FTP en CL
PGM
   DCL VAR(&REMOTEFILE) TYPE(*CHAR) LEN(50) VALUE('remote_file.txt')
   DCL VAR(&LOCALFILE) TYPE(*CHAR) LEN(50) VALUE('local_file.txt')
   DCL VAR(&REMOTEHOST) TYPE(*CHAR) LEN(50) VALUE('192.168.1.100')
   DCL VAR(&USERNAME) TYPE(*CHAR) LEN(50) VALUE('user')
   DCL VAR(&PASSWORD) TYPE(*CHAR) LEN(50) VALUE('password')

   // Conectar al servidor FTP
   FTP RMTSYS(&REMOTEHOST) USER(&USERNAME) PASSWORD(&PASSWORD)

   // Descargar archivo
   GET &REMOTEFILE &LOCALFILE

   // Desconectar
   QUIT
ENDPGM

Comando RUNRMTCMD

El comando RUNRMTCMD se utiliza para ejecutar comandos en sistemas remotos. Aquí hay un ejemplo de cómo usarlo.

// Ejemplo de uso del comando RUNRMTCMD en CL
PGM
   DCL VAR(&REMOTEHOST) TYPE(*CHAR) LEN(50) VALUE('192.168.1.100')
   DCL VAR(&COMMAND) TYPE(*CHAR) LEN(100) VALUE('ls -l')

   // Ejecutar comando remoto
   RUNRMTCMD CMD(&COMMAND) RMTLOCNAME(&REMOTEHOST)

ENDPGM

Comando HTTPGETCLOB

El comando HTTPGETCLOB se utiliza para realizar solicitudes HTTP y obtener datos de servicios web. A continuación, se muestra un ejemplo.

// Ejemplo de uso del comando HTTPGETCLOB en CL
PGM
   DCL VAR(&URL) TYPE(*CHAR) LEN(100) VALUE('http://api.example.com/data')
   DCL VAR(&RESPONSE) TYPE(*CHAR) LEN(1000)

   // Realizar solicitud HTTP GET
   HTTPGETCLOB URL(&URL) CLOB(&RESPONSE)

   // Mostrar respuesta
   SNDPGMMSG MSG(&RESPONSE)

ENDPGM

  1. Ejemplos Prácticos

Ejemplo 1: Transferencia de Archivos con FTP

PGM
   DCL VAR(&REMOTEFILE) TYPE(*CHAR) LEN(50) VALUE('remote_file.txt')
   DCL VAR(&LOCALFILE) TYPE(*CHAR) LEN(50) VALUE('local_file.txt')
   DCL VAR(&REMOTEHOST) TYPE(*CHAR) LEN(50) VALUE('192.168.1.100')
   DCL VAR(&USERNAME) TYPE(*CHAR) LEN(50) VALUE('user')
   DCL VAR(&PASSWORD) TYPE(*CHAR) LEN(50) VALUE('password')

   // Conectar al servidor FTP
   FTP RMTSYS(&REMOTEHOST) USER(&USERNAME) PASSWORD(&PASSWORD)

   // Descargar archivo
   GET &REMOTEFILE &LOCALFILE

   // Desconectar
   QUIT
ENDPGM

Ejemplo 2: Ejecutar Comando Remoto

PGM
   DCL VAR(&REMOTEHOST) TYPE(*CHAR) LEN(50) VALUE('192.168.1.100')
   DCL VAR(&COMMAND) TYPE(*CHAR) LEN(100) VALUE('ls -l')

   // Ejecutar comando remoto
   RUNRMTCMD CMD(&COMMAND) RMTLOCNAME(&REMOTEHOST)

ENDPGM

Ejemplo 3: Obtener Datos de un Servicio Web

PGM
   DCL VAR(&URL) TYPE(*CHAR) LEN(100) VALUE('http://api.example.com/data')
   DCL VAR(&RESPONSE) TYPE(*CHAR) LEN(1000)

   // Realizar solicitud HTTP GET
   HTTPGETCLOB URL(&URL) CLOB(&RESPONSE)

   // Mostrar respuesta
   SNDPGMMSG MSG(&RESPONSE)

ENDPGM

  1. Ejercicios Prácticos

Ejercicio 1: Transferir un Archivo a un Servidor FTP

Instrucciones:

  1. Conéctate a un servidor FTP.
  2. Sube un archivo local llamado upload_file.txt al servidor.
  3. Desconéctate del servidor.

Solución:

PGM
   DCL VAR(&LOCALFILE) TYPE(*CHAR) LEN(50) VALUE('upload_file.txt')
   DCL VAR(&REMOTEFILE) TYPE(*CHAR) LEN(50) VALUE('remote_upload_file.txt')
   DCL VAR(&REMOTEHOST) TYPE(*CHAR) LEN(50) VALUE('192.168.1.100')
   DCL VAR(&USERNAME) TYPE(*CHAR) LEN(50) VALUE('user')
   DCL VAR(&PASSWORD) TYPE(*CHAR) LEN(50) VALUE('password')

   // Conectar al servidor FTP
   FTP RMTSYS(&REMOTEHOST) USER(&USERNAME) PASSWORD(&PASSWORD)

   // Subir archivo
   PUT &LOCALFILE &REMOTEFILE

   // Desconectar
   QUIT
ENDPGM

Ejercicio 2: Ejecutar un Comando en un Sistema Remoto

Instrucciones:

  1. Conéctate a un sistema remoto.
  2. Ejecuta el comando df -h para ver el uso del disco.
  3. Desconéctate del sistema remoto.

Solución:

PGM
   DCL VAR(&REMOTEHOST) TYPE(*CHAR) LEN(50) VALUE('192.168.1.100')
   DCL VAR(&COMMAND) TYPE(*CHAR) LEN(100) VALUE('df -h')

   // Ejecutar comando remoto
   RUNRMTCMD CMD(&COMMAND) RMTLOCNAME(&REMOTEHOST)

ENDPGM

Ejercicio 3: Obtener Datos de un Servicio Web y Guardarlos en un Archivo

Instrucciones:

  1. Realiza una solicitud HTTP GET a http://api.example.com/data.
  2. Guarda la respuesta en un archivo llamado response.txt.

Solución:

PGM
   DCL VAR(&URL) TYPE(*CHAR) LEN(100) VALUE('http://api.example.com/data')
   DCL VAR(&RESPONSE) TYPE(*CHAR) LEN(1000)
   DCL VAR(&FILE) TYPE(*CHAR) LEN(50) VALUE('response.txt')

   // Realizar solicitud HTTP GET
   HTTPGETCLOB URL(&URL) CLOB(&RESPONSE)

   // Guardar respuesta en archivo
   WRKMBRPDM FILE(&FILE) MBR(&RESPONSE)

ENDPGM

Conclusión

En este módulo, hemos explorado cómo utilizar el Lenguaje de Control (CL) para la comunicación de red. Hemos aprendido a utilizar comandos como FTP, RUNRMTCMD y HTTPGETCLOB para transferir archivos, ejecutar comandos en sistemas remotos y obtener datos de servicios web. Los ejemplos prácticos y ejercicios proporcionados deben ayudarte a consolidar estos conocimientos y aplicarlos en situaciones del mundo real.

En el próximo módulo, profundizaremos en técnicas de depuración y optimización para mejorar la eficiencia y el rendimiento de tus programas CL.

© Copyright 2024. Todos los derechos reservados