55
Serviços Web no Java Sistemas Distribuídos e Paralelos

Serviços Web no Java - sdpisutic.files.wordpress.com · java-client-for-consuming.html ... Os serviços podem interconectar-se através da rede. Em uma arquitetura orientada a serviços,

Embed Size (px)

Citation preview

Serviços Web no JavaSistemas Distribuídos e Paralelos

Objetivo

● Caracterizar o emprego de Serviços Web no Java

Referências

● http://www.hubberspot.com/2013/08/how-to-create-java-client-for-consuming.html

● http://www.jtech.ua.es/j2ee/publico/servc-web-2012-13/sesion02-apuntes.html

● https://ingsistele.wordpress.com/2012/03/02/creacion-de-un-webservice-en-java/

Introdução

Um serviço Web (em inglês, Web service) é uma peça de software que utiliza um conjunto de protocolos e padrões que servem para intercambiar dados entre programas.

Distintas aplicações de software desenvolvidas em linguagens de programação diferentes, e executadas sobre qualquer plataforma, podem utilizar os serviços Web para intercambiar dados em redes de ordenadores como Internet.

Introdução

Os Web services  representan a revolução informática da nova geração de aplicações que trabalham de forma colaborativa nas quais esta software distribuído em diferentes servidores; desta maneira se obtém a criação de grandes aplicações que podem funcionar em uma grande multidão de  dispositivos, entre os que se encontram os telefonos moviles,  os tabletes e computadores pessoais, todos eles interactuando com um servidor.

Características dos Serviços Web

● Um serviço deve poder ser acessível através da Web. Para isso deve utilizar protocolos de transporte padrões como HTTP, e codificar as mensagens em uma linguagem padrão que possa conhecer qualquer cliente que queira utilizar o serviço.

● Um serviço deve conter uma descrição de si mesmo. Desta forma, uma aplicação poderá saber qual é a função de um determinado Serviço Web, e qual é seu interfaz, de maneira que possa ser utilizado de forma automática por qualquer aplicação, sem a intervenção do usuário.

Características dos Serviços Web

● Deve poder ser localizado. Deveremos ter algum mecanismo que nos permita encontrar um Serviço Web que realize uma determinada função. Desta forma teremos a possibilidade de que uma aplicação localize o serviço que necessite de forma automática, sem ter que conhecê-lo previamente o usuário.

Tipos de serviços Web

A nível conceitual, um serviço é um componente software proporcionado através de um endpoint acessível através da rede.

Os serviços produtores e consumidores utilizam mensagens para intercambiar informação de invocações de petição e resposta em forma de documentos auto-contidos que fazem muito poucos encargos sobre as capacidades tecnológicas de cada um dos receptores.

Definição de endpoint

Os serviços podem interconectar-se através da rede.

Em uma arquitetura orientada a serviços, qualquer interação ponto a ponto implica dois endpoints: um que proporciona um serviço, e outro do consome.

Quer dizer, que um endpoint é cada um dos "elementos", em nosso caso referimos a serviços, que se situam em ambos os "extremos" da rede que serve de canal de comunicação entre eles.

Quando falamos de serviços Web, um endpoint se especifica mediante uma URI.

Tipos de serviços Web

A nível técnico, os serviços podem implementar-se de várias formas.

Neste sentido, podemos distinguir dois tipos de serviços Web: ● denominado-los serviços Web "grandes" ("big" Web

Services), chamaremo-los serviços Web SOAP, ● e serviços Web RESTful.

Serviços Web SOAP

Os serviços Web SOAP, ou serviços Web "big", utilizam mensagens XML para intercomunicar-se que seguem o padrão SOAP (Simples Object Access Protocol), uma linguagem XML que define a arquitetura e formato das mensagens.

Ditos sistemas normalmente contêm uma descrição legível pela máquina da descrição das operações oferecidas pelo serviço, escrita no WSDL (Web Services Description Language), que é uma linguagem apoiada no XML para definir as interfaces sintaticamente

Serviços Web SOAP

O formato de mensagem SOAP e a linguagem de definição de interfaces WSDL se estendeu o bastante, e muitas ferramentas de desenvolvimento, por exemplo Netbeans, podem reduzir a complexidade de desenvolver aplicações de serviços Web.

Serviços Web SOAP

O desenho de um serviço apoiado no SOAP deve estabelecer um contrato formal para descrever a interfaz que oferece o serviço Web.

WSDL pode utilizar-se para descrever os detalhes do contrato, que podem incluir mensagens, operações, bindings, e a localização do serviço Web.

Também devem se ter em conta os requerimentos não funcionais, como por exemplo os transações, necessidade de manter o estado (addressing), segurança e coordenação

Serviços Web RESTful

Os serviços Web RESTful (Representational State Transfer Web Services) são adequados para cenários de integração básicos ad-hoc.

Ditos serviços Web se revistam integrar melhor com o HTTP que os serviços apoiado no SOAP, já que não requerem mensagens XML ou definciones do serviço em forma de fichário WSDL

Serviços Web RESTful

Os serviços Web REST utilizam padrões muito conhecidos como HTTP, SML, URI, MIME, e têm uma infra-estrutura "ligeira" que permite que os serviços se construam utilizando ferramentas de forma mínima.

Graças a isso, o desenvolvimento de serviços RESTful é barato e tem muito poucas "barreiras" para sua adoção.

Arquitetura dos Serviços Web

Os serviços Web apresentam uma arquitetura orientada a serviços que permite criar uma definição abstrata de um serviço, proporcionar uma implementação concreta de dito serviço, publicar e localizar um serviço, selecionar um instância de um serviço, e utilizar dito serviço com uma elevada interoperabilidad.

É possível separar a implementação do serviço Web e seu uso por parte de um cliente.

Também é possível separar a implementação do serviço e de cliente.

Arquitetura dos Serviços Web

As implementações concretas do serviço podem separar-se a nível de lógica e transporte.

A seguinte figura mostra o diagrama de uma arquitetura orientada a serviços.

Arquitetura dos Serviços Web

Arquitetura dos Serviços Web

O fornecedor do serviço define a descrição abstrata de dito serviço utilizando uma linguagem de descrição de Serviços Web (WSDL: Web Services Description Language).

A seguir se cria um Serviço concreto a partir da descrição abstrata do serviço, produzindo assim uma descrição concreta do serviço no WSDL.

WSDL

Em ocasiões lido como como wisdel são as siglas da Web Services Description Language, um formato XML que se utiliza para descrever serviços Web. WSDL descreve a interfaz pública aos serviços Web.

Está apoiado no XML e descreve a forma de comunicação, quer dizer, os requisitos do protocolo e os formatos das mensagens necessárias para interactuar com os serviços listrados em seu catálogo.

WSDL

Arquitetura dos Serviços Web

Dita descrição concreta pode então publicar-se em um serviço de registro como por exemplo UDDI (Universal Description, Descovery and Integration).

Um cliente de um serviço pode utilizar um serviço de registro para localizar uma descrição de um serviço, a partir da qual poderá selecionar e utilizar uma implementação concreta de dito serviço.

Arquitetura dos Serviços Web

A descrição abstrata se define em um documento WSDL como um PortType.

Uma instância concreta de um Serviço se define mediante um elemento port de um WSDL (consistente a sua vez em uma combinação de um PortType, um binding de codificação e transporte, mais um endereço).

Um conjunto de ports definem um elemento service de um WSDL.

Serviços Web SOAP

Um serviço Web é um componente com as seguintes características: ● Implementa os métodos de uma interfaz descrita

mediante um WSDL. Ditos métodos se implementam utilizando um EJB de sessão de tipo Stateless/Singleton ou um componente Web JAX-WS

● Um serviço Web pode ter publicada seu interfaz em um ou mais "registros" durante seu desdobramento

Serviços Web SOAP

Um serviço Web é um componente com as seguintes características: ● A implementação de um Serviço Web, a qual utiliza somente a

funcionalidade descrita por sua especificação, pode desdobrar-se em qualquer servidor de aplicações que cumpre com as especificações Java EE

● Os serviços requeridos em tempo de execução (run-fraude), tais como atributos de segurança, separam-se da implementação do serviço. Utilizarão-se ferramentas adicionais que podem definir ditos requerimentos durante o ensamblado ou desdobramento

● Um contêiner atua como mediador para acessar ao serviço

Tecnologias básicas para Serviços WebTemos uma série de tecnologias, todas elas apoiadas no XML, que são fundamentais para o desenvolvimento de Serviços Web.

Estas tecnologias são independentes tanto do SOU como da linguagem de programação utilizado para implementar ditos serviços.

portanto, serão utilizadas para qualquer Serviço Web, independentemente da plataforma sobre a que construamos ditos serviços (como pode ser J2EE ou .NET).

Tecnologias básicas para Serviços WebOs protocolos utilizados nos Serviços Web se organizam em uma série de capas:● Transporte de serviços: É a capa que se encarrega de

transportar as mensagens entre aplicações. Normalmente se utiliza o protocolo HTTP para este transporte, embora os serviços Web podem viajar mediante outros protocolos de transferência de hipertexto como SMTP, FTP ou BEEP.

Tecnologias básicas para Serviços WebOs protocolos utilizados nos Serviços Web se organizam em uma série de capas:● Mensajería XML: É a capa responsável por codificar as

mensagens no XML de forma que possam ser entendidos por qualquer aplicação. Pode implementar os protocolos XML-RPC ou SOAP.

● Descrição de serviços: encarrega-se de definir a interfaz pública de um determinado serviço. Está definição se realiza mediante WSDL.

Tecnologias básicas para Serviços WebOs protocolos utilizados nos Serviços Web se organizam em uma série de capas:● Localização de serviços: encarrega-se do registro

centralizado de serviços, permitindo que estes sejam anunciados e localizados. Para isso se utiliza o protocolo UDDI.

SOAP (Simple Object Access Protocol)

O protocolo  estándar que se utiliza para enviar a informação, é SOAP. Este define o formato do "envelope" que se intercambia entre cliente e serviço, assim como as convenções para representar invocações e respostas Estas mensagens são transmitidas em formato XML, montado sobre o HTTP.

Bem, isto é quão básico terá que ter claro para começar a criar um Web service, existe muita teoria e informação que se poderia consultar de ser necessário, mas neste exemplo só terá que ter presente o que citamos.

SOAP (Simple Object Access Protocol)Para facilitar mas a compreensão do que vamos realizar diremos que (em términos "coloquiais" de programação) um webservice é aquele programa que esta compreendido por funções ou métodos que recebem parâmetros ou valores, processam-nos e arrojam uma saída.

SOAP (Simple Object Access Protocol)Um exemplo de mensagem SOAP é o seguinte:

Exemplo Servidor

Primeiro, criamos um novo projeto de netbeans, de tipo Java Web Application, tal e como se pode ver na seguinte imagem:

Exemplo Servidor

Logo, definimos o nome de nosso projeto

Exemplo Servidor

Agora pressionamos o botão seguinte e escolhemos o servidor Apache Tomcat e pressionamos o botão seguinte tal e como se observa na seguinte imagem

Exemplo Servidor

Voltamos a dar clique sobre o botão seguinte e na janela que aparece fazemos clique em terminar sem escolher nenhum framework.

Exemplo Servidor

Listo agora deve nos aparecer a seguinte janela que corresponde a pagina index do projeto,

Exemplo Servidor

Listo agora deve nos aparecer a seguinte janela que corresponde a pagina index do projeto,

entretanto dita pagina não sera mostrada já que não sera necessário visualizar nenhuma informacion hTML, todo o processo sera codificado em outro lugar.

Exemplo Servidor

Agora fazemos clique direito sobre nosso Projeto (Exemplo _ Serviço _ Web) e na lista que aparece selecionamos a opção novo e na sub-lista escolhemos Pacote Java, tal e como se observa na imagem

Exemplo Servidor

Agora se, podemos criar o webservice como tal, para isso fazemos novamente clique direito sobre o projeto e na lista que aparece, escolhemos a opção novo e na sub-lista Web Service ... tal e como podemos ver:

Exemplo Servidor

logo se abrirá uma nova janela onde lhe colocaremos nome a nossa Web service (proceso_wc) e selecionamos o pacote que antes criamos:

Exemplo Servidor

e preparado, já esta criado nossa Web service (esvazio), aparecerá-nos a seguinte janela:

Exemplo Servidor

el error que presenta o la linea subrayada es porque aun no se ha definido ninguna funcion o metodo dentro de la clase, todo web service debe tener por lo menos un metodo definido.

Exemplo Servidor

Bem, Até aqui já esta preparado nosso serviço Web, chego a hora de prová-lo, para isso devemos fazer o seguinte.

Pressionar clique direito sobre o projeto Ejemplo_servicio_web e no menu que aparece selecionamos a opção Limpar e construir, como se observa na imagem:

Exemplo Servidor

Logo voltamos a pressionar clique direito sobre o projeto e selecionamos a opção deploy para que o projeto se desdobramento, quer dizer se compele e se coloque em funcionamento:

Exemplo Servidor

A seguir nos dirigimos à pasta webservice do diretório de nosso projeto e pressionamos clique direito sobre o arquivo proceso_wc e na lista que aparece selecionamos a opção Test Web service como se vê na imagem:

Exemplo Servidor

preparado dessa maneira fica em marcha nossa Web service no navegador como veremos a seguir:

Exemplo Cliente

El siguiente paso es crear un cliente, para ello primero creamos un proyecto Java.

Exemplo Cliente

Luego elegimos el asistente para la creación de servicios web.

Exemplo Cliente

New Web Service Client dialog box gets open.

Under WSDL and Client Location , specify the WSDL file location for the CalculatorService Web Service by following options as Project: , Local File: , WSDL URL: , IDE Registered:.

Select WSDL URL and provide the url for the deployed Service WSDL on the localhost.

As we have deployed CalculatorService on the Tomcat Server, here it is pointing at "http://localhost:8080/WebServiceExample/HelloMsg?wsdl", localhost is the ip address for it.

If Web Service is deployed on another server provide the ip address for it on the WSDL url.

Exemplo Cliente

Exemplo Cliente

Logo se gera automaticamente as classes necessárias para consumir dito serviço Web.

Exemplo Cliente

Somente fica implementar a classe principal onde se consuma dito serviço Web.

Exemplo Cliente

Exemplo em execução

Conclusões