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 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 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

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

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

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

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

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

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

DOCUMENTAÇÃ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 mais

Programaçã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 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 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

4. Qual seria o impacto da escolha de uma chave que possua letras repetidas em uma cifra de transposição?

4. 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 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

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

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

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

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. 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

Introdução ao Modelos de Duas Camadas Cliente Servidor

Introduçã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 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

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial

Histó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 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

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

3. 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.

3. 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 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

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

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Desenvolvendo 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 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

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Conteú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 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

Orientação a Objetos

Orientaçã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 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

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

Persistência e Banco de Dados em Jogos Digitais

Persistê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 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

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

Curso 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 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 mais

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3

DESENVOLVIMENTO 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 mais

Intranets. 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 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 mais

Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate

Desenvolvimento 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 mais

Desenvolvendo Websites com PHP

Desenvolvendo 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 mais

1 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... 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 mais

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

Prá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 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

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

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

3 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 mais

Análise e Projeto Orientados por Objetos

Aná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 mais

Manual 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) 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 mais

Engenharia de Software III

Engenharia 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 mais

3 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 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 mais

Manual de implantação

Manual 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 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

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

Arquitetura dos Sistemas de Informação Distribuídos

Arquitetura 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 mais

Sistemas Distribuídos

Sistemas 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 mais

Sistemas para internet e software livre

Sistemas 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 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

SISTEMAS DISTRIBUIDOS

SISTEMAS 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 mais

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

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 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 mais

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

Dado: 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 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

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

UNIVERSIDADE 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 mais

PROGRAMAÇÃ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. 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 mais

Feature-Driven Development

Feature-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 mais

Programação Web Prof. Wladimir

Programaçã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 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

Introdução à Tecnologia Web. Tipos de Sites. Profª MSc. Elizabete Munzlinger www.elizabete.com.br

Introduçã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 mais

EDITORA FERREIRA MP/RJ_EXERCÍCIOS 01

EDITORA 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 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

Protocolos de Internet (família TCP/IP e WWW) Primeiro Técnico. Prof. Cesar

Protocolos 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 mais

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

DESENVOLVENDO 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 mais

Manual do Painel Administrativo

Manual 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 mais

3 SCS: Sistema de Componentes de Software

3 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 mais

02 - Usando o SiteMaster - Informações importantes

02 - 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 mais

Sistemas Operacionais

Sistemas 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 mais

Construtor de sites SoftPixel GUIA RÁPIDO - 1 -

Construtor 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 mais

LINGUAGEM DE BANCO DE DADOS

LINGUAGEM 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 mais

Definição de Padrões. Padrões Arquiteturais. Padrões Arquiteturais. Arquiteturas de Referência. Da arquitetura a implementação. Elementos de um Padrão

Definiçã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 mais

Microsoft Access XP Módulo Um

Microsoft 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 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

Manual dos Serviços de Interoperabilidade

Manual 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 mais

INFORMÁTICA FUNDAMENTOS DE INTERNET. Prof. Marcondes Ribeiro Lima

INFORMÁ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 mais

SMS Corporativo Manual do Usuário

SMS 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 mais

Ontologia Navegadores_Codigo-Aberto

Ontologia 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 mais

Bem- Vindo ao manual de instruções do ECO Editor de COnteúdo.

Bem- 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 mais

SISTEMA DE BANCO DE IMAGENS MANUAL DE USO

SISTEMA 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 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

MANUAL DE UTILIZAÇÃO

MANUAL 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 mais

AUTOR: 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 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 mais

4 O Workflow e a Máquina de Regras

4 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 mais

SMTP, POP, IMAP, DHCP e SNMP. Professor Leonardo Larback

SMTP, 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 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

Manual 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 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 mais

PROGRAMAÇÃ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. 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 mais

Web Design. Prof. Felippe

Web 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 mais

Anexo I Formulário para Proposta

Anexo 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 mais

IV. Intercâmbio Eletrônico de Dados (EDI)

IV. 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 mais

Programação para a Web - I. José Humberto da Silva Soares

Programaçã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 mais

1 http://www.google.com

1 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