JSK Home Page

Web Services

Web Services (WS) é o resultado de um trabalho realizado pelas maiores empresas de software no mundo, com o objetivo de criar padrões  tecnológicos abertos para implementar a arquitetura orientada a serviços (SOA - Service Oriented Architecture) utilizando a infra-estrutura da Internet. Antes de ser apenas uma nova tecnologia, WS busca criar uma nova forma de comprar, vender e disponibilizar soluções de informática, permitindo que as empresas possam substituir incrementalmente seus sistemas de informação, diminuindo a dependência de seus fornecedores e tendo oportunidade de experimentar novas soluções sem a necessidade de abrir mão de seus sistemas existentes.  Segundo Clabby (2002, p.2), “WS pretende afetar a forma como os sistemas de tecnologia de informação são modelados, distribuídos e comprados”.

Com a adoção dos padrões abertos e a promessa de investimento contínuo nessa solução feita pelas grandes empresas de software, os departamentos de TI já começaram a experimentar e testar a arquitetura de WS a partir de 2002 (Datamonitor,2003). Numa pesquisa recentemente realizada entre as maiores empresas do mundo, 37% dos 273 entrevistados disseram já ter sistemas em produção utilizando WS, e 44% estão em processo de pesquisa e desenvolvimento(Westbridge, 2004).

Histórico

Em setembro de 2000, foi criado um grupo de trabalho no World Wide Web Consortium (W3C) com o objetivo de desenvolver uma arquitetura onde diversos protocolos  permitissem a interoperabilidade entre aplicações e sistemas, de plataformas, ambientes e arquiteturas diferentes. Esse grupo de trabalho, formado por representantes das maiores empresas de software do mundo, tais como Microsoft, IBM, Oracle e Sun Microsystems, definiu assim uma nova arquitetura computacional chamada de Web Services, com condições de melhorar o suporte e aprimorar e agilizar a interação entre processos de negócio, e, por conseguinte, entre empresas (W3C, 2003).

A definição formal adotada pelo W3C diz que WS é um sistema de programas desenhados para suportar a interação máquina a máquina, através de uma rede utilizando protocolos padronizados. Outros sistemas interagem com um WS da forma descrita utilizando mensagens SOAP, normalmente transmitidas utilizando HTTP com uma serialização em XML em conjunto com outros padrões utilizados na Web (W3C, 2004). Esta definição não é muito clara pois pressupõe que o leitor já tenha conhecimento prévio das definições de SOAP, HTTP e XML. Assim, as nomenclaturas acima serão detalhadas na próxima seção.

O enfoque gerencial de Web Services

Buscando uma definição mais gerencial, pode-se dizer que a arquitetura de WS é baseada no conceito de distribuição e modularidade, adotando protocolos abertos e padronizados com o intuito de promover a integração de aplicações com baixo acoplamento (loosely coupled applications) (Sleeper, 2001; Iyer et al., 2003). O objetivo é habilitar essas aplicações ou componentes a disponibilizar suas funções e trocar dados, utilizando a infraestrutura padrão da Internet (Huang, 2004).

Sob o ponto de vista de quem vai utilizar os WS (o consumidor dos WS), o modelo funciona da seguinte forma: a empresa que necessita de um serviço específico busca alguém que preste esse serviço através de um diretório de WS (uma espécie de páginas amarelas de serviços) implementada com o protocolo UDDI. Achado o serviço necessário, o cliente consulta o serviço para obter uma descrição detalhada para que possa obter os requisitos e procedimentos relativos ao funcionamento do WS. Uma vez de posse desta descrição, o cliente contrata o serviço com o provedor do WS que então lhe dá acesso ao serviço desejado. Inclusive, essa operação pode ser feita de forma automatizada, ou seja, sem que hava a intervenção humana durante a contratação. Isto feito, o cliente pode então utilizar os serviços do WS. Este processo está representado na figura abaixo:

conceitual2.gif
Já sob o ponto de vista do provedor, ou seja de quem vai prover os WS, a mecânica funciona da seguinte forma: o desenvolvedor possui um serviço implementado em software que ele quer disponibilizar ou vender. Ele formata esse serviço sob forma de um Web Service, e o publica em um diretório público, para que seus clientes saibam que o serviço está disponível. Para cada cliente que se interesse pelo serviço, a empresa que desenvolveu o WS disponibiliza o acesso e acompanha se o serviço está sendo utilizado corretamente e com a qualidade  esperada  (confiabilidade, velocidade, etc).

Web Services é formado por um conjunto de padrões

A base de todos o modelo de padrões utilizados na implementação de WS é o XML ou eXtensible Markup Language. Formalmente, XML é uma recomendação que descreve como os dados trocados entre aplicativos devem ser estruturados. Na prática, é uma forma de descrever e compartilhar dados, usando um formato comum de apresentação (Clabby, 2002). Por ser definido sob forma de texto, com marcações bem definidas, e em função de sua natureza hierárquica, XML é facilmente entendido tanto por um ser humano, quanto por um programa de computador que precise interpretá-lo. Um exemplo da notação do XML que descreve o empréstimo de dois livros de uma biblioteca pode ser visto abaixo:

<emprestimo>
  <livro id=”1231313”>
    <nome>Brás Cubas</nome>
    <autor>Machado de Assis</autor>
    <editora>Editora Tres</editora>
    <ano>1997</ano>
  </livro>
  <livro id=”2342322”>
    <nome>A origem das espécies</nome>
    <autor>Charles Darwin</autor>
    <editora>Editora Moderna</editora>
    <ano>1995</ano>
  </livro>
</emprestimo>

A padronização definida para WS pode ser dividida em três camadas cujos nomes coincidem com seus papéis conceituais: Interação, Descrição e Descoberta (Kreger, 2003). Para cada uma destas camadas, as regras e funcionalidades de outras três sub-camadas devem ser respeitadas, para que a funcionalidade do modelo completo possa ser alcançada. O modelo e suas camadas pode ser visto na figura a seguir.

conceitual.gif

A primeira camada de interação refere-se ao processamento físico, onde se dá efetivamente a execução das ações desejadas, e onde se define os protocolos de comunicação padronizados, tais como HTTP e SOAP. Esses protocolos são utilizados para que os dados recebidos e enviados possam ser transportados na forma mais transparente possível pela infraestrutura da Internet e redes das corporações (intranets e extranets), sem a necessidade de softwares intermediários (middleware) ou de qualquer outro artifício técnico. Vale ressaltar que, embora SOAP seja o protocolo mais utilizado na implementação de Web Services, existem outros opções, tais como Xml-RPC.

A segunda camada é chamada de Descrição, e tem como objetivo descrever: (1) as funções que cada serviço pode prestar (descrição da implementação); (2) que informações de entradas são necessárias para que o serviço possa ser executado (descrição da interface); e (3) quais os tipos de resultados devem ser esperados (também na descrição da interface). A camada de descrição segue uma padronização chamada WSDL (Web Services Description Language), que também é definida com base no padrão XML.

Ainda na segunda camada, temos a descrição das funções transacionais e de orquestração ou coordenação. Com elas, é possível especificar como o serviço que está sendo descrito pode se encaixar num processo de negócio como um todo. A especificação BPEL4WS, por exemplo, que está em fase adiantada de padronização, permitirá que essa camada seja integrada aos pacotes de gerenciamento de processos e às ferramentas CASE.

A terceira camada, chamada Descoberta, é descrita pelos padrões UDDI (Universal Description Discovery and Integration) e WS-Inspection (Web Services Inspection Language). As definições dessa camada permitem que as empresas e agentes envolvidos numa interação possam procurar e descobrir serviços que sejam interessantes para as suas operações. Para isso, já existem organizações se mobilizando para fornecer portais com serviços de busca e diretórios por categoria de serviços, no modelo de páginas amarelas. Um exemplo é o site www.xmethods.com.

Além destas três camadas conceituais, existem outras três camadas que permeiam e controlam cada uma das camadas acima citadas. A camada de controle de qualidade contabiliza as falhas que por ventura venham a ocorrer durante a execução do WS, e verifica se o tempo de resposta do serviço está dentro do pré-estabelecido. Já a camada de segurança verifica quem está acessando os serviços, e monta os históricos de acesso. Finalmente, a camada de gerenciamento permite que o provedor dos WS possa monitorar controlar as estatísticas, históricos e parâmetros do serviço que estão sendo gerados pelas duas camadas anteriores.

Os padrões definidos para a utilização de WS baseiam-se em técnicas que são bem conhecidas e já foram utilizadas anteriormente sob outras formas. Por exemplo, o padrão UDDI pode ser visto como uma evolução do modelo de busca e consulta de APIs, e o WSDL pode ser visto com uma evolução da publicação e  especificação de interfaces. Entretanto, diferentemente de tecnologias anteriores, este padrão está sendo adotado de forma conjunta pelas maiores empresas do setor de desenvolvimento de software (Iyer et al., 2003).

Modelos de Negócios e Estratégias baseadas em Web Services

Empresários e diretores de TI começam a se voltar para a tecnologia de WS, pois percebem que seus benefícios estão baseados em premissas estratégicas para a empresa. As metodologias tradicionais, que concentram suas atenções nos aspectos operacionais de projetos de TI, geralmente ignoram ou avaliam inadequadamente as conseqüências estratégicas da decisão de investimento (Ward et al. 1996; Counihan et al. 2002).

O que existe de novo é o potencial de alcance dos serviços, o que pode trazer um grande impacto para o modelo econômico que funciona por trás da indústria de desenvolvimento de software. Isto porque as empresas podem utilizar a sua infraestrutura atual para implantar uma nova arquitetura de serviços e interligar sistemas heterogêneos (Booch, 2003). Desta forma,  a implementação da arquitetura orientada a serviços utilizando WS traz um grau de flexibilidade que não era alcançado com as tentativas anteriores, utilizando tecnologias como CORBA e DCOM (Barry, 2003).

Do ponto de vista gerencial, os padrões existentes anteriormente tais como o EDI (Eletronic Data Interchange) eram muito caros para pequenas empresas pois estas necessitavam implementar sistemas de controle e gerenciamento que não eram compatíveis com a sua estrutura (Bunker, 2002).

Com esta nova arquitetura, novos modelos de negócios podem ser criados, ou seja, novos produtos e serviços podem ser fornecidos de forma a promover uma melhor integração com elementos do ambiente externo da organização, baseada na troca de informações que antes estavam isoladas em “silos” dentro das próprias organizações.

É importante ressaltar que a figura de quem provê e de quem consome WS não está unicamente atrelada a visão da empresa desenvolvedora de software e da empresa que apenas compra soluções de TI. Com esta tecnologia, uma empresa cujo foco não seja de TI pode vender serviços que ela própria utiliza para parceiros. Para a empresa que não têm sua atividade fim na TI, é possível agora empregar a tecnologia de WS para vender suas aplicações internas para outras empresas com necessidades de serviços similares. Assim, os departamentos de TI poderão deixam de ser vistos como centros de custos, para tornarem-se centros de lucros (Lim, 2003).

Uma outra das vantagens dos WS é a possibilidade de utilizá-los em conjunto com sistemas legados. Geralmente, os sistemas legados são antigas aplicações de software existentes nas organizações, que são vitais para o funcionamento do negócio (Sayles, 1996  apud Siqueira, 2002). Conforme explicado acima, o uso de sistemas legado gera dificuldades para a adaptação da infraestrutura de TI a novas demandas do negócio (Brode, 1995  apud Kruchten, 2003). Muitas vezes, as regras de negócio embutidas nestes sistemas não são inteligíveis nem para analistas mantenedores do código, devido às inúmeras alterações que o software sofre ao longo de seu ciclo de vida (Gavino, 2000 apud Siqueira,2002). 

Assim, uma tecnologia que possa adicionar novas funcionalidades a sistemas legados, sem que seja necessário retirá-los de produção ou decifrar milhares de linhas de código de difícil manutenção, pode aumentar a adaptabilidade e agilidade de uma empresa, e, ao mesmo tempo, reduzir significamente o custo do desenvolvimento e manutenção de sistemas.

Pode-se vislumbrar três categorias de empreendimentos que estarão utilizando WS. A primeira delas engloba empresas que irão implantar os serviços em conjunto com seus sistemas legados. Estes serviços estarão confinados às suas redes internas. O aspecto de autenticação e segurança não precisará ser tão rígido, já que os serviços não estarão interagindo com sistemas externos. Para este tipo de empresa, a adoção de WS permitirá que ela possa adicionar novas funcionalidades ao sistema legado de forma gradual.

A segunda categoria está associada a empresas que têm interesse em disponibilizar WS para clientes e fornecedores, e, com isso, melhorar o seu relacionamento com os elos de sua cadeia de suprimentos. Dentro desta categoria, podemos citar a Amazon.com, que vem disponibilizando WS para seus fornecedores. Atualmente, já existem mais de 50.000 desenvolvedores utilizando os serviços disponibilizados pela empresa (VUNET, 2004). 

Na terceira categoria, estão as empresas de software e consultorias que já dispõem  de vários produtos em produção e, com isso, têm um potencial imenso a explorar. Estas empresas podem subdividir seus sistemas em pequenos serviços que podem ser vendidos separadamente, utilizando a infraestrutura da Internet. Desta maneira, elas poderão criar novos mercados, compostos por empresas que antes não estavam dispostas a comprar um pacote completo, mas tinham interesse em contratar apenas partes das soluções oferecidas pelas consultorias. 

Por outro lado, as empresas que irão comprar os WS também obteriam vantagens, pois não será mais necessário fazer grandes investimentos iniciais para começar a fazer uso dos serviços disponibilizados, podendo experimentar diversos tipos de solução a um custo bem mais baixo que o de costume. Principalmente para as pequenas e médias empresas, que não dispõe de muitos recursos para avaliar e testar soluções complexas, adotar uma implementação gradual e pontual pode ser uma ótima estratégia.

Conclusão

Como em toda nova tecnologia, existem ainda desafios em WS, que devem ser levados em conta antes que uma empresa decida investir nessa tecnologia. Diversos autores apontam problemas relacionados à segurança, à busca de parceiros, e à capacidade de autenticação, que devem ser analisados cuidadosamente. Muitas empresas da indústria de software consideram a presente falta de solução para estas questões a maior barreira para a adoção em larga-escala da arquitetura de WS (Lim, 2003; Boncella, 2004).

Um outro ponto a ser considerado é a existência de diversos padrões definidos pela W3C que ainda não foram completamente implementados. É o caso do WS-Policy e o WS-Inspection, que dizem respeito à coordenação e integração do fluxo dos WS entre as empresas e em relação aos processos de negócios envolvidos. Da mesma forma, o padrão responsável pela segurança (WS-Security) ainda não está finalizado. 

Entretanto, muitas organizações já estão reestruturando sua infraestrutura de Internet, introduzindo a tecnologia de certificados digitais, LDAP e HTTPS, a fim de garantir a integridade, confidencialidade e autenticação dos WS (Datamonitor, 2003). Contudo, o ideal é que a segurança já estivesse embutida dentro dos pacotes SOAP. Além de permitir ganhos de produtividade, isto promoveria a compatibilidade e inter-operacionalidade das aplicações de WS, gerando ganhos maiores a longo prazo.

Na questão relativa à descoberta de serviços, pode-se afirmar que as interações entre as empresas ainda não são viáveis por inúmeras razões. Em primeiro lugar, conforme mencionado anteriormente, as padronizações necessárias precisar ser finalizadas, documentadas e distribuídas. Em segundo lugar, os canais apropriados deverão ser criados para que as ligações B2B possam ser estabelecidas. Parte disso é a negociação, criação e modificação de parcerias, já novos modelos de contrato deverão ser formulados para contemplar os novos tipos de serviços que serão prestados (Kreger, 2003).

Bibliografia

BARRY, Douglas. Web Services and Service-Oriented Architectures.  Elsevier Publishing, New York. 2003. pg.76.

BOOCH, Grady. Web Services: The Economic Argument. Software Development Magazine. May, 2003. http

BONCELLA, Robert. J. Web Services and Web Services Security. Proceedings of the Americas Conference on Information Systems. August, 2004.

BRODE, M. e STONEBRAKER, M. Migrating legacy systems. San Francisco: Morgan Kaufmann Publishing. 1995.

BUNKER, Debora.J e MacGregor, R.C. The Context of Information Technology and Eletronic Commerce Adoption in Small/Medium Enterprises: A Global Perspective. Eighth Americas Conference on Information Systems. 2002.

CLABBY, J. Web Services Explained - Solution and Applications for the real world. New York: Prentice Hall PTR. 2002.

COUNIHAN, A., Finnegan, P and Sammon, D. (2002) Towards a framework for evaluating investiments in Data Warehousing. Information Systems Journal, 12, 321-338.

DATAMONITOR. Real Web Services. Special report on Web Services. 2003. Disponível em http://ww.datamonitor.com

HUANG, C.D, HU, Q. Integrating Web Services with competitive strategies: A Balanced Scorecard Approach. Communications of the Association for Information Systems. Vol.13. 2004.

IYER, B; FREEDMAN, J; GAYNOR, M. e WYNER G. Web Services: Enabling Dynamic Business Networks. Communications of the Association for Information Systems. Volume 11, 2003. pg.525-554.

KREGER, Heather. Fullfilling the Web Services Promise. Communications of the ACM. Junho de 2003

KRUCHTEN, Philippe. Using the RUP to evolve a legacy system.  The Rational Edge, Jun/2003. http

LIM, B., WEN, H. J.. Web Services: An analysis of the technology, its benefits, and implementation difficulties. Information Systems Management Journal. Spring, 2003.

SIQUEIRA, José Roberto B. Source Inspector – uma ferramenta para extração de regras de negócio em sistemas legados.  Monografia (Mestrado em Informática). UFRJ /IM / NCE. Rio de Janeiro. 2002.

VUNET. 50,000 developers use Amazon web services. http

WARD, J. and Griffiths, P. (1996). Strategic Planning for Information Systems, John Wiley & Sons Ltd, Chichester, UK.

WESTBRIDGE Corp. Web Service Usage Survey. http

World Wide Web Consortium – W3C. Web Services Architecture - Working Draft. http

Citação

GOMES, Josir C. Utilização da Arquitetura de Web Services no Desenvolvimento de Sistemas de Informação em Micro e Pequenas Empresas. Dissertação de Mestrado. IBMEC/RJ. Rio de Janeiro, 2005.