 <p>In your case, we decided to expose our web app functionality as web services, because of:</p> <ul> <li>The client code is easily generated by your favorite WS library</li> <li>The server code is just an annotated POJO and every stub is generated by the same library (say you can choose CXF for both things but there are plenty of options)</li> <li>Security and operations people agreeded instantly to our proposal since functionality was exposed to the exterior through the corporative https security (exactly the same as our web application was doing)</li> </ul> <p>The kind of web services you use depends on your requirements: people normally expose their API as a REST api, which is more or less an http CRUD wrapper over your application entities. You can use standard SOAP web services, which is more of a procedural point of view. </p> <p>Up to you to decide, I hope this was useful</p>