Web Service Cobol

di il
34 risposte

Web Service Cobol

Salve a tutti,

premetto che su l'argomento sono all'anno zero, e sono stato generoso.

La nostra struttura lavora su cobol unix, si sta creando la necessità di creare delle classi richiamate da web.

La costruzione delle classi, che no ho mi fatto, mi preoccupa poco, alla fine è sintassi, ed una microclasse l'ho già creata. Ma per richiamarla dall'esterno che si deve fare ?

Sono veramente in difficoltà, se qualcuno mi può aiutare, spiegandolo come a un bambino …

Grazie a tutti
Mario

34 Risposte

  • Re: Web Service Cobol

    Dire che una classe sia solo sintassi, vuol dire non avere per nulla chiaro che cosa sia una classe.

    Ovviamente la puoi usare come se fosse un modo alternativo per aggregare funzioni ma NON E' ESATTAMENTE (e nemmeno lontanamente) la stessa cosa.

    E' un po' come dire che una macchina di F1 e' come un'utilitaria: tanto entrambe hanno 4 ruote, un motore, un volante, i freni, il cambio marce e vanno a benzina. Certo, e la si puo' usare anche come un'utilitaria. Ma usando questo approccio si rischia di farsi molto male ...

    Per quanto riguarda realizzare web services, la cosa NON E' banale.

    1) web service e' un termine GENERICO per indicare diverse tecnologie abbastanza complesse e MOLTO differenti tra loro: SOAP, RESTful, XMLRPC, banali url HTTP
    2) esistono un bel po' di STANDARD che DEVONO essere seguiti affiche' un web service sia utilizzabile da ALTRE applicazioni.
    3) ci sono delle FILOSOFIE da seguire per quanto riguarda il passaggio parametri, il valore di ritorno, la gestione degli errori, la gestione delle sessioni, la persistenza delle informazioni, la struttura delle URL, la strutura dei DATI che devono essere manipolati, ...

    TUTTA l'infrastruttura si basa su HTTP, e quindi, una chiamata al web service DEVE passare tutta una serie di informazioni, e seguire una serie di PROTOCOLLI ben definiti.

    Implementare tutto questo A MANO e' suicidio. MEGLIO (MOOOOOLTO meglio) cercare una libreria che implementa TUTTO quello che serve.

    MA l'uso della libreria NON BASTA, perche', di nuovo, c'e' una FILOSOFIA che va compresa e seguita.

    Ed ANCHE se le applicazioni sono realizzate dalla stessa azienda, l'idea di INVENTARSI uno standard sempliciotto per le proprie necessita' (supponendo di ottenere risultati in tempi inferiori) E' UNA PESSIMA idea per un'infinita' di motivi.

    Quindi, forse, ti conviene appoggiarti a qualcuno che conosce queste tecnologie/argomenti, che NON SI IMPARANO in giorni!!!!!

    E non si possono spiegare a suon di post.

    E men che meno ad un bambino

    (Vabbe! Battutona pessima )
  • Re: Web Service Cobol

    Adesso, non esageriamo.
    E' esperienza comune farsi le proprie interfaccine proprietarie verso l'esterno, senza tanti c. e mazzi, basati ad esempio su "pacchettoni" JSON o simili.

    La domanda da porsi è: chi chiamerà queste funzioni, e per fare cosa?
    Stabilito questo si può dare una direzione al discorso.
  • Re: Web Service Cobol

    Tanto per avere,più o meno, i concetti di web server,web service,e magari web api ti direi di leggere qualche guida iniziale e magari qualche libro,questo ti permetterà di circoscrivere e renderti conto del "problema" , il cobol microfocus mi sembra che metta a disposizione un web server per i web service ,il tuo "cobol" qual'è? ,ciao
  • Re: Web Service Cobol

    Il cobol su cui lavoro è microfocus su AIX.

    L'idea aziendali è costruire delle classi che interrogano la base dati e rispondono le informazioni.

    In sostanza io sto costruendo una classe, tra cui sicuramente c'è il login, e voglio rendere queste funzioni accessibili all'esterno. Credo di aver capito che devo costruire dei WSLD, ma come questi "parlino" con il codice cobol sotto AIX per me me è un mistero !

    So che ci vorrebbe tempo, ma non ne ho, anche perché incombe il supporto aziendale (siamo un CED che fa di tutto) e quindi ...
  • Re: Web Service Cobol

    Ho trovato questo che forse avrai già letto: https://supportline.microfocus.com/Documentation/books/sx50/dwwint.htm
    >>ma come questi "parlino" con il codice cobol sotto AIX per me me è un mistero !
    per me ancora di più
    attento a dare la giusta importanza alla sicurezza , viaggia sotto https e per i parametri in input ai tuoi services passa da qualcosa simile ai sqlparameter c# per evitare sqlinjection e simili,rischi che un hacker ti cancelli i dati di una tabella ,fatti aiutare da qualcuno almeno per avere un riscontro, magari fai sapere,ciao
  • Re: Web Service Cobol

    Crash72 ha scritto:


    In sostanza io sto costruendo una classe, tra cui sicuramente c'è il login, e voglio rendere queste funzioni accessibili all'esterno.
    Cosa significa per te "all'esterno"?
    So che ci vorrebbe tempo, ma non ne ho, anche perché incombe il supporto aziendale (siamo un CED che fa di tutto) e quindi ...
    ... e quindi non riuscirai minimamente

    Quello in cui ti stai "imbarcando" è un progetto della durata di qualche mese, per un ottimo conoscitore del ramo e con parecchia esperienza.

    Se supponi di fare qualche "copia-incolla" da stackoverflow, o qualcosa del genere, insomma di cavartela con poco, forse dovrai riconsiderare le tue aspettative.
  • Re: Web Service Cobol

    +m2+ ha scritto:


    Crash72 ha scritto:


    In sostanza io sto costruendo una classe, tra cui sicuramente c'è il login, e voglio rendere queste funzioni accessibili all'esterno.
    Cosa significa per te "all'esterno"?

    Significa che una volta fatta la classe ed i suoi metodi sotto aix, ho bisogno di richiamarla dall'esterno. Cioè vorrei fare quello che serve affinche un applicativo, che ne so una pagina web, possa chiamare quel metodo di quella classe sotto la mia macchina AIX
    So che ci vorrebbe tempo, ma non ne ho, anche perché incombe il supporto aziendale (siamo un CED che fa di tutto) e quindi ...
    ... e quindi non riuscirai minimamente

    Quello in cui ti stai "imbarcando" è un progetto della durata di qualche mese, per un ottimo conoscitore del ramo e con parecchia esperienza.

    Non mi sto imbarcando, mi ci hanno imbarcato

    Se supponi di fare qualche "copia-incolla" da stackoverflow, o qualcosa del genere, insomma di cavartela con poco, forse dovrai riconsiderare le tue aspettative.
    Io mi accontenterei di riuscire a creare un primo step, con una classe, un metodo ed una chiamata ... che funzionino.

    Ma una vincita al superenalotto no !? Io mi voglio ritirare a vita privata
  • Re: Web Service Cobol

    Tutti vorremmo:
    - la botte piena
    - la moglie ubriaca
    - la salute
    - soldi in banca
    - l'amante 20-enne
    - l' """articolo""" che funziona
    - la mega villa
    - la ferrari,
    - la barca a vela
    - vincere alla lotteria ogni volta
    - ecc

    Purtroppo non funziona:

    - la fortuna e' cieca, ma la sfiga ci vede benissimo (e spesso prende pure la mira)
  • Re: Web Service Cobol

    migliorabile ha scritto:


    Tutti vorremmo:
    - la botte piena
    - la moglie ubriaca
    - la salute
    - soldi in banca
    - l'amante 20-enne
    - l' """articolo""" che funziona
    - la mega villa
    - la ferrari,
    - la barca a vela
    - vincere alla lotteria ogni volta
    - ecc

    Purtroppo non funziona:

    - la fortuna e' cieca, ma la sfiga ci vede benissimo (e spesso prende pure la mira)
    sottoscrivo tutto ...

    per la cronaca al superenalotto ho fatto 0 !
  • Re: Web Service Cobol

    Anche io ho fatto 0,ma ho risparmiato perchè invece di giocare ho scritto 6 numeri su notepad e poi ho verificato sui numeri usciti,risultato : 0 ,
    il link che ti ho postato ti è stato utile? ,
    scusa se insisto ma ricordati della possibilità di sqlinjection ,
  • Re: Web Service Cobol

    migliorabile ha scritto:


    Tutti vorremmo:
    - la botte piena
    - la moglie ubriaca
    - la salute
    - soldi in banca
    - l'amante 20-enne
    - l' """articolo""" che funziona
    - la mega villa
    - la ferrari,
    - la barca a vela
    - vincere alla lotteria ogni volta
    - ecc

    Purtroppo non funziona:

    - la fortuna e' cieca, ma la sfiga ci vede benissimo (e spesso prende pure la mira)
    Non per i figli dei ricchi.
  • Re: Web Service Cobol

    surfernet ha scritto:


    Anche io ho fatto 0,ma ho risparmiato perchè invece di giocare ho scritto 6 numeri su notepad e poi ho verificato sui numeri usciti,risultato : 0 ,
    il link che ti ho postato ti è stato utile? ,
    scusa se insisto ma ricordati della possibilità di sqlinjection ,
    Anche a me fanno paura gli S.I. quando lavoravo su Oracle abbiamo spesso dovuto implementare dei VPD per tutelare i dati.

    L'articolo purtroppo l'avevo già letto, ma non mi ha detto nulla in più di quel poco che sapevo, speravo di avere qualche banalissimo esempio ...
  • Re: Web Service Cobol

    Visto che diciamo così le so tutte su questo argomento ribadisco che la prima cosa da stabilire è chi chiama e come.

    Il client usa http, oppure è libero?
    Nel primo caso servirà qualcosa, su aix, che risponda sulla porta 80 e, tipicamente, usi un qualche genere di cgi.

    Nel secondo caso, cioè quello in cui il client è libero, allora userai tipicamente socket tcp, e non servirà un server http.

    Se supponiamo il primo caso allora ci vuole un server http il quale può essere direttamente sulla macchina.
    esso poi userà il sempiterno cgi per lanciare un eseguibile che prenderà da stdin i parametri (la stringa passata al server http) e scriverà su stdout il risultato.
    ovviamente no fastcgi cazzi e mazzi, partire col semplice.

    Quindi : puoi rimediare un server http?
    Puoi scrivere eseguibili che leggano da stdin e scrivano su stdout?
    se sì già a buon punto per una soluzione diciamo anni 91-92.
    Poco scalabile, ma rapida da implementare

    https://www.ibm.com/support/knowledgecenter/en/ssw_ibm_i_74/rzaie/rzaieconcgi.htm

    Ovviamente se per caso hai apache o qualcosa di simile tanto meglio
  • Re: Web Service Cobol

    +m2+ ha scritto:


    Visto che diciamo così le so tutte su questo argomento ribadisco che la prima cosa da stabilire è chi chiama e come.

    Il client usa http, oppure è libero?
    Nel primo caso servirà qualcosa, su aix, che risponda sulla porta 80 e, tipicamente, usi un qualche genere di cgi.

    Nel secondo caso, cioè quello in cui il client è libero, allora userai tipicamente socket tcp, e non servirà un server http.

    Se supponiamo il primo caso allora ci vuole un server http il quale può essere direttamente sulla macchina.
    esso poi userà il sempiterno cgi per lanciare un eseguibile che prenderà da stdin i parametri (la stringa passata al server http) e scriverà su stdout il risultato.
    ovviamente no fastcgi cazzi e mazzi, partire col semplice.

    Quindi : puoi rimediare un server http?
    Puoi scrivere eseguibili che leggano da stdin e scrivano su stdout?
    se sì già a buon punto per una soluzione diciamo anni 91-92.
    Poco scalabile, ma rapida da implementare

    https://www.ibm.com/support/knowledgecenter/en/ssw_ibm_i_74/rzaie/rzaieconcgi.htm

    Ovviamente se per caso hai apache o qualcosa di simile tanto meglio
    La seconda ...

    PS
    Grazie mille per l'aiuto
Devi accedere o registrarti per scrivere nel forum
34 risposte