Question

I have two Java EE web apps that are going to be published on the same physical server, but on different network addresses.

APP A: Listens to a port on a public IP address and makes synchronous invocations to app B if necessary.

APP B: Listens to a port on a private IP address and makes synchronous invocations to app A if necessary.

enter image description here

For connecting APP A with APP B, I am considering the following alternatives.

  • RMI
  • Message Queue
  • Lightweight ESB

Please tell me if you see any clear advantage supported by facts on any of them, or if there's another technology I should consider.

Était-ce utile?

La solution

Every integration method has its advantages and disadvantages, and its really hard to propose one based only on what you have provided, but here is some hints:

  • Quick and Easy: if you don't mind high coupling, and major changes in the applications are not expected (like DB engine, or replacing on with non-Java system), you can go with RMI or even DB Procedure calls.
  • Changes, Extendability and Scalability: if the applications are expected to be changing more than rarely -and they tend to do-, ESBs or Message Queues would be great, since they would produce a loosely coupled architecture. This would also make room for extendability (like if you would have a new application C, that would need to invoke A or/and B)
  • HTTP Availability: If HTTP communication is available between applications, Web Services is an excellent integration method.
  • Developers Knowledge: What technologies you/the team are familiar with.

These are actually small hints, if you wish to go further in your research, I strongly recommend reading Enterprise Integration Patterns the book.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top