Diferència entre revisions de la pàgina «NF1 - Web Services (30h)»

De wikiserver
Dreceres ràpides: navegació, cerca
(Tipus de Serveis Web)
(SOAP Web Services)
Línia 21: Línia 21:
  
 
== SOAP Web Services ==
 
== SOAP Web Services ==
Simple Object Access Protocol (SOAP)és un protocol estàndard per l'0intercanvi de missatges XML. La comunicació entre el client i el servei succeeix ustilitzant missatges XML.
+
Simple Object Access Protocol (SOAP)és un protocol estàndard per l'intercanvi de missatges XML. La comunicació entre el client i el servei succeeix utilitzant missatges XML.
  
 
'''Què és el WSDL?'''
 
'''Què és el WSDL?'''
  
WSDL: Web Service Description Language. És un arxiu XML que descriu els detalls tècnis de com s'implementa un servei web, més especificament la URI, port, nom dels mètodes, els paràmetres i els tipus de dades. Llegint el WSDL poden veure:
+
WSDL: Web Service Description Language. És un arxiu XML que descriu els detalls tècnics de com s'implementa un servei web, més específicament la URI, port, nom dels mètodes, els paràmetres i els tipus de dades. Llegint el WSDL poden veure:
 
*Ports / EndPoint - URL del servei web
 
*Ports / EndPoint - URL del servei web
 
*Format del missatge d'entrada
 
*Format del missatge d'entrada
Línia 32: Línia 32:
 
*El protocol de servei web utilitzat
 
*El protocol de servei web utilitzat
  
 +
<source lang="xml">
 +
<?xml version='1.0' encoding='UTF-8'?><!-- Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.2-hudson-740-. --><!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.2-hudson-740-. --><definitions xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://www.w3.org/ns/ws-policy" xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://ws/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://ws/" name="Hola">
 +
<wsp:Policy wsu:Id="HolaPortBindingPolicy" />
 +
<types>
 +
<xsd:schema>
 +
<xsd:import namespace="http://ws/" schemaLocation="http://localhost:8084/webServiceProject/Hola?xsd=1" />
 +
</xsd:schema>
 +
</types>
 +
<message name="hello">
 +
<part name="parameters" element="tns:hello" />
 +
</message>
 +
<message name="helloResponse">
 +
<part name="parameters" element="tns:helloResponse" />
 +
</message>
 +
<message name="adeu">
 +
<part name="parameters" element="tns:adeu" />
 +
</message>
 +
<message name="adeuResponse">
 +
<part name="parameters" element="tns:adeuResponse" />
 +
</message>
 +
<portType name="Hola">
 +
<operation name="hello">
 +
<input wsam:Action="http://ws/Hola/helloRequest" message="tns:hello" />
 +
<output wsam:Action="http://ws/Hola/helloResponse" message="tns:helloResponse" />
 +
</operation>
 +
<operation name="adeu">
 +
<input wsam:Action="http://ws/Hola/adeuRequest" message="tns:adeu" />
 +
<output wsam:Action="http://ws/Hola/adeuResponse" message="tns:adeuResponse" />
 +
</operation>
 +
</portType>
 +
<binding name="HolaPortBinding" type="tns:Hola">
 +
<wsp:PolicyReference URI="#HolaPortBindingPolicy" />
 +
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
 +
<operation name="hello">
 +
<soap:operation soapAction="" />
 +
<input>
 +
<soap:body use="literal" />
 +
</input>
 +
<output>
 +
<soap:body use="literal" />
 +
</output>
 +
</operation>
 +
<operation name="adeu">
 +
<soap:operation soapAction="" />
 +
<input>
 +
<soap:body use="literal" />
 +
</input>
 +
<output>
 +
<soap:body use="literal" />
 +
</output>
 +
</operation>
 +
</binding>
 +
<service name="Hola">
 +
<port name="HolaPort" binding="tns:HolaPortBinding">
 +
<soap:address location="http://localhost:8084/webServiceProject/Hola" />
 +
</port>
 +
</service>
 +
</definitions>
 +
</source>
 
Existeixen dues maneres per accedir a un servei web:
 
Existeixen dues maneres per accedir a un servei web:
*'''El proveïdor de serveis web coneixi al client''':El prpoveïdor de serveis web proporcionarà el '''WSDL'' al client i el client podrà accedir als serveis web.
+
*'''El proveïdor de serveis web coneix al client''':El proveïdor de serveis web proporcionarà el '''WSDL'' al client i el client podrà accedir als serveis web.
*'''El proveïdor de serveis registri la WSDL com a UDDI'''. UUID (Universal Description, Discover and Integration). Els WSDL es poden convertir a un UDDI i així, poden estar disponibles mitjanánt un directori de serveis per a la seva utilització.
+
*'''El proveïdor de serveis registri la WSDL com a UDDI'''. UUID (Universal Description, Discover and Integration). Els WSDL es poden convertir a un UDDI i així, poden estar disponibles mitjançant un directori de serveis per a la seva utilització.
  
 
=Accedir a un servei Web des de un client php =
 
=Accedir a un servei Web des de un client php =

Revisió del 09:58, 10 abr 2015

Què són els Serveis Web?

Els serveis web són aplicacions client i servidor que es comuniquen sobre (WWW) Protocol de transferència d'hipertext de la World Wide Web (HTTP). Segons el descrit pel World Wide Web Consortium (W3C), serveis web proporcionen un mitjà estàndard d'interoperabilitat entre aplicacions de programari que s'executen en una varietat de plataformes i marcs. Els serveis web es caracteritzen per la seva gran interoperabilitat i extensibilitat, així com les seves descripcions processable per màquina, gràcies a la utilització de XML. Els serveis web es poden combinar d'una manera precisa per aconseguir operacions complexes.

Tipus de Serveis Web

En el pla conceptual, un servei és un component de programari que es proporciona de la xarxa.

A nivell tècnic, els serveis web es poden implementar de diverses maneres. Els dos tipus de serveis web analitzats en aquesta secció es poden distingir com a Big Web Services i serveis web RESTful.

Big Web Services En Java EE 6, JAX-WS proporciona la funcionalitat de Big Web Services. Serveis web Grans utilitzen missatges XML que segueixen el protocol d'accés a objectes estàndard (SOAP), un llenguatge XML que defineix una arquitectura de missatges i formats de missatges. Aquests sistemes sovint contenen una descripció llegible per les màquines de les operacions que ofereix el servei, escrit en la Web Services Description Language (WSDL), un llenguatge XML per a definir sintàcticament interfícies.

El format del missatge SOAP i WSDL llenguatge de definició d'interfície han guanyat l'adopció generalitzada. Moltes de les eines de desenvolupament, com NetBeans IDE, poden reduir la complexitat del desenvolupament d'aplicacions de serveis web.

Soap-message.png

Serveis Web REST En Java EE 6, JAX-RS proporciona la funcionalitat per a la Transferència d'estat representacional ​​(REST Web Services). REST és molt adequat per a escenaris bàsics. Serveis web RESTful sovint estan millor integrats amb HTTP que els serveis basats en SOAP ja que no requereixen de missatges XML o definicions servei API WSDL.

Projecte Jersey és la implementació de referència de l'especificació JAX-RS. Jersei implementa suport per a les anotacions definides en l'especificació JAX-RS, el que facilita als desenvolupadors crear serveis web RESTful amb Java i la màquina virtual de Java (JVM).

SOAP Web Services

Simple Object Access Protocol (SOAP)és un protocol estàndard per l'intercanvi de missatges XML. La comunicació entre el client i el servei succeeix utilitzant missatges XML.

Què és el WSDL?

WSDL: Web Service Description Language. És un arxiu XML que descriu els detalls tècnics de com s'implementa un servei web, més específicament la URI, port, nom dels mètodes, els paràmetres i els tipus de dades. Llegint el WSDL poden veure:

  • Ports / EndPoint - URL del servei web
  • Format del missatge d'entrada
  • Format del missatge de sortida
  • Protocol de seguretat que s'ha de seguir
  • El protocol de servei web utilitzat
<?xml version='1.0' encoding='UTF-8'?><!-- Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.2-hudson-740-. --><!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.2-hudson-740-. --><definitions xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://www.w3.org/ns/ws-policy" xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://ws/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://ws/" name="Hola">
<wsp:Policy wsu:Id="HolaPortBindingPolicy" />
<types>
<xsd:schema>
<xsd:import namespace="http://ws/" schemaLocation="http://localhost:8084/webServiceProject/Hola?xsd=1" />
</xsd:schema>
</types>
<message name="hello">
<part name="parameters" element="tns:hello" />
</message>
<message name="helloResponse">
<part name="parameters" element="tns:helloResponse" />
</message>
<message name="adeu">
<part name="parameters" element="tns:adeu" />
</message>
<message name="adeuResponse">
<part name="parameters" element="tns:adeuResponse" />
</message>
<portType name="Hola">
<operation name="hello">
<input wsam:Action="http://ws/Hola/helloRequest" message="tns:hello" />
<output wsam:Action="http://ws/Hola/helloResponse" message="tns:helloResponse" />
</operation>
<operation name="adeu">
<input wsam:Action="http://ws/Hola/adeuRequest" message="tns:adeu" />
<output wsam:Action="http://ws/Hola/adeuResponse" message="tns:adeuResponse" />
</operation>
</portType>
<binding name="HolaPortBinding" type="tns:Hola">
<wsp:PolicyReference URI="#HolaPortBindingPolicy" />
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
<operation name="hello">
<soap:operation soapAction="" />
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
<operation name="adeu">
<soap:operation soapAction="" />
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
</binding>
<service name="Hola">
<port name="HolaPort" binding="tns:HolaPortBinding">
<soap:address location="http://localhost:8084/webServiceProject/Hola" />
</port>
</service>
</definitions>

Existeixen dues maneres per accedir a un servei web:

  • 'El proveïdor de serveis web coneix al client:El proveïdor de serveis web proporcionarà el WSDL al client i el client podrà accedir als serveis web.
  • El proveïdor de serveis registri la WSDL com a UDDI. UUID (Universal Description, Discover and Integration). Els WSDL es poden convertir a un UDDI i així, poden estar disponibles mitjançant un directori de serveis per a la seva utilització.

Accedir a un servei Web des de un client php

$client = new SoapClient("http://192.168.56.1:8084/webServiceProject/Hola?wsdl");

$result = $client->hello(array("name"=>"alex"));

echo $result->return;


Webgrafia

http://wiki.netbeans.org/IniciandoseRESTful

NetBeans soap: https://netbeans.org/kb/docs/websvc/jax-ws.html JAX-WS http://docs.oracle.com/javaee/6/tutorial/doc/bnayl.html JAX-RS http://docs.oracle.com/javaee/6/tutorial/doc/giepu.html http://www.java2blog.com/2013/03/soap-web-service-tutorial.html