Sistema web com "múltiplos domínios"

Pessoal, não sei se seria bem esse o assunto, comecei a pesquisar agora e pra evitar perder tempo com assuntos errados, gostaria de uma ajuda da comunidade para ir pelo caminho correto!

Bem, devem conhecer, sistemas nos quais você acessa na nuvem da seguinte maneira:

O sistema é uma aplicação web, vamos chamar simplesmente de “app”.

O cliente 1, chama agora de “cli1”, acessa o sistema da seguinte maneira: http://cli1.app.com.br
O cliente 2, chama agora de “cli2”, acessa o sistema da seguinte maneira: http://cli2.app.com.br
E assim sucessivamente para N clientes.

Bom, eu gostaria de conhecer melhor como funciona essa arquitetura, essa abordagem. Você ter uma única aplicação acessada por diversos clientes, todos utilizam a mesma aplicação, porém acredito que ou possam utilizar banco de dados diferentes (talvez distribuídos) ou o mesmo banco com uma chave discriminadora.
A questão é, como funciona essa arquitetura? Quais as melhores abordagens? Boas práticas?

Se puderem me ajudar, já deixo meu agradecimento! Obrigado!

Em tempo, comecei a estudar vraptor agora! Já tenho 2 anos de experiencia com JSF. Qual destas tecnologias ou outra tecnologia, java, seria melhor para utilizar nesse sistema de exemplo que citei?

Ajuda-lo-ei dizendo o termo correto a se pesquisar:

Espero que lhe seja útil, suas pesquisas devem ser mais frutíferas agora.

Obrigado! Eu vou focar minha busca neste tema.

Entre VRaptor e JSF, iria de VRaptor por eu não gostar de componentes e preferir lidar diretamente com HTML, CSS e jQuery, não sei seu caso. Analise também outras opções de frameworks web, no momento o que prefiro é o Spring MVC, com front-end bootstrap (que também pode ser usado naturalmente com VRaptor ou qualquer framework action based).

Eu particularmente prefiro JSF por ser especificação. Além da velocidade de desenvolvimento. Templates fáceis, leves, componentes prontos, primefaces dando show atualmente com recursos html 5 + css 3, componentes bem leves. A produtividade eu acho muito alta. Uma das coisas que considero fundamental é a consulta sob demanda e ajax nativo. Quando comecei a pesquisar tabelas sob demanda (os sistemas na empresa onde trabalho fazem alto uso de listagens em bases com muitos dados) fiquei um pouco perdido em como implementar isso com html puro + jquery. Achei muito trabalhoso. Fico receoso de entrar a fundo em uma tecnologia e ficar travado em algum recurso.

A parte de controle do sistema, seguindo o MVC, fiquei meio confuso também, mas acho que essa parte é questão de prática.

Mas enfim. Agradeço a ajuda!

Ser especificação em si não quer dizer nada, em muitos casos pode não significar nada para a realidade do projeto usar determinados padrões da Sun/Oracle.

Sobre o restante que falou, se você gosta e acha a manutenção produtiva então para seu caso tem razão de usa-lo mesmo, importante é se sentir confortável com o que for trabalhar.

Isso é natural no início, também passei por isso, vim dos componentes que achava aparentemente produtivos também, mas depois que se aprende html puro e jquery, você vê as vantagens de ter melhor controle de tudo e poder atender melhor a personalizações e ajustes finos, os Clientes viajam podendo pedir mais necessidades criativas, do que ficar sempre preso à componentes de uma tecnologia misturada com servidor. Soluções HTML-jQuery puras prontas também tem de montão e não ficam limitados a comunidade Java.

Tudo é questão de experimentar bem e ver se terá prazer por usar em determinado caso.

[quote=javaflex]

Isso é natural no início, também passei por isso, vim dos componentes que achava aparentemente produtivos também, mas depois que se aprende html puro e jquery, você vê as vantagens de ter melhor controle de tudo e poder atender melhor a personalizações e ajustes finos, os Clientes viajam podendo pedir mais necessidades criativas, do que ficar sempre preso à componentes de uma tecnologia misturada com servidor. Soluções HTML-jQuery puras prontas também tem de montão e não ficam limitados a comunidade Java.

Tudo é questão de experimentar bem e ver se terá prazer por usar em determinado caso.[/quote]

Não tenho como concordar mais.
Estou exatamente nesse período de transição para o html puro +jquery e tenho visto uma vasta gama de possibilidades além de tapar com um front end extremamente performático.
Acabei de vir de um projeto com o back-end todo em java com serviços rest e front-end com outra tecnologia e as vantagens foram imensas.

[quote=Tchello]
Não tenho como concordar mais.
Estou exatamente nesse período de transição para o html puro +jquery e tenho visto uma vasta gama de possibilidades além de tapar com um front end extremamente performático.
Acabei de vir de um projeto com o back-end todo em java com serviços rest e front-end com outra tecnologia e as vantagens foram imensas.[/quote]
Não entendi o que está descordando e defendendo exatamente, HTML puro ou componentes server?

[quote=javaflex][quote=Tchello]
Não tenho como concordar mais.
Estou exatamente nesse período de transição para o html puro +jquery e tenho visto uma vasta gama de possibilidades além de tapar com um front end extremamente performático.
Acabei de vir de um projeto com o back-end todo em java com serviços rest e front-end com outra tecnologia e as vantagens foram imensas.[/quote]
Não entendi o que está descordando e defendendo exatamente, HTML puro ou componentes server?[/quote]

Haha perdão, não fui muito claro na primeira frase.
Estou concordando com você javaflex.

[quote=Tchello][quote=javaflex][quote=Tchello]
Não tenho como concordar mais.
Estou exatamente nesse período de transição para o html puro +jquery e tenho visto uma vasta gama de possibilidades além de tapar com um front end extremamente performático.
Acabei de vir de um projeto com o back-end todo em java com serviços rest e front-end com outra tecnologia e as vantagens foram imensas.[/quote]
Não entendi o que está descordando e defendendo exatamente, HTML puro ou componentes server?[/quote]

Haha perdão, não fui muito claro na primeira frase.
Estou concordando com você javaflex.[/quote]
Valeu, agora entendi sua frase, a negação no início que me confundiu e eu que interpretei errado mesmo.