Hi Bevo,
IMHO, No.
Web services and related distributed technologies should ideally be used
when you have two *separate* applications, which should talk to each other.
Also, they are used when you don't want these applications to be dependent on
each other - changes in one app should not affect the other, because we have
a mutual contract.
IMO, what you should do is to introduce a Facade layer above the Biz Logic
layer, which would expose business methods. The facade should abstract
details on what all biz objects are created and what all methods were invoked
to execute the biz process.
All the above layers would act as clients of this Facade; the client's
should ideally know the existence of only the facade and no biz logic classes.
After you do this, whether to have web service, smart client app, or a web
app as a client of this facade should be a decision you should make according
to your application architecture.
For example, if your app would be used in an intranet, you would probably
use a smart client app and all the layers would be present in the client
machine itself. However, if you require the biz processes to execute in a
separate machine, you could have a Windows service which would expose the
Facade as a remotable object to which the smart client applications would
connect. As evident, such a layering approach gives a lot of flexibility.
HTH,