32 resultados para Aplicaciones web
em Universidad Politécnica de Madrid
Resumo:
La usabilidad es un atributo de calidad de un sistema software que llega a ser crítico en sistemas altamente interactivos. Desde el campo de la Interacción Persona-Ordenador se proponen recomendaciones que permiten alcanzar un nivel adecuado de usabilidad en un sistema. En la disciplina de la Ingeniería de Software se ha establecido que algunas de estas recomendaciones afectan a la funcionalidad principal de los sistemas y no solo a la interfaz de usuario. Este tipo de recomendaciones de usabilidad se deben tener en cuenta desde las primeras actividades y durante todo el proceso de desarrollo, así como se hace con atributos tales como la seguridad, la facilidad de mantenimiento o el rendimiento. Desde la Ingeniería de Software se han hecho estudios y propuestas para abordar la usabilidad en las primeras actividades del desarrollo. En particular en la educción de requisitos y diseño de la arquitectura. Estas propuestas son de un alto nivel de abstracción. En esta investigación se aborda la usabilidad en actividades avanzadas del proceso de desarrollo: el diseño detallado y la programación. El objetivo de este trabajo es obtener, formalizar y validar soluciones reutilizables para la usabilidad en estas actividades. En este estudio se seleccionan tres funcionalidades de usabilidad identificadas como de alto impacto en el diseño: Abortar Operación, Retroalimentación de Progreso y Preferencias. Para la obtención de elementos reutilizables se utiliza un método inductivo. Se parte de la construcción de aplicaciones web particulares y se induce una solución general. Durante la construcción de las aplicaciones se mantiene la trazabilidad de los elementos relacionados con cada funcionalidad de usabilidad. Al finalizar se realiza un análisis de elementos comunes, y los hallazgos se formalizan como patrones de diseño orientados a la implementación y patrones de programación en cada uno de los lenguajes utilizados: PHP, VB .NET y Java. Las soluciones formalizadas como patrones se validan usando la metodología de estudio de casos. Desarrolladores independientes utilizan los patrones para la inclusión de las tres funcionalidades de usabilidad en dos nuevas aplicaciones web. Como resultado, los desarrolladores pueden usar con éxito las soluciones propuestas para dos de las funcionalidades: Abortar Operación y Preferencias. La funcionalidad Retroalimentación de Progreso no puede ser implementada completamente. Se concluye que es posible obtener elementos reutilizables para la implementación de cada funcionalidad de usabilidad. Estos elementos incluyen: escenarios de aplicación, que son la combinación de casuísticas que generan las funcionalidades de usabilidad, responsabilidades comunes necesarias para cubrir los escenarios, componentes comunes para cumplir con las responsabilidades, elementos de diseño asociados a los componentes y el código que implementa el diseño. Formalizar las soluciones como patrones resulta útil para comunicar los hallazgos a otros desarrolladores y los patrones se mejoran a través de su utilización en nuevos desarrollos. La implementación de funcionalidades de usabilidad presenta características que condicionan su reutilización, en particular, el nivel de acoplamiento de la funcionalidad de usabilidad con las funcionalidades de la aplicación, y la complejidad interna de la solución. ABSTRACT Usability is a critical quality attribute of highly interactive software systems. The humancomputer interaction field proposes recommendations for achieving an acceptable system usability level. The discipline of software engineering has established that some of these recommendations affect not only the user interface but also the core system functionality. This type of usability recommendations must be taken into account as of the early activities and throughout the software development process as in the case of attributes like security, ease of maintenance or performance. Software engineering has conducted studies and put forward proposals for tackling usability in the early development activities, particularly requirements elicitation and architecture design. These proposals have a high level of abstraction. This research addresses usability in later activities of the development process: detailed design and programming. The goal of this research is to discover, specify and validate reusable usability solutions for detailed design and programming. Abort Operation, Feedback and Preferences, three usability functionalities identified as having a high impact on design, are selected for the study. An inductive method, whereby a general solution is induced from particular web applications built for the purpose, is used to discover reusable elements. During the construction of the applications, the traceability of the elements related to each usability functionality is maintained. At the end of the process, the common and possibly reusable elements are analysed. The findings are specified as implementation-oriented design patterns and programming patterns for each of the languages used: PHP, VB .NET and Java. The solutions specified as patterns are validated using the case study methodology. Independent developers use the patterns in order to build the three usability functionalities into two new web applications. As a result, the developers successfully use the proposed solutions for two of the functionalities: Abort Operation and Preferences. The Progress Feedback functionality cannot be fully implemented. We conclude that it is possible to discover reusable elements for implementing each usability functionality. These elements include: application scenarios, which are combinations of cases that generate usability functionalities, common responsibilities to cover the scenarios, common components to fulfil the responsibilities, design elements associated with the components and code implementing the design. It is useful to specify solutions as patterns in order to communicate findings to other developers, and patterns improve through further use in other development projects. Reusability depends on the features of usability functionality implementation, particularly the level of coupling of the usability functionality with the application functionalities and the internal complexity of the solution.
Resumo:
Este proyecto está centrado en investigar la utilización de los frameworks de Java Spring,Hibernate y JSF en el desarrollo de aplicaciones web. Para poder analizar sus ventajas e inconvenientes, he realizado un caso práctico, una aplicación web llamada “Votación de Product Box”. Las primeras dos secciones de este proyecto son este resumen del proyecto y un abstract, es decir, este mismo resumen, en inglés. En la introducción (sección tercera), definiré los objetivos del proyecto, luego en la cuarta sección explicaré las características principales de cada framework, destacando sus ventajas. Una vez presentados los frameworks, paso a explicar el caso práctico, definiendo los requisitos de la aplicación Web y sus casos de uso en la quinta sección. Describo el entorno de desarrollo, las herramientas utilizadas y la razón por las cuales las he elegido en la sexta sección. Ahora explico cómo he realizado la integración de los tres frameworks en la aplicación (sección séptima) y la relaciono por medio de diagramas de clase y de entidad-relación (sección octava). Por último he realizado un tutorial de uso de la aplicación Web (sección novena), he sacado las conclusiones de haber trabajado con estos frameworks, qué ventajas e inconvenientes he encontrado y qué he aprendido a lo largo de este proyecto (sección décima),y he referenciado una bibliografía por si se quiere profundizar en el estudio de estos frameworks (sección undécima). ABSTRACT This project focuses on investigating the use of Java frameworks Spring, JSF and Hibernate on the development of Web applications. To analyze their advantages and disadvantages, I have made a practical example, a website called “Votación de Product Box”. The first two sections of this project are the project summary and abstract (the same summary in English). In the introduction (section three), I define the project goals, and then, in the fourth section, I explain the main features of each framework, emphasizing on its advantages. After introducing the frameworks, I explain the study case, I gather requirements and I make use cases in the fifth section. I describe the development environment, the tools used and the reason why I have chosen them in the sixth section. So I can explain how I made the integration of the three frameworks in the application (section seventh) and relate through class diagrams and entity relationship (section eight). Finally I make a tutorial to use the Web application (Section ninth), I draw to the conclusions of working with these frameworks, which advantages and disadvantages I have found, and I what things I learned through this project (tenth section) and I have a referenced bibliography just in case you want to find out some more about these frameworks (section eleven).
Resumo:
En la Web 2.0, donde usuarios finales sin grandes conocimientos de programación pueden interactuar y crear aplicaciones web utilizando componentes publicados en Internet, ofrecidos por una gran variedad de proveedores de servicio. La selección de estos componentes requiere de un análisis exhaustivo por parte de los usuarios sobre las propiedades de estos componentes en referencia a su calidad. En este proyecto, se presentan dos modelos de calidad según una estructura jerárquica, uno para componentes web como elementos autónomos y otro para componentes utilizados en aplicaciones de mashup, basado en un análisis de la emergente Web 2.0. Además, se define una herramienta de medición y anotación de calidad para los distintos niveles de los modelos. Estas herramientas pretenden ser un útil instrumento para los desarrolladores y usuarios de componentes y mashups.---ABSTRACT---In the Web 2.0, where end users without a technical programming background can interact and develop web applications leveraging web components published on the Internet, offered by a great diversity of service providers. This component selection requires an exhaustive analysis by these end users based on the requirements of these components related to their quality. In this work, two quality models are presented according to a hierarchical structure, one for web components as independent elements and another one for web components as parts of web mashup applications, based on an analysis of the emerging Web 2.0. In addition, a measuring and write down quality framework is defined to weigh the quality of all the levels of the models. These tools intend to provide a useful instrument to components and mashup developers and end users.
Resumo:
A lo largo de este documento se describe el trabajo llevado a cabo para el logro de todos objetivos de este Trabajo Fin de Grado, el cual tiene como objetivo principal la mejora de la herramienta de edición de las conexiones internas de un mashup proporcionada actualmente por la plataforma web WireCloud. WireCloud es una plataforma web centrada en la construcción visual de mashups de aplicaciones a partir de la interconexión de pequeñas aplicaciones web denominadas widgets. Los principales inconvenientes presentes en el actual editor de conexiones que incluye esta plataforma afectan principalmente a sus usuarios con poca experiencia en diseño web. Estos usuarios tienen dificultades a la hora de interpretar el esquema de conexiones de un mashup ajeno y también, de crear el esquema de conexiones de un mashup propio. La mejora realizada supone un cambio en la metáfora utilizada para la creación de las conexiones, que ahora se organiza en torno a unidades conceptuales denominadas comportamientos que representan subconjuntos cohesionados de conexiones con significado (representando por si mismos comportamientos relevantes del mashup). Con este cambio se logra solventar los inconvenientes que presenta el actual sistema, principalmente la necesidad de crear (y visualizar) simultáneamente todas las conexiones requeridas por el mashup, lo cual supone que: a) es difícil identificar con qué propósito se ha creado cada conexión y qué relación guardan unas conexiones con otras. b) existe un riesgo de olvidar alguna conexión, fundamentalmente por ser difícil la interpretación del propósito de cada conexión y por la imposibilidad de identificar y nombrar conjuntos de conexiones que tienen un propósito determinado. Antes de implementar el código fuente se realizó un estudio pormenorizado de las tecnologías que actualmente utiliza WireCloud, además de un estudio en profundidad de la situación del anterior editor y de las nuevas características y ventajas buscadas en este nuevo editor. Con este último propósito se definieron varios casos de estudio que ayudaron a concretar qué se ha de entender por un comportamiento en el diseño de las conexiones de un mashup y también, ayudaron a definir la mejor organización visual del nuevo editor en torno al concepto de comportamiento. El resto del trabajo consistió en la implementación del nuevo editor y en la elaboración de toda la documentación relacionada: principalmente el manual de uso del nuevo editor que estará disponible como parte de la documentación online de WireCloud.---ABSTRACT---This document describes the work carried out for the achievement of all targets of this Final Project, which has as its main objective the improvement of the edition tool of the mashup’s internal connections that is currently provided by WireCloud. WireCloud is a web platform focused on building visual of web mashups from the interconnection of web applications called web widgets. The main drawbacks present in the current web editor of connections, includes on this platform, mainly affect to users with little experience in web design. These users have difficulties for interpreting the wiring diagram of any web mashup and also, creating the wiring diagram of an own web mashup. The improvement made a change in the metaphor used for creating connections, now managing a conceptual units called behaviors that represent subsets of meaningful connections. This change overcomes the drawbacks of the current system, mainly the need to create and display simultaneously all connections required by the web mashup, which means that: a) Difficultly identify what purpose is created each connection and how they relate to each other connections. b) There is the risk of forgetting some connection, mainly for being difficult to interpret the purpose of each connection and the inability to identify and name sets of connections that have a specific purpose. Before deploying the source code, the study of the technologies currently used WireCloud was performed, plus the study of the situation of the previous editor and new features and advantages searched for this new editor was performed too. For the latter purpose was defined several case studies that helped to specify what understood by behavior in the design of the connections of a web mashup and also that helped to define the best visual organization of the new behavior-oriented wiring editor. The rest of the work involved in implementing the new wiring web editor and in the preparation of all documentation related: mainly user manual for using the new wiring web editor that will be available as part of the WireCloud online documentation.
Resumo:
This PhD thesis contributes to the problem of resource and service discovery in the context of the composable web. In the current web, mashup technologies allow developers reusing services and contents to build new web applications. However, developers face a problem of information flood when searching for appropriate services or resources for their combination. To contribute to overcoming this problem, a framework is defined for the discovery of services and resources. In this framework, three levels are defined for performing discovery at content, discovery and agente levels. The content level involves the information available in web resources. The web follows the Representational Stateless Transfer (REST) architectural style, in which resources are returned as representations from servers to clients. These representations usually employ the HyperText Markup Language (HTML), which, along with Content Style Sheets (CSS), describes the markup employed to render representations in a web browser. Although the use of SemanticWeb standards such as Resource Description Framework (RDF) make this architecture suitable for automatic processes to use the information present in web resources, these standards are too often not employed, so automation must rely on processing HTML. This process, often referred as Screen Scraping in the literature, is the content discovery according to the proposed framework. At this level, discovery rules indicate how the different pieces of data in resources’ representations are mapped onto semantic entities. By processing discovery rules on web resources, semantically described contents can be obtained out of them. The service level involves the operations that can be performed on the web. The current web allows users to perform different tasks such as search, blogging, e-commerce, or social networking. To describe the possible services in RESTful architectures, a high-level feature-oriented service methodology is proposed at this level. This lightweight description framework allows defining service discovery rules to identify operations in interactions with REST resources. The discovery is thus performed by applying discovery rules to contents discovered in REST interactions, in a novel process called service probing. Also, service discovery can be performed by modelling services as contents, i.e., by retrieving Application Programming Interface (API) documentation and API listings in service registries such as ProgrammableWeb. For this, a unified model for composable components in Mashup-Driven Development (MDD) has been defined after the analysis of service repositories from the web. The agent level involves the orchestration of the discovery of services and contents. At this level, agent rules allow to specify behaviours for crawling and executing services, which results in the fulfilment of a high-level goal. Agent rules are plans that allow introspecting the discovered data and services from the web and the knowledge present in service and content discovery rules to anticipate the contents and services to be found on specific resources from the web. By the definition of plans, an agent can be configured to target specific resources. The discovery framework has been evaluated on different scenarios, each one covering different levels of the framework. Contenidos a la Carta project deals with the mashing-up of news from electronic newspapers, and the framework was used for the discovery and extraction of pieces of news from the web. Similarly, in Resulta and VulneraNET projects the discovery of ideas and security knowledge in the web is covered, respectively. The service level is covered in the OMELETTE project, where mashup components such as services and widgets are discovered from component repositories from the web. The agent level is applied to the crawling of services and news in these scenarios, highlighting how the semantic description of rules and extracted data can provide complex behaviours and orchestrations of tasks in the web. The main contributions of the thesis are the unified framework for discovery, which allows configuring agents to perform automated tasks. Also, a scraping ontology has been defined for the construction of mappings for scraping web resources. A novel first-order logic rule induction algorithm is defined for the automated construction and maintenance of these mappings out of the visual information in web resources. Additionally, a common unified model for the discovery of services is defined, which allows sharing service descriptions. Future work comprises the further extension of service probing, resource ranking, the extension of the Scraping Ontology, extensions of the agent model, and contructing a base of discovery rules. Resumen La presente tesis doctoral contribuye al problema de descubrimiento de servicios y recursos en el contexto de la web combinable. En la web actual, las tecnologías de combinación de aplicaciones permiten a los desarrolladores reutilizar servicios y contenidos para construir nuevas aplicaciones web. Pese a todo, los desarrolladores afrontan un problema de saturación de información a la hora de buscar servicios o recursos apropiados para su combinación. Para contribuir a la solución de este problema, se propone un marco de trabajo para el descubrimiento de servicios y recursos. En este marco, se definen tres capas sobre las que se realiza descubrimiento a nivel de contenido, servicio y agente. El nivel de contenido involucra a la información disponible en recursos web. La web sigue el estilo arquitectónico Representational Stateless Transfer (REST), en el que los recursos son devueltos como representaciones por parte de los servidores a los clientes. Estas representaciones normalmente emplean el lenguaje de marcado HyperText Markup Language (HTML), que, unido al estándar Content Style Sheets (CSS), describe el marcado empleado para mostrar representaciones en un navegador web. Aunque el uso de estándares de la web semántica como Resource Description Framework (RDF) hace apta esta arquitectura para su uso por procesos automatizados, estos estándares no son empleados en muchas ocasiones, por lo que cualquier automatización debe basarse en el procesado del marcado HTML. Este proceso, normalmente conocido como Screen Scraping en la literatura, es el descubrimiento de contenidos en el marco de trabajo propuesto. En este nivel, un conjunto de reglas de descubrimiento indican cómo los diferentes datos en las representaciones de recursos se corresponden con entidades semánticas. Al procesar estas reglas sobre recursos web, pueden obtenerse contenidos descritos semánticamente. El nivel de servicio involucra las operaciones que pueden ser llevadas a cabo en la web. Actualmente, los usuarios de la web pueden realizar diversas tareas como búsqueda, blogging, comercio electrónico o redes sociales. Para describir los posibles servicios en arquitecturas REST, se propone en este nivel una metodología de alto nivel para descubrimiento de servicios orientada a funcionalidades. Este marco de descubrimiento ligero permite definir reglas de descubrimiento de servicios para identificar operaciones en interacciones con recursos REST. Este descubrimiento es por tanto llevado a cabo al aplicar las reglas de descubrimiento sobre contenidos descubiertos en interacciones REST, en un nuevo procedimiento llamado sondeo de servicios. Además, el descubrimiento de servicios puede ser llevado a cabo mediante el modelado de servicios como contenidos. Es decir, mediante la recuperación de documentación de Application Programming Interfaces (APIs) y listas de APIs en registros de servicios como ProgrammableWeb. Para ello, se ha definido un modelo unificado de componentes combinables para Mashup-Driven Development (MDD) tras el análisis de repositorios de servicios de la web. El nivel de agente involucra la orquestación del descubrimiento de servicios y contenidos. En este nivel, las reglas de nivel de agente permiten especificar comportamientos para el rastreo y ejecución de servicios, lo que permite la consecución de metas de mayor nivel. Las reglas de los agentes son planes que permiten la introspección sobre los datos y servicios descubiertos, así como sobre el conocimiento presente en las reglas de descubrimiento de servicios y contenidos para anticipar contenidos y servicios por encontrar en recursos específicos de la web. Mediante la definición de planes, un agente puede ser configurado para descubrir recursos específicos. El marco de descubrimiento ha sido evaluado sobre diferentes escenarios, cada uno cubriendo distintos niveles del marco. El proyecto Contenidos a la Carta trata de la combinación de noticias de periódicos digitales, y en él el framework se ha empleado para el descubrimiento y extracción de noticias de la web. De manera análoga, en los proyectos Resulta y VulneraNET se ha llevado a cabo un descubrimiento de ideas y de conocimientos de seguridad, respectivamente. El nivel de servicio se cubre en el proyecto OMELETTE, en el que componentes combinables como servicios y widgets se descubren en repositorios de componentes de la web. El nivel de agente se aplica al rastreo de servicios y noticias en estos escenarios, mostrando cómo la descripción semántica de reglas y datos extraídos permiten proporcionar comportamientos complejos y orquestaciones de tareas en la web. Las principales contribuciones de la tesis son el marco de trabajo unificado para descubrimiento, que permite configurar agentes para realizar tareas automatizadas. Además, una ontología de extracción ha sido definida para la construcción de correspondencias y extraer información de recursos web. Asimismo, un algoritmo para la inducción de reglas de lógica de primer orden se ha definido para la construcción y el mantenimiento de estas correspondencias a partir de la información visual de recursos web. Adicionalmente, se ha definido un modelo común y unificado para el descubrimiento de servicios que permite la compartición de descripciones de servicios. Como trabajos futuros se considera la extensión del sondeo de servicios, clasificación de recursos, extensión de la ontología de extracción y la construcción de una base de reglas de descubrimiento.
Resumo:
Este Proyecto de Fin de Carrera presenta un prototipo de aplicación móvil híbrida multi-plataforma para Android y iOS. Las aplicaciones móviles híbridas son una combinación de aplicaciones web móviles y aplicaciones móviles nativas. Se desarrollan parcialmente con tecnologías web y pueden acceder a la capa nativa y sensores del teléfono. Para el usuario se presentan como aplicaciones nativas, ya que se pueden descargar de las tiendas de aplicaciones y son instaladas en el dispositivo. El prototipo consiste en la migración del módulo de noticias financieras de las aplicaciones actuales para móviles de una compañía bancaria reimplementándolo como aplicación híbrida utilizando uno de los entornos de desarrollo disponibles en el mercado para este propósito. El desarrollo de aplicaciones híbridas puede ahorrar tiempo y dinero cuando se pretende alcanzar más de una plataforma móvil. El objetivo es la evaluación de las ventajas e inconvenientes que ofrece el desarrollo de aplicaciones híbridas en términos de reducción de costes, tiempo de desarrollo y resultado final de la aplicación. El proyecto consta de varias fases. Durante la primera fase se realiza un estudio sobre las aplicaciones híbridas que podemos encontrar hoy en día en el mercado utilizando los ejemplos de linkedIn, Facebook y Financial times. Se hace hincapié en las tecnologías utilizadas, uso de la red móvil y problemas encontrados. Posteriormente se realiza una comparación de distintos entornos de desarrollo multi-plataforma para aplicaciones híbridas en términos de la estrategia utilizada, plataformas soportadas, lenguajes de programación, acceso a capacidades nativas de los dispositivos y licencias de uso. Esta primera fase da como resultado la elección del entorno de desarrollo más adecuado a las exigencias del proyecto, que es PhoneGap, y continua con un análisis más detallado de dicho entorno en cuanto a su arquitectura, características y componentes. La siguiente fase comienza con un estudio de las aplicaciones actuales de la compañía para extraer el código fuente necesario y adaptarlo a la arquitectura que tendrá la aplicación. Para la realización del prototipo se hace uso de la característica que ofrece PhoneGap para acceder a la capa nativa del dispositivo, esto es, el uso de plugins. Se diseña y desarrolla un plugin que permite acceder a la capa nativa para cada plataforma. Una vez desarrollado el prototipo para la plataforma Android, se migra y adapta para la plataforma iOS. Por último se hace una evaluación de los prototipos en cuanto a su facilidad y tiempo de desarrollo, rendimiento, funcionalidad y apariencia de la interfaz de usuario. ABSTRACT. This bachelor's thesis presents a prototype of a hybrid cross-platform mobile application for Android and iOS. Hybrid mobile applications are a combination of mobile web and mobile native applications. They are built partially with web technologies and they can also access native features and sensors of the device. For a user, they look like native applications as they are downloaded from the application stores and installed on the device. This prototype consists of the migration of the financial news module of current mobile applications from a financial bank reimplementing them as a hybrid application using one of the frameworks available in the market for that purpose. Development of applications on a hybrid way can help reducing costs and effort when targeting more than one platform. The target of the project is the evaluation of the advantages and disadvantages that hybrid development can offer in terms of reducing costs and efforts and the final result of the application. The project starts with an analysis of successfully released hybrid applications using the examples of linkedIn, Facebook and Financial Times, emphasizing the different used technologies, the transmitted network data and the encountered problems during the development. This analysis is followed by a comparison of most popular hybrid crossplatform development frameworks in terms of the different approaches, supported platforms, programming languages, access to native features and license. This first stage has the outcome of finding the development framework that best fits to the requirements of the project, that is PhoneGap, and continues with a deeper analysis of its architecture, features and components. Next stage analyzes current company's applications to extract the needed source code and adapt it to the architecture of the prototype. For the realization of the application, the feature that PhoneGap offers to access the native layer of the device is used. This feature is called plugin. A custom plugin is designed and developed to access the native layer of each targeted platform. Once the prototype is finished for Android, it is migrated and adapted to the iOS platform. As a final conclusion the prototypes are evaluated in terms of ease and time of development, performance, functionality and look and feel.
Resumo:
Este Trabajo fin de grado ha tomado como punto de partida el escenario y los casos de uso que han sido seleccionados para el demostrador ("live demo") del proyecto europeo de I+D+I FI-WARE para, a través del diseño y de la implementación del conjunto de widgets y operadores que forman parte de dicho demostrador, deducir los principios subyacentes al Desarrollo sistemático de los elementos composicionales que conforman un mashup de aplicaciones Web 2.0. En concreto, con el escenario escogido se quiere demostrar, en un contexto de Smart Cities, como puede monitorizarse el estado y la geolocalización de un conjunto de máquinas de vending y de los técnicos y reponedores que les dan soporte. Este trabajo fin de grado se ocupa, en concreto, de crear todos los componentes de interfaz necesarios para poder ofrecer un mashup de aplicación que ofrezca un cuadro de mando personalizable para llevar a cabo la monitorización y el control de máquinas de vending, técnicos y reponedores. Teniendo en cuenta el documento de casos de uso para ese escenario, se hizo una revisión de los diferentes widgets y operadores que había que diseñar y desarrollar. El conjunto inicial de widgets se mantuvo invariable, ya que las vistas que hay que mostrar deben ser las que se especifican en el documento anteriormente citado. No obstante, los operadores necesarios para el mashup han ido cambiando a lo largo del desarrollo como consecuencia de las necesidades de los tipos de datos tratados y de las características propias de la plataforma utilizada. El diseño del mashup se ha dividido en dos tipos de diseños distintos: Diseño de vistas: Es un disño de alto nivel donde se pueden observar las distintas vistas que vería el usuario en cada uno de los widgets (los operadores no tienen vista). Diseño de interacciones: Es un diseño de alto nivel donde se representa esquemáticamente el ujo de datos entre los elementos composicionales del mashup (tanto widgets como operadores). Al mismo tiempo que se planteaba el diseño del mashup, y como consecuencia de la experiencia ganada, se han podido ir realizando trabajos como la creación de la "Guía de desarrollo de widgets y operadores" y la "Guía de estilo para el desarrollo de widgets y operadores".Estos documentos, por su importancia, dan pie al título del presente trabajo ya que suponen una ayuda metodológica al desarrollo sistemático de elementos composicionales para mashup de aplicaciones. Durante ese periódo, simultaneamente, se pudieron encontrar y consultar diferentes fuentes de información que completan el "Estado del arte" y el documento de "Principios de diseño de aplicaciones composicionales orientadas a mashups" y se realizaron varias herramientas que facilitan la tarea del programador de crear un nuevo widget u operador desde cero. Entre estas últimas, destacan: una herramienta para crear y mantener la estructura de directorios y archivos de un widget y de un operador; y una herramienta que empaqueta todos los ficheros del widget u operador en un solo fichero WGT, dejándolo preparado para ser desplegado en la plataforma. La mayor parte del trabajo ha consistido en la implementación de los widgets y operadores. Los widgets implementados son los siguientes: Map Viewer. Issues List. Technicians List. Technicians Info. Los operadores implementados son los siguientes: Poi2Issue Issue2Poi Poi2vCard Vcard2Poi TechnicianSource IssuesSource También se han realizado tres tipos de tests: unitarios, de integracion y de sistema. Además se ha creado documentación de cada elemento composicional para el usuario. En dicha documentación se explica cuales son las funcionalidades de cada uno de los elementos composicionales y cuales son las capacidades de conexión con otros elementos. El resultado de mi trabajo puede observarse en: http://www.youtube.com/watch?v=r8 Vv ehJSw
Resumo:
En el departamento de Ocio Digital de bq se desarrollan multitud de proyectos con diferentes modelos de negocio y diferentes stack tecnológicos. Para llevar a cabo todos estos proyectos, es necesario tener un ecosistema de desarrollo lo más unificado y centralizado posible. Por eso, en el departamento existe una plataforma genérica de servicios REST sobre la que se apoyan todos los aplicativos desarrollados. Para agilizar y facilitar la integración de los aplicativos con la plataforma de servicios,se desarrolla este SDK (Software Development Kit) basado en JavaScript llamado corbel-js. Este SDK ha de funcionar tanto en aplicaciones web, como en un middleware basado en node.js desarrollado también en la organización, por lo que el SDK se ha desarrollado de forma híbrida, siendo capaz de ejecutarse tanto en en el lado del cliente, como en el lado del servidor. Además, como parte de la filosofía del departamento, el desarrollo del SDK está basado en tecnologías Open Source, usando metodologías ágiles de desarrollo y un sistema de integración continua y revisión de código, garantizando la calidad del mismo. ABSTRACT A lot of different kinds of software projects are developed in the digital department of bq. To easily develop all of these projects, each one with its own business model and technology stack, it is necessary to have an unique software ecosystem. Because of that, in the software department a generic service REST platform has been developed. To support an easy integration of the applications with the service platform of the organization, this SDK(Software Development Kit) has been developed in JavaScript. As the SDK has to run under a web application and under a software middleware based in node.js, also developed in the organization, the SDK is hybrid, being capable of run inside a web client application or inside a node.js application server. As a part of the software philosophy of the department, the development of the SDK is made with a whole open source software stack, using agile software methodologies.
Resumo:
Los sistemas de videoconferencia y colaboración en tiempo real para múltiples usuarios permiten a sus usuarios comunicarse por medio de vídeo, audio y datos. Históricamente estos han sido sistemas caros de obtener y de mantener. El paso de las décadas ha limado estos problemas acercado el mundo de comunicación en tiempo real a un grupo mucho más amplio, llegando a usarse en diversos ámbitos como la educación o la medicina. En este sentido, el último gran salto evolutivo al que hemos asistido ha sido la transición de este tipo de aplicaciones hacia la Web. Varias tecnologías han permitido este viaje hacia el navegador. Las Aplicaciones Ricas de Internet (RIAs), que permiten crear aplicaciones Web interactivas huyendo del clásico esquema de petición y respuesta y llevando funcionalidades propias de las aplicaciones nativas a la Web. Por otro lado, la computación en la nube o Cloud Computing, con su modelo de pago por uso de recursos virtualizados, ha llevado a la creación de servicios que se adaptan mejor a la demanda, han habilitado este viaje hacia el navegador. No obstante, como cada cambio, este salto presenta una serie de retos para los sistemas de videoconferencia establecidos. Esta tesis doctoral propone un conjunto de arquitecturas, mecanismos y algoritmos para adaptar los sistemas de multiconferencia al entorno Web, teniendo en cuenta que este es accedido desde dispositivos diferentes y mediante redes de acceso variadas. Para ello se comienza por el estudio de los requisitos que debe cumplir un sistema de videoconferencia en la Web. Como resultado se diseña, implementa y desarrolla un servicio de videoconferencia que permite la colaboración avanzada entre múltiples usuarios mediante vídeo, audio y compartición de escritorio. Posteriormente, se plantea un sistema de comunicación entre una aplicación nativa y Web, proponiendo técnicas de adaptación entre los dos entornos que permiten la conversación de manera transparente para los usuarios. Estos sistemas permiten facilitar la transición hacia tecnologías Web. Como siguiente paso, se identificaron los principales problemas que existen para la comunicación multiusuario en dispositivos de tamaño reducido (teléfonos inteligentes) utilizando redes de acceso heterogéneas. Se propone un mecanismo, combinación de transcodificación y algoritmos de adaptación de calidad para superar estas limitaciones y permitir a los usuarios de este tipo de dispositivos participar en igualdad de condiciones. La aparición de WebRTC como tecnología disruptiva en este entorno, permitiendo nuevas posibilidades de comunicación en navegadores, motiva la segunda iteración de esta tesis. Aquí se presenta un nuevo esquema de adaptación a la demanda para servidores de videoconferencia diseñado para las necesidades del entorno Web y para aprovechar las características de Cloud Computing. Finalmente, esta tesis repasa las conclusiones obtenidas como fruto del trabajo llevado a cabo, reflejando la evolución de la videoconferencia Web desde sus inicios hasta nuestros días. ABSTRACT Multiuser Videoconferencing and real-time collaboration systems allow users to communicate using video, audio and data streams. These systems have been historically expensive to obtain and maintain. Over the last few decades, technological breakthroughs have mitigated those costs and popularized real time video communication, allowing its use in environments such as education or health. The last big evolutionary leap forward has been the transition of these types of applications towards theWeb. Several technologies have allowed this journey to theWeb browser. Firstly, Rich Internet Applications (RIAs) enable the creation of dynamic Web pages that defy the classical request-response interaction and provide an experience similar to their native counterparts. On the other hand, Cloud Computing brings the leasing of virtualized hardware resources in a pay-peruse model and, with it, better scalability in resource-demanding services. However, as with every change, this evolution imposes a set of challenges on existing videoconferencing solutions. This dissertation proposes a set of architectures, mechanisms and algorithms that aim to adapt multi-conferencing systems to the Web platform, taking into account the variety of devices and access networks that come with it. To this end, this thesis starts with a study concerning the requirements that must be met by new Web videoconferencing systems. The result of this study is the design, development and implementation of a new videoconferencing services that provides advanced collaboration to its user by providing video and audio communication as well as desktop sharing. After this, a new communication system between Web and native applications is presented. This system proposes adaptation mechanisms to bridge the two worlds providing a seamless integration transparent to users who can now access the powerful native application via an easy Web interface. The next step is to identify the main challenges posed by multi-conferencing on small devices (smartphones) with heterogeneous access networks. This dissertation proposes a mechanism that combines transcoding and adaptive quality algorithms to overcome those limitations. A second iteration in this dissertation is motivated by WebRTC. WebRTC appears as a disrupting technology by enabling new real-time communication possibilities in browsers. A new mechanism for flexible videoconferencing server scalability is presented. This mechanism aims to address the strong scalability requirements in the Web environment by taking advantage of Cloud Computing. Finally, the dissertation discusses the results obtained throughout the study, capturing the evolution of Web videoconferencing systems.
Resumo:
Este paper presenta la tecnología Java Card y los certificados X.509 como método de autenticación en aplicaciones web en ambientes universitarios, en el caso concreto la Universidad Tecnológica de Panamá (UTP). La solución consiste en mejorar el escenario de acceso a los servicios de la UTP tratando de extender el uso de la Infraestructura de Clave Pública, llevando a cabo la integración de estas tecnologías que aporten mayor seguridad a todos los usuarios y que gocen de un acceso a los servicios ofrecidos de manera flexible, segura, garantizando la autenticidad, confidencialidad, integridad y no repudio.
Resumo:
El proyecto se encuadra en el ámbito de la generación automática de interfaces de usuario, orientados a entornos web y con contenido multimedia, por otro lado dicha generación de interfaces, encaja en la disciplina de simulación del periodismo de datos, concretamente en el área de presentación y difusión. Sobre la generación automática de interfaces de usuario, en este proyecto se considera un tipo de interfaz de usuario a modo de periódico virtual, que permita al usuario visualizar de forma clara la información de diferentes noticias y permita la interacción entre los diferentes elementos de dicha presentación. Dicho interfaz de usuario se diseña usando la metáfora periodística, es decir, con un esquema de organización similar al del periódico clásico, para así facilitar la comprensión de las noticias, gracias a un interfaz sencillo y claro. OBJETIVOS El objetivo principal de este proyecto consiste en dar solución a la problemática de generar presentaciones multimedia de manera automática. Dichas presentaciones deben mostrar de una manera clara y sencilla la información a partir de planes de presentación de noticias y un sistema de base de datos. Para dicho fin se pretende desarrollar una herramienta, que genere presentaciones, a modo de periódico virtual. Las presentaciones de las noticias permiten al usuario interactuar de manera directa con los diferentes elementos de la presentación, ya sean texto, imágenes, animaciones, gráficos, mapas, etc. lo que facilita la comprensión de la información que se quiere ofrecer al usuario. De manera más detallada se presentan los objetivos concretos para el desarrollo del presente proyecto fin de carrera: • Análisis del problema. Se realiza un estudio de la problemática que se pretende solucionar con el sistema. Se revisan las técnicas y estado de la técnica en el campo Generador de interfaces de usuario como periódicos gráficos interactivos 4 de la generación automática de interfaces de usuario y su adaptación para ofrecer la difusión de la información a través de internet mediante aplicaciones web. Se identifica y estudia el contexto del sistema, el cual se orienta a la simulación del periodismo de datos. • Diseño del sistema. Se pretende diseñar un sistema informático completo, desde la capa de datos hasta la capa de presentación, que cumpla con los objetivos o requisitos propuestos. El diseño es general dado que un objetivo es permitir que el sistema pueda operar en dominios de naturaleza variada. • Implementación. Se aborda la fase de implementación con el objetivo de realizar un código modular, que sea fácil de mantener y aumentar, ya que esta herramienta pretende ofrecer servicio a diferentes sistemas de dominios variados y por lo tanto pueden surgir nuevas necesidades según el ámbito donde opere. Otro objetivo en esta parte del desarrollo, es que el sistema sea eficiente y capaz de manejar grandes volúmenes de datos así como realizar una adecuada generación automática de la presentación multimedia con texto y gráficos. • Validación. Para verificar el buen funcionamiento del sistema se desarrollan pruebas específicas que prueban las funcionalidades del sistema de manera unitaria. Para probar la generalidad del sistema se plantean diversos ejemplos de noticias en diferentes escenarios o dominios de datos, lo que nos permite comprobar la versatilidad del sistema. Para probar la robustez y solidez del sistema se pretende introducir este generador de interfaces de usuario dentro de un sistema generador automático de noticias de información hidrológica en tiempo real. El sistema generador de interfaces de usuario debe recoger cada plan de noticia, realizar automáticamente la presentación de cada noticia y organizar toda la colección de dichas noticias en un periódico virtual adaptado a las noticias que va a presentar. ORGANIZACIÓN DE LA MEMORIA La memoria se estructura de la siguiente manera; en primer lugar se presenta el estado de la técnica, con los avances y últimos desarrollos en la temática de la generación automática de interfaces de usuario, las aplicaciones web como solución de interfaz de usuario y de difusión a través de internet y los avances en simulación de periodismo dirigido por datos. Seguidamente se presenta la descripción del software, con una explicación de las diferentes fases del proceso de desarrollo software, como análisis, diseño e implementación, así como la ubicación que ocupa este sistema en un sistema de simulación de periodismo de datos. En esta parte se muestran los detalles concretos a tecnologías, lenguajes y bibliotecas utilizadas. En el siguiente capítulo se trata la validación del producto, se detallan las características del sistema automático de información hidrológica (SAIH), con el cual se ha podido probar completamente el sistema de generación automática de interfaces de usuario. Seguidamente se detallan las conclusiones a las que se ha llegado después de la realización de este proyecto, haciendo un repaso de los objetivos planteados así como las líneas futuras sobre estas técnicas. Por último se adjunta el manual de usuario de la herramienta y una colección de ejemplos mostrando las entradas y salidas procesadas por el software.
Resumo:
Abstract Idea Management Systems are web applications that implement the notion of open innovation though crowdsourcing. Typically, organizations use those kind of systems to connect to large communities in order to gather ideas for improvement of products or services. Originating from simple suggestion boxes, Idea Management Systems advanced beyond collecting ideas and aspire to be a knowledge management solution capable to select best ideas via collaborative as well as expert assessment methods. In practice, however, the contemporary systems still face a number of problems usually related to information overflow and recognizing questionable quality of submissions with reasonable time and effort allocation. This thesis focuses on idea assessment problem area and contributes a number of solutions that allow to filter, compare and evaluate ideas submitted into an Idea Management System. With respect to Idea Management System interoperability the thesis proposes theoretical model of Idea Life Cycle and formalizes it as the Gi2MO ontology which enables to go beyond the boundaries of a single system to compare and assess innovation in an organization wide or market wide context. Furthermore, based on the ontology, the thesis builds a number of solutions for improving idea assessment via: community opinion analysis (MARL), annotation of idea characteristics (Gi2MO Types) and study of idea relationships (Gi2MO Links). The main achievements of the thesis are: application of theoretical innovation models for practice of Idea Management to successfully recognize the differentiation between communities, opinion metrics and their recognition as a new tool for idea assessment, discovery of new relationship types between ideas and their impact on idea clustering. Finally, the thesis outcome is establishment of Gi2MO Project that serves as an incubator for Idea Management solutions and mature open-source software alternatives for the widely available commercial suites. From the academic point of view the project delivers resources to undertake experiments in the Idea Management Systems area and managed to become a forum that gathered a number of academic and industrial partners. Resumen Los Sistemas de Gestión de Ideas son aplicaciones Web que implementan el concepto de innovación abierta con técnicas de crowdsourcing. Típicamente, las organizaciones utilizan ese tipo de sistemas para conectar con comunidades grandes y así recoger ideas sobre cómo mejorar productos o servicios. Los Sistemas de Gestión de Ideas lian avanzado más allá de recoger simplemente ideas de buzones de sugerencias y ahora aspiran ser una solución de gestión de conocimiento capaz de seleccionar las mejores ideas por medio de técnicas colaborativas, así como métodos de evaluación llevados a cabo por expertos. Sin embargo, en la práctica, los sistemas contemporáneos todavía se enfrentan a una serie de problemas, que, por lo general, están relacionados con la sobrecarga de información y el reconocimiento de las ideas de dudosa calidad con la asignación de un tiempo y un esfuerzo razonables. Esta tesis se centra en el área de la evaluación de ideas y aporta una serie de soluciones que permiten filtrar, comparar y evaluar las ideas publicadas en un Sistema de Gestión de Ideas. Con respecto a la interoperabilidad de los Sistemas de Gestión de Ideas, la tesis propone un modelo teórico del Ciclo de Vida de la Idea y lo formaliza como la ontología Gi2MO que permite ir más allá de los límites de un sistema único para comparar y evaluar la innovación en un contexto amplio dentro de cualquier organización o mercado. Por otra parte, basado en la ontología, la tesis desarrolla una serie de soluciones para mejorar la evaluación de las ideas a través de: análisis de las opiniones de la comunidad (MARL), la anotación de las características de las ideas (Gi2MO Types) y el estudio de las relaciones de las ideas (Gi2MO Links). Los logros principales de la tesis son: la aplicación de los modelos teóricos de innovación para la práctica de Sistemas de Gestión de Ideas para reconocer las diferenciasentre comu¬nidades, métricas de opiniones de comunidad y su reconocimiento como una nueva herramienta para la evaluación de ideas, el descubrimiento de nuevos tipos de relaciones entre ideas y su impacto en la agrupación de estas. Por último, el resultado de tesis es el establecimiento de proyecto Gi2MO que sirve como incubadora de soluciones para Gestión de Ideas y herramientas de código abierto ya maduras como alternativas a otros sistemas comerciales. Desde el punto de vista académico, el proyecto ha provisto de recursos a ciertos experimentos en el área de Sistemas de Gestión de Ideas y logró convertirse en un foro que reunión para un número de socios tanto académicos como industriales.
Resumo:
Multi-user videoconferencing systems offer communication between more than two users, who are able to interact through their webcams, microphones and other components. The use of these systems has been increased recently due to, on the one hand, improvements in Internet access, networks of companies, universities and houses, whose available bandwidth has been increased whilst the delay in sending and receiving packets has decreased. On the other hand, the advent of Rich Internet Applications (RIA) means that a large part of web application logic and control has started to be implemented on the web browsers. This has allowed developers to create web applications with a level of complexity comparable to traditional desktop applications, running on top of the Operating Systems. More recently the use of Cloud Computing systems has improved application scalability and involves a reduction in the price of backend systems. This offers the possibility of implementing web services on the Internet with no need to spend a lot of money when deploying infrastructures and resources, both hardware and software. Nevertheless there are not many initiatives that aim to implement videoconferencing systems taking advantage of Cloud systems. This dissertation proposes a set of techniques, interfaces and algorithms for the implementation of videoconferencing systems in public and private Cloud Computing infrastructures. The mechanisms proposed here are based on the implementation of a basic videoconferencing system that runs on the web browser without any previous installation requirements. To this end, the development of this thesis starts from a RIA application with current technologies that allow users to access their webcams and microphones from the browser, and to send captured data through their Internet connections. Furthermore interfaces have been implemented to allow end users to participate in videoconferencing rooms that are managed in different Cloud provider servers. To do so this dissertation starts from the results obtained from the previous techniques and backend resources were implemented in the Cloud. A traditional videoconferencing service which was implemented in the department was modified to meet typical Cloud Computing infrastructure requirements. This allowed us to validate whether Cloud Computing public infrastructures are suitable for the traffic generated by this kind of system. This analysis focused on the network level and processing capacity and stability of the Cloud Computing systems. In order to improve this validation several other general considerations were taken in order to cover more cases, such as multimedia data processing in the Cloud, as research activity has increased in this area in recent years. The last stage of this dissertation is the design of a new methodology to implement these kinds of applications in hybrid clouds reducing the cost of videoconferencing systems. Finally, this dissertation opens up a discussion about the conclusions obtained throughout this study, resulting in useful information from the different stages of the implementation of videoconferencing systems in Cloud Computing systems. RESUMEN Los sistemas de videoconferencia multiusuario permiten la comunicación entre más de dos usuarios que pueden interactuar a través de cámaras de video, micrófonos y otros elementos. En los últimos años el uso de estos sistemas se ha visto incrementado gracias, por un lado, a la mejora de las redes de acceso en las conexiones a Internet en empresas, universidades y viviendas, que han visto un aumento del ancho de banda disponible en dichas conexiones y una disminución en el retardo experimentado por los datos enviados y recibidos. Por otro lado también ayudó la aparación de las Aplicaciones Ricas de Internet (RIA) con las que gran parte de la lógica y del control de las aplicaciones web comenzó a ejecutarse en los mismos navegadores. Esto permitió a los desarrolladores la creación de aplicaciones web cuya complejidad podía compararse con la de las tradicionales aplicaciones de escritorio, ejecutadas directamente por los sistemas operativos. Más recientemente el uso de sistemas de Cloud Computing ha mejorado la escalabilidad y el abaratamiento de los costes para sistemas de backend, ofreciendo la posibilidad de implementar servicios Web en Internet sin la necesidad de grandes desembolsos iniciales en las áreas de infraestructuras y recursos tanto hardware como software. Sin embargo no existen aún muchas iniciativas con el objetivo de realizar sistemas de videoconferencia que aprovechen las ventajas del Cloud. Esta tesis doctoral propone un conjunto de técnicas, interfaces y algoritmos para la implentación de sistemas de videoconferencia en infraestructuras tanto públicas como privadas de Cloud Computing. Las técnicas propuestas en la tesis se basan en la realización de un servicio básico de videoconferencia que se ejecuta directamente en el navegador sin la necesidad de instalar ningún tipo de aplicación de escritorio. Para ello el desarrollo de esta tesis parte de una aplicación RIA con tecnologías que hoy en día permiten acceder a la cámara y al micrófono directamente desde el navegador, y enviar los datos que capturan a través de la conexión de Internet. Además se han implementado interfaces que permiten a usuarios finales la participación en salas de videoconferencia que se ejecutan en servidores de proveedores de Cloud. Para ello se partió de los resultados obtenidos en las técnicas anteriores de ejecución de aplicaciones en el navegador y se implementaron los recursos de backend en la nube. Además se modificó un servicio ya existente implementado en el departamento para adaptarlo a los requisitos típicos de las infraestructuras de Cloud Computing. Alcanzado este punto se procedió a analizar si las infraestructuras propias de los proveedores públicos de Cloud Computing podrían soportar el tráfico generado por los sistemas que se habían adaptado. Este análisis se centró tanto a nivel de red como a nivel de capacidad de procesamiento y estabilidad de los sistemas. Para los pasos de análisis y validación de los sistemas Cloud se tomaron consideraciones más generales para abarcar casos como el procesamiento de datos multimedia en la nube, campo en el que comienza a haber bastante investigación en los últimos años. Como último paso se ideó una metodología de implementación de este tipo de aplicaciones para que fuera posible abaratar los costes de los sistemas de videoconferencia haciendo uso de clouds híbridos. Finalmente en la tesis se abre una discusión sobre las conclusiones obtenidas a lo largo de este amplio estudio, obteniendo resultados útiles en las distintas etapas de implementación de los sistemas de videoconferencia en la nube.
Resumo:
Las redes son la esencia de comunidades y sociedades humanas; constituyen el entramado en el que nos relacionamos y determinan cómo lo hacemos, cómo se disemina la información o incluso cómo las cosas se llevan a cabo. Pero el protagonismo de las redes va más allá del que adquiere en las redes sociales. Se encuentran en el seno de múltiples estructuras que conocemos, desde las interaciones entre las proteínas dentro de una célula hasta la interconexión de los routers de internet. Las redes sociales están presentes en internet desde sus principios, en el correo electrónico por tomar un ejemplo. Dentro de cada cliente de correo se manejan listas contactos que agregadas constituyen una red social. Sin embargo, ha sido con la aparición de los sitios web de redes sociales cuando este tipo de aplicaciones web han llegado a la conciencia general. Las redes sociales se han situado entre los sitios más populares y con más tráfico de la web. Páginas como Facebook o Twitter manejan cifras asombrosas en cuanto a número de usuarios activos, de tráfico o de tiempo invertido en el sitio. Pero las funcionalidades de red social no están restringidas a las redes sociales orientadas a contactos, aquellas enfocadas a construir tu lista de contactos e interactuar con ellos. Existen otros ejemplos de sitios que aprovechan las redes sociales para aumentar la actividad de los usuarios y su involucración alrededor de algún tipo de contenido. Estos ejemplos van desde una de las redes sociales más antiguas, Flickr, orientada al intercambio de fotografías, hasta Github, la red social de código libre más popular hoy en día. No es una casualidad que la popularidad de estos sitios web venga de la mano de sus funcionalidades de red social. El escenario es más rico aún, ya que los sitios de redes sociales interaccionan entre ellos, compartiendo y exportando listas de contactos, servicios de autenticación y proporcionando un valioso canal para publicitar la actividad de los usuarios en otros sitios web. Esta funcionalidad es reciente y aún les queda un paso hasta que las redes sociales superen su condición de bunkers y lleguen a un estado de verdadera interoperabilidad entre ellas, tal como funcionan hoy en día el correo electrónico o la mensajería instantánea. Este trabajo muestra una tecnología que permite construir sitios web con características de red social distribuída. En primer lugar, se presenta una tecnología para la construcción de un componente intermedio que permite proporcionar cualquier característica de gestión de contenidos al popular marco de desarrollo web modelo-vista-controlador (MVC) Ruby on Rails. Esta técnica constituye una herramienta para desarrolladores que les permita abstraerse de las complejidades de la gestión de contenidos y enfocarse en las particularidades de los propios contenidos. Esta técnica se usará también para proporcionar las características de red social. Se describe una nueva métrica de reusabilidad de código para demostrar la validez del componente intermedio en marcos MVC. En segundo lugar, se analizan las características de los sitios web de redes sociales más populares, con el objetivo de encontrar los patrones comunes que aparecen en ellos. Este análisis servirá como base para definir los requisitos que debe cumplir un marco para construir redes sociales. A continuación se propone una arquitectura de referencia que proporcione este tipo de características. Dicha arquitectura ha sido implementada en un componente, Social Stream, y probada en varias redes sociales, tanto orientadas a contactos como a contenido, en el contexto de una asociación vecinal tanto como en proyectos de investigación financiados por la UE. Ha sido la base de varios proyectos fin de carrera. Además, ha sido publicado como código libre, obteniendo una comunidad creciente y está siendo usado más allá del ámbito de este trabajo. Dicha arquitectura ha permitido la definición de un nuevo modelo de control de acceso social que supera varias limitaciones presentes en los modelos de control de acceso para redes sociales. Más aún, se han analizado casos de estudio de sitios de red social distribuídos, reuniendo un conjunto de caraterísticas que debe cumplir un marco para construir redes sociales distribuídas. Por último, se ha extendido la arquitectura del marco para dar cabida a las características de redes sociales distribuídas. Su implementación ha sido validada en proyectos de investigación financiados por la UE. Abstract Networks are the substance of human communities and societies; they constitute the structural framework on which we relate to each other and determine the way we do it, the way information is diseminated or even the way people get things done. But network prominence goes beyond the importance it acquires in social networks. Networks are found within numerous known structures, from protein interactions inside a cell to router connections on the internet. Social networks are present on the internet since its beginnings, in emails for example. Inside every email client, there are contact lists that added together constitute a social network. However, it has been with the emergence of social network sites (SNS) when these kinds of web applications have reached general awareness. SNS are now among the most popular sites in the web and with the higher traffic. Sites such as Facebook and Twitter hold astonishing figures of active users, traffic and time invested into the sites. Nevertheless, SNS functionalities are not restricted to contact-oriented social networks, those that are focused on building your own list of contacts and interacting with them. There are other examples of sites that leverage social networking to foster user activity and engagement around other types of content. Examples go from early SNS such as Flickr, the photography related networking site, to Github, the most popular social network repository nowadays. It is not an accident that the popularity of these websites comes hand-in-hand with their social network capabilities The scenario is even richer, due to the fact that SNS interact with each other, sharing and exporting contact lists and authentication as well as providing a valuable channel to publize user activity in other sites. These interactions are very recent and they are still finding their way to the point where SNS overcome their condition of data silos to a stage of full interoperability between sites, in the same way email and instant messaging networks work today. This work introduces a technology that allows to rapidly build any kind of distributed social network website. It first introduces a new technique to create middleware that can provide any kind of content management feature to a popular model-view-controller (MVC) web development framework, Ruby on Rails. It provides developers with tools that allow them to abstract from the complexities related with content management and focus on the development of specific content. This same technique is also used to provide the framework with social network features. Additionally, it describes a new metric of code reuse to assert the validity of the kind of middleware that is emerging in MVC frameworks. Secondly, the characteristics of top popular SNS are analysed in order to find the common patterns shown in them. This analysis is the ground for defining the requirements of a framework for building social network websites. Next, a reference architecture for supporting the features found in the analysis is proposed. This architecture has been implemented in a software component, called Social Stream, and tested in several social networks, both contact- and content-oriented, in local neighbourhood associations and EU-founded research projects. It has also been the ground for several Master’s theses. It has been released as a free and open source software that has obtained a growing community and that is now being used beyond the scope of this work. The social architecture has enabled the definition of a new social-based access control model that overcomes some of the limitations currenly present in access control models for social networks. Furthermore, paradigms and case studies in distributed SNS have been analysed, gathering a set of features for distributed social networking. Finally the architecture of the framework has been extended to support distributed SNS capabilities. Its implementation has also been validated in EU-founded research projects.
Resumo:
Actualmente existen multitud de aplicaciones creadas para la gestión de proyectos software; cada una de ellas pretende dar solución y facilitar las tareas propias de los gestores y los desarrolladores pertenecientes a los equipos de desarrollo. Los equipos de desarrollo software suelen estar integrados por gran variedad de recursos, tanto humanos como materiales. Cada uno desempeña una función concreta en el proyecto, pudiendo no tener una dedicación plena al proyecto. Por eso, es necesario que dichos recursos sean compartidos entre la cartera proyectos existentes. Para resolver este planteamiento en las aplicaciones de gestión de proyectos, ha sido requisito fundamental que se puedan gestionar varios proyectos de forma simultánea (gestión multiproyecto), pudiendo repartir la dedicación de los recursos entre los proyectos existentes en la cartera. En la actualidad, existe un gran número de metodologías de gestión de proyectos, por lo que, en parte, el éxito del proyecto radica en la elección de la más adecuada. Entre todas las metodologías existentes, este estudio se ha centrado en las cada vez más utilizadas metodologías de gestión de proyectos ágiles; se describe en qué consisten, qué beneficios aportan frente a las metodologías clásicas y cuáles son las más utilizadas por sus ya contrastados beneficios y el valor que aportan a la gestión de proyectos. Por lo descrito anteriormente, otro requisito fundamental a la hora de valorar las aplicaciones de gestión de proyectos ha sido la capacidad de soportar y aplicar metodologías ágiles de gestión de proyectos. En este estudio también se ha tenido en cuenta el tipo de aplicación atendiendo a su instalación y acceso, y se ha realizado la diferenciación entre aplicaciones web- las cuales precisan ser instaladas en un servidor web y son accesibles desde cualquier dispositivo con navegador -, y aplicaciones de escritorio - las cuales precisan estar instaladas en un equipo de forma local y sólo pueden ser accedidas a ellas desde dicho equipo. En este estudio se han evaluado varias aplicaciones, intentando analizar el cumplimiento de las características comentadas anteriormente, dando como resultado tres aplicaciones seleccionadas siendo éstas las que pueden aportar más valor a la hora de gestionar una cartera de proyectos. ABSTRACT. At present, there are many applications aimed at managing software projects. Every application intends to solve and facilitate tasks to managers and developers belonging to the development teams. Software development teams are usually made up of many different human and material resources, each of them developing a specific task in the project and sometimes without a full dedication to the project. Therefore, these resources have to be shared within the existing project portfolio. To meet this need in project management applications, the main requirement is to be able to manage several projects simultaneously (multi-project management), thus allowing resources to be shared within the existing project portfolio. At present, there are a large number of project management methodologies and the success of the project lies in choosing the most appropriate one. Among all the existing methodologies, this study has focused on the increasingly used agile project management methodologies. The study describes the way they work, their added value in comparison traditional methodologies, and which ones are more often used due to their already verified benefits and value in managing projects. Taking into account the above-mention characteristics, another key requirement when assessing the project management applications has been their capacity to support and implement project management agile methodologies. This study has also taken into account the type of application according to its installation and access. A difference is established between web applications – which require to be installed in a web server and are accessible from any device with a web browser – and desktop applications, which must be installed in the equipment to be used and are only accessible from this equipment. The study has assessed several applications by analyzing the compliance with the above-mentioned characteristics and has chosen three applications that provide the management of the project portfolio with an added value.