ORQUESTACION DE SERVICIOS WEB
MODELO LINDA
SERVICIOS WEB:
Un servicio web es
un sitio en la web que nos ofrece la posibilidad de realizar una o múltiples
tareas a través de él. Mientras que con un programa común, todas las tareas se
realizan en nuestro equipo, cuando utilizamos un servicio web lo que hacemos es
dar las instrucciones a realizar y recibir el resultado. Y esa tarea se realiza
en otra pc.
Para usar un servicio web, todo lo que
tenemos que hacer es entrar a su dirección por medio de nuestro navegador. Sin embargo, existen programas que
nos permiten usar servicios concretos sin necesidad del navegador, sólo con ellos y una conexión a
Internet. Un programa así, recibe el nombre de cliente.
Servicios
web hay muchos, y cada vez se están apareciendo más. Hoy día, podemos hacer
casi cualquier cosa empleando tan sólo un navegador para acceder a un servicio:
retocar
imágenes, editar vídeos, crear hojas de cálculo, etc.
Para la utilización de
servicios web es necesario estandarizar la programación con xml. El propósito de
un servicio web es dar apoyo a la programación de software grandes como
detallados (pequeños).
ORQUESTACION DE UN SERVICIO WEB:
La orquestación de
servicios web se basa mas en enfocarse en la actividad de un solo usuario
teniendo en cuenta como un director no hay q confundir con coreografía de
servicio web que mas se basa en la interacción de los usuarios. Gracias a la orquestación
se puede saber que servicio web se puede
utilizar en que momento determinado teniendo en cuenta entradas y salidas
Resumiendo las
facilidades de manejar este lenguaje tenemos:
§
Un mecanismo de correlación de mensajes basado en propiedades.
§
Variables del tipo XML y WSDL.
§
Un modelo de lenguaje extensible de componentes para permitir escribir
expresiones y consultas (queries) en múltiples lenguajes: BPEL soporta Xpath 1.0
predeterminadamente.
§
Construcciones de programación estructurada incluyendo
"if-then-elseif-else", "while", "sequence"
(posibilita la ejecución de comandos en orden) y "flow" (posibilita
la ejecución de comandos en paralelo).
§
Un sistema de ámbito (scoping) que permite el encapsulamiento de
lógica con variables locales, manejadores de fallo, manejadores de
compensación y manejadores de eventos.
OBJETIVOS DEL USO DE SERVICIOS WEB
Definir procesos de negocio utilizando un lenguaje
basado en XML.. Definir una serie de conceptos de orquestación de servicios Web
que pretenden ser usados por vistas internas o externas de un proceso de
negocio. Proveer sistemas de control jerárquicos Brindar la posibilidad de la
creación y terminación implícitas de instancias de procesos, como un mecanismo
básico de ciclo de vida. Operaciones avanzadas de ciclo de vida como por
ejemplo "suspender" y "continuar" pueden agregarse en
futuras versiones para mejorar el manejo del ciclo de vida. Definir un modelo
de transacción de largo plazo que se base en técnicas probadas tales como
acciones de compensación y ámbito, de tal manera a brindar recuperación a
fallos para partes de procesos de negocios de largo plazo.
Todo lo anterior se puede resumir en que se usan los
servicios Web como modelo para la descomposición y ensamblaje de procesos
usando estándares de servicios Web . para el uso de procesos ya sea diferente
su objetivo.
ELEMENTOS:
En un lenguaje BPEL
intervienen:
·
Socios.:Son
los servicios web invocados por un proceso.
·
Variables.
:Son recipientes de los datos de un proceso.
·
Actividades:
Invoke. Invocar una operación en un
servicio web.
Receive. Esperar a la recepción de una
invocación sobre una
operación del sitio web.
nReply. Generar la respuesta de una
operación
entrada/salida.
Wait. Esperar un tiempo.
Assign. Asignar valores a variables.
Throw. Lanzar excepciones.
Terminate. Terminar la instancia.
Empty. No hacer nada.
·
Manejadores:
De
fallos (Fault
Handlers). Se ejecutan cuando se lanza una excepción.Similar al manejo de
excepciones en lenguajes deprogramación.
De compensación (Compensationhandlers). Se ejecutan
para deshacer una operación.
Relacionados con el
tratamiento de transacciones.
De
eventos. Se ejecutan
cuando se recibe un mensaje particular o se produce una
determinada alerta.
MODELO LINDA:
Es un modelo de comunicación
asincrónica entre procesos compartiendo datos (metiendo y sacando datos de un
espacio) q recibe el nombre de tuplas las cuales están listadas, separadas por
comas y encerradas entre parentesis
Ejemplo de tuplas
("Nueva York","Los
Angeles",2001/12/14,media-mañana)
(veh´ıculo1,42.46583,-2.42716)
("Miguel
Cervantes","El Quijote")
(vuelo,Madrid,Londres,10:00,12:00)
Se utiliza para modelos
abiertos y cerrados. Se basa en comandos que dicen al servicio web como usar la
tupla:
COMUNICACIÓN
ASINCRONICA: Es
cuando los procesos se comunican enviando o recibiendo mensajes a través de
canales ( donde se ejecuta el programa). LINDA lo que hace es que le da la opción
al que recibe la información de escoger lo que va a recibir es decir leo solo
determinados mensajes ya que solo quiero algunos ya que no me interesan todos.
CARACTERISTICAS
DEL MODELO LINDA:
Es un lenguaje de coordinación
basado en un espacio lógico de memoria compartida
( TUPLAS).
Los procesos se
coordinan introduciendo tuplas en el espacio, retirándolos de manera selectiva
y consultado la existencia de tuplas en ese espacio.
TUPLAS Son listas sin
anidamientos.
OPERACIONES
BASICAS SOBRE TUPLAS:
write(t) (out)
t es una tupla; el
proceso deposita la tupla y sigue (no bloqueante)
take(p)
(in)
p es un patrón; el
proceso se bloquea hasta que el espacio de tuplas le asigna una que corresponda
al patrón. la tupla es quitada del espacio de tuplas
Read(p) (rd)
versión del “take” en
que la tupla que le es asignada no se elimina del espacio de tuplas puede haber
varios read simultáneos
CONCLUSIONES:
BPEL sigue las ideas
básicas de los sistemas de gestión de flujos, y las aplica para la orquestación
de Servicios Web.es también bastante próximo a JAVA. Las implementaciones existentes
compilan los flujos a JAVA. Está pensado para que los procesos sean creados gráficamente ya que crearlos directamente en XML no es factible
para procesos complejos EL modelo linda colabora para que el usuario pueda escoger
que tupla utilizar de todo un conjunto ya que puede estar compartiendo el mismo
espacio de almacenaje de tuplas al que acceden otros procesos.
Bibliografia:
http://iaaa.cps.unizar.es/docencia/SWD/IV.I.3.ModeloCoordinacionLinda.pdf
http://www.tic.udc.es/~fbellas/teaching/adoo-2003-2004/Tema6Apartado6.2.pdf
No hay comentarios:
Publicar un comentario