Marcosvsk (discussão | contribs)
Etiqueta: visualeditor
Marcosvsk (discussão | contribs)
 
(4 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 141: Linha 141:


= Software =
= Software =
WebService, como visto no tópico anterior não necessita de programas especificos para sua criação, implementação e utilização porém e possível citar alguns que podem ser usados:
WebService, como visto no tópico anterior não necessita de programas especificos para sua criação, implementação e utilização porém e possível citar alguns que podem ser usados:  
 
B


'''Editor de texto não formatado'''
'''Editor de texto não formatado'''
Linha 151: Linha 149:
'''Visual Studio ALM'''
'''Visual Studio ALM'''


'''Browser de Internet'''  
'''Browser de Internet'''


= Diagrama de Blocos =
= Diagrama de Blocos =
[[Arquivo:Web-service.png|centre|frameless|435x435px|Um cliente faz a requisição ao webservice]]
[[Arquivo:Web-service.jpg|centre|frameless|982x982px]]
<br>
<br>
Na imagem acima podemos identificar os processos sendo realizados de forma semelhante ao que realmente acontece.
A aplicação fica armazenada em um banco de dados e quando chega uma requisição de um cliente, essa aplicação e convertida para XML e enviada ao cliente, tudo por meio do protocolo HTTP.


= Interações com as tecnologias =
= Interações com as tecnologias =
  Incluir links (internos ou externos) temas que tem relação com este, explicando detalhes sobre. Limite de 3 internos e 2 externos.
<br>https://imasters.com.br/artigo/3561/web-services/web-services-para-iniciantes?trace=1519021197&source=single (Aplicação em C)
<br>
 
http://www.devmedia.com.br/desenvolvendo-e-usando-web-services-em-java/37261  (Aplicação em JAVA)
 
Nos links acima você pode aprender com mais detalhes técnicos tudo oque foi dito aqui.


= Informações adicionais =
= Informações adicionais =
  Descrever detalhes a mais sobre esse tema.
Uma característica interessante do WebService é a padronização do XML para troca de informações, fazendo com que a comunicação do mesmo ultrapasse as barreiras dos Firewall impostos para segurança de nossas redes, pois a única coisa que trafega é o XML e usando a porta 80 (Padrão) em conjunto com o já conhecido HTTP e o '''SOAP'''(Sabão), que cuida do transporte dos dados.
<br>


= Referências bibliográficas =
= Referências bibliográficas =
Relacionar aqui as referências bibliográficas no padrão ABNT.  
 
Bases de procura: Artigos, publicações acadêmicas, revistas e sites de fornecedores
<br>http://www.devmedia.com.br/desenvolvendo-e-usando-web-services-em-java/37261
<br>
 
https://imasters.com.br/artigo/3561/web-services/web-services-para-iniciantes?trace=1519021197&source=single
 
https://pt.wikipedia.org/wiki/Web_service
 
http://www.soawebservices.com.br/como-funciona.aspx
 
https://pt.wikipedia.org/wiki/SOAP
 
https://pt.wikipedia.org/wiki/XML

Edição atual tal como às 19h07min de 24 de setembro de 2017

Conceito

WebService é uma solução utilizada na interação de sistemas e na comunicação entre aplicações diferentes. Ele permite que as aplicações recebam e enviem dados que são convertidos para uma linguagem universal, sendo assim, utilizável em qualquer plataforma. Sua maior característica e sua versatilidade e praticidade, não necessitando de muito estudo para se aplicar com sucesso em seu projeto. Existem tecnologias parecidas, como, os browsers da internet, que acessam paginas usando as tecnologias HTTP (Protocolo de transferência de dados) e HTML (Linguagem de programação para web), porém essas tecnologias não são bem sucedidas na comunicação e na integração de aplicações.

Os WebServices funcionam de forma semelhante a um componente que você instala na máquina local. Porém, esse componente pode ficar residente em qualquer máquina, seja ela na sua empresa, na empresa de terceiros até na "China". É isso mesmo, até na "China". Então, usando a internet e o XML (Extensible Markup Language) para troca de informações, você executa um método desse componente que dispara processamento no servidor remoto e você recebe a resposta na sua aplicação.


Metodologia

Para começar a trocar informações por meio do WebService é necessário entender um pouco mais sobre o assunto, para simplificar, imagine que você deseja ir até a casa de um amigo seu, quais são os requisitos para se chegar até lá? primeira coisa e saber se seu amigo tem uma casa (Criação do WebService), depois e necessário conseguir o endereço (URL e URI), para que você possa chegar até lá, vai precisar de um meio de transporte (No caso o protocolo HTTP), também será preciso ter acesso a casa (Cliente), e então está feito, agora vamos para as linguagens técnicas.

Primeiro passo: Nosso WebService será criado no dialeto SOAP, uma prática muito importante de ser seguida é sempre dividirmos a interface de um serviço da sua implementação. A interface de um serviço é chamada de SEI (Service Endpoint Interface) e a implementação é chamada de SIB (Service Implementation Bean). Em nosso exemplo será usado o bloco de notas para criação do nosso código, o objetivo deste serviço é retornar o cálculo de uma das operações invocadas pelo cliente.

Veja no exemplo:

package calc;

import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;

@WebService
@SOAPBinding(style = Style.RPC)
public interface CalculadoraServer {
	@WebMethod float soma(float num1, float num2);
	@WebMethod float subtracao(float num1, float num2);
	@WebMethod float multiplicacao(float num1, float num2);
	@WebMethod float divisao(float num1, float num2);
}

Para quem domina a interface Java (Linguagem usada), alguns termos podem ser novos, como:

@Webservice é uma anotação que avisa ao compilador Java que o arquivo atual corresponde à definição SEI de um serviço Web.

@WebMethod indica que um determinado método corresponde a uma operação de serviço e assim pode ser invocado por um cliente.

@SOAPBinding indica que o serviço utilizará a abordagem SOAP e não Rest que é a outra abordagem suportada.

Agora que a interface está criada e anotada corretamente vamos criar a implementação da interface, ou seja, a nossa SEI onde serão implementados os métodos definidos anteriormente. Para isso precisamos criar a classe CalculadoraServerImpl.java que estará salvo dentro da pasta calc.

Veja no exemplo:

package calc;

import java.util.Date;
import javax.jws.WebService;

@WebService(endpointInterface = "calc.CalculadoraServer")
public class CalculadoraServerImpl implements CalculadoraServer {
		
	public float soma(float num1, float num2) {
		return num1 + num2;
	}
	
	public float subtracao(float num1, float num2) {
		return num1 - num2;
	}

	public float multiplicacao(float num1, float num2) {
		return num1 * num2;
	}

	public float divisao(float num1, float num2) {
		return num1 / num2;
	}

}

Neste pedaço do código podemos encontrar o trecho "@WebService(endpointInterface = "calc.CalculadoraServer")" que tem a função de fazer a ligação entre a SIB e a SEI especificada como "calc.CalculadoraServer".

Já está quase pronto, agora precisaremos compilar nosso arquivo, para isso usaremos o PROMPT do Windows ou o terminal do Linux, para isso você deverá entrar na pasta onde estão seus arquivos e execute o comando:

javac calc/*.java

Se não der erro, e porque deu certo!

Segundo Passo: O segundo passo basea-se em publicar seu serviço, para que possa ser usado por clientes. Para isso vamos criar um codigo, compila-lo com os atributos necessários.

package calc;

import javax.xml.ws.Endpoint;

public class CalculadoraServerPublisher {

	public static void main(String[] args)
	{
		Endpoint.publish("http://127.0.0.1:9876/calc",
		new CalculadoraServerImpl());
	}
}

Neste código percebe-se o uso da classe Endpoint que está disponível na linguagem Java e que nos permite publicar um serviço em um servidor. Para que possamos usa-la deve-se passar como parâmetro o endereço do servidor e a instância do SIB do serviço a ser publicado. Notamos que o serviço é publicado na porta 9876.

Agora e só compilar:

javac calc/CalculadoraServerPublisher.java

E executar:

java calc.CalculadoraServerPublisher

Para verificarmos se tudo foi publicado corretamente basta acessar no browser o link: http://127.0.0.1:9876/calc?wsdl

Se tudo ocorrer perfeitamente poderemos visualizar o WSDL do serviço publicado. Com isso estamos prontos para usar o serviço.

Terceiro passo: A utilização do nosso serviço é ainda mais simples, precisaremos criar um cliente para ter acesso ao WebService:

package calc;

import javax.xml.namespace.QName;
import javax.xml.ws.Service;
import java.net.URL;

class CalculadoraClient {

	public static void main(String args[]) throws Exception {
		URL url = new URL("http://127.0.0.1:9876/calc?wsdl");
		QName qname = new QName("http://calc/","CalculadoraServerImplService");
		Service ws = Service.create(url, qname);
		CalculadoraServer calc = ws.getPort(CalculadoraServer.class);

		System.out.println("Soma (5+1): " + calc.soma(5,1));
		System.out.println("Subtracao (5-1): " + calc.subtracao(5,1));
		System.out.println("Multiplicacao (5*1): " + calc.multiplicacao(5,1));
		System.out.println("Divisao (5/1): " + calc.divisao(5,1));

	}
}

Neste código pode-se observar que necessitamos passar o endereço do WSDL (Linguagem de Descrição de Serviços Web) para a URL (Endereço), indicando onde o WSDL do serviço poderá ser encontrado. Na segunda linha passamos um nome qualificado em XML para QName. Ele indica uma URI (nome) e o nome do serviço. O namespace é fornecido pela WSDL do serviço, e o nome local é a classe SIB acrescida da palava “Service”. O nome local aparece na última seção do documento WSDL (seção service).

Por fim, na linha “Service ws = ws.create(url, qname)“ temos como retorno uma referência a um objeto que pode invocar as operações oferecidas pelo serviço (em portType) e na próxima linha finalmente acessamos a interface de ponto final (endpoint) do calc.CalculadoraServer, que é tipo SEI do serviço, sendo capaz de acessar seus métodos.

Agora é só compilar e ser feliz:

java calc.CalculadoraClient

Com a aplicação temos o resultado:

Soma (5+1): 6.0


Subtracao (5-1): 4.0


Multiplicacao (5*1): 5.0


Divisao (5/1): 5.0

*Na aplicação usamos a linguagem JAVA, porém poderia ter sido usada qualquer outra linguagem, como, C, C++, PERL entre varias outras.

Software

WebService, como visto no tópico anterior não necessita de programas especificos para sua criação, implementação e utilização porém e possível citar alguns que podem ser usados:

Editor de texto não formatado

Java (No caso da nossa aplicação)

Visual Studio ALM

Browser de Internet

Diagrama de Blocos


Na imagem acima podemos identificar os processos sendo realizados de forma semelhante ao que realmente acontece.

A aplicação fica armazenada em um banco de dados e quando chega uma requisição de um cliente, essa aplicação e convertida para XML e enviada ao cliente, tudo por meio do protocolo HTTP.

Interações com as tecnologias


https://imasters.com.br/artigo/3561/web-services/web-services-para-iniciantes?trace=1519021197&source=single (Aplicação em C)

http://www.devmedia.com.br/desenvolvendo-e-usando-web-services-em-java/37261 (Aplicação em JAVA)

Nos links acima você pode aprender com mais detalhes técnicos tudo oque foi dito aqui.

Informações adicionais

Uma característica interessante do WebService é a padronização do XML para troca de informações, fazendo com que a comunicação do mesmo ultrapasse as barreiras dos Firewall impostos para segurança de nossas redes, pois a única coisa que trafega é o XML e usando a porta 80 (Padrão) em conjunto com o já conhecido HTTP e o SOAP(Sabão), que cuida do transporte dos dados.

Referências bibliográficas


http://www.devmedia.com.br/desenvolvendo-e-usando-web-services-em-java/37261

https://imasters.com.br/artigo/3561/web-services/web-services-para-iniciantes?trace=1519021197&source=single

https://pt.wikipedia.org/wiki/Web_service

http://www.soawebservices.com.br/como-funciona.aspx

https://pt.wikipedia.org/wiki/SOAP

https://pt.wikipedia.org/wiki/XML