Taller de. Creación de herramientas. Alexandre Ballesté ASIC UdL 17 de Junio 2008



Documentos relacionados
Desarrollo de herramientas para el framework Sakai

ATLAS MANUAL DE USUARIO DEL ARQUETIPO WEB CON DOCUMENTUM

ATLAS MANUAL DE USUARIO COMPONENTES JSF BUSINESS OBJECTS XI

ATLAS MANUAL DE INTEGRACIÓN

Aproximando el e-learning a la gestión. Barcelona 8 y 9 de Noviembre de 2010

GMF Gestor de incidencias

ATLAS MANUAL DE USUARIO DEL ARQUETIPO WEBSERVICE

ATLAS MANUAL DE USUARIO SERVICIO DE AUDITORIA

Curso de JavaServer Faces

Requisitos técnicos para la instalación. Arquitectura Hardware Arquitectura Software. Instrucciones de instalación GONG-R

LiLa Portal Guía para profesores

Proxy.Net/J2EE. Interoperabilidad de los servicios telemáticos de la Administración Pública de la CAC. Página 1 de 17. Rev.

FRAMEWORK 2 Creación de Servicios Web

GUÍA BÁSICA USUARIO MOODLE 2.6

UNIVERSIDAD DE OVIEDO

Capítulo 4. Mini Tutorial

Configuración servidor Tomcat

Universidad ORT - Arquitectura de Software. Requisitos

Integración Capa Web de pojo-miniportal (1)

Solución de firma de pdf (Servidor) PDF_SIGN Versión 1.4

ATLAS MANUAL DE USUARIO SERVICIO DE TRAZAS

WEBSERVICES CON FIRMA DIGITAL Versión 1.2

ALTAS MANUAL DE USUARIO DEL SERVICIO DE CERTIFICADOS

JAVA EE 5. Arquitectura, conceptos y ejemplos.

Manual del Estudiante

Utilización Crystal Reports 2008 Usando Bussiness Object V4.0

Manual de Integrador.NET

Seguridad no intrusiva con Acegi Security System for Spring

Desarrollo de apps para móviles Android. Entorno de desarrollo

Desarrollo de Servicios Web con JBuilder

Instalación de Apache y sus módulos

Ejercicios - Persistencia en Android: ficheros y SQLite

Ejercicio 4. EJB Sesión - Sistema SGA. Java EE. Ejercicio 4. EJB Sesión Sistema SGA. Curso de Java EE

Manual de NetBeans y XAMPP

Experto Universitario Java Enterprise Spring

UNIVERSIDAD DE OVIEDO

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor.

Marcos de Desarrollo. Diseño e implementación de aplicaciones Web con.net

ATLAS MANUAL DE USUARIO SERVICIO DE AUTENTICACION Y AUTORIZACION

Añadir un tipo nuevo

Manual de Bajus. Gilberto José Vento Alvarez

Gestión Documental PREPARACION DEL ENTORNO DE DESARROLLO

Guía de instalación del software de la asignatura

WEB SERVICES CREACIÓN DEL SERVICIO

PROCEDIMIENTO ESPECÍFICO. Código G Edición 0

Spring. Sesión 7: Seguridad con Spring Security. Experto Universitario Java Enterprise

GUÍA CONFIGURACIÓN MICROSOFT WINDOWS XP

INTEGRACIÓN BPM-LIFERAY SOL

Copyright 2010 Eurohelp

Configuración de Sakai. A.S.I.C. Universidad Politécnica de Valencia

Para poder instalar el producto, tendremos que obtener el instalador apropiado para nuestro entorno hardware y software.

ATLAS MANUAL DE USUARIO SERVICIO DE FUSIÓN

Manual Básico. Usuario Alumno

CREACIÓN DE WEBSERVICES

Tutorial rápido de. acceso a la plataforma virtual

Guía de Apoyo Project Web Access. (Jefe de Proyectos)

Manual de instalación Actualizador masivo de Stocks y Precios

Escrito por Renan Huanca Sábado, 28 de Febrero de :46 - Actualizado Sábado, 28 de Febrero de :09

SIEWEB. La intranet corporativa de SIE

GUÍA CONFIGURACIÓN MICROSOFT WINDOWS 7

Unidad II. - Las técnicas en las que se basó, las categorías de análisis o ejes centrales que permiten guiar el proceso de investigación.

Plataforma de Contratación del Sector Público

CREAR UN SERVICIO WEB BASICO CON JAVA AXIS2. Víctor J. Sosa

Requisitos. Universidad ORT Arquitectura de Software

Práctica 1: Instalación de un servidor de aplicaciones web y diseño de la vista de una aplicación

Escudo Movistar Guía Rápida de Instalación Dispositivos Symbian

ALTAS MANUAL DE USUARIO DEL SERVICIO DE CERTIFICADOS

UNIDESYS UNIVERSAL BUSINESS SYSTEMS INSTALACIÓN NUEVO PUESTO DE TRABAJO

Administración Local Soluciones

Mybatis: alternativa a Hibernate

JOOMLA 2.5 MANUAL USUARIO Gestión de Usuarios

Administración Local Soluciones

GUÍA TÉCNICA. Desarrollo de Sistemas de Información la plataforma Business Intellingence Pentaho

Universidad Tecnológica del Valle del Mezquital. Desarrollo de Aplicaciones Web. Manual JSP

Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. IIC1102 Introducción a la Programación

RUEDA TORRES DULCE CAROLINA 3CM2 HIBERNATE EN UNA APLICACIÓN WEB

gvsig_des_2.x_d: Curso de desarrolladores de gvsig Desktop v 2.x Maven en gvsig Maven en gvsig Novedades de desarrollo en gvsig 2.

openfwpa Internacional Módulo SMS (MSMS)

EXPORTACIÓN E IMPORTACIÓN EN OPENCMS6

cloud.acentur.es Manual de uso de plataforma beacons

Administración Local Soluciones

Guía de Instalación de la JDK y del Eclipse

Hostaliawhitepapers. Redirección 301. Cardenal Gardoki, BILBAO (Vizcaya) Teléfono:

ATLAS MANUAL DE USUARIO ARBOL ACCESIBLE

SEGURIDAD OCTUBRE Versión 1

Tutorial rápido de. acceso a la plataforma virtual

MANUAL DE USUARIO APLICACIÓN SYSACTIVOS

App para realizar consultas al Sistema de Información Estadística de Castilla y León

Manual de instalación del cliente JAVA-WS

ATLAS MANUAL DE USUARIO DEL ARQUETIPO WEB PARA PROYECTOS NEXUS

Windows Embedded Standard 7

UNIDAD DIDACTICA 16 USUARIOS SAMBA EN UN CONTROLADOR DE DOMINIO LINUX SERVER

Ejercicios de validación e internacionalización

ALTAS MANUAL DE USUARIO DEL SERVICIO DE CERTIFICADOS

Especialista Universitario Java Enterprise. Struts. Sesión 4: Introducción a Struts Depto. Ciencia de la Computación e IA

CONCLUISIONES Y RECOMENDACIONES

Administración Local Soluciones

Curso de Java POO: Programación orientada a objetos

Transcripción:

Taller de Creación de herramientas Alexandre Ballesté ASIC UdL 17 de Junio 2008

Guía de la presentación LMS como portal El framework Sakai Construcción de una herramienta Servicios Web en Sakai Herramientas remotas 2

LMS como portal El papel que juega el LMS dentro de las universidades es cada vez más importante. Cada vez existen más fuentes de información y han de ser visibles para los miembros de la comunidad Universitaria. Los problemas que nos encontramos normalmente son: Dispersión en el acceso de la información. Limitaciones técnicas para adaptar soluciones existentes. 3

LMS como portal Usuario Navegador LMS Expedientes / Actas Herramientas de matricula Herramientas de sondeo Recursos digitales... Gestión de espacios y recursos 4

LMS como portal Usuario Navegador LMS Expedientes / Actas Herramientas de matricula Herramientas de sondeo Recursos digitales... Gestión de espacios y recursos 5

El framework Sakai Sakai es un framework dirigido a la enseñanza colaborativa. Las funciones principales de este son las que conocemos como las de Campus Virtual Dispone de un sistema central y de un conjunto de herramientas conectadas a este. 6

El framework Sakai La estructura del LMS Sakai, le permite actuar como figura central del sistema de información Por su naturaleza modular, Sakai permite aumentar su ámbito de acción fácilmente Sakai se distribuye bajo licencia ECL que nos permite usar, estudiar, modificar y redistribuir el producto. 7

El framework Sakai El principal beneficio de este tipo de licencia no es el económico, sino que nos ofrece libertad para: Adaptar nuestro modelo de información. Extender funcionalidades base. Mejorar las funcionalidades existentes. 8

El framework Sakai Sakai nos permite desarrollar/integrar: Aplicaciones web Servicios y componentes Servicios web Herramientas remotas 9

Desarollo El framework de herramientas Sakai La Udl ha desarrollado herramientas como: Cualificación Actas WS sincronización con UXXi Tabla de planificación docente Provider OpenLdap Evaluación del profesorado Gestión de cuentas de directorio LDAP HelpDesk 10

Desarrollo El framework de herramientas Sakai Sakai integra una conjunto de tecnologías que se agrupan en funcionalidades y modelos. Las funcionalidades ayudan a hacer el proceso de desarrollo menos costoso. Los modelos de información proporcionan acceso a información de uso común 11

Desarollo El framework de herramientas Sakai Algunas de las funcionalidades mas importantes: Universal Components Collaborative Tool DB Email Out Memory Cache Presence JSF, RSF, Velocity, etc... Util 12

Desarollo El framework de herramientas Sakai Agunos de los modelos de información mas importantes son: Entity Bus User Authorization Groups Context Usage Events Course Management Alias Site 13

Construcción Desarrollo de una herramientas Aplicaciones internas de Sakai: Se puede integrar a Sakai herramientas web basadas en JSP/Servlets. Cada herramienta ocupa un directorio en la raíz de código de Sakai. Se separa en cuatro partes: Aplicación Modelo o API del servicio Implementación Definición del componente o package 14

Ejemplo de creación de una herramienta básica de Sakai. Creación de una aplicación Uso de los servicios de Sakai Creación de un servicio propio y su uso 15

Antes de nada necesitamos tener configurados y funcionando: Java sdk 1.5 Maven 2.0.5 Sakai 2.5.0 16

Pasos: 1) Crear un directorio en la raíz de sakai-src con el nombre de la herramienta 2) Crear dentro de este un fichero pom.xml (descriptor general del proyecto) 17

La definición del proyecto seria algo así: <?xml version="1.0"?> <project xmlns="http://maven.apache.org/pom/4.0.0"> <modelversion>4.0.0</modelversion> <parent> <artifactid>base</artifactid> <groupid>org.sakaiproject</groupid> <version>2.5.0</version> <relativepath>../pom.xml</relativepath> </parent> <name>ejemplo herramienta Sakai para Taller UdL</name> <groupid>cat.udl.taller</groupid> <artifactid>taller-sakai-tool</artifactid> <packaging>pom</packaging> <modules> <module>taller-app</module> </modules> 18

3) Crear el directorio del módulo (taller-app) 4) Crear el fichero pom.xml (descriptor del módulo de aplicación web): <?xml version="1.0"?> <project xmlns="http://maven.apache.org/pom/4.0.0"> <modelversion>4.0.0</modelversion> <parent> <artifactid>taller-sakai-tool</artifactid> <groupid>cat.udl.taller</groupid> <version>2.5.0</version> <relativepath>../pom.xml</relativepath> </parent> 19

<name>taller-app-sample</name> <groupid>cat.udl.taller</groupid> <artifactid>taller-app-sample</artifactid> <organization> <name>universitat de Lleida</name> <url>http://www.udl.cat/</url> </organization> <inceptionyear>2008</inceptionyear> <packaging>war</packaging> <dependencies> <dependency> <groupid>javax.servlet</groupid> <artifactid>servlet-api</artifactid> <version>${sakai.servletapi.version}</version> </dependency> 20

<dependency> <groupid>commons-logging</groupid> <artifactid>commons-logging</artifactid> <version>1.0.4</version> </dependency> <dependency> <groupid>org.sakaiproject</groupid> <artifactid>sakai-util</artifactid> <version>${sakai.version}</version> </dependency> </dependencies> <build> <resources/> </build> </project> 21

5) Crear la estructura de directorios y ficheros de la aplicación web src java cat webapp udl taller app WEB-INF web.xml TallerServlet.java 22

6) Crear la carpeta tools dentro de webapp 7) Crear el fichero descriptor de aplicación de sakai. (sakai.taller.xml) <?xml version="1.0"?> <registration> <tool id="sakai.taller" title="herramienta del Taller" description="herramienta de ejemplo para la construcción de aplicaciones en sakai" > <category name="course" /> <configuration name="parametro1" value="valor por defecto" /> </tool> </registration> 23

8) Modificar el fichero web.xml Añadir el filtro: <filter> <filter-name>sakai.request</filter-name> <filter-class>org.sakaiproject.util.requestfilter</filter-class> </filter> <filter-mapping> <filter-name>sakai.request</filter-name> <servlet-name>sakai.taller</servlet-name> <dispatcher>request</dispatcher> <dispatcher>forward</dispatcher> <dispatcher>include</dispatcher> </filter-mapping> 24

Los requests serán procesados primero por sakai haciendo posible la integración de una webapp como parte de la plataforma de Sakai. Request al webapp taller Filtro sakai Request filtrado y modificado Webapp taller 25

Añadir el Listener de registro de aplicaciones <listener> <listener-class>org.sakaiproject.util.toollistener</listener-class> </listener> El ToolListener es el encargado de registrar las aplicaciones en Sakai buscando los ficheros xml que están dentro de la carpeta tools de webapp. 26

9) Compilar y desplegar mvn clean install sakai:deploy La aplicación ya esta lista para ser usada. 27

Para probar la aplicación podemos ejecutarla: Entorno de Sakai (Administracion sites) Crear un Site Crear una nueva página Insertar la herramienta Entorno mercury Agregar la opción mercury.enabled = true en sakai.properties Ir a la Url http://sakaiserver:8080/mercury 28

Dos modos de utilizar los servicios de Sakai: Utilizar el ComponentManager Delegar la llamada a los servicios tipo cover 29

El ComponentManager utiliza Spring para gestionar la definición e implementación de Servicios (componentes) Para obtener un componente solo hace falta llamar a ComponentManager.get (id-delcomponente ) 30

La mejor alternativa es usar Servicios cover Los servicios estáticos que utilizan la implementación por defecto definida en Sakai Ex: SiteService.getSite( my-site-id ); 31

Para usar los servicios del ejemplo necesitamos: 1) Añadir los módulos en los que se encuentran definidos como dependencias de nuestra aplicación (taller-app/pom.xml). <dependency> <groupid>org.sakaiproject</groupid> <artifactid>sakai-tool-api</artifactid> <version>${sakai.version}</version> </dependency> 32

<dependency> <groupid>org.sakaiproject</groupid> <artifactid>sakai-site-api</artifactid> <version>${sakai.version}</version> </dependency> <dependency> <groupid>org.sakaiproject</groupid> <artifactid>sakai-authz-api</artifactid> <version>${sakai.version}</version> </dependency> <dependency> <groupid>org.sakaiproject</groupid> <artifactid>sakai-entity-api</artifactid> <version>${sakai.version}</version> </dependency> <dependency> <groupid>org.sakaiproject</groupid> <artifactid>sakai-util-api</artifactid> <version>${sakai.version}</version> </dependency> 33

2) Importar los paquetes cover de cada uno de los Servicios y los elementos de las APIs implicadas import org.sakaiproject.site.api.site; import org.sakaiproject.site.cover.siteservice; import org.sakaiproject.tool.cover.toolmanager; import org.sakaiproject.tool.api.placement; import org.sakaiproject.authz.api.member; 34

3) Utilizarlos mediante los métodos estáticos de los servicios cover: Placement currentplacement = ToolManager.getCurrentPlacement(); Site currentsite = SiteService.getSite(currentPlacement.getContext()); Set <Member> memberset = currentsite.getmembers(); 35

Para la creación de servicios necesitamos: API del servicio Implementación de esta Definición del componente para que Sakai lo registre 36

Los pasos a seguir para la creación del servicio: 1) Crear el directorio para albergar la api (tallerapi) 2) Definir el pom.xml (Descripción del módulo de API) 37

<?xml version="1.0"?> <project xmlns="http://maven.apache.org/pom/4.0.0"> <modelversion>4.0.0</modelversion> <parent> <artifactid>taller-sakai-tool</artifactid> <groupid>cat.udl.taller</groupid> <version>2.5.0</version> <relativepath>../pom.xml</relativepath> </parent> <name>taller-api</name> <artifactid>taller-api</artifactid> <groupid>cat.udl.taller</groupid> <organization> <name>universitat de Lleida</name> <url>http://www.udl.cat</url> </organization> <inceptionyear>2008</inceptionyear> 38

<packaging>jar</packaging> <properties> <deploy.target>shared</deploy.target> </properties> <dependencies/> <build> <resources/> </build> </project> 39

3) Crear la estructura de la API y el servicio (interficie java) : src java cat udl taller api UniversidadDataService.java El servicio proporcionará 2 métodos: public String geturl(); public String getnombre(); 40

4) Modificar el fichero pom.xml del proyecto taller para que incluya el módulo taller API <module>taller-api</module> 41

Para la creación de la implementación y definición del componente: 1) Crear el directorio taller-impl 2) Crear el directorio para la implementación (taller-impl/impl) 3) Crear el directorio para la descripción del componente (taller-impl/pack) 4) Crear en cada directorio los descriptores de los módulos. 42

impl/pom.xml <?xml version="1.0"?> <project xmlns="http://maven.apache.org/pom/4.0.0"> <modelversion>4.0.0</modelversion> <parent> <artifactid>taller-sakai-tool</artifactid> <groupid>cat.udl.taller</groupid> <version>2.5.0</version> <relativepath>../../pom.xml</relativepath> </parent> <name>taller-impl</name> <groupid>cat.udl.taller</groupid> <artifactid>taller-impl</artifactid> <organization> <name>universitat de Lleida</name> <url>http://www.udl.cat/</url> </organization> <inceptionyear>2008</inceptionyear> 43

<packaging>jar</packaging> <properties> <deploy.target/> </properties> <dependencies> <dependency> <groupid>cat.udl.taller</groupid> <artifactid>taller-api</artifactid> <version>${sakai.version}</version> </dependency> <dependency> <dependency> <groupid>org.sakaiproject</groupid> <artifactid>sakai-component</artifactid> <version>${sakai.version}</version> </dependency> <dependency> <groupid>org.sakaiproject</groupid> <artifactid>sakai-component-api</artifactid> <version>${sakai.version}</version> </dependency> </dependencies> <build/> </project> 44

pack/pom.xml <?xml version="1.0"?> <project xmlns="http://maven.apache.org/pom/4.0.0"> <modelversion>4.0.0</modelversion> <parent> <artifactid>taller-sakai-tool</artifactid> <groupid>cat.udl.taller</groupid> <version>2.5.0</version> <relativepath>../../pom.xml</relativepath> </parent> <name>taller-pack</name> <groupid>org.sakaiproject</groupid> <artifactid>taller-pack</artifactid> <organization> <name>unversitat de Lleida</name> <url>http://www.udl.cat/</url> </organization> <inceptionyear>2008</inceptionyear> 45

<packaging>sakai-component</packaging> <properties> <deploy.target>components</deploy.target> </properties> <dependencies> <dependency> <groupid>cat.udl.taller</groupid> <artifactid>taller-impl</artifactid> <version>${sakai.version}</version> </dependency> </dependencies> <build> <resources/> </build> </project> 46

5) En el directorio impl creamos la estructura y ficheros de implementación src java cat udl taller impl UniversidadDataServiceImpl.java 47

La clase UnivesidadDataServiceImpl implementará los dos métodos definidos por la interficie más dos métodos setter para dos propiedades. De estas dos propiedades obtendrán el valor de url y nombre. Los métodos setter los utilizaremos posteriormente para inyectarle valor con el ComponentManager. 48

String institucionurl = null; String institucionnombre = null; /*Setter para la inversrion de control */ public void setinstitucionnombre (String nombre){ institucionnombre = nombre; } public void setinstitucionurl (String url) { institucionurl = url; } /*Getters para implementar los metodos de la interficie*/ public String geturl(){ return institucionurl; } public String getnombre (){ return institucionnombre; } 49

6) En el directorio pack creamos la estructura necesaria y el fichero components.xml src webapp WEB-INF components.xml Es el descriptor de los componentes que implementamos. Utiliza el formato xml de Spring para definir Beans 50

<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="cat.udl.taller.api.universidaddataservice" class="cat.udl.taller.impl.universidaddataserviceimpl" > <property name="institucionnombre"><value>universitat de Lleida</value></property> <property name="institucionurl"><value>http://www.udl.cat</value></property> </bean> </beans> La estructura se desplegará en el directorio components de Tomcat Sakai registrará el componente con el id indicado y pasará a estar disponible a través del ComponentManager 51

7) Modificar el fichero pom.xml del proyecto taller para que incluya el módulo taller-impl/impl y taller-impl/pack 8) Compilar el proyecto con mvn clean install sakai:deploy 9) Rebotar Tomcat El servicio ya está disponible para las herramientas. 52

Para probar el servicio seguiremos los siguientes pasos: 1) Modificaremos taller-app/pom.xml para incluir las dependencias (ComponentManager y API de taller) <dependency> <groupid>org.sakaiproject</groupid> <artifactid>sakai-component</artifactid> <version>${sakai.version}</version> </dependency> <dependency> <groupid>cat.udl.taller</groupid> <artifactid>taller-api</artifactid> <scope>provided</scope> <version>${sakai.version}</version> </dependency> 53

2) Incluir en la aplicación el ComponentManger y la interficie del servicio import org.sakaiproject.component.cover.componentmanager; import cat.udl.taller.api.universidaddataservice; 3) Solicitar al ComponentManager el componente UniversidadDataService uds = (UniversidadDataService) ComponentManager.get("cat.udl.taller.api.UniversidadDataService"); 4) Ejecutar los métodos del servicio uds.geturl() 54

5) Compilar y ejecutar la prueba 55

Para hacer un buen servicio es recomendable proporcionar un servicio tipo cover. Las herramientas podrán utilizarlo sin necesidad de recurrir a los mecanismos que proporciona el ComponentManager 56

Para crearlo tenemos que: 1) Añadir la dependencia a taller-api/pom.xml <dependency> <groupid>org.sakaiproject</groupid> <artifactid>sakai-component</artifactid> <version>${sakai.version}</version> </dependency> 2) Crear una clase con los métodos estáticos correspondientes para obtener la información deseada. 57

3) Proporcionar a la clase un método getinstance para que los métodos mencionados puedan cargar la implementación con ComponentManager y ejecutar el mismo método en la implementación. 58

public static cat.udl.taller.api.universidaddataservice getinstance(){ return (cat.udl.taller.api.universidaddataservice) ComponentManager.get(cat.udl.taller.api.UniversidadDataService.class); } public static String getnombre(){ cat.udl.taller.api.universidaddataservice cs = getinstance(); return cs.getnombre(); } public static String geturl(){ cat.udl.taller.api.universidaddataservice cs = getinstance(); return cs.geturl(); } 59

4) Utilizar en la aplicación el servicio tipo cover de forma estática Ej: UniversidadDataService.getUrl() 60

Tecnologías más usadas para la construcción de aplicaciones web: JSF MyFaces RSF Portlets Velocity... 61

Servicios web en Sakai Servicios Web: Sakai ofrece una serie de recursos que permite crear fácilmente servicios web (WS) que interactuen con la API de Sakai Basados en JWS 62

Servicios web en Sakai Pasos a seguir: 1) Activar la propiedad webservices.allowlogin=true en sakai.properties 2) Crear un fixero jws dentro de sakaisrc-2.5.0/webservices/axis/src/webapp Ejemplo MyService.jws 63

Servicios web en Sakai 3) Importar todos los servicios cover i API que necesitéis: 4) Crear un método establissession para poderlo llamar en cada método del jws private Session establishsession(string id) throws AxisFault { Session s = SessionManager.getSession(id); } if (s == null) { throw new AxisFault("Session "+id+" is not active"); } s.setactive(); SessionManager.setCurrentSession(s); return s; 64

Servicios web en Sakai 5) Crear los métodos necesarios y empezar siempre estableciendo la sesión. public String getnumerousuarios(string sessionid){ Session session = establishsession(sessionid); return "" + UserDirectoryService.countUsers(); } 6) Compilar el proyecto webservice con el comando mvn clean install sakai:deploy 7) Crear un script en python, perl,... para probar el ws. 65

Servicios web en Sakai El script siempre ha de ejecutar el SakaiLogin.jws antes de empezar import os import sys from SOAPpy import WSDL username = "admin" password = "admin" server_url = "http://localhost:8080" login_url = server_url + "/sakai-axis/sakailogin.jws?wsdl" script_url = server_url + "/sakai-axis/myservice.jws?wsdl" login_proxy = WSDL.SOAPProxy(login_url) script_proxy = WSDL.SOAPProxy(script_url) loginsoap = WSDL.SOAPProxy(login_url) sessionid = loginsoap.login(username, password) scriptsoap = WSDL.SOAPProxy(script_url) print "El numero de usuarios es " +scriptsoap.getnumerousuarios(sessionid); 66

Herramientas remotas Ventajas Interoperabilidad Escalabilidad 67

Construcción Herramientas de una remotas herramienta Herramientas remotas: LinkTool IMS TI Projecte Campus Tool 68

Herramientas remotas LinkTool Nos permite ejecutar aplicaciones remotas Estas pueden estar escritas en en otro lenguaje Utiliza WS para la comunicación con la plataforma. Fácil de utilizar Solo para sakai 69

Herramientas remotas IMS TI Existen dos herramientas: Sakai IMS Tool Interoperability Tool (Cumple 100% de la especificación IMS TI 1.0) Sakai IMS Tool Interoperability Portlet (no cumple el 100% de la especificación IMS TI) Existen mejoras para probar funcionalidades deseadas en IMS TI 2.0 Ejecutan herramientas que cumplen IMS TI. 70

Herramientas remotas Proyecto Campus Ejecuta herramientas remotas basada en el estándar OSID de OKI. Existen todo un conjunto de herramientas para esta plataforma. Las herramientas se pueden usar tanto en Moodle como en Sakai. La implementación de las herramientas se debe hacer en Java o php. Aún está en fase de test 71

Herramientas remotas Futuro IMS TI 2.0 + Proyecto Campus 72

Preguntas 73