SlideShare a Scribd company logo
1 of 14
Servicios web
 Son programas con funcionalidad accesible a
través de protocolo http que permiten la
ejecución remota de métodos y funciones
 Los clientes envían solicitudes de ejecución de
métodos y funciones y sus argumentos
 Los servidores responden enviando los resultados
solicitados
Servicios web
 Java EE 6 incluye “grandes” servicios web
(basados en la especificación JAX-WS) y
servicios web “reposados” (basados en la
especificación JAX-RS)
 Los servicios reposados optimizan el ancho
de banda y son más sencillos de desarrollar
Servicios web
 Los grandes servicios web transmiten la
información a través de un protocolo
universal basado en XML, llamado SOAP
 Mediante servicios web, programas escritos
con tecnologías diferentes (Java EE, .NET)
pueden compartir información y
procedimientos de acceso a ella
estandarizados
Servicios web
 La utilización de un servicio web involucra:
 Un programa servidor capaz de publicar a través de
un registro referencias a objetos servidores y a sus
métodos y de serializar y desserializar objetos.
 Un protocolo de publicación y acceso a métodos y a
objetos serializados.
 Un programa cliente capaz de acceder a referencias
publicadas de objetos servidores, de hacer llamadas a
sus métodos y de serializar y desserializar otros
objetos.
Grandes servicios web:
Requisitos
 Las clases cuyas instancias son objetos
servidores se anotan mediante @WebService.
Los métodos accesibles públicamente se anotan
mediante @WebMethod.
 Una herramienta auxiliar, wsgen, genera
artefactos necesarios para el despliegue del
servicio, incluyendo ficheros de clase que los
clientes pueden cargar a través de la red.
Grandes servicios web:
Restricciones
 Los @WebServices han de tener un
constructor sin argumentos
 Los @WebMethods tienen que ser públicos
 Los argumentos y los objetos devueltos por
@WebMethods tienen que ser tipos simples o
Java Beans.
Implementación de servicios
web desde NetBeans
 Crear un proyecto de aplicación web (también se
puede hacer con una aplicación Enterprise).
 Crear el servicio web desde el proyecto, con un
paquete. Netbeans crea la clase @WebService
asociada, cuyo nombre es el del servicio.
Implementación de servicios
web desde NetBeans, II
 Definir los Beans auxiliares y los
@WebMethods.
 Al construir y desplegar la aplicación,
Netbeans ejecuta wsgen y gestiona la
publicación del servicio.
 Se puede probar el servicio desde un
navegador seleccionando la opción “Test”
sobre el mismo.
Ejemplo de servicio web
 Una aplicación que permite buscar
documentos que contienen una palabra y
devolverlos ordenados según el número de
veces que aparece la palabra se puede
implementar como sigue:
 Clase servidora: Buscador
 Método accesible: List<Doc> busca(palabra)
 Bean auxiliar: Doc
Ejemplo de servicio web, II
 @WebService
public class Buscador { …
@WebMethod
List<Doc> busca(String palabra)
}
 class Doc {
int apariciones(String palabra)
… // Métodos set y get }
Esquema del funcionamiento
de servicios web
ServidorCliente
obj.f(arg)objRef.f(arg)
objobjRef
registro
Interfaz común
Programación del cliente
 Esquema de funcionamiento del cliente:
 Instanciar una referencia al servicio
 Obtener una referencia a un objeto servidor
 Ejecutar métodos …
Ejemplo de cliente
public class BuscadorClient { …
public static void main(String[] args) {
ws.client.BuscadorService serv =
new ws.client.BuscadorService();
ws.client.Buscador busc =
serv.getBuscadorPort();
List<Doc> rec = busc.busca(“servidor”);
…

More Related Content

What's hot (19)

Capitulo 4.7 prog iii
Capitulo 4.7 prog iiiCapitulo 4.7 prog iii
Capitulo 4.7 prog iii
 
Primeros pasos con ajax
Primeros pasos con ajaxPrimeros pasos con ajax
Primeros pasos con ajax
 
Servlet net beans
Servlet net beansServlet net beans
Servlet net beans
 
10. Usando Datos Xml
10.  Usando Datos Xml10.  Usando Datos Xml
10. Usando Datos Xml
 
Hola mundo en Anypoint Studio
Hola mundo en Anypoint StudioHola mundo en Anypoint Studio
Hola mundo en Anypoint Studio
 
Practica 5docx -Bayron Champutiz-Nelson Quema
Practica  5docx -Bayron Champutiz-Nelson QuemaPractica  5docx -Bayron Champutiz-Nelson Quema
Practica 5docx -Bayron Champutiz-Nelson Quema
 
Ajax Atlas
Ajax AtlasAjax Atlas
Ajax Atlas
 
Tutorial base sts springmvc
Tutorial base sts springmvcTutorial base sts springmvc
Tutorial base sts springmvc
 
Como usar ajax con jquery
Como usar ajax con jqueryComo usar ajax con jquery
Como usar ajax con jquery
 
Jsp
JspJsp
Jsp
 
Ajax
AjaxAjax
Ajax
 
Presentación1
Presentación1Presentación1
Presentación1
 
Conexion ptop
Conexion ptopConexion ptop
Conexion ptop
 
Servidores web
Servidores webServidores web
Servidores web
 
tecnología AJAX
tecnología AJAXtecnología AJAX
tecnología AJAX
 
Tarea7 programacionweb2020b
Tarea7 programacionweb2020bTarea7 programacionweb2020b
Tarea7 programacionweb2020b
 
Servidor web en centos 6.5
Servidor web en centos 6.5Servidor web en centos 6.5
Servidor web en centos 6.5
 
Migrar WordPress
Migrar WordPressMigrar WordPress
Migrar WordPress
 
SignalR y dispositivos móviles
SignalR y dispositivos móvilesSignalR y dispositivos móviles
SignalR y dispositivos móviles
 

Similar to Servicios web: introducción a su funcionamiento y programación

[ES] Construyendo Servicios Web con JDeveloper
[ES] Construyendo Servicios Web con JDeveloper[ES] Construyendo Servicios Web con JDeveloper
[ES] Construyendo Servicios Web con JDeveloperEudris Cabrera
 
Aplicaciones web
Aplicaciones webAplicaciones web
Aplicaciones webFelipe
 
[ES] Introducción a las Aplicaciones Web con Java
[ES] Introducción a las Aplicaciones Web con Java[ES] Introducción a las Aplicaciones Web con Java
[ES] Introducción a las Aplicaciones Web con JavaEudris Cabrera
 
Web Services en .NET Compact Framework
Web Services en .NET Compact FrameworkWeb Services en .NET Compact Framework
Web Services en .NET Compact FrameworkUTPc09071
 
Introducción al desarrollo de aplicaciones web en Java
Introducción al desarrollo de aplicaciones web en JavaIntroducción al desarrollo de aplicaciones web en Java
Introducción al desarrollo de aplicaciones web en JavaEudris Cabrera
 
Servicios Web II.ppt
Servicios Web II.pptServicios Web II.ppt
Servicios Web II.pptDiegoRomn20
 
Presentacion sesion01 - Programacion WEB
Presentacion sesion01 - Programacion WEBPresentacion sesion01 - Programacion WEB
Presentacion sesion01 - Programacion WEBploncan24
 
9- Unidad 3: Webservices-3.1. Introducción, Conceptos y Características
9- Unidad 3: Webservices-3.1. Introducción, Conceptos y Características9- Unidad 3: Webservices-3.1. Introducción, Conceptos y Características
9- Unidad 3: Webservices-3.1. Introducción, Conceptos y CaracterísticasLuis Fernando Aguas Bucheli
 
Servicio web
Servicio web Servicio web
Servicio web Yael67
 
introduccion-a-las-aplicaciones-web-y-tecnologia-java.ppt
introduccion-a-las-aplicaciones-web-y-tecnologia-java.pptintroduccion-a-las-aplicaciones-web-y-tecnologia-java.ppt
introduccion-a-las-aplicaciones-web-y-tecnologia-java.pptBYRONMIGUELSUBUYUCPA
 
Reporte prog web
Reporte prog webReporte prog web
Reporte prog webJc Lopez
 
12-Unidad 3: Webservices-3.3 Inicio del Proyecto
12-Unidad 3: Webservices-3.3 Inicio del Proyecto12-Unidad 3: Webservices-3.3 Inicio del Proyecto
12-Unidad 3: Webservices-3.3 Inicio del ProyectoLuis Fernando Aguas Bucheli
 
Servicios web java php-perl-google
Servicios web java php-perl-googleServicios web java php-perl-google
Servicios web java php-perl-googleJosue Hernandez
 

Similar to Servicios web: introducción a su funcionamiento y programación (20)

Servicios web
Servicios webServicios web
Servicios web
 
[ES] Construyendo Servicios Web con JDeveloper
[ES] Construyendo Servicios Web con JDeveloper[ES] Construyendo Servicios Web con JDeveloper
[ES] Construyendo Servicios Web con JDeveloper
 
Aplicaciones web
Aplicaciones webAplicaciones web
Aplicaciones web
 
Desarrollo web
Desarrollo webDesarrollo web
Desarrollo web
 
[ES] Introducción a las Aplicaciones Web con Java
[ES] Introducción a las Aplicaciones Web con Java[ES] Introducción a las Aplicaciones Web con Java
[ES] Introducción a las Aplicaciones Web con Java
 
Web Services en .NET Compact Framework
Web Services en .NET Compact FrameworkWeb Services en .NET Compact Framework
Web Services en .NET Compact Framework
 
Introducción al desarrollo de aplicaciones web en Java
Introducción al desarrollo de aplicaciones web en JavaIntroducción al desarrollo de aplicaciones web en Java
Introducción al desarrollo de aplicaciones web en Java
 
Servicios Web II.ppt
Servicios Web II.pptServicios Web II.ppt
Servicios Web II.ppt
 
Servlet
ServletServlet
Servlet
 
Presentacion sesion01 - Programacion WEB
Presentacion sesion01 - Programacion WEBPresentacion sesion01 - Programacion WEB
Presentacion sesion01 - Programacion WEB
 
9- Unidad 3: Webservices-3.1. Introducción, Conceptos y Características
9- Unidad 3: Webservices-3.1. Introducción, Conceptos y Características9- Unidad 3: Webservices-3.1. Introducción, Conceptos y Características
9- Unidad 3: Webservices-3.1. Introducción, Conceptos y Características
 
Servicio web
Servicio web Servicio web
Servicio web
 
Servicios web
Servicios webServicios web
Servicios web
 
introduccion-a-las-aplicaciones-web-y-tecnologia-java.ppt
introduccion-a-las-aplicaciones-web-y-tecnologia-java.pptintroduccion-a-las-aplicaciones-web-y-tecnologia-java.ppt
introduccion-a-las-aplicaciones-web-y-tecnologia-java.ppt
 
Reporte prog web
Reporte prog webReporte prog web
Reporte prog web
 
12-Unidad 3: Webservices-3.3 Inicio del Proyecto
12-Unidad 3: Webservices-3.3 Inicio del Proyecto12-Unidad 3: Webservices-3.3 Inicio del Proyecto
12-Unidad 3: Webservices-3.3 Inicio del Proyecto
 
introduccion a Ajax
introduccion a Ajaxintroduccion a Ajax
introduccion a Ajax
 
Servicios web java php-perl-google
Servicios web java php-perl-googleServicios web java php-perl-google
Servicios web java php-perl-google
 
sesion01-traspas.pdf
sesion01-traspas.pdfsesion01-traspas.pdf
sesion01-traspas.pdf
 
Web services
Web servicesWeb services
Web services
 

More from Salvador Fernández Fernández

Ejemplo de paso de funciones como parámetros a otra función
Ejemplo de paso de funciones como parámetros a otra funciónEjemplo de paso de funciones como parámetros a otra función
Ejemplo de paso de funciones como parámetros a otra funciónSalvador Fernández Fernández
 
10 mentiras con las que siempre engañan a los diseñadores gráficos por John Dani
10 mentiras con las que siempre engañan a los diseñadores gráficos por John Dani10 mentiras con las que siempre engañan a los diseñadores gráficos por John Dani
10 mentiras con las que siempre engañan a los diseñadores gráficos por John DaniSalvador Fernández Fernández
 
10 mentiras con las que siempre engañan a los diseñadores gráficos por John Dani
10 mentiras con las que siempre engañan a los diseñadores gráficos por John Dani10 mentiras con las que siempre engañan a los diseñadores gráficos por John Dani
10 mentiras con las que siempre engañan a los diseñadores gráficos por John DaniSalvador Fernández Fernández
 
Varios Algoritmos Voraces De DecisióN Y OptimizacióN
Varios Algoritmos Voraces De DecisióN Y OptimizacióNVarios Algoritmos Voraces De DecisióN Y OptimizacióN
Varios Algoritmos Voraces De DecisióN Y OptimizacióNSalvador Fernández Fernández
 

More from Salvador Fernández Fernández (20)

Ejemplo Base de Datos SQLite (Android)
Ejemplo Base de Datos SQLite (Android)Ejemplo Base de Datos SQLite (Android)
Ejemplo Base de Datos SQLite (Android)
 
Práctica nominas
Práctica nominasPráctica nominas
Práctica nominas
 
Ejemplo de paso de funciones como parámetros a otra función
Ejemplo de paso de funciones como parámetros a otra funciónEjemplo de paso de funciones como parámetros a otra función
Ejemplo de paso de funciones como parámetros a otra función
 
Ejemplo usopunteros
Ejemplo usopunterosEjemplo usopunteros
Ejemplo usopunteros
 
Solucion ejercicios punteros cadenas-vectores
Solucion ejercicios punteros cadenas-vectoresSolucion ejercicios punteros cadenas-vectores
Solucion ejercicios punteros cadenas-vectores
 
Ejercicios punteros cadenas-vectores
Ejercicios punteros cadenas-vectoresEjercicios punteros cadenas-vectores
Ejercicios punteros cadenas-vectores
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujo
 
Introducción a Enterprise Java Beans
Introducción a Enterprise Java BeansIntroducción a Enterprise Java Beans
Introducción a Enterprise Java Beans
 
Colorear fotografias en blanco y negro
Colorear fotografias en blanco y negroColorear fotografias en blanco y negro
Colorear fotografias en blanco y negro
 
10 mentiras con las que siempre engañan a los diseñadores gráficos por John Dani
10 mentiras con las que siempre engañan a los diseñadores gráficos por John Dani10 mentiras con las que siempre engañan a los diseñadores gráficos por John Dani
10 mentiras con las que siempre engañan a los diseñadores gráficos por John Dani
 
10 mentiras con las que siempre engañan a los diseñadores gráficos por John Dani
10 mentiras con las que siempre engañan a los diseñadores gráficos por John Dani10 mentiras con las que siempre engañan a los diseñadores gráficos por John Dani
10 mentiras con las que siempre engañan a los diseñadores gráficos por John Dani
 
Wallpaper natural
Wallpaper naturalWallpaper natural
Wallpaper natural
 
SQL
SQLSQL
SQL
 
Cableado Estructurado de Red
Cableado Estructurado de RedCableado Estructurado de Red
Cableado Estructurado de Red
 
Redes De Computadores UOC
Redes De Computadores UOCRedes De Computadores UOC
Redes De Computadores UOC
 
Fundamentos Divide Y Venceras
Fundamentos Divide Y VencerasFundamentos Divide Y Venceras
Fundamentos Divide Y Venceras
 
Divide y Vencerás
Divide y VencerásDivide y Vencerás
Divide y Vencerás
 
Java orientado a objetos
Java orientado a objetosJava orientado a objetos
Java orientado a objetos
 
Varios Algoritmos Voraces De DecisióN Y OptimizacióN
Varios Algoritmos Voraces De DecisióN Y OptimizacióNVarios Algoritmos Voraces De DecisióN Y OptimizacióN
Varios Algoritmos Voraces De DecisióN Y OptimizacióN
 
PlanificacióN Temporal Esquema Voraz Tecnoacademy
PlanificacióN Temporal Esquema Voraz TecnoacademyPlanificacióN Temporal Esquema Voraz Tecnoacademy
PlanificacióN Temporal Esquema Voraz Tecnoacademy
 

Servicios web: introducción a su funcionamiento y programación

  • 1.
  • 2. Servicios web  Son programas con funcionalidad accesible a través de protocolo http que permiten la ejecución remota de métodos y funciones  Los clientes envían solicitudes de ejecución de métodos y funciones y sus argumentos  Los servidores responden enviando los resultados solicitados
  • 3. Servicios web  Java EE 6 incluye “grandes” servicios web (basados en la especificación JAX-WS) y servicios web “reposados” (basados en la especificación JAX-RS)  Los servicios reposados optimizan el ancho de banda y son más sencillos de desarrollar
  • 4. Servicios web  Los grandes servicios web transmiten la información a través de un protocolo universal basado en XML, llamado SOAP  Mediante servicios web, programas escritos con tecnologías diferentes (Java EE, .NET) pueden compartir información y procedimientos de acceso a ella estandarizados
  • 5. Servicios web  La utilización de un servicio web involucra:  Un programa servidor capaz de publicar a través de un registro referencias a objetos servidores y a sus métodos y de serializar y desserializar objetos.  Un protocolo de publicación y acceso a métodos y a objetos serializados.  Un programa cliente capaz de acceder a referencias publicadas de objetos servidores, de hacer llamadas a sus métodos y de serializar y desserializar otros objetos.
  • 6. Grandes servicios web: Requisitos  Las clases cuyas instancias son objetos servidores se anotan mediante @WebService. Los métodos accesibles públicamente se anotan mediante @WebMethod.  Una herramienta auxiliar, wsgen, genera artefactos necesarios para el despliegue del servicio, incluyendo ficheros de clase que los clientes pueden cargar a través de la red.
  • 7. Grandes servicios web: Restricciones  Los @WebServices han de tener un constructor sin argumentos  Los @WebMethods tienen que ser públicos  Los argumentos y los objetos devueltos por @WebMethods tienen que ser tipos simples o Java Beans.
  • 8. Implementación de servicios web desde NetBeans  Crear un proyecto de aplicación web (también se puede hacer con una aplicación Enterprise).  Crear el servicio web desde el proyecto, con un paquete. Netbeans crea la clase @WebService asociada, cuyo nombre es el del servicio.
  • 9. Implementación de servicios web desde NetBeans, II  Definir los Beans auxiliares y los @WebMethods.  Al construir y desplegar la aplicación, Netbeans ejecuta wsgen y gestiona la publicación del servicio.  Se puede probar el servicio desde un navegador seleccionando la opción “Test” sobre el mismo.
  • 10. Ejemplo de servicio web  Una aplicación que permite buscar documentos que contienen una palabra y devolverlos ordenados según el número de veces que aparece la palabra se puede implementar como sigue:  Clase servidora: Buscador  Método accesible: List<Doc> busca(palabra)  Bean auxiliar: Doc
  • 11. Ejemplo de servicio web, II  @WebService public class Buscador { … @WebMethod List<Doc> busca(String palabra) }  class Doc { int apariciones(String palabra) … // Métodos set y get }
  • 12. Esquema del funcionamiento de servicios web ServidorCliente obj.f(arg)objRef.f(arg) objobjRef registro Interfaz común
  • 13. Programación del cliente  Esquema de funcionamiento del cliente:  Instanciar una referencia al servicio  Obtener una referencia a un objeto servidor  Ejecutar métodos …
  • 14. Ejemplo de cliente public class BuscadorClient { … public static void main(String[] args) { ws.client.BuscadorService serv = new ws.client.BuscadorService(); ws.client.Buscador busc = serv.getBuscadorPort(); List<Doc> rec = busc.busca(“servidor”); …