49
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

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

Embed Size (px)

Citation preview

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

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

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

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

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

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.

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

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.

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

Í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

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

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

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

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

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

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

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

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

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

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:

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

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.

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

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.

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

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;

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

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.

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

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

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

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.

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

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.

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

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

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

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.

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

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

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

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.

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

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

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

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.

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

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.

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

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.

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

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.

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

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)

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

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

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

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.

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

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á-

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

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.

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

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);

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

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

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

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

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

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

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

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.

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

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.

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

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á

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

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

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

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.

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

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.

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

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.

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

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:

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

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/

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

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

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

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.

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

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%

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

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%

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

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%