How the JNBridge JMS Adapter for .NET Works
At design time, the JNBridge JMS Adapter for .NET uses a simple Visual Studio plug-in interface to provide integration and configuration information (see Figure 1). With this Add Adapter Service Reference plug-in, you can explore the available JMS queues and topics, select the send and receive operations to be performed and the optional queues and topics to be accessed. You can chose specific send and receive operations particular to the queues and topics found on any JMS implementation, including IBM WebSphere, Oracle WebLogic, ActiveMQ, GlassFish/OpenMQ, JBoss OpenJMS, Pramati JMS Server, SAP, SonicMQ, Tibco EMS.
The plug-in will then generate an API class containing the selected JMS operations and their queue and topic destinations. You can then use that API to send and receive messages in the .NET application you're developing.
The resulting application will send messages to, and receive messages from, the indicated JMS server using simple .NET data types. The adapter supports both blocking and non-blocking (asynchronous) receive operations.
The underlying technology that supports any JMS implementation is JNBridgePro, JNBridge's Java and .NET interoperability product. JNBridgePro can be used to access any Java API from .NET, or any .NET API from Java. The JMS adapters implement JNBridgePro's interoperability technology to access the JMS API automatically for you; you don't need any knowledge of JMS to use the adapter.
Figure 2 shows the architecture of the JMS Adapter for .NET.
The adapter contains both a .NET side running in a CLR and a Java side running in a JVM, where the CLR and the JVM are running in the same process. JNBridgePro manages inter-platform communications. The JMS client classes are those provided by the vendor, which guarantees that the adapter will work with any vendor's JMS server. The framework code that interfaces with your .NET application is Microsoft's WCF Line-of-Business Adapter framework.