No modelo ASP, existe o Web Server, então aplicações eram instaladas, como aplicações dinâmicas usando linguagens como asp, php, java/jsp, etc… Mas se tinha pouco controle sobre os recursos utilizados (disco/processamento/acesso) por cada cliente. Para que isso fosse feito era necessario criar um gerenciamento complexo. A configuração dessas aplicações envolvem um gasto com tempo técnico para fazer as alterações necessárias na aplicação, e normalmente as aplicações não compartilhavam funcionalidades.
O On Demand Software é como um ASP nos mesmo moldes.
As aplicaçoes da 37signals.com, são basicamente neste estilo, o que não é ruim, funcionam bem, porem exigem maiores recursos (processamento/memoria) em casos que hajam muito clientes utilizando.
A idéia geral do SAS, é a de disponibilizar aplicações existentes feitas sob o molde do SAS, para os clientes e ter gerenciamento da utilização de recursos utilizados por cada cliente. Novas aplicações podem ser disponibilizadas no modelo de cross selling, ate mesmo oferendo um trial, ou uma verão com funcionalidades/recursos reduzidos. E fazer isso tudo da forma mais facil e rápida possivel.
Dentro do padrão SAS, existem softwares qeue são modularizados, e o acesso a suas funcionalidade dispostas sob papeis (roles). Existe então um modulo de gerenciamento de usuários/permissões para o cliente, e um modulo de gerenciamento para o host. O framework para disponibilizar o modelo SAS, tem que ser super flexível, aonde o host pode criar contextos (clientes) sob demanda, como também reconfigurar eles, sem parar o serviço prestado. E muito mais importante, sem interferir nos demais clientes. Quanto ao cliente, cabe a ele gerenciar usuarios e definir grupos com papéis (roles) para cada grupo/usuário, liberando assim acesso aos softwares contratados.
Obtendo acesso a quantidade da utilização feita por cada cliente e a cada software, pode-se então cobrar pela disponibilidade + acesso, desta forma um cliente que utiliza poucos recursos pagaria por exemplo 100R$ / mês, e um cliente com uma necessidade maior pagaria 1000R$ / mes, para utilizar a mesma ferramenta, com as mesmas funcionalidades, mas com a quantidade de uso diferentes.
Para se ter uma ideia das vantagens sob utilização de recursos, levando em conta aplicações complexas como ERP, CMS e CRM. Tinhamos um web server (Pentium 4 2.4Ghz / 1Gb RAM / 80GB HD), colocávamos 10 clientes e o devido ao footprint de cada contexto a memória era exaurida, tinhamos acesso aos stats, mas nao tinhamos acesso ao CPU slice utilizado por cada cliente. Era necessário reiniciar o tomcat (Servlet) para modificar configurações no mesmo, bem como adicionar ou remover algum cliente. E por fim, era necessário ter um acesso ao servidor (SSH)para efetuar tais alterações.
Usando o modelo SAS, temos 47 clientes no mesmo servidor, os recursos todos sao controlados, o CPU time é computado, os requests (pedidos) mais demorados são mensurados também. Desta forma reduzindo o custo final ao cliente, aumentando o custo beneficio do servidor, e assim aumentando os lucros. Não existem “reboots” no web server, as configurações/novos contexots são aplicados dinamicamente, etc…
E sim, mais uma vantagem, as atualizações são constantes e aplicadas a todos os clientes, tornando o serviço fornecido em uma espécie de “Live Software”.