I wanted to inquire, whether it is possible for a client application, which is consuming a web service, to send large amounts (54 MB) of data to the web service? Does the client application have to be a web service also?If yes, then will the data be sent as a response to the request from the web service, and how will we be able to send an acknowledge receipt from the web service
Im new to web services, so any help or direction will be very helpful.
Yes this is possible and quite common for large corporations. Some decisions are made however, that help to optimize and possibly speed up the transmission like
Data Transfer Format/Protocol: You can make savings in the size of your message payload by picking the right data format for the payload. The two most popular data formats (otherwise know as protocols) for web service data transmission are JSON and XML (and by extension SOAP, an XML-Based messaging protocol). JSON is the more lightweight option (though somewhat limited in it’s application) while XML is a heavier (but more versatile option).
Data Transport Protocol: A lightweight transport protocol could also help make savings with regard to message transfer efficiency and speed. In that respect REST is the preferred transport protocol for the lightweight route. In practice, most web services are HTTP based, but the web service paradigm gives you wide latitude to send requests to a webservice in a variety of transport protocols (SMTP, RMI are options), provided you’re sure the web service will be able to understand the transport protocol over which you’re sending your data
Handling of Binary Data: Webservice messages are generally transmitted as text/character type payloads. When dealing with binary data(images, files, etc), you have to be a bit more selective (read:cautious) about your options as picking a wrong data transfer type for binary data will result in data (message) bloat. The SOAP message transfer protocol format gives a couple of options in this regard. There are standards and concrete implementations of these standards that you can adapt to optimize the size of your message if it contains binary data.
No. The keyword in the web service is service, that is, your application/system client to be served. Your responsibility ends at sending properly formatted data over predetermined channels, in a predetermined format to the service (and expecting an optional response to your request, based on the type of service you’re consuming). Unless the service you’re consuming explicitly defines a requirement for your system so send another message in acknowledgement of an earlier reponse (which is catastrophically crappy design in my opinion), you’re under no obligation to do so.