Resolvendo problemas de customização em softwares como serviço (SaaS)

562 visualizações

Publicada em

Visando o levantamento de práticas e métodos para a customização desse de aplicações entregues como serviço (SaaS), esta pesquisa chega a contemplar as bases tecnológicas e embasamento técnico do modelo (origens, disponibilização pela internet, mecanismos “multi arrendamento” e questões de isolamento de dados), além de expor técnicas pesquisadas de customização, seja em nível de base de dados, campos e procedimentos da aplicação. São tratados ainda os aspectos mercadológicos do modelo SaaS, indissociavelmente do conceito de Long Tail, que nos leva a ter em vista que essas aplicações são voltadas a um rol por demais abrangente de usuários, que por sua vez, conduz à conclusão de que as possibilidades de parametrização, e também as atualizações de sistema, precisam ser ponderadas da forma devidamente rigorosa. Desde o início, ficou sujeita à validação a hipótese de publicar customizações de pequeno impacto como atualização, para todos os clientes, e customizações mais profundas serem disponibilizadas em ambientes separados e dedicados. Em suma, a hipótese acaba sendo validada, mas com as recomendações e considerações expostas, inclusive a de trabalhar essa funcionalidade desde a fase de projeto. De quebra, foi feita uma pesquisa via formulário on-line, de onde tiramos dados estatísticos para comparar com as afirmações teóricas das fontes pesquisadas. Ficou claro que as possibilidades de customização acabam satisfazendo as necessidades e esperanças dos usuários, dados os levantamentos técnicos e as estatísticas das respostas à pesquisa realizada, principalmente no tocante ao conhecimento que os usuários afirmam ter da tecnologia, suas intenções e pensamentos, coisas que fizeram parte do formulário.

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
562
No SlideShare
0
A partir de incorporações
0
Número de incorporações
4
Ações
Compartilhamentos
0
Downloads
6
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Resolvendo problemas de customização em softwares como serviço (SaaS)

  1. 1. RESOLVENDO PROBLEMAS DE CUSTOMIZAÇÃO EM SOFTWARES COMO SERVIÇO (SaaS) ANDRÉ LUIZ ARANHA DOS SANTOS LUKAS SOARES CAVALCANTE UNIVERSIDADE PRESBITERIANA MACKENZIE São Paulo 2011
  2. 2. ANDRÉ LUIZ ARANHA DOS SANTOS LUKAS SOARES CAVALCANTE RESOLVENDO PROBLEMAS DE CUSTOMIZAÇÃO EM SOFTWARES COMO SERVIÇO (SaaS) Trabalho de conclusão de curso apresentado à Faculdade de Computação e Informática da Universidade Presbiteriana Mackenzie, como requisito parcial para a obtenção do título de Bacharel em Sistemas de Informação. Orientador: Prof. Ms. Cláudio Rogério Washizo Caruso São Paulo 2011
  3. 3. Resumo SaaS (Software as a Service) é um novo modelo de fornecimento de software, onde a aplicação fica hospedada na infra estrutura do fornecedor, e é paga por anuidade, ou mesmo por uso efetivo. Visando o levantamento de práticas e métodos para a customização desse tipo de aplicação, esta pesquisa chega a contemplar as bases tecnológicas e embasamento técnico do modelo (origens, disponibilização pela internet, mecanismos “multi arrendamento” e questões de isolamento de dados), além de expor técnicas pesquisadas de customização, seja em nível de base de dados, campos e procedimentos da aplicação. São tratados ainda os aspectos mercadológicos do modelo SaaS, indissociavelmente do conceito de Long Tail, que nos leva a ter em vista que essas aplicações são voltadas a um rol por demais abrangente de usuários, que por sua vez, conduz à conclusão de que as possibilidades de parametrização, e também as atualizações de sistema, precisam ser ponderadas da forma devidamente rigorosa. Desde o início, ficou sujeita à validação a hipótese de publicar customizações de pequeno impacto como atualização, para todos os clientes, e customizações mais profundas serem disponibilizadas em ambientes separados e dedicados. Em suma, a hipótese acaba sendo validada, mas com as recomendações e considerações expostas, inclusive a de trabalhar essa funcionalidade desde a fase de projeto. De quebra, foi feita uma pesquisa via formulário on-line, de onde tiramos dados estatísticos para comparar com as afirmações teóricas das fontes pesquisadas. Ficou claro que as possibilidades de customização acabam satisfazendo as necessidades e esperanças dos usuários, dados os levantamentos técnicos e as estatísticas das respostas à pesquisa realizada, principalmente no tocante ao conhecimento que os usuários afirmam ter da tecnologia, suas intenções e pensamentos, coisas que fizeram parte do formulário. Palavras chave: SaaS, software como serviço, customização, parametrização, multi arrendamento.
  4. 4. Abstract SaaS (Software as a Service) is a new model of software delivering, which the application be hosted no the vendor’s infrastructure, and it is paid on an annual or monthly basis, or even on an effective use rate. In order to verify practices and methods for customizing on this type of application, this research work comes to contemplate the technological bases of SaaS (origin, delivery via internet, multitenant engine, and data isolation issues), besides exposing the surveyed customizing techniques, on database, fields and application procedure levels. It is also covered aspects of SaaS marketing, indissolubly from the “Long Tail” concept, which lead us to aim these applications are addressed to a group highly great of users. These all drive to concluding that the parameterization possibilities and system updates must be deliberated under the properly right method. Since the work beginning, a hypothesis was subjected to validation. It was: publishing small changes for all clients, as being general updates; and high customizations on dedicated instances, just for use of the claimant. In summary, this hypothesis was validated by the research, but with the exposed recommendations and considerations, including work on the customization functionality since the project phase. Also was published an online form to collected responses from the general public about SaaS, for comparing statistical data with the theoretical statements, of the sources read. It became clear that customization possibilities satisfies the user’s needs and hopes, saw the technical information and survey response’s statistics, especially referring to the knowledge the users say have of SaaS, their intentions and thinking, that was included in the form. Keywords: SaaS, software as a service, customizing, parameterizing, multitenant.
  5. 5. Índice de Ilustrações Figura 1. Extremos quanto ao modelo de isolamento em nível de Base de Dados. Fonte: (CHONG, CARRARO, & WOLTER, Multi-Tenant Data Architecture, 2006) ........................................................................................... 19 Figura 2. Categorias de modelo de isolamento em nível de Base de Dados. Fonte: (CHONG, CARRARO, & WOLTER, Multi-Tenant Data Architecture, 2006) ................................................................................................................ 20 Figura 3. Isolamento com bases de dados separadas. Fonte: (CHONG, CARRARO, & WOLTER, Multi-Tenant Data Architecture, 2006) ..................... 20 Figura 4. Isolamento com schemas separados. Fonte: (CHONG, CARRARO, & WOLTER, Multi-Tenant Data Architecture, 2006) ............................................ 21 Figura 5. Dados coexistentes na mesma base e no mesmo schema. Fonte: (CHONG, CARRARO, & WOLTER, Multi-Tenant Data Architecture, 2006) ..... 22 Figura 6. Ilustração de gráfico da Long Tail. Fonte: Wikipédia. ........................ 26 Figura 7. Gráfico da Long Tail mapeando os públicos alcançáveis. (CHONG & CARRARO, Architecture Strategies for Catching the Long Tail, 2006) ............ 26 Figura 8. Gráfico da Long Tail mapeando o novo mercado que passa a ser alcançável para o SaaS. (CHONG & CARRARO, Architecture Strategies for Catching the Long Tail, 2006) .......................................................................... 27 Figura 9. Customização do modelo de dados por tabela extensível. Fonte: (CHONG & CARRARO, Architecture Strategies for Catching the Long Tail, 2006) ................................................................................................................ 31 Figura 10. Gráfico de resposta – Você já ouviu falar em software como serviço (SaaS) ou computação em nuvem? ................................................................. 46 Figura 11. Gráfico de resposta – Você utilizaria um software que fica hospedado, juntamente com seus dados, na infra estrutura do fornecedor, a troco de não precisar se preocupar mais com TI (software e hardware)? ........ 46 Figura 12. Gráfico de resposta – “Assinaria” um software assim mesmo que seu fornecedor NÃO prestasse nenhum tipo de customização, exceto as opções oferecidas pela própria aplicação? ................................................................... 47 Figura 13. Gráfico de resposta – A possibilidade de precisar de customizações, em um software não customizável, causaria algum tipo de receio em você na hora de "assinar", mesmo que ele te atenda perfeitamente no momento? ...... 47
  6. 6. Figura 14. Gráfico de resposta – Se você adquirisse um software, de qualquer natureza, para a empresa onde trabalha, qual você crê ser a probabilidade de necessitar customizações dentro de seis meses? ........................................... 48
  7. 7. Lista de Siglas ASP Application Service Provider COTS Commercial off the Shelf Software CRM Customer Relationship Management EAV Entity Attribute Value ERP Enterprise Resource Planning HTTP Hypertext Transfer Protocol HTTPS Hypertext Transfer Protocol Secure PC Personal Computer RH Recursos Humanos SaaS Software as a Service SPED Sistema Público de Escrituração Digital TI Tecnologia de Informação
  8. 8. Sumário 1. Introdução .................................................................................................. 9 2. Considerações Gerais ............................................................................. 11 2.1. Caracterização do Tema ..................................................................... 11 2.2. Identificação do Problema ................................................................... 12 2.3. Justificativa e Contribuição do Estudo................................................. 12 2.4. Objetivos e Delimitação do Trabalho................................................... 12 2.5. Hipóteses ............................................................................................ 13 3. Metodologia .............................................................................................. 14 4. Base Tecnológica do SaaS ..................................................................... 16 4.1. Definições do conceito SaaS .............................................................. 16 4.2. Acesso via Navegador ........................................................................ 17 4.3. Multi Tenancy ...................................................................................... 18 4.4. Isolamento de dados Multi Tenant ...................................................... 19 4.5. Excelência ........................................................................................... 23 5. Aspectos Mercadológicos ...................................................................... 25 5.1. Long Tail ............................................................................................. 25 5.2. Mercado inviável para SaaS ............................................................... 27 6. Customizações ........................................................................................ 29 6.1. Cenário atual ....................................................................................... 29 6.2. Customização do modelo de dados .................................................... 30 6.3. Campos customizados ........................................................................ 31 6.4. Customização de procedimentos ........................................................ 32 6.5. Considerações gerais .......................................................................... 34 7. Análise das pesquisas de formulário ..................................................... 35 8. Conclusão ................................................................................................ 36
  9. 9. 9. Referências Bibliográficas ...................................................................... 40 10. Apêndices ................................................................................................. 45 10.1. Apêndice A – Texto que conceitua SaaS ......................................... 45 11. Anexos ...................................................................................................... 46 11.1. Anexo A – Relatório de respostas da pesquisa de formulário .......... 46
  10. 10. 9 1. Introdução O SaaS (Software as a Service, ou Software como Serviço) é um novo modelo de fornecimento de programas de computador, em plataforma web, onde o cliente o “assina” e paga tarifas enquanto utiliza o software, podendo simplesmente cancelar o serviço quando não mais deseja-lo. Ao contrário do modelo COTS, ou on the shelf, ou ainda on-premise, que consiste no “mercado de prateleira” de software, onde o cliente adquire (uma única vez) a licença e o mesmo torna-se um ativo da empresa, que possui toda a infraestrutura necessária para operá-lo. Do ponto de vista técnico, existe uma única aplicação, rodando num servidor mantido pelo fornecedor do software, a qual todos os clientes acessam, comportando-se de igual modo para todos. Nesse detalhe, nasce o problema da customização de aplicações fornecidas como serviço, pois o programa de computador é um só atendendo a todos os usuários. A pesquisa concentrará esforços no sentido de encontrar alternativas viáveis para a solução do problema da customização. Não objetivando o enfoque técnico, estaremos propensos a analisar a viabilidade das opções de natureza técnica a serem encontradas. Por falta de padrão nas literaturas estudadas, estabelecemos nossa própria terminologia para designar determinadas ações:  Customização – consiste em qualquer atividade de alteração de uma aplicação SaaS, para sua melhor adequação ao uso. O termo é qualificado tanto para modificações feitas pelo fabricante, ao alterar códigos fonte, quanto pelo usuário, mediante recursos disponíveis no aplicativo. Ainda, poderemos utilizar “customização” para referir-nos às alterações de softwares não vendidos como serviço. Uma customização, então, pode ser feita por:
  11. 11. 10 o Intervenção técnica – alteração de códigos fontes, normalmente praticado pelo fabricante ou fornecedor. Afeta todos os usuários da instância alterada; o Parametrização – alteração do comportamento e/ou estrutura da aplicação mediante configurações oferecidas por ela para tal. Sempre feito pelo usuário final, e válido somente sobre o seu escopo da aplicação, sem afetar os outros usuários. Um termo que é muito confundido com o SaaS é o ASP (Application Service Provider, ou Provedor de Serviços de Aplicação). ASP trata de aplicações que não foram originalmente desenhadas para operar na internet, mas foram modificadas, para que seus usuários pudessem usufruir de recursos on-line com elas, ou mesmo para que pudessem ser vendidas pelo site do fabricante. O conceito de SaaS nasceu devido às limitações dos ASP, que lidavam com softwares legados. Assim como SaaS, ASPs podem ser pagos enquanto há utilização, e podem ter ativação instantânea (BLOKDIJK, 2008). Ainda, a possibilidade de haver licença perpétua o software fica descaracterizado como SaaS (GARTNER, INC., 2011). Em nossa pesquisa, trabalhamos com o conceito de SaaS, por não considerar a existência de tecnologias legadas e aplicações já desenvolvidas para ambientes off line ou mono usuário.
  12. 12. 11 2. Considerações Gerais 2.1. Caracterização do Tema O SaaS (Software as a Service) é um modelo de fornecimento de software que vem crescendo a partir dos anos 2000, que consiste em fornecer ao cliente, via internet, um software de plataforma web que fica hospedado no servidor do fornecedor. Em vez do usuário ou empresa adquirir uma licença permanente de um programa de computador, desembolsando uma única vez o valor do produto, ele faz uma assinatura de um serviço que, sendo pago mensalmente, ou conforme o uso, confere-lhe o direito de uso da aplicação, podendo ter limites de utilização, conforme o pacote contratado. Assim, as empresas usuárias já não precisam possuir infraestrutura pré- definida, adquirir componentes de hardware, tampouco arcar com tarefas de manutenção, integridade, disponibilidade, e outros encargos do gerenciamento de TI, o que gera economias em atividades e até contratação de profissionais (MA & SEIDMANN, 2008). BLOKDIJK (2008) divide o fornecimento SaaS em dois principais tipos, que diferem-se pelo público alvo da aplicação:  Aplicações de negócios (line-of-business), tais como CRMs, ERPs e outras aplicações para empresas;  Orientadas ao cliente, geralmente fornecidas gratuitamente, como web mails. A pesquisa estará focada nas aplicações empresariais, onde há margem para as questões a serem estudadas.
  13. 13. 12 2.2. Identificação do Problema Apesar do crescimento promissor do SaaS, o mesmo possui questões não solucionadas, no tocante a preços de licenciamento e custos secundários de gerenciamento, segundo COUTO (2010). Entre os fornecedores que estão aderindo a esse novo paradigma, observa-se ainda vários modelos de negócios um tanto experimentais, contudo, não se sabe qual irá prevalecer. Também existe a questão da customização: uma vez que o software oferecido é disponibilizado em instância única (uma só aplicação rodando no servidor, conceito de multi tenancy, explicado mais adiante) a todos os usuários, quaisquer alterações nos códigos fontes lhes serão replicadas, anulando a possibilidade de exclusividade entre os clientes. 2.3. Justificativa e Contribuição do Estudo Levando em conta a impraticabilidade de se manter várias instâncias de uma mesma aplicação, ou o abandono da customização para clientes específicos, bem como os interesses em larga escala evidenciados, é necessário chegar a um método prático de se aplicar e manter as customizações, do ponto de vista técnico. No mundo mercadológico do SaaS, passa a ser alcançável um enorme mercado, antes alienados aos fornecedores de softwares tradicionais (veja o capítulo Aspectos Mercadológicos). Pela oportunidade de negócio que ele constitui, e pela maior quantidade de usuários, fazem-se necessários métodos de customização práticos para o pessoal de TI do fornecedor, e que supram a maioria das necessidades em potencial de todos os usuários clientes. 2.4. Objetivos e Delimitação do Trabalho O objetivo geral da pesquisa consiste na solução de problemas com customizações de aplicações SaaS, fazendo dos objetivos específicos o seguinte:  Validar uma hipótese concebida para o tratamento de customizações em SaaS;
  14. 14. 13  Apontar boas técnicas de oferecer customizações, de forma adequada, às aplicações SaaS. 2.5. Hipóteses Ao pesquisar em livros e publicações especializadas, somadas à experiência na área, pode-se levantar algumas hipóteses. Dentre elas apresentamos uma aparentemente aceitável, que será validada no decorrer da pesquisa. No caso das customizações, pode-se dividi-las em duas categorias:  Micro alterações – são aquelas que consistem desde a eliminação de falhas, otimização e melhoramento de funções e interfaces, até o acréscimo de novos recursos que não influenciem nos fluxos principais do sistema;  Macro alterações – são aquelas que acarretam o tratamento de um maior número de dados, informações, afetando e alterando os outros fluxos do sistema e, portanto, a operação do usuário. A alternativa proposta como hipótese para estudo é o seguinte método para publicação de customizações: a disponibilização de micro alterações seria diretamente na instância principal do aplicativo, ficando à disposição de todos os usuários (ou assinantes) do software, uma vez que sua operação não será afetada; criar novas instâncias da aplicação e da base de dados para os usuários que desejarem customizações que envolvam macro alterações (neste caso haveria o problema de duplicidade, e o fornecedor também atuará como uma fábrica de software). Esse método se aplica às customizações solicitadas pelo cliente no aplicativo, não às opções de parametrização disponibilizadas pela aplicação ao usuário, consistindo assim intervenções técnicas no sistema.
  15. 15. 14 3. Metodologia Além de pesquisas bibliográficas e em meios de comunicação específicos, elaborou-se questionário on-line para que seja medida a aceitação de profissionais e empresários, tanto de TI quanto de outras áreas, de forma generalizada, quanto às imposições dadas pelas soluções SaaS, no tocante a customizações, escopo, desempenho da ferramenta e modelo do fornecimento. Ainda, serão buscadas informações junto a fornecedores de SaaS, para levantamento dos pontos técnicos a serem observados no momento de customizar um software como serviço, bem como os recursos que eles mesmos disponibilizam. No decorrer do trabalho, foram realizadas as seguintes atividades:  Revisão e pesquisa bibliográfica, em meios acadêmicos e empresariais, acerca de soluções SaaS;  Aplicação e análise de resultados de pesquisa com questionários;  Confronto dos resultados das pesquisas de questionário com as informações obtidas das fontes bibliográficas, de forma a levantar evidências e conclusões;  Busca de notícias e matérias nos meios de comunicação (sites, jornais, revistas, meios especializados em TI e em negócios, e afins). A pesquisa foi concebida com base na metodologia científica apresentada pelas autoras EVA LAKATOS e MARINA MARCONI. O método indutivo foi adotado por ser um processo mental, onde a partir de dados particulares e suficientemente constatados, influenciam a verdade geral e universal. Pode-se dizer que os argumentos indutivos levam a conclusões onde o conteúdo é muito mais abrangente do que as premissas em que se baseiam (MARCONI & LAKATOS, 2003). O método indutivo irá contribuir com a validação de uma hipótese de melhor prática de customização, fundamentando-se no cruzamento da análise das
  16. 16. 15 vantagens e desvantagens de cada método com o levantamento das opiniões e pensamentos dos usuários. A característica marcante do método indutivo é que os argumentos levam apenas a conclusões prováveis ou pode-se afirmar que as premissas de um argumento indutivo correto sustentam ou atribuem certa verossimilhança à sua conclusão. Assim, quando as premissas são verdadeiras, o melhor que se pode dizer é que a sua conclusão é, provavelmente, verdadeira (CERVO & BERVIAN, 1978). Pelo fato do tema SaaS ser novidade no mercado e com poucos opúsculos publicados, onde a maior parte das informações encontradas a seu respeito estão em artigos, sites especializados em tecnologia, notas de fornecedores em seus sites, pesquisas de especialistas e em alguns livros, cujo o acervo é muito limitado, não é possível obter uma conclusão absolutamente verdadeira, pois cada autor apresenta pontos de vista diferentes e chegam a conclusões diversas. Com isso o mais coerente é adotar o método indutivo, onde chegamos a uma conclusão provavelmente verdadeira ao findar da pesquisa.
  17. 17. 16 4. Base Tecnológica do SaaS 4.1. Definições do conceito SaaS Software as a Service (SaaS) também recebe nomes como aplicação hospedada, fornecedor de aplicações, soluções hospedada, entre outros. Isso significa que o software está hospedado remotamente em servidores e infraestrutura mantidos pelo fornecedor. O armazenamento, suporte técnico e manutenção necessários também são dados pelo fornecedor (BLOKDIJK, 2008). Para MELO, ARCOVERDE, MORAES, PIMENTEL, & FREITAS (2007), o SaaS assemelha-se ao modelo original do mainframe, onde o controle era centralizado, e a privacidade e flexibilidade do usuário individual eram limitadas. Retratam ainda que há quem possa dizer que SaaS tem uma falta de controle e privacidade inaceitável. No site institucional da empresa Digital Intelligence, SaaS é o modelo onde as empresas deixam de comprar licenças e passam a ser “assinantes” dos softwares (DIGITAL INTELLIGENCE, 2011), que são acessados pela internet. Os benefícios oferecidos são redução de custo, agilidade, acessibilidade, flexibilidade, continuidade e integração (que parte da pró-atividade da fabricante em questão, a Digital Intelligence, no tocante à integração com sistemas comuns no mercado, outros produtos da empresa, e interfaces via Web Services1). Já a Gartner define SaaS como um software de propriedade total do fornecedor, que é fornecido e administrado remotamente pelo mesmo. Se há necessidades do cliente instalar algo em sua infraestrutura, o produto não constitui SaaS (GARTNER, INC., 2011). Ainda na mesma definição, deve haver a figura do fornecedor, que também possui (ou terceiriza) a infraestrutura necessária, as operações de suporte, de manutenção e atualização. O software 1 Solução na comunicação de aplicações diferentes, com componentes que trocam dados fazendo do XML uma linguagem universal.
  18. 18. 17 é um conjunto único de códigos e modelos de dados, que é consumido de forma um-para-muitos por vários clientes ao mesmo tempo. Os clientes só podem realizar suas customizações através de mecanismos oferecidos pela aplicação, sem mudanças no código fonte ou modelo de dados, em contraste com a hospedagem de aplicações tradicional, que mantinha diferentes bases de dados e versões para cada cliente que requeria modificações. 4.2. Acesso via Navegador SaaS é um modo de fornecer um programa de computador via internet aos usuários, de modo que o mesmo fique hospedado em servidores da infra estrutura do fornecedor, que também proporciona recursos como armazenamento, processamento, suporte e manutenção, conforme necessário, bem como atualizações e correções (BLOKDIJK, 2008). Com o enraizamento da internet – em banda larga – no cotidiano das pessoas e empresas, a utilização de aplicações rotineiras que dependem de conectividade tornou-se viável. Assim, os programas SaaS, que basicamente dependem de um navegador de internet, ganharam o que lhes faltava para serem aceitos em grande escala. A utilização via internet traz consigo duas vantagens:  o acesso aos dados mesmo de fora do escritório, e de regiões distantes, durante viagens;  por meio de celulares e dispositivos móveis, de micro computadores de qualquer tipo de hardware ou sistema operacional. Portanto, além de romper qualquer barreira geográfica, resolve o problema de interoperabilidade entre plataformas, uma vez que pode ser acessado por qualquer dispositivo capaz de acessar páginas de internet. O problema de segurança no tocante à comunicação pode ser resolvido com o uso do protocolo HTTPS (HTTP com SSL), que além fornecer um duto de comunicação seguro na internet, permite a identificação do servidor e cliente
  19. 19. 18 através de certificados digitais (PMSP, 2011), do modo como faz os aplicativos que compõem o SPED2, em várias prefeituras e secretarias da fazenda estatuais. É fortemente característico das aplicações SaaS uma arquitetura multi tenancy3, onde a mesma instância da aplicação interage, processa requisições e armazena dados de todos os usuários no mesmo banco de dados e nos mesmos recursos de armazenamento físico, porém não compartilhando as informações entre eles (BLOKDIJK, 2008), a menos que esteja previsto nas regras de negócio. Obviamente as máquinas que hospedam a aplicação devem ter capacidade computacional de atender todas essas demandas, de todos os usuários, oferecendo escalabilidade para o software (BLOKDIJK, 2008). 4.3. Multi Tenancy Multi Tenancy é uma arquitetura na qual uma única instância de uma aplicação é utilizada por vários clientes, onde cada cliente é denominado tenant. Inclusive, tenants podem estar habilitados a customizar detalhes do software, como as cores da interface gráfica e regras de negócio, tudo via parametrização, mas nunca tocando nos códigos fonte. Tende a ser mais econômico, pois os custos de desenvolvimento e manutenção são compartilhados (WHAT IS, 2011). Na definição de Taurion (2010), Multi Tenancy, ou multi inquilino, ou ainda multi arrendatário, é uma arquitetura que permite que vários clientes / empresas compartilhem os mesmos recursos físicos ao usar um aplicativo ERP, por exemplo, mas mantendo seus dados logicamente isolados. As aplicações SaaS em web têm em comum o atender a vários clientes sem que um tenha conhecimento da existências dos outros (SILVEIRA, 2010). Pelo que temos observado quanto ao uso do termo, “Tenancy” significa “arrendamento” em inglês, e é muito usado nas literaturas de língua inglesa (multi tenancy, tenant) para referir-se à arquitetura onde há o consumo, por 2 SPED – Sistema Público de Escrituração Digital. 3 Multi sessão. Uma única instância de aplicativo que roda no servidor e atende diversos clientes.
  20. 20. 19 parte de usuários, às aplicações SaaS, que costumam ficar hospedadas nos servidores dos fornecedores. Multi tenancy significa a capacidade de uma mesma aplicação poder atender múltiplos clientes ao mesmo tempo; cada tenant individual é um cliente da aplicação. Quando for dito “usuário”, “cliente” ou afins, estaremos em correspondência com o termo tenant, das referências de língua inglesa, não devendo o leitor desprezar o contexto e sentido da sentença. 4.4. Isolamento de dados Multi Tenant Os possíveis modelos de isolamento dos dados dos clientes (tenants) em nível de base de dados são uma árvore resultante da combinação de um conjunto de fatores. A escolha adequada para esses detalhes depende da aplicação e da consideração de fatores técnicos, comerciais, estratégicos e externos CHONG, CARRARO, & WOLTER (2006). Figura 1. Extremos quanto ao modelo de isolamento em nível de Base de Dados. Fonte: (CHONG, CARRARO, & WOLTER, Multi-Tenant Data Architecture, 2006) Contudo, pode-se enxergar três categorias principais de isolamento, a saber, bases separadas, schemas separados e schemas compartilhados. As três abordagens referem-se apenas à alocação dos dados (bases de dados) de cada usuário da aplicação, ficando os recursos computacionais, códigos fonte e compilados totalmente compartilhados entre os usuários, descritos a seguir por CHONG, CARRARO, & WOLTER (2006).
  21. 21. 20 Figura 2. Categorias de modelo de isolamento em nível de Base de Dados. Fonte: (CHONG, CARRARO, & WOLTER, Multi-Tenant Data Architecture, 2006) Bases separadas Cada usuário da aplicação dispõe de uma base de dados exclusiva para os registros que lhe pertencem, em isolamento lógico aos dados dos demais usuários. Fica por conta da aplicação a identificação e o acesso à base de dados correta, conforme o usuário requisitante. Figura 3. Isolamento com bases de dados separadas. Fonte: (CHONG, CARRARO, & WOLTER, Multi-Tenant Data Architecture, 2006) Esse modo facilita a extensão do modelo de dados, atendendo individualmente às necessidades dos usuários; a recuperação isolada de dados de clientes específicos em caso de desastres, mas os custos de manutenção e backup tendem a ser altos. É um método adequado para organizações que necessitem, e paguem, por um maior grau de isolamento e flexibilidade. Base compartilhada com schemas separados Usa apenas uma base de dados, porém cada usuário possui seus registros num conjunto de tabelas agrupadas em um schema de seu uso exclusivo e criado para si.
  22. 22. 21 Figura 4. Isolamento com schemas separados. Fonte: (CHONG, CARRARO, & WOLTER, Multi-Tenant Data Architecture, 2006) As características desse modo são:  A implementação, gerenciamento e customização dos dados e modelo de dados são tão fáceis quanto no modo isolado;  Oferece um grau intermediário de isolamento lógico de dados, mas não igual à arquitetura de bases separadas;  Pode suportar um número maior de clientes;  Os processos de backup e restauração tornam-se mais complexos, pois tratando-se de uma mesma base, esses procedimentos afetam todos os esquemas;  Recomendado para aplicações com até cem tabelas por usuário. Base compartilhada e schemas compartilhados É o agrupamento de todos os dados, de todos os usuários, num único schema. Há uma tabela de usuários, e a identificação dos registros nas outras tabelas dá-se com o uso de chaves estrangeiras. A aplicação, portanto, não precisa fazer câmbios de configuração em suas conexões ao banco de dados, mas em contrapartida, requer um maior esforço no desenvolvimento da parte de
  23. 23. 22 segurança, para garantir que os dados não serão acessados por outros usuários, acidental ou maliciosamente. Figura 5. Dados coexistentes na mesma base e no mesmo schema. Fonte: (CHONG, CARRARO, & WOLTER, Multi-Tenant Data Architecture, 2006) As características mais relevantes são:  Possui o menor custo de hardware e backup;  Permite atender o maior número de usuários no mesmo servidor;  Os métodos de restauração são semelhantes ao modo de schemas isolados, porém com complicações adicionais, pelo compartilhamento das tabelas;  Recomendado a aplicações que precisam atender um grande número de clientes, e compatíveis com o grau de isolamento de dados oferecido. Já segundo as definições de TAURION (2010), os modelos de isolamento de dados multi-tenant ou multi inquilino são outros: Inquilino Isolado, multi inquilino via hardware compartilhado (virtualização), multi inquilino via container e multi inquilino via todo o stack de software compartilhado. Inquilino isolado Cada um tem seus próprios recursos tecnológicos alocados, sem o menor compartilhamento. Apesar de o usuário ter uma experiência multi tenant, pelo fato de todos os clientes terem suas aplicações hospedadas no mesmo data center, o modelo não o é. Para uma oferta de SaaS, esse modelo carece de agilidade e de elasticidade, já que a adição de um novo cliente requer a alocação de novos recursos e instalação de uma nova instância.
  24. 24. 23 Hardware compartilhado (virtualização) Cada cliente tem o seu stack de tecnologia, mas o hardware é alocado via mecanismos de virtualização. É o modelo anterior acrescido de elasticidade de hardware. Container As requisições de vários clientes são executadas na mesma instância de um container de aplicação (um servidor), mas cada um tem sua própria instância no software de banco de dados. Ou seja, o ambiente de execução é compartilhado, mas a base de dados não. Stack de software compartilhado A evolução do modelo anterior, onde há compartilhamento de todos os recursos tecnológicos, inclusive da instância do software e do banco de dados. 4.5. Excelência Como afirmam CHONG e CARRARO (2006), do ponto de vista de arquitetos de aplicação, há três características fundamentais que uma aplicação SaaS bem desenhada deve conter:  Escalabilidade (scalable) Trata da maximização da concorrência e uso mais eficiente dos recursos computacionais.  Atendimento eficiente a vários usuários (multi-tenant-efficient) É uma das mais significantes mudanças de paradigma que uma arquitetura centralizada poderia sofrer. O servidor que hospeda o software, o qual determinado cliente (tenant) acessa, também o disponibiliza para centenas de outros clientes, sem o menor conhecimento uns dos outros, semelhantemente a um provedor de hospedagem de sites ou contas de email. Isso requer uma arquitetura que otimize o compartilhamento de recursos entre os usuários, mas imprescindivelmente capaz de diferenciar os dados de cada um.
  25. 25. 24  Possibilidades de configuração (configurable) Uma mesma instância de software atende a muitos usuários de diferentes empresas, o que impede os desenvolvedores de simplesmente escrever códigos para customizar a experiência de um usuário, pois isso seria refletido a todos os clientes. Uma alternativa seria permitir configurações, através de parametrização, com meta dados para os clientes definirem como querem que a aplicação se apresente e comporte. O desafio atual para a arquitetura SaaS é assegurar a possibilidade de configuração simples e fácil para os usuários, sem insistir em demandas extras de desenvolvimento. Essa é a questão da nossa pesquisa, e será devidamente tratada nos capítulos seguintes.
  26. 26. 25 5. Aspectos Mercadológicos Neste ponto, faz-se necessário abordar questões mercadológicas do SaaS, que, apesar de não relacionadas ao foco da pesquisa, podem nos ajudar a chegar a conclusões, por influenciarem na viabilidade em certos pontos técnicos, além de constituir o nosso argumento de justificativa da pesquisa. 5.1. Long Tail A demanda de artigos como CDs, livros, DVDs tendem a seguir a Lei da Distribuição de Pareto (power law distribution). Assim, milhares de títulos são publicados todos os anos, mas apenas alguns chegam ao patamar de best- sellers. O restante jaz no que se chama de “long-tail”: uma infinidade de títulos não populares, sem perspectiva de vendas significativas (CHONG & CARRARO, 2006). Ainda segundo a explanação de CHONG & CARRARO, as lojas físicas tradicionais concentram-se na venda dos produtos mais populares, pois têm suas limitações de estoque e prateleira, e usam seu espaço da forma mais lucrativa possível. Já as lojas virtuais, por sua vez, não precisam se preocupar com espaço, pois podem enviar os produtos aos clientes diretamente de seus espaçosos centros de distribuição e armazenamento. Assim, é possível anunciar e vender desde o milionésimo item da escala de popularidade até o lançamento mais vendido do momento. O acesso a essa long tail gera um enorme aumento de receitas. Uma grande loja física pode comportar até 130 mil títulos diferentes em suas prateleiras e estoques. Mas a maioria das vendas do e-commerce Amazon.com são de títulos que não se enquadram entre os 130 mil mais populares (CHONG & CARRARO 2006 apud ANDERSON 2004). Ou seja, a maior parte das vendas da Amazon.com seria inviável caso fosse uma loja física.
  27. 27. 26 Figura 6. Ilustração de gráfico da Long Tail. Fonte: Wikipédia. A parte verde do gráfico representa os produtos mais populares e procurados, e suas vendas. A amarela, que se assemelha a uma cauda, é a projeção dos menos procurados, os quais juntos, produzem um somatório de receitas maior que o proveniente dos mais demandados. Um conceito parecido se aplica ao mundo do SaaS. Fornecedores de soluções de software complexas, para grandes empresas, tem uma limitação de público alvo, devido à condição financeira e porte dos clientes. Não são todas as empresas que podem arcar com servidores dedicados, softwares adicionais, funcionários de TI para manter tudo isso, pagar equipes de desenvolvimento para customizar o produto, etc. Certas soluções só podem ser compradas por grandes corporações, apesar de serem benéficas para pequenas e médias empresas. Figura 7. Gráfico da Long Tail mapeando os públicos alcançáveis. (CHONG & CARRARO, Architecture Strategies for Catching the Long Tail, 2006)
  28. 28. 27 O SaaS tem uma plataforma ideal para promover a Long Tail como modelo de negócio ( MY SAAS BLOG, 2007). Com os detalhes já citados do SaaS, incluindo entre outras coisas o compartilhamento do hardware, que é mantido pelo fornecedor, é possível vender a mesma solução a um preço muito menor, além de eliminar os custos de manutenção para o cliente. Com isso, uma massa demasiadamente grande de clientes (a Long Tail) entra no mercado potencial para o fornecedor de software. Figura 8. Gráfico da Long Tail mapeando o novo mercado que passa a ser alcançável para o SaaS. (CHONG & CARRARO, Architecture Strategies for Catching the Long Tail, 2006) Sendo assim, fazem-se convenientes métodos que permitam a “assinatura” do software de forma rápida e fácil, tanto para a empresa quanto para o cliente, para que se possa realizar um número escalável de vendas. A possibilidade de assinatura instantânea pelo site do produto, via formulário, é ótima, pois dispensaria muitos recursos e desgastes (tempo, pessoal, telefone, etc.). 5.2. Mercado inviável para SaaS Apesar do SaaS ter como característica a tomada de uma demanda reprimida pelos fornecedores tradicionais, vale lembrar que ele também possui um mercado aparentemente inalcançável, como os softwares críticos, estratégicos, de inteligência de negócio e que, enfim, tenha um alto volume de particularidades, como colocou UNICOMM (2010), sendo que esse mesmo fator foi denominado uma imaturidade momentânea por SPOSITO (2008).
  29. 29. 28 Trata-se de que, quanto mais peculiaridades, maior será a dificuldade, e maiores serão as perdas de aderência, ao adaptar um software genérico a uma empresa. Por isso, aplicações que tocam o âmago de uma empresa, como ERPs e inteligência de negócios, nem sempre se prestam ao modelo SaaS (UNICOMM, 2010). Esse tipo de software, nas empresas, geralmente permanece em constante evolução, seja para melhorar suas funções atuais ou agregar-se com novas; ou seja, sofrendo mudanças constantes no código fonte. Não seria de se estranhar que um produto SaaS dessa modalidade tenha, ao longo do tempo, instancias exclusivas para a maioria dos seus clientes. Daí a grande inviabilidade para o modelo como serviço.
  30. 30. 29 6. Customizações 6.1. Cenário atual Normalmente as aplicações SaaS fornecem alguma flexibilidade para os usuários, mas o modelo possui suas limitações. Se uma aplicação exige, para implantação em determinada empresa, uma customização que o fornecedor não pode dar, seu uso fica inviabilizado (CARRARO & CHONG, 2006). Dependendo da abordagem de compartilhamento utilizada (vide “Compartilhamento de dados em multi tenant”), essa questão se agrava, tornando necessário outra instância da mesma aplicação, descaracterizando o modelo de fornecimento no tocante à centralização. As principais necessidades de customização vêm, entre outros, dos seguintes fatores (PROGRESS SOFTWARE CORPORATION, 2008): a) Acessibilidade – principalmente para pessoas míopes ou daltônicas. Inclusive, o governo dos Estados Unidos possui regulamentações de acessibilidade para sistemas; b) Padrões Corporativos – Há empresas que fazem questão de manter sua marca e identidade visual nas estações de trabalho, e não aceitar a marca de diferentes fornecedores de SaaS. A possibilidade de customização das cores e logotipos pode facilitar a aceitação desses clientes. Para WARFIELD (2007), os fornecedores de SaaS precisam saber reconhecer se o domínio de suas aplicações realmente tem uma tendência a necessitar de customização ou não. Se sim, eles precisam encontrar um jeito de fornecer a customização e a devida implementação a preço e tempo competitivo em relação ao resto do mercado. Segundo SOUSA (2010) as duas principais técnicas utilizadas para resolver mudanças de requisitos, em qualquer software, são:  Configuração – o usuário conta com artifícios e parâmetros já contemplados na aplicação para alterar suas funcionalidades e adequá-
  31. 31. 30 la às suas necessidades (a própria “parametrização” da nossa terminologia, como explanado na Introdução);  Personalização – Envolve alterações no código fonte para implementar tais modificações (exatamente o que denominamos “intervenção técnica”, na Introdução). Como a intervenção técnica requer novos esforços de desenvolvimento, dá margem a novas fases de análise, implementação, testes, homologação e aceitação, ou seja, a um novo projeto, aumentando o custo e o tempo de desenvolvimento e implantação do software. O autor salienta que o desenvolvimento de SaaS deve evitar ao máximo a customização, usando ampla parametrização para atender às exigências do mercado. 6.2. Customização do modelo de dados Para customizações do modelo de dados, há três opções, segundo CHONG & CARRARO (2006), a saber: base de dados dedicada, base compartilhada com extensão fixa, base compartilhada com extensão customizável. Base de dados dedicada Possui exatamente a mesma estrutura do modelo de compartilhamento de dados com mesmo nome, descrito anteriormente. Cada cliente tem sua base de dados e as customizações são nela feitas, sem interferência nos demais usuários. Base compartilhada com extensão fixa A base de dados é compartilhada para todos os clientes (tenants). Em cada tabela há um conjunto estático de campos genéricos, que podem ser usados com a finalidade desejada por cada cliente.
  32. 32. 31 Figura 9. Customização do modelo de dados por tabela extensível. Fonte: (CHONG & CARRARO, Architecture Strategies for Catching the Long Tail, 2006) Base compartilhada com tabela extensível Cada dado que fuja ao padrão do sistema é armazenado em uma tabela separada, que se relaciona ao registro principal. Essa tabela, além da chave estrangeira, possui um par de campos nome / valor. Opcionalmente pode ser agregado outro campo para armazenar o tipo do dado, para que a aplicação saiba como trata-lo adequadamente. A grande desvantagem dessa técnica é a complexidade contraída pelas funções do banco de dados, como busca, indexação, consulta, etc. 6.3. Campos customizados Inevitavelmente, os usuários costumam apresentar novas necessidades, que estendem as aplicações. Sendo que existe um mesmo modelo de dados e código de programa, os fornecedores necessitam uma maneira de entregar essa customização sem mudar o banco de dados nem os códigos do sistema. Duas formas tornaram-se popular (BHATIA, 2010):  Entity Attribute Value (EAV) – Usa pares de nome e valor, e inúmeras tabelas com meta dados (YCMI). Apesar de se adaptar rapidamente a qualquer mudança, é muito diferente do modelo relacional, dificultando sobremaneira a escrita de consultas e inviabilizando indexações (AGUIAR, 2008);
  33. 33. 32  Custom Joined Table – Adiciona uma tabela extra no banco, para cada cliente. BHATIA (2010) afirma haver um método melhor do que esses, o qual descreve em sua obra. Não serão descritos detalhes técnicos, apenas a arquitetura. O schema conta com uma tabela extra com campos de vários tipos (as quantidades e tipos limitarão a customização), para armazenamento dos dados dos campos customizados, e que se relaciona com a tabela de clientes (tenants); ainda, uma segunda tabela com o mapeamento dos campos customizados, também se relacionando com a tabela de tenants, apenas para armazenamento de informações como o nome, tipo, descrição tamanho (...) dos campos (metadados). A grande vantagem, segundo o autor, é manter os benefícios do modelo relacional. 6.4. Customização de procedimentos Foram estudados alguns métodos para customizações mais profundas em softwares SaaS e multi tenant. Serão expostos seu embasamento e consequências, sem abordagem dos detalhes técnicos. Uma das propostas para customizações de SaaS que envolvam além de campos de tabelas, chegando ao nível de procedimentos, é o chamado modelo de customização por multi granularidade. No momento, os estudos ainda não estavam em um patamar adequado para aplicação à realidade de forma pratica e objetiva (LI, SHI, & LI, 2009). Os autores expõem os desafios da customização em aplicações multi tenant, e propõem um modelo de customização que interpreta os relacionamentos entre os elementos do sistema que, por sua vez, são categorizados em: dados, serviço, processo e interface. Os objetos de cada tipo, que devem ser customizados, são identificados separadamente, bem como os seus relacionamentos, para análise. As possibilidades de método de customização podem enquadrar-se em quatro níveis, os níveis de granularidade. Esses níveis oferecem características
  34. 34. 33 distintas no tocante à flexibilidade, facilidade para o usuário, facilidade para o desenvolvimento, entre outros. Acerca da customização por granularidade, o que obtemos, por enquanto, é um modelo para se analisar os elementos do sistema e seus relacionamentos, bem como do impacto da implantação dos recursos de customização. Por ainda não possuir a devida maturidade, não é possível analisar vantagens e desvantagens. Também existe a customização baseada em topologia de dependências. DONG, ZHANG, SHI, XU, & GUO (2010) propõem que os tenants terão à disposição possibilidades de intervenção para configurar parametrizações nas seguintes camadas:  Dados – Usada para a configuração de colunas em tabelas. A aplicação pode contar com colunas vazias, ou genéricas, para o usuário decidir como usar. Existem técnicas para a prática dessa customização;  Função – O usuário pode selecionar diferentes módulos de funções. Podem ser funções inteiras ou algumas partes;  Processo – Trata do work flow da aplicação. O tenant pode customizar (ou parametrizar) a aplicação tanto montando um novo processo através de funções já existentes, quanto alterando a ordem em que funções são executadas;  Interface – Parametrização da interface do usuário em geral, abrangendo cores, títulos, nomes, logotipos, etc. Haveria telas de configuração, para o usuário especificar suas preferências acerca dos itens do sistema, divididos nas categorias acima. É utilizada, ainda, a “topologia de dependências”, que documenta as dependências de um elemento para com outro, para análise, e servindo também para auxiliar e validar as configurações feitas por usuários finais. Nesse modelo, as intervenções podem ser dividas em adição, modificação e retirada de funções. De qualquer modo, vemos que a customização de processos, mais ainda do que de campos, torna complexo o desenvolvimento da aplicação, mais ainda
  35. 35. 34 quando essas customizações devem ser possíveis via parametrização, quando inclui também a necessidade de validação do que o usuário está fazendo. 6.5. Considerações gerais Ao levantar dados sobre o assunto, pode-se notar claramente que customização dos aplicativos é algo que não se adequa ao SaaS. Ainda afirma que esse tipo de artifício é bom para atividades que estão sendo automatizadas pela primeira vez, pois não há processos legados para substituir, ou que não estejam ligadas ao núcleo ou à inteligência do negócio (UNICOMM, 2010). A aplicação ideal para SaaS é aquela básica, padronizada e que possa ser compartilhada entre várias empresas, a exemplo de CRM, RH, contabilidade, colaboração e controle de despesas. Para aplicações críticas ou que agregam diferenciais ao negócio, o modelo ainda não é maduro, devido à necessidade de customizações. Customizar significa mexer no código fonte, e isso desvirtua o conceito. Esse tipo de artifício terá de ser sacrificado, para manter o baixo custo e facilidade de implantação. Consultorias apontam essa questão como uma das desvantagens do SaaS (SPOSITO, 2008).
  36. 36. 35 7. Análise das pesquisas de formulário Foi realizada uma pesquisa via formulário dirigida tanto a profissionais de tecnologia da informação quanto de outras áreas, sem distinção, bem como a gestores e empresários, objetivando justamente a averiguação da aceitação dos paradigmas do SaaS pelo público generalizado, em especial a questão das imposições de customização. Fazem-se necessárias pesquisas mais aprofundadas e segmentadas para a constatação do que realmente o mercado espera no momento. Porém, como as deliberações de uma só classe em determinado instante podem não refletir as tendências factuais, ponderamos válido fazer a pesquisa de forma generalizada. A repetição da mesma pesquisa, depois de um período razoável para as evoluções da área de TI, como três a cinco anos, também é válida para medir a evolução do público e confirmar tendências. Na seção Conclusão serão expostas as informações levantadas pela pesquisa de campo, em confronto com o restante do trabalho. Os gráficos de consolidação das respostas constam no endereço: http://tiamk.net/RespostaPesqSaaS.pdf, ou ainda, http://www.arank.com.br/Files/RespostaPesqSaaS.pdf. Na contabilização final da pesquisa, havia 102 respostas registradas. Como o formulário é aberto a público, e foi amplamente divulgado, talvez haja mais registros posteriores.
  37. 37. 36 8. Conclusão Apesar de se parecer com o mainframe na questão da centralização da inteligência, e de o sucesso do PC ter vindo da individualização dos usuários, como concluem alguns pesquisadores, é evidente que o SaaS proporciona muito mais do que aquele paradigma. Juntamente com o software é oferecida uma terceirização (outsourcing) de serviços profissionais, de infraestrutura e de manutenção, de forma implícita, bem como uma disponibilidade global e multi plataforma da aplicação. Essa terceirização representa própria e intencionalmente “a falta de controle e privacidade”, também citada por acadêmicos, sendo seus encargos transferidos para o fornecedor. Por ser um produto voltado à long tail, ou seja, uma infinidade de consumidores, oriunda das bases da pirâmide econômica das pessoas jurídicas, com diferentes necessidades e particularidades, o SaaS acaba forçado à customização por parametrização, tornando-a não tão dispensável quanto no modelo de negócio on-premise4, uma vez que neste, cada cliente normalmente tinha sua própria instância, e instalada no seu próprio parque, dando então margem a qualquer tipo de mudança peculiar; e naquele as atualizações no código fonte influenciam todos os clientes da fornecedor de SaaS, em suas minuciosidades. Consequentemente as customizações no caso do Software como Serviço devem ser ponderadas mui rigorosamente. Em contra partida, a própria customização vai à contramão do SaaS, segundo duas fontes a que tivemos acesso. Isso faz sentido, pois faz parte do SaaS como modelo de negócio o alcance da long tail, que exige rapidez e facilidade, de aquisição e implantação, não compatibilizando-se com métodos desgastantes e demorados, ou com a realização de projetos de implantação. Ainda que não apresente inconvenientes para empresas já habituadas a operar como as tradicionais fábricas de software, a prestação de serviços de customização inviabiliza o alcance do mercado da long tail, em custo e tempo competitivo. 4 Modelo de venda e licenciamento tradicional de software.
  38. 38. 37 Faz muito sentido dirigir um produto com baixa disposição à customização apenas a aplicações padronizadas e não críticas. Independente de conseguirmos enxergar ou não o que seria a maturidade necessária para a adequação do SaaS aos sistemas que envolvem peculiaridades, é um erro subestimar a capacidade de evolução da tecnologia, em termos de técnicas e inovações, sobretudo na informática. Contudo, também concluímos que novos aplicativos como serviço, pelo menos no corrente momento, só são válidos para as aplicações com baixa tendência à mudança. O problema de customização de campos e no modelo de dados está praticamente resolvido, com as técnicas citadas. No caso da customização de procedimentos, foram estudadas duas técnicas muito semelhantes, apesar de uma delas ter sido apresentada como ainda não suficientemente madura para a prática. De qualquer modo, é razoável que se ofereça mais customizações apenas nos recursos (campos e processos) mais passíveis de mudança, tendo em vista que esse tipo de incremento torna complexo o desenvolvimento do sistema, sobretudo no tocante à customização processos, ou implementação da parametrização de processos. Quanto à hipótese proposta, concluímos que sua viabilidade depende do modelo de negócio adotado pelas companhias, se de apenas um fornecedor de SaaS, ou se também de uma fábrica de software. Para nós, é adequado sim adotar esse modelo no seguinte modo:  Publicar na instância geral todas as customizações que não implicarem mudanças de rotinas por parte do cliente, a exemplo de, tipicamente, novos campos que sejam opcionais; ou ainda leves incrementos em processos, desde que só sejam ativados por opção (e por padrão desativada);  Caso o fornecedor de SaaS também ofereça projetos de customização no software, cabe criar uma nova instância para tudo aquilo que alterar fluxos e saídas, com dificuldade de coexistência com o primeiro modelo, ou que necessitar de câmbios no modo como o cliente opera do sistema, requerendo-lhe novas instruções. Pois instabilidades nos softwares são capazes de prejudicar a imagem desse modelo. Nesse caso, há
  39. 39. 38 possibilidades de negócios baseados no fornecimento dessas instâncias, que envolvem servidores dedicados e staff, de forma a oferecer a solução já pronta a um preço definido;  Ao criar um SaaS para fornecer, fazê-lo desde as fases de projeto e concepção empregando técnicas que permitam ao banco de dados e à aplicação o suporte a novos campos de definição exclusiva do usuário, como o EAV ou Custom Joined Table, ou preferencialmente, a técnica proposta por Bhatia (vide seção 7.3. Campos customizados), ainda que limite a quantidade de campos customizados, pois ela mantém os benefícios do modelo relacional e não exige intervenções técnicas para cada novo cliente. A questão da customização requer muito cuidado por parte da comunidade de fabricantes. Já foi postado que, caso distribuições do Linux pudessem adotar padrões diferentes de manipulação de arquivos (entre outras coisas), somado ao fato de o código ser aberto, seria gerada uma série de incompatibilidades entre computadores diferentes, ao trocar arquivos, podendo levar o sistema operacional à sua autodestruição. A solução para isso foi padronizar, convencionalmente, as funções do kernel que podiam sujeitar o sistema a incompatibilidades. A fim de evitar o mesmo risco para o SaaS, seria bem vinda uma convenção que tratasse de que tipos de recursos precisam oferecer customização (cadastro de funcionários, processos de faturamento, etc.), e que categoria de aplicações, em minucias, são adequadas ao SaaS. Quanto à pesquisa de opinião feita com formulário on-line, foi possível identificar, principalmente, as seguintes informações: a) 67% das respostas registradas alegam conhecer SaaS e saber do que se trata. b) A possibilidade de cortes de custos e despreocupação com a TI interna leva 86% dos pesquisados a declarar sua aceitação ou a possibilidade de cogitar o uso de uma solução SaaS; c) A maioria das respostas (64%) realmente afirmou ter um receio de não poder customizar um software adquirido, contra 36% que dizem não
  40. 40. 39 temer, seja por confiar na capacidade dos fornecedores de suprir novas necessidades ou por outros motivos. Por outro lado, esse receio não parece impedir mais da metade dos entrevistados (53%) de assinar um software na hipótese de não poder customiza-lo, a não ser pelos recursos que a aplicação oferece; d) Em uma questão que pedia, em uma escala de 0 a 10, a probabilidade de fazer-se necessária depois de seis meses, uma customização em um software adquirido, a média de respostas com as notas de 0 a 4 foi de 2,8%, e total de 14%; já a média e total de respostas para as notas de 5 a 10 foram, respectivamente, 14,3% e 86%. Ou seja, constata-se que na maioria dos casos, se faz realmente necessária a opção de customização. Os itens (c) e (d) demonstram certo nível de consciência dos respondentes acerca dos “inconvenientes” do SaaS, principalmente diante do item (a), que se refere ao conhecimento por parte deles. Mesmo assim, é notado pelo item (b) uma maioria disposta à ideia desse modelo de fornecimento. Diante disso, podemos passar a encarar a tendência à estaticidade como algo menos nocivo para o marketing dessas soluções. Para evitar inviabilizações no modelo, ainda que pouco impactantes (e também para acompanhar a provável concorrência), faz-se mais válidas ainda as medidas apontadas acerca da hipótese, citadas há pouco nessa seção: publicar micro customizações na instância compartilhada, para atender expectativas de suprimento de novas necessidades; e disponibilizar parametrização de campos de tabela e alguns procedimentos, para minimizar fatores de inviabilização. Sugerimos novas pesquisas com foco na aceitação de micro e pequenos empresários (long tail) ao modelo, experimentos com técnicas para amadurecer o SaaS a aplicações críticas e em modelos práticos de customização de procedimentos.
  41. 41. 40 9. Referências Bibliográficas MY SAAS BLOG. (30 de Janeiro de 2007). SaaS and The Long Tail. Acesso em 02 de Setembro de 2011, disponível em My SaaS Blog: http://www.mysaasblog.com/longtail.htm AGUIAR, G. M. (27 de Fevereiro de 2008). Modelo (EAV) - Entity-Attribute- Value. Acesso em 10 de Setembro de 2011, disponível em MSDN Fóruns: http://social.msdn.microsoft.com/Forums/pt/520/thread/c48bdf54-3a36-4159- 8c89-a7aa0d46a096 ANDERSON, C. (Outubro de 2004). Wired 12.10: The Long Tail. Acesso em 27 de Agosto de 2011, disponível em Wired.com: http://www.wired.com/wired/archive/12.10/tail.html ARIMA, K. (23 de Julho de 2010). Venda de SaaS corporativo será de US$ 8,5 bi. Acesso em 24 de Novembro de 2010, disponível em Info Exame: http://info.abril.com.br/noticias/corporate/venda-de-saas-corporativo-sera-de-us- 8-5-bi-23072010-39.shl BHATIA, S. (09 de Outubro de 2010). High Performance Custom Fields for Multi-Tenant SaaS Architectures. Acesso em 28 de Julho de 2011, disponível em Beyond Relational: http://beyondrelational.com/blogs/sanjay/archive/2011/01/20/high-performance- custom-fields-for-multi-tenant-saas-architectures.aspx BLOKDIJK, G. (2008). SaaS 100 Success Secrets. Lightning Source. CARRARO, G., & CHONG, F. (Outubro de 2006). Software as a Service (SaaS): An Enterprise Perspective. Acesso em 21 de Maio de 2011, disponível em MSDN Library: http://msdn.microsoft.com/en-us/library/aa905332.aspx CARVALHO SOUSA, F. R. (Maio de 2010). Acesso em 16 de Setembro de 2011, disponível em Universidade Federal do Ceará: http://www.es.ufc.br/~flavio/files/saas.pdf CERVO, A., & BERVIAN, P. (1978). Metodologia Científica. Mcgraw-hill.
  42. 42. 41 CHENG, H. K., & KOEHLER, G. J. (2003). Optimal pricing policies of web- enabled application services. Decision Support Systems, pp. 259-272. CHEROBINO, V. (16 de Outubro de 2007). SaaS: Quatro letras para conquistar as pequenas empresas. Acesso em 15 de Setembro de 2010, disponível em ComputerWorld: http://computerworld.uol.com.br/gestao/2007/10/16/idgnoticia.2007-10- 15.3940692242/ CHONG, F., & CARRARO, G. (Abril de 2006). Architecture Strategies for Catching the Long Tail. Acesso em 21 de Maio de 2011, disponível em MSDN Library: http://msdn.microsoft.com/en-us/library/aa479069.aspx CHONG, F., CARRARO, G., & WOLTER, R. (Junho de 2006). Multi-Tenant Data Architecture. Acesso em 21 de Maio de 2011, disponível em MSDN Library: http://msdn.microsoft.com/en-us/library/aa479086.aspx COMPUTERWORLD/EUA. (04 de Janeiro de 2011). Demanda por soluções de BI no modelo SaaS aumentará em 2011. Computer World. COUTO, V. (21 de Setembro de 2010). Software como serviço: modelo ganha fôlego no País. Acesso em 23 de Setembro de 2010, disponível em ComputerWorld: http://computerworld.uol.com.br/tecnologia/2010/09/21/software-como-servico- modelo-ganha-folego-no-pais/ Diário do Comércio. (28 de Setembro de 2010). Web Paper. Diário do Comércio, p. 6. DIGITAL INTELLIGENCE. (2011). O que é SaaS - Software as a Service? Acesso em 13 de 08 de 2011, disponível em DigitalIntelligence: http://www.digital-it.com.br/o_que_e_saas_software_as_a_service.html DONG, J., ZHANG, S., SHI, Y., XU, X., & GUO, W. (09 de Agosto de 2010). Process Customization Based on Dependent Topology in Software as a Service Model. Software Engineering and Data Mining (SEDM), 2010 2nd International Conference on, pp. 295-298.
  43. 43. 42 GARTNER, INC. (2011). IT Glossary - SaaS. Acesso em 13 de 08 de 2011, disponível em Gartner: http://www.gartner.com/technology/it-glossary/saas.jsp IMHOFF, C. (Abril de 2010). Business Intelligence as a Service: Key Evaluation Criteria for ISVs to Consider. JUTRAS, C. (2009). A Fresh Lock at SAP's Software as a Service (SaaS) Solution. LI, H., SHI, Y., & LI, Q. (31 de Dezembro de 2009). A Multi-granularity Customization Relationship Model for SaaS. Web Information Systems and Mining, 2009. WISM 2009. International Conference on, pp. 611-615. MA, D., & SEIDMANN, A. (2008). The Pricing Strategy Analysis for the “Software-as-a-Service” Business Model. Springer-Verlag Berlin Heidelberg, pp. 103-112. MARCONI, M., & LAKATOS, E. M. (2003). Fundamentos de Metodologia Científica. São Paulo: Editora Atlas. MELO, C. A., ARCOVERDE, D. F., MORAES, É. R., PIMENTEL, J. H., & FREITAS, R. Q. (Março de 2007). Software como Serviço: Um Modelo de Negócio Emergente. São Paulo, Pernambuco, Brasil: Centro de Informática - Universidade Federal de Pernambuco. MICROSOFT CORPORATION. (n.d.). Microsoft Software as a Service. Retrieved 04 20, 2011, from Microsoft Software as a Service: http://www.microsoft.com/serviceproviders/saas/default.mspx PMSP. (2011). Nota Fiscal Eletrônica de Serviços - Manual de Utilização do Web Service. Acesso em 18 de Maio de 2011, disponível em Prefeitura da Cidade de São Paulo: http://ww2.prefeitura.sp.gov.br/nfe/files/NFe-Web- Service-v2-2.pdf PROGRESS SOFTWARE CORPORATION. (2008). SaaS Customization and Personalization. Acesso em 19 de 07 de 2011, disponível em Progress Software Corporation:
  44. 44. 43 http://web.progress.com/docs/whitepapers/public/SaaS/SaaS-Usability-- Personalization.pdf REDAÇÃO COMPUTERWORLD. (26 de Julho de 2010). SaaS crescerá 5 vezes mais rápido que venda de licenças. Acesso em 23 de Setembro de 2010, disponível em ComputerWorld: http://computerworld.uol.com.br/negocios/2010/07/23/saas-crescera-5-vezes- mais-rapido-que-venda-de-licencas/ REDAÇÃO DA COMPUTERWORLD. (08 de Fevereiro de 2011). Disoft cria unidade de ERP. Computer World. SILVEIRA, G. (23 de Agosto de 2010). Um produto para muitos clientes: implementando multitenancy. Acesso em 02 de Setembro de 2011, disponível em blog.caelum.com.br: http://blog.caelum.com.br/um-produto-para-muitos- clientes-implementando-multitenancy/ SOARES, E. (23 de Dezembro de 2010). Associações comerciais vão oferecer solução de NFe por SaaS. Computer World. SOARES, E. (18 de Maio de 2010). SaaS: SAP inicia testes de novo ERP no Brasil ainda em 2010. Acesso em 23 de Setembro de 2010, disponível em ComputerWorld: http://computerworld.uol.com.br/negocios/2010/05/18/saas- sap-inicia-testes-de-novo-erp-no-brasil-ainda-em-2010/ SOUZA FILHO, F. (21 de Abril de 2009). Uma solução econômica que vem das nuvens. Acesso em 23 de Setembro de 2010, disponível em Jornal Diário do Comércio: http://www.dcomercio.com.br/materia.aspx?id=15517&canal=53 SPOSITO, R. (14 de Julho de 2008). Como usar bem o SaaS? Acesso em 16 de Setembro de 2011, disponível em Info CORPORATE: http://info.abril.com.br/corporate/infraestrutura/como-usar-bem-o-saas.shtml TAURION, C. (01 de 12 de 2010). Entendendo o modelo Multi-tenancy. Acesso em 16 de 07 de 2011, disponível em iMasters: http://imasters.com.br/artigo/19067/cloud/entendendo_o_modelo_multi-tenancy/
  45. 45. 44 THIERAUF, R. J. (2001). Effective business intelligence systems. Quorum Books. UNICOMM. (30 de Outubro de 2010). SaaS é adequado para a minha empresa? Acesso em 10 de Setembro de 2011, disponível em Unipress: http://uni.com.br/knowledge_base/?p=694 VINÍCIUS, S. (23 de Novembro de 2010). De pacotes de escritório a HDs virtuais, conheça os principais softwares grátis que dispensam instalação. Diário do Comércio, p. 18. WARFIELD, B. (23 de Outubro de 2007). Does SaaS Limit Over- Customization? Acesso em 26 de Julho de 2011, disponível em SmoothSpan: http://smoothspan.wordpress.com/2007/10/23/does-saas-limit-over- customization/ WHAT IS. (05 de Abril de 2011). What is multi tenancy? Definition of WhatIs.com. Acesso em 20 de Agosto de 2011, disponível em WhatIs - The Tech Dictionary and IT Encyclopedia: http://whatis.techtarget.com/definition/multi-tenancy.html YCMI. (s.d.). The EAV/CR Model of Data Representation. Acesso em 10 de Setembro de 2011, disponível em Yale Center for Medical Informatics: http://ycmi.med.yale.edu/nadkarni/eav_cr_frame.htm
  46. 46. 45 10. Apêndices 10.1. Apêndice A – Texto que conceitua SaaS A seguir, um trecho que conceitua SaaS, extraído do livro SaaS 100 Success Secrets, de Gerard Blokdijk (2008, p. 105) traduzido: Você ainda lembra dos dias em que estava em frente a centenas de CDs de novos softwares recém licenciados e dispositivos de hardware, pensando em qual deles iria entrar orçamento, e se os requisitos mínimos iriam compatibilizar com o seu computador? Você ainda adere à ideia de ter que chamar os seus funcionários para garantir que há backups todos os arquivos, para prevenir-se contra perdas de dados por queda de energia? Que tal ir à mais próxima loja de informática e comprar os mais recentes patches e upgrades para manter os padrões de operações de negócios? Graças aos céus você já pode deixar tudo isso para trás. Se você está abrindo um negócio, ou já possui um, você vai querer considerar a implantação de Softwares como Serviço (SaaS) para facilitar todas as suas preocupações em um instante. Sim, isso é verdade. Tudo o que você precisa ter é um computador com internet e está tudo pronto. Não há necessidade de adquirir mais hardwares ou softwares. Tudo está bem na sua frente, graças ao seu confiável navegador. O conceito é simples e você se preocupa apenas com seu negócio e o fornecedor de SaaS cuidará do fluxo crítico de informações do seu sistema. O legal dessa solução é que seus dados de importância podem ser acessados a qualquer hora. Além disso, todos os registros e informações são mantidos num servidor de alta segurança, portanto pode ficar tranquilo que eles estão seguros. Por último, assinar uma solução SaaS é muito acessível. Então pense nisso. Assine agora e deixe o resto com o fornecedor.
  47. 47. 46 11. Anexos 11.1. Anexo A – Relatório de respostas da pesquisa de formulário Você já ouviu falar em software como serviço (SaaS) ou computação em nuvem? Figura 10. Gráfico de resposta – Você já ouviu falar em software como serviço (SaaS) ou computação em nuvem? Opção Respostas Porcentagem Não 24 24% Sim, mas não sei o que significa 10 10% Sim, e sei do que se trata 68 67% Você utilizaria um software que fica hospedado, juntamente com seus dados, na infra estrutura do fornecedor, a troco de não precisar se preocupar mais com TI (software e hardware)? Figura 11. Gráfico de resposta – Você utilizaria um software que fica hospedado, juntamente com seus dados, na infra estrutura do fornecedor, a troco de não precisar se preocupar mais com TI (software e hardware)? Opção Respostas Porcentagem Sim 50 49% Posso cogitar 38 37% Não 14 14%
  48. 48. 47 "Assinaria" um software assim mesmo que seu fornecedor NÃO prestasse nenhum tipo de customização, exceto as opções oferecidas pela própria aplicação? Figura 12. Gráfico de resposta – “Assinaria” um software assim mesmo que seu fornecedor NÃO prestasse nenhum tipo de customização, exceto as opções oferecidas pela própria aplicação? Opção Respostas Porcentagem Sim 54 53% Não 48 47% A possibilidade de precisar de customizações, em um software não customizável, causaria algum tipo de receio em você na hora de "assinar", mesmo que ele te atenda perfeitamente no momento? Figura 13. Gráfico de resposta – A possibilidade de precisar de customizações, em um software não customizável, causaria algum tipo de receio em você na hora de "assinar", mesmo que ele te atenda perfeitamente no momento? Opção Respostas Porcentagem Sim 65 64% Não, pois sei que novas necessidades serão supridas. 29 28% Não, de modo nenhum. 8 8%
  49. 49. 48 Se você adquirisse um software, de qualquer natureza, para a empresa onde trabalha, qual você crê ser a probabilidade de necessitar customizações dentro de seis meses? Figura 14. Gráfico de resposta – Se você adquirisse um software, de qualquer natureza, para a empresa onde trabalha, qual você crê ser a probabilidade de necessitar customizações dentro de seis meses? Opção Respostas Porcentagem 0 - Nula 3 3% 1 3 3% 2 4 4% 3 2 2% 4 2 2% 5 18 18% 6 12 12% 7 13 13% 8 20 20% 9 6 6% 10 - Com certeza 19 19%

×