25 resultados para sistemas distribuidos
em Universidad Politécnica de Madrid
Resumo:
Las facilidades e independencia de plataforma de Java han generado un gran interés en la comunidad de tiempo real. Dicho interés se ha reflejado en la especificación RTSJ (Real-Time Specification for Java), que extiende y adapta el lenguaje Java para permitir el desarrollo de sistemas de tiempo real. Adicionalmente, se han desarrollado perfiles de RTSJ para garantizar la predecibilidad en sistemas de tiempo real críticos. Sin embargo, RTSJ y sus perfiles no proporcionan facilidades para sistemas distribuidos. El objetivo de este trabajo es afrontar dicha limitación definiendo un nuevo modelo de RMI (Remote Method Invocation) basado en los principales perfiles de RTSJ para sistemas de tiempo real crítico. Este trabajo presenta el diseño y la implementación de RMI-HRT (RMI-Hard Real-Time) que está enfocado a sistemas de tiempo real crítico con requisitos de alta integridad.
Resumo:
La computación distribuida ha estado presente desde hace unos cuantos años, pero es quizás en la actualidad cuando está contando con una mayor repercusión. En los últimos años el modelo de computación en la nube (Cloud computing) ha ganado mucha popularidad, prueba de ello es la cantidad de productos existentes. Todo sistema informático requiere ser controlado a través de sistemas de monitorización que permiten conocer el estado del mismo, de tal manera que pueda ser gestionado fácilmente. Hoy en día la mayoría de los productos de monitorización existentes limitan a la hora de visualizar una representación real de la arquitectura de los sistemas a monitorizar, lo que puede dificultar la tarea de los administradores. Es decir, la visualización que proporcionan de la arquitectura del sistema, en muchos casos se ve influenciada por el diseño del sistema de visualización, lo que impide ver los niveles de la arquitectura y las relaciones entre estos. En este trabajo se presenta un sistema de monitorización para sistemas distribuidos o Cloud, que pretende dar solución a esta problemática, no limitando la representación de la arquitectura del sistema a monitorizar. El sistema está formado por: agentes, que se encargan de la tarea de recolección de las métricas del sistema monitorizado; un servidor, al que los agentes le envían las métricas para que las almacenen en una base de datos; y una aplicación web, a través de la que se visualiza toda la información. El sistema ha sido probado satisfactoriamente con la monitorización de CumuloNimbo, una plataforma como servicio (PaaS), que ofrece interfaz SQL y procesamiento transaccional altamente escalable sobre almacenes clave valor. Este trabajo describe la arquitectura del sistema de monitorización, y en concreto, el desarrollo de la principal contribución al sistema, la aplicación web. ---ABSTRACT---Distributed computing has been around for quite a long time, but now it is becoming more and more important. In the last few years, cloud computing, a branch of distributed computing has become very popular, as its different products in the market can prove. Every computing system requires to be controlled through monitoring systems to keep them functioning correctly. Currently, most of the monitoring systems in the market only provide a view of the architectures of the systems monitored, which in most cases do not permit having a real view of the system. This lack of vision can make administrators’ tasks really difficult. If they do not know the architecture perfectly, controlling the system based on the view that the monitoring system provides is extremely complicated. The project introduces a new monitoring system for distributed or Cloud systems, which shows the real architecture of the system. This new system is composed of several elements: agents, which collect the metrics of the monitored system; a server, which receives the metrics from the agents and saves them in a database; and a web application, which shows all the data collected in an easy way. The monitoring system has been tested successfully with Cumulonimbo. CumuloNimbo is a platform as a service (PaaS) which offers an SQL interface and a high-scalable transactional process. This platform works over key-value storage. This project describes the architecture of the monitoring system, especially, the development of the web application, which is the main contribution to the system.
Resumo:
La creciente complejidad, heterogeneidad y dinamismo inherente a las redes de telecomunicaciones, los sistemas distribuidos y los servicios avanzados de información y comunicación emergentes, así como el incremento de su criticidad e importancia estratégica, requieren la adopción de tecnologías cada vez más sofisticadas para su gestión, su coordinación y su integración por parte de los operadores de red, los proveedores de servicio y las empresas, como usuarios finales de los mismos, con el fin de garantizar niveles adecuados de funcionalidad, rendimiento y fiabilidad. Las estrategias de gestión adoptadas tradicionalmente adolecen de seguir modelos excesivamente estáticos y centralizados, con un elevado componente de supervisión y difícilmente escalables. La acuciante necesidad por flexibilizar esta gestión y hacerla a la vez más escalable y robusta, ha provocado en los últimos años un considerable interés por desarrollar nuevos paradigmas basados en modelos jerárquicos y distribuidos, como evolución natural de los primeros modelos jerárquicos débilmente distribuidos que sucedieron al paradigma centralizado. Se crean así nuevos modelos como son los basados en Gestión por Delegación, en el paradigma de código móvil, en las tecnologías de objetos distribuidos y en los servicios web. Estas alternativas se han mostrado enormemente robustas, flexibles y escalables frente a las estrategias tradicionales de gestión, pero continúan sin resolver aún muchos problemas. Las líneas actuales de investigación parten del hecho de que muchos problemas de robustez, escalabilidad y flexibilidad continúan sin ser resueltos por el paradigma jerárquico-distribuido, y abogan por la migración hacia un paradigma cooperativo fuertemente distribuido. Estas líneas tienen su germen en la Inteligencia Artificial Distribuida (DAI) y, más concretamente, en el paradigma de agentes autónomos y en los Sistemas Multi-agente (MAS). Todas ellas se perfilan en torno a un conjunto de objetivos que pueden resumirse en alcanzar un mayor grado de autonomía en la funcionalidad de la gestión y una mayor capacidad de autoconfiguración que resuelva los problemas de escalabilidad y la necesidad de supervisión presentes en los sistemas actuales, evolucionar hacia técnicas de control fuertemente distribuido y cooperativo guiado por la meta y dotar de una mayor riqueza semántica a los modelos de información. Cada vez más investigadores están empezando a utilizar agentes para la gestión de redes y sistemas distribuidos. Sin embargo, los límites establecidos en sus trabajos entre agentes móviles (que siguen el paradigma de código móvil) y agentes autónomos (que realmente siguen el paradigma cooperativo) resultan difusos. Muchos de estos trabajos se centran en la utilización de agentes móviles, lo cual, al igual que ocurría con las técnicas de código móvil comentadas anteriormente, les permite dotar de un mayor componente dinámico al concepto tradicional de Gestión por Delegación. Con ello se consigue flexibilizar la gestión, distribuir la lógica de gestión cerca de los datos y distribuir el control. Sin embargo se permanece en el paradigma jerárquico distribuido. Si bien continúa sin definirse aún una arquitectura de gestión fiel al paradigma cooperativo fuertemente distribuido, estas líneas de investigación han puesto de manifiesto serios problemas de adecuación en los modelos de información, comunicación y organizativo de las arquitecturas de gestión existentes. En este contexto, la tesis presenta un modelo de arquitectura para gestión holónica de sistemas y servicios distribuidos mediante sociedades de agentes autónomos, cuyos objetivos fundamentales son el incremento del grado de automatización asociado a las tareas de gestión, el aumento de la escalabilidad de las soluciones de gestión, soporte para delegación tanto por dominios como por macro-tareas, y un alto grado de interoperabilidad en entornos abiertos. A partir de estos objetivos se ha desarrollado un modelo de información formal de tipo semántico, basado en lógica descriptiva que permite un mayor grado de automatización en la gestión en base a la utilización de agentes autónomos racionales, capaces de razonar, inferir e integrar de forma dinámica conocimiento y servicios conceptualizados mediante el modelo CIM y formalizados a nivel semántico mediante lógica descriptiva. El modelo de información incluye además un “mapping” a nivel de meta-modelo de CIM al lenguaje de especificación de ontologías OWL, que supone un significativo avance en el área de la representación y el intercambio basado en XML de modelos y meta-información. A nivel de interacción, el modelo aporta un lenguaje de especificación formal de conversaciones entre agentes basado en la teoría de actos ilocucionales y aporta una semántica operacional para dicho lenguaje que facilita la labor de verificación de propiedades formales asociadas al protocolo de interacción. Se ha desarrollado también un modelo de organización holónico y orientado a roles cuyas principales características están alineadas con las demandadas por los servicios distribuidos emergentes e incluyen la ausencia de control central, capacidades de reestructuración dinámica, capacidades de cooperación, y facilidades de adaptación a diferentes culturas organizativas. El modelo incluye un submodelo normativo adecuado al carácter autónomo de los holones de gestión y basado en las lógicas modales deontológica y de acción.---ABSTRACT---The growing complexity, heterogeneity and dynamism inherent in telecommunications networks, distributed systems and the emerging advanced information and communication services, as well as their increased criticality and strategic importance, calls for the adoption of increasingly more sophisticated technologies for their management, coordination and integration by network operators, service providers and end-user companies to assure adequate levels of functionality, performance and reliability. The management strategies adopted traditionally follow models that are too static and centralised, have a high supervision component and are difficult to scale. The pressing need to flexibilise management and, at the same time, make it more scalable and robust recently led to a lot of interest in developing new paradigms based on hierarchical and distributed models, as a natural evolution from the first weakly distributed hierarchical models that succeeded the centralised paradigm. Thus new models based on management by delegation, the mobile code paradigm, distributed objects and web services came into being. These alternatives have turned out to be enormously robust, flexible and scalable as compared with the traditional management strategies. However, many problems still remain to be solved. Current research lines assume that the distributed hierarchical paradigm has as yet failed to solve many of the problems related to robustness, scalability and flexibility and advocate migration towards a strongly distributed cooperative paradigm. These lines of research were spawned by Distributed Artificial Intelligence (DAI) and, specifically, the autonomous agent paradigm and Multi-Agent Systems (MAS). They all revolve around a series of objectives, which can be summarised as achieving greater management functionality autonomy and a greater self-configuration capability, which solves the problems of scalability and the need for supervision that plague current systems, evolving towards strongly distributed and goal-driven cooperative control techniques and semantically enhancing information models. More and more researchers are starting to use agents for network and distributed systems management. However, the boundaries established in their work between mobile agents (that follow the mobile code paradigm) and autonomous agents (that really follow the cooperative paradigm) are fuzzy. Many of these approximations focus on the use of mobile agents, which, as was the case with the above-mentioned mobile code techniques, means that they can inject more dynamism into the traditional concept of management by delegation. Accordingly, they are able to flexibilise management, distribute management logic about data and distribute control. However, they remain within the distributed hierarchical paradigm. While a management architecture faithful to the strongly distributed cooperative paradigm has yet to be defined, these lines of research have revealed that the information, communication and organisation models of existing management architectures are far from adequate. In this context, this dissertation presents an architectural model for the holonic management of distributed systems and services through autonomous agent societies. The main objectives of this model are to raise the level of management task automation, increase the scalability of management solutions, provide support for delegation by both domains and macro-tasks and achieve a high level of interoperability in open environments. Bearing in mind these objectives, a descriptive logic-based formal semantic information model has been developed, which increases management automation by using rational autonomous agents capable of reasoning, inferring and dynamically integrating knowledge and services conceptualised by means of the CIM model and formalised at the semantic level by means of descriptive logic. The information model also includes a mapping, at the CIM metamodel level, to the OWL ontology specification language, which amounts to a significant advance in the field of XML-based model and metainformation representation and exchange. At the interaction level, the model introduces a formal specification language (ACSL) of conversations between agents based on speech act theory and contributes an operational semantics for this language that eases the task of verifying formal properties associated with the interaction protocol. A role-oriented holonic organisational model has also been developed, whose main features meet the requirements demanded by emerging distributed services, including no centralised control, dynamic restructuring capabilities, cooperative skills and facilities for adaptation to different organisational cultures. The model includes a normative submodel adapted to management holon autonomy and based on the deontic and action modal logics.
Resumo:
El presente proyecto propone la creación de un procedimiento y metodología para el diseño de salas y sistemas electroacústicos basados en el software EASE. La sala tipo elegida para el diseño será una sala de cine bajo las premisas de DOLBY Digital. Los sistemas electroacústicos modelo serán: • Sistema distribuido tanto en malla cuadrada como hexagonal • Sistemas centralizados basados en agrupaciones, tanto lineales como circulares. Se establecerán los pasos básicos imprescindibles para el diseño de los sistemas descritos de forma que, con la ayuda de este tutorial y los medios didácticos adjuntos al mismo, se puedan acometer paso a paso las distintas fases de diseño, cálculo y análisis de los mismos. Como metodología de trabajo se acometerá el proceso de diseño de un ejemplo de cada tipo sobre el que se describirán todos los pasos, posibilidades de diseño y cálculo de los mismos. Los puntos de estudio serán: • Diseño de una sala de Cine ◦Importación de los Ficheros Autocad del cine a EASE ◦Dibujo del recinto en EASE ◦Inserción de materiales ◦Cálculo del tiempo de reverberación en función del volumen de la sala ◦Ajuste del tiempo de reverberación ◦Elección de altavoces para la sonorización ◦Comprobación de la uniformidad de campo sonoro en todos los canales ◦Comprobación de los niveles de pico y total por canal ◦Ecualización de la sala según la curva X (ISO-2969) ◦Inclusión de la Pantalla en la curva de ecualización ◦Estudios psicoacústico de la sala. Retardos ◦Inteligibilidad ◦Diagrama de bloques • Diseño de un sistema distribuido ◦Estudio de los diferentes tipos de solapamientos ▪Borde con Borde ▪Solapamiento mínimo ▪Centro con Centro ◦Estudio de los diferente tipos de mallas ▪Cuadrada ▪Hexagonal • Diseño de un sistema Centralizado ◦Sistemas centralizados tipo Linear Array ◦Sistemas centralizados tipo Circular Array Así mismo se estudiarán las diferentes posibilidades dentro de la suite EASE, incluyendo las versiones gratuitas del mismo EASE ADDRESS (sistemas distribuidos) y FOCUS II (sistemas centralizados), comparando sus posibilidades con los módulos comerciales equivalentes de EASE y las herramientas añadidas del mismo EARS (software para la auralización biaural) y AURA (utilidad de análisis extendido). ABSTRACT This project proposes the creation of a procedure and methodology for the design of rooms and electroacoustic systems based on EASE software. The room chosen as example design is a cinema under DOLBY Digital premises. Electroacoustic systems chosen as example are: • Distributed both square and hexagonal mesh • Centralized systems based on clusters, both linear and circular. It will be established the basic essential steps for the design of the systems described so, with this tutorial and attached teaching aids, could be undertaken the various stages of design, calculation and analysis. As a working methodology, the process design of an example will be described of each system on which all the steps described, design possibilities and calculation will be shown. The main points are: • Design of a cinema • Importing Autocad Files in EASE • Drawing with EASE • Materials insertion • Reverberation time based on the room volume • Adjusting reverberation time • Choosing speakers • Checking sound field uniformity in all channels • Checking peak levels and total level per each channel • Room equalization using X curve (ISO-2969) • Adding screen in the EQ • Psychoacoustic. Delays • Intelligibility • Block diagram • Design of a distributed system • Study of the different types of overlap o Edge to Edge o Minimum Overlap o Center to Center • Study of different types of mesh • Square • Hex • Centralized System Design • Centralized systems. Linear Array • Centralized systems. Circular Array It also will explore the different possibilities within the EASE suite, including the free versions of the same EASE ADDRESS (distributed systems) and FOCUS II (centralized), comparing its potential with commercial equivalents EASE modules and added tools EARS (software for biaural auralization) and AURA (utility extended analysis).
Resumo:
En los sistemas distribuidos modernos, como la Internet o Web de las Cosas, la seguridad juega un papel preponderante. Debe prestarse especial atención a la consideración de estos aspectos en las primeras etapas de desarrollo. En este contexto, el desarrollo guiado por modelos de requisitos no funcionales (NF) presenta especial interés, ya que aborda dichas características NF en la etapa de diseño, cuando todavía se pueden realizar análisis, y aun hay margen para modificaciones antes de que estas sean muy costosas. El uso de estas metodologías guiadas por modelos ofrece beneficios tales como el aumento de la productividad, una mayor reutilización de los elementos de diseño, o una mejor mantenibilidad del sistema. Este artículo presenta una estrategia de desarrollo que permite integrar aspectos NF de seguridad (confidencialidad, integridad, y control de acceso) en los sistemas de software empotrado.
Resumo:
Distributed real-time embedded systems are becoming increasingly important to society. More demands will be made on them and greater reliance will be placed on the delivery of their services. A relevant subset of them is high-integrity or hard real-time systems, where failure can cause loss of life, environmental harm, or significant financial loss. Additionally, the evolution of communication networks and paradigms as well as the necessity of demanding processing power and fault tolerance, motivated the interconnection between electronic devices; many of the communications have the possibility of transferring data at a high speed. The concept of distributed systems emerged as systems where different parts are executed on several nodes that interact with each other via a communication network. Java’s popularity, facilities and platform independence have made it an interesting language for the real-time and embedded community. This was the motivation for the development of RTSJ (Real-Time Specification for Java), which is a language extension intended to allow the development of real-time systems. The use of Java in the development of high-integrity systems requires strict development and testing techniques. However, RTJS includes a number of language features that are forbidden in such systems. In the context of the HIJA project, the HRTJ (Hard Real-Time Java) profile was developed to define a robust subset of the language that is amenable to static analysis for high-integrity system certification. Currently, a specification under the Java community process (JSR- 302) is being developed. Its purpose is to define those capabilities needed to create safety critical applications with Java technology called Safety Critical Java (SCJ). However, neither RTSJ nor its profiles provide facilities to develop distributed realtime applications. This is an important issue, as most of the current and future systems will be distributed. The Distributed RTSJ (DRTSJ) Expert Group was created under the Java community process (JSR-50) in order to define appropriate abstractions to overcome this problem. Currently there is no formal specification. The aim of this thesis is to develop a communication middleware that is suitable for the development of distributed hard real-time systems in Java, based on the integration between the RMI (Remote Method Invocation) model and the HRTJ profile. It has been designed and implemented keeping in mind the main requirements such as the predictability and reliability in the timing behavior and the resource usage. iThe design starts with the definition of a computational model which identifies among other things: the communication model, most appropriate underlying network protocols, the analysis model, and a subset of Java for hard real-time systems. In the design, the remote references are the basic means for building distributed applications which are associated with all non-functional parameters and resources needed to implement synchronous or asynchronous remote invocations with real-time attributes. The proposed middleware separates the resource allocation from the execution itself by defining two phases and a specific threading mechanism that guarantees a suitable timing behavior. It also includes mechanisms to monitor the functional and the timing behavior. It provides independence from network protocol defining a network interface and modules. The JRMP protocol was modified to include two phases, non-functional parameters, and message size optimizations. Although serialization is one of the fundamental operations to ensure proper data transmission, current implementations are not suitable for hard real-time systems and there are no alternatives. This thesis proposes a predictable serialization that introduces a new compiler to generate optimized code according to the computational model. The proposed solution has the advantage of allowing us to schedule the communications and to adjust the memory usage at compilation time. In order to validate the design and the implementation a demanding validation process was carried out with emphasis in the functional behavior, the memory usage, the processor usage (the end-to-end response time and the response time in each functional block) and the network usage (real consumption according to the calculated consumption). The results obtained in an industrial application developed by Thales Avionics (a Flight Management System) and in exhaustive tests show that the design and the prototype are reliable for industrial applications with strict timing requirements. Los sistemas empotrados y distribuidos de tiempo real son cada vez más importantes para la sociedad. Su demanda aumenta y cada vez más dependemos de los servicios que proporcionan. Los sistemas de alta integridad constituyen un subconjunto de gran importancia. Se caracterizan por que un fallo en su funcionamiento puede causar pérdida de vidas humanas, daños en el medio ambiente o cuantiosas pérdidas económicas. La necesidad de satisfacer requisitos temporales estrictos, hace más complejo su desarrollo. Mientras que los sistemas empotrados se sigan expandiendo en nuestra sociedad, es necesario garantizar un coste de desarrollo ajustado mediante el uso técnicas adecuadas en su diseño, mantenimiento y certificación. En concreto, se requiere una tecnología flexible e independiente del hardware. La evolución de las redes y paradigmas de comunicación, así como la necesidad de mayor potencia de cómputo y de tolerancia a fallos, ha motivado la interconexión de dispositivos electrónicos. Los mecanismos de comunicación permiten la transferencia de datos con alta velocidad de transmisión. En este contexto, el concepto de sistema distribuido ha emergido como sistemas donde sus componentes se ejecutan en varios nodos en paralelo y que interactúan entre ellos mediante redes de comunicaciones. Un concepto interesante son los sistemas de tiempo real neutrales respecto a la plataforma de ejecución. Se caracterizan por la falta de conocimiento de esta plataforma durante su diseño. Esta propiedad es relevante, por que conviene que se ejecuten en la mayor variedad de arquitecturas, tienen una vida media mayor de diez anos y el lugar ˜ donde se ejecutan puede variar. El lenguaje de programación Java es una buena base para el desarrollo de este tipo de sistemas. Por este motivo se ha creado RTSJ (Real-Time Specification for Java), que es una extensión del lenguaje para permitir el desarrollo de sistemas de tiempo real. Sin embargo, RTSJ no proporciona facilidades para el desarrollo de aplicaciones distribuidas de tiempo real. Es una limitación importante dado que la mayoría de los actuales y futuros sistemas serán distribuidos. El grupo DRTSJ (DistributedRTSJ) fue creado bajo el proceso de la comunidad de Java (JSR-50) con el fin de definir las abstracciones que aborden dicha limitación, pero en la actualidad aun no existe una especificacion formal. El objetivo de esta tesis es desarrollar un middleware de comunicaciones para el desarrollo de sistemas distribuidos de tiempo real en Java, basado en la integración entre el modelo de RMI (Remote Method Invocation) y el perfil HRTJ. Ha sido diseñado e implementado teniendo en cuenta los requisitos principales, como la predecibilidad y la confiabilidad del comportamiento temporal y el uso de recursos. El diseño parte de la definición de un modelo computacional el cual identifica entre otras cosas: el modelo de comunicaciones, los protocolos de red subyacentes más adecuados, el modelo de análisis, y un subconjunto de Java para sistemas de tiempo real crítico. En el diseño, las referencias remotas son el medio básico para construcción de aplicaciones distribuidas las cuales son asociadas a todos los parámetros no funcionales y los recursos necesarios para la ejecución de invocaciones remotas síncronas o asíncronas con atributos de tiempo real. El middleware propuesto separa la asignación de recursos de la propia ejecución definiendo dos fases y un mecanismo de hebras especifico que garantiza un comportamiento temporal adecuado. Además se ha incluido mecanismos para supervisar el comportamiento funcional y temporal. Se ha buscado independencia del protocolo de red definiendo una interfaz de red y módulos específicos. También se ha modificado el protocolo JRMP para incluir diferentes fases, parámetros no funcionales y optimizaciones de los tamaños de los mensajes. Aunque la serialización es una de las operaciones fundamentales para asegurar la adecuada transmisión de datos, las actuales implementaciones no son adecuadas para sistemas críticos y no hay alternativas. Este trabajo propone una serialización predecible que ha implicado el desarrollo de un nuevo compilador para la generación de código optimizado acorde al modelo computacional. La solución propuesta tiene la ventaja que en tiempo de compilación nos permite planificar las comunicaciones y ajustar el uso de memoria. Con el objetivo de validar el diseño e implementación se ha llevado a cabo un exigente proceso de validación con énfasis en: el comportamiento funcional, el uso de memoria, el uso del procesador (tiempo de respuesta de extremo a extremo y en cada uno de los bloques funcionales) y el uso de la red (consumo real conforme al estimado). Los buenos resultados obtenidos en una aplicación industrial desarrollada por Thales Avionics (un sistema de gestión de vuelo) y en las pruebas exhaustivas han demostrado que el diseño y el prototipo son fiables para aplicaciones industriales con estrictos requisitos temporales.
Resumo:
Abstract The proliferation of wireless sensor networks and the variety of envisioned applications associated with them has motivated the development of distributed algorithms for collaborative processing over networked systems. One of the applications that has attracted the attention of the researchers is that of target localization where the nodes of the network try to estimate the position of an unknown target that lies within its coverage area. Particularly challenging is the problem of estimating the target’s position when we use received signal strength indicator (RSSI) due to the nonlinear relationship between the measured signal and the true position of the target. Many of the existing approaches suffer either from high computational complexity (e.g., particle filters) or lack of accuracy. Further, many of the proposed solutions are centralized which make their application to a sensor network questionable. Depending on the application at hand and, from a practical perspective it could be convenient to find a balance between localization accuracy and complexity. Into this direction we approach the maximum likelihood location estimation problem by solving a suboptimal (and more tractable) problem. One of the main advantages of the proposed scheme is that it allows for a decentralized implementation using distributed processing tools (e.g., consensus and convex optimization) and therefore, it is very suitable to be implemented in real sensor networks. If further accuracy is needed an additional refinement step could be performed around the found solution. Under the assumption of independent noise among the nodes such local search can be done in a fully distributed way using a distributed version of the Gauss-Newton method based on consensus. Regardless of the underlying application or function of the sensor network it is al¬ways necessary to have a mechanism for data reporting. While some approaches use a special kind of nodes (called sink nodes) for data harvesting and forwarding to the outside world, there are however some scenarios where such an approach is impractical or even impossible to deploy. Further, such sink nodes become a bottleneck in terms of traffic flow and power consumption. To overcome these issues instead of using sink nodes for data reporting one could use collaborative beamforming techniques to forward directly the generated data to a base station or gateway to the outside world. In a dis-tributed environment like a sensor network nodes cooperate in order to form a virtual antenna array that can exploit the benefits of multi-antenna communications. In col-laborative beamforming nodes synchronize their phases in order to add constructively at the receiver. Some of the inconveniences associated with collaborative beamforming techniques is that there is no control over the radiation pattern since it is treated as a random quantity. This may cause interference to other coexisting systems and fast bat-tery depletion at the nodes. Since energy-efficiency is a major design issue we consider the development of a distributed collaborative beamforming scheme that maximizes the network lifetime while meeting some quality of service (QoS) requirement at the re¬ceiver side. Using local information about battery status and channel conditions we find distributed algorithms that converge to the optimal centralized beamformer. While in the first part we consider only battery depletion due to communications beamforming, we extend the model to account for more realistic scenarios by the introduction of an additional random energy consumption. It is shown how the new problem generalizes the original one and under which conditions it is easily solvable. By formulating the problem under the energy-efficiency perspective the network’s lifetime is significantly improved. Resumen La proliferación de las redes inalámbricas de sensores junto con la gran variedad de posi¬bles aplicaciones relacionadas, han motivado el desarrollo de herramientas y algoritmos necesarios para el procesado cooperativo en sistemas distribuidos. Una de las aplicaciones que suscitado mayor interés entre la comunidad científica es la de localization, donde el conjunto de nodos de la red intenta estimar la posición de un blanco localizado dentro de su área de cobertura. El problema de la localization es especialmente desafiante cuando se usan niveles de energía de la seal recibida (RSSI por sus siglas en inglés) como medida para la localization. El principal inconveniente reside en el hecho que el nivel de señal recibida no sigue una relación lineal con la posición del blanco. Muchas de las soluciones actuales al problema de localization usando RSSI se basan en complejos esquemas centralizados como filtros de partículas, mientas que en otras se basan en esquemas mucho más simples pero con menor precisión. Además, en muchos casos las estrategias son centralizadas lo que resulta poco prácticos para su implementación en redes de sensores. Desde un punto de vista práctico y de implementation, es conveniente, para ciertos escenarios y aplicaciones, el desarrollo de alternativas que ofrezcan un compromiso entre complejidad y precisión. En esta línea, en lugar de abordar directamente el problema de la estimación de la posición del blanco bajo el criterio de máxima verosimilitud, proponemos usar una formulación subóptima del problema más manejable analíticamente y que ofrece la ventaja de permitir en¬contrar la solución al problema de localization de una forma totalmente distribuida, convirtiéndola así en una solución atractiva dentro del contexto de redes inalámbricas de sensores. Para ello, se usan herramientas de procesado distribuido como los algorit¬mos de consenso y de optimización convexa en sistemas distribuidos. Para aplicaciones donde se requiera de un mayor grado de precisión se propone una estrategia que con¬siste en la optimización local de la función de verosimilitud entorno a la estimación inicialmente obtenida. Esta optimización se puede realizar de forma descentralizada usando una versión basada en consenso del método de Gauss-Newton siempre y cuando asumamos independencia de los ruidos de medida en los diferentes nodos. Independientemente de la aplicación subyacente de la red de sensores, es necesario tener un mecanismo que permita recopilar los datos provenientes de la red de sensores. Una forma de hacerlo es mediante el uso de uno o varios nodos especiales, llamados nodos “sumidero”, (sink en inglés) que actúen como centros recolectores de información y que estarán equipados con hardware adicional que les permita la interacción con el exterior de la red. La principal desventaja de esta estrategia es que dichos nodos se convierten en cuellos de botella en cuanto a tráfico y capacidad de cálculo. Como alter¬nativa se pueden usar técnicas cooperativas de conformación de haz (beamforming en inglés) de manera que el conjunto de la red puede verse como un único sistema virtual de múltiples antenas y, por tanto, que exploten los beneficios que ofrecen las comu¬nicaciones con múltiples antenas. Para ello, los distintos nodos de la red sincronizan sus transmisiones de manera que se produce una interferencia constructiva en el recep¬tor. No obstante, las actuales técnicas se basan en resultados promedios y asintóticos, cuando el número de nodos es muy grande. Para una configuración específica se pierde el control sobre el diagrama de radiación causando posibles interferencias sobre sis¬temas coexistentes o gastando más potencia de la requerida. La eficiencia energética es una cuestión capital en las redes inalámbricas de sensores ya que los nodos están equipados con baterías. Es por tanto muy importante preservar la batería evitando cambios innecesarios y el consecuente aumento de costes. Bajo estas consideraciones, se propone un esquema de conformación de haz que maximice el tiempo de vida útil de la red, entendiendo como tal el máximo tiempo que la red puede estar operativa garantizando unos requisitos de calidad de servicio (QoS por sus siglas en inglés) que permitan una decodificación fiable de la señal recibida en la estación base. Se proponen además algoritmos distribuidos que convergen a la solución centralizada. Inicialmente se considera que la única causa de consumo energético se debe a las comunicaciones con la estación base. Este modelo de consumo energético es modificado para tener en cuenta otras formas de consumo de energía derivadas de procesos inherentes al funcionamiento de la red como la adquisición y procesado de datos, las comunicaciones locales entre nodos, etc. Dicho consumo adicional de energía se modela como una variable aleatoria en cada nodo. Se cambia por tanto, a un escenario probabilístico que generaliza el caso determinista y se proporcionan condiciones bajo las cuales el problema se puede resolver de forma eficiente. Se demuestra que el tiempo de vida de la red mejora de forma significativa usando el criterio propuesto de eficiencia energética.
Resumo:
En la actualidad las redes de Pequeño Mundo están presentes en muchas aplicaciones distribuidas, pudiéndose construir estas redes añadiendo, a un grafo base, enlaces de largo alcance tomados conforme a una determinada distribución de probabiblidad. Los sistemas distribuidos actuales utilizan soluciones ad hoc específicas para calcular los enlaces de largo alcance. En este artículo proponemos un nuevo algoritmo distribuido llamado Selección Sesgada (SS), que utilizando únicamente un servicio de muestreo uniforme (que puede estar implementado mediante un protocolo gossip), es capaz de seleccionar enlaces largos conforme a cualquier distribución de probabilidad. SS es un algoritmo iterativo que dispone de un único parámetro (r) para indicar el número de iteraciones que debe ejecutarse. Se ha probado que la muestra obtenida con el algoritmo SS converge a la distribución objetivo a medida que aumenta el valor de r. También se ha calculado la cota analítica del error relativo máximo, para un determinado valor de r. Aunque este artículo se propone para el algoritmo SS como una herramienta para tomar muestras de nodos en una red, puede emplearse en cualquier contexto en el que sea necesario realizar un muestreo conforme a una determinada distribución de probabilidad, necesitando para funcionar únicamente un servicio de muestreo uniforme. Se han construido redes de Pequeño Mundo, modelo Kleinberg, utilizando SS para escoger los enlaces (vecinos) de largo alcance en estructuras de tipo toro. Hemos observado que con un número reducido de iteraciones (1) SS tiene un comportamiento muy similar a la distribución armónica de Kleinberg y (2) el número medio de saltos, utilizando enrutamiento ávido, no es peor que en una red construida con la distribución de Leinberg. También se ha observado que antes de obtener la convergencia, el número medio de saltos es menor que en las redes construidas mediante la distribución armónica de Leinberg (14% mejor en un toro de 1000 x 1000).
Resumo:
Las arquitecturas jerárquicas de comunicación causal se presentan como una alternativa habitual para reducir el elevado tamaño de la información de control causal a enviar en cada mensaje, cuando la comunicación se realiza entre un subconjunto de procesos que pertenecen a un grupo muy numeroso. Sin embargo, en estas arquitecturas, los nodos intermedios de la jerarquía padecen un efecto indeseable denominado efecto convoy. Estos nodos intermedios tienden a generar ráfagas de envíos que sobrecargan tanto a los nodos de los niveles inferiores de la jerarquía como a la red, provocando pérdidas de mensajes y periodos entre ráfagas de infrautilización de la red. Este artículo presenta un servicio causal bidireccional sin contención que, aplicado a los nodos intermedios de la jerarquía, soluciona el efecto convoy. Este servicio causal sin contención entrega a la capa de aplicación y envía al sistema un mensaje sin esperar la entrega o el envío previo de mensajes que constituyen la historia causal del primero, por lo que evita las ráfagas de entrega y de envío de mensajes. La entrega de un mensaje va acompañada de un identificador causal, que es un número natural que indica el número de orden de ese mensaje en la secuencia causal total. El envío de un mensaje supone construir un vector causal válido a partir de un identiificador causal, que permita ordenar dicho mensaje en orden causal en el proceso receptor.
Resumo:
The set agreement problem states that from n proposed values at most n?1 can be decided. Traditionally, this problem is solved using a failure detector in asynchronous systems where processes may crash but do not recover, where processes have different identities, and where all processes initially know the membership. In this paper we study the set agreement problem and the weakest failure detector L used to solve it in asynchronous message passing systems where processes may crash and recover, with homonyms (i.e., processes may have equal identities) and without a complete initial knowledge of the membership.
Resumo:
RESUMEN Las aplicaciones de los Sistemas de Información Geográfica (SIG) a la Arqueología, u otra disciplina humanística no son una novedad. La evolución de los mismos hacia sistemas distribuidos e interoperables, y estructuras donde las políticas de uso, compartido y coordinado de los datos sí lo son, estando todos estos aspectos contemplados en la Infraestructura de Datos Espaciales. INSPIRE es el máximo exponente europeo en cuestiones de iniciativa y marco legal en estos aspectos. La metodología arqueológica recopila y genera gran cantidad de datos, y entre los atributos o características intrínsecas están la posición y el tiempo, aspectos que tradicionalmente explotan los SIG. Los datos se catalogan, organizan, mantienen, comparten y publican, y los potenciales consumidores comienzan a tenerlos disponibles. Toda esta información almacenada de forma tradicional en fichas y posteriormente en bases de datos relacionadas alfanuméricas pueden ser considerados «metadatos» en muchos casos por contener información útil para más usuarios en los procesos de descubrimiento, y explotación de los datos. Además estos datos también suelen ir acompañados de información sobre ellos mismos, que describe su especificaciones, calidad, etc. Cotidianamente usamos los metadatos: ficha bibliográfica del libro o especificaciones de un ordenador. Pudiéndose definir como: «información descriptiva sobre el contexto, calidad, condición y características de un recurso, dato u objeto que tiene la finalidad de facilitar su recuperación, identificación,evaluación, preservación y/o interoperabilidad». En España existe una iniciativa para estandarizar la descripción de los metadatos de los conjuntos de datos geoespaciales: Núcleo Español de Metadatos (NEM), los mismos contienen elementos para la descripción de las particularidades de los datos geográficos, que incluye todos los registros obligatorios de la Norma ISO19115 y del estudio de metadatos Dublin Core, tradicionalmente usado en contextos de Biblioteconomía. Conscientes de la necesidad de los metadatos, para optimizar la búsqueda y recuperación de los datos, se pretende formalizar la documentación de los datos arqueológicos a partir de la utilización del NEM, consiguiendo así la interoperabilidad de la información arqueológica. SUMMARY The application of Geographical Information Systems (GIS) to Archaeology and other social sciences is not new. Their evolution towards inter-operating, distributed systems, and structures in which policies for shared and coordinated data use are, and all these aspects are included in the Spatial Data Infrastructure (SDI). INSPIRE is the main European exponent in matters related to initiative and legal frame. Archaeological methodology gathers and creates a great amount of data, and position and time, aspects traditionally exploited by GIS, are among the attributes or intrinsic characteristics. Data are catalogued, organised, maintained, shared and published, and potential consumers begin to have them at their disposal. All this information, traditionally stored as cards and later in relational alphanumeric databases may be considered «metadata» in many cases, as they contain information that is useful for more users in the processes of discovery and exploitation of data. Moreover, this data are often accompanied by information about themselves, describing its especifications, quality, etc. We use metadata very often: in a book’s bibliographical card, or in the description of the characteristics of a computer. They may be defined as «descriptive information regarding the context, quality, condition and characteristics of a resource, data or object with the purpose of facilitating is recuperation, identification, evaluation, preservation and / interoperability.» There is an initiative in Spain to standardise the description of metadata in sets of geo-spatial data: the Núcleo Español de Metadatos (Spanish Metadata Nucleus), which contains elements for the description of the particular characteristics of geographical data, includes all the obligatory registers from the ISO Norm 19115 and from the metadata study Dublin Core, traditionally used in library management. Being aware of the need of metadata, to optimise the search and retrieval of data, the objective is to formalise the documentation of archaeological data from the Núcleo Español de Metadatos (Spanish Metadata Nucleus), thus obtaining the interoperability of the archaeological information.
Resumo:
A lo largo de los últimos años, el paradigma de la arquitectura orientada a servicios ha tenido una gran expansión gracias a la expansión de las tecnologías web e internet. Las ventajas de esta arquitectura se basan en ofrecer diseños modulares con poco acoplamiento entre sí, lo que permite la creación eficiente y sistemática de sistemas distribuidos. Para que este tipo de arquitectura sea posible, es necesario dotar a los servicios de interfaces de interconexión que permitan encapsular los servicios al mismo tiempo que faciliten el uso de los mismos. Existen varias tecnologías para definir estos interfaces. Entre ellas, los servicios REST, o REpresentional State Transfer, están logrando cada vez más aceptación. Esto se debe principalmente a su capacidad de escalabilidad y la uniformidad de sus interfaces, que permite una mayor separación entre los consumidores y los servicios. De hecho, compañias como Yahoo, Google o Twitter definen interfaces REST de acceso a sus servicios, ya se para consultar mapas (GoogleMaps), imágenes (Flickr) o el correo, permitiendo a terceros desarrollar clientes para sus servicios sin tener que involucrarse en su producción.
Resumo:
La razón de este proyecto, es la de desarrollar el módulo de cursos de la plataforma de Massive Online Open Courses (MOOCs), CloudRoom. Dicho módulo está englobado en una arquitectura orientada a servicios (SOA) y en una infraestructura de Cloud Computing utilizando Amazon Web Services (AWS). Nuestro objetivo es el de diseñar un Software as a Service (SaaS) robusto con las cualidades que a un producto de este tipo se le estiman: alta disponibilidad, alto rendimiento, gran experiencia de usuario y gran extensibilidad del sistema. Para lograrlo, se llevará a cabo la integración de las últimas tendencias tecnológicas dentro del desarrollo de sistemas distribuidos como Neo4j, Node.JS, Servicios RESTful, CoffeeScript. Todo esto siguiendo un estrategia de desarrollo PLAN-DO-CHECK utilizando Scrum y prácticas de metodologías ágiles. ---ABSTRACT---The reason of this Project is to develop the courses‟ module of CloudRoom, a Massive Online Open Courses platform. This module is encapsulated in a service-oriented architecture (SOA) based on a Cloud Computing infrastructure built on Amazon Web Services (AWS). Our goal is to design a robust Software as a Service (SaaS) with the qualities that are estimated in a product of this type: high availability, high performance, great user experience and great extensibility of the system. In order to address this, we carry out the integration of the latest technology trends in the development of distributed systems: Neo4j, Node.JS, RESTful Services and CoffeeScript. All of this, following a development strategy PLAN-DO-CHECK, using Scrum and practices of agile methodologies.
Resumo:
Debido a la creciente relevancia de la computación en la nube y de los sistemas distribuidos, cobran también creciente interés las herramientas que ayudan a los desarrolladores y administradores a desempeñar sus funciones con la mayor eficacia posible. Por ello el objetivo principal de este trabajo es el desarrollo de una herramienta capaz de crear y controlar un entorno de almacenamiento de claves distribuidas desde una máquina local e independiente, aumentando la productividad mediante la automatización de todas las tareas. La herramienta desarrollada tiene la capacidad necesaria para integrarse tanto en proyectos que se encuentren en marcha como para proyectos que aún no hayan comenzado y proveer una solución sencilla, eficaz, y, sobre todo, útil. A lo largo del trabajo se ha realizado una gran tarea de análisis para determinar cuáles serán, de entre las posibilidades existentes, las más apropiadas para su implementación, teniendo en cuenta las tecnologías líderes disponibles en el estado del arte. Ello ha requerido también la obtención de una mejor comprensión de su funcionamiento interno. Se han realizado diferentes diseños que se han analizado y discutido en detalle para encontrar la solución que mejor se adaptaba a los objetivos propuestos. Y finalmente se ha desarrollado una herramienta ligera y sencilla, pero con un gran potencial para la administración. ---ABSTRACT---Due to the growing relevance of cloud computing and distributed systems it seems interesting to take into account the importance of the administration tools that help developers and administrators fulfill their duties in the most efficient ways. Because of this motivation, the main objective of this project is the development of a tool capable of creating and controlling a distributed key storing environment from a local and independent machine, improving the productivity thanks to the automation of all the involved tasks. The developed tool is able to integrate itself into already running projects as well as in not-yet-started ones, providing a simple, efficient and overall useful solution. During this project big tasks of research and analysis have taken place in order to determine, from the existent possibilities, the most suitable for its implementation, taking into account the leading technologies in the sector, which are described in the state of the art section. This has required the acquisition of a better insight of their inner workings. Some different designs have been made and have been discussed in detail with the intention of finding the solution that best suits the proposed objectives. And finally a lightweight and simple tool has been developed, which presents a very big potential for administration tasks.
Resumo:
El objetivo de este proyecto es el estudio de soluciones de escalabilidad y alta disponibilidad en sistemas distribuidos, así como su implantación en aquel de los sistemas analizados por Telefónica Digital, PopBox y Rush, que se consideré más adecuado. Actualmente, muchos servicios y aplicaciones están alojados directamente en laWeb, permitiendo abaratar el uso de ciertos servicios y mejorando la productividad y la competitividad de las empresas que los usan. Este crecimiento de las tecnologías en cloud experimentado en los últimos años plantea la necesidad de realizar sistemas que sean escalables, fiables y estén disponibles la mayor parte del tiempo posible. Un fallo en el servicio no afecta a una sola empresa, sino a todas las que están haciendo uso de dicho servicio. A lo largo de este proyecto se estudiarán las soluciones de alta disponibilidad y escalabilidad implementadas en varios sistemas distribuidos y se realizará una evaluación crítica de cada una de ellas. También se analizará la idoneidad de estas soluciones para los sistemas en los que posteriormente se aplicarán: PopBox y Rush. Se han diseñado diferentes soluciones para las plataformas implicadas, siguiendo varias aproximaciones y realizando un análisis exhaustivo de cada una de ellas, teniendo en cuenta el rendimiento y fiabilidad de cada aproximación. Una vez se ha determinado cuál es la estrategia más adecuada, se ha realizado una implementación fiable del sistema. Para cada uno de los módulos implementados se ha llevado a cabo una fase de testing unitario y de integración para asegurar el buen comportamiento del sistema y la integridad de éste cuando se realicen cambios. Específicamente, los objetivos que se alcanzarán son los siguientes: 1. Análisis exhaustivo de los sistemas de escalabilidad y alta escalabilidad que existen actualmente. 2. Diseño de una solución general HA1 y escalable teniendo en cuenta el objetivo anterior. 3. Análisis de la idoneidad de los sistemas PopBox y Rush para el diseño de un entorno distribuido escalable. 4. Diseño e implantación de una solución ad-hoc en el sistema elegido. ---ABSTRACT---The aim of this project is the study of solutions in scalability and high availability in distributed systems, and also its implementation in one of the systems developed y Telefónica I+D, PopBox and Rush, deemed more suitable. Nowadays, a lot of services and applications are stored directly in the Web, allowing companies to reduce the costs of using certain services and improving the productivity and competitiveness of those who use these services. This increase of the use of cloud tecnologies experimented in the last few years has led to the need of developing high available, scalable, and reliable systems. A failure in the service does not affect a single company but all the companies using this service. Throughout this project, I will study several solutions in High Availability and Scalability developed in some distributed systems and I will make a critic analysis of each one. Also I will analize the suitability of these solutions in the systems in which they will be applied: PopBox and Rush. I have designed different solutions for the platforms involved, following several approaches and making an exhaustive analysis of each one, taking into account their performance and reliability of each approach. Once I had determined which is the best strategy, I have developed a reliable implementation of the system. For each module implemented, I have carried out a set of unitary and integration tests to ensure the good behaviour of the system and the integrity of it when it changes. Specifically, the objectives to be achieved are as follows: 1. Exhaustive analysis of the systems in scalability and high availability that currently exist. 2. Design of a general solution taking into account the previous point. 3. Analysis of the suitability of the sistems PopBox and Rush for the design of a scalable distributed system. 4. Design and implementation of an ad-hoc solution in the chosen system.