O que se espera para o futuro dos Web Services? As tecnologias são respectivamente JSON e REST.

Documentos relacionados
Desenvolvimento de Aplicações Distribuídas

PMR3507 Fábrica digital

Sistemas Distribuídos

Principais conceitos de CORBA

Web Services - Definição. Web Services - Introdução. Universidade Federal de Santa Catarina. DSOOII Web Services

Introdução a Web Services

contidos na descrição do serviço para localizar, contactar e chamar o serviço. A figura mostra os componentes e a interação entre eles.

Invocação Remota. Prof. Leonardo Barreto Campos. 1/29

Prof. Me. Sérgio Carlos Portari Júnior

Common Object Request Broker Architecture

INFORMÁTICA. Instruções: Para responder às questões de números 71 e 72, considere o texto a seguir:

Desenvolvimento de Aplicações Distribuídas

ATIVIDADES PRÁTICAS SUPERVISIONADAS

Sistemas Distribuídos: Conceitos e Projeto RPC e RMI

SOLUÇÃO DE INTEGRAÇÃO PARA O SISPORTOS

SERVIÇOS WEB. Frankley Gustavo F. Mesquita, Tamiris Souza Fonseca. 27 de junho de 2016

Sistemas de Objetos Distribuídos

2ª edição. Daniel Adorno Gomes. Novatec

DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS. Prof. Marcelo de Sá Barbosa

SIST706 Sistemas Distribuídos

Service Oriented Architecture SOA

SISTEMAS DISTRIBUIDOS

GERENCIAMENTO BASEADO NA WEB. Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC.

UNIVERSIDADE. Sistemas Distribuídos

STD29006 Sistemas Distribuídos

Web Services. Professor: Ricardo Luis dos Santos IFSUL Campus Sapucaia do Sul

Arquitetura e Objetos Distribuídos em CORBA. Aula 3. Especificações OMA Object Web

Plataformas de Distribuição de Objetos

Comentários: Desenvolvimento de Sistemas Rogério Araújo

Livro 10 Gerenciamento de Projetos com PMI SOA

Sistemas Distribuídos CORBA. Edeyson Andrade Gomes.

Web Services REST. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo

EA975 - Laboratório de Engenharia de Software

LEIC/LERC 2007/08 Exame de Época Especial de Sistemas Distribuídos

Vamos fazer um pequeno experimento

Web Services. Tópicos. Introdução (1/3) CONTEXTO HISTÓRICO WEB SERVICES Conclusões

Arquitetura da World Wide Web. WWW: Histórico. WWW: Usos. WWW: Histórico. WWW Tecnologias Fundamentais. Comércio Eletrônico na WWW

Sistemas Distribuídos. Visão Geral Expandida

Objetos e Componentes Distribuídos: EJB e CORBA

PROTÓTIPO DE UM SISTEMA DE IMPORTAÇÃO PARA UMA AGÊNCIA DE TRANSPORTES INTERNACIONAIS

Web Services. Sistemas Distribuídos Marcos Costa

Serviços Web: Arquitetura

INTEGRAÇÃO DE UMA REDE DE SENSORES SEM FIO COM A WEB UTILIZANDO UMA ARQUITETURA ORIENTADA A SERVIÇO

Programação Distribuída. Metas de um Sistema Distribuído

Projeto. Observatório Nacional de Clima e Saúde

Sistemas Distribuídos

Sistemas distribuídos. Prof. Emiliano Monteiro

Web Services. (Introdução)

Webservices LEANDRO MENDES FERREIRA

Engenharia de Software Orientada a Serviços

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

Programação Cliente em Sistemas Web

Serviços para a Web Semântica

Java RMI. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo

Sistemas Distribuídos

O que é um sistema distribuído?

por parte dos usuários dos sistemas de computação se tornou menos necessária e a popularidade desse tipo de linguagem diminuiu. Mais recentemente, a

Microsoft.NET. Desenvolvimento Baseado em Componentes

>>> RESTful API >>> Com Node.js e Restify. Name: Anderson Pimentel Date: 19 de Março de

O Processo da Descoberta de um Serviço: Discovery

Informática Parte 26 Prof. Márcio Hunecke

Comunicação entre Processos

Análise comparativa entre as especificações de objetos distribuídos DCOM e CORBA

RPC e RMI. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo

Estruturas de Sistemas Operacionais

M V C, J S O N E X M L P R O F. M E. H É L I O E S P E R I D I Ã O

Aula 12 -QS -Engenharia de SW Orientada a Serviço

Firewall - Inspeção com estado. (Stateful Inspection)

3 Trabalhos relacionados

Sistemas Operacionais II

Características de Sistemas Distribuídos

Desenvolvimento Web II

3 A Infra-estrutura CSBase

Informática UFRGS. Programação com Objetos Distribuídos (C. Geyer) Java Comunicação 1

IBM WebSphere MQ. Introdução

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

Sistemas Distribuídos

INTRODUÇÃO. RPC x RMI

REST. Eduardo Ferreira dos Santos. Outubro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 35

Introdução ao Desenvolvimento de

Desenvolvimento Web. Introdução Geral. Prof. Vicente Paulo de Camargo

Introdução a Web Services

Estilo: BlackBoard. BlackBoard = repositório de dados compartilhados

Protótipo de Protocolo de Aplicação para Troca de Documentos da Área Extra Judicial. Acadêmico: Fabrício Bento Orientador: Paulo Fernando da Silva

Aula 23: Web Services (I)

Sistemas Distribuídos Arquiteturas Middlewares

Arquitectura de Sistemas Paralelos e Distribuídos Modelos de Sistemas

Características de Sistemas Distribuídos

Desenvolvimento de Sistemas Corporativos Aula 1.3 Motivação de DSC Visão geral de Arquiteturas. Prof. Bruno Moreno

Programando sistemas distribuídos com objetos distribuídos na rede TCP/IP. Prof. Me. Sérgio Carlos Portari Júnior

Protocolos de Aplicação WAP

Redes de Computadores e Aplicações Camada de aplicação IGOR ALVES

Camada de Aplicação da Arquitetura TCP/IP

Repositórios de Implementações e Binding. Chamada Remota de Métodos

Transcrição:

Web Services Por que os Web Services são atrativos para a integração de sistemas? Pois os Web services são componentes que possibilitam que as aplicações se comuniquem utilizando protocolos padrão da internet (XML, por exemplo). Os recursos de uma aplicação ficam disponíveis de forma normalizada mesmo que as aplicações estejam em ambientes diferentes descritas em diferentes linguagens. O que se espera para o futuro dos Web Services? Acredita- se que no futuro as empresas poderão publicar seus Web services em diretórios públicos utilizando protocolos padrão, de onde poderão ser vendidos como serviços para outras empresas, instituições ou usuários comuns que poderão combinar esses serviços de forma a prover outros serviços. Contudo, algumas modificações no modelo atual devem ser realizadas para que isso aconteça. Quais são as tecnologias mais usadas atualmente no lugar de XML/SOAP em Web Services? Ainda faz sentido utilizar a WSDL quando se substitui XML/SOAP por essas alternativas? As tecnologias são respectivamente JSON e REST. O uso da WSDL ainda faz sentido, uma vez que essa descreve as funcionalidades e interface do serviço, e a maneira como são requisitados os serviços e passados os dados é independente da interface, podendo ser especificada (a partir da versão 2.0 a definição da WSDL passa a permitir o uso dos quatro verbos do HTTP e fica mais adequada para a descrição de serviços REST). O uso de XML é, no entanto, ainda o mais comum quando se utiliza WSDL. Com o descritor em WSDL de um Web Service é possível gerar automaticamente código que fornece ou que utiliza os serviços descritos. O caminho inverso, isto é, a criação automática de um descritor em WSDL também é possível a partir do código de um servidor e da marcação das funções que deverão ser disponibilizadas (como com a marcação remote em Java).

Cite vantagens do uso de JSON e REST no lugar da pilha XML/SOAP/WSDL/UDDI. Ambos são mais leves, permitindo maior eficiência. JSON é código JavaScript válido, e está frequentemente mais próximo de objetos de linguagens de programação do que XML (que oferece mais funcionalidades, como namespaces, que por sua vez exigem parsers mais complexos, o que torna o processamento mais lento). Isso torna o uso de JSON favorável à eficiência do Web Service quando este não fizer proveito das capacidades a mais providas pelo XML. REST se baseia no uso dos verbos de HTTP (GET, POST, PUT e DELETE) para comunicação entre cliente e servidor, sendo os Web Services acessados através de URIs, o que utiliza automaticamente facilidades providas pelo protocolo HTTP, como caching (o que é mais útil quando o serviço não depende de consultas anteriores, i.e. é stateless). É mais simples, sendo vantajoso quando funcionalidades específicas do SOAP não são necessárias. O que são Web Services? É uma solução que procura resolver o problema de comunicação entre aplicações que empregam diferentes tecnologias. Temos um web service quando disponibilizamos um serviço de aplicação por meio de uma rede de forma normalizada, onde a troca de dados é feita no formato XML. A ideia é oferecer uma funcionalidade no estilo black box que segue o padrão para recebimento de dados, executando assim a operação requisitada e então enviando dados de retorno, caso seja necessário, no mesmo padrão. A criação desse padrão dá a ideia de uma linguagem universal para a comunicação entre serviços e aplicações, onde todos os dados transmitidos usando essa tecnologia são convertidos para o mesmo formato. Quem define os padrões de Web Services? Os dois maiores responsáveis são o W3C e a OASIS. Entretanto, grandes empresas como Microsoft e IBM apoiam e tem certa influência sobre o destino da tecnologia. Como funciona a segurança em Web Services? Contrariando a premissa inicial de ser um padrão universal de interoperabilidade, não existe um consenso entre as empresas e cada uma acaba optando por uma

implementação. No entanto, existem dois tipos básicos de mecanismos de segurança: O primeiro deles é no nível da mensagem, onde extensões para o padrão SOAP são usadas para prover autenticação, integridade e privacidade para as mensagens, adicionando tags extras e portanto um overhead de comunicação e processamento para cada mensagem. Outra solução é utilizar uma camada extra de rede que provê segurança para os principais protocolos utilizados como HTTP, SMTP etc. Essa camada, chamada de TSL - Transport Layer Security, baseia- se em criptografia e chaves públicas para troca de mensagens. Comparação de Desempenho: Devido às suas características de interoperabilidade, web services geralmente são mais lentos que o JAVA RMI. Além disso, padrões de extensão de segurança SOAP como o WS- Security deixam a troca de mensagens ainda mais lenta. A tabela abaixo mostra uma comparação entre as tecnologias: Corba O que é necessário implementar em uma linguagem para que ela suporte a arquitetura CORBA? Um compilador de IDL que gere código nativo para a linguagem. Um ORB para ser o servo, falar com outros ORBs e repassar as chamadas de métodos para os objetos. Uma implementação do protocolo IIOP nos ORBs. Qual o problema que ambos RMI e CORBA enfrentam na hora de fazer a comunicação? Qual a solução? Ambos usam protocolos construídos sobre o TCP e que geram tráfego em portas arbitrárias, que geralmente estão bloqueadas por firewalls em sistemas empresariais (onde estas tecnologias são geralmente usadas). Soluções possíveis

são a configuração do firewall, o tunelamento do tráfego por outro protocolo (provavelmente HTTP usando a porta 80) ou a troca de tecnologias. Para falar a verdade este é um dos aspectos mais citados para exemplificar as vantagens dos Web Services, que usam tráfego HTTP por padrão. Qual é a função do POA (Portable Object Adapter) em CORBA? Ele é um módulo entre um ORB e um servo, que disponibiliza uma interface consistente para o ORB interagir com o código do servo. Dentre suas possíveis funções estão gerar referências de objetos, demultiplexar chamadas a servos especificos, ativar e desativar servos e invocar operações em servos. Porque é necessário a utilização de IR (Interface Repository) em CORBA? O IR é uma fonte de dados das interfaces de cada objeto que um ORB reconhece. Essas interfaces são obtidas dinamicamente pelo ORB para que ele possa manipular os objetos registrados nele. Qual a principal desvantagem que RMI apresenta em relação a CORBA? Remote method invocation é uma poderosa inovação da linguagem java pois permite que os programadores invoquem métodos de objetos remotos, isto é, ao invés de usar chamadas de procedimentos onde parâmetros de tipos primitivos (ou estruturas destes tipos) devem ser passados, objetos inteiros podem ser passados como parâmetro. Desta maneira é possível que uma JVM remota obtenha objetos sem conhecer a classe da qual são instâncias, possibilitando assim, que código novo seja passado remotamente. Porém, como RMI é dependente de máquinas virtuais, ao interagir com sistemas legados como C, C++, FORTRAN, etc., problemas podem ocorrer. Qual a principal desvantagem que CORBA apresenta em relação a RMI? O problema visto no caso do RMI pode ser contornado através da Common Object Request Broker Architecture. Esta tecnologia de sistema distribuido permite a

portabilidade entre diferentes linguagens, desde que para cada uma das linguagens exista uma interface escrita em IDL (Interface Definition Language). Porém, CORBA é menos poderosa que RMI; somente tipos primitivos e estruturas destes tipos podem ser passadas remotamente, e isto implica no fato de que código novo não pode ser passado. Como funcionam transações no contexto de Web Services? Transações em web services não necessariamente aderem a todas propriedades ACID (Atomicidade, Consistência, Isolamento e Durabilidade). Para seguir essas propriedades os seguintes cenários seriam encontrados: Recursos utilizados pelos Web Services seriam bloqeuados por um período indefinido de tempo, até que todos os participantes da transação concluíssem; Um gerenciador de transações centralizado controlaria os serviços e coordenaria suas ações. Com isso, o serviço perderia o controle sobre seus recursos. Estes cenários deixam os Web Services expostos a ataques DoS. Para superar esses problemas, existem várias propostas de controle de transação. O OASIS propõe 3 especificações inter- relacionadas: WS- Coordination - especifica o protocolo para serviços que criam um contexto de coordenação, identificando unicamente as atividades e registrando seus participantes; WS- AtomicTransaction - especifica protocolos concretos para transações atômicas distribuídas, usando two- phase commit (ACID); WS- BusinessActivity - especifica um protocolo para atividades de longa duração, usando um protocolo de compensação. Para transações do tipo Business Activity, as ações são realizadas pro cada web service participante. Em caso de rollback, operações de compensação são disparadas para desfazer as atividades. A decisão de commit ou rollback fica associada à lógica do negócio, tornando desnecessário que todos os participantes completem suas atividades com sucesso.

Qual a pilha de protocolos utilizadas em Web Services? A pilha de protocolos permite variações e está em constante evolução. Existem 4 camadas principais: Transporte: responsável por transportar mensagens entre aplicações. Protocolos: HTTP, SMTP, FTP e outros. Mensagem: responsável por codificar as mensagens em um formato XML comum. Protoclos: SOAP e XML- RPC Descrição: responsável por descrever a interface do Web Sevrice. Protocolo: WSDL. Descoberta: responsável por centralizar a informação de web services, possiblitando a publicação e descoberta de serviços disponíveis na rede. Protocolo: UDDI.