Reputation: 571
I have the following architecture in my test lab:
N SOAP clients making requests to different Web Services (I can't control the client side technologies, but request are always SOAP XML via HTTP);
1 gateway which serves all incoming SOAP requests, routing them to the proper WS's.
Problem:
My services receive hundreds (sometimes thousands) of requests per day. Many of them are GET requests, which only gather information. Thus, many of these requests are similar, with the only differences being:
Solution:
Implement a caching mechanism in the Gateway. When a request to the WS XPTO is received in the gateway, the caching mechanism will compare it with the cached request for that WS, and if they are equal, the cached response is returned to client, avoiding querying the destination WS.
I'm considering to delete the 2 request control attributes from the XML request string before store it in the cache backend. I can do the same to each incoming request, before compare it to the cached one.
Requirements:
Questions:
Given this detailed description (sorry for its length), I would like to ear from the experts which technologies would be best suited for my needs, specially for the backend. I have considered NoSQL and In-memory key-value stores but I can't feel confident that one of them would attend all my needs.
(service_name, [request_XML, response_XML])
?Upvotes: 1
Views: 1279
Reputation: 5247
Have you explored EHCache and there is specific example from ibm may also help you
Also think about caching at clientside
Upvotes: 1