En aquest tema, explorarem com el COBOL, un llenguatge de programació tradicionalment utilitzat en sistemes mainframe, pot interactuar amb serveis web moderns. Aprendrem a consumir i publicar serveis web des de programes COBOL, permetent així la integració amb aplicacions modernes i altres sistemes.

Objectius del Tema

  • Entendre els conceptes bàsics dels serveis web.
  • Aprendre a consumir serveis web des de COBOL.
  • Aprendre a publicar serveis web utilitzant COBOL.
  • Veure exemples pràctics de codi COBOL que interactua amb serveis web.

Conceptes Bàsics dels Serveis Web

Què és un Servei Web?

Un servei web és una aplicació que proporciona funcionalitats a altres aplicacions a través d'Internet o una xarxa privada, utilitzant protocols estàndard com HTTP/HTTPS. Els serveis web permeten la comunicació entre diferents aplicacions, independentment del llenguatge de programació en què estiguin escrites.

Tipus de Serveis Web

  • SOAP (Simple Object Access Protocol): Un protocol basat en XML per a l'intercanvi d'informació estructurada.
  • REST (Representational State Transfer): Un estil arquitectònic que utilitza HTTP per a la comunicació i és més lleuger que SOAP.

Consumir Serveis Web des de COBOL

Requisits Previs

  • Un entorn COBOL compatible amb serveis web (per exemple, Micro Focus COBOL).
  • Coneixements bàsics de protocols HTTP i formats de dades com XML i JSON.

Exemple de Consumir un Servei Web REST

Pas 1: Configuració de l'Entorn

Assegura't que el teu entorn COBOL té les biblioteques necessàries per a la comunicació HTTP i la manipulació de JSON/XML.

Pas 2: Codi COBOL per Consumir un Servei Web REST

IDENTIFICATION DIVISION.
PROGRAM-ID. ConsumeWebService.

ENVIRONMENT DIVISION.
CONFIGURATION SECTION.

DATA DIVISION.
WORKING-STORAGE SECTION.
01  WS-URL            PIC X(100) VALUE 'http://api.example.com/data'.
01  WS-RESPONSE       PIC X(1000).
01  WS-STATUS-CODE    PIC 9(3).

PROCEDURE DIVISION.
    DISPLAY "Consumint Servei Web REST...".

    CALL 'HTTP-GET'
        USING WS-URL
        RETURNING WS-RESPONSE
        ON EXCEPTION
            DISPLAY "Error en la crida HTTP".
        END-CALL.

    DISPLAY "Codi de Resposta: " WS-STATUS-CODE.
    DISPLAY "Resposta del Servei Web: " WS-RESPONSE.

    STOP RUN.

Explicació del Codi

  • WS-URL: Conté l'URL del servei web que volem consumir.
  • WS-RESPONSE: Emmagatzema la resposta del servei web.
  • WS-STATUS-CODE: Emmagatzema el codi de resposta HTTP.

El programa fa una crida HTTP GET a l'URL especificat i mostra la resposta.

Publicar Serveis Web Utilitzant COBOL

Requisits Previs

  • Un servidor d'aplicacions compatible amb COBOL (per exemple, Micro Focus Enterprise Server).
  • Coneixements bàsics de protocols HTTP i formats de dades com XML i JSON.

Exemple de Publicar un Servei Web SOAP

Pas 1: Configuració de l'Entorn

Assegura't que el teu entorn COBOL té les biblioteques necessàries per a la publicació de serveis web.

Pas 2: Codi COBOL per Publicar un Servei Web SOAP

IDENTIFICATION DIVISION.
PROGRAM-ID. PublishWebService.

ENVIRONMENT DIVISION.
CONFIGURATION SECTION.

DATA DIVISION.
WORKING-STORAGE SECTION.
01  WS-REQUEST        PIC X(1000).
01  WS-RESPONSE       PIC X(1000).

PROCEDURE DIVISION.
    DISPLAY "Publicant Servei Web SOAP...".

    CALL 'SOAP-SERVICE'
        USING WS-REQUEST
        RETURNING WS-RESPONSE
        ON EXCEPTION
            DISPLAY "Error en la crida SOAP".
        END-CALL.

    DISPLAY "Resposta del Servei Web: " WS-RESPONSE.

    STOP RUN.

Explicació del Codi

  • WS-REQUEST: Emmagatzema la sol·licitud SOAP.
  • WS-RESPONSE: Emmagatzema la resposta SOAP.

El programa publica un servei web SOAP que processa la sol·licitud i retorna una resposta.

Exercicis Pràctics

Exercici 1: Consumir un Servei Web REST

  1. Modifica l'exemple de codi per consumir un servei web REST que retorna informació meteorològica.
  2. Mostra la temperatura actual a la consola.

Exercici 2: Publicar un Servei Web SOAP

  1. Modifica l'exemple de codi per publicar un servei web SOAP que retorna la data i hora actual.
  2. Prova el servei web utilitzant una eina com SoapUI.

Solucions als Exercicis

Solució a l'Exercici 1

IDENTIFICATION DIVISION.
PROGRAM-ID. ConsumeWeatherService.

ENVIRONMENT DIVISION.
CONFIGURATION SECTION.

DATA DIVISION.
WORKING-STORAGE SECTION.
01  WS-URL            PIC X(100) VALUE 'http://api.weather.com/current'.
01  WS-RESPONSE       PIC X(1000).
01  WS-STATUS-CODE    PIC 9(3).
01  WS-TEMPERATURE    PIC X(10).

PROCEDURE DIVISION.
    DISPLAY "Consumint Servei Web REST...".

    CALL 'HTTP-GET'
        USING WS-URL
        RETURNING WS-RESPONSE
        ON EXCEPTION
            DISPLAY "Error en la crida HTTP".
        END-CALL.

    DISPLAY "Codi de Resposta: " WS-STATUS-CODE.
    DISPLAY "Resposta del Servei Web: " WS-RESPONSE.

    * Parseja la resposta per obtenir la temperatura
    MOVE FUNCTION JSON-GET-VALUE(WS-RESPONSE, 'temperature') TO WS-TEMPERATURE.

    DISPLAY "Temperatura Actual: " WS-TEMPERATURE.

    STOP RUN.

Solució a l'Exercici 2

IDENTIFICATION DIVISION.
PROGRAM-ID. PublishDateTimeService.

ENVIRONMENT DIVISION.
CONFIGURATION SECTION.

DATA DIVISION.
WORKING-STORAGE SECTION.
01  WS-REQUEST        PIC X(1000).
01  WS-RESPONSE       PIC X(1000).
01  WS-DATE-TIME      PIC X(20).

PROCEDURE DIVISION.
    DISPLAY "Publicant Servei Web SOAP...".

    CALL 'SOAP-SERVICE'
        USING WS-REQUEST
        RETURNING WS-RESPONSE
        ON EXCEPTION
            DISPLAY "Error en la crida SOAP".
        END-CALL.

    * Obtenim la data i hora actual
    MOVE FUNCTION CURRENT-DATE TO WS-DATE-TIME.

    * Construïm la resposta SOAP
    STRING
        '<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">'
        '<soap:Body>'
        '<GetDateTimeResponse>'
        '<DateTime>' WS-DATE-TIME '</DateTime>'
        '</GetDateTimeResponse>'
        '</soap:Body>'
        '</soap:Envelope>'
        INTO WS-RESPONSE.

    DISPLAY "Resposta del Servei Web: " WS-RESPONSE.

    STOP RUN.

Conclusió

En aquest tema, hem après com el COBOL pot interactuar amb serveis web moderns, tant consumint com publicant serveis web. Hem vist exemples pràctics de codi COBOL que realitzen aquestes tasques i hem proporcionat exercicis per reforçar els conceptes apresos. Amb aquestes habilitats, els programadors COBOL poden integrar aplicacions mainframe amb sistemes moderns, ampliant així les capacitats dels seus programes.

© Copyright 2024. Tots els drets reservats