1. A computer-implemented method of facilitating communication with a software component that uses a middleware component, the method including: receiving data representing an information model of the middleware component; and using the information model data to automatically generate code for a middleware bridge component that, in use, facilitates communication between the software component that uses the middleware component and a second software component that uses a second middleware component.