I am going to leave the ORM question to others, and just answer part of the question by asking if this is a general approach.
This is a general approach called SOA (Service Oriented Architecture). It has many advantages, as well as pitfalls. It was all buzzing a few years ago, and now it is still widely used, but the level of excitement has fallen.
However, there are many resources on the Internet for exploring this. The biggest catch is to think ahead, because different people have different ideas about how to implement SOA, and what that means. In addition, cross-platform promises are harder to achieve in practice than people who had previously hoped. (for example, try calling .NET Web services with Java, you can do this, but you need to work on both sides to make them work.) So, if you need to worry about cross-platform compatibility, the SOA Cross-Platform Compatibility study "before you get too deep. You better learn how to do it right so that you are not caught with your underpants later and have to re-create a bunch of services originally intended for .NET clients who now need Java clients (for example, for smartphone apps).
We made this mistake ourselves and eventually had to recreate a ton of web services when we started developing the services that were supposed to be consumed by Android / Blackberry clients. Given how the industry is more committed to developing smartphones, getting it right now will save you a lot of time.
David source share