Software como Servico (SAS)

Olá pessoal,

Estou desenvolvendo um framework para disponibilzar Software como Serviço, é um padrão novo representado por SAS (Software As Service), no qual as aplicações são disponibilizadas sob demanda e acessadas remotamente (WEB ou RIA). Diminuindo o custo envolvido na contratação do software pelas empresas, permitindo que até empresas pequenas tenham acesso a software de qualidade, pagando pela quantidade de acesso.

Tem alguém trabalhando na mesma área, que queira trocar ideias e informações ?

Acredito que o termo SOA (Service Oriented Architecture) seja o mais conhecido para o que vc procura, não!?

Não o termo é SAS mesmo, não tem nada a ver com SOA, é a definição de um molde para desenvolver software visando distribuir o software como serviço e não como um produto, exemplo: Uma empresa precisa de um gerenciamento de recursos humanos, ela pode comprar um por 100.000,00 R$ ou pode optar por alugar esse software (web/RIA) pagando 2000,00 R$ / mes com suporte incluso (backup de dados, tickets de suporte, etc…).
A questão desse paradigma para distribuição de serviços é o controle que ele tem que ter sob o que é disponibilizado para cada cliente, dinâmica em configuração e monitoramento da utilização de recurso.
Então um cliente que utilize muito e com isso necessite de muitos recursos, como disco e processamento, paga um valor mensal maior que o cliente que usa pouco. Estabelecendo um valor proporcional ao uso.

Só para você ter uma ideia, eu desenvolvi o framework utilizando o Jetty embedded + spring framework (IOC) + hibernate + postgreSQL, foi necessario criar um classLoader e um sistema de log de acesso com geração de estatísticas.

[]´s

Não tá faltando um “a” na sigla não?

SAS = [S]oftware [A]s [S]ervice

qual é a diferenca disso e do antigo modelo ASP (application software provider)? em outras palavras, do bom e velho on demand software?

nao eh a mesma coisa das aplicacoes do tipo 37sginals?

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”.

parece bastante interessante. certamente muita gente teria interesse num framework que auxiliasse a administracao nesses moldes.

spievak, alguma referência apra estes conceitos?

Trabalhei com o conceito de ASP (‘á-ésse-pê’, não ‘áspi’) no início da década e o conceito era o mesmo que se conhece por SaS hoje em dia.

Bom, eu tenho experiência recente numa produtora de software para análise de risco que pode ser vendido como produto ou serviço. A versão ‘serviço’ era para clientes com menor porte, os clientes maiores exigiam um deployment local. Mesmo estes clientes menores precisavam de requisitos de velocidade e segurança, já que estamos falando de mercado financeiro internacional. FOi bem interessante e eu acredito que é um modelo muito razoável.