In the last chapter of Ivan's notes, choosing
J2EE client, J2SE standalone client,
Java ME client and non-Java client can affect the design of a web service.
However, I think nowadays, a web service should be designed in the way that is compatible with any types of clients for interoperability.
For example, it says bandwidth usage must be limited when designing a web service for Java ME clients. However, the same web service may be designed for both Java ME client and Java SE client/J2EE client, which does not have bandwidth usage limitation.
For another example, it says when Java ME client is used, we need to "maintain client state in the server which in turn my affect scalability of the web service."
On the other hand, it says when J2EE client is used, the web service must be designed to be scalable, despite a larger number of clients".
For another example regarding to operation mode (continuous access, intermittent access and batch access) , it says when J2EE client is used, the web service should be able to be accessed continuously. However, when J2SE client is used, the web service is accessed using intermittent access mode. Also, when Java ME client is used, batch access mode may be used.
I think nowadays, designing a web service should consider all possible clients. For example, designing a web service should take care of some common restrictions, like limited bandwidth usage, should be highly scalable and should support continuous access regardless what clients are used.