I am new bie in webservices world and I have basic question. We have many services running in the company now, most of them using java-rmi and corba. Is it ok to use webservice when you know that only java clients will be using it? My understanding is that the complexity of webservices is justified only if it is inteded for cross platform communication. If it to be used for java clients only, we could probably use other distributed technologies in java like JMS, RMI, EJB etc.. What value can we add by switching to a new technology?
I know my question might sound a bit mundane, but I am in a confused state on the learning curve and I would appriciate if someone can explain me.
Thanks and regards,
Originally posted by vidya mahavadi:
My understanding is that the complexity of web services is justified only if it is intended for cross platform communication. If it to be used for java clients only, we could probably use other distributed technologies in java like JMS, RMI, EJB etc.. What value can we add by switching to a new technology?
Actually the Added Value comes from the realization that in many cases it is more effective to distribute applications or services rather than distributing components (or worse, objects). Interoperability is a side effect of using HTTP as a transport and character-based XML (i.e. non-binary) for the data representation. Complexity arose particularly for SOAP/WSDL based web services and the associated WS-* standards (often with flexibility comes complexity).
With (coarse-grained) distributed services it isn't that uncommon that the object model for the service and client on common data is actually different even if they are both implemented on the same platform (Example scenario: Query on Interoperability). In that case message-based communication makes more sense than serialized objects (as supported by RMI).
SOAP/WSDL based web services (the one's accused of complexity) aren't the only option either - they just happen to be the ones that are supported right now out of the box by the majority of development tools. Designing your web application or service to expose a resource-based interface may already be enough for your needs.
Have a look the REST section of the Web Services FAQ and WADL (Introducing WADL; GlassFish: Web Application Description Language). If you interest is piqued move on to RESTful Web Services (amazon US)).
Sorry for adding to your confusion.