Are there any general guidelines to understand when I should consider using (as a eat-your-own-dogfood) and providing web services, and when I shouldn't worry about them? Or, any reading materials you can point me to?My project is in PHP but I don't mind if it's language agnostic.
When do I need web services?
php;web services
Basically, you should implement a web service when you have functionality that, for whatever reason, requires centralization on a computer you control, but that needs to be directly accessed by consumers on many machines that you may not control.Typically, the reasons for such centralization are:The functionality requires access to a large dynamic data store that would be infeasible to distribute in its entirety to all users.The functionality requires serious computational muscle that, again, would be infeasible to provide to all users or to expect them to have available.The functionality exists to provide some sort of controlled access to confidential information or features. You simply cannot trust anything on the remote end of an Internet connection.The functionality must be platform-independent so that it can be consumed by programs run on a variety of platforms. No one programming language is 100% platform-independent, but many communications layers (such as WSDL/SOAP and HTML/HTTP) are.In all cases, it is necessary to distinguish the functionality being talked about as being more involved than serving up web pages. The actual mechanism used is actually very similar, but the intended recipient is not a browser (and thus an end user simply needing a UI), but code (which will use the results of your service in its own program for its own purposes).To do this, you expose your functionality as a web service, which clients can send requests to and to which you can choose, if everything seems kosher, to respond.