0% encontró este documento útil (0 votos)
212 vistas18 páginas

Savia PDF

Este documento presenta SAVIA, un sistema de almacenamiento virtual y gestión de archivos desarrollado para la comunidad académica. SAVIA permite el almacenamiento y portabilidad de información independientemente del dispositivo, de manera intuitiva, eficiente y segura. Fue desarrollado usando Django y aplicando conceptos de web 2.0 como almacenamiento virtual, metadatos y tecnologías como Ajax, XML y Jquery. SAVIA busca sentar un precedente sólido en gestión de archivos académicos.

Cargado por

dav74_2
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
212 vistas18 páginas

Savia PDF

Este documento presenta SAVIA, un sistema de almacenamiento virtual y gestión de archivos desarrollado para la comunidad académica. SAVIA permite el almacenamiento y portabilidad de información independientemente del dispositivo, de manera intuitiva, eficiente y segura. Fue desarrollado usando Django y aplicando conceptos de web 2.0 como almacenamiento virtual, metadatos y tecnologías como Ajax, XML y Jquery. SAVIA busca sentar un precedente sólido en gestión de archivos académicos.

Cargado por

dav74_2
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

 

SAVIA 
SISTEMA PARA EL ALMACENAMIENTO VIRTUAL Y GESTION DE ARCHIVOS 
EDUARDO ARAGÓN MONTES, JULIÁN CAMILO PÉREZ PARRA 
Universidad del Valle, Cali, Colombia 
earagon87@[Link], jcpmmx@[Link]

Resumen  —  Una  de  las  tendencias  con  mayor  auge  en  el  Abstract  — The  reliability  and  permanent  availiability  of 
entorno  informático  actualmente  es  la  disponibilidad  personal  content  within  network‐based  environments  is  a 
inmediata y permanente de contenidos personales. Siguiendo  growing trend nowadays. This is a sensible need also for most 
esta línea, el almacenamiento virtual de archivos es una tarea  scientific  communities,  which  are  in  need  of  intuitive, 
indispensable  que  apunta  en  esta  dirección.  Los  usuarios  de  efficient,  and  secure  data  portability,  regardless  of  any 
sistemas académicos y científicos no son ajenos a la necesidad  physical storage device. Here we describe the implementation 
de  portabilidad  de  información,  con  independencia  del  of  SAVIA,  an  online  storage  system  tailored  to  scientific 
dispositivo físico de transporte y almacenamiento, y con dosis  communities. Apart from basic storage capabilities, it features 
elementales  de  intuitividad,  eficacia  y  seguridad.  Bajo  este  tools  for  social  interaction  among  users  and 
contexto desarrollamos un sistema de almacenamiento virtual  intercommunication  capabilities  with  external  applications. 
y  gestión  de  archivos,  orientado  a  la  comunidad  académica,  SAVIA  has  been  developed  using  Django  and  applying 
que  provee  almacenamiento  básico,  diferentes  herramientas  concepts of web 2.0. It intends to set a solid precedent in this 
de  interacción  social  entre  sus  usuarios  y  la  posibilidad  de  area, to be a starting point and to raise the bar high up in this 
interconexión con otros sistemas existentes. Desarrollado por  continuous evolving field. 
completo  utilizando  Django  y  aplicando  los  conceptos  de  la   
web  2.0,  SAVIA  nace  para  sentar  un  precedente  sólido  en  su   
ámbito, servir como marco de referencia y poner el listón alto   
dentro  de  un  campo  de  acción  que  está  en  evolución   
continua.     
   
Palabras clave — Almacenamiento Virtual, Web 2.0, Internet,  Keywords — Online Storage, Web 2.0, Internet, Django 
Django   

1
SAVIA 

I. INTRODUCCIÓN  Estructura  de  este  documento:  Este  documento  está 


organizado  de  la  siguiente  manera.  En  la  próxima  sección 
La  web,  y  las  Tecnologías  de  la  Información  y  de  la  (sección II) se discutirá acerca de los conceptos y las tecnologías 
Comunicación  (TIC)  en  general,  han  sufrido  una  enorme  utilizadas  en  el  desarrollo  de  la  aplicación  y  la  importancia  de 
transformación en los últimos años, y con ello sus posibilidades  su  uso  en  proyecto  similares  que  involucran  almacenamiento 
de  uso  en  el  entorno  docente.  Internet  ha  pasado  de  ser  un  virtual  y  gestión  de  archivos.  En  la  sección  III  se  explicará 
medio  en  que  la  información  se  almacena,  se  transmite  y  se  brevemente qué es la metodología de Programación Extrema y 
consume,  a  una  plataforma  en  que  se  crean  contenidos,  se  cómo  se  aplicó  durante  el  desarrollo  de  SAVIA.  La  sección  IV 
comparten,  se  transforman,  se  discuten,  se  reorientan,  y  se  nos  da  a  conocer  algunas  aplicaciones  web  pertenecientes  al 
pasan a otras personas en un proceso creativo y expansivo sin  estado del arte actual. Análisis y resultados son descritos en la 
límites [1].  sección  V.  Finalmente  en  la  sección  VI  se  describen  las 
Esto ha generado cada vez más el acercamiento y el interés  conclusiones obtenidas al término del desarrollo de SAVIA, así 
de  las  personas  por  todo  tipo  de  herramientas  y  contenido  como algunas ideas acerca de trabajos futuros para optimizar el 
académico  que  años  atrás  era  de  difícil  acceso.  Sin  lugar  a  funcionamiento de la aplicación. 
dudas  Internet  ha  provocado  el  rompimiento  de  esa  barrera   
que  suponía  que  la  información  estuviera  restringida  a  unos 
II. CONCEPTOS Y TECNOLOGÍAS APLICADAS EN SAVIA 
pocos  y  se  ha  convertido  en  una  poderosa  fuente  de 
recolección y análisis de la misma. 
El  tratamiento  de  la  información  se  convierte  en  objeto  de  Para  el  desarrollo  de  SAVIA  se  tomaron  en  cuenta  dos 
estudio de  las tendencias actuales. Se hace imprescindible que  conceptos  claves:  almacenamiento  virtual  y  metadatos.  Bajo 
la  información  esté  disponible  en  todo  momento  y  no  esté  este  marco  surge  el  debate  de  qué  tecnologías  son  las 
supeditada  al  dispositivo  físico  que  proporcione  el  adecuadas para integrar estos dos conceptos de manera ágil en 
almacenamiento.  una misma herramienta. 
En ese proceso surge el concepto de almacenamiento virtual  El  principal  criterio  para  la  selección  de  cada  una  de  las 
como  una  solución  de  almacenamiento  de  datos,  pensada  y  tecnologías  que  podrían  utilizarse,  de  lejos  el  más  obvio,  es  la 
diseñada  para  quienes  deben  compartir  información  con  comparación  entre  las  características  y  funcionalidades 
personas ubicadas en lugares geográficamente distantes y para  ofrecidas por cada una y las necesidades particulares de SAVIA, 
los que desean mantener su información más importante en un  sin  olvidar  las  desventajas  inherentes.  Por  ejemplo,  el  primer 
lugar,  confiable  y  seguro,  accesible  en  cualquier  momento  análisis  juicioso  es  la  elección  del  entorno  de  desarrollo 
desde un equipo remoto con conexión a una red (bien sea local  adecuado (con su lenguaje de programación asociado). 
o Internet).  A  manera  de  síntesis,  la  Figura  1  reúne  las  distintas 
Dados  estos  antecedentes  es  necesario  contar  con  una  tecnologías  y  conceptos  que  conviven  en  SAVIA,  teniendo  en 
herramienta  que  cumpla  con  las  expectativas  y  tendencias  cuenta las metodologías que hacen posible este desarrollo.   
actuales en cuanto a tratamiento y gestión de la información se   
Ingeniería 
refiere,  y  que  brinde  a  sus  usuarios  una  interfaz  simple  y   
 
Jquery 
 
web 
XML  METODOLOGIA 
agradable que facilite la gestión de archivos de forma rápida y 
eficaz.  
  Programación 
SAVIA  surge  como  una  alternativa  para  dotar  a  MINERA  [2]  Ajax  Extrema 

con  capacidades  de  almacenamiento  y  gestión  de  archivos, 


siguiendo  la  metodología  de  desarrollo  de  software  de       
Programación Extrema y utilizando como entorno de desarrollo  TECNOLOGIAS  SAVIA  CONCEPTOS 
Django. 
Nuestra  mayor  contribución  es  otorgarle  a  la  Escuela  de     
Django 
Ingeniería  de  Sistemas  y  Computación  de  la  Universidad,  y  en 
general a la comunidad académica, una aplicación innovadora, 
   
fácilmente extendible y de código abierto, que podrá funcionar  RIA  web Services  
Almacenamiento Virtual
 
Metadatos 

como  una  aplicación  completamente  autónoma  o  integrada  a 


cualquier  otro  sistema  que  requiera  almacenamiento  virtual  y 
gestión de archivos.  Figura. 1  Conceptos y Tecnologías aplicadas en SAVIA. 

2
SAVIA 

Almacenamiento  • Dentro del dispositivo C, debemos acceder primero al 
Un  computador  puede  almacenar  información  en  varios  directorio  CarpetaPadre.  Una  vez  estando  dentro  de 
soportes,  como  los  discos  magnéticos  y  los  discos  ópticos.  CarpetaPadre,  localizamos  y  accedemos  el  directorio 
También  en  otros  dispositivos  como  el  almacenamiento  llamado  CarpetaHijo.  En  este  último  directorio  estará 
primario  (de  manera  temporal,  en  la  memoria  RAM)  y  las  nuestro archivo almacenado. 
tarjetas de almacenamiento portátil con interfaz USB.  • Cabe  destacar  que  la  jerarquía  en  este  caso  se 
El  sistema  operativo  se  encarga  de  brindar  una  vista  lógica  presenta  como  C  >  CarpetaPadre  >  CarpetaHijo  > 
uniforme  para  el  almacenamiento  de  la  información,  [Link],  siendo  C  la  unidad  más  general  de 
proporcionando  una  abstracción  de  las  propiedades  físicas  de  almacenamiento (el dispositivo físico en este caso). 
los  elementos  de  almacenamiento,  con  el  fin  de  definir  una  Todos  los  archivos  cuentan con  otros  atributos que  ofrecen 
unidad lógica de almacenamiento: el archivo.  información adicional, siendo de manera típica los siguientes 
• Nombre: es la etiqueta del archivo en formato legible 
A. ¿Qué es un archivo?  para personas. 
Un archivo es una colección de información relacionada, con  • Identificador:  una  etiqueta  unívoca  (usualmente  un 
nombre  y  atributos  asociados,  que  se  graba  en  un  número)  que  identifica  al  archivo  dentro  del  sistema 
almacenamiento secundario. También podemos verlo, desde el  de archivos; es la versión no legible para personas del 
punto  de  vista  del  usuario,  como  la  unidad  más  pequeña  de  nombre del archivo. 
almacenamiento  secundario;  no  podremos  guardar  datos  a  • Tipo:  indica  el  tipo  de  archivo,  para  que  pueda  ser 
menos de que estén dentro de un archivo [3].  procesado por una determinada aplicación. 
De  manera  general,  un  archivo  es  una  secuencia  de  bits,  • Ubicación:  indica  la  ubicación  lógica  del  archivo, 
bytes,  líneas  o  registros,  cuyo  significado  está  definido  por  el  siendo  puntero  a  un  dispositivo  y  la  ruta  que  le 
creador y el usuario del archivo.  corresponde. 
Las operaciones típicas disponibles para un archivo son  • Tamaño:  etiqueta  que  expresa,  por  lo  general,  el 
• Creación del archivo.  número de bytes que ocupa el archivo. 
• Configuración de sus atributos para establecer control.  • Protección: indica el control de acceso al archivo, para 
• Apertura del archivo para almacenar datos.  permitir  o  restringir  las  distintas  operaciones  que  se 
• Lectura o modificación de contenido de un archivo.  pueden efectuar sobre el archivo. 
• Reubicación  del  archivo  dentro  del  sistema  de  • Fecha, hora e identificación del usuario: se utiliza para 
archivos.  determinar  la  fecha  de  creación,  modificación  o  de 
• Eliminación del archivo.  ultimo acceso al archivo, así como también el usuario 
dueño del mismo. 
B. Atributos de un archivo 
Los  archivos  tienen  asociado  siempre  un  nombre  y,  casi  C. Protección de archivos 
siempre  (algunos  sistemas  utilizan  metadatos),  una  extensión  Los  sistemas  informáticos  modernos  proporcionan  varios 
que  identifican  su  tipo.  Así  mismo,  siempre  se  almacenan  métodos para proteger archivos frente a eventos accidentales o 
dentro  de  una  entidad  contenedora  de  manera  lógica:  un  deliberados. 
directorio o carpeta (otra abstracción).  Los  computadores  multiusuario  implementan  permisos 
Los  sistemas  modernos  referencian  cualquier  archivo  sobre  archivos  para  controlar  quién  puede  ejecutar  ciertas 
mediante  su  ruta  (el  camino  de  directorios  contenedores  de  operaciones  sobre  el  archivo.  Por  ejemplo,  un  usuario  o  un 
manera jerárquica) y su nombre.  grupo de usuarios pueden acceder al contenido de un archivo, 
Por ejemplo, si tenemos la ruta (en formato DOS/Windows)  pero no modificarlo ni eliminarlo. De esta manera, se garantiza 
C:\CarpertaPadre\CarpetaHijo\[Link], podemos decir  la  integridad  de  un  archivo  ante  intentos  desautorizados  de 
lo siguiente  manipulación. 
• El  archivo  objetivo  se  llama  MiArchivo  y  es  del  tipo  Otra  estrategia  asumida  es  la  habilitación  de  la  etiqueta 
texto.  (otro  atributo  de  un  archivo)  archivo  de  sólo  lectura.  Así,  el 
• La  ruta  completa  de  este  archivo  es  archivo  sólo  podrá  modificarse  en  caso  de  estar  deshabilitado 
C:\CarpertaPadre\CarpetaHijo\.  esta bandera. 
• La  unidad  de  almacenamiento  que  lo  contiene  está   
identificada como C. 

3
SAVIA 

D. Sistemas de archivos  Un ejemplo es el uso que tiene en redes de área local (LAN), 
Un  sistema  de  archivo  es  un  método  para  almacenar  y  comunicando sistemas tipo Unix con sistemas Windows y Mac 
organizar  archivos  (y  los  datos  que  contienen)  con  el  fin  de  OS (cada uno de los cuales tiene su propio sistema de archivos) 
facilitar  su  búsqueda  y  acceso  en  un  dispositivo  de  con transparencia para el usuario final [5]. 
almacenamiento,  una  red  de  computadores  o  en  un  sistema  F. Sistemas de archivos distribuidos 
virtual  de  datos  (como  los  generados  dinámicamente  por  el 
kernel de sistemas tipo Unix) [4].  Es  un  sistema  de  archivos  de  red  en  el  que  un  sistema  de 
De  manera  más  formal,  podemos  decir  que  un  sistema  de  archivos  único  se  puede  distribuir  entre  varios  computadores 
archivos  es  una  base  de  datos,  de  propósito  especial,  para  que  actúan  como  nodos,  cada  uno  separado  del  otro  y  con 
almacenar,  organizar  jerárquicamente,  manipular,  acceder  y  acceso a una sola parte de todo el sistema de archivos original. 
obtener datos.  Contrasta  con  los  sistemas  de  archivos  de  discos 
Dentro  de  los  sistemas  de  archivos,  podemos  destacar  las  compartidos,  que  proporcionan  acceso  directo  y  uniforme,  a 
siguientes categorías  cada nodo de la red, a todo el almacenamiento disponible. 
Una  de  sus  ventajas  es  la  facilidad  que  tienen  para  hacer 
• Sistema  de  archivos  de  disco:  es  un  sistema  de 
transparentes  los  procesos  de  copias  de  seguridad  (backup)  y 
archivos  diseñado  para  almacenar  archivos  en  un 
de tolerancia a los errores; cuando cierto número de nodos de 
dispositivo de almacenamiento, como los discos duros. 
la red presentan fallas, el sistema continúa su operación con los 
Un ejemplo es el sistema NTFS, que utiliza Windows en 
nodos restantes y sin pérdida de información [6]. 
sus versiones actuales, o el HFS, utilizado por Apple. 
• Sistema de archivos de unidades flash: diseñado para  G. Almacenamiento de archivos 
el  almacenamiento  de  archivos  en  dispositivos  El almacenamiento de archivos se refiere al proceso físico de 
portátiles basados en memoria flash. Un ejemplo es el  grabar  datos  en  un  dispositivo  de  almacenamiento 
JFFS2.  (permanente, temporal o removible) a través de un equipo de 
• Sistema  de  archivos  de  bases  de  datos:  además  de  almacenamiento de datos, previamente configurado de manera 
almacenar  los  archivos  de  manera  jerárquica,  lógica con un sistema de archivos. En este caso, se presenta la 
almacena  también  metadatos  para  referencian  sus  relación  Disco  duro  (dispositivo  que  almacena  los  datos)  – 
características.  Computador (dispositivo que accede y manipula los datos), por 
• Sistemas de archivo de transacciones: diseñados para  ejemplo. 
ser  robustos,  son  utilizados  principalmente  en 
operaciones a través de redes de computadores, cada  H. Almacenamiento virtual de archivos 
uno  de  los  cuales  almacena  archivos.  Está  basado  en  Podemos llamar así al proceso de almacenar archivos en una 
registro  de  actividades  (journaling  o  logging)  para  red  de  computadores  utilizando  al  menos  dos  máquinas, 
comprobar  que  las  operaciones  entre  distintas  distintas y conectadas entre sí. 
máquinas se efectúen de manera satisfactoria.  Una de las máquinas actúa como servidor de la red, que se 
• Sistema  de  archivos  de  red: es un sistema de archivo  encarga de almacenar los archivos físicamente. La otra máquina 
que  actúa  como  cliente  para  un  protocolo  de  acceso  hace  el  papel  usuario  cliente  que  se  comunica  con  el  servidor 
remoto  de  archivos,  como  la  comunicación  con  para enviar datos que se encuentran alojados en él. 
servidores. Un ejemplo es el FTP.  En  este  proceso  debemos  tener  en  cuenta  varios  factores 
• Sistemas  de  archivo  de  propósito  especial:  no  se  que lo hacen más complejo que un almacenamiento local en un 
basan  ni  en  discos  ni  en  redes.  Son  sistemas  de  dispositivo, algunos como 
archivos  virtuales  temporales  o  que  se  generan  • La  comunicación  entre  los  equipos  debe  existir  y  ser 
dinámicamente por medio de software. Un ejemplo es  estable en el momento de realizarse transferencias. 
el procfs, utilizado por sistemas tipo Unix.  • El equipo servidor y su(s) cliente(s) no necesariamente 
disponen  de  la  misma  arquitectura,  haciéndose 
E. Sistemas de archivo virtual 
necesaria  (en  algunos  casos)  una  capa  de  abstracción 
Es  una  capa  de  abstracción  que  se  superpone  a  un  sistema  (middleware)  que  haga  transparentes  las  operaciones 
de archivos concreto, teniendo como objetivo otorgar acceso a  y permita el interoperabilidad entre nodos que utilizan 
diferentes  sistemas  de  archivos  concretos  de  manera  única  y  distintos  sistemas  operativos,  distintos  sistemas  de 
uniforme, por medio de aplicaciones cliente.  archivo, distintas prestaciones, entre otras cosas. 

4
SAVIA 

• Deben existir estrategias de seguridad que garanticen  Las funciones principales de un metadato son las de facilitar 
la  integridad  del  sistema  de  almacenamiento  para  la  identificación,  localización,  retorno,  manipulación  y  uso  de 
brindar la tolerancia a errores adecuada, tanto físicos  objetos digitales en un entorno de red. 
(fallas del fluido eléctrico, fallas en la comunicación en  Aunque  el  término  metadato  no  excluye  los  datos  no 
red,  entre  otros)  como  lógicos  (intrusión  de  usuarios  electrónicos, en la actualidad su uso implica casi de facto datos 
no  autorizados,  fallas  en  los  distintas  aplicaciones  almacenados  en  dispositivos  electrónicos.  La  Internet  y  las 
involucradas, entre otros).  bibliotecas  digitales  han  desvelado  la  creciente  necesidad  de 
los  metadatos  para  las  distintas  categorías  de  objetos 
Metadatos  disponibles en formato digital. 
La  cantidad  de  datos  presente  en  la  Internet,  y  en  general, 
todos los datos almacenados en los millones de computadores  B. El estándar Dublin Core (DC) 
que  existen  alrededor  del  planeta,  hacen  casi  imposible  que  En 1995 se llevó a cabo, en Dublin (Ohio, [Link].), el primer 
podamos  catalogarlos  de  una  manera  apropiada.  Y,  añadido  a  taller  de  trabajo  de  The  Dublin  Core  Workshop  Series, 
la dificultad intrínseca que conlleva la manipulación de grandes  convocando  a  sus  participantes  por  medio  de  una  invitación, 
volúmenes de datos, está la dificultad que representa la calidad  entre quienes se encontraban bibliotecarios, investigadores de 
de los mismos [7].  bibliotecas  digitales,  expertos  en  contenidos  y  expertos  en 
Con estos dos factores en contra debemos adoptar medidas  lenguajes de marcas, con el fin de desarrollar estándares para 
que nos lleven a la optimización de la organización de los datos  los recursos electrónicos. El resultado fue la creación del Dublin 
que almacenamos, para procurar la mejora en la capacidad de  Core  Metadata  Initiative  (DCMI),  una  organización  dedicada  a 
encontrar  fácilmente  esos  recursos  y  en  la  calidad  de  la  fomentar la adopción extensa de los estándares interoperables 
información que representan. Una de esas estrategias, aunque  de los metadatos y a promover el desarrollo de los vocabularios 
obvia y simple, no es utilizada como debería ser por los actores  especializados de metadatos para describir recursos. La última 
implicados en la producción de información: los metadatos.  versión, la 1.1, fue radicada como norma ISO en Enero de 2008. 
DC  se  compone  de  un  conjunto  de  15  elementos 
A. ¿Qué son los metadatos?  descriptores  que  intentan  promover  que  los  autores  de 
El  término  metadatos,  en  sí  mismo,  no  tiene  una definición  contenidos  de  la  Internet  describan  sus  recursos.  Dichos 
única.  Descomponiendo  la  palabra,  se  puede  decir  que  su  elementos  se  pueden  clasificar  en  3  grupos,  según  su  clase  o 
significa  más  simple  es  datos  sobre  datos.  Esto  es,  datos  que  ámbito de la información que contienen. 
nos  proporcionan  datos  sobre  otros  datos.  Obviando  la  Los  elementos  descriptores  de  DC,  que  son  opcionales, 
redundancia  aparente,  es  la  definición  más  simple  que  nos  repetibles y pueden aparecer en cualquier orden, son 
otorga una idea general del concepto [8].  • Content (De contenido): 
Refinando  el  concepto,  podemos  decir  que  esos  datos  no  - Title (Título): nombre del recurso. 
son  datos  cualesquiera:  son  datos  llenos  de  significado,  que  - Subject  (Tema): tópico que describe el contenido 
están  asociados  y  que  pueden  describir  atributos  o  del recurso. 
características.  Un  ejemplo  típico  es  el  de  las  bibliotecas.  Un  - Description  (Descripción):  acerca  del  contenido 
libro  es  una  entidad  que  se  puede  describir  mediante  varios  del recurso. 
metadatos.  Si  para  archivar  un  libro  en  una  sección  - Type  (Tipo):  naturaleza  o  género  del  contenido 
determinada de la biblioteca utilizamos un código (llamémoslo  del recurso. 
ID),  dicho  código  podría  tener  asociado  algunos  metadatos,  - Source (Fuente): referencia un recurso del cual el 
como por ejemplo  actual se deriva. 
• Título: el título del libro representado con ID.  - Relation  (Relación):  referencia  a  un  recurso 
• Autor: el nombre de la persona que escribió el libro ID.  relacionado. 
• Fecha: el año de publicación del libro ID.  - Coverage  (Cubrimiento):  la  extensión  u  ámbito 
Y  así  como  este  ejemplo, podríamos  enumerar  muchos que  del contenido del recurso. 
se  asemejan,  como  los  inventarios  de  cualquier  cosa:  discos,  • Intellectual property (de propiedad intelectual): 
periódicos, artículos de un supermercado, entre otros.  - Creador  (Creador):  el  responsable  principal  de  la 
Los  metadatos  soportan  una  variedad  de  operaciones  creación del contenido del recurso. 
posibles.  Sus  usuarios  pueden  ser  tanto  humanos  como 
- Publisher  (Publicador):  el  responsable  de  la 
programas automatizados por computador. 
publicación del recurso. 

5
SAVIA 

- Contributor (Contribuyente): el o los responsables  • Basado  en  el  patrón  MVC  (aunque  sus  creadores  lo 
de realizar contribuciones al recurso.  llaman Model‐Template‐View). 
- Rights (Derechos): indica los derechos o permisos  • Mapeo de objetos‐relaciones que traduce modelos de 
que recaen sobre el recurso.  datos (escritos como clases en Python) y una base de 
• Instantiation (de instanciación):  datos  relacional,  bien  sea  para  MySQL,  PostgreSQL, 
- Date  (Fecha):  fecha  en  el  que  el  recurso  fue  Oracle  o  SQLite3  (Que  viene  como  componente  del 
manifestado por primera vez.  núcleo de Python). 
- Format  (Formato):  indica  la  naturaleza  de  la  • Generación  automática  y  dinámica  de  un  módulo  de 
manifestación física o digital del recurso.  administración con funciones CRUD. 
- Identifier  (Identificador):  referencia  única  al  • Un  servidor  web  (software)  liviano  para  pruebas, 
recurso, según su contexto.  independiente del que se tenga instalado en (Apache, 
- Language (Lenguaje): El lenguaje utilizado para el  Tomcat, ISS, etc.) 
contenido del recurso.  • Sistema de plantillas (templates) propio. 
Para  utilizar  DC  en  recursos  localizados  en  la  Internet,  • Sistema extensible de autenticaciones. 
podemos hacerlo mediante la inclusión de etiquetas <meta… />  • Serializaciones vía XML o JSON. 
y  <link…  />,  ubicadas  a  su  vez  dentro  de  las  etiquetas  • Soporte para sindicación (feeds) Atom o RSS. 
<head>…</head>, en documentos HTML o XHTML.  • Enrutamiento  de  URLs  basado  en  expresiones 
regulares. 
Django 
• Soporte para clases middleware. 
El entorno de desarrollo idóneo para SAVIA debía ser aquel  • Sistema de internacionalización. 
que mejor se comportará con las necesidades del proyecto. Así,  Esta  etapa  de  selección  fue  enriquecedora  para  los 
se plantearon tres alternativas:  integrantes  de  este  proyecto.  Fue  una  buena  excusa  para 
• Django, basado en Python.  indagar  y  conocer  más  los  diferentes  lenguajes  y  estructuras 
• Symfony, basado en PHP5.  para desarrollar un proyecto de software de este tipo. Además, 
• Ruby On Rails, basado en Ruby.  permitió  identificar  tópicos  relevantes  a  la hora  de  desarrollar 
Para  evaluar  cual  lenguaje  era  el  apropiado  se  tuvieron  en  un proyecto como SAVIA. 
cuenta  consideraciones  como  la  experiencia  de  los  Durante  el  proceso  de  desarrollo  comprobamos  que  la 
programadores  en  el  mismo,  la  documentación  disponible,  el  decisión por Django fue acertada, puesto que se acopló desde 
uso del patrón de diseño MVC (Modelo Vista Controlador). En  un principio a las necesidades existentes (y a las resultantes en 
la  Tabla  1  se  encuentra  detallado  el  proceso  de  selección  del  el  camino)  y  contamos  con  herramientas  embebidas  que 
framework para el desarrollo de SAVIA, donde 5 representa la  facilitaron el manejo de los datos y la manipulación de la parte 
nota más alta y 1 la más baja.  gráfica de la aplicación. 
 
Servicios web 
  FRAMEWORK
  TOPICO
Un  servicio  web  (en  inglés,  web  service)  es  un  conjunto  de 
DJANGO SYMFONY RUBY ON RAILS PONDERADO

 
Conocimiento previo del lenguaje  protocolos  y  estándares  que  sirven  para  intercambiar  datos 
1 3 1 20%
por parte de los programadores
  entre  aplicaciones.  Distintas  aplicaciones  de  software 
Acceso fácil, y en cantidad, a 
  documentación 
3 4 3 desarrolladas  en  lenguajes  de  programación  diferentes,  y 
15%

Antecedentes de proyectos sobre 
  almacenamiento virtual 4 2 2 ejecutadas  sobre  cualquier  plataforma,  pueden  utilizar  los 
30%

 
El lenguaje permite la programación  servicios web para intercambiar datos en redes de ordenadores 
4 4 5 15%
  multiparadigma como  Internet.  La  interoperabilidad  se  consigue  mediante  la 
Implementa el patrón de diseño 
  5 4 4 adopción  de  estándares  abiertos.  Las  organizaciones  OASIS  y 
20%
Modelo Vista Controlador (MVC)
  TOTAL 3,45 3,2 2,8
W3C  son  los  comités  responsables  de  la  arquitectura  y 
100%
reglamentación  de  los  servicios  web.  Para  mejorar  la 
Tabla. 1  Proceso de selección del entorno de desarrollo.   interoperabilidad entre distintas implementaciones de servicios 
Teniendo en cuenta los resultados obtenidos, Django resultó  web se ha creado el organismo WS‐I, encargado de desarrollar 
vencedor y fue elegido como el entorno de desarrollo propicio.  diversos  perfiles  para  definir  de  manera  más  exhaustiva  estos 
Algunas de las características principales de Django son  estándares [9]. 

6
SAVIA 

A. Ventajas de los servicios web  Hay muchas convenciones establecidas de facto y otras tantas 
• Aportan  interoperabilidad  entre  aplicaciones  de  que, a pesar de ser originadas por las autoridades virtuales, no 
software  independientemente  de  sus  propiedades  o  son  ampliamente  conocidas  ni  aplicadas.  XML  nace  como  una 
de las plataformas sobre las que se instalen.  propuesta  para  solucionar  este  inconveniente,  pues  pretende 
• Los  servicios  web  fomentan  los  estándares  y  poner  algo  de  orden  y  de  reglas  comunes  para  el  intercambio 
protocolos  basados  en  texto,  que  hacen  más  fácil  de datos. 
acceder a su contenido y entender su funcionamiento.  A. ¿Qué es XML? 
• Al  apoyarse  en  HTTP,  los  servicios  web  pueden 
El  lenguaje  de  marcas  extensible,  o  XML  por  sus  siglas  en 
aprovecharse de los sistemas de seguridad firewall sin 
ingles  (eXtensible  Markup  Language),  es una  especificación  de 
necesidad de cambiar las reglas de filtrado. 
propósito  general  para  la  creación  de  lenguajes  de  marcas 
• Permiten  que  servicios  y  software  de  diferentes 
personalizados  con  capacidad  de  ser  extensible  (un  usuario 
compañías ubicadas en diferentes lugares geográficos 
puede definir sus propios elementos), utilizada para codificar y 
puedan  ser  combinados  fácilmente  para  proveer 
serializar  datos.  Una  de  sus  metas  principales  es  la  de  brindar 
servicios integrados. 
ayuda  a  los  sistemas  de  información  para  compartir  datos 
• Permiten  la  interoperabilidad  entre  plataformas  de  organizados y estructurados, particularmente vía Internet. Fue 
distintos fabricantes por medio de protocolos estándar  desarrollado y es mantenido por la W3C y su última versión es 
y  abiertos.  Las  especificaciones  son  gestionadas  por  la 1.1 (liberada en 2006) [10]. 
una  organización  abierta,  la  W3C,  por  tanto  no  hay  Cuando  realizamos  un  documento  XML  (su  extensión  de 
secretismos  por  intereses  particulares  de  fabricantes  archivo  es  .xml),  podemos  observar  que  hay  dos  niveles  de 
concretos  y  se  garantiza  la  plena  interoperabilidad  correctitud:  la  correctitud  en  la  forma  (un  documento  bien 
entre aplicaciones.  formado: que cumple con las reglas de sintaxis del lenguaje) y 
B. Desventajas de los servicios web  la correctitud en el significado (un documento válido: se apega 
a unos normas de semántica). 
• Para  realizar transacciones  no  pueden compararse  en 
su grado de desarrollo con los estándares abiertos de  B. Ventajas de XML 
computación  distribuida  como  CORBA  (Common  Entre  las  ventajas  que  proporciona  este  lenguaje  podemos 
Object Request Broker Architecture).  encontrar 
• Su  rendimiento  es  bajo  si  se  compara  con  otros  • Soporte  de  Unicode  para  la  representación  adecuada 
modelos  de  computación  distribuida,  tales  como  RMI  de datos. 
(Remote  Method  Invocation),  CORBA  o  DCOM  • Se pueden representar estructuras de datos comunes 
(Distributed Component Object Model). Es uno de los  como los árboles, los registros y las listas. 
inconvenientes  derivados  de  adoptar  un  formato 
• Su formato para codificar nuevos elementos hace casi 
basado en texto. Y es que entre los objetivos de XML 
evidente su estructura. 
no  se  encuentra  la  concisión  ni  la  eficacia  de 
• Es  estricto  en  la  sintaxis,  promoviendo  las  buenas 
procesamiento. 
prácticas. 
• Al  apoyarse  en  HTTP,  pueden  esquivar  medidas  de 
• Es extensible. 
seguridad  basadas  en  firewall  cuyas  reglas  tratan  de 
• Se basa en estándares internacionales. 
bloquear o auditar la comunicación entre programas a 
• Es un lenguaje independiente de la plataforma. 
ambos lados de la barrera. 
C. Desventajas de XML 
XML 
Algunas de las desventajas que conlleva el uso de XML son 
Internet  definitivamente  ha  sido  la  revolución  más  grande 
sufrida  por  las  redes  de  comunicaciones.  Ahora  son,  en  gran  • La  estructura  jerárquica  de  los  datos  es  limitada  en 
parte,  gigantes,  abiertas  y  gratuitas,  sentando  las  bases  comparación con un modelo orientado a objetos. 
fundamentales para la convergencia de masas ávidas de crear,  • Expresar relaciones entre objetos solapados puede ser 
compartir y consultar contenidos. Es bastante evidente que así,  difícil. 
en  estas  condiciones,  los  problemas  son  fáciles  de  hallar.  La  • Fomenta estructuras de datos no relacionales y, por lo 
reunión de muchísima gente en las redes posibilita la dificultad  tanto, no normalizadas. 
en la intercomunicación utilizando un lenguaje claro y unificado. 

7
SAVIA 

RIA  JQUERY 
Las  RIAs  (o  Aplicaciones  Ricas  en  Internet)  son  aplicaciones  jQuery  es  una  biblioteca  o  framework  de  Javascript,  creada 
web  que  tienen  características  y  funcionalidades  de  una  inicialmente por John Resig, que permite simplificar la manera 
aplicación de escritorio común [11].  de  interactuar  con  los  documentos  HTML,  manipular  el  arbol 
Normalmente  en  las  aplicaciones  web  hay  una  recarga  DOM,  manejar  eventos,  desarrollar  animaciones  y  agregar 
continua  y  total  de  páginas  cada  vez  que  el  usuario  pulsa  un  interacción  con  la  tecnología  AJAX  a  páginas  web  [14].  Fue 
enlace. De esta forma se produce un tráfico muy alto entre el  presentada en enero de 2006 en el BarCamp NYC. 
cliente  y  el  servidor,  causando  la  recarga  de  la  misma  página,  jQuery,  al  igual  que  otras  bibliotecas,  ofrece  una  serie  de 
con  todos  sus componentes,  con  un  mínimo  cambio.  También  funcionalidades  basadas  en  Javascript  que  de  otra  manera 
tienen poca capacidad multimedia.  requerirían  de  mucho  más  código.  Es  decir,  con  las  funciones 
En  los  entornos  RIA  no  se  producen  recargas  de  página,  ya  propias  de  esta  biblioteca  se  logran  grandes  resultados  en 
que  desde  el  principio  se  carga  toda  la  aplicación  y  sólo  se  menos tiempo y espacio. 
produce  comunicación  con  el  servidor  cuando  se  necesitan  Entre  las  principales  características  que  ofrece  jQuery 
datos  externos  como  datos  de  una  Base  de  Datos  o  de  otros  tenemos 
ficheros externos [12].  • Selección de elementos DOM. 
Su  mayor  desventaja  es  que  dependen  totalmente  de  que  • Interactividad  y  modificaciones  del  árbol  DOM, 
exista  una  rápida  y  estable  conexión  a  Internet  (algo  estándar  incluyendo soporte para CSS 1‐3 y un plugin básico de 
hoy en día para algunos).  XPath. 
• Manipulación de eventos. 
AJAX 
• Manipulación de la hoja de estilos CSS. 
AJAX,  acrónimo  de  Asynchronous  JavaScript  And  XML  • Efectos y animaciones. 
(JavaScript asíncrono y XML), es una técnica de desarrollo web  • Funcionalidades de AJAX. 
para  crear  aplicaciones  interactivas  o  RIA.  Se  ejecutan  en  el 
• Utilidades  varias  como  obtener  información  del 
navegador de los usuarios y mantiene comunicación asíncrona 
navegador, operar con Objetos y Arrays, función trim() 
con  el  servidor  en  segundo  plano;  de  esta  forma  es  posible 
(elimina los espacios en blanco del principio y final de 
realizar  cambios  sobre  la  misma  página  sin  necesidad  de 
una cadena de caracteres), etc. 
recargarla. Esto significa aumentar la interactividad, velocidad y 
• Compatible con los navegadores Firefox 2.0+, Internet 
usabilidad en la aplicación [13]. 
Explorer 6+, Safari 2.0.2+ y Opera 9+. 
AJAX es una combinación de cuatro tecnologías ya existentes: 
 
• XHTML  (o  HTML)  y  hojas  de  estilos  en  cascada  (CSS) 
para el diseño que acompaña a la información.  III. PROGRAMACIÓN EXTREMA, ¿PARA QUÉ ES? Y ¿CÓMO SE 
• Document  Object  Model  (DOM)  accedido  con  un 
DEBE EJECUTAR? 
lenguaje  de  scripting  por  parte  del  usuario, 
especialmente  implementaciones  ECMAScript  como 
JavaScript  y  JScript,  para  mostrar  e  interactuar  Gran parte de los programadores tienen cierta inclinación en 
dinámicamente con la información presentada.  discusiones técnicas: hablan de lenguajes de programación, de 
• El  objeto  XMLDisponible  en  httpRequest  para  técnicas  de  programación,  de  entornos  de  desarrollo  o  de 
intercambiar  datos  asincrónicamente  con  el  servidor  editores de recursos. 
web. En algunos frameworks y en algunas situaciones  Pero  no  tienen  en  cuenta  un  tema  que  puede  crear 
concretas,  se  usa  un  objeto  iframe  en  lugar  del  inconvenientes  si  no  se  enfrenta  de  la  manera  correcta:  la 
XMLDisponible  en  httpRequest  para  realizar  dichos  Ingeniería  de  Software,  la  forma  en  que  se  debe  desarrollar 
intercambios.  software. 
• XML  es  el  formato  usado  comúnmente  para  la  Sobre  cómo  hacer  software  existe  un  gran  número  de 
transferencia  de  vuelta  al  servidor,  aunque  cualquier  autores  y  teorías  propuestas.  De  forma  breve  se  explicará  en 
formato  puede  funcionar,  incluyendo  HTML  qué  consiste  la  metodología  de  Programación  Extrema  y  las 
preformateado, texto plano, JSON y hasta EBML.  ventajas  que  podemos  encontrar  del  uso  de  esta  metodología 
Como  el  DHTML,  LAMP  o  SPA,  AJAX  no  constituye  una  en SAVIA. 
tecnología  en  sí,  sino  que  es  un  término  que  engloba  a  un   
grupo de éstas que trabajan conjuntamente [13].   

8
SAVIA 

  mayor  que  si  se  toma  la  decisión  de  desarrollarlo  de 
nuevo. 
A. ¿Qué es? 
• Falsa  riqueza:  El  software  hace  muchas  cosas 
La  metodología  de  Programación  Extrema,  o  XP    por  sus  técnicamente  muy  interesantes  y  divertidas,  pero  no 
siglas  en  inglés  (eXtreme  Programming)  [15]  nace  como  una  resuelven  el  problema  del  cliente,  ni  hace  que  éste 
nueva  disciplina  de  desarrollo  de  software  hace  gane más dinero. 
aproximadamente  unos  diez  años,  y  ha  causado  un  gran  • Cambios  de  personal:  Después  de  unos  años  de 
revuelo  entre  el  colectivo  de  programadores  del  mundo.  Kent  trabajo  los  programadores  comienzan  a  odiar  el 
Beck,  su  autor,  es  un  programador  que  ha  trabajado  en  proyecto y lo abandonan. 
múltiples  empresas  y  que  actualmente  lo  hace  como  Todos estos problemas se pueden eliminar o minimizar usando 
programador  en  la  conocida  empresa  automovilística  la metodología XP. 
DaimlerChrysler. Con sus teorías ha conseguido el respaldo de 
gran  parte  de  la  industria  del  software  y  el  rechazo  de  otra  C. Los objetivos de XP 
parte.  La  programación  extrema  se  basa  en  la  simplicidad,  la  El  objetivo  fundamental  de  XP  es  muy  simple  y  está 
comunicación  y  el  reciclado  continuo  de  código,  para  algunos  enfocado  en  una  meta  precisa:  la  satisfacción  del  cliente.  Esta 
no es más que aplicar pura lógica.  metodología trata de dar al cliente el software que él necesita y 
  cuando lo necesita. Por tanto, se debe responder muy rápido a 
las necesidades del cliente, incluso cuando los cambios sean al 
final de ciclo de la programación. 
El  segundo  objetivo  es  potenciar  al  máximo  el  trabajo  en 
grupo.  Tanto  los  jefes  de  proyecto,  los  clientes  y 
desarrolladores,  son  parte  del  equipo  y  están  involucrados  en 
el desarrollo del software. 
D. Las cuatro variables definidas por XP 
XP define cuatro variables para proyectos de software: coste, 
tiempo, calidad y ámbito. 
Además  de  estas  cuatro  variables,  Beck  propone  que  sólo 
tres puedan ser establecidas por las fuerzas externas (jefes de 
Figura 2.  Ciclo de vida del proceso XP.  proyecto y clientes), mientras que el valor de la cuarta variable 
debe  ser  establecido  por  los  programadores  en  función  de  las 
B. Inconvenientes del desarrollo de software convencional 
otras tres. 
Entre  los  principales  problemas  que  los  programadores  se 
encuentran  en  el  momento  en  que  están  desarrollando  E. Fases de la Metodología 
software tenemos:  Existen  diversas  prácticas  inherentes  al  desarrollo  de 
• Retrasos  en  la  planificación:  Llegada  la  fecha  de  software. 
entregar el software éste no está disponible.  • Planificación. 
• Sistemas  deteriorados: El software se ha creado pero  XP  plantea  la  planificación  como  un  permanente  dialogo 
después  de  un  par  de  año  el  coste  de  su  entre  las  partes,  la  empresarial  y  la  técnica.  Las  personas 
mantenimiento  es  tan  complicado  que  del negocio necesitan determinar: 
definitivamente se abandona su producción.  Ámbito: ¿Qué es lo que el software debe de resolver para 
• Tasa  de  defectos:  El  software  se  pone  en  producción  que este genere valor? 
pero los defectos son tantos que nadie lo usa.  Prioridad: ¿Qué debe ser hecho en primer lugar? 
• Requerimientos  mal  comprendidos:  El  software  no  Composición  de  versiones:  ¿Cuánto  es  necesario  hacer 
resuelve  los  requerimientos  planificados  inicialmente  para saber si el negocio va mejor con software que sin él? 
con el cliente.  En  cuanto  el  software  aporte  algo  al  negocio  se  deben 
• Cambios  de  negocio:  El  problema  que  resolvía  el  tener lista las primeras versiones. 
software  ha  cambiado  y  el  coste  de  adaptarlo  es 

9
SAVIA 

Fechas de versiones: ¿Cuáles son las fechas en la presencia  su  papel:  uno  codifica  en  el  ordenador  y  piensa  la  mejor 
del  software  o  parte  del  mismo  pudiese  marcar  la  manera  de  hacerlo,  el  otro  piensa  más  estratégicamente, 
diferencia?  ¿Va  a  funcionar?,  ¿Puede  haber  pruebas  donde  no 
El  personal  del  negocio  no  puede  tomar  en  vació  estas  funcione?, ¿Hay forma de simplificar el sistema global para 
decisiones,  y  el  personal  técnico  tomará  las  decisiones  que el problema desaparezca? 
técnicas  que  proporcionan  la  metería  prima  para  las  El  emparejamiento  es  dinámico,  puedo  estar  emparejado 
decisiones del negocio.  por la mañana con una persona y por la tarde con otra, si 
Estimaciones:  ¿Cuánto  tiempo  lleva  implementar  una  tienes un trabajo sobre un área que no conoces muy bien 
característica?  puedes  emparejarte  con  otra  persona  que  si  conozca  ese 
Consecuencias:  Informar  sobre  las  consecuencias  de  la  área.  Cualquier  miembro  del  equipo  se  puede  emparejar 
toma de decisiones por parte del negocio.   con cualquiera. 
Procesos: ¿Cómo se organiza el trabajo y el equipo?  Propiedad  colectiva:  Cualquiera  que  crea  que  puede 
Programación  detallada:  Dentro  de  una  versión  ¿Qué  aportar valor al código en cualquier módulo puede hacerlo, 
problemas se resolverán primero?  ningún  miembro  del  equipo  es  propietario  del  código.  Si 
Pequeñas  versiones:  Cada  versión  debe  de  ser  tan  alguien  quiere  hacer cambios  en  el código  puede hacerlo. 
pequeña  como  fuera  posible,  conteniendo  los  Si  hacemos  el  código  propietario,  y  necesitamos  de  su 
requerimientos de negocios más importantes, las versiones  autor para que lo cambie entonces estaremos alejándonos 
tiene  que  tener  sentido  como  un  todo,  no  se  puede  cada  vez  mas  de  la  comprensión  del  problema,  si 
implementar media característica y lanzar la versión.  necesitamos  un  cambio  sobre  una  parte  del  código  lo 
• Diseño  hacemos  y  punto.  XP  propone  un  propiedad  colectiva 
Metáfora:  Una  metáfora  es  una  historia  que  todo  el  sobre el código nadie conoce cada parte igual de bien pero 
mundo puede contar a cerca de cómo funciona el sistema.  todos  conoce  algo  sobre  cada  parte,  esto  nos  preparará 
Algunas  veces  se  pueden  encontrar  metáforas  sencillas  para  la  sustitución  no  traumática  de  cada  miembro  del 
“Programa de gestión de compras, ventas, con gestión de  equipo. 
cartera  y  almacén”.  Las  metáforas  ayudan  a  cualquier  Integración  continúa:  El  código  se  debe  integrar  como 
persona a entender el objeto del programa.  mínimo  una  vez  al  día,  y  realizar  las  pruebas  sobre  la 
Diseño  sencillo:  El  diseño  adecuado  para  el  software  es  totalidad  del  sistema.  Una  pareja  de  programadores  se 
aquel que:  encargara  de  integrar  todo  el  código  en  una  maquina  y 
1. Funciona con todas las pruebas.  realizar  todas  las  pruebas  hasta  que  estas  funcionen  al 
2. No tiene lógica duplicada.  100%. 
3. Manifiesta  cada  intención  importante  para  los  Estándares  de  codificación:  Si  los  programadores  van  a 
programadores.  estar tocando partes distintas del sistema, intercambiando 
4. Tiene el menor número de clases y métodos.  compañeros,  haciendo  refactoring,  se  debe  establecer  un 
• Desarrollo.  estándar  de  codificación  aceptado  e  implantado  por  todo 
Recodificación:  Cuando  se  implementan  nuevas  el equipo. 
características  en  los  programas  se  plantea  la  manera  de  • Pruebas 
hacerlo  lo  más  simple  posible,  después  de  implementar  No debe existir ninguna característica en el programa que 
esta  característica,  nos  preguntamos  cómo  hacer  el  no haya sido probada, los programadores escriben pruebas 
programa  más  simple  sin  perder  funcionalidad,  este  para  chequear  el  correcto  funcionamiento  del  programa, 
proceso  se  le  denomina  recodificar  o  refactorizar  los  clientes  realizan  pruebas  funcionales.  El  resultado  un 
(refactoring).  Esto  a  veces  nos  puede  llevar  a  hacer  más  programa  más  seguro  que  conforme  pasa  el  tiempo  es 
trabajo del necesario, pero a la vez estaremos preparando  capaz de aceptar nuevos cambios. 
nuestro  sistema  para  que  en  un  futuro  acepte  nuevos 
Aplicando la metodología XP en SAVIA 
cambios  y  pueda  albergar  nuevas  características.  No 
debemos  de  recodificar  ante  especulaciones  si  no  solo  Después de entender en qué consiste la metodología XP, fue 
cuándo el sistema lo pida.  necesario adaptarla al desarrollo de SAVIA. 
Programación  por  parejas:  Todo  el  código  de  producción  La  metodología  se  acopla  muy  bien  a  la  naturaleza  del 
lo escriben dos personas frente al ordenador, con un sólo  proyecto,  y  uno  de  sus  puntos  fuertes  se  refleja  de  manera 
ratón y un sólo teclado. Cada miembro de la pareja juega  clara:  XP  está  diseñado  para  grupos  pequeños  de 

10
SAVIA 

programadores,  haciendo  énfasis  en  el  desarrollo  en  parejas.  permiten que el seguimiento de la misma se lleve de la mejor 


En este caso, SAVIA está diseñado para ser desarrollado por dos  manera.  Estos  documentos  anexos  tales  como  Historias  de 
personas.  Usuario [17], Modelo de la Base de Datos [18], Planificación de 
Fueron  planificadas  entonces  cuatro  iteraciones,  con  una  las  Iteraciones  [19],  Diagramas  de  Navegación  [20]  y 
duración  de  45  días  cada  una,  dentro  de  las  cuales  se  Planificación  de  las  pruebas  [21]  se  encuentran  anexos  a  este 
abordaron  los  cuatro  procesos  que  normalmente  se  hacen  en  documento. 
cualquier  desarrollo  de  software:  Análisis,  Diseño,   
Implementación y Pruebas. 
Para  la  iteración  1  se  planteó  realizar  el  modulo  de  IV. ESTADO DEL ARTE 
administración  de  usuarios,  que  incluye  el  proceso  de  crear, 
modificar  o  eliminar  las  cuentas  que  los  usuarios  tengan  en  Un  aspecto  que  se  debe  tomar  en  cuenta  para  procurar  el 
SAVIA,  además  de  la  gestión  de  los  perfiles  de  usuarios  y  la  espíritu  innovador  de  este  proyecto  es  recurrir  de  manera 
gestión de la contraseña.  asidua  a  un  marco  contextual,  de  manera  general  y  a  nivel 
En  la  iteración  2  se  desarrolló  la  comunidad  virtual  que  internacional,  para  tener  una  buena  idea  de  las  prestaciones 
brinda  SAVIA,  incluyendo  la  gestión  de  relaciones  de  amistad  que  ofrecen  algunas  aplicaciones  web  orientadas  en  la  misma 
entre  los  usuarios,  un  sistema  básico  de  mensajes  internos  dirección. 
entre  dos  usuarios  (que  son  amigos)  y  la  opción  de  compartir  Es importante recordar las limitaciones de este proyecto de 
archivos entre amigos.  grado  para  no  generar  falsas  expectativas  en  cuanto  a  las 
La  iteración  3  comprendió  lo  relacionado  con  el  funcionalidades finales que incorporará este proyecto. 
almacenamiento de los archivos de los usuarios, que incluye la  Las  aplicaciones  web  consultadas  y  examinadas  para  este 
subida  y  alojamiento  de  nuevos  archivos  y  la  descarga  y  la  propósito son: 
administración  de  los  archivos  existentes.  También,  se 
construyó  la  estructura  de  metadatos  para  posibilitar  la  [Link] 
búsqueda  de  los  archivos  y  la  generación  de  información  Omnidrive  (Figura  3)  no  sólo  permite  añadir  todos  los 
estadística.  archivos  del  computador,  sino  también  todos  los  archivos  y 
Finalmente  en  la  iteración  4  fue  desarrollado  el  sistema  de  datos  de  diferentes  aplicaciones  web.  Puede  intercambiar 
comunicaciones  basado  en  servicios  web,  que  permite  la  archivos y datos entre las aplicaciones que utilizan Omnidrive, y 
integración  de  algunas  funcionalidades  de  SAVIA  con  también  fácilmente  compartir  y  publicar  archivos  con  un  solo 
aplicaciones externas.  clic.  Omnidrive  es  multiplataforma  y  está  disponible  tanto  en 
La experiencia del uso de la metodología XP fue gratificante  Windows  como  en  Mac,  y  también  proporciona  un  navegador 
desde  el  punto  de  vista  del  trabajo  en  equipo  pues  está  basado  en  la  versión  que  emula  un  explorador  de  archivos  de 
pensada  para  programación  por  parejas  (como  es  el  caso  de  escritorio. 
SAVIA). Fomenta que cada uno de los programadores realice un   
módulo de la aplicación  y, una vez finalizado, pase a manos del   
otro programador para su revisión total con el fin de encontrar   
posibles  fallas  y  corregirlas.  Así,  antes  de  estar  listo  para  la   
entrega  a  los  usuarios  finales,  el  producto  sufre  múltiples   
procesos de retroalimentación interna que minimizan el tiempo   
y los costos de desarrollo.   
Otra de las bondades de XP es la flexibilidad en la generación   
de  documentación.  La  mayoría  de  las  metodologías  son  muy 
 
estrictas  en  cuanto  a  documentación  se  refiere,  llegando  al 
punto  de  generar  documentos  innecesarios.  Para  XP  la   
documentación  que  se  debe  generar  en  un  desarrollo  de 
 
software es simplemente la necesaria para modelar el proyecto 
que se va a ejecutar, lo que permite un desarrollo ágil y eficaz.   
Es necesario destacar que aunque la metodología XP es ágil y 
 
la  documentación  generada  no  es  tan  extensa  como  en  otras 
metodologías,  se  deben  realizar  algunos  documentos  que  Figura 3. Página principal de [Link]. 

11
SAVIA 

Algunas  de  las  características  para  destacar  de  Omnidrive  [Link] 


son  Xdrive  Desktop  Lite  brinda  facilidad  para  poder  gestionar  y 
• Acceder  a  todos  los  archivos  y  datos  desde  cualquier  organizar todos los documentos, fotos, música, vídeos y más en 
lugar.  un disco duro personal online.  
• Integrar  los  archivos  y  los  datos  de  otras  aplicaciones  Entre sus funciones están 
en Omnidrive.  • Crear  nuevas  carpetas  para  organizar  los  cuadros  de 
• Compartir  archivos  a  otro  usuario  o  una  dirección  de  familiares o amigos. 
correo electrónico con sólo pulsar un botón.  • La  posibilidad  de  hacer  copias  adicionales  de  los 
• Publicar  música,  vídeo  o  fotos  a  la  web  y  vincular  a  documentos fiscales. 
ellos dentro de los foros, blogs o sitios web.  • Cargar  archivos  de  música  por  lo  que  estarán  a 
Omnidrive  es  gratuita  para  un  máximo  de  1GB  de  disposición  desde  cualquier  lugar:  no  más  problemas 
almacenamiento.   con discos compactos. 
La  interfaz  principal  de  Xdrive  es  similar  a  la  mostrada  por  la 
[Link] 
Figura 5. 
[Link]  (Figura  4)  es  un  almacenamiento  en  línea  e   
intercambio de servicios que le permite acceder a los archivos 
desde  cualquier  lugar.  Con  Box,  se  puede  tener  acceso  a 
importantes  documentos  de  un  computador  de  escritorio, 
portátil  o  incluso  teléfono  móvil.  Una  vez  que  ha  subido  los 
archivos  al  almacenamiento  en  línea  de  Box,  podrán 
compartirse  con  cualquiera  y  en  cualquier  momento.  Algunas 
de sus características son 
 

Figura 5. Página principal de [Link]

V. ESTO ES SAVIA 

Hacer la mejor experiencia de usuario posible 
Con  esta  idea  en  mente  desde  un  principio  y  siempre 
pensando en el cumplimiento total de los objetivos planteados, 
en  la  simplificación  y  potencialización  al  máximo  de  las 
funcionalidades,  en  la  intuitividad  y  la  retroalimentación  de  la 
Figura 4. Página principal de [Link].  interfaz gráfica, en la eficiencia de las tareas de procesamiento, 
utilizando  como  guía  continua  la  metodología  XP  y  aplicando 
• Enviar archivos a cualquier persona.  los  conceptos  y  tecnologías  detalladas  en  las  secciones 
• Guardar copias de seguridad de los archivos.  anteriores,  SAVIA  comienza  su  camino  desde  ser  un  proyecto 
• Subir archivos vía Email.  práctico  con  buenas  ideas  para  convertirse  en  un  producto 
• Publicar en páginas web con Box.  robusto, amigable, funcional y versátil. 
   

12
SAVIA 

El  segundo  rol,  asignado  por  defecto  a  todos  los  demás 


usuarios,  es  el  de  usuario  final.  Nace  desde  un  formulario  de 
registro  (que  cuenta  con  un  código  de  seguridad  anti‐spam  y 
que  genera  un  mensaje  de  confirmación  enviado  por  correo 
electrónico)  que  es  de  libre  acceso  y  que  necesita  ser 
diligenciado en su totalidad con datos reales para garantizar el 
éxito de la solicitud. Una vez sea creada y activada la cuenta de 
usuario  se  otorga  el  acceso  al  sistema  (Figura  6)  y  a  sus 
características  partiendo  desde  la  interfaz  de  bienvenida, 
mostrada  en  la  Figura  7.  Cada  usuario  final  posee  control 
absoluto  de  su  información  (Figura  8)  y  de  los  archivos  que 
suba,  así  como  acceso  limitado  a  datos  de  otros  usuarios  y 
archivos públicos. 
Figura 6. Formulario de acceso a SAVIA, utilizando el tema por   
defecto. 
Detalles generales de la implementación 
Diseñada  bajo  principios  básicos  de  buen  gusto  y  estilo 
gráfico,  con  una  maquetación  del  sitio  de  acuerdo  a  las 
tendencias actuales de la comunidad desarrolladora e inspirada 
en  productos  exitosos  similares,  SAVIA  fue  desarrollado  bajo 
una  estructura  coherente  (en  cuanto  a  colores,  fuentes  y 
decoración general), separando y estructurando los contenidos 
(sistema  de  plantillas  de  Django),  las  funcionalidades  del  lado 
cliente y hojas de estilos propias de cada sección. 
El  sistema  de  formularios,  basado  en  los  artefactos 
proporcionados por Django y jQuery, cuenta con dos niveles de 
seguridad.  La parte  del  cliente  evita  peticiones  al  servidor  con  Figura 7. Interfaz de bienvenida de un usuario registrado. 
campos  vacíos  e  inválidos,  desplegando  las  alertas  visuales 
necesarias  en  el  caso  de  existir  algún  error.  Superado  este 
primer  filtro,  el  servidor  analiza  a  fondo  cada  campo  de 
acuerdo  a  su  especificación  interna  y  procesa  la  información 
que  contiene  Una  vez  terminado  el  procesamiento  la 
retroalimentación  visual  con  el  resultado  de  la  operación 
solicitada  se muestra al usuario. 
Iteración 1: Modulo de usuarios 
El  usuario  final  de  SAVIA  es  el  componente  principal  del 
sistema: sin usuarios, no hay sistema. 
Como  cualquier  otro  sistema  dependiente  de  usuarios,  hay 
dos  roles  disponibles  para  la  interacción.  El  primero  es  el 
Administrador  del  sistema  (conocido  internamente  con  el 
Figura 8. Gestión de una cuenta de usuario. 
nombre de usuario savia), encargado de la gestión total de las 
tareas  disponibles.  Su  misión  es  el  control  del  sistema  con  Funcionalidades disponibles en este módulo 
autonomía  y  privilegios  avanzados  desde  una  interfaz  tipo 
• Creación,  validación  y  activación  de  cuentas  de 
back‐end,  construida  de  manera  automática  por  Django.  Este 
usuario. 
usuario es creado conjuntamente con la base de datos y debe 
• Modificación  y  recuperación  (cuando  sea  necesario) 
ser único. 
de la contraseña de una cuenta de usuario. 

13
SAVIA 

• Selección del tema preferido (el color disponible para  todos los mensajes son almacenados. Este sistema de mensajes 
el  marco  de  la  interfaz  gráfica)  para  visualizar  los  también es utilizado de manera automática e interna cuando es 
contenidos.  necesario notificar a un usuario de una operación solicitada al 
• Gestión de la información personal disponible, tanto a  sistema. 
nivel  público como  a nivel  privado,  desplegada  en  los   
perfiles de usuarios. 
• Gestión de una imagen representativa de la cuenta de 
usuario, o avatar. 
• Gestión  de  la  información  sobre  la  ubicación 
geográfica de un usuario a través de Google Maps [22]. 
• Visualización  del  perfil  público  de  cualquier  usuario 
registrado,  con  información  básica  dispuesta  y 
autorizada. 
• Eliminación  total,  voluntaria  y  accesible  en  cualquier 
momento, de la cuenta de usuario. 
 
Iteración 2: Modulo de relaciones 
Figura 10. Envío de mensajes entre amigos.
El modulo de relaciones surge como una idea para hacer que 
SAVIA  sea  algo  más  que  un  sistema  personal  de  El  sistema  de  búsqueda  de  usuarios  permite  localizar  a 
almacenamiento.  Teniendo  como  estructura  general  el  cualquier  usuario  en  el  sistema  a  partir  de  un  formulario  de 
concepto  de  usuario  final,  surge  como  una  idea  innovadora  el  parámetros básicos y conocerlo a través de su perfil público de 
concepto  de  relaciones:  una  comunidad  de  usuarios  usuario.  Estando  aquí,  es  posible  solicitar  una  amistad  (entre 
interconectada entre sí por medio de un sistema de amistades  dos usuarios sin vínculo) o ver la versión extendida del mismo 
y mensajes internos.  perfil (para usuarios que ya son amigos). 
En  este  contexto,  una  amistad  es  el  vinculo  creado  a  partir 
del  binomio  solicitud  creada  /  solicitud  aceptada  entre  dos  Funcionalidades disponibles en este módulo 
usuarios  registrados  que  toman  contacto  entre  sí  a  través  del  • Gestión  de  las  solicitudes  de  amistad  entre  dos 
sistema  de  búsqueda  de  perfiles  públicos.  Un  usuario  puede  usuarios, con la posibilidad de envío desde una parte y 
tener tantos amigos como desee (Figura 9) e iniciar la relación  el veredicto (aprobación o rechazo) de la otra. 
en dos vías: realizando las solicitudes de amistad que quiera, o  • Gestión  de  amistades  establecidas  entre  usuarios, 
aprobando  (o  rechazando  si  es  el  caso)  las  solicitudes  de  para marcar como amistad destacada o para terminar 
amistad que reciba de otros usuarios.  una relación unilateralmente. 
  • Búsqueda  de  usuarios  registrados  en  el  sistema  y 
visualización de perfiles públicos y perfiles extendidos. 
• Gestión  de  mensajes,  bien  sea  como  comunicación 
privada  entre  dos  amigos  o  como  notificación  del 
administrador. 
Iteración 3: Modulo de almacenamiento 
Está  claro:  la  esencia  de  SAVIA  es  la  gestión  de  archivos. 
Siendo  el  componente  principal  del  desarrollo,  el  módulo  de 
almacenamiento  se  encarga  de  todo  el  proceso  que  involucra 
los archivos personales de un usuario. 
Figura 9. Listado de amigos de un usuario. 
El  primer  paso  es  la  subida  de  un  archivo  a  través  de  un 
Así mismo, un mensaje es una comunicación textual directa  formulario  tipo  AJAX,  como  lo  describe  la  Figura  11.  Cada 
y  privada  entre  dos  usuarios  enlazados  previamente  entre  sí  archivo debe cumplir con tres normas básicas de formato para 
como amigos. No hay límite en el número de mensajes que se  ser  válido:  tener  la  extensión  adecuada,  no  sobrepasar  ni  el 
envían (Figura 10) ni en el número de mensajes que se reciben:  límite  de  tamaño  máximo  por  archivo  ni  el  límite  de  espacio 

14
SAVIA 

asignado  libre  y  contar  con  metadatos  correctos  a  nivel  de  cuenta  de  usuario  tienen  como  destino  (a  nivel  lógico)  una 
caracteres.  entidad virtual denominada espacio. 
Cabe  destacar  que  a  nivel  interno  del  sistema  hay  Soportada totalmente a nivel tecnológico por AJAX y con un 
disponibles  variables  parametrizables  que  determinan  la  lista  tamaño asignado por defecto, un espacio asociado (Figura 13) a 
de  extensiones  aceptadas  de  archivos,  los  tamaños  máximos  un  usuario  es  el  lugar  único  y  exclusivo  de  control  de  los 
permitidos, la ubicación física de los archivos almacenados y la  archivos  disponibles.  Desde  aquí  es  posible  la  búsqueda  de 
posibilidad  de  realizar  copias  de  seguridad,  como  medida  de  archivos,  la  visualización  jerárquica  y  la  gestión  individual  de 
redundancia de datos en caso de emergencias.  cada uno. Es una vista divida en tres grandes secciones: el árbol 
de  navegación,  el  visualizador  de  contenidos  de  la  carpeta 
actual y el visualizador del archivo actual seleccionado.  
 

Figura 11. Formulario para subir un archivo.  Figura 13. Vista general de un espacio, en vista de modo amplio. 
Un  archivo  almacenado  cuenta  con  información  asociada  Al lado izquierdo y ocupando la tercera parte del ancho de la 
interfaz  gráfica,  en  la  sección  del  árbol  de  navegación  se 
para  permitir  su  localización  lógica  dentro  de  una  cuenta  de 
usuario:  el  esquema  de  metadatos.  Posibilitando  la  búsqueda  disponen  los  archivos  de  manera  jerárquica  con  una 
de  archivos  y  la  generación  de  estadísticas,  y  tomando  como abstracción  del  concepto  de  carpeta  contenedora  (no  se 
base  los  elementos  descriptores  del  estándar  Dublin  Core  permiten  carpetas  anidadas),  organizados  alfabéticamente. 
(presentado en la sección II de este documento), los principales  Cada  archivo  subido,  por  defecto,  es  alojado  dentro  de  la 
metadatos asociados a un archivo se presentan en la Figura 12.  carpeta de inicio del espacio. De la misma manera esta sección 
  cuenta  con  una  barra  dinámica  de  búsqueda  de  los  archivos 
disponibles,  que  utiliza  como  parámetros  los  metadatos 
METADATOS  asociados  y  muestra  los  resultados  adecuados  cada  vez  que 
algún texto es digitado. 
Del lado derecho se ubican, en forma de pila, las sección de 
Dueño  visualización de la carpeta actual (parte superior) y del archivo 
actual (parte inferior). 
Nombre Desde  la  parte  relacionada  con  la  carpeta  contenedora 
seleccionada  en  el  momento  podemos  ver  sus  archivos 
asociados  en  forma  de  tabla,  y  realizar  algunas  tareas  de 
Extensión gestión:  marcar  el  archivo  como  importante,  marcar  como 
archivo  compartido,  eliminar  el  archivo  o  descargar  el 
Descripción contenido  de  la  carpeta  (en  formato  comprimido).  Un  archivo 
compartido es aquel que un usuario determina como visible, o 
público,  para  descargas  por  parte  de  la  red  de  sus  amigos 
Palabras clave  directos. En la versión extendida de un perfil se encuentran los 
enlaces para descargar los archivos compartidos de un usuario 
Figura 12. Esquema de metadatos asociados a un archivo. 
específico. 
 Le gestión de los archivos, al igual que la consulta de datos  En el cuadro de visualización del archivo actual seleccionado 
estadísticos,  es  factible  cuando  se  cuenta  con  al  menos  un  contamos con información más detallada de dicho archivo, así 
archivo  almacenado.  Todos  los  archivos  almacenados  en  una  como  también  con  opciones  adicionales  de  gestión: 

15
SAVIA 

modificación  de  algunos  de  los  metadatos,  envío  del  archivo  Iteración 4: Modulo de comunicaciones 
por  medio  de  un  mensaje  (sólo  si  está  marcado  como  archivo  Uno  de  los  objetivos  principales  de  este  proyecto  es  la 
compartido),  cambio  de  la  carpeta  contenedora  asociada  y  la  integración  con  aplicaciones  y  desarrollos  existentes,  de  la 
descarga  del  archivo,  en  su  formato  original  o  en  formato  manera  más sencilla y menos traumática posible. Conectarse e 
comprimido.  interactuar  con  sistemas  externos,  de  distinto  propósito  y  con 
La  consulta  de  datos  estadísticos  brinda  al  usuario  una  distinta  arquitectura,  es  una  labor  cada  vez  más  popular  e 
pequeña referencia sobre los tópicos más importantes y críticos  indispensable  para  ofrecer  herramientas  compuestas  con  más 
para  tener  en  cuenta,  y  facilitan  su  análisis.  Asumiendo  el  funcionalidades. En esta moda vive los servicios web (descritos 
formato  de  presentación  de  datos  en  un  diagrama  de  pastel  en la sección II) en sus distintos sabores. Así mismo, uno de los 
construido  en  tiempo  real  (a  través  de  Google  Chart  [23],  a  lenguajes  de  intercambio  de  información  mas  utilizados, 
partir de los archivos almacenados se pueden ver tres gráficas:  también  explicado  anteriormente,  es  XML.  En  este  marco 
la ocupación actual del espacio (como lo muestra la Figura 14),  contextual  nacen  los  servicios  web  de  SAVIA,  basados  en  una 
el  porcentaje  de  archivos  almacenados  según  cada  extensión  implementación sencilla pero poderosa: XML‐RPC. 
aceptada y la clasificación de los archivos según su visibilidad.   XML‐RPC  [24]  (donde  RPC  significa  Remote  Procedure  Call, 
  en  inglés)  es  un  conjunto  de  bibliotecas  de  funciones 
implementadas en distintos lenguajes  (Python lo incorpora en 
sus  versiones  actuales)  que  proporciona  los  artefactos 
necesarios  para  realizar  comunicaciones  HTTP  con  el  modelo 
cliente‐servidor tradicional en una red. 
Este  módulo  contiene  las  dependencias  necesarias  para 
ofrecer  las  funcionalidades  elementales  de  SAVIA:  gestión 
básica  de  archivos.  Basta  con  consultar  la  URL  de  enlace  para 
descubrir  cuáles  operaciones  tiene  el  servidor  de  escucha  de 
servicios web (como lo indica la Figura 15). 
 

Figura 14. Gráfico de pastel mostrando la ocupación actual de 
un espacio. 
Funcionalidades disponibles en este módulo 
• Subida  de  los  archivos  al  espacio  asociado  a  un 
usuario actual. 
• Visualización  de  todos  los  archivos  disponibles  desde 
la interfaz de espacio. 
Figura 15. Interfaz de acceso a los servicios web basados en 
• Localización  de archivos disponibles desde la barra de 
XML‐RPC. 
búsqueda  dinámica,  desde  el  árbol  de  navegación  y 
desde la visualización de la carpeta actual.  Funcionalidades disponibles en este módulo 
• Gestión  de  un  grupo  de  archivos  asociados  a  una  • Almacenamiento de archivos al espacio asociado a un 
misma carpeta contenedora.  usuario  solicitante  (si  no  existe,  es  creado).  Esta 
• Gestión  de  un  archivo  particular  desde  el  cuadro  de  función sobrescribe los archivos existentes en caso de 
visualización del archivo actual.  ser necesario. 
• Compartir archivos entre una red de amigos, y a través  • Descarga  de  un  archivo  solicitado  por  un  usuario 
de mensajes.  autorizado 
• Descarga de archivo almacenados en formato original  • Eliminación  completa  de un archivo solicitado por un 
y formato comprimido.  usuario autorizado. 

16
SAVIA 

VI. CONCLUSIONES  Entre algunas podemos mencionar: 


• Refinamiento  de  la  codificación,  tanto  a  nivel  de 
SAVIA fue proceso que requirió un gran esfuerzo a distintos  Python como de HTML, CSS y JavaScript, para hacer la 
niveles  pero  que,  visto  en  retrospectiva,  nos  deja  una  gran  aplicación todavía más reutilizable y legible. 
sensación  del  deber  cumplido,  de  buena  manera,  y  de  • Rediseño  desde  el  punto  de  vista  gráfico  para  seguir 
satisfacción a nivel personal y académico.  innovando e implementando las últimas tendencias. 
La experiencia adquirida  es invaluable y nos fortalece y llena  • Adaptación  a  los  navegadores  utilizados  actualmente, 
de  coraje  para  afrontar  los  nuevos  desafíos  con  entereza  y  sin  olvidar  la  retrocompatibilidad  con  las  versiones 
responsabilidad.  anteriores,  y  a  los  dispositivos  móviles  que  utilizan 
SAVIA es un producto nuevo que está para quedarse y para  redes inalámbricas. 
seguir creciendo. Los objetivos propuestos se cumplieron de la  • Actualización  del  motor  de  control  de  las  subidas  de 
mejor  manera  en  cada  etapa  del  proceso.  La  marca  distintiva  archivos,  tomando  como  base  los  elementos  que 
que  deja  es  evidente:  innovación,  simplicidad  y  eficacia.  El  proporciona Django, para controlar los archivos  con la 
precedente está claro. La huella está plasmada. Pero aún es el  mayor granularidad posible (a nivel de bytes). También 
primero de muchos pasos.  es  recomendable  desarrollar  una  interfaz  de  subidas 
Las  ideas  sencillas  que  cimientan  la  infraestructura  de  este  soportada con artefactos drag and drop. 
proyecto  no  son  un  impedimento  para  construir  soluciones  • Establecer  SAVIA  como  un  producto  de  carácter 
versátiles dentro de un ámbito bien definido: las cosas grandes  internacional con su propio espacio en Internet. 
empiezan siempre de otras más pequeñas.  • Implementar  nuevas  funcionalidades  orientadas  a  la 
Seguir  de  cerca  e  implementar  las  últimas  tecnologías  interacción  social,  como  mensajería  instantánea, 
disponibles  fue  una  sucesión  de  decisiones  satisfactorias  que  weblogs  personales  y  sistema  de  sindicación  de 
consuman este desarrollo como un trabajo sólido y con criterio,  contenidos. 
que  puede  adaptarse  sin  problemas  en  el  entorno  al  que  se   
enfrente,  dejando  la  puerta  abierta  a  cualquier  sugerencia  o 
crítica constructiva.  AGRADECIMIENTOS 
La  metodología  XP  es  la  mejor  brújula  que  se  puede 
consultar  y  confiar  en  proyectos  de  este  tipo,  aún  más  si  se 
siguen sus recomendaciones de manera rigurosa.  Queremos  ante  todo  dar  las  gracias  al  profesor  Mauricio 
Es  importante  resaltar  que  el  patrón  de  desarrollo  de  Gaona  por  su  apoyo  incondicional  y  su  paciencia,  y  por 
software de Modelo‐Vista‐Controlador optimiza el rendimiento  brindarnos el espacio y las herramientas necesarias para hacer 
durante  todo  el  proceso  de  construcción  puesto  que  permite  de SAVIA una realidad. 
enfocar  los  esfuerzos  en  distintos  niveles  con  alta  cohesión  y Por supuesto a la Universidad por estos cinco gratos años de 
bajo acoplamiento.  formación, en donde además de educarnos y enseñarnos a ver 
el  mundo  con  otra  mirada,  pudimos  conocer  personas  muy 
El  futuro  que  se  vislumbra  para  un  entorno  de  desarrollo 
novel  pero  maduro  como  Django  es  prometedor  y  cada  vez  valiosas que se quedan dentro para siempre. 
capta  más  la  atención  de  los  valientes  y  amantes  de  las  Totales también son los agradecimientos a nuestras familias 
soluciones  rápidas  y  simples  (¡ánimo,  sin  miedo,  nuevos  y  seres queridos, que con sus esfuerzo infinitos por brindarnos 
desarrolladores!).  lo  mejor,  han  hecho  que  hoy  seamos  profesionales.  Los 
amamos. 
Todo puede mejorar aún  ¡Gracias, muchas gracias a todos! 
Como trabajos futuros que se desprenden de este desarrollo   
podemos  destacar  la  gran  potencialidad  que  SAVIA  ha  dejado 
establecida.  REFERENCIAS 
Este es una primera aproximación de un producto con toda   
una vida por delante y que merece evolucionar en el tiempo y   
perdurar. En vista de lo anterior esto es indispensable realizar  [1] S.  Downes.  E‐learning  2.0.  E‐Learning  Magazine. 
algunas  actualizaciones  y  mejoras  a  las  funcionalidades  Disponible  en 
disponibles actualmente, que si bien son correctas, pueden ser  [Link]
mejores en su contexto.  &article=29‐1. Consultado el 10 de Junio de 2008. 

17
SAVIA 

  [13] Ajax.  Wikipedia.  Disponible  en 


[2] NetCentric.  Modelo  de  Innovación  de  la  Enseñanza   [Link] Consultado  el  9  de 
usando un sistema de Respuestas de Audiencia: MINERA.  Agosto de 2009. 
Disponible  en   
[Link] [14] jQuery.  Wikipedia.  Disponible  en 
t&task=view&id=120. Consultado el 10 de Junio de 2008.  [Link] Consultado  el  9  de 
  Agosto de 2009. 
[3] Computer  File.  Wikipedia.  Disponible  en   
[Link] [15] Extreme  Programming. 
10 de Junio de 2008.  [Link]
   
[4] File  System.  Wikipedia.  Disponible  en  [16] Django. 
[Link] Consultado  el  [Link]
10 de Junio de 2008.   
  [17] Historias  de  Usuarios.  Consultar  los  archivos  anexos 
[5] Virtual  File  System.  Wikipedia.  Disponible  en  ubicados en Analisis/HU‐[Link] 
[Link]  
Consultado el 10 de Junio de 2008.  [18] Modelo  de  la  Base  de  Datos.  Consultar  el  archivo  anexo 
  ubicado en Diseño/MBD‐[Link] 
[6] Distributed  File  System.  Wikipedia.  Disponible  en   
[Link] [19] Planificación de las iteraciones. Consultar el archivo anexo 
Consultado el 10 de Junio de 2008.  ubicado en Analisis/ 
   
[7] G.  G.  Chowdhury.  Introduction  to  modern  information  [20] Diagramas  de  Navegación.  Consultar  los  archivos  anexos 
retrieval. 2° Edición Facet Publishing, 2004.  ubicados en Diseño/ 
   
[8] Guía  oficial  sobre  el  uso  de  Dublin  Core.  Disponible  en  [21] Planificación de las Pruebas. Consultar los archivos anexos 
[Link] ubicados en Pruebas/ 
Consultado el 27 de Octubre de 2008.   
  [22] Google Maps. 
[9] Servicios  web.  Wikipedia.  Disponible  en  [Link]
[Link] Consultado  el   
9 de Agosto de 2009.  [23] Google Chart. 
  [Link]
[10] XML.  Wikipedia.  Disponible  en   
[Link] Consultado  el  4  de  [24] XML‐RPC. 
Noviembre de 2008.  [Link]
   
[11] E. Chávez. Rich Internet Applications [Definición]. Riactive.   
Disponible  en  [Link]  
internet‐application‐definicion/. Consultado el 10 de Junio   
de 2008. 
 
[12] Rich  Internet  Applications.  Wikipedia.  Disponible  en 
[Link]
Consultado el 10 de Junio de 2008. 
 

18

También podría gustarte