Aula de hoje: Web Services (Serviços Web) Processamento Paralelo Web Services. Tecnologias básicas da Web. Aplicações na Internet



Documentos relacionados
Web Services. Tópicos. Motivação. Tecnologias Web Service. Passo a passo Business Web Conclusão. Integração de aplicações SOAP, WSDL, UDDI, WSFL

WSDL e UDDI. Pedro Miguel Martins Nunes WSDL. WSDL Exemplo prático Resumo UDDI. Serviço UDDI Estruturas de dados UDDI e WSDL API Resumo

Serviços Web: Arquitetura

UNIVERSIDADE. Sistemas Distribuídos

Web Technologies. Tópicos da apresentação

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

UFG - Instituto de Informática

Web Services. (Introdução)

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas)

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural

Service Oriented Architecture SOA

Web Services utilizando JAX-WS

Microsoft.NET. Desenvolvimento Baseado em Componentes

Sistemas Distribuídos Arquiteturas Middlewares

Princípios de Sistemas Distribuídos. Tecnologias utilizadas em sistemas distribuídos Aula 5

Programação Cliente em Sistemas Web

UNIVERSIDADE. Sistemas Distribuídos

Sistemas Distribuídos

Web Services. José Mocito. Web Services. Tecnologias de Middleware 2004/2005. Universidade de Lisboa. 11 de Novembro, 2004

SOA na Prática Ricardo Limonta

Sistemas Distribuídos. Web Services. Edeyson Andrade Gomes.

5 Everyware: Uma Arquitetura para Aplicações baseadas em serviços utilizando a Web Semântica

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

Introdução a Web Services

Serviços Web: Introdução

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) Sumário. Java 2 Enterprise Edition. J2EE (Java 2 Enterprise Edition)

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

Sistemas Distribuídos

Adriano Reine Bueno Rafael Barros Silva

Sistemas Distribuídos e Paralelos

Computação Orientada a Serviços

Desenvolvimento Web TCC Turma A-1

UFG - Instituto de Informática

LUIZ WAGNER ARAÚJO NUNES

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

JXTA. Alessandro Vasconcelos Ferreira de Lima.

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

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

} Monolíticas Aplicações em um computador centralizado. } Em Rede Aplicações com comunicação em rede. } Distribuídas Comunicação e cooperação em rede

World Wide Web e Aplicações

3 Serviços na Web (Web services)

Web Services SOAP. Introdução

EJB WebService. Caio Nakashima

Sistemas Distribuídos na Web. Pedro Ferreira DI - FCUL

Web Services. Autor: Rômulo Rosa Furtado

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

J2EE TM Java 2 Plataform, Enterprise Edition

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

Unidade 14: Web Services Prof. Daniel Caetano

Sistemas Distribuídos

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

Uma Introdução à Arquitetura CORBA. O Object Request Broker (ORB)

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

Gerenciamento e Interoperabilidade de Redes

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

Java RMI. Alcides Calsavara

Desenvolvimento WEB II. Professora: Kelly de Paula Cunha

Criando Web Services. Palestrante: Daniel Destro do Carmo

CORBA. Common Object Request Broker Architecture. Unicamp. Centro de Computação Rubens Queiroz de Almeida

Projeto: Plataforma de Integração. Data: 01/08/2014

Aula 4. Objetivos. Conteúdo dinâmico na internet.

R/3 e SAP WAS. 8/28/2003 José Alves Marques. R/3 e SAP WAS(2)

SISTEMAS DISTRIBUIDOS

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

UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA. Sistemas Distribuídos

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

Departamento de Engenharia Informática Sistemas Distribuídos. Java Web Services Cookbook

Integre pela Internet com os Web Services OpenEdge

Comunicação entre Processos

Kassius Vargas Prestes

Desenvolvimento de Aplicações Web

A Estrutura de um Web Service

soluções transversais SOLUÇÕES middleware

Introdução à Engenharia da Computação. Tecnologia Web Professor Machado

Argo Navis J931 - Padrões de Design J2EE. Introdução. Objetivos de aprender padrões J2EE. Conhecer padrões para uso na plataforma J2EE

Sistemas Distribuídos

SOA Service Oriented Architecture. Fabiano Oss

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

Enterprise Java Bean. Enterprise JavaBeans

SCC Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

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

Curso de Java. Geração de Páginas WEB. TodososdireitosreservadosKlais

Universidade Federal de Pernambuco Centro de Informática Graduação em Ciência da Computação. Proposta Trabalho de Graduação

Redes de Computadores. Prof. André Y. Kusumoto

Sistemas Distribuídos

Componentes para Computação Distribuída

Estudo comparativo das API s JAX-RPC e JAXM na construção de Web Services

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

ANDERSON LIBERATO DA SILVA

Transcrição:

Processamento Paralelo Web Services Aula de hoje: Web Services (Serviços Web) Evolução da Web para apoiar interação entre componentes Tecnologias para Web Services Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br) 2008/01 - INF02799 Com slides de Luís Ferreira Pires Universidade de Twente Aplicações na Internet Internet evolvou a partir da ARPANet TCP/IP Serviços de aplicação e comunicação desenvolvidos usando TCP/IP Protocolos de aplicação mais antigos SMTP (Simple Mail Transfer Protocol) FTP (File Transfer Protocol) Web HTTP (HyperText Transfer Protocol) (HyperText Markup Language) Tecnologias básicas da Web Browser GET HTTP RESPONSE TCP HTTP Tecnologias básicas da Web HTTP 1.0 One TCP connection for each request HTTP 1.1 Connection persistence Proxies, gateways and tunnels: Intermediaries between clients and servers for load balancing, security, data translations, etc. Security handled using Secure Sockets Layer (SSL) and HTTPS (Secure HTTP) Cookies can be used to store information on the client side (tracking) Benefícios da Web como plataforma aplicações Aplicação do cliente (navegador/browser) de uso geral e relativamente barato (open source no Linux por exemplo) e estável Permitiu e permite o desenvolvimento de milhares de aplicações... Internet banking, Internet shopping, etc. A Web foi projetada originalmente para umentos HTTP foi projetado para isso (uma estrutura de cliente/servidor bem definida, com clientes thin ), mas é claro uma tecnologia de sucesso acaba sendo adotada além dos seus propósitos originais, 1

side extension side extensions Browser JVM Java Applet CGI-URL CGI program Browser CGI = Common Gateway Interface Limitações CGI Application server Escalabilidade limitada Normalmente um processo é iniciado para cada nova requisição A aplicação do cliente é um navegador, que espera receber páginas Ou seja, não é uma aplicação cliente específica, mas está ligada diretamente à apresentação para usuários component runtime environment Application server other middleware databases J2EE Application server Oferece suporte para várias tecnologias de middleware e de servidor (tudo baseado em Java) Java pages Servlets EJB beans CORBA Web services (, ) Web protocols () XML support (DOM and SAX) Java Message Service (JMS) etc. Tecnologias (padrões) básicos XML Extensible Markup Language como linguagem de especificação Protocol para interações 1. Formato de mensagems 2. Padrões interação 3. Bindings para vários protocolos que podem ser usados para a troca de mensagens (HTTP, SMTP) Descrições de serviço ( interfaces ) Naturalmente, o mundo não Java tem suas tecnologias equivalentes (.NET managed objects, ASP,...) 2

Tecnologias (padrões) básicos side Stub specification compiler side Service provider Skeleton Linguagem para especificar as interfaces de serviços Especificações são umentos XML Define que mecanismos devem ser usados para acessar os serviços Já que Web Services podem usar vários protocolos para a troca de mensagems! Define a localização de serviços Web protocol entity messages protocol entity Inclui interfaces e bindings (mecanismos para acessar o serviço) suporta diferentes paradigmas de interação (síncrono e assíncrono) Desenvolvedor do serviço publica uma descrição do serviço para clientes em potencial Como um cliente vê um serviço web? Exemplo getbookprice isbn price message operation BookQuote WS message Types Messages Operations Port Types Bindings Protocol, SMTP Encoding Ports Service interface definition (abstract part) endpoint definition (concrete part) Port type logical collection of operations Operation simple message exchange Message unit of communication XML schemas are used as a type system for common understanding of data also uses the built-in basic data types to define more complex data types 3

Messages have a name and parts (simple or complex data types) Operations can be of four basic types: One-way (asynchronous, client initiated) Notification (asynchronous, service initiated) Request-response (synchronous, client initiated) Solicit-response (synchronous, service initiated) example <?xml version="1.0" encoding="utf-8"?> <definitions name="bookquotews" targetnamespace="http://www.example.com/bookquote" xmlns:mh="http://www.example.com/bookquote" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns="http://schemas.xmlsoap.org/wsdl/"> <!-- Message describes input and output parameters --> <message name="getbookpricerequest"> <part name="isbn" type="xsd:string"/> </message> <message name="getbookpriceresponse"> <part name="price" type="xsd:float"/> </message> example (cont.) <!-- PortType describes abstract interface of Web service --> <porttype name="bookquote"> <operation name="getbookprice"> <input name="isbn" message="mh:getbookpricerequest"/> <output name="price" message="mh:getbookpriceresponse"/> </operation> </porttype> concrete part Bindings message encodings and protocol bindings of a port type Operations in RPC style or ument-style Protocols (e.g., / HTTP, / SMTP) or literal encodings Ports (endpoints) Combine bindings with network address Services Logical groupings of ports example <!-- Binding defines the protocols and encoding styles --> <binding name="bookpricebinding" type="mh:bookquote"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="getbookprice"> <soap:operation style="rpc"/> <input> <soap:body use="literal" namespace="http://www.example.com/bookquote"/> </input> <output> <soap:body use="literal" example <!-- Service defines the address of Web service --> <service name="bookpriceservice"> <port name="bookpriceport" binding="mh:bookpricebinding"> <soap:address location="http://www.example.com/bookquote"/> </port> </service> </definitions> namespace="http://www.example.com/bookquote"/> </output> </operation> </binding> 4

Summary: J2EE Web Services JSE (JAX-RPC service endpoint) Implementação simples com Java package helloservice.endpoint; import javax.jws.webservice; skeleton JAX-RPC servlet container WS @WebService() public class Hello { private String message = new String("Hello, "); J2EE Application server JAX-RPC (stubs) SAAJ () JAXP (XML) stub application XML public void Hello() { @WebMethod() public String sayhello(string name) { return message + name + ".";, vs. CORBA Correspondência com CORBA (não muito precisa) (XML) IDL + IOR GIOP/IIOP? Encoding CDR APIs específicas interfaces POA/ORB/Stubs Web Services x Middleware de Objetos Web services não são substitutos para middleware como um todo Não há ambiente de execução padronizado Não há portabilidade! Só define as regras para interoperabilidade Não assume nada sobre o ambiente de execução! Não há mapeamentos padronizados para linguagens de programação Não há access transparency! Apesar de que várias APIs (como Java), já surgiram para lidar com esse problema Não dá para ter componentes reusáveis; a filosofia é diferente, orientada a serviços Middleware evolution Middleware evolution EJB B2B, Global Enterprise Single Domain(Enterpris e) Complex Application Application Program Integration between domains between application (inside one Inside one domain) application (more than one process) Inside one process CORBA DCO M EAI Tight Coupled Loose 5

Middleware evolution CORBA DCO M EJB Web Services Utilities (UDDI) EAI Conceito de Serviço É oferecido por um provedor para um cliente Diferentes donos ou domínios administrativos Serviço agrega valor para o cliente, gera valor para o provedor (troca de valor) Serviço tem propósito Serviço é oferecido por interfaces ( service delivery channel ) sem revelar organização interna Serviço pode ser compartilhado, reutilizado Serviço pode ser composto (ecossistema de serviços) Serviço pode ser descrito Pode ser descoberto Serviço tem nível de qualidade possivelmente definido em contrato entre provedor e cliente Service-Oriented Computing Software as a Service (SaaS) Platform as a Service (PaaS) http://en.wikipedia.org/wiki/google_app_engine Application containers Infrastructure as a Service (IaaS) Cloud Computing Ausência ou redução de custos fixos Virtualização Economias de escala Perda de controle (também sobre os dados) 2ª Prova Parcial Conceitos de Speed-up, Eficiência Padrões de Projeto para Sistemas Distribuídos Event/Notification Service (5.4, 20.3.2, 20.3.3) The Many Faces of Publish/Subscribe (artigo) Técnicas de Decomposição de Problemas: Capítulo 3 de Ananth Grama, Anshul Gupta, George Karypis, and Vipin Kumar Introduction to Parallel Computing, Addison Wesley, 2003. Decomposição de dados, exploratória, recursiva, especulativa Arquitetura Mestre-Escravo (2º Trabalho) 2º Trabalho http://java.sun.com/s/books/tutorial/essenti al/concurrency/sync.html http://java.sun.com/s/books/tutorial/collecti ons/implementations/index.html Synchronized Methods public class SynchronizedCounter { private int c = 0; public synchronized void increment() { c++; public synchronized void decrement() { c--; public synchronized int value() { return c; 6

Synchronized Statements public class SynchronizedCounter { private int c = 0; public void increment() { synchronized(this) { c++; // fazer outras coisas não sincronizadas aqui public synchronized void decrement() { c--; Roteiro Terça-feira 07/07 Demo-day, obrigatório como parte da avaliação do 2º trabalho Quinta-feira 09/07 2ª prova parcial Terça-feira 14/07 Entrega dos Resultados Quinta-feira 16/07 Prova final 7