Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ec
WebServices
• Cliente webservice
• Servidor webservice
Aplicaciones Distribuidas
JEE www.ups.edu.ec
Tipos de WebService
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
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
Complejidad VS Simplicidad
QoS Ligero
Aplicaciones Distribuidas
JEE www.ups.edu.ec
• 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
• 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
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
…………………………………….
http://localhost:8080/facturacion/srv/contenidos/.......
}
@Path("/personas")
public class PersonasService
{
http://localhost:8080/facturacion/srv/personas/.......
…………………………………….
Aplicaciones Distribuidas
JEE www.ups.edu.ec
@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
@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
@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
@WebService
public class WSServiciosXX {
@Inject
private MiDAO dao;
@WebMethod
public Respuesta guardarPersona(Persona p){
return
}
Aplicaciones Distribuidas