Enterprise Service Bus

De Viquipèdia
Dreceres ràpides: navegació, cerca
ESB

L'Enterprise Service Bus o ESB és una manera de construir programari, aquesta tecnologia informàtica cau en el que anomenem programari intermediari (middleware en anglès). L'objectiu d'aquesta arquitectura és, sobretot, permetre la comunicació entre aplicacions que inicialment no estaven pensades per funcionar de forma conjunta (per exemple, dos sistemes ERP fets per empreses diferents).

Una arquitectura ESB proporciona una capa d'abstracció que permet la comunicació d'aplicacions a través del sistema de missatgeria de l'empresa. Podemn considerar l'ESB com una nova generació d'EAI (Enterprise Application Integration) construïda sobre estàndards com l'XML, JMS o serveis web com SOA o WOA. Un altra diferència entre l'ESB i l'EAI és el fet que l'ESB proposa una integració distribuïda gràcies a la utilització de contenidors de serveis, que actuen com a mini-servidors. Aquests mini-servidors contenen la lògica d'integració i poden trobar-se en qualsevol lloc de la xarxa de l'empresa.

Descripció[modifica | modifica el codi]

No es pot considerar l'ESB com un programari, si més no un estil d'arquitectura basada en un grup d'estàndards de programari. El terme ESB fa referència a la infraestructura de programari que permet la comunicació entre aplicacions.

En l'arquitectura d'una aplicació d'empresa fent ús d'un ESB, una aplicació es comunicarà a través del bus, que actua com a intermediari de missatges entre aplicacions. El principal avantatge d'aquest enfocament és que redueix el nombre connexions punt a punt necessàries per a la comunicació entre aplicacions, la qual cosa fa més simple i més senzilla l'adaptació del programari. En reduir el nombre de punts de contacte per a una aplicació determinada, el procés d'adaptació d'un sistema als canvis en un dels seus components es fa més fàcil.

L'ESB és la peça de programari que es troba entre les aplicacions de negoci i permet la comunicació entre ells. L'ideal seria que l'ESB fos capaç de reemplaçar tot el contacte directe amb les aplicacions del bus, de manera que totes les comunicacions es porten a terme a través d'aquest. Amb la finalitat d'assolir aquest objectiu, el bus ha d'encapsular la funcionalitat que ofereixen les aplicacions dels seus components de manera significativa. Això es realitza generalment mitjançant l'ús d'un missatge model. El missatge model defineix un conjunt estàndard de missatges que l'ESB transmetrà i rebrà. Quan l'ESB rep un missatge, enruta el missatge a l'aplicació corresponent. Sovint, com que l'aplicació no es va construir amb el missatge de model en ment, l'ESB haurà de transformar el missatge a un format que sigui comprensible per l'aplicació. El programari encarregat de realitzar aquestes transformacions es coneix com un adaptador.

La connexió entre el missatge model i la funcionalitat que ofereix l'aplicació és crucial. Si el missatge model no encapsula totalment la funcionalitat de l'aplicació, altres aplicacions que desigin aquesta funcionalitat es veuran obligades a passar per alt l'ESB i haura d'invocar directament l'aplicació, la qual cosa, viola tots els principis exposats anteriorment, i no s'obtenen els avantatges de la utilització d'un ESB.

Principis[modifica | modifica el codi]

L'ESB com a intermediari entre els clients i els proveïdors de serveis es basa en els següents principis:

  • Invocació: Suport per a protocols de transport síncrons i asíncrons, servei de mapejat (localització i enllaçat)
  • Enrutament: Adreçabilitat, enrutament estàtic i determinístic, enrutament basat en el contingut, enrutament basat en regles, enrutament basat en polítiques.
  • Descobriment dinàmic: els serveis associats així com la seua semàntica s'emmagatzemen en un directori compartit.
  • Coreografia del procés: Implementació de processos de negoci complexos.
  • Orquestració del servei: Coordinació de múltiples serveis d'aplicació exposats com un de sol.
  • La distribució forta: els serveis es distribueixen en la xarxa de l'empresa o Internet.
  • Els comunicació per missatges: els serveis d'intercanvi de missatges es fan a través de documents de text, aquest missatges es processen, transformen i milloren.
  • Processament d'esdeveniments complexos: Interpretació d'esdeveniments, correlació, coincidència de patrons.
  • Qualitat del servei: Seguretat (xifrat i signatura), lliurament fiable, gestió de transaccions
  • Gestió: Monitorització, auditoria, consola d'administració, logging, BAM

El terme ESB es va utilitzar per primera vegada per l'editor Sonic Software (filial Progress Software Corporation).

L'arquitectura[modifica | modifica el codi]

L'Enterprise Service Bus posseeix com el seu nom indica una arquitectura en bus, per contraposició a l'arquitectura en estreblla dels primers EAI, la qual cosa fa que l'ESB ofereixi una arquitectura molt distribuïda.

L'ESB es fonamenta en quatre tècniques:

  • El MOM que permet l'intercanvi de missatges de manera asíncrona. Així cada missatge es dipositat en una cua avant de ser consumit pel destinatari.
  • Els serveis web que permeten establir una interfície entre les aplicacions i el bus. Cada servei conté una lògica d'integració dels missatges.c).
  • Les transformacions que afecten als missatges que circulen pel bus.
  • L'enrutat intel·ligent que dissocia l'emissor del missatge del destinatari. Serà l'ESB qui va a deduir la destinació del missatge.

Poden afegir-se a aquesta arquitectura:

  • El BAM que permet monitoritzar l'activitat d'un procés de negoci.
  • El BPM que s'encarrega d'optimitzar els processos de negoci.

Els components d'aquesta arquitectura es representen en la següent figura:

Arquitectura ESB

Estàndards[modifica | modifica el codi]

L'ESB es recolza en els següents estàndards de l'arquitectura de programari:

  • JMS per al bus.
  • SOAP, WSDL, UDDI per als serveis Web.
  • JBI per als contenidors de serveis.
  • XML, XSLT, XPath per la transformació i l'enrutament.
  • JCA per a la connexió daplicacions.
  • BPEL coordinació de processos de negoci.

Enllaços externs[modifica | modifica el codi]