Está en la página 1de 13

JEE www.ups.edu.

ec

WebServices

Permiten comunicar aplicaciones heterogéneas por medio de WWW


sobre protocolo (HTTP/S)
 Estándar de interoperabilidad

• Cliente webservice
• Servidor webservice

Aplicaciones Distribuidas
JEE www.ups.edu.ec

Tipos de WebService

• Big WebService (XML)


• Restful WebService (JSON)

Aplicaciones Distribuidas
JEE www.ups.edu.ec

Big WebService

Utilizan mensajes XML bajo el protocolo SOAP (Simple Object Access Protocol)
Mismo que define la arquitectura y el formato del mensaje.

Contiene
• Interfaz de servicio definida a travez de WSDL (Web Services
Description Language)
• Arquitectura (seguridad, manejo de transacciones, confianza,
integridad, etc.)
• Manejo de procesamiento asíncrono (JAX-WS)

Aplicaciones Distribuidas
JEE www.ups.edu.ec

RESTFul (Representational State Transfer)


WebService

Utilizado en la integración de comunicaciones Ad-HOC.


No requiere definición WSDL
No requiere mensajes XML

Condiciones:
• Son sin estado
• Infraestructura de almacenamiento en CACHE
• Acuerdo mutuo de intercambio y formas de procesamiento (por falta de
definición de interfaz WSDL)
• Requerimientos bajos de ancho de banda
• Implementación fácil apoyada en herramientas

Aplicaciones Distribuidas
JEE www.ups.edu.ec

Big WebService VS RESTFul WebService

Complejidad VS Simplicidad

QoS Ligero

Aplicaciones Distribuidas
JEE www.ups.edu.ec

Construir Big WebService con JAX-WS


Dependencias MAVEN

• Servidor
En JBOSS no se requieren

• Cliente
Apache CFX o Apache Axis
import javax.inject.Inject;
import javax.jws.WebMethod;
import javax.jws.WebService;

@WebService
public class WSServiciosXX {

@Inject
private MiDAO dao;

@WebMethod
public Respuesta miServicio(… params … ){
……
return …….
Aplicaciones Distribuidas }
JEE www.ups.edu.ec

Construir RESTFul WebService con JAX-RS


Dependencias MAVEN

• Servidor
<dependencyManagement>
<dependencies>
<!-- Componestes JBOSS -->
...............
</dependencies>
<dependencyManagement>

<dependencies>
...............
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>jaxrs-api</artifactId>
<scope>provided</scope>
</dependency> ................
<dependencies>

Aplicaciones Distribuidas
JEE www.ups.edu.ec

Construir RESTFul WebService con JAX-RS


Definición de la aplicación

import javax.ws.rs.core.Application;
import javax.ws.rs.ApplicationPath;

@ApplicationPath("/srv")
public class RestApplication extends Application{

http://<hostname>:<puerto>/<contexto_app>/<app_path>/........

http://localhost:8080/facturacion/srv/........

Aplicaciones Distribuidas
JEE www.ups.edu.ec

Construir RESTFul WebService con JAX-RS


Definición servicios
@Path("/contenidos")
public class ContenidosService
{

…………………………………….

http://localhost:8080/facturacion/srv/contenidos/.......
}

@Path("/personas")
public class PersonasService
{
http://localhost:8080/facturacion/srv/personas/.......
…………………………………….

Aplicaciones Distribuidas
JEE www.ups.edu.ec

Construir RESTFul WebService con JAX-RS


Definición servicios

@Path("/contenidos")
public class ContenidosService
{
@Inject
private MiDAO dao;

@GET
@Path("/consultar")
@Produces("application/json")
public List<Persona> listado ( )
{
……
return personas;
}

http://localhost:8080/facturacion/srv/contenidos/consultar

Aplicaciones Distribuidas
JEE www.ups.edu.ec

Construir RESTFul WebService con JAX-RS


Definición servicios
@Path("/contenidos")
public class ContenidosService
{
@Inject
private MiDAO dao;

@GET
@Path("/consultar")
@Produces("application/json")
public List<Persona> listado(@QueryParam("fecha") long fecha,
@QueryParam("usr") String usuario)
{
……
return personas;
}

http://localhost:8080/facturacion/srv/contenidos/consultar?fecha=143435435435&usr=jp

Aplicaciones Distribuidas
JEE www.ups.edu.ec

Construir RESTFul WebService con JAX-RS


Definición servicios
@Path("/contenidos")
public class ContenidosService
{
@Inject
private MiDAO dao;

@POST
@Path("/save")
@Consumes("application/json")
@Produces("application/json")
public Respuesta guardar(Contenido entity)
{
……………………..
return respuesta;
}
http://localhost:8080/facturacion/srv/contenidos/consultar?fecha=143435435435&usr=jp
@GET
@Path("/consultar")
@Produces("application/json")
public List<Persona> listado(@QueryParam("fecha") long fecha,
@QueryParam("usr") String usuario)
{
……
Aplicaciones Distribuidas
return personas;
JEE www.ups.edu.ec

Construir Big WebService con JAX-WS


import javax.inject.Inject;
import javax.jws.WebMethod;
import javax.jws.WebService;

@WebService
public class WSServiciosXX {

@Inject
private MiDAO dao;

@WebMethod
public Respuesta guardarPersona(Persona p){

return
}
Aplicaciones Distribuidas

También podría gustarte