“Informix Gateway Manager” sau “Cum sa distrugi un produs software”
Situație: Se da un sistem informatic (critic pentru funcționarea companiei), scris în Informix 4GL și rulând pe AIX. Apoi acest sistem trebuie conectat cu un robot industrial aflat la 1200 km distanta, comandat de un software proprietar; comenzile sunt transmise prin inserarea unor înregistrări într-o bază de date Oracle ce rulează pe Windows.
Soluții posibile:
- Aplicația 4GL scrie comenzile într-un fișier, fișierul este transferat automat către serverul Windows și un alt program inserează conținutul fișierului în Oracle.
- Aplicația 4GL inserează datele direct în Oracle, folosind un program ce conectează în mod transparent Oracle și Informix.
Evident, a doua este soluția preferată. Cautând o soluție pentru conectarea Informix-ului cu Oracle, am găsit Informix Enterprise Gateway Manager (EGM). Conform documentației, pe de o parte EGM se conectează la Oracle (prin ODBC), iar pe de alta apare ca un alt server Informix. Aplicația 4GL folosește o interogare distribuită pentru a insera înregistrări în EGM, inserând de fapt în Oracle. În felul acesta, programatorii nu trebuie sa se preocupe de lucrul cu Oracle, de salvat date în fișiere și de importat date; tot ce trebuie sa facă este o interogare distribuita.
Realitatea: Credeți ca este așa simplu? Da’ de unde! În primul rând, durează săptămâni până găsești un partener IBM care să iți ofere o versiune de EGM pentru teste – asta după ce încearcă sa iți vândă un software scris de ei care face ceva ce nu ai nevoie și de care nici nu i-ai întrebat. Apoi, este o aventură să identifici care din cele circa 50 de versiuni prezente pe disc este versiunea potrivită pentru arhitectura și sistemul tău de operare. După acești primi pași, începe adevărata aventură: configurarea EGM.
Începi sa configurezi EGM. Primul pas: driverele ODBC. Dacă nu ai ales bine versiunea de instalat, nu te poți conecta la Oracle. După ce te dai cu capul pereți câteva ore, suni la suportul tehnic IBM. Ei te refuza, ca nu ai cumpărat suportul tehnic pentru EGM. Degeaba le spui ca vrei sa evaluezi EGM înainte de a cumpăra, pe ei nu ii interesează: nu ai customer number, nu primești suport. Începi sa tragi sfori, negociezi la sânge cu reprezentatul de vânzări care are grija de tine și obții suport tehnic. După alte ore pe telefon cu suportul tehnic, ajungi la concluzia ca nu ai instalat versiunea potrivita. O iei de la capăt cu alta versiune și reușești sa te conectezi la Oracle. Îți vine să sărbătorești, dar te sună programatorul și te întreabă când se poate conecta la Oracle.
Încerci, timp de câteva zile, toate variantele de configurare la care va puteți gândi tu și specialistul IBM – degeaba! Apoi activezi logurile EGM și Informix și încerci câteva sute de conectări și interogări și trimiți rezultatele la IBM. Este evident ca este o problemă, dar nu se știe care. Activezi system tracing și reiei cele câteva sute de conectări și interogări. Cantitatea de informație obținută este de aproape 100 de ori mai mare, dar se identifica problema. EGM este destul de vechi și nu poate autentifica decât conturi care au parola criptată cu funcția (clasică) crypt(). Parolele criptate cu această metodă nu folosesc decât primele 8 caractere din parola introdusă, limitând sever calitatea parolei și securitatea oferită. Dacă serverul tău folosește un alt algoritm de criptare a parolei (SHA512, de exemplu), atunci EGM nu poate autentifica userul folosit la conectare și aplicația 4GL nu se poate conecta la EGM pentru a comunica cu Oracle.
Ok, schimbi algoritmul de criptare a parolei pentru userul folosit de Informix și EGM funcționează, programatorii sunt fericiți și tu poți să te bucuri, în sfârșit!, de weekend. Luni dimineață, deși nimeni nu s-a atins de EGM sau Informix, EGM nu mai funcționează!
Ce este de facut?
Iei un computer cu Windows, instalezi driverele ODBC pentru Oracle, instalezi driverele ODBC pentru Informix, instalezi Strawberry Perl și gata! Scrii un script care se conectează la Informix, citește datele pentru Oracle, se conectează la Oracle, scrie datele citite din Informix, apoi citește datele din Oracle și le scrie în Informix, totul într-o buclă infinită.
Informix este un produs extraordinar, dar pe care IBM nu îl omoară numai și numai pentru are o imensă bază de utilizatori foarte fideli. Cu toate acestea, IBM încearcă din greu să promoveze DB2 în dauna Informix. Păcat.
Current Mood:
Sad


0 Responses to “Informix Gateway Manager”
Leave a Reply