A ascensão dos webservices: as arquiteturas SOA e REST e a definição do contrato WSDL

O mundo conectado a partir de serviços web

Com o passar dos anos, as grandes organizações vem convergindo cada vez mais para a adoção de medidas que as permitam aumentar o grau de sinergia para que, dessa maneira, possam elaborar sistemas mais robustos e eficientes, construídos com maior agilidade e menor custo. Esse comportamento é evidente, afinal, a reimplementação de artefatos já produzidos é onerosa e exige esforços desnecessários: um novo entendimento sobre um determinado negócio, uma nova implementação, novos testes, manutenção em geral… Nesse contexto, torna-se vantajoso tanto reaproveitar serviços como expô-los publicamente pois, desse modo, as corporações passam a concentrar seus esforços naquilo que é a raiz do próprio negócio agregando assim maior valor no que produzem e, por fim, tornam-se mais competitivas.

A troca de informações entre sistemas geograficamente distribuídos já pode, em muitas vezes, ser tratada como tarefa de baixa complexidade. No entanto, embora os gigantes como Amazon.com, eBay, Yahoo! e Twitter ou até mesmo os pequenos como eu ou você sermos capazes de disponibilizar meios de transferência de dados através da web, essa realidade só se concretizou face aos esforços que foram acontecendo com maior intensidade a partir da década de 90 com a introdução da arquitetura CORBA. Por outro lado, a interface de transmissão só se consolidou com o enraizamento das arquiteturas SOA (service-oriented architeture) e, mais recentemente, REST (representational state transfer).

Com o surgimento das arquiteturas orientadas a serviço novos problemas se consolidaram. Ao passo em que surgiam e a complexidade se mantinha alta, consequentemente a popularização era baixa. Assim, gradativamente foram surgindo ferramentas para facilitar a implementação de webservices como é o caso do Axis, do Spring WS, do VRaptor, do Resteasy, do JAX-WS e do Apache CXF. Outro ponto de conflito diz respeito a ordem pela qual deveriam ser construídos: se seria necessário a definição de um contrato (leia-se aqui WSDL) antes ou depois da conclusão do desenvolvimento do sistema, top-down ou bottom-up.

Em geral, um sistema é exposto publicamente somente após a sua construção partindo do principio bottom-up. A principio, as classes e interfaces que identificam o serviço já estão criadas e são elas que serão usadas para gerar um artefato WSDL e definir o contrato de comunicação entre sistemas. Em contrapartida, tem se tornado comum a necessidade de construção em paralelo de um servidor e consumidor sem pré-existência de algo concreto e, essa é a razão da crescente necessidade de entendimento da abordagem top-down na qual primeiro cria-se um artefato WSDL que define o contrato entre as partes envolvidas para que, com o documento previamente definido, ambas as partes iniciam o desenvolvimento propriamente dito.

Nos próximos artigos demonstrarei como construir e disponibilizar serviços na internet a partir de uma abordagem top-down, introduzindo boas práticas de programação Java e elaboração de artefatos WSDL.

Sugestões:

Anúncios