Web Services e suas Tecnologias de Desenvolvimento (J2EE vs. MS.NET)Este é o meu primeiro artigo aqui na Internativa, e procurei escolher um assunto que está em evidência nos fóruns de tecnologia: o futuro dos web services e suas tecnologias de desenvolvimento. A partir de hoje, estaremos conhecendo um pouco mais desta tendência e entendendo as diferenças nas tecnologias as quais implementam esses serviços, através de uma série de artigos, aonde faço uma forte comparação entre duas escolhas que o mercado possui para construir os serviços web, ou Web Services: J2EE, concebida pela Sun Microsystems e outros players, e o .NET, desenvolvida pela Microsoft Corporation.
Algumas das afirmativas poderão conflitar com os seus pontos de vista. Mas antes de começar, por favor, lembre-se destas minhas três promessas:
O estudo será dividido nos seguintes artigos:
Neste primeiro artigo da série "Web Services e Tecnologias de Desenvolvimento", farei uma breve introdução sobre o assunto, contando um pouco sobre sua filosofia, como surgiu e alguns conceitos técnicos e teóricos.
A próxima geração de computação distribuída chegou. Nos últimos anos, a tecnologia XML possibilitou que ambientes computacionais heterogêneos passassem a compartilhar informação através da world-wide web. E com essa revolução, passou a também oferecer um modelo simplificado de compartilhar processos. A partir de uma perspectiva técnica, o advento dos web services não foi uma revolução na computação distribuída e sim uma evolução natural das aplicações XML, de uma apresentação estruturada da informação para a representação estruturada da comunicação inter-aplicações. Podemos dizer que a revolução está nas oportunidades geradas por esta evolução.
O mercado tem oferecido produtos e serviços na web nos últimos anos.
Vamos entender então:
O que são Web Services?
Uma coleção de funções que são empacotadas em uma única entidade e publicadas em uma rede para serem usadas por outros programas. Web services são blocos construídos com a finalidade de criar sistemas distribuídos abertos, e possibilitar que companhias e indivíduos possam disponibilizar seu bem digital para o mundo inteiro, de uma forma rápida e barata.
Antes do advento dos web services, a integração das aplicações corporativas era muito difícil quando se tratando das diferenças de linguagem de programação e middleware utilizados nas organizações. As chances de dois sistemas corporativos utilizarem a mesma linguagem de programação e/ou o mesmo middleware é quase que inexistente, pois não existe uma tecnologia melhor ou pior, e sim na maioria das vezes a preferida, ou com maior capacitação técnica das equipes na implementação. Essa “Guerra de Componentes” traduziu em muitas dores de cabeça na hora do esforço de integração, e resultou em uma epidemia de soluções customizadas, integrações offline e ‘middlemen’. Resumindo, interoperabilidade incômoda, dolorosa e difícil.
Com os web services, qualquer aplicação pode ser integrada se estiverem capacitadas a se comunicarem via internet. A base dos web services é a troca de mensagens em XML através de protocolos web padrão como o http. Esse é um mecanismo muito “leve” de comunicação que qualquer linguagem de programação, middleware, ou plataforma pode realizar, com uma fácil e ótima interoperabilidade. Esses padrões da indústria de software aproveitam a maneira comum como aceitação, tornando de baixíssimo risco a adoção dessa tecnologia pelas corporações. Com web services, você pode integrar dois negócios, departamentos, ou aplicações rapidamente e com baixo custo.
A visão para os web services presume que serviços serão disponibilizados através de registros públicos ou privados. Esses serviços serão autodescritivos, incluindo estrutura de interface, requisitos do negócio, processos, termos e condições de uso. Clientes ou consumidores destes serviços lêem essas descrições e entendem as funcionalidades e habilidades dos mesmos. Ao invocar um serviço, ele automaticamente chama outro serviço a fim de completar a requisição, fornecendo ao consumidor uma informação customizada e completa. Para que esses serviços interajam de forma dinâmica, eles precisam compartilhar informações sobre a identidade do usuário, ou informação do contexto da requisição.
Agora que já temos uma visão geral sobre a filosofia por trás dos web services, vamos descrever resumidamente como eles são feitos e usados. Como dito anteriormente, web services são simplesmente interfaces baseadas em XML para o negócio, aplicação, ou serviços do sistema, já conhecidos em sistemas antigos que ganharam a partir de agora uma nova roupagem, e possui o processo a seguir de desenvolvimento:
Esses são os passos básicos e suficientes para se construir e disponibilizar um simples web service. Porém, existem estruturas mais complexas como transações, multi-requisições, esquemas, transmissão de documentos e segurança, requisitos estes que precisam de uma boa especificação para que possamos ter uma infra-estrutura para integração e colaboração do B2B.
Essa é a única maneira de fazer os web services funcionarem, e é preciso resolver ainda uma série de questões. A boa notícia é que:
Nos próximos artigos, iremos discutir como o J2EE e o .NET fornecem especificações para construção de web services corporativos.
Obrigado pela sua atenção e até lá!
Cesar Cardoso é um profissional certificado MCP (Microsoft Certified Professional) e analista de Sistemas de uma multinacional.
cesar@internativa.com.br