30 research outputs found

    Managing Elasticity Across Multiple Cloud Providers

    Get PDF
    International audienceIn the context of cloud computing, elasticity is the capacity to scale computing resources up and down easily. Currently, most Platforms as a Service manage application elasticity within a single cloud provider. However, the not so infrequent issue of cloud outage has become a concern that hinders the usability of cloud-based applications. The most promising solutions to this issue are those based on the federation of multiple clouds. In this paper, we present a Multi-Cloud-PaaS architecture. We show how this architecture can be used for managing elasticity across multiple cloud providers

    Una extensión de la programación en lógica que incluye eventos y comunicación

    Get PDF
    Este trabajo presenta una línea de investigación para el desarrollo de Sistemas Multi-agente en un entorno distribuido. La investigación está centrada en el estudio, diseño e implementación de una extensión de la programación en lógica que incluye manejo de eventos y primitivas de comunicación entre procesos. El manejo de eventos es necesario para poder desarrollar agentes que reaccionen ante ciertos sucesos, producidos por cambios en su entorno o provocados por otros agentes. Por ejemplo, un agente robot que choca contra un obstáculo deber a poder reaccionar directamente ante este evento y ejecutar algún algoritmo de evasión. Por otro lado, si varios agentes deben interactuar para resolver un problema, entonces el lenguaje debe proveer un mecanismo para la comunicación y coordinación entre los agentes. Uniendo las facilidades de comunicación y el manejo de eventos, se permitir a programar la respuesta a eventos externos. Esto es, eventos que son despachados remotamente por otros agentes.Eje: Inteligencia artificial distribuida, aspectos teóricos de la inteligencia artificial y teoría de computaciónRed de Universidades con Carreras en Informática (RedUNCI

    Behavior Trees with Dataflow: Coordinating Reactive Tasks in Lingua Franca

    Full text link
    Behavior Trees (BTs) provide a lean set of control flow elements that are easily composable in a modular tree structure. They are well established for modeling the high-level behavior of non-player characters in computer games and recently gained popularity in other areas such as industrial automation. While BTs nicely express control, data handling aspects so far must be provided separately, e. g. in the form of blackboards. This may hamper reusability and can be a source of nondeterminism. We here present a dataflow extension to BTs that explicitly models data relations and communication. We provide a combined textual/graphical approach in line with modern, productivity-enhancing pragmatics-aware modeling techniques. We realized and validated that approach in the recently introduced polyglot coordination language Lingua Franca (LF)

    Una extensión de la programación en lógica que incluye eventos y comunicación

    Get PDF
    Este trabajo presenta una línea de investigación para el desarrollo de Sistemas Multi-agente en un entorno distribuido. La investigación está centrada en el estudio, diseño e implementación de una extensión de la programación en lógica que incluye manejo de eventos y primitivas de comunicación entre procesos. El manejo de eventos es necesario para poder desarrollar agentes que reaccionen ante ciertos sucesos, producidos por cambios en su entorno o provocados por otros agentes. Por ejemplo, un agente robot que choca contra un obstáculo deber a poder reaccionar directamente ante este evento y ejecutar algún algoritmo de evasión. Por otro lado, si varios agentes deben interactuar para resolver un problema, entonces el lenguaje debe proveer un mecanismo para la comunicación y coordinación entre los agentes. Uniendo las facilidades de comunicación y el manejo de eventos, se permitir a programar la respuesta a eventos externos. Esto es, eventos que son despachados remotamente por otros agentes.Eje: Inteligencia artificial distribuida, aspectos teóricos de la inteligencia artificial y teoría de computaciónRed de Universidades con Carreras en Informática (RedUNCI

    Aggregation of an FX order book based on complex event processing

    Get PDF

    Modal Reactors

    Full text link
    Complex software systems often feature distinct modes of operation, each designed to handle a particular scenario that may require the system to respond in a certain way. Breaking down system behavior into mutually exclusive modes and discrete transitions between modes is a commonly used strategy to reduce implementation complexity and promote code readability. However, such capabilities often come in the form of self-contained domain specific languages or language-specific frameworks. The work in this paper aims to bring the advantages of modal models to mainstream programming languages, by following the polyglot coordination approach of Lingua Franca (LF), in which verbatim target code (e.g., C, C++, Python, Typescript, or Rust) is encapsulated in composable reactive components called reactors. Reactors can form a dataflow network, are triggered by timed as well as sporadic events, execute concurrently, and can be distributed across nodes on a network. With modal models in LF, we introduce a lean extension to the concept of reactors that enables the coordination of reactive tasks based on modes of operation. The implementation of modal reactors outlined in this paper generalizes to any LF-supported language with only modest modifications to the generic runtime system

    Developer Support Tools for tevent Library

    Get PDF
    Práce se zabývá vytvořením návodu pro knihovnou tevent. Přiblížena je samotná koncepce knihovny a její možnosti spolu s ukázkami kódu, jak s knihovnou vhodně pracovat. Dále se práce zabývá rozšířením pro debuggery, jež bylo současně s touto prací vytvořeno a které umožňuje efektivnější práci s touto knihovnou. Zahrnuto je rovněž porovnání s konkurující knihovnou libevent.Aim of this thesis is creation of description and tutorial for tevent library. Another goal was developing of debugger extension which has been created along with this thesis and is helpful for programmers working with tevent. Furthermore, there is a comparison of tevent with competition library - libevent.

    Model-based, event-driven programming paradigm for interactive web applications

    Get PDF
    Applications are increasingly distributed and event-driven. Advances in web frameworks have made it easier to program standalone servers and their clients, but these applications remain hard to write. A model-based programming paradigm is proposed that allows a programmer to represent a distributed application as if it were a simple sequential program, with atomic actions updating a single, shared global state. A runtime environment executes the program on a collection of clients and servers, automatically handling (and hiding from the programmer) complications such as network communication (including server push), serialization, concurrency and races, persistent storage of data, and queuing and coordination of events.National Science Foundation (U.S.) (Grant CCF-1138967)National Science Foundation (U.S.) (Grant CCF-1012759)National Science Foundation (U.S.) (Grant CCF-0746856

    Static Analysis for Asynchronous JavaScript Programs

    Get PDF
    Asynchrony has become an inherent element of JavaScript, as an effort to improve the scalability and performance of modern web applications. To this end, JavaScript provides programmers with a wide range of constructs and features for developing code that performs asynchronous computations, including but not limited to timers, promises, and non-blocking I/O. However, the data flow imposed by asynchrony is implicit, and not always well-understood by the developers who introduce many asynchrony-related bugs to their programs. Worse, there are few tools and techniques available for analyzing and reasoning about such asynchronous applications. In this work, we address this issue by designing and implementing one of the first static analysis schemes capable of dealing with almost all the asynchronous primitives of JavaScript up to the 7th edition of the ECMAScript specification. Specifically, we introduce the callback graph, a representation for capturing data flow between asynchronous code. We exploit the callback graph for designing a more precise analysis that respects the execution order between different asynchronous functions. We parameterize our analysis with one novel context-sensitivity flavor, and we end up with multiple analysis variations for building callback graph. We performed a number of experiments on a set of hand-written and real-world JavaScript programs. Our results show that our analysis can be applied to medium-sized programs achieving 79% precision, on average. The findings further suggest that analysis sensitivity is beneficial for the vast majority of the benchmarks. Specifically, it is able to improve precision by up to 28.5%, while it achieves an 88% precision on average without highly sacrificing performance
    corecore