PDF de programación - Servicios Web y RMI

Imágen de pdf Servicios Web y RMI

Servicios Web y RMIgráfica de visualizaciones

Publicado el 6 de Mayo del 2020
440 visualizaciones desde el 6 de Mayo del 2020
198,9 KB
23 paginas
Creado hace 13a (04/03/2011)
Servicios Web y RMI
Servicios Web y RMI

Pedro J. Muñoz Merino
Pedro J. Muñoz Merino

http://www.it.uc3m.es/pedmume/
http://www.it.uc3m.es/pedmume/

Servicios Web: Concepto

● Uso más habitual de un servidor es dar una respuesta al
usuario de una determinada página (PHP, ASP, J2EE…).
Las páginas están disponibles para los usuarios

● Otro uso es el de proporcionar disponibles una serie de

métodos que son accesibles para ser llamados desde
otras máquinas de manera remota. Es el concepto de
otras máquinas de manera remota. Es el concepto de
Servicios Web. Los métodos remotos están disponibles
para las máquinas
― Computación distribuida. En lugar de tener todos los métodos

locales, se pueden invocar métodos remotos en servidores que
ofrecen esos servicios

● Los Servicios Web ofrecen unos métodos con una serie de

parámetros y devuelven una salida

Pedro J. Muñoz Merino

Diseño de Aplicaciones Telemáticas

2

Servicios Web: Ventajas

● El tener los métodos de manera remota, puede parecer

inicialmente un problema, pero presenta una serie de
ventajas:
― Los cambios en los métodos de los Servicios Web son

transparentes para el programador. El programador sólo se debe
ocupar de conocer la interfaz al método del Servicio Web

― Se pueden implementar funcionalidades nuevas que no es

posible mediante la programación local, aprovechando la
potencia de la Web. Por ejemplo un buscador de páginas web

― El almacenamiento y ejecución de los programas no recae en

una sola máquina sino que está repartida por todas las máquinas
de Internet de las que se hace uso. Computación distribuida

― Permiten interconexión de clientes y máquinas remotas con
independencia de los lenguajes de programación de ambos

Pedro J. Muñoz Merino

Diseño de Aplicaciones Telemáticas

3

Servicios Web: Visión General

● Servicios Web: Visión General

― Descripción de cuales son los parámetros de entrada y de salida,

los tipos de mensajes intercambiados, etc. de forma que el
servicio Web quede descrito. Por ejemplo WSDL. Tecnología en
XML para dicha descripción

― Mensajes intercambiados en los protocolos para transferir la
información y hacer las peticiones y respuestas. Por ejemplo
información y hacer las peticiones y respuestas. Por ejemplo
SOAP. Tecnología en XML para dicha descripción

― APIs y artilugios de los clientes y los servidores para dejar

disponibles esos métodos y poder llamarlos. Dependerá del
lenguaje de programación. Por ejemplo AXIS como librería en
JAVA

Pedro J. Muñoz Merino

Diseño de Aplicaciones Telemáticas

4

Servicios Web: WSDL

● Fichero XML con estas etiquetas:

― definitions: Elemento raíz

― types: Los tipos de datos que se van a transmitir

― message: Los mensajes que se van a transmitir. Pueden ir

diferentes elementos part, que indican parámetros de entrada y
salida, diciendo su tipo de datos
salida, diciendo su tipo de datos

― portType: Las operaciones o funciones que serán soportados.

Pueden ir elementos input y output que referencian a los
mensajes definidos, para ver cada secuencia de operaciones

― binding: Cómo se van a transmitir los mensajes y detalles SOAP

― service: Dónde está localizado el servicio

Pedro J. Muñoz Merino

Diseño de Aplicaciones Telemáticas

5

Ejemplo WSDL (I)

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="urn:Datos" xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="urn:Datos" xmlns:intf="urn:Datos"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<wsdl:message name="setResponse">

<wsdl:part name="setReturn" type="xsd:string"/>

</wsdl:message>

<wsdl:message name="getRequest">
<wsdl:message name="getRequest">

<wsdl:part name="in0" type="xsd:string"/>
<wsdl:part name="in1" type="xsd:string"/>

</wsdl:message>

<wsdl:message name="getResponse">

<wsdl:part name="getReturn" type="xsd:string"/>

</wsdl:message>

<wsdl:message name="setRequest">

<wsdl:part name="in0" type="xsd:string"/>
<wsdl:part name="in1" type="xsd:string"/>
<wsdl:part name="in2" type="xsd:string"/>

</wsdl:message>

Pedro J. Muñoz Merino

Diseño de Aplicaciones Telemáticas

6

Ejemplo WSDL (II)

<wsdl:portType name="Datos">

<wsdl:operation name="get" parameterOrder="in0 in1">

<wsdl:input message="impl:getRequest" name="getRequest"/>

<wsdl:output message="impl:getResponse" name="getResponse"/>

</wsdl:operation>

<wsdl:operation name="set" parameterOrder="in0 in1 in2">

<wsdl:input message="impl:setRequest" name="setRequest"/>
<wsdl:input message="impl:setRequest" name="setRequest"/>

<wsdl:output message="impl:setResponse" name="setResponse"/>

</wsdl:operation>

</wsdl:portType>

Pedro J. Muñoz Merino

Diseño de Aplicaciones Telemáticas

7

Ejemplo WSDL (III)

<wsdl:binding name="DatosSoapBinding" type="impl:Datos">

<wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="get">

<wsdlsoap:operation soapAction=""/>
<wsdl:input name="getRequest">

<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:Datos"

use="encoded"/>

</wsdl:input>
<wsdl:output name="getResponse">

<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:Datos"

use="encoded"/>

</wsdl:output>
</wsdl:operation>
<wsdl:operation name="set">

<wsdlsoap:operation soapAction=""/>
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="setRequest">

<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:Datos"

use="encoded"/>

</wsdl:input>
<wsdl:output name="setResponse">

<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:Datos"

use="encoded"/>

</wsdl:output>
</wsdl:operation>

</wsdl:binding>
<wsdl:service name="DatosService">

<wsdl:port binding="impl:DatosSoapBinding" name="Datos">

<wsdlsoap:address location="http://localhost:8080/axis/services/Datos"/>

</wsdl:port>

</wsdl:service>
</wsdl:definitions>

Pedro J. Muñoz Merino

Diseño de Aplicaciones Telemáticas

8

SOAP: Introducción

● SOAP: Simple Object Access Protocol
● Es un formato de transmisión de mensajes entre

Servicios Web

● En los Servicios Web, SOAP suele ir sobre HTTP, para

también puede ir con otros protocolos

Pedro J. Muñoz Merino

Diseño de Aplicaciones Telemáticas

9

SOAP: Introducción

● Partes de un mensaje SOAP

― envelope: Elemento raíz

― header: Es opcional, no tiene porque ir información de la

aplicación. Se pueden poner atributos que deciden quien debe
procesar dicha información: actor, mustUnderstand, relay

― body: Tiene contenido de la aplicación que puede ser referido a
― body: Tiene contenido de la aplicación que puede ser referido a

la invocación, respuesta, notificación o error

● RPC: Envío de parámetros y respuesta de resultados

Pedro J. Muñoz Merino

Diseño de Aplicaciones Telemáticas

10

Ejemplo SOAP (I)

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope
/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>

<get

soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/
encoding/">

<permiso

xsi:type="xsd:string">escritura</permiso>

<parametro xsi:type="xsd:string">IP</parametro>

</get>

</soapenv:Body>
</soapenv:Envelope>

Pedro J. Muñoz Merino

Diseño de Aplicaciones Telemáticas

11

Ejemplo Servidor con AXIS y JWS (I)

import java.util.HashMap;
import java.util.Map;

public class Datos {
private static HashMap datos = inicializar();
private String dato=null;
public static HashMap inicializar() {
HashMap datosini= new HashMap();
datosini.put("OS", "Windows 98");
datosini.put("IP", "152.27.3.1");
datosini.put("Name", "teclado");
datosini.put("Phone", "916545949");
datosini.put("M1", " ");
datosini.put("M2", " ");
datosini.put("M3", " ");
datosini.put("M3", " ");
datosini.put("M4", " ");
return(datosini);

}

public String get(String clave, String parametro) {
if (!clave.equals("lectura")&&!clave.equals("escritura")){

dato="La clave suministrada no es correcta.";
return(dato);

}
else{

if (parametro == null || parametro.length() == 0
|| (dato = (String) datos.get(parametro)) == null) {
dato = "No existe dicho parámetro en la base de datos.";
return (dato);
}

}
return (parametro+": "+dato);
}

Pedro J. Muñoz Merino

Diseño de Aplicaciones Telemáticas

12

Ejemplo Servidor con AXIS y JWS (II)

public String set(String clave, String parametro, String valor) {
if (!clave.equals("escritura")){

dato="La clave suministrada no es correcta o sólo proporciona permiso de lectura.";
return(dato);

}
else{

if (parametro == null || parametro.length() == 0
|| (dato = (String) datos.get(parametro)) == null) {
dato = "No existe dicho pará
  • Links de descarga
http://lwp-l.com/pdf17615

Comentarios de: Servicios Web y RMI (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad