I have a question to fellow Ranchers here. I am dealing with an architecture where our servlet container (in Tomcat) is acting as a consumer to various web service calls
1. Some calls are made as RESTful
2. Some are SOAP calls
3. Some use jars which make WS calls internally.
In short, the application byitself has no WS but has 6 different consumers. Is there a pattern or framework I can introduce here that will improve the performance and also make the architecture more scalable?
BTW it would be great to know if there are resources on SOA client architectures and how to improve their performance.
Without you providing more information, the only suggestions I can think of now are:
- Asynchronous service calls.
This will allow your client to perform other kinds of processing while waiting for a service request response.
- Creating more coarse-grained services from the existing services.
Depending on the other services and the processing time of the more coarse grained services, this may improve scalability.
- Group calls to different services which results are used together.
If coarse grained services is not a viable option, then perhaps it is possible to arramge calls to different services which results are used together, that is all the requests must be answered before being able to proceed, in groups in order to minimize the delay between the requests in the group.