Anda di halaman 1dari 65

Grupo #6

Integrantes
Arana Carlos
Pilacuan Michael
Rodriguez Victor
Soto Nube
Valdez Yomayra
QU ES UN WEB SERVICES?

Es una tecnologa que utiliza un conjunto de


protocolos y estndares que sirven para
intercambiar datos entre aplicaciones.

Son aplicaciones de software que pueden ser


descubiertas, descritas y accedidas basadas en
XML y en los protocolos estndar de la Web en las
intranet, extranet y en internet.
QU ES UN WEB SERVICES?
Componentes software independientes de la plataforma e
implementacin que pueden ser:

Descritas usando el lenguaje de descripcin de


servicio,
Publicados a un registro del servicio,
Descubierto mediante un mecanismo estndar (en
tiempo de ejecucin o diseo),
Invocado a travs de una API generalmente sobre la
red,
Combinado con otros servicios.
PARA QU SIRVE UN WEB
SERVICES?
Para tener acceso a informacin y procesos remotos
a travs de aplicaciones web. La finalidad de un
Web Services, es la de ofrecer, vender o alquilar
un proceso y que este pueda ser invocado por otras
aplicaciones sin considerar el lenguaje de
programacin utilizado.
TIPOS DE SERVICIOS WEB
A nivel conceptual, un servicio es un componente
software proporcionado a travs de un endpoint (un
endpoint es cada uno de los "elementos", en nuestro caso
nos referimos a servicios, que se sitan en ambos
"extremos" de la red que sirve de canal de comunicacin
entre ellos. Cuando hablamos de servicios Web, un
endpoint se especifica mediante una URI) accesible a
travs de la red.
A nivel tcnico, los servicios pueden implementarse de
varias formas. En este sentido, podemos distinguir dos
tipos de servicios Web: los denominados servicios Web
"grandes" ("big" Web Services), los llamaremos servicios
Web SOAP, y servicios Web RESTful.
TIPOS DE SERVICIOS WEB
Servicios Web SOAP
Los servicios Web SOAP, o servicios Web "big", utilizan mensajes XML para
intercomunicarse que siguen el estndar SOAP (Simple Object Access Protocol), un
lenguaje XML que define la arquitectura y formato de los mensajes. Dichos sistemas
normalmente contienen una descripcin legible por la mquina de la descripcin de
las operaciones ofrecidas por el servicio, escrita en WSDL (Web Services
Description Language), que es un lenguaje basado en XML para definir las
interfaces sintcticamente.

Servicios Web RESTful


Los servicios Web RESTful (Representational State Transfer Web Services) son
adecuados para escenarios de integracin bsicos ad-hoc. Dichos servicios Web se
suelen integrar mejor con HTTP que los servicios basado en SOAP, ya que
no requieren mensajes XML o definciones del servicio en forma de fichero WSDL
WEB SERVICES

Forma estandarizada de integrar aplicaciones Web usando


los estndares abiertos XML, SOAP, WSDL y UDDI sobre
un protocolo de Internet.
XML se usa para codificar la informacin,
SOAP se usa para transferir la informacin,
WSDL se usa para describir los servicios
disponibles,
UDDI se usa para listar los servicios disponibles.

Los Web Services permiten que diferentes aplicaciones


en diferentes plataformas se comuniquen usando XML.
ARQUITECTURA BSICA DE
PROTOCOLOS DE SERVICIOS WEB
TECNOLOGAS BSICAS PARA SERVICIOS
WEB

CAPA DESCRIPCIN

Transporte de servicios Es la capa que se encarga de transportar los mensajes entre


aplicaciones. Normalmente se utiliza el protocolo HTTP para este
transporte, aunque los servicios web pueden viajar mediante
otros protocolos de transferencia de hipertexto como SMTP, FTP o
BEEP.

Mensajera XML Es la capa responsable de codificar los mensajes en XML de forma


que puedan ser entendidos por cualquier aplicacin. Puede
implementar los protocolos XML-RPC o SOAP.

Descripcin de servicios Se encarga de definir la interfaz pblica de un determinado


servicio. Est definicin se realiza mediante WSDL.

Localizacin de servicios Se encarga del registro centralizado de servicios, permitiendo


que estos sean anunciados y localizados. Para ello se utiliza el
protocolo UDDI.
ELEMENTOS
1. Sintaxis comn para todas la especificaciones =
uso de XML (extensible Markup Language)

Estndar para la definicin de lenguajes de marcas


Flexible y extensible
Metalenguaje usado en Servicios Web para
especificar los lenguajes y protocolos necesarios
Permite definicin de lenguajes para describir
servicios
y representar mensajes intercambiados
2. Mecanismos de interaccin entre extremos = uso de
SOAP (Simple Object Access Protocol)

Necesidad de un formato de mensajes neutro, abierto y


extensible.
Representacin de mensajes de invocacin
(argumentos) y respuesta (valor retorno) como
documentos XML.
Especificacin del modo de interaccin: sncrono
(RPC: peticin-respuesta) y asncrono (peticin).
Mapeo de los mensajes en el protocolo de transporte
(HTTP, SMTP)
3. Lenguaje comn para describir los servicios =
uso de WSDL (Web Service Description
Language)

Descripcin de los servicios y sus interfaces de


forma estndar mediante documentos XML
Especifica cada operacin disponible, con sus
parmetros de entrada y de salida
Especificar informacin sobre la localizacin del
servicio (URIs)
4. Publicacin y localizacin de servicios = uso de
UDDI (Universal Description, Discovery and
Integration)

La descripcin de los servicios (documentos WSDL)


se almacena en un directorio de servicios

UDDI especifica cmo:


- se publican y descubren los servicios
- trabajan los directorios de servicios Web
ESCENARIO COMN PARA ESTAS
TECNOLOGAS
CARACTERSTICAS DE SOAP:

No esta asociado con ningn lenguaje


No se encuentra asociado a ningn
protocolo de transporte
Aprovecha los estndares existentes en
la industria
Permite la interoperabilidad entre mltiples
entornos
MENSAJES SOAP
Mensajes orientados al documento: Contienen cualquier tipo de
contenido que queramos enviar entre aplicaciones.

Mensajes orientados a RPC: Este tipo de mensajes servir para invocar


procedimientos de forma remota (Remote Procedure Calls). Podemos verlo
como un tipo ms concreto dentro del tipo anterior, ya que en este caso
como contenido del mensaje especificaremos el mtodo que queremos
invocar junto a los parmetros que le pasamos, y el servidor nos deber
devolver como respuesta un mensaje SOAP con el resultado de invocar el
mtodo.

Puede ser utilizado sobre varios protocolos de transporte, aunque est


especialmente diseado para trabajar sobre HTTP.
ELEMENTOS DE UN MENSAJE SOAP
Un sobre (Envelope), que describe el mensaje, a
quien va dirigido, y cmo debe ser procesado. El
sobre incluye las definiciones de tipos que se usarn
en el documento. Contiene una cabecera de forma
opcional, y el cuerpo del mensaje.
Una cabecera (Header) opcional, donde podemos
incluir informacin sobre el mensaje. Por ejemplo,
podemos especificar si el mensaje es obligatorio
(debe ser entendido de forma obligatoria por el
destinatario), e indicar los actores (lugares por donde
ha pasado el mensaje).
El cuerpo del mensaje (Body), que contiene el
mensaje en si. En el caso de los mensajes RPC se
define una convencin sobre como debe ser este
contenido, en el que se especificar el mtodo al que
se invoca y los valores que se pasan como
parmetros. Puede contener un error de forma
opcional.
Un error (Fault) en el cuerpo del mensaje de forma
opcional. Nos servir para indicar en una respuesta
SOAP que ha habido un error en el procesamiento
del mensaje de peticin que mandamos.
ELEMENTOS DE UN MENSAJE
SOAP CON ANEXOS

El anexo (Attachment), puede contener cualquier tipo de contenido


(incluido el XML). De esta forma podremos enviar cualquier tipo de
contenido junto a un mensaje SOAP.
WSDL (WEB SERVICES
DESCRIPTION LANGUAGE)

WSDL describe un servicio utilizando varios elementos (etiquetas xml).


Dichos elementos podemos clasificarlos como abstractos o concretos.
PARTE WSDL ABSTRACTA
La parte WSDL abstracta describe las operaciones y mensajes con detalle.
En otras palabras, la parte abstracta de un WSDL especifica QU hace el
servicio:

Qu operaciones estn disponibles


Qu entradas, salidas, y mensajes de error tienen las operaciones
Cules son las definiciones de los tipos para los mensajes de entrada,
salida y error

En el mundo Java, podemos pensar en la parte abstracta de un WSDL como


en la definicin de una interfaz o una clase abstracta, con la definicin de
sus mtodos, pero no sus implementaciones. La parte abstracta de un WSDL
contiene dos componentes principales:
Las operaciones que forman la definicin de la interfaz
Los tipos de datos para los parmetros de entrada, salida y error, de las
operaciones
PARTE WSDL CONCRETA
La parte WSDL concreta describe el cmo y dnde del servicio:

Cmo tiene que llamar un cliente al servicio


Qu protocolo debera usar
Dnde est disponible el servicio

En el mundo Java podemos pensar en la parte concreta de un WSDL


como en la implementacin de la parte abstracta, aunque en trminos de
servicios Web, solamente describe dnde se encuentra dicha
implementacin para utilizarse. La parte concreta de un WSDL contiene
dos componentes principales:

Informacin de enlazado (binding) sobre el protocolo a utilizar


La direccin en donde localizar el servicio
ELEMENTOS WSDL (TANTO LA PARTE
ABSTRACTA COMO LA CONCRETA):
definitions: Es el elemento raiz y permite especificar el espacio de
nombres del documento target namespace, el nombre, y otros prefijos
utilizados en el documento WSDL.
types: Se utiliza para definir los tipos de datos que se intercambiarn en
el mensaje.
message: Define los distintos mensajes que se intercambiaran durante el
proceso de invocacin del servicio.
portType: Contiene una coleccin de una o ms operaciones.
binding: Indica el protocolo de red y el formato de los datos para las
operaciones de un portType.
service: Define el servicio como una coleccin de elementos port a los
que se puede acceder. Un port se define asociando una direccin de red
con un binding, de los definidos en el documento.
ESTRUCTURA DE UN SERVICIO
WEB
EJEMPLO:
CMO FUNCIONA?
Para explicar como funciona tomaremos como ejemplo una
agencia de viajes, que para atender a sus clientes requiere de
informacin del clima, tipo de cambio, precios de pasajes entre
otros. Es claro que para contar con esta informacin, la agencia
implemente sistemas especializados, distrayendo sus esfuerzos en
tareas no centrales de su negocio. Lo ideal sera utilizar fcil y
rpidamente la informacin de otras empresas especializadas en
estos temas. Y como hemos mencionado esto es factible a travs
de la implementacin de componentes de software tanto en
el servidor de la agencia de viajes, como en los servidores de las
entidades especializadas, de tal manera que puedan comunicarse a
travs de Internet o de cualquier otro medio y bajo
un lenguaje comn, puedan intercambiar informacin. Estos
componentes son los Web Services.
SERVICIOS WEB SOAP Y JAVA
EE
La especificacin JSR-109 (Implementing Web Services), define el modelo de
programacin y arquitectura del soporte de ejecucin (run-time) para
implementar servicios Web en Java.

La especificacin de Java EE para servicios Web define una serie de relaciones


arquitectnicas requeridas para dichos servicios. Se trata de relaciones lgicas
que no imponen requerimiento alguno para el proveedor del contenedor sobre
cmo estructurar los contenedores y los procesos. Como aadido para la
plataforma Java EE se incluye un componente port que depende de la
funcionalidad de contenedor proporcionada por los contenedores web y
EJB, y del transporte SOAP/HTTP.
ARQUITECTURA JAVA EE
SERVICIOS WEB PARA JAVA
EE

Los servicios Web para Java EE requieren que un componente


Port pueda ser referenciado desde un cliente, as como desde los
contenedores web y EJB. No se requiere que haya un Port
accesible desde un contenedor de applets.

Los servicios Web para Java EE pueden implementarse de dos formas:


como una clase Java que se ejecuta en un contenedor Web (segn el
modelo de programaci definido en JAX-WS, y que veremos ms
adelante), o como un EJB de sesin stateless o singleton en un
contenedor EJB.
LOS SERVICIOS WEB DESDE LA
VISTA DEL CLIENTE

La vista del cliente de un servicio Web es bastante similar a la de un


Enterprise JavaBean. Un cliente de un servicio Web puede ser otro servicio
Web, un componente Java EE (componente web,componente EJB),
incluyendo una aplicacion cliente Java EE, o una aplicacin Java arbitraria.

El cliente de un servicio Web puede ser remoto (no se requiere que resida en
la misma mquina que el servicio Web) y se proporciona una total
transparencia al respecto (el cliente no puede distinguir si est accediendo a
un servidor local o remoto).
La siguiente figura ilustra la vista del cliente de un servicio Web,
proporcionada por el proveedor del componente Port y el contenedor en el
que ste reside. Adems se incluye la clase/interfaz Service (SI: Service
Interface), y la interfaz del Endpoint del servicio (SEI: Service Endpoint
Interface).

Vista de un cliente de un servicio Web


La clase/interfaz Service (SI) define los mtodos que un cliente puede utilizar
para acceder a un Port de un servicio Web. Un cliente NO crea o destruye un
Port. Utiliza la clase/interfaz Service para obtener el acceso a un Port. La
clase/interfaz Service se define en la especificacin JAX-WS, pero su
comportamiento viene definido en el documento WSDL proporcionado por el
proveedor del servicio Web. Las herramientas de despliegue del contenedor
proporcionan una implementacin de los mtodos de la clase/interfaz Service
generada por JAX-WS.

El cliente accede a una implementacin de un servicio Web utilizando el SEI.


Dicho SEI es especificado por el proveedor del servicio. Las
herramientas del despliegue y el run-time del contenedor proporciona las
clases en la parte del servidor que van a atender las peticiones SOAP sobre la
implementacin de dicho servicio de los mtodos especificados en el SEI.

Un Port no tiene identidad para el cliente, que lo debe considerar como un


objeto sin estado.
CREANDO UN SERVICIO WEB
SOAP EN JAVA CON NETBEANS
EL HOLA MUNDO DEL WEB
SERVICE (SOAP)
UDDI: Universal Description, Discovery and
Integration. (Repositorio de WS) ah se
publican
WSDL: Interfaz del WS, Mtodos, retorno y
parmetros, y la direccin real
.php: Realiza la operacin
FASE I:
CONFIGURAR EL
SERVIDOR
Este corresponde al computador donde
se van a publicar los servicios que luego
el cliente va a consumir
PASO 1: ACTIVAR LIBRERA
Activar la librera php_soap.dll ubicado en php.ini
(Quitar ;)

Reiniciar todos los servicios


Verificamos en php.info
PASO 2: CREAR LOS SIGUIENTES
ARCHIVOS
PASO 2.1: CARPETA CLASSES
logic.class.php:
PASO 2.2: ARCHIVO INDEX.PHP
(OPCIONAL)
PASO 2.3: CARPETA LIB
Se encuentra en el DropBox:
PASO 2.4: ARCHIVO
SERVER.PHP
PASO 2.5: ARCHIVO WSDL.PHP
FASE II:
CONFIGURAR EL
CLIENTE
Este corresponde al cliente que va a
consumir el WS
INDEX.PHP
INDEX.PHP
HTTP://LOCALHOST/WS/CLIENT
/

Anda mungkin juga menyukai