Gli "Ospiti" della Sala Macchine |
Home Page | Commenti | Articoli | Faq | Documenti | Ricerca | Archivio | Storie dalla Sala Macchine | Contribuire | Imposta lingua:en it | Login/Register
Comunque, questo progetto prevede fra le altre cose un caricamento di certi dati sull'applicativo partendo da un file XML estratto dalle basi dati dei server centrali.
Prima di procedere facciamo un breve excursus su come abbiamo iniziato ad essere coinvolti nel progetto.
Una bella mattina di inverno una collega (quella che era molto incinta e che ora, dopo la maternità è tornata al lavoro ancora più bella di prima) mi chiede cosa ne so di XML poichè $Boss da noi e $Rimba1 dai crucchi, i $PL (no, non PirLa, ma Project Leader... ma poi la cosa non si rivelerà così diversa....) le chiedono di produrre il file di interfaccia per alimentare il file XML.
Non è che sia un mostro di nozioni XML, anzi, ma con qualche ricerca mirata su gurgle trovo quanto serve:
$IO - allora: fatti dare lo schema XML che vediamo com'è in modo che scriviamo un bel programma che formatta in un file di testo con i dovuti separatori, virgole o altro. Questo file se lo potranno passare in un parser che farà quello che deve fare.
Nota: Tenete presente che i dati di partenza sono tutti su mainframe con il vecchio OS/390 (lo z/OS secondo i soloni dei sistemi centrali è troppo nuovo e non garantisce la necessaria garanzia), parte su DB2, parte su DL/I e parte su VSAM. Il linguaggio, ovviamente, è cobol.
Un paio d'ore dopo entra $Collega_che_era_molto_incinta che mi dà la ferale notizia:
$Collega - ehm... pare che vogliano direttamente il file XML come cavolo facciamo? $IO - Strano, ma va bè, chiedi a $Boss di acquistare un parser decente e senti il collega della rete di prestarti un server che facciamo noi. $Collega - Sai, l'ho già chiesto (sveglia la ragazza)... $Boss ha detto che dobbiamo fare tutto su host... in cobol!!! Sai, non abbiamo più budget sul progetto...
(Tralascio la parte in cui cerco di lanciarmi su per le scale con il mio badile)
Questo è il modo in cui il progetto è partito da noi, lascio immaginare il proseguio. Dico solo che alla fine il programma di estrazione e formattazione in XML è pronto ed è pure abbastanza efficiente (cavolo quanto è in gamba quella donna!). La situazione che si viene a creare è la seguente: file di initial-load 11GB, file incrementali 1 GB al mese! Ognuno di questi grandi XML contiene n flussi XML più piccoli: non possiamo fare n files perchè l'host non è per nulla flessibile.
Prodotti i file telefoniamo ai rimbambiti in Germania per mandare l'initial-load:
$IO - Ehi, abbiamo il file: è un pò grosso, ma il Connect non dovrebbe
avere problemi
$Rimba1 - Connect? Non puoi mandarlo via FTP?
$IO - Certo, se avessimo la porta 21 aperta: non hai letto la parte sulla
sicurezza?
$Rimba1 - Ah, già... ma noi non abbiamo mai usato Connect... che cos'è?
$IO - (alzando gli occhi al cielo) Vai a pagina 5 della documentazione
di $Boss
$Rimba1 - Ah, ho capito: ti passo $Rimba2 che se ne occupa lui
$Rimba2 - Ciao $IO eccomi, sono pronto quanto è il primo file?
$IO - 11GB. Hai abbastanza spazio?
$Rimba2 - Aspetta... si, ho 20 GB liberi sulla directory del Connect
$IO - Ok, parto
Click click.... ronf... ronf... (provate voi a trasferire 11GB su una linea da 8 MB)no grazie
$IO - $Rimba2, ci sei? Il Connect ha finito: hai il primo file.
$Rimba2 - ... click click.... ok, ti facciamo sapere.
Fast forward di 2 settimane (si, 2 settimane...)
Entra $Collega in ufficio con una faccia un pò strana... seguita da $Boss... guai in vista!
$Collega - sai, mi ha chiamata Rimba1
$IO - alla buon'ora: gli mandiamo gli altri?
$Collega - no, non sanno splittare i file.
$Io - ma cosa cav... LORO, che ci vendono una roba in XML non sanno split...
$Boss (zittendomi bruscamente) - lo facciamo noi da host.
$Collega - ma $Boss, lo sai che il cobol è rigido: se non sappiamo a
priori quanti flussi sono da separare non possiamo farci nulla. No,
scordatelo.
$Boss (guardandomi) - e qualche accrocchio in REXX?
$IO - lascia stare: semmai possiamo passare dallo unix e splittare lì
$Boss - no, yadayadabubu... (non ci ho capito una fava, ma il concetto
è che il "sacro" unix dei dealers non deve essere "inquinato" dal
CRM, e, siccome qualcuno lo penserà, no, da noi linux non può entrare
per motivi di prestigio... per favore niente commenti...
vabbe'sto'zitto...)
$IO - Ok, chiama i rimbambiti e fammici parlare.
Componinumero
$IO - Ciao Rimba1, mi spieghi il problema?
$Rimba1 - allora: noi riceviamo il file sul Connect dello unix, la
cartella in cui arriva è una share che il server winzozz vede come unità
di rete. Il programma di caricamento del $CRM scoppia.
$IO - sistemate il programma
$Rimba1 - finitisoldi, ne vogliamo altri
$IO - usate il parser per spezzarlo
$Rimba1 - finitisoldi, ne vogliamo altri
$IO - fate un programmino in java per spezzarlo
$Rimba1 - finitisoldi, ne vogliamo altri
$IO - usate lo unix del connect per spezzarlo con un csplit
$Rimba1 - lo unix non è nostro
$Boss - Senti Rimba1, quanto ci costa farvi sistemare il programma o
acquistare un parser adeguato?
$Rimba1 - costerebbe come minimo $cifrone (ma che razza di parser vogliono?)
$Boss (incazzato nero) - ok, ti facciamo sapere
E sbatte giù il telefono.
$IO - Boss, sono dei pirla, e tu pure: per $cifrone / 20 te lo risolvo io
il problema, ci stai?
$Boss - Figurati, se non ci sono riusciti loro....
$IO - Ci stai o no?
$Boss - Sempre testardo vero? ok fammi sapere...
$IO - Aspetta.... tu firma la mia proposta (click click ....
swirr.. stampadocumento)
$Boss - uff.. che fiscale che sei... ecco: fammi sapere...
$IO - no, aspetta che ti dò la soluzione
Scarico GNUWIN32 (1 minuto), installo (2 minuti), scrivo un bello scriptino .bat con csplit per winzozz che spezza l'input ad ogni TAG finale (5 minuti fra preparazione e test con files di esempio), scrivo 2 righe di documentazione (che alla fine erano tipo copia questo di quà, doppio click, avanti, avanti, ok) e passo il tutto ai rimbambiti via e-mail $Boss è diventato paonazzo, $Collega ride a crepapelle, dei rimbambiti, che intanto hanno richiamato, non vedo la faccia per telefono, ma me li immagino in stato catatonico. Par che funzioni tutto. Ed in effetti il mattino dopo il file è caricato e predisponiamo i batch per mandare mensilmente i files incrementali. $Boss è andato con il mio documento firmato al personale... vediamo se mantengono l'impegno.
Bè, io e $Collega tutto sommato ci siamo divertiti, ma io mi sento un pò in colpa: è stato come rubare le caramelle ad un bambino...
tu lo sai vero che adesso dovrai mantenerlo all'infinito quel bat?
Daniele Levi
04/03/2007 00:00
le storie degli ospiti sono in ordine sparso, quindi 'precedente' e 'successiva' possono portare su storie di altri autori
I commenti sono aggiunti quando e soprattutto se ho il tempo di guardarli (io o l'autore della storia) e dopo aver eliminato le cagate, spam, tentativi di phishing et similia. Quindi non trattenete il respiro.
In aggiunta: se il vostro commento non viene pubblicato non scrivetemi al riguardo, evidentemente non era degno di pubblicazione.
Domanda Di Antonino Russo postato il 22/07/2010 12:18
@ Antonino Russo Di Daniele Levi postato il 23/07/2010 08:28
Il presente sito e' frutto del sudore della mia fronte (e delle mie dita), se siete interessati a ripubblicare uno degli articoli, documenti o qualunque altra cosa presente in questo sito per cortesia datemene comunicazione (o all'autore dell'articolo se non sono io), cosi' il giorno che faccio delle aggiunte potro' avvisarvi e magari mandarvi il testo aggiornato.
Questo sito era composto con VIM, ora e' composto con VIM ed il famosissimo CMS FdT.
Questo sito non e' ottimizzato per la visione con nessun browser particolare, ne' richiede l'uso di font particolari o risoluzioni speciali. Siete liberi di vederlo come vi pare e piace, o come disse qualcuno: "Finalmente uno dei POCHI siti che ancora funzionano con IE5 dentro Windows 3.1".