ANDRÉ FREITAS LOPES
ENTREGANDO SOFTWARE EM LOCAIS COM POUCA
INFRA-ESTRUTURA COMPUTACIONAL: IMPLEMENTANDO SISTEMAS
ERP COMO SOFTWARE COMO SERVIÇO
FEIRA DE SANTANA 2010
ANDRÉ FREITAS LOPES
ENTREGANDO SOFTWARE EM LOCAIS COM POUCA
INFRA-ESTRUTURA COMPUTACIONAL: IMPLEMENTANDO SISTEMAS
ERP COMO SOFTWARE COMO SERVIÇO
Trabalho de Conclusão de Curso apresentado à Coordenação do Curso de Engenharia de Computação da Universidade Estadual de Feira de Santana como requisito parcial à obtenção do grau de Bacharel em Engenharia de Computação.
Orientador: Prof. Msc. Kellyton dos Santos Brito
FEIRA DE SANTANA 2010
RESUMO
Este trabalho apresenta um estudo a respeito da implementação de um módulo de um sistema de gestão empresarial, Enterprise Resource Planning (ERP), em locais com pouca infra-estrutura computacional utilizando a tecnologia de Software como Serviço (SaaS). A revisão bibliográfica se consiste, principalmente, no discorrimento das características de um sistema ERP e de sistemas que utilizam a tecnologia SaaS e das vantagens e desvantagens da adoção do ERP e do uso de SaaS, por parte das pequenas e médias empresas (PMEs). Além disso, são explanadas as características, descrições e tipos das tecnologias que são utilizadas na implementação do trabalho: Web Services, Service Oriented Architecture (SOA) e Business
Process Execution Language (BPEL). Nas seções seguintes são apresentados os resultados
dos objetivos desse trabalho: seleção (escolha do módulo de Compras, devido ao seu caráter simples, porém importante perante ao funcionamento do sistema), projeto (elaborado utilizando a tecnologia de SOA), implementação (disponibilizando as funcionalidades do sistema como serviços web), testes e validação de um módulo de um sistema ERP. Finalizando o trabalho, são apresentados os porquês a respeito da escolha do modelo SaaS (baseado em assinatura) em vez do tradicional (baseado em licença) para as empresas que dispõem de poucos recursos e de pouca infra-estrutura computacional, sendo o principal deles o custo total de propriedade.
ABSTRACT
This paper presents a study on the implementation of a module of an enterprise management system, Enterprise Resource Planning (ERP), in low computing infrastructure using the technology of Software as a Service (SaaS). The literature review it is mainly in discoursing on the characteristics of an ERP system and systems using SaaS technology, the advantages and disadvantages of adopting ERP and the use of SaaS for small and medium enterprises (SMEs).Moreover, the features are explained, descriptions and types of technologies that are used in the implementation of work: Web Services, Service Oriented Architecture (SOA) and Business Process Execution Language (BPEL). In the following sections present the fruits of the objectives of this project: selection (choice of Purchasing module, for being a simple but important before the operation), design (prepared using the technology of SOA), implementation (providing the features system as web services), testing and validation of a module of an ERP system. Finally the paper presents the whys about the choice of model (SaaS subscription-based) instead of the traditional (based on license) for businesses that have few resources and little computing infrastructure, the main one being the total cost of ownership.
LISTA DE FIGURAS
Figura 1 – Estrutura típica do funcionamento de um sistema ERP ... 15
Figura 2 – Os quatro níveis do modelo de maturidade SaaS, ilustrando a evolução do suporte multi-inquilino ... 25
Figura 3 – Componentes de um Web Service ... 31
Figura 4 – Pilha de protocolos dos Web Services ... 32
Figura 5 – Exemplo de uma coreografia ... 37
Figura 6 – Exemplo de uma orquestração ... 37
Figura 7 – Os tipos básicos de composições ... 38
Figura 8 – Principais características do Grails ... 46
Figura 9 – Pilha de tecnologias do Grails ... 47
Figura 10 – Divisão em camadas da arquitetura da aplicação ... 49
Figura 11 – Modelagem do banco de dados ... 50
Figura 12 – Arquivo WSDL do Web Service de Cotação de Mercadorias ... 52
Figura 13 – Processo mestre da orquestração coordenando a invocação de um método ... 53
Figura 14 – Orquestração da geração do Pedido de Compra a partir de uma Cotação de Mercadoria ... 54
Figura 15 – Fluxo de dados da aplicação ... 56
Figura 16 – Tela inicial da aplicação ... 57
Figura 17 – Resultados de uma consulta de registros ... 58
Figura 18 – Criando uma Condição de Compra ... 58
Figura 19 – Condição de Compra criada com sucesso ... 59
Figura 20 – Condição de Compra não criada ... 59
Figura 21 – Atualizando uma Condição de Compra ... 60
Figura 22 – Deletando uma Condição de Compra ... 61
Figura 23 – Condição de Compra excluída ... 61
Figura 24 – Buscando uma chave estrangeira que é utilizada na operação create ... 62
LISTA DE TABELAS
Tabela 1 – Benefícios proporcionados por sistemas ERP ... 18
Tabela 2 – Especificação WSDL ... 33
Tabela 3 – Tipos básicos de atividade da composição ... 39
Tabela 4 – Análise comparativa dos frameworks segundo os critérios estabelecidos... 48
SUMÁRIO
Introdução ... 9
1 Enterprise Resource Planning ... 13
1.1 Características dos sistemas ERP ... 13
1.2 Vantagens da adoção de um sistema ERP ... 15
1.3 Desvantagens da adoção de um sistema ERP ... 20
2 Software como Serviço - SaaS ... 21
2.1 Características da abordagem de Software como Serviço ... 22
2.2 Níveis de maturidade do modelo SaaS ... 24
2.3 Vantagens da abordagem de Software como Serviço ... 25
2.4 Desvantagens e riscos da abordagem de Software como Serviço ... 27
3 Arquitetura Orientada a Serviço (Service Oriented Architecture – SOA) ... 27
3.1 Características da SOA ... 28
3.2 Benefícios da SOA ... 29
3.3 Desvantagens da SOA ... 29
4 Web Services ... 30
4.1 Características dos Web Services ... 30
4.2 Arquitetura dos Web Services ... 30
4.3 Mensagens SOAP (XML) ... 31
4.4 Web Service Description Language (WSDL) ... 32
4.5 Universal Description, Discovery, and Integration (UDDI) ... 33
4.6 Vantagens dos Web Services ... 34
4.7 Desvantagens dos Web Services ... 34
5 Business Process Execution Language (BPEL) e a Composição de Web Services ... 35
5.1 Características do BPEL ... 35
5.2 Orquestração e Coreografia ... 36
5.3 Tipos e Componentes básicos da uma Composição ... 37
6 Desenvolvimento da Aplicação ... 40
6.1 Contexto ... 40
6.2 Requisitos ... 41
6.4 Arquitetura e Implementação ... 48
6.4.1 Camada de persistência de dados ... 49
6.4.2 Camada de comunicação dos web services ... 50
6.4.3 Camada de orquestração ... 52
6.4.4 Camada de controle ... 55
6.4.5 Camada de apresentação dos dados ... 56
7 Resultados ... 57 7.1 Funcionamento da aplicação ... 57 7.1.1 Listagem de dados ... 57 7.1.2 Operação create ... 58 7.1.3 Operação update ... 59 7.1.4 Operação delete ... 60 7.1.5 Operação search ... 61 7.2 Avaliação da aplicação ... 62
7.3 Considerações sobre os resultados obtidos ... 64
Considerações Finais ... 65
INTRODUÇÃO
Contexto e motivação
Devido à globalização inerente ao ambiente comercial do início do século XXI, as empresas se encontram cada vez mais em situações de competitividade e concorrência. Elas necessitam ter uma ampla visão de mercado para poder oferecer produtos e serviços com mais qualidade, a fim de satisfazer as crescentes exigências dos clientes, e para aumentar o poder de barganha frente aos seus fornecedores. Para tanto, faz-se necessário o uso de sistemas de informação que, por meio de seus recursos tecnológicos, apresentem os mecanismos indispensáveis para atingir tais objetivos.
Com o uso dos avanços da Tecnologia da Informação (TI), as organizações podem ganhar em agilidade, velocidade e automação dos processos internos, com os gestores passando a ter uma visão ampla de seus negócios tanto internamente quanto externamente à empresa, além de fazer com que os níveis de produtividade e eficácia sejam incrementados e o fluxo de informação seja otimizado. Contudo, esses sistemas ao serem utilizados para atender a requisitos específicos das unidades de negócio podem causar fragmentação da informação, dificultando sua obtenção de maneira sólida e consistente. Então, faz-se necessário o uso de um único que interligue todos os setores e atividades da organização agregando as funcionalidades dos processos de negócio (CORRÊA et al, 1997). Um sistema de informação capaz de integrar e gerenciar todos os setores de uma empresa é o ERP (Enterprise Resource Planning, ou Planejamento dos Recursos Corporativos).
Trata-se de um conjunto integrado de sistemas ou pacotes de gestão empresarial que utiliza recursos de automação e informatização e contribui para o gerenciamento dos negócios empresariais, utilizando uma base de dados única e compartilhada por todos os seus módulos ou subsistemas (NEXTG, 2009). A gestão empresarial, por sua vez, pode ser caracterizada como o processo de operação funcional de uma empresa, que envolve elementos como a otimização das atividades e procedimentos operacionais e gerenciais, planejamento e análise dos investimentos atuais e futuros, além da análise do crescimento da organização (NEXTG, 2009); assim sendo, gerir uma empresa com esse software traduz-se em benefício para sua administração geral, utilizando toda a gama de recursos que ele oferece.
Dessa forma, a informatização de uma empresa através desse sistema a torna mais competitiva uma vez que desperdícios são reduzidos, retrabalhos são evitados e tem-se um aumento da produtividade. Com a sua adoção, tem-se um melhor controle das finanças, a informalidade é eliminada e os sistemas corporativos como um todo são organizados. Além disso, as regras de negócio passam a ser melhor definidas e os controles de estoque e fiscal administrados com mais rigor e eficiência.
Apesar das vantagens obtidas com sua utilização, a adoção dos sistemas ERP demanda investimentos e (re)estruturação organizacional, tornando-se onerosa para as empresas, principalmente para as pequenas e médias. Os custos relacionados são elevados e envolvem criação, gerenciamento e upgrade de infra-estrutura de hardware, de software, de rede e de pessoal, licença do software, manutenção, suporte, segurança, backup, customização, integração com outros sistemas, treinamento de pessoal, dentre outros.
Essa situação de alto custo tem dificultado o uso pelas pequenas e médias empresas (PMEs) brasileiras. De acordo com pesquisa recente (CETIC.br, 2008), apenas 35% das pequenas e 54% delas possuem software de gestão empresarial. Além disso, o mercado é centralizado em três grandes players que concentram 80% desse tipo de sistema em uso (FGV, 2009). Como o mercado é fortemente concentrado, praticamente não há concorrência, fazendo com que os seus preços continuem altos, dificultando o crescimento do percentual de PMEs que os possuem. Por outro lado, considerando os dados das duas pesquisas, verifica-se que apesar de concentrado o mercado, as pequenas empresas ainda não são atendidas, configurando uma área que necessita de novas pesquisas e de desenvolvimento.
Proposta de solução
Nesse contexto, este trabalho tem por objetivo desenvolver uma possível solução para viabilizar a implantação de sistemas ERP em micro e pequenas empresas, como um serviço
web, utilizando as tecnologias de Software como Serviço (Software as a Service - SaaS) e
Web Services. Ao contrário da abordagem tradicional, em que todos os custos envolvidos na
aquisição, uso e manutenção do software são de responsabilidade do cliente, na abordagem do SaaS a entrega das funcionalidades da aplicação é feita através de um modelo de subscrição. Nesse modelo, o software não se torna uma propriedade do cliente, o que ocorre é que uma solução completa formada de hardware, software e serviços é disponibilizada remotamente
para o cliente através de um provedor de serviço (PRESTE, 2008). O custo com o sistema é o pagamento de uma taxa mensal, sendo suficiente para a sua utilização apenas o acesso à Internet por um browser, ou navegador, sem a necessidade de investimentos adicionais.
Implantar um ERP como serviço web é uma solução viável devido ao avanço do uso da Internet por parte das organizações, haja vista que, segundo a Pesquisa TIC Empresas 2008 (CETIC.br, 2008), 89% das pequenas e 99% das médias e grandes possuem acesso à Internet no Brasil.
Contextualização da solução
A empresa de desenvolvimento de software Órbita Tecnologia, situada na cidade de Feira de Santana – BA, será a parceira do desenvolvimento da solução. Atualmente, o principal produto da linha de desenvolvimento da empresa é um sistema ERP para desktop, com as implementações de diversos módulos parcial ou totalmente concluídas. Dessa forma, o que esse trabalho se propõe a fazer é o desenvolvimento de um protótipo de um módulo que já se encontra totalmente implementado, utilizando da tecnologia de Software como Serviço para, então, disponibilizá-lo como um serviço online como um serviço Web, acessível através da Internet.
Fora do escopo
Por se tratar de um trabalho que desenvolve um protótipo de um sistema ERP disponibilizado pela Internet, alguns elementos e funcionalidades não serão abordados:
• Desenvolvimento de mecanismos complexos e sofisticados para o controle de acesso de usuários. A segurança dar-se-á por verificação de login e senha de usuário quando do acesso ao sistema devendo, portanto, estar previamente cadastrado o usuário para ter o acesso permitido;
• Desenvolvimento web de outras partes e funcionalidades do sistema além daquelas explicitadas na seção anterior.
Organização da monografia
Essa dissertação está organizada da seguinte forma:
Capítulo 1: apresenta um estudo bibliográfico a respeito de sistemas ERP. Capítulo 2: apresenta um estudo bibliográfico sobre Software como Serviço. Capítulo 3: apresenta uma revisão bibliográfica a respeito de SOA.
Capítulo 4: elucida alguns conceitos principais no que diz respeito a web services. Capítulo 5: traz uma revisão teórica sobre composição de web services sob a ótica do BPEL.
Capítulo 6: apresenta o desenvolvimento da aplicação. Capítulo 7: ilustra os resultados desse trabalho.
1 Enterprise Resource Planning
O trabalho objetiva desenvolver um sistema de gestão empresarial que funcione como SaaS. Então, nesta seção, é apresentada uma revisão bibliográfica a respeito de ERP e, na seguinte, tem-se uma discussão sobre SaaS. Os quesitos analisados foram características, vantagens e desvantagens da adoção desse tipo de sistema por parte das empresas.
1.1 Características dos sistemas ERP
Sistemas ERP são um conjunto integrado de aplicações que dão o suporte necessário às principais áreas de negócio como gestão de materiais, planejamento e controle de produção, vendas, contabilidade, gestão de recursos humanos e as principais áreas administrativas das empresas envolvendo a organização como um todo, indo desde o relacionamento com o cliente até as informações financeiras e contabilísticas (ROSEMANN, 2000).
Um sistema ERP tem como principal característica a capacidade de integrar processos de negócios, simples ou complexos, que podem ser desde simples transações executadas em uma unidade até atividades de planejamento estratégico nos escritórios dos executivos da empresa, ou até mesmo envolver clientes e fornecedores. Com a padronização e a automação dos processos proporcionados por esse sistema, os dados e as informações tornam-se mais claros e mais visíveis não sendo necessário concentrar todas as decisões nos níveis mais altos da administração da instituição.
Outra característica marcante desse sistema é o controle de ações que proporciona: se certas transações só podem ser executadas por usuários específicos da organização, o sistema trilha quem é o responsável por elas e quando são concluídas; há também o travamento de processos quando eles necessitam de que certas ações sejam tomadas, mas ainda não foram, sendo liberados quando tais ações forem finalizadas. O desenho arquitetural de um ERP propicia esse tipo de controle de fluxo de informações e de comportamento através de sua estrutura (STRONG, VOLKOFF, ELMES, 2003).
Por ser um sistema complexo com um escopo muito abrangente e inúmeras funcionalidades, ele pode ser utilizado em todos os níveis da organização (operacional, tático e estratégico). Para tanto, os usuários (que usam o sistema para executar transações específicas, ou para recuperar informações, ou ainda que detenha um grande conhecimento do sistema) não devem se ater a um conjunto restrito de funções, mas buscar os melhores caminhos para aumentar o desempenho de seus trabalhos. O foco deve ser a empresa (Enterprise) e não o sistema (System) para, assim, tirar o máximo proveito dos benefícios proporcionados pelo mesmo. (DAVENPORT, 1998; SOUSA, 2002).
A padronização e a automação dos processos aliadas à sua integração formam os três conceitos principais do ERP e proporcionam rapidez e eficiência ao setor administrativo empresarial (SASOVOVA, HENG, NEWMAN, 2001; MENDES, ESCRIVAO FILHO, 2002), além de disseminar e compartilhar práticas de negócio eficazes (NAH, LAU, KUANG, 2001). Em consequência disso, as tomadas de decisões são melhores executadas, o controle sobre as atividades empresariais é intensificado e o fluxo de informações dentro da empresa ocorre de maneira mais transparente.
Os recursos e as funcionalidades do sistema são disponibilizados e agrupados através de módulos que gerenciam um setor e fazem a interconexão com os demais (SASOVOVA, HENG, NEWMAN, 2001; DAVENPORT, 1998). A empresa pode escolhê-los baseada nos processos de negócios desejados e, assim, implementar o sistema e realizar alterações dos processos dentro das limitações de recursos e de tempo da implementação do projeto. A Figura 1 ilustra uma estrutura típica de um sistema ERP.
A essência do sistema, em caráter técnico, está na existência de uma única base de dados interligando todas as atividades comerciais da empresa, tanto a nível local quanto global. Essa base tem a capacidade de coletar e distribuir os dados por todos os módulos da aplicação (as corporações podem optar por implementar apenas os módulos que são mais convenientes para o seu negócio, com os benefícios e os riscos caminhando na mesma proporção do tamanho do sistema), fazendo com que qualquer ação tomada (inserção, atualização ou deleção de dados) seja refletida em tempo real para todas as unidades de negócio ao redor do mundo.
Figura 1: Estrutura típica do funcionamento de um sistema ERP (DAVENPORT, 1998).
DAVENPORT (1998) e PADILHA e MARINS (2005) discutem os impactos que o ERP causa dentro de uma instituição. Para DAVENPORT (1998), o impacto acontece na organização e na cultura da empresa de modo antagônico. De um lado pode melhorar o caráter flexível e de inovação, mas por outro lado pode solidificar o caráter hierárquico da organização. Para PADILHA e MARINS (2005), o impacto acontece na forma de pensar e de agir das pessoas dentro da organização. O pensamento deve ser global e não apenas local, ou seja, os resultados das atividades, sejam eles bons ou ruins, são refletidos para todos os departamentos relacionados com o processo em questão. Por conta disso, um problema que porventura surja é rapidamente disseminado por toda a empresa afetando o seu desempenho.
Conforme discorrido, o ERP possui tanto características técnicas como base de dados única e globalizada, ações refletidas em tempo real, quanto administrativas como automação e integração de todo tipo de processo, controle eficiente de atividades e melhoria do fluxo de informações. Mas é seu impacto na forma de pensar, de agir e de se comportar das pessoas e na estrutura e atuação da organização que vai proporcionar que as atividades rotineiras e as tomadas de decisão possam ser desempenhadas com maior qualidade, caso esse impacto seja assimilado positivamente.
1.2 Vantagens da adoção de um sistema ERP
Os sistemas ERP possuem algumas qualidades que justificam o investimento realizado: flexibilidade e usabilidade, acessibilidade, integração e workflow. Quanto a
flexibilidade, é a capacidade de manter-se coerente e estável com as mudanças de requisitos. A vantagem da usabilidade é a moderna interface de usuário fornecida pela arquitetura cliente-servidor, sendo hábil para o uso das tecnologias mais atuais, além de possuir uma aparência comum, intuitiva e fácil, com todas as tarefas sendo executadas por meio de um único sistema.
Já no quesito da acessilidade, os benefícios ficam por conta da facilidade de acesso aos dados propiciando uma melhor tomada de decisão. No âmbito da integração, o sistema simplifica o gerenciamento de Tecnologia da Informação (TI), pois diferentes aplicações estão integradas em um único software, compartilhando dados e interligando informações. Em relação ao workflow, elimina ineficiências com a introdução de novos procedimentos e ajuda na identificação de processos que precisam ser redesenhados.
A adoção de um ERP traz tanto benefícios financeiros quantificáveis quanto não-quantificáveis (OLIVER, ROMM, 2000). Dentre aqueles que podem ser mensurados, estão a redução de custos com pessoal e com equipamentos tecnológicos. Dentre os não-quantificáveis, encontram-se a melhoria da qualidade e da quantidade das informações disponibilizadas.
No âmbito gerencial, os principais benefícios de um sistema ERP são a melhor clareza dos objetivos gerenciais e dos processos (LIVERMORE, RAGOWSKY, 2002) e o aumento da disciplina das operações organizacionais (STRONG, VOLKOFF, ELMES, 2003). Dessa forma, são desenvolvidas estruturas e especializações para gerir as funções como um todo da organização e o controle operacional sobre os subordinados é melhorado. Outrossim, é feito o alinhamento dos processos com as estratégias da organização, um fator de sucesso empresarial característico.
Um ERP também contribui para algumas variáveis estratégicas organizacionais (SACCOL et al., 2003). Segundo esse estudo, as que merecem destaque são as seguintes:
• Fornecedor;
• Economia de Produção (planejamento e controle de produção); • Eficiência/eficácia interna da organização;
• Eficiência inter-organizacional; • Consumidores e Comprados; • Mercado.
Em relação à variável Fornecedor, os principais benefícios foram: aumento da influência das empresas sobre os seus fornecedores, redução de incertezas no lead-time por
conta da disponibilidade em tempo real da informação, identificação de fornecedores alternativos, localização de produtos e serviços substitutos, monitoramento da qualidade de produtos e serviços recebidos, aumento de decisões make or buy (processo em que é analisado se é mais vantajoso para a empresa comprar, alugar ou fazer algum produto ou serviço).
Já na variável Economia de Produção, os benefícios identificados foram: aumento da produtividade em consequência da automação, aumento do nível de produção, melhor utilização de equipamentos e máquinas, diminuição de gastos com software.
Quanto à Eficiência Organizacional Interna, os principais fatores positivos foram: melhoria das discussões e reuniões beneficiando também as tomadas de decisão, melhor coordenação entre as áreas funcionais internas provendo uma integração organizacional, avaliações anuais dos relatórios orçamentários feitas com maior qualidade propiciando uma gestão financeira melhor, aperfeiçoamento do planejamento estratégico, incremento das margens de lucro.
No âmbito da Eficiência Inter-Organizacional, as principais contribuições são: melhoria da comunicação entre as organizacões, controle das atividades localmente ou globalmente por meio da unificação das atividades, maior proximidade com fornecedores e clientes, produtos e serviços com um valor agregado maior.
Nas duas variáveis restantes também foram identificados pontos positivos, contudo em menor número. Na variável Consumidores e Compradores, o principal benefício é o suporte administrativo através de alguns dos seus módulos como faturamento e gestão de estoque. Enquanto que no fator Mercado as vantagens ficaram por conta da melhor previsão de vendas e da maior competitividade da companhia.
O principal motivo para o investimento em soluções ERP, segundo SOUSA (2007), é a integração dos diversos processos de negócio a fim de simplificar as operações para que as tomadas de decisões sejam efetuadas de modo mais rápido. Outros fatores também podem impulsionar esse investimento como a redução de gastos operacionais e a melhoria do serviço ao cliente. Mais claramente para as PMEs podem ser observadas as vantagens de crescimento da empresa, melhoramento na gestão e nos processos financeiros, otimização da gestão de recursos e melhor gestão das operações.
Um sistema ERP traz algumas contribuições para os negócios de uma empresa, em maior ou menor intensidade. De acordo com uma pesquisa realizada por (ZWICKER, DE SOUZA, 2006), a principal contribuição é a integração da informação entre os departamentos, seguida pelas contribuições de melhoria da performance operacional e dos empregados e melhoria do fluxo de informação no supply chain. Em contrapartida, o ERP por si só não
contribui para o cumprimento da expectativa do aumento de vendas e do aumento da fatia de mercado.
Vantagens da adoção de um ERP também podem ser observadas na esfera operacional da organização como a redução ou eliminação de tarefas redundantes e repetitivas, ou re-trabalhos, o aumento da usabilidade por conta do caráter intuitivo e da fácil manipulação e entendimento operacional do sistema. O trabalho acontece de maneira mais ágil e prática, com os documentos sendo elaborados e transitados dentro da organização por meio eletrônico, otimizando o fluxo e o processamento das informações, minimizando gastos com horas extras desnecessárias.
Sendo uma solução completa que abrange toda a instituição, o ERP não deve possuir concorrência para que suas atenções não sejam divididas com outros sistemas e, consequentemente, seus benefícios não sejam minizados. Ou seja, os sistemas legados devem ser eliminados. Por atuarem de modo isolado de outros sistemas (cada um é responsável por executar alguma função específica dentro da organização), eles podem trazer auxílios para atividades comerciais particulares. Contudo, por não atuarem de modo sincronizado e conjuntamente, eles dificultam a produtividade e o desempenho dos negócios.
Para DAVENPORT (1998) os principais prejuízos que os sistemas legados trazem são o armazenamento de dados redundantes, a criação de canais de comunicação entre os sistemas quando houver a necessidade de transferir dados de um sistema para outro, a defasagem de alguns sistemas em relação a outros mais atualizados. Dessa forma, assim como seus sistemas, os negócios da empresa que utilizam sistemas legados são fragmentados. Contudo, como um sistema ERP é caracterizado pela total integração de toda a empresa, ele resolve os problemas de informalidade, retrabalhos e duplicidades ocasionados pelos sistemas legados, dando maior agilidade nas tomadas de decisões.
SHANG e SEDDON (2000) fizeram um abrangente framework em que os benefícios que um sistema ERP pode proporcionar, no decorrer de seu uso, são classificados em cinco dimensões: operacional, gerencial, estratégica, infra-estrutura de TI, organizacional. A tabela 1 mostra a triagem dos benefícios de cada uma das dimensões.
Tabela 1 - Benefícios proporcionados por sistemas ERP (continua).
Dimensão Benefícios
1. Operacional 1.1 Redução de custos
Tabela 1 - Benefícios proporcionados por sistemas ERP (conclusão).
Dimensão Benefícios
1. Operacional 1.3 Redução de custos
1.4 Redução do tempo de ciclo 1.5 Aumento da produtividade 1.6 Aumento da qualidade dos dados
1.7 Melhoria dos serviços prestados aos clientes 2. Gerencial 2.1 Melhoria da gestão de recursos
2.2 Melhoria da tomada de decisão 2.3 Melhor controle do desempenho
3. Estratégica 3.1 Suporte aos planejamentos atuais e futuros de crescimento dos negócios
3.2 Suporte às alianças comerciais 3.3 Suporte à inovação
3.4 Suporte ao custo de liderança
3.5 Suporte à diferenciação dos produtos 3.6 Suporte às ligações externas
3.7 Capacitação à expansão mundial 3.8 Capacitação ao comércio eletrônico 4. Infra-estrutura de TI 4.1 Aumento da flexibilidade
4.2 Redução de custo com TI
4.3 Aumento da capacidade de infra-estrutura de TI 5. Organizacional 5.1 Apoio às mudanças organizacionais
5.2 Facilitação do aprendizado do negócio e da capacitação do empregado
5.3 Crescimento do poder
5.4 Mudança de cultura com visão comum
5.5 Mudança no comportamento do funcionário com perda de foco
5.6 Aumento da satisfação do funcionário
Com o ERP há diminuição de informalidades e trabalhos repetidos proporcionando aumento de produtividade, maiores eficácia e eficiência intra e interorganizacional e melhor desempenho por parte dos funcionários. Outrossim, sistemas legados são eliminados e tem-se acesso às tecnologias atuais. Devido a sua essência integradora, esse tipo de aplicação gera benefícios a inúmeros setores da empresa indo desde a redução de custos com pessoal e processos duplicados até o incremento da satisfação dos funcionários.
1.3 Desvantagens da adoção de um sistema ERP
Quando da adoção de um sistema ERP, diferentes módulos podem estar envolvidos compreendendo o software por completo, ou não, dependendo da disponibilidade financeira da empresa que pretende adquirir o sistema. Todavia, diversos custos estão envolvidos na implementação de um sistema ERP (PADILHA, MARINS, 2005): custos de hardware (servidores, estações de trabalhos, infra-estrutura de rede), de aquisição da licença dos pacotes do sistema, de consultoria, de pessoal, de treinamento. Desses custos, os associados ao processo de implementação, como consultoria, são maiores que os custos de hardware e
software, pois eles trazem consigo o conhecimento dos consultores tanto do sistema quanto da
empresa agregando valor ao serviço que prestam.
A implementação de sistemas ERP envolve uma reengenharia dos processos de negócio tendo como consequência uma mudança da cultura organizacional. Além disso, por conta de sua complexidade, requer o dispendimento de grandes volumes de tempo, dinheiro e especialização. DAVENPORT (1998) aponta que muitas empresas falham nesse processo por não conseguirem conciliar seus interesses de negócio com a lógica de negócio que esse tipo de sistema impõe, influenciando diretamente na cultura e na estratégia da empresa. Assim sendo, se não houver uma harmonia entre ambos a adoção de um ERP pode trazer muitos problemas (perda de grandes quantias de dinheiro, diminuição da vantagem competitiva, etc.). A adoção de um ERP faz com que a empresa ajuste ou até mesmo redesenhe seus processos para haver um casamento eficiente e eficaz dos seus negócios com o software e não o contrário, já que o sistema reflete a forma de operação das empresas em geral e questões como customização são particulares de cada companhia que adquire o ERP, customização essa que pode ser realizada por uma terceira empresa sob a homologação de uma consultoria (DAVENPORT, 1998; PADILHA, MARINS, 2005).
Os maiores problemas na adoção de um ERP e que, por isso, podem ser maléficas para a saúde financeira e contabilística da empresa são a estimativa errônea do retorno de investimento (ROI – Return of Investment), que é a recuperação dos valores financeiros gastos com a implantação do sistema ERP, e o tempo dispendido na implantação do sistema que, quando demasiadamente demorado ou até mesmo não cumprido em sua totalidade, gera custos adicionais.
Os elementos mais críticos que devem ser analisados com cautela na adoção de um ERP são os altos custos de aquisição da solução (conhecimentos técnico e financeiro, além do tempo gasto com a implantação), a falta de compatibilidade dos interesses de negócio de algumas empresas e daqueles impostos pelo sistema ocasionando perdas de capital e de competitividade, as mudanças organizacionais necessárias e o cálculo errado do retorno de investimento do sistema. Tratam-se de riscos e impactos que devem ser bem estudados, avaliados e gerenciados a fim de que sejam irrelevantes quando comparados aos benefícios proporcionados por esse tipo de sistema.
O uso de sistemas ERP por parte das organizações é de fundamental importância para que elas consigam otimizar o uso de seus recursos e a execução de suas atividades a fim de que, dessa forma, possam extrair e usufruir ao máximo do que o mercado pode oferecer, conforme citado. Todavia, ainda existem alguns problemas em aberto como os relacionados a investimentos, o que dificultam a adoção do sistema pelas empresas que possuem pouca infra-estrutura computacional como as PMEs. Assim sendo, pesquisas entre academia e indústria são necessárias para que sejam estudadas e encontradas soluções que venham a resolver esses problemas.
2 Software como Serviço - SaaS
Esta seção faz uma análise a respeito do modelo SaaS de entrega de software. São apresentadas as características do modelo, além de uma explanação das vantagens e desvantagens que ele proporciona.
2.1 Características da abordagem de Software como Serviço
Software como serviço (SaaS – Software as a Service) é um modelo de entrega de
software em que o provedor do serviço tem a propriedade sobre o sistema e o disponibiliza
através da Internet para que seja acessado pelas clientes. Trata-se de uma aplicação multi-inquilino e não apenas uma multi-usuário com uma interface web para alguma outra que funcione no back-end. Uma solução SaaS é arquitetada para funcionar pela Internet e para vários clientes. Nesse modelo, cada organização que é cliente do serviço é um inquilino e cada inquilino pode ter diversos usuários. Nessa paradigma de entrega de software, a sua hospedagem não fica na mesma localização de quem adquire sua posse (AULBACH, 2009; HUDLI, SHIVARADHYA, HUDLI, 2009; NITU, 2009).
As aplicações entregues como serviço são baseadas em um modelo de assinatura e variam sua cobrança de acordo com o provedor. A taxação pode ser mensal, por quantidade de usuários, por volume de transações, por uso da aplicação. Esse valor básico pode sofrer acréscimos caso alguns quesitos sejam requisitados em uma quantidade ou disponibilidade maior, como aumento da largura de banda entre o provedor e o cliente ou um maior espaço de armazenamento de dados.
O provedor do serviço define tudo o que vai ser oferecido, especificando níveis de qualidade e o preço relativo a cada um deles, enquanto que o cliente adquire e usufrui do serviço fornecido. Os serviços são hospedados e implantados na Internet acarretando nos custos de suporte, manutenção, desenvolvimento e operação por parte do provedor, enquanto que o cliente paga exatamente pelo que usa, nem a mais, nem a menos (CHEN, SORENSON, 2008; TILSNER, FIECH, SPECHT, 2009).
Cada um dos inquilinos pode configurar e fazer um ajuste fino da aplicação para que atenda da melhor maneira possível os seus anseios (NITU, 2009; HUDLI, SHIVARADHYA, HUDLI, 2009). Tudo pode ser configurado: política e controle de acesso ao sistema e aos dados (definição de grupos e privilégios de usuário, restrições de segurança), interface de usuário (aparência e disponibilidade dos elementos visuais), dados (através de diferentes modelos para o armazenamento e criação de dados), processos e regras de negócio (retrata o comportamento da aplicação, que pode ser definido ou personalizado pelo inquilino), e outros elementos característicos de cada tipo de aplicação. Ajuste esse feito pela própria interface Web da aplicação.
Dessa forma, não há a necessidade de manter internamente uma equipe especializada de TI já que a responsabilidade de administração e gerenciamento é do provedor do serviço. O que existe é um tipo de usuário responsável por configurar a aplicação, que deve ser feita de modo fácil e intuitivo. Outro tipo de usuário, o usuário comum, utiliza-a tendo acesso aos recursos e dados que foram configurados para ele.
Alguns novos conceitos são utilizados no SaaS. Os que merecem maior destaque são (NITU, 2009):
• Virtualização;
• Computação nas Nuvens;
• Arquitetura Orientada a Serviços (SOA – Service Oriented Architecture); • Web 2.0;
• Aplicação Rica da Internet (RIA - Rich Internet Application).
Na Virtualização, que é o que faz a Computação nas Nuvens funcionar, o uso dos recursos computacionais é abstraído, seja hardware, sistema operacional em uso ou até mesmo os próprios recursos da aplicação. Ou seja, não existe a necessidade da presença física do recurso no mesmo lugar em que está sendo utilizada a aplicação. Com isso, é possível extrair ao máximo o que tais recursos podem oferecer maximizando a escalabilidade do sistema e minimizando os custos de infra-estrutura, sendo benéfico tanto para o provedor do serviço que não precisa investir em mais servidores quanto para os clientes que não teram esses valores repassados para a assinatura do serviço.
Com o uso de SOA, a lógica é implementada pelo provedor do serviço e não pela própria empresa ou por uma terceira parte. Já a Web 2.0 propicia a utilização de dados e informações dinâmicas e em tempo real e a facilidade de se construir soluções que tirem proveito dessas características. Enquanto que com RIA, ao fazer uso da Web 2.0, as aplicações web têm um grande potencial de prover qualidade, assim como as tradicionais feitas para desktop, mas com a vantagem também de amenizar o processamento do lado do cliente, tornando-as mais rápidas.
Outro elemento chave na arquitetura SaaS é o contrato de nível de serviço (SLA –
Service Level Agreement) (CANDAN, 2009). Nesse contrato, são explicitados tanto as
expectativas do cliente para com o serviço fornecido quanto uma descrição do serviço que está vendido por parte do provedor. Descrição essa que envolve elementos como desempenho (tempos máximo, mínimo e médio de resposta para se realizar uma transação) e disponibilidade do serviço (tempo gasto para a resolução de problemas críticos e não-críticos),
além de penalizações por falha ou má qualidade do serviço, como abatimentos da subscrição a ser paga.
Contudo, para evitar problemas de qualidade e de desempenho da aplicação, a nuvem do serviço pode fazer o balanceamento de carga do sistema de acordo com o uso, através de operações automáticas ou semi-automáticas (KONTIO, 2009). Assim sendo, quanto mais pessoas usam o serviço, mais recursos são alocados, seja capacidade de processamento, de armazenamento ou largura de banda de rede. O sistema, então, é capaz de se adaptar às contigencialidades e necessidades de momento, não deixando com que os recursos sejam subutilizados ou sobrecarregados.
Nesse contexto, verifica-se que a essência do SaaS está na responsabilidade por parte do provedor de oferecer todo o suporte da aplicação aos seus clientes, com o estabelecimento de níveis de qualidade de prestação do serviço mediante contratos. Também é ponto-chave o uso de novas tecnologias as quais oferecem recursos avançados e otimizados aumentando a qualidade e o desempenho da aplicação.
2.2 Níveis de maturidade do modelo SaaS
O SaaS possui alguns níveis de maturidade que podem ser observados na camada de aplicação (HUDLI, SHIVARADHYA, HUDLI, 2009; KWOK, NGUYEN, LAM, 2008). A classificação é feita em quatro níveis. No primeiro nível, cada instância da solução é personalizada para um inquilino especificamente com cada um deles tendo uma cópia da aplicação. Os principais fatores que levam a essa abordagem por parte do provedor são a inadequação da arquitetura da solução a customizações, a incapacidade da aplicação de suportar numerosos inquilinos e a incapacidade de crescimento ordenado e uniforme, ou falta de escalabilidade.
No segundo nível, a diferença é que em vez da aplicação ser personalizada ela é configurável, em que cada inquilino possui um leque de opções de configuração. Ou seja, é possível que a mesma aplicação tenha aparência e comportamento diferentes entre dois ou mais inquilinos. Não é mais necessário para o provedor ter de gerenciar diferentes bases de código de diferentes inquilinos, contudo ainda há a necessidade de que cada inquilino possua uma instância da aplicação.
No terceiro nível, ao contrário dos dois anteriores, a aplicação consegue suportar um grande número de inquilinos. Nesse nível, o provedor tem a capacidade de disponibilizar a mesma instância da aplicação para todos os seus clientes e a configuração para cada inquilino é feita por meio de metadados configuráveis. O quarto e último nível é o mais maduro. Nele, a falta de escabilidade é resolvida e a aplicação encontra-se no patamar de maior estabilidade, confiabilidade, segurança e desempenho. Na Figura 2, são mostrados os quatro níveis de maturidade do modelo SaaS.
Figura 2: Os quatro níveis do modelo de maturidade SaaS, ilustrando a evolução do suporte
multi-inquilino (KWOK, NGUYEN, LAM, 2008).
2.3 Vantagens da abordagem de Software como Serviço
O cliente que paga pelo SaaS tem o acesso claro e de modo antecipado, por meio do contrato de nível de serviço, a todos os custos que ele terá ao adquirir esse tipo de software, incluindo o gasto anual com a subscrição (CHEN, SORENSON, 2008). Dessa forma, o custo
total de propriedade (TCO – Total Cost of Ownership) é calculado e conhecido antes mesmo da aquisição do produto.
Os clientes não precisam se preocupar com questões de TI como backup e medidas de tolerância a falha dos dados, segurança, confiabilidade e outros elementos da infra-estrutura tecnológica, além de não dispender mais capital e tempo quando atualizações, implantações e customizações do sistema são realizadas, haja vista a rapidez com que essas operações são feitas e por já terem seus valores embutidos na subscrição. Gastos com treinamento especializado também são evitados.
Pode-se ter um alto nível de segurança dos dados através de políticas, dispositivos, sistemas de segurança e auditorias providos pela infra-estrutura de rede do provedor nos mais diversos níveis, além da encriptação de dados que é um mecanismo que a própria aplicação tem a capacidade de fornecer (HUDLI, SHIVARADHYA, HUDLI, 2009; WU, CHUA, 2008).
Para algumas literaturas (WU, CHUA, 2008; WEISSMAN, BOBROWSKI, 2009; KWOK, NGUYEN, LAM, 2008; SHAH, SOMANI, SOMAN, 2008), o SaaS também apresenta alguns benefícios como ausência de custos iniciais com infra-estrutura, manutenção e suporte da aplicação, baixo risco de hardware e software tornarem-se obsoletos e assim dispender novas quantias de capital para comprar novos equipamentos e novos softwares, rápida instalação da aplicação, alta usabilidade, custos operacionais planejados e conhecidos antecipadamente, melhoria do time-to-market, redução de gastos financeiros e de complexidade com a aquisição, instalação, configuração e manutenção do software, aumento da competitividade junto a economia global, acesso imediato as mais novas tecnologias e inovações de TI disponíveis fornecidas pelo provedor de serviço, sem ter de pagar mais por isso.
Com a transferência de responsabilidade da gestão do aparato tecnológico da empresa para o provedor do serviço, há melhor utilização do pessoal de TI voltando o foco para as iniciativas estratégicas de negócio da empresa e não mais para questões de administração e gerenciamento dos recursos não-pessoais de TI.
Nesse âmbito, os principais benefícios proporcionados pelo modelo SaaS estão na diminuição ou ausência de custos iniciais com infra-estrutura, suporte e manutenção da solução, rapidez na instalação e no uso do sistema. Além disso, todos os custos envolvidos são conhecidos antes mesmo da aquisição do produto e o sistema é constantemente atualizado com as tecnologias melhores e mais recentes de forma transparente, não havendo a necessidade de parar a operação da empresa para que esse processo ocorra. A preocupação da
organização para com o sistema está apenas em seu uso, enquanto que a administração e gerencimento fica por conta do provedor.
2.4 Desvantagens e riscos da abordagem de Software como Serviço
Para KONTIO (2009), alguns pontos necessitam de atenção pois representam algum tipo de risco que o cliente pode correr quando da subscrição do serviço. Tais riscos, em se concretizando, podem levar a perdas financeiras e a indisponibilidade dos dados e informações. O primeiro ponto abordado é a facilidade de retirada dos dados do provedor de serviço. Pode haver algum tipo de barreira que dificulte ou até mesmo impossibilite a retirada dessas informações, como cobrança de altas taxas ou uso de formatos específicos. É o chamado lock-in. Outra questão é a segurança dos dados, quando políticas de segurança não são bem definidas e dão possibilidades de vazamento de informações. Por último, há o risco de o provedor encerrar suas atividades e os dados não serem de fácil exportação.
O principal problema no modelo SaaS é a queda de desempenho ou indisponibilidade do serviço por problemas de conectividade baixa ou até mesmo perda total. Por se tratar de um modelo de entrega de software disponibilizado pela Internet, a qualidade do serviço oferecido é direta e proporcionalmente ligada com a qualidade da Internet utilizada.
O modelo de entrega de software como serviço apresenta várias vantagens principalmente relacionadas com o custo da solução, com o tempo gasto de implantação e de domínio do sistema pelos usuários e do aporte a novas tecnologias, fazendo com que a organização fique focada nos seus objetivos empresariais, conforme citado. Dessa forma, as PMEs podem usufruir de sistemas complexos e robustos sem possuir custos elevados em seus orçamentos.
3 Arquitetura Orientada a Serviço (Service Oriented Architecture – SOA)
Para que o modelo SaaS funcione é necessária uma infraestrutura de computação distribuída que seja capaz de acompanhar as novas tecnologias utilizadas pelas áreas de negócio da empresa, além de proporcionar agilidade, flexibilidade, segurança e qualidade dos
serviços de TI prestados. É o caso da SOA que, ao contrário de soluções pouco complexas e heterogêneas como as monolíticas, apresenta facilidade de visualização e organização dos processos de negócio e da TI. Desse modo, esta seção apresenta uma revisão bibliográfica a respeito dessa tecnologia. Benefícios e desvantagens de uso são elucidados, bem como suas principais características.
3.1 Características da SOA
As pessoas e as organizações ao se depararem com problemas na execução de seus négocios desenvolvem competências e habilidades a fim de que os mesmos sejam solucionados ou suportados. Algumas delas podem ter necessidades que sejam resolvidas por outras. Nesse contexto, segundo a OASIS (2006), SOA organiza e utiliza diferentes competências, que são distribuídas e controladas por domínios diversos, disponibilizando-as sob a forma de serviços acessíveis pela Internet.
Esse paradigma possui quatro conceitos principais que o caracterizam: visibilidade, interação, efeitos e serviço (OASIS, 2006). Na visibilidade, a essência está na capacidade daqueles que possuem as necessidades de verem as entidades que possuem as competências, e vice-versa. Isto ocorre através de descrições claras e completas das semânticas, entradas e saídas associadas ao serviço oferecido, além do que é consumido quando ele é invocado e quais as condições e restrições de uso. Para que a SOA funcione corretamente a visibilidade deve ser total, ou seja, tudo deve ser descrito em algo que represente um formulário e de modo que a sintaxe e a semântica possam ser entendíveis e acessíveis facilmente.
O segundo conceito, a interação, é responsável por fazer a comunicação entre os pares, normalmente através de troca de mensagens, que podem conter informações propriamente ditas ou serem invocações de competências. Dessa forma, provedores, que oferecem as habilidades, e consumidores, que têm as necessidades, podem interajir de um modo particular e sem a obrigatoriedade de ter o conhecimento amplo das capacidades em uso.
Já o terceiro, os efeitos, são os resultados de uma interação e normalmente se apresentam de duas formas: mudanças nos estados das entidades relacionadas com a interação ou apenas uma recuperação de informação.
O último conceito, serviço, engloba os outros três e pode ser entendido como a competência, especificação ou oferta de um trabalho. É por meio do serviço que as necessidades e as aptidões são postas adjacentes (OASIS, 2006).
Outros aspectos também merecem destaque: interoperabilidade, através da intercomunicação de sistemas independentemente das tecnologias e dos fabricantes; a irrestrição do modo de implementação, em que não há necessidade de implementar o serviço com alguma tecnologia específica; e o baixo acoplamento, em que cada componente permanece independente e interage por meio das interfaces, que devem ser bem definidas.
3.2 Benefícios da SOA
Sistemas que são desenvolvidos com os princípios de SOA são mais facilmente escaláveis, evolutíveis, gerenciáveis e interoperáveis (OASIS, 2006). A integração de funcionalidades se dá de modo mais simples e a infraestrutura propicia uma maior agilidade e adaptabilidade dos negócios.
Devido à interação entre diversos sistemas, não há necessidade de manter funcionalidades iguais implementadas em vários deles. Dessa forma, redundâncias de funções de negócio e seus respectivos custos de manutenção são eliminados ou minimizados.
3.3 Desvantagens da SOA
Os principais problemas quanto ao uso do paradigma estão relacionados com a disponibilidade, segurança, robustez e performance do serviço. Em relação à disponibilidade, deve haver uma estrutura que permita o balanceamento de carga e a replicação, para evitar que o serviço caia quando algum servidor pare de operar.
O que afeta a segurança é a possibilidade de interceptação de dados não protegidos. Isso pode acontecer durante o trânsito das informações pela rede e, caso não haja alguma
forma de encriptação ou outros métodos de proteção dos dados, elas poderão ser perdidas ou alteradas. Por outro lado, exigirá um processamento extra para que essa validação seja feita.
A robustez pode ser prejudicada por causa da dependência da rede. Situações como mensagens entregues não ordenadamente ou perdidas, falhas de conexão e a latência podem ser contornadas com o uso de técnicas específicas. Contudo, é dispendido um tempo adicional, o que, por sua vez, prejudica a performance do serviço.
4 Web Services
Apesar de SOA ser uma arquitetura e os web services serem um conjunto de tecnologias como eXtensible Markup Language (XML), Simple Object Access Protocol (SOAP), Web Service Description Language (WSDL) e Universal Description, Discovery,
and Integration (UDDI), é por meio de web services que a SOA é comumente implementada
(BIH, 2006). Esta seção descreve a revisão bibliográfica feita a respeito dos WS e engloba as características, a arquitetura, as vantagens e as desvantagens.
4.1 Características dos Web Services
Um WS é um serviço disponibilizado através de redes públicas ou privadas, que faz o uso do padrão XML para a troca de mensagens e não possui quaisquer dependências de sistemas operacionais ou linguagens de programação para o seu funcionamento (CERAMI, 2002). Normalmente, as propriedades de autodescrição e de detecção também estão presentes. A primeira se preocupa em prover documentação legível e utilizar gramática XML para identificar as funcionalidades oferecidas. A segunda, em facilitar a busca.
Outros aspectos relevantes são o baixo acoplamento, em que as interfaces do serviço podem mudar sem se preocupar com os clientes atingidos ou sem a necessidade que os mesmos alterem suas aplicações, e o assincronismo.
4.2 Arquitetura dos Web Services
Existem duas formas de visualização da arquitetura de um web service. A primeira se dá pela análise dos papéis individuais de cada ator do serviço, a segunda é de acordo com a pilha de protocolos (CERAMI, 2002). De acordo com a primeira, a divisão ocorre em três partes: provedor do serviço, consumidor do serviço e registro do serviço. O provedor implementa-o e disponibiliza-o na Internet. O consumidor requisita o serviço abrindo uma conexão de rede e enviando uma requisição sob a forma de um documento XML. O registro do serviço provê um local onde os desenvolvedores publicam novos serviços ou utilizam os já existentes, funcionando como um diretório centralizado lógico de serviços para as companhias. A Figura 3 ilustra a interação entre os três componentes:
Figura 3: Componentes de um Web Service.
Na segunda forma de visualização, a pilha de protocolos é dividida em quatro camadas: transporte, mensagens XML, descrição e descoberta. A de transporte é responsável pelo deslocamento das mensagens entre as aplicações e os dois principais e mais utilizados protocolos para realizar essa tarefa são o HyperText Transfer Protocol (HTTP) e o Simple
Mail Transfer Protocol (SMTP). A camada de mensagens XML codifica as mensagens em
um formato XML comum que possa ser entendido tanto pelo provedor quanto pelo cliente. O formato mais utilizado é o SOAP.
Na camada de descrição, o serviço tem suas interfaces públicas descritas em um documento WSDL. Por fim, a camada de descoberta é responsável por dispor uma maneira fácil para publicação e pesquisa dos serviços. Isso é feito através do UDDI. Na Figura 4, é ilustrada a pilha de protocolos.
4.3 Mensagens SOAP (XML)
As mensagens que são trocadas durante a chamada de um web service normalmente são feitas através do protocolo SOAP (W3C, 2007). As mensagens são estruturadas em XML e são divididas em cabeçalho e corpo. No cabeçalho ficam as informações de controle enquanto que o corpo é constituído da mensagem propriamente dita a ser enviada.
Figura 4: Pilha de protocolos dos Web Services.
4.4 Web Service Description Language (WSDL)
É a linguagem responsável por descrever web services no formato XML (W3C, 2001). Todas as informações sobre o web service devem estar presentes no documento como: funcionalidades disponíveis, parâmetros dos métodos, quais os tipos de dados utilizados na invocação e na resposta dos métodos, quais sinalizações de falhas podem ser geradas. Dessa forma, a linguagem funciona como um contrato entre o solicitante e o provedor do serviço que deve ser rigorosamente seguido a fim de que o serviço web funcione da forma como está descrito.
A especificação da gramática XML do WSDL é dividida em sete elementos principais e dois utilitários (CERAMI, 2002). A Tabela 2 traz um resumo desses elementos.
Tabela 2 - Especificação WSDL.
Elemento Classificação Descrição
<definitions> Principal Define o nome do web service, declara os namespaces usados ao longo do documento e engloba os demais
elementos.
<types> Principal Descreve os tipos de dados utilizados entre o cliente e o servidor.
<message> Principal Descreve uma mensagem: ou de requisição ou de resposta. Define o nome da mensagem. <part> Principal Utilizado zero ou mais vezes em cada <message>
representando paramêtros ou valores de retorno das mensagens.
<portType> Principal Combina um <message> de requisição e um de resposta para formar uma operação completa do tipo requisição/resposta. Várias operações podem ser
definidas.
<binding> Principal Descreve especificidades concretas a respeito de como o serviço será implementado.
<service> Principal Define o endereço do serviço. <documentation> Utilitário Provê documentação legível.
<import> Utilitário Utilizado para importar outros documentos WSDL. Provê modularização aos documentos WSDL.
4.5 Universal Description, Discovery, and Integration (UDDI)
É um mecanismo que serve para registrar web services em um local centralizado para que eles sejam facilmente encontrados por empresas que desejem utilizá-los. As informações são organizadas em três categorias (OASIS, 2004):
• Páginas brancas – informações gerais sobre o serviço são disponibilizadas em linguagem natural, em diversas línguas;
• Páginas amarelas – o serviço é descrito de um modo mais formal com informações taxônomicas;
• Páginas verdes – informações técnicas sobre o serviço como forma de acesso e protocolos utilizados.
4.6 Vantagens dos Web Services
Por ser uma implementação de SOA, as principais vantagens proporcionadas pelo uso de WS vão ao encontro das características essenciais desse paradigma (MCGOVERN et al, 2003). Assim sendo, as que merecem destaque são: uso de padrões abertos como HTTP, SOAP, UDDI e XML tornando-o independente de plataforma e de linguagem; abstração da lógica de implementação, em que o foco está no fazer e não no como fazer; reusabilidade; capacidade de agrupamento com o objetivo de formar serviços compostos; interoperabilidade com sistemas novos ou antigos; caráter stateless, proporcionando maior escalabilidade e diminuindo o consumo de recursos.
Outrossim, como a transmissão de mensagens utiliza o protocolo HTTP, os proxies e os firewalls da internet não interferem na operação do serviço. Por outro lado, se o mesmo tiver caráter malicioso, medidas de proteção não surtirão efeito deixando o sistema vulnerável a ataques e invasões.
4.7 Desvantagens dos Web Services
Um dos principais problemas é o overhead, que ocorre pelo fato de os dados serem transmitidos em formato de texto, e não em código binário. Com isso, há uma perda de performance da aplicação, tolerada pela maioria delas. Outra desvantagem é a ausência ou baixo suporte a recursos comuns a outros padrões da computação distribuída, como as transações, presentes na Common Object Request Broker Architecture (CORBA). Porém, o W3C tem padronizado algumas especificações do tipo WS-* com o objetivo de extender as capacidades dos web services.
O trânsito das informações de maneira textual e pública, uma vez que os WS são expostos com o uso do HTTP, também acarreta no problema da segurança, em que mecanismos como autenticação, autorização, encriptação e assinatura digital podem ser desenvolvidos a fim de que as mensagens tornem-se mais confiáveis. Processo esse que ocasiona uma queda de desempenho, mas aumenta a qualidade do serviço. Justamente por ser uma implementação de SOA, os problemas de ambos se assemelham.
5 Business Process Execution Language (BPEL) e a Composição de Web Services
Especificações de WS podem ser utilizadas de diversas maneiras com o objetivo de criar interações entre aplicações distribuídas. Contudo, para se estabelecer uma lógica mais refinada sobre as operações de serviços interagentes, é necessário compô-los, ampliando o modelo básico de publicação, descoberta, interação (WEERAWARANA, 2005). Dessa forma, é possível estabelecer a ordem de execução das operações envolvidas. É nesse contexto que tem lugar a Business Process Execution Language (BPEL).
5.1 Características do BPEL
Muitos requisitos de um ambiente orientado a serviços são atendidos pela BPEL (WEERAWARANA, 2005), dentre os quais merecem destaque a flexibilidade de integração, a recuperabilidade e a recursividade. O primeiro se caracteriza pela rápida adaptação às mudanças dos serviços. O segundo pela capacidade de prover mecanismos para tratamento de erros e faltas sem abortar sua execução. O terceiro pela habilidade de oferecer diferentes visões de uma mesma composição, incrementando a escalabilidade e o reuso.
A linguagem utilizada é baseada em workflow e permite a criação de processos abstratos que descrevem a sequência e a lógica dos serviços gerenciados, além de poder modificá-las. Ela especifica os processos de negócio e descreve as relações entre os web
services atuantes na composição. Ao contrário da WSDL, além do caráter descritivo possui
também elementos de linguagens de programação como variáveis, laços de repetição e atribuições.
5.2 Orquestração e Coreografia
Por meio da linguagem BPEL, é possível executar processos de negócio sob duas óticas: coreografia e orquestração. Na primeira, a composição de web services ocorre sem haver a presença de um processo central coordenador dos demais, conforme ilustra a Figura 5. Dessa forma, cada um deles deve se preocupar com o fluxo de mensagens, com a ordem de execução das operações, além de conhecer aqueles com quem atua diretamente.
Figura 5: Exemplo de uma coreografia.
Na segunda, faz-se necessário um processo central, o qual controla a ordem de invocação dos serviços. Nesse caso, cada um dos web services não possui a obrigatoriedade de saber que faz parte dela, nem de conhecer os demais participantes. A Figura 6 ilustra uma orquestração.
Figura 6: Exemplo de uma orquestração.
5.3 Tipos e componentes básicos de uma composição
A composição de web services é feita por meio da interação de web services mais simples formando um mais complexo fazendo valer a idéia do reuso defendido pela SOA.
Com a composição, a preocupação é focada na forma de interação dos serviços. Existem basicamente quatro tipos de composições: iterativa, sequencial, com escolha e paralela. A Figura 7 ilustra tais composições.
Figura 7: Os tipos básicos de composições.
No modo iterativo, a saída do serviço é realimentada como entrada e a execução pode ocorrer várias vezes. No modo sequencial, o segundo serviço só é executado após o término do primeiro e utiliza como entrada o resultado dele. No modo com escolha, uma avaliação condicional determina qual serviço será invocado. No modo paralelo, dois ou mais serviços são invocados simultaneamente.
Um processo BPEL é formado por alguns componentes, dentre eles: partner, variable e activity. O partner, através do endereço do servidor, informa quais serviços participam da composição. O variable é responsável por armazenar temporariamente os dados durante a invocação de algum serviço da composição. O activity é o elemento básico da composição e possui diversos tipos, conforme ilustrado pela Tabela 3.
Tabela 3: Tipos básicos de atividade da composição.
Atividade Descrição
Receive Recebe uma requisição de um cliente
Assign Atribui valores a variáveis
Invoke Invoca um método de algum web service da composição
Reply Envia uma resposta (resultado) a um cliente
Sequence É composto de outras atividades e as executa de maneira sequencial
For Each Executa um laço de repetição mediante uma condição inicial e outra final
6 Desenvolvimento da aplicação
O processo de desenvolvimento da aplicação ocorreu em quatro passos: 1. Definição do Contexto da Aplicação;
2. Levantamento dos Requisitos; 3. Comparativo de frameworks web; 4. Projeto da Arquitetura e Implementação;
Na fase de contexto, é descrito o processo de seleção do módulo a ser implementado como protótipo. Para tanto, houve uma discussão com a empresa parceira em que os critérios de seleção foram determinados, todos os módulos foram analisados e um deles foi escolhido. Na fase de requisitos, as funcionalidades foram definidas, mediante as regras de negócio.
Em seguida, um estudo comparativo de tecnologias para desenvolvimento web foi feito, a fim de selecionar aquela que melhor se adequasse à proposta do projeto. Logo depois, tomou forma a arquitetura da aplicação, com sua posterior implementação.
6.1 Contexto
A aplicação foi desenvolvida em parceria com a empresa Órbita Tecnologia LTDA, de Feira de Santana-Ba. A parceria se deu da seguinte forma: a Órbita tem em seu desenvolvimento um software ERP na versão de desktop. Esse sistema ainda não está completo, mas possui toda a estrutura necessária para seu pleno funcionamento já determinada. O banco de dados está modelado de acordo com os módulos existentes no sistema, as funcionalidades estão catalogadas e envolvem cadastros, processos e relatórios, e as regras de negócio estão estabelecidas.
Para a escolha do protótipo do módulo a ser implementado como serviço foi feita uma análise dos módulos existentes no sistema e foi escolhido o que apresentou melhor relação importância x complexidade x rapidez de implementação. No primeiro quesito, foi levado em