Web Services en Sakai Universidad Pública de Navarra Daniel Merino Echeverría (Centro Superior de Innovación Educativa)
SOA ● SOA: Service Oriented Architecture. – Arquitectura de servicios con: ● Acoplamiento débil. ● Alta interoperabilidad. – Software “plug and play”. – Una SOA se puede construir con Web Services.
Web Services ● Servicios basados en web. – Módulos autónomos. – Tienen funciones muy concretas. ● Modularidad e interoperabilidad. ● Independencia del lenguaje. – El único standard es el intercambio de datos.
Web Services - Tecnologías ● XML: Formato de los datos. ● SOAP: Intercambio de datos. ● UDDI: Listado de los servicios. ● WSDL: Descripción de los servicios. ● Axis: Framework que usa todo lo anterior.
Un vistazo rápido
Ventajas ● Interoperabilidad. ● Independencia de plataforma y lenguaje. – Standards de comunicación aceptados. ● Facilidad de desarrollo y uso. – Basado en HTTP. – Los proxies y firewalls no estorban.
Desventajas ● Lentitud. – El protocolo HTTP no es rápido. – El XML no está optimizado. ● Poca seguridad implícita. – Las reglas de los firewalls no sirven.
Sakai y los WS. ● Sakai fomenta el uso de Web Services. – Tiene varios ya incluidos de serie. – Documentación en el libro de Sakai. –
Para qué pueden usarse? ● Automatización de tareas. – Si puede hacerse manualmente, puede hacerse con un Web Service. – Cada herramienta de Sakai tiene su API. ● Gran relación entre esfuerzo y resultado.
Relación esfuerzo/resultados ● Muy buena. ● Programación relativamente sencilla. – Esqueletos ya creados. – Ejemplos ya preparados. ● Tareas automatizadas. – Gran ahorro de esfuerzo de administración.
API de Sakai ● ● Cada versión de Sakai tiene su javadoc. ● Todo lo necesario está ahí.
Configuración de Sakai. ● Un pequeño paso para habilitarlos. ● En /sakai/sakai.properties: – webservices.allowlogin=true ● Sólo un admin puede ejecutarlos.
Web Services existentes. ● En /webapps/sakai-axis/ ● Sale más rápido añadir el método a uno existente. ● SakaiScript.jws es el idóneo.
● Lo añadimos al SakaiScript.jws. El método.
Debug del método. ● Llamamos al WSDL. ● Ej: /sakai-axis/SakaiScript.jws?wsdl ● Se mostrará el XML devuelto. ● Si no da error, el método compila bien.
Cliente ● Puede ser escrito en cualquier lenguaje. – Perl – Java – Python
Cliente Java - Imports ● Classpath con jars de Apache Axis: – axis.jar – jaxrpc.jar – saaj.jar – wsdl4j jar – log4j jar – commons-logging jar – commons-discovery-0.2.jar
Cliente Java - Código
Ejemplo práctico ● Herramientas synoptic. – Se cogen de una plantilla (!user). – El usuario no puede editarlas. – Los cambios no se pueden propagar. ● La herramienta synoptic.messagecenter. – No la ponemos inicialmente. – Ahora hay que añadirla a unos 1000 usuarios.
sakai.synoptic.messagecenter
Lanzamos el programa
Resultado