Publicado el 21 de Febrero del 2021
488 visualizaciones desde el 21 de Febrero del 2021
498,3 KB
62 paginas
Creado hace 19a (24/01/2006)
Sistemas de Información
Servicios Web II (Ejemplos)
Agradecimientos: Mario Muñoz Organero <munozm>, Simon Pickin de IT/UCIIIM <spickin>
Web Services (Repaso)
¿Qué son?
un mecanismo de comunicación distribuida
que permite que las aplicaciones:
compartan información
invoquen funciones de otras aplicaciones
independientemente de
Cómo hayan sido creadas (lenguaje de programación)
Cómo se ejecutan (sistema operativo y plataforma)
Dispositivos utilizados para acceder a ellas
¿Para qué sirven?
Incluido en la propia definición (puntos 2 y 3)
Crean una especie de WWW paralela de carácter cibernético
WWW humana (personas accediendo a pags web)
WWW cibernética (aplicaciones accediendo a servicios Web)
munozm, spickin, mcfp @it.uc3m.es
Servidores de información
2
Web Services (Repaso)
¿Cómo se usan?
Crear la lógica del negocio del Servicio Web. Diseñar e
implementar la aplicación que contenga la lógica de negocio del
servicio Web (cualquier lenguaje, plataforma y sistema operativo)
Desplegar el servicio en un servidor
Instalar y configurar el servidor
Ubicar la aplicación en el lugar adecuado
Convertir aplicación en un WS proporcionando descripción WSDL.
Registrar el servicio web en un directorio (opcional) usando UDDI
Desarrollar la aplicación cliente que accede al servicio Web.
El cliente usa protocolo de mensajería XML para acceder al WS
2 estilos (rpc vs Document)
munozm, spickin, mcfp @it.uc3m.es
Servidores de información
3
Web Services (Repaso)
¿Tecnologías utilizadas?
WSDL (Web Service Description Language) :
Sirve para describir el servicio
Suele utilizarse
SOAP (Simple Object Access Protocol) :
Sirve para intercambio de mensajes protocolo subyacente
Ampliamente utilizado
UDDI (Universal Description, Discovery and Integration):
Sirve para descubrimiento de servicios.
Empieza a utilizarse
munozm, spickin, mcfp @it.uc3m.es
Servidores de información
4
WSDL - Ejemplos
Web Service Description Language
Componentes de un servicio
munozm, spickin, mcfp @it.uc3m.es
Servidores de información
6
Componentes de un servicio
<?xml version="1.0" encoding="UTF-8"?>
<definition> Es el elemento raíz de un documento WSDL
<types> Indica qué tipo de datos serán transmitidos </types>
<message> Indica qué mensaje será transmitido </message >
<porttype> Indica qué operaciones (funciones) se soportan </porttype >
<binding> Indica:
• Cómo se transmitirán los mensajes por la red
• Qué detalles hay sobre SOAP
</binding >
<service> Indica donde está localizado el servicio </service>
</definition>
munozm, spickin, mcfp @it.uc3m.es
Servidores de información
7
Otros componentes
documentation
Se usa para añadir comentarios en lenguaje humano
a las definiciones.
import
include
nombres.
Importa otros documentos dentro del actual
incorporando otro espacio de nombres.
Igual que import pero con el mismo espacio de
munozm, spickin, mcfp @it.uc3m.es
Servidores de información
8
import
munozm, spickin, mcfp @it.uc3m.es
Servidores de información
9
Espacios de nombres
URI del espacio de nombres
definición
http://schemas.xmlsoap.org/wsdl/ WSDL namespace for WSDL
http://schemas.xmlsoap.org/wsdl/soap/ WSDL namespace for WSDL SOAP
framework.
binding.
binding.
SOAP 1.1
SOAP 1.1
Prefijo
wsdl
soap
http
Xsi
Xsd
Tns
http://schemas.xmlsoap.org/wsdl/http/ WSDL namespace for WSDL HTTP
GET & POST binding.
Mime http://schemas.xmlsoap.org/wsdl/mime/ WSDL namespace for WSDL MIME
soapenc http://schemas.xmlsoap.org/soap/encoding/ Encoding namespace as defined by
Soapenv http://schemas.xmlsoap.org/soap/envelope/ Envelope namespace as defined by
http://www.w3.org/2000/10/XMLSchema-instance Instance namespace as defined by
http://www.w3.org/2000/10/XMLSchema
(various)
XSD
Schema namespace as defined by
XSD
El “this namespase”
convención para referirse al
documento corriente.
(tns) se usa como
munozm, spickin, mcfp @it.uc3m.es
Servidores de información
10
Ejemplo WSDL
http://www.oreilly.com/catalog/webservess/chapter/ch06.html
<?xml version="1.0" encoding="UTF-8"?>
<definition> El servicio HelloService
sayHelloRequest: El nombre del primer parámetro
sayHelloResponse: el saludo que corresponde al valor de retorno
<message>
1)
2)
</message >
<porttype> operación sayHello que consiste en un servicio
request/response </porttype >
<binding> Indica:
Dirección para usar el protocolo de transporte SOAP HTTP
</binding >
<service> Dirección donde está localizado el servicio
http://localhost:8080/soap/servlet/rpcrouter </service>
</definition>
munozm, spickin, mcfp @it.uc3m.es
Servidores de información
11
definitions
Atributos:
Un nombre local para las definiciones
El nombre para el espacio de nombres "http://www.w3.org/2004/08/wsdl".
Los siguientes atributos:
targetNamespace – requerido
Otros espacios de nombres distintos a "http://www.w3.org/2004/08/wsdl".
Elementos hijos:
import
types
message
portType
binding
port
service
munozm, spickin, mcfp @it.uc3m.es
Servidores de información
12
targetNamespace="http://www.ecerami.com/wsdl/HelloService.wsdl"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://www.ecerami.com/wsdl/HelloService.wsdl"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<type> Indica qué operaciones (funciones) se soportan </porttype >
<message name="SayHelloRequest">
<part name="firstName" type="xsd:string"/>
</message>
<message name="SayHelloResponse">
Ejemplo - WSDL
<?xml version="1.0" encoding="UTF-8"?>
<definitions name="HelloService“
<part name="greeting" type="xsd:string"/>
</message>
<porttype> Indica qué operaciones (funciones) se soportan </porttype >
<binding> Cómo se transmitirán los mensajes </binding >
<service> Indica donde está localizado el servicio </service>
</definitions>
munozm, spickin, mcfp @it.uc3m.es
Servidores de información
13
types
Definiciones de
tipos de datos que son
relevantes para el intercambio de mensajes.
Se usa XSD (interoperabilidad).
munozm, spickin, mcfp @it.uc3m.es
Servidores de información
14
messages
Cada mensaje tiene partes.
Cada parte tiene nombre y tipo.
munozm, spickin, mcfp @it.uc3m.es
Servidores de información
15
message
…
munozm, spickin, mcfp @it.uc3m.es
Servidores de información
16
targetNamespace="http://www.ecerami.com/wsdl/HelloService.wsdl"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://www.ecerami.com/wsdl/HelloService.wsdl"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<type> Indica qué operaciones (funciones) se soportan </porttype >
<message name="SayHelloRequest">
<part name="firstName" type="xsd:string"/>
</message>
<message name="SayHelloResponse">
Ejemplo - WSDL
<?xml version="1.0" encoding="UTF-8"?>
<definitions name="HelloService“
<part name="greeting" type="xsd:string"/>
</message>
<porttype> Indica qué operaciones (funciones) se soportan </porttype >
<binding> Cómo se transmitirán los mensajes </binding >
<service> Indica donde está localizado el servicio </service>
</definitions>
munozm, spickin, mcfp @it.uc3m.es
Servidores de información
17
portType
Conjunto de operaciones.
Cada tipo de puerto tiene su nombre.
munozm, spickin, mcfp @it.uc3m.es
Servidores de información
18
operations
Cada una de las funciones que se pueden invocar en un
puerto.
Cuatro tipos:
One-way. Se recibe un mensaje.
Request-response. Se recibe un mensaje y se contesta.
Solicit-response. Se manda un mensaje y se espera la
respuesta.
Notification. Se envía un mensaje para el que no se espera
respuesta.
munozm, spickin, mcfp @it.uc3m.es
Servidores de información
19
Ejemplo - WSDL
<?xml version="1.0" encoding="UTF-8"?>
<definitions … >
<type> Indica qué operaciones (funciones) se soportan </porttype >
<message> Indica qué mensaje será transmitido </message >
<portType name="Hello_PortType">
<operation name="sayHello">
<input message="tns:SayHelloRequest"/>
<output message="tns:SayHelloResponse"/>
</operation>
</portType>
<binding> Cómo se transmitirán los mensajes </binding >
<service> Indica donde está localizado el servicio </service>
</definitions>
munozm, spickin, mcfp @it.uc3m.es
Servidores de información
20
bindings
Se les pone un nombre.
El tipo hace referencia al portType.
Los
campos
de
recogen
la gramática
elementos
concreta para los mensajes de entrada, salida y
error.
extensibilidad
especifican
que
Se puede especificar opcionalmente información
de binding para toda una operación así como
para todo el elemento de binding.
munozm, spickin, mcfp @it.uc3m.es
Servidores de información
21
Otros binding
A parte de SOAP tenemos:
MIME
HTTP GET/POST
munozm, spickin, mcfp @it.uc3m.es
Servidores de información
22
Ejemplo - WSDL
<?xml version="1.0" encoding="UTF-8"?>
<definitions … >
<type> Indica qué operaciones (funciones) se soportan </porttype >
<message> Indica qué mensaje será transmitido </message >
<porttype> Indica qué operaciones (funciones) se soportan </porttype >
<binding
Comentarios de: Servicios Web II (Ejemplos) - Sistemas de Información (0)
No hay comentarios