Web Services Uma Análise Comparativa
|
|
- Sandra Tuschinski di Azevedo
- 8 Há anos
- Visualizações:
Transcrição
1 Revista das Faculdades Integradas Claretianas N. 5 janeiro/dezembro de 2012 Web Services Uma Análise Comparativa Ricardo Frenedoso Da Silva ricardosilva.hrc@gmail.com Faculdades Integradas Claretianas Pablo Rodrigo Gonçalves prof.pablorodrigo@gmail.com 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=" xmlns:web=" <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=" Revista das Faculdades Integradas Claretianas Nº5 janeiro/dezembro de
5 <S:Body> <ns2:getfuncionariosresponse xmlns:ns2=" <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=" <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
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 maisIntegraçã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 maisUNIVERSIDADE. 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 maisCONCEITOS 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 maisINTEGRAÇÃ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 maisServiç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 maisDOCUMENTAÇÃO DO FRAMEWORK - versão 2.0
DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0 Índice 1 - Objetivo 2 - Descrição do ambiente 2.1. Tecnologias utilizadas 2.2. Estrutura de pastas 2.3. Bibliotecas já incluídas 3 - Características gerais 4 - Criando
Leia maisProgramação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza
Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões Prof. MSc. Hugo Souza Se você precisar manter informações sobre seus usuários enquanto eles navegam pelo seu site, ou até quando eles saem
Leia maisDesenvolvendo 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 mais4. Qual seria o impacto da escolha de uma chave que possua letras repetidas em uma cifra de transposição?
Prova de 2011-02 1. Descreva duas maneiras de estabelecer uma conexão entre processos na camada de transporte sem o conhecimento da porta (TSAP) ao qual o servidor remoto esteja associado. 2. Estabelecer
Leia maisService 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 maisWeb 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 maisIntroduçã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 maiswww.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 maisCOMPARANDO 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 maisREST. 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 maisIntrodução ao Modelos de Duas Camadas Cliente Servidor
Introdução ao Modelos de Duas Camadas Cliente Servidor Desenvolvimento de Sistemas Cliente Servidor Prof. Esp. MBA Heuber G. F. Lima Aula 1 Ciclo de Vida Clássico Aonde estamos? Page 2 Análise O que fizemos
Leia maisWeb 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 maisHistórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial
1 of 14 27/01/2014 17:33 Sistema de Paginação de Esportes Universitários Documento de Arquitetura de Software Versão 1.0 Histórico da Revisão Data 30 de novembro de 1999 Versão Descrição Autor 1.0 Versão
Leia maisCurso 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 maisREST 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 mais3. Explique o motivo pelo qual os protocolos UDP e TCP acrescentam a informação das portas (TSAP) de origem e de destino em seu cabeçalho.
Entregue três questões de cada prova. Prova de 2011-02 1. Descreva duas maneiras de estabelecer uma conexão entre processos na camada de transporte sem o conhecimento da porta (TSAP) ao qual o servidor
Leia maiswww.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 maisWireshark. 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 maisDesenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA
Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA RESUMO Ricardo Della Libera Marzochi A introdução ao Service Component Architecture (SCA) diz respeito ao estudo dos principais fundamentos
Leia maisWeb 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 maisConteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo
Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 02810 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 2. Processo de Software 3. Gerência de
Leia maisSOA 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 maisOrientação a Objetos
1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou
Leia maisCAPÍ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 maisPROGRAMAÇÃ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 maisPersistência e Banco de Dados em Jogos Digitais
Persistência e Banco de Dados em Jogos Digitais Prof. Marcos Francisco Pereira da Silva Especialista em Engenharia de Software Jogos Digitais - Computação Gráfica 1 Agenda Vantagens de usar a abordagem
Leia maisBANCO 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 maisVamos 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 maisCurso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas Prof. Felippe Scheidt IFPR Campus Foz do Iguaçu 2014/2
Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas Prof. Felippe Scheidt IFPR Campus Foz do Iguaçu 2014/2 Objetivo. O objetivo da disciplina é conhecer os princípios da programação de
Leia maisDESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3
DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3 Eduardo Laguna Rubai, Tiago Piperno Bonetti Universidade Paranaense (Unipar) Paranavaí PR- Brasil eduardorubay@gmail.com, bonetti@unipar.br Resumo.
Leia maisIntranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO
Intranets FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO As intranets são redes internas às organizações que usam as tecnologias utilizadas na rede mundial
Leia maisDesenvolvimento de aplicação web com framework JavaServer Faces e Hibernate
Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate Tiago Peres Souza 1, Jaime Willian Dias 1,2 ¹Universidade paranaense (Unipar) Paranavaí PR Brasil tiagop_ti@hotmail.com 2 Universidade
Leia maisDesenvolvendo Websites com PHP
Desenvolvendo Websites com PHP Aprenda a criar Websites dinâmicos e interativos com PHP e bancos de dados Juliano Niederauer 19 Capítulo 1 O que é o PHP? O PHP é uma das linguagens mais utilizadas na Web.
Leia mais1 Sumário... 2. 2 O Easy Chat... 3. 3 Conceitos... 3. 3.1 Perfil... 3. 3.2 Categoria... 3. 4 Instalação... 5. 5 O Aplicativo... 7 5.1 HTML...
1 Sumário 1 Sumário... 2 2 O Easy Chat... 3 3 Conceitos... 3 3.1 Perfil... 3 3.2 Categoria... 3 3.3 Ícone Específico... 4 3.4 Janela Específica... 4 3.5 Ícone Geral... 4 3.6 Janela Geral... 4 4 Instalação...
Leia maisPrática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva
1. O que são Serviços Web (Web Services)? Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva A ideia central dos Web Services parte da antiga necessidade
Leia maisBoas 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 maisServiç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 mais3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio
32 3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio Este capítulo apresenta o framework orientado a aspectos para monitoramento e análise de processos de negócio
Leia maisAnálise e Projeto Orientados por Objetos
Análise e Projeto Orientados por Objetos Aula 02 Análise e Projeto OO Edirlei Soares de Lima Análise A análise modela o problema e consiste das atividades necessárias para entender
Leia maisManual SAGe Versão 1.2 (a partir da versão 12.08.01)
Manual SAGe Versão 1.2 (a partir da versão 12.08.01) Submissão de Relatórios Científicos Sumário Introdução... 2 Elaboração do Relatório Científico... 3 Submissão do Relatório Científico... 14 Operação
Leia maisEngenharia de Software III
Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,
Leia mais3 SERVIÇOS IP. 3.1 Serviços IP e alguns aspectos de segurança
3 SERVIÇOS IP 3.1 Serviços IP e alguns aspectos de segurança Os serviços IP's são suscetíveis a uma variedade de possíveis ataques, desde ataques passivos (como espionagem) até ataques ativos (como a impossibilidade
Leia maisManual de implantação
Manual de implantação O BioPass ID é um serviço online baseado em nuvem que fornece uma poderosa tecnologia multibiométrica (reconhecimento de impressões digitais e face) para os desenvolvedores de qualquer
Leia maisUm 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 maisArquiteturas 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 maisArquitetura dos Sistemas de Informação Distribuídos
Arquitetura dos Sistemas de Informação Distribuídos Quando se projeta um sistema cuja utilização é destinada a ser feita em ambientes do mundo real, projeções devem ser feitas para que o sistema possa
Leia maisSistemas Distribuídos
Sistemas Distribuídos Modelo Cliente-Servidor: Introdução aos tipos de servidores e clientes Prof. MSc. Hugo Souza Iniciando o módulo 03 da primeira unidade, iremos abordar sobre o Modelo Cliente-Servidor
Leia maisSistemas para internet e software livre
Sistemas para internet e software livre Metodologia de modelagem de aplicações WEB Image: FreeDigitalPhotos.net Domínio: Elementos de aplicação WEB Páginas Web Scripts Formulários Applets e ActiveX Motivação
Leia maisSistemas 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 maisSISTEMAS DISTRIBUIDOS
1 2 Caracterização de Sistemas Distribuídos: Os sistemas distribuídos estão em toda parte. A Internet permite que usuários de todo o mundo acessem seus serviços onde quer que possam estar. Cada organização
Leia maisAnexo VI Edital nº 03361/2008. Projeto de Integração das informações de Identificação Civil. 1. Definições de interoperabilidade adotadas pela SENASP
Anexo VI Edital nº 03361/2008 Projeto de Integração das informações de Identificação Civil 1. Definições de interoperabilidade adotadas pela SENASP A Senasp procura adotar os padrões de interoperabilidade
Leia maisDado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:
MC536 Introdução Sumário Conceitos preliminares Funcionalidades Características principais Usuários Vantagens do uso de BDs Tendências mais recentes em SGBDs Algumas desvantagens Modelos de dados Classificação
Leia maisWeb 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 maisUNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação
SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 10 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir os conceitos de coesão e acoplamento. DESENVOLVIMENTO Projetar
Leia maisPROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS -ARQUITETURAS DE APLICAÇÃO MÓVEL. Prof. Angelo Augusto Frozza, M.Sc. http://about.
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS -ARQUITETURAS DE APLICAÇÃO MÓVEL Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza ROTEIRO Introdução Cliente-Servidor Cliente Servidor Tipos de conexão
Leia maisFeature-Driven Development
FDD Feature-Driven Development Descrição dos Processos Requisitos Concepção e Planejamento Mais forma que conteúdo Desenvolver um Modelo Abrangente Construir a Lista de Features Planejar por
Leia maisProgramação Web Prof. Wladimir
Programação Web Prof. Wladimir Linguagem de Script e PHP @wre2008 1 Sumário Introdução; PHP: Introdução. Enviando dados para o servidor HTTP; PHP: Instalação; Formato básico de um programa PHP; Manipulação
Leia maisO 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 maisIntrodução à Tecnologia Web. Tipos de Sites. Profª MSc. Elizabete Munzlinger www.elizabete.com.br
IntroduçãoàTecnologiaWeb TiposdeSites ProfªMSc.ElizabeteMunzlinger www.elizabete.com.br ProfªMSc.ElizabeteMunzlinger www.elizabete.com.br TiposdeSites Índice 1 Sites... 2 2 Tipos de Sites... 2 a) Site
Leia maisEDITORA FERREIRA MP/RJ_EXERCÍCIOS 01
EDITORA FERREIRA MP/RJ NCE EXERCÍCIOS 01 GABARITO COMENTADO 01 Ao se arrastar um arquivo da pasta C:\DADOS para a pasta D:\TEXTOS utilizando se o botão esquerdo do mouse no Windows Explorer: (A) o arquivo
Leia mais3 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 maisProtocolos de Internet (família TCP/IP e WWW) Primeiro Técnico. Prof. Cesar
Primeiro Técnico Protocolos de Internet (família TCP/IP e WWW) Prof. Cesar 1 TCP - Transmission Control Protocol Esse protocolo tem como principal objetivo realizar a comunicação entre aplicações de dois
Leia maisDESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES
DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES Alexandre Egleilton Araújo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil araujo.ale01@gmail.com, jaime@unipar.br Resumo.
Leia maisManual do Painel Administrativo
Manual do Painel Administrativo versão 1.0 Autores César A Miggiolaro Marcos J Lazarin Índice Índice... 2 Figuras... 3 Inicio... 5 Funcionalidades... 7 Analytics... 9 Cidades... 9 Conteúdo... 10 Referência...
Leia mais3 SCS: Sistema de Componentes de Software
3 SCS: Sistema de Componentes de Software O mecanismo para acompanhamento das chamadas remotas se baseia em informações coletadas durante a execução da aplicação. Para a coleta dessas informações é necessário
Leia mais02 - Usando o SiteMaster - Informações importantes
01 - Apresentação do SiteMaster - News Edition O SiteMaster foi desenvolvido para ser um sistema simples de gerenciamento de notícias, instalado em seu próprio computador e com configuração simplificada,
Leia maisSistemas Operacionais
Sistemas Operacionais Aula 6 Estrutura de Sistemas Operacionais Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso
Leia maisConstrutor de sites SoftPixel GUIA RÁPIDO - 1 -
GUIA RÁPIDO - 1 - Sumário Introdução...3 Por que utilizar o Construtor de Sites?...3 Vantagens do Construtor de Sites...3 Conceitos básicos...3 Configuração básica do site...5 Definindo o layout/template
Leia maisLINGUAGEM DE BANCO DE DADOS
LINGUAGEM DE BANCO DE DADOS Gabriela Trevisan Bacharel em Sistemas de Informação Universidade Federal do Rio Grande Pós-Graduanda Formação Pedagógica de Professores (FAQI) Conceito de BD Um banco de dados
Leia maisDefinição de Padrões. Padrões Arquiteturais. Padrões Arquiteturais. Arquiteturas de Referência. Da arquitetura a implementação. Elementos de um Padrão
DCC / ICEx / UFMG Definição de Padrões Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Um padrão é uma descrição do problema e a essência da sua solução Documenta boas soluções para problemas recorrentes
Leia maisMicrosoft Access XP Módulo Um
Microsoft Access XP Módulo Um Neste primeiro módulo de aula do curso completo de Access XP vamos nos dedicar ao estudo de alguns termos relacionados com banco de dados e as principais novidades do novo
Leia maisO 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 maisManual dos Serviços de Interoperabilidade
MINISTÉRIO DO PLANEJAMENTO, ORÇAMENTO E GESTÃO Secretaria de Logística e Tecnologia da Informação Manual dos Serviços de Interoperabilidade Sumário Lista de Figuras...3 Lista de Tabelas...4 Introdução...5
Leia maisINFORMÁTICA FUNDAMENTOS DE INTERNET. Prof. Marcondes Ribeiro Lima
INFORMÁTICA FUNDAMENTOS DE INTERNET Prof. Marcondes Ribeiro Lima Fundamentos de Internet O que é internet? Nome dado a rede mundial de computadores, na verdade a reunião de milhares de redes conectadas
Leia maisSMS Corporativo Manual do Usuário
NEXTEL SMS Corporativo Manual do Usuário Conteúdo 2 CAPÍTU LO 1 Introdução 3 CAPÍTU LO 2 Funcionalidades 1 Copyright Curupira S/A TakeNET INTRODUÇÃO A FERRAMENTA O SMS Corporativo é um serviço criado para
Leia maisOntologia Navegadores_Codigo-Aberto
Ontologia Navegadores_Codigo-Aberto Documento Lista de Termos (versão 1.0) 04-04-2008 report by ontokem Web Tool - ontologies for Knowledge Engineering and Management 1) bookmark: instância da característica
Leia maisBem- Vindo ao manual de instruções do ECO Editor de COnteúdo.
Manual de Instruções ECO Editor de Conteúdo Bem- Vindo ao manual de instruções do ECO Editor de COnteúdo. O ECO é um sistema amigável e intui?vo, mas abaixo você pode?rar eventuais dúvidas e aproveitar
Leia maisSISTEMA DE BANCO DE IMAGENS MANUAL DE USO
SISTEMA DE BANCO DE IMAGENS MANUAL DE USO Versão: BETA Última atualização: 24/06/2012 Índice O sistema de banco de imagens 03 Pesquisa de fotos 04 Pautas e eventos 08 Cadastro de fotos 09 Edição e indexação
Leia maisManual 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 maisMANUAL DE UTILIZAÇÃO
MANUAL DE UTILIZAÇÃO Módulo de operação Ativo Bem vindo à Vorage CRM! Nas próximas paginas apresentaremos o funcionamento da plataforma e ensinaremos como iniciar uma operação básica através do nosso sistema,
Leia maisAUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0
AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 SUMÁRIO 1 Conceitos Básicos... 3 1.1 O que é Software?... 3 1.2 Situações Críticas no desenvolvimento
Leia mais4 O Workflow e a Máquina de Regras
4 O Workflow e a Máquina de Regras O objetivo do workflow e da máquina de regras é definir um conjunto de passos e regras configuráveis. Ao longo de sua execução, um usuário consegue simplificar o seu
Leia maisSMTP, POP, IMAP, DHCP e SNMP. Professor Leonardo Larback
SMTP, POP, IMAP, DHCP e SNMP Professor Leonardo Larback Protocolo SMTP O SMTP (Simple Mail Transfer Protocol) é utilizado no sistema de correio eletrônico da Internet. Utiliza o protocolo TCP na camada
Leia mais1.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 maisManual de Publicaça o no Blog da Aça o TRIBOS nas Trilhas da Cidadania
Manual de Publicaça o no Blog da Aça o TRIBOS nas Trilhas da Cidadania Sumário Objetivos do Blog... 2 Log-in... 3 Esqueci minha senha... 4 Utilizando o Blog... 5 Encontrando seu Blog... 5 Conhecendo o
Leia maisPROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS -HTML 5: ARMAZENAMENTO DE DADOS (CLIENTE) Prof. Angelo Augusto Frozza, M.Sc. http://about.
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS -HTML 5: ARMAZENAMENTO DE DADOS (CLIENTE) Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza ROTEIRO Introdução Compatibilidade Principais características
Leia maisWeb Design. Prof. Felippe
Web Design Prof. Felippe 2015 Sobre a disciplina Fornecer ao aluno subsídios para o projeto e desenvolvimento de interfaces de sistemas Web eficientes, amigáveis e intuitivas. Conceitos fundamentais sobre
Leia maisAnexo I Formulário para Proposta
PLATAFORMA CGI.br Solicitação de Propostas SP Anexo I Formulário para Proposta Data: 05/07/2013 Versão: 1.1 Plataforma CGI.br Solicitação de Propostas - SP Anexo I Formulário para Proposta 1. Estrutura
Leia maisIV. Intercâmbio Eletrônico de Dados (EDI)
IV. Intercâmbio Eletrônico de Dados (EDI) 1. Funcionamento do EDI 2. EDI tradicional X WEB EDI 3. EDI Tradicional 4. WEB EDI Intercâmbio Eletrônico de Dados (EDI) EDI: Electronic Data Interchange Troca
Leia maisProgramação para a Web - I. José Humberto da Silva Soares
Programação para a Web - I José Humberto da Silva Soares Fundamentos de Internet Rede Mundial de Computadores; Fornece serviços, arquivos e informações; Os computadores que têm os recursos são chamados
Leia mais1 http://www.google.com
1 Introdução A computação em grade se caracteriza pelo uso de recursos computacionais distribuídos em várias redes. Os diversos nós contribuem com capacidade de processamento, armazenamento de dados ou
Leia mais