Elements. At its most basic, an ESB architecture consists of three elements, according to Craggs.
Mediation services automatically handle functions—like application mapping and intelligent routing—necessary to get Web services—such as an e-commerce application and a customer-loyalty database—to work together to perform business processes.
The services also allow information transfer between applications by taking data in the format of a sending application and converting it to one compatible with a receiving application.
These function via basic adapters that work with standard environments such as Web services and the Java Connector Architecture. Additional adapters connect to other environments, such as SAP's IDoc (intermediate document) data structure. This is important for legacy software that wasn't built to communicate automatically with other applications.
Adapters work via preprogrammed data-format-mapping information. Without them, developers would have to manually code or use custom development tools to create connections to applications, said Kevin Clugage, product director for Oracle Fusion Middleware. "That would add unnecessary complexity," he noted.
Messaging protocols enable communication between service requesters and providers. Progress Software's Sonic ESB, for example, supports about 200 open and proprietary messaging protocols, including Web services, the Java Message Service, e-mail, FTP, and IBM's Customer Information Control System, said Hub Vandervoort, chief technology officer of Progress' Enterprise Infrastructure Division.
Capabilities. ESBs' programming model provides a rich abstraction of both the application and the interface. Thus, a business-process architect need not worry about the coding necessary to connect applications or resources but instead can just utilize an automated ESB service, explained Christopher Vavra, product manager for IBM's WebSphere ESB.
ESBs can be centrally managed and thus can perform integration throughout an organization's infrastructure.
Fiorano CEO Atul Saini noted that ESBs offer additional important capabilities such as making sure a message is formatted correctly, finding the most resource-efficient way to perform tasks, providing redundancy in case of failure, and logging events or errors.
For security, ESBs typically utilize authorization and authentication to limit application access to those with permission.
ESBs also conduct some of the auditing and monitoring necessary to ensure applications perform as specified by service-level agreements between customers and vendors.