You are on page 1of 22

PCyD Contenidos

Unidad 1: Programacin
Concurrente
Unidad 2: Programacin Paralela
Unidad 3: Programacin
Distribuida
Web Services
Definicin
SOA
REST
Web Services
Aplicaciones cliente y servidor que
se comunican a travs de HTTP.
Estndar de interaccin entre
aplicaciones corriendo en diferentes
plataformas y/o frameworks.
Web Services
Componentes de aplicacin
distribuidos que pueden accederse
de forma remota.
Sirven para integrar aplicaciones
escritas posiblemente en diferentes
lenguajes corriendo en diferentes
plataformas.
Web Services
Objetivos
Intercambiar informacin en distintos
entornos.
Realizar tareas de procesamiento sin
intervencin del usuario.
Acelerar los tiempos de respuesta.
Establecer comunicacin entre
aplicaciones basadas en distintas
plataformas, lenguajes de programacin
o sistemas operativos.
Web Services
Es bsicamente un mtodo, funcin
o procedimiento que puede ser
accedido va web por cualquier
programa o aplicacin sin importar
en que plataforma reside el servicio
o en que lenguaje ha sido
desarrollado.
Se definen a travs de URI (Uniform
Resource Identification)
Web Services
No son aplicaciones con una interfaz
grfica con la que las personas
puedan interactuar.
Son accesibles desde Internet por
otras aplicaciones.
Web Services
Qu pasa si tenemos varias
aplicaciones ya desarrolladas en
lenguajes o en plataformas
especficas y queremos que
interacten entre ellas?
Con Web Services podemos reutilizar
desarrollos previos sin importar la
plataforma en la que funcionan o el
lenguaje en el que estn escritos.
Web Services
Usos:
Publicacin de informacin
Integracin de aplicaciones
Sistemas de Grid y Cloud Computing
Informacin climatolgica
Localizacin y mapas
Acciones de bolsa
Bsqueda Google
Comunicacin entre empresas
Web Services
Reusabilidad: posibilidad de utilizacin dentro de
una misma aplicacin o varias aplicaciones.
Contrato formal: brindar un nombre de servicio,
una forma determinada de acceso, las funciones
ofrecidas y sus parmetros, y los valores de
retorno.
Bajo acoplamiento: ser independiente de
cualquier capa.
Composicin: crear servicios generales en los que
se basen los ms especficos.
Autonoma: debe contar con su propio espacio de
ejecucin.
Estados: terminada su funcin, no deben
mantener informacin de ningn tipo.
Descubrimiento: debe ofrecer una forma clara
para su comunicacin.
Web Services
Beneficios:
Escaso acoplamiento.
Independencia del lenguaje de
programacin.
Independencia del modo de transporte.
Mltiples modos de invocacin.
Mltiples estilos de comunicacin
(sincrnica y asincrnica).
Extensibilidad.
Web Services Ventajas
Aumenta la interoperabilidad entre programas
independientemente de la plataforma en donde
ejecutan.
Fomentan los estndares y protocolos basados en
texto, que hacen ms fcil acceder a su contenido y
entender su funcionamiento.
Al emplear HTTP, pueden utilizar un sistema firewall
sin cambiar las reglas de filtrado.
Aumenta la interoperabilidad entre servicios y
programas de diferentes compaas y ubicados en
diferentes lugares geogrficos.
Permiten la interoperabilidad entre plataformas de
distintos fabricantes.
Aportan gran independencia entre la aplicacin que
usa el Web Services y el propio servicio.
Web Services Desventajas

Su rendimiento es bajo por el uso de


protocolos y estndares basados en
texto.
Al basarse en HTTP, pueden esquivar
medidas de seguridad basadas en
firewall.
Web Services
SOA
REST
Web Services
SOA (Service-Oriented Architecture):
XML: describe sus mtodos y
atributos.
SOAP: permite que una aplicacin
interaccione con el Web Services.
HTTP: se encarga de transportar los
mensajes por Internet.
REST (REpresentational State
Transfer):
Mtodos HTTP (GET, POST, DELETE,
PUT)
Web Services - SOA
SOAP (Simple Object Access Protocol):
Protocolo sobre el cual se establece el
intercambio.
XML (Extensible Markup Language): Es el
formato estndar para los datos que se vayan a
intercambiar.
HTTP (Hypertext Transfer Protocol): Protocolo
de transferencia.
WSDL (Web Services Description Languages):
Es el lenguaje XML que define la descripcin de
los requisitos funcionales necesarios para
establecer una comunicacin con los Web
Services (interfaz pblica).
UDDI (Universal Description, Discovery and
Integration): Protocolo para publicar la
informacin de los Web Services. Permite
comprobar cuales Web Services estn
disponibles.
Web Services SOA
En JAVA: JAX-WS (Java API for XML Web
Services)
Utiliza el formato SOAP
Mensajes XML
Lenguaje de descripcin de las operaciones del
servicio (WSDL)
Contrato formal entre servicio y el cliente que lo
consume.
Soporte a protocolos de SOA para
requerimientos no funcionales: seguridad,
direccionamiento, transacciones, verificacin,
coordinacin.
JAX-WS oculta al programador la complejidad
de SOAP.
Web Services JAX-WS
Requerimientos del servidor:
Java EE?
EJB?
Java SE?
Servlet?
Aplicacin Web?
Web Services JAX-WS
Tipos de WS:
Simple
Cliente de EJB
Web Services JAX-WS
Cmo se define un web Service
SOA en Java?
Se crea una clase Java con Anotaciones
especficas para Web Services
Web Services JAX-WS
Java:
Paquete javax.jws
@WebService(serviceName =
"NombreWS")
@WebMethod(operationName =
nombreMet")
@WebParam(name = nombrePar")
Web Services JAX-WS
Cmo se consume un web Service
SOA en Java?
Se crea un cliente de web service que
referencie al server
Requiere la creacin de varias clases (para
el servicio, para los mtodos, para la
infraestructura del servicio)
Requiere importar las libreras especficas
para JAX-WS
En otras plataformas?
APIs, Frameworks