Serviços Web XML. Visão geral da tecnologia

O título do tópico é realmente uma pergunta, porque Eu mesmo não sei o que é e, pela primeira vez, tentarei trabalhar com ele no âmbito deste artigo. A única coisa que posso garantir é que o código abaixo funcionará, porém, minhas frases serão apenas suposições e palpites sobre como eu mesmo entendo tudo isso. Então vamos...

Introdução

Precisamos começar com o que o conceito de web services foi criado. Quando esse conceito surgiu, já existiam tecnologias no mundo que permitiam que aplicativos interagissem à distância, onde um programa poderia chamar algum método em outro programa, que poderia então ser lançado em um computador localizado em outra cidade ou mesmo país. Tudo isso é abreviado como RPC (Remote Procedure Calling - chamada de procedimento remoto). Exemplos incluem tecnologias CORBA e para Java - RMI (Remote Method Invoking - invocação de método remoto). E tudo parece estar bem neles, principalmente no CORBA, porque você pode trabalhar com ele em qualquer linguagem de programação, mas algo ainda estava faltando. Acredito que a desvantagem do CORBA é que ele funciona por meio de alguns de seus protocolos de rede em vez de HTTP simples, que rastreará qualquer firewall. A ideia de um serviço web era criar tal RPC que seria empurrado em pacotes HTTP. Assim começou o desenvolvimento do padrão. Quais são os conceitos básicos desta norma:
  1. SABÃO. Antes de chamar um procedimento remoto, você precisa descrever essa chamada em um arquivo XML no formato SOAP. SOAP é apenas uma das muitas marcações XML usadas em serviços da web. Tudo o que queremos enviar para algum lugar via HTTP é primeiro transformado em uma descrição XML SOAP, depois colocado em um pacote HTTP e enviado para outro computador da rede via TCP/IP.
  2. WSDL. Existe um serviço web, ou seja, um programa cujos métodos podem ser chamados remotamente. Mas o padrão exige que uma descrição seja anexada a este programa, que diz que “sim, você não se enganou - este é realmente um serviço da web e você pode chamar tais e tais métodos a partir dele”. Essa descrição é representada por outro arquivo XML que possui um formato diferente, o WSDL. Aqueles. WSDL é apenas um arquivo XML que descreve um serviço web e nada mais.
Por que tão curto você pergunta? Você não pode entrar em mais detalhes? Provavelmente você pode, mas para isso você terá que recorrer a livros como Mashnin T. "Java Web Services". Lá, para as primeiras 200 páginas, há uma descrição detalhada de cada tag dos padrões SOAP e WSDL. Vale a pena? Na minha opinião, não, porque tudo isso é criado automaticamente em Java, e você só precisa escrever o conteúdo dos métodos que devem ser chamados remotamente. Então, em Java existe uma API como JAX-RPC. Se alguém não sabe quando dizem que Java tem tal e tal API, isso significa que existe um pacote com um conjunto de classes que encapsulam a tecnologia em questão. O JAX-RPC evoluiu de versão para versão por um longo tempo e eventualmente evoluiu para JAX-WS. WS obviamente significa WebService e você pode pensar que esta é uma simples renomeação de RPC em um chavão popular nos dias de hoje. Não é assim, porque agora os web services afastaram-se da ideia original e permitem não só chamar métodos remotos, mas também simplesmente enviar mensagens de documentos em formato SOAP. Por que isso é necessário, eu ainda não sei, é improvável que a resposta aqui seja “apenas no caso, de repente é necessário”. Eu mesmo gostaria de aprender com camaradas mais experientes. E, finalmente, o JAX-RS apareceu para os chamados web services RESTful, mas este é um tópico para um artigo separado. Esta introdução pode ser concluída, porque. a seguir, aprenderemos como trabalhar com JAX-WS.

Abordagem geral

Os serviços da Web sempre têm um cliente e um servidor. O servidor é nosso serviço da web e às vezes é chamado de endpoint (como o endpoint onde as mensagens SOAP do cliente chegam). Precisamos fazer o seguinte:
  1. Descreva a interface do nosso serviço web
  2. Implemente esta interface
  3. Inicie nosso webservice
  4. Escreva um cliente e chame remotamente o método de serviço da web desejado
Você pode iniciar um serviço da web de diferentes maneiras: descrever uma classe com um método main e executar o serviço da web diretamente como um servidor ou implantá-lo em um servidor como o Tomcat ou qualquer outro. No segundo caso, nós mesmos não iniciamos um novo servidor e não abrimos outra porta no computador, mas simplesmente informamos ao contêiner do servlet do Tomcat que “escrevemos classes de serviço da web aqui, publique-as para que todos que entrarem em contato com você possam usar o serviço web. Independentemente de como o serviço web é lançado, teremos o mesmo cliente.

Servidor

Inicie o IDEA e crie um novo projeto Criar novo projeto. Especifique um nome hellowebservice e pressione o botão Próximo, então o botão Terminar. Na pasta src criar um pacote pt.javarush.ws. Neste pacote, criaremos a interface HelloWebService: pacote ru. javarush. ws; // estas são anotações, ou seja, uma maneira de marcar nossas classes e métodos, // relacionado à tecnologia de serviço da web importar javax. jws. Método Web; importar javax. jws. serviço de internet; importar javax. jws. sabão. SOAPBinding; // dizemos que nossa interface funcionará como um web service@Serviço de internet // diz que o web service será usado para chamar métodos@SOAPBinding(style = SOAPBinding.Style.RPC) interface pública HelloWebService( // digamos que este método pode ser chamado remotamente@WebMethod public String getHelloString(String name) ; ) Nesse código, as classes WebService e WebMethod são chamadas de anotações e não fazem nada além de marcar nossa interface e seu método como um serviço da web. O mesmo se aplica à classe SOAPBinding. A única diferença é que SOAPBinding é uma anotação com parâmetros. Nesse caso, o parâmetro style é usado com um valor que diz que o web service funcionará não por meio de mensagens de documento, mas como um RPC clássico, ou seja, para chamar o método. Vamos implementar nossa lógica de interface e criar uma classe HelloWebServiceImpl em nosso pacote. A propósito, noto que a classe que termina com Impl é uma convenção em Java, segundo a qual a implementação de interfaces é assim designada (Impl - da palavra implementação, ou seja, implementação). Isso não é um requisito e você pode nomear a classe como quiser, mas as boas maneiras exigem isso: package ru. javarush. ws; // mesma anotação da descrição da interface, importar javax. jws. serviço de internet; // mas aqui é usado com o parâmetro endpointInterface, // indicando o nome completo da classe de interface do nosso serviço web@WebService(endpointInterface= "en.javarush.ws.HelloWebService") classe pública HelloWebServiceImpl implementa HelloWebService ( @Override public String getHelloString (nome da string) ( // apenas retorna a saudação return "Olá, " + nome + "!" ; ) ) Vamos executar nosso web service como um servidor autônomo, ou seja, sem a participação de nenhum Tomcat e servidores de aplicativos (este é um tópico para uma discussão separada). Para fazer isso, na estrutura do projeto na pasta src vamos criar um pacote ru.javarush.endpoint , e nele criaremos uma classe HelloWebServicePublisher com o método main: package ru. javarush. ponto final; // classe para iniciar um servidor web com serviços web importar javax. xml. ws. ponto final; // classe do nosso webservice importação pt. javarush. ws. hellowebserviceimpl; public class HelloWebServicePublisher( public static void main(String. . . args)( // inicia o servidor web na porta 1986 // e no endereço especificado no primeiro argumento, // inicia o web service passado no segundo argumento ponto final. publicar( "http://localhost:1986/wss/hello", new HelloWebServiceImpl()); ) ) Agora execute esta classe clicando Shift+F10. Nada aparecerá no console, mas o servidor está em execução. Você pode verificar isso digitando http://localhost:1986/wss/hello?wsdl em seu navegador. A página aberta, por um lado, prova que temos um servidor web (http://) rodando na porta 1986 em nosso computador (localhost), e, por outro lado, mostra a descrição WSDL do nosso web service. Se você parar o aplicativo, a descrição ficará inacessível, assim como o próprio serviço web, então não faremos isso, mas passaremos a escrever o cliente.

Cliente

Na pasta do projeto src vamos criar um pacote ru.javarush.client , e nele a classe HelloWebServiceClient com o método main: package ru. javarush. cliente; // necessário para obter a descrição wsdl e através dela // alcança o próprio serviço web importar java. líquido. URL; // tal exceção ocorrerá ao trabalhar com o objeto URL importar java. líquido. MalformedURLException; // classes para analisar xml com descrição wsdl // e alcance a etiqueta de serviço nela importar javax. xml. namespace. Qname; importar javax. xml. ws. serviço; // interface do nosso web service (precisamos de mais) importação pt. javarush. ws. hellowebservice; public class HelloWebServiceClient( public static void main(String args) lança MalformedURLException( // cria um link para a descrição wsdl URL url = novo URL( "http://localhost:1986/wss/hello?wsdl") ; // Observamos os parâmetros do próximo construtor na primeira tag de descrição WSDL - definições // veja o 1º argumento no atributo targetNamespace // 2º argumento procura no atributo name QName qname = new QName ("http://ws.site/" , "HelloWebServiceImplService" ); // Agora podemos acessar a tag de serviço na descrição do wsdl, Serviço de serviço = Serviço. criar (url, qname); // e depois para a tag de porta aninhada nele, para que // obtém uma referência a um objeto de serviço web remoto de nós OláWebService olá = serviço. getPort(HelloWebService.class); // Viva! Agora você pode chamar o método remoto Sistema. Fora. println(olá. getHelloString("JavaRush" ) ); ) ) Dei um máximo de comentários sobre o código na listagem. Não tenho nada a acrescentar, então corra (Shift + F10). Devemos ver o texto no console: Olá, JavaRush! Se você não viu, provavelmente esqueceu de iniciar o serviço da web.

Conclusão

Neste tópico, foi apresentada uma breve excursão em serviços web. Mais uma vez, muito do que escrevi é meu palpite sobre como funciona e, portanto, não devo confiar muito em mim. Ficaria grato se pessoas conhecedoras me corrigissem, porque assim aprenderei alguma coisa. UPD.

Um web service (serviço) é um programa que organiza a interação entre sites. As informações de um portal são transferidas para outro.

Por exemplo, há uma companhia aérea. Ela tem muitos voos, respectivamente, muitas passagens. Ele transmite informações por meio de um serviço da Web para o site agregador de viagens turísticas. Um usuário que entrar no agregador poderá comprar passagens para essa companhia aérea ali mesmo.

Outro exemplo de serviços da web é um site de rastreamento meteorológico que fornece informações sobre as condições meteorológicas em uma determinada cidade ou país como um todo. Essas informações também são frequentemente usadas por terceiros.

As informações na Internet são diversas. Os sites são gerenciados por diferentes sistemas. diferentes protocolos de transmissão e criptografia são usados. Os serviços da Web simplificam a troca de informações entre diferentes sites.

Arquitetura e protocolos de serviços da Web

Você pode definir 3 instâncias que interagem entre si: catálogo, contratante e cliente. Após criar o serviço, o executor o registra no catálogo e o cliente encontra o serviço ali.

O mecanismo de troca de dados é formado na Descrição dos Serviços da Web. É uma especificação que abrange os formatos de encaminhamento, tipos de conteúdo, protocolos de transporte que são usados ​​na troca de informações entre o cliente e o transportador de serviço.

Hoje, várias tecnologias são usadas com mais frequência para implementar vários serviços da web:

  1. TCP/IP é um protocolo que é entendido por quase todos os equipamentos de rede, desde mainframes até dispositivos portáteis e PDAs.
  2. HTML é uma linguagem de marcação universal usada para exibir conteúdo para dispositivos de consumo.
  3. XML é uma ferramenta universal para lidar com todos os tipos de dados. Outros protocolos de troca de informações também podem funcionar em sua base: SOAP e WSDL.
  4. UDDI é uma fonte universal de reconhecimento, integração e descrição. Funciona, via de regra, em redes privadas e ainda não encontrou distribuição suficiente.

A versatilidade das tecnologias apresentadas é a base para a compreensão dos serviços web. Eles trabalham em tecnologias padrão que são independentes de fornecedores de aplicativos e outros recursos de rede. Pode ser usado em qualquer sistema operacional, servidores de aplicativos, linguagens de programação, etc.

Vantagens

  • Criação das condições necessárias para a interação dos componentes de software, independentemente da plataforma.
  • Os serviços da Web são baseados em protocolos de padrão aberto. Através da introdução do XML, é fácil criar e configurar serviços web.
  • O uso do HTTP garante a interação dos sistemas através do acesso inter-rede.

Imperfeições

  • Baixo desempenho e grande quantidade de tráfego, em comparação com sistemas RMI, CORBA, DCOM, devido ao uso de mensagens XML no contexto de texto.
  • Nível de segurança. Todos os serviços da Web modernos devem implementar codificação e exigir autorização do usuário. Se HTTPS é suficiente aqui ou se são necessários protocolos mais confiáveis, como criptografia XML, SAML, etc., são decididos durante o desenvolvimento.

Tarefas de serviço da web

Os serviços da Web podem ser usados ​​em muitas áreas.

Transações B2B

A integração dos processos ocorre de uma só vez, sem a participação das pessoas. Por exemplo, atualizar o catálogo de uma loja online com novos produtos. Eles são levados para o depósito e o lojista marca a chegada no banco de dados. As informações são transferidas automaticamente para a loja online. E o comprador, em vez de marcar “Esgotado” no cartão do produto, vê sua quantidade.

Integração de serviços corporativos

Se a empresa usa programas corporativos, o serviço da web ajudará a configurar seu trabalho conjunto.

Criação de um sistema cliente-servidor

Os serviços são usados ​​para personalizar a operação do cliente e do servidor. Isso lhe dá os seguintes benefícios:

  • você não pode vender o software em si, mas fazer acesso pago ao serviço da web;
  • mais fácil de resolver problemas usando software de terceiros;
  • é mais fácil organizar o acesso ao conteúdo e materiais do servidor.

Um serviço da web é um aplicativo que simplifica a configuração técnica das interações de recursos.

Hoje, os serviços WEB são usados ​​em quase todos os lugares - eles nos fornecem informações sobre voos de aviões e trens, taxas de câmbio e clima. Não é de surpreender que a 1C também tenha a capacidade de criar seus próprios serviços WEB, permitindo que você atue como fornecedor e consumidor. Este mecanismo está embutido na plataforma 1C:Enterprise 8.3, e os desenvolvedores podem até adicionar seus próprios objetos do tipo de serviços WEB à configuração padrão. Sua arquitetura é construída em um conjunto de serviços que permitem a troca de informações com outros softwares.

Criação de um serviço web 1C

Uma das principais vantagens dos serviços 1C WEB é a ausência da necessidade de dar acesso direto aos dados de segurança da informação. Um serviço da Web 1C configurado corretamente permite que outros aplicativos usem funções externas. Nesses casos, a própria função deve determinar o direito de usar os dados de acordo com os parâmetros especificados de acordo com as regras prescritas pelo desenvolvedor.

Como criar um serviço web em 1C?

Para que uma determinada função do sistema 1C fique disponível para software externo, você deve executar o seguinte algoritmo de ações:

  1. Acesse a configuração e adicione um objeto de serviço WEB em um determinado ramo da árvore;
  2. Descreva todas as operações que nossa funcionalidade pode realizar. A descrição das funções é feita no módulo na linguagem 1C integrada;
  3. Adicione uma descrição dos parâmetros das funções de serviço da web. Observe que os tipos de dados são descritos levando em consideração os tipos existentes do mecanismo XDTO introduzido na plataforma versão 8.1;
  4. Publique o serviço WEB criado no servidor. O mecanismo embutido na plataforma 1C suporta os seguintes padrões:
  • SSL/TLS
  • WS-I BP

Um exemplo de criação de um serviço WEB simples

Para demonstrar mais claramente o funcionamento do mecanismo de serviços WEB, vamos criar um exemplo - um funcional que determina o comprimento da string inserida. O software passará uma string como parâmetro de consulta e a função descrita em 1C retornará o número de caracteres. Ao criar, é preciso lembrar que a publicação desse mecanismo possibilitará que vários softwares o acessem. Como nem todo software é capaz de perceber o cirílico, nomearemos os objetos de configuração usando caracteres latinos.

Abra o configurador, localize a ramificação "WEB services" na árvore e adicione um novo serviço "wa_LengthString". Você também precisa adicionar uma nova operação na guia "Operações". Vamos chamá-lo de "CalcLengthString", nas propriedades especificamos o tipo do valor retornado - int ou integer e criamos um parâmetro "InputString" dentro dele. Deixe o tipo de valor como string.


Agora é necessário registrar a ação da função CalcLengthString no módulo de serviço WEB. Para isso, abra as propriedades da função criada e pressione o botão em forma de lupa à direita, ao lado do campo de entrada "Nome do procedimento". 1C criará automaticamente uma função em nosso módulo de serviço WEB e a abrirá para que possamos descrever a ação CalcLengthString. Vamos aproveitar isso e escrever a ação da função - determinando o comprimento da string de entrada.


Na verdade, isso completa a criação do serviço WEB mais simples. Agora você precisa “colocar” esse serviço em domínio público para que softwares de terceiros ou outros sistemas 1C possam usar essa funcionalidade.

Para podermos publicar o web service criado com sua funcionalidade, precisamos ter acesso ao site. Antes de começarmos a publicar o serviço, precisamos verificar o nome do arquivo nas propriedades do módulo wa_LengthString gerado. Deve ser claro, simples e ter a extensão "1cws".


Agora é hora de publicar o serviço WEB que criamos no servidor. Esse recurso apareceu na versão 8.3 da plataforma, e muitas empresas já perceberam todo o benefício dessa funcionalidade. Para começar a publicar, você precisa abrir o formulário “Administration/Publishing on a web server…” no configurador.


Na janela que se abre, precisamos configurar os serviços da Web 1C e preencher alguns campos:

  • Nome. Indica uma pasta no servidor web onde será armazenada a descrição do nosso serviço web. Tenha cuidado com maiúsculas e minúsculas, pois os servidores às vezes distinguem caracteres maiúsculos e minúsculos;
  • Servidor web. Você deve selecionar um servidor entre os instalados no computador;
  • Catálogo. Você deve selecionar o caminho para a pasta onde estão armazenados os dados do servidor web para configurar a conexão. Apenas letras latinas são usadas;
  • Dois recursos do tipo "Boolean". O primeiro é útil para nós se precisarmos configurar o acesso através do cliente web à configuração. Para publicar um serviço 1C, você deve colocar uma segunda marca.

Resta apenas verificar se o serviço WEB desejado possui uma caixa de seleção na primeira coluna e clicar em "Publicar".


Como esse mecanismo ainda é bastante novo, você pode encontrar um erro como "Erro ao executar a operação do arquivo ...". Neste caso, você só precisa repetir o botão "Publicar". Na maioria dos casos, isso ajuda e você verá uma mensagem informando que a publicação do serviço da Web foi concluída.

pt//ws/.1cws?wsdl

Em resposta a tal solicitação de endereço, o navegador deve exibir a estrutura do arquivo XML. Se você vir uma página em branco, um erro ou caracteres estranhos (problemas de codificação), precisará verificar todas as etapas novamente. Também é uma boa ideia verificar se o servidor está configurado corretamente e se você tem acesso a ele. Após a publicação bem-sucedida do serviço 1C WEB, aplicativos de terceiros poderão usá-lo.

WEB-service - (do inglês web-service, sinônimo - serviço online). Os serviços da Web são serviços fornecidos na Internet usando programas especiais. Por exemplo, serviços como: hospedagem, e-mail, armazenamento de diversas informações na Internet (arquivos, favoritos), calendário, etc. são comuns. Uma propriedade importante de um serviço web é que ele não depende de seu provedor, computador ou navegador - você pode trabalhar com seus dados em qualquer lugar do mundo onde tenha acesso a arquivos .

Knyazev A.A. Dicionário Enciclopédico dos Meios de Comunicação de Massa. - Bishkek: KRSU Publishing House. A. A. Knyazev. 2002.

Veja o que é "serviço WEB" em outros dicionários:

    serviço de internet

    serviço de internet- Serviço de internet. Web service, web service (serviço da web em inglês) é um sistema de software, identificado por uma série de interfaces definidas em XML e transmitidas usando protocolos da Internet. Um serviço web é uma unidade de modularidade ao usar ... ... Wikipedia

    Protocolo de Comunicação de Cache da Web- (WCCP) Protocolo de redirecionamento de conteúdo desenvolvido pela Cisco. Fornece um mecanismo para redirecionar os fluxos de tráfego em tempo real. Possui escalabilidade integrada, balanceamento de carga e tolerância a falhas. Cisco IOS ... ... Wikipédia

    Serviço de mapa da web- (serviço de mapa web russo WMS) um protocolo padrão para servir através da Internet imagens geograficamente referenciadas geradas por um servidor de mapeamento baseado em dados de um banco de dados GIS. Este padrão foi desenvolvido e pela primeira vez ... ... Wikipedia

    WebHotel Salvador- (Salvador, Brasil) Categoria do hotel: Hotel 2 estrelas Endereço: Rua das Alfazemas … Catálogo de hotéis

    WebHotel Aparecida- (Aparecida, Brasil) Categoria do hotel: hotel 3 estrelas Endereço: Av. Isaac Ferrei … Guia de hotéis

    Arquitetura Orientada a Serviços- Os processos de negócio da organização são implementados com base nos serviços prestados pelas aplicações existentes do Cliente. Se os aplicativos não suportam a capacidade de fornecer serviços (Web Services), a implementação do produto se desenvolve ... ... Manual do Tradutor Técnico

    teia 2

    Web 2.0- Conceitos-chave associados à Web 2.0 A Web 2.0 (definida por Tim O'Reilly) é uma técnica para projetar sistemas que, levando em conta as interações da rede, melhoram quanto mais as pessoas os utilizam. Recurso Web 2.0. é o princípio ... ... Wikipedia

    local na rede Internet- A consulta "site" é redirecionada aqui. Ver também outros significados. Site (do site inglês: web web e site "place") em uma rede de computadores unidos sob um nome de domínio ou endereço IP) uma coleção de documentos de uma pessoa privada ou ... ... Wikipedia

Livros

  • Tecnologias da informação na indústria do turismo, VN Shitov. O manual discute em detalhes tecnologias de computador de uso geral usando pacotes populares do Microsoft Office 2010 e complexos alternativos, usando ... Compre por 546 rublos
  • 75 Soluções prontas para seu site em PHP , Steinmetz W., Ward B.. Todo mundo que faz ou vai fazer seu próprio site inevitavelmente enfrenta uma série de tarefas e dificuldades: como fazer um blog no site...... . "fixar" a votação, fechar certos ...

Com base na arquitetura de serviços da Web, criamos os dois componentes a seguir como parte da implementação dos serviços da Web:

Provedor de serviço ou editor

Este é um provedor de serviços da web. O provedor de serviços implementa esse serviço e o disponibiliza na Internet ou intranet. Estaremos escrevendo e publicando um serviço web simples usando o .NET SDK.

Prestador de serviço ou consumidor

Este é qualquer consumidor do serviço web. O solicitante consome um serviço da Web existente abrindo uma conexão de rede e enviando uma solicitação XML. Também escreveremos duas requisições para web services: um consumidor web (aplicativo ASP.NET) e outro consumidor baseado em aplicativos Windows.

Abaixo está nosso primeiro exemplo de um serviço da Web que é executado como provedor de serviços e expõe dois métodos (add e SayHello) como serviços da Web a serem usados ​​pelos aplicativos. Este é o modelo padrão para um serviço da web. Os serviços .NET usam a extensão .asmx. Observe que um método exposto como um serviço da Web possui um atributo WebMethod. Salve este arquivo como FirstService.asmx no diretório virtual do IIS (conforme descrito na configuração do IIS, por exemplo, c:\MyWebServes).

FirstService.asmx

<%@ WebService language = "C" class = "FirstService" %>usando Sistema; usando System.Web.Services; usando System.Xml.Serialization; public class FirstService: WebService ( public int Add(int a, int b) ( return a + b; ) public String SayHello() ( return "Hello World"; ) )

Para testar um serviço da Web, ele deve ser publicado. Um serviço da Web pode ser publicado em uma intranet ou na Internet. Publicaremos este serviço da Web no IIS em execução na máquina local. Vamos começar configurando o IIS.

  • Abra Iniciar → Configurações → Painel de Controle → Ferramentas Administrativas → Gerenciador de Serviços de Internet.
  • Expanda e clique com o botão direito em Site Padrão; selecione Novo → Diretório Virtual. O Assistente de Criação de Diretório Virtual é aberto. Clique em "Avançar.
  • A tela Diretório Virtual é exibida. Insira um nome para o diretório virtual. Por exemplo, MyWebServices. e clique em Avançar.
  • A tela "Diretório de conteúdo da Web" é aberta.
  • Insira um nome de diretório para o diretório virtual. Por exemplo, c:\MyWebServices Clique em Avançar.
  • A tela de permissão de acesso é exibida. Altere as configurações de acordo com suas necessidades. Vamos manter as configurações padrão para este exercício.
  • Clique em "Avançar". Ele conclui a configuração do IIS.
  • Clique em "Concluir" para concluir a configuração.

Para verificar se o IIS está configurado corretamente, copie o arquivo HTML (por exemplo x.html) para o diretório virtual (C:\MyWebServices) criado acima. Agora abra o Internet Explorer e digite http://localhost/MyWebServices/x.html. Ele deve abrir o arquivo x.html.

Observação. Se isso não funcionar, tente substituir localhost pelo endereço IP do seu dispositivo. Se ainda não funcionar, verifique se o IIS está em execução; pode ser necessário reconfigurar o IIS e o diretório virtual.

Para testar esse serviço da Web, copie FirstService.asmx para o diretório virtual do IIS criado acima (C:\MyWebServices). Abra o serviço da Web no Internet Explorer (http://localhost/MyWebServices/FirstService.asmx). Ele deve abrir a página do serviço da web. A página deve ter links para dois métodos que fornecemos como web services para nosso aplicativo. Parabéns! Você escreveu seu primeiro serviço web!

Teste de serviço da web

Como acabamos de ver, é fácil escrever serviços da Web no .NET Framework. Escrever serviços da Web também é fácil no ambiente .NET; no entanto, é um pouco mais ativo. Conforme discutido anteriormente, escreveremos dois tipos de consumidores de serviço: um é um site e o outro é um aplicativo Windows baseado em usuário. Vamos escrever nosso primeiro consumidor de serviço web.

Serviços web

Escreva um consumidor da web como indicado abaixo. Nomeie-o WebApp.aspx. Observe que este é um aplicativo ASP.NET. Salve isso no diretório virtual do serviço da Web (c:\MyWebServices\WebApp.axpx). Este aplicativo tem dois campos de texto que são usados ​​para obter números do usuário para adicionar. Ele tem um botão Executar que, quando clicado, obtém os serviços da Web Adicionar e SayHello.

WebApp.axpx

<%@ Page Language="C#" %>

Primeiro número a adicionar: 4< /asp:TextBox>

Segundo número a adicionar: 5

Resultado do serviço da Web -

Olá serviço mundial : etiqueta< /asp:Label>

Adicionar serviço : & etiqueta

Após criar o consumidor, precisamos criar um proxy para consumir o web service. Este trabalho é feito automaticamente pelo Visual Studio .NET para nós quando nos referimos ao serviço web adicionado. Aqui estão os passos a seguir:

  • Crie um proxy para usar o serviço da web. O proxy é criado usando o utilitário WSDL fornecido com o .NET SDK. Este utilitário recupera informações de um serviço da Web e cria um proxy. O servidor proxy só é válido para um serviço web específico. Se você precisar usar outros serviços da Web, também precisará criar um proxy para esse serviço. O Visual Studio .NET cria automaticamente um proxy quando uma referência de serviço da Web é adicionada. Crie um proxy para o serviço da Web usando o utilitário WSDL fornecido com o .NET SDK. Ele criará um arquivo FirstSevice.cs no diretório atual. Precisamos compilá-lo para gerar o FirstService.dll (proxy) para o serviço web.
  • c:>WSDL http://localhost/MyWebServices/FirstService.asmx?WSDL
  • c:> csc /t:library FirstService.cs
  • Coloque o proxy compilado no diretório bin do diretório virtual do serviço Web (c:\MyWebServices\bin). Os Serviços de Informações da Internet (IIS) procuram um servidor proxy nesse diretório.
  • Crie um consumidor de serviço como fizemos. Observe que o objeto proxy de serviço da Web é criado no consumidor. Esse proxy cuida da interação com o serviço.
  • Insira a URL do consumidor no IE para testá-la (por exemplo, http://localhost/MyWebServices/WebApp.aspx).

Consumidor de serviço da Web baseado em aplicativos do Windows

Escrever um aplicativo de serviço da Web baseado em aplicativos do Windows é semelhante a escrever qualquer outro aplicativo do Windows. Você só precisa criar um proxy (o que já fizemos) e se referir a este proxy ao compilar o aplicativo. Abaixo está o nosso aplicativo do Windows que usa o serviço da web. Esse aplicativo cria um objeto de serviço da Web (um proxy, é claro) e chama os métodos SayHello e Add nele.

WinApp.cs

usando Sistema; usando System.IO; namespace SvcConsumer ( class SvcEater ( public static void Main(String args) ( FirstService mySvc = new FirstService(); Console.WriteLine("Calling Hello World Service: " + mySvc.SayHello()); Console.WriteLine("Calling Add( 2, 3) Serviço: " + mySvc.Add(2, 3).ToString()); ) ) )

Compile-o com c: \> csc /r:FirstService.dll WinApp.cs . Ele irá criar um arquivo WinApp.exe. Execute-o para testar o aplicativo e o serviço da Web.

Agora a pergunta é: como você pode ter certeza de que esse aplicativo está realmente chamando um serviço da web?

É fácil de verificar. Pare seu servidor web para que o serviço web não possa ser contatado. Agora inicie o aplicativo WinApp. Ele lançará uma exceção em tempo de execução. Agora inicie o servidor web novamente. Ele deve trabalhar.