Mancomún

OpenESB: Caso de uso na Xunta de Galicia

Sábado, 16 Xaneiro 2016

Neste artigo presentamos un caso de uso dunha ferramenta de Software Libre, como é OpenESB, e que está implantada na Xunta de Galicia, demostrándose como un caso de éxito de implantación de Software Libre nunha administración pública.

Para presentar este caso de uso contamos con dúas voces expertas, por un lado Alejandro Casas, Xerente de proxectos de Traballo e Emprego na Área de Solucións Tecnolóxicas Sectoriais da AMTEGA (Xunta de Galicia), responsable da implantación do proxecto en Xunta e con Paul Perez, cabeza visible da comunidade de OpenESB, a quen puidemos entrevistar, aproveitando a súa visita a Galicia co gallo do curso realizado no CNTG sobre OpenESB e que veu a supervisar.

OpenESB

OpenESB é un bus de servizos empresariais, de aí as siglas ESB, en inglés Enterprise Service Bus, escrito na linguaxe de programación Java e publicado como Software Libre baixo a licenza CDDL (Common Development and Distribution License).

Para entendernos, un software de ESB o que permite é que haxa unha comunicación entre as diferentes aplicacións que forman parte da lóxica de negocio dunha empresa ou entidade, de xeito que cando se fai unha operación nunha delas, se poida transmitir unha mensaxe con certa información que outra aplicación recollerá e procesará.

Foi deseñado e desenvolvido inicialmente por Sun Microsystems ata o ano 2010, momento no cal, despois da compra desta por Oracle e ante a perspectiva de que o proxecto non ía ser continuado fundouse a actual comunidade de Software Libre que a día de hoxe segue a impulsar o mesmo.

OpenESB na Xunta de Galicia

A implementación de OpenESB na Xunta de Galicia localízase na Xerencia de Traballo e Emprego, e permite a comunicación entre os diferentes sistemas de emprego, facilitando a integración entre diferentes aplicacións.

Para contar máis polo miúdo este caso de uso, entrevistamos a Alejandro Casas quen nos explicou máis en detalle para que se está empregando OpenESB, como foi a súa implantación e que vantaxes supuxo a mesma.

En que se está a empregar OpenESB na Xunta de Galicia?

O OpenESB estase a empregar na Xerencia de emprego e traballo como elemento integrador dos procesos de negocios comúns entre todos os sistemas de emprego. O dispor dun bus de integración facilita o desacoplamento de aplicacións, mellora a escalabilidade e facilita a integración.

Un ESB permite crear unha capa de abstracción e a creación de ligazóns débiles entre os consumidores e os produtores de información. Esta ligazón establécese a través do denominado “contrato”. Un bo contrato unicamente ten información de proceso de negocio, o que facilita o desacoplamento.

O OpenESB focaliza o 99% da súa potencialidade en estándares (JBI, BPEL) o que permite aproveitar todos os desenvolvementos nesas tecnoloxías. Os desenvolvementos en BPEL poden portarse a outros motores BPM que soporten o mesmo estándar con lixeiros cambios derivados das particularidades de cada produto. O uso de estándares é unha vantaxe do OpenESB fronte a outros ESB que implementan tecnoloxías propias dun fabricante.

O uso de estándares permite ademais que a construción das CA (Composite Aplications) sexan realizadas polo sistema de integración continua, (maven, jenkins) estandarizando o proceso de construción e independizándoa do equipo de traballo do programador.

O OpenESB ao contrario que outros ESB , que dispoñen dun ESB (intercambiador de mensaxes) separado dun motor de procesos (BMP), o OpenESB dispón dun BMP integrado. Esta arquitectura facilita iniciar un proceso de negocio (BPEL) dende calquera tipo de entrada (Binding component – WS,FTP,MQ,etc) e que resolva o proceso a través de calquera tipo de saída. Ademais, esta solución permite controlar e activar as compensacións ante un fallo dun dos procesos orquestrados, sen perder o contexto do proceso.

A implantación de OpenESB substitúe a outra solución previa? Se é así, esa solución era privativa ou tamén libre? Que melloras aporta OpenESB?

O OpenESB substitúe ao JCAPS que era comercializado por Sun MicroSystems. O JCAPS era a versión comercial do OpenESB. A raíz da desaparición de Sun, o produto JCAPS competía directamente cos propios de Oracle, o Aqualogic e o Oracle SOA e foi integrado neles.

A migración dende o JCAPS ao OpenESB foi sinxela, todas aquelas CA (Composite Aplication) desenvolvidas correctamente foron migradas directamente, e houbo que retocar un pouco aquelas que aplicaron solucións “imaxinativas”.

O OpenESB na súa distribución actual permite a súa execución nunha configuración stand-alone o sobre un servidor de aplicacións. O OpenESB esta certificado entre outros para RedHat Enterprise v5, v6 e v7.

Nós utilizamos a versión stand-alone, xa que nos libera da xestión do contedor de aplicacións. A mellora de rendemento fronte a solución previa en algúns casos é do 40% no noso contorno. Este incremento, ao igual que en calquera outro software, pode verse prexudicado por un mal desenvolvemento.

Teñen contratado soporte comercial? Se é así, foilles complicado atopar provedores?

Non temos contratado directamente un soporte comercial, pero si contamos cos contactos axeitados dentro das empresas que prestan soporte (Pymma e LogiCoy) e cos seus desenvolvedores para poder arranxar calquera problemas que xurda.

Paul Perez e o seu equipo viñeron durante o 2015 varias veces á Xunta para auditar, revisar, optimizar os elementos da nosa infraestrutura.

Os nosos produtos son os da comunidade, e revisados por unha das empresas que da soporte comercial.

Senón teñen soporte comercial, como valora o soporte da comunidade?

O soporte da comunidade é bo, non é una comunidade demasiado extensa, xa que é un produto cunha aplicación moi específica pero sempre que requirimos axuda a recibimos.

Teñen feitos novos desenvolvementos ou adaptacións sobre OpenESB? Se é así, intentaron revertelos na comunidade? Como foi o proceso?

Nós non facemos desenvolvementos sobre o ESB que teñan interese para a comunidade, e non permitimos adaptacións dos produtos “base” por ningún provedor, xa que potencialmente poden complicar o rendemento e as futuras migracións. En calquera caso sempre invitamos aos nosos provedores a que desenvolvan para a comunidade e se consideran que o sistema ten un bug que o comunique e que colabore na súa resolución.

OpenESB: Pasado, presente e futuro

Para coñecer máis sobre OpenESB e toda a comunidade de Software Libre que naceu ao seu redor, entrevistamos tamén a Paul Perez, a súa cabeza visible, quen estivo por Galicia, traballando na integración do proxecto en Xunta e supervisando o curso sobre o mesmo que se impartiu no Centro de Novas Tecnoloxías de Galicia (CNTG).

Paul Perez é actualmente o arquitecto software principal na empresa Pymma e líder da comunidade de Software Libre de OpenESB. Paul é arquitecto de software, consultor, autor e conferenciante, con máis de 17 anos de experiencia axudando a entidades cos seus sistemas informáticos. Antes de traballar en Pymma, Paul foi consultor independente e traballou para varias compañías de servizos financeiros en Francia, Reino Unido, Países Baixos e Alemaña, onde a súa experiencia en integración de servizos e mellora de rendemento axudou a estas compañías e aos seus clientes a solucionar os seus problemas de negocio no mundo real a través da tecnoloxía.

Que problemas resolve OpenESB e cara quen está orientada esta solución?

OpenESB é un ESB (Entreprise Services Bus), o que significa que axuda a deseñar e implementar novos servizos ou procesos de negocio creando servizos novos ou empregando os xa definidos na súa compañía ou provedores externos. Servizos e negocios comunícanse a través dunha entidade denominada Bus. Este bus actúa como intermediario reducindo a dependencia entre servizos ou entre servizos e procesos o que permite a reutilización. Enterprise significa que está pensado para calquera tipo de aplicación, dende prototipos ata aplicacións empresariais complexas.

OpenESB consta dunha serie de ferramentas orientadas a definición de servizos e procesos de negocio, conseguindo que os equipos de negocio e informática traballen de xeito coordinado.

Cal é o estado de madurez e funcionalidades de OpenESB se o comparamos con outras alternativas privativas?

O panorama actual pódese dividir en dúas partes, por un lado pódense atopar solucións complexas de fabricantes como IBM, Oracle, SAP, WebMethod ou outros. Eles ofreces unha boa integración de software normalmente da man de bastantes e caros produtos adicionais. Oracle SOA é un bo exemplo disto, xa que para empregala precisase tamén unha base de datos Oracle e un servidor de aplicacións WebLogic. Polo tanto, estes produtos están orientados a proxectos cun financiamento moi elevado.

Por outro lado, pódense atopar solucións open source como Mule, WSO2, ServiceMix ou Jboss Fuse. Estes produtos son bos, de fiar e sinxelos de aprender. Están baseados en conceptos como enrutamento de mensaxes ou patróns de deseño, pero non están pensados realmente para procesos complexos e non promoven a orientación a servizos. A súa metodoloxía é pobre e non ofrecen confianza para un proxecto a largo prazo.

OpenESB pola súa parte, toma as vantaxes dos dous mundos. Por un lado foi creado por Sun Microystems, o cal lle da unha confiabilidade elevada, metodoloxía sofisticada e ferramentas eficientes. OpenESB é coñecido polo seu excelente rendemento e un alto retorno da inversión. Representa máis de 2000 horas de desenvolvemento ao ano e é empregado por grandes compañías como Airbus, General Electric, Xunta de Galicia, NHS (UK National Insurance) e outras. Cada día OpenESB procesa billóns de mensaxes en produción.

Que vantaxes supoñen para OpenESB ser Software Libre?

En Inglés Libre (Free) ten dous significados. O primeiro vén de liberdade e significa que podes acceder ao software tanto como precises. O segundo significa que non tes que pagar por el. Por que mentirnos a nós mesmos, a segunda definición é a máis importante para empresas e organizacións gobernamentais. Ser Software Libre abriu moitas portas e oportunidades a OpenESB.

Que alternativas de soporte profesional existen para adoptar OpenESB?

Existe un moi completo foro de OpenESB en Nabble, onde todo o mundo pode enviar problemas ou preguntas. Máis do 90% das preguntas atopan unha resposta. O restante 10% vén de xente que non é capaz de dar a información suficiente para que se poida resolver o seu caso. Recentemente tivemos unha compañía que nos dixo que puxeran en produción OpenESB e que despois de 4-5 días os servizos despregados se volveron lentos.

É imposible para a comunidade responder a iso. Eles non foron quen de extraer a información do seu caso e expoñer un problema reproducible, nese caso é requirido un soporte externo.

No mes de Outubro, cumpríronse 5 anos da fundación da comunidade de OpenESB (Outubro 2010 en Bruxelas). Cal é o seu sentimento ata agora?

En primeiro lugar, ten que comprender que a comunidade non naceu de cero, pero recibiu millóns de liñas de código sen infraestrutura dispoñible. Debido a que os desenvolvedores de Sun Microsystems seguiron traballando para Oracle, ningún estaba dispoñible para explicarnos como se organizaba o proxecto. Este foi un bo regalo de Sun, pero difícil de entender e manexar.

Grazas ao equipo de Sun en Rusia (que se moveu a Oracle máis tarde), fomos capaces de empezar a comprender como funcionaba todo ese código. Investimos os primeiros anos reconstruíndo a infraestrutura de desenvolvemento. (Grazas a Nicolas).

Ademais, como probablemente saiban, OpenESB estaba integrado coa aplicación de servidor Glassfish. Xusto despois de arrancar a comunidade, decatámonos que a aplicación de servidor era un handicap para OpenESB. Este punto de vista non era compartido por toda a comunidade pero moitos de nós non podíamos imaxinar unha solución deste estilo sen unha aplicación de servidor.

Sen embargo, decidimos cortar o cordón umbilical entre OpenESB e Glassfish e decidimos focalizar os nosos esforzos neste obxectivo. Despois de dous anos e un grande esforzo pola nosa parte (Grazas a David) lanzamos a primeira versión standalone de OpenESB o ano pasado. Isto foi unha grande mellora para OpenESB.

Hoxe en día, a edición standalone de OpenESB é un produto lixeiro e consume poucos recursos de memoria. Pode funcionar mesmo nunha raspberry PI con 300 MB. É un 50% máis rápida que a versión previa.

Durante estes 5 anos, obtivemos unha grande madurez na forma de traballar e desenvolver OpenESB en calquera tamaño de proxecto. Penso que esta habilidade é única no mercado.

Como se xestiona a comunidade de OpenESB?

Dende o principio empregamos a mesma regra. Os actores máis comprometidos co proxecto son os quen o lideran. Ata o momento, Pymma que é a compañía máis comprometida co proxecto OpenESB ten a responsabilidade sobre a consistencia do código. Outras compañías como Vico en España, Logicoy na India están involucradas no proxecto e colaboran mellorándoo. Sen embargo, todo o mundo que quere engadir unha funcionalidade ou mellorar o código fonte, pode facelo. Recentemente, engadimos soporte para a base de datos H2, a través dunha colaboración dun usuario de Sudamérica. Gustaríame ter a oportunidade de dicirlle ao lector: O código fonte de OpenESB está dispoñible no noso repositorio Git, vostede pode melloralo. Sabemos que o código de OpenESB é impactante. Se quere facer calquera mellora, non sexa tímido, envíenola, será revisada e engadida se cumpre os criterios de calidade.

Que supuxo o cambio de modelo dun produto liderado por unha compañía, Sun Microsystems, a ser un proxecto de comunidade?

Cando Sun Microsystems se fusionou con Oracle, OpenESB era un proxecto de código aberto xestionado por Sun. En 2010, estaba claro para todo o mundo que Oracle non mantería o proxecto vivo ou polo menos non investiría nin un céntimo no mesmo. Alertados polos empregados de Sun, fomos informados que Oracle movía os seus recursos de OpenESB cara os seus produtos SOA. Pymma decidiu aceptar o reto e tomar o liderado da comunidade xunto con outros usuarios de todo o mundo. Gustaríame engadir un comentario e dicir que dende 2010, Oracle actuou moi limpamente e non xerou ningún problema na comunidade.

Botemos agora unha ollada cara adiante, como ve o futuro de OpenESB?

OpenESB ten un gran potencial e moitas Teses móstrannos o que podemos facer cando empuxamos o produto cara adiante. OpenESB standalone funciona ben coa nova arquitectura empregando máquinas virtuais ou contedores como Docker. Empezamos a traballar en como OpenESB pode prover servizos na Internet das cousas. É un reto interesante trasladar os conceptos de OpenESB a ese mundo.

Despois de varios días en Galicia, cal é a súa opinión sobre a comunidade de desenvolvedores locais?

Tivemos a oportunidade de coñecer a comunidade de desenvolvedores locais en Santiago. Coñecemos xente preparada e estivemos moi contentos de compartir feedback sobre OpenESB con eles. Coa Xunta, planeamos a organización dunha conferencia onde os usuarios poidan presentar os seus traballos sobre OpenESB e mellorar a nosa colaboración.

Xunta

Xunta de Galicia, Información mantida e publicada na internet pola Xunta de Galicia

Atención á cidadanía - Accesibilidade - Aviso legal - Mapa do portal