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:

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.

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


