28 resultados para network, webapp, android, client, server, api, celiachia, senzaglutine
Resumo:
El propósito de este proyecto de fin de Grado es el estudio y desarrollo de una aplicación basada en Android que proporcionará soporte y atención a los servicios de transporte público existentes en Cracovia, Polonia. La principal funcionalidad del sistema será consultar la posición de un determinado autobús o tranvía y mostrar su ubicación con exactitud. Para lograr esto, necesitaremos tres fases de desarrollo. En primer lugar, deberemos implementar un sistema que obtenga las coordenadas geográficas de los vehículos de transporte público en cada instante. A continuación, tendremos que registrar todos estos datos y almacenarlos en una base de datos en un servidor web. Por último, desarrollaremos un sistema cliente que realice consultas a tiempo real sobre estos datos almacenados, obteniendo la posición para una línea determinada y mostrando su ubicación con un marcador en el mapa. Para hacer el seguimiento de los vehículos, sería necesario tener acceso a una API pública que nos proporcionase la posición registrada por los GPS que integran cada uno de ellos. Como esta API no existe actualmente para los servicios de autobús, y para los tranvías es de uso meramente privado, desarrollaremos una segunda aplicación en Android que hará las funciones del lado servidor. En ella podremos elegir mediante una simple interfaz el número de línea y un código específico que identificará a cada vehículo en particular (e.g. podemos tener 6 tranvías recorriendo la red al mismo tiempo para la línea 24). Esta aplicación obtendrá las coordenadas geográficas del teléfono móvil, lo cual incluye latitud, longitud y orientación a través del proveedor GPS. De este modo, podremos realizar una simulación de como el sistema funcionará a tiempo real utilizando la aplicación servidora desde dentro de un tranvía o autobús y, al mismo tiempo, utilizando la aplicación cliente haciendo peticiones para mostrar la información de dicho tranvía. El cliente, además, podrá consultar la ruta de cualquier línea sin necesidad de tener acceso a Internet. Almacenaremos las rutas y paradas de cada línea en la memoria del teléfono móvil utilizando ficheros XML debido al poco espacio que ocupan y a lo útil que resulta poder consultar un trayecto en cualquier momento, independientemente del acceso a la red. El usuario también podrá consultar las tablas de horarios oficiales para cada línea. Aunque en este caso si será necesaria una conexión a Internet debido a que se realizará a través de la web oficial de MPK. Para almacenar todas las coordenadas de cada vehículo en cada instante necesitaremos crear una base de datos en un servidor. Esto se resolverá mediante el uso de MYSQL y PHP. Se enviarán peticiones de tipo GET y POST a los servicios PHP que se encargarán de traducir y realizar la consulta correspondiente a la base de datos MYSQL. Por último, gracias a todos los datos recogidos relativos a la posición de los vehículos de transporte público, podremos realizar algunas tareas de análisis. Comparando la hora exacta a la que los vehículos pasaron por cada parada y la hora a la que deberían haber pasado según los horarios oficiales, podremos descubrir fallos en estos. Seremos capaces de determinar si es un error puntual debido a factores externos (atascos, averías,…) o si por el contrario, es algo que ocurre muy a menudo y se debería corregir el horario oficial. ABSTRACT The aim of this final Project (for University) is to develop an Android application thatwill provide support and feedback to the public transport services in Krakow. The main functionality of the system will be to track the position of a desired bus or tram line, and display its position on the map. To achieve this, we will need 3 stages: the first one will be to implement a system that sends the geographical position of the public transport vehicles, the second one will be to collect this data in a web server, and the last one will be to get the last location registered for the desired line and display it on the map. For tracking the vehicles, we would need to have access to a public API that should be connected with each bus/tram GPS. As this doesn’t exist in Krakow or at least is not available for public use, we will develop a second android application that will do the server side job. We will be able to choose in a simple interface the line number and a code letter to identify each vehicle (e.g. we can have 6 trams that belong to the line number 24 working at the same time). It will take the current mobile geolocation; this includes getting latitude, longitude and bearing from the GPS provider. Thus, we will be able to make a simulation of how the system works in real time by using the server app inside a tram and at the same time, using the client app and making requests to display the information of that tram. The client will also be able to check the path of the desired line without internet access. We will store the path and stops for each line locally in the phone memory using xml files due to the few requirements of available space it needs and the usefulness of checking a path when needed. This app will also offer the functionality of checking the timetable for the line, but in this case, it will link to the official Mpk website, so Internet access will be required. For storing all the coordinates for each vehicle at every moment we will need to create a database on a server. We have decided that the easiest way is to use Mysql and PHP for the deployment of the service. We will send GET and POST requests to the php files and those files will make the according queries to our database. Finally, based on all the collected data, we will be able to get some information about errors in the system of public transport timetables. We will check at what time a line was in each specific stop and compare it with the official timetable to find mistakes of time. We will determine if it is something that happens occasionally and related to external factors (e.g. traffic jams, breakdowns…) or if on the other hand, it is something that happens very often and the public transport timetables should be looked over and corrected.
Resumo:
From research groups at the universities of developed countries there is a growing interest in providing solutions to problems of developing countries. In this context we have studied typical problems in many (educational) institutions, such as the lack of technicians who repair the computers, the administration of the machines, and also the difficulty to maintain and configure the old hardware available due to the variety of characteristics of the different machines and the amount of hardware breakdowns and software issues (viruses, administration issues) that the local staff has to face up to with their equipments. We propose a thin client approach that takes into account the human, hardware and software characteristics of developing institutions to provide a complete service for a computer network. The network administration is reduced to the administration of one server only. The maintenance of the machines is simplified and old computers can simulate the running of a powerful computer. Our proposal results in a cheap, simple (from the support point of view) and powerful (in terms of achieved functionalities) design.
Resumo:
En la realización de este proyecto se ha tratado principalmente la temática del web scraping sobre documentos HTML en Android. Como resultado del mismo, se ha propuesto una metodología para poder realizar web scraping en aplicaciones implementadas para este sistema operativo y se desarrollará una aplicación basada en esta metodología que resulte útil a los alumnos de la escuela. Web scraping se puede definir como una técnica basada en una serie de algoritmos de búsqueda de contenido con el fin de obtener una determinada información de páginas web, descartando aquella que no sea relevante. Como parte central, se ha dedicado bastante tiempo al estudio de los navegadores y servidores Web, y del lenguaje HTML presente en casi todas las páginas web en la actualidad así como de los mecanismos utilizados para la comunicación entre cliente y servidor ya que son los pilares en los que se basa esta técnica. Se ha realizado un estudio de las técnicas y herramientas necesarias, aportándose todos los conceptos teóricos necesarios, así como la proposición de una posible metodología para su implementación. Finalmente se ha codificado la aplicación UPMdroid, desarrollada con el fin de ejemplificar la implementación de la metodología propuesta anteriormente y a la vez desarrollar una aplicación cuya finalidad es brindar al estudiante de la ETSIST un soporte móvil en Android que le facilite el acceso y la visualización de aquellos datos más importantes del curso académico como son: el horario de clases y las calificaciones de las asignaturas en las que se matricule. Esta aplicación, además de implementar la metodología propuesta, es una herramienta muy interesante para el alumno, ya que le permite utilizar de una forma sencilla e intuitiva gran número de funcionalidades de la escuela solucionando así los problemas de visualización de contenido web en los dispositivos. ABSTRACT. The main topic of this project is about the web scraping over HTML documents on Android OS. As a result thereof, it is proposed a methodology to perform web scraping in deployed applications for this operating system and based on this methodology that is useful to the ETSIST school students. Web scraping can be defined as a technique based on a number of content search algorithms in order to obtain certain information from web pages, discarding those that are not relevant. As a main part, has spent considerable time studying browsers and Web servers, and the HTML language that is present today in almost all websites as well as the mechanisms used for communication between client and server because they are the pillars which this technique is based. We performed a study of the techniques and tools needed, providing all the necessary theoretical concepts, as well as the proposal of a possible methodology for implementation. Finally it has codified UPMdroid application, developed in order to illustrate the implementation of the previously proposed methodology and also to give the student a mobile ETSIST Android support to facilitate access and display those most important data of the current academic year such as: class schedules and scores for the subjects in which you are enrolled. This application, in addition to implement the proposed methodology is also a very interesting tool for the student, as it allows a simple and intuitive way of use these school functionalities thus fixing the viewing web content on devices.
Resumo:
¿No sabes dónde comer un plato típico cuando estás de vacaciones? ¿Quieres ir con amigos a comer a un sitio distinto? ¿Quieres disfrutar de esa comida que tanto te gusta y no sabes dónde hacerlo? Con afán de responder a estas preguntas y gracias a las capacidades que nos brindan las nuevas tecnologías de dispositivos móviles, surge la aplicación que se presenta en este proyecto fin de carrera. Se trata de una aplicación para dispositivos móviles con sistema operativo Android que nos brindará la opción de encontrar restaurantes en nuestro entorno que nos ofrezcan esa comida que queremos. Además, a modo de red social, incluye la opción de poder puntuar los platos degustados en los restaurantes e insertar restaurantes nuevos, lo que hace que la aplicación tenga una mayor versatilidad. En este documento se podrán encontrar los diagramas UML que modelan el proyecto, tanto la parte de la aplicación como la parte del servidor. En él también podremos encontrar otra documentación como: un manual de usuario de la aplicación, el código fuente de la misma y proposiciones de futuras versiones y mejoras de la aplicación actual. ABSTRACT. Don’t you know where you can eat a typical dish when you are on holidays? Do you want to go to eat to a different place? Do you want to enjoy that meal you love and you don’t know where you can do it? To answer those questions and thanks to the possibilities of modern smartphones’ technology, we present this application in my degree’s final project. This application, which runs with an Android operative system, gives us the option to find restaurants in our environment that offer the meal we really want. In addition, as a social network, it includes the option to rate the tasted dishes or to add new restaurants, giving the application versatility. Nowadays our society is used to the use of smartphones and their possibilities. That is why we must to explore its potential to obtain better amenities. In the last few years the amount of available applications for these devices has increased too much, offering a huge variety of them. If we realize a research about their functionalities and uses we will discover that most of them are oriented to leisure. That is why we are going to start the inquiry of a software engineering project developing a restaurant localization restaurant for Android smartphones, In this document you can find the UMI diagrams which model the project, both the application part and the server part. Besides, you can find other documents as: an application user manual, the source and proposals for future versions and improvements.
Resumo:
In recent years, there has been a great increase in the development of wireless technologies and location services. For this reason, numerous projects in the location field, have arisen. In addition, with the appearance of the open Android operating system, wireless technologies are being developed faster than ever. This Project approaches the design and development of a system that combines the technologies of wireless, location and Android with the implementation of an indoor positioning system. As a result, an Android application has been obtained, which detects the position of a phone in a simple and useful way. The application is based on the WIFI manager API of Android. It combines the data stored in a SQL database with the wifi data received at any given time. Afterwards the position of the user is determined with the algorithm that has been implemented. This application is able to obtain the position of any person who is inside a building with Wi-Fi coverage, and display it on the screen of any device with the Android operating system. Besides the estimation of the position, this system displays a map that helps you see in which quadrant of the room are positioned in real time. This system has been designed with a simple interface to allow people without technology knowledge. Finally, several tests and simulations of the system have been carried out to see its operation and accuracy. The performance of the system has been verified in two different places and changes have been made in the Java code to improve its precision and effectiveness. As a result of the several tests, it has been noticed that the placement of the access point (AP) and the configuration of the Wireless network is an important point that should be taken into account to avoid interferences and errors as much as possible, in the estimation of the position. RESUMEN. En los últimos años, se ha producido un incremento en el desarrollo de tecnologías inalámbricas y en servicios de localización y posicionamiento. Por esta razón, han surgido numerosos proyectos relacionados con estas tecnologías. Por otra parte, un punto importante en el desarrollo de estas tecnologías ha sido la aparición del lenguaje Android que ha hecho que estas nuevas tecnologías se implementaran con una mayor rapidez. Este proyecto, se acerca al diseño y desarrollo de un sistema que combina tecnologías inalámbricas, de ubicación y uso de lenguaje Android para el desarrollo de una aplicación de un sistema de posicionamiento en interiores. Como consecuencia de esto se ha obtenido una aplicación Android que detecta la posición de un dispositivo móvil de una manera sencilla e intuititva. La aplicación se basa en la API WIFI de Android, que combina los datos almacenados en una base de datos SQL con los datos recibidos vía Wi-Fi en cualquier momento. A continuación, la posición del usuario se determina con el algoritmo que se ha implementado a lo largo de todo el proyecto utilizando código Android. Esta aplicación es capaz de obtener la posición de cualquier persona que se encuentra dentro de un edificio con cobertura Wi-Fi, mostrando por pantalla la ubicación del usuario en cualquier dispositivo que disponga de sistema operativo Android. Además de la estimación de la posición, este sistema muestra un mapa que le ayuda a ver en qué cuadrante de la sala está situado el usuario. Este sistema ha sido diseñado con una interfaz sencilla para permitir que usuarios sin conocimiento tecnológico o no acostumbrados al uso de los nuevos dispositivos de hoy en día puedan usarlo de una manera sencilla y de forma intuitiva. Por último, se han llevado a cabo varias pruebas y simulaciones del sistema para verificar su funcionamiento y precisión. El rendimiento del sistema se ha comprobado en dos puntos diferentes de la sala (lugar donde se han hecho todas las pruebas y desarrollado la aplicación) realizando cambios en el código Java para mejorar aún más la precisión y eficacia del posicionamiento. Como resultado de todo esto, se ha comprobado que la ubicación del punto de acceso (AP) y la configuración de la red inalámbrica es importante, y por ello se debe de tener en cuenta para evitar interferencias y tantos errores como sea posible en la estimación de la posición.
Resumo:
Esta tesis se centra en el análisis de dos aspectos complementarios de la ciberdelincuencia (es decir, el crimen perpetrado a través de la red para ganar dinero). Estos dos aspectos son las máquinas infectadas utilizadas para obtener beneficios económicos de la delincuencia a través de diferentes acciones (como por ejemplo, clickfraud, DDoS, correo no deseado) y la infraestructura de servidores utilizados para gestionar estas máquinas (por ejemplo, C & C, servidores explotadores, servidores de monetización, redirectores). En la primera parte se investiga la exposición a las amenazas de los ordenadores victimas. Para realizar este análisis hemos utilizado los metadatos contenidos en WINE-BR conjunto de datos de Symantec. Este conjunto de datos contiene metadatos de instalación de ficheros ejecutables (por ejemplo, hash del fichero, su editor, fecha de instalación, nombre del fichero, la versión del fichero) proveniente de 8,4 millones de usuarios de Windows. Hemos asociado estos metadatos con las vulnerabilidades en el National Vulnerability Database (NVD) y en el Opens Sourced Vulnerability Database (OSVDB) con el fin de realizar un seguimiento de la decadencia de la vulnerabilidad en el tiempo y observar la rapidez de los usuarios a remiendar sus sistemas y, por tanto, su exposición a posibles ataques. Hemos identificado 3 factores que pueden influir en la actividad de parches de ordenadores victimas: código compartido, el tipo de usuario, exploits. Presentamos 2 nuevos ataques contra el código compartido y un análisis de cómo el conocimiento usuarios y la disponibilidad de exploit influyen en la actividad de aplicación de parches. Para las 80 vulnerabilidades en nuestra base de datos que afectan código compartido entre dos aplicaciones, el tiempo entre el parche libera en las diferentes aplicaciones es hasta 118 das (con una mediana de 11 das) En la segunda parte se proponen nuevas técnicas de sondeo activos para detectar y analizar las infraestructuras de servidores maliciosos. Aprovechamos técnicas de sondaje activo, para detectar servidores maliciosos en el internet. Empezamos con el análisis y la detección de operaciones de servidores explotadores. Como una operación identificamos los servidores que son controlados por las mismas personas y, posiblemente, participan en la misma campaña de infección. Hemos analizado un total de 500 servidores explotadores durante un período de 1 año, donde 2/3 de las operaciones tenían un único servidor y 1/2 por varios servidores. Hemos desarrollado la técnica para detectar servidores explotadores a diferentes tipologías de servidores, (por ejemplo, C & C, servidores de monetización, redirectores) y hemos logrado escala de Internet de sondeo para las distintas categorías de servidores maliciosos. Estas nuevas técnicas se han incorporado en una nueva herramienta llamada CyberProbe. Para detectar estos servidores hemos desarrollado una novedosa técnica llamada Adversarial Fingerprint Generation, que es una metodología para generar un modelo único de solicitud-respuesta para identificar la familia de servidores (es decir, el tipo y la operación que el servidor apartenece). A partir de una fichero de malware y un servidor activo de una determinada familia, CyberProbe puede generar un fingerprint válido para detectar todos los servidores vivos de esa familia. Hemos realizado 11 exploraciones en todo el Internet detectando 151 servidores maliciosos, de estos 151 servidores 75% son desconocidos a bases de datos publicas de servidores maliciosos. Otra cuestión que se plantea mientras se hace la detección de servidores maliciosos es que algunos de estos servidores podrán estar ocultos detrás de un proxy inverso silente. Para identificar la prevalencia de esta configuración de red y mejorar el capacidades de CyberProbe hemos desarrollado RevProbe una nueva herramienta a través del aprovechamiento de leakages en la configuración de la Web proxies inversa puede detectar proxies inversos. RevProbe identifica que el 16% de direcciones IP maliciosas activas analizadas corresponden a proxies inversos, que el 92% de ellos son silenciosos en comparación con 55% para los proxies inversos benignos, y que son utilizado principalmente para equilibrio de carga a través de múltiples servidores. ABSTRACT In this dissertation we investigate two fundamental aspects of cybercrime: the infection of machines used to monetize the crime and the malicious server infrastructures that are used to manage the infected machines. In the first part of this dissertation, we analyze how fast software vendors apply patches to secure client applications, identifying shared code as an important factor in patch deployment. Shared code is code present in multiple programs. When a vulnerability affects shared code the usual linear vulnerability life cycle is not anymore effective to describe how the patch deployment takes place. In this work we show which are the consequences of shared code vulnerabilities and we demonstrate two novel attacks that can be used to exploit this condition. In the second part of this dissertation we analyze malicious server infrastructures, our contributions are: a technique to cluster exploit server operations, a tool named CyberProbe to perform large scale detection of different malicious servers categories, and RevProbe a tool that detects silent reverse proxies. We start by identifying exploit server operations, that are, exploit servers managed by the same people. We investigate a total of 500 exploit servers over a period of more 13 months. We have collected malware from these servers and all the metadata related to the communication with the servers. Thanks to this metadata we have extracted different features to group together servers managed by the same entity (i.e., exploit server operation), we have discovered that 2/3 of the operations have a single server while 1/3 have multiple servers. Next, we present CyberProbe a tool that detects different malicious server types through a novel technique called adversarial fingerprint generation (AFG). The idea behind CyberProbe’s AFG is to run some piece of malware and observe its network communication towards malicious servers. Then it replays this communication to the malicious server and outputs a fingerprint (i.e. a port selection function, a probe generation function and a signature generation function). Once the fingerprint is generated CyberProbe scans the Internet with the fingerprint and finds all the servers of a given family. We have performed a total of 11 Internet wide scans finding 151 new servers starting with 15 seed servers. This gives to CyberProbe a 10 times amplification factor. Moreover we have compared CyberProbe with existing blacklists on the internet finding that only 40% of the server detected by CyberProbe were listed. To enhance the capabilities of CyberProbe we have developed RevProbe, a reverse proxy detection tool that can be integrated with CyberProbe to allow precise detection of silent reverse proxies used to hide malicious servers. RevProbe leverages leakage based detection techniques to detect if a malicious server is hidden behind a silent reverse proxy and the infrastructure of servers behind it. At the core of RevProbe is the analysis of differences in the traffic by interacting with a remote server.
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:
Este Proyecto Final de Carrera se centra principalmente en el estudio de las tecnologías aplicadas al Hogar Digital (HD) y así poder desarrollar nuevas herramientas aplicadas a este Sector. La primera tecnología estudiada es LonWorks que se escogió porque en la EUITT se cuenta con un entorno domótico donde se aplica esta tecnología, materializado como una maqueta de una instalación LonWorks en un HD. Sobre este entorno se ha desarrollado una nueva forma de gestionar y controlar los elementos de una Red LonWorks mediante la tecnología Universal Plug & Play (UPnP). Los dispositivos LonWorks han sido recubiertos con una capa con la que se consigue tratar los elementos LonWorks como dispositivos UPnP, pudiendo de esta manera trabajar bajo un mismo formato de dispositivo. Este formato está definido por un documento denominado Descripción del Dispositivo UPnP. Por tanto, no es necesario conocer el estado de los dispositivos de la Red LonWorks, sino únicamente trabajar bajo una Red UPnP, creando nuevos dispositivos UPnP, puntos de Control y servicios a partir de los elementos LonWorks. Una vez realizado el recubrimiento del sistema LonWorks con UPnP, se ha definido y desarrollado una aplicación para Android que, permite controlar los elementos de la maqueta del HD desde un Smartphone o una Tablet. El acceso a la Red LonWorks de la maqueta del HD se hace a través de la interfaz Web Services SOAP/XML del dispositivo iLON100. ABSTRACT. This Final Degree Project is mainly focused on the study of the technologies applied to Digital Home and thus be able to develop new tools applied to this area. The first study is LonWorks technology which was chosen because the EUITT has a domotic environment where this technology is applied, materialized as a demonstrator of a LonWorks installation in HD. With this environment has developed a new way to manage and control the elements of a LonWorks network through technology by Universal Plug & Play (UPnP). LonWorks devices are covered with a layer and it is achieved LonWorks elements treat as UPnP devices. In this way the LonWorks elements can work under one device format. This format is defined by a document called UPnP Device Description. Therefore, it isn't necessary to know the state of the LonWorks network devices, but only work under an UPnP network, creating new UPnP devices, control points and services from LonWorks elements. After backfill of LonWorks system with UPnP, have being defined and developed an Android application that allow controlling the elements of the mockup of HD from Smartphone or a Tablet. The LonWorks network Access of the mockup of HD is done through the Web Interface Services SOAP / XML iLON100 device.
Resumo:
Los avances que se han producido en los últimos años en cuanto a potencia y capacidades de los teléfonos móviles que usamos de manera cotidiana, traen de la mano un auge en la demanda de aplicaciones de todo ámbito: desde aplicaciones generales de consumo, pasando por juegos, hasta aplicaciones que ofrecen soluciones internas a empresas. Existen diferentes sistemas operativos para teléfonos móviles como se explicará más adelante en el capítulo introductorio. En dicho capítulo se da la justificación de por qué en el presente Proyecto Fin de Carrera se centra en el estudio del sistema operativo Android. Primeramente se dará una visión global del estado del arte en cuanto al mundo de aplicaciones móviles se refiere. Se explicarán los pros y contras de cada sistema operativo, detallando el lenguaje de programación utilizado en cada uno de ellos y sus principales características. Después, en el capítulo tres se estudiará con más profundidad el sistema operativo Android, desde su historia y orígenes, hasta los componentes básicos para la creación de una aplicación, pasando por la arquitectura interna del sistema o su máquina virtual. Con esto se pretende que el lector tenga un contexto que le permita comprender los siguientes capítulos, que es donde está el núcleo de este Proyecto Fin de Carrera. El cuarto capítulo trata de una serie de prácticas incrementales, que cubren una gran parte de las posibilidades que ofrece el sistema operativo Android para el desarrollo de aplicaciones. Se ha pretendido que la dificultad vaya de menos a más y que las prácticas se vayan apoyando en las anteriores, para tener al final una única solución que englobe todas las lecciones. El último capítulo quiere englobar el uso de todas las lecciones aprendidas en las lecciones anteriores para crear una aplicación que bien podría ser una aplicación real para un cliente. Se trata de una aplicación que muestra en tiempo real información sobre las cámaras de tráfico de la ciudad de Madrid. ABSTRACT. The improvements that have occurred in recent years in terms of power and capabilities of mobile phones that we use on a daily basis, bring an increment in demand for all kind of applications, from general consumer applications, games or even internal applications that offer solutions to companies. There are different operating systems for mobile phones as will be explained later in the introductory chapter. In that chapter the answer for why this Thesis focuses on the study of the Android operating system is given as well. First an overview of the state of the art about the world of mobile applications will be referred. The pros and cons of each operating system will be explained, detailing the programming language used in each of them and their main characteristics. Then in chapter three will be discussed in more depth the Android operating system, from its history and beginnings to the main components for the creation of an application, to the internal architecture of the system or virtual machine. The goal of chapter three is to give the readers a context that allows them to understand the following chapters, where the core of this Thesis is. The fourth chapter contains a series of incremental practices covering a large part of the potential of the Android operating system for application development. Those practices grow in difficulty and are supported by the previous in order to have at the end a single solution that fits all lessons. The last chapter wants to embrace the use of all the lessons learned in previous lessons to create an application that could well be an actual application for a client. It is an application that displays real-time information off traffic cameras of the city of Madrid.
Resumo:
RESUMEN DEL PROYECTO Organizar actividades y proyectos entre varias personas o tomar decisiones conjuntas son cuestiones a las que se enfrenta cualquier individuo en su día a día. El simple hecho de coordinar o poner de acuerdo a un grupo reducido de personas puede llegar a suponer un gran problema ya que cada participante tiene sus propias preferencias y, en ocasiones, es difícil conseguir encajarlas con las demás del grupo. Este proyecto, llamado “DealtDay”, surge para facilitar esta labor. La idea nace ante la necesidad de organizar, de forma fácil e intuitiva, a un grupo de personas para, por ejemplo, concretar una reunión, quedar para ir a dar una vuelta, decidir qué película ver, etc. Este proyecto se ha desarrollado basándose en el sistema actual de relaciones con el que se han creado la mayoría de las redes sociales que hoy conocemos. Como medio para poder hacer uso del proyecto se ha construido una aplicación web que, gracias a las decisiones de diseño tomadas, se puede usar tanto en un ordenador, una tablet o un Smartphone. Este punto se considera fundamental ya que cada vez más personas están dejando de lado los ordenadores corrientes para dar paso al uso de las nuevas tecnologías. Además, se ha creado una API REST, lo que nos permite utilizar todas las funcionalidades de la aplicación desde cualquier sistema que pueda realizar peticiones http. En este proyecto en concreto se realizará la parte del desarrollo de la API, el cliente web y el despliegue de la aplicación en un servidor web para realizar las pruebas pertinentes. ABSTRACT To organize activities and projects between several people or make joint decisions are issues to which any person faces every day.The simple fact of coordinate or coming to an agreement with a group of persons could be a major problem, since each participant has their own preferences and often fails when tries to fit them with the group. This project, called “Dealt Day”, is born to facilitate this task. The idea arises of how to achieve organize a group of people in an easily and intuitively way in order to arrange a meeting, be able to go for a walk, decide what movie to see or simply vote a choice between a users group. This project has been developed based on the current relation system that has been created in the most social networks we know. As a means of making use of the project a web application has been built, that thanks to the design decisions taken it can be used in a computer, tablet or smartphone, This is an essential point because more and more people are abandoning the current computers to make way for the use of new technologies. Also, a REST API has been created, which allows us to use all the features of the application from any system able to make http requests. In this particular project, I have done the development of the API, web client and the application deployment on a web server in order to test it.
Resumo:
Este proyecto de fin de grado pretende demostrar la importancia y la utilidad de la creación de redes de dispositivos móviles conectados entre sí. Para ello se explicarán varios tipos de redes inalámbricas que permiten estas conexiones directas entre dispositivos sin la necesidad de un servidor. En estas redes inalámbricas se destacan las redes P2P y las redes Ad-hoc, las cuales se explicarán posteriormente. El despliegue de estas redes se puede encontrar en un amplio rango de campos como puede ser la agricultura, la medicina e incluso en el ámbito militar. Es objetivo de este proyecto, además, el estudio de la tecnología Wi-Fi Direct creada por la Wi-Fi Alliance. Como se explicará a lo largo del proyecto, Wi-Fi Direct está basado en las redes P2P. Esta tecnología permite a los dispositivos cercanos crear redes P2P a través de la red Wi-Fi sin la necesidad de un punto de acceso a Internet. Por otro lado, una gran cantidad de los dispositivos móviles que existen actualmente poseen el sistema operativo Android. Android ha incorporado en sus dispositivos más recientes la tecnología Wi-Fi Direct. Debido a ello han ido surgiendo aplicaciones que usando esta tecnología consiguen desde enviar ficheros hasta indicar la localización de un usuario. Esta tecnología combinada con este tipo de dispositivos puede ser muy útil para utilizar en casos de emergencia donde las infraestructuras de comunicaciones no estén disponibles ya que al no necesitar un punto de acceso a internet es posible la comunicación entre un usuario en peligro y otro que se encuentre dentro de un radio cercano. Por estos motivos otro de los principales objetivos de este proyecto es la implementación de una aplicación para dispositivos Android que use la tecnología Wi-Fi Direct para realizar varias funcionalidades diferentes, como es el intercambio de ficheros entre dispositivos y la creación de un chat para la comunicación simultanea entre dos dispositivos. Con esto se pretende conocer mejor el funcionamiento de la tecnología Wi-Fi Direct y demostrar su utilidad en los dispositivos móviles como son los dispositivos Android. ABSTRACT. This final degree Project tries to demonstrate the importance and utility of networking mobile devices. For this purpose several types of wireless networks will be explained. These networks allow direct connections between devices. The most prominent Wireless networks are P2P and Ad-hoc which will be explained later. The use of these networks can be found in a wide range of fields such as agriculture medicine, and even in the military sector. Besides, other aim of this project is the study of Wi-Fi Direct Technology which is created by Wi-Fi Alliance. As it explained along the project, Wi-Fi Direct is based on P2P networks. This technology lets nearby devices create P2P networks through Wi-Fi network without an Internet access point. On the other hand, a large number of mobile devices have the Android OS. Android has integrated Wi-Fi Direct technology in its latest devices. Because of this applications have emerged that using this technology they get from sending files to send the user’s location. This technology combined with these devices can be very useful to use in emergencies where communications infrastructures are not available. Since not need an Internet access point, communication between a user in danger and another within close radius is possible. For these reasons another of the main aims of this project is the implementation of an application for Android devices which use Wi-Fi Direct technology to perform several different functionalities, such as file exchange or chat for simultaneous communication between devices. This is intended to better understand the operation of Wi-Fi Direct technology and prove its utility on mobile devices such as Android devices.
Resumo:
Día a día surge la necesidad de tener que organizar actividades entre varias personas donde es necesaria la presencia de una toma de decisiones conjunta. La tarea de coordinar y poner de acuerdo a todas las partes implicadas resulta realmente complicada, y encontrar la solución que mejor se adapte a todos los participantes es uno de los principales problemas a los que hay que enfrentarse. Dentro de este contexto surge la idea de “DealtDay”, una aplicación pensada para organizar de forma sencilla e intuitiva a un grupo de personas a la hora de realizar cualquier actividad, como puede ser el establecimiento de una fecha para una reunión, elegir el restaurante dónde cenar o qué película ver. DealtDay es una aplicación desarrollada para Android, iOS y navegadores web. La elección de estas tecnologías se debe a que permiten que la aplicación sea accesible a los usuarios desde los dispositivos tecnológicos más utilizados cotidianamente (ordenador, tabletas y móviles). El funcionamiento de esta aplicación en los distintos sistemas desarrollados es posible gracias al desarrollo de una API REST que permite la comunicación entre cualquier tipo de aplicación con un servidor mediante peticiones realizadas con el protocolo HTTP. ABSTRACT Day after day it appears the necessity of organizating activities among different people where taking decisions together becomes fundamental. The task of coordinating and creating an agreement among all the parts involved, turns to be really difficult and, as a matter of fact, one of the main problems to cope with is finding a solution which fits to all the participants. In this context appears the idea of DealtDay, an application conceived to organize a group of people in an easy and intuitive way when doing any kind of activity, such as deciding a date for a meeting, choosing a restaurant, a place to have dinner or a film to be watched. DealtDay is an application developed for Android, iOS and web navigators. The selection of these technologies is due to the fact that they allows the application accessibility to users from the most used and common technological devices (personal computers, tablets and mobiles). The functioning of the application is possible thanks to an API REST development that allows the communication between any kind of application and a server through requests made by the HTTP protocol.
Resumo:
The usage of HTTP adaptive streaming (HAS) has become widely spread in multimedia services. Because it allows the service providers to improve the network resource utilization and user׳s Quality of Experience (QoE). Using this technology, the video playback interruption is reduced since the network and server status in addition to capability of user device, all are taken into account by HAS client to adapt the quality to the current condition. Adaptation can be done using different strategies. In order to provide optimal QoE, the perceptual impact of adaptation strategies from point of view of the user should be studied. However, the time-varying video quality due to the adaptation which usually takes place in a long interval introduces a new type of impairment making the subjective evaluation of adaptive streaming system challenging. The contribution of this paper is two-fold: first, it investigates the testing methodology to evaluate HAS QoE by comparing the subjective experimental outcomes obtained from ACR standardized method and a semi-continuous method developed to evaluate the long sequences. In addition, influence of using audiovisual stimuli to evaluate the video-related impairment is inquired. Second, impact of some of the adaptation technical factors including the quality switching amplitude and chunk size in combination with high range of commercial content type is investigated. The results of this study provide a good insight toward achieving appropriate testing method to evaluate HAS QoE, in addition to designing switching strategies with optimal visual quality.