2

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?

4
  • In what sense it is too old? Will it not run on never versions of the JVM? Commented Apr 8, 2016 at 20:07
  • @Oxinabox That is correct. The system is run by another team and having it provide eventing capabilities on it's own is out of the question. Commented Apr 8, 2016 at 20:18
  • 1
    Have you looked at other message queue libraries in case they support the older version of JVM that you need to use? For example, would you experience the same problem with ZeroMQ? Commented Apr 8, 2016 at 20:51
  • 2
    What platform are we talking about? There's no way to know what options are available based on 'too old'.
    – JimmyJames
    Commented Jan 9, 2017 at 16:53

2 Answers 2

1

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

or

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

http://camel.apache.org/controlbus.html.

Hope that helps.

0

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.

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.