Вы находитесь на странице: 1из 18

SAVIA

SISTEMAPARAELALMACENAMIENTOVIRTUALYGESTIONDEARCHIVOS EDUARDOARAGNMONTES,JULINCAMILOPREZPARRA
UniversidaddelValle,Cali,Colombia earagon87@gmail.com,jcpmmx@gmail.com

Resumen Una de las tendencias con mayor auge en el entorno informtico actualmente es la disponibilidad inmediataypermanentedecontenidospersonales.Siguiendo estalnea,elalmacenamientovirtualdearchivosesunatarea indispensable que apunta en esta direccin. Los usuarios de sistemasacadmicosycientficosnosonajenosalanecesidad de portabilidad de informacin, con independencia del dispositivofsicodetransporteyalmacenamiento,ycondosis elementales de intuitividad, eficacia y seguridad. Bajo este contextodesarrollamosunsistemadealmacenamientovirtual y gestin de archivos, orientado a la comunidad acadmica, que provee almacenamiento bsico, diferentes herramientas de interaccin social entre sus usuarios y la posibilidad de interconexinconotrossistemasexistentes.Desarrolladopor completo utilizando Django y aplicando los conceptos de la web 2.0, SAVIA nace para sentar un precedente slido en su mbito,servircomomarcodereferenciayponerellistnalto dentro de un campo de accin que est en evolucin continua. PalabrasclaveAlmacenamientoVirtual,Web2.0,Internet, Django

Abstract The reliability and permanent availiability of personal content within networkbased environments is a growingtrendnowadays.Thisisasensibleneedalsoformost scientific communities, which are in need of intuitive, efficient, and secure data portability, regardless of any physicalstoragedevice.Herewedescribetheimplementation of SAVIA, an online storage system tailored to scientific communities.Apartfrombasicstoragecapabilities,itfeatures tools for social interaction among users and intercommunication capabilities with external applications. SAVIA has been developed using Django and applying conceptsofweb2.0.Itintendstosetasolidprecedentinthis area,tobeastartingpointandtoraisethebarhighupinthis continuousevolvingfield. KeywordsOnlineStorage,Web2.0,Internet,Django

SAVIA

I. INTRODUCCIN La web, y las Tecnologas de la Informacin y de la Comunicacin (TIC) en general, han sufrido una enorme transformacinenlosltimosaos,yconellosusposibilidades de uso en el entorno docente. Internet ha pasado de ser un medio en que la informacin se almacena, se transmite y se consume, a una plataforma en que se crean contenidos, se comparten, se transforman, se discuten, se reorientan, y se pasanaotraspersonasenunprocesocreativoyexpansivosin lmites[1]. Estohageneradocadavezmselacercamientoyelinters de las personas por todo tipo de herramientas y contenido acadmico que aos atrs era de difcil acceso. Sin lugar a dudas Internet ha provocado el rompimiento de esa barrera que supona que la informacin estuviera restringida a unos pocos y se ha convertido en una poderosa fuente de recoleccinyanlisisdelamisma. El tratamiento de la informacin se convierte en objeto de estudiodelastendenciasactuales.Sehaceimprescindibleque la informacin est disponible en todo momento y no est supeditada al dispositivo fsico que proporcione el almacenamiento. Eneseprocesosurgeelconceptodealmacenamientovirtual como una solucin de almacenamiento de datos, pensada y diseada para quienes deben compartir informacin con personasubicadasenlugaresgeogrficamentedistantesypara losquedeseanmantenersuinformacinmsimportanteenun lugar, confiable y seguro, accesible en cualquier momento desdeunequiporemotoconconexinaunared(biensealocal oInternet). Dados estos antecedentes es necesario contar con una herramienta que cumpla con las expectativas y tendencias actualesencuantoatratamientoygestindelainformacinse refiere, y que brinde a sus usuarios una interfaz simple y agradablequefacilitelagestindearchivosdeformarpiday eficaz. SAVIA surge como una alternativa para dotar a MINERA [2] con capacidades de almacenamiento y gestin de archivos, siguiendo la metodologa de desarrollo de software de ProgramacinExtremayutilizandocomoentornodedesarrollo Django. Nuestra mayor contribucin es otorgarle a la Escuela de Ingeniera de Sistemas y Computacin de la Universidad, y en generalalacomunidadacadmica,unaaplicacininnovadora, fcilmenteextendibleydecdigoabierto,quepodrfuncionar como una aplicacin completamente autnoma o integrada a cualquier otro sistema que requiera almacenamiento virtual y gestindearchivos.

Estructura de este documento: Este documento est organizado de la siguiente manera. En la prxima seccin (seccinII)sediscutiracercadelosconceptosylastecnologas utilizadas en el desarrollo de la aplicacin y la importancia de su uso en proyecto similares que involucran almacenamiento virtual y gestin de archivos. En la seccin III se explicar brevementequeslametodologadeProgramacinExtremay cmo se aplic durante el desarrollo de SAVIA. La seccin IV nos da a conocer algunas aplicaciones web pertenecientes al estadodelarteactual.Anlisisyresultadossondescritosenla seccin V. Finalmente en la seccin VI se describen las conclusionesobtenidasaltrminodeldesarrollodeSAVIA,as comoalgunasideasacercadetrabajosfuturosparaoptimizarel funcionamientodelaaplicacin. II. CONCEPTOSYTECNOLOGASAPLICADASENSAVIA Para el desarrollo de SAVIA se tomaron en cuenta dos conceptos claves: almacenamiento virtual y metadatos. Bajo este marco surge el debate de qu tecnologas son las adecuadasparaintegrarestosdosconceptosdemaneragilen unamismaherramienta. El principal criterio para la seleccin de cada una de las tecnologas que podran utilizarse, de lejos el ms obvio, es la comparacin entre las caractersticas y funcionalidades ofrecidasporcadaunaylasnecesidadesparticularesdeSAVIA, sin olvidar las desventajas inherentes. Por ejemplo, el primer anlisis juicioso es la eleccin del entorno de desarrollo adecuado(consulenguajedeprogramacinasociado). A manera de sntesis, la Figura 1 rene las distintas tecnologas y conceptos que conviven en SAVIA, teniendo en cuentalasmetodologasquehacenposibleestedesarrollo.
XML Jquery

METODOLOGIA

Ingeniera web

Ajax

Programacin Extrema

TECNOLOGIAS

SAVIA
Django

CONCEPTOS

RIA

webServices

AlmacenamientoVirtual

Metadatos

Figura.1ConceptosyTecnologasaplicadasenSAVIA.

SAVIA

Almacenamiento Un computador puede almacenar informacin en varios soportes, como los discos magnticos y los discos pticos. Tambin en otros dispositivos como el almacenamiento primario (de manera temporal, en la memoria RAM) y las tarjetasdealmacenamientoporttilconinterfazUSB. El sistema operativo se encarga de brindar una vista lgica uniforme para el almacenamiento de la informacin, proporcionando una abstraccin de las propiedades fsicas de los elementos de almacenamiento, con el fin de definir una unidadlgicadealmacenamiento:elarchivo. A. Quesunarchivo? Unarchivoesunacoleccindeinformacinrelacionada,con nombre y atributos asociados, que se graba en un almacenamientosecundario.Tambinpodemosverlo,desdeel punto de vista del usuario, como la unidad ms pequea de almacenamiento secundario; no podremos guardar datos a menosdequeestndentrodeunarchivo[3]. De manera general, un archivo es una secuencia de bits, bytes, lneas o registros, cuyo significado est definido por el creadoryelusuariodelarchivo. Lasoperacionestpicasdisponiblesparaunarchivoson Creacindelarchivo. Configuracindesusatributosparaestablecercontrol. Aperturadelarchivoparaalmacenardatos. Lecturaomodificacindecontenidodeunarchivo. Reubicacin del archivo dentro del sistema de archivos. Eliminacindelarchivo. B. Atributosdeunarchivo Los archivos tienen asociado siempre un nombre y, casi siempre (algunos sistemas utilizan metadatos), una extensin que identifican su tipo. As mismo, siempre se almacenan dentro de una entidad contenedora de manera lgica: un directorioocarpeta(otraabstraccin). Los sistemas modernos referencian cualquier archivo mediante su ruta (el camino de directorios contenedores de manerajerrquica)ysunombre. Porejemplo,sitenemoslaruta(enformatoDOS/Windows) C:\CarpertaPadre\CarpetaHijo\MiArchivo.texto,podemosdecir losiguiente El archivo objetivo se llama MiArchivo y es del tipo texto. La ruta completa de este archivo es C:\CarpertaPadre\CarpetaHijo\. La unidad de almacenamiento que lo contiene est identificadacomoC.

DentrodeldispositivoC,debemosaccederprimeroal directorio CarpetaPadre. Una vez estando dentro de CarpetaPadre, localizamos y accedemos el directorio llamado CarpetaHijo. En este ltimo directorio estar nuestroarchivoalmacenado. Cabe destacar que la jerarqua en este caso se presenta como C > CarpetaPadre > CarpetaHijo > MiArchivo.texto, siendo C la unidad ms general de almacenamiento(eldispositivofsicoenestecaso). Todos los archivos cuentancon otros atributosque ofrecen informacinadicional,siendodemaneratpicalossiguientes Nombre:eslaetiquetadelarchivoenformatolegible parapersonas. Identificador: una etiqueta unvoca (usualmente un nmero) que identifica al archivo dentro del sistema dearchivos;eslaversinnolegibleparapersonasdel nombredelarchivo. Tipo: indica el tipo de archivo, para que pueda ser procesadoporunadeterminadaaplicacin. Ubicacin: indica la ubicacin lgica del archivo, siendo puntero a un dispositivo y la ruta que le corresponde. Tamao: etiqueta que expresa, por lo general, el nmerodebytesqueocupaelarchivo. Proteccin:indicaelcontroldeaccesoalarchivo,para permitir o restringir las distintas operaciones que se puedenefectuarsobreelarchivo. Fecha,horaeidentificacindelusuario:seutilizapara determinar la fecha de creacin, modificacin o de ultimoaccesoalarchivo,ascomotambinelusuario dueodelmismo. C. Proteccindearchivos Los sistemas informticos modernos proporcionan varios mtodosparaprotegerarchivosfrenteaeventosaccidentaleso deliberados. Los computadores multiusuario implementan permisos sobre archivos para controlar quin puede ejecutar ciertas operaciones sobre el archivo. Por ejemplo, un usuario o un grupodeusuariospuedenaccederalcontenidodeunarchivo, peronomodificarlonieliminarlo.Deestamanera,segarantiza la integridad de un archivo ante intentos desautorizados de manipulacin. Otra estrategia asumida es la habilitacin de la etiqueta (otro atributo de un archivo) archivo de slo lectura. As, el archivo slo podr modificarse en caso de estar deshabilitado estabandera.

SAVIA

Unejemploeselusoquetieneenredesderealocal(LAN), comunicandosistemastipoUnixconsistemasWindowsyMac Un sistema de archivo es un mtodo para almacenar y organizar archivos (y los datos que contienen) con el fin de OS(cadaunodeloscualestienesupropiosistemadearchivos) facilitar su bsqueda y acceso en un dispositivo de contransparenciaparaelusuariofinal[5]. almacenamiento, una red de computadores o en un sistema F. Sistemasdearchivosdistribuidos virtual de datos (como los generados dinmicamente por el Es un sistema de archivos de red en el que un sistema de kerneldesistemastipoUnix)[4]. archivos nico se puede distribuir entre varios computadores De manera ms formal, podemos decir que un sistema de archivos es una base de datos, de propsito especial, para que actan como nodos, cada uno separado del otro y con almacenar, organizar jerrquicamente, manipular, acceder y accesoaunasolapartedetodoelsistemadearchivosoriginal. Contrasta con los sistemas de archivos de discos obtenerdatos. compartidos, que proporcionan acceso directo y uniforme, a Dentro de los sistemas de archivos, podemos destacar las cadanododelared,atodoelalmacenamientodisponible. siguientescategoras 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 diseado para almacenar archivos en un detoleranciaaloserrores;cuandociertonmerodenodosde dispositivodealmacenamiento,comolosdiscosduros. laredpresentanfallas,elsistemacontinasuoperacinconlos UnejemploeselsistemaNTFS,queutilizaWindowsen nodosrestantesysinprdidadeinformacin[6]. susversionesactuales,oelHFS,utilizadoporApple. Sistemadearchivosdeunidadesflash:diseadopara G. Almacenamientodearchivos el almacenamiento de archivos en dispositivos Elalmacenamientodearchivosserefierealprocesofsicode porttilesbasadosenmemoriaflash.Unejemploesel grabar datos en un dispositivo de almacenamiento JFFS2. (permanente,temporaloremovible)atravsdeunequipode Sistema de archivos de bases de datos: adems de almacenamientodedatos,previamenteconfiguradodemanera almacenar los archivos de manera jerrquica, lgicaconunsistemadearchivos.Enestecaso,sepresentala almacena tambin metadatos para referencian sus relacin Disco duro (dispositivo que almacena los datos) caractersticas. Computador(dispositivoqueaccedeymanipulalosdatos),por Sistemasdearchivodetransacciones:diseadospara ejemplo. ser robustos, son utilizados principalmente en operacionesatravsderedesdecomputadores,cada H. Almacenamientovirtualdearchivos uno de los cuales almacena archivos. Est basado en Podemosllamarasalprocesodealmacenararchivosenuna registro de actividades (journaling o logging) para red de computadores utilizando al menos dos mquinas, comprobar que las operaciones entre distintas distintasyconectadasentres. mquinasseefectendemanerasatisfactoria. Unadelasmquinasactacomoservidordelared,quese Sistema de archivos de red:esunsistemadearchivo encargadealmacenarlosarchivosfsicamente.Laotramquina que acta como cliente para un protocolo de acceso hace el papel usuario cliente que se comunica con el servidor remoto de archivos, como la comunicacin con paraenviardatosqueseencuentranalojadosenl. servidores.UnejemploeselFTP. En este proceso debemos tener en cuenta varios factores Sistemas de archivo de propsito especial: no se quelohacenmscomplejoqueunalmacenamientolocalenun basan ni en discos ni en redes. Son sistemas de dispositivo,algunoscomo archivos virtuales temporales o que se generan La comunicacin entre los equipos debe existir y ser dinmicamentepormediodesoftware.Unejemploes estableenelmomentoderealizarsetransferencias. elprocfs,utilizadoporsistemastipoUnix. Elequiposervidorysu(s)cliente(s)nonecesariamente disponen de la misma arquitectura, hacindose E. Sistemasdearchivovirtual necesaria (en algunos casos) una capa de abstraccin Es una capa de abstraccin que se superpone a un sistema (middleware) que haga transparentes las operaciones dearchivosconcreto,teniendocomoobjetivootorgaraccesoa ypermitaelinteroperabilidadentrenodosqueutilizan diferentes sistemas de archivos concretos de manera nica y distintos sistemas operativos, distintos sistemas de uniforme,pormediodeaplicacionescliente. archivo,distintasprestaciones,entreotrascosas. D. Sistemasdearchivos

SAVIA

Debenexistirestrategiasdeseguridadquegaranticen la integridad del sistema de almacenamiento para brindarlatoleranciaaerroresadecuada,tantofsicos (fallasdelfluidoelctrico,fallasenlacomunicacinen red, entre otros) como lgicos (intrusin de usuarios no autorizados, fallas en los distintas aplicaciones involucradas,entreotros).

Metadatos La cantidad de datos presente en la Internet, y en general, todoslosdatosalmacenadosenlosmillonesdecomputadores que existen alrededor del planeta, hacen casi imposible que podamos catalogarlos de una manera apropiada. Y, aadido a ladificultadintrnsecaqueconllevalamanipulacindegrandes volmenesdedatos,estladificultadquerepresentalacalidad delosmismos[7]. Conestosdosfactoresencontradebemosadoptarmedidas quenosllevenalaoptimizacindelaorganizacindelosdatos quealmacenamos,paraprocurarlamejoraenlacapacidadde encontrar fcilmente esos recursos y en la calidad de la informacinquerepresentan.Unadeesasestrategias,aunque obviaysimple,noesutilizadacomodeberaserporlosactores implicadosenlaproduccindeinformacin:losmetadatos. A. Qusonlosmetadatos? El trmino metadatos, en s mismo, no tiene unadefinicin nica. Descomponiendo la palabra, se puede decir que su significa ms simple es datos sobre datos. Esto es, datos que nos proporcionan datos sobre otros datos. Obviando la redundancia aparente, es la definicin ms simple que nos otorgaunaideageneraldelconcepto[8]. Refinando el concepto, podemos decir que esos datos no son datos cualesquiera: son datos llenos de significado, que estn asociados y que pueden describir atributos o caractersticas. Un ejemplo tpico es el de las bibliotecas. Un libro es una entidad que se puede describir mediante varios metadatos. Si para archivar un libro en una seccin determinadadelabibliotecautilizamosuncdigo(llammoslo ID), dicho cdigo podra tener asociado algunos metadatos, comoporejemplo Ttulo:elttulodellibrorepresentadoconID. Autor:elnombredelapersonaqueescribiellibroID. Fecha:elaodepublicacindellibroID. Y as como este ejemplo,podramos enumerar muchosque se asemejan, como los inventarios de cualquier cosa: discos, peridicos,artculosdeunsupermercado,entreotros. Los metadatos soportan una variedad de operaciones posibles. Sus usuarios pueden ser tanto humanos como programasautomatizadosporcomputador.

Lasfuncionesprincipalesdeunmetadatosonlasdefacilitar la identificacin, localizacin, retorno, manipulacin y uso de objetosdigitalesenunentornodered. Aunque el trmino metadato no excluye los datos no electrnicos,enlaactualidadsuusoimplicacasidefactodatos almacenados en dispositivos electrnicos. La Internet y las bibliotecas digitales han desvelado la creciente necesidad de los metadatos para las distintas categoras de objetos disponiblesenformatodigital. B. ElestndarDublinCore(DC) En1995sellevacabo,enDublin(Ohio,EE.UU.),elprimer taller de trabajo de The Dublin Core Workshop Series, convocando a sus participantes por medio de una invitacin, entrequienesseencontrabanbibliotecarios,investigadoresde bibliotecas digitales, expertos en contenidos y expertos en lenguajesdemarcas,conelfindedesarrollarestndarespara losrecursoselectrnicos.ElresultadofuelacreacindelDublin Core Metadata Initiative (DCMI), una organizacin dedicada a fomentarlaadopcinextensadelosestndaresinteroperables delosmetadatosyapromovereldesarrollodelosvocabularios especializadosdemetadatosparadescribirrecursos.Laltima versin,la1.1,fueradicadacomonormaISOenEnerode2008. DC se compone de un conjunto de 15 elementos descriptores que intentan promover que los autores de contenidos de la Internet describan sus recursos. Dichos elementos se pueden clasificar en 3 grupos, segn su clase o mbitodelainformacinquecontienen. Los elementos descriptores de DC, que son opcionales, repetiblesypuedenaparecerencualquierorden,son Content(Decontenido): - Title(Ttulo):nombredelrecurso. - Subject (Tema):tpicoquedescribeelcontenido delrecurso. - Description (Descripcin): acerca del contenido delrecurso. - Type (Tipo): naturaleza o gnero del contenido delrecurso. - Source(Fuente):referenciaunrecursodelcualel actualsederiva. - Relation (Relacin): referencia a un recurso relacionado. - Coverage (Cubrimiento): la extensin u mbito delcontenidodelrecurso. Intellectualproperty(depropiedadintelectual): - Creador (Creador): el responsable principal de la creacindelcontenidodelrecurso. - Publisher (Publicador): el responsable de la publicacindelrecurso.

SAVIA

Contributor(Contribuyente):elolosresponsables derealizarcontribucionesalrecurso. - Rights(Derechos):indicalosderechosopermisos querecaensobreelrecurso. Instantiation(deinstanciacin): - Date (Fecha): fecha en el que el recurso fue manifestadoporprimeravez. - Format (Formato): indica la naturaleza de la manifestacinfsicaodigitaldelrecurso. - Identifier (Identificador): referencia nica al recurso,segnsucontexto. - Language(Lenguaje):Ellenguajeutilizadoparael contenidodelrecurso. Para utilizar DC en recursos localizados en la Internet, podemoshacerlomediantelainclusindeetiquetas<meta/> y <link />, ubicadas a su vez dentro de las etiquetas <head></head>,endocumentosHTMLoXHTML. Django ElentornodedesarrolloidneoparaSAVIAdebaseraquel quemejorsecomportarconlasnecesidadesdelproyecto.As, seplantearontresalternativas: Django,basadoenPython. Symfony,basadoenPHP5. RubyOnRails,basadoenRuby. Para evaluar cual lenguaje era el apropiado se tuvieron en cuenta consideraciones como la experiencia de los programadores en el mismo, la documentacin disponible, el usodelpatrndediseoMVC(ModeloVistaControlador).En la Tabla 1 se encuentra detallado el proceso de seleccin del frameworkparaeldesarrollodeSAVIA,donde5representala notamsaltay1lamsbaja. FRAMEWORK DJANGO SYMFONY RUBYONRAILS PONDERADO TOPICO Conocimientopreviodellenguaje 1 3 1 20% porpartedelosprogramadores Accesofcil,yencantidad,a 3 4 3 15% documentacin Antecedentesdeproyectossobre 4 2 2 30% almacenamientovirtual Ellenguajepermitelaprogramacin 4 4 5 15% multiparadigma Implementaelpatrndediseo 5 4 4 20% ModeloVistaControlador(MVC) TOTAL 3,45 3,2 2,8 100%

Basado en el patrn MVC (aunque sus creadores lo llamanModelTemplateView). Mapeodeobjetosrelacionesquetraducemodelosde datos(escritoscomoclasesenPython)yunabasede datos relacional, bien sea para MySQL, PostgreSQL, Oracle o SQLite3 (Que viene como componente del ncleodePython). Generacin automtica y dinmica de un mdulo de administracinconfuncionesCRUD. Un servidor web (software) liviano para pruebas, independientedelquesetengainstaladoen(Apache, Tomcat,ISS,etc.) Sistemadeplantillas(templates)propio. Sistemaextensibledeautenticaciones. SerializacionesvaXMLoJSON. Soporteparasindicacin(feeds)AtomoRSS. Enrutamiento de URLs basado en expresiones regulares. Soporteparaclasesmiddleware. Sistemadeinternacionalizacin. Esta etapa de seleccin fue enriquecedora para los integrantes de este proyecto. Fue una buena excusa para indagar y conocer ms los diferentes lenguajes y estructuras paradesarrollarunproyectodesoftwaredeestetipo.Adems, permiti identificar tpicos relevantes a lahora de desarrollar unproyectocomoSAVIA. Durante el proceso de desarrollo comprobamos que la decisinporDjangofueacertada,puestoqueseacopldesde unprincipioalasnecesidadesexistentes(yalasresultantesen el camino) y contamos con herramientas embebidas que facilitaronelmanejodelosdatosylamanipulacindelaparte grficadelaaplicacin. Serviciosweb

Un servicio web (en ingls, web service) es un conjunto de protocolos y estndares que sirven para intercambiar datos entre aplicaciones. Distintas aplicaciones de software desarrolladas en lenguajes de programacin diferentes, y ejecutadas sobre cualquier plataforma, pueden utilizar los servicioswebparaintercambiardatosenredesdeordenadores como Internet. La interoperabilidad se consigue mediante la adopcin de estndares abiertos. Las organizaciones OASIS y W3C son los comits responsables de la arquitectura y reglamentacin de los servicios web. Para mejorar la Tabla.1Procesodeseleccindelentornodedesarrollo. interoperabilidadentredistintasimplementacionesdeservicios Teniendoencuentalosresultadosobtenidos,Djangoresult websehacreadoelorganismoWSI,encargadodedesarrollar vencedoryfueelegidocomoelentornodedesarrollopropicio. diversos perfiles para definir de manera ms exhaustiva estos estndares[9]. AlgunasdelascaractersticasprincipalesdeDjangoson

SAVIA

A. Ventajasdelosserviciosweb Aportan interoperabilidad entre aplicaciones de software independientemente de sus propiedades o delasplataformassobrelasqueseinstalen. Los servicios web fomentan los estndares y protocolos basados en texto, que hacen ms fcil accederasucontenidoyentendersufuncionamiento. Al apoyarse en HTTP, los servicios web pueden aprovecharsedelossistemasdeseguridadfirewallsin necesidaddecambiarlasreglasdefiltrado. Permiten que servicios y software de diferentes compaasubicadasendiferenteslugaresgeogrficos puedan ser combinados fcilmente para proveer serviciosintegrados. Permiten la interoperabilidad entre plataformas de distintosfabricantespormediodeprotocolosestndar y abiertos. Las especificaciones son gestionadas por una organizacin abierta, la W3C, por tanto no hay secretismos por intereses particulares de fabricantes concretos y se garantiza la plena interoperabilidad entreaplicaciones.

Haymuchasconvencionesestablecidasdefactoyotrastantas que,apesardeseroriginadasporlasautoridadesvirtuales,no son ampliamente conocidas ni aplicadas. XML nace como una propuesta para solucionar este inconveniente, pues pretende poner algo de orden y de reglas comunes para el intercambio dedatos. A. QuesXML? El lenguaje de marcas extensible, o XML por sus siglas en ingles (eXtensible Markup Language), esuna especificacin de propsito general para la creacin de lenguajes de marcas personalizados con capacidad de ser extensible (un usuario puededefinirsuspropioselementos),utilizadaparacodificary serializar datos. Una de sus metas principales es la de brindar ayuda a los sistemas de informacin para compartir datos organizadosyestructurados,particularmentevaInternet.Fue desarrolladoyesmantenidoporlaW3Cysultimaversines la1.1(liberadaen2006)[10]. Cuando realizamos un documento XML (su extensin de archivo es .xml), podemos observar que hay dos niveles de correctitud: la correctitud en la forma (un documento bien formado:quecumpleconlasreglasdesintaxisdellenguaje)y lacorrectitudenelsignificado(undocumentovlido:seapega aunosnormasdesemntica).

B. Desventajasdelosserviciosweb

XML

Para realizartransacciones no puedencompararse en sugradodedesarrolloconlosestndaresabiertosde B. VentajasdeXML computacin distribuida como CORBA (Common Entre las ventajas que proporciona este lenguaje podemos ObjectRequestBrokerArchitecture). encontrar Su rendimiento es bajo si se compara con otros Soporte de Unicode para la representacin adecuada modelos de computacin distribuida, tales como RMI dedatos. (Remote Method Invocation), CORBA o DCOM Sepuedenrepresentarestructurasdedatoscomunes (DistributedComponentObjectModel).Esunodelos comolosrboles,losregistrosylaslistas. inconvenientes derivados de adoptar un formato Suformatoparacodificarnuevoselementoshacecasi basadoentexto.YesqueentrelosobjetivosdeXML evidentesuestructura. no se encuentra la concisin ni la eficacia de Es estricto en la sintaxis, promoviendo las buenas procesamiento. prcticas. Al apoyarse en HTTP, pueden esquivar medidas de Esextensible. seguridad basadas en firewall cuyas reglas tratan de Sebasaenestndaresinternacionales. bloquearoauditarlacomunicacinentreprogramasa Esunlenguajeindependientedelaplataforma. ambosladosdelabarrera. C. DesventajasdeXML

Internet definitivamente ha sido la revolucin ms grande sufrida por las redes de comunicaciones. Ahora son, en gran parte, gigantes, abiertas y gratuitas, sentando las bases fundamentalesparalaconvergenciademasasvidasdecrear, compartiryconsultarcontenidos.Esbastanteevidentequeas, en estas condiciones, los problemas son fciles de hallar. La reunindemuchsimagenteenlasredesposibilitaladificultad enlaintercomunicacinutilizandounlenguajeclaroyunificado.

AlgunasdelasdesventajasqueconllevaelusodeXMLson La estructura jerrquica de los datos es limitada en comparacinconunmodeloorientadoaobjetos. Expresarrelacionesentreobjetossolapadospuedeser difcil. Fomentaestructurasdedatosnorelacionalesy,porlo tanto,nonormalizadas.

SAVIA

RIA Las RIAs (o Aplicaciones Ricas en Internet) son aplicaciones web que tienen caractersticas y funcionalidades de una aplicacindeescritoriocomn[11]. Normalmente en las aplicaciones web hay una recarga continua y total de pginas cada vez que el usuario pulsa un enlace.Deestaformaseproduceuntrficomuyaltoentreel cliente y el servidor, causando la recarga de la misma pgina, con todos suscomponentes, con un mnimo cambio. Tambin tienenpocacapacidadmultimedia. En los entornos RIA no se producen recargas de pgina, ya que desde el principio se carga toda la aplicacin y slo se produce comunicacin con el servidor cuando se necesitan datos externos como datos de una Base de Datos o de otros ficherosexternos[12]. Su mayor desventaja es que dependen totalmente de que exista una rpida y estable conexin a Internet (algo estndar hoyendaparaalgunos). AJAX AJAX, acrnimo de Asynchronous JavaScript And XML (JavaScriptasncronoyXML),esunatcnicadedesarrolloweb para crear aplicaciones interactivas o RIA. Se ejecutan en el navegadordelosusuariosymantienecomunicacinasncrona con el servidor en segundo plano; de esta forma es posible realizar cambios sobre la misma pgina sin necesidad de recargarla.Estosignificaaumentarlainteractividad,velocidady usabilidadenlaaplicacin[13]. AJAXesunacombinacindecuatrotecnologasyaexistentes: XHTML (o HTML) y hojas de estilos en cascada (CSS) paraeldiseoqueacompaaalainformacin. Document Object Model (DOM) accedido con un lenguaje de scripting por parte del usuario, especialmente implementaciones ECMAScript como JavaScript y JScript, para mostrar e interactuar dinmicamenteconlainformacinpresentada. El objeto XMLDisponible en httpRequest para intercambiar datos asincrnicamente con el servidor web.Enalgunosframeworksyenalgunassituaciones concretas, se usa un objeto iframe en lugar del XMLDisponible en httpRequest para realizar dichos intercambios. XML es el formato usado comnmente para la transferencia de vuelta al servidor, aunque cualquier formato puede funcionar, incluyendo HTML preformateado,textoplano,JSONyhastaEBML. Como el DHTML, LAMP o SPA, AJAX no constituye una tecnologa en s, sino que es un trmino que engloba a un grupodestasquetrabajanconjuntamente[13].

JQUERY jQuery es una biblioteca o framework de Javascript, creada inicialmenteporJohnResig,quepermitesimplificarlamanera de interactuar con los documentos HTML, manipular el arbol DOM, manejar eventos, desarrollar animaciones y agregar interaccin con la tecnologa AJAX a pginas web [14]. Fue presentadaenenerode2006enelBarCampNYC. jQuery, al igual que otras bibliotecas, ofrece una serie de funcionalidades basadas en Javascript que de otra manera requeriran de mucho ms cdigo. Es decir, con las funciones propias de esta biblioteca se logran grandes resultados en menostiempoyespacio. Entre las principales caractersticas que ofrece jQuery tenemos SeleccindeelementosDOM. Interactividad y modificaciones del rbol DOM, incluyendosoporteparaCSS13yunpluginbsicode XPath. Manipulacindeeventos. ManipulacindelahojadeestilosCSS. Efectosyanimaciones. FuncionalidadesdeAJAX. Utilidades varias como obtener informacin del navegador,operarconObjetosyArrays,funcintrim() (eliminalosespaciosenblancodelprincipioyfinalde unacadenadecaracteres),etc. CompatibleconlosnavegadoresFirefox2.0+,Internet Explorer6+,Safari2.0.2+yOpera9+. III. PROGRAMACINEXTREMA,PARAQUES?YCMOSE
DEBEEJECUTAR?

Granpartedelosprogramadorestienenciertainclinacinen discusionestcnicas:hablandelenguajesdeprogramacin,de tcnicas de programacin, de entornos de desarrollo o de editoresderecursos. Pero no tienen en cuenta un tema que puede crear inconvenientes si no se enfrenta de la manera correcta: la Ingeniera de Software, la forma en que se debe desarrollar software. Sobre cmo hacer software existe un gran nmero de autores y teoras propuestas. De forma breve se explicar en qu consiste la metodologa de Programacin Extrema y las ventajas que podemos encontrar del uso de esta metodologa enSAVIA.

SAVIA

A. Ques? La metodologa de Programacin Extrema, o XP por sus siglas en ingls (eXtreme Programming) [15] nace como una nueva disciplina de desarrollo de software hace aproximadamente unos diez aos, y ha causado un gran revuelo entre el colectivo de programadores del mundo. Kent Beck, su autor, es un programador que ha trabajado en mltiples empresas y que actualmente lo hace como programador en la conocida empresa automovilstica DaimlerChrysler.Consusteorashaconseguidoelrespaldode gran parte de la industria del software y el rechazo de otra parte. La programacin extrema se basa en la simplicidad, la comunicacin y el reciclado continuo de cdigo, para algunos noesmsqueaplicarpuralgica.

mayor que si se toma la decisin de desarrollarlo de nuevo. Falsa riqueza: El software hace muchas cosas tcnicamente muy interesantes y divertidas, pero no resuelven el problema del cliente, ni hace que ste ganemsdinero. Cambios de personal: Despus de unos aos de trabajo los programadores comienzan a odiar el proyectoyloabandonan. Todosestosproblemassepuedeneliminarominimizarusando lametodologaXP. C. LosobjetivosdeXP El objetivo fundamental de XP es muy simple y est enfocado en una meta precisa: la satisfaccin del cliente. Esta metodologatratadedaralclienteelsoftwarequelnecesitay cuandolonecesita.Portanto,sedeberespondermuyrpidoa lasnecesidadesdelcliente,inclusocuandoloscambiosseanal finaldeciclodelaprogramacin. El segundo objetivo es potenciar al mximo el trabajo en grupo. Tanto los jefes de proyecto, los clientes y desarrolladores, son parte del equipo y estn involucrados en eldesarrollodelsoftware. D. LascuatrovariablesdefinidasporXP XPdefinecuatrovariablesparaproyectosdesoftware:coste, tiempo,calidadymbito. Adems de estas cuatro variables, Beck propone que slo trespuedanserestablecidasporlasfuerzasexternas(jefesde proyectoyclientes),mientrasqueelvalordelacuartavariable debe ser establecido por los programadores en funcin de las otrastres.

Figura2.CiclodevidadelprocesoXP.

B. Inconvenientes del desarrollo de software convencional Entre los principales problemas que los programadores se encuentran en el momento en que estn desarrollando E. FasesdelaMetodologa softwaretenemos: Existen diversas prcticas inherentes al desarrollo de Retrasos en la planificacin: Llegada la fecha de software. entregarelsoftwarestenoestdisponible. Planificacin. Sistemas deteriorados:Elsoftwaresehacreadopero XP plantea la planificacin como un permanente dialogo despus de un par de ao el coste de su entre las partes, la empresarial y la tcnica. Las personas mantenimiento es tan complicado que delnegocionecesitandeterminar: definitivamenteseabandonasuproduccin. mbito:Quesloqueelsoftwaredebederesolverpara Tasa de defectos: El software se pone en produccin queestegenerevalor? perolosdefectossontantosquenadielousa. Prioridad:Qudebeserhechoenprimerlugar? Composicin de versiones: Cunto es necesario hacer Requerimientos mal comprendidos: El software no parasabersielnegociovamejorconsoftwarequesinl? resuelve los requerimientos planificados inicialmente En cuanto el software aporte algo al negocio se deben conelcliente. tenerlistalasprimerasversiones. Cambios de negocio: El problema que resolva el software ha cambiado y el coste de adaptarlo es

SAVIA

Fechasdeversiones:Culessonlasfechasenlapresencia del software o parte del mismo pudiese marcar la diferencia? El personal del negocio no puede tomar en vaci estas decisiones, y el personal tcnico tomar las decisiones tcnicas que proporcionan la metera prima para las decisionesdelnegocio. Estimaciones: Cunto tiempo lleva implementar una caracterstica? Consecuencias: Informar sobre las consecuencias de la tomadedecisionesporpartedelnegocio. Procesos:Cmoseorganizaeltrabajoyelequipo? Programacin detallada: Dentro de una versin Qu problemasseresolvernprimero? Pequeas versiones: Cada versin debe de ser tan pequea como fuera posible, conteniendo los requerimientosdenegociosmsimportantes,lasversiones tiene que tener sentido como un todo, no se puede implementarmediacaractersticaylanzarlaversin. Diseo Metfora: Una metfora es una historia que todo el mundopuedecontaracercadecmofuncionaelsistema. Algunas veces se pueden encontrar metforas sencillas Programadegestindecompras,ventas,congestinde cartera y almacn. Las metforas ayudan a cualquier personaaentenderelobjetodelprograma. Diseo sencillo: El diseo adecuado para el software es aquelque: 1. Funcionacontodaslaspruebas. 2. Notienelgicaduplicada. 3. Manifiesta cada intencin importante para los programadores. 4. Tieneelmenornmerodeclasesymtodos. Desarrollo. Recodificacin: Cuando se implementan nuevas caractersticas en los programas se plantea la manera de hacerlo lo ms simple posible, despus de implementar esta caracterstica, nos preguntamos cmo hacer el programa ms simple sin perder funcionalidad, este proceso se le denomina recodificar o refactorizar (refactoring). Esto a veces nos puede llevar a hacer ms trabajodelnecesario,peroalavezestaremospreparando nuestro sistema para que en un futuro acepte nuevos cambios y pueda albergar nuevas caractersticas. No debemos de recodificar ante especulaciones si no solo cundoelsistemalopida. Programacin por parejas: Todo el cdigo de produccin loescribendospersonasfrentealordenador,conunslo ratnyunsloteclado.Cadamiembrodelaparejajuega

su papel: uno codifica en el ordenador y piensa la mejor manera de hacerlo, el otro piensa ms estratgicamente, Va a funcionar?, Puede haber pruebas donde no funcione?,Hayformadesimplificarelsistemaglobalpara queelproblemadesaparezca? El emparejamiento es dinmico, puedo estar emparejado porlamaanaconunapersonayporlatardeconotra,si tienesuntrabajosobreunreaquenoconocesmuybien puedes emparejarte con otra persona que si conozca ese rea. Cualquier miembro del equipo se puede emparejar concualquiera. Propiedad colectiva: Cualquiera que crea que puede aportarvaloralcdigoencualquiermdulopuedehacerlo, ningn miembro del equipo es propietario del cdigo. Si alguien quiere hacercambios en elcdigo puedehacerlo. Si hacemos el cdigo propietario, y necesitamos de su autorparaquelocambieentoncesestaremosalejndonos cada vez mas de la comprensin del problema, si necesitamos un cambio sobre una parte del cdigo lo hacemos y punto. XP propone un propiedad colectiva sobreelcdigonadieconocecadaparteigualdebienpero todos conoce algo sobre cada parte, esto nos preparar para la sustitucin no traumtica de cada miembro del equipo. Integracin contina: El cdigo se debe integrar como mnimo una vez al da, y realizar las pruebas sobre la totalidad del sistema. Una pareja de programadores se encargara de integrar todo el cdigo en una maquina y realizar todas las pruebas hasta que estas funcionen al 100%. Estndares de codificacin: Si los programadores van a estartocandopartesdistintasdelsistema,intercambiando compaeros, haciendo refactoring, se debe establecer un estndar de codificacin aceptado e implantado por todo elequipo. Pruebas Nodebeexistirningunacaractersticaenelprogramaque nohayasidoprobada,losprogramadoresescribenpruebas para chequear el correcto funcionamiento del programa, los clientes realizan pruebas funcionales. El resultado un programa ms seguro que conforme pasa el tiempo es capazdeaceptarnuevoscambios. AplicandolametodologaXPenSAVIA DespusdeentenderenquconsistelametodologaXP,fue necesarioadaptarlaaldesarrollodeSAVIA. La metodologa se acopla muy bien a la naturaleza del proyecto, y uno de sus puntos fuertes se refleja de manera clara: XP est diseado para grupos pequeos de

10

SAVIA

programadores, haciendo nfasis en el desarrollo en parejas. Enestecaso,SAVIAestdiseadoparaserdesarrolladopordos personas. Fueron planificadas entonces cuatro iteraciones, con una duracin de 45 das cada una, dentro de las cuales se abordaron los cuatro procesos que normalmente se hacen en cualquier desarrollo de software: Anlisis, Diseo, ImplementacinyPruebas. Para la iteracin 1 se plante realizar el modulo de administracin de usuarios, que incluye el proceso de crear, modificar o eliminar las cuentas que los usuarios tengan en SAVIA, adems de la gestin de los perfiles de usuarios y la gestindelacontrasea. En la iteracin 2 se desarroll la comunidad virtual que brinda SAVIA, incluyendo la gestin de relaciones de amistad entre los usuarios, un sistema bsico de mensajes internos entre dos usuarios (que son amigos) y la opcin de compartir archivosentreamigos. La iteracin 3 comprendi lo relacionado con el almacenamientodelosarchivosdelosusuarios,queincluyela subida y alojamiento de nuevos archivos y la descarga y la administracin de los archivos existentes. Tambin, se construy la estructura de metadatos para posibilitar la bsqueda de los archivos y la generacin de informacin estadstica. Finalmente en la iteracin 4 fue desarrollado el sistema de comunicaciones basado en servicios web, que permite la integracin de algunas funcionalidades de SAVIA con aplicacionesexternas. LaexperienciadelusodelametodologaXPfuegratificante desde el punto de vista del trabajo en equipo pues est pensada para programacin por parejas (como es el caso de SAVIA).Fomentaquecadaunodelosprogramadoresrealiceun mdulodelaaplicaciny,unavezfinalizado,paseamanosdel otroprogramadorparasurevisintotalconelfindeencontrar posibles fallas y corregirlas. As, antes de estar listo para la entrega a los usuarios finales, el producto sufre mltiples procesosderetroalimentacininternaqueminimizaneltiempo yloscostosdedesarrollo. OtradelasbondadesdeXPeslaflexibilidadenlageneracin de documentacin. La mayora de las metodologas son muy estrictas en cuanto a documentacin se refiere, llegando al punto de generar documentos innecesarios. Para XP la documentacin que se debe generar en un desarrollo de softwareessimplementelanecesariaparamodelarelproyecto quesevaaejecutar,loquepermiteundesarrollogilyeficaz. EsnecesariodestacarqueaunquelametodologaXPesgily la documentacin generada no es tan extensa como en otras metodologas, se deben realizar algunos documentos que

permitenqueelseguimientodelamismasellevedelamejor manera. Estos documentos anexos tales como Historias de Usuario[17],ModelodelaBasedeDatos[18],Planificacinde las Iteraciones [19], Diagramas de Navegacin [20] y Planificacin de las pruebas [21] se encuentran anexos a este documento. IV. ESTADODELARTE Un aspecto que se debe tomar en cuenta para procurar el espritu innovador de este proyecto es recurrir de manera asidua a un marco contextual, de manera general y a nivel internacional, para tener una buena idea de las prestaciones que ofrecen algunas aplicaciones web orientadas en la misma direccin. Esimportanterecordarlaslimitacionesdeesteproyectode grado para no generar falsas expectativas en cuanto a las funcionalidadesfinalesqueincorporaresteproyecto. Las aplicaciones web consultadas y examinadas para este propsitoson: OMNIDRIVE.COM Omnidrive (Figura 3) no slo permite aadir todos los archivos del computador, sino tambin todos los archivos y datos de diferentes aplicaciones web. Puede intercambiar archivosydatosentrelasaplicacionesqueutilizanOmnidrive,y tambin fcilmente compartir y publicar archivos con un solo clic. Omnidrive es multiplataforma y est disponible tanto en Windows como en Mac, y tambin proporciona un navegador basado en la versin que emula un explorador de archivos de escritorio. Figura3.PginaprincipaldeOmnidrive.com.

11

SAVIA

Algunas de las caractersticas para destacar de Omnidrive XDRIVE.COM son Xdrive Desktop Lite brinda facilidad para poder gestionar y Acceder a todos los archivos y datos desde cualquier organizartodoslosdocumentos,fotos,msica,vdeosymsen lugar. undiscoduropersonalonline. Integrar los archivos y los datos de otras aplicaciones Entresusfuncionesestn enOmnidrive. Crear nuevas carpetas para organizar los cuadros de Compartir archivos a otro usuario o una direccin de familiaresoamigos. correoelectrnicoconslopulsarunbotn. La posibilidad de hacer copias adicionales de los Publicar msica, vdeo o fotos a la web y vincular a documentosfiscales. ellosdentrodelosforos,blogsositiosweb. Cargar archivos de msica por lo que estarn a Omnidrive es gratuita para un mximo de 1GB de disposicin desde cualquier lugar: no ms problemas almacenamiento. condiscoscompactos. La interfaz principal de Xdrive es similar a la mostrada por la BOX.NET Figura5. Box.net (Figura 4) es un almacenamiento en lnea e intercambiodeserviciosquelepermiteaccederalosarchivos desde cualquier lugar. Con Box, se puede tener acceso a importantes documentos de un computador de escritorio, porttil o incluso telfono mvil. Una vez que ha subido los archivos al almacenamiento en lnea de Box, podrn compartirse con cualquiera y en cualquier momento. Algunas desuscaractersticasson

Figura5.PginaprincipaldeXdrive.com

V. ESTOESSAVIA Hacerlamejorexperienciadeusuarioposible Con esta idea en mente desde un principio y siempre pensandoenelcumplimientototaldelosobjetivosplanteados, en la simplificacin y potencializacin al mximo de las funcionalidades, en la intuitividad y la retroalimentacin de la interfazgrfica,enlaeficienciadelastareasdeprocesamiento, utilizando como gua continua la metodologa XP y aplicando los conceptos y tecnologas detalladas en las secciones anteriores, SAVIA comienza su camino desde ser un proyecto prctico con buenas ideas para convertirse en un producto robusto,amigable,funcionalyverstil.

Figura4.PginaprincipaldeBox.net. Enviararchivosacualquierpersona. Guardarcopiasdeseguridaddelosarchivos. SubirarchivosvaEmail. PublicarenpginaswebconBox.

12

SAVIA

Figura6.FormulariodeaccesoaSAVIA,utilizandoeltemapor defecto. Detallesgeneralesdelaimplementacin Diseada bajo principios bsicos de buen gusto y estilo grfico, con una maquetacin del sitio de acuerdo a las tendenciasactualesdelacomunidaddesarrolladoraeinspirada en productos exitosos similares, SAVIA fue desarrollado bajo una estructura coherente (en cuanto a colores, fuentes y decoracingeneral),separandoyestructurandoloscontenidos (sistema de plantillas de Django), las funcionalidades del lado clienteyhojasdeestilospropiasdecadaseccin. El sistema de formularios, basado en los artefactos proporcionadosporDjangoyjQuery,cuentacondosnivelesde seguridad. Laparte del cliente evita peticiones al servidor con campos vacos e invlidos, desplegando las alertas visuales necesarias en el caso de existir algn error. Superado este primer filtro, el servidor analiza a fondo cada campo de acuerdo a su especificacin interna y procesa la informacin que contiene Una vez terminado el procesamiento la retroalimentacin visual con el resultado de la operacin solicitadasemuestraalusuario. Iteracin1:Modulodeusuarios

El segundo rol, asignado por defecto a todos los dems usuarios, es el de usuario final. Nace desde un formulario de registro (que cuenta con un cdigo de seguridad antispam y que genera un mensaje de confirmacin enviado por correo electrnico) que es de libre acceso y que necesita ser diligenciadoensutotalidadcondatosrealesparagarantizarel xitodelasolicitud.Unavezseacreadayactivadalacuentade usuario se otorga el acceso al sistema (Figura 6) y a sus caractersticas partiendo desde la interfaz de bienvenida, mostrada en la Figura 7. Cada usuario final posee control absoluto de su informacin (Figura 8) y de los archivos que suba, as como acceso limitado a datos de otros usuarios y archivospblicos.

Figura7.Interfazdebienvenidadeunusuarioregistrado.

El usuario final de SAVIA es el componente principal del sistema:sinusuarios,nohaysistema. Como cualquier otro sistema dependiente de usuarios, hay dos roles disponibles para la interaccin. El primero es el Administrador del sistema (conocido internamente con el Figura8.Gestindeunacuentadeusuario. nombredeusuariosavia),encargadodelagestintotaldelas tareas disponibles. Su misin es el control del sistema con Funcionalidadesdisponiblesenestemdulo autonoma y privilegios avanzados desde una interfaz tipo Creacin, validacin y activacin de cuentas de backend, construida de manera automtica por Django. Este usuario. usuarioescreadoconjuntamenteconlabasededatosydebe Modificacin y recuperacin (cuando sea necesario) sernico. delacontraseadeunacuentadeusuario.

13

SAVIA

Seleccindeltemapreferido(elcolordisponiblepara el marco de la interfaz grfica) para visualizar los contenidos. Gestindelainformacinpersonaldisponible,tantoa nivel pblicocomo anivel privado, desplegada en los perfilesdeusuarios. Gestindeunaimagenrepresentativadelacuentade usuario,oavatar. Gestin de la informacin sobre la ubicacin geogrficadeunusuarioatravsdeGoogleMaps[22]. Visualizacin del perfil pblico de cualquier usuario registrado, con informacin bsica dispuesta y autorizada. Eliminacin total, voluntaria y accesible en cualquier momento,delacuentadeusuario.

todoslosmensajessonalmacenados.Estesistemademensajes tambinesutilizadodemaneraautomticaeinternacuandoes necesarionotificaraunusuariodeunaoperacinsolicitadaal sistema.

Iteracin2:Moduloderelaciones Elmoduloderelacionessurgecomounaideaparahacerque SAVIA sea algo ms que un sistema personal de almacenamiento. Teniendo como estructura general el concepto de usuario final, surge como una idea innovadora el concepto de relaciones: una comunidad de usuarios interconectadaentrespormediodeunsistemadeamistades ymensajesinternos. En este contexto, una amistad es el vinculo creado a partir del binomio solicitud creada / solicitud aceptada entre dos usuarios registrados que toman contacto entre s a travs del sistema de bsqueda de perfiles pblicos. Un usuario puede tenertantosamigoscomodesee(Figura9)einiciarlarelacin endosvas:realizandolassolicitudesdeamistadquequiera,o aprobando (o rechazando si es el caso) las solicitudes de amistadquerecibadeotrosusuarios.

Figura10.Envodemensajesentreamigos. El sistema de bsqueda de usuarios permite localizar a cualquier usuario en el sistema a partir de un formulario de parmetrosbsicosyconocerloatravsdesuperfilpblicode usuario. Estando aqu, es posible solicitar una amistad (entre dosusuariossinvnculo)overlaversinextendidadelmismo perfil(parausuariosqueyasonamigos). Funcionalidadesdisponiblesenestemdulo Gestin de las solicitudes de amistad entre dos usuarios,conlaposibilidaddeenvodesdeunapartey elveredicto(aprobacinorechazo)delaotra. Gestin de amistades establecidas entre usuarios, paramarcarcomoamistaddestacadaoparaterminar unarelacinunilateralmente. Bsqueda de usuarios registrados en el sistema y visualizacindeperfilespblicosyperfilesextendidos. Gestin de mensajes, bien sea como comunicacin privada entre dos amigos o como notificacin del administrador.

Iteracin3:Modulodealmacenamiento Est claro: la esencia de SAVIA es la gestin de archivos. Siendo el componente principal del desarrollo, el mdulo de almacenamiento se encarga de todo el proceso que involucra losarchivospersonalesdeunusuario. El primer paso es la subida de un archivo a travs de un formulario tipo AJAX, como lo describe la Figura 11. Cada archivodebecumplircontresnormasbsicasdeformatopara ser vlido: tener la extensin adecuada, no sobrepasar ni el lmite de tamao mximo por archivo ni el lmite de espacio

Figura9.Listadodeamigosdeunusuario. Asmismo,unmensajeesunacomunicacintextualdirecta y privada entre dos usuarios enlazados previamente entre s comoamigos.Nohaylmiteenelnmerodemensajesquese envan(Figura10)nienelnmerodemensajesquesereciben:

14

SAVIA

asignado libre y contar con metadatos correctos a nivel de caracteres. Cabe destacar que a nivel interno del sistema hay disponibles variables parametrizables que determinan la lista de extensiones aceptadas de archivos, los tamaos mximos permitidos,laubicacinfsicadelosarchivosalmacenadosyla posibilidad de realizar copias de seguridad, como medida de redundanciadedatosencasodeemergencias.

cuenta de usuario tienen como destino (a nivel lgico) una entidadvirtualdenominadaespacio. SoportadatotalmenteaniveltecnolgicoporAJAXyconun tamaoasignadopordefecto,unespacioasociado(Figura13)a un usuario es el lugar nico y exclusivo de control de los archivos disponibles. Desde aqu es posible la bsqueda de archivos, la visualizacin jerrquica y la gestin individual de cadauno.Esunavistadividaentresgrandessecciones:elrbol de navegacin, el visualizador de contenidos de la carpeta actualyelvisualizadordelarchivoactualseleccionado.

Figura11.Formularioparasubirunarchivo. Un archivo almacenado cuenta con informacin asociada para permitir su localizacin lgica dentro de una cuenta de usuario: el esquema de metadatos. Posibilitando la bsqueda de archivos y la generacin de estadsticas, y tomando como base los elementos descriptores del estndar Dublin Core (presentadoenlaseccinIIdeestedocumento),losprincipales metadatosasociadosaunarchivosepresentanenlaFigura12.

Figura13.Vistageneraldeunespacio,envistademodoamplio.

Alladoizquierdoyocupandolatercerapartedelanchodela interfaz grfica, en la seccin del rbol de navegacin se disponen los archivos de manera jerrquica con una abstraccin del concepto de carpeta contenedora (no se permiten carpetas anidadas), organizados alfabticamente. Cada archivo subido, por defecto, es alojado dentro de la carpetadeiniciodelespacio.Delamismamaneraestaseccin cuenta con una barra dinmica de bsqueda de los archivos disponibles, que utiliza como parmetros los metadatos asociados y muestra los resultados adecuados cada vez que algntextoesdigitado. Delladoderechoseubican,enformadepila,lasseccinde Dueo visualizacindelacarpetaactual(partesuperior)ydelarchivo actual(parteinferior). Desde la parte relacionada con la carpeta contenedora Nombre seleccionada en el momento podemos ver sus archivos asociados en forma de tabla, y realizar algunas tareas de Extensin gestin: marcar el archivo como importante, marcar como archivo compartido, eliminar el archivo o descargar el contenido de la carpeta (en formato comprimido). Un archivo Descripcin compartidoesaquelqueunusuariodeterminacomovisible,o pblico, para descargas por parte de la red de sus amigos Palabrasclave directos.Enlaversinextendidadeunperfilseencuentranlos enlacesparadescargarlosarchivoscompartidosdeunusuario Figura12.Esquemademetadatosasociadosaunarchivo. especfico. Enelcuadrodevisualizacindelarchivoactualseleccionado Legestindelosarchivos,aligualquelaconsultadedatos estadsticos, es factible cuando se cuenta con al menos un contamosconinformacinmsdetalladadedichoarchivo,as archivo almacenado. Todos los archivos almacenados en una como tambin con opciones adicionales de gestin:

METADATOS

15

SAVIA

modificacin de algunos de los metadatos, envo del archivo por medio de un mensaje (slo si est marcado como archivo compartido), cambio de la carpeta contenedora asociada y la descarga del archivo, en su formato original o en formato comprimido. La consulta de datos estadsticos brinda al usuario una pequeareferenciasobrelostpicosmsimportantesycrticos para tener en cuenta, y facilitan su anlisis. Asumiendo el formato de presentacin de datos en un diagrama de pastel construido en tiempo real (a travs de Google Chart [23], a partirdelosarchivosalmacenadossepuedenvertresgrficas: laocupacinactualdelespacio(comolomuestralaFigura14), el porcentaje de archivos almacenados segn cada extensin aceptadaylaclasificacindelosarchivossegnsuvisibilidad.

Iteracin4:Modulodecomunicaciones Uno de los objetivos principales de este proyecto es la integracin con aplicaciones y desarrollos existentes, de la manera mssencillaymenostraumticaposible.Conectarsee interactuar con sistemas externos, de distinto propsito y con distinta arquitectura, es una labor cada vez ms popular e indispensable para ofrecer herramientas compuestas con ms funcionalidades.Enestamodavivelosserviciosweb(descritos enlaseccinII)ensusdistintossabores.Asmismo,unodelos lenguajes de intercambio de informacin mas utilizados, tambin explicado anteriormente, es XML. En este marco contextual nacen los servicios web de SAVIA, basados en una implementacinsencillaperopoderosa:XMLRPC. XMLRPC [24] (donde RPC significa Remote Procedure Call, en ingls) es un conjunto de bibliotecas de funciones implementadasendistintoslenguajes(Pythonloincorporaen sus versiones actuales) que proporciona los artefactos necesarios para realizar comunicaciones HTTP con el modelo clienteservidortradicionalenunared. Este mdulo contiene las dependencias necesarias para ofrecer las funcionalidades elementales de SAVIA: gestin bsica de archivos. Basta con consultar la URL de enlace para descubrir cules operaciones tiene el servidor de escucha de serviciosweb(comoloindicalaFigura15).

Figura14.Grficodepastelmostrandolaocupacinactualde unespacio. Funcionalidadesdisponiblesenestemdulo Subida de los archivos al espacio asociado a un usuarioactual. Visualizacin de todos los archivos disponibles desde lainterfazdeespacio. Figura15.Interfazdeaccesoalosservicioswebbasadosen Localizacindearchivosdisponiblesdesdelabarrade XMLRPC. bsqueda dinmica, desde el rbol de navegacin y desdelavisualizacindelacarpetaactual. Funcionalidadesdisponiblesenestemdulo Gestin de un grupo de archivos asociados a una Almacenamientodearchivosalespacioasociadoaun mismacarpetacontenedora. usuario solicitante (si no existe, es creado). Esta Gestin de un archivo particular desde el cuadro de funcinsobrescribelosarchivosexistentesencasode visualizacindelarchivoactual. sernecesario. Compartirarchivosentreunareddeamigos,yatravs Descarga de un archivo solicitado por un usuario demensajes. autorizado Descargadearchivoalmacenadosenformatooriginal Eliminacin completa deunarchivosolicitadoporun yformatocomprimido. usuarioautorizado.

16

SAVIA

VI. CONCLUSIONES SAVIAfueprocesoquerequiriungranesfuerzoadistintos niveles pero que, visto en retrospectiva, nos deja una gran sensacin del deber cumplido, de buena manera, y de satisfaccinanivelpersonalyacadmico. Laexperienciaadquirida esinvaluableynosfortaleceyllena de coraje para afrontar los nuevos desafos con entereza y responsabilidad. SAVIAesunproductonuevoqueestparaquedarseypara seguircreciendo.Losobjetivospropuestossecumplierondela mejor manera en cada etapa del proceso. La marca distintiva que deja es evidente: innovacin, simplicidad y eficacia. El precedenteestclaro.Lahuellaestplasmada.Peroanesel primerodemuchospasos. Las ideas sencillas que cimientan la infraestructura de este proyecto no son un impedimento para construir soluciones verstilesdentrodeunmbitobiendefinido:lascosasgrandes empiezansiempredeotrasmspequeas. Seguir de cerca e implementar las ltimas tecnologas disponibles fue una sucesin de decisiones satisfactorias que consumanestedesarrollocomountrabajoslidoyconcriterio, que puede adaptarse sin problemas en el entorno al que se enfrente, dejando la puerta abierta a cualquier sugerencia o crticaconstructiva. La metodologa XP es la mejor brjula que se puede consultar y confiar en proyectos de este tipo, an ms si se siguensusrecomendacionesdemanerarigurosa. Es importante resaltar que el patrn de desarrollo de softwaredeModeloVistaControladoroptimizaelrendimiento durante todo el proceso de construccin puesto que permite enfocar los esfuerzos en distintos niveles con alta cohesin y bajoacoplamiento. El futuro que se vislumbra para un entorno de desarrollo novel pero maduro como Django es prometedor y cada vez capta ms la atencin de los valientes y amantes de las soluciones rpidas y simples (nimo, sin miedo, nuevos desarrolladores!).

Entrealgunaspodemosmencionar: Refinamiento de la codificacin, tanto a nivel de PythoncomodeHTML,CSSyJavaScript,parahacerla aplicacintodavamsreutilizableylegible. Rediseo desde el punto de vista grfico para seguir innovandoeimplementandolasltimastendencias. Adaptacin a los navegadores utilizados actualmente, sin olvidar la retrocompatibilidad con las versiones anteriores, y a los dispositivos mviles que utilizan redesinalmbricas. Actualizacin del motor de control de las subidas de archivos, tomando como base los elementos que proporcionaDjango,paracontrolarlosarchivosconla mayorgranularidadposible(aniveldebytes).Tambin es recomendable desarrollar una interfaz de subidas soportadaconartefactosdraganddrop. Establecer SAVIA como un producto de carcter internacionalconsupropioespacioenInternet. Implementar nuevas funcionalidades orientadas a la interaccin social, como mensajera instantnea, weblogs personales y sistema de sindicacin de contenidos.

AGRADECIMIENTOS

Queremos ante todo dar las gracias al profesor Mauricio Gaona por su apoyo incondicional y su paciencia, y por brindarnoselespacioylasherramientasnecesariasparahacer deSAVIAunarealidad. PorsupuestoalaUniversidadporestoscincogratosaosde formacin,endondeademsdeeducarnosyensearnosaver el mundo con otra mirada, pudimos conocer personas muy valiosasquesequedandentroparasiempre. Totalestambinsonlosagradecimientosanuestrasfamilias y seresqueridos,queconsusesfuerzoinfinitosporbrindarnos lo mejor, han hecho que hoy seamos profesionales. Los amamos. Todopuedemejoraran Gracias,muchasgraciasatodos! Comotrabajosfuturosquesedesprendendeestedesarrollo podemos destacar la gran potencialidad que SAVIA ha dejado REFERENCIAS establecida. Esteesunaprimeraaproximacindeunproductocontoda unavidapordelanteyquemereceevolucionareneltiempoy perdurar.Envistadeloanteriorestoesindispensablerealizar [1] S. Downes. Elearning 2.0. ELearning Magazine. algunas actualizaciones y mejoras a las funcionalidades Disponible en disponiblesactualmente,quesibiensoncorrectas,puedenser http://www.elearnmag.org/subpage.cfm?section=articles mejoresensucontexto. &article=291.Consultadoel10deJuniode2008.

17

SAVIA

NetCentric. Modelo de Innovacin de la Enseanza usandounsistemadeRespuestasdeAudiencia:MINERA. Disponible en http://eisc.univalle.edu.co/index.php?option=com_conten t&task=view&id=120.Consultadoel10deJuniode2008. [3] Computer File. Wikipedia. Disponible en http://en.wikipedia.org/wiki/Computer_file.Consultadoel 10deJuniode2008. System. Wikipedia. Disponible en [4] File http://en.wikipedia.org/wiki/File_system. Consultado el 10deJuniode2008. [5] Virtual File System. Wikipedia. Disponible en http://en.wikipedia.org/wiki/Virtual_file_system. Consultadoel10deJuniode2008. [6] Distributed File System. Wikipedia. Disponible en http://en.wikipedia.org/wiki/Distributed_file_system. Consultadoel10deJuniode2008. [7] G. G. Chowdhury. Introduction to modern information retrieval.2EdicinFacetPublishing,2004. [8] Gua oficial sobre el uso de Dublin Core. Disponible en http://dublincore.org/documents/usageguide/. Consultadoel27deOctubrede2008. web. Wikipedia. [9] Servicios Disponible en http://es.wikipedia.org/wiki/Servicio_web. Consultado el 9deAgostode2009. [10] XML. Wikipedia. Disponible en http://en.wikipedia.org/wiki/XML. Consultado el 4 de Noviembrede2008. [11] E.Chvez.RichInternetApplications[Definicin].Riactive. Disponible en http://riactive.com/2006/12/06/rich internetapplicationdefinicion/.Consultadoel10deJunio de2008. [12] Rich Internet Applications. Wikipedia. Disponible en http://es.wikipedia.org/wiki/Rich_Internet_Application. Consultadoel10deJuniode2008. [2]

Wikipedia. Disponible en [13] Ajax. http://es.wikipedia.org/wiki/AJAX. Consultado el 9 de Agostode2009. Wikipedia. Disponible en [14] jQuery. http://es.wikipedia.org/wiki/JQuery. Consultado el 9 de Agostode2009. Programming. [15] Extreme http://www.extremeprogramming.com [16] Django. http://www.djangoproject.com [17] Historias de Usuarios. Consultar los archivos anexos ubicadosenAnalisis/HU01.pdf [18] Modelo de la Base de Datos. Consultar el archivo anexo ubicadoenDiseo/MBD01.pdf [19] Planificacindelasiteraciones.Consultarelarchivoanexo ubicadoenAnalisis/ [20] Diagramas de Navegacin. Consultar los archivos anexos ubicadosenDiseo/ [21] PlanificacindelasPruebas.Consultarlosarchivosanexos ubicadosenPruebas/ [22] GoogleMaps. http://code.google.com/apis/maps/ [23] GoogleChart. http://code.google.com/apis/chart/ [24] XMLRPC. http://www.xmlrpc.com/spec/

18

Вам также может понравиться