3,547 research outputs found

    A Policy-Based Resource Brokering Environment for Computational Grids

    Get PDF
    With the advances in networking infrastructure in general, and the Internet in particular, we can build grid environments that allow users to utilize a diverse set of distributed and heterogeneous resources. Since the focus of such environments is the efficient usage of the underlying resources, a critical component is the resource brokering environment that mediates the discovery, access and usage of these resources. With the consumer\u27s constraints, provider\u27s rules, distributed heterogeneous resources and the large number of scheduling choices, the resource brokering environment needs to decide where to place the user\u27s jobs and when to start their execution in a way that yields the best performance for the user and the best utilization for the resource provider. As brokering and scheduling are very complicated tasks, most current resource brokering environments are either specific to a particular grid environment or have limited features. This makes them unsuitable for large applications with heterogeneous requirements. In addition, most of these resource brokering environments lack flexibility. Policies at the resource-, application-, and system-levels cannot be specified and enforced to provide commitment to the guaranteed level of allocation that can help in attracting grid users and contribute to establishing credibility for existing grid environments. In this thesis, we propose and prototype a flexible and extensible Policy-based Resource Brokering Environment (PROBE) that can be utilized by various grid systems. In designing PROBE, we follow a policy-based approach that provides PROBE with the intelligence to not only match the user\u27s request with the right set of resources, but also to assure the guaranteed level of the allocation. PROBE looks at the task allocation as a Service Level Agreement (SLA) that needs to be enforced between the resource provider and the resource consumer. The policy-based framework is useful in a typical grid environment where resources, most of the time, are not dedicated. In implementing PROBE, we have utilized a layered architecture and façade design patterns. These along with the well-defined API, make the framework independent of any architecture and allow for the incorporation of different types of scheduling algorithms, applications and platform adaptors as the underlying environment requires. We have utilized XML as a base for all the specification needs. This provides a flexible mechanism to specify the heterogeneous resources and user\u27s requests along with their allocation constraints. We have developed XML-based specifications by which high-level internal structures of resources, jobs and policies can be specified. This provides interoperability in which a grid system can utilize PROBE to discover and use resources controlled by other grid systems. We have implemented a prototype of PROBE to demonstrate its feasibility. We also describe a test bed environment and the evaluation experiments that we have conducted to demonstrate the usefulness and effectiveness of our approach

    Migration system for Zoe microservices

    Get PDF
    The Zoe virtual assistant developed by the Linux User Group from Carlos III University is a project that aims to automate various tedious tasks of the association. Its architecture is based on independent microservices (agents) that communicate through a common server and can be implemented in almost any programming language thanks to the plain text messaging protocol. The aim of this project is to extend the Zoe platform in order to add migration capabilities to the agents. That way, it would be possible to distribute the load among different machines, making efficient use of the available hardware resources by means of load balancing algorithms while maintaining the internal data across migrations. The approach followed was to design a portable protocol to deal with file and data migrations and implement it in a distributed architecture using basic functionalities from the original project. Said architecture was devised as an addition to Zoe, at software level, that does not require any modification to the original components and uses SSH tunneling for inter-machine communication. As a result, the system obtained is completely backward compatible and transparent, given that all the process is controlled by the independent Scout agent. Furthermore, the two load balancing algorithms implemented automatically migrate the agents either trying to maintain a regular load among all the machines or to use specific machines, which would allow to shut down unused machines. Moreover, the modular code greatly simplifies the addition of new algorithms. As a conclusion, the proposed solution offers a new set of tools for developers of the Zoe project in the hopes of enriching the agent ecosystem. Finally, by releasing it as free software, anyone can expand the capabilities of this work or apply it to other fields, which could lead to new and interesting, projects.El projecto de asistente virtual Zoe desarrollado por el Grupo de Usuarios de Linux de la Universidad Carlos III de Madrid tiene como fin la automatización de diferentes tareas de la asociación. Su arquitectura se basa en microservicios independientes (agentes) que se comunican por medio de un servidor común y pueden implementarse en casi cualquier lenguaje de programación gracias al protocol de mensajería basado en texto plano. El objetivo de este proyecto es extender Zoe para habilitar la migración de agentes. Así, sería posible distribuir la carga entre diferentes máquinas, haciendo un uso eficiente del hardware disponible mediante algoritmos de balanceo de carga, manteniendo además los datos internos durante la migración. Para ello se diseñó un protocolo que se encargara de la migración de archivos y datos y se implementó en una arquitectura distribuida usando funcionalidades básicas del proyecto original. Dicha arquitectura se ideó como un añadido a Zoe a nivel de software que no requiere modificación de los componentes originales y utiliza túneles SSH para la comunicación entre máquinas. El sistema obtenido como resultado es completamente compatible con el original, además de transparente, teniendo en cuenta que el proceso se controla por medio del agente independiente Scout. Además, los dos algoritmos de balanceo de carga implementados migran agentes automáticamente, ya sea para mantener una carga regular entre máquinas o utilizar máquinas específicas, lo que permitiría apagar aquellas en desuso. Aparte de esto, el código modular simplifica enormemente el añadir nuevos algoritmos. Como conclusión, la solución propuesta ofrece un nuevo conjunto de herramientas para desarrolladores del proyecto Zoe con la esperanza de poder enriquecer el ecosistema de agentes. Finalmente, al liberarlo como software libre, cualquiera puede expandir este trabajo o aplicarlo a otros campos, lo cual podría llevar a proyectos interesantes.Ingeniería Informátic

    Algorithms in nature: the convergence of systems biology and computational thinking

    Get PDF
    Biologists rely on computational methods to analyze and integrate large data sets, while several computational methods were inspired by the high-level design principles of biological systems. This Perspectives discusses the recent convergence of these two ways of thinking

    Amoeba: Circumventing ML-supported Network Censorship via Adversarial Reinforcement Learning

    Full text link
    Embedding covert streams into a cover channel is a common approach to circumventing Internet censorship, due to censors' inability to examine encrypted information in otherwise permitted protocols (Skype, HTTPS, etc.). However, recent advances in machine learning (ML) enable detecting a range of anti-censorship systems by learning distinct statistical patterns hidden in traffic flows. Therefore, designing obfuscation solutions able to generate traffic that is statistically similar to innocuous network activity, in order to deceive ML-based classifiers at line speed, is difficult. In this paper, we formulate a practical adversarial attack strategy against flow classifiers as a method for circumventing censorship. Specifically, we cast the problem of finding adversarial flows that will be misclassified as a sequence generation task, which we solve with Amoeba, a novel reinforcement learning algorithm that we design. Amoeba works by interacting with censoring classifiers without any knowledge of their model structure, but by crafting packets and observing the classifiers' decisions, in order to guide the sequence generation process. Our experiments using data collected from two popular anti-censorship systems demonstrate that Amoeba can effectively shape adversarial flows that have on average 94% attack success rate against a range of ML algorithms. In addition, we show that these adversarial flows are robust in different network environments and possess transferability across various ML models, meaning that once trained against one, our agent can subvert other censoring classifiers without retraining

    SNAP: Stateful Network-Wide Abstractions for Packet Processing

    Full text link
    Early programming languages for software-defined networking (SDN) were built on top of the simple match-action paradigm offered by OpenFlow 1.0. However, emerging hardware and software switches offer much more sophisticated support for persistent state in the data plane, without involving a central controller. Nevertheless, managing stateful, distributed systems efficiently and correctly is known to be one of the most challenging programming problems. To simplify this new SDN problem, we introduce SNAP. SNAP offers a simpler "centralized" stateful programming model, by allowing programmers to develop programs on top of one big switch rather than many. These programs may contain reads and writes to global, persistent arrays, and as a result, programmers can implement a broad range of applications, from stateful firewalls to fine-grained traffic monitoring. The SNAP compiler relieves programmers of having to worry about how to distribute, place, and optimize access to these stateful arrays by doing it all for them. More specifically, the compiler discovers read/write dependencies between arrays and translates one-big-switch programs into an efficient internal representation based on a novel variant of binary decision diagrams. This internal representation is used to construct a mixed-integer linear program, which jointly optimizes the placement of state and the routing of traffic across the underlying physical topology. We have implemented a prototype compiler and applied it to about 20 SNAP programs over various topologies to demonstrate our techniques' scalability
    corecore