SlideShare una empresa de Scribd logo
1 de 163
Descargar para leer sin conexión
Universidad de Buenos Aires
Facultad de Ingeniería
75.99 Trabajo Profesional
Plataforma para Formación de
Investigadores a Distancia
Director:
Dr. Ramón García-Martínez
Codirectores:
M.Ing. Enrique Fernández
Lic. Darío Rodriguez
Alumnos:
Leonardo D’Onofrio 75381
Fernando Uminsky 74973
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’Onofrio - Uminsky Trabajo Profesional
Resumen
Una estrategia posible para la formación de investigadores es constituir núcleos de
investigación integrados por investigadores en formación bajo la dirección de un
científico formado. Las tecnologías de la información y la comunicación han permitido
construir comunidades virtuales integradas por individuos que pueden estar lejos
físicamente pero cerca cognitivamente, emergiendo modelos colaborativos de
formación de investigadores. En este contexto, el presente trabajo implementa un
prototipo de plataforma tecnológica capaz de virtualizar la colaboración y cooperación
que da soporte a uno de dichos modelos recientemente propuesto por los directores del
trabajo.
Abstract
A possible strategy for training of researchers is to provide research cores integrated by
researchers in training under the guidance of a trained scientist. The information and
communication technologies have allowed the construction of virtual communities
made up of individuals who may be far away physically but cognitively close, emerging
collaborative models of research training. In this context, this work implements a
prototype of a technological platform capable to virtualize the collaboration and
cooperation which supports one of the models recently proposed by the directors of this
work.
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL3
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL4
1. Descripción del trabajo
A continuación se describen brevemente los anexos que componen el presente trabajo.
Anexo 1: Fundamento Teórico
Rodríguez, D., Bertone, R., García-Martínez, R. 2009. Consideraciones sobre el Uso de
Espacios Virtuales en la Formación de Investigadores. Revista de Informática Educativa
y Medios Audiovisuales, 6: 35-42. ISBN 1667-8338.
Anexo 2: Descripción funcional
En esta sección se describen los módulos principales con los que cuenta la plataforma y
su funcionalidad.
Anexo 3: Soporte Tecnológico
En esta sección se presenta la descripción del soporte tecnológico sobre el cual se
construyó la plataforma. El mismo esta conformado por una combinación de diferentes
tecnologías que conforman el estado del arte en lo que se refiere a entornos de
programación orientada a objetos, servidores web, plataformas de streaming media,
manipulación de documentos digitales, etc.
Anexo 4: Manual de Instalación
En este anexo se describen los requerimientos de hardware y software y los pasos
necesarios para instalar la plataforma en un servidor.
Anexo 5: Manual de Usuario
Este anexo incluye el manual que permite al usuario de la plataforma conocer el
funcionamiento de cada una de sus herramientas.
Anexo 6: Documentación Técnica
En esta sección se incluyen los diagramas técnicos y código fuente de la plataforma.
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL5
2. Referencias
2.1 Autores
Britos, P. 2008. Procesos de Explotación de Información Basados en Sistemas
Inteligentes. Tesis de Doctorado en Ciencias Informáticas. Facultad de
Informática. Universidad Nacional de La Plata.
Césari, M. 2006. Nivel de Significación Estadística para el Aprendizaje de una Red
Bayesiana. Tesis de Especialidad en Tecnologías de Explotación de
Información. Instituto Tecnológico de Buenos Aires.
Duart, J. y Sangrà, A. 2000. Formación universitaria por medio de la web: un modelo
integrador para el aprendizaje superior. En Aprender en la
Virtualidad de Duart y Sangrà (coordinadores) Gedisa. Barcelona.
ISBN: 84-8429-161-8.
Merlino, H. 2006. Ambiente de Integración de Herramientas para Exploración de
Datos Centrados en la Web. Tesis de Magister en Ingeniería de
Software. Facultad de Informática. Universidad Politécnica de Madrid.
Moreno Aguilar, L., Vargas Solar, G., Sheremetov, L. 2003. Hacia una infraestructura
de componentes para la construcción de ambientes de aprendizaje
colaborativo. XIX Simposio Internacional de Computación en la
Educación. Contextos emergentes en el aprendizaje. SOMECE 2003.
México.http://bibliotecadigital.conevyt.org.mx/colecciones/documento
s/somece/59.pdf. Página vigente al 11/07/09.
Moreno Angarita, M. 1997. Dos Pistas para el Análisis de los Procesos de Formación
de Investigadores en las Universidades Colombianas. Nómadas 7: 38-
48. Instituto de Estudios Sociales Contemporáneos. Facultad de
Ciencias Sociales Humanidades y Artes. Universidad Central.
Colombia. http://www.ucentral.edu.co/NOMADAS/nunme-ante/6-
10/nomadas_07/revista_numero_7_art07_hacia_una_propuestas.pdf.
Página vigente al 11/07/09.
Padrón Guillen, J. 2004. Los 7 Pecados Capitales de la Investigación Universitaria.
Informe de Investigaciones Educativas 18: 69-79. ISSN: 1316-0648.
Pollo-Cattaneo, F., Rodriguez, D., Britos, P., García-Martínez, R. 2009. Propuesta de
Formación de RRHH en Investigación Basada en un Modelo
Colaborativo. Hacia un Cambio de Paradigma. Proceedings of VI
International Conference on Engineering and Computer Education.
Pág. 1262-1266. ISBN 978-85-89549-58-5.
Ponce Rosas R, Landgrave Ibáñez S, González Salinas C, Monroy Caballero C. 2002.
Formación de investigadores en medicina familiar: La tutorización en
investigación y la relación tutor-residente (Primera parte). Archivos
de Medicina Familiar; 4(2): 77-81. ISSN: 1405-9657.
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL6
Rivera, B., Osorio, O., Tangarife, D., Arroyave J. 2000. Los Semilleros de Formación
de Jóvenes Investigadores: la Experiencia de ASPA. Documentos en
el Programa de Maestrías. Consorcio para el Desarrollo Sostenible de
la Ecorregión Andina. http://www.condesan.org/ memoria/COL0700.
pdf. Página vigente al 11/07/09.
Rodríguez, D., Bertone, R., García-Martínez, R. 2009. Consideraciones sobre el Uso de
Espacios Virtuales en la Formación de Investigadores. Revista de
Informática Educativa y Medios Audiovisuales, 6: 35-42. ISSN 1667-
8338.
Schulz, G. 2008. Un Ambiente Integrado de Clasificación, Selección y Ponderación de
Reglas Basado en Sistemas Inteligentes. Tesis de Grado en Ingeniería
Informática. Laboratorio de Sistemas Inteligentes. Facultad de
Ingeniería. UBA.
Valerio, G. 2002. Herramientas Tecnológicas para la Administración del
Conocimiento. Transferencia, 57: 19-21. http://www.sistemasde
conocimiento.org/Produccion_intelectual/articulos/herramientas_km.p
df. Página vigente al 11/07/09.IEEE, 2009. IEEE Computer Society
Digital Library. http://www2.computer.org/portal/web/csdl/home.
Página vigente al 11/07/09.
2.2 Sitios Web
ACM, 2009. ACM Digital Library. http://portal.acm.org/dl.cfm. Página vigente al
11/07/09.
Adobe Flex, 2009. Adobe Flex Open Source Framework
http://www.adobe.com/products/flex/ Página vigente al 24/08/2009
Apache MINA, 2009. Apache MINA Project. http://mina.apache.org/ Página vigente al
24/08/2009
Apache Tomcat, 2009. Apache Tomcat. The Apache Software Foundation.
http://tomcat.apache.org/ Página vigente al 24/08/2009.
DOAJ, 2009. Directory of Open Access Journals. http://www.doaj.org/ Página vigente
al 11/07/09.
ExtJS, 2009. Ext JS: Cross-Browser Rich Internet Application Framework.
http://www.extjs.com/products/extjs/ Página vigente al 24/08/2009.
GRISE, 2009. Grupo de Investigación en Ingeniería de Software Empírica. Facultad de
Informática. UPM. http://www.grise.upm.es/ Página vigente al
11/07/09.
Hibernate, 2009. Relational Persistence for Java and .NET https://www.hibernate.org/
Página vigente al 24/08/2009.
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL7
Mortbay Jetty, 2009. Jetty WebServer http://www.mortbay.org/jetty/ Página vigente al
24/08/2009
MySQL, 2009. The world’s most popular open source database. http://www.
mysql.com/ Página vigente al 24/08/2009.
ooVoo. 2009. Sitio Oficial para Descarga de ooVoo. http://www.oovoo.
com/?sc_lang=es-es Página vigente al 11/07/09.
Red5, 2009. Open Source Flash Server. http://osflash.org/red5 Página vigente al
24/08/2009
SKYPE, 2009. Sitio Oficial para Descarga de SKYPE. http://www.skype.com/intl/es/
Página vigente al 11/07/09
Spring, 2009. Spring Application Framework http://www.springframework.net/ Página
vigente al 24/08/2009
Sun Java, 2009. Sun Developer Network (SDN). Developer Resources for Java
Technology. http://java.sun.com/ Página vigente al 24/08/2009.
UBA-FI-LSI, 2009. Laboratorio de Sistemas Inteligentes. Facultad de Ingeniería. UBA.
http://laboratorios.fi.uba.ar/lsi/z-hemerotecavirtual.htm Página vigente
al 11/07/09.
Virtual Whiteboard. 2009. Virtual Whiteboard - A Free Online Collaboration Tool.
http://www.virtual-whiteboard.co.uk/home.asp Página vigente al
11/07/2009.
Wikipedia, 2009. InnoDB. http://es.kiwipedia.org/innodb Página vigente al 24/08/2009.
Wikipedia, 2009. Java Server Pages. http://es.wikipedia.org/wiki/JSP Página vigente al
24/08/2009
Wikipedia, 2009. Open Source http://es.wikipedia.org/wiki/Open_source Página vigente
al 24/08/2009
Wikipedia, 2009. Servlets. http://es.wikipedia.org/wiki/Servlets Página vigente al
24/08/2009
Wikipedia, 2009. Tomcat. http://es.wikipedia.org/wiki/Tomcat Página vigente al
24/08/2009
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL8
3. Anexo I: Fundamento Teórico
________________________________________________________________________________________________________
Revista de Informática Educativa y Medios Audiovisuales Vol. 6(11), págs. 35-42. 2009
ISSN 1667-8338 © LIE-FI-UBA. liema@fi.uba.ar
35
Consideraciones sobre el Uso de Espacios Virtuales
en la Formación de Investigadores
Darío Rodríguez, Rodolfo Bertone, Ramón García-Martínez
Programa de Maestría en Tecnología Informática Aplicada a la Educación. Facultad de Informática. Universidad
Nacional de La Plata.
Instituto de Investigaciones en Informática LIDI. Facultad de Informática. Universidad Nacional de La Plata.
Área Ingeniería del Software. Licenciatura en Sistemas. Departamento Desarrollo Productivo y Tecnológico.
Universidad Nacional de Lanús
djhr_1977@yahoo.com.ar, pbertone@lidi.info.unlp.edu.ar, rgm1960@yahoo.com
Resumen: Una estrategia posible para la formación de investigadores es constituir núcleos de investigación
integrados por investigadores en formación bajo la dirección de un científico formado. Las tecnologías de la
información y la comunicación han permitido construir comunidades virtuales integradas por individuos que
pueden estar lejos físicamente pero cerca cognitivamente, emergiendo modelos colaborativos de formación de
investigadores. En este contexto, el trabajo formula una aproximación a la identificación de los elementos del
espacio de trabajo de un grupo de investigación dedicado a la formación y evalúa la viabilidad tecnológica de la
virtualización de los elementos de dicho espacio.
Palabras claves: Formación de investigadores. Espacios virtuales. Formación mediada por tecnología.
1. Introducción
Varios autores [Rivera et al., 2000; Ponce Rosas et
al., 2002; Padrón Guillen, 2004; Pollo Catámeo et
al., 2009] han señalado que el grupo de
investigación puede estar integrado por individuos
que no pertenecen a la misma institución ni siquiera
al mismo país y que lo único requerido es que estos
individuos compartan el universo de sentido del
dominio de investigación. Las tecnologías de la
información y la comunicación han permitido
construir comunidades virtuales integradas por
individuos que pueden estar lejos físicamente pero
cerca cognitivamente [Moreno Angarita, 1997]. En
este contexto, la masificación de Internet demanda
una nueva conceptualización de nociones como
grupos de investigación, formación de
investigadores, pares, publicaciones, socialización,
cooperación, entre otros. La virtualización ha
potenciado el concepto que los grupos no son
definitivamente la suma de individuos, sino la
resultante de un entramado de sistemas simbólicos,
prácticas, rituales y reflexiones. En esta red de
intercambio de significados entre los investigadores,
alrededor del objeto y del proyecto de investigación,
se construye una especie de escuela virtual, donde
se otorgan status y se valoran productos
investigativos.
En este artículo se presenta un posible marco teórico
(sección 2) en la que se presenta las distintas
definiciones que la comunidad ha ido construyendo
sobre líneas de investigación y proyectos (sección
2.1), la formación de investigadores (sección 2.2), el
concepto de comunidades de investigación (sección
2.3); y las relaciones existentes entre comunicación
interpersonal, formación de investigadores y grupo
de I&D (sección 2.4). Se introduce el modelo
colaborativo de formación de investigadores
(sección 3) describiendo en su contexto: el concepto
de línea de investigación y plan de investigación
(sección 3.1) y la dinámica del grupo de
investigación asociada al modelo (sección 3.2). Se
discute la viabilidad tecnológica de virtualización
del modelo descrito (sección 4) identificando los
elementos del espacio de trabajo (sección 4.1) y
fundamentando la viabilidad tecnológica de
virtualización de elementos del espacio de trabajo
(sección 4.2). En las conclusiones se presentan las
futuras líneas de trabajo (sección 5).
2. Marco Teórico
Esta sección presenta los aspectos desarrollados por
distintos autores que dan marco teórico a los
conceptos de líneas de investigación, proyectos de
investigación, formación de investigadores,
Revista de Informática Educativa y Medios Audiovisuales Vol. 6(11), págs.35-42. 2009
ISSN 1667-8338 © LIE-FI-UBA. liema@fi.uba.ar
36
comunidades de investigación y su relación con la
formación de investigadores.
2.1. Líneas de Investigación y Proyectos
En [Inciarte González y Torres de Izquierdo, 1999]
se postula que las Líneas de Investigación son un eje
ordenador de la actividad de investigación, que
posee una base racional y que permite la integración
y continuidad de los esfuerzos de una o más
personas, equipos o instituciones comprometidas
con el desarrollo del conocimiento en un ámbito
específico. Su identificación permite establecer
niveles de concreción y especificidad al señalar
problemas, cuya necesidad de ser resueltos es
evidente y compartida. Una línea de investigación
conforma, además, un esquema de enseñanza
aprendizaje centrado en la investigación que tiene
entre otras las siguientes ventajas:
Promueve la apertura crítica a diversos aspectos o
enfoques sin restricciones de visiones
paradigmáticas únicas; la convergencia y
divergencia de conceptos, enfoques, métodos y
paradigmas; el diálogo, la reflexión y el análisis
profundo y fructífero de la tarea de los
investigadores en formación; la apertura para ser
observados por colegas y extraños.
Ofrece un espacio excelente para desarrollar el
proceso investigar-aprender.
Ayuda a proyectar las actividades de investigación
permitiendo utilizar efectivamente el conocimiento
sobre la práctica.
2.2. Formación de Investigadores
En [Sánchez Lima, 2006] se sostiene que la
formación de investigadores conforma una relación
pedagógica en la que se identifican tres momentos
comunes que serán sus ejes de análisis:
La interacción con el entorno social (sujetos y
objetos que participan en el proceso formativo).
La apropiación individual o internalización por parte
del sujeto de los saberes generados en su comunidad
de investigación.
Su transformación con el diseño de un proyecto que
cristaliza en una creación que el cual se resuelve un
problema en un área del conocimiento.
En [Villarreal y Guevara, 1994] se señala que una
estrategia posible de formación de investigadores es
constituir núcleos de investigación integrados por
investigadores en formación bajo la dirección de un
investigador formado con los siguientes objetivos:
colaborar con el investigador formado en el
proyecto que éste desarrolle; y generar un proyecto
propio después de haber colaborado con el
investigador formado y bajo la asesoría de éste. En
coincidencia en [Moreno Angarita, 1997] postula
que los núcleos de la investigación científica actual
son los grupos (o comunidades) que trabajan
alrededor de proyectos específicos de investigación.
Por otra parte en [Serrano, 1997] se fundamenta que
la preparación de recursos humanos en investigación
tiene estrecha relación con la creación de
comunidades académicas y por ende con el
desarrollo de conocimiento. En particular, las
comunidades científicas expresan y encarnan las
epistemologías que circulan por los campos
disciplinares y operan a manera de indicador
contextual del estado de la formación de
investigadores.
2.3. Comunidades de Investigación
La investigación en solitario es capaz de generar
conocimientos, pero es limitada por la
unidimensionalidad en la formación; entonces se
empieza a ver la necesidad de abordar de manera
integral la realidad y para ello se requiere reunir
diversas perspectivas para comprender el mismo
tema. Así surgen los Grupos, que no son sumatoria
de proyectos aislados sino entramados de intereses
individuales por conocer el mismo campo temático
o problema nuclear [Agudelo Cely, 2004].
En [Sánchez Lima y Granados Juárez, 2007] se
define que una comunidad de investigación se
constituye por investigadores seniors, investigadores
juniors, estudiantes de doctorado, estudiantes
avanzados de maestría, y de nuevo ingreso. El
seminario (o workshop) de investigación, práctica
establecida por los grupos para revisar el avance de
sus proyectos, es la estructura que integra este
trabajo colegiado. Una de sus ventajas es su
horizontalidad porque supera la tradicional relación
maestro-alumno y propicia una relación entre
colegas. La dinámica del colectivo favorece
espacios de autonomía en tanto confluyen diversas
experiencias de sus integrantes. Es un espacio de co-
construcción, en el cual todos aprenden, porque
aclaran dudas y enriquecen sus proyectos con las
aportaciones del grupo. La asimilación de un
investigador en formación por una comunidad de
investigación le beneficia ya que este no se ha
dotado aún de las mismas reservas de información
que los investigadores formados: ricas colecciones
personales de publicaciones y una red de contactos
personales con colegas expertos que pueden reducir
la necesidad de búsqueda de información extensiva,
y por tanto el empleo de habilidades de información
[Barry, 1997].
Revista de Informática Educativa y Medios Audiovisuales Vol. 6(11), págs.35-42. 2009
ISSN 1667-8338 © LIE-FI-UBA. liema@fi.uba.ar
37
2.4. Comunicación Interpersonal, Formación de
Investigadores y Grupo de I&D
La comunicación que se promueve al interior de una
comunidad de investigación es factor que favorece
el desarrollo de sus integrantes, quienes en
permanente interacción sujeto-sujeto o sujeto-objeto
de investigación, contribuyen con su experiencia a
la solución de un problema. Esa interacción está
mediada por conocimientos y experiencias
provenientes del mundo académico y profesional,
que son significativas entre quienes pertenecen a
una determinada comunidad de investigación. La
comunicación mediante sesiones colectivas, abre
espacios para que el investigador formado consolide
el avance del investigador en formación y este se
nutra de las observaciones formuladas a/y por sus
pares. Mediante el intercambio y la colaboración en
los espacios de investigación se desarrolla una
relación interformativa que los convierte en espacios
de co-construcción de saberes asumiendo un valor
pedagógico, ya que quien se forma, accede a
metodologías y experiencias desarrolladas por otros
investigadores, lo cual favorece el desarrollo de
competencias necesarias para su desempeño
profesional. En este contexto, Moreno Angarita
[Moreno Angarita, 1997] señala que el grupo ofrece
un caldo de cultivo en el que se posibilita la relación
entre el aprendiz (joven investigador) y el
investigador experimentado (investigador principal).
El aprendiz aprende mediante la confrontación de su
saber incipiente con el otro saber maduro. No
solamente en materia de manejo de herramientas,
que es lo que a veces desafortunadamente más
importa, sino en virtud de los juicios de experto, lo
cual se constituye en la tarea más sofisticada del
aprendizaje investigativo. Es por eso que durante
este proceso, la guía y asesoramiento del
investigador ya formado es indispensable para
corregir y alentar los avances de quien se constituye
en investigador en formación. Su colaboración es
crucial, porque con su conocimiento y experiencia
orienta y fortalece en los investigadores novatos la
ejecución de tareas de investigación y el desarrollo
de habilidades que les conduzcan a formalizar
proyectos innovadores y generadores de
conocimiento y tecnología [Sánchez Lima y
Granados Juárez, 2007].
3. Modelo Colaborativo de Formación de
Investigadores (MCFI)
En [Pollo Catámeo et al., 2009] se propone un
modelo de formación de investigadores centrado en
la colaboración. Este modelo define dos aspectos a
considerar: por un lado la asignación de temas de
investigación y, por otro, la dinámica del grupo de
investigación orientado a ser "per se" una entidad
dedicada a la formación de investigadores.
3.1. Línea de Investigación y Plan de
Investigación
El grupo de investigación se centra en un Docente
Investigador Formado, quien define la Línea de
investigación y genera el Plan de Investigación
asociado (ver figura 1). Marca y determina el área
de conocimiento sobre la cual aplicará el plan de
investigación. Todos los integrantes del Grupo de
Investigación trabajarán en el mismo dominio de
conocimiento organizados en diferentes niveles. Es
el Docente Investigador Formado quien asigna los
temas de investigación (tesis de Doctorado, de
Maestría, de Especialidad o de Grado) conforme a
los distintos niveles de ejecución del plan de
investigación.
Los temas de investigación se asignan teniendo en
cuenta las siguientes premisas: Tesis de Doctorado:
generan nuevo conocimiento dentro del área de
dominio establecida por el Investigador Formado.
Tesis de Maestría: establece la forma en la cual, el
conocimiento desarrollado por el doctorando, puede
aplicarse a un desarrollo avanzado (por ejemplo.
sistema experto). Tesis de Especialidad: involucra
un trabajo de investigación documental o un trabajo
experimental exploratorio. Se vincula con el
maestrando y el doctorando. Tesis de Grado:
instrumenta en algún artefacto software lo planteado
por el tesista de maestría. Desarrolla la solución y
comprende el planteo del tesista de maestría y del
doctorando.
Dentro del Plan de Investigación se generan
diversos Programas de Investigación, cada uno
vinculado en su origen con lo propuesto por un
doctorando. A modo de ejemplo, en la figura 2 se
muestra como los nodos marcados de la figura 1 se
corresponden con un programa de investigaciones
real en el que se concilian proyectos de tesis de
cuatro instituciones.
Estos programas (los de los diversos doctorandos)
son independientes entre sí pero se enmarcan en el
dominio de conocimiento asociada a la línea de
investigación definida por el investigador formado.
El trabajo del maestrando completa la labor iniciada
por el doctorando, generando así su propio
Proyecto, encadenado con el del doctorando.
Esta cadena se completa con los tesistas de
especialidad y de grado que se incorporan en los
niveles inmediatos inferiores alimentando la cadena
y logrando la retroalimentación necesaria para
comprobar y validar en campos reales y concretos lo
propuesto por el doctorando en sus inicios.
________________________________________________________________________________________________________
Revista de Informática Educativa y Medios Audiovisuales Vol. 6(11), págs. 35-42. 2009
ISSN 1667-8338 © LIE-FI-UBA. liema@fi.uba.ar
38
Fig. 1. Generación de plan de investigación y asignación de temas de investigación
3.2. Dinámica del grupo de investigación
A medida que se asciende en los niveles
establecidos se obtiene una visión generalista y
globalizadora. El rol del Investigador Formado
consiste en constituirse en un orientador o
facilitador dentro del proceso investigativo a los
niveles inferiores en el contexto de aprendizaje
colaborativo y participativo. Una misma línea es
tratada en diferentes niveles y en colaboración
natural permiten lograr un proceso integrado. Los
investigadores en formación de distintos niveles
(doctorandos, maestrandos, especializandos y
tesinandos) colaboran entre sí. La supervisión se
genera naturalmente entre los investigadores en
formación de nivel superior y los investigadores en
formación de niveles inferiores inmediatos. En
comparación con el Investigador Formado, son
pares, sin embargo logran guiar y contener a sus
dirigidos.
La red de relaciones que establece la distribución de
tareas de investigación conlleva a una red
colaborativa circular que contiene al Investigador
Formado (ver figura 3) pero cuyo centro son las
ideas-problemas-soluciones-referencias asociadas a
los distintos problemas de investigación, en
contraposición al modelo clásico (red radial) en la
que el investigador formado esta en el centro y los
investigadores en formación solo se conectan con el.
En el marco del paradigma cooperativo y
colaborativo, el workshop o seminario de
investigadores en formación coordinados por el
investigador formado, es la actividad en la que se da
naturalmente la revisión de las propuestas
investigativas y se coopera en la búsqueda de
soluciones a los problemas emergentes en la fase
que se encuentra cada proyecto de investigación.
Fig. 2. Ejemplo de Programa de Investigación Real.
Revista de Informática Educativa y Medios Audiovisuales Vol. 6(11), págs.35-42. 2009
ISSN 1667-8338 © LIE-FI-UBA. liema@fi.uba.ar
39
Fig. 3. Red de relaciones en la formación de investigadores en el modelo colaborativo.
En estos encuentros, cada participante somete al
grupo: ideas, problemas y posibles soluciones.
Recibe sugerencias, críticas y aportes del resto de
los integrantes, bajo la supervisión y guía del
Investigador Formado. Estas actividades permiten
notificar los avances de cada proyecto y recibir el
correspondiente “feedback”.
4. Viabilidad Tecnológica de
Virtualización del MCFI
En esta sección se enumeran los elementos del
espacio de trabajo de un grupo de investigación con
dedicación a la formación de investigadores y se
discute la viabilidad tecnológica de virtualización de
dichos elementos y el espacio correspondiente a
partir de la identificación de artefactos software
existentes que le den soporte.
4.1. Elementos del Espacio de Trabajo (EET)
El espacio de trabajo de un grupo de investigación
contiene un conjunto de elementos que son de uso
cotidiano para los investigadores en formación.
Entre estos elementos se destaca una hemeroteca
especializada, un repositorio de documentos y un
espacio áulico donde desarrollar los workshops o
seminarios. La hemeroteca especializada debe
contener las publicaciones (revistas y actas de
congresos) pertinentes al dominio de conocimiento
en el cual se radica la línea y plan de investigación
del grupo de trabajo. El repositorio de documentos
contiene dos grupos distinguibles: la producción
científica del grupo (artículos, comunicaciones,
tesis, reportes de trabajo), documentos de interés
pertenecientes a otros grupos de investigación en el
mismo dominio. El espacio áulico tiene el
equipamiento de una sala de reuniones con algún
elemento que permita socializar los esquemas de
ideas (pizarrón, rotafolio, entre otros).
4.2. Viabilidad Tecnológica de Virtualización de
EET
En el marco de un modelo metodológico equilibrado
de enseñanza superior [Duart y Sangrà, 2000] se
busca utilizar los medios tecnológicos más
adecuados para mediar la formación de
investigadores poniendo a su alcance los recursos
que ayudarán, al investigador en formación en su
proceso de aprendizaje; y al investigador formado
en llegar a ser un verdadero facilitador del
aprendizaje y de la adquisición de habilidades
investigativas.
La virtualización debe permitir la interacción entre
los investigadores generando un espacio para emitir
preguntas o respuestas a preguntas de cualquiera de
ellos y el libre intercambio de documentos. Las
intervenciones de los participantes deben ser
materializables dentro de un conjunto de artefactos
software colaborativos centrados en la web [Moreno
Aguilar et al, 2003].
Disponer de un repositorio virtualizado con la
producción científica del grupo de investigación, se
constituye en una herramienta de administración del
conocimiento de dicho grupo, deviniendo en una
herramienta de aprendizaje y de aseguramiento de la
________________________________________________________________________________________________________
Revista de Informática Educativa y Medios Audiovisuales Vol. 6(11), págs. 35-42. 2009
ISSN 1667-8338 © LIE-FI-UBA. liema@fi.uba.ar
40
Tabla 1. Artefactos software para mediar los elementos del espacio de trabajo de un grupo de formación de
investigadores
ARTEFACTO CARACTERÍSTICAS EJEMPLOS
Hemeroteca
especializada
Las colecciones deben estar
digitalizadas y los artículos ser
accesibles en versión completa para
todos los investigadores
IEEE Computer Society Digital Library
[IEEE, 2009]
ACM Digital Library [ACM, 2009]
Directory of Open Access Journals [DOAJ,
2009]
Repositorio de
documentos
Es una página web desarrollada por el
grupo de investigación que
hipervincula a:
Su producción científica
Otros documentos de interés
En [UBA-FI-LSI, 2009] se lista y habilita el
acceso a: tesis doctorales, de magister, de
ingeniería informática, artículos,
comunicaciones a congresos.
En [GRISE, 2009] se agrega a los anteriores
los reportes de investigación (research
documents)
Espacio áulico
Permite:
La comunicación virtual (conferen-
cia web) entre los investigadores.
La comunicación de ideas en forma
de esquemas mediante el equivalente
de pizarras virtuales.
En [SKYPE, 2009], se habilita la conferencia
web entre dos personas.
En [ooVoo, 2009], se habilita la conferencia
web hasta seis usuarios.
En [Virtual Whiteboard, 2009], se habilita el
uso de una pizarra compartida hasta cuatro
usuarios.
memoria organizacional que favorece el flujo de
conocimiento intragrupo y el trabajo colaborativo
[Valerio, 2002].
En este contexto, se identifican en la tabla 1 los
artefactos software para mediar los elementos del
espacio de trabajo de un grupo de investigación
dedicado a la formación de investigadores.
5. Conclusiones
La formación de investigadores conlleva la
interacción entre profesionales que poseen distintos
niveles de calificación profesional y académica,
unos de investigadores formados y los otros en
distintos niveles formación, cuyo objeto de
actividad es una problemática de investigación
dentro de su área disciplinar, misma que se
convierte en su objeto de estudio [Sánchez Lima,
2006].
La realidad de nuestro país, en la que los centros de
investigación en informática con capacidad de
formar investigadores en todos sus niveles son
escasos, lleva a la necesidad de abordar la cuestión
de esquemas alternativos de formación de
investigadores. La formación mediada por
tecnología surge como una posibilidad de constituir
grupos de investigación en la que las instituciones
universitarias con centros de investigación
consolidados aporten los investigadores formados y
el resto del sistema universitario las vocaciones para
formarse en los procesos investigativos.
En este contexto, en este trabajo se ha explorado el
marco teórico para la formación en investigación, se
ha introducido un esquema colaborativo de
formación de investigadores, discutiéndose la
viabilidad tecnológica de la virtualización del
esquema descrito.
Como próxima etapa se prevé continuar este trabajo
definiendo los distintos procesos vinculados al
esquema colaborativo de formación de
investigadores y evaluar la posibilidad de ensamblar
los distintos artefactos software en un único
ambiente.
6. Referencias
ACM, 2009. ACM Digital Library. http://
portal.acm.org/dl.cfm. Página vigente al
11/07/09.
Agudelo Cely, N. 2004. Las Líneas de Investigación
y la Formación de Investigadores: Una Mirada
desde la Administración y sus Procesos
Formativos. Revista Electrónica de la Red de
Investigación Educativa 1(1) ISSN: 1794-8061.
http://revista.iered.org/ v1n1/pdf/ncagudelo.pdf.
Página vigente al 11/07/09.
Barry, B. 1997. Information skills for an electronic
world: training doctoral research students.
Journal of Information Science 23(3): .225-238.
ISSN: 1741-6485.
Britos, P. 2008. Procesos de Explotación de
Información Basados en Sistemas Inteligentes.
Tesis de Doctorado en Ciencias Informáticas.
Revista de Informática Educativa y Medios Audiovisuales Vol. 6(11), págs.35-42. 2009
ISSN 1667-8338 © LIE-FI-UBA. liema@fi.uba.ar
41
Facultad de Informática. Universidad Nacional
de La Plata.
Césari, M. 2006. Nivel de Significación Estadística
para el Aprendizaje de una Red Bayesiana.
Tesis de Especialidad en Tecnologías de Explo-
tación de Información. Insttituto Tecnológico
de Buenos Aires.
DOAJ, 2009. Directory of Open Access Journals.
http://www.doaj.org/. Página vigente al
11/07/09.
Duart, J. y Sangrà, A. 2000. Formación
universitaria por medio de la web: un modelo
integrador para el aprendizaje superior. En
Aprender en la Virtualidad de Duart y Sangrà
(coordinadores) Gedisa. Barcelona. ISBN: 84-
8429-161-8.
GRISE, 2009. Grupo de Investigación en Ingeniería
de Software Empírica. Facultad de Informática.
UPM. http://www.grise.upm.es/. Página vigente
al 11/07/09.
IEEE, 2009. IEEE Computer Society Digital
Library. http://www2.computer.org/portal/web/
csdl/home. Página vigente al 11/07/09.
Inciarte González, A. y Torres de Izquierdo, M.
1999. La línea y los grupos de investigación, de
investigación como estrategia para la
formación de investigadores. Agenda
Académica 6(1): 23-28. ISSN: 1315-3013.
Merlino, H. 2006. Ambiente de Integración de
Herramientas para Exploración de Datos
Centrados en la Web. Tesis de Magister en
Ingeniería de Software. Facultad de Informá-
tica. Universidad Politécnica de Madrid.
Moreno Aguilar, L., Vargas Solar, G., Sheremetov,
L. 2003. Hacia una infraestructura de
componentes para la construcción de ambientes
de aprendizaje colaborativo. XIX Simposio
Internacional de Computación en la Educación.
Contextos emergentes en el aprendizaje.
SOMECE 2003. México. http://biblioteca-
digital.conevyt.org.mx/colecciones/documentos
/somece/59.pdf. Página vigente al 11/07/09.
Moreno Angarita, M. 1997. Dos Pistas para el
Análisis de los Procesos de Formación de
Investigadores en las Universidades Colom-
bianas. Nómadas 7: 38-48. Instituto de Estudios
Sociales Contemporáneos. Facultad de Ciencias
Sociales Humanidades y Artes. Universidad
Central. Colombia. http://www.ucentral.edu.
co/NOMADAS/nunme-ante/6-10/
nomadas_07/revista_numero_7_art07_hacia_
una_propuestas.pdf. Página vigente al 11/07/09.
ooVoo. 2009. Sitio Oficial para Descarga de
ooVoo. http://www.oovoo.com/?sc_lang=es-es.
Página vigente al 11/07/09.
Padrón Guillen, J. 2004. Los 7 Pecados Capitales de
la Investigación Universitaria. Informe de
Investigaciones Educativas 18: 69-79. ISSN:
1316-0648.
Pollo-Cattaneo, F., Rodriguez, D., Britos, P.,
García-Martínez, R. 2009. Propuesta de
Formación de RRHH en Investigación Basada
en un Modelo Colaborativo. Hacia un Cambio
de Paradigma. Proceedings of VI International
Conference on Engineering and Computer
Education. Pág. 1262-1266. ISBN 978-85-
89549-58-5.
Ponce Rosas R, Landgrave Ibáñez S, González
Salinas C, Monroy Caballero C. 2002.
Formación de investigadores en medicina
familiar: La tutorización en investigación y la
relación tutor-residente (Primera parte).
Archivos de Medicina Familiar; 4(2): 77-81.
ISSN: 1405-9657.
Rivera, B., Osorio, O., Tangarife, D., Arroyave J.
2000. Los Semilleros de Formación de Jóvenes
Investigadores: la Experiencia de ASPA.
Documentos en el Programa de Maestrías.
Consorcio para el Desarrollo Sostenible de la
Ecorregión Andina. http://www.condesan.org/
memoria/COL0700.pdf. Página vigente al
11/07/09.
Sánchez Lima, L. 2006. Formación de investiga-
dores en posgrado. Un proceso pedagógico por
atender. XX Congreso Nacional de Posgrado.
México. http://www.cenidet.edu.mx/subaca/
web-dda/ docs/leticia comepo06.pdf. Página
vigente al 11/07/09.
Sánchez Lima, L. y Granados Juárez, M. 2007.
Experiencias de Autoformación y Heterofor-
mación de Formadores de Investigadores en el
Campo Tecnológico. IX Congreso Nacional de
Investigación Educativa. México. http://www.
comie.org.mx/congreso/
memoria/v9/ponencias/at16/PRE1178923303.p
df. Página vigente al 11/07/09.
Schulz, G. 2008. Un Ambiente Integrado de
Clasificación, Selección y Ponderación de
Reglas Basado en Sistemas Inteligentes. Tesis
de Grado en Ingeniería Informática. Labora-
torio de Sistemas Inteligentes. Facultad de Inge-
niería. UBA.
Serrano, J. 1997. Nacen, se Hacen o los Hacen:
Formación de Investigadores y Cultura Orga-
nizacional en las Universidades. Nómadas 7:
52-62. Instituto de Estudios Sociales Contem-
poráneos. Facultad de Ciencias Sociales Huma-
nidades y Artes. Universidad Central. Colom-
bia. http://www.ucentral.edu.co/NOMADAS
/nunme-ante/610/nomadas_07/revista_numero_
7_art04_nacen.pdf. Página vigente al 11/07/09.
Revista de Informática Educativa y Medios Audiovisuales Vol. 6(11), págs.35-42. 2009
ISSN 1667-8338 © LIE-FI-UBA. liema@fi.uba.ar
42
SKYPE, 2009. Sitio Oficial para Descarga de
SKYPE. http://www.skype.com/intl/es/. Página
vigente al 11/07/09.
UBA-FI-LSI, 2009. Laboratorio de Sistemas
Inteligentes. Facultad de Ingeniería. UBA.
http://laboratorios.fi.uba.ar/lsi/z-hemerotecavirt
ual.htm. Página vigente al 11/07/09.
Valerio, G. 2002. Herramientas Tecnológicas para
la Administración del Conocimiento. Transfere-
ncia, 57: 19-21. http://www. sistemasdecono
cimiento.org/Produccion _intelectual/articulos/
herramientas_km.pdf. Página vigente al
11/07/09.
Villarreal, D. y Guevara J. 1994. Una Experiencia
en Formación de Investigadores. Núcleos de
Investigadores en la Universidad Autónoma de
Tamaulipas. Revista de la Educación Superior
Volumen XXIII(4), Número 92, Asociación
Nacional de Universidades e Instituciones de
Educación Superior. http://www.anuies.mx/
servicios/p_anuies/publicaciones/revsup/res092
/ txt1.htm. Página vigente al 11/07/09.
Virtual Whiteboard. 2009. Virtual Whiteboard - A
Free Online Collaboration Tool. http://www.
virtual-whiteboard.co.uk/home.asp. Página
vigente al 11/07/09.
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL17
Anexo II: Descripción Funcional
En esta sección se describen los módulos principales con los que cuenta la plataforma
desarrollada y su funcionalidad.
Disponer de un repositorio virtualizado con la producción científica del grupo de
investigación, se constituye en una herramienta de administración del conocimiento de
dicho grupo, deviniendo en una herramienta de aprendizaje y de aseguramiento de la
memoria organizacional que favorece el flujo de conocimiento intragrupo y el trabajo
colaborativo [Valerio, 2002].
A continuación se presentan los módulos de la plataforma que hemos identificado como
prioritarios para mediar los elementos del espacio de trabajo de un grupo de
investigación dedicado a la formación de investigadores:
Repositorio de documentos
El mismo permite almacenar documentos digitales en diferentes formatos y de diferente
tipo (Ej.: documentos de texto, planillas de cálculo, presentaciones, imágenes, archivos
de audio, archivos de video, etc.), clasificados de acuerdo al criterio especificado y
compartirlos entre los miembros del grupo de investigadores. Además provee un
poderoso motor de búsqueda para facilitar la recuperación de los mismos.
Hemeroteca virtual
Mantiene una colección de artículos en su versión completa, ordenados y clasificados de
acuerdo a los criterios del investigador. Además permite enlazar documentos de otros
repositorios (Ej.: bibliotecas, universidades, organizaciones, etc.).
Aula virtual
Este módulo constituye un verdadero espacio de cooperación virtual, donde los
investigadores pueden comunicarse en tiempo real gracias a la funcionalidad de
videoconferencia que permite, utilizando una cámara web y los dispositivos de audio de
una computadora, mantener un canal de audio y video entre múltiples usuarios en
simultáneo lo que constituye un verdadero desafío tecnológico. Para ello se utilizarán
las últimas tecnologías en lo que respecta al streaming de video y VoIP (voz sobre IP).
Pueden además, compartir documentos e intercambiar opiniones e ideas a través de una
pizarra virtual donde todos los usuarios participan y uno actúa como moderador.
La pizarra virtual es un elemento fundamental del espacio áulico ya que simula una
pizarra real donde cada participante del grupo puede “dibujar” y presentar esquemas,
pegar documentos, imágines, textos de todo tipo, etc., y los demás participantes lo verán
en tiempo real. Esto presenta también grandes desafíos desde la implementación
tecnológica en lo que respecta a la sincronización y transmisión de datos entre
programas distribuidos, logrando la performance necesaria para garantizar la calidad de
la experiencia del usuario.
Administración de la Intranet
El módulo de administración permite crear y gestionar, de forma dinámica, grupos de
investigadores, investigadores, usuarios del sistema, perfiles de usuario, permisos,
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL18
tablas paramétricas, documentos, proyectos, programar conferencias, y todas las
funciones necesarias para el correcto funcionamiento de la plataforma.
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL19
1. Anexo III: Soporte Tecnológico
1.1 Introducción
A continuación se presenta la descripción del soporte tecnológico sobre el cual se
construyó la plataforma. El mismo esta conformado por una combinación de diferentes
tecnologías que conforman el estado del arte en lo que se refiere a entornos de
programación orientada a objetos, servidores web, plataformas de streaming media,
manipulación de documentos digitales, etc.
La tecnología web permite que usuarios distribuidos en todo el planeta accedan a la
aplicación desde una computadora conectada a Internet sin más requerimientos de
software instalado que el de un navegador web. Esto permite también la actualización
de versiones sin la necesidad de distribuirlas e instalarlas.
El código abierto (en inglés open source) es el término con el que se conoce al software
distribuido y desarrollado libremente. A diferencia del software libre, el código abierto
tiene un punto de vista más orientado a los beneficios prácticos de compartir el código
que a las cuestiones morales y/o filosóficas. La idea del código abierto se centra en la
premisa de que al compartir el código, el programa resultante tiende a ser de calidad
superior al software propietario, es una visión técnica [OpenSource, 2009].
El presente trabajo adhiere a la filosofía del código abierto y es por ello que todo el
soporte tecnológico sobre el cual se construyó la plataforma cumple con estas
características.
1.2 Arquitectura del Sistema
1.2.1 Implementación del módulo de Aula Virtual
Este módulo constituye el corazón de la plataforma y por lo tanto se desarrolla en
detalle en las sub-secciones siguientes.
Arquitectura de Servidor
Se utilizó una arquitectura de servidor este basada en Red5, un servidor Flash de código
abierto que nos permite, entre otras cosas, distribuir contenidos multimedia a través del
protocolo RTMP o de su variante sobre HTTP, RTMPT [Red5, 2009]. La elección de
Red5 sobre los otros servidores disponibles para esta plataforma (Adobe Media Server,
Wowza) se debe sobre todo a que se trata de un proyecto de código abierto escrito en
Java lo que permite, por un lado, escribir aplicaciones de servidor en este lenguaje y
además, modificar el código fuente del propio servidor para realizar tareas más
específicas imposibles en las otras opciones disponibles.
Red5 se sostiene en la estructura MINA (Multi-purpose Infrastructure for Network
Applications) de Apache [Apache MINA, 2009] que permite desarrollar aplicaciones de
red altamente escalables basándose en parte en la arquitectura SEDA (Staged Event-
Driven Architecture). SEDA propone descomponer la aplicación de red en un modelo
de etapas conectadas por colas que permite filtrar el tráfico de entrada en cada una de
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL20
dichas colas, acondicionando de esta manera el flujo entrante para mejorar el
rendimiento en los picos de tráfico ya que todo puede ser ajustado dinámicamente. Cada
una de estas etapas es una pieza del software independiente que realiza parte del
procesado de la petición pasándolo, en cada caso, a la cola siguiente que corresponda,
todo esto como alternativa a la proliferación de hilos que añaden más sobrecarga y que
no permiten reaccionar tan fácilmente ante un pico en un momento determinado. El ya
anteriormente mencionado MINA es parte del proyecto Apache e intenta aprovechar la
filosofía descrita por SEDA para facilitar la tarea de realizar este tipo de aplicaciones en
Java y la separación entre la gestión de eventos más implementación de protocolos de la
lógica de la aplicación propiamente dicha.
Como se mencionó anteriormente, Red5 utiliza el protocolo RTMP (o RTMPT) para la
distribución de contenidos multimedia. El objetivo de este protocolo es que los clientes
desarrollados con la tecnología Flash (en su momento también de Macromedia)
pudieran enviar y recibir datos en tiempo real asegurando la calidad desde y hacia el
servidor Flash Media Server. Una de las características que esto permite es la
posibilidad de “tunelar” el tráfico para que los datos viajen como si fueran el cuerpo de
mensajes HTTP, de forma que no sean tan fácilmente visibles en dispositivos como
firewalls y gestores de tráfico que son configurados en la frontera de las redes
empresariales y personales para filtrar contenidos de este tipo.
Esta última característica facilita enormemente el uso del servicio de videoconferencia
en ambientes muy restringidos sin, en principio, tener que implementar cambios
importantes en el cliente ni en el servidor.
Red5 utiliza un servidor HTTP y de aplicaciones (servlets) Jetty [Mortbay Jetty, 2009]
administrado por la estructura Spring [Spring, 2009] que pone a disposición del
programador la posibilidad de configurar de diversas maneras (XML, archivos de
propiedades Java, etc) denominadas "ganchos" el comportamiento de diversas
aplicaciones Java. De esta manera es posible codificar en Java una aplicación de
servidor que corra sobre Red5 utilizando la interfaz ofrecida y configurar diversos
parámetros editando varios archivos XML.
Se propone entonces aprovechar las posibilidades que ofrece Red5 para crear una nueva
aplicación de servidor, escrita en Java, que corra sobre Red5 y permita mantener
información sobre la presencia de los clientes conectados, estén o no participando
activamente en alguna conferencia, como así también información sobre las capacidades
de cada cliente, es decir, si puede (y quiere) emitir vídeo y audio (tiene una cámara
conectada). Esta información es ofrecida al resto de los clientes que podrán así elegir en
cada momento los flujos que reciben. La interacción cliente-servidor se realiza mediante
llamadas a métodos remotos desde los clientes aprovechando las capacidades para ello
ofrecidas por Red5, las respuestas del servidor son enviadas como objetos serializados e
interpretadas por el cliente como sea conveniente.
Arquitectura de Cliente
En este caso se utilizó Adobe Flex [Adobe Flex, 2009] como Aplicación Rica de
Internet (RIA), ya que es un marco de desarrollo de código abierto que permite crear
flujos de vídeo y audio desde el navegador de forma muy sencilla, tanto para el
desarrollador como para los usuarios finales.
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL21
Se construyó la aplicación cliente mediante Flex con código ActionScript y MXML.
ActionScript es un lenguaje de programación orientado a objetos similar a Java. Lo creó
Macromedia (actualmente Adobe) para generar, una vez compilado, código Flash
ejecutable (que se denomina SWF) por el reproductor de la misma compañía. Este
lenguaje está basado en la cuarta edición de la especificación de ECMAScript y una de
sus principales características es la adopción de otro estándar ECMA para codificar
documentos XML como objetos del mismo lenguaje. El lenguaje MXML sirve para
definir interfaces de usuario avanzadas en formato XML. Una vez que el desarrollador
ha creado la interfaz con MXML el compilador Flex traduce el documento en las clases
ActionScript necesarias para después compilarlo. Por lo tanto la aplicación diferencia la
interfaz de usuario del resto de las reglas y lógica de negocio.
La aplicación cliente es capaz de realizar el control de sesión de los usuarios
comunicándose para ello con el servidor Red5 de manera de intercambiar el estado de
sesión, datos sobre usuarios conectados, las salas disponibles y el modo de presentación
que hay en la sala donde el usuario está conectado.
El cliente también es capaz de controlar los flujos multimedia, esto se logra utilizando
las clases NetStream y NetConnection, que pertenecen a la API que ofrece el marco de
desarrollo Flex. Por encima se utilizan objetos avanzados que permiten controlar
parámetros de los flujos como el volumen del audio, el aspecto de la imagen, etc.
1.2.2 Implementación de los módulos de Hemeroteca Virtual,
Repositorio de Documentos y Administración
La implementación de estos módulos no requiere servidores especiales como ocurre en
el módulo de Aula Virtual con el caso del Media Server Red5, es por ello que los
mismos pueden ser implementados sobre cualquier tecnología web como puede ser
LAMP. A continuación se describe la tecnología de servidor elegida y su justificación.
Arquitectura de Servidor
Por analogía con el módulo de Aula Virtual y aprovechando el servidor web embebido
en Red5 (Apache Tomcat [Apache Tomcat, 2009]) se utilizó la tecnología Java [Sun
Java, 2009].
Tomcat (también llamado Jakarta Tomcat o Apache Tomcat) funciona como un
contenedor de servlets desarrollado bajo el proyecto Jakarta en la Apache Software
Foundation. Tomcat implementa las especificaciones de los servlets y de JavaServer
Pages (JSP) de Sun Microsystems [Wikipedia, 2009].
Los servlets son objetos que corren dentro del contexto de un contenedor de servlets (ej:
Tomcat) y extienden su funcionalidad. La palabra servlet deriva de otra anterior, applet,
que se refería a pequeños programas que se ejecutan en el contexto de un navegador
web. Por contraposición, un servlet es un programa que se ejecuta en un servidor. El uso
más común de los servlets es generar páginas web de forma dinámica a partir de los
parámetros de la petición que envíe el navegador web [Wikipedia, 2009].
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL22
JSP puede considerarse como una manera alternativa, y simplificada, de construir
servlets. Es por ello que una página JSP puede hacer todo lo que un servlet puede hacer,
y viceversa. Cada versión de la especificación de JSP está fuertemente vinculada a una
versión en particular de la especificación de servlets. El funcionamiento general de la
tecnología JSP es que el Servidor de Aplicaciones interpreta el código contenido en la
página JSP para construir el código Java del servlet a generar. Este servlet será el que
genere el documento (típicamente HTML) que se presentará en la pantalla del
Navegador del usuario [Wikipedia, 2009].
Con respecto al servidor de base de datos se utilizó MySQL [MySQL, 2009] haciendo
uso de las prestaciones de su motor InnoDB.
InnoDB es una tecnología de almacenamiento de datos de fuente abierta para la base de
datos MySQL, incluida como formato de tabla estándar en todas las distribuciones de
MySQL AB a partir de las versiones 4.0. Su característica principal es que soporta
transacciones de tipo ACID y bloqueo de registros e integridad referencial. InnoDB
ofrece una fiabilidad y consistencia muy superior a MyISAM, la anterior tecnología de
tablas de MySQL [Wikipedia, 2009].
Se utilizó también el framework Hibernate para encapsular el acceso a la base de datos.
Hibernate es una herramienta de Mapeo objeto-relacional para la plataforma Java (y
disponible también para .Net con el nombre de NHibernate) que facilita el mapeo de
atributos entre una base de datos relacional tradicional y el modelo de objetos de una
aplicación, mediante archivos declarativos (XML) que permiten establecer estas
relaciones. Hibernate es software libre, distribuido bajo los términos de la licencia GNU
LGPL [Hibernate, 2009].
Arquitectura de Cliente
Siguiendo con la línea de las RIAs se propone aprovechar las ventajas de la tecnología
AJAX para obtener un look and feel e interacción capaz de satisfacer ampliamente las
expectativas de los usuarios. En particular se utilizó el framework ExtJS.
AJAX, acrónimo de Asynchronous JavaScript And XML (JavaScript asíncrono y
XML), es una técnica de desarrollo web para crear aplicaciones interactivas o RIA
(Rich Internet Applications). Estas aplicaciones se ejecutan en el cliente, es decir, en el
navegador de los usuarios mientras se mantiene la comunicación asíncrona con el
servidor en segundo plano. De esta forma es posible realizar cambios sobre las páginas
sin necesidad de recargarlas, lo que significa aumentar la interactividad, velocidad y
usabilidad en las aplicaciones [Wikipedia, 2009].
ExtJS es un conjunto de bibliotecas JavaScript para construcción de Aplicaciones Ricas
de Internet (RIAs). Provee alta performance independiente del navegador, interfaces con
el usuario personalizables y una API intuitiva y fácil de usar [ExtJS, 2009].
En la figura 4 se presenta un esquema de red que muestra las interconexiones entre las
diferentes componentes del sistema. En la figura 5 se muestra un diagrama conceptual
donde se muestra la interacción entre las diferentes tecnologías que se utilizarán.
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL23
Cliente
Cliente Cliente
Servidor de Base de Datos (MySQL)
Servidor Web (Apache) Servidor Multimedia (Red5)
HTTP/RTMP
HTTP/
RTMP
H
TTP/R
TM
P
HTTP
HTTP/
RTMP
O
D
BC
JDBC
Internet
SOAP
Fig.4. Arquitectura de Red
Fig.5. Diagrama Conceptual
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL24
2. Anexo IV: Manual de Instalación
2.1 Requerimientos de hardware
A continuación se presenta la configuración de hardware necesaria para instalar el
servidor de la plataforma.
Configuración mínima:
Procesador de 1GHz
Memoria RAM de 1GB
Configuración recomendada:
Procesador de 2GHz ó más con CPU de 2 ó 4 núcleos (32 ó 64Bit)
Memoria RAM de 4GB
2.2 Requerimientos de software
• Java versión mayor o igual a 6
• Base de datos: MySQL
La base de datos debe escuchar y permitir conexiones TCP/IP y el esquema de
caracteres por defecto debe ser UTF8.
Una instalación de MySQL no escucha por defecto conexiones TCP/IP y no utiliza
UTF8 como esquema de caracteres definido por defecto. Usted tiene que cambiar estas
opciones y reiniciar el servidor de base de datos para que los cambios tengan efecto (el
archivo mysql-config se encuentra en my.cnf).
• Servicio OpenOffice iniciado y escuchando en el puerto 8100.
• Obtener el reproductor Flash 10 Beta. El mismo corrige los problemas de CPU
para Streaming Video => http://labs.adobe.com/technologies/flashplayer10/
2.3 Instalación de la Plataforma
1. Descomprimir el contenido del paquete de instalación que se encuentra en el CD
y copiarlo en un disco local del sistema.
2. Ahora usted tiene una carpeta llamada plataforma_version_1
3. Configure las opciones de la base de datos, vaya a:
plataforma_version_1/webapps/openmeetings/conf/hibernate.cfg.xml
Usuario de la base de datos MySQLr: renombre mysql_hibernate.cfg.xml a
hibernate.cfg.xml y altere los siguientes parámetros de configuración en
(mysql_)hibernate.cfg.xml
<property name="connection.username">root</property>
<property name="connection.password"></property>
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL25
<property name="connection.url">jdbc:mysql://NOMBRE DEL HOST/BASE
DE DATOS</property>
Si tiene problemas para conectarse con su base de datos, un error común es que
la misma no escuche conexiones TCP/IP, o necesita reemplazar el driver jdbc
con el de su versión de base de datos. Usted debe cambiar donde dice NOMBRE
DEL HOST/BASE DE DATOS por sus correspondientes valores, por ejemplo:
jdbc:mysql://localhost/plataforma
4. Reinicie Red5 (Esta tabla será creada automáticamente por hibérnate, si se
produce algún error con la configuración de su base de datos usted podrá
visualizarlos accediendo al archivo de log de Red5.
5. Abra el instalador desde un navegador web accediendo a la dirección:
http://localhost:5080/openmeetings/install y siga las instrucciones.
Luego de ejecutar el instalador todas las funcionalidades básicas se encuentran
instaladas. Ahora deberá ingresar a la plataforma y verificar todas las opciones.
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL26
3. Anexo V: Manual de Usuario
3.1 Introducción
La Plataforma para Formación de Investigadores a Distancia es una herramienta
basada íntegramente en tecnologías web, esto significa que para utilizarla, el usuario
deberá contar con un navegador web con el último plugin disponible de Adobe Flash
instalado.
Teniendo en cuenta que las funciones de videoconferencia requieren de un gran poder
de procesamiento y ancho de banda disponible, la calidad del audio y el video son
altamente sensibles a la capacidad de procesamiento del cliente, la memoria y la
conectividad.
La configuración mínima recomendable para el cliente es una PC con procesador Intel
Pentium 4, 512Mb de memoria RAM y una conexión a Internet de al menos 1Mb.
3.2 Ingreso al sistema
Para ingresar a la plataforma deberá abrir su navegador web e ingresar en la dirección
web indicada (ej: http://fiuba.homeunix.com).
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL27
En la pantalla inicial se visualiza el cuadro de diálogo de login donde deberá ingresar su
nombre de usuario y la contraseña correspondiente, luego presionar el botón “Ingresar”.
3.3 Escritorio
Una vez ingresado al sistema, encontrará una pantalla similar al Escritorio de Windows,
desde donde podrá acceder a las diferentes aplicaciones de la Plataforma.
Existen dos formas de acceder a las aplicaciones, la primera es a través de los iconos
ubicados en el escritorio, deberá hacer click sobre el ícono de la aplicación deseada para
abrir la misma.
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL28
La segunda forma de acceder a las aplicaciones de la Plataforma es mediante el menú
Inicio que se encuentra en la esquina inferior izquierda de la ventana del navegador.
El menú “Inicio”, al igual que en Windows, despliega la lista de aplicaciones
disponibles en la Plataforma. Deberá hacer click en la opción deseada para acceder a la
misma.
Todas las ventanas de aplicación pueden manipularse como las ventanas de Windows.
Con los botones ubicados en la parte superior derecha de las mismas se pueden
minimizar, maximizar y cerrar. Las ventanas minimizadas se pueden volver a
maximizar seleccionándolas desde la parte inferior del escritorio.
La opción “Cerrar” le permite salir de la Plataforma y volver a la pantalla de ingreso.
3.4 Administración
Desde la opción Administración del menú de Inicio se accede a las aplicaciones de
administración de usuarios y grupos del sistema. Para poder acceder a esta opción, el
usuario deberá contar con permisos de administración (usuario del tipo administrador).
3.4.1 Perfil
Ingresando a la opción Perfil del menú de inicio pueden editar los datos del usuario
actual tales como la contraseña de acceso, el nombre, apellido, el nivel académico y la
institución.
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL29
Una vez editado el contenido, presionar el botón “Guardar” para salvarlo o “Cancelar”
para cancelar la modificación.
3.4.2 Usuarios
Ingresando a la opción de administración de usuarios se abrirá el listado de usuarios del
sistema agrupados por institución.
Permite crear un nuevo usuario.
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL30
Para crear un nuevo usuario deberá especificar su nombre de usuario, contraseña,
confirmación de contraseña, tipo de usuario del sistema (Administrador, moderador o
participante), nombre y apellido, dirección de email, seleccionar el nivel académico y la
institución.
Permite modificar los datos de un usuario existente.
Permite actualizar el listado de usuarios.
Permite eliminar un usuario del sistema.
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL31
3.4.3 Grupos de Investigación
Ingresando a la opción de administración de grupos de investigación se abrirá el listado
de grupos.
Permite crear un nuevo grupo.
Para crear un nuevo grupo deberá especificar la descripción del mismo, seleccionar de
la lista los usuarios que lo integran y agregar comentarios (opcional).
Permite modificar los datos de un grupo existente.
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL32
Permite actualizar el listado de grupos.
Permite eliminar un grupo.
3.4.4 Instituciones
Ingresando a la opción de administración de instituciones se abrirá el listado de las
mismas.
Permite crear una nueva institución.
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL33
Para crear una nueva institución deberá especificar la descripción de la misma.
Permite modificar los datos de una institución existente.
Permite actualizar el listado de instituciones.
Permite eliminar una institución.
3.4.5 Niveles Académicos
Ingresando a la opción de administración de niveles académicos se abrirá el listado de
los mismos.
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL34
Permite crear un nuevo nivel académico.
Para crear un nuevo nivel académico deberá especificar la descripción del mismo.
Permite modificar la descripción de un nivel académico existente.
Permite actualizar el listado de niveles académicos.
Permite eliminar un nivel académico.
3.4.6 Categorías de Hemeroteca
Ingresando a la opción de administración de categorías de hemeroteca se abrirá el
listado de las mismas.
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL35
Permite crear una nueva categoría.
Para crear una nueva categoría deberá especificar la descripción de la misma.
Permite modificar los datos de una categoría existente.
Permite actualizar el listado de categorías.
Permite eliminar una categoría.
3.4.7 Categorías de Repositorio
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL36
Ingresando a la opción de administración de categorías de repositorio se abrirá el listado
de las mismas.
Permite crear una nueva categoría.
Para crear una nueva categoría deberá especificar la descripción de la misma.
Permite modificar los datos de una categoría existente.
Permite actualizar el listado de categorías.
Permite eliminar una categoría.
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL37
3.5 Conferencias
Las salas de conferencia son los espacios áulicos donde se desarrollan las sesiones de
trabajo virtuales, permiten que múltiples usuarios pertenecientes a un grupo de estudio
puedan hablar, chatear e intercambiar ideas en la pizarra virtual y a través del video.
Utilizando la opción “Conferencias” del menú de Inicio o el icono de “Conferencias”
ubicado en el escritorio, se accede al listado de conferencias para las cuales el usuario
tiene permiso de ingreso. Solo se podrá acceder a una conferencia si la misma se
encuentra abierta.
Permite crear una nueva conferencia.
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL38
Para crear una nueva conferencia deberá especificar el título de la misma, seleccionar el
grupo al que pertenece, la fecha y hora de inicio, la fecha y hora de finalización,
seleccionar el moderador de una lista, puede opcionalmente escribir comentarios, y
finalmente indica quienes son los usuarios invitados a participar de la misma.
Permite modificar los datos de una conferencia existente.
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL39
Permite eliminar una conferencia.
Permite ingresar en la conferencia seleccionada.
Permite actualizar el listado de conferencias.
3.5.1 Ingresando a la Sala de Conferencias
Al seleccionar la conferencia deseada, se abrirá una nueva ventana, esta operación
puede demorar unos instantes.
Una ventana emergente le indicará que seleccione las opciones y los dispositivos de
audio y video.
1. Audio y Video (Para esta opción necesitará una cámara web y un micrófono)
2. Solo Audio (Para esta opción necesitará solamente un micrófono)
3. Solo Video (Para esta opción necesitará solamente una cámara web)
4. Sin Audio/Video (Para esta opción no requiere micrófono ni cámara web)
Seleccionando la opción “No pedir de nuevo”, la configuración quedará almacenada y
no se le volverá a preguntar.
Una vez seleccionados los dispositivos y luego de presionar el botón “OK”, se abrirá
una nueva ventana emergente:
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL40
Esta ventana le preguntará si desea permitir que la aplicación acceda a su cámara web y
micrófono. Aquí deberá seleccionar la opción “Permitir”, si selecciona “Denegar” no
podrá ser visto y escuchado en la sesión de videoconferencia.
Una vez seleccionada esta opción usted podrá ser escuchado y visto por los demás
participantes.
3.5.2 Dentro de la Sala de Conferencias
Al ingresar a la Sala de Conferencias visualizará una pantalla similar a la siguiente. En
ella se puede observar la lista de usuarios conectados, la pizarra, la barra de
herramientas, la zona de chat, la barra de propiedades y la o las ventanas de video de los
usuarios conectados, incluyendo la suya. Las ventanas de video se pueden mover
arrastrándolas por la pantalla así como también se puede modificar su tamaño.
Las flechas marcadas con círculos rojos en la imagen superior permiten expandir o
contraer las secciones de Usuarios, Propiedades y Chat. Al contraerlas se visualizará la
pantalla de la imagen siguiente:
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL41
3.5.3 La barra de herramientas
La barra de herramientas esta ubicada en la parte superior central de la pizarra y se
utiliza para dibujar o apuntar los objetos que se encuentran en la pizarra.
Limpiar el área de dibujo.
Deshacer la última acción.
Rehacer la última acción.
Seleccionar un objeto.
Puntero.
Insertar texto.
Pintar.
Trazar una línea.
Subrayar.
Dibujar un rectángulo.
Dibujar una elipse.
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL42
Dibujar una flecha.
3.5.4 La barra de propiedades
La barra de propiedades se encuentra debajo de la pizarra y permite modificar la
posición, el tamaño y el color de los objetos seleccionados en la pizarra. Esta barra se
puede contraer para optimizar el tamaño de la pizarra.
x: Permite modificar la posición horizontal del objeto seleccionado.
y: Permite modificar la posición vertical del objeto seleccionado.
a: Permite modificar el ancho del objeto seleccionado.
h: Permite modificar el alto del objeto seleccionado.
Permite cambiar el color de la línea.
Permite habilitar o deshabilitar el color de línea y relleno.
Permite cambiar el color de relleno.
La primera fleche permite cambiar el grosor de la línea y la segunda permite
cambiar la transparencia.
Permite poner el texto en itálica y/o negrita.
3.5.5 El área de chat
El área de chat proporciona un canal alternativo de comunicación entre los participantes
de la sesión. Se debe escribir sobre el cuadro de texto inferior y presionar el botón
“enviar” o presionar la tecla “enter” para compartir el texto escrito con los otros
participantes en el cuadro de texto superior de la sección.
3.5.6 La lista de usuarios
En esta sección de la ventana se visualiza la lista de usuarios conectados. También
permite saber quien es el moderador de la sala y quien tiene permiso para dibujar. Desde
esta sección se puede también modificar la configuración de audio y video.
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL43
Indica si el usuario es moderador de la sala.
Indica si el usuario tiene permiso para dibujar en la pizarra.
Permite reiniciar la configuración de audio/video.
3.5.7 La ventana de video
La ventana de visualización de video muestra la imagen capturada por la cámara web de
cada usuario conectado. La misma se puede mover arrastrándola desde la parte superior
donde se encuentra el nombre del usuario y modificar su tamaño desde la esquina
inferior derecha.
Permite sincronizar el audio y el video.
Indica si el usuario esta hablando.
Permite silenciar el audio del usuario.
3.6 Hemeroteca
La aplicación de Hemeroteca permite visualizar una colección de artículos, ordenados y
clasificados de acuerdo a los criterios del investigador. Además permite enlazar
documentos de otros repositorios (Ej.: bibliotecas, universidades, organizaciones, etc.).
Utilizando la opción “Hemeroteca” del menú de Inicio o el icono “Hemeroteca” ubicado
en el escritorio, se accede a la aplicación de hemeroteca virtual.
La ventana de la aplicación presenta el listado de la descripción de artículos organizados
por categoría. Haciendo click sobre el título de cada columna se puede ordenar en forma
ascendente o descendente el listado.
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL44
Los artículos se presentan agrupados en categorías y presionando los botones (+) y (-)
junto al nombre de cada categoría se pueden expandir o contraer.
Haciendo click en el título de una publicación se abrirá una nueva ventana del
navegador con el contenido de la publicación.
Este botón permite crear una nueva entrada en la hemeroteca.
En la ventana de nuevo link se deberá indicar el título, la dirección url y la categoría.
El botón de modificar permite editar el contenido de un elemento de la lista.
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL45
Una vez editado el contenido, presionar el botón “Guardar” para salvarlo o “Cancelar”
para cancelar la modificación.
El botón eliminar permite eliminar la publicación seleccionada del listado.
El botón actualizar permite refrescar la ventana para actualizar su
contenido.
3.7 Repositorio de documentos
La aplicación repositorio de documentos permite visualizar una colección de
documentos almacenados en la base de datos, en diferentes formatos, ordenados y
clasificados de acuerdo a los criterios del investigador.
Utilizando la opción “Repositorio” del menú de Inicio o el icono “Repositorio” ubicado
en el escritorio, se accede a la aplicación de repositorio de documentos.
La ventana de la aplicación presenta un listado de documentos agrupados por categoría.
Haciendo click sobre el título de cada columna se puede ordenar en forma ascendente o
descendente el listado.
Los documentos se presentan agrupados en categorías, presionando los botones (+) y (-)
junto al nombre de cada categoría se pueden expandir o contraer.
Haciendo click en el título de un documento se abrirá una nueva ventana del navegador
con el contenido de la publicación.
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL46
Este botón permite subir un nuevo documento al repositorio.
En la ventana de nuevo documento se deberá ingresar el título, seleccionar el archivo
correspondiente para subir, copiar una descripción o el abstract del documento, indicar a
que categoría pertenece, si fue publicado en una revista, página inicial, página final,
ISBN y autor.
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL47
El botón de modificar permite editar el contenido de un elemento de la lista.
Una vez editado el contenido, presionar el botón “Guardar” para salvarlo o “Cancelar”
para cancelar la modificación.
El botón eliminar permite eliminar un documento del repositorio.
El botón actualizar permite refrescar la ventana para actualizar su
contenido.
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL48
4. Anexo VI: Documentación Técnica
4.1 Diagrama de Entidad – Relación
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL49
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL50
4.2 Código Fuente
SERVIDOR
Config y Controladores
/config.php
<?php
$_CFG["db_host"] = "localhost";
$_CFG["db_user"] = "root";
$_CFG["db_pass"] = "fiuba";
$_CFG["db_name"] = "fiuba";
?>
/boot.php
<?php
error_reporting (E_ERROR | E_WARNING | E_PARSE);
set_magic_quotes_runtime(0);
session_cache_limiter('none');
if (isset($_POST['GLOBALS']) || isset($_FILES['GLOBALS']) || isset($_GET['GLOBALS']) ||
isset($_COOKIE['GLOBALS']))
{
die("Hacking attempt");
}
if (isset($_SESSION) && !is_array($_SESSION))
{
die("Hacking attempt");
}
if (@ini_get('register_globals') == '1' || strtolower(@ini_get('register_globals')) == 'on')
{
$not_unset = array('_GET', '_POST', '_COOKIE', '_SERVER', '_SESSION', '_ENV', '_FILES');
if (!isset($_SESSION) || !is_array($_SESSION))
{
$_SESSION = array();
}
$input = array_merge($_GET, $_POST, $_COOKIE, $_SERVER, $_SESSION, $_ENV, $_FILES);
unset($input['input']);
unset($input['not_unset']);
while (list($var,) = @each($input))
{
if (in_array($var, $not_unset))
{
die('Hacking attempt!');
}
unset($$var);
}
unset($input);
}
if( !get_magic_quotes_gpc() )
{
if( is_array($_GET) )
{
while( list($k, $v) = each($_GET) )
{
if( is_array($_GET[$k]) )
{
while( list($k2, $v2) = each($_GET[$k]) )
{
$_GET[$k][$k2] = addslashes($v2);
}
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL51
@reset($_GET[$k]);
}
else
{
$_GET[$k] = addslashes($v);
}
}
@reset($_GET);
}
if( is_array($_POST) )
{
while( list($k, $v) = each($_POST) )
{
if( is_array($_POST[$k]) )
{
while( list($k2, $v2) = each($_POST[$k]) )
{
$_POST[$k][$k2] = addslashes($v2);
}
@reset($_POST[$k]);
}
else
{
$_POST[$k] = addslashes($v);
}
}
@reset($_POST);
}
if( is_array($_REQUEST) )
{
while( list($k, $v) = each($_REQUEST) )
{
if( is_array($_REQUEST[$k]) )
{
while( list($k2, $v2) = each($_REQUEST[$k]) )
{
$_REQUEST[$k][$k2] = addslashes($v2);
}
@reset($_REQUEST[$k]);
}
else
{
$_REQUEST[$k] = addslashes($v);
}
}
@reset($_REQUEST);
}
if( is_array($_COOKIE) )
{
while( list($k, $v) = each($_COOKIE) )
{
if( is_array($_COOKIE[$k]) )
{
while( list($k2, $v2) = each($_COOKIE[$k]) )
{
$_COOKIE[$k][$k2] = addslashes($v2);
}
@reset($_COOKIE[$k]);
}
else
{
$_COOKIE[$k] = addslashes($v);
}
}
@reset($_COOKIE);
}
}
function __autoload($class_name)
{
if (strtolower(substr($class_name, 0, 4)) == "pear") return;
$file = HOME_DIR . "lib/$class_name.class.php";
require_once($file);
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL52
}
require_once(HOME_DIR . "config.php");
$db = new db($_CFG["db_host"], $_CFG["db_user"], $_CFG["db_pass"], $_CFG["db_name"], false);
if (!$db->db_connect_id) { die("Could not connect to the database."); }
$session = new session();
if (defined("CHECK_LOGIN"))
{
$chk = $session->check( (defined("CHECK_GRANT") ? CHECK_GRANT : null) );
if (!$chk) header("location: index.php");
}
?>
/index.php
<?php
define("SYSTEM_MODULE", "MAIN");
define("HOME_DIR", "./");
require_once(HOME_DIR . "boot.php");
if (!$session->exists())
{
$tpl = new template("login");
$tpl->flush();
}
else
{
$sql = "SELECT conference.conference_id, conference.description, user_group.description AS
user_group, conference.om_room_id
FROM conference
INNER JOIN user_group ON user_group.user_group_id =
conference.user_group_id
WHERE CURRENT_TIMESTAMP BETWEEN conference.from_date AND
conference.to_date
AND (
((SELECT user_type_id FROM user WHERE user_id = " .
$session->get("user_id") . ") = 1)
OR
(conference.user_group_id IN (SELECT user_group_id
FROM rel_user_user_group WHERE user_id = " . $session->get("user_id") . "))
OR
(conference.conference_id IN (SELECT conference_id
FROM conference_guest WHERE conference_guest.user_id = " . $session->get("user_id") . "))
)
ORDER BY conference.description";
$tpl = new template("desktop");
$tpl->set("CONFERENCES", $db->sql_get_rowset($sql));
$tpl->flush();
}
?>
/conference.php
<?php
define("SYSTEM_MODULE", "MAIN");
define("HOME_DIR", "./");
require_once(HOME_DIR . "boot.php");
if (!$session->exists())
{
$tpl = new template("login");
$tpl->flush();
}
else
{
$conference_id = intval($_GET["conferenceid"]);
list($moderator_id, $om_room_id) = $db->sql_get_row("SELECT moderator_id, om_room_id FROM
conference WHERE conference_id = $conference_id", MYSQL_NUM);
$om = new openmeetings(param::get("om_url"), param::get("om_user"),
param::get("om_password"));
$is_mod = ($session->get("user_type_id") == 1 || $session->get("user_id") == $moderator_id);
$om_swf = $om->enter_room($om_room_id, $session->get("login"), $session->get("fname"),
$session->get("lname"), $session->get("email"), $is_mod);
$tpl = new template("conference");
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL53
$tpl->set("OM_SWF", $om_swf);
$tpl->flush();
}
?>
/document.php
<?php
define("SYSTEM_MODULE", "MAIN");
define("HOME_DIR", "./");
require_once(HOME_DIR . "boot.php");
$document_id = intval($_GET["id"]);
if (!$session->exists() || !$document_id)
{
$tpl = new template("login");
$tpl->flush();
}
else
{
$original_file_name = $db->sql_get_value("SELECT file_name FROM document WHERE
document_id = $document_id");
$attach_file = param::get("upload_path") . "document" . $document_id;
$attach = new attachment($attach_file);
$attach->download($original_file_name);
}
?>
Librerias
/lib/param.class.php
<?php
class param
{
private static $instance;
protected $vars = array();
public static function load()
{
GLOBAL $db;
if (!isset(self::$instance))
{
$c = __CLASS__;
self::$instance = new $c;
$sql = "SELECT `key`, value FROM parameter ORDER BY `key`";
$vars = $db->sql_get_rowset($sql);
for ($i = 0; $i < count($vars); $i++)
{
self::$instance->vars[$vars[$i]["key"]] = $vars[$i]["value"];
}
}
}
public static function get($key)
{
self::load();
return self::$instance->vars[$key];
}
}
?>
/lib/db.class.php
<?php
define("BEGIN_TRANSACTION", 1);
define("END_TRANSACTION", 2);
class db
{
var $db_connect_id;
var $query_result;
var $row = array();
var $rowset = array();
var $num_queries = 0;
var $in_transaction = 0;
var $pagination = array();
var $error = false;
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL54
function __construct($sqlserver, $sqluser, $sqlpassword, $database, $persistency = true, $new_link = false)
{
$this->persistency = $persistency;
$this->new_link = $new_link;
$this->user = $sqluser;
$this->password = $sqlpassword;
$this->server = $sqlserver;
$this->dbname = $database;
$this->db_connect_id = ($this->persistency) ? mysql_pconnect($this->server, $this->user, $this-
>password) : mysql_connect($this->server, $this->user, $this->password, $this->new_link);
if( $this->db_connect_id )
{
if( $database != "" )
{
$this->dbname = $database;
$dbselect = mysql_select_db($this->dbname);
if( !$dbselect )
{
mysql_close($this->db_connect_id);
$this->db_connect_id = $dbselect;
}
}
return $this->db_connect_id;
}
else
{
return false;
}
}
function sql_close()
{
if( $this->db_connect_id )
{
//
// Commit any remaining transactions
//
if( $this->in_transaction )
{
mysql_query("COMMIT", $this->db_connect_id);
}
return mysql_close($this->db_connect_id);
}
else
{
return false;
}
}
function sql_escape_string($string)
{
return mysql_escape_string($string);
}
function sql_begin_transaction()
{
if ( $this->in_transaction ) return false;
$result = mysql_query("BEGIN", $this->db_connect_id);
if(!$result)
{
return false;
}
$this->in_transaction = TRUE;
}
function sql_commit_transaction()
{
if ( !$this->in_transaction ) return false;
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL55
$result = mysql_query("COMMIT", $this->db_connect_id);
if (!$result)
{
return false;
}
$this->in_transaction = FALSE;
}
function sql_rollback_transaction()
{
if ( !$this->in_transaction ) return false;
$result = mysql_query("ROLLBACK", $this->db_connect_id);
if (!$result)
{
return false;
}
$this->in_transaction = FALSE;
}
function sql_query($query = "", $transaction = FALSE)
{
unset($this->query_result);
if( $query != "" )
{
$this->num_queries++;
if( $transaction == BEGIN_TRANSACTION && !$this->in_transaction )
{
$result = mysql_query("BEGIN", $this->db_connect_id);
if(!$result)
{
return false;
}
$this->in_transaction = TRUE;
}
$this->query_result = mysql_query($query, $this->db_connect_id);
}
else
{
if( $transaction == END_TRANSACTION && $this->in_transaction )
{
$result = mysql_query("COMMIT", $this->db_connect_id);
}
}
if( $this->query_result )
{
$this->error = false;
unset($this->row[$this->query_result]);
unset($this->rowset[$this->query_result]);
if( $transaction == END_TRANSACTION && $this->in_transaction )
{
$this->in_transaction = FALSE;
if ( !mysql_query("COMMIT", $this->db_connect_id) )
{
mysql_query("ROLLBACK", $this->db_connect_id);
return false;
}
}
return $this->query_result;
}
else
{
$result['message'] = mysql_error($this->db_connect_id);
$result['code'] = mysql_errno($this->db_connect_id);
$this->error = array("message" => mysql_error($this->db_connect_id), "code"
=> mysql_errno($this->db_connect_id));
if( $this->in_transaction )
{
mysql_query("ROLLBACK", $this->db_connect_id);
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL56
$this->in_transaction = FALSE;
}
return false;
}
}
function sql_paginate($query, $page_number = 1, $page_size = 10)
{
unset($this->query_result);
unset($this->pagination);
$query_count = " SELECT COUNT(*) AS num_rows FROM (" . $query . ") sq";
$result_count = mysql_query($query_count, $this->db_connect_id);
$this->pagination["record_count"] = mysql_result($result_count, 0, 0);
$this->pagination["page_size"] = $page_size;
if (($this->pagination["record_count"] % $this->pagination["page_size"]) == 0)
$this->pagination["page_count"] = floor($this->pagination["record_count"] /
$this->pagination["page_size"]) ;
else
$this->pagination["page_count"] = floor($this->pagination["record_count"] /
$this->pagination["page_size"]) + 1;
if ($this->pagination["page_count"] == 0)
$this->pagination["page_number"] = 1;
elseif ($page_number > $this->pagination["page_count"])
$this->pagination["page_number"] = $this->pagination["page_count"];
else
$this->pagination["page_number"] = $page_number;
$query_page = $query . " LIMIT " . ($this->pagination["page_number"] - 1) * $this-
>pagination["page_size"] . ", " . $this->pagination["page_size"];
$result_page = $this->sql_query($query_page);
$this->pagination["result"] = $result_page;
return $this->pagination;
}
function sql_num_rows($query_id = 0)
{
if( !$query_id )
{
$query_id = $this->query_result;
}
return ( $query_id ) ? mysql_num_rows($query_id) : false;
}
function sql_affected_rows()
{
return ( $this->db_connect_id ) ? mysql_affected_rows($this->db_connect_id) : false;
}
function sql_num_fields($query_id = 0)
{
if( !$query_id )
{
$query_id = $this->query_result;
}
return ( $query_id ) ? mysql_num_fields($query_id) : false;
}
function sql_field_name($offset, $query_id = 0)
{
if( !$query_id )
{
$query_id = $this->query_result;
}
return ( $query_id ) ? mysql_field_name($query_id, $offset) : false;
}
function sql_field_type($offset, $query_id = 0)
{
if( !$query_id )
{
$query_id = $this->query_result;
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL57
}
return ( $query_id ) ? mysql_field_type($query_id, $offset) : false;
}
function sql_fetch_row($query_id = 0, $fetch_mode = MYSQL_ASSOC)
{
if( !$query_id )
{
$query_id = $this->query_result;
}
if( $query_id )
{
$this->row[$query_id] = mysql_fetch_array($query_id, $fetch_mode);
return $this->row[$query_id];
}
else
{
return false;
}
}
function sql_fetch_rowset($query_id = 0, $fetch_mode = MYSQL_ASSOC)
{
if( !$query_id )
{
$query_id = $this->query_result;
}
if( $query_id )
{
unset($this->rowset[$query_id]);
unset($this->row[$query_id]);
while($this->rowset[$query_id] = mysql_fetch_array($query_id, $fetch_mode))
{
$result[] = $this->rowset[$query_id];
}
return $result;
}
else
{
return false;
}
}
function sql_fetch_field($field, $rownum = -1, $query_id = 0)
{
if( !$query_id )
{
$query_id = $this->query_result;
}
if( $query_id )
{
if( $rownum > -1 )
{
$result = mysql_result($query_id, $rownum, $field);
}
else
{
if( empty($this->row[$query_id]) && empty($this->rowset[$query_id]) )
{
if( $this->sql_fetchrow() )
{
$result = $this->row[$query_id][$field];
}
}
else
{
if( $this->rowset[$query_id] )
{
$result = $this->rowset[$query_id][0][$field];
}
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL58
else if( $this->row[$query_id] )
{
$result = $this->row[$query_id][$field];
}
}
}
return $result;
}
else
{
return false;
}
}
function sql_row_seek($rownum, $query_id = 0)
{
if( !$query_id )
{
$query_id = $this->query_result;
}
return ( $query_id ) ? mysql_data_seek($query_id, $rownum) : false;
}
function sql_next_id()
{
return ( $this->db_connect_id ) ? mysql_insert_id($this->db_connect_id) : false;
}
function sql_free_result($query_id = 0)
{
if( !$query_id )
{
$query_id = $this->query_result;
}
if ( $query_id )
{
unset($this->row[$query_id]);
unset($this->rowset[$query_id]);
@mysql_free_result($query_id);
return true;
}
else
{
return false;
}
}
function sql_get_value($query)
{
$result = $this->sql_query($query);
if (!$result) return false;
if ($this->sql_num_rows() == 0) return false;
$row = $this->sql_fetch_row($result, MYSQL_BOTH);
if (!$row) return false;
$this->sql_free_result();
return $row[0];
}
function sql_get_row($query, $fetch_mode = MYSQL_ASSOC)
{
$result = $this->sql_query($query);
if (!$result) return false;
if ($this->sql_num_rows() == 0) return false;
$row = $this->sql_fetch_row(0, $fetch_mode);
$this->sql_free_result();
return $row;
}
function sql_get_rowset($query, $fetch_mode = MYSQL_ASSOC)
{
$result = $this->sql_query($query);
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL59
if (!$result) return false;
$rowset = $this->sql_fetch_rowset(0, $fetch_mode);
$this->sql_free_result();
return $rowset;
}
function sql_error()
{
return $this->error;
}
}
?>
/lib/session.class.php
<?php
class session
{
public function __construct()
{
session_start();
}
public function init($user_name, $password)
{
GLOBAL $db;
$user_name = trim(strtolower($user_name));
$password = trim($password);
if ($user_name == "") { $this->set_flash("login_error", true); return false; }
if (strlen($user_name) < 4 || strlen($user_name) > 15) { $this->set_flash("login_error",
true); return false; }
if (!preg_match("/^[0-9a-z]+$/", $user_name)) { $this->set_flash("login_error", true); return
false; }
if ($password == "") { $this->set_flash("login_error", true); return false; }
if (strlen($password) < 4 || strlen($password) > 15) { $this->set_flash("login_error", true);
return false; }
if (!preg_match("/^[0-9a-z]+$/", strtolower($password))) { $this->set_flash("login_error",
true); return false; }
$query = " SELECT user.user_id
FROM user
WHERE user.login = '" . $db-
>sql_escape_string($user_name) . "'
AND user.password = '" . $db-
>sql_escape_string($password) . "'";
$result = $db->sql_query($query);
if (!$result) { return false; }
if ($db->sql_num_rows() == 1)
{
$row = $db->sql_fetch_row();
$this->init_by_id($row["user_id"]);
return true;
}
else
{
$this->set_flash("login_error", true);
return false;
}
}
public function init_by_id($user_id)
{
GLOBAL $db;
$query = " SELECT user.*
FROM user
WHERE user.user_id = " . $user_id;
$result = $db->sql_query($query);
if (!$result) { print_r($db->sql_error()); session_destroy(); return false; }
$row = $db->sql_fetch_row();
foreach ($row as $key => $value)
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL60
{
if (!is_numeric($key))
{
$this->set($key, $value);
}
}
unset($_SESSION["session_flashs"]);
}
public function end()
{
session_destroy();
}
public function check()
{
GLOBAL $db;
$ok = true;
$query = "SELECT * FROM user WHERE login='" . $db->sql_escape_string($this-
>get("user_name")) . "' AND password='" . $db->sql_escape_string($this->get("password")) . "'";
$result = $db->sql_query($query);
if (!$result)
$ok = false;
else
{
$num_rows = $db->sql_num_rows();
if ($num_rows == 0)
$ok = false;
else
$ok = true;
}
if (!$ok)
{
$this->end();
}
return $ok;
}
public function exists()
{
return !!($this->get("user_id"));
}
public function get($key)
{
return $_SESSION["session_vars"][$key];
}
public function set($key, $value)
{
$_SESSION["session_vars"][$key] = $value;
}
public function get_array()
{
$rtn = $_SESSION["session_vars"];
unset($rtn["password"]);
return $rtn;
}
public function get_flash($key)
{
$return = $_SESSION["session_flashs"][$key];
unset($_SESSION["session_flashs"][$key]);
return $return;
}
public function set_flash($key, $value)
{
$_SESSION["session_flashs"][$key] = $value;
}
public function get_flash_array()
{
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL61
$rtn = $_SESSION["session_flashs"];
return $rtn;
}
}
?>
/lib/attachment.class.php
<?php
class attachment
{
private $file = "";
public function __construct($attach_file)
{
$this->file = $attach_file;
}
public function get_file()
{
return $this->file;
}
public function exists()
{
return file_exists($this->file);
}
public function upload($source_file)
{
if ($this->exists()) $this->remove();
if (!move_uploaded_file($source_file, $this->file)) return false;
if (!@chmod($this->file, 0666)) return false;
return true;
}
public function download($original_file_name, $forced_content_disposition = "")
{
$file_extension = "." . strtolower(substr(strrchr($original_file_name, "."), 1));
$content_disposition = "attachment";
switch( strtolower($file_extension) )
{
case ".pdf": $type = "application/pdf"; break;
case ".exe": $type = "application/octet-stream"; break;
case ".zip": $type = "application/zip"; break;
case ".doc": $type = "application/msword"; break;
case ".xls": $type = "application/vnd.ms-excel"; break;
case ".ppt": $type = "application/vnd.ms-powerpoint"; break;
case ".gif": $type = "image/gif"; break;
case ".png": $type = "image/png"; break;
case ".jpe": case ".jpeg":
case ".jpg": $type = "image/jpeg"; break;
case ".txt": $type = "text/plain"; break;
case ".htm": case ".html": case ".xml": $type = "text/html"; $content_disposition
= "inline"; break;
default: $type = "application/force-download";
}
if ($forced_content_disposition) $content_disposition = $forced_content_disposition;
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private", false);
header("Content-Type: " . $type);
header("Content-Disposition: " . $content_disposition . "; filename="" .
$original_file_name . "";");
header("Content-Transfer-Encoding: binary");
header("Content-Length: " . @filesize($this->file));
@readfile("$this->file");
exit();
}
public function remove()
{
if (!@unlink($this->file)) return false;
return true;
}
PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA
D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL62
}
?>
/lib/escape.class.php
<?php
class escape
{
private static function unhtmlentities($string)
{
$trans_tbl = get_html_translation_table(HTML_ENTITIES);
$trans_tbl = array_flip($trans_tbl);
return strtr($string, $trans_tbl);
}
public static function post2html($str, $allow_html = false)
{
if (!$allow_html)
return trim(htmlentities(stripslashes($str), ENT_QUOTES));
else
return trim(stripslashes($str));
}
public static function post2db($str)
{
return self::unhtmlentities(str_replace("'", "''", trim($str)));
}
public static function db2html($str, $multi_line = false, $allow_html = false)
{
if (!$allow_html)
$str = htmlentities($str, ENT_QUOTES);
if ($multi_line)
{
$str = str_replace("rn", "<br />", $str);
$str = str_replace("n", "<br />", $str);
}
return $str;
}
}
?>
/lib/template.class.php
<?php
class template
{
private $file;
private $vars;
private $buffer;
private $filled = false;
public function __construct($file)
{
$this->file = HOME_DIR . "tpl/$file.tpl.php";
}
public function set($var_name, $var_value)
{
if (is_object($var_value) && (get_class($var_value) == "template" || is_subclass_of($var_value, "template")))
{
$this->vars[$var_name] = $var_value->fill($this);
}
else
{
$this->vars[$var_name] = $var_value;
}
}
public function set_bulk($var_list)
{
foreach ($var_list as $var_name => $var_value)
$this->set($var_name, $var_value);
}
public function fill($parent = null)
{
if ($this->filled) return $this->buffer;
if (is_object($parent))
{
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional
donofrio-uminsky-trabajoprofesional

Más contenido relacionado

Similar a donofrio-uminsky-trabajoprofesional

Pósteres sobre El Uso de las TIC en la Educación
Pósteres sobre El Uso de las TIC en la EducaciónPósteres sobre El Uso de las TIC en la Educación
Pósteres sobre El Uso de las TIC en la Educación3 Ciencias
 
Innovar con criterio: aprendizaje emergente.
Innovar con criterio: aprendizaje emergente. Innovar con criterio: aprendizaje emergente.
Innovar con criterio: aprendizaje emergente. Ruth Martínez
 
Tarea 2 del diplomado de habilitacion docente
Tarea 2 del diplomado de habilitacion docenteTarea 2 del diplomado de habilitacion docente
Tarea 2 del diplomado de habilitacion docenteANA HILDA RODRIGUEZ
 
"Arquitectura de información, usabilidad y estándares en los proyectos e-lear...
"Arquitectura de información, usabilidad y estándares en los proyectos e-lear..."Arquitectura de información, usabilidad y estándares en los proyectos e-lear...
"Arquitectura de información, usabilidad y estándares en los proyectos e-lear...CRISEL BY AEFOL
 
USO EDUCATIVO DE VARIADAS PLATAFORMAS Y HERRAMIENTAS TECNOLÓGICAS ALOJADAS EN...
USO EDUCATIVO DE VARIADAS PLATAFORMAS Y HERRAMIENTAS TECNOLÓGICAS ALOJADAS EN...USO EDUCATIVO DE VARIADAS PLATAFORMAS Y HERRAMIENTAS TECNOLÓGICAS ALOJADAS EN...
USO EDUCATIVO DE VARIADAS PLATAFORMAS Y HERRAMIENTAS TECNOLÓGICAS ALOJADAS EN...carlosnieto1984
 
Revista Mundo Contact Febrero 2014
Revista Mundo Contact Febrero 2014Revista Mundo Contact Febrero 2014
Revista Mundo Contact Febrero 2014Mundo Contact
 
Educacion Bilbioteca y TICS
Educacion Bilbioteca y TICSEducacion Bilbioteca y TICS
Educacion Bilbioteca y TICSLibio Huaroto
 
Vendimia 2012 ponencia
Vendimia 2012 ponenciaVendimia 2012 ponencia
Vendimia 2012 ponenciacarlprom
 
Presentación Visual Web 2.0
Presentación Visual Web 2.0Presentación Visual Web 2.0
Presentación Visual Web 2.0ainoaylorena
 
T.a. edificado convertido
T.a. edificado convertidoT.a. edificado convertido
T.a. edificado convertidoadrianepi1
 
Presentación de propuesta investigativa
Presentación de propuesta investigativaPresentación de propuesta investigativa
Presentación de propuesta investigativaJose Acosta
 
Herramientas de la web 3
Herramientas de la web 3Herramientas de la web 3
Herramientas de la web 3Matsukasaki
 
Mosaic. Presentación Wikis
Mosaic. Presentación WikisMosaic. Presentación Wikis
Mosaic. Presentación WikisSara Sobrino
 

Similar a donofrio-uminsky-trabajoprofesional (20)

Pósteres sobre El Uso de las TIC en la Educación
Pósteres sobre El Uso de las TIC en la EducaciónPósteres sobre El Uso de las TIC en la Educación
Pósteres sobre El Uso de las TIC en la Educación
 
Silabo TIC I - Civil
Silabo TIC I - CivilSilabo TIC I - Civil
Silabo TIC I - Civil
 
Innovar con criterio: aprendizaje emergente.
Innovar con criterio: aprendizaje emergente. Innovar con criterio: aprendizaje emergente.
Innovar con criterio: aprendizaje emergente.
 
Silabo TIC I - Der
Silabo TIC I - DerSilabo TIC I - Der
Silabo TIC I - Der
 
Tarea 2 del diplomado de habilitacion docente
Tarea 2 del diplomado de habilitacion docenteTarea 2 del diplomado de habilitacion docente
Tarea 2 del diplomado de habilitacion docente
 
"Arquitectura de información, usabilidad y estándares en los proyectos e-lear...
"Arquitectura de información, usabilidad y estándares en los proyectos e-lear..."Arquitectura de información, usabilidad y estándares en los proyectos e-lear...
"Arquitectura de información, usabilidad y estándares en los proyectos e-lear...
 
USO EDUCATIVO DE VARIADAS PLATAFORMAS Y HERRAMIENTAS TECNOLÓGICAS ALOJADAS EN...
USO EDUCATIVO DE VARIADAS PLATAFORMAS Y HERRAMIENTAS TECNOLÓGICAS ALOJADAS EN...USO EDUCATIVO DE VARIADAS PLATAFORMAS Y HERRAMIENTAS TECNOLÓGICAS ALOJADAS EN...
USO EDUCATIVO DE VARIADAS PLATAFORMAS Y HERRAMIENTAS TECNOLÓGICAS ALOJADAS EN...
 
Revista Mundo Contact Febrero 2014
Revista Mundo Contact Febrero 2014Revista Mundo Contact Febrero 2014
Revista Mundo Contact Febrero 2014
 
Redes Sociales Y Web 2
Redes Sociales Y Web 2Redes Sociales Y Web 2
Redes Sociales Y Web 2
 
Educacion Bilbioteca y TICS
Educacion Bilbioteca y TICSEducacion Bilbioteca y TICS
Educacion Bilbioteca y TICS
 
Silabo TIC I - Admi
Silabo TIC I - AdmiSilabo TIC I - Admi
Silabo TIC I - Admi
 
Vendimia 2012 ponencia
Vendimia 2012 ponenciaVendimia 2012 ponencia
Vendimia 2012 ponencia
 
Wikis
WikisWikis
Wikis
 
Wikis 1
Wikis 1Wikis 1
Wikis 1
 
Wikis
WikisWikis
Wikis
 
Presentación Visual Web 2.0
Presentación Visual Web 2.0Presentación Visual Web 2.0
Presentación Visual Web 2.0
 
T.a. edificado convertido
T.a. edificado convertidoT.a. edificado convertido
T.a. edificado convertido
 
Presentación de propuesta investigativa
Presentación de propuesta investigativaPresentación de propuesta investigativa
Presentación de propuesta investigativa
 
Herramientas de la web 3
Herramientas de la web 3Herramientas de la web 3
Herramientas de la web 3
 
Mosaic. Presentación Wikis
Mosaic. Presentación WikisMosaic. Presentación Wikis
Mosaic. Presentación Wikis
 

donofrio-uminsky-trabajoprofesional

  • 1. Universidad de Buenos Aires Facultad de Ingeniería 75.99 Trabajo Profesional Plataforma para Formación de Investigadores a Distancia Director: Dr. Ramón García-Martínez Codirectores: M.Ing. Enrique Fernández Lic. Darío Rodriguez Alumnos: Leonardo D’Onofrio 75381 Fernando Uminsky 74973
  • 2. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’Onofrio - Uminsky Trabajo Profesional Resumen Una estrategia posible para la formación de investigadores es constituir núcleos de investigación integrados por investigadores en formación bajo la dirección de un científico formado. Las tecnologías de la información y la comunicación han permitido construir comunidades virtuales integradas por individuos que pueden estar lejos físicamente pero cerca cognitivamente, emergiendo modelos colaborativos de formación de investigadores. En este contexto, el presente trabajo implementa un prototipo de plataforma tecnológica capaz de virtualizar la colaboración y cooperación que da soporte a uno de dichos modelos recientemente propuesto por los directores del trabajo. Abstract A possible strategy for training of researchers is to provide research cores integrated by researchers in training under the guidance of a trained scientist. The information and communication technologies have allowed the construction of virtual communities made up of individuals who may be far away physically but cognitively close, emerging collaborative models of research training. In this context, this work implements a prototype of a technological platform capable to virtualize the collaboration and cooperation which supports one of the models recently proposed by the directors of this work.
  • 3. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL3
  • 4. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL4 1. Descripción del trabajo A continuación se describen brevemente los anexos que componen el presente trabajo. Anexo 1: Fundamento Teórico Rodríguez, D., Bertone, R., García-Martínez, R. 2009. Consideraciones sobre el Uso de Espacios Virtuales en la Formación de Investigadores. Revista de Informática Educativa y Medios Audiovisuales, 6: 35-42. ISBN 1667-8338. Anexo 2: Descripción funcional En esta sección se describen los módulos principales con los que cuenta la plataforma y su funcionalidad. Anexo 3: Soporte Tecnológico En esta sección se presenta la descripción del soporte tecnológico sobre el cual se construyó la plataforma. El mismo esta conformado por una combinación de diferentes tecnologías que conforman el estado del arte en lo que se refiere a entornos de programación orientada a objetos, servidores web, plataformas de streaming media, manipulación de documentos digitales, etc. Anexo 4: Manual de Instalación En este anexo se describen los requerimientos de hardware y software y los pasos necesarios para instalar la plataforma en un servidor. Anexo 5: Manual de Usuario Este anexo incluye el manual que permite al usuario de la plataforma conocer el funcionamiento de cada una de sus herramientas. Anexo 6: Documentación Técnica En esta sección se incluyen los diagramas técnicos y código fuente de la plataforma.
  • 5. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL5 2. Referencias 2.1 Autores Britos, P. 2008. Procesos de Explotación de Información Basados en Sistemas Inteligentes. Tesis de Doctorado en Ciencias Informáticas. Facultad de Informática. Universidad Nacional de La Plata. Césari, M. 2006. Nivel de Significación Estadística para el Aprendizaje de una Red Bayesiana. Tesis de Especialidad en Tecnologías de Explotación de Información. Instituto Tecnológico de Buenos Aires. Duart, J. y Sangrà, A. 2000. Formación universitaria por medio de la web: un modelo integrador para el aprendizaje superior. En Aprender en la Virtualidad de Duart y Sangrà (coordinadores) Gedisa. Barcelona. ISBN: 84-8429-161-8. Merlino, H. 2006. Ambiente de Integración de Herramientas para Exploración de Datos Centrados en la Web. Tesis de Magister en Ingeniería de Software. Facultad de Informática. Universidad Politécnica de Madrid. Moreno Aguilar, L., Vargas Solar, G., Sheremetov, L. 2003. Hacia una infraestructura de componentes para la construcción de ambientes de aprendizaje colaborativo. XIX Simposio Internacional de Computación en la Educación. Contextos emergentes en el aprendizaje. SOMECE 2003. México.http://bibliotecadigital.conevyt.org.mx/colecciones/documento s/somece/59.pdf. Página vigente al 11/07/09. Moreno Angarita, M. 1997. Dos Pistas para el Análisis de los Procesos de Formación de Investigadores en las Universidades Colombianas. Nómadas 7: 38- 48. Instituto de Estudios Sociales Contemporáneos. Facultad de Ciencias Sociales Humanidades y Artes. Universidad Central. Colombia. http://www.ucentral.edu.co/NOMADAS/nunme-ante/6- 10/nomadas_07/revista_numero_7_art07_hacia_una_propuestas.pdf. Página vigente al 11/07/09. Padrón Guillen, J. 2004. Los 7 Pecados Capitales de la Investigación Universitaria. Informe de Investigaciones Educativas 18: 69-79. ISSN: 1316-0648. Pollo-Cattaneo, F., Rodriguez, D., Britos, P., García-Martínez, R. 2009. Propuesta de Formación de RRHH en Investigación Basada en un Modelo Colaborativo. Hacia un Cambio de Paradigma. Proceedings of VI International Conference on Engineering and Computer Education. Pág. 1262-1266. ISBN 978-85-89549-58-5. Ponce Rosas R, Landgrave Ibáñez S, González Salinas C, Monroy Caballero C. 2002. Formación de investigadores en medicina familiar: La tutorización en investigación y la relación tutor-residente (Primera parte). Archivos de Medicina Familiar; 4(2): 77-81. ISSN: 1405-9657.
  • 6. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL6 Rivera, B., Osorio, O., Tangarife, D., Arroyave J. 2000. Los Semilleros de Formación de Jóvenes Investigadores: la Experiencia de ASPA. Documentos en el Programa de Maestrías. Consorcio para el Desarrollo Sostenible de la Ecorregión Andina. http://www.condesan.org/ memoria/COL0700. pdf. Página vigente al 11/07/09. Rodríguez, D., Bertone, R., García-Martínez, R. 2009. Consideraciones sobre el Uso de Espacios Virtuales en la Formación de Investigadores. Revista de Informática Educativa y Medios Audiovisuales, 6: 35-42. ISSN 1667- 8338. Schulz, G. 2008. Un Ambiente Integrado de Clasificación, Selección y Ponderación de Reglas Basado en Sistemas Inteligentes. Tesis de Grado en Ingeniería Informática. Laboratorio de Sistemas Inteligentes. Facultad de Ingeniería. UBA. Valerio, G. 2002. Herramientas Tecnológicas para la Administración del Conocimiento. Transferencia, 57: 19-21. http://www.sistemasde conocimiento.org/Produccion_intelectual/articulos/herramientas_km.p df. Página vigente al 11/07/09.IEEE, 2009. IEEE Computer Society Digital Library. http://www2.computer.org/portal/web/csdl/home. Página vigente al 11/07/09. 2.2 Sitios Web ACM, 2009. ACM Digital Library. http://portal.acm.org/dl.cfm. Página vigente al 11/07/09. Adobe Flex, 2009. Adobe Flex Open Source Framework http://www.adobe.com/products/flex/ Página vigente al 24/08/2009 Apache MINA, 2009. Apache MINA Project. http://mina.apache.org/ Página vigente al 24/08/2009 Apache Tomcat, 2009. Apache Tomcat. The Apache Software Foundation. http://tomcat.apache.org/ Página vigente al 24/08/2009. DOAJ, 2009. Directory of Open Access Journals. http://www.doaj.org/ Página vigente al 11/07/09. ExtJS, 2009. Ext JS: Cross-Browser Rich Internet Application Framework. http://www.extjs.com/products/extjs/ Página vigente al 24/08/2009. GRISE, 2009. Grupo de Investigación en Ingeniería de Software Empírica. Facultad de Informática. UPM. http://www.grise.upm.es/ Página vigente al 11/07/09. Hibernate, 2009. Relational Persistence for Java and .NET https://www.hibernate.org/ Página vigente al 24/08/2009.
  • 7. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL7 Mortbay Jetty, 2009. Jetty WebServer http://www.mortbay.org/jetty/ Página vigente al 24/08/2009 MySQL, 2009. The world’s most popular open source database. http://www. mysql.com/ Página vigente al 24/08/2009. ooVoo. 2009. Sitio Oficial para Descarga de ooVoo. http://www.oovoo. com/?sc_lang=es-es Página vigente al 11/07/09. Red5, 2009. Open Source Flash Server. http://osflash.org/red5 Página vigente al 24/08/2009 SKYPE, 2009. Sitio Oficial para Descarga de SKYPE. http://www.skype.com/intl/es/ Página vigente al 11/07/09 Spring, 2009. Spring Application Framework http://www.springframework.net/ Página vigente al 24/08/2009 Sun Java, 2009. Sun Developer Network (SDN). Developer Resources for Java Technology. http://java.sun.com/ Página vigente al 24/08/2009. UBA-FI-LSI, 2009. Laboratorio de Sistemas Inteligentes. Facultad de Ingeniería. UBA. http://laboratorios.fi.uba.ar/lsi/z-hemerotecavirtual.htm Página vigente al 11/07/09. Virtual Whiteboard. 2009. Virtual Whiteboard - A Free Online Collaboration Tool. http://www.virtual-whiteboard.co.uk/home.asp Página vigente al 11/07/2009. Wikipedia, 2009. InnoDB. http://es.kiwipedia.org/innodb Página vigente al 24/08/2009. Wikipedia, 2009. Java Server Pages. http://es.wikipedia.org/wiki/JSP Página vigente al 24/08/2009 Wikipedia, 2009. Open Source http://es.wikipedia.org/wiki/Open_source Página vigente al 24/08/2009 Wikipedia, 2009. Servlets. http://es.wikipedia.org/wiki/Servlets Página vigente al 24/08/2009 Wikipedia, 2009. Tomcat. http://es.wikipedia.org/wiki/Tomcat Página vigente al 24/08/2009
  • 8. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL8 3. Anexo I: Fundamento Teórico
  • 9. ________________________________________________________________________________________________________ Revista de Informática Educativa y Medios Audiovisuales Vol. 6(11), págs. 35-42. 2009 ISSN 1667-8338 © LIE-FI-UBA. liema@fi.uba.ar 35 Consideraciones sobre el Uso de Espacios Virtuales en la Formación de Investigadores Darío Rodríguez, Rodolfo Bertone, Ramón García-Martínez Programa de Maestría en Tecnología Informática Aplicada a la Educación. Facultad de Informática. Universidad Nacional de La Plata. Instituto de Investigaciones en Informática LIDI. Facultad de Informática. Universidad Nacional de La Plata. Área Ingeniería del Software. Licenciatura en Sistemas. Departamento Desarrollo Productivo y Tecnológico. Universidad Nacional de Lanús djhr_1977@yahoo.com.ar, pbertone@lidi.info.unlp.edu.ar, rgm1960@yahoo.com Resumen: Una estrategia posible para la formación de investigadores es constituir núcleos de investigación integrados por investigadores en formación bajo la dirección de un científico formado. Las tecnologías de la información y la comunicación han permitido construir comunidades virtuales integradas por individuos que pueden estar lejos físicamente pero cerca cognitivamente, emergiendo modelos colaborativos de formación de investigadores. En este contexto, el trabajo formula una aproximación a la identificación de los elementos del espacio de trabajo de un grupo de investigación dedicado a la formación y evalúa la viabilidad tecnológica de la virtualización de los elementos de dicho espacio. Palabras claves: Formación de investigadores. Espacios virtuales. Formación mediada por tecnología. 1. Introducción Varios autores [Rivera et al., 2000; Ponce Rosas et al., 2002; Padrón Guillen, 2004; Pollo Catámeo et al., 2009] han señalado que el grupo de investigación puede estar integrado por individuos que no pertenecen a la misma institución ni siquiera al mismo país y que lo único requerido es que estos individuos compartan el universo de sentido del dominio de investigación. Las tecnologías de la información y la comunicación han permitido construir comunidades virtuales integradas por individuos que pueden estar lejos físicamente pero cerca cognitivamente [Moreno Angarita, 1997]. En este contexto, la masificación de Internet demanda una nueva conceptualización de nociones como grupos de investigación, formación de investigadores, pares, publicaciones, socialización, cooperación, entre otros. La virtualización ha potenciado el concepto que los grupos no son definitivamente la suma de individuos, sino la resultante de un entramado de sistemas simbólicos, prácticas, rituales y reflexiones. En esta red de intercambio de significados entre los investigadores, alrededor del objeto y del proyecto de investigación, se construye una especie de escuela virtual, donde se otorgan status y se valoran productos investigativos. En este artículo se presenta un posible marco teórico (sección 2) en la que se presenta las distintas definiciones que la comunidad ha ido construyendo sobre líneas de investigación y proyectos (sección 2.1), la formación de investigadores (sección 2.2), el concepto de comunidades de investigación (sección 2.3); y las relaciones existentes entre comunicación interpersonal, formación de investigadores y grupo de I&D (sección 2.4). Se introduce el modelo colaborativo de formación de investigadores (sección 3) describiendo en su contexto: el concepto de línea de investigación y plan de investigación (sección 3.1) y la dinámica del grupo de investigación asociada al modelo (sección 3.2). Se discute la viabilidad tecnológica de virtualización del modelo descrito (sección 4) identificando los elementos del espacio de trabajo (sección 4.1) y fundamentando la viabilidad tecnológica de virtualización de elementos del espacio de trabajo (sección 4.2). En las conclusiones se presentan las futuras líneas de trabajo (sección 5). 2. Marco Teórico Esta sección presenta los aspectos desarrollados por distintos autores que dan marco teórico a los conceptos de líneas de investigación, proyectos de investigación, formación de investigadores,
  • 10. Revista de Informática Educativa y Medios Audiovisuales Vol. 6(11), págs.35-42. 2009 ISSN 1667-8338 © LIE-FI-UBA. liema@fi.uba.ar 36 comunidades de investigación y su relación con la formación de investigadores. 2.1. Líneas de Investigación y Proyectos En [Inciarte González y Torres de Izquierdo, 1999] se postula que las Líneas de Investigación son un eje ordenador de la actividad de investigación, que posee una base racional y que permite la integración y continuidad de los esfuerzos de una o más personas, equipos o instituciones comprometidas con el desarrollo del conocimiento en un ámbito específico. Su identificación permite establecer niveles de concreción y especificidad al señalar problemas, cuya necesidad de ser resueltos es evidente y compartida. Una línea de investigación conforma, además, un esquema de enseñanza aprendizaje centrado en la investigación que tiene entre otras las siguientes ventajas: Promueve la apertura crítica a diversos aspectos o enfoques sin restricciones de visiones paradigmáticas únicas; la convergencia y divergencia de conceptos, enfoques, métodos y paradigmas; el diálogo, la reflexión y el análisis profundo y fructífero de la tarea de los investigadores en formación; la apertura para ser observados por colegas y extraños. Ofrece un espacio excelente para desarrollar el proceso investigar-aprender. Ayuda a proyectar las actividades de investigación permitiendo utilizar efectivamente el conocimiento sobre la práctica. 2.2. Formación de Investigadores En [Sánchez Lima, 2006] se sostiene que la formación de investigadores conforma una relación pedagógica en la que se identifican tres momentos comunes que serán sus ejes de análisis: La interacción con el entorno social (sujetos y objetos que participan en el proceso formativo). La apropiación individual o internalización por parte del sujeto de los saberes generados en su comunidad de investigación. Su transformación con el diseño de un proyecto que cristaliza en una creación que el cual se resuelve un problema en un área del conocimiento. En [Villarreal y Guevara, 1994] se señala que una estrategia posible de formación de investigadores es constituir núcleos de investigación integrados por investigadores en formación bajo la dirección de un investigador formado con los siguientes objetivos: colaborar con el investigador formado en el proyecto que éste desarrolle; y generar un proyecto propio después de haber colaborado con el investigador formado y bajo la asesoría de éste. En coincidencia en [Moreno Angarita, 1997] postula que los núcleos de la investigación científica actual son los grupos (o comunidades) que trabajan alrededor de proyectos específicos de investigación. Por otra parte en [Serrano, 1997] se fundamenta que la preparación de recursos humanos en investigación tiene estrecha relación con la creación de comunidades académicas y por ende con el desarrollo de conocimiento. En particular, las comunidades científicas expresan y encarnan las epistemologías que circulan por los campos disciplinares y operan a manera de indicador contextual del estado de la formación de investigadores. 2.3. Comunidades de Investigación La investigación en solitario es capaz de generar conocimientos, pero es limitada por la unidimensionalidad en la formación; entonces se empieza a ver la necesidad de abordar de manera integral la realidad y para ello se requiere reunir diversas perspectivas para comprender el mismo tema. Así surgen los Grupos, que no son sumatoria de proyectos aislados sino entramados de intereses individuales por conocer el mismo campo temático o problema nuclear [Agudelo Cely, 2004]. En [Sánchez Lima y Granados Juárez, 2007] se define que una comunidad de investigación se constituye por investigadores seniors, investigadores juniors, estudiantes de doctorado, estudiantes avanzados de maestría, y de nuevo ingreso. El seminario (o workshop) de investigación, práctica establecida por los grupos para revisar el avance de sus proyectos, es la estructura que integra este trabajo colegiado. Una de sus ventajas es su horizontalidad porque supera la tradicional relación maestro-alumno y propicia una relación entre colegas. La dinámica del colectivo favorece espacios de autonomía en tanto confluyen diversas experiencias de sus integrantes. Es un espacio de co- construcción, en el cual todos aprenden, porque aclaran dudas y enriquecen sus proyectos con las aportaciones del grupo. La asimilación de un investigador en formación por una comunidad de investigación le beneficia ya que este no se ha dotado aún de las mismas reservas de información que los investigadores formados: ricas colecciones personales de publicaciones y una red de contactos personales con colegas expertos que pueden reducir la necesidad de búsqueda de información extensiva, y por tanto el empleo de habilidades de información [Barry, 1997].
  • 11. Revista de Informática Educativa y Medios Audiovisuales Vol. 6(11), págs.35-42. 2009 ISSN 1667-8338 © LIE-FI-UBA. liema@fi.uba.ar 37 2.4. Comunicación Interpersonal, Formación de Investigadores y Grupo de I&D La comunicación que se promueve al interior de una comunidad de investigación es factor que favorece el desarrollo de sus integrantes, quienes en permanente interacción sujeto-sujeto o sujeto-objeto de investigación, contribuyen con su experiencia a la solución de un problema. Esa interacción está mediada por conocimientos y experiencias provenientes del mundo académico y profesional, que son significativas entre quienes pertenecen a una determinada comunidad de investigación. La comunicación mediante sesiones colectivas, abre espacios para que el investigador formado consolide el avance del investigador en formación y este se nutra de las observaciones formuladas a/y por sus pares. Mediante el intercambio y la colaboración en los espacios de investigación se desarrolla una relación interformativa que los convierte en espacios de co-construcción de saberes asumiendo un valor pedagógico, ya que quien se forma, accede a metodologías y experiencias desarrolladas por otros investigadores, lo cual favorece el desarrollo de competencias necesarias para su desempeño profesional. En este contexto, Moreno Angarita [Moreno Angarita, 1997] señala que el grupo ofrece un caldo de cultivo en el que se posibilita la relación entre el aprendiz (joven investigador) y el investigador experimentado (investigador principal). El aprendiz aprende mediante la confrontación de su saber incipiente con el otro saber maduro. No solamente en materia de manejo de herramientas, que es lo que a veces desafortunadamente más importa, sino en virtud de los juicios de experto, lo cual se constituye en la tarea más sofisticada del aprendizaje investigativo. Es por eso que durante este proceso, la guía y asesoramiento del investigador ya formado es indispensable para corregir y alentar los avances de quien se constituye en investigador en formación. Su colaboración es crucial, porque con su conocimiento y experiencia orienta y fortalece en los investigadores novatos la ejecución de tareas de investigación y el desarrollo de habilidades que les conduzcan a formalizar proyectos innovadores y generadores de conocimiento y tecnología [Sánchez Lima y Granados Juárez, 2007]. 3. Modelo Colaborativo de Formación de Investigadores (MCFI) En [Pollo Catámeo et al., 2009] se propone un modelo de formación de investigadores centrado en la colaboración. Este modelo define dos aspectos a considerar: por un lado la asignación de temas de investigación y, por otro, la dinámica del grupo de investigación orientado a ser "per se" una entidad dedicada a la formación de investigadores. 3.1. Línea de Investigación y Plan de Investigación El grupo de investigación se centra en un Docente Investigador Formado, quien define la Línea de investigación y genera el Plan de Investigación asociado (ver figura 1). Marca y determina el área de conocimiento sobre la cual aplicará el plan de investigación. Todos los integrantes del Grupo de Investigación trabajarán en el mismo dominio de conocimiento organizados en diferentes niveles. Es el Docente Investigador Formado quien asigna los temas de investigación (tesis de Doctorado, de Maestría, de Especialidad o de Grado) conforme a los distintos niveles de ejecución del plan de investigación. Los temas de investigación se asignan teniendo en cuenta las siguientes premisas: Tesis de Doctorado: generan nuevo conocimiento dentro del área de dominio establecida por el Investigador Formado. Tesis de Maestría: establece la forma en la cual, el conocimiento desarrollado por el doctorando, puede aplicarse a un desarrollo avanzado (por ejemplo. sistema experto). Tesis de Especialidad: involucra un trabajo de investigación documental o un trabajo experimental exploratorio. Se vincula con el maestrando y el doctorando. Tesis de Grado: instrumenta en algún artefacto software lo planteado por el tesista de maestría. Desarrolla la solución y comprende el planteo del tesista de maestría y del doctorando. Dentro del Plan de Investigación se generan diversos Programas de Investigación, cada uno vinculado en su origen con lo propuesto por un doctorando. A modo de ejemplo, en la figura 2 se muestra como los nodos marcados de la figura 1 se corresponden con un programa de investigaciones real en el que se concilian proyectos de tesis de cuatro instituciones. Estos programas (los de los diversos doctorandos) son independientes entre sí pero se enmarcan en el dominio de conocimiento asociada a la línea de investigación definida por el investigador formado. El trabajo del maestrando completa la labor iniciada por el doctorando, generando así su propio Proyecto, encadenado con el del doctorando. Esta cadena se completa con los tesistas de especialidad y de grado que se incorporan en los niveles inmediatos inferiores alimentando la cadena y logrando la retroalimentación necesaria para comprobar y validar en campos reales y concretos lo propuesto por el doctorando en sus inicios.
  • 12. ________________________________________________________________________________________________________ Revista de Informática Educativa y Medios Audiovisuales Vol. 6(11), págs. 35-42. 2009 ISSN 1667-8338 © LIE-FI-UBA. liema@fi.uba.ar 38 Fig. 1. Generación de plan de investigación y asignación de temas de investigación 3.2. Dinámica del grupo de investigación A medida que se asciende en los niveles establecidos se obtiene una visión generalista y globalizadora. El rol del Investigador Formado consiste en constituirse en un orientador o facilitador dentro del proceso investigativo a los niveles inferiores en el contexto de aprendizaje colaborativo y participativo. Una misma línea es tratada en diferentes niveles y en colaboración natural permiten lograr un proceso integrado. Los investigadores en formación de distintos niveles (doctorandos, maestrandos, especializandos y tesinandos) colaboran entre sí. La supervisión se genera naturalmente entre los investigadores en formación de nivel superior y los investigadores en formación de niveles inferiores inmediatos. En comparación con el Investigador Formado, son pares, sin embargo logran guiar y contener a sus dirigidos. La red de relaciones que establece la distribución de tareas de investigación conlleva a una red colaborativa circular que contiene al Investigador Formado (ver figura 3) pero cuyo centro son las ideas-problemas-soluciones-referencias asociadas a los distintos problemas de investigación, en contraposición al modelo clásico (red radial) en la que el investigador formado esta en el centro y los investigadores en formación solo se conectan con el. En el marco del paradigma cooperativo y colaborativo, el workshop o seminario de investigadores en formación coordinados por el investigador formado, es la actividad en la que se da naturalmente la revisión de las propuestas investigativas y se coopera en la búsqueda de soluciones a los problemas emergentes en la fase que se encuentra cada proyecto de investigación. Fig. 2. Ejemplo de Programa de Investigación Real.
  • 13. Revista de Informática Educativa y Medios Audiovisuales Vol. 6(11), págs.35-42. 2009 ISSN 1667-8338 © LIE-FI-UBA. liema@fi.uba.ar 39 Fig. 3. Red de relaciones en la formación de investigadores en el modelo colaborativo. En estos encuentros, cada participante somete al grupo: ideas, problemas y posibles soluciones. Recibe sugerencias, críticas y aportes del resto de los integrantes, bajo la supervisión y guía del Investigador Formado. Estas actividades permiten notificar los avances de cada proyecto y recibir el correspondiente “feedback”. 4. Viabilidad Tecnológica de Virtualización del MCFI En esta sección se enumeran los elementos del espacio de trabajo de un grupo de investigación con dedicación a la formación de investigadores y se discute la viabilidad tecnológica de virtualización de dichos elementos y el espacio correspondiente a partir de la identificación de artefactos software existentes que le den soporte. 4.1. Elementos del Espacio de Trabajo (EET) El espacio de trabajo de un grupo de investigación contiene un conjunto de elementos que son de uso cotidiano para los investigadores en formación. Entre estos elementos se destaca una hemeroteca especializada, un repositorio de documentos y un espacio áulico donde desarrollar los workshops o seminarios. La hemeroteca especializada debe contener las publicaciones (revistas y actas de congresos) pertinentes al dominio de conocimiento en el cual se radica la línea y plan de investigación del grupo de trabajo. El repositorio de documentos contiene dos grupos distinguibles: la producción científica del grupo (artículos, comunicaciones, tesis, reportes de trabajo), documentos de interés pertenecientes a otros grupos de investigación en el mismo dominio. El espacio áulico tiene el equipamiento de una sala de reuniones con algún elemento que permita socializar los esquemas de ideas (pizarrón, rotafolio, entre otros). 4.2. Viabilidad Tecnológica de Virtualización de EET En el marco de un modelo metodológico equilibrado de enseñanza superior [Duart y Sangrà, 2000] se busca utilizar los medios tecnológicos más adecuados para mediar la formación de investigadores poniendo a su alcance los recursos que ayudarán, al investigador en formación en su proceso de aprendizaje; y al investigador formado en llegar a ser un verdadero facilitador del aprendizaje y de la adquisición de habilidades investigativas. La virtualización debe permitir la interacción entre los investigadores generando un espacio para emitir preguntas o respuestas a preguntas de cualquiera de ellos y el libre intercambio de documentos. Las intervenciones de los participantes deben ser materializables dentro de un conjunto de artefactos software colaborativos centrados en la web [Moreno Aguilar et al, 2003]. Disponer de un repositorio virtualizado con la producción científica del grupo de investigación, se constituye en una herramienta de administración del conocimiento de dicho grupo, deviniendo en una herramienta de aprendizaje y de aseguramiento de la
  • 14. ________________________________________________________________________________________________________ Revista de Informática Educativa y Medios Audiovisuales Vol. 6(11), págs. 35-42. 2009 ISSN 1667-8338 © LIE-FI-UBA. liema@fi.uba.ar 40 Tabla 1. Artefactos software para mediar los elementos del espacio de trabajo de un grupo de formación de investigadores ARTEFACTO CARACTERÍSTICAS EJEMPLOS Hemeroteca especializada Las colecciones deben estar digitalizadas y los artículos ser accesibles en versión completa para todos los investigadores IEEE Computer Society Digital Library [IEEE, 2009] ACM Digital Library [ACM, 2009] Directory of Open Access Journals [DOAJ, 2009] Repositorio de documentos Es una página web desarrollada por el grupo de investigación que hipervincula a: Su producción científica Otros documentos de interés En [UBA-FI-LSI, 2009] se lista y habilita el acceso a: tesis doctorales, de magister, de ingeniería informática, artículos, comunicaciones a congresos. En [GRISE, 2009] se agrega a los anteriores los reportes de investigación (research documents) Espacio áulico Permite: La comunicación virtual (conferen- cia web) entre los investigadores. La comunicación de ideas en forma de esquemas mediante el equivalente de pizarras virtuales. En [SKYPE, 2009], se habilita la conferencia web entre dos personas. En [ooVoo, 2009], se habilita la conferencia web hasta seis usuarios. En [Virtual Whiteboard, 2009], se habilita el uso de una pizarra compartida hasta cuatro usuarios. memoria organizacional que favorece el flujo de conocimiento intragrupo y el trabajo colaborativo [Valerio, 2002]. En este contexto, se identifican en la tabla 1 los artefactos software para mediar los elementos del espacio de trabajo de un grupo de investigación dedicado a la formación de investigadores. 5. Conclusiones La formación de investigadores conlleva la interacción entre profesionales que poseen distintos niveles de calificación profesional y académica, unos de investigadores formados y los otros en distintos niveles formación, cuyo objeto de actividad es una problemática de investigación dentro de su área disciplinar, misma que se convierte en su objeto de estudio [Sánchez Lima, 2006]. La realidad de nuestro país, en la que los centros de investigación en informática con capacidad de formar investigadores en todos sus niveles son escasos, lleva a la necesidad de abordar la cuestión de esquemas alternativos de formación de investigadores. La formación mediada por tecnología surge como una posibilidad de constituir grupos de investigación en la que las instituciones universitarias con centros de investigación consolidados aporten los investigadores formados y el resto del sistema universitario las vocaciones para formarse en los procesos investigativos. En este contexto, en este trabajo se ha explorado el marco teórico para la formación en investigación, se ha introducido un esquema colaborativo de formación de investigadores, discutiéndose la viabilidad tecnológica de la virtualización del esquema descrito. Como próxima etapa se prevé continuar este trabajo definiendo los distintos procesos vinculados al esquema colaborativo de formación de investigadores y evaluar la posibilidad de ensamblar los distintos artefactos software en un único ambiente. 6. Referencias ACM, 2009. ACM Digital Library. http:// portal.acm.org/dl.cfm. Página vigente al 11/07/09. Agudelo Cely, N. 2004. Las Líneas de Investigación y la Formación de Investigadores: Una Mirada desde la Administración y sus Procesos Formativos. Revista Electrónica de la Red de Investigación Educativa 1(1) ISSN: 1794-8061. http://revista.iered.org/ v1n1/pdf/ncagudelo.pdf. Página vigente al 11/07/09. Barry, B. 1997. Information skills for an electronic world: training doctoral research students. Journal of Information Science 23(3): .225-238. ISSN: 1741-6485. Britos, P. 2008. Procesos de Explotación de Información Basados en Sistemas Inteligentes. Tesis de Doctorado en Ciencias Informáticas.
  • 15. Revista de Informática Educativa y Medios Audiovisuales Vol. 6(11), págs.35-42. 2009 ISSN 1667-8338 © LIE-FI-UBA. liema@fi.uba.ar 41 Facultad de Informática. Universidad Nacional de La Plata. Césari, M. 2006. Nivel de Significación Estadística para el Aprendizaje de una Red Bayesiana. Tesis de Especialidad en Tecnologías de Explo- tación de Información. Insttituto Tecnológico de Buenos Aires. DOAJ, 2009. Directory of Open Access Journals. http://www.doaj.org/. Página vigente al 11/07/09. Duart, J. y Sangrà, A. 2000. Formación universitaria por medio de la web: un modelo integrador para el aprendizaje superior. En Aprender en la Virtualidad de Duart y Sangrà (coordinadores) Gedisa. Barcelona. ISBN: 84- 8429-161-8. GRISE, 2009. Grupo de Investigación en Ingeniería de Software Empírica. Facultad de Informática. UPM. http://www.grise.upm.es/. Página vigente al 11/07/09. IEEE, 2009. IEEE Computer Society Digital Library. http://www2.computer.org/portal/web/ csdl/home. Página vigente al 11/07/09. Inciarte González, A. y Torres de Izquierdo, M. 1999. La línea y los grupos de investigación, de investigación como estrategia para la formación de investigadores. Agenda Académica 6(1): 23-28. ISSN: 1315-3013. Merlino, H. 2006. Ambiente de Integración de Herramientas para Exploración de Datos Centrados en la Web. Tesis de Magister en Ingeniería de Software. Facultad de Informá- tica. Universidad Politécnica de Madrid. Moreno Aguilar, L., Vargas Solar, G., Sheremetov, L. 2003. Hacia una infraestructura de componentes para la construcción de ambientes de aprendizaje colaborativo. XIX Simposio Internacional de Computación en la Educación. Contextos emergentes en el aprendizaje. SOMECE 2003. México. http://biblioteca- digital.conevyt.org.mx/colecciones/documentos /somece/59.pdf. Página vigente al 11/07/09. Moreno Angarita, M. 1997. Dos Pistas para el Análisis de los Procesos de Formación de Investigadores en las Universidades Colom- bianas. Nómadas 7: 38-48. Instituto de Estudios Sociales Contemporáneos. Facultad de Ciencias Sociales Humanidades y Artes. Universidad Central. Colombia. http://www.ucentral.edu. co/NOMADAS/nunme-ante/6-10/ nomadas_07/revista_numero_7_art07_hacia_ una_propuestas.pdf. Página vigente al 11/07/09. ooVoo. 2009. Sitio Oficial para Descarga de ooVoo. http://www.oovoo.com/?sc_lang=es-es. Página vigente al 11/07/09. Padrón Guillen, J. 2004. Los 7 Pecados Capitales de la Investigación Universitaria. Informe de Investigaciones Educativas 18: 69-79. ISSN: 1316-0648. Pollo-Cattaneo, F., Rodriguez, D., Britos, P., García-Martínez, R. 2009. Propuesta de Formación de RRHH en Investigación Basada en un Modelo Colaborativo. Hacia un Cambio de Paradigma. Proceedings of VI International Conference on Engineering and Computer Education. Pág. 1262-1266. ISBN 978-85- 89549-58-5. Ponce Rosas R, Landgrave Ibáñez S, González Salinas C, Monroy Caballero C. 2002. Formación de investigadores en medicina familiar: La tutorización en investigación y la relación tutor-residente (Primera parte). Archivos de Medicina Familiar; 4(2): 77-81. ISSN: 1405-9657. Rivera, B., Osorio, O., Tangarife, D., Arroyave J. 2000. Los Semilleros de Formación de Jóvenes Investigadores: la Experiencia de ASPA. Documentos en el Programa de Maestrías. Consorcio para el Desarrollo Sostenible de la Ecorregión Andina. http://www.condesan.org/ memoria/COL0700.pdf. Página vigente al 11/07/09. Sánchez Lima, L. 2006. Formación de investiga- dores en posgrado. Un proceso pedagógico por atender. XX Congreso Nacional de Posgrado. México. http://www.cenidet.edu.mx/subaca/ web-dda/ docs/leticia comepo06.pdf. Página vigente al 11/07/09. Sánchez Lima, L. y Granados Juárez, M. 2007. Experiencias de Autoformación y Heterofor- mación de Formadores de Investigadores en el Campo Tecnológico. IX Congreso Nacional de Investigación Educativa. México. http://www. comie.org.mx/congreso/ memoria/v9/ponencias/at16/PRE1178923303.p df. Página vigente al 11/07/09. Schulz, G. 2008. Un Ambiente Integrado de Clasificación, Selección y Ponderación de Reglas Basado en Sistemas Inteligentes. Tesis de Grado en Ingeniería Informática. Labora- torio de Sistemas Inteligentes. Facultad de Inge- niería. UBA. Serrano, J. 1997. Nacen, se Hacen o los Hacen: Formación de Investigadores y Cultura Orga- nizacional en las Universidades. Nómadas 7: 52-62. Instituto de Estudios Sociales Contem- poráneos. Facultad de Ciencias Sociales Huma- nidades y Artes. Universidad Central. Colom- bia. http://www.ucentral.edu.co/NOMADAS /nunme-ante/610/nomadas_07/revista_numero_ 7_art04_nacen.pdf. Página vigente al 11/07/09.
  • 16. Revista de Informática Educativa y Medios Audiovisuales Vol. 6(11), págs.35-42. 2009 ISSN 1667-8338 © LIE-FI-UBA. liema@fi.uba.ar 42 SKYPE, 2009. Sitio Oficial para Descarga de SKYPE. http://www.skype.com/intl/es/. Página vigente al 11/07/09. UBA-FI-LSI, 2009. Laboratorio de Sistemas Inteligentes. Facultad de Ingeniería. UBA. http://laboratorios.fi.uba.ar/lsi/z-hemerotecavirt ual.htm. Página vigente al 11/07/09. Valerio, G. 2002. Herramientas Tecnológicas para la Administración del Conocimiento. Transfere- ncia, 57: 19-21. http://www. sistemasdecono cimiento.org/Produccion _intelectual/articulos/ herramientas_km.pdf. Página vigente al 11/07/09. Villarreal, D. y Guevara J. 1994. Una Experiencia en Formación de Investigadores. Núcleos de Investigadores en la Universidad Autónoma de Tamaulipas. Revista de la Educación Superior Volumen XXIII(4), Número 92, Asociación Nacional de Universidades e Instituciones de Educación Superior. http://www.anuies.mx/ servicios/p_anuies/publicaciones/revsup/res092 / txt1.htm. Página vigente al 11/07/09. Virtual Whiteboard. 2009. Virtual Whiteboard - A Free Online Collaboration Tool. http://www. virtual-whiteboard.co.uk/home.asp. Página vigente al 11/07/09.
  • 17. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL17 Anexo II: Descripción Funcional En esta sección se describen los módulos principales con los que cuenta la plataforma desarrollada y su funcionalidad. Disponer de un repositorio virtualizado con la producción científica del grupo de investigación, se constituye en una herramienta de administración del conocimiento de dicho grupo, deviniendo en una herramienta de aprendizaje y de aseguramiento de la memoria organizacional que favorece el flujo de conocimiento intragrupo y el trabajo colaborativo [Valerio, 2002]. A continuación se presentan los módulos de la plataforma que hemos identificado como prioritarios para mediar los elementos del espacio de trabajo de un grupo de investigación dedicado a la formación de investigadores: Repositorio de documentos El mismo permite almacenar documentos digitales en diferentes formatos y de diferente tipo (Ej.: documentos de texto, planillas de cálculo, presentaciones, imágenes, archivos de audio, archivos de video, etc.), clasificados de acuerdo al criterio especificado y compartirlos entre los miembros del grupo de investigadores. Además provee un poderoso motor de búsqueda para facilitar la recuperación de los mismos. Hemeroteca virtual Mantiene una colección de artículos en su versión completa, ordenados y clasificados de acuerdo a los criterios del investigador. Además permite enlazar documentos de otros repositorios (Ej.: bibliotecas, universidades, organizaciones, etc.). Aula virtual Este módulo constituye un verdadero espacio de cooperación virtual, donde los investigadores pueden comunicarse en tiempo real gracias a la funcionalidad de videoconferencia que permite, utilizando una cámara web y los dispositivos de audio de una computadora, mantener un canal de audio y video entre múltiples usuarios en simultáneo lo que constituye un verdadero desafío tecnológico. Para ello se utilizarán las últimas tecnologías en lo que respecta al streaming de video y VoIP (voz sobre IP). Pueden además, compartir documentos e intercambiar opiniones e ideas a través de una pizarra virtual donde todos los usuarios participan y uno actúa como moderador. La pizarra virtual es un elemento fundamental del espacio áulico ya que simula una pizarra real donde cada participante del grupo puede “dibujar” y presentar esquemas, pegar documentos, imágines, textos de todo tipo, etc., y los demás participantes lo verán en tiempo real. Esto presenta también grandes desafíos desde la implementación tecnológica en lo que respecta a la sincronización y transmisión de datos entre programas distribuidos, logrando la performance necesaria para garantizar la calidad de la experiencia del usuario. Administración de la Intranet El módulo de administración permite crear y gestionar, de forma dinámica, grupos de investigadores, investigadores, usuarios del sistema, perfiles de usuario, permisos,
  • 18. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL18 tablas paramétricas, documentos, proyectos, programar conferencias, y todas las funciones necesarias para el correcto funcionamiento de la plataforma.
  • 19. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL19 1. Anexo III: Soporte Tecnológico 1.1 Introducción A continuación se presenta la descripción del soporte tecnológico sobre el cual se construyó la plataforma. El mismo esta conformado por una combinación de diferentes tecnologías que conforman el estado del arte en lo que se refiere a entornos de programación orientada a objetos, servidores web, plataformas de streaming media, manipulación de documentos digitales, etc. La tecnología web permite que usuarios distribuidos en todo el planeta accedan a la aplicación desde una computadora conectada a Internet sin más requerimientos de software instalado que el de un navegador web. Esto permite también la actualización de versiones sin la necesidad de distribuirlas e instalarlas. El código abierto (en inglés open source) es el término con el que se conoce al software distribuido y desarrollado libremente. A diferencia del software libre, el código abierto tiene un punto de vista más orientado a los beneficios prácticos de compartir el código que a las cuestiones morales y/o filosóficas. La idea del código abierto se centra en la premisa de que al compartir el código, el programa resultante tiende a ser de calidad superior al software propietario, es una visión técnica [OpenSource, 2009]. El presente trabajo adhiere a la filosofía del código abierto y es por ello que todo el soporte tecnológico sobre el cual se construyó la plataforma cumple con estas características. 1.2 Arquitectura del Sistema 1.2.1 Implementación del módulo de Aula Virtual Este módulo constituye el corazón de la plataforma y por lo tanto se desarrolla en detalle en las sub-secciones siguientes. Arquitectura de Servidor Se utilizó una arquitectura de servidor este basada en Red5, un servidor Flash de código abierto que nos permite, entre otras cosas, distribuir contenidos multimedia a través del protocolo RTMP o de su variante sobre HTTP, RTMPT [Red5, 2009]. La elección de Red5 sobre los otros servidores disponibles para esta plataforma (Adobe Media Server, Wowza) se debe sobre todo a que se trata de un proyecto de código abierto escrito en Java lo que permite, por un lado, escribir aplicaciones de servidor en este lenguaje y además, modificar el código fuente del propio servidor para realizar tareas más específicas imposibles en las otras opciones disponibles. Red5 se sostiene en la estructura MINA (Multi-purpose Infrastructure for Network Applications) de Apache [Apache MINA, 2009] que permite desarrollar aplicaciones de red altamente escalables basándose en parte en la arquitectura SEDA (Staged Event- Driven Architecture). SEDA propone descomponer la aplicación de red en un modelo de etapas conectadas por colas que permite filtrar el tráfico de entrada en cada una de
  • 20. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL20 dichas colas, acondicionando de esta manera el flujo entrante para mejorar el rendimiento en los picos de tráfico ya que todo puede ser ajustado dinámicamente. Cada una de estas etapas es una pieza del software independiente que realiza parte del procesado de la petición pasándolo, en cada caso, a la cola siguiente que corresponda, todo esto como alternativa a la proliferación de hilos que añaden más sobrecarga y que no permiten reaccionar tan fácilmente ante un pico en un momento determinado. El ya anteriormente mencionado MINA es parte del proyecto Apache e intenta aprovechar la filosofía descrita por SEDA para facilitar la tarea de realizar este tipo de aplicaciones en Java y la separación entre la gestión de eventos más implementación de protocolos de la lógica de la aplicación propiamente dicha. Como se mencionó anteriormente, Red5 utiliza el protocolo RTMP (o RTMPT) para la distribución de contenidos multimedia. El objetivo de este protocolo es que los clientes desarrollados con la tecnología Flash (en su momento también de Macromedia) pudieran enviar y recibir datos en tiempo real asegurando la calidad desde y hacia el servidor Flash Media Server. Una de las características que esto permite es la posibilidad de “tunelar” el tráfico para que los datos viajen como si fueran el cuerpo de mensajes HTTP, de forma que no sean tan fácilmente visibles en dispositivos como firewalls y gestores de tráfico que son configurados en la frontera de las redes empresariales y personales para filtrar contenidos de este tipo. Esta última característica facilita enormemente el uso del servicio de videoconferencia en ambientes muy restringidos sin, en principio, tener que implementar cambios importantes en el cliente ni en el servidor. Red5 utiliza un servidor HTTP y de aplicaciones (servlets) Jetty [Mortbay Jetty, 2009] administrado por la estructura Spring [Spring, 2009] que pone a disposición del programador la posibilidad de configurar de diversas maneras (XML, archivos de propiedades Java, etc) denominadas "ganchos" el comportamiento de diversas aplicaciones Java. De esta manera es posible codificar en Java una aplicación de servidor que corra sobre Red5 utilizando la interfaz ofrecida y configurar diversos parámetros editando varios archivos XML. Se propone entonces aprovechar las posibilidades que ofrece Red5 para crear una nueva aplicación de servidor, escrita en Java, que corra sobre Red5 y permita mantener información sobre la presencia de los clientes conectados, estén o no participando activamente en alguna conferencia, como así también información sobre las capacidades de cada cliente, es decir, si puede (y quiere) emitir vídeo y audio (tiene una cámara conectada). Esta información es ofrecida al resto de los clientes que podrán así elegir en cada momento los flujos que reciben. La interacción cliente-servidor se realiza mediante llamadas a métodos remotos desde los clientes aprovechando las capacidades para ello ofrecidas por Red5, las respuestas del servidor son enviadas como objetos serializados e interpretadas por el cliente como sea conveniente. Arquitectura de Cliente En este caso se utilizó Adobe Flex [Adobe Flex, 2009] como Aplicación Rica de Internet (RIA), ya que es un marco de desarrollo de código abierto que permite crear flujos de vídeo y audio desde el navegador de forma muy sencilla, tanto para el desarrollador como para los usuarios finales.
  • 21. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL21 Se construyó la aplicación cliente mediante Flex con código ActionScript y MXML. ActionScript es un lenguaje de programación orientado a objetos similar a Java. Lo creó Macromedia (actualmente Adobe) para generar, una vez compilado, código Flash ejecutable (que se denomina SWF) por el reproductor de la misma compañía. Este lenguaje está basado en la cuarta edición de la especificación de ECMAScript y una de sus principales características es la adopción de otro estándar ECMA para codificar documentos XML como objetos del mismo lenguaje. El lenguaje MXML sirve para definir interfaces de usuario avanzadas en formato XML. Una vez que el desarrollador ha creado la interfaz con MXML el compilador Flex traduce el documento en las clases ActionScript necesarias para después compilarlo. Por lo tanto la aplicación diferencia la interfaz de usuario del resto de las reglas y lógica de negocio. La aplicación cliente es capaz de realizar el control de sesión de los usuarios comunicándose para ello con el servidor Red5 de manera de intercambiar el estado de sesión, datos sobre usuarios conectados, las salas disponibles y el modo de presentación que hay en la sala donde el usuario está conectado. El cliente también es capaz de controlar los flujos multimedia, esto se logra utilizando las clases NetStream y NetConnection, que pertenecen a la API que ofrece el marco de desarrollo Flex. Por encima se utilizan objetos avanzados que permiten controlar parámetros de los flujos como el volumen del audio, el aspecto de la imagen, etc. 1.2.2 Implementación de los módulos de Hemeroteca Virtual, Repositorio de Documentos y Administración La implementación de estos módulos no requiere servidores especiales como ocurre en el módulo de Aula Virtual con el caso del Media Server Red5, es por ello que los mismos pueden ser implementados sobre cualquier tecnología web como puede ser LAMP. A continuación se describe la tecnología de servidor elegida y su justificación. Arquitectura de Servidor Por analogía con el módulo de Aula Virtual y aprovechando el servidor web embebido en Red5 (Apache Tomcat [Apache Tomcat, 2009]) se utilizó la tecnología Java [Sun Java, 2009]. Tomcat (también llamado Jakarta Tomcat o Apache Tomcat) funciona como un contenedor de servlets desarrollado bajo el proyecto Jakarta en la Apache Software Foundation. Tomcat implementa las especificaciones de los servlets y de JavaServer Pages (JSP) de Sun Microsystems [Wikipedia, 2009]. Los servlets son objetos que corren dentro del contexto de un contenedor de servlets (ej: Tomcat) y extienden su funcionalidad. La palabra servlet deriva de otra anterior, applet, que se refería a pequeños programas que se ejecutan en el contexto de un navegador web. Por contraposición, un servlet es un programa que se ejecuta en un servidor. El uso más común de los servlets es generar páginas web de forma dinámica a partir de los parámetros de la petición que envíe el navegador web [Wikipedia, 2009].
  • 22. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL22 JSP puede considerarse como una manera alternativa, y simplificada, de construir servlets. Es por ello que una página JSP puede hacer todo lo que un servlet puede hacer, y viceversa. Cada versión de la especificación de JSP está fuertemente vinculada a una versión en particular de la especificación de servlets. El funcionamiento general de la tecnología JSP es que el Servidor de Aplicaciones interpreta el código contenido en la página JSP para construir el código Java del servlet a generar. Este servlet será el que genere el documento (típicamente HTML) que se presentará en la pantalla del Navegador del usuario [Wikipedia, 2009]. Con respecto al servidor de base de datos se utilizó MySQL [MySQL, 2009] haciendo uso de las prestaciones de su motor InnoDB. InnoDB es una tecnología de almacenamiento de datos de fuente abierta para la base de datos MySQL, incluida como formato de tabla estándar en todas las distribuciones de MySQL AB a partir de las versiones 4.0. Su característica principal es que soporta transacciones de tipo ACID y bloqueo de registros e integridad referencial. InnoDB ofrece una fiabilidad y consistencia muy superior a MyISAM, la anterior tecnología de tablas de MySQL [Wikipedia, 2009]. Se utilizó también el framework Hibernate para encapsular el acceso a la base de datos. Hibernate es una herramienta de Mapeo objeto-relacional para la plataforma Java (y disponible también para .Net con el nombre de NHibernate) que facilita el mapeo de atributos entre una base de datos relacional tradicional y el modelo de objetos de una aplicación, mediante archivos declarativos (XML) que permiten establecer estas relaciones. Hibernate es software libre, distribuido bajo los términos de la licencia GNU LGPL [Hibernate, 2009]. Arquitectura de Cliente Siguiendo con la línea de las RIAs se propone aprovechar las ventajas de la tecnología AJAX para obtener un look and feel e interacción capaz de satisfacer ampliamente las expectativas de los usuarios. En particular se utilizó el framework ExtJS. AJAX, acrónimo de Asynchronous JavaScript And XML (JavaScript asíncrono y XML), es una técnica de desarrollo web para crear aplicaciones interactivas o RIA (Rich Internet Applications). Estas aplicaciones se ejecutan en el cliente, es decir, en el navegador de los usuarios mientras se mantiene la comunicación asíncrona con el servidor en segundo plano. De esta forma es posible realizar cambios sobre las páginas sin necesidad de recargarlas, lo que significa aumentar la interactividad, velocidad y usabilidad en las aplicaciones [Wikipedia, 2009]. ExtJS es un conjunto de bibliotecas JavaScript para construcción de Aplicaciones Ricas de Internet (RIAs). Provee alta performance independiente del navegador, interfaces con el usuario personalizables y una API intuitiva y fácil de usar [ExtJS, 2009]. En la figura 4 se presenta un esquema de red que muestra las interconexiones entre las diferentes componentes del sistema. En la figura 5 se muestra un diagrama conceptual donde se muestra la interacción entre las diferentes tecnologías que se utilizarán.
  • 23. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL23 Cliente Cliente Cliente Servidor de Base de Datos (MySQL) Servidor Web (Apache) Servidor Multimedia (Red5) HTTP/RTMP HTTP/ RTMP H TTP/R TM P HTTP HTTP/ RTMP O D BC JDBC Internet SOAP Fig.4. Arquitectura de Red Fig.5. Diagrama Conceptual
  • 24. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL24 2. Anexo IV: Manual de Instalación 2.1 Requerimientos de hardware A continuación se presenta la configuración de hardware necesaria para instalar el servidor de la plataforma. Configuración mínima: Procesador de 1GHz Memoria RAM de 1GB Configuración recomendada: Procesador de 2GHz ó más con CPU de 2 ó 4 núcleos (32 ó 64Bit) Memoria RAM de 4GB 2.2 Requerimientos de software • Java versión mayor o igual a 6 • Base de datos: MySQL La base de datos debe escuchar y permitir conexiones TCP/IP y el esquema de caracteres por defecto debe ser UTF8. Una instalación de MySQL no escucha por defecto conexiones TCP/IP y no utiliza UTF8 como esquema de caracteres definido por defecto. Usted tiene que cambiar estas opciones y reiniciar el servidor de base de datos para que los cambios tengan efecto (el archivo mysql-config se encuentra en my.cnf). • Servicio OpenOffice iniciado y escuchando en el puerto 8100. • Obtener el reproductor Flash 10 Beta. El mismo corrige los problemas de CPU para Streaming Video => http://labs.adobe.com/technologies/flashplayer10/ 2.3 Instalación de la Plataforma 1. Descomprimir el contenido del paquete de instalación que se encuentra en el CD y copiarlo en un disco local del sistema. 2. Ahora usted tiene una carpeta llamada plataforma_version_1 3. Configure las opciones de la base de datos, vaya a: plataforma_version_1/webapps/openmeetings/conf/hibernate.cfg.xml Usuario de la base de datos MySQLr: renombre mysql_hibernate.cfg.xml a hibernate.cfg.xml y altere los siguientes parámetros de configuración en (mysql_)hibernate.cfg.xml <property name="connection.username">root</property> <property name="connection.password"></property>
  • 25. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL25 <property name="connection.url">jdbc:mysql://NOMBRE DEL HOST/BASE DE DATOS</property> Si tiene problemas para conectarse con su base de datos, un error común es que la misma no escuche conexiones TCP/IP, o necesita reemplazar el driver jdbc con el de su versión de base de datos. Usted debe cambiar donde dice NOMBRE DEL HOST/BASE DE DATOS por sus correspondientes valores, por ejemplo: jdbc:mysql://localhost/plataforma 4. Reinicie Red5 (Esta tabla será creada automáticamente por hibérnate, si se produce algún error con la configuración de su base de datos usted podrá visualizarlos accediendo al archivo de log de Red5. 5. Abra el instalador desde un navegador web accediendo a la dirección: http://localhost:5080/openmeetings/install y siga las instrucciones. Luego de ejecutar el instalador todas las funcionalidades básicas se encuentran instaladas. Ahora deberá ingresar a la plataforma y verificar todas las opciones.
  • 26. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL26 3. Anexo V: Manual de Usuario 3.1 Introducción La Plataforma para Formación de Investigadores a Distancia es una herramienta basada íntegramente en tecnologías web, esto significa que para utilizarla, el usuario deberá contar con un navegador web con el último plugin disponible de Adobe Flash instalado. Teniendo en cuenta que las funciones de videoconferencia requieren de un gran poder de procesamiento y ancho de banda disponible, la calidad del audio y el video son altamente sensibles a la capacidad de procesamiento del cliente, la memoria y la conectividad. La configuración mínima recomendable para el cliente es una PC con procesador Intel Pentium 4, 512Mb de memoria RAM y una conexión a Internet de al menos 1Mb. 3.2 Ingreso al sistema Para ingresar a la plataforma deberá abrir su navegador web e ingresar en la dirección web indicada (ej: http://fiuba.homeunix.com).
  • 27. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL27 En la pantalla inicial se visualiza el cuadro de diálogo de login donde deberá ingresar su nombre de usuario y la contraseña correspondiente, luego presionar el botón “Ingresar”. 3.3 Escritorio Una vez ingresado al sistema, encontrará una pantalla similar al Escritorio de Windows, desde donde podrá acceder a las diferentes aplicaciones de la Plataforma. Existen dos formas de acceder a las aplicaciones, la primera es a través de los iconos ubicados en el escritorio, deberá hacer click sobre el ícono de la aplicación deseada para abrir la misma.
  • 28. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL28 La segunda forma de acceder a las aplicaciones de la Plataforma es mediante el menú Inicio que se encuentra en la esquina inferior izquierda de la ventana del navegador. El menú “Inicio”, al igual que en Windows, despliega la lista de aplicaciones disponibles en la Plataforma. Deberá hacer click en la opción deseada para acceder a la misma. Todas las ventanas de aplicación pueden manipularse como las ventanas de Windows. Con los botones ubicados en la parte superior derecha de las mismas se pueden minimizar, maximizar y cerrar. Las ventanas minimizadas se pueden volver a maximizar seleccionándolas desde la parte inferior del escritorio. La opción “Cerrar” le permite salir de la Plataforma y volver a la pantalla de ingreso. 3.4 Administración Desde la opción Administración del menú de Inicio se accede a las aplicaciones de administración de usuarios y grupos del sistema. Para poder acceder a esta opción, el usuario deberá contar con permisos de administración (usuario del tipo administrador). 3.4.1 Perfil Ingresando a la opción Perfil del menú de inicio pueden editar los datos del usuario actual tales como la contraseña de acceso, el nombre, apellido, el nivel académico y la institución.
  • 29. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL29 Una vez editado el contenido, presionar el botón “Guardar” para salvarlo o “Cancelar” para cancelar la modificación. 3.4.2 Usuarios Ingresando a la opción de administración de usuarios se abrirá el listado de usuarios del sistema agrupados por institución. Permite crear un nuevo usuario.
  • 30. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL30 Para crear un nuevo usuario deberá especificar su nombre de usuario, contraseña, confirmación de contraseña, tipo de usuario del sistema (Administrador, moderador o participante), nombre y apellido, dirección de email, seleccionar el nivel académico y la institución. Permite modificar los datos de un usuario existente. Permite actualizar el listado de usuarios. Permite eliminar un usuario del sistema.
  • 31. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL31 3.4.3 Grupos de Investigación Ingresando a la opción de administración de grupos de investigación se abrirá el listado de grupos. Permite crear un nuevo grupo. Para crear un nuevo grupo deberá especificar la descripción del mismo, seleccionar de la lista los usuarios que lo integran y agregar comentarios (opcional). Permite modificar los datos de un grupo existente.
  • 32. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL32 Permite actualizar el listado de grupos. Permite eliminar un grupo. 3.4.4 Instituciones Ingresando a la opción de administración de instituciones se abrirá el listado de las mismas. Permite crear una nueva institución.
  • 33. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL33 Para crear una nueva institución deberá especificar la descripción de la misma. Permite modificar los datos de una institución existente. Permite actualizar el listado de instituciones. Permite eliminar una institución. 3.4.5 Niveles Académicos Ingresando a la opción de administración de niveles académicos se abrirá el listado de los mismos.
  • 34. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL34 Permite crear un nuevo nivel académico. Para crear un nuevo nivel académico deberá especificar la descripción del mismo. Permite modificar la descripción de un nivel académico existente. Permite actualizar el listado de niveles académicos. Permite eliminar un nivel académico. 3.4.6 Categorías de Hemeroteca Ingresando a la opción de administración de categorías de hemeroteca se abrirá el listado de las mismas.
  • 35. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL35 Permite crear una nueva categoría. Para crear una nueva categoría deberá especificar la descripción de la misma. Permite modificar los datos de una categoría existente. Permite actualizar el listado de categorías. Permite eliminar una categoría. 3.4.7 Categorías de Repositorio
  • 36. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL36 Ingresando a la opción de administración de categorías de repositorio se abrirá el listado de las mismas. Permite crear una nueva categoría. Para crear una nueva categoría deberá especificar la descripción de la misma. Permite modificar los datos de una categoría existente. Permite actualizar el listado de categorías. Permite eliminar una categoría.
  • 37. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL37 3.5 Conferencias Las salas de conferencia son los espacios áulicos donde se desarrollan las sesiones de trabajo virtuales, permiten que múltiples usuarios pertenecientes a un grupo de estudio puedan hablar, chatear e intercambiar ideas en la pizarra virtual y a través del video. Utilizando la opción “Conferencias” del menú de Inicio o el icono de “Conferencias” ubicado en el escritorio, se accede al listado de conferencias para las cuales el usuario tiene permiso de ingreso. Solo se podrá acceder a una conferencia si la misma se encuentra abierta. Permite crear una nueva conferencia.
  • 38. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL38 Para crear una nueva conferencia deberá especificar el título de la misma, seleccionar el grupo al que pertenece, la fecha y hora de inicio, la fecha y hora de finalización, seleccionar el moderador de una lista, puede opcionalmente escribir comentarios, y finalmente indica quienes son los usuarios invitados a participar de la misma. Permite modificar los datos de una conferencia existente.
  • 39. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL39 Permite eliminar una conferencia. Permite ingresar en la conferencia seleccionada. Permite actualizar el listado de conferencias. 3.5.1 Ingresando a la Sala de Conferencias Al seleccionar la conferencia deseada, se abrirá una nueva ventana, esta operación puede demorar unos instantes. Una ventana emergente le indicará que seleccione las opciones y los dispositivos de audio y video. 1. Audio y Video (Para esta opción necesitará una cámara web y un micrófono) 2. Solo Audio (Para esta opción necesitará solamente un micrófono) 3. Solo Video (Para esta opción necesitará solamente una cámara web) 4. Sin Audio/Video (Para esta opción no requiere micrófono ni cámara web) Seleccionando la opción “No pedir de nuevo”, la configuración quedará almacenada y no se le volverá a preguntar. Una vez seleccionados los dispositivos y luego de presionar el botón “OK”, se abrirá una nueva ventana emergente:
  • 40. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL40 Esta ventana le preguntará si desea permitir que la aplicación acceda a su cámara web y micrófono. Aquí deberá seleccionar la opción “Permitir”, si selecciona “Denegar” no podrá ser visto y escuchado en la sesión de videoconferencia. Una vez seleccionada esta opción usted podrá ser escuchado y visto por los demás participantes. 3.5.2 Dentro de la Sala de Conferencias Al ingresar a la Sala de Conferencias visualizará una pantalla similar a la siguiente. En ella se puede observar la lista de usuarios conectados, la pizarra, la barra de herramientas, la zona de chat, la barra de propiedades y la o las ventanas de video de los usuarios conectados, incluyendo la suya. Las ventanas de video se pueden mover arrastrándolas por la pantalla así como también se puede modificar su tamaño. Las flechas marcadas con círculos rojos en la imagen superior permiten expandir o contraer las secciones de Usuarios, Propiedades y Chat. Al contraerlas se visualizará la pantalla de la imagen siguiente:
  • 41. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL41 3.5.3 La barra de herramientas La barra de herramientas esta ubicada en la parte superior central de la pizarra y se utiliza para dibujar o apuntar los objetos que se encuentran en la pizarra. Limpiar el área de dibujo. Deshacer la última acción. Rehacer la última acción. Seleccionar un objeto. Puntero. Insertar texto. Pintar. Trazar una línea. Subrayar. Dibujar un rectángulo. Dibujar una elipse.
  • 42. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL42 Dibujar una flecha. 3.5.4 La barra de propiedades La barra de propiedades se encuentra debajo de la pizarra y permite modificar la posición, el tamaño y el color de los objetos seleccionados en la pizarra. Esta barra se puede contraer para optimizar el tamaño de la pizarra. x: Permite modificar la posición horizontal del objeto seleccionado. y: Permite modificar la posición vertical del objeto seleccionado. a: Permite modificar el ancho del objeto seleccionado. h: Permite modificar el alto del objeto seleccionado. Permite cambiar el color de la línea. Permite habilitar o deshabilitar el color de línea y relleno. Permite cambiar el color de relleno. La primera fleche permite cambiar el grosor de la línea y la segunda permite cambiar la transparencia. Permite poner el texto en itálica y/o negrita. 3.5.5 El área de chat El área de chat proporciona un canal alternativo de comunicación entre los participantes de la sesión. Se debe escribir sobre el cuadro de texto inferior y presionar el botón “enviar” o presionar la tecla “enter” para compartir el texto escrito con los otros participantes en el cuadro de texto superior de la sección. 3.5.6 La lista de usuarios En esta sección de la ventana se visualiza la lista de usuarios conectados. También permite saber quien es el moderador de la sala y quien tiene permiso para dibujar. Desde esta sección se puede también modificar la configuración de audio y video.
  • 43. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL43 Indica si el usuario es moderador de la sala. Indica si el usuario tiene permiso para dibujar en la pizarra. Permite reiniciar la configuración de audio/video. 3.5.7 La ventana de video La ventana de visualización de video muestra la imagen capturada por la cámara web de cada usuario conectado. La misma se puede mover arrastrándola desde la parte superior donde se encuentra el nombre del usuario y modificar su tamaño desde la esquina inferior derecha. Permite sincronizar el audio y el video. Indica si el usuario esta hablando. Permite silenciar el audio del usuario. 3.6 Hemeroteca La aplicación de Hemeroteca permite visualizar una colección de artículos, ordenados y clasificados de acuerdo a los criterios del investigador. Además permite enlazar documentos de otros repositorios (Ej.: bibliotecas, universidades, organizaciones, etc.). Utilizando la opción “Hemeroteca” del menú de Inicio o el icono “Hemeroteca” ubicado en el escritorio, se accede a la aplicación de hemeroteca virtual. La ventana de la aplicación presenta el listado de la descripción de artículos organizados por categoría. Haciendo click sobre el título de cada columna se puede ordenar en forma ascendente o descendente el listado.
  • 44. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL44 Los artículos se presentan agrupados en categorías y presionando los botones (+) y (-) junto al nombre de cada categoría se pueden expandir o contraer. Haciendo click en el título de una publicación se abrirá una nueva ventana del navegador con el contenido de la publicación. Este botón permite crear una nueva entrada en la hemeroteca. En la ventana de nuevo link se deberá indicar el título, la dirección url y la categoría. El botón de modificar permite editar el contenido de un elemento de la lista.
  • 45. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL45 Una vez editado el contenido, presionar el botón “Guardar” para salvarlo o “Cancelar” para cancelar la modificación. El botón eliminar permite eliminar la publicación seleccionada del listado. El botón actualizar permite refrescar la ventana para actualizar su contenido. 3.7 Repositorio de documentos La aplicación repositorio de documentos permite visualizar una colección de documentos almacenados en la base de datos, en diferentes formatos, ordenados y clasificados de acuerdo a los criterios del investigador. Utilizando la opción “Repositorio” del menú de Inicio o el icono “Repositorio” ubicado en el escritorio, se accede a la aplicación de repositorio de documentos. La ventana de la aplicación presenta un listado de documentos agrupados por categoría. Haciendo click sobre el título de cada columna se puede ordenar en forma ascendente o descendente el listado. Los documentos se presentan agrupados en categorías, presionando los botones (+) y (-) junto al nombre de cada categoría se pueden expandir o contraer. Haciendo click en el título de un documento se abrirá una nueva ventana del navegador con el contenido de la publicación.
  • 46. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL46 Este botón permite subir un nuevo documento al repositorio. En la ventana de nuevo documento se deberá ingresar el título, seleccionar el archivo correspondiente para subir, copiar una descripción o el abstract del documento, indicar a que categoría pertenece, si fue publicado en una revista, página inicial, página final, ISBN y autor.
  • 47. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL47 El botón de modificar permite editar el contenido de un elemento de la lista. Una vez editado el contenido, presionar el botón “Guardar” para salvarlo o “Cancelar” para cancelar la modificación. El botón eliminar permite eliminar un documento del repositorio. El botón actualizar permite refrescar la ventana para actualizar su contenido.
  • 48. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL48 4. Anexo VI: Documentación Técnica 4.1 Diagrama de Entidad – Relación
  • 49. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL49
  • 50. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL50 4.2 Código Fuente SERVIDOR Config y Controladores /config.php <?php $_CFG["db_host"] = "localhost"; $_CFG["db_user"] = "root"; $_CFG["db_pass"] = "fiuba"; $_CFG["db_name"] = "fiuba"; ?> /boot.php <?php error_reporting (E_ERROR | E_WARNING | E_PARSE); set_magic_quotes_runtime(0); session_cache_limiter('none'); if (isset($_POST['GLOBALS']) || isset($_FILES['GLOBALS']) || isset($_GET['GLOBALS']) || isset($_COOKIE['GLOBALS'])) { die("Hacking attempt"); } if (isset($_SESSION) && !is_array($_SESSION)) { die("Hacking attempt"); } if (@ini_get('register_globals') == '1' || strtolower(@ini_get('register_globals')) == 'on') { $not_unset = array('_GET', '_POST', '_COOKIE', '_SERVER', '_SESSION', '_ENV', '_FILES'); if (!isset($_SESSION) || !is_array($_SESSION)) { $_SESSION = array(); } $input = array_merge($_GET, $_POST, $_COOKIE, $_SERVER, $_SESSION, $_ENV, $_FILES); unset($input['input']); unset($input['not_unset']); while (list($var,) = @each($input)) { if (in_array($var, $not_unset)) { die('Hacking attempt!'); } unset($$var); } unset($input); } if( !get_magic_quotes_gpc() ) { if( is_array($_GET) ) { while( list($k, $v) = each($_GET) ) { if( is_array($_GET[$k]) ) { while( list($k2, $v2) = each($_GET[$k]) ) { $_GET[$k][$k2] = addslashes($v2); }
  • 51. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL51 @reset($_GET[$k]); } else { $_GET[$k] = addslashes($v); } } @reset($_GET); } if( is_array($_POST) ) { while( list($k, $v) = each($_POST) ) { if( is_array($_POST[$k]) ) { while( list($k2, $v2) = each($_POST[$k]) ) { $_POST[$k][$k2] = addslashes($v2); } @reset($_POST[$k]); } else { $_POST[$k] = addslashes($v); } } @reset($_POST); } if( is_array($_REQUEST) ) { while( list($k, $v) = each($_REQUEST) ) { if( is_array($_REQUEST[$k]) ) { while( list($k2, $v2) = each($_REQUEST[$k]) ) { $_REQUEST[$k][$k2] = addslashes($v2); } @reset($_REQUEST[$k]); } else { $_REQUEST[$k] = addslashes($v); } } @reset($_REQUEST); } if( is_array($_COOKIE) ) { while( list($k, $v) = each($_COOKIE) ) { if( is_array($_COOKIE[$k]) ) { while( list($k2, $v2) = each($_COOKIE[$k]) ) { $_COOKIE[$k][$k2] = addslashes($v2); } @reset($_COOKIE[$k]); } else { $_COOKIE[$k] = addslashes($v); } } @reset($_COOKIE); } } function __autoload($class_name) { if (strtolower(substr($class_name, 0, 4)) == "pear") return; $file = HOME_DIR . "lib/$class_name.class.php"; require_once($file);
  • 52. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL52 } require_once(HOME_DIR . "config.php"); $db = new db($_CFG["db_host"], $_CFG["db_user"], $_CFG["db_pass"], $_CFG["db_name"], false); if (!$db->db_connect_id) { die("Could not connect to the database."); } $session = new session(); if (defined("CHECK_LOGIN")) { $chk = $session->check( (defined("CHECK_GRANT") ? CHECK_GRANT : null) ); if (!$chk) header("location: index.php"); } ?> /index.php <?php define("SYSTEM_MODULE", "MAIN"); define("HOME_DIR", "./"); require_once(HOME_DIR . "boot.php"); if (!$session->exists()) { $tpl = new template("login"); $tpl->flush(); } else { $sql = "SELECT conference.conference_id, conference.description, user_group.description AS user_group, conference.om_room_id FROM conference INNER JOIN user_group ON user_group.user_group_id = conference.user_group_id WHERE CURRENT_TIMESTAMP BETWEEN conference.from_date AND conference.to_date AND ( ((SELECT user_type_id FROM user WHERE user_id = " . $session->get("user_id") . ") = 1) OR (conference.user_group_id IN (SELECT user_group_id FROM rel_user_user_group WHERE user_id = " . $session->get("user_id") . ")) OR (conference.conference_id IN (SELECT conference_id FROM conference_guest WHERE conference_guest.user_id = " . $session->get("user_id") . ")) ) ORDER BY conference.description"; $tpl = new template("desktop"); $tpl->set("CONFERENCES", $db->sql_get_rowset($sql)); $tpl->flush(); } ?> /conference.php <?php define("SYSTEM_MODULE", "MAIN"); define("HOME_DIR", "./"); require_once(HOME_DIR . "boot.php"); if (!$session->exists()) { $tpl = new template("login"); $tpl->flush(); } else { $conference_id = intval($_GET["conferenceid"]); list($moderator_id, $om_room_id) = $db->sql_get_row("SELECT moderator_id, om_room_id FROM conference WHERE conference_id = $conference_id", MYSQL_NUM); $om = new openmeetings(param::get("om_url"), param::get("om_user"), param::get("om_password")); $is_mod = ($session->get("user_type_id") == 1 || $session->get("user_id") == $moderator_id); $om_swf = $om->enter_room($om_room_id, $session->get("login"), $session->get("fname"), $session->get("lname"), $session->get("email"), $is_mod); $tpl = new template("conference");
  • 53. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL53 $tpl->set("OM_SWF", $om_swf); $tpl->flush(); } ?> /document.php <?php define("SYSTEM_MODULE", "MAIN"); define("HOME_DIR", "./"); require_once(HOME_DIR . "boot.php"); $document_id = intval($_GET["id"]); if (!$session->exists() || !$document_id) { $tpl = new template("login"); $tpl->flush(); } else { $original_file_name = $db->sql_get_value("SELECT file_name FROM document WHERE document_id = $document_id"); $attach_file = param::get("upload_path") . "document" . $document_id; $attach = new attachment($attach_file); $attach->download($original_file_name); } ?> Librerias /lib/param.class.php <?php class param { private static $instance; protected $vars = array(); public static function load() { GLOBAL $db; if (!isset(self::$instance)) { $c = __CLASS__; self::$instance = new $c; $sql = "SELECT `key`, value FROM parameter ORDER BY `key`"; $vars = $db->sql_get_rowset($sql); for ($i = 0; $i < count($vars); $i++) { self::$instance->vars[$vars[$i]["key"]] = $vars[$i]["value"]; } } } public static function get($key) { self::load(); return self::$instance->vars[$key]; } } ?> /lib/db.class.php <?php define("BEGIN_TRANSACTION", 1); define("END_TRANSACTION", 2); class db { var $db_connect_id; var $query_result; var $row = array(); var $rowset = array(); var $num_queries = 0; var $in_transaction = 0; var $pagination = array(); var $error = false;
  • 54. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL54 function __construct($sqlserver, $sqluser, $sqlpassword, $database, $persistency = true, $new_link = false) { $this->persistency = $persistency; $this->new_link = $new_link; $this->user = $sqluser; $this->password = $sqlpassword; $this->server = $sqlserver; $this->dbname = $database; $this->db_connect_id = ($this->persistency) ? mysql_pconnect($this->server, $this->user, $this- >password) : mysql_connect($this->server, $this->user, $this->password, $this->new_link); if( $this->db_connect_id ) { if( $database != "" ) { $this->dbname = $database; $dbselect = mysql_select_db($this->dbname); if( !$dbselect ) { mysql_close($this->db_connect_id); $this->db_connect_id = $dbselect; } } return $this->db_connect_id; } else { return false; } } function sql_close() { if( $this->db_connect_id ) { // // Commit any remaining transactions // if( $this->in_transaction ) { mysql_query("COMMIT", $this->db_connect_id); } return mysql_close($this->db_connect_id); } else { return false; } } function sql_escape_string($string) { return mysql_escape_string($string); } function sql_begin_transaction() { if ( $this->in_transaction ) return false; $result = mysql_query("BEGIN", $this->db_connect_id); if(!$result) { return false; } $this->in_transaction = TRUE; } function sql_commit_transaction() { if ( !$this->in_transaction ) return false;
  • 55. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL55 $result = mysql_query("COMMIT", $this->db_connect_id); if (!$result) { return false; } $this->in_transaction = FALSE; } function sql_rollback_transaction() { if ( !$this->in_transaction ) return false; $result = mysql_query("ROLLBACK", $this->db_connect_id); if (!$result) { return false; } $this->in_transaction = FALSE; } function sql_query($query = "", $transaction = FALSE) { unset($this->query_result); if( $query != "" ) { $this->num_queries++; if( $transaction == BEGIN_TRANSACTION && !$this->in_transaction ) { $result = mysql_query("BEGIN", $this->db_connect_id); if(!$result) { return false; } $this->in_transaction = TRUE; } $this->query_result = mysql_query($query, $this->db_connect_id); } else { if( $transaction == END_TRANSACTION && $this->in_transaction ) { $result = mysql_query("COMMIT", $this->db_connect_id); } } if( $this->query_result ) { $this->error = false; unset($this->row[$this->query_result]); unset($this->rowset[$this->query_result]); if( $transaction == END_TRANSACTION && $this->in_transaction ) { $this->in_transaction = FALSE; if ( !mysql_query("COMMIT", $this->db_connect_id) ) { mysql_query("ROLLBACK", $this->db_connect_id); return false; } } return $this->query_result; } else { $result['message'] = mysql_error($this->db_connect_id); $result['code'] = mysql_errno($this->db_connect_id); $this->error = array("message" => mysql_error($this->db_connect_id), "code" => mysql_errno($this->db_connect_id)); if( $this->in_transaction ) { mysql_query("ROLLBACK", $this->db_connect_id);
  • 56. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL56 $this->in_transaction = FALSE; } return false; } } function sql_paginate($query, $page_number = 1, $page_size = 10) { unset($this->query_result); unset($this->pagination); $query_count = " SELECT COUNT(*) AS num_rows FROM (" . $query . ") sq"; $result_count = mysql_query($query_count, $this->db_connect_id); $this->pagination["record_count"] = mysql_result($result_count, 0, 0); $this->pagination["page_size"] = $page_size; if (($this->pagination["record_count"] % $this->pagination["page_size"]) == 0) $this->pagination["page_count"] = floor($this->pagination["record_count"] / $this->pagination["page_size"]) ; else $this->pagination["page_count"] = floor($this->pagination["record_count"] / $this->pagination["page_size"]) + 1; if ($this->pagination["page_count"] == 0) $this->pagination["page_number"] = 1; elseif ($page_number > $this->pagination["page_count"]) $this->pagination["page_number"] = $this->pagination["page_count"]; else $this->pagination["page_number"] = $page_number; $query_page = $query . " LIMIT " . ($this->pagination["page_number"] - 1) * $this- >pagination["page_size"] . ", " . $this->pagination["page_size"]; $result_page = $this->sql_query($query_page); $this->pagination["result"] = $result_page; return $this->pagination; } function sql_num_rows($query_id = 0) { if( !$query_id ) { $query_id = $this->query_result; } return ( $query_id ) ? mysql_num_rows($query_id) : false; } function sql_affected_rows() { return ( $this->db_connect_id ) ? mysql_affected_rows($this->db_connect_id) : false; } function sql_num_fields($query_id = 0) { if( !$query_id ) { $query_id = $this->query_result; } return ( $query_id ) ? mysql_num_fields($query_id) : false; } function sql_field_name($offset, $query_id = 0) { if( !$query_id ) { $query_id = $this->query_result; } return ( $query_id ) ? mysql_field_name($query_id, $offset) : false; } function sql_field_type($offset, $query_id = 0) { if( !$query_id ) { $query_id = $this->query_result;
  • 57. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL57 } return ( $query_id ) ? mysql_field_type($query_id, $offset) : false; } function sql_fetch_row($query_id = 0, $fetch_mode = MYSQL_ASSOC) { if( !$query_id ) { $query_id = $this->query_result; } if( $query_id ) { $this->row[$query_id] = mysql_fetch_array($query_id, $fetch_mode); return $this->row[$query_id]; } else { return false; } } function sql_fetch_rowset($query_id = 0, $fetch_mode = MYSQL_ASSOC) { if( !$query_id ) { $query_id = $this->query_result; } if( $query_id ) { unset($this->rowset[$query_id]); unset($this->row[$query_id]); while($this->rowset[$query_id] = mysql_fetch_array($query_id, $fetch_mode)) { $result[] = $this->rowset[$query_id]; } return $result; } else { return false; } } function sql_fetch_field($field, $rownum = -1, $query_id = 0) { if( !$query_id ) { $query_id = $this->query_result; } if( $query_id ) { if( $rownum > -1 ) { $result = mysql_result($query_id, $rownum, $field); } else { if( empty($this->row[$query_id]) && empty($this->rowset[$query_id]) ) { if( $this->sql_fetchrow() ) { $result = $this->row[$query_id][$field]; } } else { if( $this->rowset[$query_id] ) { $result = $this->rowset[$query_id][0][$field]; }
  • 58. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL58 else if( $this->row[$query_id] ) { $result = $this->row[$query_id][$field]; } } } return $result; } else { return false; } } function sql_row_seek($rownum, $query_id = 0) { if( !$query_id ) { $query_id = $this->query_result; } return ( $query_id ) ? mysql_data_seek($query_id, $rownum) : false; } function sql_next_id() { return ( $this->db_connect_id ) ? mysql_insert_id($this->db_connect_id) : false; } function sql_free_result($query_id = 0) { if( !$query_id ) { $query_id = $this->query_result; } if ( $query_id ) { unset($this->row[$query_id]); unset($this->rowset[$query_id]); @mysql_free_result($query_id); return true; } else { return false; } } function sql_get_value($query) { $result = $this->sql_query($query); if (!$result) return false; if ($this->sql_num_rows() == 0) return false; $row = $this->sql_fetch_row($result, MYSQL_BOTH); if (!$row) return false; $this->sql_free_result(); return $row[0]; } function sql_get_row($query, $fetch_mode = MYSQL_ASSOC) { $result = $this->sql_query($query); if (!$result) return false; if ($this->sql_num_rows() == 0) return false; $row = $this->sql_fetch_row(0, $fetch_mode); $this->sql_free_result(); return $row; } function sql_get_rowset($query, $fetch_mode = MYSQL_ASSOC) { $result = $this->sql_query($query);
  • 59. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL59 if (!$result) return false; $rowset = $this->sql_fetch_rowset(0, $fetch_mode); $this->sql_free_result(); return $rowset; } function sql_error() { return $this->error; } } ?> /lib/session.class.php <?php class session { public function __construct() { session_start(); } public function init($user_name, $password) { GLOBAL $db; $user_name = trim(strtolower($user_name)); $password = trim($password); if ($user_name == "") { $this->set_flash("login_error", true); return false; } if (strlen($user_name) < 4 || strlen($user_name) > 15) { $this->set_flash("login_error", true); return false; } if (!preg_match("/^[0-9a-z]+$/", $user_name)) { $this->set_flash("login_error", true); return false; } if ($password == "") { $this->set_flash("login_error", true); return false; } if (strlen($password) < 4 || strlen($password) > 15) { $this->set_flash("login_error", true); return false; } if (!preg_match("/^[0-9a-z]+$/", strtolower($password))) { $this->set_flash("login_error", true); return false; } $query = " SELECT user.user_id FROM user WHERE user.login = '" . $db- >sql_escape_string($user_name) . "' AND user.password = '" . $db- >sql_escape_string($password) . "'"; $result = $db->sql_query($query); if (!$result) { return false; } if ($db->sql_num_rows() == 1) { $row = $db->sql_fetch_row(); $this->init_by_id($row["user_id"]); return true; } else { $this->set_flash("login_error", true); return false; } } public function init_by_id($user_id) { GLOBAL $db; $query = " SELECT user.* FROM user WHERE user.user_id = " . $user_id; $result = $db->sql_query($query); if (!$result) { print_r($db->sql_error()); session_destroy(); return false; } $row = $db->sql_fetch_row(); foreach ($row as $key => $value)
  • 60. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL60 { if (!is_numeric($key)) { $this->set($key, $value); } } unset($_SESSION["session_flashs"]); } public function end() { session_destroy(); } public function check() { GLOBAL $db; $ok = true; $query = "SELECT * FROM user WHERE login='" . $db->sql_escape_string($this- >get("user_name")) . "' AND password='" . $db->sql_escape_string($this->get("password")) . "'"; $result = $db->sql_query($query); if (!$result) $ok = false; else { $num_rows = $db->sql_num_rows(); if ($num_rows == 0) $ok = false; else $ok = true; } if (!$ok) { $this->end(); } return $ok; } public function exists() { return !!($this->get("user_id")); } public function get($key) { return $_SESSION["session_vars"][$key]; } public function set($key, $value) { $_SESSION["session_vars"][$key] = $value; } public function get_array() { $rtn = $_SESSION["session_vars"]; unset($rtn["password"]); return $rtn; } public function get_flash($key) { $return = $_SESSION["session_flashs"][$key]; unset($_SESSION["session_flashs"][$key]); return $return; } public function set_flash($key, $value) { $_SESSION["session_flashs"][$key] = $value; } public function get_flash_array() {
  • 61. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL61 $rtn = $_SESSION["session_flashs"]; return $rtn; } } ?> /lib/attachment.class.php <?php class attachment { private $file = ""; public function __construct($attach_file) { $this->file = $attach_file; } public function get_file() { return $this->file; } public function exists() { return file_exists($this->file); } public function upload($source_file) { if ($this->exists()) $this->remove(); if (!move_uploaded_file($source_file, $this->file)) return false; if (!@chmod($this->file, 0666)) return false; return true; } public function download($original_file_name, $forced_content_disposition = "") { $file_extension = "." . strtolower(substr(strrchr($original_file_name, "."), 1)); $content_disposition = "attachment"; switch( strtolower($file_extension) ) { case ".pdf": $type = "application/pdf"; break; case ".exe": $type = "application/octet-stream"; break; case ".zip": $type = "application/zip"; break; case ".doc": $type = "application/msword"; break; case ".xls": $type = "application/vnd.ms-excel"; break; case ".ppt": $type = "application/vnd.ms-powerpoint"; break; case ".gif": $type = "image/gif"; break; case ".png": $type = "image/png"; break; case ".jpe": case ".jpeg": case ".jpg": $type = "image/jpeg"; break; case ".txt": $type = "text/plain"; break; case ".htm": case ".html": case ".xml": $type = "text/html"; $content_disposition = "inline"; break; default: $type = "application/force-download"; } if ($forced_content_disposition) $content_disposition = $forced_content_disposition; header("Pragma: public"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Cache-Control: private", false); header("Content-Type: " . $type); header("Content-Disposition: " . $content_disposition . "; filename="" . $original_file_name . "";"); header("Content-Transfer-Encoding: binary"); header("Content-Length: " . @filesize($this->file)); @readfile("$this->file"); exit(); } public function remove() { if (!@unlink($this->file)) return false; return true; }
  • 62. PLATAFORMA PARA FORMACIÓN DE INVESTIGADORES A DISTANCIA D’ONOFRIO - UMINSKY Pág. TRABAJO PROFESIONAL62 } ?> /lib/escape.class.php <?php class escape { private static function unhtmlentities($string) { $trans_tbl = get_html_translation_table(HTML_ENTITIES); $trans_tbl = array_flip($trans_tbl); return strtr($string, $trans_tbl); } public static function post2html($str, $allow_html = false) { if (!$allow_html) return trim(htmlentities(stripslashes($str), ENT_QUOTES)); else return trim(stripslashes($str)); } public static function post2db($str) { return self::unhtmlentities(str_replace("'", "''", trim($str))); } public static function db2html($str, $multi_line = false, $allow_html = false) { if (!$allow_html) $str = htmlentities($str, ENT_QUOTES); if ($multi_line) { $str = str_replace("rn", "<br />", $str); $str = str_replace("n", "<br />", $str); } return $str; } } ?> /lib/template.class.php <?php class template { private $file; private $vars; private $buffer; private $filled = false; public function __construct($file) { $this->file = HOME_DIR . "tpl/$file.tpl.php"; } public function set($var_name, $var_value) { if (is_object($var_value) && (get_class($var_value) == "template" || is_subclass_of($var_value, "template"))) { $this->vars[$var_name] = $var_value->fill($this); } else { $this->vars[$var_name] = $var_value; } } public function set_bulk($var_list) { foreach ($var_list as $var_name => $var_value) $this->set($var_name, $var_value); } public function fill($parent = null) { if ($this->filled) return $this->buffer; if (is_object($parent)) {