{"id":7776,"date":"2012-06-06T07:57:10","date_gmt":"2012-06-06T06:57:10","guid":{"rendered":"http:\/\/changlonet.com\/blog\/?p=7776"},"modified":"2012-06-06T07:57:10","modified_gmt":"2012-06-06T06:57:10","slug":"siga-a-esa-variable","status":"publish","type":"post","link":"https:\/\/changlonet.com\/blog\/siga-a-esa-variable\/","title":{"rendered":"Siga a esa variable"},"content":{"rendered":"<p>\t\t\t\tLlevo unos d\u00edas que parezco un taxista de pel\u00edcula polic\u00edaca cl\u00e1sica, cuando el protagonista para un taxi y dice: \u201cSiga a ese coche\u201d mientras saca un par de billetes de d\u00f3lar y se los da al conductor.\u00a0<\/p>\n<p><a href=\"https:\/\/changlonet.com\/blog\/wp-content\/uploads\/2012\/06\/taxi-negro.jpg\"><img fetchpriority=\"high\" decoding=\"async\" class=\"aligncenter size-full wp-image-7777\" title=\"taxi negro\" src=\"https:\/\/changlonet.com\/blog\/wp-content\/uploads\/2012\/06\/taxi-negro.jpg\" alt=\"\" width=\"253\" height=\"199\" srcset=\"https:\/\/changlonet.com\/blog\/wp-content\/uploads\/2012\/06\/taxi-negro.jpg 253w, https:\/\/changlonet.com\/blog\/wp-content\/uploads\/2012\/06\/taxi-negro-150x118.jpg 150w\" sizes=\"(max-width: 253px) 100vw, 253px\" \/><\/a><\/p>\n<p>Salvo que en mi caso voy siguiendo a una variable por dentro de las intrincadas relaciones de frameworks, plataformas, sistemas, redes y servicios que <em>forman<\/em> (o deforman) el sistema digital de una gran empresa.\u00a0<\/p>\n<p>Hace un tiempo nos piden a\u00f1adir una prestaci\u00f3n nueva en el software de mi empresa de por las ma\u00f1anas. Aparentemente es algo sencillo. El Departamento de Marketing nos proporcionar\u00e1 una marca para que podamos ofrecer servicios especiales a algunos clientes escogidos por ellos. Para lo cual, Marketing nos enviar\u00e1 diariamente un fichero con la relaci\u00f3n de clientes que formar\u00e1n parte de la promoci\u00f3n. Las aplicaciones que de verdad se relacionan con el cliente, si \u00e9ste tiene en una variable de su ficha comercial un uno, le ofrecer\u00e1n el nuevo producto y si tiene un cero no se lo ofrecer\u00e1n. Hasta aqu\u00ed algo sencillo.\u00a0<\/p>\n<p>Pero lo que parece un agradable paseo, se va convirtiendo en una persecuci\u00f3n por la mara\u00f1a de la diversidad de los servicios. El listado de marketing, llega en una hoja de c\u00e1lculo. Lo convertimos a un formato que el Host sea capaz de entender. La ficha de clientes reside en el Host (el gran ordenador central con Cobol) as\u00ed que all\u00ed se queda la variable. Empezamos las pruebas y no van bien. La variable de marketing, la captura un m\u00f3dulo de preventa general, que tambi\u00e9n corre en Cobol, a trav\u00e9s de una transacci\u00f3n contra el m\u00f3dulo de personas. El m\u00f3dulo de preventa informa a su vez a una aplicaci\u00f3n que tambi\u00e9n reside en el host, pero que est\u00e1 en otra aplicaci\u00f3n, y seg\u00fan el valor de la variable, le indica al m\u00f3dulo de Terminal Financiero (que corre en Java) que pinte una cosa u otra en la pantalla que ven los empleados cuando hacen la venta. Pero hay otro m\u00f3dulo que tiene que hacer otras comprobaciones antes de la venta. Tiene otro m\u00f3dulo de evaluaci\u00f3n de clientes, escrito en Java y C++. Recibe el valor del m\u00f3dulo de preventa anterior, lo pasa por una serie de algoritmos, y al final informa por un lado a otra aplicaci\u00f3n en un programa en Cobol en el host, y a una aplicaci\u00f3n Web (para los clientes que operan directamente) mediante un servicio Web que luego enlaza con una p\u00e1gina escrita en asp de Microsoft. Adem\u00e1s otra aplicaci\u00f3n en Cobol, recoge el valor de la variable y la usa para enviar correos personalizados a los clientes finales, ofreci\u00e9ndoles los nuevos servicios. Esta aplicaci\u00f3n es heredada y corre todav\u00eda en Visual Basic y tiene un sistema de comunicaci\u00f3n mediante ficheros planos que el host le deja en un directorio por ftp y los procesa en diferido.<\/p>\n<p>Pues aqu\u00ed estoy yo, buscando en qu\u00e9 lugar del laberinto, la variable que en origen val\u00eda 1, ahora vale 0. Y una tarea que parece trivial, se convierte en una lucha contra los elementos. Tenemos que habilitar la generaci\u00f3n de logs en los diferentes m\u00f3dulos del host en Cobol, por donde pasa la variable. Pero como cada m\u00f3dulo tiene una arquitectura, no son iguales. Algunos no admiten unos o ceros, as\u00ed que la varibale se convierte en true o false. Otros solo admiten letras, as\u00ed que la variable se convierte en S o N\u2026<\/p>\n<p>Adem\u00e1s administraci\u00f3n de sistemas, no nos deja activar los logs cuando lo necesitamos y todos a la vez, porque degradamos el rendimiento del sistema. As\u00ed que solo podemos poner los logs un ratito y cuando haya poca carga en el sistema. Los m\u00f3dulos de Java\u2026 cada uno lleva un sistema de logs diferente y m\u00e1s complicado. Y sucede lo mismo, hay que pedir permiso antes de activarlos, porque frenan mucho a su servidor. El servicio Web que recoge el valor de la variable, hace el log de otra forma\u2026 Al final el m\u00f3dulo que env\u00eda los avisos a los clientes en diferido es el m\u00e1s sencillo de revisar, nos vamos a los ficheros del ftp y vemos que se graba all\u00ed.\u00a0<\/p>\n<p>As\u00ed que nos pasamos varios d\u00edas siguiendo a una variable que solo tiene un uno o un cero. Vamos que solo es un bit. Si llega a tener valores m\u00e1s complejos\u2026\u00a0<\/p>\n<p>Yo entiendo que la especializaci\u00f3n lleva a ir usando herramientas diferentes para cada cosa, pero en ocasiones esto provoca algunos problemas. Y por supuesto, me falta comentar, que cada m\u00f3dulo es mantenido por una empresa externa diferente, que tiene distinta cultura, horarios e incluso est\u00e1n en otros pa\u00edses con husos horarios modificados.\u00a0<\/p>\n<p>Y lo peor es explicarle al usuario que para saber c\u00f3mo enviar un cero y un uno, nos pasamos una semana.\u00a0<\/p>\n<p>Bueno os dejo, que tengo que volver a ponerme la gabardina y el sombrero y buscar otro taxi, que tengo que volver a perseguir a la variable escurridiza.\t\t<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Llevo unos d\u00edas que parezco un taxista de pel\u00edcula polic\u00edaca cl\u00e1sica, cuando el protagonista para un taxi y dice: \u201cSiga a ese coche\u201d mientras saca un par de billetes de d\u00f3lar y se los da al conductor.\u00a0<\/p>\n<p><a href=\"https:\/\/changlonet.com\/blog\/wp-content\/uploads\/2012\/06\/taxi-negro.jpg\"><\/a><\/p>\n<p>Salvo que en mi caso voy siguiendo a una variable por dentro de las intrincadas relaciones de frameworks, plataformas, sistemas, redes y servicios que <em>forman<\/em> (o deforman) el sistema digital de una gran empresa.\u00a0<\/p>\n<p>Hace un tiempo nos piden a\u00f1adir una prestaci\u00f3n nueva en el software de mi empresa de por las ma\u00f1anas. Aparentemente es algo sencillo.<\/p>\n","protected":false},"author":1,"featured_media":7777,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[13],"tags":[],"series":[],"class_list":["post-7776","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software"],"_links":{"self":[{"href":"https:\/\/changlonet.com\/blog\/wp-json\/wp\/v2\/posts\/7776","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/changlonet.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/changlonet.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/changlonet.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/changlonet.com\/blog\/wp-json\/wp\/v2\/comments?post=7776"}],"version-history":[{"count":0,"href":"https:\/\/changlonet.com\/blog\/wp-json\/wp\/v2\/posts\/7776\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/changlonet.com\/blog\/wp-json\/wp\/v2\/media\/7777"}],"wp:attachment":[{"href":"https:\/\/changlonet.com\/blog\/wp-json\/wp\/v2\/media?parent=7776"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/changlonet.com\/blog\/wp-json\/wp\/v2\/categories?post=7776"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/changlonet.com\/blog\/wp-json\/wp\/v2\/tags?post=7776"},{"taxonomy":"series","embeddable":true,"href":"https:\/\/changlonet.com\/blog\/wp-json\/wp\/v2\/series?post=7776"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}