Web Services offer many benefits over other types of distributed computing architectures.
Interoperability - This is the most important benefit of Web
Services. Web Services typically work outside of private networks,
offering developers a non-proprietary route to their solutions. Services
developed are likely, therefore, to have a longer life-span, offering
better return on investment of the developed service. Web Services also
let developers use their preferred programming languages. In addition,
thanks to the use of standards-based communications methods, Web
Services are virtually platform-independent.
Usability - Web Services allow the business logic of many different
systems to be exposed over the Web. This gives your applications the
freedom to chose the Web Services that they need. Instead of
re-inventing the wheel for each client, you need only include additional
application-specific business logic on the client-side. This allows you
to develop services and/or client-side code using the languages and
tools that you want.
Reusability - Web Services provide not a component-based model of
application development, but the closest thing possible to zero-coding
deployment of such services. This makes it easy to reuse Web Service
components as appropriate in other services. It also makes it easy to
deploy legacy code as a Web Service.
Deployability - Web Services are deployed over standard Internet
technologies. This makes it possible to deploy Web Services even over
the fire wall to servers running on the Internet on the other side of
the globe. Also thanks to the use of proven community standards,
underlying security (such as SSL) is already built-in.
With a web service, you will need to think about your network,
firewalls, performance, etc. It also makes it harder to debug since you
won't be able to step into the web service from your clients, you will
have to set breakpoints on both sides of the calls.
The other problem with web services for you is that you need to be
much more robust handling failures. With a DLL, you know a call to a
method is going to succeed, but with a web service, you will need to be
prepared for that call to fail or time out whenever you make any call
Although the simplicity of Web services is an
advantage in some respects, it can also be a hindrance. Web services use
plain text protocols that use a fairly verbose method to identify data.
This means that Web service requests are larger than requests encoded
with a binary protocol. The extra size is really only an issue over
low-speed connections, or over extremely busy connections.