In a previous post, I suggested I’d like to see a much looser coupling between the front-end, or GUI portion, of a web app, and the back-end, which handles data persistence, business rules, and all other types of data processing. Really, what I’m suggesting, is that these areas be broken down into separate unique services. The further we break components down, the easier it is to design them, code them, test them, and maintain them (at least to a point, you can go too far with this).

If you aren’t yet familiar with Service-Oriented Architecture, then read this post from several years ago on webservices.xml. It’s a good introduction to the concepts. So far in my experience, I think the GUI is being asked to do far too much; to be far too smart for its own good. I’d rather all the brains of the user interface be provided by services, and the front end simply stick to the role of providing a visual interface to those back-end services.