Evaluación de plataformas para

Slides:



Advertisements
Presentaciones similares
Web Services.
Advertisements

Servicios Web.
"java del lado del servidor" Servlet y JSP Java Server Pages.
INFOPATH.
STRUTS, IBATIS Y AJAX PARA LA GESTIÓN INTEGRAL DE UN TALLER MECÁNICO
J2EE Java Enterprise edition eilin chang Matthew pabon Gabriel vega.
Eddy Bermudez.   conservación del aviso de copyright.  no es una licencia copyleft  no requiere la redistribución del código fuente cuando se distribuyen.
Universidad Nacional de San Juan Facultad de Ciencias Exactas, Físicas y Naturales “WEB SERVICES” Integrantes: Ene Adriana Guevara Vanina Martínez Cintia.
Web Services bajo J2EE WASP Server for Java de Systinet
Programación Java y Desarrollo de Aplicaciones Modulo 3 Lenguaje de programación Java Software utilizado.
Algoritmos y Programación III
Álvaro Navarro Barquero. Alejandro Rodríguez Jiménez.
Integrantes Miguel Betancourt Alexis Tacuri.  Activiti es una plataforma para la formación de flujos de trabajo y procesos empresariales dentro del.
1.  Tomcat es un contenedor web basado en el lenguaje Java que actúa como motor de servlets y JSPs.  Se ha convertido en la implementación de referencia.
Entorno de Trabajo e Introducción a Java Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Práctica 1.
Hacer clic para comenzar. Reunión Especializada de Organismos Gubernamentales de Control Interno del Mercosur Foro Un espacio para el diálogo.
Sistema de control de versiones CVS y Subvesion. Definición: Control de versiones Un sistema de control de versiones es un sistema de gestión de múltiples.
APACHE LICENSE Ronald Chacón Carlos López Leonardo Páez Adriana Rodríguez Universidad De La Salle Bogotá, Agosto 18 de 2011.
T APESTRY Framework Java para Aplicaciones Web. Q UÉ ES T APESTRY Framework de Java, actualmente en su versión 5 (5.1 estable, 5.2 alpha) Implementa MVC.
Diseño y Programación Orientados a Objetos1 Introducción a Java.
Repositorio Institucional La necesidad de poder organizar, conservar y difundir todo material de manera digital nos impulso a buscar herramientas tecnológicas.
San Juan Bautista Tuxtepec, Oaxaca a 01 de Septiembre de 2016 INSTITUTO TECNOLÓGICO de Tuxtepec PROGRAMACION EN AMBIENTE CLIENTE-SERVIDOR CORBA PRESENTA:
¿Que es PHP? PHP Hypertext Preprocessor Y solo porque me quiero hacer el profesor cool y meter un chiste: PHP también significa: Para Hacer Páginas.
PROGRAMACIÓN ORIENTADA A OBJETOS SEGUNDA UNIDAD: “CLASES, OBJETOS Y MÉTODOS” IRVING YAIR SALAS CHÁVEZ ING. EN SISTEMAS COMPUTACIONALES - ITSLP.
Pruebas de Funcionalidad de Software: Caja Negra y Caja Blanca Curso: Diseño de Sistemas 9no. Semestre.
BASE DE DATOS EN LA WEB POR- OSIRYS MARCIAGA JESUS NIETO.
UNIVERSIDAD NACIONAL DE CHIMBORAZO NOMBRE:ERIKA SALAO PRIMERO:A ESCUELADE:EDUCACION BASICA DOCENTE: FERNANDO BUFANTE AÑO LECTIVO Es un sistemas.
INGENIERÍA DE INFORMACIÓN Y APLICACIONES
Diseño y Programación Orientados a Objetos
Iniciación a Android Dia 1: Instalación Android Studio - 1h
Operadores Java es un lenguaje rico en operadores, que son casi idénticos a los de C/C++.
CMS: sistema de Gestión de Contenidos
Diseño y Programación Orientados a Objetos
Instalación y configuración de Wordpress
PHP Hypertext Preprocessor
LOS DIFERENTES LENGUAJES DE PROGRAMACION PARA LA WEB
Diseño y Programación Orientados a Objetos
ECLIPSE.
Agustín J. González Programación de Sistemas: ELO-330
Conceptos Básicos de Programación
Etapa Final del Proyecto
MODELO CLIENTE -SERVIDOR
METODOLOGÍA DE SISTEMAS
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno. INTRODUCCIÓN A UML  QUE ES UML?  PARA QUE SE UTILIZA  COMPONENTES  DIAGRAMAS.
Tema 3. Lenguaje unificado de modelado UML
Software Es intangible, existe como información, ideas, conceptos, símbolos, pero no ocupa un espacio físico, se podría decir que no tiene sustancia. Se.
Metodología de la programación
INTRODUCCIÓN A JAVA.
Diseño y Programación Orientados a Objetos
CONCEPTOS PRELIMINARES (Cont)
Modelo de interacción de usuario.  El Desarrollo basado en modelos de la interfaz de usuario, en inglés Model-based User Interface Development (MB-UID),
Conceptos básicos de.NET Explorar el entorno de desarrollo Crear un proyecto Visual Basic.NET Use Visual Studio.NET Acceso a datos Depurar e implantar.
Programación Orientada a Objetos. ¿Qué es un ordenador? “Un sistema digital con tecnología microelectrónica capaz de procesar información a partir de.
Características Generales y Entornos de Desarrollo
Java Enterprise edition
El entorno de Desarrollo de Dev-C++
Proyecto "Las mascotas" Informática 6° Básico.
INTEGRACIÓN DE SISTEMAS DE DIÁLOGO HABLADO EN LA NUEVA GENERACIÓN DE ENTORNOS COMPUTACIONALES DE ACCESO A LA INFORMACIÓN. PROYECTO JUNTA CYL.
PROYECTO DE GRADUACIÓN
Entendiendo PHP En diseño de software en el Front-end es la parte del software que interactúa con los usuarios. Es la persona que se encarga del diseño.
Diseño y Programación Orientados a Objetos
IEEE Estándar para documentación de pruebas de software
HERRAMIENTAS BASICAS DISEÑO SITIOS WEB. CARACTERÍSTICAS Básicamente una página web puede construirse con un simple editor de texto (como puede ser el.
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno. INTRODUCCIÓN A UML  QUE ES UML?  PARA QUE SE UTILIZA  COMPONENTES  DIAGRAMAS.
Diseño y Programación Orientados a Objetos
PROYECTO DE GRADUACIÓN
COCOMO (1) COCOMO Es un modelo sencillo. Cocomo puede ser aplicado a tres tipos de proyectos software. Esto nos da una impresión general del proyecto.
PROYECTO DE GRADUACIÓN
Estructura de Sistemas Operativos
Transcripción de la presentación:

Evaluación de plataformas para el desarrollo de WS Manuel Palomo Duarte Antonio García Domínguez

Índice Evaluación de herramientas Active BPEL Engine, Glassfish (OpenESB), Apache ODE Herramientas complementarias soapUI, Eclipse Web Tools Platform/BPEL, ... Creación de mockups BPELUnit, WSDL2Java, respuestas SOAP, ... Trabajo futuro Comentarios finales

Evaluación de sistemas Active BPEL Engine (+ Tomcat + JDK 5) Sistema completamente libre: Active BPEL: GPL + LGPL + posiblemente otras Tomcat: Apache License Se analiza la estructura de los .bpr: Incluyen los ficheros .bpel, .wsdl, .ppd, referencias a WSDL externos El .ppd indica, con WS-Addressing dónde está y cómo acceder a cada partner Plataforma elegida

Evaluación de sistemas Glassfish (OpenESB) También libre Glassfish Incorpora un servidor de aplic. J2EE pero necesita un motor BPEL Glassfish + OpenESB (+ NetBeans) Es muy pesado (incorpora CORBA, BBDD, ...) El editor que trae para BPEL, WSDL, etc está muy bien

Evaluación de sistemas Apache ODE (+ Tomcat) También libre No tiene interfaz web para controlar los servicios (hay que hacerlo desde Axis) El despligue de un proceso BPEL es similar a ActiveBPEL Se ve menos maduro que ActiveBPEL (acaba de publicarse su primera versión estable)

Herramientas complementarias soapUI Eclipse Web Tools Platform: Permite trabajar con Ajax, Xml, EJB, ... (pero no BPEL) Eclipse BPEL: Quiere proporcionar soporte para crear, editar, probar y depurar procesos BPEL No está desarrollado completamente todavía Será independiente del motor BPEL soapMonitor (pertenece a Axis2) ActiveBPEL Designer

Ejecución de casos de prueba BPEL es un lenguaje concurrente: Al llegar determinados mensajes se crean instancias paralelas Cada servicio puede tener una respuesta para cada caso de prueba (sin relación 1 a 1 con las entradas que reciba) Solución: Tener en cada momento una sola instancia en ejecución y preparar el entorno (mockups) específico para ella

Control de Estado Uno de los retos es el control de estado: Puede ser que quiera invocar dos veces un mismo servicio con iguales parámetros pero que cada vez me de un valor distinto. Ejemplos: Predicción meteorológica Seleccionar datos aleatorios de un conjunto Se puede solucionar añadiendo marcas de tiempo y correlación (hay que cambiar el WSDL) ¿Los ejemplos de BPEL lo necesitan?

Creación de mockups Varias alternativas Crear procesos BPEL Crear WS mockups WSDL2Java (del proyecto Apache AXIS2) Apache CXF, ZoleraSOAP (no evaluados) Crear respuestas SOAP Hacerlas nosotros (necesita servidor HTTP + Proxy) Sistemas ya realizados (para usar) Usar BPELUnit Usar custom calls de ActiveBPEL

Mockups BPEL Ventaja: Es muy fácil realizar un procesos BPEL que al recibir un mensaje devuelvan otro Pueden implementar estado con un bucle de espera de mensajes. Probado en ActiveBPEL, pero aviso de falta de correlación (lo soluciona incrustando un ID en la cabecera SOAP) Problema: Hay que instalarlos, desplegarlos y lanzar una instancia para cada caso de prueba

Mockups WS: WSDL2Java WSDL2Java Funciona: Se invoca wsdl2java.sh Se pone la respuesta que dará en un método Se compila y se instala Para que nos sirviera habría que convertir la especificación del caso de prueba a código Java para incluirlo en el método Implementar el control de estado parece fácil Algunas opciones cambian de AXIS a AXIS2

Respuestas SOAP propias Como SOAP va sobre HTTP hay que tener un servidor HTTP: Tomcat es pesado y no es fácil de manejar Sería mejor un servidor ligero que pueda dar respuestas HTTP predefinidas: Fallo, WS no encontrado, conexión con el WS, timeout... Se implementa dicho servidor Se crea las respuestas SOAP automáticamente indicando su cuerpo

Ejemplo de respuesta SOAP <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Body> <ns2:servicioAsesorRiesgoOperationResponse xmlns:ns2="http://j2ee.netbeans.org/wsdl/servicioAsesorRiesgo"> <riesgo>bajo</riesgo> </ns2:servicioAsesorRiesgoOperationResponse> </soapenv:Body> </soapenv:Envelope>

Uso de BPELUnit Permite hacer pruebas unitarias de procesos desplegados en BPEL Se puede incorporar el motor ActiveBPEL a BPELUnit (es GNU/GPL) Podría facilitar el desarrollo: Integración con Eclipse, tareas para Ant Se han ejecutado varios casos de prueba sobre él correctamente Línea de trabajo hasta ahora, parece interesante

Demostración uso de BPELUnit Requisitos software: BPELUnit 1.0 (la más reciente) ActiveBPEL 4.1 (motor BPEL) Tomcat 5.5.25 (contenedor servlets) Ant 1.7.0 Sun JDK 5.0 o superior (incluye JVM) Configuración: BPELUNIT_HOME tiene la ruta a BPELUnit CATALINA_HOME tiene la ruta a Tomcat JAVA_HOME tiene la ruta a la JVM

Uso custom ActiveBPEL ActiveBPEL incorpora custom invoke handler: Se enlaza/asocia (bind) las definiciones WSDL al manejador que indiquemos (escrito en Java) El motor no invoca al servicio, sino el código Java de su máquina que tiene asociado Descubierta esta semana, no evaluada por ahora

Trabajo futuro I Analizador del árbol XML de BPEL: Permite conocer valores límite Permite instrumentar el código Según parece está ya realizado por Antonia Reina, miembro del proyecto (US) Incluir asertos en el código BPEL: El estándar permite extender BPEL Hay que buscar una sintaxis adecuada BPELUnit usa expresiones XPath booleanas

Ejemplo XPath <sendReceive port="BookingProcessPort" operation="process" service="client:BookingProcess"> <send> <data> <client:bookme> <client:employeeID>848</client:employeeID> </client:bookme> </data> </send> <receive> <condition> <expression> client:bookinganswer/client:booked/text() </expression> <value>'true'</value> </condition> </receive> </sendReceive>

Trabajo futuro II Instrumentador de código BPEL Analizar las variables de la composición Enviar sus valores a WS de log antes y después de cada operación de interés Añadir características de BPEL a Daikon Timeout, compensaciones, etc ¿Los ejemplos de BPEL necesitan control de estado? Si usamos ejemplos sencillos no

Comentarios finales Cuidado con el código que usamos: El estándar final BPEL 2.0 ha cambiado algunos detalles de la sintaxis: Asignaciones con Xpath (no getVariableData) Atributo query ahora es un elemento anidado Hay ejemplos BPEL que usan extensiones de algunos motores concretos (Oracle BPEL)