alt=capaSQL12.JPG hspace=0 src="/loja/img/Capa_SQL35_G.gif" border=0>
Clique aqui para ler todos os artigos desta edição
Web Service no SQL Server 2005
É cada vez mais comum a utilização de web services no desenvolvimento de novas aplicações. O requisito da interoperabilidade e a disponibilização/consumo de serviços pelas aplicações vem ganhando força a cada dia. Por isso, foi embutida no SQL Server 2005 a possibilidade de se produzir web services de forma nativa a partir do próprio SGBD. Neste artigo, irei mostrar um rápido e simples exemplo de como criar um web service para retornar dados no SQL Server 2005, além disso, mostrarei também como criar uma aplicação no Visual Studio 2005 para consumir o web service criado no SQL Server 2005.
Arquitetura orientada a serviços - SOA
(Service Oriented Architecture) Em uma SOA os clientes consomem serviços, mas o que são serviços? Neste caso, podem significar um conjunto de componentes que podem ser usados para construir novas aplicações e/ou integrar sistemas já existentes, como funções de negócio e transações.
A chave para um bom desenvolvimento através de SOA é a construção de serviços independentes, que devem ser alinhados aos processos de negócio. Estes devem fazer a orquestração dos objetos de negócios responsáveis pela execução do processo em si. Dessa forma, o serviço será exposto como uma entidade a ser consumida por inteiro e não por etapas.
O SOA é um novo passo na evolução dos modelos de desenvolvimento de software. Esta é hoje uma realidade já adotada e comprovada por diversas empresas como Microsoft, IBM, Oracle, HP e SUN. Seu conceito vem sendo discutido por mais de uma década como uma promessa de integração entre aplicações de diversas plataformas (exemplo clássico de um sistema J2EE que tem que validar uma informação em uma aplicação .NET). Antes, o principal problema se dava em cima da tecnologia (CORBA, COM+, Remoting e etc). O problema era que cada uma destas tecnologias era proprietária de um padrão, por exemplo: COM+ - padrão Microsoft; CORBA – alternativa ao COM+, com padrões de desenvolvimento para outras plataformas (COBOL, Java, Smaltalk); Remoting – novo padrão da Microsoft (para ambientes .net) em substituição ao COM+.
Por exemplo: um site de comércio eletrônico feito em asp e que acessa um objeto COM+ que contém uma funcionalidade para validar números de CPF. Imagine agora um aplicativo de vendas feito em Delphi e que necessite desta funcionalidade. Neste caso, como os padrões são distintos, o uso da funcionalidade COM+ pelo aplicativo Delphi não será tão fácil quanto se o aplicativo tivesse sido criado pelo VB6.
Isto fazia com que a interoperabilidade entre as aplicações não fosse uma tarefa tão simples.
Por conta disso, surgiu a necessidade de se discutir a tecnologia sobre uma mesma visão. A partir daí, foi criada a WS-I (http://www.ws-i.org), uma organização que promove a interoperabilidade das plataformas através dos web services. Ela é composta por diversas empresas, e por isso a difusão dos web services e sua aceitação no mercado vêm crescendo a cada dia.
Vamos a um exemplo: um site de vendas pela internet precisa de um serviço para receber seus pedidos. Seus objetos de negócio foram divididos em: Cliente, Pedido e Item. Neste caso, criaríamos um serviço chamado Servico- DePedidos que iria conter um Web Method chamado ReceberPedido(). Este Web Method seria o responsável por instanciar e gerenciar os objetos Cliente, Pedido e Item. A Figura 1 ilustra melhor este modelo.

Figura 1. Um modelo de arquitetura orientado a serviços.
Vamos agora definir dois dos conceitos utilizados neste modelo de arquitetura.
Web services
Um web service é um serviço feito para ser consumido por outra aplicação através da internet utilizando as especificações do protocolo SOAP. Os web services contêm os métodos e funcionalidades que representam um determinado processo de negócio.
Temos na Figura 2 um modelo que demonstra exatamente como funciona uma arquitetura orientada a serviços. Nela, uma aplicação demanda serviços, que no caso são os serviços 1 e 2. Estes serviços por sua vez gerenciam um conjunto de objetos responsáveis pela execução das regras de negócio da aplicação.

Figura 2. Um modelo de arquitetura orientado a serviços.
...