64 research outputs found

    TRUCE: Agent Coordination Through Concurrent Interpretation of Role-Based Protocols

    Get PDF
    Established protocols for coordination are essential for implementing joint-action activities among collaborating software agent. Most existing agents, however, are designed only to support static protocols, which limit their interaction domain to specific sets of agents. We develop an agent collaboration framework for open systems that enables an agent to expand its acquaintance set and to adapt to various coordination protocols dynamically. This is achieved through writing coordination scripts that are interpreted at collaboration time. We developed a role-based coordination language for writing these scripts, where the coordination mechanism used is the concurrent interpretation of a single script by the participants of a given collaboration. This interpretation defines the behavior of every agent. Thus. their individual interpretation may differ depending on the roles that were assigned to them. This new coordination language provides various coordination primitives in which the basic synchronization is achieved via distributed rendezvous points. In this paper, we present and demonstrate the elements of the TRUCE language

    Complex event types for agent-based simulation

    Get PDF
    This thesis presents a novel formal modelling language, complex event types (CETs), to describe behaviours in agent-based simulations. CETs are able to describe behaviours at any computationally represented level of abstraction. Behaviours can be specified both in terms of the state transition rules of the agent-based model that generate them and in terms of the state transition structures themselves. Based on CETs, novel computational statistical methods are introduced which allow statistical dependencies between behaviours at different levels to be established. Different dependencies formalise different probabilistic causal relations and Complex Systems constructs such as ‘emergence’ and ‘autopoiesis’. Explicit links are also made between the different types of CET inter-dependency and the theoretical assumptions they represent. With the novel computational statistical methods, three categories of model can be validated and discovered: (i) inter-level models, which define probabilistic dependencies between behaviours at different levels; (ii) multi-level models, which define the set of simulations for which an inter-level model holds; (iii) inferred predictive models, which define latent relationships between behaviours at different levels. The CET modelling language and computational statistical methods are then applied to a novel agent-based model of Colonic Cancer to demonstrate their applicability to Complex Systems sciences such as Systems Biology. This proof of principle model provides a framework for further development of a detailed integrative model of the system, which can progressively incorporate biological data from different levels and scales as these become available

    Multiparty interactions in dependable distributed systems

    Get PDF
    PhD ThesisWith the expansion of computer networks, activities involving computer communication are becoming more and more distributed. Such distribution can include processing, control, data, network management, and security. Although distribution can improve the reliability of a system by replicating components, sometimes an increase in distribution can introduce some undesirable faults. To reduce the risks of introducing, and to improve the chances of removing and tolerating faults when distributing applications, it is important that distributed systems are implemented in an organized way. As in sequential programming, complexity in distributed, in particular parallel, program development can be managed by providing appropriate programming language constructs. Language constructs can help both by supporting encapsulation so as to prevent unwanted interactions between program components and by providing higher-level abstractions that reduce programmer effort by allowing compilers to handle mundane, error-prone aspects of parallel program implementation. A language construct that supports encapsulation of interactions between multiple parties (objects or processes) is referred in the literature as multiparty interaction. In a multiparty interaction, several parties somehow "come together" to produce an intermediate and temporary combined state, use this state to execute some activity, and then leave the interaction and continue their normal execution. There has been a lot of work in the past years on multiparty interaction, but most of it has been concerned with synchronisation, or handshaking, between parties rather than the encapsulation of several activities executed in parallel by the interaction participants. The programmer is therefore left responsible for ensuring that the processes involved in a cooperative activity do not interfere with, or suffer interference from, other processes not involved in the activity. Furthermore, none of this work has discussed the provision of features that would facilitate the design of multiparty interactions that are expected to cope with faults - whether in the environment that the computer system has to deal with, in the operation of the underlying computer hardware or software, or in the design of the processes that are involved in the interaction. In this thesis the concept of multiparty interaction is integrated with the concept of exception handling in concurrent activities. The final result is a language in which the concept of multiparty interaction is extended by providing it with a mechanism to handle concurrent exceptions. This extended concept is called dependable multiparty interaction. The features and requirements for multiparty interaction and exception handling provided in a set of languages surveyed in this thesis, are integrated to describe the new dependable multiparty interaction construct. Additionally, object-oriented architectures for dependable multiparty interactions are described, and a full implementation of one of the architectures is provided. This implementation is then applied to a set of case studies. The case studies show how dependable multiparty interactions can be used to design and implement a safety-critical system, a multiparty programming abstraction, and a parallel computation model.Brazilian Research Agency CNPq

    The Design of Graphical Process Modeling Languages: from Free Composition to Modular Construction

    Get PDF
    Un Process Modeling Language (PML) grafico \ue8 un linguaggio specializzato per la modellazione di sistemi software in termini di processi. Tale linguaggio \ue8 detto grafico perch\ue8 la rappresentazione principale dei modelli consiste in diagrammi ottenuti combinando costrutti grafici e componenti precedentemente definiti. Un Process-Aware Information System (PAIS) \ue8 un sistema software guidato da modelli di processi con lo scopo di coordinare e supportare gli agenti nello svolgimento delle loro attivit\ue0. Tale sistema \ue8 responsabile della gestione simulatanea di diverse istanze di processo e del bilanciamento delle risorse disponibili. Un PML \ue8 l'interfaccia principale di un PAIS ed un aspetto fondamentale della sua progettazione, poich\ue8 \ue8 utilizzato da utenti finali, consulenti, e sviluppatori al fine di comprendere, implementare ed eseguire processi complessi. L'utilizzo di tecnologie PAIS pu\uf2 essere considerevolmente limitato dalle carenze di un PML nel descrivere casi complessi. Lo scopo principale della tesi \ue8 migliorare la progettazione di PML grafici al fine di costruire PAIS pi\uf9 efficaci. Tale obiettivo \ue8 perseguito attraverso tre percorsi interconnessi: per prima cosa, i PMLs esistenti e la loro teoria sottostante sono stati analizzati al fine di individuare pregi e difetti; successivamente, una tecnica di verifica molto diffusa in questo campo \ue8 stata consolidata ed estesa con una nuova tecnica per la correzione automatica di processi. Infine, una diversa soluzione per il design di PMLs \ue8 stata esplorata attraverso la definizione di un nuovo linguaggio, chiamato NestFlow, che migliora la modularit\ue0 e la comprensibilit\ue0 attraverso l'adozione di un approccio strutturato alla modellazione di processi. Un approccio modulare \ue8 possible solo se gli aspetti legati ai dati sono accettati come aspetto primario nel design di un PML. NestFlow cerca di semplificare l'attivit\ue0 di modellazione fornendo un insieme integrato di costrutti di control-flow e data-flow, promuovendo i secondi come aspetti principali nella modellazione di processi.A graphical Process Modeling Language (PML) is a language tailored for modeling software systems by means of process models. It is said to be graphical because the primary representation of models are diagrams obtained combining visual constructs and previously defined components. Graphical PMLs are interesting as they open the design space to new geometric representations of complex interrelated aspects like concurrency and interaction. A Process-Aware Information System (PAIS) is a software system driven by explicit process models with the aim to coordinate and support agents in performing their activities. It is responsible for managing several process model instances at the same time balancing the available resources. A PML is the primary interface of a PAIS and a main concern in its design, because it is used by end-users, consultants, and developers for understanding, implementing and enacting complex processes. The adoption of PAIS technology may be severely limited by the weakness of PMLs in describing complex use cases. The overall aim of this thesis is to improve the design of graphical PMLs in order to engineer more effective PAISs. This goal is pursued following three intertwined paths: firstly, mainstream PMLs and their theoretical foundations are analyzed for exposing their features and limits; secondly, a widespread PML verification method is consolidated and then extended with a novel technique for automating process correction; finally, an alternative PML design solution is explored through a proof-of-concept language, called NestFlow, that improves both modularity and comprehensibility by providing a more structured modeling approach. A modular approach is only possible if data-flow dependencies are accepted as a main concern in PML design. NestFlow tries to ease the modeling activity by providing a comprehensive set of tightly integrated control-flow and data-flow constructs, promoting the latter as first-class citizens in process modeling

    Leveraging service-oriented business applications to a rigorous rule-centric dynamic behavioural architecture.

    Get PDF
    Today’s market competitiveness and globalisation are putting pressure on organisations to join their efforts, to focus more on cooperation and interaction and to add value to their businesses. That is, most information systems supporting these cross-organisations are characterised as service-oriented business applications, where all the emphasis is put on inter-service interactions rather than intra-service computations. Unfortunately for the development of such inter-organisational service-oriented business systems, current service technology proposes only ad-hoc, manual and static standard web-service languages such as WSDL, BPEL and WS-CDL [3, 7]. The main objective of the work reported in this thesis is thus to leverage the development of service-oriented business applications towards more reliability and dynamic adaptability, placing emphasis on the use of business rules to govern activities, while composing services. The best available software-engineering techniques for adaptability, mainly aspect-oriented mechanisms, are also to be integrated with advanced formal techniques. More specifically, the proposed approach consists of the following incremental steps. First, it models any business activity behaviour governing any service-oriented business process as Event-Condition-Action (ECA) rules. Then such informal rules are made more interaction-centric, using adapted architectural connectors. Third, still at the conceptual-level, with the aim of adapting such ECA-driven connectors, this approach borrows aspect-oriented ideas and mechanisms, and proposes to intercept events, select the properties required for interacting entities, explicitly and separately execute such ECA-driven behavioural interactions and finally dynamically weave the results into the entities involved. To ensure compliance and to preserve the implementation of this architectural conceptualisation, the work adopts the Maude language as an executable operational formalisation. For that purpose, Maude is first endowed with the notions of components and interfaces. Further, the concept of ECA-driven behavioural interactions are specified and implemented as aspects. Finally, capitalising on Maude reflection, the thesis demonstrates how to weave such interaction executions into associated services

    Actor programming with static guarantees

    Get PDF
    This thesis discusses two methodologies for applying type discipline to concurrent programming with actors: process types, and session types. A system based on each of the two is developed, and used as the basis for a comprehensive overview of process- and session- type merits and limitations. In particular, we analyze the trade-offs of the two approaches with regard to the expressiveness of the resulting calculi, versus the nature of the static guarantees offered. The first system discussed is based on the notion of a \emph{typestate}, that is, a view of an actor's internal state that can be statically tracked. The typestates used here capture what each actor handle \emph{may} be used for, as well as what it \emph{must} be used for. This is done by associating two kinds of tokens with each actor handle: tokens of the first kind are consumed when the actor receives a message, and thus dictate the types of messages that can be sent through the handle; tokens of the second kind dictate messaging obligations, and the type system ensures that related messages have been sent through the handle by the end of its lifetime. The next system developed here adapts session types to suit actor programming. Session types come from the world of process calculi, and are a means to statically check the messaging taking place over communication channels against a pre-defined protocol. Since actors do not use channels, one needs to consider pairs of actors as participants in multiple, concurrently executed---and thus interleaving---protocols. The result is a system with novel, parameterized type constructs to capture communication patterns that prior work cannot handle, such as the sliding window protocol. Although this system can statically verify the implementation of complicated messaging patterns, it requires deviations from industry-standard programming models---a problem that is true for all session type systems in the literature. This work argues that the typestate-based system, while not enforcing protocol fidelity as the session-inspired one does, is nevertheless more suitable for model actor calculi adopted by practical, already established frameworks such as Erlang and Akka

    Multi-Agent Systems

    Get PDF
    A multi-agent system (MAS) is a system composed of multiple interacting intelligent agents. Multi-agent systems can be used to solve problems which are difficult or impossible for an individual agent or monolithic system to solve. Agent systems are open and extensible systems that allow for the deployment of autonomous and proactive software components. Multi-agent systems have been brought up and used in several application domains
    • …
    corecore