Programação para Internet Avançada. 4. Web Services. Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt



Documentos relacionados
Criação de um Web Services em.net

Criação de um Web Services em.net

DESENVOLVIMENTO DE SOFTWARE PARA INTERNET LABORATÓRIO 1 PROF. EMILIO PARMEGIANI

MADALENA PEREIRA DA SILVA SLA Sociedade Lageana de Educação DCET Departamento de Ciências Exatas e Tecnológica

Web services. Um web service é qualquer software que está disponível através da Internet através de uma interface XML.

SOAP. Web Services & SOAP. Tecnologias de Middleware 2004/2005. Simple Object Access Protocol. Simple Object Access Protocol SOAP

UNIVERSIDADE. Sistemas Distribuídos

Web Services. (Introdução)

Web Services na plataforma.net

UFG - Instituto de Informática

Manual de Integração. Tecnologia: WebServices SOAP XML. Área: CDC. Produto: CDC Pessoa Física NFE (RFB) Versão: 1.0. Autor: Angelo Bestetti Junior

Universidade Federal de Juiz de Fora Ciência da Computação Sistemas Distribuídos Professor Ciro Barbosa

Cálculo Remoto de Preços e Prazos de Encomendas

Web Services. Autor: Rômulo Rosa Furtado

Kassius Vargas Prestes

Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva

Conteúdo da Aula de Hoje. Web Services. Avaliação da Disciplina. O que é um web service? O que é um web service? Vantagens

Manual de Integração. Tecnologia: WebServices SOAP XML. Área: CDC. Produto: CDC Estendida (Física) Versão: 1.0. Autor: Angelo Bestetti Junior

Introdução ao ASP.NET


Programação Cliente em Sistemas Web

Minicurso Web Services com PHP

Web Services. Integração de aplicações na Web. Sistemas Distribuídos

Web Services: Metodologias de Desenvolvimento Carlos J. Feijó Lopes José Carlos Ramalho Fevereiro de 2004

Programação para Internet I. 2. O protocolo HTTP. Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt

Introdução a Web Services

Service Oriented Architecture SOA

BC CORREIO SISTEMA DE CORREIO ELETRÔNICO DO BANCO CENTRAL DO BRASIL. Manual do Web Service

DESENVOLVIMENTO DE SOFTWARE PARA INTERNET. Prof. Emilio Parmegiani

Grupo I [7v] 1. [1,0] Apresente o conteúdo do IDL relativo a este programa. Assuma PROGRAM=62015 e VERSION=1.

Serviços Web: Arquitetura

Desenvolvimento Cliente-Servidor 1

Formulário de Contato

Serviços Web: Introdução

Criando & Consumindo um WebService com ASP.NET 2.0 Publicado em: 25 de Agosto de 2007 Por Herman Ferdinando Arais

COLIBRI Ambiente Colaborativo Multimédia MÓDULO MOODLE. Rui Ribeiro FCCN - Dezembro 2010

Manual de Integração WebService

SOA Introdução. SOA Visão Departamental das Organizações

Sistemas Distribuídos

ITBI ONLINE MANUAL DE INTEGRAÇÃO

Ajax Asynchronous JavaScript and Xml

Redes de Acesso Telefone VoIP WiFi baseado em Windows Mobile

Manual de Integração. Tecnologia: WebServices SOAP XML. Área: Serviços de Informação. Produto: CEP. Versão: 1.0. Autor: Angelo Bestetti Junior

Consulta de endereço através do Cep

Desenvolvimento de Aplicações Web. Prof. José Eduardo A. de O. Teixeira / j.edu@vqv.com.br

Universidade da Beira Interior

Manual técnico. v /10

Nota Fiscal Paulista. Manual para Envio de Arquivo de Cupons Fiscais via Webservice GOVERNO DO ESTADO DE SÃO PAULO

Forms Authentication em ASP.NET

Introdução à Tecnologia Web HTML HyperText Markup Language XHTML extensible HyperText Markup Language Declaração DOCTYPE e Tag Raiz html

18/04/2006 Micropagamento F2b Web Services Web rev 00

SOA. Service Oriented Architecture. Maxmiliano Franco Braga

Grupo I [6v] Considere o seguinte extracto de um programa de definição de uma calculadora apenas com a função soma de dois valores reais

WEBDESIGN. Professor: Paulo Trentin Escola CDI de Videira

DESENVOLVIMENTO DE SOFTWARE PARA INTERNET LABORATÓRIO 3 PROF. EMILIO PARMEGIANI

Como criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse

O objetivo da aula é realizar upload de arquivos com aplicação web. Será realizado o upload de duas formas:

AJAX no GASweb. Mas e afinal, para que usamos o AJAX?

Validando dados de páginas WEB

PROGRAMAÇÃO SERVIDOR WEBSERVICES EM SISTEMAS WEB. Prof. Dr. Daniel Caetano

SOA na Prática Ricardo Limonta

JSP trata-se de uma tecnologia que possibilita o desenvolvimento de páginas web dinâmicas utilizando todas as potencialidades do Java como linguagem

Material de apoio a aulas de Desenvolvimento Web. Tutorial Java WEB JSP & HTML & CSS & CLASSE & OBJETOS. AAS -

Criando um carrinho de compras

Sistemas Distribuídos Arquiteturas Middlewares

Gerador de Web Services para cadeias de tranformações de documentos XML

API e Integraç ão. Inoxnet WebServices. Versã o (c) EBASE Lda.

2 Conceitos relativos a Web services e sua composição

PROGRAMA DE MBA em Gestão e Engenharia do Produto. O Produto Internet e suas Aplicações

Sistemas Distribuídos e Paralelos

Guia Desenvolvedor WebService SisConsulta - v2.0.5

Integre pela Internet com os Web Services OpenEdge

PadrãoIX. Módulo II JAVA. Marcio de Carvalho Victorino. Servlets A,L,F,M

Web Services e SOAP. Alexandre Zua CaldeiraTecnologias de Middleware 2006/ Faculdade de Ciências da Universidade de Lisboa

Laboratório de Computação VI JAVA IDL. Fabricio Aparecido Breve

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

Trabalho de Sistemas Distribuídos

Exemplo de Aplicaça o Facebook

Integração de sistemas utilizando Web Services do tipo REST

Construção Páginas de Internet

Ferramentas de Modelação e Análise de Sistemas baseadas em Redes de Petri (RdP)

INTERNET. TCP/IP protocolo de comunicação sobre o qual se baseia a Internet. (conjunto de regras para a comunicação entre computadores)

DESENVOLVIMENTO DE SOFTWARE PARA INTERNET. quarta-feira, 17 de outubro de 12

Programação II Programação para a Web. Christopher Burrows

XHTML 1.0 DTDs e Validação

Direct100 API Manual de utilização da API Direct100

Introdução Serviços Web WSDL SOAP UDDI Ferramentas. Serviços Web. (Web Services) Emerson Ribeiro de Mello

Interface Web services

Gestão e Tratamento de Informação 1º semestre

Programação para a Internet II PHP AJAX. Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt

Lista de Revisão. 3. Analise a afirmativa a seguir como verdadeira ou falsa e justifique.

A interface IDataSource retorna dados em formato tabular e disponibiliza apenas dois métodos: GetView e GetViewNames. O primeiro,

Web Services: Metodologias de Desenvolvimento

Repeater no GASweb. Regiões

HTML. Tópicos. Tags. Páginas WEB Arquitectura Definição HTML. O documento HTML Estrutura do documento Meta comandos Ferramentas de edição de HTML

Transcrição:

Programação para Internet Avançada 4. Web Services Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt

São módulos de aplicações de negócios que expõem as regras do negócio como serviços na Internet através de interfaces programáveis Recorrem a protocolos da Internet para fornecer mecanismos de descoberta, subscrição e invocação desses serviços. Exemplo: Site de vendas on-line que necessita validar o crédito do comprador antes de proceder à venda. (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet Avançada 2

Exemplo (cont.) O sistema acede a um serviço (Web Service) responsável por todos os passos necessários à verificação de crédito. Verifica o histórico das compras efectuadas pelo consumidor na empresa; Verifica a situação de crédito do consumidor no sistema público, etc; O Web Service obtém estes dados e retorna a situação de crédito deste consumidor para o site. (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet Avançada 3

Os Web Services são acessível através de protocolos standard da Internet HTTP como protocolo de transporte SOAP (Simple Object Access Protocol) como protocolo de invocação Vantagens: Permitem que um servidor na Internet publique um conjunto de funções (serviço) Possível aceder utilizando protocolos bem estabelecidos e omnipresentes na Internet Permite uma maior interoperabilidade entre sistemas existentes (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet Avançada 4

SOAP - Simple Object Access Protocol Protocolo projectado para invocar aplicações remotas através de RPC (Remote Procedure Calls) ou troca de mensagens, num independente da plataforma e da linguagem de programação. Características: Definido pelo consórcio W3C. Protocolo baseado em XML para a troca de informações em um ambiente distribuído; Padrão de utilização com Web Services; Normalmente utiliza HTTP como protocolo de transporte; (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet Avançada 5

SOAP - Simple Object Access Protocol Mensagem SOAP Envelope: (Obrigatório) Elemento raiz do documento XML. Pode conter declarações de namespaces e também atributos adicionais como o que define o estilo de codificação (encoding style), definindo como os dados são representados no documento XML. Header: (Opcional) Contém informações adicionais, como por exemplo, se a mensagem deve ser processada por um determinado nó intermediário. Body: (Obrigatório) Contém o payload, ou a informação a ser transportada para o seu destino final. O elemento Body pode conter um elemento opcional Fault, usado para carregar mensagens de status e erros retornadas pelos "nós" ao processarem a mensagem. (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet Avançada 6

SOAP - Simple Object Access Protocol Mensagem SOAP Exemplo de Request (pedido) <?xml version="1.0" encoding="utf-8"?> <soap:envelope xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:body> <Soma xmlns="http://tempuri.org/"> <valor1>10</valor1> <valor2>20</valor2> </Soma> </soap:body> </soap:envelope> (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet Avançada 7

SOAP - Simple Object Access Protocol Mensagem SOAP Exemplo de Response (resposta) <?xml version="1.0" encoding="utf-8"?> <soap:envelope xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:body> <SomaResponse xmlns="http://tempuri.org/"> <SomaResult>30</SomaResult> </SomaResponse> </soap:body> </soap:envelope> (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet Avançada 8

WSDL - Web Service Description Language Para o programador utilizar um serviço é necessário que este conheça o serviço. Quais os métodos? Que tipo de dados estão envolvidos? Quando um web service é publicado é publicado conjuntamente a sua especificação em XML (escrita em WSDL). A aplicação WSDL.exe Obtém a especificação de um serviço em WSDL Gera uma classe que encapsula a utilização do serviço O programador apenas tem que criar e utilizar objectos dessa classe. (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet Avançada 9

Exemplo passo a passo da criação, publicação e consumo de um WebService Método que permite adicionar dois valores, retornando o resultado Algoritmos.asmx <%@ WebService Language="c#" Class="Algoritmos" %> using System; using System.Web.Services; [WebService(Namespace="http://pia.estgoh.ipc.pt/")] public class Algoritmos:WebService { [WebMethod] public int Soma(int valor1, int valor2) { return valor1+valor2; (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet Avançada 10

Exemplo passo a passo da criação, publicação e consumo de um WebService (cont.) Para testar, basta correr: http://localhost:1212/website5/algoritmos.asmx Nesse momento deverá ser criado um ficheiro Algoritmos.cs na pasta App_Code Posteriormente clicando com o botão direito do rato sobre o nome do WebSite selecciona-se a opção Add web reference e indica-se o caminho completo para o nosso Web Service (ex: http://nomeserver/serv.asmx) Devem agora ser criados três ficheiros na pasta App_WebReferences: Algoritmos.disco, Algoritmos.discomap, Algoritmos.wsdl (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet Avançada 11

Exemplo passo a passo da criação, publicação e consumo de um WebService (cont.) Somador.aspx <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Somador.aspx.cs" Inherits="Somador" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>somador</title> </head> <body> <form id="form1" runat="server"> <div> <asp:textbox ID="TextBox1" runat="server" ></asp:textbox> <asp:textbox ID="TextBox2" runat="server"></asp:textbox> <asp:label ID="Label1" runat="server"></asp:label> <asp:button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" /> </div> </form> </body> </html> (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet Avançada 12

Exemplo passo a passo da criação, publicação e consumo de um WebService (cont.) Somador.aspx.cs... protected void Button1_Click(object sender, EventArgs e) { Algoritmos algoritmos = new Algoritmos(); int a = 0, b = 0, c = 0; a = int.parse(textbox1.text); b = int.parse(textbox2.text); try{ c = algoritmos.soma(a, b); catch (System.Net.WebException we){ Label1.Text = "Ocorreu um erro!"; Label1.Text = c.tostring();... (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet Avançada 13

Informação disponível a um Web Service O ciclo de vida destes serviços não corresponde ao ciclo de vida de um objecto normal. Sempre que existe uma invocação do método é criado um novo objecto que é utilizado para fazer a invocação. A classe WebService disponibiliza um conjunto de propriedades importantes: Application Representa a aplicação correspondente ao web service como um todo. (não está associado a nenhum cliente em particular, nem a nenhuma sessão) Context Encapsula toda a informação HTTP específica do pedido que está em curso Server Representa o servidor em causa Session: Representa a sessão corrente User Representa o utilizador a utilizar o web service (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet Avançada 14

Informação disponível a um Web Service Exemplo do uso de Application public Algoritmos() { if (Application["visitas"] == null; Application["visitas"]=0; [WebMethod] public int ContaVisitas() { int totalvisitas = (int)application["visitas"]; totalvisitas++; Application["visitas"] = totalvisitas; return totalvisitas; (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet Avançada 15

Informação disponível a um Web Service Exemplo do uso de Session public Algoritmos() { if (Session["visitas"] == null; Session["visitas"]=0; [WebMethod(EnableSession=true)] public int ContaVisitas() { int totalvisitas = (int)session["visitas"]; totalvisitas++; Session["visitas"] = totalvisitas; return totalvisitas; (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet Avançada 16

Thread safe A invocação de um método de um web service não é thread safe. Podem ocorrer invocações simultâneas Os acessos a Application["visitas"] e Session["visitas"] deve ser feito em exclusão mútua.... [WebMethod(EnableSession=true)] public int ContaVisitas() { Application.Lock(); int totalvisitas = (int)session["visitas"]; totalvisitas++; Session["visitas"] = totalvisitas; Application.UnLock(); return totalvisitas; (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet Avançada 17