Desenvolvimento - Web Services

Criando e consumindo um Serviço Web usando o Visual Studio 2008

O presente trabalho tem como objetivo apresentar um panorama geral sobre a discussão que envolve a criação e o consumo de um Serviço Web, usando as ferramentas disponibilizadas pelo Visual Studio 2008, bem como seu uso em uma rede ponto-a-ponto na forma de um tutorial. Esse tutorial é resultado dos trabalhos de um projeto do programa Ensinar com Pesquisa da Universidade de São Paulo, sob orientação do professor Doutor Marcelo Fantinato, do curso de Sistemas de Informação.

por Fabrício Rocha



RESUMO

O presente trabalho tem como objetivo apresentar um panorama geral sobre a discussão que envolve a criação e o consumo de um Serviço Web, usando as ferramentas disponibilizadas pelo Visual Studio 2008, bem como seu uso em uma rede ponto-a-ponto na forma de um tutorial.

Esse tutorial é resultado dos trabalhos de um projeto do programa Ensinar com Pesquisa da Universidade de São Paulo, sob orientação do professor Doutor Marcelo Fantinato, do curso de Sistemas de Informação.

Palavra(s)-chave: Serviço Web, Visual Studio.

1. INTRODUÇÃO

As aplicações de Internet para interação com o usuário crescem rapidamente. Muitas linguagens e opções de tecnologia podem ser utilizadas, pois a interação com o usuário passa pelo entendimento e capacidade de utilização de uma interface gráfica enriquecida por recursos de cor, animação etc. Temos neste caso a inteligência humana capaz de interagir e “navegar” pelo programa (site) para obter a informação desejada [2].

Aplicativos e sistemas corporativos precisam comunicar-se, via Internet, trocando dados. O modelo de aplicação anteriormente citado demonstra-se inadequado para o relacionamento entre parceiros de negócios que precisam cooperar entre si trocando, de modo automatizado e confiável, grandes volumes de informações [2].

Ao cogitarmos a adoção deste modelo de aplicação para tal relacionamento, estaríamos retornando ao velho modelo do mainframe, só que atualizado para a tecnologia de Internet. Cada parceiro, por sua vez, disponibilizaria a sua aplicação para o outro “digitar” e obter o que fosse necessário para a realização de transações e negócios [2].

Entre dezenas de possibilidades, a Internet pode ser usada para que governos e empresas interajam entre si, reduzindo custos de modo a possibilitar maior facilidade e rapidez na troca de informações. A demanda atual é a disponibilização de meios para que as aplicações de governo e corporativas obtenham na web informações que necessitam para consolidar resultados [2].

Para que duas aplicações ou sistemas corporativos passem a trocar informações via Internet, faz-se necessário que os parceiros envolvidos estabeleçam acordo de aderência mútua em torno de um modelo, adaptando-se ao mesmo para concretização da comunicação intersistemas [2].

Este processo de adaptação, em alguns casos, exige exaustivo esforço colaborativo, exercido através de intermináveis reuniões, contatos via e-mail, teste e outros expedientes da interação humana [2].

Existem, atualmente, algumas soluções que podem permitir o alcance deste objetivo. Entre essas, a tecnologia de serviços Web, que permitem a interação entre aplicações sem que haja o contato humano [2].

Na grande maioria dos casos, onde se deseja utilizar serviços Web, inexiste padronização das estruturas de informática entre os participantes, permitindo que cada entidade adote suas próprias soluções de tecnologia e construa seus acervos de dados (chamados por vezes de banco de dados). Essa realidade generalizada propiciou condições ideais para a instalação do caos, que poderíamos chamar, modernamente, de heterogeneidade. O que para alguns pode parecer um desastre, para a tecnologia de serviços Web torna-se oportunidade [2].

Assim, a tecnologia de serviços Web, aliada aos padrões estabelecidos da Internet, pode fazer com que dados fluam entre as várias entidades, desde que haja esforço concentrado para que a semântica destes dados possa ser transformada em informações útil para o conjunto de entidades envolvidas [2].

1.1 OBJETIVOS DO TUTORIAL

Esse tutorial tem como objetivo descrever os principais componentes de infra-estrutura necessários para se criar e consumir um serviço Web em uma rede (nesse caso específico, uma rede ponto-a-ponto) usando como ferramenta de desenvolvimento o Visual Studio 2008 através de exemplos práticos.

1.2 ESTRUTURA DO TUTORIAL

Do ponto de vista estrutural, este tutorial organiza-se em seis seções que terão seus assuntos apresentados a seguir.

Na seção 1, introdutória, é apresentado o contexto geral em que o assunto deste tutorial esta inserido, bem como suas motivações e objetivos.

Na seção 2 é apresentada uma visão geral sobre os serviços Web, bem como uma breve descrição sobre suas principais tecnologias envolvidas, ou seja, XML, SOAP, WSDL, UDDI.

Na seção 3 é apresentada a Arquitetura Orientada a Serviços (SOA) que é base para um dos princípios fundamentais dos serviços Web.

Na seção 4 é apresentada a preparação dos recursos necessários para que seja possível criar e executar o exemplo prático de serviço Web desse tutorial.

Na seção 5 é apresentada a execução de um exemplo prático de serviço Web usando o Visual Studio 2008.

Na seção 6 é apresentada a maneira de acessar o serviço Web usando outro programa em uma rede.

2. VISÃO GERAL DE SERVIÇOS

Serviços Web são componentes de software independentes de plataforma e de implementação. Eles podem ser considerados como a união da infra-estrutura da internet com a rápida comunicação da linguagem XML. Seu uso permite a disponibilização de funcionalidade de uma aplicação por meio da internet, de uma forma padronizada. Aplicações que não podem ser acessadas exceto por meio de protocolos rígidos e proprietários, agora são acessíveis via Web [5].

Os serviços Web representam um fragmento de informação que pode ser acessado por qualquer um, em qualquer lugar, usando qualquer tipo de dispositivo. O consumidor dessa informação pode ser tanto uma pessoa acessando o serviço por meio de um cliente browser ou de uma aplicação desktop, ou até mesmo de um celular, usando o mesmo serviço Web [5].

Baseados em XML e em linguagens de especificação abertas como WSDL, UDDI e SOAP, os serviços Web apresentam-se como uma das possibilidades para a implementação do compartilhamento de recursos e a integração entre sistemas corporativos empregando a internet como meio de comunicação. Suas três principais vantagens estão embasadas no fato de funcionarem sobre padrões estabelecidos na internet (XML, HTTP, TCP/IP), no baixo acoplamento e na heterogeneidade entre as partes que pretendem interagir [2].

A seguir, estão descritas de maneira sucintas as tecnologias citadas acima.

2.1 XML

A inspiração para o projeto de XML veio de duas fontes distintas: SGML (Standard Generalized Markup Language) e HTML (Hypertext Markup Language) [12] Apud [2]. A versão 1.0 de XML foi disponibilizada pelo W3C (World Wide Web Consortium) em 10 de fevereiro de 1998, porém o projeto da linguagem foi iniciado em meados de 1996, com o objetivo de produzir um mecanismo simples e extensível para a representação textual de informação estruturada e semi-estruturada [2].

A linguagem XML – abreviatura para eXtensible Markup Language ou, em português, – Linguagem de Marcação Extensível – é uma linguagem definida principalmente para carregar dados e facilitar a compreensão do seu significado. É bastante semelhante ao HTML, pois assim como este, é composto por tags, mas apresenta um diferencial onde essas tags não são previamente definidas sendo possível que o usuário crie suas próprias [6].

2.2 SOAP

Na arquitetura de serviços Web, o protocolo básico padrão de fato para comunicação entre duas partes é o SOAP (Simple Object Acess Protocol) [11] Apud [2]. Estabelecendo-se como protocolo básico de mensagens para serviços Web, outras especificações que agregam facilidades e estendem possibilidades de uso do SOAP são construídas e definidas sobre o mesmo [2].

SOAP é um protocolo baseado em XML. A principal inovação introduzida por SOAP na computação distribuída é a possibilidade de comunicação efetiva entre sistemas distribuídos estabelecidos sobre conjuntos de software e hardware heterogêneos [11] Apud [2]. SOAP foi projetado num contexto em que as possibilidades para sistemas distribuídos caracterizavam-se por soluções baseadas em forte acoplamento entre as partes [2].

2.3 WSDL

A pilha de tecnologia relacionada a serviços Web, introduzida em [12] Apud [2], denominada Pilha de Descrição de Serviço, fornece uma noção da camada destinada à descrição e composição de serviços. A tecnologia WSDL (Web Service Description Language) tem a função de descrever serviços Web de modo a preencher lacunas principais como: informar ao consumidor o que o serviço executa; como o consumidor pode invocar o serviço; e como o consumidor pode diferenciar serviços similares, oferecidos por diferentes fornecedores [2].

O W3C (World Wide Web Consortium) oferece a seguinte definição para WSDL: “WSDL constitui-se em um formato XML para descrição de serviços de rede, como conjunto de pontos de acesso, disponibilizando mensagens com informações que podem ter conteúdo orientado a documento ou conteúdo orientado a procedimento. Operações para obter as mensagens, e as mensagens em si, são descritas de forma abstrata e ligadas concretamente ao protocolo de rede e ao formato da mensagem para definir o ponto de acesso, relacionando os pontos de acesso concreto com pontos de acesso abstratos (serviços). WSDL é extensível para permitir a descrição de pontos de acesso e suas mensagens por meio de formatos flexíveis para a mensagem e do protocolo de rede usado para comunicar. Entretanto, somente as ligações descritas neste documento indicam como empregar WSDL em conjunto com SOAP 1.1, HTTP GET/POST e MIME.” Em resumo, a função principal do WSDL é permitir que o cliente interessado em usar um serviço Web possa fazê-lo de forma automática, sem que seja necessário intervenção ou contato com o criador do mesmo [2].

A seguir são descritos brevemente alguns dos principais elementos de um documento WSDL.

Um documento WSDL completo consiste em um conjunto de definições começando com o elemento raiz definitions seguido por seis definições de elementos individuais: types, message, portType, binding, port, service – que juntamente descrevem os serviços. Esses elementos são descritos a seguir:

  • types: define os tipos de dados contidos nas mensagens trocadas como parte do serviço. Os tipos de dados podem ser simples, complexos, derivados, ou tipos vetoriais (array). Os tipos, ou as definições de esquema, ou as referências, mencionados em um elemento de mensagem de um documento WSDL, são definidos dentro do elemento do documento WSDL;
  • message: define as mensagens que o serviço Web troca. Um documento WSDL possui um elemento message para cada mensagem trocada, e o elemento message contém os tipos de dados associados com a mensagem;
  • portType: especifica, de uma maneira abstrata, operações e mensagens que fazem parte do serviço Web. Um documento WSDL possui uma ou mais definições de portType para cada serviço Web que define;
  • binding: liga o tipo de porta abstrata, e suas mensagens e operações, a um protocolo de transporte e aos formatos da mensagem.
  • service e port: juntos definem o nome do serviço Web e, fornecendo um único endereço para ligação, atribuem um ponto final individual ao serviço. Uma porta pode ter somente um endereço. O elemento service agrupa portas relacionadas em conjunto e, por meio de seu atributo name, fornece um nome lógico para o serviço.
Essa descrição é para um documento WSDL simples. Cada definição de elemento possui vários atributos e a WSDL possui recursos adicionais, tais como o tratamento de falhas. Maiores detalhes sobre as especificações da WSDL podem ser encontradas em http://www.w3c.org/TR/wsdl [7].

2.4 UDDI

Como solução para muitos problemas encontrados na consecução de negócios empregando a internet em B2B (Business to Business), a indústria de software, liderada pelas empresas Ariba, IBM e Microsoft, definiu UDDI (Universal Description Discovery Interface), a primeira iniciativa implementada e mantida pela própria indústria, por meio de corporações, vendedores de software e consórcios de segmentos da indústria e comércio [11] Apud [2]. UDDI foi criada para oferecer soluções rápidas para muitas das questões e empecilhos que limitam a rápida adoção do comércio via internet [11] Apud [2]. Ao contrário de SOAP e WSDL, que são capitaneadas e mantidas pelo W3C, a especificação UDDI é independente e mantida por um grupo de empresas do mundo dos negócios [11] Apud [2].

Constituindo-se em um conjunto de especificações, UDDI define o que deve ser feito e como deve ser feito, independentemente de plataforma, para que empresas de negócio possam: descrever publicamente seus serviços Web disponíveis; localizar outros serviços Web de seu interesse; e compartilhar informações sobre pontos convergentes em um registro global [11] Apud [2]. Do ponto de vista operacional, UDDI pode ser entendido como mecanismo que possibilita as organizações localizarem outras organizações e conduzirem transações de negócios de forma muito rápida, empregando padrões estabelecidos e aceitos por todos os participantes [11] Apud [2]. Por analogia, poderia ser um grande mercado virtual de possibilidades para negócios [2].

No segmento da indústria, que deu origem ao UDDI, o objetivo constitui-se em acomodar nesta especificação as seguintes características que devem atender as necessidades do B2B: descobrir o padrão mais adequado para a condução de negócios na internet, entre os milhões de padrões que existem hoje; criar um padrão aceito firmemente pela indústria, com uma abordagem padronizada que possa realmente chegar a atender a parceiros e clientes em termos de informação sobre serviços fornecidos e consumidos, que possa transformar-se em método preferencial para a integração entre sistemas e aplicações diferentes; e, caracterizar como transações de negócios são usadas no comércio, de modo que um parceiro preferencial possa ser selecionado por meios eletrônicos [11] Apud [2].

Muitos problemas do B2B encontram solução no UDDI. Pela perspectiva da aplicabilidade final, para corporações usuárias desta especificação, com UDDI é possível a um negócio encontrar um potencial parceiro, independentemente da escolha de padrões tecnológicos e/ou protocolos [11] Apud [2].

2.5 SINTETIZANDO OS CONCEITOS DE SERVIÇO WEB

Um Serviço Web é uma classe escrita em uma linguagem suportada por várias plataformas, inclusive pela .NET a qual será utilizada para as implementações práticas desse tutorial. Dessa forma, para que sejam sintetizados os principais conceitos dessa tecnologia será transcrito logo abaixo um artigo escrito por Renato Haddad que é Microsoft Most Valuable Professional ASP.NET.

Um Serviço Web é uma classe escrita em uma linguagem suportada pela plataforma .NET que pode ser acessada via protocolo HTTP. Isso significa dizer que você pode acessar qualquer Serviço Web disponível na Web e utilizar todas as funcionalidades do mesmo.
O acesso sempre será via HTTP, mas internamente existe uma string XML que está empacotada em um protocolo SOAP (Simple Object Access Protocol). O SOAP é um padrão aberto criado pela Microsoft, Ariba e IBM para padronizar a transferência de dados em diversas aplicações, por isso, se dá em XML.
O uso de Serviço Web simplesmente é fantástico porque você pode acessar rotinas de validação de cartão de crédito, endereçamento postal (CEP), calcular valores de fretes dos sites de comércio eletrônico, news de empresas, enfim, uma gama gigantesca de produtos. A grande diferença em relação ao desenvolvimento atual é que a empresa que desenvolve uma DLL, não precisa ficar distribuindo para todos os clientes, esta estará armazenada em um único lugar que será acessado via HTTP. Isso sem falar em atualizações de DLL atuais, o que pode causar um transtorno para todos.
Outra vantagem é que o Serviço Web é transparente para o Firewall de uma empresa, pois, como é uma string XML, então é interpretada como um arquivo "texto". Sendo assim, não é preciso pedir autorização do Firewall para entrar [4].

3. ARQUITETURA ORIENTADA A SERVIÇOS

Um dos princípios fundamentais dos serviços Web está na sua concepção baseada em SOA – Service Oriented Architecture, que tema função de coordenar o relacionamento e as principais características dos componentes de modo a oferecer suporte dinâmico à pesquisa e ao uso automatizado desses [3] Apud [2].

Em um ambiente orientado a serviços, serviços devem ser projetados para desempenhar as seguintes atividades assenciais: possuir interfaces e métodos definidos claramente, ser publicados em uma intranet ou em vários repositórios da internet, para que seus potenciais usuários possam localizá-los de forma automática. Devem ainda oferecer algum benefício ou agregar algum tipo de valor ao serem acionados e possuir gerenciamento de desativação quando não forem mais necessários ou sofrerem obsolescência [3] Apud [2].

Os componentes de uma arquitetura SOA, e portanto de um serviço Web elaborado a partir dela, podem desempenhar um ou mais dos seguintes papéis:

  • Provedor de acesso: que publica e disponibiliza o ponto de acesso onde se pode obter o serviço;
  • Corretor, o diretório do serviço: onde se publica; entidade onde se anuncia e descrevem os serviços disponíveis nos provedores, uma entidade que funciona como um catálogo onde procura um serviço específico;
  • Consumidor, o solicitante: entidade que procura por um serviço no corretor, no diretório, e ao encontrar esse serviço, dirigi-se ao provedor do serviço para consumi-lo [3] Apud [2].

Esses três componentes devem executar três operações básicas entre si: 1) operação de publicação, ou seja, de registro do serviço, dos métodos e da interface no corretor; 2) operação de busca, ou seja, de consulta do corretor pelo consumidor que está interessado em encontrar o serviço; e, 3) operação de consumo do serviço a partir do consumidor que pode usufruir o serviço disponibilizado pelo provedor [3] Apud [2]. A Figura 2.1 apresenta a arquitetura SOA, com seus respectivos componentes.


Figura 3.1 – Arquitetura SOA (http://researchweb.watson.ibm.com/journal/sj/412/leymann.html)

4. PREPARAÇÃO DOS RECURSOS NECESSÁRIOS PARA CRIAR E EXECUTAR UM SERVIÇO WEB

O objetivo dessa seção é executar a instalação dos recursos necessários para iniciar a criação de um exemplo prático e simples de um serviço Web utilizando o Visual Studio 2008, bem como detalhar cada etapa de execução conforme mencionado anteriormente.

Dessa forma, são primeiramente apresentados na Tabela 1 os softwares, e as respectivas versões, usados para realizar esse exemplo prático.

Tabela 1 – Softwares necessários para esse tutorial

QUADRO SÍNTESE DOS SOFTWARES USADOS

Microsoft Windows XP Professional versão 2002 Service Pack 3

Microsoft Visual Studio 2008

Internet Information Services (IIS6) Manager

Internet Explorer 8

As etapas a serem cumpridas nesta seção são:

  1. Instalação dos softwares necessários;
  2. Instalação de outros recursos necessários, tais como a rede ponto-a-ponto;
  3. Configuração dos recursos necessários para funcionalidade desta execução;

4.1 INSTALAÇÃO DO VISUAL STUDIO 2008

Existem várias maneiras para se intalar o Visual Studio, A seguir é apenas sugerida uma maneira possível, baseada no exemplo extraído de [3]:

Passo 1: Efetuar o download do arquivo iso que contém a imagem do Visual Studio 2008 (versão Trial para 90 dias), navegando até o endereço: http://msdn2.microsoft.com/en-us/vstudio/aa700831.aspx.

Passo 2: Nesta página escolher a versão “Professional”. Após a escolha da versão, efetuar o login com um passport account, e preencher um pequeno formulário, para ter acesso ao link de download conforme apresentado na Figura 4.1.1.


imagem2.jpg
Figura 4.1.1 – Página de download do vs 2008 beta 2 professional edition.

Passo 3: Depois de preencher todos os campos do formulário exigido, chega-se à página anterior, conforme apresentado na Figura 4.1.1, onde se pode finalmente efetuar o download do Visual Studio 2008, contido num arquivo de imagem com aproximadamente 3 Gygabytes. Após algum tempo de download, deve-se ter o arquivo orcasbeta2proxxxxxxxx.img no PC.


Passo 4: Renomear a extensão do arquivo de “.img” para “.iso”, para que os programas de emulação ou de gravação consigam reconhecer o arquivo como um arquivo de imagem (imagem de um DVD).


Passo 5: Agora têm-se duas hipóteses, ou se grava o arquivo em um DVD, usando por exemplo o aplicativo Nero, usando a funcionalidade de gravação de DVD a partir de um arquivo de imagem, ou emula-se o DVD por meio de um aplicativo tal como Alcohol ou Daemon Tools (Freeware). A partir daqui os passo são iguais, quer tenha-se gravado num DVD ou emulado o arquivo.


Passo 6: Assim que o DVD tenha sido introduzido, o instalador é executado automaticamente. Na tela inicial basta clicar no link “Install Visual Studio 2008” para que a instalação se inicie conforme a Figura 4.1.2.


imagem3.jpg
Figura 4.1.2 – Tela inicial de instalação do visual studio 2008.

Passo 7: Depois deste tela, surge uma tela intermediária onde é questionado se deseja ajudar a Microsoft na detecção de bugs e possíveis problemas da versão beta. Como sugestão, desmarcar a caixa de seleção dessa tela conforme apresentado na Figura 4.1.3.


imagem4.jpg
Figura 4.1.3 – Tela intermediária de ajuda na detecção de erros.

Passo 8: Na tela seguinte, o sistema é inspecionado para verificar quais os pré-requisitos que são necessários antes de instalar o Visual Studio 2008. Nesse caso, não foi necessário instalar nada, como se pode ver pela imagem da Figra 4.1.4. A chave é introduzida automaticamente.


imagem5.jpg
Figura 4.1.4 – Análise do sistema e chave do produto.


Passo 9: Escolher o diretório de instalação e o tipo de instalação conforme apresentado na Figura 4.1.5:


Default – Recomendado || Full – Completa || Custom – Personalizada

imagem6.jpg
Figura 4.1.5 – Tipo e diretório de instalação.


Passo 10: Como sugestão, selecionar a opção “Custom”, pois como alguns componentes não são necessários, pode-se decidir quais devem ser instalados, poupando espaço de instalação. Na tela seguinte, pode-se escolher os componentes que deseja-se instalar conforme apresentado na Figura 4.1.6.


imagem7.jpg
Figura 4.1.6 – Escolha de componentes de instalação.


Passo 11: Nesse caso, como não será desenvolvido nenhuma aplicação em C++ nem em Visual Basic, sugere-se retirar esses componentes do procedimento de instalação, no entanto, deve-se escolher os componentes de acordo com as necessidades. Clicar em “Next” para iniciar a instalação conforme apresentado na Figura 4.1.7.


imagem8.jpg
Figura 4.1.7 – Instalação do visual studio 2008.

Passo 12: Durante a instalação do Visual Studio 2008, são apresentadas mensagens descritivas das novas funcionalidades que possui, como a que se pode ver na Figura 4.1.7, onde se evidencia o suporte melhorado para AJAX. Quando a barra de progresso chegar ao fim, tem-se o Visual Studio 2008 beta 2 instalado no computador e quase pronto para ser usado conforme apresentado na Figura 4.1.8.


imagem9.jpg
Figura 4.1.8 – Finalização da instalação do vs 2008.

Passo 13: Após terminado a instalação do Visual Studio 2008, ainda é necessário executar um pequeno script para efetuar a correcção de um bug desta versão beta, que causa problemas de incompatibilidade entre a nova Framework .NET 3.5 e aplicações desenvolvidas com ASP.NET AJAX 1.0. O download do script pode ser efetuado a partir do endereço: http://go.microsoft.com/fwlink/?linkid=95792.
Por se tratar de um executável simples, basta executá-lo, e o bug é corrigido automaticamente.

Com isso, tem-se a instalação do ambiente de desenvolvimento concluída [3].

4.2 INSTALAÇÃO DO INTERNET INFORMATION SERVER (IIS)

As informações desse e das próximas seções sobre IIS foram baseadas na referência [1].

Internet Information Server ou “Services” (IIS) é o servidor de páginas Web avançado da plataforma Windows. É distribuído gratuitamente junto com as versões de Windows baseadas em tecnologia NT, como Windows 2000 Profissional ou Windows 2000 Server, assim como Windows XP, também em suas versões Profissional e Server.

As normas de instalação do IIS apresentadas aqui são aplicáveis em nível geral, podendo ser encontradas nas distintas versões dos sistemas operacionais comentados acima. Porém, o Windows XP Profissional foi usado para relatar os passos e obter as imagens das telas apresentadas nas figuras a seguir.

Nota: Windows 95, 98, as versões Home, de Windows XP, e ME, de Windows 2000, não se admite a instalação de IIS. No lugar dele pode-se experimentar instalar o Personal Web Server, que está explicado no artigo Instalação de Personal Web Server em [1].

4.2.1 AGREGAR COMPONENTES ADICIONAIS DO WINDOWS

IIS pode ser encontrado no próprio CD de instalação do Windows XP Profissional. É necessário acessar a opção "Instalar componentes opcionais do Windows" para poder carregá-lo no sistema. Para isso têm-se duas opções:

Opção 1: Inserir o CD de instalação de Windows e na janela que se mostra para iniciar a instalação, selecionar a opção "Instalar componentes opcionais do Windows" conforme Figura 4.2.1.1.


Figura 4.2.1.1

Opção 2: No Painel de controle, selecionar a opção de "Adicionar ou remover programas" e, na janela que surgir, clicar sobre o ícone da esquerda marcado como "Adicionar ou remover componentes de Windows" conforme figura 4.2.1.2.


Figura 4.2.1.2

A janela para selecionar os componentes adicionais de Windows que estão disponíveis é apresentada. Na lista, marcar a opção "Serviços de Internet Information Server (IIS)". Por padrão, estão selecionados alguns componentes, dentro dos quais se oferecem a instalação de IIS. Escolhe-se os componentes que se deseja instalar, clicando no botão chamado de "Detalhes". Entre os possíveis componentes se encontram as extensões de FrontPage, documentação, serviços adicionais de IIS, um servidor de FTP (para a transferência de arquivos com o servidor por FTP), inclusive de SMTP (para o envio de correios eletrônicos).

Nesse caso, pode-se deixar as opções como aparecem a princípio conforme a Figura 4.2.1.3, pois na maioria dos casos são válidas. Pode ser adequado não instalar as extensões de FrontPage, nesse caso.


Figura 4.2.1.3

Uma vez instalado os componentes desejados, clicar no botão de "Avançar" para começar a instalação, que demorará uns minutos [1].

4.2.2 ACESSAR O SERVIDOR WEB

Para se comprovar que foi instalado corretamente o IIS, pode-se acessar o servidor Web. Para isso, escrever http://localhost na barra de endereço do navegador Internet Explorer que deverá aparecer uma página Web informando que o IIS está corretamente instalado (certifique-se de que esteja logado como administrador da máquina). Além disso, se ele tiver sido instalado corretamente, aparecerá a documentação do IIS em uma janela conforme a Figura 4.2.2.1 [1].


Figura 4.2.2.1

4.3 CONFIGURAÇÃO PONTO-A-PONTO DE REDE NO WINDOWS XP

As informações desse tópico foram baseadas na referência [8].

Nessa seção, são descritos os passos necessários para se configurar uma rede ponto-a-ponto entre dois micros com Windows XP, totalmente manual e sem auxílio de nenhum software ou assistente. Uma rede ponto-a-ponto faz a ligação direta entre dois computadores por meio de um cabo ligando suas respectivas placas de rede, sem o uso de uma intranet.

Para realizar essa configuração, será necessário estar de posse de:

  • Um cabo de rede CrossOver conforme a Figura 4.3.1. O cabo CrossOver serve para ligar dois computadores diretamente, sem HUB ou SWITCH;
  • Dois computadores com suas placas de rede devidamente em funcionamento.

16
Figura 4.3.1 – Cabo CrossOver

Passo 1: Clicar com o botão direito do mouse em cima do ícone “Meu Computador” e depois em “Propriedades” para especificar o nome do computador um, conforme apresentado na Figura 4.3.2.


Figura 4.3.2


Passo 2: Na guia “Nome do Computador” especificar um nome e um grupo ao computador como na Figura 4.3.3. Clicar em alterar e especificar nos campos próprios para mudar o nome do computador e o Grupo. O nome do grupo terá que ser igual em ambos os computadores.


Figura 4.3.3

Passo 3: Repetir o procedimento acima no segundo computador conforme apresentado na Figura 4.3.4.


Figura 4.3.4

Passo 4: Para configurar os IPs das máquinas, executar o seguinte procedimento: com o Computador 1, entre em “Painel de Controle” > “Conexões de rede”, clicar com o botão direito do mouse no ícone da placa que representa a placa que está ligando os computadores e depois em propriedades conforme apresentado na Figura 4.3.5.



Figura 4.3.5

Passo 5: Clicar sobre o Protocolo TCP/IP e depois em Propriedades conforme apresentado na Figura 4.3.6.


Figura 4.3.6


Passo 6: Marcar a Opção “Usar o seguinte endereço de IP” e especificar os valores conforme apresentado na Figura 4.3.7.


Figura 4.3.7

Passo 7: Clicar no botão “Avançado” na parte inferior dessa janela, e depois, na guia “WINS”, marcar a opção “Ativar NetBios sobre TCP/IP”, e por fim, clicar no botão OK conforme apresentado na Figura 4.3.8.


Figura 4.3.7

Passo 8: Para configurar o segundo computador, executar o seguinte procedimento: entrar em “Painel de Controle” > “Conexões de rede”, clicar com o botão direito do mouse no ícone “rede” e depois em “propriedades”, conforme apresentado na Figura 4.3.8.


Figura 4.3.8

Passo 9: Clicar sobre o “Protocolo TCP/IP” e depois em “Propriedades”, conforme apresentado na Figura 4.3.9.


Figura 4.3.9


Passo 10: Marcar a Opção “Usar o seguinte endereço de IP” e especificar os valores conforme apresentado na Figura 4.3.10.


Figura 4.3.10

Passo 11: Clicar no botão “Avançado” na parte inferior dessa janela, conforme apresentado na Figura 4.3.10.

Passo 12: Na guia “WINS” marcar a opção “Ativa NetBios sobre TCP/IP” e clicar em OK, conforme apresentado na Figura 4.3.11.


Figura 4.3.11

5. CRIANDO UM EXEMPLO PRÁTICO DE SERVIÇO WEB

O objetivo dessa seção é iniciar a criação propriamente dita de um serviço Web usando o Visual Studio 2008.

O exemplo a seguir bem como algumas demonstrações das próximas seções foram extraídos e adaptados de [5].

5.1 CRIANDO UM SERVIÇO WEB

Como o serviço Web será executado em uma rede, deve-se criar este serviço em apenas uma das máquinas, que será considerada como servidor web.

Para a implementação do serviço Web, a linguagem C#.NET será usada, ou seja, o arquivo de código-fonte será criado com a extensão.cs.

Agora será exibido como criar o primeiro serviço Web usando o Visual Studio 2008.

Passo 1: Executar o Microsoft Visual Studio 2008, clicar em File > New Project. Será apresentada a tela com os templates do Visual Studio conforme Figura 5.1.1.


Figura 5.1.1

Passo 2: Escolher a opção para criar o serviço Web conforme é apresentado na Figura 5.1.1. Selecionar a opção “ASP.NET serviço Web Application”, preencher os dados conforme indicado na Figura 5.1.1. O Visual Studio criará primeiramente a sua aplicação no IIS (Internet Information Service).

Passo 3: O projeto ficará semelhante a Figura 5.1.2, com exceção de alguns componentes:


Figura 5.1.2

A Figura 5.1.2 mostra apenas depois que foi criado o projeto no Visual Studio 2008. Na Figura 5.1.3, será criado um arquivo chamado “servico.asmx”, essa é a extensão do arquivo para o Serviço Web.

Passo 4: Clicar com o botão direito do mouse em cima do projeto. Clicar na opção “Add” > “New Item...”, conforme apresentado na Figura 5.1.3.


Figura 5.1.3

Passo 5: O Visual Studio mostra as opções de arquivo. Existe uma opção de arquivo chamada “Web Service”. Selecionar e colocar o nome de “serviço.asmx”, conforme apresentado na Figura 5.1.4:


Figura 5.1.4

Passo 6: Logo após colocar o nome do arquivo, clicar em “Add”. A Figura mostra o arquivo criado. Clicar duas vezes no mesmo para entrar no código-fonte, ou seja, o “arquivo.cs”. Veja nas Figuras 5.1.5 e 5.1.6.


Figura 5.1.5



Figura 5.1.6

5.2 CODIFICANDO O SERVIÇO WEB

Para começar, será criado um serviço Web simples e rápido, apenas para uma noção. Veja o exemplo abaixo:

namespace PrimeiroWebService
{
/// <summary>
/// Summary description for servico
/// </summary>
[WebService(Namespace = "http://matrix")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ToolboxItem(false)]
// To allow this Web service to be called from script, using ASP.NET AJAX, uncomment the following line.
// [System.Web.Script.Services.ScriptService]
public class servico : System.Web.Services.WebService
{

[WebMethod(Description = "Primeiros testes de WebService")]
public string Testando(string minha_pagina)
{
return minha_pagina;
}

5.2.1 EXPLICANDO O CÓDIGO

Este é um simples serviço Web apenas para fins didáticos. Apenas recebe uma String e retorna essa mesma String passada para o XML.

Esse comentário “[WebMethod]...” é apenas para que o desenvolvedor que for usar o mesmo, veja o comentário abaixo do sistema mostrando como usar.

É considerada uma boa prática de programação o uso do “<summary>” na parte superior do código, depois de todo o sistema criado e funcionando corretamente, a documentação pode ser criada automaticamente pela ferramenta Visual Studio 2008.

Na Figura 5.2.1.1, veja como ficará o código:


Figura 5.2.1.1

Na Figura 5.2.1.2, será mostrado como colocar a página ou serviço para iniciar, isto é, quando clicar em F5, a primeira página ou serviço será iniciado automaticamente.

Passo 1: Clicar com o botão direito em cima da página desejada e escolher a opção “Set As Start Page”, conforme apresentado na Figura 5.2.1.2.


Figura 5.2.1.2

Passo 2: Clicar em F5 para iniciar o sistema, como foi explicado anteriormente. A página primeiramente aberta é a indicada na Figura 5.2.1.2.

Passo 3: Na Figura 5.2.1.3, percebe-se que é mostrado o método com o comentário colocado no código.


Figura 5.2.1.3

Ao iniciar o sistema, veja que a ferramenta Visual Studio 2008 já abre o browser, ou seja, deixa pronto para executar o código construído.

Passo 4: Clicar no método “Testando”, e visualizar na Figura 5.2.1.4 o que deve acontecer:


Figura 5.2.1.4

Os comentários que existem nessa página, onde se encontra o método que foi criado, contém informações importantes sobre o serviço criado.

Existe um comentário sobre o SOAP, mostrando as variáveis ou variável do método e o seu tipo, em forma de tag XML.

Mais abaixo, em HTTP POST, é mostrada a variável que será retornada, junto com o seu tipo, nesse exemplo uma String.

Passo 5: Colocar um valor no campo texto na tela e clicar no botão “Chamar”. O sistema abre outra tela e mostra o resultado em XML. Veja na Figura 5.2.1.5 como fazer:


Figura 5.2.1.5

O valor retornado apresenta-se em forma de uma tag. É dessa forma que o serviço Web irá retornar os valores para qualquer outro programa que o chamar. É uma forma bastante leve e simples: o sistema retornou o arquivo XML como resultado. Qualquer programa que o chamar pegará o XML retornado e tratará os valores.

6. ACESSANDO O SERVIÇO WEB USANDO OUTRO PROGRAMA EM UMA REDE

Para iniciar essa etapa é necessário executar as seguintes configurações na máquina que será considerada como servidor:

Passo 1: Como se trata apenas de uma execução para fins didáticos as questões relacionadas à segurança da rede não serão levadas em consideração e por isso, deve-se desabilitar o firewall do Windows conforme a Figura 6.1:


Figura 6.1

Passo 2: Agora deve ser criado um diretório virtual no IIS para que o serviço seja reconhecido no micro cliente conforme descrito no passo 3.

Passo 3: Clicar em “iniciar” > “Programas” > “Ferramentas Administrativas” > “Internet Information Services”. Selecionar “Sites da Web Padrão”, clicar com o botão direito do mouse, selecionar “novo” e clicar em “Diretório virtual...” conforme a Figura 6.2:


Figura 6.2

Passo 4: Digitar o “Aliás” que será usado para acessar este diretório virtual da Web, conforme apresentada na Figura 6.3.


Figura 6.3

Passo 5: Clicar em “Procurar” e selecionar a pasta onde foi criado o projeto ou onde contém o arquivo “serviço.asmx”, conforme apresentado na Figura 6.4.


Figura 6.4


Passo 6: Selecionar as permissões de acesso para o diretório virtual conforme apresentado na Figura 6.5.


Figura 6.5

Passo 7: Clicar em “Concluir” para finalizar a criação do diretório virtual conforme apresentado na Figura 6.6.


Figura 6.6


Passo 8: Após a criação do diretório virtual o IIS deve ter a seguinte aparência da Figura 6.7:


Figura 6.7

Passo 9: Clicar com o botão direito do mouse em “webservice” > “Todas as tarefas” > “Assistente de Permissões....” para alterar as configurações de permissões do diretório virtual, conforme apresentada na Figura 6.8.


Figura 6.8

Passo 10: Clicar em “Avançar” para iniciar o “Assistente de permissões” do IIS conforme apresentado na Figura 6.9.


Figura 6.9

Passo 11: Selecionar a opção: “Selecionar novas configurações de segurança com base em um modelo” e depois clicar em “Avançar”, conforme apresentado na Figura 6.10.


Figura 6.10


Passo 12: Selecionar em “Cenário” a opção “Public Web Site” e depois clicar em “Avançar” conforme apresentado na Figura 6.11.


Figura 6.11

Passo 13: Clicar em “Substituir todas as permissões de diretório e arquivo (recomendado) e depois clicar em “Avançar” conforme apresentado na Figura 6.12.


Figura 6.12

Passo 14: Clicar em “Avançar” para aplicar as configurações de segurança efetuadas conforme apresentado na Figura 6.13.


Figura 6.13

Passo 15: Clicar em “Concluir” para finalizar o “Assistente de permissões” do IIS conforme apresentado na Figura 6.14.


Figura 6.14

Após a execução dos passos descritos anteriormente, será iniciada a implementação de uma aplicação que irá consumir um serviço remotamente.

Essa implementação deverá ser feita no micro considerado cliente. Para isso deve-se:

Passo 16: Verificar se tanto a rede ponto-a-ponto quanto à instalação do Visual Studio 2008 estejam funcionando corretamente no micro cliente.

Passo 17: Criar uma pasta no desktop do micro cliente com o nome WebService. Abrir o Visual Studio e criar uma nova aplicação conforme apresentado na Figura 6.15.


Figura 6.15

Passo 18: Criar um novo arquivo chamado “acessando.aspx” conforme apresentado na Figura 6.16:


Figura 6.16

Este arquivo criado irá chamar o método “Testando” criado anteriormente no serviço Web do micro “servidor”.

Passo 19: Na página que será criada, onde há o acesso ao serviço Web, o nome da página será “acessando.aspx” e terá alguns componentes simples na tela, conforme apresentado na Figura 6.17.


Figura 6.17


A seguir, tem-se a especificação de objetos da página Web “acessando.aspx”.

Label
Id = lblDados
Text = Dados

Label
Id = lblResultado

TextBox
Id = txtDados

Button
Id = cmdAcessar
Text = Acessar

Passo 20: Após a especificação dos objetos da página Web, é instanciado o serviço Web criado anteriormente. O serviço da internet foi criado e agora será usado esse mesmo serviço. Assim, dentro do “Solution Explorer” do Visual Studio 2008 existe uma pasta chamada “References”. Clicar com o botão direito do mouse nessa pasta e depois na opção “Add Web Reference...”, conforme apresentado na Figura 6.18:


Figura 6.18

Passo 21: Clicando no botão indicado na Figura 6.18, surge uma tela para que seja adicionado o endereço do serviço Web criado. O endereço que será colocado é o endereço do IP do micro servidor bem como o alias criado para a pasta que contém o serviço. Nesse caso o endereço fica da seguinte forma: “http://matrix/webservice/servico.asmx”.

O serviço que será procurado pelo Visual Studio 2008 mostrará apenas um link chamado “Testando”, e com o comentário abaixo do mesmo, escrito: “Primeiros testes de Serviço Web”, onde aparecerá o comentário que foi criado durante a criação do serviço pelo desenvolvedor, usando uma opção “description”.

Passo 22: Após indicar o local do serviço disponibilizado, clicar no botão chamado “Add References”, conforme apresentado na Figura 6.19.


Figura 6.19

6.1 INSTANCIANDO E CODIFICANDO O WEBSERVICE

Após clicar no botão indicado na Figura 6.19 da seção 6.0, surge o nome “matrix” dentro do “Solution Explorer” do Visual Studio 2008. Esse deve ser o nome que será instanciado para chamar o método de dentro do seu programa que irá usar o serviço disponibilizado na internet.

Passo 1: Na página “acessando.aspx”, clicar duas vezes no botão “cmdAcessar” e digitar o seguinte código:

namespace PrimeiroWebService
{
public partial class acessando : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}

protected void cmdAcessar_Click(object sender, EventArgs e)
{
///INSTANCIANDO O SERVIÇO DA WEB QUE CRIADO.
matrix.servico sServico = new PrimeiroWebService.matrix.servico();

///CHAMANDO O MÉTODO DO WEBSERVICE PELA VARIÁVEL CRIADA ACIMA.
lblResultado.Text = sServico.Testando(txtDados.Text);
}
}
}

6.1.1 EXPLICANDO O CÓDIGO

Depois de ter acionado o serviço Web, coloca-se o nome do mesmo, logo depois o nome da classe, seguido por uma variável qualquer digitada. O “new” já mostra a instância criada. Coloca-se o nome da variável clicando (ponto) “.”. A ferramenta mostrará todos os métodos disponíveis para poder acessar. Passa-se o parâmetro do “TextBox” criado de objetos da página. O mesmo método precisará retornar alguma “String”, por isso coloca-se o retorno do mesmo em uma “Label” conforme já criado anteriormente, chamada “lblResultado.text”. Após digitar o código a tela do Visual Studio fica com a aparência apresentada na Figura 6.1.1.1.


Figura 6.1.1.1

Dessa forma, o primeiro serviço Web está preparado para funcionar conforme os passos a seguir.

Passo 1: Colocar a página “acessando.aspx” como “Set As Start Page” e clicar em F5.

Passo 2: Depois de iniciar o programa, aparecerá a página com um campo e um botão conforme a Figura 6.1.1.2.


Figura 6.1.1.2

Passo 3: Digitar um texto qualquer e clicar em “Acessar” para que o serviço Web criado seja invocado, conforme apresentado na Figura 6.1.1.3.


Figura 6.1.1.3

Passo 4: É retornada uma mensagem com a String digitada, conforme apresentada na Figura 6.1.1.4


Figura 6.1.1.4

7. REFERÊNCIAS BIBLIOGRÁFICAS

[1] ALVAREZ, M. A. Instalação do IIS em Windows XP Profissional. Disponível em: <http://www.criarweb.com/artigos/381.php>. Acesso em: 06 jun. 2009.

[2] ABINADER NETO, J. A.; LINS, R. D. Web Services em Java. Brasport, 2006.

[3] COSTA, N. Instalação do Visual Studio 2008 beta 2. Disponível em: <http://istomesmo.wordpress.com/2007/09/11/tutorial-01-instalacao-do-visual-studio-2008-beta-2/>. Acesso em: 06 jun. 2009.

[4] HADDAD, R. Serviços Web. Disponível em: <http://msdn.microsoft.com/pt-br/library/cc564893.aspx>. Acesso em: 06 jun. 2009.

[5] JUNIOR, M. P. B. Desenvolvendo Serviços Web: Guia rápido usando Visual Studio.Net com Banco de Dados SQL Server. Ciência Moderna, 2005.

[6] RECH, V. XML e Serviço Web: Passagem de parâmetro no formato XML para um Serviço Web. Net Magazine, Rio de Janeiro, nº62, p.65-74, 2009.

[7] SINGH, I. et al. Projetando Web Services com a Plataforma J2EE 1.4. Ciência Moderna, 2006.

[8] TUTORIAL CLUBE DO HARDWARE. Tutorial rede ponto-a-ponto no XP (manualmente). Disponível em: <http://www.guiadohardware.net/comunidade/rede-tutorial/230253/>. Acesso em: 06 jun. 2009.

Fabrício Rocha

Fabrício Rocha