In my company we are starting to use web services. My plan is to provide
access to services via 2 protocols, http and jms. Any external access
(clients outside company network) to services will be typically via http
and json through a restful URL, but internally if the service needs to
invoke another service, it will do it via jms, mainly to decouple the
service from each other.
My question is following
1. Can camel provide abstraction so that i can write my service code
without http, json and jms dependencies? I would like camel to handle http
to java, json to java and jms to java conversion through some mediation and
invocation of my service should be simply through a java method with
accepts a java object as a request. Keep in mind that although http is
synchronous model, jms would have to simulate request-response. If yes, can
you please point me towards an example which demonstrates this setting.
2. Likewisely, i would like camel to convert the response from my service,
which would be a java object, into json and return the response back to the
client.
3. Lastly, how can i scale in this model. For JMS, it is easy to startup
multiple instances and have them listen to a queue. How can i leverage same
instances to loadbalance across http interfaces? I would like services to
have location transparency, hence, they should not have to care about
invoking "jms" specific cluster vs "http" specific cluster?
access to services via 2 protocols, http and jms. Any external access
(clients outside company network) to services will be typically via http
and json through a restful URL, but internally if the service needs to
invoke another service, it will do it via jms, mainly to decouple the
service from each other.
My question is following
1. Can camel provide abstraction so that i can write my service code
without http, json and jms dependencies? I would like camel to handle http
to java, json to java and jms to java conversion through some mediation and
invocation of my service should be simply through a java method with
accepts a java object as a request. Keep in mind that although http is
synchronous model, jms would have to simulate request-response. If yes, can
you please point me towards an example which demonstrates this setting.
2. Likewisely, i would like camel to convert the response from my service,
which would be a java object, into json and return the response back to the
client.
3. Lastly, how can i scale in this model. For JMS, it is easy to startup
multiple instances and have them listen to a queue. How can i leverage same
instances to loadbalance across http interfaces? I would like services to
have location transparency, hence, they should not have to care about
invoking "jms" specific cluster vs "http" specific cluster?