marketing sakai: la experiencia de la...
TRANSCRIPT
MARKETING SAKAI: LA EXPERIENCIA DE LA UPV
David Roldán MartínezUniversidad Politécnica de Valencia
2
3
Introducción
• Universidad Politécnica Valencia (UPV)– Institución pública desde 1971– Líder en innovación tecnológica– Formación oficial y no oficial
• La UPV en números– 4 campus– 15 escuelas– 40 centros de investigación– 40 titulaciones oficiales– 20 titulaciones de postgrado– 40.000 estudiantes– 2.600 profesores– 1.400 personal de soporte
4
Agenda del curso
• OBJETIVOS• PLANIFICACIÓN DEL E-LEARNING
– ¿Por qué y para qué planificar?– Identificación de la importancia estratégica– Construcción del caso de negocio– Selección de la plataforma de e-learning– Plan de implantación– Plan de difusión
• SAKAI– Introducción– Arquitectura vs. Framework– Tecnologías de Sakai– Instalación
• SAKAI EN LA UPV– Planteamiento– Fases del proyecto
5
OBJETIVOS
• IDENTIFICAR PUNTOS CRÍTICOS• DISEÑAR ESTRATEGIA DE IMPLANTACIÓN Y
DESPLIEGUE• BUENAS PRÁCTICAS FRUTO DE LA EXPERIENCIA• CONOCER SAKAI, SUS VENTAJAS E
INCONVENIENTES
PLANIFICACIÓN DEL E-LEARNING
7
¿Por qué, para qué y cómoplanificar?
U N I V E R S I T YU N I V E R S I T Y
ENTORNO
OBJETIVOS ESTRATEGIA
SISTEMAS
ESTRUCTURA
8
PE
RS
PE
CTI
VA
DE
L P
RO
VE
ED
OR
ESTRATEGIA DE LA ORGANIZACIÓN
ESTRATEGIA DE ENTREGA FLEXIBLE
ESTRATEGIAS DE SOPORTE
PE
RS
PE
CTI
VA
DE
L M
ER
CA
DO
PR
EG
UN
TAS
DE
C
OLA
OB
RA
CIÓ
N
IDENTIFICACIÓN DE LA
IMPORTANCIA ESTRATÉGICA
CONSTRUCCIÓN DEL MODELO DE
NEGOCIO
PROMOCIÓN Y DESARROLLO
ENTREGA Y DESARROLLO
MEJORA CONTINUA
MO
DIF
ICA
R Y
AC
TUA
LIZA
R
ANÁLISIS DE MERCADO
ANÁLISIS INTERNO
EXPECTATIVAS DE MERCADO
CAPACIDAD PROVEEDORA
SOLUCIONES PROBABLES
BENEFICIOS PARA EL MERCADO
BENEFICIOS PARA EL PROVEEDOR
BENEFICIOS PARA LA COMUNIDAD
VIABILIDAD ECONÓMICA
PROMOCIÓN DE LA SOLUCIÓN
DESARROLLO DE LA SOLUCIÓN
ACEPTACIÓN DE LA SOLUCIÓN
ENTREGA DE LA SOLUCIÓN
PROMOVER EVALUAR MEJORAR
9
¿Por qué, para qué y cómoplanificar?
• ¿QUÉ ES? — proporciona una aproximación estratégica y ordenada al desarrollo de cualquierproyecto de e-learning.
• ¿CUÁL ES SU OBJETIVO? — se centra en identificar y satisfacer las necesidades del mercado(alumnos/clientes) y en necesidades del proveedor (Universidad).
SÍ NONO
PROPORCIONA UN ENFOQUE PROPORCIONA UN ENFOQUE ESTRATESTRATÉÉGICOGICO
PROPORCIONA UNA PROPORCIONA UNA APROXIMACIAPROXIMACIÓÓN ESTRUCTURADAN ESTRUCTURADA
FACILITA LA IDENTIFICACIFACILITA LA IDENTIFICACIÓÓN DE N DE ELEMENTOS CLAVEELEMENTOS CLAVE
NO ES UNA METODOLOGNO ES UNA METODOLOGÍÍAA
NO ES UN MANUAL DETALLADONO ES UN MANUAL DETALLADO
NO OFRECE RESPUESTAS NO OFRECE RESPUESTAS CONCRETAS A PREGUNTAS CONCRETAS A PREGUNTAS
CONCRETASCONCRETAS
10
Identificación de la importanciaestratégica
• OBJETIVO — asegurarse de que el proyecto es coherente con lasprioridades estratégicas de la organización.
• UTILIZACIÓN DEL E-LEARNING — definición de la intensidad de uso del e-learning en la actividad de enseñanza universitaria.
• TIPOS DE UNIVERSIDADES VIRTUALES — definición del modelo de universidad virtual.
11
Identificación de la importanciaestratégica
• UTILIZACIÓN — a partir de graduación de la intensidad de uso del e-learning en la actividad de enseñanza universitaria, es posible establecer una clasificación de las Universidades en cuatro grupos diferenciados.– Universidades de e-learning — e-learning para la realización de su actividad
docente. Ejemplos: Universitat Oberta de Catalunya (UOC) o la AthabascaUniversity de Canadá.
– Universidades de enseñanza dual — la actividad formativa presencial y virtual conviven de manera integrada (Penn State University, la University ofIllinois, o del University of Maryland University College de los Estados Unidos).
– Universidades que únicamente hacen un uso del e-learning como herramienta complementaria —universidades presenciales con un modelo educativo tradicional pero que utilizan sistemas de e-learning como soporte (mayoría de Universidades presenciales europeas, UPV, UPF, UPC, UAB o UB).
– Universidades con empleo residual de las TIC — universidades a distancia y las universidades presenciales con modelos de enseñanza y aprendizaje tradicionales.
12
Identificación de la importanciaestratégica
• TIPOS DE UNIVERSIDADES VIRTUALES — dependiendo del modeloorganizativo se pueden distinguir tres tipos de universidades virtuales.
• Universidades virtuales como organizaciones virtuales — universidades creadas específicamente para la formación on-line. Se caracterizan por disponer de un modelo organizativo y pedagógico particular y diferenciado del resto de universidades presenciales y a distancia.
• Universidad presencial con extensión universitaria virtual — incorporar formación virtual en cursos de postgrado y extensión universitaria en instituciones educativas cuya oferta de formación reglada es eminentemente presencial.
• Universidad virtual adosada a la universidad tradicional — universidades virtuales creadas por universidades tradicionales a través de espacios virtuales gestionados de forma independiente pero compartiendo los elementos básicos de la universidad tradicional.
13
Construcción del caso de negocio
• SEGMENTOS DEL MERCADO — grupo de usuarios con necesidades más o menos homogéneas.
• SEGMENTOS E-LEARNING — formación de grado (carrerasuniversitarias completas, de ciclo corto o largo, con titulaciónoficial o propia), formación continua (actualización de conocimientos sobre materias relacionadas con el puesto de trabajo) y formación de postgrado (doctorado, master, especialista universitario y experto).
• MODELO DE COMPETENCIA — sirve para el análisisestructural de sector. Se escoge con la matriz de rivalidad.
14
Construcción del caso de negocio
Teoría de Juegos
Análisis de escenarios, modelos de simulación y modelos de
sistemas dinámicos
Modelos de guerrilla y modelos
de competenciamultipunto
Marcos de trabajo
VARIABLES DE DECISIÓN
POCAS MUCHAS
GR
AD
O D
E IN
CE
RTI
DU
MB
RE
DE
L E
NTO
RN
O
BA
JOA
LTO
15
Construcción del caso de negocio
• MODELO DE PORTER — sirve para evaluar el atractivodel mercado. Se basa en el análisis de cinco fuerzascompetitivas.
����������� �� ������������� ��
� � �� ����� ��� �
�� � ����� � ����� �
��� � ���� ������� �
16
Construcción del caso de negocio
• VENTAJA COMPETITIVA — características de los productos y servicios de la organización que le permite mantener una cierta posición en el mercado.
• ESTRATEGIAS COMPETITIVAS — liderazgo en costes (University of Phoenix), diferenciación (la calidad en la Capella University) o estrategia de nicho.
�� �� � � � ����� � ��� � ���� ����
���� ���� ����� �� � �� �� �
���� �
���� ���� ����� �� � �� �� ���� � ���� ����
���� � ��� � � � ��� � ���� ����
�����������������
���
������
��
����
���
�������
��
�
��
��
��
�
�
��
����
17
Evaluación interna
• CADENA DE VALOR —secuencia de actividades que es necesario realizar para diseñar, producir, vender, entregar y dar soporte a sus productos o servicios.
• IMPORTANCIA — conseguir una ventaja competitiva únicamente es posible a través del entendimiento profundo de las actividades de la cadena de valor de la institución y de su refinado con el fin de que proporcionen mayor valor para el cliente final que las de la competencia.
MARGENMARGEN
Infr
aest
ruct
ura
de la
firm
a
Ges
tión
de R
ecur
sos
Hum
anos
Des
arro
llo T
ecno
lógi
co
Com
pras
Servicio
Marketing y ventas
Logística de salida
Operaciones
Logística de entrada
ActividadesPrimarias
Actividades de Apoyo
18
Evaluación interna
• CADENA DE VALOR DE UNA UNIVERSIDAD VIRTUAL
Actividades Primarias
Act
ivid
ades
sec
unda
rias
InvestigaciónDesarrollo de materiales educativos
Marketing y ventas
DocenciaServicios
educativos
Valor Añadido
Valo
r Aña
dido
•Contratación de profesores
•Acceso al curso
•Herramientas de comunicación
•Tutorías•Exámenes
• Hardware específico para educación• LMS• LCMS• Herramientas de autor• Diseño instruccional• Diseño de los contenidos
• Gestión de pedidos en tiempo real• Seguimiento de los alumnos• Imagen de marca• Evaluación de la posibilidad de formar alianzas estratégicas
•Gestión del conocimiento
•Planificación de materiales de referencia
•Portal institucional
•Gestión de acceso
•Orientación•Certificaciones
Gestión de la institución
Gestión de recursos humanos
Gestión académica
•Matriculación e ingreso•Gestión de certificados
Servicios de infraestructura de la Universidad
19
Evaluación externa
• SISTEMA DE VALOR — secuencia de actividades necesarias para ofrecer un producto o servicio al usuario.
20
Estructura de costes
XCanon de la Universidad
XServicios de administración
XTutores docentes
XProfesores internacionales
XMarketing
XBiblioteca
XPlataforma Tecnológica
XDerechos de propiedad de materiales y programas
XDiseño de interfaces
XEspecialista en Internet
XDiseño instruccional
XExpertos en la materia
Coste variableCoste fijoPartidas
CLASIFICACIÓN DE COSTES
21
Selección de la plataforma de e-learning
• PLATAFORMA — conjunto de tecnologías y herramientas, tanto hardware como (sobre todo) software, que soportan las funcionalidades necesarias para llevar a cabo acciones formativas on line.
22
Selección de la plataforma de e-learning
����������
�
��
� �� �� � � � �� � �� � � � ��� � � ���
�� �
�� ��� � � �� � ��� !� �
� " # !� � � $� �� � !%
� !# � � � � $� �� � !%
!& �% & # � # !& ��!' " � !�
� � �� & # � # !& � " & !�
� � & % (� �)% ! �� � %
�� �
�� �!$!� % � !� � &
�% ' �� # � % " � !� &
�!* % ��% � � + , % ��!# %
�% - � . % � !� & ! � �� !* % # %
23
Selección de la plataforma de e-learning
• SELECCIÓN —establecimiento de criterios y evaluación de alternativas.
24
Selección de la plataformaTODAS LAS
PLATAFORMAS
CR
IBA
INIC
IAL
SE
LEC
CIÓ
N F
INA
EV
ALU
AC
IÓN
PLATAFORMAS PRESELECCIONADAS
PLATAFORMAS PARA EVALUAR
SELECCIÓN FINAL
25
Selección de la plataforma de e-learning
• PROPIETARIO vs OPEN SOURCE/FREE SOFTWARE
������������� � ��
�� ���� ��
���� ��
� �� �
������������� � ��
�� ���� ��
���� ��
���������������������������� ���� ��� ����� ��� ����� ��� ����� ��� � �������������������������������� � ���� ���� ���� ���
26
Plan de difusión
• INNOVACIÓN — no todos los usuarios tienen la misma actitud frente a cualquier innovación. Hay que diseñar un plan para cada grupo.
• INNOVADORES — grupo más favorable a las innovaciones.
• ENTUSIASTAS — gustan de probar innovaciones.
• MAYORÍA TEMPRANA — acepta la innovación con mayor velocidad que la media.
• MAYORÍA TARDÍA — escépticos aceptarán la innovación cuando esté extendida.
• REZAGADOS —resistentes a la innovación.
27
Plan de difusión
• Clasificación tecnográfica — agrupa a los usuarios según susconocimientos tecnológicos y sus percepción de la tecnología.
BajaAltaBajoSensibilidad al precio
NegativaVinculada a la utilidad
percibida
Muy positivaMotivación hacia la tecnología
BajasVariablesAltasHabilidades tecnológicas
TecnófobosTecnoneutralesTecnófilos
28
Plan de difusión
• Presentación y difusión de la plataforma — mostrar las posibilidades de la herramienta y ayudar en el primer acceso a la misma.
• Formación al profesorado — seminarios formativos que garanticen sea vista como herramienta de trabajo que facilite la labor docente, y no como “algo nuevo que hay que aprender”.
• Formación e información al alumnado que así lo requiera, como usuarios diarios de la plataforma.
• Ofrecer apoyo y asesoramiento a los usuarios — la innovación debe ser percibida como de baja complejidad.
• Resolución de dudas, problemas y dificultades surgidas en el uso de la plataforma — apoyo constante al usuario.
• Evaluaciones periódicas — mejora continua y optimización de procesos.
29
Plan de difusión
• Ayuda on-line — en el propio portal, los usuarios disponen de un sitio de ayuda.
30
Plan de difusión
• Foros — los usuarios se ayudan entre sí.
31
Plan de difusión• Contact Center — unidad operativa cuyo objetivo es atender a los
usuarios, sean estos alumnos o profesores.���������
� �
�������������!� "��#��$ ��%
&
���
'�� ���
�����
#���������� ��
�(�
��(�
'�� ��
��������������()%������%�
�
��'��� ��������
��% �%����
�% ��%� �% ��%� �% ��%� �% ��%�
���������������� ���* ���* ���* ���*++++%�%�%�%�
��������
'#,
�&�% �����������
�
�����
'�� �*��(�����
'�� �*��(�����
'�� �*��(�����
'�� �*��(�����
�� ��−− −− ������
������
������
������ '
�� �*��(������
'�� �*��(������
'�� �*��(������
'�� �*��(������
����� �����
����� �����
����� �����
����� �����
SAKAI
Información general
34
Definición de Sakai
• ¿QUÉ ES SAKAI?
• UNA COMUNIDAD — una alianza internacional de instituciones y partners comerciales trabajando estrechamente con organismos de estandarización y otras iniciativas open source con el fin de desarrollar aplicaciones software escalables de trabajo colaborativo, investigación y docencia en EducaciónSuperior.
•• UNA FUNDACIÓN — el Proyecto Sakai, soportado generosamente por las
fundaciones Mellon y Hewlett entre otras universidades, ha dado lugar a la Sakai Foundations, una institución sin ánimo de lucro cuyos principios son la comunidad y la apertura del desarrollo y la distrubución de software.
• UN FRAMEWORK, HERRAMIENTAS Y SERVICIOS — El CLE (Collaboration and Learning Environment) de Sakai es una arquitectura SOA para la construcción y el despliegue de herramientas y servicios colaborativos, de docencia y de investigación. Se basa en los principios de interoperabilidad, fiabilidad y escalabilidad en un sistema libre de obtener, utilizar, modificar y distribuir.
35
Sakai Community• PARTNERS ACADÉMICOS
• VARIADOS, ROBUSTOS Y CRECIENDO — desde2004 alrededor de 105 universidades, institutos y organizaciones sin ánimo de lucro y comerciales se han unido a Sakai como partners.
• PROGRAMA DE PARTNERS — el programa de partners de Sakai (SPP, Sakai Partners Program) está orientado a instituciones y organización con interés estratégico en el éxito de Sakai y con el deseo de participar en los órganos de gobierno de la comunidad..
• CUOTA — La cuota de miembro es de $10,000.00 anuales durante tres años para las institucionesacadémicas, sin ánimo de lucro o partners comeciales. Para las instituciones de menos de 3000 estudiantes, la cuota es de $5000.00.
• MIEMBROS OPCIONALES — Contribución en código libre 100 %.
Sakai Academic Partners by Region (n=93)
3% 8%
13%
76%
AfricaAsia-PacificEuropeThe Americas
�������������� ��������������� ���������
����������
0
20
40
60
80
100
2004Q1
2004Q2
2004Q3
2004Q4
2005Q1
2005Q2
2005Q3
2005Q4
2006Q1
2006Q2
Par
tner
s
36
Sakai Community — cont.
• PARTNERS COMERCIALES Y SIN ÁNIMO DE LUCRO
• Ofrecen consultoría y otros servicios a la comunidad Sakai en las siguientesáreas:
– Integración– Implementación– Gestión de proyectos– Hosting & mantenimiento de sites– Desarrollo de aplicaciones a medida– Portales– Estándares– Contenidos
37
Sakai Foundation
• AL SERVICIO DE LA COMUNIDAD SAKAI
• MISIÓN — gestiona y protege la propiedad intelectual de Sakai,
• Ayuda a coordinar el diseño, el desarrollo y la distribución del trabajo y sirve de intermediaria en la interacciónentre los distintos grupos de trabajo.
• GOBIERNO — diez miembros elegidospor la comunidad cuyo cargo tiene unavalidez de tres años académicos.
http://www.sakaiproject.org
38
La Aproximación Open Source
• EL MODELO APACHE SOFTWARE FOUNDATION• PROYECTOS INDEPENDIENTES — cada proyecto es
autónomo y está gobernado por su PMC (Project Management Committee) que define reglas y procesos. Los proyectos son gestionados por consenso.
• VOLUNTARIOS — los proyectos avanzan gracias a voluntarios con diferente nivel de derechos y responsabilidades.
• MERITOCRACIA — los miembros de los órganos de gestión son elegidos por el esto de miembros de la comunidad en base a sus méritos.
39
Sakai DGs Y WGs• AUTOORGANIZACIÓN DEL TRABAJO COMO PRINCIPIO
• DISCUSSION GROUP (DG) — aspectos concretos del trabajo en un proyecto.
• CICLO DE VIDA DE UN DG — se crean inicialmente durante un año y los inactivos se retiran e inhabilitan.
• FORMACIÓN DE UN DG — se envía una propuesta preliminar, se recluta a cinco o más miembros, se escoge un líder que coordine la discusión, se asigna un espacio en el Collab/Confluence y se coordinan las acciones con el Sakai Board.
• WORK GROUP (WG) — suele estar formado por miembros de uno o más DGs con el fin de concentrar los esfuerzos en proyectosespecíficos.
• CICLO DE VIDA DE UN WG — limitado según la planificación.
• WG FORMATION — planificación inicial, búsqueda de financiación, elección de un jefe de proyecto, definición del ámbito del trabajo y cierre de la planificación y asignación de un espacio en el Collab/Confluence. Gradebook WG Planning Space
40
Sakai DGs y WGs — cont.
• ALGUNOS EJEMPLOS:• Accessment Tools• Content and Authoring• Development• Enterprise• European Sakai Community• I18N & L10N (internationalization)• Library & Repositories• Migration• Production• Strategy and Advocacy• User• User Interaction (UI)• Web Services• Web Video and Audio Tools
DG: European Sakai Community
“. . . facilitates communications among those in Europe who are Sakai users, who are interested in Sakai projects, and who may be interested in the discussion of pedagogy and technology. One of the goals is to assist participants in their European-specific applications of education technology in European universities. The communications should encourage collaboration among European users, including informal meetings and conferences. . . .”
41
Sakai Collab
• COMMUNITY COLLABORATION SITE• PARTICIPACIÓN EN DGs/WGs —
creación de una cuenta y suscripción a los DG y WG de Sakai.
• DOCUMENTOS — descarga de documentos y otros recursos.
• EMAIL — preferencias en la recepción de los correos electrónicos.
• PROYECTOS — cada proyecto tiene un site que soporta los esfuerzos de la comunidad en ese sentido.
• DEMO — probar herramientas.• URL — http://collab.sakaiproject.org Sakai Collab
42
Sakai JIRA
• SEGUIMIENTO• BUGS — crear, asignar, seguir y
resolver.• SOLICITUD DE FUNCIONALIDADES
— se registran y se hace un seguimiento.
• NOTAS SOBRE LAS VERSIONES —mejoras, parches, errores conocidos, etc.
• REQUERIMIENTOS — definición de casos de uso y estudio de los mismos.
• CONTRIBUCIONES EN OTROS PROYECTOS — cualquier equipo quedesarrolle una nueva herramienta, documentación, etc. puede solicitar quese le cree un espacio en el JIRA paragestionar su trabajo.
http://bugs.sakaiproject.org
43
Sakai Confluence
• COMMUNITY WIKI• ESPACIOS DE TRABAJO — Discussion
Group, Work Group, planificación del proyecto y documentación.
• DOCUMENTACIÓN — Sakaipedia, información de versiones, documentaciónsobre el código, prácticas habituales, etc.
• GESTIÓN Y COORDINACIÓN DEL PROYECTO — fechas importantes, resúmenes del estado, directorio de actividades, lista de proyecto, fechas de lasreuniones, etc.
• URL —http://issues.sakaiproject.org/confluence/
Project Mgmt & Coordination Space
44
JIRA/Confluence
• CRÉATE UNA CUENTA Y PARTICIPA
http://bugs.sakaiproject.org/jira/secure/Signup!default.jspa
Arquitectura vs. Framework
46
Fram
ewor
k
SakaiService
SakaiService
SakaiService
SakaiService
Sakai Tool Sakai Tool Sakai Tool
¿Qué es un Framework?
• Un “framework” es como “entorno de alojamiento”• Está formado por los elementos que subyacen a los componentes
desarrollados por los usuarios.• Contiene “servicios” que permiten construir aplicaciones y otros
servicios más complejos.
47
¿Qué es una arquitectura?
• Muy abstracta• Inmutable (nunca cambia)• Define una terminología común• No hace referencia ninguna implementación
48
Aggregator
Presentation
Tools
Services
Client
System
Arq
uite
ctur
ade
Sak
ai
Fram
ewor
k de
Sak
ai
InternalAggregator
Sakai ToolPresentation
SakaiTool Code
ApplicationServices
FrameworkServices
PresentationSupport
The
Sak
ai T
ool E
nviro
nmen
t
ExternalAggregator
System
Arquitectura
Framework
La arquitecturamarca los principios de diseño del Framework
Tecnologías
50
Tecnologías SAKAI
• Arquitectura tecnológica• JAVA — Sakai consists of
technologies common to Java enterprise environments.
• SERVIDOR DE APLICACIONES —Apache Tomcat
• UI FRAMEWORK — JavaServerFaces y Apache Velocity (legacy tools).
• GESTOR DE COMPONENTES —Spring Framework
• MOTOR DE PERSISTENCIA —Hibernate
• BASE DE DATOS — Oracle, MySQL y HSQL (para demos).
Java 1.4/1.5
Java 1.4/1.5
Oracle 9i/10gMySQL 4.1HSQL (demo)
Oracle 9i/10gMySQL 4.1HSQL (demo)
Spring
Hibernate
Tomcat 5.5
JavaServerFaces
Velocity
Sakai 2.x
Apache
SSLmod_jk
WEBISOVirtualhosting
Apache
SSLmod_jk
WEBISOVirtualhosting
51
MVC
������������ �
� ���������
�����������
������������
�����
������
�������� ���
�������� ��������
52
MVC
������������ ������������
� ������ ��
�������!�����
��������������������
������
����"����
�����
� ��# �����������$�����
������
� �� � ���
�������� ���
�%&�'�()�#*��� ��#���+
�������� ��������
� ��,�������
������
� �� � ���
53
MVC• Modelo:
– Representa la lógica de negocio de la aplicación.– Encapsular el modelo de una aplicación en componentes facilita la depuración, mejora la calidad y favorece
la reutilización de código.• Controlador:
– Responsable de recibir los eventos, determinar el procesador del evento, invocar al procesador y finalmente provocar la generación de la vista apropiada.
– Tareas:• Control de la seguridad.• Identificación de eventos.• Preparar el modelo.• Procesar el evento.• Manejar los errores.• Provocar la generación de la respuesta.
• Vista:– Representa la lógica de presentación de la aplicación.– Los componentes de la vista extraen el estado actual del sistema del modelo y proporcionan la interfaz de
usuario para el protocolo que se está usando.– Como parte de la generación la vista debe presentar al usuario el conjunto de eventos que puede generar en
ese momento concreto.– Separar el modelo y la vista permite la construcción de interfaces con diferentes apariencias.
54
Java ServerFaces in JSP
Java Tool LogicJava Beans
Sakai ApplicationServices
Sakai JSFWidget Set
Sak
ai T
ool E
nviro
nmen
t
VelocityTemplates
Sakai LegacyTools
Sakai LegacyServices
Sakai VelocitySupport Layer
Sak
ai L
egac
y E
nviro
nmen
t
SakaiPortal
Capa de presentación de Sakai
SakaiFramework APIs
55
Velocity Templates
• Alternativa a JSP o JSF.• Sigue la filosofía MVC:
– Modelo: objetos en el context.– Vista: plantilla .vm.– Controlador: Velocity Action.
<HTML>
<BODY>
Hello $customer.Name! <br/> Here is a list of your current subscriptions:<br/><br/>
<table>
#foreach( $subscription in $subscriptions )
#if ( $customer.isSubscribed($subscription) )
<tr> <td> $subscription.Name </td> </tr> #end
#end
</table>
</BODY>
</HTML>
Customer customer = CustomerPeer.retrieveByPK(primaryKey); context.put("customer", customer); Listsubscriptions = SubscriptionPeer.doSelect(criteria); context.put("subscriptions", subscriptions);
56
Servlets
• Amplía la funcionalidad del servidor• Posterior al CGI• API Java• Se ejecuta en un contenedor de servlets (aplicaciones)• Hasta JSP, único modo de generar páginas web
dinámicas en JAVA.
57
Servlets
• Ejemplo:
MyTableData tableData = MyDAO.queryData();PrintWriter writer = response.getWriter(); writer.println("<table border=\"1\">");for (int i=0; i<tableData.getData().length; i++){
writer.println("<tr>"); writer.println("<td>"); writer.println(tableData.getData()[i]); writer.println("</td>"); writer.println("</tr>");
}writer.println("</table>");
58
Servlets
• Servlets– Inconvenientes:
• Poco legible• Mantenimiento costoso• El diseñador gráfico debe saber Java• A cada cambio: recompilar, empaquetar, desplegar.
– Uso actual de los servlets:• Controlador en la arquitectura MVC• Preprocesamiento de peticiones
59
JSP
• Páginas HTML con scripts (por defecto Java)• Se traduce a un servlet en la primera petición• Semánticamente equivalente a los servlets• Facilitan el desarrollo y mantenimiento
60
JSP• Ejemplo (JSP 1.x)
<% MyTableData tableData = MyDAO.queryData();
%> <table border="1"> <% for (int i = 0; i < tableData.getData().length;
i++) { %> <tr> <td> <%= tableData.getData()[i] %>
</td> </tr> <% }%>
</table>
61
JSTL
• Librería de etiquetas para JSP.• No es parte de JSP ni JSF, los complementa• Precursor: librerías de etiquetas de Struts• Formado por 4 librerías:
� core: funciones script básicas � xml: procesamiento de xml� fmt: internacionalización y formato � sql: acceso a base de datos
62
JSTL
• Ejemplo
• <%@ taglib prefix="c"uri="http://java.sun.com/jstl/core" %> • <c:forEach items="${addresses}" var="address"> • <c:choose>• <c:when test="${not empty address.lastName}" >• <c:out value="${address.lastName}"/><br/>• </c:when>• <c:otherwise>• N/A<br/>• </c:otherwise>• </c:choose><br/>• </c:forEach><br/>
Etiqueta
Iterador
Librería básica
Lenguaje de expresiones
63
JSF
• La tecnología Java Server Faces (JSF) es un marco de trabajo de interfaces de usuario del lado de servidor para aplicaciones Webbasadas en tecnología Java.
• Los dos componentes principales son:• Una librería de etiquetas para JSP• Una API para manejo de eventos, validadores, etc.
• <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
64
JSF
• Permite a los desarrolladores pensar en términos de componentes, eventos, backing beans y otras interacciones, en vez de hablar de peticiones, respuestas y marcas.
• JSF promete reutilización, separación de roles, facilidad de uso de las herramientas.
• JSF tiene una meta específica: hacer el desarrollo web más rápido y fácil.
65
JSF
66
JSF
• Estructura basada en documentos que relaciona la vista almacenada en un conjunto de beans empleando widgets (botones, input, menús) y un conjunto de acciones asociados a dichos widgets.
• No hay URLs• Es posible definir widgets propios de Sakai para asegurar que el aspecto entre
herramientas de distinta procedencia es coherente e integrado.
������������� �����������������
���������������������������������������������������������� ��������������!"
������������������������������������������������������������#���������������� ���������$������!"
%
67
Hibernate
• ORM: mapeador de objetos a modelo ER.• Dos paradigmas muy diferentes
– Objetos, atributos, asociaciones con otros objetos, herencia, UML …
– Columnas, claves ajenas, consultas lenguaje SQL
JavaObject
int id;String name;String getName()int getId()void setName(String)void setId(int)
SQL Table
id [int] primary key,name [varchar(50)]
��������� ������ ����������������������
68
Hibernate
• Ventajas:– Reutilización– Flexibilidad
• Ocultación de la estructura del BBDD• Ocultación de la lógica de datos.
– Independencia del SGBD
APLICACIÓNBASE DE DATOS
REGISTROSOBJETOSMOTOR DE
PERSISTENCIA
69
try {
Class.forName(“org.gjt.mm.mysql.Driver”);
}
catch (java.lang.ClassNotFoundException e) {
}
try {
System.out.println("Intentando conectar..");
con = DriverManager.getConnection (“jdbc:mysql//localhost/portal”, “root”, “root”);
System.out.println("Conexión establecida");
stmt = con.createStatement();
ResultSet result = stmt.executeQuery(“SELECT * FROM UPA_LEARNERS”);
while (result.next()) {
String name = result.getString(“NAME”);
System.out.println(name);
}
stmt.close();
con.close().
}
catch(SQLException ex) {
}
70
##MySQLhibernate.dialect = net.sf.hibernate. dialect.MySQLDialect
hibernate.connection.driver_class = org.gjt.mm.mysql.Driver
hibernate.connection.url = jdbc:mysql://localhost/upa
hibernate.connection.username = root
hibernate.connection.password = root
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="connection.driver_class"> com.mysql.jdbc.Driver</property>
<property name="connection.url"> jdbc:mysql://localhost/upa</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<property name="dialect">net.sf.hibernate.dialect.MySQLDialect</property>
</session-factory>
</hibernate-configuration>
Ficherohibernate.properties
Ficherohibernate.xml
71
PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN""http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping>
<class name="net.upvabierta.data.Learner" table="UPA_LEARNERS">
<id name="id" type="string" unsaved-value="null" >
<column name="LEARNER_ID" sql-type="int(4)" not-null="true"/>
<generator class="uuid.hex"/>
</id>
<property name="name">
<column name="NAME" length="16" not-null="true"/>
</property>
<property name="surnames">
<column name="SURNAMES" length="16" not-null="true"/>
</property>
</class>
</hibernate-mapping>
72
Learner learner = new Learner();
learner.setName(“David”);
learner.setSurnames(“Roldán Martínez”);
learner.save();
//Previamente se ha obtenido una conexión a la base de datos
String sql = “INSERT INTO UPA_LEARNERS (name, surnames) VALUES (?, ?)”;
PreparedStatement pstm = connection.prepareStatement(sql);
sp.clearParameters();
sp.setString(1,”David”);
sp.setString(2,”Roldán Martínez”);
sp.executeUpdate();
Con un motor de persistencia
Con JDBC
73
Spring Framework
• package myPackage;
• public class MyBean {
• private Dependency myDependency;
• public void setMyDependency(Dependency myDependency) {
• this.myDependenc q1y = myDependency;
• }
• }
En código:
En XML:
<bean id=“myBean” class=“myPackage.MyBean”>
<property name=“myDependency” ref=“dependency”/>
</bean>
74
JSF con Spring e Hibernate
Instalación de Sakai
SAKAI EN LA UPV
77
Planteamiento
• Tres departmentos con funciones similares:– ASIC
• Microwebs. Repositorio de contenidos.
– CFP• Formación de postgrado y de PAS.
– UPA• Especializado en formación on-line.
78
Planteamiento
• Problema:– Necesidad de plataforma de apoyo a la docencia presencial.
• Alternativas:– Desarrollar desde cero– Partir de una plataforma de código abierto ya existente – Acordar con una empresa el mantenimiento de una
distribución en código abierto y desarrollar sobre ella– Plataforma comercial (descartada desde un principio)
79
Fase I: selección de plataformascandidatas
• Fuentes de información– Elearning Whorkshops ( http://www.elearningworkshops.com
) – Portal UNESCO (
http://www.unesco.org/webworld/portal_freesoft )– EDUTOOLS (
http://www.edutools.info/course/productinfo/index.jsp) – EdTechPost (
http://www.edtechpost.ca/pmwiki/pmwiki.php/EdTechPost )
• Primer filtro– Plataformas que figuren en al menos 3 de esos directorios.
80
Fase I: selección de plataformascandidatas
• Segundo filtro: criterios obligatorios*– 1. Tipo de licencia software– 2. Compatibilidade IMS/SCORM– 3. Soporte multilenguaje– 4. Interfaz web
• * Se analizaron en base a información presente en la web
81
Fase I: selección de plataformascandidatas
• 12. Gestión de contenidos• 13. Herramientas colaborativas• 14. Integración con otras
aplicaciones• 15. Adecuación al perfil de
nuestros técnicos• 16. Buena API de desarrollo• 17. Compatibilidad con
estandares• 18. Usabilidad de la interfase
• Tercer filtro: criteriosadicionales
• 5. Buena documentación• 6. Independencia de software
comercial• 7. Base instalada• 8. Comunidad de
desarrolladores• 9. Planes de futuro• 10. Herramientas de
comunicación• 11. Herramentas de evaluación
y seguim.
82
Fase 2: prueba de las plataformascandidatas
• Se instalaron las dos plataformas.– Página de entrada
• Se buscaron voluntarios para probarlas durante un cuatrimestre.
• Mientras, se valoraron: – Posibilidades de integración.– Posibilidades de administración.– Facilidades para desarrollo.
83
Fase 3: Selección final
• Se eligió Sakai:– Avalado por universidades de prestigio.– Posibilidad de posicionamiento estratégico.– Adecuada la infraestructura corportativa.
84
Adaptaciones / ampliaciones
• Adaptación de la presentación• Internacionalización• Mejoras en algunos módulos• Integración de Sakai con
sistemas propios
85
¿Alguna pregunta?
86
David David RoldRoldáánn MartMartííneznezUniversidad Universidad PolitPolitéécnicacnica de Valenciade Valencia
[email protected]@upvnet.upv.es
Muchas gracias