Web Services Uma Análise Comparativa

Tamanho: px
Começar a partir da página:

Download "Web Services Uma Análise Comparativa"

Transcrição

1 Revista das Faculdades Integradas Claretianas N. 5 janeiro/dezembro de 2012 Web Services Uma Análise Comparativa Ricardo Frenedoso Da Silva Faculdades Integradas Claretianas Pablo Rodrigo Gonçalves Faculdades Integradas Claretianas Resumo Os Web Services são sistemas de informação que, utilizando um conjunto de tecnologias que são padrões da Internet, permitem a integração entre outros sistemas de informação, através de troca de mensagens. Esse artigo tem o objetivo de introduzir a tecnologia de Web Services, os conceitos, as tecnologias e padrões envolvidos e suas aplicações mais comuns. Além disso, apresentar as duas principais alternativas para o desenvolvimento de Web Services disponíveis atualmente, o protocolo SOAP e o estilo arquiterural REST, fazendo uma análise comparativa entre elas, realçando as situações onde as vantagens e desvantagens de cada uma são mais relevantes. Palavras-chave: Web Services REST SOAP XML JSON - SOA. 1 Introdução No final da década de 90, com a popularização da Internet e do uso dos computadores pessoais, viu-se uma oportunidade na criação de mecanismos de comunicação entre sistemas de informação, que até então permaneciam isolados. Para essa finalidade foi criada a tecnologia de Web Services. De acordo com Kreger (2001), Um Web Service é uma interface que descreve uma coleção de operações que são acessíveis pela rede através de mensagens XML padronizadas. Seu uso permite que plataformas heterogêneas de software e hardware sejam integradas de forma transparente. O W3C (2004) define web services da seguinte maneira: Um Web Service é um sistema de software desenvolvido para permitir interações máquinamáquina através de uma rede. É uma interface descrita para ser consumida por máquinas (WSDL). Outros sistemas interagem com o Web Service através de mensagens SOAP, geralmente enviadas através de HTTP em conjunto com outros padrões relacionados à web (W3C, 2004). Os Web Services permitem que sistemas desenvolvidos em várias linguagens, sendo executados em diversas plataformas, transmitam e recebam informações padronizadas entre si, permitindo uma interação máquina-máquina mais abrangente que qualquer outra tecnologia de computação distribuída existente. Essa independência de protocolo e plataforma é conseguida através da utilização de interfaces. Toda a comunicação é realizada através da chamada de métodos do serviço, e do envio e recebimento de mensagens padronizadas. Dessa forma, os Web Services permitem que as aplicações sejam integradas mais rapidamente, facilmente e com menor custo do que nunca (KREGER, 2001). Permitir que uma aplicação consuma um serviço disponibilizado através de um Web Service sem conhecer os detalhes internos desse serviço cria um encapsulamento que traz inúmeros benefícios, como a reutilização de código e, consequentemente, a simplificação dos sistemas. É possível, por exemplo, utilizar os serviços de geolocalização do Google (Google Maps API) através de seu web service, sem conhecer os detalhes da codificação, estruturas de dados, lógica do processamento, etc. É possível também utilizar Web Services para publicar ou integrar sistemas legados com novos sistemas em desenvolvimento, de forma a reutilizar a base de código e de regras de negócio que já estão em produção, criando novas formas de visualização dos dados. Web services também são utilizados na construção de sistemas multicamadas, arquitetura que divide o 7

2 sistema em vários módulos lógicos, com responsabilidades distintas e com baixo acoplamento entre si, permitindo que uma camada seja alterada ou substituída sem afetar outras partes do sistema. 2 Arquitetura Orientada a Serviços (SOA) O termo SOA (Service Oriented Architecture) surgiu para designar um conjunto de arquiteturas e padrões de desenvolvimento de software focados na disponibilização e consumo de serviços entre aplicativos em uma rede. O W3C (2004) define SOA como um conjunto de componentes que podem ser invocados, e cuja interface pode ser publicada e descoberta.. Cada componente da arquitetura SOA representa um serviço, ou uma funcionalidade específica do sistema. Um serviço pode consumir outro serviço, utilizando uma funcionalidade que já foi implementada, permitindo a criação de serviços mais simples como uma validação de CPF, até serviços mais complexos. O aplicativos consumidores utilizam o serviço sem se preocupar com a sua implementação, apenas acessando uma interface comum que esconde os detalhes do modelo de dados e do processamento realizado. O servidor por outro lado, não se preocupa com quais aplicativos consomem seus serviços. A tecnologia de Web Services é parte importante da arquitetura SOA, e permite que serviços sejam desenvolvidos, publicados, descobertos e consumidos de uma forma simples e robusta. 3 Sistemas multicamadas A divisão em camadas é uma técnica muito utilizada pelos engenheiros de software para implementar um sistema de software complexo (FOWLER, 2002). Separando o sistema em camadas, o entendimento é facilitado, pois cada camada é responsável por prover uma funcionalidade restrita e bem definida. O acoplamento também é reduzido, uma vez que cada camada está acoplada somente à camada imediatamente superior e inferior, provendo serviços para a primeira e consumindo serviços da segunda. Inicialmente os sistemas de gestão empresarial, e vários outros sistemas cujo objetivo fosse armazenar, ler e processar informações em um banco de dados, eram construídos de forma que os códigos da interface visual, das regras de negócio e da persistência no banco de dados eram escritos na mesma unidade de código (arquitetura cliente/servidor). Sendo assim, as camadas de visualização, lógica e persistência estavam fortemente acopladas. Apesar de funcionar bem para pequenos projetos, para sistemas maiores isso se torna um grande problema, pois qualquer alteração em qualquer uma das camadas interfere diretamente nas outras, causando alterações em cascata. Com o uso de Web Services é possível implementar cada camada separadamente, facilitando a manutenção e aumentando a performance geral da aplicação 4 O Protocolo SOAP A integração de um aplicativo cliente com um Web Service deve ocorrer através da troca de mensagens. Para que possa haver uma comunicação entre duas máquinas, é necessário que haja uma conexão física entre elas pela qual os dados irão trafegar, além de um protocolo de comunicação comum, para que ambos os lados consigam interpretar as mensagens recebidas e saibam como formar as mensagens que serão enviadas como resposta. O protocolo SOAP define um padrão para essa troca de mensagens, que são documentos XML especiais. SOAP também especifica uma linguagem para a descrição dos métodos disponibilizados pelo serviço (WSDL), além da especificação de um serviço de descoberta de Web Services (UDDI). Sua especificação foi desenvolvida e publicada pelo W3C (consórcio de empresas, entre elas IBM, Amazon e Microsoft, responsável pela especificação de várias tecnologias da Web). Revista das Faculdades Integradas Claretianas Nº5 janeiro/dezembro de

3 SOAP é uma recomendação do W3C, o que significa que é um padrão que já passou por um longo processo de avaliação e testes. SOAP é um framework composto, padronizado e extensível para o empacotamento e troca de mensagens XML (W3C, WSA pag 65). O protocolo SOAP é um protocolo stateless, ou seja, não mantém estado entre as mensagens enviadas e recebidas. Cada mensagem deve conter todas as informações necessárias para que seja processada. SOAP é flexível o suficiente para ser utilizado em aplicações que utilizem o padrão requisição/resposta, requisição/múltiplas respostas, etc. 5 O documento WSDL O documento WSDL (Web Service Description Language) é o contrato estabelecido entre o Web Service e seus clientes. É um documento XML que fornece informações detalhadas a respeito do serviço publicado, necessárias para que os aplicativos cliente consigam consumi-lo. Existem ferramentas que utilizam o WSDL para gerar código de apoio, facilitando o consumo do serviço. Na maioria dos casos, o desenvolvedor não precisa trabalhar diretamente com SOAP, a infraestrutura do SOAP fica em uma camada inferior à da aplicação, facilitando o desenvolvimento. O WSDL da versão 1.1 do SOAP está dividido em 5 seções. A seção types é opcional, e contém definições sobre os tipos de dados utilizados nas chamadas dos métodos. Geralmente essa seção aponta, ou contém, um documento do tipo XSD, que serve para validar a estrutura de um XML. Na seção message são declaradas todas as mensagens que implementam o serviço. Essas mensagens são formadas pelos tipos definidos na seção anterior, ou utilizam-se dos tipos básicos padrões, como String e Integer. A seção porttype reúne as mensagens para formar operações, repetindo várias informações da seção anterior. Cada operação é vinculada a uma mensagem de entrada (input) e saída (output). A seção binding é a seção mais complexa do WSDL. Nessa seção, a definição das operações se torna mais concreta. É definido o protocolo de transporte (HTTP, SMTP, etc), o estilo do serviço (RPC ou Document) e o formato dos dados (literal ou encoded). Por fim, a seção service possui informações como nome e localização real do serviço, os endpoints, nos quais as operações descritas estão disponíveis para acesso. 6 Mensagens SOAP Para requisitar a executação de uma operação, o aplicativo envia um documento XML que contém uma mensagem SOAP. Essa mensagem contém uma estrutura própria e é construída pela biblioteca SOAP do cliente com base na inspeção do WSDL do serviço. Uma mensagem SOAP possui três partes, uma delas sendo opcional: Envelope, Header (opcional) e Body. Revista das Faculdades Integradas Claretianas Nº5 janeiro/dezembro de

4 Figura 1 - Estrutura de uma mensagem SOAP (KALIN, 2009) A tag Envelope envolve toda a mensagem, delimitando seu começo e fim, e contém as declarações de namespace. É a tag raiz da mensagem. A seção Header é opcional, e permite que informações adicionais sejam carregadas pela mensagem, até o servidor. Nessa seção podem ser inseridas informações de autenticação, autorização, assinatura digital, etc. O header também é utilizado nas arquiteturas distribuídas baseadas em SOAP, onde a mensagem é processada por vários nós antes de alcançar o destinatário final. Assim, os nós podem ler e alterar os dados do cabeçalho da mensagem, sem alterar seu conteúdo. A seção body contém o corpo da mensagem. Nessa seção é inserido o conteúdo que será entregue ao destinatário final da mensagem. Em uma mensagem de requisição de um serviço, é enviado no corpo da mensagem o nome da operação solicitada, conforme descrito no WSDL, e o valor dos parâmetros, caso haja algum. Na mensagem de retorno do serviço, é enviado o nome da operação, seguido do resultado processado. No final da mensagem há uma seção reservada para o envio de anexos SOAP, que pode ser uma sequência muito longa de caracteres, um arquivo, uma imagem, etc. A mensagem abaixo é um exemplo de requisição SOAP. No corpo da mensagem existe uma tag especificando qual função deve ser executada (getfuncionarios). <soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://webservices/"> <soapenv:header/> <soapenv:body> <web:getfuncionarios/> </soapenv:body> </soapenv:envelope> A próxima mensagem é a resposta da função getfuncionarios requisitada anteriormente. Interno a tag getfuncionariosresponse, o servidor envia uma lista de funcionários, na forma de um documento XML. <S:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> Revista das Faculdades Integradas Claretianas Nº5 janeiro/dezembro de

5 <S:Body> <ns2:getfuncionariosresponse xmlns:ns2="http://webservices/"> <return> <datanascimento>20/03/1975</datanascimento> <departamento>ti</departamento> <nome>carlos</nome> <RE>52258</RE> <sobrenome>oliveira</sobrenome> </return> <return> <datanascimento>13/05/1981</datanascimento> <departamento>contabilidade</departamento> <nome>pedro</nome> <RE>33558</RE> <sobrenome>teodoro</sobrenome> </return> <return> <datanascimento>21/10/1978</datanascimento> <departamento>ti</departamento> <nome>jorge</nome> <RE>33665</RE> <sobrenome>pereira</sobrenome> </return> <return> <datanascimento>31/11/1971</datanascimento> <departamento>vendas</departamento> <nome>eduardo</nome> <RE>32155</RE> <sobrenome>pires</sobrenome> </return> </ns2:getfuncionariosresponse> </S:Body> </S:Envelope> 7 O Estilo Arquitetural REST O protocolo SOAP é uma tecnologia viável e com um grande suporte entre as linguagens de programação atuais, porém é consenso entre os especialistas que em alguns aspectos o protocolo SOAP foi projetado em excesso. Esse é um dos motivos pelo qual os Web Services de estilo REST vem ganhando cada vez mais notoriedade entre os desenvolvedores de Web Services. Empresas como Google, Facebook, Twitter e Amazon já disponibilizam Web Services de estilo REST para acesso aos seus serviços. REST significa Representational State Transfer (Transferência de Estado Representacional) e sua especificação foi criada por Roy Fielding em sua dissertação de pós-doutorado, no ano É um estilo híbrido, derivado de vários estilos arquiteturais baseados em rede (FIELDING, 2000). REST não é uma Revista das Faculdades Integradas Claretianas Nº5 janeiro/dezembro de

6 tecnologia, nem um protocolo. É um conjunto de princípios que, conforme são implementados no projeto de software, trazem consigo algumas vantagens e restrições. Segundo Fielding (2000), um estilo arquitetural é um conjunto de regras que restringe os papéis/funcionalidades dos elementos arquiteturais e o grau de relacionamento entre esses elementos nas arquiteturas que aplicam esse estilo. Definir estilos de arquitetura de software é um recurso útil, pois permite nomear um conjunto de padrões, técnicas e regras de forma que seja fácil identificá-los, discutir melhoramentos e aplicá-los de forma efetiva no desenvolvimento de projetos de software. O estilo REST foi projetado de forma a utilizar ao máximo a arquitetura da Web existente, tirando o maior proveito possível dos protocolos e tecnologias que já estão em uso desde que a world wide web foi criada. Roy Fielding foi um dos principais autores da especificação do protocolo HTTP (Hyper Text Transfer Protocol), o protocolo de envio e recebimento (solicitação e resposta) de mensagens predominante na web. Quando Fielding nomeou o estilo como Transferência de Estado Representacional, ele se referia ao modo como a Web funciona. A Web é um conjunto de páginas disponíveis na Internet, conectadas entre si através de hyperlinks. Ao acessar uma dessas páginas através de seu endereço (URL, ou URI), o usuário recebe uma representação dessa página. Clicando em um link dessa página, o estado é transferido para a nova página, e o usuário recebe uma nova representação. Um Web Service de estilo REST é formado por um conjunto de Recursos, onde cada recurso possue um identificador único. Esses recursos possuem uma ou mais representações, estão conectados através de hyperlinks, e possuem métodos que permitem a manipulação das suas representações. Os serviços baseados em REST são nomeados pelos desenvolvedores conforme o grau de aderência aos princípios da arquitetura. Web Services que implementam todas as diretrizes do estilo são chamados de Web Services Restful. Os que implementam somente parte das diretrizes, são chamados de Restlike. 7.1 O protocolo HTTP O protocolo HTTP (Hyper Text Transfer Protocol), traduzido como Protocolo para Transferência de Hipertexto, é o protocolo mais antigo e o mais utilizado na Internet. Através dele é possível requisitar uma página web, enviar um formulário preenchido, fazer upload de arquivos, etc. A definição do W3C, no documento de especificação do HTTP, é bem clara: O protocolo de Transferência de Hypertexto é um protocolo de nível de aplicação para sistemas de informação distribuídos, colaborativos e baseados em hipermídia. É um protocolo genérico, stateless, que pode ser usado para diversas finalidades além de seu uso com hypertexto, como servidores de nomes e sistemas de gerenciamento de objetos distribuídos, através da extensão de seus métodos, códigos de erro e cabeçalhos. Um dos recursos do HTTO é a tipagem e a negociação da representação dos dados, permitindo que sistemas o utilizem independentemente dos dados que serão transferidos (W3C, 1999a). É um protocolo baseado na arquitetura requisição-resposta. Para cada requisição que o browser envia para um servidor, há uma resposta. HTTP não é orientado a conexão e não mantém estado entre as chamadas. Isso significa que toda informação necessária para que uma requisição seja processada deve ser passada na própria requisição. Essa abordagem promove uma maior escalabilidade, pois os recursos não ficam alocados no servidor por muito tempo. Uma requisição HTTP consiste em um cabeçalho e, opcionalmente, um corpo. O cabeçalho HTTP é um conjunto de linhas, no formato chave:valor, e é enviado em texto puro. Uma típica requisição HTTP possui o seguinte formato: GET localhost/pagina.html HTTP/1.1 accept:text/html Revista das Faculdades Integradas Claretianas Nº5 janeiro/dezembro de

7 user-agent: IE/6.0 if-modified-since: Sat, cookie: user=joao A palavra GET indica o verbo, ou comando, que será utilizado para na requisição. Existem vários verbos na especificação do HTTP, os mais utilizados são: GET: solicitação simples de um recurso ao servidor. POST: solicitação uma gravação em um recurso no servidor. PUT: criar um recurso no servidor. DELETE: requisição para deleção de um recurso. HEAD: Semelhante ao método GET, exceto que o recurso não é transferido para o cliente, apenas uma confirmação de recebimento. Serve para testar a disponibilidade de uma URL. Em seguida temos o domínio, o host para o qual a solicitação será enviada. Ainda na primeira linha do cabeçalho é incluída a versão do protocolo utilizada para a requisição. O parâmetro accept permite que o cliente especifique o formato desejado da resposta. Entre os valores possíveis estão text/xml para receber documentos XML, image/jpeg para imagens, e text/json para repostas utilizando a notação JSON, entre outros. A resposta também possui um cabeçalho e possivelmente um corpo, utilizado para transmitir os dados do processamento realizado. O exemplo a seguir é uma resposta HTTP: HTTP/ Ok date: Sat, 24 Jan :58: content-type: text/html set-cookie: user=fred <html><head><title>título da página</title <body> </body> </html> A primeira linha do cabeçalho de resposta contém, respectivamente, a versão do protocolo e um código de status. Esses códigos são utilizados para informar ao cliente se uma requisição foi processada com sucesso ou se ocorreu algum erro. No caso, o código 200 Ok significa que a requisição foi bem-sucedida. 8 Recursos A noção de recursos é o conceito central do estilo REST. Se traçarmos um paralelo com o mapeamento relacional de um banco de dados, podemos dizer que os recursos em REST equivalem às Entidades do modelo relacional. Recursos são coisas, substantivos, objetos que são disponibilizados pelo serviço. Um recurso é qualquer informação que pode ser nomeada. É um mapeamento conceitual para um conjunto de Entidades, não uma Entidade que corresponde a um mapeamento em um determinado ponto do tempo. (FIELDING, 2000). Podemos considerar como exemplos de recursos o conjunto de alunos de uma sala de aula, um determinado aluno dessa mesma sala, um serviço de previsão do tempo, o acervo histórico da cidade de São Paulo, etc. Ao dizer que um recurso é um mapeamento para uma entidade, e não uma entidade em um determinado ponto no tempo, Fielding quer dizer que os dados, as informações de um determinado recurso, podem variar em função do tempo, mas isso não significa que cada variação se torna um recurso distinto. Revista das Faculdades Integradas Claretianas Nº5 janeiro/dezembro de

8 A World Wide Web nada mais é do que uma coleção de recursos, nesse caso documentos HTML, que são referenciados entre si através de hyperlinks. A página do New York Times por exemplo, pode ser considerada um recurso, e pode possuir uma representação diferente quando acessada em diferentes dias e horários. Ao contrário de SOAP, que é por si só um protocolo de envio e recebimento de mensagens, REST não define como as mensagens são enviadas e recebidas. Ao invés disso, ele utiliza o próprio protocolo HTTP. Cada recurso deve possuir um identificador único, que será utilizado como interface para acesso ao recurso. Utilizando-se novamente do protocolo HTTP, um web service REST utiliza URLs para identificar seus recursos. Essa abordagem garante que os identificadores dos recursos sejam únicos globalmente, uma vez que está atrelado a um domínio da web. O mapeamento de Recursos para URLs em serviços de estilo REST são estruturados da seguinte maneira: em um serviço de exemplo que tem a funcionalidade de fornecer uma lista de funcionários, e que está hospedado na máquina local, a URL para acessar tal lista seria por exemplo Nesse contexto, http é o protocolo utilizado, localhost é o domínio onde o serviço está hospedado, meuservico é o nome do Web Service, e funcionarios é o nome do recurso acessado. Uma solicitação HTTP para essa URL retornaria uma lista de funcionários cadastrados no sistema que o serviço expõe. Para acessar os dados de um determinado funcionário, supondo que exista um campo chamado RE (Registro do Empregado), que identifique na base de dados cada funcionário unicamente, esse campo passa a fazer parte da URL, ficando da seguinte forma: onde 2334 é número de RE do funcionário do qual se deseja obter os dados. Caso fosse necessário requisitar a lista de dependentes de um determinado funcionário, a URL do serviço ficaria parecida com Seguindo o mesmo padrão de mapeamento, se o objetivo fosse listar as informações de um determinado dependente, o mapeamento seria onde seria, por exemplo, o número do CPF do dependente, campo que o identificaria unicamente no conjunto. Aqui existe uma diferença substancial entre o protocolo SOAP e o estilo REST. Enquanto o primeiro publica funções (verbos), métodos que podem ser invocados e retornam um resultado, de forma muito parecida com os sistemas RPC de outrora, o segundo publica um conjunto de recursos (substantivos), entidades, que possuem representações que são transferidas entre as chamadas. Revista das Faculdades Integradas Claretianas Nº5 janeiro/dezembro de

9 Figura 2 - Exemplo de mapeamento de um recurso em um serviço REST. (KALIN, 2009) 9 Representações De acordo com Fielding (2000), uma representação consiste de dados, metadados para descrever os dados e, quando necessário, metadados para descrever os metadados (geralmente para o propósito de verificar a integridade das mensagens). A representação de um recurso é utilizada para capturar seu estado atual ou indicar seu estado desejado, para que seja possível transferir essa representação entre os componentes envolvidos. São essas representações dos recursos que são transferidas para o cliente do serviço, e não o recurso em si. Elas podem ser exibidas, processadas, e enviadas novamente para o serviço. Cada recurso pode possuir uma ou mais representações. Ao acessar o recurso de listagem de funcionários citado anteriormente, o cliente pode solicitar as informações de um funcionário representadas em um documento XML, em um arquivo CSV (campos separados por vírgula), uma página HTML com os dados já formatados, ou uma imagem, que contenha a foto 3x4 do funcionário. Se um cliente solicitar o recurso sugerindo XML como representação, obteria o seguinte documento: <funcionarios> <funcionario href="http://localhost/meuservico/funcionarios/2334"> <RE>2334</RE> <nome>josé Carlos de Oliveira</nome> <datanascimento>29/01/1986</datanascimento> </funcionario> </funcionarios> Esse tipo de resposta se parece muito com uma resposta obtida de um Web Service baseado em SOAP. A principal diferença é que o documento SOAP conteria, além dos dados requisitados, informações de controle da mensagem SOAP, aumentando o tamanho da mensagem. 9.1 JSON Revista das Faculdades Integradas Claretianas Nº5 janeiro/dezembro de

10 Um documento XML precisa posicionar a informação entre tags personalizadas, que possuem um nome que identifica a informação. Dessa forma, se a informação a ser transmitida for muito variada em termos de número de campos, haverá um aumento considerável no tamanho das mensagens transmitidas (CROCKFORD, 2006). Um dos formatos mais adotados nos serviços de estilo REST é o formato JSON, que é a sigla para JavaScript Object Notation (Notação de Objetos JavaScript). JSON é um formato leve, independente de máquina, baseado em texto, utilizadao para troca de dados e serialização de Objetos. É derivado da declaração literal de objetos da linguagem JavaScript (IETF, 2006). A principal vantagem de JSON sobre XML é o tamanho do arquivo. JSON é muito mais compacto, e ainda consegue ser autodescritivo, utilizando uma notação de pares chave/valor para descrever os campos. Com JSON é possível representar 4 tipos primitivos: números, strings, booleanos e null; e dois tipos estruturados: array e objeto. Abaixo está um exemplo de um objeto funcionário serializado utilizando a notação JSON: { "funcionario": { "RE": 2334, "nome": "Jose Carlos", "sobrenome": "Oliveira", "departamento": "Produção", "ativo": true, "datanascimento": " " } } 9.2 Hipermídia O conceito de hipermídia está diretamente relacionado aos conceitos de Recurso e Representação. É através dos hyperlinks que se torna possível descobrir e requisitar as representações dos diversos recursos disponíveis em um serviço de estilo REST. Um link, também citado como Web Link ou hyperlink, é uma conexão entre um recurso da Web e outro e, apesar de ser um conceito simples, é uma das principais características responsáveis pelo sucesso da Web (W3C, 1999b). Esse é um aspecto que diferencia o estilo REST da maioria das arquiteturas de sistemas distribuídos, onde os dados são encapsulados e ocultados pelos componentes de processamento. Em um sistema baseado em hipermidia, quando um link é acessado são os dados que se movem de uma localização a outra. (FIELDING, 2000). Ao acessar uma página na Web, essa página é renderizada no browser do usuário, e pode conter diversos recursos, como textos, figuras, animações, e hyperlinks, que quando clicados, direcionam o usuário para outra página, outro recurso. No estilo REST, os hyperlinks possuem exatamente a mesma função que possuem na Web: conectar um recurso ao outro. Isso permite que, uma vez que o aplicativo que está consumindo o serviço tenha acesso à representação de um recurso, essa representação contenha, além dos dados do estado atual do recurso, links para recursos relacionados, ou para outras representações do mesmo recurso. Revista das Faculdades Integradas Claretianas Nº5 janeiro/dezembro de

11 Os links para os recursos relacionados são incluídos na representação do recurso. Utilizando o exemplo do capítulo anterior, ao requisitar uma lista de funcionários, a representação poderia conter apenas informações básicas sobre cada funcionário, e um link para a URL onde seria possível obter uma representação completa de cada registro. 9.3 Verbos HTTP aplicados aos recursos Em um Web Service de estilo REST, os recursos disponibilizados são substantivos, pois representam algum objeto, seja ele concreto ou abstrato. Sendo assim, para executar ações nesses substantivos é necessária a aplicação de verbos, como ocorre nos diversos idiomas falados no mundo. Nos idiomas, alguns verbos são específicos e só podem ser utilizados por um conjunto restrito de substantivos. Sentenças como acelerar um lápis ou navegar um carro não fazem sentido. Por outro lado, existem alguns verbos que podem ser aplicados a praticamente todos os substantivos, como pegar, criar e colocar. REST utiliza os verbos padrão existentes no protocolo HTTP para permitir que operações sejam realizadas sobre os seus recursos. Conforme afirma Kalin(2009), no núcleo da arquitetura REST está a noção de que o HTTP, apesar da palavra transporte em seu nome, é uma API, e não apenas um protocolo de transporte. Fielding nomeia essa característica de Interface Uniforme. Utilizando os verbos padrão do HTTP, cada recurso pode ser acessado e manipulado através da mesma interface. Mesmo que os métodos possuam significados diferentes quando aplicados a recursos diferentes, isso não depende de uma implementação específica, apenas a semântica da operação é alterada, a sintaxe permanece a mesma. Seguindo esse raciocínio e aproveitando a estrutura do protocolo HTTP existente, o estilo REST utiliza os verbos HTTP como operações sobre os recursos. Cada verbo padrão é mapeado para uma ação específica, conforme o seguinte padrão: O verbo GET é utilizado para requisitar uma representação do recurso. No cabeçalho da requisição, mais especificamente no parâmetro accept, o requisitante sugere o formato desejado da representação. POST é usado para criar um novo recurso, ou executar uma operação. Os dados do novo recurso são enviados no corpo da requisição. O verbo PUT é usado para atualizar um recurso existente. Novamente, os dados alterados do recurso são enviados na requisição. Por fim, o verbo DELETE é utilizado para apagar um recurso. Esse é um grande diferencial entre SOAP e REST. Por ser um protocolo totalmente independente, SOAP ignora as funcionalidades do HTTP, e precisa exportar cada funcionalidade como um novo método. Além disso, uma mensagem SOAP é enviada geralmente por HTTP, que também serve como protocolo de transporte, criando uma redundância desnecessária, ao encapsular um protocolo dentro de outro. Utilizando essa abordagem, os serviços REST se aproveitam da estrutura pronta do HTTP, e torna possível mapear qualquer ação que esteja disponível em um recurso, ou em um conjunto de recursos. 10 Conclusão Decidir quais tecnologias utilizar em novos projetos de software está entre as decisões mais difíceis da equipe de desenvolvimento, e possui influência direta no andamento do projeto, sendo determinante para seu sucesso ou fracasso. SOAP é o padrão estabelecido de mercado e tem o apoio de empresas que estão na vanguarda da tecnologia de computação, como Oracle, IBM e Microsoft. Possui mais ferramentas de apoio ao desenvolvedor e Revista das Faculdades Integradas Claretianas Nº5 janeiro/dezembro de

12 várias extensões que permitem a adição de funcionalidades ao protocolo, como criptografia das mensagens, autenticação e autorização de usuários, mensagens assíncronas, etc. Por outro lado, é um protocolo extenso, com muitos detalhes, e praticamente impossível de se trabalhar sem apoio de ferramentas auxiliares. Ao utilizar a estrutura da web existente, o estilo REST leva vantagem em diversos aspectos, como diminuição do tráfego na rede, criação de APIs mais intuitivas e a utilização de uma interface única. De fato, nenhuma tecnologia irá substituir a outra, pelo menos não a médio prazo. Cada abordagem apresenta situações onde se encaixam melhor e problemas que solucionam de forma mais elegante. Cabe ao arquiteto de software analisar detalhadamente cada requisito da aplicação a ser desenvolvida, e comparar com as opções disponíveis, de forma a tomar a melhor decisão possível. 11 Referências Bibliográficas CROCKFORD, D. JSON: The Fat-Free Alternative to XML Disponível em Acesso em Novembro FIELDING, Roy Thomas. Architetural Styles and the Design of Netword-based Software Architetures Dissertação (Doutorado em Filosofia da Computação). Universidade da Califórnia. Irvine. FOWLER et al. Patterns of Enterprise Application Architecture Addison Wesley. 560p. IETF. The application/json Media Type for JavaScript Object Notation (JSON) Disponível em Acesso em Novembro de KALIN, Martin. Java Web Services: Up and Running. 1st Edition O Reilly Media, Inc. 336p. (tradução nossa). KREGER, Heather. Web Services Conceptual Architecture (WSCA 1.0) IBM Software Group. Disponível em Acesso em: 01/05/2011. SUDA, Brian. SOAP Web Services University of Edinburgh. TANENBAUM, A. S.; STEEN, M. V. Distributed Systems: Principles and Paradigms. Pearson Prentice Hall, UFCG. Introdução e Motivação: Arquiteturas em N Camadas Universidade Federal de Campina Grande. Disponível em: Acesso em 18/11/2011. W3C. HTML 4.01 Specification. 1999a.Disponível em Acesso em Novembro W3C. Hypertext Transfer Protocol HTTP/ b. Disponível em Acesso em 17/11/2011. W3C. Web Services Architecture Disponível em Acesso em Agosto Revista das Faculdades Integradas Claretianas Nº5 janeiro/dezembro de

13 Revista das Faculdades Integradas Claretianas Nº4 janeiro/dezembro de

COMPARANDO APLICAÇÃO WEB SERVICE REST E SOAP

COMPARANDO APLICAÇÃO WEB SERVICE REST E SOAP COMPARANDO APLICAÇÃO WEB SERVICE REST E SOAP Cleber de F. Ferreira¹, Roberto Dias Mota¹. ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil cleberferreirasi@hotmail.com, motaroberto@hotmail.com Resumo.

Leia mais

REST Um Estilo de Arquitetura de Sistemas Distribuídos

REST Um Estilo de Arquitetura de Sistemas Distribuídos REST Um Estilo de Arquitetura de Sistemas Distribuídos Márcio Alves de Araújo¹, Mauro Antônio Correia Júnior¹ 1 Faculdade de Computação Universidade Federal de Uberlândia (UFU) Monte Carmelo MG Brasil

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 13 Web Services Web Services

Leia mais

Service Oriented Architecture SOA

Service Oriented Architecture SOA Service Oriented Architecture SOA Arquitetura orientada aos serviços Definição: Arquitetura de sistemas distribuídos em que a funcionalidade é disponibilizada sob a forma de serviços (bem definidos e independentes)

Leia mais

Consumindo um Web Service através de uma Aplicação Comercial em Android. Alex Malmann Becker www.alex.porthal.com.br alex@porthal.com.

Consumindo um Web Service através de uma Aplicação Comercial em Android. Alex Malmann Becker www.alex.porthal.com.br alex@porthal.com. Consumindo um Web Service através de uma Aplicação Comercial em Android Alex Malmann Becker www.alex.porthal.com.br alex@porthal.com.br 08/2014 Agenda Introdução Conceitos Web Service Por que utilizar

Leia mais

UNIVERSIDADE. Sistemas Distribuídos

UNIVERSIDADE. Sistemas Distribuídos UNIVERSIDADE Sistemas Distribuídos Ciência da Computação Prof. Jesus José de Oliveira Neto Web Services Web Services Existem diferentes tipos de comunicação em um sistema distribuído: Sockets Invocação

Leia mais

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

SOA Introdução. SOA Visão Departamental das Organizações 1 Introdução A Organização é a forma pela qual nós coordenamos nossos recursos de todos os tipos para realizar o trabalho que nos propusemos a fazer. A estrutura de nossas organizações manteve-se basicamente

Leia mais

Universidade Federal de Mato Grosso

Universidade Federal de Mato Grosso Universidade Federal de Mato Grosso Programação III Curso de Ciência da Computação Prof. Thiago P. da Silva thiagosilva@ufmt.br Material basedado em [Kurose&Ross 2009] e [Gonçalves, 2007] Agenda Internet

Leia mais

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

Web Services. Integração de aplicações na Web. Sistemas Distribuídos Web Services Integração de aplicações na Web Integração de Aplicações na Web Interoperação entre ambientes heterogêneos desafios diversidade de componentes: EJB, CORBA, DCOM... diversidade de linguagens:

Leia mais

Trabalho de Sistemas Distribuídos

Trabalho de Sistemas Distribuídos Cássio de Olivera Ferraz Trabalho de Sistemas Distribuídos Petrópolis 2015, v-1.0 Cássio de Olivera Ferraz Trabalho de Sistemas Distribuídos Trabalho sobre sistemas distribuídos e suas tecnologias. Universidade

Leia mais

WWW - World Wide Web

WWW - World Wide Web WWW World Wide Web WWW Cap. 9.1 WWW - World Wide Web Idéia básica do WWW: Estratégia de acesso a uma teia (WEB) de documentos referenciados (linked) em computadores na Internet (ou Rede TCP/IP privada)

Leia mais

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

Integração de sistemas utilizando Web Services do tipo REST Integração de sistemas utilizando Web Services do tipo REST Jhonatan Wilson Aparecido Garbo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil jhowgarbo@gmail.com jaime@unipar.br

Leia mais

Programação WEB Introdução

Programação WEB Introdução Programação WEB Introdução Rafael Vieira Coelho IFRS Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Sul Campus Farroupilha rafael.coelho@farroupilha.ifrs.edu.br Roteiro 1) Conceitos

Leia mais

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

Introdução Serviços Web WSDL SOAP UDDI Ferramentas. Serviços Web. (Web Services) Emerson Ribeiro de Mello 1/39 Serviços Web (Web Services) Emerson Ribeiro de Mello Departamento de Automação e Sistemas Universidade Federal de Santa Catarina 22 de Maio de 2007 2/39 Arquitetura Orientada a Serviços Arquitetura

Leia mais

Programação para a Internet. Prof. M.Sc. Sílvio Bacalá Jr sbacala@gmail.com www.facom.ufu.br/~bacala

Programação para a Internet. Prof. M.Sc. Sílvio Bacalá Jr sbacala@gmail.com www.facom.ufu.br/~bacala Programação para a Internet Prof. M.Sc. Sílvio Bacalá Jr sbacala@gmail.com www.facom.ufu.br/~bacala A plataforma WEB Baseada em HTTP (RFC 2068) Protocolo simples de transferência de arquivos Sem estado

Leia mais

REST. Caio Nakashima caio.nakashima@mds.gov.br caionakashima@gmail.com

REST. Caio Nakashima caio.nakashima@mds.gov.br caionakashima@gmail.com REST Caio Nakashima caio.nakashima@mds.gov.br caionakashima@gmail.com 1 RESTful REpresentation State Transfer Estilo de arquitetura de software para sistemas distribuídos Termo proposto por Roy Fielding

Leia mais

Curso de Aprendizado Industrial Desenvolvedor WEB

Curso de Aprendizado Industrial Desenvolvedor WEB Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos II Professor: Cheli dos S. Mendes da Costa Modelo Cliente- Servidor Modelo de Aplicação Cliente-servidor Os

Leia mais

1.264 Lição 11. Fundamentos da Web

1.264 Lição 11. Fundamentos da Web 1.264 Lição 11 Fundamentos da Web Navegadores e servidores da Web A Internet é apenas um conjunto de redes interconectadas livremente. Um conjunto de redes de área local conectado via redes de área ampla

Leia mais

Web das Coisas WoT. Software: APIs para IoT. Prof. João Bosco Teixeira Junior

Web das Coisas WoT. Software: APIs para IoT. Prof. João Bosco Teixeira Junior Web das Coisas WoT Software: APIs para IoT Prof. João Bosco Teixeira Junior WoT Um novo paradigma para desenvolvimento de aplicações inspirado na ideia do IOT; Utiliza protocolos e padrões amplamente aceitos

Leia mais

INTEGRAÇÃO DE APLICAÇÕES UTILIZANDO WEB SERVICE. Kellen Kristine Perazzoli 1, Manassés Ribeiro 2 RESUMO

INTEGRAÇÃO DE APLICAÇÕES UTILIZANDO WEB SERVICE. Kellen Kristine Perazzoli 1, Manassés Ribeiro 2 RESUMO INTEGRAÇÃO DE APLICAÇÕES UTILIZANDO WEB SERVICE Kellen Kristine Perazzoli, Manassés Ribeiro RESUMO O grande avanço tecnológico vivenciado nos últimos anos, os web services vem sendo utilizados trazendo

Leia mais

Vamos iniciar a nossa exploração do HTTP baixando um arquivo em HTML simples - bastante pequeno, que não contém objetos incluídos.

Vamos iniciar a nossa exploração do HTTP baixando um arquivo em HTML simples - bastante pequeno, que não contém objetos incluídos. Wireshark Lab: HTTP Versão 1.1 2005 KUROSE, J.F & ROSS, K. W. Todos os direitos reservados 2008 BATISTA, O. M. N. Tradução e adaptação para Wireshark. Tendo molhado os nossos pés com o Wireshark no laboratório

Leia mais

XML e Banco de Dados. Prof. Daniela Barreiro Claro DCC/IM/UFBA

XML e Banco de Dados. Prof. Daniela Barreiro Claro DCC/IM/UFBA XML e Banco de Dados DCC/IM/UFBA Banco de Dados na Web Armazenamento de dados na Web HTML muito utilizada para formatar e estruturar documentos na Web Não é adequada para especificar dados estruturados

Leia mais

Introdução a Web Services

Introdução a Web Services Introdução a Web Services Mário Meireles Teixeira DEINF/UFMA O que é um Web Service? Web Service / Serviço Web É uma aplicação, identificada por um URI, cujas interfaces podem ser definidas, descritas

Leia mais

3 Serviços na Web (Web services)

3 Serviços na Web (Web services) 3 Serviços na Web (Web services) 3.1. Visão Geral Com base na definição do Word Wide Web Consortium (W3C), web services são aplicações autocontidas, que possuem interface baseadas em XML e que descrevem

Leia mais

Implementar servidores de Web/FTP e DFS. Disciplina: Serviços de Redes Microsoft Professor: Fernando Santorsula fernando.santorsula@esamc.

Implementar servidores de Web/FTP e DFS. Disciplina: Serviços de Redes Microsoft Professor: Fernando Santorsula fernando.santorsula@esamc. Implementar servidores de Web/FTP e DFS Disciplina: Serviços de Redes Microsoft Professor: Fernando Santorsula fernando.santorsula@esamc.br Conteúdo programático Introdução ao protocolo HTTP Serviço web

Leia mais

Desenvolvimento Web. Saymon Yury C. Silva Analista de Sistemas. http://www.saymonyury.com.br

Desenvolvimento Web. Saymon Yury C. Silva Analista de Sistemas. http://www.saymonyury.com.br Desenvolvimento Web Saymon Yury C. Silva Analista de Sistemas http://www.saymonyury.com.br Vantagens Informação em qualquer hora e lugar; Rápidos resultados; Portabilidade absoluta; Manutenção facilitada

Leia mais

Universidade Federal de Goiás Centro de Recursos Computacionais - CERCOMP Divisão de Sistemas. Criação de uma Serviço de Geração de Relatórios

Universidade Federal de Goiás Centro de Recursos Computacionais - CERCOMP Divisão de Sistemas. Criação de uma Serviço de Geração de Relatórios Universidade Federal de Goiás Centro de Recursos Computacionais - CERCOMP Divisão de Sistemas Criação de uma Serviço de Geração de Relatórios Goiânia 12/2011 Versionamento 12/12/2011 Hugo Marciano... 1.0

Leia mais

Sistemas Distribuídos e Paralelos

Sistemas Distribuídos e Paralelos Sistemas Distribuídos e Paralelos Web Services Ricardo Mendão Silva Universidade Autónoma de Lisboa r.m.silva@ieee.org November 29, 2014 Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November

Leia mais

Web Services. (Introdução)

Web Services. (Introdução) Web Services (Introdução) Agenda Introdução SOA (Service Oriented Architecture) Web Services Arquitetura XML SOAP WSDL UDDI Conclusão Introdução Comunicação distribuída Estratégias que permitem a comunicação

Leia mais

Manual de Integração. Tecnologia: WebServices SOAP XML. Área: SERASA Experian. Produto: Autorizador Básico. Versão: 1.0. Autor: Angelo Bestetti Junior

Manual de Integração. Tecnologia: WebServices SOAP XML. Área: SERASA Experian. Produto: Autorizador Básico. Versão: 1.0. Autor: Angelo Bestetti Junior Manual de Integração Tecnologia: WebServices SOAP XML Área: SERASA Experian Produto: Autorizador Básico Versão: 1.0 Autor: Angelo Bestetti Junior Conteúdo Introdução... 3 Considerações Iniciais... 4 Privacidade...

Leia mais

Minicurso Web Services com PHP

Minicurso Web Services com PHP Minicurso Vinícius Costa de Souza viniciuscs@unisinos.br http://www.inf.unisinos.br/~vinicius julho de 2005 Apresentações Nome Conhecimentos sobre Web Services Conhecimentos sobre PHP Expectativas referentes

Leia mais

Web Services. Autor: Rômulo Rosa Furtado

Web Services. Autor: Rômulo Rosa Furtado Web Services Autor: Rômulo Rosa Furtado Sumário O que é um Web Service. Qual a finalidade de um Web Service. Como funciona o serviço. Motivação para o uso. Como construir um. Referências. Seção: O que

Leia mais

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

2 Conceitos relativos a Web services e sua composição 15 2 Conceitos relativos a Web services e sua composição A necessidade de flexibilidade na arquitetura das aplicações levou ao modelo orientado a objetos, onde os processos de negócios podem ser representados

Leia mais

Arquiteturas SOA, WOA, e REST

Arquiteturas SOA, WOA, e REST Arquiteturas SOA, WOA, e REST Aplicação de Software Social Fred Figueiredo Luiz Borges Pedro Pires Arquiteturas SOA, WOA e REST Desenvolvimento de aplicações orientadas ao fornecimento de serviços que

Leia mais

Serviços Web: Introdução

Serviços Web: Introdução Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Objetivos Nesta aula

Leia mais

ARQUITETURA DE SISTEMAS. Cleviton Monteiro (cleviton@gmail.com)

ARQUITETURA DE SISTEMAS. Cleviton Monteiro (cleviton@gmail.com) ARQUITETURA DE SISTEMAS Cleviton Monteiro (cleviton@gmail.com) Roteiro Definição Documento de arquitetura Modelos de representação da arquitetura Estilos arquiteturais Arquitetura de sistemas web Arquitetura

Leia mais

História e Evolução da Web. Aécio Costa

História e Evolução da Web. Aécio Costa Aécio Costa A História da Web O que estamos estudando? Período em anos que a tecnologia demorou para atingir 50 milhões de usuários 3 As dez tecnologias mais promissoras 4 A evolução da Web Web 1.0- Passado

Leia mais

Associação Carioca de Ensino Superior Centro Universitário Carioca

Associação Carioca de Ensino Superior Centro Universitário Carioca Desenvolvimento de Aplicações Web Lista de Exercícios Métodos HTTP 1. No tocante ao protocolo de transferência de hipertexto (HTTP), esse protocolo da categoria "solicitação e resposta" possui três métodos

Leia mais

PRnet/2013. Linguagem de Programação Web

PRnet/2013. Linguagem de Programação Web Linguagem de Programação Web Linguagem de Programação Web Prnet/2013 Linguagem de Programação Web» Programas navegadores» Tipos de URL» Protocolos: HTTP, TCP/IP» Hipertextos (páginas WEB)» HTML, XHTML»

Leia mais

Módulo 11 A Web e seus aplicativos

Módulo 11 A Web e seus aplicativos Módulo 11 A Web e seus aplicativos Até a década de 90, a internet era utilizada por acadêmicos, pesquisadores e estudantes universitários para a transferência de arquivos e o envio de correios eletrônicos.

Leia mais

Autoria Web Apresentação e Visão Geral sobre a Web

Autoria Web Apresentação e Visão Geral sobre a Web Apresentação e Visão Geral sobre a Web Apresentação Thiago Miranda Email: mirandathiago@gmail.com Site: www.thiagomiranda.net Objetivos da Disciplina Conhecer os limites de atuação profissional em Web

Leia mais

Revista Intellectus Ano VIII Nº. 19

Revista Intellectus Ano VIII Nº. 19 PROPOSTA DE UM CONJUNTO DE BOAS PRÁTICAS PARA A UTILIZAÇÃO E CONSTRUÇÃO DE SERVIÇOS WEB BASEADOS EM REST Proposal for a set of good practice for the use and construction of Web service Rest based ANDRADE,

Leia mais

Kassius Vargas Prestes

Kassius Vargas Prestes Kassius Vargas Prestes Agenda 1. Introdução Web Services 2. XML, SOAP 3. Apache Tomcat 4. Axis 5. Instalação Tomcat e Axis 6. Criação de um Web Service 7. Criação de um cliente Baixar http://www.inf.ufrgs.br/~kvprestes/webservices/

Leia mais

Boas Práticas de Desenvolvimento Seguro

Boas Práticas de Desenvolvimento Seguro Boas Práticas de Desenvolvimento Seguro Julho / 2.012 Histórico de Revisões Data Versão Descrição Autor 29/07/2012 1.0 Versão inicial Ricardo Kiyoshi Página 2 de 11 Conteúdo 1. SEGURANÇA DA INFORMAÇÃO

Leia mais

O protocolo HTTP. Você aprenderá: O que é e como funciona o protocolo HTTP. Quais são as partes de um pedido HTTP.

O protocolo HTTP. Você aprenderá: O que é e como funciona o protocolo HTTP. Quais são as partes de um pedido HTTP. HTTP O protocolo HTTP Você aprenderá: O que é e como funciona o protocolo HTTP. Quais são as partes de um pedido HTTP. Quais são as partes de um a resposta HTTP. O que é o protocolo HTTP? Hyper Text Transfer

Leia mais

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

Web services. Um web service é qualquer software que está disponível através da Internet através de uma interface XML. Web services Um web service é qualquer software que está disponível através da Internet através de uma interface XML. XML é utilizado para codificar toda a comunicação de/para um web service. Web services

Leia mais

XHTML 1.0 DTDs e Validação

XHTML 1.0 DTDs e Validação XHTML 1.0 DTDs e Validação PRnet/2012 Ferramentas para Web Design 1 HTML 4.0 X XHTML 1.0 Quais são os três principais componentes ou instrumentos mais utilizados na internet? PRnet/2012 Ferramentas para

Leia mais

Redes de Computadores LFG TI

Redes de Computadores LFG TI Redes de Computadores LFG TI Prof. Bruno Guilhen Camada de Aplicação Fundamentos Fundamentos Trata os detalhes específicos de cada tipo de aplicação. Mensagens trocadas por cada tipo de aplicação definem

Leia mais

Desenvolvendo um Mashup com a API do Google Maps e com os dados de uma imobiliária

Desenvolvendo um Mashup com a API do Google Maps e com os dados de uma imobiliária 1 Desenvolvendo um Mashup com a API do Google Maps e com os dados de uma imobiliária Luiz Henrique Rocha e Costa Departamento de Informática Universidade Estadual de Maringá (UEM) Av. Colombo, 5.790 -

Leia mais

INTEGRAÇÃO DE APLICAÇÕES UTILIZANDO WEB SERVICE 1. Kellen Kristine Perazzoli 2 ; Manassés Ribeiro 3

INTEGRAÇÃO DE APLICAÇÕES UTILIZANDO WEB SERVICE 1. Kellen Kristine Perazzoli 2 ; Manassés Ribeiro 3 INTEGRAÇÃO DE APLICAÇÕES UTILIZANDO WEB SERVICE 1 Kellen Kristine Perazzoli 2 ; Manassés Ribeiro 3 INTRODUÇÃO Atualmente empresas de diversos portes estão encontrando nos web services soluções para seus

Leia mais

Java Enterprise Edition. by Antonio Rodrigues Carvalho Neto

Java Enterprise Edition. by Antonio Rodrigues Carvalho Neto Java Enterprise Edition by Antonio Rodrigues Carvalho Neto Enterprise Edition Architecture O que é Java Enterprise Edition? Java EE é uma plataforma que reune diversas especificações relacionadas a computação

Leia mais

CONSTRUÇÃO DE APLICAÇÕES DISTRIBUÍDAS UTILIZANDO SERVIÇOS WEB

CONSTRUÇÃO DE APLICAÇÕES DISTRIBUÍDAS UTILIZANDO SERVIÇOS WEB CONSTRUÇÃO DE APLICAÇÕES DISTRIBUÍDAS UTILIZANDO SERVIÇOS WEB Deusa Cesconeti e Jean Eduardo Glazar Departamento de Ciência da Computação Faculdade de Aracruz UNIARACRUZ {dcescone, jean}@fsjb.edu.br RESUMO

Leia mais

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Aula 2 Computação em Nuvem Desafios e Oportunidades A Computação em Nuvem

Leia mais

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Basedos na Web Capítulo 12 Agenda Arquitetura Processos Comunicação Nomeação Sincronização Consistência e Replicação Introdução

Leia mais

Ambientes Visuais. Ambientes Visuais

Ambientes Visuais. Ambientes Visuais Ambientes Visuais Inicialmente, apenas especialistas utilizavam os computadores, sendo que os primeiros desenvolvidos ocupavam grandes áreas e tinham um poder de processamento reduzido. Porém, a contínua

Leia mais

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena Tópicos Motivação e Objetivos LP e SOA Processo ADESE

Leia mais

Consultar Tabelas Administrativas

Consultar Tabelas Administrativas STN Coordenação-Geral de Sistemas e Tecnologia de Informação Sistema Integrado de Administração Financeira do Governo Federal SIAFI Secretaria do Tesouro Nacional STN Documentação de Serviços de Interoperabilidade

Leia mais

Introdução à Informática

Introdução à Informática Introdução à Informática Aula 23 http://www.ic.uff.br/~bianca/introinfo/ Aula 23-07/12/2007 1 Histórico da Internet Início dos anos 60 Um professor do MIT (J.C.R. Licklider) propõe a idéia de uma Rede

Leia mais

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

PROGRAMA DE MBA em Gestão e Engenharia do Produto. O Produto Internet e suas Aplicações Universidade de São Paulo Escola Politécnica Programa de Educação Continuada em Engenharia PROGRAMA DE MBA em Gestão e Engenharia do Produto O Produto Internet e suas Aplicações Tecnologias de Informação

Leia mais

Processos (Threads,Virtualização e Migração de Código)

Processos (Threads,Virtualização e Migração de Código) Processos (Threads,Virtualização e Migração de Código) Roteiro Processos Threads Virtualização Migração de Código O que é um processo?! Processos são programas em execução. Processo Processo Processo tem

Leia mais

INFRAESTRUTURA DE TI E TECNOLOGIAS EMERGENTES

INFRAESTRUTURA DE TI E TECNOLOGIAS EMERGENTES Sistema de Informação e Tecnologia FEQ 0411 Prof Luciel Henrique de Oliveira luciel@uol.com.br Capítulo 5 INFRAESTRUTURA DE TI E TECNOLOGIAS EMERGENTES PRADO, Edmir P.V.; SOUZA, Cesar A. de. (org). Fundamentos

Leia mais

Manual de Integração WebService

Manual de Integração WebService Manual de Integração WebService Sumário 1. O que é a Integração WebService? 2. Envio Simples 3. Consultar Status da Mensagem 3.1 Consultar Mensagens Recebidas 4. Tecnologia do WebService Facilita 1. O

Leia mais

Desenvolvendo para WEB

Desenvolvendo para WEB Nível - Básico Desenvolvendo para WEB Por: Evandro Silva Neste nosso primeiro artigo vamos revisar alguns conceitos que envolvem a programação de aplicativos WEB. A ideia aqui é explicarmos a arquitetura

Leia mais

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web; CONCEITOS INICIAIS Agenda A diferença entre páginas Web, Home Page e apresentação Web; O que é necessário para se criar páginas para a Web; Navegadores; O que é site, Host, Provedor e Servidor Web; Protocolos.

Leia mais

2. Gerar um arquivo XSD e referenciá-lo no WSDL, fazendo com que seja possível catalogar o XML Schema no catálogo de XML Schemas da e-ping;

2. Gerar um arquivo XSD e referenciá-lo no WSDL, fazendo com que seja possível catalogar o XML Schema no catálogo de XML Schemas da e-ping; Guia de Orientação para Implementação de Web Services Este documento apresenta alguns direcionamentos referentes à implementação de web services. É uma versão preliminar da construção do Guia de Orientação

Leia mais

Tecnologias da Internet (T) Avaliação de Frequência (v1) 60 minutos * 09.05.2012

Tecnologias da Internet (T) Avaliação de Frequência (v1) 60 minutos * 09.05.2012 1 Este é o seu teste de avaliação de frequência. Leia as perguntas com atenção antes de responder e tenha atenção que algumas perguntas podem ter alíneas de resposta em páginas diferentes. Escreva as suas

Leia mais

Serviços Web: Arquitetura

Serviços Web: Arquitetura Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Objetivos Nesta aula

Leia mais

www.f2b.com.br 18/04/2006 Micropagamento F2b Web Services Web rev 00

www.f2b.com.br 18/04/2006 Micropagamento F2b Web Services Web rev 00 www.f2b.com.br 18/04/2006 Micropagamento F2b Web Services Web rev 00 Controle de Revisões Micropagamento F2b Web Services/Web 18/04/2006 Revisão Data Descrição 00 17/04/2006 Emissão inicial. www.f2b.com.br

Leia mais

Gerenciamento e Interoperabilidade de Redes

Gerenciamento e Interoperabilidade de Redes EN-3610 Gerenciamento e Interoperabilidade de Redes Gerenciamento baseado na Web Prof. João Henrique Kleinschmidt Gerenciamento baseado na Web Web browser Acesso ubíquo Interface Web vs Gerenciamento baseado

Leia mais

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

PROGRAMAÇÃO SERVIDOR WEBSERVICES EM SISTEMAS WEB. Prof. Dr. Daniel Caetano 2012-1 PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB WEBSERVICES Prof. Dr. Daniel Caetano 2012-1 Objetivos Compreender o que é um WebService e sua utilidade Compreender a lógica de funcionamento de um WebService Capacitar

Leia mais

CAPÍTULO 2 ARQUITETURAS CLIENTE-SERVIDOR PARA DISSEMINAÇÃO DE DADOS GEOGRÁFICOS: UMA REVISÃO

CAPÍTULO 2 ARQUITETURAS CLIENTE-SERVIDOR PARA DISSEMINAÇÃO DE DADOS GEOGRÁFICOS: UMA REVISÃO CAPÍTULO 2 ARQUITETURAS CLIENTE-SERVIDOR PARA DISSEMINAÇÃO DE DADOS GEOGRÁFICOS: UMA REVISÃO Existem várias maneiras com as quais dados geográficos podem ser distribuídos pela Internet, todas fundamentadas

Leia mais

Arquitetura de uma Webapp

Arquitetura de uma Webapp Arquitetura de uma Webapp Arquitetura J2EE Containers e componentes MVC: introdução Frederico Costa Guedes Pereira 2006 fredguedespereira@gmail.com Plataforma J2EE World Wide Web e a Economia da Informação

Leia mais

acoplamento Exprime o grau de conexão entre os módulos; os módulos de um software devemapresentar um baixo coeficiente de acoplamento.

acoplamento Exprime o grau de conexão entre os módulos; os módulos de um software devemapresentar um baixo coeficiente de acoplamento. SOA Arquitetura Orientada a Serviços Conceitos e Aplicações Prof. MSc. Edilberto Silva edilms@yahoo.com/ http://edilms.eti.br Gestão de TI Conceitode SOA SOA - Service OrientedArchitecture (Arquitetura

Leia mais

A INTERNET COMO FERRAMENTA AUXILIAR NO ENSINO DE MECÂNICA COMPUTACIONAL

A INTERNET COMO FERRAMENTA AUXILIAR NO ENSINO DE MECÂNICA COMPUTACIONAL A INTERNET COMO FERRAMENTA AUXILIAR NO ENSINO DE MECÂNICA COMPUTACIONAL Manoel Theodoro Fagundes Cunha Sergio Scheer Universidade Federal do Paraná, Setor de Tecnologia, Centro de Estudos de Engenharia

Leia mais

Wireshark. Captura de Protocolos da camada de aplicação. Maicon de Vargas Pereira

Wireshark. Captura de Protocolos da camada de aplicação. Maicon de Vargas Pereira Wireshark Captura de Protocolos da camada de aplicação Maicon de Vargas Pereira Camada de Aplicação Introdução HTTP (Hypertext Transfer Protocol) 2 Introdução Camada de Aplicação Suporta os protocolos

Leia mais

Protocolo HTTP. Palavras-chave: Navegador, aplicativos, web, cliente, servidor.

Protocolo HTTP. Palavras-chave: Navegador, aplicativos, web, cliente, servidor. 1 Protocolo HTTP RODRIGO PREIS BEOCK, Leandro 1 ; DE FREITAS CONSONE, Cibele 2 ; RODRIGUES LIMA, Leandro 3 ; PETRICA, Eder 4 UNIVERSIDADE DO ESTADO DE MATO GROSSO/UNEMAT - COLÍDER 5 RESUMO: O presente

Leia mais

Infra estrutura da Tecnologia da Informação

Infra estrutura da Tecnologia da Informação Infra estrutura da Tecnologia da Informação Capítulo 3 Adaptado do material de apoio ao Livro Sistemas de Informação Gerenciais, 7ª ed., de K. Laudon e J. Laudon, Prentice Hall, 2005 CEA460 Gestão da Informação

Leia mais

O protocolo HTTP. O que é o protocolo HTTP?

O protocolo HTTP. O que é o protocolo HTTP? O protocolo HTTP Você aprenderá: O que é e como funciona o protocolo HTTP. Quais são as partes de um pedido HTTP. Quais são as partes de um a resposta HTTP. IIS - HTTP 1 O que é o protocolo HTTP? Hyper

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 5 Servidores de Aplicação

Leia mais

INTRODUÇÃO AO DESENVOLVIMENTO WEB. PROFª. M.Sc. JULIANA H Q BENACCHIO

INTRODUÇÃO AO DESENVOLVIMENTO WEB. PROFª. M.Sc. JULIANA H Q BENACCHIO INTRODUÇÃO AO DESENVOLVIMENTO WEB PROFª. M.Sc. JULIANA H Q BENACCHIO Internet Internet é o conjunto de diversas redes de computadores que se comunicam entre si Internet não é sinônimo de WWW (World Wide

Leia mais

Potenciais de Aplicação da Metodologia AJAX

Potenciais de Aplicação da Metodologia AJAX SEGeT Simpósio de Excelência em Gestão e Tecnologia 1 Potenciais de Aplicação da Metodologia AJAX Bruno Simões Kleverson Pereira Marcos Santos Eduardo Barrere Associação Educacional Dom Bosco - AEDB RESUMO

Leia mais

Introdução ao Desenvolvimento e Design de Websites

Introdução ao Desenvolvimento e Design de Websites Introdução ao Desenvolvimento e Design de Websites Prof.: Salustiano Rodrigues de Oliveira Email: saluorodrigues@gmail.com Site: www.profsalu.wordpress.com Introdução ao Desenvolvimento e Design de Websites

Leia mais

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

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 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 Conteúdo Introdução... 3 Considerações Iniciais... 4 Privacidade...

Leia mais

UTILIZANDO ICONIX NO DESENVOLVIMENTO DE APLICAÇÕES DELPHI

UTILIZANDO ICONIX NO DESENVOLVIMENTO DE APLICAÇÕES DELPHI UTILIZANDO ICONIX NO DESENVOLVIMENTO DE APLICAÇÕES DELPHI Dr. George SILVA; Dr. Gilbert SILVA; Gabriel GUIMARÃES; Rodrigo MEDEIROS; Tiago ROSSINI; Centro Federal de Educação Tecnológica do Rio Grande do

Leia mais

CAPÍTULO 2. Este capítulo tratará :

CAPÍTULO 2. Este capítulo tratará : 1ª PARTE CAPÍTULO 2 Este capítulo tratará : 1. O que é necessário para se criar páginas para a Web. 2. A diferença entre páginas Web, Home Page e apresentação Web 3. Navegadores 4. O que é site, Host,

Leia mais

Arquitetura da Aplicação Web (Comunicação Cliente/Servidor)

Arquitetura da Aplicação Web (Comunicação Cliente/Servidor) Desenvolvimento de Sistemas Web Arquitetura da Aplicação Web (Comunicação Cliente/Servidor) Prof. Mauro Lopes 1-31 25 Objetivos Iniciaremos aqui o estudo sobre o desenvolvimento de sistemas web usando

Leia mais

FACULDADE DE TECNOLOGIA DE SÃO PAULO WEB SERVICES (SOAP X REST)

FACULDADE DE TECNOLOGIA DE SÃO PAULO WEB SERVICES (SOAP X REST) FACULDADE DE TECNOLOGIA DE SÃO PAULO WEB SERVICES (SOAP X REST) SÃO PAULO 2012 FACULDADE DE TECNOLOGIA DE SÃO PAULO WEB SERVICES (SOAP X REST) Jean Carlos Rosário Lima Monografia apresentada à Faculdade

Leia mais

LEI DE ACESSO A INFORMAÇÃO DIREITO DO CIDADÃO

LEI DE ACESSO A INFORMAÇÃO DIREITO DO CIDADÃO DESCRIÇÃO DO SIGAI O SIGAI (Sistema Integrado de Gestão do Acesso à Informação) é uma solução de software que foi desenvolvida para automatizar os processos administrativos e operacionais visando a atender

Leia mais

BANCO DE DADOS CONTEÚDO INFORMÁTICA. Prof.: MARCIO HOLLWEG mhollweg@terra.com.br BANCO DE DADOS SGBD TABELA CONCEITOS BÁSICOS

BANCO DE DADOS CONTEÚDO INFORMÁTICA. Prof.: MARCIO HOLLWEG mhollweg@terra.com.br BANCO DE DADOS SGBD TABELA CONCEITOS BÁSICOS CONTEÚDO HARDWARE - 2 AULAS SISTEMA OPERACIONAL - 2 AULAS INFORMÁTICA Prof.: MARCIO HOLLWEG mhollweg@terra.com.br APLICATIVOS OFFICE - 3 AULAS INTERNET - 1 AULA REDE - 2 AULA SEGURANÇA - 1 AULA BANCO DE

Leia mais

www.victorpinheiro.jimdo.com www.victorpinheiro.jimdo.com

www.victorpinheiro.jimdo.com www.victorpinheiro.jimdo.com SERVIÇOS DE REDES DE COMPUTADORES Prof. Victor Guimarães Pinheiro/victor.tecnologo@gmail.com www.victorpinheiro.jimdo.com www.victorpinheiro.jimdo.com Modelo TCP/IP É o protocolo mais usado da atualidade

Leia mais

UMA ABORDAGEM SOBRE A INTERFACE DE PROGRAMAÇÃO DE APLICAÇÕES SOCKETS E A IMPLEMENTAÇÃO DE UM SERVIDOR HTTP

UMA ABORDAGEM SOBRE A INTERFACE DE PROGRAMAÇÃO DE APLICAÇÕES SOCKETS E A IMPLEMENTAÇÃO DE UM SERVIDOR HTTP UMA ABORDAGEM SOBRE A INTERFACE DE PROGRAMAÇÃO DE APLICAÇÕES SOCKETS E A IMPLEMENTAÇÃO DE UM SERVIDOR HTTP Alan Jelles Lopes Ibrahim, alan.jelles@hotmail.com Eduardo Machado Real, eduardomreal@uems.br

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos LICENCIATURA EM COMPUTAÇÃO Prof. Adriano Avelar Site: www.adrianoavelar.com Email: eam.avelar@gmail.com Mecanismos de Comunicação Protocolos de Aplicação Mecanismos de comunicação

Leia mais

UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática

UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática 1 Este é o seu teste de avaliação de frequência. Leia as perguntas com atenção antes de responder. Escreva as suas respostas nesta folha de teste, marcando um círculo em volta da opção ou opções que considere

Leia mais

PAULO HENRIQUE CARDOSO DE OLIVEIRA DESENVOLVIMENTO DE UM GERADOR DE API REST SEGUINDO OS PRINCIPAIS PADRÕES DA ARQUITETURA

PAULO HENRIQUE CARDOSO DE OLIVEIRA DESENVOLVIMENTO DE UM GERADOR DE API REST SEGUINDO OS PRINCIPAIS PADRÕES DA ARQUITETURA FUNDAÇÃO DE ENSINO EURÍPIDES SOARES DA ROCHA CENTRO UNIVERSITÁRIO EURÍPIDES DE MARÍLIA UNIVEM CURSO DE DE BACHARELADO EM SISTEMAS DE INFORMAÇÃO PAULO HENRIQUE CARDOSO DE OLIVEIRA DESENVOLVIMENTO DE UM

Leia mais

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

MADALENA PEREIRA DA SILVA SLA Sociedade Lageana de Educação DCET Departamento de Ciências Exatas e Tecnológica MADALENA PEREIRA DA SILVA SLA Sociedade Lageana de Educação DCET Departamento de Ciências Exatas e Tecnológica Desenvolvimento de Web Services com SOAP. 1. Introdução. Com a tecnologia de desenvolvimento

Leia mais

Cliente/Servidor. Conceitos Gerais. Graça Bressan. Graça Bressan/LARC 2000 1

Cliente/Servidor. Conceitos Gerais. Graça Bressan. Graça Bressan/LARC 2000 1 Cliente/Servidor Conceitos Gerais Graça Bressan Graça Bressan/LARC 2000 1 Forças de marketing que conduzem à arquitetura cliente/servidor "Cliente/Servidor é um movimento irresistível que está reformulando

Leia mais

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

Lista de Revisão. 3. Analise a afirmativa a seguir como verdadeira ou falsa e justifique. Lista de Revisão 1. Nos sistemas web, geralmente os usuários apresentam dois problemas típicos, a desorientação e a sobrecarga cognitiva. Discorra sobre esses problemas. 2. Apresente as principais diferenças

Leia mais

Tópicos de Ambiente Web Conceitos Fundamentais Redes de Dados

Tópicos de Ambiente Web Conceitos Fundamentais Redes de Dados Tópicos de Ambiente Web Conceitos Fundamentais Redes de Dados Professora: Sheila Cáceres Computador Dispositivo eletrônico usado para processar guardar e tornar acessível informação. Tópicos de Ambiente

Leia mais

O que é Ajax? Asynchronous JavaScript and XML (JavaScript Assíncrono e XML)

O que é Ajax? Asynchronous JavaScript and XML (JavaScript Assíncrono e XML) Ajax O que é Ajax? Asynchronous JavaScript and XML (JavaScript Assíncrono e XML) É uma técnica para criar páginas web fáceis e dinâmicas; Permite que páginas web sejam atualizadas de forma assíncrona através

Leia mais