WSIF - Tying client code to a particular protocol implementation is restricting
If your client code is tightly bound to a client library for a particular protocol implementation, it can become hard to maintain.
For example, if you move from Apache SOAP to Java Message Service (JMS) or enterprise bean, the process can take a lot of time and effort. To avoid these problems, we need a protocol implementation-independent mechanism for service invocation.