Publicado el 6 de Mayo del 2020
522 visualizaciones desde el 6 de Mayo del 2020
165,6 KB
17 paginas
Creado hace 11a (12/08/2013)
Servicios Web
Andrés Pastorini
TRIA – Tecnólogo Informático
Servicios Web
Un servicio web expone un conjunto de servicios para ser consumidos a través de
la red. En otras palabras, un servicio web especifica un conjunto de
operación(funciones que retornan determinado valor , reciben un conjunto finito de
parámetros, y retorna un resultado), a través de una url, donde una aplicación
Cliente remota los puede consumir(podría haber cuestiones de seguridad en el
medio).
Cuando se expone un servicio web, se publica un archivo wsdl en el servidor web,
donde se muestran esas operación, parámetros, tipos de retorno, dirección para
invocar el servicio, etc.
Existe otro enfoque para el diseño de web service, denominado Restful, donde,
resumidamente, en vez de publicar operaciones, se publican identificadores de
recursos, para poder accederlos de forma remota.
.
Servicios Web
Especificaciones que define el servicio web
Un servicio web es una colección de protocolos abiertos y estándares usados
para el intercambio de datos entre aplicaciones o sistemas.
Software ejecutandose en distintas plataformas, y escritos en distintos lenguajes
de programación a través del uso de estos protocolos estándares se comunican
entre si.
• SOAP
• WSDL
• UDDI
• WS-Security
• WS-ReliableMessaging
• WS-Reliability
• WS-Addressing
Servicios Web
Componentes de un servicio web
La plataforma básica de los servidores es XML + HTTP.
Todos los servicios web estándar utilizan los siguientes componentes:
• SOAP (Simple Object Access Protocol)
• UDDI (Universal Description, Discovery and Integration)
• WSDL (Web Services Description Language)
Servicios Web
Características
• XML-based
• Loosely coupled
• Coarse-grained
• Ability to be synchronous or asynchronous
• Supports Remote Procedure Calls (RPCs)
• Supports document exchange
Servicios Web
Arquitectura – Enfoque de roles de un servicio web
• Service provider
• Service requestor
• Service registry
Servicios Web
Arquitectura – Pila de protocolos
• Service transport
• XML messaging
• Service description
• Service discovery
Servicios Web
Tecnologías y estándares
XML-RPC
Protocolo simple basado en xml para el intercambio de información entre sistemas
Los Requests son codificados en xml y enviados vía HTTP POST.
Las respuesta son embebidas en el cuerpo de la respuesta HTTP.
Es independiente de la plataforma
SOAP
Protocolo de comunicación basado en xml para intercambio de mensajes entre
sistemas. Especifica un formato para el intercambio de mensajes es
independiente del lenguaje y de la plataforma. Es extensible, es desarrollado por
la W3C
WSDL
Es un formato estándar basado en xml para describir servicios web y mostrar
como acceder a ellos.
UDDI
Es un lenguaje estándar basado en xml para describir, publicar y encontrar
servicio web. Es independiente de plataforma y puede comunicarse mediante
SOAP, CORBA y JAVA Rmi.
Servicios Web
La seguridad puede ser un aspecto fundamental en la utilización de los servicios
web. Ni XML-RPC ni SOAP especifican de manera explicita como manejar los
requerimientos de seguridad o de autenticación
Aspectos a tener en cuenta:
• Confidentiality
• Authentication
• Network Security
Servicios Web
Ejemplo de clase que implementa un servicio web con JAX-WS
package helloservice.endpoint;
import javax.jws.WebService;
@WebService
public class Hello {
private String message = new String("Hello, ");
public void Hello() {}
@WebMethod public String sayHello(String name) {
return message + name + ".";
}
}
Servicios Web
Ejemplo de cliente JAX-WS
import javax.xml.ws.WebServiceRef;
import helloservice.endpoint.HelloService;
public class HelloClient {
@WebServiceRef(wsdlLocation="http://localhost:8080/ helloservice/hello?wsdl")
static HelloService service;
public static void main(String[] args) {
try {
HelloClient client = new HelloClient();
client.doTest(args);
} catch(Exception e) {…}
}
public void doTest(String[] args) {
try {
Hello port = service.getHelloPort();
String response = port.sayHello(“algo”);
} catch(Exception e) { ….}
Servicios Web
REST (Representational state transfer)
• Es una técnica de arquitectura de software para sistemas hipermedia
distribuidos.
• Los servicios web basados en rest, intentan emular el protocolo http.
• Los sistemas que siguen los principios rest, se denominan Restful.
• Se exponen mediante URI’S, es una cadena de caracteres que identifica
unívocamente a un recurso. Determinan cuan intuitivo será el servicio
web.
Servicios Web
Principios fundamentales REST
• Colección de principios para el diseño de arquitecturas en red.
• No mantiene estado
• Recursos con múltiples representaciones identificados por un id único
• Utiliza métodos Http de manera explicita
• Transfiere xml y/o JSON
Servicios Web
¿Cuando usar Rest?
• Cuando el servicio web no necesita tener estado
• Cuando se busca mejorar el rendimiento con una infraestructura del
almacenamiento en cache
• Consumo de servicios con escaso ancho de banda
Servicios Web
Recursos
En la arquitectura rest, los servicios no publican operaciones, publican
recursos.
Los recursos son objetos conceptuales.
Ejemplo de recursos:
• Lista de productos
• Producto concreto
• Persona
Bibliografía
Programming Web Services with SOAP, O’Reilly
RESTful Web Services
Web services for the real world, O’Reilly
Fin
Comentarios de: Servicios Web (0)
No hay comentarios