IMHO, insuring that you have logical seperation of tiers is the most
critical thing, whether you immediatley physicall seperate is not as
critical. You said that today this is on one server, then in my mind I
would just use the interfaces, however as time goes on and more
processing is needed it maybe necessary to scale out. This can be done
with Application Center, but if you keep your UI/Service layer,
business layer, and data access layer on the same physical machine
scalaibity will be hindered slightly. Performance of your application
is another critical piece, how important is it? Could you have a web
service farm, and a Web Application farm talking to a central data
access server via remoting, web services? I really think there is no
correct answer to this. You have to feel the bottle necks of your
application as it grows. Are they network bottle necks, processor
bottle necks, etc.. based on that you can then decide which logical
tiers should be seperated into different physical tiers. The best part
is every person you ask may give you a different answer on how to
architect this application. There is not a perfect formula. So to end
this I would say start of simple, and try togkeep thjings simple, make
sure your tiers are logically broken out, and you can refactor your
application as necessary.