ften considered the backbone of service-oriented architectures (SOAs), the enterprise service bus (ESB) has emerged as a standard for enterprise-wide integration among disparate information systems. Many enterprise architects leverage the ESB as an essential component of their SOA-compliant architectures, where ESB serves as the cross-protocol, multi-format façade to corporate services that serve SOAP-based front ends to other enterprise information services. In that role, the ESB delivers not only a practical solution for enterprise-wide integration efforts, but also a much-needed standard for otherwise diverse integration channels.
Most of the popular ESB products are message oriented (see Sidebar 1 for an explanation of ESB architecture). They are tailored for connection-message adaptation, using specific ESB adapters for different connection types and message formats rather than for protocol- and resource-oriented services. In contrast, the wonderfully practical RESTful web services are not only very HTTP specific (i.e., relying on HTTP methods, errors, state transfers to URLs), but they are almost exclusively resource centric (every entity exposed as a web service has a unique URI). For that reason, the RESTful style represents a challenge for message-oriented ESBs.
ESB is mostly intended as an enterprise wide infrastructural pipeline that exchanges messages among statically defined end points (FTP directories, message queues, web services, HTTP URLs, database connections, etc.). Network protocols serve simply as the most rudimentary pipelines for network exchange. Integration with RESTful web services requires not only strong familiarity with the REST protocol, but also with the integration features offered by common ESB products.
This article presents key strategies for enabling interoperability between RESTful web services applications and ESB-connected applications. It reviews three integration tools that will enable you to reliably incorporate RESTful web services into ESB-backed integration solutions.