Web services offer platform indepenance and non-proprietary ways of
communicating, but there is a cost - serialization and bandwith. It has
notihing to do with threads and URL's. The data passed to a web service and
the response coming back are done in XML using the SOAP protocol. While
definately an "open" model, no one ever touted web services as the best
performing solution to cross-platform remote procedure calls. As a result,
there is an inherant performance limitation to them.
If you need to call a procedure from the same box as the GUI, then just
create a regular .NET class and call functions of that class. Web Services
are for calling procedures (functions) on other boxes in a non-proprietary,
platform-independant way. Because of this, most applications are built in
"tiers", with different tiers residing on different boxes. This is done for
security and scalability.
-Scott