What is middleware?
Commonly referred to as software 'glue', middleware is simply a set of software components which connect various networked applications. It is essentially the plumbing. Middleware and ESB enables various networked and disparate applications to communicate together securely, reliably and seamlessly
Middleware follows four basic principles:
- It is mostly invisible. You don't generally see the plumbing in your house, but you do see the water. As a consumer, you don't see middleware. You see the websites and data flows that are made possible by middleware, which is what makes middleware somewhat hard to define.
- It provides a standard way of doing things. As a developer you could create your own application servers, connection drivers and authentication handlers, but it is much easier to use middleware components which are already tried and tested, and follow a common standard. In middleware, these standards take the form of libraries of functions which your application calls through well defined application programming interfaces (APIs)
- It ties together parts of complex systems. Middleware keeps the information flowing in a complex web-based application. Its primary task is to connect systems, applications and databases together in a secure and robust way. Middleware can perform any number of tasks, such as synchronising a database between an online webshop and a local in-store database, to ensure valid stock levels at all times. It can also export data automatically and send to third parties such as SalesForce, via their APIs.
- It lets the developers focus on value-added services. By standardising the underpinnings of an application the development team can focus on creating value-added services, rather than investing time in commonly solved problems
Middleware is an internally consumed system. If you wish to expose certain parts to third parties then you need to operate an ESB (enterprise service bus)
What is an ESB?
An ESB is a software architecture designed to achieve secure business-to-business 'B2B' transactions by providing more controlled user access and highly granular data permission layer on top or in parallel to a middleware solution.
If you operate existing software (Salesforce, SAP, PeopleSoft), then certain services may be useful to expose to third party suppliers and customers. You can expose these services via an API. A service is some software component with a stable, published interface that can be invoked by consumers (other software components). Requesting and executing services involves software components owned and operated by one company, talking to components operating and owned by another company (business-to-business 'B2B' transactions).
Conventional middleware is not sufficient for cross-organisational exchanges. You would need an agreemeent between the parties involved on the middleware platform, and that involves an implicit or explict trust between parties. Business data is confidential and should only be viewed by the intended recipient, and many assumptions are made in conventional middleware which are not valid in cross-organisational interactions.
In B2B exchanges a lack of standardisation across middleware platforms makes point-to-point solutions costly to execute in practice. Some of these issues have been alleviated by the adoption of standard protocols (HTTP) and data formats (JSON/XML), but these by themselves are not enough to support application integration. They don't define definition languages, name and directory services, transaction protocols, etc. There is a gap between what the Web provides and what application integration requires that Web Services are trying to fill.
For B2B exchanges to be secure, reliable and consistent, there needs to be certain definitions in place which are enforced automatically.
This is the role of an ESB
This diagram describes an ESB and its role regarding interaction with a third party supplier:
Middleware and ESB development experts
We have a long and successful history developing and supporting enterprise middleware and ESB solutions written in a variety of languages. We offer expertise in creating, extending and supporting middleware and ESBs to meet any requirement.
Whether you are looking for a turnkey middleware and ESB solution, or need us to analyse and make recommendations about existing solutions, contact us today.