Um webservice é uma forma de distribuir processamento / remote procedure call
Localmente vc pode fazer “servicos” (classes, componentes, dlls). Mas se vc pode precisar comunicar diferentes componentes que podem ou não estar no mesmo servidor fisico, ou precisa de isolamento/integração de diferentes tecnologias, ai vc tem uma gama de tecnologias ( SOAP, Corba, Rest, EJB, mensagerias, arquivo/batch)
O webservice usa o mecanismo de transporte http(s). Se vc pode acessar com o browser, ta valendo.
Http tem vantagens como os códigos 2xx 3xx e 4xx padronizados, headers, etc. é muito fácil lidar com cache (esse etag mudou? Ô recurso foi modificado desde dia x?), rate limit, mime-type, por exemplo. Fora diferentes formas de autenticação, load balance pode ser trivial, etc. E existem infinidade de bibliotecas pra isso.
Na sua arquitetura os componentes tem que fazer sentido. Por exemplo vc pode ter vários componentes acessando o banco de dados diretamente - integração via database - mas isso gera uma serie de problemas como: precisar duplicar regras de negócios em casa componente. Usar UM componente pra acessar o banco é melhor. Se este componente vai ser um webservice, so os requisitos vao dizer
Agora vc tem php, java, cloud… Talvez falar http seja adequado. se é so java parece que um jar acessando via hibernate é suficiente
Arquitetura distribuida tem N formas de fazer cada uma tem latencias e features diferentes. Vc pode acessar por rest, pode passar por mensageria (rabbitmq) + callback, pode usar o q for preciso
Se fizer sentido. Casa parte distribuida é um sistema pra desenvolver e monitorar.
sobre sua duvida em especifico
Então, agora sendo bem especifico, em um cenário onde o cliente possui um banco de dados local e quer integrar em uma solução na Nuvem(de maneira bi-direcional), como por exemplo o SalesForce, preciso de um webservice? Porque?
o seu banco de dados é uma forma de serializar dados.
em um sistema distribuido cada componente é uma dor de cabeça. vc tem que planejar, nao pode simplesmente mudar tudo, as mudanças tem impacto, o codigo fica distribuido pro N projetos, etc.
o cenario q vc descreveu vc tem um sistema local e um sistema na nuvem e eles precisam conversar. simples assim.
faz sentido colocar um webservice na frente do seu banco pra falar com o Salerforce? SIM. pq sao dois sistemas interagindo