One way of seperating data from applications is by moving away from the concept of hardware running software and towards the concept of users consuming services.  Think Service Oriented Architecture and liberate the data!