The Message Broker is also called the Hub-and-spoke architecture where there is a centralized hub (broker) to which all applications are connected. Each application connects with the central hub through lightweight connectors. The lightweight connectors facilitates for application integration with minimum or no changes to the existing applications. Message transformation and routing takes place within the hub. Since applications do not connect to other applications directly, they can be removed from the integration topology by removing from the hub. There is a downside to the Message Broker topology - Due to the centralized nature of the hub, it is a single point of failure. If the hub fails, the entire integration topology fails.
By leveraging JMS, it is possible to create an enterprise message bus which provides a common communication infrastructure. Even though JMS is a java messaging API, by designing your message packets at suitable level of abstraction, you can make the message bus neutral to platform and/or language. Applications interact with each other through the message bus with the help of request-response queues.
ESB on the contrary provides a collection of middleware services which provides integration capabilities. These middleware services sit in the heart of the ESB architecture upon which applications place messages to be routed and transformed. Applications connect to the ESB through abstract, intelligent connectors which has got logic built-in along with the ESB to selectively bind to services at run time.
Now if we talk about JBI - SOA and SOI are the targets of JBI and hence it is built around WSDL. Integration components can be plugged into the JBI environment using a service model based on WSDL. Service composition is a major target in ESB architecture and the JBI environment aggregates multiple service definitions in the WSDL form into the message infrastructure. So you can now think of ESB, and thus JBI (because an ESB can be JBI based, even though it is not mandatory) as a workbench where you can do service orchestration and other BPM tasks.
Last but not the least - Talking on Spring and Camel - if we take the case of ServiceMix which is the reference JBI and ESB which we have used in our book, it has got good integration with these two frameworks. All beans in ServiceMix can be spring wired. The servicemix-camel component provides support for using Apache Camel to provide full set of Enterprise Integration Patterns (EIP) and flexible routing and transformation in both Java code or Spring XML.