<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3139781682677432277</id><updated>2011-08-27T16:59:04.417-06:00</updated><category term='CXF'/><category term='XSD'/><category term='business architecture'/><category term='web'/><category term='rup'/><category term='development'/><category term='Tolstoy'/><category term='community'/><category term='desarrollo'/><category term='proceso de software'/><category term='Zachman'/><category term='api'/><category term='humildad'/><category term='freedom'/><category term='Enterprise Architecture'/><category term='software development'/><category term='arquitectura'/><category term='webcast'/><category term='message'/><category term='websphere'/><category term='DSL Bertrand Meyer lambda semantica denotacional compiladores'/><category term='DSL'/><category term='rails'/><category term='Ravel'/><category term='portal'/><category term='unicode'/><category term='JMS'/><category term='torre de marfil'/><category term='mashup'/><category term='dotnet'/><category term='interoper'/><category term='objeto distribuido'/><category term='Mule'/><category term='java'/><category term='latinoamerica'/><category term='best practices'/><category term='Cutter'/><category term='UML'/><category term='XML'/><category term='PKCS7'/><category term='TI'/><category term='cloud'/><category term='lambda'/><category term='ideas'/><category term='TOGAF'/><category term='SOA  views'/><category term='document-as-a-service'/><category term='webservice'/><category term='internacionalizacion'/><category term='ITIL'/><category term='integration'/><category term='business rule'/><category term='opinion'/><category term='service layers'/><category term='html'/><category term='weblogic'/><category term='design'/><category term='Process'/><category term='design by contract'/><category term='governance'/><category term='fun'/><category term='business capabilities'/><category term='servicio'/><category term='architecture'/><category term='pruebas'/><category term='data service'/><category term='ruby'/><category term='ORACLE'/><category term='process-as-a-service'/><category term='WebServices'/><category term='gobernabilidad'/><category term='metadata-as-a-service'/><category term='contract'/><category term='rules-as-a-service'/><category term='milestone'/><category term='contracts'/><category term='ESB'/><category term='Martin Fowler'/><category term='jbossesb'/><category term='servicio de presentacion'/><category term='EII'/><category term='Security'/><category term='SOA'/><category term='Gandhi'/><category term='Xtext'/><category term='user interface-as-a-service'/><category term='SUN'/><category term='Software Factory'/><category term='opensource'/><category term='Bertrand Meyer'/><category term='acentos'/><category term='Spring'/><category term='Bolero'/><category term='India'/><category term='wcf'/><category term='linux'/><category term='personal'/><category term='REST'/><category term='patterns'/><category term='MDM'/><category term='Business Service'/><category term='Tanenbaum'/><category term='BPM'/><category term='decoupling'/><category term='UDDI'/><category term='Web 2.0'/><category term='blog'/><category term='Satyagraha'/><category term='Eiffel'/><category term='SOAP'/><category term='MQ Series'/><category term='Meyer'/><category term='jboss'/><category term='antipatterns'/><category term='arquitecto'/><category term='Philip Glass'/><category term='mono'/><category term='P2P'/><category term='metadata'/><category term='Archimate'/><category term='CMMI'/><title type='text'>Integración a la Mexicana</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>ChilliCoder</name><uri>http://www.blogger.com/profile/01288599922644011117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>62</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-5380767910054659058</id><published>2011-08-19T01:11:00.003-06:00</published><updated>2011-08-19T01:17:35.343-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TOGAF'/><category scheme='http://www.blogger.com/atom/ns#' term='arquitecto'/><category scheme='http://www.blogger.com/atom/ns#' term='Archimate'/><title type='text'>Primera fase de Arquitectura Empresarial, lista</title><content type='html'>Acabo mi día, reflexionando sobre el logro que tuvimos en mi equipo de trabajo&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Representa el salir de la teoría a la práctica&lt;br /&gt;&lt;br /&gt;El demostrar que un "arquitecto" no es titulo nobiliario, sino se gana con trabajo&lt;br /&gt;&lt;br /&gt;Acabamos celebrando, comiendo pizza, como una fraternidad, que nos une un interés común. Mejorar nuestro ámbito&lt;br /&gt;&lt;br /&gt;Me daré tiempo para platicar los detalles técnicos&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-5380767910054659058?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/5380767910054659058/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=5380767910054659058' title='1 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/5380767910054659058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/5380767910054659058'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2011/08/primera-fase-de-arquitectura.html' title='Primera fase de Arquitectura Empresarial, lista'/><author><name>gusdelact</name><uri>http://www.blogger.com/profile/01280814569141135139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-1817802400839393463</id><published>2011-07-31T14:41:00.007-06:00</published><updated>2011-07-31T15:29:26.688-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Enterprise Architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='arquitectura'/><category scheme='http://www.blogger.com/atom/ns#' term='Cutter'/><category scheme='http://www.blogger.com/atom/ns#' term='torre de marfil'/><category scheme='http://www.blogger.com/atom/ns#' term='Tanenbaum'/><title type='text'>Leyendo a Tanenbaum</title><content type='html'>Por 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.&lt;br /&gt;&lt;br /&gt;Lo interesante, es que muchas personas del ramo de TI que se presumen arquitectos, deberín de leer este libro como ejemplo.&lt;br /&gt;&lt;br /&gt;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&lt;br /&gt;&lt;br /&gt;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. &lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Cerrando el tema con dos anécdotas. &lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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"&lt;br /&gt;&lt;br /&gt;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&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Mis 2 únicos lectores, ojala me perdonen esta entrada poco objetiva, pero tenía que hacer cartasis escribiendo. &lt;br /&gt;&lt;br /&gt;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.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-1817802400839393463?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/1817802400839393463/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=1817802400839393463' title='2 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/1817802400839393463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/1817802400839393463'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2011/07/leyendo-tanenbaum.html' title='Leyendo a Tanenbaum'/><author><name>gusdelact</name><uri>http://www.blogger.com/profile/01280814569141135139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-3010388719634479572</id><published>2011-07-28T00:58:00.003-06:00</published><updated>2011-07-28T01:41:34.026-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Meyer'/><category scheme='http://www.blogger.com/atom/ns#' term='Bertrand Meyer'/><category scheme='http://www.blogger.com/atom/ns#' term='DSL'/><category scheme='http://www.blogger.com/atom/ns#' term='Xtext'/><title type='text'>Domain Specific Languages (DSL) primer comentario</title><content type='html'>Para 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 &lt;br /&gt;&lt;br /&gt;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 &lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Ahora, incios de siglo XXI, ese concepto se llama DSL y es una manera para lograr la extensión de plataformas de computo. &lt;br /&gt;&lt;br /&gt;Me encontre esta referencia en la Dr. Dobss de Julio, &lt;a href="http://www.eclipse.org/Xtext"&gt;Xtext&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-3010388719634479572?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/3010388719634479572/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=3010388719634479572' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/3010388719634479572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/3010388719634479572'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2011/07/domain-specific-languages-dsl-primer.html' title='Domain Specific Languages (DSL) primer comentario'/><author><name>gusdelact</name><uri>http://www.blogger.com/profile/01280814569141135139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-8783435002739959324</id><published>2011-07-01T11:08:00.007-06:00</published><updated>2011-07-01T11:35:33.776-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jbossesb'/><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='MDM'/><category scheme='http://www.blogger.com/atom/ns#' term='ESB'/><category scheme='http://www.blogger.com/atom/ns#' term='jboss'/><title type='text'>Entre Middleware te veras</title><content type='html'>&lt;div&gt;Que tal muchachos, feliz viernes!!!! yeeeah&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;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.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Herramientas Middleware muy interesantes son ocupadas dentro de la arquitectura algunas de ellas:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;MDM - &lt;a href="http://www.talend.com/products-master-data-management/talend-mdm-ce.php"&gt;Talend Community Edition&lt;/a&gt;: Un excelente propuesta de Bases de Datos Maestros.&lt;/li&gt;&lt;li&gt;Application Server: Jboss &lt;/li&gt;&lt;li&gt;Enterprise Service Bus - &lt;a href="http://www.jboss.org/jbossesb"&gt;Jboss ESB&lt;/a&gt; : De los ESBs mas intuitivos que me toco trabajar.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;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:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Comunicación con Bases de Datos Legadas&lt;/li&gt;&lt;li&gt;Comunicación con Aplicaciones Legadas que usan COBOL&lt;/li&gt;&lt;li&gt;Comunicación con una MDM&lt;/li&gt;&lt;li&gt;Comunicación con un BPM&lt;/li&gt;&lt;li&gt;y le podemos seguir.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;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 &lt;a href="http://www.eaipatterns.com/"&gt;EIP &lt;/a&gt;en este sentido, tales como transformaciones, ruteo basado en contenido, Pipelines, etc.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;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)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Les adelanto algunos temas puntuales del Jboss ESB que vamos a tocar en el uso de:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;org.jboss.soa.esb.actions.soap.proxy.SOAPProxy&lt;/li&gt;&lt;li&gt;org.jboss.soa.esb.actions.routing.http.HttpRouter&lt;/li&gt;&lt;li&gt;org.jboss.soa.esb.actions.transformation.xslt.XsltAction&lt;/li&gt;&lt;li&gt;org.jboss.soa.esb.actions.ContentBasedRouter&lt;/li&gt;&lt;li&gt;org.jboss.soa.esb.actions.SystemPrintln&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Cada uno de estos temas los veremos en conjunto con ejemplos de su uso.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Por una integración mejor, nos vemos pronto.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Saludos Tuzo&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-8783435002739959324?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/8783435002739959324/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=8783435002739959324' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/8783435002739959324'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/8783435002739959324'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2011/07/entre-middleware-te-veras.html' title='Entre Middleware te veras'/><author><name>Tuzo</name><uri>http://www.blogger.com/profile/09903812629859341718</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='19' src='http://3.bp.blogspot.com/-MFoP4pie2t4/Tk6KPqbsMSI/AAAAAAAAAFk/olgrspFpC2I/s220/soa_innovation_lab-476x277.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-3222537943487301599</id><published>2011-05-10T15:31:00.002-06:00</published><updated>2011-05-10T15:36:14.542-06:00</updated><title type='text'>Cambio</title><content type='html'>Aunque no debería usar este blog para cosas humanas, je, pues igual está relacionado con el tema&lt;br /&gt;&lt;br /&gt;Ya llevo 7 y medio años donde trabajo. Ahí he madurado y aprendido muchas cosas y experiencias buenas y malas&lt;br /&gt;&lt;br /&gt;Mi instinto y el odioso radiopasillo dice que ya es el momento final de mi trabajo&lt;br /&gt;&lt;br /&gt;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&lt;br /&gt;&lt;br /&gt;Les platicaré que pasa, esta semana seguro y se define algo&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-3222537943487301599?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/3222537943487301599/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=3222537943487301599' title='2 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/3222537943487301599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/3222537943487301599'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2011/05/cambio.html' title='Cambio'/><author><name>gusdelact</name><uri>http://www.blogger.com/profile/01280814569141135139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-120402173728392180</id><published>2011-05-10T15:13:00.004-06:00</published><updated>2011-05-10T15:28:28.778-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TOGAF'/><category scheme='http://www.blogger.com/atom/ns#' term='Enterprise Architecture'/><title type='text'>Iniciando TOGAF</title><content type='html'>Hola 3 lectores&lt;br /&gt;&lt;br /&gt;Durante las últimas semanas he estado leyendo TOGAF, la parte básica&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Pero también requiere de tener experiencia en este tipo de marcos, como CMMI, ITIL, PMP.&lt;br /&gt;&lt;br /&gt;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&lt;br /&gt;&lt;br /&gt;Me estoy poniendo como meta buscar certificación en TOGAF&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-120402173728392180?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/120402173728392180/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=120402173728392180' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/120402173728392180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/120402173728392180'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2011/05/iniciando-togaf.html' title='Iniciando TOGAF'/><author><name>gusdelact</name><uri>http://www.blogger.com/profile/01280814569141135139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-8780049351583055014</id><published>2011-04-09T12:55:00.003-06:00</published><updated>2011-04-09T13:17:08.457-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TOGAF'/><category scheme='http://www.blogger.com/atom/ns#' term='UML'/><category scheme='http://www.blogger.com/atom/ns#' term='Archimate'/><category scheme='http://www.blogger.com/atom/ns#' term='Enterprise Architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><title type='text'>Archimate o de como si se puede modelar en serio</title><content type='html'>Hola 3 lectores&lt;br /&gt;&lt;br /&gt;El mes de marzo fue muy bueno, por que se empezó el tema de Arquitectura Empresarial.&lt;br /&gt;&lt;br /&gt;Como parte de la estrategia, el director de TI nos solicito utilizar Archimate para cuestiones del modelado.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Y el Tuzo afortunadamente encontró una herramienta libre, llamada &lt;a href="http://archi.cetis.ac.uk/index.html"&gt;Archi&lt;/a&gt; la cual está muy bien hecha para cuestiones del modelado.&lt;br /&gt;&lt;br /&gt;Con Archimate, el trabajo de modelar ya no cae en términos de la creatividad, sino que te va guiando. Les invito lean &lt;a href="http://www.opengroup.org/archimate/doc/ts_archimate/"&gt;el libro de Archimate &lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;El concepot de puntos de vista (viewpoint) es muy importante, ya que te va indicando que debes modelar y como relacionar los diversos elementos.&lt;br /&gt;&lt;br /&gt;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&lt;br /&gt;&lt;br /&gt;Adicional, de que se va formando un repositorio de activos de arquitectura y de lo que modelas, va constituyendo un grupo de activos.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;También estamos utilizando otra herramienta, comercial y con necesidad de licencia; que se llama &lt;a href="http://www.bizzdesign.com/index.php/tools/architect"&gt;BizzDesign Architect&lt;/a&gt;; 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.&lt;br /&gt;&lt;br /&gt;Y ahora estoy estudiando &lt;a href="http://pubs.opengroup.org/architecture/togaf9-doc/arch/"&gt;TOGAF&lt;/a&gt;, para tener ya el marco metodólogico para trabajar en el tema de arquitectura empresarial. &lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-8780049351583055014?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/8780049351583055014/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=8780049351583055014' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/8780049351583055014'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/8780049351583055014'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2011/04/archimate-o-de-como-si-se-puede-modelar.html' title='Archimate o de como si se puede modelar en serio'/><author><name>gusdelact</name><uri>http://www.blogger.com/profile/01280814569141135139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-9043875854062437640</id><published>2011-02-19T16:52:00.004-06:00</published><updated>2011-02-19T17:10:10.052-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='acentos'/><category scheme='http://www.blogger.com/atom/ns#' term='unicode'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><category scheme='http://www.blogger.com/atom/ns#' term='pruebas'/><category scheme='http://www.blogger.com/atom/ns#' term='internacionalizacion'/><title type='text'>Integracion con sabor internacional</title><content type='html'>Pues 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&lt;br /&gt;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. &lt;br /&gt;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. &lt;br /&gt;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&lt;br /&gt;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.&lt;br /&gt;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.&lt;br /&gt;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 &lt;a href="http://mitago.net/archives/2007/04/01/T23_17_30/"&gt;situación&lt;/a&gt;.&lt;br /&gt;Eureka! Encontramos un hechizo mágico, iconv.&lt;br /&gt;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&lt;br /&gt;Pero me pregunto, que necesidad había de pasar todo esto. No hubiera sido mejor tomar en cuenta los acentos. &lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Y por favor, prueben antes de liberar a producción!&lt;br /&gt;&lt;br /&gt;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 !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-9043875854062437640?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/9043875854062437640/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=9043875854062437640' title='3 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/9043875854062437640'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/9043875854062437640'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2011/02/integracion-con-sabor-internacional.html' title='Integracion con sabor internacional'/><author><name>gusdelact</name><uri>http://www.blogger.com/profile/01280814569141135139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-4551259222734781909</id><published>2011-01-23T02:38:00.006-06:00</published><updated>2011-01-23T02:44:33.214-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='SOAP'/><category scheme='http://www.blogger.com/atom/ns#' term='ORACLE'/><category scheme='http://www.blogger.com/atom/ns#' term='JMS'/><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud'/><category scheme='http://www.blogger.com/atom/ns#' term='REST'/><category scheme='http://www.blogger.com/atom/ns#' term='WebServices'/><category scheme='http://www.blogger.com/atom/ns#' term='ESB'/><title type='text'>Integración a la mexicana Recargada</title><content type='html'>Hola!&lt;br /&gt;&lt;br /&gt;Tendremos todavía lectores?&lt;br /&gt;&lt;br /&gt;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&lt;br /&gt;&lt;br /&gt;Y de Ruby quiero hablar&lt;br /&gt;&lt;br /&gt;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&lt;br /&gt;&lt;br /&gt;Retomando las ideas de Bruce Tate, en su libro Beyond Java, he decidido aplicar el camino, al igual que Chillicoder.&lt;br /&gt;&lt;br /&gt;Durante ya los casi 5 años en los que Ruby on Rails ha evolucionado, encuentro una plataforma madura y bien diseñada.  &lt;br /&gt;&lt;br /&gt;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&lt;br /&gt;&lt;br /&gt;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&lt;br /&gt;&lt;br /&gt;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&lt;br /&gt;&lt;br /&gt;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&lt;br /&gt;&lt;br /&gt;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&lt;br /&gt;&lt;br /&gt;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&lt;br /&gt;&lt;br /&gt;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&lt;br /&gt;&lt;br /&gt;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&lt;br /&gt;&lt;br /&gt;De ahí que llamo a esta entrada, Integración Recargada por que veo nuevas posibilidades por aprender y de ahí aplicar&lt;br /&gt;&lt;br /&gt;Empezando el 2011, y con retos interesantes en la chamba&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-4551259222734781909?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/4551259222734781909/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=4551259222734781909' title='3 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/4551259222734781909'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/4551259222734781909'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2011/01/integracion-la-mexicana-recargada.html' title='Integración a la mexicana Recargada'/><author><name>gusdelact</name><uri>http://www.blogger.com/profile/01280814569141135139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-2391161961045583207</id><published>2010-05-29T16:19:00.001-06:00</published><updated>2010-05-29T16:21:01.458-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Meyer'/><category scheme='http://www.blogger.com/atom/ns#' term='Eiffel'/><category scheme='http://www.blogger.com/atom/ns#' term='design by contract'/><category scheme='http://www.blogger.com/atom/ns#' term='servicio'/><category scheme='http://www.blogger.com/atom/ns#' term='SUN'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><category scheme='http://www.blogger.com/atom/ns#' term='contract'/><category scheme='http://www.blogger.com/atom/ns#' term='objeto distribuido'/><title type='text'>Bertrand Meyer</title><content type='html'>Nunca les he platicado de Bertrand Meyer, http://bertrandmeyer.com, pero es uno de los computologos bastante reconocidos.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;En algun momento SUN empezo a ver Eiffel como su lenguaje de programacion orientada a objetos, pero fue Java quien gano al final.&lt;br /&gt;&lt;br /&gt;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.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-2391161961045583207?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/2391161961045583207/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=2391161961045583207' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/2391161961045583207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/2391161961045583207'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2010/05/bertrand-meyer.html' title='Bertrand Meyer'/><author><name>gusdelact</name><uri>http://www.blogger.com/profile/01280814569141135139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-3287087175281149323</id><published>2009-10-27T01:35:00.003-06:00</published><updated>2009-10-27T01:44:43.870-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='gobernabilidad'/><category scheme='http://www.blogger.com/atom/ns#' term='WebServices'/><category scheme='http://www.blogger.com/atom/ns#' term='governance'/><title type='text'>Empezando la implantación de SOA</title><content type='html'>Voy a tratar de ir actualizando de manera frecuente el blog, orientado a narrar las experiencias en la implantación de SOA.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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&lt;br /&gt;&lt;br /&gt;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.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-3287087175281149323?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/3287087175281149323/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=3287087175281149323' title='1 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/3287087175281149323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/3287087175281149323'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2009/10/empezando-la-implantacion-de-soa.html' title='Empezando la implantación de SOA'/><author><name>gusdelact</name><uri>http://www.blogger.com/profile/01280814569141135139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-533213791995628678</id><published>2009-10-20T15:00:00.000-06:00</published><updated>2009-10-20T15:02:13.971-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='ideas'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><category scheme='http://www.blogger.com/atom/ns#' term='community'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='milestone'/><category scheme='http://www.blogger.com/atom/ns#' term='opensource'/><title type='text'>WorkshopCamp Cd. de México</title><content type='html'>El 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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Habrá dos turnos de talleres, el primero de 10 a 13 hrs y el segundo de 14 a 7 hrs.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Protejan las ganancias&lt;/li&gt;&lt;li&gt; Incrementen las ganancias   &lt;/li&gt;&lt;li&gt; Reduzcan los costos&lt;/li&gt;&lt;/ul&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;El registro lo pueden realizar en &lt;a href="http://barcamp.org/WorkshopCampMexico"&gt;WorkshopCamp Cd. de México&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;¡Los esperamos!&lt;br /&gt;&lt;br /&gt;Finito.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-533213791995628678?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/533213791995628678/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=533213791995628678' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/533213791995628678'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/533213791995628678'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2009/10/workshopcamp-cd-de-mexico.html' title='WorkshopCamp Cd. de México'/><author><name>ChilliCoder</name><uri>http://www.blogger.com/profile/01288599922644011117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-7966555039558496761</id><published>2009-09-06T18:00:00.001-06:00</published><updated>2009-09-06T18:00:59.539-06:00</updated><title type='text'>hola</title><content type='html'>&lt;div class="pp_items"&gt;&lt;div class="pp_item" align="left"&gt;&lt;p&gt;hola&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-7966555039558496761?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/7966555039558496761/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=7966555039558496761' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/7966555039558496761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/7966555039558496761'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2009/09/hola.html' title='hola'/><author><name>gusdelact</name><uri>http://www.blogger.com/profile/01280814569141135139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-1878769761140408809</id><published>2009-09-06T17:50:00.001-06:00</published><updated>2009-09-06T17:50:25.235-06:00</updated><title type='text'>Empezando a experimentar la era digital</title><content type='html'>&lt;div class="pp_items"&gt;&lt;div class="pp_item" align="left"&gt;&lt;p&gt;Probando que desde mi iPhone pueda realizar posts&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-1878769761140408809?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/1878769761140408809/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=1878769761140408809' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/1878769761140408809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/1878769761140408809'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2009/09/empezando-experimentar-la-era-digital.html' title='Empezando a experimentar la era digital'/><author><name>gusdelact</name><uri>http://www.blogger.com/profile/01280814569141135139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-3768106380905979943</id><published>2009-06-16T09:35:00.003-06:00</published><updated>2009-06-16T10:11:30.737-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='opinion'/><category scheme='http://www.blogger.com/atom/ns#' term='webservice'/><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='antipatterns'/><title type='text'>¿y los estandares apa?</title><content type='html'>Bien pues aqui de regreso a este lindo blog, queridos 2 lectores..&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Bueno pues a lo que me trajo este "quejapost". hace ya unos meses escribimos un post acerca de la &lt;a href="http://integramx.blogspot.com/2007/11/la-importancia-de-los-contratos.html"&gt;importantcia de los contratos&lt;/a&gt;, en el que basicamente podriamos concluir con la frase que he tomado hace tiempo "&lt;a href="http://integramx.blogspot.com/2007/05/la-culpa-no-la-tiene-el-servicio-sino.html"&gt;la culpa no la tiene el SERVICIO, si no quien lo IMPLEMENTA &lt;/a&gt;( o mejor aun QUIEN LO DISEÑA )"...&lt;br /&gt;&lt;br /&gt;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!!&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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..&lt;br /&gt;&lt;br /&gt;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)" ...&lt;br /&gt;&lt;br /&gt;Bueno pues despues de desahogarme con ustedes.. .el mensaje que deseo dar a este post es:&lt;br /&gt;&lt;br /&gt;- Definan contratos de negocio: usenlo como su diccionario de datos, en algunas framworks como el SOMA se le llama "Service Interface"&lt;br /&gt;- 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"&lt;br /&gt;- 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&lt;br /&gt;- En la definicion de su Servicio, siempre consideren informacion necesaria para manejo de errores: ERROR, NUMERO, DESCRIPCION.&lt;br /&gt;&lt;br /&gt;Porque si no volvere a preguntarme ¿y los estandares apa?&lt;br /&gt;&lt;br /&gt;Por una integracion mejor, hasta la vista&lt;br /&gt;&lt;br /&gt;Tuzo&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-3768106380905979943?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/3768106380905979943/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=3768106380905979943' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/3768106380905979943'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/3768106380905979943'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2009/06/y-los-estandares-apa.html' title='¿y los estandares apa?'/><author><name>Tuzo</name><uri>http://www.blogger.com/profile/09903812629859341718</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='19' src='http://3.bp.blogspot.com/-MFoP4pie2t4/Tk6KPqbsMSI/AAAAAAAAAFk/olgrspFpC2I/s220/soa_innovation_lab-476x277.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-3881358726114200829</id><published>2009-06-06T19:30:00.001-06:00</published><updated>2009-06-06T19:30:41.242-06:00</updated><title type='text'>Un día después</title><content type='html'>Como 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.&lt;br&gt;&lt;br&gt;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.&lt;br&gt;&lt;br&gt;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. &lt;br&gt;&lt;br&gt;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, &lt;br&gt;&lt;ul&gt;&lt;li&gt;"fail fast", si tienes una idea, enfréntala a la realidad, si es buena y funciona, invierte en ella sino continua con la siguiente. &lt;/li&gt;&lt;li&gt;Necesitas gente con mentes frescas antes que grandes recursos financieros.&lt;/li&gt;&lt;li&gt;Los negocios son para venderse, no quedarse toda la vida con ellos.&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;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.&lt;br&gt;&lt;br&gt;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.&lt;br&gt;&lt;br&gt;Finito.&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-3881358726114200829?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/3881358726114200829/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=3881358726114200829' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/3881358726114200829'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/3881358726114200829'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2009/06/un-dia-despues.html' title='Un día después'/><author><name>ChilliCoder</name><uri>http://www.blogger.com/profile/01288599922644011117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-8111422561095071909</id><published>2009-05-29T13:33:00.000-06:00</published><updated>2009-05-29T13:34:18.861-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><category scheme='http://www.blogger.com/atom/ns#' term='community'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><title type='text'>RubyCamp</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Verdana; font-size: 13px; "&gt;El próximo viernes 5 de junio se realizará el evento &lt;b&gt;RubyCamp&lt;/b&gt; en las instalaciones del &lt;b&gt;IFUNAM&lt;/b&gt;. 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 &lt;a id="an60" href="http://ruby-lang.org/" title="Ruby"&gt;Ruby&lt;/a&gt;  y con &lt;a id="les_" href="http://rubyonrails.org/" title="Ruby On Rails"&gt;Ruby On Rails&lt;/a&gt;  dando breves pero sustanciosas pláticas pero también veo en la agenda del evento, gente nueva en la onda Ruby On Rails.&lt;br /&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;Así que se extiende la invitación a todos los lectores, más detalles los pueden encontrar en el &lt;a id="vir6" href="http://olimpo.fisica.unam.mx/rubycamp" title="sitio del evento" style="color: rgb(85, 26, 139); "&gt;sitio del evento&lt;/a&gt; , en &lt;a id="sa75" href="http://groups.google.com/group/rubycamp-unam/" title="la lista de correos" style="color: rgb(85, 26, 139); "&gt;la lista de correos&lt;/a&gt;  o simplemente síguenos en &lt;a id="gm3w" href="http://twitter.com/rubycamp_ifunam" title="twitter" style="color: rgb(85, 26, 139); "&gt;twitter&lt;/a&gt; .&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-bottom: 0px; "&gt;Finito.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-8111422561095071909?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/8111422561095071909/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=8111422561095071909' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/8111422561095071909'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/8111422561095071909'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2009/05/rubycamp.html' title='RubyCamp'/><author><name>ChilliCoder</name><uri>http://www.blogger.com/profile/01288599922644011117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-5986941327563545136</id><published>2009-03-29T00:53:00.003-06:00</published><updated>2009-03-29T03:01:25.663-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='Enterprise Architecture'/><title type='text'>SOA no solo es Tecnología de Información</title><content type='html'>Arquitectua Orientada a Servicios ...&lt;br /&gt;&lt;br /&gt;Algunos ya dicen que SOA está desapareciendo, que ha sido un fracaso.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;El camino que deriva la creación de un servicio debe ser asi:&lt;br /&gt;&lt;br /&gt;* Estrategia de negocio u organización. Define los objetivos a alcanzar.&lt;br /&gt;* Servicios de negocio. Manera como la organización entrega un bien o servicio a sus clientes,empleados y/o proveedores.&lt;br /&gt;* Capacidades de Arquitectura Empresarial. Las funcionalidades de tecnología.&lt;br /&gt;* Plataforma de Tecnología de Información. Componentes de software y hardware.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Es decir, cualquier servicio, se origina por alguna necesidad de negocio y tiene como vista, compartir y reutilizar información. &lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Es dificil para alguien que ha tenido una preparación de ingeniera de sistemas, llegar a estas conclusiones. &lt;br /&gt;&lt;br /&gt;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).&lt;br /&gt;&lt;br /&gt;En cambio, enfocado a servicios, el desarrollador de soluciones sabe claramente la contribución al negocio.&lt;br /&gt;&lt;br /&gt;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.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-5986941327563545136?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/5986941327563545136/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=5986941327563545136' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/5986941327563545136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/5986941327563545136'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2009/03/soa-no-solo-es-tecnologia-de.html' title='SOA no solo es Tecnología de Información'/><author><name>gusdelact</name><uri>http://www.blogger.com/profile/01280814569141135139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-3070111344728265161</id><published>2009-01-03T03:53:00.005-06:00</published><updated>2009-01-04T22:05:36.026-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ravel'/><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='Enterprise Architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='portal'/><category scheme='http://www.blogger.com/atom/ns#' term='BPM'/><category scheme='http://www.blogger.com/atom/ns#' term='Business Service'/><category scheme='http://www.blogger.com/atom/ns#' term='Bolero'/><category scheme='http://www.blogger.com/atom/ns#' term='ESB'/><title type='text'>Bolero de Ravel y Arquitectura Orientada a Servicios</title><content type='html'>Desde hace un rato se me habia ocurrido esta idea, en un concierto donde tocaron el Bolero de Maurice Ravel.&lt;br /&gt;&lt;br /&gt;Todo la obra esta llevada por un solo patron musical, sin embargo es interesante notar como los distintos instrumentos de la orquesta lo interpretan.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Y de ahi es donde empieza la analogia.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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! &lt;br /&gt;&lt;br /&gt;Los dejo con un video con la version abreviada del Bolero de Ravel, pero bastante bien interpretado, y con voces humanas &lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/5_XdRa2oMR0&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/5_XdRa2oMR0&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-3070111344728265161?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/3070111344728265161/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=3070111344728265161' title='1 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/3070111344728265161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/3070111344728265161'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2009/01/bolero-de-ravel-y-arquitectura.html' title='Bolero de Ravel y Arquitectura Orientada a Servicios'/><author><name>gusdelact</name><uri>http://www.blogger.com/profile/01280814569141135139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-3343451517294535546</id><published>2008-11-16T03:22:00.003-06:00</published><updated>2008-11-16T03:34:43.698-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='webservice'/><category scheme='http://www.blogger.com/atom/ns#' term='SOAP'/><category scheme='http://www.blogger.com/atom/ns#' term='REST'/><category scheme='http://www.blogger.com/atom/ns#' term='servicio de presentacion'/><category scheme='http://www.blogger.com/atom/ns#' term='Web 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='mashup'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><title type='text'>Mashups o Web como servicio</title><content type='html'>Explicando brevemente un concepto que se ha manejado ultimamente, mashups (asociado con Web 2.0)&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;El concepto es muy interesante y poderoso, ya que es un mecanismo que permite exponer paginas Web como servicios.&lt;br /&gt;&lt;br /&gt;Les recomiendo visiten la documentacion del proyecto &lt;a href="http://wso2.org/project/mashup/1.5.1/docs/index.html" &gt;WSO2 server mashup&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;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 &lt;a href="http://www.jackbe.com/" &gt;JackBe &lt;/a&gt;, con su tecnologia Presto&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Cierro este comentario, dejando que mediten las posibilidades de integrar a las aplicaciones informacion que vienen de Internet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-3343451517294535546?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/3343451517294535546/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=3343451517294535546' title='1 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/3343451517294535546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/3343451517294535546'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2008/11/mashups-o-web-como-servicio.html' title='Mashups o Web como servicio'/><author><name>gusdelact</name><uri>http://www.blogger.com/profile/01280814569141135139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-7801508575898607177</id><published>2008-09-28T09:51:00.012-06:00</published><updated>2008-09-28T11:06:34.118-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mule'/><category scheme='http://www.blogger.com/atom/ns#' term='CXF'/><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='WebServices'/><category scheme='http://www.blogger.com/atom/ns#' term='Spring'/><category scheme='http://www.blogger.com/atom/ns#' term='ESB'/><title type='text'>Web Services con Mule CXF y Spring</title><content type='html'>Hola que tal&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Bien pues despues de lo anterior..... el post de hoy habla de de como combinar &lt;a href="http://www.springframework.org/"&gt;Spring&lt;/a&gt;, &lt;a href="http://cxf.apache.org/"&gt;CXF &lt;/a&gt;y &lt;a href="http://mule.mulesource.org/display/MULE/Home"&gt;MULE&lt;/a&gt;, para generar y exponer servicios web usando el ESB Mule.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Bien los ingredientes son:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;La distribucion de Mule (que esta basada en spring)&lt;/li&gt;&lt;li&gt;Si gustan usamos &lt;a href="http://www.mulesource.org/display/MULEIDE/Home"&gt;Eclipse Mule IDE&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;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.&lt;br /&gt;&lt;br /&gt;El codigo como sigue&lt;br /&gt;&lt;br /&gt;public interface ICalculadora {&lt;br /&gt;public float suma(float a, float b);&lt;br /&gt;public float resta(float a, float b);&lt;br /&gt;public float division(float a, float b);&lt;br /&gt;public float multiplicacion(float a, float b);&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;y la implementacion&lt;br /&gt;&lt;br /&gt;public class CalculadoraImpl implements ICalculadora {&lt;br /&gt;public float division(float a, float b) {  &lt;br /&gt;   if (b==0) return -1;&lt;br /&gt;   else return a/b;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;public float multiplicacion(float a, float b) { return a*b;}&lt;br /&gt;public float resta(float a, float b) { return a-b; }&lt;br /&gt;public float suma(float a, float b) { return a+b; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;woow!!!, ahora bien si este pojo lo queremos usar con spring lo unico que necesitamos haces es su archivo de configuracion el application context:&lt;br /&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&amp;lt;beans xmlns="http://www.springframework.org/schema/beans"&lt;br /&gt;    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&lt;br /&gt;    xsi:schemaLocation="http://www.springframework.org/schema/beans&lt;br /&gt;    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;bean id="calculadora"&lt;br /&gt;     class="ejercicio.CalculadoraImpl"&lt;br /&gt;     scope="singleton"&amp;gt;&lt;br /&gt; &amp;lt;/bean&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/beans&amp;gt;&lt;br /&gt;&lt;br /&gt;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:&lt;br /&gt;&lt;br /&gt;import javax.jws.WebResult;&lt;br /&gt;import javax.jws.WebService;&lt;br /&gt;&lt;br /&gt;@WebService&lt;br /&gt;public interface ICalculadora {&lt;br /&gt;&lt;br /&gt; @WebResult(name="suma")&lt;br /&gt; public float suma(float a, float b);&lt;br /&gt;&lt;br /&gt; @WebResult(name="resta")&lt;br /&gt; public float resta(float a, float b);&lt;br /&gt;&lt;br /&gt; @WebResult(name="division")&lt;br /&gt; public float division(float a, float b);&lt;br /&gt;&lt;br /&gt; @WebResult(name="multiplicacion")&lt;br /&gt; public float multiplicacion(float a, float b);&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;y para la implementacion:&lt;br /&gt;&lt;br /&gt;import javax.jws.WebService;&lt;br /&gt;&lt;br /&gt;@WebService(endpointInterface = "ejercicio.ICalculadora",&lt;br /&gt;     serviceName = "Calculadora")&lt;br /&gt;public class CalculadoraImpl implements ICalculadora {&lt;br /&gt;&lt;br /&gt; public float division(float a, float b) {&lt;br /&gt;     if (b==0) return -1;&lt;br /&gt;     else return a/b;&lt;br /&gt; &lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public float multiplicacion(float a, float b) {&lt;br /&gt;     return a*b;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public float resta(float a, float b) {&lt;br /&gt;     return a-b;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public float suma(float a, float b) {&lt;br /&gt;     return a+b;&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Una vez colocadas las anotaciones lo que sigue es generar nuestro archivo de configuracion de Mule mule-config.xml tal y como sigue:&lt;br /&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&amp;lt;mule xmlns="http://www.mulesource.org/schema/mule/core/2.0"&lt;br /&gt;     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&lt;br /&gt;     xmlns:spring="http://www.springframework.org/schema/beans"&lt;br /&gt;     xmlns:soap="http://www.mulesource.org/schema/mule/soap/2.0"&lt;br /&gt;     xmlns:cxf="http://www.mulesource.org/schema/mule/cxf/2.0"&lt;br /&gt;  xsi:schemaLocation="&lt;br /&gt;     http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd&lt;br /&gt;     http://www.mulesource.org/schema/mule/core/2.0 http://www.mulesource.org/schema/mule/core/2.0/mule.xsd&lt;br /&gt;     http://www.mulesource.org/schema/mule/soap/2.0 http://www.mulesource.org/schema/mule/soap/2.0/mule-soap.xsd&lt;br /&gt;     http://www.mulesource.org/schema/mule/cxf/2.0 http://www.mulesource.org/schema/mule/cxf/2.0/mule-cxf.xsd"&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;spring:beans&amp;gt;&lt;br /&gt;      &amp;lt;spring:import resource="springContext.xml"/&amp;gt;&lt;br /&gt;  &amp;lt;/spring:beans&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;model name="servicescalculadora"&amp;gt;&lt;br /&gt;      &amp;lt;service name="Calculadora"&amp;gt;&lt;br /&gt;          &amp;lt;inbound&amp;gt;&lt;br /&gt;              &amp;lt;cxf:inbound-endpoint address="http://localhost:65082/services/Calculadora" /&amp;gt;&lt;br /&gt;          &amp;lt;/inbound&amp;gt;&lt;br /&gt;          &amp;lt;component&amp;gt;&lt;br /&gt;              &amp;lt;spring-object bean="calculadora" /&amp;gt;&lt;br /&gt;          &amp;lt;/component&amp;gt;&lt;br /&gt;      &amp;lt;/service&amp;gt;&lt;br /&gt;  &amp;lt;/model&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/mule&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;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:&lt;br /&gt;&lt;br /&gt;MULE_HOME\mule -config mule-config.xml&lt;br /&gt;&lt;br /&gt;Se ejecuta el servidor de mule al finalizar debemos de ver algo como lo siguiente:&lt;br /&gt;&lt;br /&gt;INFO: Setting the server's publish address to be http://localhost:65082/services/Calculadora&lt;br /&gt;&lt;br /&gt;Bien, pues listo! ya estsmos en posibilidades de ver el WSDL&lt;br /&gt;&lt;br /&gt;http://localhost:65082/services/Calculadora?WSDL&lt;br /&gt;&lt;br /&gt;Ahora solo es cuestion de ejecutar pruebas con nuestro servicio web, en lo personal yo uso &lt;a href="http://integramx.blogspot.com/2007/05/soapui-una-buena-herramienta.html"&gt;SOAP UI&lt;/a&gt;, pero pues lo pueden hacer con cualquier herramienta que pueda mandar peticiones hacia sua servicios web.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_QXKiOP-oRG8/SN-49xwO31I/AAAAAAAAABc/ZNdJ11B67RM/s1600-h/soapui.jpg"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_QXKiOP-oRG8/SN-49xwO31I/AAAAAAAAABc/ZNdJ11B67RM/s320/soapui.jpg" alt="" id="BLOGGER_PHOTO_ID_5251119062004457298" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Bueno pues es todo, esperemos que les sirva, quejas y sugerencias seran bien recibidas.&lt;br /&gt;&lt;br /&gt;Por una integracion mejor, hasta la vista!!&lt;br /&gt;&lt;br /&gt;Tuzo&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-7801508575898607177?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/7801508575898607177/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=7801508575898607177' title='3 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/7801508575898607177'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/7801508575898607177'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2008/09/web-services-con-mule-cxf-y-spring.html' title='Web Services con Mule CXF y Spring'/><author><name>Tuzo</name><uri>http://www.blogger.com/profile/09903812629859341718</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='19' src='http://3.bp.blogspot.com/-MFoP4pie2t4/Tk6KPqbsMSI/AAAAAAAAAFk/olgrspFpC2I/s220/soa_innovation_lab-476x277.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_QXKiOP-oRG8/SN-49xwO31I/AAAAAAAAABc/ZNdJ11B67RM/s72-c/soapui.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-8745956948809484904</id><published>2008-07-14T01:22:00.001-06:00</published><updated>2008-07-14T01:31:15.705-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tolstoy'/><category scheme='http://www.blogger.com/atom/ns#' term='India'/><category scheme='http://www.blogger.com/atom/ns#' term='humildad'/><category scheme='http://www.blogger.com/atom/ns#' term='Gandhi'/><category scheme='http://www.blogger.com/atom/ns#' term='Satyagraha'/><category scheme='http://www.blogger.com/atom/ns#' term='latinoamerica'/><category scheme='http://www.blogger.com/atom/ns#' term='Philip Glass'/><title type='text'>Antes de dormir</title><content type='html'>Como conclusion y antes del inicio de semana, confirmo mi concepto sobre lo mucho que se puede aprender de la India, he tenido la oportunidad de conocer personas que trabajan en la organizacion donde estoy, y el conocimiento que tienen es muy bueno y que se combina muy bien en la sencillez, amabilidad y humildad de los mismos&lt;br /&gt;&lt;br /&gt;Mientras estaba preparando mis vacaciones anuales, estaba viendo de reojo la pelicula de Gandhi y dejando atras todo lo que implica una pelicula de Hollywood, retrata bien la manera como Gandhi logro dar identidad a su pais. Y lo veo en los actuales ciudadanos de la India, tienen orgullo de su nacion, sus costumbres y trabajan para salir adelante.&lt;br /&gt;&lt;br /&gt;Mi idea es algun dia poder aplicar las ideas de Gandhi para lograr un cambio en nuestro pais, o en latinoamerica, para que un dia la industria de software deje de estar en manos de los grandes inversionistas, y formar algo que se llame comunidades de software, y basadas en las granjas de Tolstoy, en Satyagraha&lt;br /&gt;&lt;br /&gt;Y pensar que todo empezo con oir la musica de Philip Glass&lt;br /&gt;&lt;br /&gt;Les dejo de tarea que investiguen lo que les digo&lt;br /&gt;&lt;br /&gt;Parece algo muy lejano, pero creo lo grande se hace al inicio de lo intangible e inalcanzable&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-8745956948809484904?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/8745956948809484904/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=8745956948809484904' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/8745956948809484904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/8745956948809484904'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2008/07/blog-post.html' title='Antes de dormir'/><author><name>gusdelact</name><uri>http://www.blogger.com/profile/01280814569141135139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-7691870662972977664</id><published>2008-07-14T01:19:00.003-06:00</published><updated>2008-07-14T01:21:16.954-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='integration'/><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><category scheme='http://www.blogger.com/atom/ns#' term='interoper'/><title type='text'>Un blog de interoperabilidad recomendable</title><content type='html'>Encontre este blog de una persona llamada &lt;a href="http://weblogs.asp.net/gsusx/"&gt;Jesus Rodriguez&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Me llama la atencion el alto nivel tecnico que tiene, y la cantidad de temas de los que habla&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-7691870662972977664?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/7691870662972977664/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=7691870662972977664' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/7691870662972977664'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/7691870662972977664'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2008/07/un-blog-de-interoperabilidad.html' title='Un blog de interoperabilidad recomendable'/><author><name>gusdelact</name><uri>http://www.blogger.com/profile/01280814569141135139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-1934758469915951485</id><published>2008-07-14T01:09:00.003-06:00</published><updated>2008-07-14T01:18:48.668-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='business architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='Enterprise Architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='business capabilities'/><title type='text'>Business Capabilities y SOA</title><content type='html'>Hace como 3 meses, se dio el foro de Arquitectura que organiza Microsoft&lt;br /&gt;&lt;br /&gt;Puede solo ir a las conferencias de las 9 a.m.&lt;br /&gt;&lt;br /&gt;Y el segundo dia fue muy bueno, ya que expuso &lt;a href="http://www.thearchitectexchange.com/asehmi/"&gt;Arvindra Sehmi&lt;/a&gt; sobre el concepto de "Competencias de la Empresa y Arquitectura Orientada a Servicios" ( o en ingles, Business Capabilities y SOA)&lt;br /&gt;&lt;br /&gt;Durante su platica empezo a contestarme las preguntas que tanto me han inquietado, sobre una metodologia para tomar el modelo de negocio de una empresa y a partir de eso especificar la estrategia SOA.&lt;br /&gt;&lt;br /&gt;Esta metodologia se me hace solida. En el blog de Arvindra encontraran detalles sobre como verlo&lt;br /&gt;&lt;br /&gt;Mientras, yo sigo buscando la aplicacion del modelo de Competencias de la Empresa, ya que estoy en el momento en el que tengo que tomar un rol en el cual debo ser quien entienda las necesidades de arquitectura de cuatro grandes proyectos que son el nucleo de la organizacion para la que trabajo. Creo que ese rol de manera formal se llama arquitecto empresarial, espero no estar pecando de presumido.&lt;br /&gt;&lt;br /&gt;Les contare como me fue&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-1934758469915951485?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/1934758469915951485/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=1934758469915951485' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/1934758469915951485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/1934758469915951485'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2008/07/business-capabilities-y-soa.html' title='Business Capabilities y SOA'/><author><name>gusdelact</name><uri>http://www.blogger.com/profile/01280814569141135139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-7131657894873092411</id><published>2008-07-14T00:52:00.005-06:00</published><updated>2008-07-14T01:22:27.102-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lambda'/><category scheme='http://www.blogger.com/atom/ns#' term='Bertrand Meyer'/><category scheme='http://www.blogger.com/atom/ns#' term='DSL'/><category scheme='http://www.blogger.com/atom/ns#' term='Martin Fowler'/><category scheme='http://www.blogger.com/atom/ns#' term='DSL Bertrand Meyer lambda semantica denotacional compiladores'/><title type='text'>DSL</title><content type='html'>Un tema que parece reciente, Domain Specific Language, es algo que estuve leyendo en esta madrugada&lt;br /&gt;&lt;br /&gt;Sin embargo, me desentierra una idea que tuve desde hace 15 a&amp;ntilde;os, cuando estaba en la carrera, y viendo compiladores. &lt;br /&gt;&lt;br /&gt;Todo empezo con el libro del sabio Bertrand Meyer, Introduction to the Theory of programming language, que describe la teoria necesaria para dise&amp;ntilde;ar un lenguaje de programacion, utilizando conceptos como calculo lambda, semantica denotacional. Pero un punto muy importante del que hablar Meyer es que cualquier computo puede ser expresado en un lenguaje de programacion, y lo mejor, que es posible la definicion de un lenguaje especifico a un problema o dominio en particular.&lt;br /&gt;&lt;br /&gt;Por ejemplo, se puede definir un lenguaje para definir interfaces graficas, ya sea definiendo una sintaxis que se puede interpretar o compilar; o se puede crear un API en algun lenguaje.&lt;br /&gt;&lt;br /&gt;Y precesiamente, el concepto de DSL es que se defina un lenguaje de programacion que exprese de mejero manera el dominio del problema a definir. &lt;br /&gt;&lt;br /&gt;Para no explicar mal, les dejo estas ligas&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://martinfowler.com/dslwip/"&gt;Martin Fowler&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.javaworld.com/javaworld/jw-06-2008/jw-06-dsls-in-java-1.html"&gt;Java World  &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-7131657894873092411?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/7131657894873092411/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=7131657894873092411' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/7131657894873092411'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/7131657894873092411'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2008/07/dsl.html' title='DSL'/><author><name>gusdelact</name><uri>http://www.blogger.com/profile/01280814569141135139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-50579917367491652</id><published>2008-06-24T16:05:00.000-06:00</published><updated>2008-06-24T16:07:03.490-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><category scheme='http://www.blogger.com/atom/ns#' term='community'/><category scheme='http://www.blogger.com/atom/ns#' term='opensource'/><title type='text'>Google Developer Day 2008</title><content type='html'>Ayer fue un día muy emocionante: el primer Google Developer Day en México.&lt;br /&gt;&lt;br /&gt;Único desde el proceso de inscripción en el cual tenías que proporcionar mucho de tu perfil e incluso url's de aplicaciones desarrolladas.&lt;br /&gt;&lt;br /&gt;Finalmente llegó la confirmación y empezó la cuenta atrás para la fecha del evento  y la travesía de media ciudad (o ciudad y media) para arribar al Centro Banamex.&lt;br /&gt;&lt;br /&gt;El registro simple y directo. Cero complicaciones. Se perfilaba el look de la gente de Google, todos con unas curiosas batas tipo laboratorio.&lt;br /&gt;&lt;br /&gt;En ese momento fue cuando empecé a encontrar conocidos y a conocer a muchas personas. Varios amigos nos fuimos encontrando y se fue armando la banda antes de entrar al salón de las conferencias plenarias.&lt;br /&gt;&lt;br /&gt;Estas conferencias estuvieron interesantes, si tuviera que reducir al máximo lo que me dejaron quedan solamente dos palabras: comunidad y compartir. Realmente creó que la gente de Google se preparó para dar un mensaje positivo, incluyente e incluso comercial pero en un marco de una relación "ganar-ganar".&lt;br /&gt;&lt;br /&gt;Al termino de las plenarias se organizó un brunch y me impactó de sobre manera la diferencia de cultura, actitudes y gente contra la conferencia gubernamental que se llevaba a cabo paralelamente. El área de los visitantes del GDD era un bonche de puffs para desparramarte a tu gusto. Lamentablemente no fueron suficientes y algunos tuvimos que buscar espacios alternativos.&lt;br /&gt;&lt;br /&gt;Las conferencias por separado (breakout) dieron inicio y me apunté a la que trataba el tema de Google App Engine (GAE). Lo primero que me decepcionó fue ver que ponente utilizaba Windows... al menos era XP. Lo noté nervioso y algunas veces novatón. Esperaba más de la presentación.&lt;br /&gt;&lt;br /&gt;A continuación vino el tema de GWT, que ya lo conocía y que me pareció interesante escucharlo de alguien que lo conoce muy, muy, muy a fondo. Excelente ponente.&lt;br /&gt;&lt;br /&gt;El penúltimo tema fue Gears, la herramienta de Google para desarrollar aplicaciones web que pueden funcionar fuera de línea (offline). El ponente estuvo de miedo: ¡excelente! Y pues el tema da harto para hablar.&lt;br /&gt;&lt;br /&gt;La última presentación a la que asistí fue la de OpenSocial + GAE. El ponente ya estaba muy cansado y la veda' fue como que de medio hueva.... pero bueno...&lt;br /&gt;&lt;br /&gt;Como casi siempre lo mejor de todo fue la gente. Harto twittero, harto geek, harto conocido. Creo que a la fecha ha sido el mejor evento del año.&lt;br /&gt;&lt;br /&gt;Finito.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-50579917367491652?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/50579917367491652/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=50579917367491652' title='1 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/50579917367491652'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/50579917367491652'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2008/06/google-developer-day-2008.html' title='Google Developer Day 2008'/><author><name>ChilliCoder</name><uri>http://www.blogger.com/profile/01288599922644011117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-4495049928679377041</id><published>2008-03-05T20:00:00.004-06:00</published><updated>2008-03-05T20:37:12.740-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CMMI'/><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='Enterprise Architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><title type='text'>Con muchas cosas que compartir..</title><content type='html'>Hi folks.... pues regresando a dar un poquito de lata.&lt;br /&gt;&lt;br /&gt;Ya con los primeros 2 meses del año que se fueron como agua...he de comentarles que este año trae consigo retos muy importantes tanto en lo profesional como en lo personal y hay que enfrentarlos como dice una cancion... con alma vida y corazon&lt;br /&gt;&lt;br /&gt;Pues a lo que me truje chencha dijeran...&lt;br /&gt;&lt;br /&gt;Hay muchos temas que me interesa tocar: SOA, Arquitectura Empresarial, Continuar con los ejemplos de Integracion de aplicaciones, hablar de algunos modelos y marcos de referencia, mas de ESBs Open Source, en fin...&lt;br /&gt;&lt;br /&gt;Estos 2 dias estaremos asistiendo el buen Gus y su servidor a platicas de Cutter Enterprise  Architectre Summit,  de entrada las platicas del dia de hoy me parecieron bastante interesantes en especial la denominada "Enterprise Architecture By Example" el ponenete Mike Rosen.&lt;br /&gt;&lt;br /&gt;Ya hablare mas a detalle de AE, pero de entrada creo que hoy dia estamos entrando a un punto interesante en la parte de Arquitectura, mas alla de la Arquitectura de Software (que como parte de la AE no deja de ser importante),  existen diferentes aspectos que que necesitamos tomar en cuentas al definir una arquitectura empresarial, Mike lo denomina Enterprise Architecture Stack, y se compone principalmente de 4 arquitecturas:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Arquitectura de Negocio: Cadenas de valor , Modelos del negocio, Portafolio de servicios, Procesos de negocio&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Arquitectura de Informacion: Informacion que soporta la toma de decisiones, Modelos de datos del negocio, informacion de datos operacionales y transaccionales&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Arquitectura de Aplicaciones: Informacion de las responsabilidades  de los componentes que forman parte de una aplicacion&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Arquitectura Tecnologica: Harware, software, Infraestructura de Red, Data Centers&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Lo anterior sin dejar fuera a la Organizacion misma y a la gente que la compone.&lt;br /&gt;&lt;br /&gt;Mike menciona tambien que existen un modelo para evaluar la Madures de una Arquitectura Empresarial, tal como lo manejan el CMMI o el &lt;a href="http://integramx.blogspot.com/2007/04/soa-maturity-model.html"&gt;SOA Maturity Model&lt;/a&gt;.. ya platicare de esto con un poco mas de detalle.&lt;br /&gt;&lt;br /&gt;Bueno pues los dejo con una presentacion que me parecio interesante se llama: &lt;a href="http://parleys.com/display/PARLEYS/Pragmatic+SOA+-+Substance%2C+not+hype"&gt;Pragmatic SOA by Arjen Poutsma&lt;/a&gt;, espero la visiten&lt;br /&gt;&lt;br /&gt;Ciao&lt;br /&gt;&lt;br /&gt;Tuzo&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-4495049928679377041?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/4495049928679377041/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=4495049928679377041' title='2 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/4495049928679377041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/4495049928679377041'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2008/03/con-muchas-cosas-que-compartir.html' title='Con muchas cosas que compartir..'/><author><name>Tuzo</name><uri>http://www.blogger.com/profile/09903812629859341718</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='19' src='http://3.bp.blogspot.com/-MFoP4pie2t4/Tk6KPqbsMSI/AAAAAAAAAFk/olgrspFpC2I/s220/soa_innovation_lab-476x277.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-6574769682523763248</id><published>2007-12-28T18:42:00.000-06:00</published><updated>2007-12-28T19:24:40.928-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Enterprise Architecture'/><title type='text'>La ultima entrada del 2007</title><content type='html'>Pues mientras casi todo mundo esta de vacaciones y yo sintiendome como el cuadrado de Flatland, que intuye que hay mas alla de lo que normalmente se llama vida, expongo las ideas para cerrar el año (odio medir la vida en cierres de año, por lo que esta es señal de que estoy envejeciendo y volviendome algo conservador)&lt;br /&gt;&lt;br /&gt;Llevo años hablando de Arquitectura Empresarial (Zachman, FEA, TOGAF) y tratando de explicar en que consiste&lt;br /&gt;&lt;br /&gt;Lo que me doy cuenta es como he evolucionado en el enfoque y me permito hacer una simulacion de una bitacora de como fue la historia&lt;br /&gt;&lt;br /&gt;+ La primera vez, fue cuando me pidieron hiciera un modelo de arquitectura para todas las arquitecturas. Fue hace ya 4 años y me fui topando con el concepto de arquitectura empresarial. Despues de un rato de investigar y medio juntar bibliografia, me di cuenta de la famosa matriz de Zachman. Como cuate mas orientado a los bytes, me clave mucho en la parte tecnologica y por ahi me surgio la idea de hablar de arquitectura de aplicaciones, datos e infraestructura y obtener un modelo para soportar integracion entre aplicaciones y unificarlas&lt;br /&gt;&lt;br /&gt;+ La segunda vez, un buen amigo, Juan Lozada, me ayudo a entender como en la practica se puede concebir el marco de Zachman. Y de el oi  los terminos como Governance y referencia a modelos de calidad o mejores practicas como CMMI, ITIL, COBIT, PMBOK. De ahi salieron documentos que tenian como objetivo el normar el actuar de toda una organizacion y todo parecia indicar que ya habia algo hecho&lt;br /&gt;&lt;br /&gt;+ Pero el tratar de hacer la vision realidad siempre fue un reto. Llegas con tu marco de referencia (el cual por cierto no era perfecto) y te topas que ya existen aplicaciones ejecutandose y que fueron hechas sin tomar en cuenta el concepto de arquitectura, sin embargo estan operando y dando servicio y generando impacto en la organizacion. No tienen la mejor arquitectura sin embargo son valores de lao organizacion. ¿Entonces que hacer? Ponerse en un papel dogmatico tipo Iglesia en la Edad Media o ser tolerante. La respuesta era obvia ser tolerante y tratar de organizar poco a poco para que las aplicaciones empiecen a tomar buenas practicas&lt;br /&gt;&lt;br /&gt;+ Sin embargo, los eventos externos, eventos politicos, riñas de poder, no permiten que la vision sea comprendida, atascado un rato en resolver problemas operativos, pobre marco de referencia de arquitectura empresarial empolvandose. Sin embargo si se dispone de tecnlogia, ESB, Gestor de contenido, Motor de reglas de negocio, muchos sabores de BPM, marco de referencia, muchas maneras de hacer sevicios Web, Portal, registro UDDI&lt;br /&gt;&lt;br /&gt;+ Cambio de aires, nueva administracion en la organizacion, se topan con que existe mucha tecnologia, muchas aplicaciones, pero visiones dispares y tambien costos altos en TI que deben ser controlados. Lo que si reconocen es que no hay estandares. Sin embargo si se habian definido. ¿Que habia pasado? El modelo de la organizacion orienta a que se creen silos de informacion, poco unificados y muy propensos a ser manipulados por cuestiones politicas.&lt;br /&gt;&lt;br /&gt;+ El problema no es tanto la cuestion tecnologica es la interoperabilidad entre las personas. La vision del marco de referencia de Zachman necesita tomar en cuenta a la organizacion. Ups! Creo que el primer renglon del marco de Zachman si sirve para algo!&lt;br /&gt;&lt;br /&gt;+ Chamba para unificar las visiones, se confunden proyectos para beneficio como cotos de poder para poder impresionar a los altos mandos de la TI. Se manipulan conceptos tecnologicos para hacer creer que existen muchos beneficios en hacerlo pero sin tomar en cuenta el como, olvidando que la organizacion necesita un alto impacto. Sin embargo, no son malas ideas, algo tiene que unificar todo, algo como un marco de referencia de arquitectura empresarial.&lt;br /&gt;&lt;br /&gt;+ Eureka, platicando con un amigo, me sugiere que si quiero hablar de una arquitectura empresarial, piense en un modelo de operacion de servicios (operation management). Me doy cuenta que no era lo mismo que investigacion de operaciones. Me compro tres y muy buenos libros en el tema y me doy cuenta que hablan de procesos, servicios, cadenas de valor, mucho de ellos aplicados para ERP, CRM, SCM. ¡Sin embargo no quiero que la organizacion donde estoy trate de solucionar todo con un ERP! He dicho muchas cosas sobre lo que pienso sobre un ERP pero principalmente no es la panacea y menos para la organizacion donde trabajo&lt;br /&gt;&lt;br /&gt;+ Pero el modelo de administracion de operaciones es bueno. Pienso en que cadenas de valor tenemos:&lt;br /&gt;&lt;br /&gt;    + La que da servicios a nuestros clientes (ciudadanos). Su objetivo es fomentar el autoservicio y darles la mayor informacion que necesiten sin enredarlos en procesos burocraticos. Un call center, un portal y otras estrategias bien diseñadas (como kiosocos) pueden dar impacto. Pero es muy importante que este cadena de valor se flexible, la menos complicada y la que debe ser capaz de entregar la informacion a los ciudadanos sin importar su condicion social, educacion&lt;br /&gt;&lt;br /&gt;   + La que soporta la operacion de la organizacion. La organizacion esta basada en servicios, no manufactura, pero es muy criticada por los servicios que da y su burocracia. Entonces es necesario que la cadena de valor de operacion sea capaz de permitir que los que otorgan el servicio conozcan de su trabajo (gestion del conocimiento), que tengan un proceso base que seguir y que se pueda medir (BPM y  BAM) y con referencia a modelos de calidad (TQM, Six Sigma, ISO), permitir que manipulen sus procesos y reglas de negocio, fomentar flujos de trabajo centrados en documentos (gestion de contenido). Ademas otorgarles herramientas de TI para innovar (colaboracion, mashups, Web 2.0), hacer un portal de operacion de la organizacion&lt;br /&gt;&lt;br /&gt;    + La que soporta todos los procesos de la organizacion. Tomar las aplicaciones ya existentes y convertirlas a servicios, utilizando SOA, usar las herramientas como ESB, Data Services y gobernarlos a traves de un servicio de registros. Esto es el "backend" de la organizacion.&lt;br /&gt;&lt;br /&gt;    + La que soporta a los administradores de la organizacion, alta direccion, los que definen las politicas, los modelos de operacion, manejan presupuesto, toman decisiones, tienen  que cumplir con normatividad gubernamental. Dar herramientas especializadas que tomen informacion de todas las demas cadenas de valores, analisis de informacion y procesos, simulacion. Integrarlos para que usando la TI definan y mejoren los procesos de la organizacion&lt;br /&gt;&lt;br /&gt;     + La que soporta la informacion de la organizacion, la cadena de valor de TI. La TI para innovar. Definir catalogos de servicios con ITIL, mesa de ayuda para TI, aplicar los modelos de desarrollo y mantnimiento de software (CMMI RUP), oficina de administracion de proyectos (PMO, PMBOK), servicios de infraestructura de software y hardware, orientar a calidad en servicios de TI, hacer que cada integrante de TI sea un agente de cambio e innovacion&lt;br /&gt;&lt;br /&gt;+Entonces la arquitectura empresarial es entender a las cadenas de valor de la organizacion, soportar su ejecucion con Tecnologia de Informacion y utilizar como estrategia de implantacion los modelos de SOA+BPM+ Web 2.0&lt;br /&gt;&lt;br /&gt;Suena muy bien la idea. Es un buen reto, me imagino que si se logra en la organizacion puede hacer que la TI le de el valor. Hace justicia a nuestra chamba de ingenieros y lo mas importante, hace que nuestros clientes tengan servicios de primera&lt;br /&gt;&lt;br /&gt;El punto es convencer a mucha gente, a la propia de TI, a los demas no TI de la organizacion. a los clientes, proveedores y reguladores&lt;br /&gt;&lt;br /&gt;Interoperabilidad entre personas, lo mas dificil, buen reto para el 2008, pero vale la pena intentarlo&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-6574769682523763248?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/6574769682523763248/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=6574769682523763248' title='2 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/6574769682523763248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/6574769682523763248'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2007/12/la-ultima-entrada-del-2007.html' title='La ultima entrada del 2007'/><author><name>gusdelact</name><uri>http://www.blogger.com/profile/01280814569141135139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-6479423311448630616</id><published>2007-11-22T18:15:00.000-06:00</published><updated>2007-11-22T18:27:55.170-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='ESB'/><title type='text'>Libro Open Source ESBs in Action</title><content type='html'>Por fin!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;Con alegria me entere que ya salio un libro que trata de ESBs Open Source (Manning), el &lt;a href="http://www.manning.com/rademakers/rademakers_meapch1.pdf"&gt;capitulo 1&lt;/a&gt; esta disponible para lectura en linea. Mule ESB, Service Mix, Open ESB, Jboss ESB, Synapse son algunos de los que se mencionan en el libro.&lt;br /&gt;&lt;br /&gt;Explorare su contenido y ya dare mis comentarios.&lt;br /&gt;&lt;br /&gt;Existe otro libro de ESB  pero este habla de Aqualogic Service Bus, el titulo del libro es: &lt;a href="http://www.isbnonline.com/The-Definitive-Guide-to-SOA-BEA-AquaLogic-Service-Bus/book/9781590597972/"&gt;The Definitive Guide to SOA: BEA Aqualogic Service Bus&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Saludos!&lt;br /&gt;&lt;br /&gt;Tuzo&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-6479423311448630616?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/6479423311448630616/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=6479423311448630616' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/6479423311448630616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/6479423311448630616'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2007/11/libro-open-source-esbs-in-action.html' title='Libro Open Source ESBs in Action'/><author><name>Tuzo</name><uri>http://www.blogger.com/profile/09903812629859341718</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='19' src='http://3.bp.blogspot.com/-MFoP4pie2t4/Tk6KPqbsMSI/AAAAAAAAAFk/olgrspFpC2I/s220/soa_innovation_lab-476x277.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-8843360061818195325</id><published>2007-11-19T21:01:00.000-06:00</published><updated>2007-11-19T21:02:28.949-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='interoper'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Configuración de Rails y SQL Server</title><content type='html'>La naturaleza multiplataforma de Ruby On Rails nos demanda adecuarnos a todos los ambientes de ejecución disponibles aún y cuando estos no sigan la filosofía del software libre.&lt;br /&gt;&lt;br /&gt;Un ambiente que se va a presentar muy comunmente es Windows y SQL Server.&lt;br /&gt;&lt;br /&gt;Entonces he aquí la receta sencilla y probada para soportar SQL Server dentro de Rails.&lt;br /&gt;&lt;br /&gt;Primero, habrá que descargarse la gem ruby-dbi desde &lt;a href="http://rubyforge.org/projects/ruby-dbi"&gt;http://rubyforge.org/projects/ruby-dbi&lt;/a&gt; . &lt;span style="font-weight: bold;"&gt;ruby-dbi&lt;/span&gt; es un mecanismo de acceso a datos inspirado en  Perl::DBI. En la gem viene incluido el soporte a varias bases de datos y durante el proceso de instalación se selecciona cuales se van a soportar.&lt;br /&gt;&lt;br /&gt;La descarga es un archivo .tar el cual se expande en un directorio desde el cual ejecutamos las siguientes instrucciones:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# primero configuramos el ambiente para usar ActiveX Data Objects (depende de win32ole)&lt;br /&gt;c:\&gt;ruby setup.rb config --with=dbi,dbd_ado&lt;br /&gt;&lt;br /&gt;# la llamada de siempre&lt;br /&gt;c:\&gt;ruby setup.rb setup&lt;br /&gt;&lt;br /&gt;# finalmente la instalación&lt;br /&gt;c:\&gt;ruby setup.rb install&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Con esto ya tenemos la capacidad de acceder a SQL Server desde Ruby. Ahora falta configurar SQL Server para que permita conexiones mediante usuario/contraseña. Para esto configuramos el modo de autenticación "mixed" dentro de las propiedades de seguridad del servidor.&lt;br /&gt;&lt;br /&gt;A continuación se crean el login de SQL Server y la base de datos asociando el login como dbo de la base recién creada y se crea el proyecto rails como de costumbre.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;c:\&gt;rails proyecto&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Después se actualizan los datos del archivo config/database.yml&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;development:&lt;br /&gt;&amp;nbsp;&amp;nbsp;adapter: sqlserver&lt;br /&gt;&amp;nbsp;&amp;nbsp;database: database_development&lt;br /&gt;&amp;nbsp;&amp;nbsp;username: user&lt;br /&gt;&amp;nbsp;&amp;nbsp;password: password&lt;br /&gt;&amp;nbsp;&amp;nbsp;host: .\SQLEXPRESS&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Esta configuración funciona con las versiones 2000 y 2005 de SQL Server. La diferencia que he encontrado es el manejo de valores nulos en columnas de tipo integer. En SQL Server 2005 sustituye los valores nulos con ceros mientras que en la versión 2000 funciona correctamente.&lt;br /&gt;&lt;br /&gt;Finito.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-8843360061818195325?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/8843360061818195325/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=8843360061818195325' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/8843360061818195325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/8843360061818195325'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2007/11/configuracin-de-rails-y-sql-server.html' title='Configuración de Rails y SQL Server'/><author><name>ChilliCoder</name><uri>http://www.blogger.com/profile/01288599922644011117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-844078345238449421</id><published>2007-11-06T09:13:00.000-06:00</published><updated>2007-11-06T09:39:41.309-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='integration'/><category scheme='http://www.blogger.com/atom/ns#' term='webservice'/><category scheme='http://www.blogger.com/atom/ns#' term='interoper'/><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><title type='text'>La importancia de los contratos</title><content type='html'>Hace unos dias en el trabajo me encomendaron la tarea de trabajar con unos compañeros que deseaban exponer unos servicios de Abastecimiento de medicamentos a sus proveedores....&lt;br /&gt;&lt;br /&gt;Ellos ya habian avanzado un poco y me comentaban "&lt;span style="font-style: italic;"&gt;Ya tenemos desarrollados unos WebServices&lt;/span&gt;", a lo que les pedi que me pasaran su &lt;span style="font-weight: bold;"&gt;WSDL&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Al echarle un vistazo a ese documento me encontre algo como lo siguiente (entre otras cosas):&lt;br /&gt;&lt;br /&gt;como operacion de entrada:&lt;br /&gt;s:element name="&lt;span style="font-weight: bold;"&gt;ObtenerOrdenes&lt;/span&gt;"&lt;br /&gt;como parametro:&lt;br /&gt;element minOccurs="0" maxOccurs="1" name="&lt;span style="font-weight: bold;"&gt;SQL&lt;/span&gt;" type="s:&lt;span style="font-weight: bold;"&gt;string&lt;/span&gt;"&lt;br /&gt;como respuesta:&lt;br /&gt;s:&lt;span style="font-weight: bold;"&gt;any &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ok veamos que tenemos. El nombre OBTENERORDENES de entrada me suena a negocio hasta ahi todo va bien, el problema viene en el parametro que estan pasando se llama SQL, que por el solo nombre me pone a pensar que estan pasando sentencias de SQL para hacer la consulta (lo cual deja abierto al cliente a poner cualquier cosa dentro de la consulta)&lt;br /&gt;&lt;br /&gt;Luego veamos la respuesta, si vemos regresa un &lt;span style="font-weight: bold;"&gt;Any&lt;/span&gt; (Que los que han leido el blog,  siempre &lt;a href="http://integramx.blogspot.com/2007/05/la-culpa-no-la-tiene-el-servicio-sino.html"&gt;nos oponemos al uso de ANY&lt;/a&gt; como resultado o entrada) que cuando les pregunte me dijeron coloquialmente que ahi regresaban el "&lt;span style="font-weight: bold;"&gt;ResulSet&lt;/span&gt;" ajale!!! osea que si regresan la consulta tal cual de su base de datos.... y para finalizar en el servicio no hay ningun mensaje que indique los errores que pueden ocurrir.&lt;br /&gt;&lt;br /&gt;Bien ya no pongo los demas metodos, porque solo estos me permiten ejemplificar la importancia de manejar un buen contrato.&lt;br /&gt;&lt;br /&gt;Al diseñar un contrato de negocio de un servicio (independientemente si lo vas a hacer con: Web Services, RMI, COM, o palomas mensajeras) es muy importante definir los mensajes que estatas intercambiando entre el servicio, es decir, basicamente es constuir un layout (que tenga nombres, tipos de datos, tamaño y si es obligatorio el campo) de las ENTRADAS, SALIDAS y MENSAJES DE ERROR.&lt;br /&gt;&lt;br /&gt;Asi de sencillo, en verdad utilizar esta &lt;a href="http://integramx.blogspot.com/2007/06/web-services-manejables.html"&gt;practica &lt;/a&gt;nos ayudado mucho cuando tratamos de integrar aplicaciones.&lt;br /&gt;&lt;br /&gt;Saludos&lt;br /&gt;&lt;br /&gt;Tuzo&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-844078345238449421?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/844078345238449421/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=844078345238449421' title='1 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/844078345238449421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/844078345238449421'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2007/11/la-importancia-de-los-contratos.html' title='La importancia de los contratos'/><author><name>Tuzo</name><uri>http://www.blogger.com/profile/09903812629859341718</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='19' src='http://3.bp.blogspot.com/-MFoP4pie2t4/Tk6KPqbsMSI/AAAAAAAAAFk/olgrspFpC2I/s220/soa_innovation_lab-476x277.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-2448201595214521725</id><published>2007-09-12T17:00:00.000-06:00</published><updated>2007-09-13T08:49:11.500-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='integration'/><category scheme='http://www.blogger.com/atom/ns#' term='ITIL'/><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='rup'/><title type='text'>Entre change management y pantallas verdes</title><content type='html'>&lt;p class="MsoNormal"&gt;Quizás este post debería estar más del lado de &lt;a href="http://tuzoftware.blogspot.com/"&gt;Tuzoftware&lt;/a&gt; .... Pero se vale... ;)&lt;br /&gt;&lt;br /&gt;¿cuantas veces les ha tocado hacer un cambio en una aplicación? ¿Cuantas veces pensamos en las aplicaciones que se verán afectadas cuando cambiamos algo? ¿Quienes de nosotros tenemos un control de nuestras aplicaciones así como las dependencias que tenemos con otros sistemas?&lt;br /&gt;¿Cuantas veces no les ha pasado que alguna área cambia versión de aplicación y las nuestras dejan de funcionar correctamente? nunca !!.. que bien!!! ... pero a los que nos ha pasado eso y fuera de los dolores de cabeza, a los jefes esperando, el tiempo encima.... todo, todo es desesperante.......... ahora combinen esa situación con una solución de integración mmm digamos ..... Mainframe si Mainframe, pantallas verdes, screen scraping, emuladores 3270... ¿Interesante escenario?&lt;br /&gt;&lt;br /&gt;La finalidad de este post es tratar de mostrar una de las debilidades pienso yo, que existe en la integración de aplicaciones basada en captura de pantallas o screen scraping.  Cabe resaltar que este tipo de integración tiene una ventaja importante: no es intrusivo en las aplicaciones a las que se trata de integrar.&lt;br /&gt;&lt;br /&gt;Aquí en la empresa, tenemos varias interfaces basadas en este estilo de integración (échale un vistazo a esta &lt;a href="http://integramx.blogspot.com/2007/04/competing-consumers.html"&gt;liga&lt;/a&gt; ); como veras nosotros utilizamos Iway Telnet 3270, que es una serie de APIs que permiten interactuar con las pantallas verdes del mainframe... bien pues el punto flaco de estas interfaces es que están altamente acopladas por decirlo de alguna manera a las &lt;i&gt;coordenadas&lt;/i&gt;, quien ha trabajado alguna vez con COBOL sabe de que le estoy hablando...&lt;br /&gt;&lt;br /&gt;Bajo este esquema hasta un guión"-" te puede afectar (y mas si lo agregan de un día a otro :S, ahh y en la noche),  sí,  literalmente un guión te puede afectar.... eso fue lo que nos paso recientemente... se agrego un carácter  a una pantalla de una aplicación dentro del mainframe y esto ocasiono que se movieran las posiciones de los campos, es decir, si para mi el campo 76 era NSS, ahora se había recorrido hasta la 78.... el punto delicado aquí es que la producción estaba parada mientras se detectaba el error, una vez que se detecto se dio marcha atrás a la versión de la aplicación mainframe....... mientras todo esto ocurría la operación se detuvo por al rededor de 3 horas...&lt;br /&gt;&lt;br /&gt;Se aplico el cambio tal y como se debió de hacer desde un principio, es decir nos colocaron la versión de la aplicación mainframe en DESARROLLO hicimos los ajustes en nuestra interfase y liberamos a la par las nuevas versiones...&lt;br /&gt;&lt;br /&gt;Todo el cuento anterior se pudo evitar teniendo un buen CONTROL DE CAMBIOS...  se escucha tan sencillo y a veces trillado cuando nos hablan de esto en CMM, ITIL, RUP, en lo que ustedes quieran.... pero créanme que es muy importante...&lt;br /&gt;&lt;br /&gt;Para muestra basta un botón... ¿recuerdas cuantos millones perdió TELCEL hace unos meses debido a un problema en su sistema?&lt;br /&gt;&lt;br /&gt;Por una integración mejor, hasta la vista!!!&lt;br /&gt;&lt;br /&gt;Tuzo&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-2448201595214521725?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/2448201595214521725/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=2448201595214521725' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/2448201595214521725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/2448201595214521725'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2007/09/entre-change-managment-y-pantallas.html' title='Entre change management y pantallas verdes'/><author><name>Tuzo</name><uri>http://www.blogger.com/profile/09903812629859341718</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='19' src='http://3.bp.blogspot.com/-MFoP4pie2t4/Tk6KPqbsMSI/AAAAAAAAAFk/olgrspFpC2I/s220/soa_innovation_lab-476x277.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-5944392917671919193</id><published>2007-09-03T16:06:00.000-06:00</published><updated>2007-09-03T16:07:51.541-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='api'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='mono'/><category scheme='http://www.blogger.com/atom/ns#' term='opensource'/><category scheme='http://www.blogger.com/atom/ns#' term='dotnet'/><title type='text'>Bitácoras, Trazas, Logs, Logging</title><content type='html'>Una consabida forma de ver que sucede con tus programas es "pintar" los valores de tus variables. Esta rústica forma de depurar también tiene otra acepción: loggear :S&lt;br /&gt;&lt;br /&gt;¿quién dijo que poner System.out.println (javeros) o Console.WriteLine (.net) por cada línea es manejar una bitácora? No lo sé, pero en los ambientes java (que es lo que tengo más cercano) tenemos mega-archivos log de cientos de megabytes generados con poderosos System.out.println statements. Logging is cool!&lt;br /&gt;&lt;br /&gt;Pero, eso no es logging. En casi cada aplicación "grande" o "empresarial" (lo que sea que significa esto) se incluye algún mecanismo de  bitácoras. Agregar sentencias de rastreo es un mecanismo de "bajo nivel" para depurar código. Puede ser que sea la única opción por no existir un depurador para la plataforma o por que ya se trata de un ambiente multitarea/multihilos.&lt;br /&gt;&lt;br /&gt;En el caso de una aplicación ejecutándose en un ambiente de producción, tampoco se puede hacer uso de herramientas de desarrollo o depuración. Casos así requieren que se le otorgue a los administradores u operadores herramientas que les permitan monitorear el comportamiento de los sistemas.&lt;br /&gt;&lt;br /&gt;Para hablar de logging se requiere cumplir una serie de requisitos. Uno de ellos son los "contextos", entidades que contienen la información precisa de la ejecución de la aplicación. También se requiere distinguir diferentes niveles de severidad, desde el error fatal hasta mensajes de depuración; estas características deben poder configurarse fuera del código de la aplicación, es decir, en los programas incluimos todas las llamadas de rastreo que consideremos pero dependiendo de la configuración se van ir grabando las seleccionadas.&lt;br /&gt;&lt;br /&gt;También tiene sus desventajas. El registro de entradas en archivos o bases de datos consume tiempo de procesador, llamadas a dispositivos que finalmente se ve como un cierto grado de lentitud en la aplicación. Si se registran demasiadas entradas, el log se torna ilegible. Si se filtran demasiados niveles de severidad, puede ser que se pierdan elementos que podrían auxiliar a resolver problemas.&lt;br /&gt;&lt;br /&gt;Como ya es costumbre, el mundo java ha pasado por esto antes y gracias a la colaboración de muchas personas se construyó un framework para este tipo de  necesidades. Ha sido tal el éxito de esta iniciativa que se desarrollaron componentes similares para otras plataformas y lenguajes (C++/PHP/Ruby) e incluso se incluye en algunos productos comerciales, BEA WebLogic Server por ejemplo (aunque ninguno de los programadores que conozco lo usan, siguen con sus pinchis println's) y obvio, también se construyo para .NET.&lt;br /&gt;&lt;br /&gt;En este caso, log4net respeta todos los principios de su ancestro log4j y tenemos archivos de configuración, contextos, jerarquía de loggers e implementaciones de "appenders" que nos permiten tener diferentes destinos para nuestros logs. Ahora si, "logs".&lt;br /&gt;&lt;br /&gt;El primer ejercicio de muestra del uso de log4net lo pueden encontrar en mi &lt;a href="http://chilli-spots.googlecode.com/svn/trunk/LoggingDemo/"&gt;repositorio&lt;/a&gt; de ideas Google Code. Mediante subversion pueden obtener una copia de trabajo y trastear un rato con él.&lt;br /&gt;&lt;br /&gt;Finito.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-5944392917671919193?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/5944392917671919193/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=5944392917671919193' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/5944392917671919193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/5944392917671919193'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2007/09/bitcoras-trazas-logs-logging.html' title='Bitácoras, Trazas, Logs, Logging'/><author><name>ChilliCoder</name><uri>http://www.blogger.com/profile/01288599922644011117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-7976023508348052981</id><published>2007-08-23T22:26:00.000-06:00</published><updated>2007-08-23T17:38:21.023-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='personal'/><category scheme='http://www.blogger.com/atom/ns#' term='ITIL'/><title type='text'>De vuelta</title><content type='html'>&lt;p class="MsoNormal"&gt;Hola que tal&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Por acá de vuelta a estos rollos (después de que ya que el buen Gus se canso de hacer posts y el buen Chillicoder de copiar-pegar lo que pone en su blog :P)..Bueno pues hay muchas cosas interesantes que poner; digo después de mes y cacho de no escribir... segurito algo debió de haber ocurrido.. ;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Esta semana me invito el buen Gus a un curso de &lt;a href="http://en.wikipedia.org/wiki/ITIL"&gt;ITIL &lt;/a&gt;Foundation en HP - instalaciones en el bello basurero de Santa Fe (que por cierto ya mero convierten en sapo a Gustavo, que dizque "por invitarme" chaft!!) , sinceramente es el primer contacto que tengo con este tema y se me ha hecho harto interesante.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Para los que están como yo.. ósea que es su primera vez en este tema, solo me limitare a comentar que es un marco de referencia que consta de varios libros que ofrecen una guía para la administración de servicios de Tecnología de Información... entiéndase por servicio de TI a todo aquello que permite llevar a cabo la operación de una empresa, dígase hardware, software, componentes, etc. en otra ocasión hablare un poquito mas de este tema, así de como ITIL puede ayudarnos a mejorar nuestra administración de servicios TI.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Saludos&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Bonus Track: Lenguaje PURASPE&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;En el desarrollo del curso de ITIL nuestro instructor nos hablo de un lenguaje que el bautizo como PURASPE, que no es otra cosa que hablar en otro idioma diferente al que hablan nuestros usuarios ... le hablamos de web services, de applications server, de firewalls, algunos pochismos.. eso es PURASPE en acción, curiosamente el comentario lo reforzó un doctor especialista que se encuentra también tomando el curso y menciono lo siguiente "ha veces llegan los de TI y empiezan a decir: que el CMMI, que Web Server, que SOAP... pobres chamaquitos, creen que con hablar con muchos tecnicismos van a impresionar a un doctor especialista" en cierta medida tiene razón… aunque posteriormente el doctor estaba dando unos ejemplos de su ramo y nos hablo en PURASPE.... a lo que un compañero le dijo "y no crea que por hablar así va a impresionar a un ingeniero" jaja, en fin aquí nadie sabe mas ni menos.. Ya lo dice el principio de Peter "Todos llegamos a un nivel de incompetencia"&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Aquí el mensaje es tal como dice el buen chillicoder... "&lt;a href="http://integramx.blogspot.com/2007/05/entre-servicios-te-veas.html"&gt;ENTRE SERVICIOS TE VEAS...&lt;/a&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Va pues saludos... ah por cierto PURASPE significa - Puras Pendejadas&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;span style=""&gt;Fin&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-7976023508348052981?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/7976023508348052981/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=7976023508348052981' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/7976023508348052981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/7976023508348052981'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2007/08/de-vuelta.html' title='De vuelta'/><author><name>Tuzo</name><uri>http://www.blogger.com/profile/09903812629859341718</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='19' src='http://3.bp.blogspot.com/-MFoP4pie2t4/Tk6KPqbsMSI/AAAAAAAAAFk/olgrspFpC2I/s220/soa_innovation_lab-476x277.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-2941390560917078425</id><published>2007-08-23T17:34:00.000-06:00</published><updated>2007-08-23T17:35:36.034-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='opinion'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='milestone'/><category scheme='http://www.blogger.com/atom/ns#' term='mono'/><category scheme='http://www.blogger.com/atom/ns#' term='opensource'/><category scheme='http://www.blogger.com/atom/ns#' term='dotnet'/><title type='text'>La construcción de los Helpers</title><content type='html'>Derivado del desarrollo de Operación PyME y un poco de sentido común aparece la tarea de construir un framework para construir más rápidamente y fácilmente la aplicación.&lt;br /&gt;&lt;br /&gt;Se ha vuelto un concepto casi obligado el utilizar un framework de objetos de negocio pero ¿qué entendemos por esto? Un conjunto de clases que permiten modelar los objetos de un dominio y nos permitan olvidarnos de las tareas mundanas. La idea de fondo es utilizar la mayor parte de nuestra energía solucionando problemas de negocio y la menos posible en los problemas de tecnología.&lt;br /&gt;&lt;br /&gt;Así han aparecido en el medio infinidad de frameworks con este objetivo, en todos los lenguajes y en todas las plataformas. Hasta parece que ya se ha llegado a un punto de saturación para estos proyectos. Sin embargo siguen apareciendo.&lt;br /&gt;&lt;br /&gt;No existe el framework perfecto, como tampoco el lenguaje perfecto ni la plataforma perfecta. Y siguiendo nuestro inevitable anhelo de perfección vamos creando más proyectos tratando de solventar los errores que encontramos en otros.&lt;br /&gt;&lt;br /&gt;No existe una metodología perfecta para construir un framework, generalmente la construcción es influenciada por el tema de moda: aspectos, programación orientada a objetos, inyección de dependencias, objetos auto-suficientes. Algunas empresas han publicado documentos para describir como han concebido y construido los frameworks que ofrecen. Entre estas últimas aparece notoriamente Microsoft.&lt;br /&gt;&lt;br /&gt;Después de lanzar al mercado la tecnología .NET, Microsoft ha batallado duramente para posicionarla como una tecnología empresarial (cualquiera que sea su significado). Parte de esos esfuerzos ha sido el desarrollo de bibliotecas de componentes que faciliten el desarrollo de aplicaciones. El esfuerzo inicial dio como resultados los elementos que se conocieron como Application Blocks.&lt;br /&gt;&lt;br /&gt;Estos eran conjuntos de clases con un objetivo delimitado. Lo más interesante fue que las construyeron a partir de un análisis que compartieron en forma de guías. En estos documentos exponen los elementos que se consideraron durante el diseño describiendo detalladamente los escenarios y la manera de aplicar la tecnología .NET para construir estas bibliotecas.&lt;br /&gt;&lt;br /&gt;Estas bibliotecas fueron rápidamente adoptadas por la comunidad de desarrolladores quienes además fueron enriqueciendo con sus experiencias propias la funcionalidad de las clases incluidas e incluso se combinaron en un nuevo producto que se conoce como Enterprise Library. Sin embargo, tras la aparición del proyecto Mono, que permite la ejecución de programas desarrollados con .NET en plataformas no Windows, se incluyó en la licencia una cláusula que impide la ejecución de los Application Blocks en sistemas operativos distintos a los construidos por Microsoft.&lt;br /&gt;&lt;br /&gt;Así que ahora, a pesar de ser elementos tan útiles, los Application Blocks no pueden ser utilizados en Linux o Mac OSX. Existen en el mundo del código abierto cada vez más proyectos basados en .NET y algunos de ellos pudieran resolver los mismos escenarios que se presentan en el diseño de las bibliotecas de Microsoft el ejemplo de inicio es log4net, una biblioteca de clases para registrar entradas en diferentes destinos que forma parte del proyecto Logging Services de la Fundación Apache.&lt;br /&gt;&lt;br /&gt;Y también existen otros proyectos que ofrecen alternativas para los otros Application Blocks existentes sin embargo la principal ventaja de la oferta de Microsoft es la unificación que han conseguido y que en los proyectos de software libre se encuentran dispersos e inmersos en otros proyectos y una implementación sencilla, directa y única simplemente no existe.&lt;br /&gt;&lt;br /&gt;Así que esta iniciativa (si, una más) es la de tener en un solo conjunto esta funcionalidad partiendo en primer lugar de proyectos ya existentes, como log4net, mostrando como es que se cumplen los escenarios descritos en la documentación de Microsoft y construyendo los elementos necesarios retomando código o creando nuevo para satisfacer las necesidades planteadas por las guías de referencia.&lt;br /&gt;&lt;br /&gt;Y si no fuera suficiente... habrá más sobre el tema.&lt;br /&gt;&lt;br /&gt;Finito.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-2941390560917078425?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/2941390560917078425/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=2941390560917078425' title='1 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/2941390560917078425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/2941390560917078425'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2007/08/la-construccin-de-los-helpers.html' title='La construcción de los Helpers'/><author><name>ChilliCoder</name><uri>http://www.blogger.com/profile/01288599922644011117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-6555295216330663936</id><published>2007-06-26T22:57:00.001-06:00</published><updated>2007-06-26T22:57:42.944-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='webservice'/><category scheme='http://www.blogger.com/atom/ns#' term='api'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='community'/><category scheme='http://www.blogger.com/atom/ns#' term='milestone'/><category scheme='http://www.blogger.com/atom/ns#' term='opensource'/><category scheme='http://www.blogger.com/atom/ns#' term='freedom'/><category scheme='http://www.blogger.com/atom/ns#' term='dotnet'/><title type='text'>PartnerApi Library: Por fin ve la luz</title><content type='html'>Hace algunos años fui contratado para integrar un CRM y Salesforce (se llamaba así en ese entonces). Para realizar la integración usé C# y el Enterprise API de Salesforce para llevar los datos del CRM al repositorio en línea de Salesforce. Un ejercicio harto interesante. También leí algo acerca de la PartnerApi y de ahí surgió la inquietud de utilizarla.&lt;br /&gt;&lt;br /&gt;El objetivo que se me presentó en mi mente fue crear una biblioteca que simplificara el uso de esta PartnerApi y pues después de mmuuuucho tiempo aquí &lt;a href="http://code.google.com/p/appexchange-connector/"&gt;está&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Acabo de publicar el código, licenciado bajo LGPL, para que todo mundo lo revise, lo use y ojalá y contribuya a este proyecto.&lt;br /&gt;&lt;br /&gt;Cualquier comentario, sugerencia o pregunta son bienvenidas.&lt;br /&gt;&lt;br /&gt;Finito.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-6555295216330663936?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/6555295216330663936/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=6555295216330663936' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/6555295216330663936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/6555295216330663936'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2007/06/partnerapi-library-por-fin-ve-la-luz.html' title='PartnerApi Library: Por fin ve la luz'/><author><name>ChilliCoder</name><uri>http://www.blogger.com/profile/01288599922644011117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-1486448575250169235</id><published>2007-06-26T09:16:00.000-06:00</published><updated>2007-06-26T10:16:36.150-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Zachman'/><category scheme='http://www.blogger.com/atom/ns#' term='TI'/><category scheme='http://www.blogger.com/atom/ns#' term='Enterprise Architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='Process'/><title type='text'>Enterprise Architecture</title><content type='html'>&lt;p class="MsoNormal"&gt;Hola que tal!!!&lt;br /&gt;&lt;br /&gt;Hace unos meses escuche el termino Arquitectura Empresarial y como buen técnico de entrada pensé que hablaba de arquitectura de software, de componentes en fin todo relacionado con tecnología y no es que estuviera mal, pero en una empresa no todo es tecnología...  el buen Gus siempre hacia énfasis en ver todas las perspectivas que encontramos dentro de una organización.... lo que le da vida....&lt;br /&gt;&lt;br /&gt;Si quisiera hablar de Arquitectura empresarial en una frase la dejaría como sigue: "Se refiere a el conjunto de PROCESOS DE NEGOCIO de una organización, como estos procesos son implementados con TECNOLOGIA y como son llevados a cabo por PERSONAS", quizá gus, o muchos de ustedes complementaran esta frase... , como pueden ver este tridente PERSONAS-PROCESOS-TECNOLOGIA es el alma de una empresa...&lt;br /&gt;&lt;br /&gt;Para la empresa lo mas importante son sus PROCESOS de negocio... todos y cada uno de ellos desde procesos bancarios, procesos de pagos, procesos de nomina... en fin los que se les ocurran.... por otra parte están las PERSONAS el lado humano el lado que echa a andar los procesos, cumpliendo tareas especificas que permitirán lograr los objetivos de la organización.... y soportando ambas cosas esta &lt;st1:personname productid="la TECNOLOGIA... Hardware" st="on"&gt;la  TECNOLOGIA... Hardware&lt;/st1:PersonName&gt;/Software... Bases de Datos, Servidores de Aplicación, Sistemas de Seguridad, Infraestructura de Comunicaciones, Aplicaciones... etc.&lt;br /&gt;&lt;br /&gt;Un  Framework muy interesante es el llamado &lt;a href="http://www.zifa.com/"&gt;Framework de Zachman&lt;/a&gt; para Arquitectura empresarial, el cual define diferentes perspectivas como Que (datos), Como (funciones), Donde (ubicación), Quien (personas), Cuando (tiempo) y Porque(Motivación), a su vez estas perspectivas pueden cruzarse con el Alcance (objetivos estratégicos de la organización), Modelo Empresarial (Modelado de procesos de negocio), el Modelo del Sistema(Modelos Lógicos), Modelo Tecnológico (Definición y desarrollo de la solución), Componentes y los Sistemas en operación (Empresa Funcionando)....&lt;br /&gt;&lt;br /&gt;Si algún día necesitan realizar un diagnostico de &lt;st1:personname productid="la Arquitectura Empresarial" st="on"&gt;la Arquitectura Empresarial&lt;/st1:PersonName&gt; ..... ya saben por donde empezar ;)&lt;br /&gt;&lt;br /&gt;Ahora veamos la famosa pregunta ¿como alinear TI a los objetivos de la organización?.. Quizá la respuesta la encontremos en  la arquitectura empresarial....&lt;br /&gt;&lt;br /&gt;Saludos!!!&lt;br /&gt;&lt;br /&gt;Tuzo&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-1486448575250169235?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/1486448575250169235/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=1486448575250169235' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/1486448575250169235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/1486448575250169235'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2007/06/enterprise-architecture.html' title='Enterprise Architecture'/><author><name>Tuzo</name><uri>http://www.blogger.com/profile/09903812629859341718</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='19' src='http://3.bp.blogspot.com/-MFoP4pie2t4/Tk6KPqbsMSI/AAAAAAAAAFk/olgrspFpC2I/s220/soa_innovation_lab-476x277.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-3649154480655794730</id><published>2007-06-14T10:21:00.000-06:00</published><updated>2007-06-14T11:15:31.345-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='opinion'/><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='opensource'/><category scheme='http://www.blogger.com/atom/ns#' term='ESB'/><title type='text'>The role of ESBs</title><content type='html'>Hola que tal&lt;br /&gt;&lt;br /&gt;Cuando hablamos de implementar una solucion ESB en alguna organizacion, nos viene a la mente lo costoso que implicara hacer este tipo de proyectos..... en el mercado existen una serie de productos comerciales que ofrecen todas las capacidades que nos entrega un ESB, por mencionar algunos &lt;a href="http://www.sonicsoftware.com/products/docs/sonic_esb_es.pdf"&gt;Sonic ESB&lt;/a&gt;, &lt;a href="http://www.bea.com/content/news_events/white_papers/BEA_AQL_ServiceBus_ds.pdf"&gt;Aqualogic Service Bus&lt;/a&gt;... ya hasta microsoft ofrece con &lt;a href="http://dnjonline.com/article.aspx?ID=dec05_biztalk"&gt;BizTalk &lt;/a&gt;una solucion ESB (segun je je.. sorry)... y el punto aqui es que las licencias anuales se facturan en millones de dolares.... me pregunto... ¿las soluciones ESB estan solo al alcance de grandes companias en el mundo? .. lo que no hemos hecho muchos de nosostros es voltear al mundo open source y ver que tenemos alternativas realmente interesantes como &lt;a href="http://mule.codehaus.org/"&gt;Mule ESB&lt;/a&gt;, &lt;a href="http://celtix.objectweb.org/"&gt;Celtix&lt;/a&gt;, &lt;a href="http://incubator.apache.org/servicemix/"&gt;Service Mix&lt;/a&gt;, etc.. que bien implementadas se puede obtener un resultado realmente interesante comparado con las soluciones comerciales...&lt;br /&gt;&lt;br /&gt;Mas preguntas....¿Como poder justificar una compra de una herramienta que cuesta millones de pesos? ¿Como justificar realmente el valor del modelo SOA? ..... para los que estan trabajando en dependencias gubernamentales (y con esto del decreto de austeridad) ..¿ como se puede de verdad reducir costos anuales de uso de licencias de software?...... quiza estas respuestas estan en las soluciones opensource ... ¿sera?&lt;br /&gt;&lt;br /&gt;Bueno pues aqui les dejo una &lt;a href="http://www.infoq.com/interviews/ross-mason"&gt;interesante entrevista&lt;/a&gt; en la que habla Ross Mason fundador de Mule ESB, acerca del rol de los &lt;a href="http://integramx.blogspot.com/2007/03/esb-or-not-esb.html"&gt;ESBs&lt;/a&gt;...&lt;br /&gt;&lt;br /&gt;Por una integracion mejor, hasta la vista!!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Tuzo... Campeon&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-3649154480655794730?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/3649154480655794730/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=3649154480655794730' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/3649154480655794730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/3649154480655794730'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2007/06/rol-of-esbs.html' title='The role of ESBs'/><author><name>Tuzo</name><uri>http://www.blogger.com/profile/09903812629859341718</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='19' src='http://3.bp.blogspot.com/-MFoP4pie2t4/Tk6KPqbsMSI/AAAAAAAAAFk/olgrspFpC2I/s220/soa_innovation_lab-476x277.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-4198365289226935477</id><published>2007-06-10T09:17:00.000-06:00</published><updated>2007-06-10T09:18:05.634-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='opinion'/><category scheme='http://www.blogger.com/atom/ns#' term='ideas'/><category scheme='http://www.blogger.com/atom/ns#' term='community'/><category scheme='http://www.blogger.com/atom/ns#' term='opensource'/><category scheme='http://www.blogger.com/atom/ns#' term='freedom'/><title type='text'>Otras formas de innovación</title><content type='html'>Como ya varios saben, soy lector regular del blog de &lt;span style="font-weight: bold;"&gt;Scott Hanselman&lt;/span&gt;. Es un tipo realmente &lt;span style="font-weight: bold;"&gt;brillante &lt;/span&gt;no solo tirando código sino llevando la &lt;span style="font-weight: bold;"&gt;tecnología &lt;/span&gt;a nichos que simplemente dejamos pasar de largo.&lt;br /&gt;&lt;br /&gt;¿Cuántas veces se ha utilizado &lt;a href="http://earth.google.es/"&gt;Google Earth&lt;/a&gt; para buscar monumentos, la casa de tu novia o una dirección? Peor aún ¿cuántas veces no se ha usado para buscar gente desnuda tomando el sol en el patio de su casa?. Puede ser divertido pero definitivamente es un desperdicio de tecnología.&lt;br /&gt;&lt;br /&gt;Pues bien, Scott publicó un post sobre &lt;a href="http://www.hanselman.com/blog/HowToUseGoogleEarthOrVirtualEarthToVisualizeANewHouseLotPart1.aspx"&gt;como utilizar Google Earth o Virtual Earth para visualizar un nuevo fraccionamiento&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Lo interesante de esto es que son herramientas que están al &lt;span style="font-weight: bold;"&gt;alcance&lt;/span&gt; de cualquier &lt;span style="font-weight: bold;"&gt;persona&lt;/span&gt;. No necesitas ser un mega-dooper-super experto en AutoCAD o cosa similar (claro, el resultado tampoco es igual), simplemente con unas pocas herramientas en tu PC casera consigues el resultado.&lt;br /&gt;&lt;br /&gt;Eso también es &lt;span style="font-weight: bold;"&gt;innovación&lt;/span&gt;. Los mexicanos nos preciamos mucho de ser &lt;span style="font-style: italic;"&gt;ocurrentes&lt;/span&gt;, tal vez alguien acá de este lado de la frontera tuvo la misma ocurrencia. Pero al no compartir ese conocimiento cualquier otro que sí lo hace se convierte en innovador por ese simple hecho.&lt;br /&gt;&lt;br /&gt;Estamos muy &lt;span style="font-weight: bold;"&gt;acostumbrados&lt;/span&gt; a construir &lt;span style="font-weight: bold;"&gt;nichos&lt;/span&gt; y compartir un poquito de conocimiento con otros para convertirlos en nuestros aliados. Armamos &lt;span style="font-weight: bold;"&gt;batallas&lt;/span&gt; de escritorio para tirar los nichos de otros. Negociamos con el &lt;span style="font-weight: bold;"&gt;conocimiento&lt;/span&gt; como con cualquier &lt;span style="font-weight: bold;"&gt;baratija&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Entonces ¡compártamos nuestro conocimiento! Una de las bellezas del software libre es ese ambiente de compartir, de buscar a quién ofrecerle (sin ningún interés por detrás) lo último que construimos, de pedir opinión a otros para mejorar, de mirar en el trabajo del vecino para buscar una &lt;span style="font-style: italic;"&gt;segunda opinión&lt;/span&gt; sobre lo que estamos haciendo.&lt;br /&gt;&lt;br /&gt;Busquemos compartir en lugar de aislar. Tratar el conocimiento, simple o formalizado, con el valor que se merece. Tratemos a los demás como compañeros de &lt;span style="font-style: italic;"&gt;creación&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Finito.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-4198365289226935477?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/4198365289226935477/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=4198365289226935477' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/4198365289226935477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/4198365289226935477'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2007/06/otras-formas-de-innovacin.html' title='Otras formas de innovación'/><author><name>ChilliCoder</name><uri>http://www.blogger.com/profile/01288599922644011117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-5450133920692745306</id><published>2007-06-06T10:22:00.000-06:00</published><updated>2007-06-06T12:56:51.171-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Factory'/><category scheme='http://www.blogger.com/atom/ns#' term='integration'/><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='antipatterns'/><category scheme='http://www.blogger.com/atom/ns#' term='portal'/><category scheme='http://www.blogger.com/atom/ns#' term='UDDI'/><category scheme='http://www.blogger.com/atom/ns#' term='ESB'/><title type='text'>Software Factories &amp; SOA</title><content type='html'>El concepto de Software Factories, planteado por Jack Greenfield plantea un modelo para construir software a partir de combinar modelos, herramientas, patrones y frameworks que permitan automatizar el desarrollo de software. Este diagrama que pongo, es la ruta de lectura del libro&lt;br /&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 320px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://www.softwarefactories.com/i/image002.gif" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;La idea es, en lugar de poner en documentos todo el proceso, hacerlo vivir por medio de un software factory.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Es posible hablar del concepto de un software factory que permita automatizar el proceso de implantar un sistema de nomina o inventario. Es como dar una plantilla de un proceso y ajustarlo al punto en particular. Este concepto puede tumbar a los ERPs facilmente, o mejor, ojala los gigantes de los ERPs lo pudieran entender&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Pero voy a un punto interesante, y continuando mi entrada de "ideas, ideas"&lt;br /&gt;&lt;br /&gt;Estaba pensando ultimamente en un IDE que permitiera completar todo el ciclo de SOA, es decir, con un wizard que funcione asi&lt;br /&gt;1. Tomar una aplicación existente de tu organización y hacer que se convierta en un servicio&lt;br /&gt;(dar next)&lt;br /&gt;2. Seleccionar, la infraestructura de SOA en la que va a ser publicado:&lt;br /&gt;&lt;br /&gt;+ Como servicio del ESB&lt;br /&gt;+ Como dato del ISB (information service bus)&lt;br /&gt;+ Como regla de negocio del Rule Engine Broker&lt;br /&gt;+ Como metadato del Registro UDDI&lt;br /&gt;+ Como documento del repositorio documental&lt;br /&gt;+ Como servicio de presentacion (mashup) del portal&lt;br /&gt;+ Como proceso de negocio en el repositorio del BPM&lt;br /&gt;(seleccione uno o mas)&lt;br /&gt;3. Seleccionar las funciones de la aplicación que van a ser exportadas&lt;br /&gt;4. Opciones avanzadas, personalización por cada tipo de servicio a ser publicado&lt;br /&gt;5. Dar Finish para generar servicios&lt;br /&gt;&lt;br /&gt;¿Que facil suena?&lt;br /&gt;Ya me imagino la complejidad del pseudocaso de uso que acabo de narrar. De entrada el IDE va a necesitar varios GB de RAM para ejecutarse&lt;br /&gt;&lt;br /&gt;Creo que la idea no debe ir por ahi&lt;br /&gt;Cada opcion del "Wizard" que indico, equivale a un proceso de desarrollo para generar componentes de integración. En este blog hemos hablado de los antipatrones, y por supuesto hay patrones para construir dichos componentes&lt;br /&gt;&lt;br /&gt;Entonces, por que no hacer un software factory por cada tipo de servicio, es decir, por dominio del problema y que plasme los patrones, frameworks que hemos hablado&lt;br /&gt;Cada software factory, al ser una plantilla puede irse ajustando por cada tipo de aplicación que está integrando&lt;br /&gt;Y el software factory ya ajustado, arrojaria distintos tipos de componentes de integración&lt;br /&gt;&lt;br /&gt;Asi ya no son necesarios los wizards&lt;br /&gt;&lt;br /&gt;Y ahora piensean, los software factories tienen como caracteristica el que se pueden ensamblar entre ellas, se puede hacer un pipeline de factories y se crean software factories compuestas&lt;br /&gt;&lt;br /&gt;Es decir, se puede hacer todo un proceso de desarrollo de servicios de integración a partir de software factories&lt;br /&gt;&lt;br /&gt;¿Ya esta la visión, ahora quien empieza a concretar?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-5450133920692745306?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/5450133920692745306/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=5450133920692745306' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/5450133920692745306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/5450133920692745306'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2007/06/software-factories-soa.html' title='Software Factories &amp; SOA'/><author><name>gusdelact</name><uri>http://www.blogger.com/profile/01280814569141135139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-1799591756813869141</id><published>2007-06-05T14:28:00.001-06:00</published><updated>2007-06-05T14:28:47.001-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='personal'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><category scheme='http://www.blogger.com/atom/ns#' term='community'/><category scheme='http://www.blogger.com/atom/ns#' term='milestone'/><category scheme='http://www.blogger.com/atom/ns#' term='mono'/><category scheme='http://www.blogger.com/atom/ns#' term='opensource'/><category scheme='http://www.blogger.com/atom/ns#' term='freedom'/><title type='text'>FONASOL: Pendiente</title><content type='html'>Pues bien, el &lt;a href="http://www.fonasol.org"&gt;FONASOL&lt;/a&gt; concluyó el sábado y ya tengo un bonche de recuerdos más que atesorar, nuevos amigos que conocer y algunas fotos que compartir.&lt;br /&gt;&lt;br /&gt;Definitivamente es una historia para contar por episodios. No se desconecten.&lt;br /&gt;&lt;br /&gt;Finito.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-1799591756813869141?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/1799591756813869141/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=1799591756813869141' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/1799591756813869141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/1799591756813869141'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2007/06/fonasol-pendiente.html' title='FONASOL: Pendiente'/><author><name>ChilliCoder</name><uri>http://www.blogger.com/profile/01288599922644011117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-1816950880677338220</id><published>2007-06-04T15:23:00.000-06:00</published><updated>2007-06-05T17:38:45.467-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='best practices'/><category scheme='http://www.blogger.com/atom/ns#' term='webservice'/><category scheme='http://www.blogger.com/atom/ns#' term='XSD'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><title type='text'>Web Services Manejables</title><content type='html'>Hola que tal! de nuevo por aqui&lt;br /&gt;&lt;br /&gt;Como se habran dado cuenta, hace algunos dias hablamos (o nos quejamos jeje ) del diseno de unos servicios web.... aqui les dejo unas recomendaciones (Best Practices)  a tomar en cuenta, quiza sean simples... pero elementales.. aunque muchas ocasiones no se siguen ;)&lt;br /&gt;&lt;ul&gt;&lt;li&gt;NO usar elementos simples en las firmas de los metodos ; tomando como ejemplo &lt;span style="font-weight: bold; font-style: italic;"&gt;public int obtenerCotizaciones(int nss)&lt;/span&gt;,  tenemos un problema: la escalabilidad del mensaje, si desearamos agregar la fecha de alta trendriamos que colocarlo de la siguiente manera &lt;span style="font-style: italic; font-weight: bold;"&gt;public int obtenerCotizaciones(int nss,long fecha)&lt;/span&gt;.. MAL , en lugar de eso debemos modelar un objeto que defina mi negocio (tanto entradas como salidas).... siguiendo con el ejemplo definamos:&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;ul&gt;&lt;li&gt;public class entradaCotizaciones {&lt;br /&gt; private int nss;&lt;br /&gt; private long fecha;&lt;br /&gt;}&lt;/li&gt;&lt;li&gt;public class salidaCotizaciones {&lt;br /&gt; private int numeroCotizaciones;&lt;br /&gt;&lt;br /&gt; private boolean error;&lt;br /&gt; private int codigoError;&lt;br /&gt; private String descripcion;&lt;br /&gt;&lt;br /&gt;}&lt;/li&gt;&lt;li&gt;public salidaCotizaciones obtenerCotizaciones(entradaCotizaciones entrada)&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;       Esto permitita escalar el mensaje sin alterar la manera de invocar siempre que sea necesario.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Usar &lt;a href="http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/"&gt;Built-Data Types&lt;/a&gt; al disenar el XSD del servicio&lt;/li&gt;&lt;li&gt;Si se pretende utilizar mensajes estandar (Hl7, eGov, xCIL, XNAL), evitar el uso de anyType en el envio del mensaje, es recomendable generar un modelo de negocio basado en los XSD que vienen con el estandar.&lt;/li&gt;&lt;li&gt;Muy importante, definir los elementos para el manejo de errores, que permitan manipular la respuesta de acuerdo a las condiciones que se presenten&lt;br /&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;private boolean error; // describe si existie o no  error&lt;br /&gt; private int codigoError; // indica el tipo del error&lt;br /&gt; private String descripcion; // describe que fue lo que sucedio&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;Como veran son muy simples, pero son la base para generar Servicios Web manejables y escalables en el mensaje.&lt;br /&gt;&lt;br /&gt;Va pues, comentarios bienvenidos :)&lt;br /&gt;&lt;br /&gt;Por una integracion mejor, hasta la vista!&lt;br /&gt;&lt;br /&gt;Tuzo&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-1816950880677338220?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/1816950880677338220/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=1816950880677338220' title='1 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/1816950880677338220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/1816950880677338220'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2007/06/web-services-manejables.html' title='Web Services Manejables'/><author><name>Tuzo</name><uri>http://www.blogger.com/profile/09903812629859341718</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='19' src='http://3.bp.blogspot.com/-MFoP4pie2t4/Tk6KPqbsMSI/AAAAAAAAAFk/olgrspFpC2I/s220/soa_innovation_lab-476x277.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-1848330269894420796</id><published>2007-05-28T21:53:00.000-06:00</published><updated>2007-06-06T12:58:15.913-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CMMI'/><category scheme='http://www.blogger.com/atom/ns#' term='proceso de software'/><category scheme='http://www.blogger.com/atom/ns#' term='desarrollo'/><title type='text'>CMMI</title><content type='html'>Bueno, esto deberia estar mas del lado del post de Tuzoftwar, pero el tuzo no me invito al club de tobby-tuzos, y menos por que en la final le iba yo al America y solo por el afan de molestarlo&lt;br /&gt;&lt;br /&gt;Empecemos con lo que quiero decir&lt;br /&gt;&lt;br /&gt;Mucho de lo expuesto aqui en este blog, puede ya ser calificados como antipatterns de integracion, como lo han notado. Y habla de lo que no se debe hacer.&lt;br /&gt;&lt;br /&gt;Sin embargo, muchas veces, sea cual sea el tamaño de la organizacion que desarrolla, siempre se acaba en un punto en el cual algo no fue interpretado como se debia&lt;br /&gt;&lt;br /&gt;El punto es, y ahora que lo veo; es muy arriesgado aventarse a desarrollar sin tener un modelo de referencia. Sin embargo todos lo hacemos&lt;br /&gt;&lt;br /&gt;Normalmente los de sistemas, vemos el punto de programar, tirar codigo, hacer arquitectura, integrar.&lt;br /&gt;&lt;br /&gt;Pero se nos olvida facilmente que detras de ese esfuerzo estan grupos de seres humanos y que tienen un ritmo de trabajo cuando trabajan en equipo.&lt;br /&gt;&lt;br /&gt;La administracion de proyectos trata de atacar esa problematica, que tiene varias soluciones por ser enfocada a la mas incierta de las variables, el humano y lograr la meta.&lt;br /&gt;&lt;br /&gt;El CMMI es un modelo que indica como debe madurar una organizacion que desarrolla software tomando en cuenta los humanos, definiendo un proceso y lograr obtener productos de software&lt;br /&gt;&lt;br /&gt;Lo primero que pide es que seas capaz de administrar tus proyectos, que puedas hacer que algo que lograste una vez, vuelva a suceder; y que minimo te dediques a controlar los requerimientos. Este es el nivel 2 de CMMI. No se preocupa por decir como hacer la ingenieria de software.  Y tambien pide que controles tus cambios antes de que te ahogues con ellos, que asegures la calidad y tomes medida (lo que no se puede medir no se puede administrar)&lt;br /&gt;&lt;br /&gt;El nivel 3 de CMMI basicamente dice, escribe tu proceso indicando la manera como quieres que todos trabajen y de ahi, ajusta tus proyectos a esa vision (no siempre vas a modelar en UML o si?) y coordinate con otros grupos de trabajo. Y hecho eso, empieza a ver la ingenieria de software, analizar, desarrollar e integrar componentes. Y revisa que cada componente cumpla con lo especificado y validar que se pueda usar por el usuario.&lt;br /&gt;&lt;br /&gt;El  nivel 4 dice, ya que defines procesos, mide cuantitaviamente como los trabajas y empieza a estimar tu desarrollo en base a  estadistica, y reducir la incertidumbre&lt;br /&gt;&lt;br /&gt;Y el nivel 5 es, si ya haces tu proceso, ya lo mides, ahora preparate para innovar, para meter nueva tecnologia, para aprovechar oportunidades&lt;br /&gt;&lt;br /&gt;Si, son cinco niveles , nada sencillos de alcanzar, pero la verdad es lo fundamental para sacar cualquier proyecto de desarrollo&lt;br /&gt;&lt;br /&gt;He visto mucha gente desgastarse en poner decenas o centenas de programadores para sacar mas rapido proyectos, he visto muchos gritando y matando gente bajando la calidad de vida, trabajo inutil en sabado y domingo.  Y he visto como en muchos proyectos se tienen que admitir resultados tecnicamente mediocres, con que jale mañana esta bien, al otro dia vemos&lt;br /&gt;&lt;br /&gt;Y no es mala fe de las personas, creo que cuando todos arrancamos un proyecto, pensamos " acabo en la fecha, siendo amigos de todos los involucrados y me tomo mis vacaciones". Pero es vivir de la ilusion&lt;br /&gt;&lt;br /&gt;Sin embargo, esa buena fe de las personas puede ser mejor utilizada si decidieran abrir su mente al modelo que les menciono o similar. Es ser profesional en tu manera de ser, es hacer lo que debe hacerse, quitarte de tu complejo de superprogramador o de mandon&lt;br /&gt;&lt;br /&gt;Solo es estudiar, leer y usarlo para servir a los demas en base a tu conocimiento&lt;br /&gt;&lt;br /&gt;Asi que yo creo que mucho de lo puesto en este blog, integracion a la mexicana no es para enfatizar el error de alguien. Es para aprender de la experiencia y demostrar que mas vale razonar las cosas que andar de griton o neurastenico con la gente, que al final son humanos como todos.&lt;br /&gt;&lt;br /&gt;Asi que, busquen en Google la palabra CMMI. Puede ser que se topen con un documento muy grande del SEI, muy abstracto; pero al entenderlo, se van a perctar que es tan noble como cualquier pieza de ingenieria hecha por los humanos.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Una vez mas, esto no es religion es ingenieria&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-1848330269894420796?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/1848330269894420796/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=1848330269894420796' title='1 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/1848330269894420796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/1848330269894420796'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2007/05/cmmi.html' title='CMMI'/><author><name>gusdelact</name><uri>http://www.blogger.com/profile/01280814569141135139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-8626445595242217562</id><published>2007-05-24T11:05:00.001-06:00</published><updated>2007-05-24T11:05:47.712-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='opinion'/><category scheme='http://www.blogger.com/atom/ns#' term='webservice'/><category scheme='http://www.blogger.com/atom/ns#' term='interoper'/><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><title type='text'>La culpa no la tiene el servicio sino el que lo hace Web Service</title><content type='html'>Hace un par de días hubo una acalorada discusión en relación a un proceso de integración entre dos sistemas: el expediente clínico electónico (ECE) y el sistema que se encarga de administrar a los usuarios de los diversos servicios de centros deportivos y sociales.&lt;br /&gt;&lt;br /&gt;Resulta que los web services que expone ECE se definen en el correspondiente WSDL de la sigte manera:&lt;br /&gt;&lt;br /&gt;&amp;lt;s:element name="CargaReferencia"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;lt;s:complextype&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;s:sequence&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;s:element minoccurs="0" maxoccurs="1" name="docHL7Referencia"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;s:complextype mixed="true"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;s:sequence&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="font-weight: bold;"&gt;&amp;lt;s:any/&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/s:sequence&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/s:complextype&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/s:element&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;/s:sequence&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;lt;/s:complextype&amp;gt;&lt;br /&gt;&amp;lt;/s:element&amp;gt;&lt;br /&gt;&lt;br /&gt;Y del otro lado se tiene&lt;br /&gt;&lt;br /&gt;&amp;lt;s:element name="procesaOci"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;lt;s:complexType&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;s:sequence&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="font-weight: bold;"&gt;&amp;lt;s:any/&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;/s:sequence&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;lt;/s:complexType&amp;gt;&lt;br /&gt;&amp;lt;/s:element&amp;gt;&lt;br /&gt;&lt;br /&gt;Es decir. Técnicamente reciben &lt;span style="font-weight: bold;"&gt;cualquier&lt;/span&gt; cosa (&amp;lt;s:any/&amp;gt;).&lt;br /&gt;&lt;br /&gt;Hace un poco más de un año, se realizó una &lt;a href="http://chilli-coder.blogspot.com/2006/04/marca-mata-experiencia.html"&gt;junta&lt;/a&gt; para evaluar una propuesta de arquitectura para los servicios del ECE. Lo curioso es que pasado el tiempo siguen en las mismas.&lt;br /&gt;&lt;br /&gt;¿pa'qué definir un contrato? Le pasamos cualquier cosa. ¿pa'qué validar contra un esquema? La validación la hacemos con un flujo o mejor aún: tirando código (que se factura por hora). No tiene ningún caso desacoplar, incluso cuando existen appliances para validar esquemas.&lt;br /&gt;&lt;br /&gt;El chiste del outsourcing es quemar horas reinventando el hilo negro, divagando en arquitecturas y pelearse entre sí.&lt;br /&gt;&lt;br /&gt;En fin, la culpa no la tiene el servicio.&lt;br /&gt;&lt;br /&gt;Finito.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-8626445595242217562?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/8626445595242217562/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=8626445595242217562' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/8626445595242217562'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/8626445595242217562'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2007/05/la-culpa-no-la-tiene-el-servicio-sino.html' title='La culpa no la tiene el servicio sino el que lo hace Web Service'/><author><name>ChilliCoder</name><uri>http://www.blogger.com/profile/01288599922644011117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-8943940581524546530</id><published>2007-05-23T18:28:00.001-06:00</published><updated>2007-05-23T18:39:00.311-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='data service'/><category scheme='http://www.blogger.com/atom/ns#' term='webcast'/><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='EII'/><title type='text'>WEBCAST Data Services: Essential Foundation For SOA Success</title><content type='html'>Hola que tal&lt;br /&gt;&lt;br /&gt;Hace unos dias me encargaron la mision de  trabajar cosas de &lt;a href="http://integramx.blogspot.com/search/label/EII"&gt;Data Services&lt;/a&gt; usando &lt;a href="http://www.bea.com/framework.jsp?CNT=index.htm&amp;amp;FP=/content/products/aqualogic/data_services/"&gt;Aqualogic Data Service Platform&lt;/a&gt;.... pues bien, me encontre con un webcast que al menos en el nombre se me hace interesante.... espero lo puedan atender, la cita es el dia 30 de Mayo&lt;br /&gt;&lt;br /&gt;Aqui los datos:&lt;br /&gt;&lt;br /&gt; TITLE: Data Services: Essential Foundation For SOA Success&lt;br /&gt;     WHEN: May 30, 2007 at 2:00 PM EDT (18:00 GMT)&lt;br /&gt;     SPEAKER: Sandy Rogers - Program Director for  SOA, Web services, and Integration Research at IDC&lt;br /&gt;     SPEAKER: Robert Eve - VP Marketing, Composite Software&lt;br /&gt;     SPONSOR: Composite Software&lt;br /&gt;SITE:  SearchWebServices.com&lt;br /&gt;&lt;br /&gt;Sale pues ahi ta&lt;br /&gt;&lt;br /&gt;Por una integracion mejor, hasta la vista!&lt;br /&gt;&lt;br /&gt;Tuzo&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-8943940581524546530?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/8943940581524546530/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=8943940581524546530' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/8943940581524546530'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/8943940581524546530'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2007/05/webcast-data-services-essential.html' title='WEBCAST Data Services: Essential Foundation For SOA Success'/><author><name>Tuzo</name><uri>http://www.blogger.com/profile/09903812629859341718</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='19' src='http://3.bp.blogspot.com/-MFoP4pie2t4/Tk6KPqbsMSI/AAAAAAAAAFk/olgrspFpC2I/s220/soa_innovation_lab-476x277.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-449308125902548329</id><published>2007-05-21T16:34:00.000-06:00</published><updated>2007-05-21T16:56:05.954-06:00</updated><title type='text'>SOAPUI  una buena herramienta</title><content type='html'>Hola que tal !!!!!&lt;br /&gt;&lt;br /&gt;De nuevo por aqui... esperando que tengan un excelente inicio de semana!!!!&lt;br /&gt;&lt;br /&gt;... pues quiero recomendarles una herramienta libre que me encontre en la red, quiza ya algunos de ustedes la han usado su nombre es &lt;a href="http://www.soapui.org/"&gt;SoapUI&lt;/a&gt;, esta herramiente es muy buena, excelente diria yo... puedes hacer invocaciones de webservices y para mi lo mas practico que le encontre a la herramienta... generacion de mockservices...&lt;br /&gt;&lt;br /&gt;Es muy sencilla de utilizar... solo registras tu WSDL y listo !!! ya tienes un generador de peticiones...&lt;br /&gt;&lt;br /&gt;SoapUi lo utilizo para enviar mensajes al canal &lt;a href="http://integramx.blogspot.com/search/label/ESB"&gt;ESB&lt;/a&gt;, asi como para generar clientes de web services sin necesidad de montar un application server para mi servicio web....espero les sea de utilizad...&lt;br /&gt;&lt;br /&gt;PD. trate de hacerla jalar en ubuntu.. y por alguna razon...no me funciono.. si alguno de ustedes lo logra.. ponganse la del puebla...&lt;br /&gt;&lt;br /&gt;Por una integracion mejor, hasta la vista!!!&lt;br /&gt;&lt;br /&gt;Tuzo, mas feliz que nunca :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-449308125902548329?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/449308125902548329/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=449308125902548329' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/449308125902548329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/449308125902548329'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2007/05/soapui-una-buena-herramienta.html' title='SOAPUI  una buena herramienta'/><author><name>Tuzo</name><uri>http://www.blogger.com/profile/09903812629859341718</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='19' src='http://3.bp.blogspot.com/-MFoP4pie2t4/Tk6KPqbsMSI/AAAAAAAAAFk/olgrspFpC2I/s220/soa_innovation_lab-476x277.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-6305162525853127308</id><published>2007-05-16T13:12:00.000-06:00</published><updated>2007-05-16T13:29:51.010-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software development'/><title type='text'>Barbaridades y cosas similares en el desarrollo de software</title><content type='html'>Hola que tal !!!&lt;br /&gt;&lt;br /&gt;...... pues los quiero invitar a que visiten el blog &lt;a href="http://tuzoftware.blogspot.com/"&gt;tuzoftware.blogspot.com&lt;/a&gt; que abrieron unos buenos amigos (de la bella ciudad de pachuca  por supuesto¡¡¡)  con los que he compartido buenos y malos ratos dentro del desarrollo de sistemas.... al buen &lt;span style="font-style: italic;"&gt;Toño&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;Rulo&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;Ivancillo, Ranas &lt;/span&gt;y al &lt;span style="font-style: italic;"&gt;Zamo&lt;/span&gt;, que estaran platicando lo que viven dia a dia ( y alguna que otra frustracion :D) en las cuestiones en desarrollo de software y otras barbaries como le llaman... a ellos los conoci hace 7 años cuando trabajamos juntos en la Bolsa Mexicana de Valores... tiempo despues formamos una pequeña consultora llamada Tuzoftware y hasta la fecha tenemos contacto...&lt;br /&gt;&lt;br /&gt;Por lo pronto el &lt;a href="http://tuzoftware.blogspot.com/2007/05/y-si-y-si-y-si-y-si.html"&gt;&lt;span style="font-style: italic;"&gt;Toño &lt;/span&gt;&lt;/a&gt;publico su primer post que habla de ... "El negativismo Pragmático" jajaja pues adelante.......... mucha suerte , bienvenidas las aportaciones y experiencias !!!!&lt;br /&gt;&lt;br /&gt;Por el buen compartir, hasta la vista!!&lt;br /&gt;&lt;br /&gt;Tuzo&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-6305162525853127308?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/6305162525853127308/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=6305162525853127308' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/6305162525853127308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/6305162525853127308'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2007/05/barbaridades-y-cosas-similares-en-el.html' title='Barbaridades y cosas similares en el desarrollo de software'/><author><name>Tuzo</name><uri>http://www.blogger.com/profile/09903812629859341718</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='19' src='http://3.bp.blogspot.com/-MFoP4pie2t4/Tk6KPqbsMSI/AAAAAAAAAFk/olgrspFpC2I/s220/soa_innovation_lab-476x277.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-5456389159069389826</id><published>2007-05-15T19:38:00.000-06:00</published><updated>2007-05-15T18:15:06.378-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='websphere'/><category scheme='http://www.blogger.com/atom/ns#' term='JMS'/><category scheme='http://www.blogger.com/atom/ns#' term='patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='weblogic'/><category scheme='http://www.blogger.com/atom/ns#' term='MQ Series'/><title type='text'>Utilizando el ruteo basado en  contenido y JMS</title><content type='html'>Hola de nuevo por aqui...&lt;br /&gt;&lt;br /&gt;Despues de dos semanas algo ajetreadas entre viajes cortos a la ciudad de pachuca, regresamos al trabajo con las pilas algo bajas, pero con el gusto de continuar con nuestra labor..&lt;br /&gt;&lt;br /&gt;En el instituto tenemos sistemas de bastantes sabores... ¿cuantos? R= muchos :D,  imperan dos ambientes: aplicaciones que se encuentran en la CD de mexico y monterrey ,  asi como aplicaciones regadas en las 32 delegaciones de la republica mexicana.&lt;br /&gt;&lt;br /&gt;Hace aproximadamente un año nos pidieron el requerimiento de conectar un sistema que esta instalado individualmente en cada delegacion, tiene su servidor y esta completamente independiente...... con otro que se encuentra en el CENATI (centro nacional de tecnologias de informacion)  de Monterrey, ventaja numero uno estaban desarrollados en Java (el central en Weblogic y los de las delegaciones en Websphere)....&lt;br /&gt;&lt;br /&gt;El requerimiento puntual fue... entregar dictamentes a cada unidad de medicina familiar.. provenientes de el sistema central de salud en el trebajo...&lt;br /&gt;&lt;br /&gt;El diseño final fue contener una cola JMS para cada una de las delegaciones y mediante el ruteo basado en contenido para realizar la entrega.... hubo quien sugirio publicar un webservice por cada delegacion para recibir.. en fin... y no es que sea malo.. pero para un ambiente completamente asioncrono las colas JMS funcionan a la perfecccion...&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_QXKiOP-oRG8/RkpGF-f00LI/AAAAAAAAAA0/uKyQClKyyNY/s1600-h/SISAT-SIMF.JPG"&gt;&lt;img style="cursor: pointer;" src="http://bp3.blogger.com/_QXKiOP-oRG8/RkpGF-f00LI/AAAAAAAAAA0/uKyQClKyyNY/s320/SISAT-SIMF.JPG" alt="" id="BLOGGER_PHOTO_ID_5064937799421317298" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Como se puede ver en la imagen, el sistema de salud en el trabajo invoca de manera sincrona a un servicio web central, este se encarga de guardar el mensaje en una cola central asi como de transformar el mensaje... posteriormente existe un Message Driven Bean consumiendo de la cola central que se basa en el contenido ( &lt;a href="http://www.enterpriseintegrationpatterns.com/ContentBasedRouter.html"&gt;Content Based Router, &lt;/a&gt;) para entregar a la cola final que esta en &lt;a href="http://www.ibm.com/software/mqseries/"&gt;MQ Series&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.enterpriseintegrationpatterns.com/ContentBasedRouter.html"&gt;&lt;/a&gt;Algunas ventajas de este modelo: trabajo completamente asincrono, si algun aplicacion de medicina familiar esta abajo los mensajes quedan almacenados en su cola y sobretodo existe garantia de entrega.&lt;br /&gt;&lt;br /&gt;Posteriormente hay que revisar algunas estrategias de consumo de colas JMS, porque no todo el codigo que se escribe para consumir es el mejor... ;)...&lt;br /&gt;&lt;br /&gt;Por una integracion mejor, hasta la vista!!&lt;br /&gt;&lt;br /&gt;Tuzo&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-5456389159069389826?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/5456389159069389826/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=5456389159069389826' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/5456389159069389826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/5456389159069389826'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2007/05/utilizando-el-ruteo-basado-en-contenido.html' title='Utilizando el ruteo basado en  contenido y JMS'/><author><name>Tuzo</name><uri>http://www.blogger.com/profile/09903812629859341718</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='19' src='http://3.bp.blogspot.com/-MFoP4pie2t4/Tk6KPqbsMSI/AAAAAAAAAFk/olgrspFpC2I/s220/soa_innovation_lab-476x277.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_QXKiOP-oRG8/RkpGF-f00LI/AAAAAAAAAA0/uKyQClKyyNY/s72-c/SISAT-SIMF.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-7242300144479638045</id><published>2007-05-15T16:53:00.000-06:00</published><updated>2007-05-15T16:55:19.228-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='community'/><category scheme='http://www.blogger.com/atom/ns#' term='milestone'/><category scheme='http://www.blogger.com/atom/ns#' term='mono'/><category scheme='http://www.blogger.com/atom/ns#' term='opensource'/><title type='text'>Habemus Mono</title><content type='html'>Se acaba de anunciar la liberación de la nueva &lt;a href="http://www.go-mono.com/archive/1.2.4/"&gt;versión 1.2.4&lt;/a&gt; de Mono.&lt;br /&gt;&lt;br /&gt;Entre las novedades más notables encontramos:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Más de 1,000 métodos agregados y/o actualizados&lt;/li&gt;&lt;li&gt;Soporte completo de ASP.NET 2.0 (bueno... casi... los Web Parts siguen pendientes pero ¿a quién le importa?)&lt;/li&gt;&lt;li&gt;Mejoras en el desempeño de ASP.NET&lt;/li&gt;&lt;li&gt;Inicios de la implementación de C# 3.0&lt;/li&gt;&lt;li&gt;Mono en Solaris/AMD64&lt;/li&gt;&lt;li&gt;Y varios items más&lt;/li&gt;&lt;/ul&gt;El número de métodos es impresionante tomando en cuenta que los reportes MoMA dan guía a los esfuerzos de desarrollo del equipo Mono. Habrá que revisar ahora el porcentaje de aplicaciones que se migran transparentemente, a febrero de este año estaba por el 11%, seguramente con este release se va a incrementar.&lt;br /&gt;&lt;br /&gt;Finito.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-7242300144479638045?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/7242300144479638045/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=7242300144479638045' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/7242300144479638045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/7242300144479638045'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2007/05/habemus-mono.html' title='Habemus Mono'/><author><name>ChilliCoder</name><uri>http://www.blogger.com/profile/01288599922644011117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-6612496552388109594</id><published>2007-05-09T19:13:00.000-06:00</published><updated>2007-05-09T19:49:04.316-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rules-as-a-service'/><category scheme='http://www.blogger.com/atom/ns#' term='user interface-as-a-service'/><category scheme='http://www.blogger.com/atom/ns#' term='data service'/><category scheme='http://www.blogger.com/atom/ns#' term='SOA  views'/><category scheme='http://www.blogger.com/atom/ns#' term='P2P'/><category scheme='http://www.blogger.com/atom/ns#' term='business rule'/><category scheme='http://www.blogger.com/atom/ns#' term='document-as-a-service'/><category scheme='http://www.blogger.com/atom/ns#' term='service layers'/><category scheme='http://www.blogger.com/atom/ns#' term='metadata-as-a-service'/><category scheme='http://www.blogger.com/atom/ns#' term='metadata'/><category scheme='http://www.blogger.com/atom/ns#' term='process-as-a-service'/><category scheme='http://www.blogger.com/atom/ns#' term='portal'/><title type='text'>ideas,ideas,ideas</title><content type='html'>Pues aqui mientras estamos esperando unos mensajes para nuestro ESB, tengo la mente llena de un monton de ideas sobre SOA&lt;br /&gt;&lt;br /&gt;Un poco cansado del dia, ya que empece desde las 5:45 a.m., solo voy a vaciar mi subconciente y de ahi espero desarrollar mas entradas del blog&lt;br /&gt;&lt;br /&gt;... Usar el modelo de Servicios que vi con uno de los consultores "chipocludos" de BEA, que demostro que los servicios se pueden organizar por servicios de la empresa, de negocio, de conectividad, algo que habia ya pensado en el pasado&lt;br /&gt;&lt;br /&gt;... Estructurar un servicio, sus vistas en un portal, como proceso, como data service, como metadato, como documento, como regla de negocio, como politica de seguridad. Y ver como ensamblarlo . Es analogo al modelo de multiples capas&lt;br /&gt;&lt;br /&gt;... En menos de un dia me encontre con el concepto de "Programacion orientada a Lenguajes", software factories y convergencia con SOA&lt;br /&gt;&lt;br /&gt;... Cambiar mi mente a pensar los sistemas como servicios.&lt;br /&gt;&lt;br /&gt;... Integracion con el mainframe&lt;br /&gt;&lt;br /&gt;... Insisto, el modelo de Peer-to-peer (P2P) podria influenciar fuertemente a SOA&lt;br /&gt;&lt;br /&gt;... Todo mundo dice que este año es el de SOA, y aprovechar esa ventaja para hacer algo interesante, concrectar la idea de la barra multicontactos para conectar sus aplicaciones&lt;br /&gt;&lt;br /&gt;... En el renacimiento, crearon tanto por los principios de la vision y filosofia griega. Usaron la razon para hacer obras pereenes, El Orfeo de MonteVerdi, el David de Miguel Angel, la ciudad de Florencia, todos basados en principios similares a la arquitectura, y siguen funcionando. ¿Por que no hacer lo mismo nosotros? ¿Por que no generar un renacimiento en los sistemas y romper dogmas?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-6612496552388109594?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/6612496552388109594/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=6612496552388109594' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/6612496552388109594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/6612496552388109594'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2007/05/ideasideasideas.html' title='ideas,ideas,ideas'/><author><name>gusdelact</name><uri>http://www.blogger.com/profile/01280814569141135139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-5334792728382545761</id><published>2007-05-09T12:50:00.000-06:00</published><updated>2007-05-09T12:56:47.269-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='integration'/><category scheme='http://www.blogger.com/atom/ns#' term='api'/><category scheme='http://www.blogger.com/atom/ns#' term='WebServices'/><category scheme='http://www.blogger.com/atom/ns#' term='message'/><category scheme='http://www.blogger.com/atom/ns#' term='dotnet'/><title type='text'>Entre servicios te veas</title><content type='html'>En una prueba de integración entre una aplicación .NET y otra desarrollada en Java nos apareció este mensaje:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Exito: 0&lt;br /&gt;Código Error: 100&lt;br /&gt;Desc. Error: mx.gob.imss.sigoi.quejaVerbal.exception.ValidaCampoException:&lt;br /&gt;El campo Calidad de la persona que se comunica es requerido.&lt;br /&gt;El campo Nombre de la persona que se comunica es requerido.&lt;br /&gt;El campo Apellido paterno de la persona que se comunica es requerido.&lt;br /&gt;El campo Lada de teléfono particular de la persona que se comunica tiene que ser numérico.&lt;br /&gt;El campo Lada de teléfono particular de la persona que se comunica tiene una longitud no valida, menor a 2 Caracteres&lt;br /&gt;El campo Teléfono particular de la persona que se comunica tiene que ser numérico.&lt;br /&gt;El campo Teléfono particular de la persona que se comunica tiene una longitud no valida, menor a 8 Caracteres&lt;br /&gt;El campo Teléfono celular de la persona que se comunica tiene que ser numérico.&lt;br /&gt;El campo Teléfono celular de la persona que se comunica tiene una longitud no valida, menor a 12 Caracteres&lt;br /&gt;El campo Correo electrónico de la persona que se comunica no tiene un formato adecuado&lt;br /&gt;Se tiene que incluir al menos un medio de contacto valido de la persona que se&lt;br /&gt;comunica: Lada y número de teléfono particular, número de teléfono celular, correo electrónico, o dirección completa&lt;br /&gt;Es necesario capturar el NSS de la persona que se comunica&lt;br /&gt;Es necesario capturar el NSS de la persona que solicita el servicio&lt;br /&gt;El campo Calidad de la persona que solicita el servicio es requerido.&lt;br /&gt;El campo Teléfono celular del usuario que solicita el servicio tiene que ser numérico.&lt;br /&gt;El campo Teléfono celular del usuario que solicita el servicio tiene una longitud no valida, menor a 12 Caracteres&lt;br /&gt;El campo Entidad federativa del usuario que solicita el servicio tiene que ser numérico.&lt;br /&gt;El campo Entidad federativa del usuario que solicita el servicio no es un valor válido de catálogo&lt;br /&gt;El campo Clasificación de la solicitud del planteamiento tiene que ser numérico.&lt;br /&gt;El campo Clasificación de la solicitud del planteamiento no es un valor válido de catálogo&lt;br /&gt;El campo Tema del planteamiento tiene que ser numérico.&lt;br /&gt;El campo Tema del planteamiento no es un valor válido de catálogo&lt;br /&gt;El campo Subtema del planteamiento tiene que ser numérico.&lt;br /&gt;El campo Subtema del planteamiento no es un valor válido de catálogo&lt;br /&gt;El campo Delegación de Adscripción del planteamiento no es un valor válido de catálogo&lt;br /&gt;El campo Unidad Medica de Adscripción del planteamiento tiene que ser numérico.&lt;br /&gt;El campo Unidad Medica de Adscripción del planteamiento no es un valor válido de catálogo&lt;br /&gt;El campo Delegación o UMAE involucrada en la gestión o queja del planteamiento tiene que ser numérico.&lt;br /&gt;El campo Delegación o UMAE involucrada en la gestión o queja del planteamiento no es un valor válido de catálogo&lt;br /&gt;El campo Subdeleación y/o Unidad involucrada en la gestión o queja del planteamiento tiene que ser numérico.&lt;br /&gt;El campo Subdeleación y/o Unidad involucrada en la gestión o queja del planteamiento no es un valor válido de catálogo&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;¿Qué tiene de malo? (aparte de algunas faltas de ortografía) Son dos &lt;span style="font-weight: bold;"&gt;servicios&lt;/span&gt; que están intercambiando mensajes entre sí. No tienen &lt;span style="font-weight: bold;"&gt;interacción&lt;/span&gt; con el usuario, así que este tipo de mensajes, descriptivos y detallados, son completamente &lt;span style="font-weight: bold;"&gt;desaprovechados&lt;/span&gt; en este contexto.&lt;br /&gt;&lt;br /&gt;Entonces ¿cuál es el modo &lt;span style="font-weight: bold;"&gt;correcto&lt;/span&gt; de devolver errores en este caso? No sé cual sea el modo correcto. Lo que a mi me gusta es el estilo de AppExchange Web Service API.&lt;br /&gt;&lt;br /&gt;AppExchange (anteriormente conocida como Salesforce) es una empresa que ofrece &lt;span style="font-style: italic;"&gt;software as a service&lt;/span&gt; (SaaS), en particular un CRM que compite directamente contra los &lt;span style="font-style: italic;"&gt;grandes&lt;/span&gt;: Siebel, SAP y otros. Les ha ganado una gran tajada del mercado y sigue abriendo áreas de oportunidad. La API que comento la ofrecen mediante servicios web y tiene la funcionalidad de agregar, actualizar, borrar y buscar items de su mega repositorio de datos.&lt;br /&gt;&lt;br /&gt;Así, en esas operaciones obviamente se envían y devuelven resultados en un contexto de integración de servicios. ¿Cómo le hacen? Va la referencia del API:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;blockquote&gt;SaveResult[] = sfdc.create(sObject[] sObjects);&lt;/blockquote&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Tenemos la llamada create que recibe un arreglo de sObjects (tipo nativo de AppExchange) y como resultado devuelve un arreglo de objetos SaveResult. Ahora veamos SaveResult:&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="font-family: courier new;"&gt;        private Error[] errorsField;      &lt;br /&gt;       private string idField;      &lt;br /&gt;       private bool successField;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Nos devuelve un objeto con el identificador único (idField), una bandera de éxito o fracaso (successField) y un arreglo de objetos Error, igualmente veamos:&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="font-family: courier new;"&gt;        private string[] fieldsField;      &lt;br /&gt;       private string messageField;&lt;br /&gt;       private StatusCode statusCodeField;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;En fieldsField tenemos el o los nombres de los campos que provocaron el error; messageField es el texto descriptivo del error y finalmente statusCodeField que es el código que identifica el error dentro de un catálogo disponible en el WSDL del servicio.&lt;br /&gt;&lt;br /&gt;Si bien tenemos un texto descriptivo, tenemos otras referencias (statusCodeField, successField) que nos permiten atender el problema y darle solución dentro de un contexto de integración.&lt;br /&gt;&lt;br /&gt;A mi parecer es la falta de &lt;span style="font-weight: bold;"&gt;comprensión&lt;/span&gt; de los escenarios en los que se trabaja lo que provoca este tipo de diseños. Ya se requiere &lt;span style="font-weight: bold;"&gt;cambiar&lt;/span&gt; el modelo y empezar a modelar &lt;span style="font-weight: bold;"&gt;servicios&lt;/span&gt;. En algún momento habrá un servicio que se encargue de interactuar con el usuario y habrá que darle la suficiente información para que resuelva los problemas que lleguen a aparecer.&lt;br /&gt;&lt;br /&gt;Por eso, entre servicios te veas, comportate como un servicio.&lt;br /&gt;&lt;br /&gt;Finito.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-5334792728382545761?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/5334792728382545761/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=5334792728382545761' title='1 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/5334792728382545761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/5334792728382545761'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2007/05/entre-servicios-te-veas.html' title='Entre servicios te veas'/><author><name>ChilliCoder</name><uri>http://www.blogger.com/profile/01288599922644011117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-2223689954552045410</id><published>2007-05-07T17:16:00.000-06:00</published><updated>2007-05-07T19:31:06.586-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='PKCS7'/><category scheme='http://www.blogger.com/atom/ns#' term='WebServices'/><category scheme='http://www.blogger.com/atom/ns#' term='decoupling'/><title type='text'>De como la idea de servicios salvo un dia</title><content type='html'>Hola&lt;br /&gt;El viernes pasado, estaba yo tranquilamente acabando de dar clases en la ULSA, cuando recibo una llamada...&lt;br /&gt;Gus, se cayo Seguridata&lt;br /&gt;&lt;br /&gt;Ja, cualquiera que vea esta entrada, parece que esta viendo una pelicula empezada&lt;br /&gt;&lt;br /&gt;Les cuento rapido la historia&lt;br /&gt;Ahi tienen que para donde yo trabajo, el  IMSS, varios sistemas requieren de validar una secuencia PCKS7 y obtener un recibo criptografico. Para hacerlo, dependen de un servicio de PKI provisto por el software de una empresa llamada Seguridata&lt;br /&gt;&lt;br /&gt;Hace casi 3 años, tuvimos la feliz ocurrencia de codificar ese proceso de verificacion y envio de recibo en un WebService. Dicho WebService fue escrito en Java y es el unico acoplado a las bibliotecas de dicho software. Pero para los clientes es transparente, inclusive se vale que generen su PKCS7 con un API distinto&lt;br /&gt;&lt;br /&gt;Al principio, inclusive yo mismo, nos preguntabamos si no habiamos abusado del modelo de WebService. Al fin y al cabo, por que no entregarle a cada aplicacion su correspondiente biblioteca y que cada sistema la manejara como del Dios de los Bytes le diera entender.&lt;br /&gt;&lt;br /&gt;Sin embargo, no se privilegio mucho esa filosofia, aunado a que muchos de los desarrolladores no tenian mucha cultura sobre el manejo de infraestructura de llave publica&lt;br /&gt;&lt;br /&gt;Han pasado algunos años con dicho servicio en ejecucion. Sin embargo, la crisis mas fuerte se presento la semana pasada, el servicio de Seguridata se vio saturado (diria hiper-duper-super-saturado). Los administradores del servicio no tuvieron mas opcion que repartir la chamba entre varias computadoras y cambiar al  host&lt;br /&gt;&lt;br /&gt;Asi que el viernes, a las carreras por la contingencia direccione el WebService al nuevo nodo. Solo tuve que modificar a dicho WebService. Las aplicaciones que dependian de el, no tuvieron que ser reinicidas o redistribuidas.&lt;br /&gt;&lt;br /&gt;He ahi la magia de la Arquitectura Orientada a Servicios. Desacoplamiento.&lt;br /&gt;&lt;br /&gt;Si no se hubiera pensado asi, todas las aplicaciones hubieran realizado muchos cambios y con sus debidos riesgos.&lt;br /&gt;&lt;br /&gt;Asi que despues del stress generado por la contingencia, respiere tranquilo y me di cuenta de la fortaleza del modelo&lt;br /&gt;&lt;br /&gt;Desacoplen!! Quiza muchos de los que son pro la filosofia de la union libre me entenderan. Es dificil casarse con alguien hasta que la muerte los separe. Quiza para los humanos es muy factible,pero creanme que para los sistemas nada mejor que ser amigovios y solo regirse por el poderoso concepto de contrato o interfase&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-2223689954552045410?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/2223689954552045410/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=2223689954552045410' title='1 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/2223689954552045410'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/2223689954552045410'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2007/05/de-como-la-idea-de-servicios-salvo-un.html' title='De como la idea de servicios salvo un dia'/><author><name>gusdelact</name><uri>http://www.blogger.com/profile/01280814569141135139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-9023997734621429613</id><published>2007-05-01T08:00:00.000-06:00</published><updated>2007-05-02T09:45:49.638-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='integration'/><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='EII'/><title type='text'>Enterprise Information Integration</title><content type='html'>Hola mis queridos dos lectores!, de nuevo dando lata&lt;br /&gt;&lt;br /&gt;Antes de comenzar, quiero agradecer nuevamente al &lt;span style="FONT-WEIGHT: bold; FONT-STYLE: italic"&gt;Mtro. Heriberto Garcia&lt;/span&gt; por haberme invitado al congreso de TICs en la &lt;span style="FONT-STYLE: italic"&gt;hermosa ciudad de Pachuca&lt;/span&gt;, así tambien a los asistentes que tuve en la platica relacionada con el ESB, en verdad fue una bonita experiencia, en breve publicare el codigo del ejemplo para que le echen un vistazo...&lt;br /&gt;&lt;br /&gt;Bueno pues zapatero, a tus zapatos.... hoy en dia hemos escuchado acerca del termino Software Oriented Architecture, una vision arquitectonica que esta tomando un auge importante, aunque no todas las organizaciones estan preparadas aun para dar un paso hacia SOA (que ojo, SOA no es solo web services... ese es tema de otro post).&lt;br /&gt;&lt;br /&gt;..una vision que hemos adoptado en el trabajo es es la siguiente: SOA = SODA + EII + BPM+ Registro + ESB y agregare cultura..&lt;br /&gt;&lt;br /&gt;Esos temas los iremos tocando poco a poco, hoy hablare de el &lt;a href="http://en.wikipedia.org/wiki/Enterprise_Information_Integration"&gt;Enterprise Information Integration&lt;/a&gt;, ¿que es? bien... el la idea principal de EII, es que podemos crear un &lt;em&gt;Modelo Virtual de Datos&lt;/em&gt; a partir de una fuente fisica, a estos servicios se les conoce como &lt;em&gt;Data Services&lt;/em&gt;, esto es muy interesante ya que puedes exponer una fuente de datos como un servicio.&lt;br /&gt;&lt;br /&gt;Una de las partes que me llama la atencion del EII, es que puedes federar informacion, es decir, puedes generar multiples modelos fisicos (Base de Datos, XML, File, Web Services) y mediante un modelo Logico puedes generar una sola vista a los datos, esto es muy interesante ya que modelas apartir de tus metadatos, no de las fuentes fisicas.&lt;br /&gt;&lt;br /&gt;Algunos ejemplos que vienen a la mente, catalogos comunes, multiples bases de datos accesadas mediante un data service, federacion de multiples fuentes de datos, en fin.&lt;br /&gt;&lt;br /&gt;En el trabajo tenemos el &lt;a href="http://www.bea.com/framework.jsp?CNT=index.htm&amp;amp;FP=/content/products/aqualogic/data_services/"&gt;Aqualogic Data Services&lt;/a&gt;, actualmente estamos en el proceso de explotacion de la herramienta, en breve expondre los casos de uso que estamos echando a andar.&lt;br /&gt;&lt;br /&gt;Aqui les dejo unas ligas interesantes acerca de este tema:&lt;br /&gt;&lt;a href="http://www.looselycoupled.com/stories/2005/bi-adapt-eai0627.html#content"&gt;EII helps BI adapt to SOA&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.b-eye-network.com/blogs/mcknight/archives/2007/01/when_to_use_ent.php"&gt;when to use EII&lt;/a&gt;&lt;br /&gt;&lt;a href="http://dev2dev.bea.com/pub/a/2006/11/soa-service-lifecycle-run.html"&gt;Understanding the Service Lifecycle within a SOA: Run Time&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Espero que esta introduccion a los EIIs les sea de utilidad, estare publicando mas cosas acerca de este tema.&lt;br /&gt;&lt;br /&gt;Comentarios, criticas y aportaciones bienvenidas.&lt;br /&gt;&lt;br /&gt;Por una integracion mejor, hasta la vista!!&lt;br /&gt;&lt;br /&gt;Tuzo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-9023997734621429613?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/9023997734621429613/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=9023997734621429613' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/9023997734621429613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/9023997734621429613'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2007/05/enterprise-information-integration.html' title='Enterprise Information Integration'/><author><name>Tuzo</name><uri>http://www.blogger.com/profile/09903812629859341718</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='19' src='http://3.bp.blogspot.com/-MFoP4pie2t4/Tk6KPqbsMSI/AAAAAAAAAFk/olgrspFpC2I/s220/soa_innovation_lab-476x277.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-8424480012931081378</id><published>2007-04-27T10:54:00.000-06:00</published><updated>2007-04-27T10:59:03.270-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='community'/><category scheme='http://www.blogger.com/atom/ns#' term='milestone'/><category scheme='http://www.blogger.com/atom/ns#' term='mono'/><category scheme='http://www.blogger.com/atom/ns#' term='wcf'/><category scheme='http://www.blogger.com/atom/ns#' term='opensource'/><title type='text'>2° Congreso Universitario en TICs - UAEH</title><content type='html'>Pues el miércoles fue la fecha. Avanzaba el calendario y simplemente no veía llegar el 25. Y finalmente llegó.&lt;br /&gt;&lt;br /&gt;Para llegar hubo que dar una vuelta harto curiosa. De la hermana república de Coacalco al paradero del metro de Indios Verdes, la terminal ADO y el autobús a la Bella Airosa. Un viaje tranquilo en el cual tuve el chance de leer un &lt;a href="http://msdn.microsoft.com/msdnmag/issues/07/02/Foundations/default.aspx?loc=es"&gt;artículo&lt;/a&gt; de &lt;span style="font-weight: bold;"&gt;Juval Lowy&lt;/span&gt; sobre lo es al fin y al cabo el patrón &lt;a href="http://www.enterpriseintegrationpatterns.com/CorrelationIdentifier.html"&gt;Correlation Identifier&lt;/a&gt; implementado con &lt;span style="font-weight: bold;"&gt;WCF&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Finalmente llegué a la terminal de autobuses y ya me estaba esperando &lt;span style="font-weight: bold;"&gt;Heriberto García Islas&lt;/span&gt;, amigo del &lt;a href="http://integramx.blogspot.com/"&gt;Tuzo&lt;/a&gt; y organizador del &lt;a href="http://ceca.uaeh.edu.mx/congreso/"&gt;Congreso&lt;/a&gt;. Nos fuimos a la &lt;span style="font-weight: bold;"&gt;UAEH&lt;/span&gt; y me presentó con algunas autoridades de la uni, me instaló en su cubículo y esperando el inicio de las conferencias me dediqué a dar el rol por el campus.&lt;br /&gt;&lt;br /&gt;Había un ambiente muy &lt;span style="font-weight: bold;"&gt;festivo&lt;/span&gt;, caminando me encontré con un &lt;span style="font-weight: bold;"&gt;concurso&lt;/span&gt; de canto y otro de vencidas :P. Había &lt;span style="font-weight: bold;"&gt;partidos&lt;/span&gt; deportivos y un bonche de chavos que iban y venían. Llegué hasta el &lt;span style="font-weight: bold;"&gt;Polideportivo&lt;/span&gt; y me quede contemplando un rato la &lt;span style="font-weight: bold;"&gt;vista&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;El reloj marcó la hora y me regresé para asistir a la conferencia del &lt;span style="font-weight: bold;"&gt;Dr. Antonio Quiróz&lt;/span&gt; acerca de la &lt;span style="font-style: italic;"&gt;formalización del modelo Watson-Creek del ADN&lt;/span&gt;. Es &lt;span style="font-weight: bold;"&gt;increíble&lt;/span&gt; la forma tan natural y sencilla de hablar de &lt;span style="font-weight: bold;"&gt;temas&lt;/span&gt; tan especializados y conseguir ese link con la &lt;span style="font-weight: bold;"&gt;audiencia&lt;/span&gt; tan jovén (excepto yo). Entre anécdotas personales y de la historia de la ciencia nos dió una introducción a la &lt;span style="font-weight: bold;"&gt;investigación&lt;/span&gt; del ADN y la &lt;span style="font-weight: bold;"&gt;participación&lt;/span&gt; de varios científicos &lt;span style="font-weight: bold;"&gt;mexicanos&lt;/span&gt;, incluido él mismo en análisis, planteamientos y respuestas. Realmente es un &lt;span style="font-weight: bold;"&gt;personaje&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Al terminar su ponencia, seguía mi &lt;span style="font-weight: bold;"&gt;turno&lt;/span&gt; en otra sala del campus y sin más me dirigí para prepararme. Conectar el &lt;span style="font-weight: bold;"&gt;proyector&lt;/span&gt; a la lap, arrancar, poner la presentación y después de la introducción sobre mi persona &lt;span style="font-weight: bold;"&gt;empezar&lt;/span&gt;. Agregué algunas láminas para esta ocasión y fui platicando sobre el tema &lt;span style="font-style: italic;"&gt;Introducción al Proyecto Mono&lt;/span&gt;. Finalmente llegué al punto de los demos y los primeros que son los que realizo sobre Windows fluyeron sin complicación, pero al reiniciar la máquina para mostrar los demos en Linux &lt;span style="font-style: italic;"&gt;¿qué creen que pasó?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Sip. Una vez más. &lt;span style="font-style: italic;"&gt;¡torpe, torpe, torpe!&lt;/span&gt; No se proyecto nada de nada. No saben como &lt;span style="font-weight: bold;"&gt;odio&lt;/span&gt; eso. La próxima vez, que será en el &lt;a href="http://www.fonasol.org/"&gt;FONASOL&lt;/a&gt; a finales de mayo, primero voy a probar si consigue proyectar desde Linux y voy armar una máquina virtual con Windows para hacer las demos y si no funciona con Linux en Windows voy a tener una máquina virtual con Linux. En fin. Esta vez no hubo muchas preguntas y de nuevo insisto en que si hay comentarios me los hagan llegar. Al final tuve el gusto de conocer a un par de chavos entusiastas del software libre: &lt;span style="font-weight: bold;"&gt;Darío Navarro Rosales&lt;/span&gt; y a &lt;a href="http://snov-code.com.mx/"&gt;David Hernández Pérez&lt;/a&gt;, quienes son miembros del &lt;a href="http://www.guleh.org/"&gt;GULEH&lt;/a&gt; y conocidos de &lt;a href="http://www.iver.com.mx/"&gt;Iver&lt;/a&gt; y &lt;a href="http://akin0.blogspot.com/"&gt;Akin0&lt;/a&gt;, .&lt;br /&gt;&lt;br /&gt;Después, &lt;span style="font-weight: bold;"&gt;Heriberto&lt;/span&gt; tuvo el detalle de invitar la comida, pero desgraciadamente su función de organizador le impidió acompañarnos y me senté a comer y platicar con Darío y David. Bueno, medio platicar ya que en ese rato se estaba instalando la &lt;span style="font-weight: bold;"&gt;Orquesta Sinfónica de UAEH&lt;/span&gt; para ofrecer algunas piezas. Terminamos un poco antes de iniciar el concierto y nos acomodamos para escucharlo. Piezas sencillas que encontré en mis recuerdos de cuando miraba las caricaturas en la tele los sábados por la mañana.&lt;br /&gt;&lt;br /&gt;No hay nada como la música viva y este caso no fue la excepción. Realmente lo &lt;span style="font-weight: bold;"&gt;disfruté&lt;/span&gt; bastante, sobre todo cuando el &lt;span style="font-weight: bold;"&gt;director&lt;/span&gt; invitó a alguien del público que pasará a &lt;span style="font-weight: bold;"&gt;dirigir&lt;/span&gt; la orquesta y &lt;span style="font-weight: bold;"&gt;Heriberto&lt;/span&gt; saltó como &lt;span style="font-weight: bold;"&gt;resorte&lt;/span&gt;. Un momento muy &lt;span style="font-weight: bold;"&gt;divertido&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Bueno, fue un día &lt;span style="font-weight: bold;"&gt;excelente&lt;/span&gt; gracias a la gente de la &lt;span style="font-weight: bold;"&gt;UAEH&lt;/span&gt;, empezando por &lt;span style="font-weight: bold;"&gt;Heriberto&lt;/span&gt; por darnos la oportunidad de &lt;span style="font-weight: bold;"&gt;participar&lt;/span&gt; en el Congreso, por &lt;span style="font-weight: bold;"&gt;conocer&lt;/span&gt; al &lt;span style="font-weight: bold;"&gt;Dr. Quiroz&lt;/span&gt;, fue muy, muy emocionante y &lt;span style="font-weight: bold;"&gt;motivante&lt;/span&gt; y por ver chavos clavados con el software libre. Muchas &lt;span style="font-weight: bold;"&gt;gracias&lt;/span&gt; a todos.&lt;br /&gt;&lt;br /&gt;Finito.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-8424480012931081378?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/8424480012931081378/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=8424480012931081378' title='1 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/8424480012931081378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/8424480012931081378'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2007/04/2-congreso-universitario-en-tics-uaeh.html' title='2° Congreso Universitario en TICs - UAEH'/><author><name>ChilliCoder</name><uri>http://www.blogger.com/profile/01288599922644011117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-1529688127648037660</id><published>2007-04-23T08:11:00.000-06:00</published><updated>2007-05-04T09:13:35.439-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='contracts'/><title type='text'>Contratos de Negocio (Parte 2)</title><content type='html'>&lt;p class="MsoNormal"&gt;Hola que tal !!&lt;br /&gt;&lt;br /&gt;De regreso a la chamba :)&lt;br /&gt;&lt;br /&gt;La semana pasada fue algo interesante, asistí al &lt;i&gt;Gartner Enterprise Integration Summit&lt;/i&gt;, en el cual se tocaron temas de Integración de aplicaciones, Servicios Web, SOA y BPM.... tuve la oportunidad de platicar con algunos ponentes.. en estos días compartiré parte de lo aprendido en estas conferencias...&lt;br /&gt;&lt;br /&gt;Pues zapatero a tus zapatos, bien pues la semana pasada publicamos un tema acerca de los &lt;a href="http://integramx.blogspot.com/2007/04/contratos-de-negocio-parte-1.html"&gt;&lt;i&gt;contratos de negocio&lt;/i&gt;&lt;/a&gt;, bien pues ahora toca el turno a la parte TECNICA.....&lt;br /&gt;&lt;br /&gt;Una vez que se tiene el contrato de negocio, es necesario revisar la parte técnica de la solución, para lo cual es necesario revisar lo siguiente:&lt;br /&gt;&lt;br /&gt;En cuanto a la parte de las &lt;i&gt;Aplicaciones participantes&lt;/i&gt; en la integración, por cada una:&lt;?xml:namespace prefix = o /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;ul type="disc"&gt;&lt;li class="MsoNormal"&gt;Plataforma de Hardware&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;Plataforma de Sistema Operativo&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;Protocolos de Red (TCP/IP,SNA)&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;Protocolos de Aplicaciones (CORBA, COM, HTTP, Telnet, FTP, SMTP)&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;Software de terceros (Bases de datos, Monitor de transacciones, ERP, Servidor de Aplicaciones, Portal)&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;Plataforma de desarrollo (C, C++, Java, .Net)&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p class="MsoNormal"&gt;En cuanto a la parte del servicio de integración algunos aspectos importantes son:&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;ul type="disc"&gt;&lt;li class="MsoNormal"&gt;Modelo de invocación (síncrono/asíncrono)&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;Protocolo entre consumidor y servicio de integración (RMI, JMS, SOAP, CORBA)&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;Protocolo entre publicador y servicio de integración (RMI, JMS, SOAP, CORBA, FTP, HTTP, SMTP, ATMI. etc)&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;Acciones ante fallas dentro del servicio de integración&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;Acciones ante fallas en el consumidor&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="MARGIN-BOTTOM: 12pt"&gt;Acciones ante fallas en el publicador&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p class="MsoNormal"&gt;Existen otras cuestiones importantes que se necesitan documentar, como lo es la gestión de mensajes (esto cuando existe una solución mediante MOM) así como la transformación de mensajes (tema de otro post).&lt;br /&gt;&lt;br /&gt;Aquí los &lt;i&gt;roles&lt;/i&gt; importantes son: persona técnica de ambas aplicaciones y el arquitecto de integración.&lt;br /&gt;&lt;br /&gt;Espero que estas 2 entregas, les sirvan como apoyo en su proceso de documentar sus servicios de integración.&lt;br /&gt;&lt;br /&gt;Comentarios, críticas, aportaciones bienvenidas :)&lt;br /&gt;&lt;br /&gt;Por una integración mejor, hasta la vista!!&lt;br /&gt;&lt;br /&gt;Tuzo&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-1529688127648037660?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/1529688127648037660/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=1529688127648037660' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/1529688127648037660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/1529688127648037660'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2007/04/contratos-de-negocio-parte-2.html' title='Contratos de Negocio (Parte 2)'/><author><name>Tuzo</name><uri>http://www.blogger.com/profile/09903812629859341718</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='19' src='http://3.bp.blogspot.com/-MFoP4pie2t4/Tk6KPqbsMSI/AAAAAAAAAFk/olgrspFpC2I/s220/soa_innovation_lab-476x277.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-3301401886174844467</id><published>2007-04-16T08:50:00.000-06:00</published><updated>2007-05-04T09:13:09.681-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='contracts'/><title type='text'>Contratos de Negocio (Parte 1)</title><content type='html'>&lt;p class="MsoNormal" style="MARGIN-BOTTOM: 12pt"&gt;Hola que tal, mis queridos dos lectores!!!&lt;br /&gt;&lt;br /&gt;De nuevo dando lata, después de un agradable fin de semana....:D&lt;br /&gt;&lt;br /&gt;Entremos en materia, ahora es el turno de hablar de los &lt;i&gt;contratos de negocio&lt;/i&gt;...&lt;br /&gt;&lt;br /&gt;Pues bien cada que necesitamos integrar aplicaciones, hemos tomado como regla &lt;i&gt;generar un contrato de negocio&lt;/i&gt;.... básicamente es un documento NO TECNICO, que en la mayoría de los casos es generado por los analistas de negocio. Entre otras cosas este documento contiene:&lt;?xml:namespace prefix = o /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;ul type="disc"&gt;&lt;li class="MsoNormal"&gt;&lt;b&gt;Datos de entrada&lt;/b&gt;: diccionario de datos con nombre, tipo, tamaño, campos requeridos y valores permitidos que serán la entrada para el servicio de negocio a integrar&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;&lt;b&gt;Datos de salida&lt;/b&gt;: diccionario de datos con nombre, tipo, tamaño y valores permitidos que serán entregados por el servicio de negocio&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;&lt;b&gt;Errores de negocio&lt;/b&gt;: catalogo de errores que pertenecerán al negocio&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;&lt;b&gt;Errores de infraestructura y comunicación&lt;/b&gt;: errores que se pueden generar dentro de la infraestructura de integración (esto se detalla en la parte técnica del contrato)&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;&lt;b&gt;Diagramas&lt;/b&gt;: generalmente diagramas de secuencia que muestran como se dispara el evento&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;&lt;b&gt;Frecuencia&lt;/b&gt;: mencionar cada cuando se da este evento de negocio, generalmente se expresa en horarios&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;&lt;b&gt;Volúmenes esperados&lt;/b&gt;: volumen de información esperada por el evento de negocio&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p class="MsoNormal"&gt;Como verán los datos presentados en el documento nos ayudan a nosotros como integradores a tomar ciertas decisiones de la solución técnica.... &lt;i&gt;el rol &lt;/i&gt;importante en la generación de este contrato es el &lt;i&gt;Analista de Negocio&lt;/i&gt;. Cabe mencionar que nosotros no realizamos ningún trabajo de integración hasta que NO este terminado y acordado este &lt;i&gt;contrato&lt;/i&gt; (de ahí su nombre) por ambas partes del negocio.... ;)&lt;br /&gt;&lt;br /&gt;Algo muy importante en este contrato es que NO se mencionen cuestiones Técnicas, no se dice si será un servicio web, una cola JMS (aunque muchos usuarios sienten que pueden recomendarte&lt;br /&gt;la solución &lt;span style="font-size:+0;"&gt;&lt;/span&gt;:S), etc... Este es tema de la segunda parte del contrato: la parte técnica.......&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Cualquier comentario, aportación, critica... bienvenido&lt;br /&gt;&lt;br /&gt;Por una integración mejor, hasta la vista !!!!!&lt;br /&gt;&lt;br /&gt;Tuzo&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-3301401886174844467?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/3301401886174844467/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=3301401886174844467' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/3301401886174844467'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/3301401886174844467'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2007/04/contratos-de-negocio-parte-1.html' title='Contratos de Negocio (Parte 1)'/><author><name>Tuzo</name><uri>http://www.blogger.com/profile/09903812629859341718</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='19' src='http://3.bp.blogspot.com/-MFoP4pie2t4/Tk6KPqbsMSI/AAAAAAAAAFk/olgrspFpC2I/s220/soa_innovation_lab-476x277.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-1252082163730401777</id><published>2007-04-12T19:51:00.000-06:00</published><updated>2007-04-12T20:10:42.747-06:00</updated><title type='text'>2do Congreso en TICs, Pachuca Hgo</title><content type='html'>Hola!!&lt;br /&gt;&lt;br /&gt;El dia 25 y 26 de Abril, &lt;a href="http://chilli-coder.blogspot.com/"&gt;Chillicoder &lt;/a&gt;y su &lt;a href="http://www.tuzoftware.com/"&gt;servidor&lt;/a&gt;, estaremos dando 2 platicas dentro del marco del &lt;a href="http://ceca.uaeh.edu.mx/congreso/"&gt;2do Congreso Universitario en Tecnologias y Comunicaciones&lt;/a&gt;, a celebrarse en la cd de Pachuca Hidalgo, por cierto quiero agradecer al &lt;span style="font-style: italic;"&gt;Mtro. Heriberto Garcia Islas&lt;/span&gt; por habernos invitado.&lt;br /&gt;&lt;br /&gt;Seran &lt;a href="http://ceca.uaeh.edu.mx/congreso/conferencias.php"&gt;dos platicas &lt;/a&gt;una la dara Martin, en la que tratara temas de &lt;a href="http://es.wikipedia.org/wiki/Proyecto_Mono"&gt;Mono &lt;/a&gt;y otra que dare yo, en la que hablare de &lt;a href="http://integramx.blogspot.com/2007/03/esb-or-not-esb.html"&gt;ESB &lt;/a&gt;y cuestiones de integracion...&lt;br /&gt;&lt;br /&gt;Si tienen oportunidad de ir al congreso estan invitados, la entrada es gratuita, solo que no tendran acceso a los materiales de las ponencias.. si quieren tener el material, solo se mochan con 100 pesos para la entrada.&lt;br /&gt;&lt;br /&gt;Saludos !!!!&lt;br /&gt;&lt;br /&gt;Tuzo&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-1252082163730401777?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/1252082163730401777/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=1252082163730401777' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/1252082163730401777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/1252082163730401777'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2007/04/2do-congreso-en-tics-pachuca-hgo.html' title='2do Congreso en TICs, Pachuca Hgo'/><author><name>Tuzo</name><uri>http://www.blogger.com/profile/09903812629859341718</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='19' src='http://3.bp.blogspot.com/-MFoP4pie2t4/Tk6KPqbsMSI/AAAAAAAAAFk/olgrspFpC2I/s220/soa_innovation_lab-476x277.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-2472681005096002413</id><published>2007-04-10T08:17:00.000-06:00</published><updated>2007-05-04T09:12:39.650-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><title type='text'>SOA Maturity Model</title><content type='html'>De nuevo dando lata¡&lt;br /&gt;&lt;br /&gt;¿Es posible medir el nivel de madurez SOA? ....&lt;br /&gt;&lt;br /&gt;Hace un tiempo revisando algunos articulos de &lt;a href="http://en.wikipedia.org/wiki/Service-oriented_architecture"&gt;SOA &lt;/a&gt;y &lt;a href="http://integramx.blogspot.com/2007/03/esb-or-not-esb.html"&gt;ESB&lt;/a&gt;, me encontre con un white paper acerca de &lt;a href="http://www.sonicsoftware.com/solutions/service_oriented_architecture/soa_maturity_model/index.ssp"&gt;SOA Maturity Model&lt;/a&gt;, en él hablan de un modelo que te ayuda a "medir" el nivel de madurez SOA. Como se daran cuenta, este modelo tiene una relacion directa con los 5 niveles de &lt;a href="http://es.wikipedia.org/wiki/Modelo_de_Capacidad_y_Madurez"&gt;CMM&lt;/a&gt;, solo que el modelo del que les hablo esta mas aterrizado a cuestiones tecnicas de SOA.&lt;br /&gt;&lt;br /&gt;Muchas cosas con las que he trabajado y otras de las que habia oido hablar (ESB, BAM, BPM, &lt;a href="http://en.wikipedia.org/wiki/BPEL"&gt;BPEL &lt;/a&gt;etc) hicieron sentido cuando revise el modelo de madurez.&lt;br /&gt;&lt;br /&gt;El modelo se compone de 5 niveles...&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Initial Services&lt;/span&gt;: Indica fases de exploracion y adopcion SOA, se logra que en los proyectos de desarrollo se integre SOA como parte de la arquitectura, se utilizan como estandar &lt;a href="http://www.w3.org/TR/wsdl"&gt;WSDL&lt;/a&gt;, &lt;a href="http://es.wikipedia.org/wiki/SOAP"&gt;SOAP&lt;/a&gt;, J2EE y .NET, en este nivel existen servicios creados para necesidades inmediatas NO para servicios de negocio&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Architected Services&lt;/span&gt;: En este nivel entra la mediacion de servicios, ¿les suena a ESB?, en efecto, aqui entra en juego las caracteristicas de un ESB, mensajeria confiable (&lt;a href="http://www.oasis-open.org/committees/wsrm/"&gt;WS-RM&lt;/a&gt;), transformacion (&lt;a href="http://www.w3.org/TR/xquery/"&gt;Xquery&lt;/a&gt;), etc.. ademas de contar con un registros de los servicios como lo es UDDI. En este nivel se encuentra la integracion a bases de datos mediante &lt;a href="http://www.ebizq.net/topics/eii/features/4371.html"&gt;EII&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Business Services/Collaborative Services&lt;/span&gt;: Aqui entra en juego un punto de vista importante de los usuarios: EL NEGOCIO. Para estar en este nivel, ya se debe contar con el desarrollo de &lt;span style="FONT-STYLE: italic"&gt;servicios de negocio&lt;/span&gt;. Existe tambien la &lt;span style="FONT-STYLE: italic"&gt;colaboracion&lt;/span&gt; de servicios para lograr &lt;span style="FONT-STYLE: italic"&gt;procesos &lt;/span&gt;que den mayor sentido a la organizacion, aqui es donde hace sentido lo que se conoce como &lt;a href="http://en.wikipedia.org/wiki/Business_process_management"&gt;Business Process Management&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Mesuared Business Services&lt;/span&gt;: Aqui en punto principal es el monitoreo de procesos.. tal como lo marca &lt;a href="http://en.wikipedia.org/wiki/Business_activity_monitoring"&gt;Business Activity Monitoring&lt;/a&gt;, por ejemplo &lt;a href="http://www.proactivityinc.com/"&gt;proactivity &lt;/a&gt;es uno de ellos. En este nivel puedes tener metricas de los procesos de negocio basados en servicios ;)&lt;/li&gt;&lt;li&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Optimized Business Services&lt;/span&gt;: como el nombre lo dice... ya que logarste tener metricas, viene la optimizacion de los procesos de negocio, aqui entra una cultura de mejoramiento continuo.&lt;/li&gt;&lt;/ul&gt;Como veran muchos estamos en el nivel 1 o quizás 2, lo cual me dice que hay mucho trabajo que hacer.....&lt;br /&gt;&lt;br /&gt;Comentarios bienvenidos.&lt;br /&gt;&lt;br /&gt;Por una integracion mejor, hasta la vista !!!!!!&lt;br /&gt;&lt;br /&gt;Tuzo&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-2472681005096002413?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/2472681005096002413/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=2472681005096002413' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/2472681005096002413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/2472681005096002413'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2007/04/soa-maturity-model.html' title='SOA Maturity Model'/><author><name>Tuzo</name><uri>http://www.blogger.com/profile/09903812629859341718</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='19' src='http://3.bp.blogspot.com/-MFoP4pie2t4/Tk6KPqbsMSI/AAAAAAAAAFk/olgrspFpC2I/s220/soa_innovation_lab-476x277.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-2093378884236195416</id><published>2007-04-04T08:31:00.000-06:00</published><updated>2007-05-04T09:12:09.039-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='integration'/><category scheme='http://www.blogger.com/atom/ns#' term='patterns'/><title type='text'>competing consumers</title><content type='html'>Hola mis dos lectores!!!! otra vez por aqui dando lata :D&lt;br /&gt;&lt;br /&gt;Hace mas de año y medio (o quiza dos :D) cuando el proyecto de interoperabilidad empezo a tener mayor credibilidad en nuestra coordinacion (convencer.... sigue siendo un trabajo harto dificil, tema de otro post :D), nos llegaron una serie de solicitudes para realizar integracion con aplicaciones escritas en COBOL dentro del IBM Mainframe....ejemplificaré el caso de la consulta de los datos de un asegurado.&lt;br /&gt;&lt;br /&gt;Teniamos (y seguimos teniendo) una serie de restricciones para el uso de esos sistemas, una de ellas quizá la que motivo este post, es que los usuarios que nos proporcionan para el acceso al sistema en COBOL NO son multisesion.&lt;br /&gt;&lt;br /&gt;El resumen de restricciones significativas en el diseño son:&lt;br /&gt;&lt;br /&gt;+ Numero limitado de usuarios para consulta, p.e. 10 usuarios&lt;br /&gt;+ La interfaz debe de ser sincrona&lt;br /&gt;+ Los usuarios no son multisesion&lt;br /&gt;+ El usuario COBOL sera revocado, si el sistema en COBOL detecta que se han tratado de conectar el usuario dos veces en el mismo periodo de tiempo&lt;br /&gt;&lt;br /&gt;Bien, pues nuevamente recurriendo al libro &lt;span style="FONT-STYLE: italic"&gt;enterprise integration patterns&lt;/span&gt;, encontramos el patron &lt;a href="http://www.enterpriseintegrationpatterns.com/CompetingConsumers.html"&gt;&lt;span style="FONT-STYLE: italic"&gt;competing consumers&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Como podran ver en la documentacion, este patron permite compartir una Cola JMS entre varios consumidores, de manera que puedes controlar el numero de consumidores y ejecutar tareas en paralelo por cada consumo de mensaje. De esta manera atacamos la restriccion del numero limitado de usuarios, asi como la garantia de que solo el usuario este firmado en un mismo instante de tiempo dentro de la aplicacion COBOL.&lt;br /&gt;&lt;br /&gt;El diseño final quedo de la siguiente manera:&lt;br /&gt;&lt;br /&gt;&lt;div style="TEXT-ALIGN: center"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_QXKiOP-oRG8/RhPE1pLtB0I/AAAAAAAAAAs/3py6ghha1hM/s1600-h/SINDO.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5049596033079510850" style="CURSOR: pointer" alt="" src="http://bp0.blogger.com/_QXKiOP-oRG8/RhPE1pLtB0I/AAAAAAAAAAs/3py6ghha1hM/s320/SINDO.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Paso 0: Cuando se arranca el servidor, se cargan las &lt;a href="http://edocs.bea.com/wls/docs81/ConsoleHelp/startup_shutdown.html"&gt;startup classes&lt;/a&gt;, en las cuales se levantan los N numero de threads de acuerdo al numero de usuarios con los que contemos, en la base de datos se encuentran las contraseñas para cada usuario.&lt;br /&gt;Paso 1: El web service recibe la peticion y genera el mensaje que se enviara a la cola JMS&lt;br /&gt;Paso 2: El web service genera una &lt;a href="http://java.sun.com/j2ee/1.4/docs/api/javax/jms/TemporaryQueue.html"&gt;queue temporal&lt;/a&gt; en la cual recibira la respuesta&lt;br /&gt;Paso 3: El Web service agrega al mensaje el objeto de la &lt;span style="FONT-STYLE: italic"&gt;cola temporal&lt;/span&gt; y &lt;span style="FONT-STYLE: italic"&gt;publica &lt;/span&gt;el mensaje en la cola JMS&lt;br /&gt;Paso 4: El Web service se suscribe a la &lt;span style="FONT-STYLE: italic"&gt;cola temporal&lt;/span&gt; que genero en espera de la respuesta&lt;br /&gt;Paso 5: El thread que este disponible recibe la peticion y con las clases de negocio descompone el mensaje para enviarlo via &lt;a href="http://www.iwaysoftware.com/products/adapters/3270.html"&gt;Iway 3270&lt;/a&gt; al mainframe&lt;br /&gt;Paso 6: Mediante el adaptador se navega en la aplicacion y se obtiene el resultado de negocio&lt;br /&gt;Paso 7: El thread obtiene el objeto de la cola temporal en donde va a depositar la respuesta, genera el mensaje de regreso y lo publica a la cola temporal&lt;br /&gt;Paso 8: El web service obtiene el mensaje de su cola temporal suscrito y procesa la salida final al usuario.&lt;br /&gt;&lt;br /&gt;Listo!&lt;br /&gt;&lt;br /&gt;Pues asi es como resolvimos el problema.. y se puso en accion el patron &lt;span style="FONT-STYLE: italic"&gt;competing consumers&lt;/span&gt;... de aqui surgio un nuevo rol dentro de nuestra area... el GSWD = Green Screen Wrapper Developer jejejeje&lt;br /&gt;&lt;br /&gt;Cualquier comentario bienvenido..&lt;br /&gt;&lt;br /&gt;Por una integracion mejor, hasta la vista.&lt;br /&gt;&lt;br /&gt;Saludos !!!&lt;br /&gt;&lt;br /&gt;Tuzo&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-2093378884236195416?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/2093378884236195416/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=2093378884236195416' title='2 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/2093378884236195416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/2093378884236195416'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2007/04/competing-consumers.html' title='competing consumers'/><author><name>Tuzo</name><uri>http://www.blogger.com/profile/09903812629859341718</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='19' src='http://3.bp.blogspot.com/-MFoP4pie2t4/Tk6KPqbsMSI/AAAAAAAAAFk/olgrspFpC2I/s220/soa_innovation_lab-476x277.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_QXKiOP-oRG8/RhPE1pLtB0I/AAAAAAAAAAs/3py6ghha1hM/s72-c/SINDO.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-39928639368762890</id><published>2007-03-30T08:49:00.000-06:00</published><updated>2007-05-04T09:11:49.190-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='integration'/><category scheme='http://www.blogger.com/atom/ns#' term='patterns'/><title type='text'>patterns in action ;)</title><content type='html'>De nuevo dando lata!!&lt;br /&gt;&lt;br /&gt;Hace unas semanas llegando al trabajo enciendo mi compu y veo un correo en donde me indican que una de las interfaces que recibe dictamenes y los envia a un sistema medico NO estaba funcionando... tranquilamente entro al solaris y al ver el log... oh sorpresa!! .. mis threads estaban atorados y un alegre conjunto de mensajes me decia:&lt;br /&gt;&lt;br /&gt;Mar 15, 2007 8:44:02 AM CST Error WebLogicServer BEA-000337 ExecuteThread: '14' for queue: 'weblogic.kernel.Default' has been busy fo&lt;br /&gt;r "657" seconds working on the request "Http Request: /WSRecibeST1/recepcionST1.jws"&lt;br /&gt;&lt;br /&gt;.. a lo que tranquilamente me di a la tarea de reiniciar mi servidor pensando que con eso se resolveria el problema y una vez levantado revisar que fue lo que paso... je je je ¡oh sorpresa! los alegres mensajes de mis threads seguian saliendo.... y pense "Pus si mi interfaz ha estado operando en casi un año sin problemas..." asi es Tuzo, pero no con el volumen que mandaron esos dias..&lt;br /&gt;&lt;br /&gt;El diseño estaba de la siguiente manera:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="TEXT-ALIGN: center"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_QXKiOP-oRG8/Rgx2w4Bug2I/AAAAAAAAAAM/RsdMFicx2Ic/s1600-h/anterior.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5047539864420909922" style="CURSOR: pointer" alt="" src="http://bp3.blogger.com/_QXKiOP-oRG8/Rgx2w4Bug2I/AAAAAAAAAAM/RsdMFicx2Ic/s320/anterior.JPG" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;... el &lt;span style="FONT-STYLE: italic"&gt;proceso de envío de dictamenes&lt;/span&gt; envía un mensaje XML en formato &lt;a href="http://www.hl7.org/"&gt;HL7&lt;/a&gt;, el &lt;span style="FONT-STYLE: italic"&gt;servicio de integracion&lt;/span&gt; transforma el Xml a un formato de Java y lo envia al &lt;span style="FONT-STYLE: italic"&gt;endpoint del servicio &lt;a href="http://java.sun.com/javase/technologies/core/basic/rmi/whitepaper/index.jsp"&gt;RMI&lt;/a&gt;&lt;/span&gt;, ¿sencillo no?, en efecto pero con lo que no contaba, es que RMI necesita dos threads para procesar una peticion.. es decir por un thread atiende y en otro responde.. por lo que en el momento que me mandaron carga, mis threads de ejecucion se terminaron (tenía 15 :D) y RMI no me regresaba la respuesta hasta que no existiera un thread disponible.... asi que entre en un &lt;a href="http://en.wikipedia.org/wiki/Deadlock"&gt;deadlock&lt;/a&gt;..&lt;br /&gt;&lt;br /&gt;.. pues de alguna manera teniamos que resolver el problema: &lt;span style="FONT-STYLE: italic"&gt;controlar el numero de peticiones al servicio RMI&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Revisando el libro &lt;a href="http://www.enterpriseintegrationpatterns.com/"&gt;Enterprise Integration Patterns&lt;/a&gt;, se encuentra un patron llamado &lt;a href="http://www.enterpriseintegrationpatterns.com/CompetingConsumers.html"&gt;Competing Consumers&lt;/a&gt;, pensando en aplicar este patron para controlar el numero de threds que envia datos al servicio RMI, nos empezo a llegar la luz.&lt;br /&gt;&lt;br /&gt;Gustavo y su servilleta pensamos en utilizar la solucion de &lt;a href="http://www.bea.com/framework.jsp?CNT=index.htm&amp;FP=/content/products/aqualogic/service_bus/"&gt;Aqualogic Service Bus&lt;/a&gt; para este caso.... buscando en la documentacion de ALSB encontramos dos cosas A) el patron &lt;a href="http://edocs.bea.com/alsb/docs25/userguide/modelingmessageflow.html#wp1075921"&gt;throttling pattern&lt;/a&gt; que permite controlar el grado de concurrencia y B) el concepto &lt;a href="http://edocs.bea.com/wls/docs92/ConsoleHelp/pagehelp/Corecoreworkmanagerstitle.html"&gt;WorkManager&lt;/a&gt; que define restricciones de carga en threads, asi que nos pusimos manos a la obra y juntando lo anterior mas unas cuantas colas &lt;a href="http://java.sun.com/products/jms/"&gt;JMS&lt;/a&gt;, el resultado quedo en lo siguiente:&lt;br /&gt;&lt;br /&gt;&lt;div style="TEXT-ALIGN: center"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_QXKiOP-oRG8/RgyDkIBug5I/AAAAAAAAAAk/Q8uMlfvNr6s/s1600-h/actual.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5047553939028738962" style="CURSOR: pointer" alt="" src="http://bp0.blogger.com/_QXKiOP-oRG8/RgyDkIBug5I/AAAAAAAAAAk/Q8uMlfvNr6s/s320/actual.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="TEXT-ALIGN: center"&gt;&lt;img alt="" src="file:///C:/DOCUME%7E1/JAVIER%7E1.COR/CONFIG%7E1/Temp/moz-screenshot.jpg" /&gt;&lt;/div&gt;&lt;br /&gt;... el servicio envia el mensaje a un &lt;span style="FONT-STYLE: italic"&gt;proxy service&lt;/span&gt;, este lo almacena en una &lt;span style="FONT-STYLE: italic"&gt;cola JMS &lt;/span&gt;y libera la conexion, posteriomente un &lt;span style="FONT-STYLE: italic"&gt;suscriptor&lt;/span&gt; consume (de uno en uno) y ejecuta un &lt;span style="FONT-STYLE: italic"&gt;business service&lt;/span&gt; que se encarga de enviar (uno a uno) a la interfaz del &lt;span style="FONT-STYLE: italic"&gt;EAI &lt;/span&gt;para que esta envíe finalmente al servicio RMI. Para garantizar que nuestra solucion funcionaria en produccion, usamos &lt;a href="http://jakarta.apache.org/jmeter/"&gt;jmeter &lt;/a&gt;para enviar 600 mensajes y respondio sin problemas, enviando todos los mensajes en 1 minuto al servicio final.. como veran, con esta solucion es posible controlar el numero de peticiones al servicio final mediante los &lt;span style="FONT-STYLE: italic"&gt;WorkManagers&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Tambien pueden aplicar el patron &lt;span style="FONT-STYLE: italic"&gt;Competing Consumers&lt;/span&gt; y tendrian el mismo efecto, en algun momento les comentare como este patron nos resolvio un problema al conectarnos con servicios &lt;span style="FONT-STYLE: italic"&gt;Mainframe&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Pues esta fue la solucion aplicada..&lt;br /&gt;&lt;br /&gt;Comentarios y sugerencias son bienvenidos.&lt;br /&gt;&lt;br /&gt;Por una integracion mejor, hasta la vista&lt;br /&gt;&lt;br /&gt;Tuzo&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-39928639368762890?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/39928639368762890/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=39928639368762890' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/39928639368762890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/39928639368762890'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2007/03/patterns-in-action.html' title='patterns in action ;)'/><author><name>Tuzo</name><uri>http://www.blogger.com/profile/09903812629859341718</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='19' src='http://3.bp.blogspot.com/-MFoP4pie2t4/Tk6KPqbsMSI/AAAAAAAAAFk/olgrspFpC2I/s220/soa_innovation_lab-476x277.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_QXKiOP-oRG8/Rgx2w4Bug2I/AAAAAAAAAAM/RsdMFicx2Ic/s72-c/anterior.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-3274658998158352260</id><published>2007-03-29T08:25:00.001-06:00</published><updated>2007-05-04T09:10:51.989-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='ESB'/><title type='text'>ESB or not ESB?</title><content type='html'>Hola que tal! aqui de nuevo dando lata :D&lt;br /&gt;&lt;br /&gt;ESB or not ESB? jejeje, pues si efectivamente navegando por la red me he encontrado con algunas discusiones acerca de la &lt;a href="http://www.infoq.com/articles/ESB-Roundup-Part1-Defining-ESB"&gt;definicion de un ESB&lt;/a&gt; y pues me motivo a escribir este post... espero os sirva...&lt;br /&gt;&lt;br /&gt;Bien, pues el concepto de Enterprise Service Bus surge en Gartner en colaboracion con &lt;a href="http://webservices.sys-con.com/author/208chappell.htm"&gt;David Chapell&lt;/a&gt; (tipo con el cual tuvimos una &lt;a href="http://chilli-coder.blogspot.com/2006/04/marca-mata-experiencia.html"&gt;platica en el 2006&lt;/a&gt;). Actualmente el termino ESB es muy nombrado por sistemologos, peeroooo ¿realmente conocemos que es un ESB?&lt;br /&gt;&lt;br /&gt;En terminos practicos un ESB es una implementacion de &lt;a href="http://en.wikipedia.org/wiki/Service-oriented_architecture"&gt;SOA&lt;/a&gt;, en palabras cristianas es: conectar un cliente y un proveedor mediante un middleware... veamos a mas detalle&lt;br /&gt;&lt;br /&gt;Para entender que es un ESB, es necesario saber primeramente que es lo que hace. La manera en que me "cayo el veinte" es entendiendo el patron de integracion &lt;a href="http://webservices.sys-con.com/read/46170.htm"&gt;VETRO pattern&lt;/a&gt;, culaquier software o hardware que se diga ser un ESB, al menos debe de cumplir con este patron, como Jack el destripador vayamos por partes.....&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Validation:&lt;/span&gt; Se encarga de realizar la validacion de mensajes que entran al ESB, esta validacion es generalmente basada en estandares, por ejemplo validar el XML de entrada contra su respectivo XSD&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Enrichment&lt;/span&gt;: Esta parte es la encargada de enriquecer el mensaje inicial del cliente con informacion necesaria para la invocacion del servicio final. En la mayoria de las ocasiones este enriquecimiento es generado en llamadas a servicios de negocio y adicionando informacion al mensaje&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Transformation&lt;/span&gt;: Esta parte es la encargada de transformar el mensaje original a otro formato que sea necesario por el servicio final, por ejemplo utilizar Xquery para trasformaciones entre archivos XML&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Routing&lt;/span&gt;: Esta parte es muy interesante, es la encargada de rutear el mensaje a diferentes servicios de acuerdo al contenido o a la operacion o inclusive se pueden tener tablas de ruteo&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Operate&lt;/span&gt;: Es la parte final, la que se encarga de comunicarse con el servicio final, es decir se conecta con los servicios de negocio.&lt;br /&gt;&lt;br /&gt;Adicional a el patron VETRO agregare unos puntos harto importantes:&lt;br /&gt;&lt;br /&gt;+ Un ESB es &lt;span style="FONT-WEIGHT: bold"&gt;distribuido&lt;/span&gt;, es decir no es el clasico &lt;a href="http://en.wikipedia.org/wiki/Spoke-hub_distribution_paradigm"&gt;hub and spoke&lt;/a&gt;, un ESB se puede distribuir en toda la red fisica.&lt;br /&gt;+ Esta basado en un sistema de &lt;a href="http://www.enterpriseintegrationpatterns.com/MessageChannel.html"&gt;&lt;span style="font-size:+0;"&gt;mensajeria &lt;/span&gt;&lt;/a&gt;o &lt;a href="http://www.middleware.org/general/mqm.html"&gt;Message Oriented Middleware&lt;/a&gt;, lo cual permite manejar muchos escenarios de manera asincrona.&lt;br /&gt;+ Permite el &lt;span style="FONT-WEIGHT: bold"&gt;monitoreo de niveles de servicio&lt;/span&gt; de cada uno de los servicios pertenecientes al ESB&lt;br /&gt;+ Permite controlar la &lt;span style="FONT-WEIGHT: bold"&gt;calidad de servicio&lt;/span&gt; y la &lt;span style="FONT-WEIGHT: bold"&gt;calidad de proteccion&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:+0;"&gt;Actualmente existen una cantidad considerable de ESB de "marca" y open source&lt;/span&gt;, aqui una list&lt;span style="TEXT-DECORATION: underline"&gt;a&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;+&lt;a href="http://www.sonicsoftware.com/products/docs/sonic_esb_es.pdf"&gt; Sonic MQ&lt;/a&gt;&lt;br /&gt;+&lt;a href="http://www.bea.com/content/news_events/white_papers/BEA_AQL_ServiceBus_wp.pdf"&gt; BEA Aqualogic Service Bus&lt;/a&gt;, es el que usamos aqui en el trabajo :D&lt;br /&gt;+&lt;a href="http://mule.codehaus.org/"&gt; Mule ESB&lt;/a&gt;, tambien existente en nuestra arquitectura :D&lt;br /&gt;+ &lt;a href="http://www.ionaceltix.com/"&gt;IONA Celtix ESB&lt;/a&gt;&lt;br /&gt;+ &lt;a href="http://incubator.apache.org/servicemix/"&gt;Apache ServiceMix&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Para finalizar quiero compartir con ustedes este podcast de &lt;span style="FONT-STYLE: italic"&gt;Mark Richards Senior IT architect de IBM&lt;/span&gt;, titulado &lt;a href="http://media.techtarget.com/TheServerSideCOM/downloads/TSSJS_Richards_02_27_2007.mp3?track=NL-670&amp;ad=582367&amp;amp;asrc=EM_UTC_1088758&amp;uid=5969062"&gt;&lt;span style="font-size:larger;"&gt;The Enterprise Service Bus: Do We Really Need It?,&lt;/span&gt;&lt;/a&gt; espero les guste, si no jala el link me dicen, :D&lt;br /&gt;&lt;br /&gt;Bueno pues es todo, si me falto algo bienvenido...&lt;br /&gt;&lt;br /&gt;Por una integracion mejor, hasta la vista&lt;br /&gt;&lt;br /&gt;Tuzo&lt;br /&gt;&lt;a href="http://media.techtarget.com/TheServerSideCOM/downloads/TSSJS_Richards_02_27_2007.mp3?track=NL-670&amp;amp;ad=582367&amp;asrc=EM_UTC_1088758&amp;amp;uid=5969062"&gt;&lt;span style="font-size:larger;"&gt;&lt;span style="FONT-WEIGHT: bold"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-3274658998158352260?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/3274658998158352260/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=3274658998158352260' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/3274658998158352260'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/3274658998158352260'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2007/03/esb-or-not-esb.html' title='ESB or not ESB?'/><author><name>Tuzo</name><uri>http://www.blogger.com/profile/09903812629859341718</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='19' src='http://3.bp.blogspot.com/-MFoP4pie2t4/Tk6KPqbsMSI/AAAAAAAAAFk/olgrspFpC2I/s220/soa_innovation_lab-476x277.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3139781682677432277.post-6754386117143449378</id><published>2007-03-20T09:31:00.000-06:00</published><updated>2007-03-22T12:53:54.532-06:00</updated><title type='text'>Por una integracion mejor... :D</title><content type='html'>Hola, pues "eme" aqui realizando mi primer post (siempre hay una primera vez :D).&lt;br /&gt;&lt;br /&gt;Antes que nada quiero agradecer al gran Guayusei, Conejo Lobo o mejor conocido mundialmente como &lt;a href="http://chilli-coder.blogspot.com/"&gt;ChilliCoder&lt;/a&gt; el mismisimo Martin Trejo :D y a aun excelente amigo y mejor persona Gustavo de la Cruz Tovar  por haberme invitado a participar en este proyecto de integracion a la mexicana, en el que que tratare de aportar la experiencia ganada en estos asuntos de integracion o si no al menos confundirlos mas ;)&lt;br /&gt;&lt;br /&gt;Pues zapatero a tus zapatos, ¿cuantas veces hemos escuchado hablar de integracion de sistemas? apuesto que mas de uno de nosotros nos ha tocado "Integrar Sistemas". Pues en efecto,  estamos rodeados de sistemas que por decirlo de alguna manera mas "nice"... son &lt;span style="font-weight: bold;"&gt;heterogeneos &lt;/span&gt;(palabra que no usaba desde la facultad :D), en palabras mortales quiere decir que.. hoy dia existen sistemas desarrollados en multiples &lt;span style="font-style: italic;"&gt;plataformas&lt;/span&gt;, utilizando multiples &lt;span style="font-style: italic;"&gt;protocolos &lt;/span&gt;y multiples &lt;span style="font-style: italic;"&gt;lenguajes&lt;/span&gt;,  lo interesante del caso es que en la mayoria de los escenarios surge la &lt;span style="font-weight: bold;"&gt;necesidad &lt;/span&gt;de &lt;span style="font-weight: bold;"&gt;compartir informacion&lt;/span&gt;... de  &lt;span style="font-weight: bold;"&gt;interoperar&lt;/span&gt;..... aun mas sorprendente es, que en la mayoria de las soluciones los "integradores" fuman "pasto" para resolver esa necesidad y se crean unas interfaces que ya se deben de imaginar.&lt;br /&gt;&lt;br /&gt;Hay muchas cuestiones a tomar en cuenta al integrar sistemas: &lt;span style="font-style: italic;"&gt;niveles de servicio&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;seguridad&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;volumen de informacion&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;procesos en linea o batch&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;procesos sincronos o asincronos&lt;/span&gt;... en fin iremos viendo poco a poco casos en los cuales se tocan algunos de estos aspectos.&lt;br /&gt;&lt;br /&gt;Les recomiendo ampliamente que consigan el libro &lt;a href="http://www.enterpriseintegrationpatterns.com/"&gt;Enterprise Integrations Patterns&lt;/a&gt; de &lt;span style="font-style: italic;"&gt;Gregor Hohpe&lt;/span&gt; and &lt;span style="font-style: italic;"&gt;Bobby Woolf, &lt;/span&gt;para nosotros nuestra biblia :D, muchos de los patrones mostrados en este libro son utilizados en conceptos como el &lt;a href="http://en.wikipedia.org/wiki/Enterprise_service_bus"&gt;Enterprise Service Bus&lt;/a&gt; de &lt;span style="font-style: italic;"&gt;David Chappel&lt;/span&gt;, ya llegara su momento de hablar del ESB.&lt;br /&gt;&lt;br /&gt;Bueno pues inicia un nuevo proyecto... asi que manos a la obra..&lt;br /&gt;&lt;br /&gt;Por una integracion mejor, hasta la vista.&lt;br /&gt;&lt;br /&gt;Tuzo&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3139781682677432277-6754386117143449378?l=integramx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://integramx.blogspot.com/feeds/6754386117143449378/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3139781682677432277&amp;postID=6754386117143449378' title='5 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/6754386117143449378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3139781682677432277/posts/default/6754386117143449378'/><link rel='alternate' type='text/html' href='http://integramx.blogspot.com/2007/03/por-una-integracion-mejor-d.html' title='Por una integracion mejor... :D'/><author><name>Tuzo</name><uri>http://www.blogger.com/profile/09903812629859341718</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='19' src='http://3.bp.blogspot.com/-MFoP4pie2t4/Tk6KPqbsMSI/AAAAAAAAAFk/olgrspFpC2I/s220/soa_innovation_lab-476x277.jpg'/></author><thr:total>5</thr:total></entry></feed>
