The JMS API defines a set of interfaces for creating message producers and consumers. There are separate interfaces for producers and consumers, and for objects that communicate with topics and queues. These interfaces are all part of the javax.jms package:

In addition to implementing one of these interfaces, the producer or consumer must do a considerable amount of setup in order to send or receive messages: obtain a ConnectionFactory, find destinations, obtain a JMS Connection, create a JMS Session, and so on. One of the main advantages of using Oracle ATG Web Commerce’s Patch Bay system is that it handles the bulk of these setup tasks, so your code does not have to. See the Overview of Patch Bay section for more information.