tag:blogger.com,1999:blog-31397816826774322772024-03-20T05:29:39.551-06:00Integración a la MexicanaChilliCoderhttp://www.blogger.com/profile/01288599922644011117noreply@blogger.comBlogger66125tag:blogger.com,1999:blog-3139781682677432277.post-53808829838552815382022-05-24T16:55:00.001-06:002022-05-24T16:55:31.450-06:00De transformación tecnológica en transformación<p>Hola queridos 3 lectores, hace mucho que dejamos su 3 autores abandonado este blog, pero nunca es tarde para seguir dejando escrito lo que vamos viendo en este mundo llamado tecnologias de la Información.</p><p>Continuo en la Institucion de Salud, la más grande de latinoamerica, con otras responsabilidades, ahora del lado de la operacion que soporta todos los sistemas.</p><p>Hace poco tuve la visita de un amigo que platicando con él me decia que como he vivido estos años en esta institución y espontaneamente le dije de ola en ola, y le conte un poco de mi historia.</p><p>Aún recuerdo cuando por casualidad de la vida, llegue al mundo de los sistemas, fue por allá de 1994 cuando estudie el bachillerato tecnológico para "Técnico Programador Analista", y ahí empezó la magia con el "Hola Mundo" en COBOL y el 000100 IDENTIFICATION DIVISION.</p><br />En esos 3 años, empece a conocer COBOL, PASCAL, C y C++, cada uno con su encanto, en Sistemas Operativos conocí el MS-DOS y hasta programar en ventanas y eventos con clics en Visual Basic.<br /><br />En poco tiempo me vi envuelto en la magia de una carrera llamada Ing. en Sistemas Computacionales ( en el glorioso Instituto Tecnológico de Pachuca), donde aprendí grandes cosas desde profundizar en matemáticas, estadísticas hasta electrónica, algoritmos, y "nuevas" tecnologias, pero sobre todo aprendí que por mucho que trates de ir al día, la tecnología avanza demasiado rápido y el dificil seguirle el paso.<br /><br />Eso mismo pasa en la industria, en las empresas que invierten en tecnología para soportar sus procesos de negocio,. En el poco tiempo de experiencia que tengo en este mundo, he visto nacer grandes transformaciones digitales.<br /><br />Si tratara de resumir lo que he visto de mi experiencia sobre transformaciones y tratando de hacer un escueto roadmap podría resumir algo así:<br /><br />PROCESAMIENTO BACK OFFICE ---> CLIENTE SERVIDOR ---> SERVIDORES DE APLICACIONES ---> INTEGRACIÓN DE SERVICIOS ----> DIGITALIZACIÓN ---> SERVICIOS EN NUBE ---> CONTENEDORES<br /><br />En ese pequeño roadmap, muchas tecnologías han emergido como lideres desde los 70's a nuestros días, desde IBM Mainframe, HP Tandems, SPARCs, X86, Servicios de Nube, Contenedores, Microservicios y sin mencionar los diversos lenguajes de desarrollo.<br /><br />Como en el mar la vida es mas sabrosa, le he bautizado olas de Transformación Tecnológica, a lo que me ha tocado vivir y por raro que parezca siempre observo que lo de moda es los "LEGADOS" y como usas esa información para REUTILIZARLOS o REEMPLAZARLOS con las "nuevas" tecnologías.<br /><br />El ritmo con el que avanza la tecnología y los visionarios tecnológicos demandan nuevas cosas es muy rápido, en ciclos promedio en 6 años lo nuevo se vuelve legado y lo legado obsoleto, y sin embargo... se mueve.<br /><br />El mantener los legados es un tema de alto costo para las empresas, ya que debes de manejar contratos extendidos de soporte y tener demasiados especialistas para atender las necesidades que aun en fechas recientes el negocio te demanda.<br /><br />En fin, el conclusión, creo que debemos de aprender a vivir con este ritmo y construir en la actualizad soluciones robustas que soporten el paso del tiempo cuando estas se vuelvan un legado... así como subirse y de ser posible dirigir los ciclos de transformación tecnológica que estamos pasando en cada una de sus empresas o instituciones.<br /><br />Saludos<br />Javier Cortes (El Tuzo)http://www.blogger.com/profile/09903812629859341718noreply@blogger.com0Ciudad de México, CDMX, México19.4326077 -99.133208-8.8776261361788471 -134.289458 47.742841536178844 -63.976957999999996tag:blogger.com,1999:blog-3139781682677432277.post-84812201482219218302013-09-30T01:33:00.000-06:002013-09-30T01:33:00.027-06:00En el 2013 que ha pasadoBien, pues este blog fue terriblemente abandonado por todos sus autores , je
Aunque les digo, que los tres autores siguen vivos y coleando
El Tuzo sigue en la institución de salud que yo deje en julio 2012.
Chillicoder sigue pegando duro a Rails ...
Técnicamente que ha pasado por mi vida de bytes
He aprendido Node.js
Me he metido a TOGAF y me he certificado, al igual que Archimate...
Me adentre a ver los puntos de arquitectura de software y aterrizarlo con patrones de Fowler y POSA ...
Y los MOOC me han ayudado mucho . Gracias a ellos se puede aterrizar el tema de Big Data, Programación funcional, arquitectura empresarial
Estoy con deseo de un bocado de implantar una arquitectura empresarial que haga sentido a la organización que decida esa aventura ...
No me he metido al asunto de emprendedores, aunque sigo de cerca varias ideas
Gamification me inspira para algo así
El tema de software factories aun no lo abandono como un concepto viable para implantar DSL, DDD, patrones
SOA no reniego de ella, solo veo cuanto falta por rascar en el tema ...
Sigo renegando de programadores, arquitectos y similares que son soberbios o que no hacen bien su chamba
El Tuzo y otro nuevo amigo, Rafael Cruz, agregaron otra comunidad de arquitectura a la mexicana ...
gusdelacthttp://www.blogger.com/profile/01280814569141135139noreply@blogger.com0tag:blogger.com,1999:blog-3139781682677432277.post-32789469767896439142012-10-21T23:46:00.000-06:002012-10-21T23:48:00.220-06:00No andaba muerto y ni andaba de parrandaHola!
Del grupo Tuzo, Martín, yo Gus me desaparecí por un rato muy prolongado.
Por fin decidí plasmar algunas ideas ...
En julio di mi brinco ya tan necesario y cambie de trabajo. Mi tiempo ya había acabado y a pesar de que mucho trabajo había por hacer aún, fue lo sano. Tuve muchos sentimientos encontrados pero ya estaba yo en una situación de agotamiento y estrés fuerte.
Por un mes, en donde estuve explorando opciones, desde trabajar con un proveedor muy grande de software y patrocinador de los Avengers, en una farmaceutica, con una empresa de consultoría de procesos al final opté ingresara IT Era, para trabajar en temas de Arquitectura Empresarial.
Ingresé el 16 de septiembre, no fue para mí desconocido el ambiente de trabajo.
Me ha dado la oportunidad de ver TOGAF con mas detalle y explorar como aplicarlo.
De hecho, regrese este viernes 19 de octubre de Quito, donde impartí el curso de TOGAF a un Banco de la región Pichincha. Fue una experiencia muy agradable, donde mi conocimiento fue útil.
Tengo muchas ideas en mi cabeza sobre Arquitectura Empresarial. De hecho, me lleva a nuevas experiencias sobre integración a la Mexicana.
Espero ser constante en escribir mis ideas en este blog
gusdelacthttp://www.blogger.com/profile/01280814569141135139noreply@blogger.com1tag:blogger.com,1999:blog-3139781682677432277.post-1658622471278775802012-09-25T00:25:00.000-06:002012-09-25T00:25:48.471-06:00De vuelta a la actividadHola queridos 3 lectores,<br />
<br />
Hasta hace unos meses me daba a la tarea de empaparme de conceptos de arquitectura empresarial, estudiando y leyendo con el fin de reforzar algunos proyectos que llevo a cabo, en esta ardua vida de búsqueda de oportunidades.<br />
<br />
Me he topado en los últimos meses a diferentes retos tanto técnicos como laborales y de cada uno de ellos voy aprendiendo.<br />
<br />
No había tenido oportunidad de agradecer a <a href="mailto:gusdelact@gmail.com">gusdelact </a>por todo el apoyo que me brindo durante casi 8 anios de convivir juntos y enfrentar varias responsabilidades, he aprendido mucho de el, ha sido mi guru. En este largo camino de lo profesional te deseo mucha suerte mi estimado.<br />
<br />
Ahora he quedado al mando por decirlo de una manera de un equipo de trabajo que sigue con la filosofia de este grupo de locos y eso me hace ser mucho mas responsable y cuidar al equipo. Sigo aprendiendo día con día que lo valioso que es el crecer tanto humanamente como profesionalmente para alimentarte de los buenos resultados.<br />
<br />
Sigo aprendiendo que por mas que digas ser "algo" o saber de "algo" no vale mas que los hechos y el trabajo. Aprendo que a veces tienes que ver el traje del emperador aunque sea un poquito con tal de que te dejen trabajar. Aprendo que los "Pseudo Arquitectos"siguen siendo arrogantes y hasta tontos, pero que hay que lidiar con ellos. Creo en el trabajo y la honestidad de la gente que en verdad desea aprender por el deseo de hacerlo o no por el ego del saber.<br />
<br />
Actualmente me encuentro con varios retos profesionales en mi institucion y fuera de ella cosas interesantes de <a href="http://www.opengroup.org/togaf/">TOGAF</a>, de <a href="http://en.wikipedia.org/wiki/Alm">ALM</a>, de <a href="https://collaboration.opengroup.org/projects/soa-ref-arch/">SOA Reference</a>, etc que les ire platicando poco a poco.<br />
<br />
Espero nos vuelvan a leer y como dice un clásico ....<br />
<br />
Por una integración mejor.<br />
<br />
Hasta la vista<br />
<br />
Tuzo<br />
<br />
<br />
<br />Javier Cortes (El Tuzo)http://www.blogger.com/profile/09903812629859341718noreply@blogger.com1tag:blogger.com,1999:blog-3139781682677432277.post-53807679100546590582011-08-19T01:11:00.003-06:002011-08-19T01:17:35.343-06:00Primera fase de Arquitectura Empresarial, listaAcabo mi día, reflexionando sobre el logro que tuvimos en mi equipo de trabajo
<br />
<br />Gracias al entendimiento de modelos como TOGAF y Archimate, las diversas opiniones de los integrantes del equipo; logramos una versión de un repositorio de Arquitectura empresarial con un empuje inicial muy bueno.
<br />
<br />Representa el salir de la teoría a la práctica
<br />
<br />El demostrar que un "arquitecto" no es titulo nobiliario, sino se gana con trabajo
<br />
<br />Acabamos celebrando, comiendo pizza, como una fraternidad, que nos une un interés común. Mejorar nuestro ámbito
<br />
<br />Me daré tiempo para platicar los detalles técnicosgusdelacthttp://www.blogger.com/profile/01280814569141135139noreply@blogger.com1tag:blogger.com,1999:blog-3139781682677432277.post-18178024008393934632011-07-31T14:41:00.007-06:002011-07-31T15:29:26.688-06:00Leyendo a TanenbaumPor andar rascando a temas de mainframe y anexas, acabe desenterrando el libro de Tanenbaum, Organización de Computadoras pero la segunda edición, de 1984.<br /><br />Lo interesante, es que muchas personas del ramo de TI que se presumen arquitectos, deberín de leer este libro como ejemplo.<br /><br />Sin presunción alguna, Tanenbaum se pone a trabajar en los diferentes niveles de la organización (arquitectura de computadoras) y metódicamente describe cada uno de ellos y explica muchas veces las decisiones que llevaron al diseño y las restricciones que presentan<br /><br />Pues yo puedo decir, que gracias a que mi profesor de Arquitectura de Computadoras, tuve una visión del concepto de arquitectura. Me acuerdo que su definición de una arquitectura de computadora era la manera como se debe organizar los elementos de procesamiento de símbolos. Elegante definición, por que no se fue al nivel de bytes ni de hardware. Y lo interesante de esa definción, es que no solo cubre los niveles de hardware o firmware; sino de software; y como escribe Tanenbaum en su libro, el hardware y software pueden indiscriminadamente cambiar papeles. <br /><br />Gracias a esa idea, cuando por primera vez tuve que hacer una arquitectura de solución, y de hecho sin tener precedentes teóricos del tema, salvo el ejemplo de arquitectura de computadoras; define la solución por bloques de procesamiento (como chips de software) que tenían una funcíon específica.<br /><br />Algún para de años después me tope con que la disciplina de arquitectura en software era un tema extenso; pero por desgracia mal entendido.<br /><br />Cerrando el tema con dos anécdotas. <br /><br />En mi última asistencia al taller de Arquitectura Empresarial que impartió Cutter; me senté en una mesa, donde obvio, todos se decían arquitectos. Por un azar, una persona le dí clases en su momento y por cierto su compañero medio chistin (de los que dicen comentarios poco asertivos); y me dicen que trabajan para una sociedad de inversión algo conocida (y que también conozco por sus a veces erroneas percepcions en conceptos de CMMI, desarrollo, pruebas). Le pregunto a la persona en cuestión, estás en desarrollo? y pues hagan de cuenta que le dije una ofensa o la denigre, y también su expresión corporal mostro disgusto a lo que le insinue. Me contesto, como crees! Yo soy arquitecto empresarial! No me quiero imaginar que tipo de arquitecturas diseñaran ese par de personas, pero dudo que le sirva a los equipos de desarrollo. Un arquitecto es alguien que sabe de técnicas de desarrollo, de tecnología.<br /><br />Otra mas, en el trabajo, se me acerca uno de los ingenieros de un proyecto "super importante" y me realizar preguntas sobre como hacer un tipo publish-suscribe con AJAX. Para no hacerles mas largo el cuento, le comento, pues hagan pruebas de concepto. Y a lo cual me contesta, pues es que el equipo de arquitectura es lógico, ellos no ven cuestiones de desarrollo.<br /><br />Es decir, parece que mucha gente está tomando el concepto de arquitectura como si fuera la misma visión erronea de la gente de procesos o pruebas; que son gente que no acaban agregando valor y dibujando cajitas bien bonitas en PowerPoint o con herramientas más caras de "arquitectura"<br /><br />Error muy malo. Lastima que no me aceptaron mi exposición para la Expo de Software Gurú, quería hacer un pequeño manifiesto de independencia hacia los susodichos arquitectos lógicos o de su torre de marfil, que según ellos con mucho estatus se dicen arquitecto, pero acaban no haciendo trabajando y metiendo confusiones<br /><br />Me gustaría tomar a todos esos falsos arquitectos y sentarlos a estudiar los libros de Tanenbaum, a Date, a Patterson, Design Patterns de GoF, PoSA, EIP, el de compiladores de Aho, los 3 tomos de Knuth, un buen libro de referencia de mainframe; para que realmente tomen en cuenta todos los conceptos subyacentes para hacer una arquitectura sólida y no algo que acaba en papel y no da valor a los equipos de desarrollo.<br /><br />Mis 2 únicos lectores, ojala me perdonen esta entrada poco objetiva, pero tenía que hacer cartasis escribiendo. <br /><br />Con esto, me dan ganas de hacer el temario de un tipo diplomado de Arquitectura Empresarial y darlo gratis, como servicio a la comunidad de TI, donde pondría a estudiar a la gente en varios temas, y enseñarles que el título de arquitecto no se obtiene por que te nombren solo así, sino con humildad, experiencia, trabajo y conocimiento técnico.gusdelacthttp://www.blogger.com/profile/01280814569141135139noreply@blogger.com2tag:blogger.com,1999:blog-3139781682677432277.post-30103887196344795722011-07-28T00:58:00.003-06:002011-07-28T01:41:34.026-06:00Domain Specific Languages (DSL) primer comentarioPara mi el concepto de DSL no fue dificil de entender, ya que desde hace casi 2 decadas me tope con ese concepto con un libro de Bertrand Meyer, llamado Introduction to the Theory of Programming Languages <br /><br />En ese libro, Meyer expone los conceptos "básicos" para diseñar un lenguaje de programación, no se enfoca a decir como definir la sintáxis o los algoritmos de anális sintáctico. Se enfoca a explicar que un lenguaje de programación es una manera abstracta de manipular una máquina. De hecho, define una modelo simple de una máquina y un lenguaje de programación de alto nivel para dicha máquina <br /><br />Recuerdo que una idea muy importante de este libro, es como explica que una plataforma de computación es completa si existen diversas maneras para manejarla. Es decir, como UNIX, donde existe un API para invocar al núcleo, o un shell para manejar comandos simples para crear nuevos comandos o interfaces gráficas como X Windows. Es decir, una plataforma de cómputo con una arquitectura que se puede extender y proporcionar herramientas mas orientadas a un problema de un DOMINIO en particular.<br /><br />Cuando leí eso, me di cuenta que al definir un API de programación, hay que pensarlo como si definiera un lenguaje de programación, con su sintáxis, sus acciones semánticas. Y que también, para simplificar el uso del API, puede definirse un nuevo lenguaje que genere código sobre ese API.<br /><br />Ahora, incios de siglo XXI, ese concepto se llama DSL y es una manera para lograr la extensión de plataformas de computo. <br /><br />Me encontre esta referencia en la Dr. Dobss de Julio, <a href="http://www.eclipse.org/Xtext">Xtext</a>gusdelacthttp://www.blogger.com/profile/01280814569141135139noreply@blogger.com0tag:blogger.com,1999:blog-3139781682677432277.post-87834350027399593242011-07-01T11:08:00.007-06:002011-07-01T11:35:33.776-06:00Entre Middleware te veras<div>Que tal muchachos, feliz viernes!!!! yeeeah</div><div><br /></div>Hace algunos meses por necesidades de un proyecto (por cierto muy interesante), nos invitan a participar en la parte de arquitectura de integración, que dicho sea de paso es usando plataforma OpenSource.<div><br /></div><div>Herramientas Middleware muy interesantes son ocupadas dentro de la arquitectura algunas de ellas:</div><div><ul><li>MDM - <a href="http://www.talend.com/products-master-data-management/talend-mdm-ce.php">Talend Community Edition</a>: Un excelente propuesta de Bases de Datos Maestros.</li><li>Application Server: Jboss </li><li>Enterprise Service Bus - <a href="http://www.jboss.org/jbossesb">Jboss ESB</a> : De los ESBs mas intuitivos que me toco trabajar.</li></ul></div><div>El proyecto involucra varios retos que si se plantean de manera general, son muy conocidos en el ámbito de integración en la industria, aquí algunos:</div><div><ul><li>Comunicación con Bases de Datos Legadas</li><li>Comunicación con Aplicaciones Legadas que usan COBOL</li><li>Comunicación con una MDM</li><li>Comunicación con un BPM</li><li>y le podemos seguir.</li></ul><div>Dentro de la arquitectura, se tomo la decisión de usar al ESB como mediador de todas las peticiones a los sistemas legados o propietarios (tal como se hace comúnmente), lo cual resulto muy interesante, ya que seria el ESB quien tendría que manejar conceptos de <a href="http://www.eaipatterns.com/">EIP </a>en este sentido, tales como transformaciones, ruteo basado en contenido, Pipelines, etc.</div></div><div><br /></div><div>Particularmente los Post siguientes, serán hablando del tema de Jboss ESB y estarán enfocados a como resolver ciertos escenarios de integración de los cuales comúnmente me he topado en estos ya 7 años como Arquitecto/Ingeniero de Integración de Aplicaciones, la mayoría trabajando con middleware de BEA (Aqualogic ESB, ALDS) ahora ORACLE (SOA Suite)</div><div><br /></div><div>Les adelanto algunos temas puntuales del Jboss ESB que vamos a tocar en el uso de:</div><div><ul><li>org.jboss.soa.esb.actions.soap.proxy.SOAPProxy</li><li>org.jboss.soa.esb.actions.routing.http.HttpRouter</li><li>org.jboss.soa.esb.actions.transformation.xslt.XsltAction</li><li>org.jboss.soa.esb.actions.ContentBasedRouter</li><li>org.jboss.soa.esb.actions.SystemPrintln</li></ul><div>Cada uno de estos temas los veremos en conjunto con ejemplos de su uso.</div></div><div><br /></div><div>Por una integración mejor, nos vemos pronto.</div><div><br /></div><div>Saludos Tuzo</div><div><br /></div><div><br /></div><div><br /></div><div><br /></div>Javier Cortes (El Tuzo)http://www.blogger.com/profile/09903812629859341718noreply@blogger.com0tag:blogger.com,1999:blog-3139781682677432277.post-32225379434873015992011-05-10T15:31:00.002-06:002011-05-10T15:36:14.542-06:00CambioAunque no debería usar este blog para cosas humanas, je, pues igual está relacionado con el tema<br /><br />Ya llevo 7 y medio años donde trabajo. Ahí he madurado y aprendido muchas cosas y experiencias buenas y malas<br /><br />Mi instinto y el odioso radiopasillo dice que ya es el momento final de mi trabajo<br /><br />Sin embargo, no me siento mal, al contrario, veo que tengo muchas habilidades e igual ha llegado el momento de que la integración a la mexicana se abra a nuevos caminos<br /><br />Les platicaré que pasa, esta semana seguro y se define algogusdelacthttp://www.blogger.com/profile/01280814569141135139noreply@blogger.com2tag:blogger.com,1999:blog-3139781682677432277.post-1204021737283921802011-05-10T15:13:00.004-06:002011-05-10T15:28:28.778-06:00Iniciando TOGAFHola 3 lectores<br /><br />Durante las últimas semanas he estado leyendo TOGAF, la parte básica<br /><br />Si me he encontrado con un marco de referencia de arquitectura extenso y abstracto. Pero en esa abastracción, da mucho poder para ir de lo general a lo particular.<br /><br />Pero también requiere de tener experiencia en este tipo de marcos, como CMMI, ITIL, PMP.<br /><br />Ayer dí un taller de TOGAF, y si que me costó trabajo aterrizar, pero al mismo tiempo vi el poderío de conceptos como Enterprise Continum, ADM, Content Framework, Technical Reference Model<br /><br />Me estoy poniendo como meta buscar certificación en TOGAFgusdelacthttp://www.blogger.com/profile/01280814569141135139noreply@blogger.com0tag:blogger.com,1999:blog-3139781682677432277.post-87800493515830550142011-04-09T12:55:00.003-06:002011-04-09T13:17:08.457-06:00Archimate o de como si se puede modelar en serioHola 3 lectores<br /><br />El mes de marzo fue muy bueno, por que se empezó el tema de Arquitectura Empresarial.<br /><br />Como parte de la estrategia, el director de TI nos solicito utilizar Archimate para cuestiones del modelado.<br /><br />El caso es que me puse aprender Archimate de volada, pero no fue dificil, por que me encontré con la grata sopresa de que es un lenguaje bastante completo y bien pensado.<br /><br />A diferencia de UML, que se puede considerar como pobre en estos temas, Archimate propone un conjunto rico de elementos de su notación y que son completos para modelar el negocio, aplicaciones e infraestructura.<br /><br />Y el Tuzo afortunadamente encontró una herramienta libre, llamada <a href="http://archi.cetis.ac.uk/index.html">Archi</a> la cual está muy bien hecha para cuestiones del modelado.<br /><br />Con Archimate, el trabajo de modelar ya no cae en términos de la creatividad, sino que te va guiando. Les invito lean <a href="http://www.opengroup.org/archimate/doc/ts_archimate/">el libro de Archimate </a>.<br /><br />El concepot de puntos de vista (viewpoint) es muy importante, ya que te va indicando que debes modelar y como relacionar los diversos elementos.<br /><br />El jueves 7 y viernes 8 de abril, estuvimos haciendo un ejercicio de modelado de dos aplicaciones y el tema hasta se vuelve adictivo; ya que el tiempo se va de volada al hacerlo y quieres poner más y más conocimiento de lo que se sabe de la aplicación<br /><br />Adicional, de que se va formando un repositorio de activos de arquitectura y de lo que modelas, va constituyendo un grupo de activos.<br /><br />Por fin, adios a la hojita de Excel que tanto odie para hacer el inventario de aplicaciones. Con Archimate vamos a poder expresar todos los conceptos de los que constituye una aplicación.<br /><br />También estamos utilizando otra herramienta, comercial y con necesidad de licencia; que se llama <a href="http://www.bizzdesign.com/index.php/tools/architect">BizzDesign Architect</a>; pero la ventaja es que permite realizar el análisis de las relaciones entre los diversos activos y obtiene las tablas de cruce entre los distintos activos. Y tiene hasta un lenguaje para hacer consultas para hacer la mineria de los activos de la organización.<br /><br />Y ahora estoy estudiando <a href="http://pubs.opengroup.org/architecture/togaf9-doc/arch/">TOGAF</a>, para tener ya el marco metodólogico para trabajar en el tema de arquitectura empresarial. <br /><br />Estoy contento por la chamba que estamos haciendo y el equipo de personas que somos, muy bueno y con distintas perspectivas para atacar los diversos temas de arquitectura empresarial.<br /><br />Con esto espero ya pasar de las presentaciones de PowerPoint a poder decir que estamos haciendo Arquitectura Empresarial ... bueno en parte, por que implica mucho mas alla de modelar. Aun faltan muchos retos por superar.gusdelacthttp://www.blogger.com/profile/01280814569141135139noreply@blogger.com0tag:blogger.com,1999:blog-3139781682677432277.post-90438758540624376402011-02-19T16:52:00.004-06:002011-02-19T17:10:10.052-06:00Integracion con sabor internacionalPues el Tuzo y yo (2 de los 3 lectores de este blog) tuvimos una aventura de miercoles a jueves. Para evitar problemas de no thiklozur (hablando a la Doriga) no voy a decir nombres de empresas<br />El caso es que donde trabajamos, se aventaron un sistema en Java para obtener todas las facturas electrónicas de los proveedores. Todo hubiera ido bien si no hubieran utilizado el java.io.FileReader de Java, pero lo hicieron y cuando escribieron esos archivos al sistema de archivos le dieron mas feo que FECAL al país. Perdieron las secuencias especiales de los acentos y caracteres anexos. <br />El caso es que esos benditos archivos en formato XML, al momento de querer ser verificados contra el sistema de Factura electrónica del SAT, pues era rechazado, por que no era integro. <br />Sepa San Donald Knuth por que nunca los desarolladores hicieron una mondriga prueba con un solo archivo XML que pasara un ciclo completo, o quiza nunca probaron los acentos, para que si nadie los usa en este país<br />El caso es que el miercoles, su servidor que tenía planeada otra actividad mas interesante a las 20 pm, recibe una llamada de auxilio en el batiphone y tuvo que oir.<br />Para aquello de ls 19:30 pm, retoma el tema, que ya el Tuzo estaba viendo, y el panorama se veía oscuro. Ya los desarrolladores habían confesado su pecado y por lo menos ya habían corregido y usando Input/OutputStream.<br />Y pues me avente un programa en C, usando getchar y explore los 25,000 archivos. Como 14,000 estaban con problemas. Y ahora, que hacer. Pues dije, a sustituir byte por byte. El reto era que se le tenia que hacer al detective, por que si se alteraba algún byte, todo era inutil. Tres horas de infructosa manera de volver a los archivos a su estado original y mejor ya tirar la toalla y esperar mi indeminización, ya que el problema era mío; le digo al Tuzo, vamos a poner en Google, para buscar algo. Que le pongo criterios como acentos, UTF8. Y me encuentro que alguien mas ya había pasado la misma <a href="http://mitago.net/archives/2007/04/01/T23_17_30/">situación</a>.<br />Eureka! Encontramos un hechizo mágico, iconv.<br />Gracias a que pudimos trabajar en UNIX/Solaris, empezamos a probar y por fin un archivo pudo ser validado con uso de la razón. Eras casi las 12. Dado que nuestros jefes no daban pista de darnos ni una triste mijaga, bajamos por la comida clasica de desarrollador, sabritones, cocacola, donas bimbo, fastfood microondas. Y a aventarse un script para automatizar todo. A las 2 am ya estaba todo. De ahí a sacar muestras y dejar en manos de San Meyer todos. A las 4 am acabo todo<br />Pero me pregunto, que necesidad había de pasar todo esto. No hubiera sido mejor tomar en cuenta los acentos. <br />La verdad, estas lecciones le dan a uno humilidad. Se da cuenta cuan ignorante es su servidor. Por mas de una decada ignore el tema de acentos y anexas, Unicode, internacionalización. Ahora me doy cuenta que si queremos lograr una integración es muy importante. UTF 8 e ISO 8859-1 no deben ser magia negra ni ignorados, por algo existen.<br /><br />Y por favor, prueben antes de liberar a producción!<br /><br />Por cierto, el equipo de desarrollo al otro día les pregunto sobre como manejan su conexión a la base de datos, si estaban usando algun pool. Su cara me lo dijo todo... Es la próxima aventura de la siguiente semana !gusdelacthttp://www.blogger.com/profile/01280814569141135139noreply@blogger.com3tag:blogger.com,1999:blog-3139781682677432277.post-45512592227347819092011-01-23T02:38:00.006-06:002011-01-23T02:44:33.214-06:00Integración a la mexicana RecargadaHola!<br /><br />Tendremos todavía lectores?<br /><br />Han pasado varios años desde que creamos este blog. El Tuzo y yo seguimos trabajando juntos. Chillicoder ha recorrido un camino aparte, pero bien metido a Ruby<br /><br />Y de Ruby quiero hablar<br /><br />Estoy este fin de semana preparando clases, inicio en la ULSA, programación Web es la materia. Después de observar como ORACLE ha llevado a Java, he decidido por primera vez en mis casi 14 años dando clase, no impartir sobre la plataforma Java. La última vez trate sobre GRAILS<br /><br />Retomando las ideas de Bruce Tate, en su libro Beyond Java, he decidido aplicar el camino, al igual que Chillicoder.<br /><br />Durante ya los casi 5 años en los que Ruby on Rails ha evolucionado, encuentro una plataforma madura y bien diseñada. <br /><br />Aunque seguimos usando Web Services con SOAP, WSDL y JMS; y seguimos usando el Service Bus de ahora ORACLE; ya tengo un rato que me percato de la existencia de REST y como simplifica el desarrollo<br /><br />Me doy cuenta que la visión de llenar Internet con servicios Web basados en SOAP no prospero. Me encuentro al contrario, toda una serie de servicios implantados por Google, Amazon, Twitter, bajo un diseño simple<br /><br />Y de cloud computing me encuentro conceptos similares a los planteados en los inicios de concepción de SOA. En algún blog anterior hable del concepto de X As a Service. Ahora, el tener la capacidad de exponer Hardware y Sistema operativo como Servicio, supero las expectativas de esos tiempos<br /><br />Ahora hasta tengo un teléfono movil inteligente como los llaman hoy, un iPhone. Ya he probado el progamar sobre BlackBerry y iPhone. Me falta Android<br /><br />Me percato, que el concepto de servicio no se ha perdido. En muchos lados, veo como varios "computologos" hablan de la muerte de SOA o de que ya no está "in". Me da risa esa visión de consultor que no aplica nada de lo que escribe, tipo Gartner<br /><br />En una platica que oi de Mike Rossen, hablaba él de experiencias en implantaciones de SOA. Al final, la conclusión es que las organizaciones posiblemente no implantarán en su totalidad SOA. Pero la industria de software si está basando fuertemente en dicho concepto<br /><br />En el temario de la materia a la que me refiero, incluí varias ideas. Espero que mis alumnos absorban los conceptos básicos para llegar a tocar los temas de servicios. Pongo aquí la liga de la presentación http://sites.google.com/site/cibgusdelact/progweb8012011/tema0/Introduccion Programacion Web.pdf<br /><br />Me doy cuenta de nuevas oportunidades de trabajo, ya sea en el actual o pensar en nuevos lugares. Veo que se necesitan personas técnicas que sepan de este tema, que tengan experiencia en pasadas tecnologías que trataron la misma visión<br /><br />De ahí que llamo a esta entrada, Integración Recargada por que veo nuevas posibilidades por aprender y de ahí aplicar<br /><br />Empezando el 2011, y con retos interesantes en la chambagusdelacthttp://www.blogger.com/profile/01280814569141135139noreply@blogger.com3tag:blogger.com,1999:blog-3139781682677432277.post-23911619610455832072010-05-29T16:19:00.001-06:002010-05-29T16:21:01.458-06:00Bertrand MeyerNunca les he platicado de Bertrand Meyer, http://bertrandmeyer.com, pero es uno de los computologos bastante reconocidos.<br /><br />El concepto de contrato que tenemos nosotros para interfaces, fue definido por Meyer, "Design by Contract", en esa epoca de los ochentas y noventas se pensaba para objetos, pero pues facilmente extrapolable a servicios.<br /><br />El definio un lenguaje orientado a objetos llamado Eiffel, con una sintaxis muy parecida a Pascal y Modula, con la idea de que el lenguaje fuera una herramienta que se adaptara al programador (a la manera Europea que siempre han pensado que los sistemas se adecuen al humano y no a la inversa, como luego piensan los gringos) y por lo tanto el concepto de apuntadores y conceptos de bajo nivel fueron eliminados del lenguaje. Aunque el lenguaje es muy elegante, para su epoca si era caro de implementar.<br /><br />Cuando yo empece a trabajar en Cromasoft, distribuidor de SUN, con los Horvilleur, eran distribuidores del compilador y otras herramientas de la empresa de Meyer. Para un estudiante de sistemas apenas entrando a los veintes fue como trabajar en Disneylandia. Estuve a punto de conocerlo en Merida, pero no lo dejaron pasar en la aduana por que dijo que venia por cuestiones de trabajo ... Alguna vez detectamos un bug en una herramienta, y el personalmente nos hablo a Cromasoft.<br /><br />En algun momento SUN empezo a ver Eiffel como su lenguaje de programacion orientada a objetos, pero fue Java quien gano al final.<br /><br />Y pues la manera como yo estructuro los conceptos, viene mucho de el. De leer sus libros, llegue a la idea de que mi tesis fuera sobre Objetos Distribuidos para integracion de aplicaciones, y de ahi empezo mi obsesion.gusdelacthttp://www.blogger.com/profile/01280814569141135139noreply@blogger.com0tag:blogger.com,1999:blog-3139781682677432277.post-32870871752811493232009-10-27T01:35:00.003-06:002009-10-27T01:44:43.870-06:00Empezando la implantación de SOAVoy a tratar de ir actualizando de manera frecuente el blog, orientado a narrar las experiencias en la implantación de SOA.<br /><br />De entrada, la semana pasada me ví envuelto en el típico caso de un Web Service que no conocía, pero que se volvió crítico para la operación de la institución donde trabajo. Al final, me querían colgar el muerto a mí, argumentando que yo manejo la interoperabilidad. Como siempre, el dueño del servicio vela por cumplir con necesidades propias de su línea de negocio.<br /><br />Estoy arrancando un proyeto de Gobernabilidad SOA, en el cual se va a definir el proceso de desarrollo basado en servicios y la estructura de un posible Centro de Excelencia SOA.<br /><br />Y un montón de trabajo para estabilizar la infraestructura. Me dí cuenta que el ESB podríamos tenerlo montado en 12 computadores tipo SunBlade<br /><br />Por cierto, cada vez que veo el resultado de que Oracle comprara a BEA, me doy cuenta que fue un error. Los cuates de Oracle solo quieren vender, pero sin ni siquera saber conceptos básicos como middlware, BPM o servidor de aplicaciones. Con ganas de cambiar TODO lo de Oracle a software libre.gusdelacthttp://www.blogger.com/profile/01280814569141135139noreply@blogger.com1tag:blogger.com,1999:blog-3139781682677432277.post-5332137919956286782009-10-20T15:00:00.000-06:002009-10-20T15:02:13.971-06:00WorkshopCamp Cd. de MéxicoEl BarCamp es una red internacional de "desconferencias" (eventos abiertos y participativos), cuyo contenido es provisto por los participantes. Se enfocan en aplicaciones web en estadios tempranos, tecnologías de código abierto y protocolos sociales. Sin embargo, este tipo de encuentros han ampliado su temática y actualmente incluyen eventos participativos y abiertos alrededor de temas sociales, artísticos, educativos... con fuertes componentes creativos e innovadores en los respectivos ámbitos.<br /><br />WorkshopCamp será un evento con talleres con una duración de 3 horas impartidos por quien tenga algo que compartir y enseñar en un salón con temas orientados al diseño y desarrollo web.<br /><br />Habrá dos turnos de talleres, el primero de 10 a 13 hrs y el segundo de 14 a 7 hrs.<br /><br />El evento se llevará a cabo el próximo Domingo 25 de octubre 2009 en las instalaciones de Ked México, ubicadas en Av. Revolución No. 374, Col. San Pedro de los Pinos a una cuadra del metro San Pedro de los Pinos en la línea 7 del metro.<br /><br />En lo particular me registré para participar exponiendo sobre el tema de "Behaviour Driven Development" dentro del track de ponencias de México On Rails. Esta vertiente de desarrollo viene a completar mucho de lo expuesto en las metodologías ágiles en las cuales la interacción con el patrocinador del proyecto es indispensable. En el caso de BDD (por sus siglas en inglés) se tiene que resumir los requerimientos a aquellos que:<br /><ul><li>Protejan las ganancias</li><li> Incrementen las ganancias </li><li> Reduzcan los costos</li></ul>De esta manera todos los participantes se enfocan en construir una aplicación que genera valor inmediato ya que refleja los procesos que realmente ayudan a salir adelanta a cualquier empresa u organización.<br /><br />En el mundo Ruby y Ruby On Rails, se han desarrollado varias herramientas para apoyar las metodologías ágiles y BDD no es la excepción. El producto estrella en este caso es Cucumber, un framework para el soporte de los elementos del BDD. Se apoya en otro producto muy reconocido, RSpec, que permite el desarrollo de pruebas de una manera más natural y coloquial que por ejemplo Test::Unit, el framework estándar de Ruby y RoR.<br /><br />Como sabemos que no todo mundo está familiarizado con Ruby y su medio ambiente, se incluirán charlas y talleres introductorios a Ruby, JRuby y una sesión de mejores prácticas.<br /><br />El registro lo pueden realizar en <a href="http://barcamp.org/WorkshopCampMexico">WorkshopCamp Cd. de México</a>.<br /><br />¡Los esperamos!<br /><br />Finito.ChilliCoderhttp://www.blogger.com/profile/01288599922644011117noreply@blogger.com0tag:blogger.com,1999:blog-3139781682677432277.post-79665550395584967612009-09-06T18:00:00.001-06:002009-09-06T18:00:59.539-06:00hola<div class="pp_items"><div class="pp_item" align="left"><p>hola</p></div></div>gusdelacthttp://www.blogger.com/profile/01280814569141135139noreply@blogger.com0tag:blogger.com,1999:blog-3139781682677432277.post-18787697611404088092009-09-06T17:50:00.001-06:002009-09-06T17:50:25.235-06:00Empezando a experimentar la era digital<div class="pp_items"><div class="pp_item" align="left"><p>Probando que desde mi iPhone pueda realizar posts</p></div></div>gusdelacthttp://www.blogger.com/profile/01280814569141135139noreply@blogger.com0tag:blogger.com,1999:blog-3139781682677432277.post-37681063809059799432009-06-16T09:35:00.003-06:002009-06-16T10:11:30.737-06:00¿y los estandares apa?Bien pues aqui de regreso a este lindo blog, queridos 2 lectores..<br /><br />Bien tengo varios temas pendientes, ejemplos de Mule temas de SOA Governance.. documentacion de Servicios, etc etc etc... en fin... ya estoy trabajando en ellos.<br /><br />Bueno pues a lo que me trajo este "quejapost". hace ya unos meses escribimos un post acerca de la <a href="http://integramx.blogspot.com/2007/11/la-importancia-de-los-contratos.html">importantcia de los contratos</a>, en el que basicamente podriamos concluir con la frase que he tomado hace tiempo "<a href="http://integramx.blogspot.com/2007/05/la-culpa-no-la-tiene-el-servicio-sino.html">la culpa no la tiene el SERVICIO, si no quien lo IMPLEMENTA </a>( o mejor aun QUIEN LO DISEÑA )"...<br /><br />Y me vuelvo a preguntar ¿y los estandares apa?..... lo que mas me "encanta" es que cuando se les cuestiona a ciertas personas de la implementacion de sus servicios, contestan "pus si estamos usando WSDL, SOAP, XSD son estandares no?"... ahora si que me pasa como condorito cuando sucede eso.......ploof!!<br /><br />Bueno pues deseo compartirles que hace unos dias nos toco participar en una integracion entre Secretaria de Economia y el Seguro Social.... concretamente para las parte de alta rapida de empresas..... bueno pues nosotros seremos expositores de algunos servicios, para lo cual agendamos una reunion con estos monitos de Economia para tratar asuntos tecnicos.<br /><br />Para no hacer el cuento largo, el cuate tecnico me dice "Nosotros necesitamos que ustedes expongan un servicio que reciba un STRING y regrese un STRING y en el se coloque el XML tal y como se definieron los XSD de entrada salida" ... charros y me vuelvo a preguntar ¿y los estandares apa? .... pense que no podria haber algo mas feo que usar un ANY en un servicio Web.... pero que sorpresa me lleve con estos cuates.... en fin..<br /><br />Lo mas chusco, fue cuando le comente que "nosotros no podriamos usar un servicio expuesto de esa manera, que era necesario hacer el WSDL concreto con los valores de entrada, salida, y mensajes de error" y este amigo comenta "es que tenemos una tecnologia de bus de integracion ESTANDAR (claro es estandar usar STRING) que permite DESACOPLARNOS de otras soluciones y si me mueves el contrato, entonces no podemos hacerlo ( y entonces endonde quedo lo desacoplado del asunto)" ...<br /><br />Bueno pues despues de desahogarme con ustedes.. .el mensaje que deseo dar a este post es:<br /><br />- Definan contratos de negocio: usenlo como su diccionario de datos, en algunas framworks como el SOMA se le llama "Service Interface"<br />- Especifiquen sus servicios: es decir entradas, salidas, mensajes de error, todo ello usando XSDs, en SOMA esto es "Service Contract" y esta en la disciplina de "Service Specification"<br />- Definan sus WSDLs, en la medida de lo posible NO usen Any o String para mandar cualquier XML de respuesta.... eso le quita el sentido a elaborar un Contrato de Negocio<br />- En la definicion de su Servicio, siempre consideren informacion necesaria para manejo de errores: ERROR, NUMERO, DESCRIPCION.<br /><br />Porque si no volvere a preguntarme ¿y los estandares apa?<br /><br />Por una integracion mejor, hasta la vista<br /><br />TuzoJavier Cortes (El Tuzo)http://www.blogger.com/profile/09903812629859341718noreply@blogger.com0tag:blogger.com,1999:blog-3139781682677432277.post-38813587261142008292009-06-06T19:30:00.001-06:002009-06-06T19:30:41.242-06:00Un día despuésComo lo anuncié algunos días atrás, ayer se realizó el RubyCamp en el Instituto de Física de la UNAM en la misma línea de otros eventos estilo 'BarCamp' que se han venido haciendo recientemente y como tal concentra a gente innovadora y entusiasta de la tecnología, particularmente del lenguaje de programación Ruby y su 'killer app': Ruby on Rails.<br><br>Alex Juárez y su equipo de trabajo se encargaron del 99% del trabajo de organización del evento el cual incluyo una extensa lista de ponentes (/me incluido) que trataron una variedad de temas pero que nos dejaron con el ansía de seguir realizando eventos de este tipo donde escuchar experiencias e ideas de gente que usa estas herramientas para ganarse el pan y no solo bluffing mercadológico para vendernos algo.<br><br>Me parece que es necesario seguir ampliando los espacios para compartir experiencias y traer más material del tema en español. Comentaba en una oportunidad que si bien existen toneladas de información en inglés, es necesario crear nuestra base de conocimientos y compartirla, intercambiar dudas, preguntas, inquietudes sin temor a no obtener respuesta ni a una competencia desleal. <br><br>Me sigue inquietando el hecho de que seguimos protegiendo nuestros 'productitos' o 'sistemitas' más que a un niño pequeño e indefenso y por otra parte, en la edición de mayo-julio de la revista Software Guru viene una entrevista a Jorge Zavala que si bien no reconozco en algún ámbito dice algunas frases que me parecen bien ciertas, <br><ul><li>"fail fast", si tienes una idea, enfréntala a la realidad, si es buena y funciona, invierte en ella sino continua con la siguiente. </li><li>Necesitas gente con mentes frescas antes que grandes recursos financieros.</li><li>Los negocios son para venderse, no quedarse toda la vida con ellos.</li></ul><br>También hace referencia a los 'Super Happy Dev House' que se han venido realizando y en lo particular lo asocio con algunos de los eventos 'BarCamp' que han pasado. Hay gente que buscamos compartir lo que creemos bueno, nuestras experiencias y nuestras ambiciones y encontrar algunos otros con las mismas inquietudes, buscar una o más relaciones 'ganar-ganar' donde los beneficios se repartan entre los participantes.<br><br>Me quedé con un costal de ideas y un delicioso sabor de boca después de esta experiencia y sin lugar a dudas creo que este ha sido el mejor evento en lo que va del año. Realmente espero el siguiente para participar de nuevo y encontrar más personas participando, intercambiando experiencias y conocimiento.<br><br>Finito.<br>ChilliCoderhttp://www.blogger.com/profile/01288599922644011117noreply@blogger.com0tag:blogger.com,1999:blog-3139781682677432277.post-81114225610950719092009-05-29T13:33:00.000-06:002009-05-29T13:34:18.861-06:00RubyCamp<span class="Apple-style-span" style="font-family: Verdana; font-size: 13px; ">El próximo viernes 5 de junio se realizará el evento <b>RubyCamp</b> en las instalaciones del <b>IFUNAM</b>. Como el nombre lo indica, la organización del evento cae en el formato de los Barcamps y las 'no-conferencias'. Se van a concentrar varios conocidos que trabajan activamente con <a id="an60" href="http://ruby-lang.org/" title="Ruby">Ruby</a> y con <a id="les_" href="http://rubyonrails.org/" title="Ruby On Rails">Ruby On Rails</a> dando breves pero sustanciosas pláticas pero también veo en la agenda del evento, gente nueva en la onda Ruby On Rails.<br /><div style="margin-top: 0px; margin-bottom: 0px; "><br /></div><div style="margin-top: 0px; margin-bottom: 0px; ">Así que se extiende la invitación a todos los lectores, más detalles los pueden encontrar en el <a id="vir6" href="http://olimpo.fisica.unam.mx/rubycamp" title="sitio del evento" style="color: rgb(85, 26, 139); ">sitio del evento</a> , en <a id="sa75" href="http://groups.google.com/group/rubycamp-unam/" title="la lista de correos" style="color: rgb(85, 26, 139); ">la lista de correos</a> o simplemente síguenos en <a id="gm3w" href="http://twitter.com/rubycamp_ifunam" title="twitter" style="color: rgb(85, 26, 139); ">twitter</a> .</div><div style="margin-top: 0px; margin-bottom: 0px; "><br /></div><div style="margin-top: 0px; margin-bottom: 0px; ">Finito.</div><div><br /></div></span>ChilliCoderhttp://www.blogger.com/profile/01288599922644011117noreply@blogger.com0tag:blogger.com,1999:blog-3139781682677432277.post-59869413275635451362009-03-29T00:53:00.003-06:002009-03-29T03:01:25.663-06:00SOA no solo es Tecnología de InformaciónArquitectua Orientada a Servicios ...<br /><br />Algunos ya dicen que SOA está desapareciendo, que ha sido un fracaso.<br /><br />La verdad, creo que mucho de lo que ha pasado es que la industria ha visto el implementar SOA como comprar e instalar productos, o como una iniciativa de Tecnologia de Informacion, o por construir WebServices se dicen SOA.<br /><br />Eso lleva a que al final, para la organización no hay mucho cambio con respecto a la manera como la tecnología de información se implanta.<br /><br />Es típico, que en cualquier organización, primero se empieza a diseñar un servicio con procesos manuales. Una vez que se empieza a operar dicho proceso, se dan cuenta que tienen muchas labores dignas de automatizar, y van y solicitan a sistemas, una nueva aplicación.<br /><br />Y por desgracia, cuando llega al área de sistemas, se enfoca a que dicha aplicacion solucione para ese proceso, sin tomar en cuenta todo el contexto de la organización. Y luego cuando se dan cuenta los de sistemas, a jalar copias de base de datos de otras aplicaciones, a intercambiarse archivos planos, interfaces punto a punto y dependencias altas entre las aplicaciones.<br /><br />Y mientras, la organización perdiendo oportunidades de oro, teniendo escenarios donde por falta de una integración entre sus sistemas, se tardan un largo tiempo en obtener resultados.<br /><br />He ahi la importancia de una arquitectura comun para las soluciones de tecnologia de información. El chiste de la arquitectura es poner orden, organizar.<br /><br />Ahora, si dicha orientación se da, pensando que se construyen servicios que permiten automatizar las actividades de los procesos, entonces lo que se puede provocar es que la tecnología se vaya constituyendo a través de servicios de negocio.<br /><br />El camino que deriva la creación de un servicio debe ser asi:<br /><br />* Estrategia de negocio u organización. Define los objetivos a alcanzar.<br />* Servicios de negocio. Manera como la organización entrega un bien o servicio a sus clientes,empleados y/o proveedores.<br />* Capacidades de Arquitectura Empresarial. Las funcionalidades de tecnología.<br />* Plataforma de Tecnología de Información. Componentes de software y hardware.<br /><br /><br />Es decir, cualquier servicio, se origina por alguna necesidad de negocio y tiene como vista, compartir y reutilizar información. <br /><br />Pero las personas que estan en la organización, en lugar de concebir la automatización de sus procesos a través de aplicaciones, lo hacen a través de servicios.<br /><br />Pero a ellos no les debe importar si esta en un sistema UNIX con Oracle y Java, o si está en Windows con SQL Server y C#. Lo que debe importar es la información que ofrece y las operaciones de negocio que realiza.<br /><br />En resumen, SOA no es algo nuevo. Es lo que siempre se ha buscado como, lograr que la tecnología de información sirva al negocio.<br /><br />SOA es una iniciativa de negocio guiada por el departamento de tecnología de información, que transforma la manera como la información se hace disponible, que permite que el area de tecnología de información ya no sea de apoyo, si no que se convierta en sustantiva.<br /><br />Es dificil para alguien que ha tenido una preparación de ingeniera de sistemas, llegar a estas conclusiones. <br /><br />Normalmente nos acostumbramos a resolver problemas técnicos, de hecho a veces perdemos el foco y hacemos soluciones técnicamente complejas. Pero en algunos casos, ni sabemos que problema del negocio estamos solucionando o cuanto es el impacto (y tambien cuando falla el asunto, no somos capaces de medir).<br /><br />En cambio, enfocado a servicios, el desarrollador de soluciones sabe claramente la contribución al negocio.<br /><br />Asi que, dudo que SOA sea un fracaso. El reto es cambiar la manera de pensar de la gente de sistemas y de los usuarios, en los cuales ya se deje de ver la tecnología de información como algo opcional.gusdelacthttp://www.blogger.com/profile/01280814569141135139noreply@blogger.com0tag:blogger.com,1999:blog-3139781682677432277.post-30701113447282651612009-01-03T03:53:00.005-06:002009-01-04T22:05:36.026-06:00Bolero de Ravel y Arquitectura Orientada a ServiciosDesde hace un rato se me habia ocurrido esta idea, en un concierto donde tocaron el Bolero de Maurice Ravel.<br /><br />Todo la obra esta llevada por un solo patron musical, sin embargo es interesante notar como los distintos instrumentos de la orquesta lo interpretan.<br /><br />Y al final, gracias al poderoso concepto de la armonia (lo que para los nosotros los de software es el equivalente de arquitectura) se puede hacer que toda la orquesta utilice el mismo tema y de un efecto total.<br /><br />Y de ahi es donde empieza la analogia.<br /><br />Si el patron musical se toma como analogia de un servicio, en el cual, sea cual sea el rol del componente de software, se debe de hablar de una manera estandar y comun.<br /><br />Para poner el patron comun, se pone un canal de integracion (el service bus) que es responsable de recibir, procesar y transformar mensajes. Si se le dice a todos los demas componentes de software como usar a dicho canal de integracion (ejecutar el patron musical), se puede empezar con la ejecucion.<br /><br />Entonces llega una aplicacion Java y toma el patron como modelo. Si quiere informacion debe publicar un mensaje a un canal de integracion. Y la aplicacion Java, para dar informacion a otros, debe publicarse como servicio al canal de integracion, ya sea utilizando JMS o SOAP, de manera sincrona o asincrona.<br /><br />Y por otro lado, llega un sistema de base de datos, el cual puede exponer sus registros como servicios, e intercambiarlos como XML, los cuales deja disponible via el canal de servicios, de nuevo utilizando SOAP.<br /><br />Y de repente se une un sistema ERP o un CRM. Aunque dichos sistemas ya estan hechos, tambien necesitan informacion y compartir informacion con otras aplicaciones. Cada vez que realizan una actividad, reportan al canal de integracion, un evento de negocio. Dan de alta a un cliente, a enviar un mensaje al canal. Que en una aplicacion se refleja un movimiento de dinero, el ERP recibe un evento de negocio.<br /><br />Y entonces, es posible combinar las aplicaciones Java, las bases de datos, el ERP y el CRM. Y entonces llega los servicios compuestos a la arquitectura, que ensamblan a todos los componentes entre si y utilizan al canal de integracion para orquestar, transformar y comunicar a todos los servicios nucleo entre si.<br /><br />Y muchos de esos servicios compuestos, representan los servicios que da una empresa, o servicios de negocio. Cada servicio de negocio es una actividad de un proceso. El proceso necesita ejecutar actividades, tomar informacion de donde necesite. Entonces se incorpora a la arquitectura el administrador de procesos de negocio, que permite concebir todas las actividades de la empresa como procesos. Se pueden medir, se pueden simular, se pueden mejorar. Y sigue hablando el mismo patron, enviar mensajes al canal de integracion, utilizar protocolos comunes. El proceso toma informacion de los clientes, refleja operaciones en finanzas, toma decisiones del sistema de recursos humanos, crea nueva informacion.<br /><br />Y entonces, cada servicio compuesto, se expone como una interface de usuario a un portal. En el portal los usuarios pueden acceder a toda la informacion que quieren, hablando con los servicios, siguiendo el mismo ritmo que los anteriores componentes.<br /><br />Y eso permite que los usuarios del portal tengan voz propia, que usen la informacion para mejorar su trabajo, que pueden ensamblar su informacion. Y tienen agilidad para cambiar su trabajo.<br /><br />Y asi se logra la federacion de todo el software de una organizacion!! Todos hablando de la misma manera, organizados para un fin comun, de acuerdo a la arquitectura empresarial y ayudando a iniciar el cambio en una organizacion muy grande pero que le da la oportunidad de decir: !Puedo cambiar! <br /><br />Los dejo con un video con la version abreviada del Bolero de Ravel, pero bastante bien interpretado, y con voces humanas <br /><br /><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/5_XdRa2oMR0&hl=en&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/5_XdRa2oMR0&hl=en&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>gusdelacthttp://www.blogger.com/profile/01280814569141135139noreply@blogger.com1tag:blogger.com,1999:blog-3139781682677432277.post-33434515172945355462008-11-16T03:22:00.003-06:002008-11-16T03:34:43.698-06:00Mashups o Web como servicioExplicando brevemente un concepto que se ha manejado ultimamente, mashups (asociado con Web 2.0)<br /><br />Un mashup es un componente web (que a la vezpuede ser consumido como un webservice tipo SOAP o REST) y que integra informacion de distintas fuentes de informacion.<br /><br />Es decir, un mashup permite consumir informacion de una pagina Web o un WebService o de servicios como Google Maps, Blogger, Flicker o del.icio.us.<br /><br />Resuelve problemas en los cuales, si es necesario consumir datos de una aplicacion Web, basada en HTML, permite capturar la informacion que se tiene en una pagina.<br /><br />El concepto es muy interesante y poderoso, ya que es un mecanismo que permite exponer paginas Web como servicios.<br /><br />Les recomiendo visiten la documentacion del proyecto <a href="http://wso2.org/project/mashup/1.5.1/docs/index.html" >WSO2 server mashup</a>.<br /><br />Otro ejemplo, pero no tan accesible para probar (es decir, algun gerente de ventas te estara cuestionando para que usar el software antes de dartelo) es el de la empresa <a href="http://www.jackbe.com/" >JackBe </a>, con su tecnologia Presto<br /><br /><br />Cierro este comentario, dejando que mediten las posibilidades de integrar a las aplicaciones informacion que vienen de Internet.gusdelacthttp://www.blogger.com/profile/01280814569141135139noreply@blogger.com1tag:blogger.com,1999:blog-3139781682677432277.post-78015085758986071772008-09-28T09:51:00.012-06:002008-09-28T11:06:34.118-06:00Web Services con Mule CXF y SpringHola que tal<br /><br />Despues de un rico desayuno en un agradable domingo en casa de mis padres, saque del polvo mi cuenta de integracion y pues aqui estamos; Antes de entrar en materia he de comentarles que han pasado muchas cosas interesantes en el trabajo, una que me tiene muy entusiasmado es el proyecto de SOA, mas alla del nombre, es interesante ver como gran parte de la comunidad de sistemas tiene su propia definion de SOA lo entendemos de diferentes maneras (no quiero pensar en la gente que es de negocio).. es un reto interesante en lo personal ya que se derivan muchas cosas desde la parte tecnica como la parte de venta la parte de convencer todo lo que vamos a estar haciend... en fin. Estuve leyendo el ultimo post de gustavo y comparto la opinion acerca de nuestros hermanos de la india, asi como en mexico, en la india hay gente muy trabajadora, muy comprometida y sobretodo sencilla, ya les contare mas detalle lo que estamos haciendo por aca en el trabajo.<br /><br />Bien pues despues de lo anterior..... el post de hoy habla de de como combinar <a href="http://www.springframework.org/">Spring</a>, <a href="http://cxf.apache.org/">CXF </a>y <a href="http://mule.mulesource.org/display/MULE/Home">MULE</a>, para generar y exponer servicios web usando el ESB Mule.<br /><br />Bien, en muchas ocasiones me ha tocado ver como compañeros del trabajo les encargan generar un servicio web que exponga funcionalidad de negocio y me sorprende ver como tardan mas en generar todo la talacha que implica el exponer el servicio, que en lo que generan sus servicios de negocio.... creo que todo lo anterior tiene una explicacion, no estamos acostumbrados a trabajar con frameworks. Hoy en dia existen framworks como spring que como dicen en muchas paginas "hace la plomeria el plumbing", este tipo de marcos de trabajo nos permiten concentrarnos en generar nunestros componentes de negocio. En el siguiente ejemplo vamos a ver como exponemos un POJO como servicio web.<br /><br />Bien los ingredientes son:<br /><br /><ul><li>La distribucion de Mule (que esta basada en spring)</li><li>Si gustan usamos <a href="http://www.mulesource.org/display/MULEIDE/Home">Eclipse Mule IDE</a></li></ul>Es todo, ahora bien iniciamos pensando que tenemos un POJO sencillo basado en una INTERFAZ que realiza los siguientes calculos :D suma, resta, multiplicacion y division.<br /><br />El codigo como sigue<br /><br />public interface ICalculadora {<br />public float suma(float a, float b);<br />public float resta(float a, float b);<br />public float division(float a, float b);<br />public float multiplicacion(float a, float b);<br /><br />}<br /><br />y la implementacion<br /><br />public class CalculadoraImpl implements ICalculadora {<br />public float division(float a, float b) { <br /> if (b==0) return -1;<br /> else return a/b;<br /><br />}<br />public float multiplicacion(float a, float b) { return a*b;}<br />public float resta(float a, float b) { return a-b; }<br />public float suma(float a, float b) { return a+b; }<br />}<br /><br />woow!!!, ahora bien si este pojo lo queremos usar con spring lo unico que necesitamos haces es su archivo de configuracion el application context:<br /><br /><?xml version="1.0" encoding="UTF-8"?><br /><beans xmlns="http://www.springframework.org/schema/beans"<br /> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"<br /> xsi:schemaLocation="http://www.springframework.org/schema/beans<br /> http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"><br /><br /> <bean id="calculadora"<br /> class="ejercicio.CalculadoraImpl"<br /> scope="singleton"><br /> </bean><br /><br /></beans><br /><br />Ahora bien... hasta aqui nada nuevo... para los que han manejado spring no tiene nada de complicado lo anterior. Bien, pues vamos a hacer la pregunta que generalmente se coloca en el google "How do I expose my POJO as a webservice in Mule?", hay varios caminos... uno de ellos es usando CXF de apache para lo cual debemos de colocar una serie de anotaciones en nuestra clase y nuestra interfaz... veamos:<br /><br />import javax.jws.WebResult;<br />import javax.jws.WebService;<br /><br />@WebService<br />public interface ICalculadora {<br /><br /> @WebResult(name="suma")<br /> public float suma(float a, float b);<br /><br /> @WebResult(name="resta")<br /> public float resta(float a, float b);<br /><br /> @WebResult(name="division")<br /> public float division(float a, float b);<br /><br /> @WebResult(name="multiplicacion")<br /> public float multiplicacion(float a, float b);<br /><br />}<br /><br />y para la implementacion:<br /><br />import javax.jws.WebService;<br /><br />@WebService(endpointInterface = "ejercicio.ICalculadora",<br /> serviceName = "Calculadora")<br />public class CalculadoraImpl implements ICalculadora {<br /><br /> public float division(float a, float b) {<br /> if (b==0) return -1;<br /> else return a/b;<br /> <br /> }<br /><br /> public float multiplicacion(float a, float b) {<br /> return a*b;<br /> }<br /><br /> public float resta(float a, float b) {<br /> return a-b;<br /> }<br /><br /> public float suma(float a, float b) {<br /> return a+b;<br /><br /> }<br /><br />}<br /><br />Las anotaciones usadas @WebService indican que la clase es un servicio web y @WebResult los valores a recibir. Estas anotaciones serviran para que CXF y Mule compongan el WSDL que describira nuestro servicio.<br /><br />Una vez colocadas las anotaciones lo que sigue es generar nuestro archivo de configuracion de Mule mule-config.xml tal y como sigue:<br /><br /><?xml version="1.0" encoding="UTF-8"?><br /><mule xmlns="http://www.mulesource.org/schema/mule/core/2.0"<br /> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"<br /> xmlns:spring="http://www.springframework.org/schema/beans"<br /> xmlns:soap="http://www.mulesource.org/schema/mule/soap/2.0"<br /> xmlns:cxf="http://www.mulesource.org/schema/mule/cxf/2.0"<br /> xsi:schemaLocation="<br /> http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd<br /> http://www.mulesource.org/schema/mule/core/2.0 http://www.mulesource.org/schema/mule/core/2.0/mule.xsd<br /> http://www.mulesource.org/schema/mule/soap/2.0 http://www.mulesource.org/schema/mule/soap/2.0/mule-soap.xsd<br /> http://www.mulesource.org/schema/mule/cxf/2.0 http://www.mulesource.org/schema/mule/cxf/2.0/mule-cxf.xsd"><br /><br /> <spring:beans><br /> <spring:import resource="springContext.xml"/><br /> </spring:beans><br /><br /> <model name="servicescalculadora"><br /> <service name="Calculadora"><br /> <inbound><br /> <cxf:inbound-endpoint address="http://localhost:65082/services/Calculadora" /><br /> </inbound><br /> <component><br /> <spring-object bean="calculadora" /><br /> </component><br /> </service><br /> </model><br /><br /></mule><br /><br /><br />Bien pues ya tenemos todos los componentes, ahora vamos a ejecutar nuestro archivo de configuracion de mule, si lo hacen si el ide consideren todas las dependencias para que el poryecto compile:<br /><br />MULE_HOME\mule -config mule-config.xml<br /><br />Se ejecuta el servidor de mule al finalizar debemos de ver algo como lo siguiente:<br /><br />INFO: Setting the server's publish address to be http://localhost:65082/services/Calculadora<br /><br />Bien, pues listo! ya estsmos en posibilidades de ver el WSDL<br /><br />http://localhost:65082/services/Calculadora?WSDL<br /><br />Ahora solo es cuestion de ejecutar pruebas con nuestro servicio web, en lo personal yo uso <a href="http://integramx.blogspot.com/2007/05/soapui-una-buena-herramienta.html">SOAP UI</a>, pero pues lo pueden hacer con cualquier herramienta que pueda mandar peticiones hacia sua servicios web.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmCWs3nr7f2CTZLbMtzLsom72T8jPEF4eH6nNJWIKNk36n_PGUsd7xvKtEK6aHFYiMKgfvST01qGyV-Pf8SclYwbHoOh5S12uwsNB9XBoBgfWFYLV8QBRZnlFtiexLfHtgBUj91x8veyAC/s1600-h/soapui.jpg"><img style="cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmCWs3nr7f2CTZLbMtzLsom72T8jPEF4eH6nNJWIKNk36n_PGUsd7xvKtEK6aHFYiMKgfvST01qGyV-Pf8SclYwbHoOh5S12uwsNB9XBoBgfWFYLV8QBRZnlFtiexLfHtgBUj91x8veyAC/s320/soapui.jpg" alt="" id="BLOGGER_PHOTO_ID_5251119062004457298" border="0" /></a><br /><br />Bueno pues es todo, esperemos que les sirva, quejas y sugerencias seran bien recibidas.<br /><br />Por una integracion mejor, hasta la vista!!<br /><br />TuzoJavier Cortes (El Tuzo)http://www.blogger.com/profile/09903812629859341718noreply@blogger.com2