What are some architectural solutions that can mimic eventing for systems (Java) that are too old to implement eventing solutions, such as conventional Queue/Topic based JMS messaging?
I have a system that is REST capable and needs to interface with other systems, but having it send messages would be the most ideal solution. However, it is too old to do so.
Are there any kind of architectural patterns/solutions that can provide capabilities like this?
Like perhaps some kind of framework which can act as a system in the middle, by fetching data from the legacy system over REST, then packing it into a format that’s then sent over JMS?
Q: Are there any kind of architectural patterns/solutions that can provide capabilities like this?
Enterprise Integration Patterns (EIP) book contains many patterns that should be very helpful to solve your problem.
Since you are already using Java take a look at Apache Camel for creating Enterprise Integration Patterns or Routes as you stated above. I am not quite sure what type of data or capabilities your old system can handle but with this system can be in a middle and do some sort of message transformation or act as a control bus for the distributed systems.
You might like to check Normalizer pattern implementation which will take different msg formats and normalize it to the format the old system needs. Take a look at this link, http://camel.apache.org/normalizer.html
it might be an overkill but you can also try the Control Bus pattern to integrate the two systems. For more details on how to implement such as system see the link
Hope that helps.
You make me feel old 🙂 IBM MQSeries was originally launched in 1992, and was primarily used on mainframe based systems.
Java 1.0 was not released until 1996. I promise you that your application is not too old to talk to messaging systems. It may be that they don’t wish to couple to a messaging system, but there is no way it is “too old”.
I have seen applications that instead of writing to a queue, instead write to a database, and then have other things read those “messages” from the database tables, and mark them as “read”. This is basically how queues like Oracle AQ work. You end up having to do a lot more of the plumbing yourself, and you will have to learn about things like exclusive row-level read locks, but it is definitely doable.