miércoles, 14 de noviembre de 2012

ORQUESTACION DE SERVICIOS WEB y EL MODELO LINDA


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).


grafico de interoperación de los servicios web


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 localesmanejadores de fallo, manejadores de compensación y manejadores de eventos.
§  Ámbitos serializados para controlar los accesos a las variables.
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