18 research outputs found

    Type Checking for Protocol Role Enactments via Commitments

    Get PDF

    Roles as modular units of composition

    Get PDF
    Object oriented decomposition is the most successful decomposition strategy used nowadays. But a single decomposition strategy cannot capture all aspects of a concept. Roles have been successfully used to model the different views a concept may provide but, despite this, roles have not been used as building blocks. Roles are mostly used to extend objects at runtime. In this paper we propose roles as a way to compose classes that provides a modular way of capturing and reusing those aspects that fall outside a concept’s main purpose, while being close to the OO approach. We present how roles can be made modular and reusable. We also show how we can use roles to compose classes using JavaStage, a java extension that support roles To validate our approach we developed generic and reusable roles for the Gang of Four patterns. We were able to develop reusable roles for 10 out of 23 patterns, which is a good outcome

    Towards safe and flexible object adaptation

    Full text link
    In this paper, a programming language NextEJ is proposed. NextEJ is based on Epsilon model, which realizes object adaptation to contexts. The novelty of Epsilon model is its ability to make objects be able to freely enter or leave contexts dynamically and belong to multiple contexts at a time. However, such kind of flexibility also easily brings type-unsafety. NextEJ tackles this problem by introduc-ing a new feature called context activation scope. Inside a context activation scope, it is assured that an object is al-ways bound with the role activated so that no method-not-understood errors occur at run-time. Furthermore, context activation scope can be nested so that multiple contexts can be activated at a time. A role instance has a pre-defined field thisContext which refers to its enclosing context instance. In the case of multiple context activations, the reference of thisContext is interpreted as a composite context whose behavior is determined by the order of activations

    Social Relationships for Designing Agent Interaction in JADE

    Get PDF
    Abstract—Current agent platforms do not provide agents the means for reasoning about expected behaviours during interactions. This lack is due to the absence of design primitives to explicitly shape interaction patterns as first-class resources. This work presents 2COMM4JADE, a framework based on JADE and CArtAgO platforms that allows definition of social relationships among parties, represented by social commitments, decoupled from the agent design itself. I

    Modeling and programming with roles: introducing JavaStage

    Get PDF
    Roles are not a new concept, but they have been used in two different ways: as modeling concepts in a static view and as instance extensions in a dynamic view. For these views only the dynamic offers supporting languages. The static view, although proving the utility of roles in modeling, does not offer a programming language that allows developers to use roles all the way from modeling to programming. We try to overcome this by presenting our role language JavaStage, based on the Java language. We do this by designing and implementing a simple framework and then compare the results with its OO equivalent. Our results show that static roles are in fact useful when used in code and that JavaStage features expand role reuse

    Design and Implementation of Dynamically Evolving Ensembles with the HELENA Framework

    Get PDF
    Abstract-Ensembles are collections of autonomic entities which collaborate to perform certain tasks. They show typically a complex dynamic behavior which is difficult to implement with state of the art development techniques. In this paper, we present a systematic methodology for the design and implementation of ensemble-based systems which goes beyond component-based development. A conceptual key point of our approach (elaborated i

    Programming JADE and Jason Agents Based on Social Relationships Using a Uniform Approach

    Get PDF
    Abstract. Interaction is an essential feature in multiagent systems. De-sign primitives are needed to explicitly model desired patterns. This work presents 2COMM as a framework for defining social relations among parties, represented by social commitments. Starting from the definition of interaction protocols, 2COMM allows to decouple interaction design from agent design. Currently, adapters were developed for allowing the use of 2COMM with the JADE and the JaCaMo platforms. We show how agents for the two platforms can be implemented by relying on a common programming schema

    Delegation by Object Composition

    Get PDF
    AbstractClass inheritance and method overriding, as provided by standard class-based languages, are often not flexible enough to represent objects with some dynamic behavior. In this respect, object composition equipped with different forms of method body lookup is often advocated as a more flexible alternative to class inheritance since it takes place at run time, thus permitting the behavior of objects to be specialized dynamically. In this paper, we illustrate Incomplete Featherweight Java (IFJ), an extension of Featherweight Java with a novel linguistic construct, the incomplete object. Incomplete objects require some missing methods which can be provided at run time by composition with another (complete) object. Furthermore, we present two mechanisms for the method body lookup on (composed) objects, one based on delegation and the other based on consultation. Thanks to the design of the language, the consultation-based lookup is a simple extension of the delegation-based one. Both mechanisms are disciplined by static typing, therefore the language enjoys type safety (which implies no “message-not-understood” run-time errors) and avoids possible accidental overrides due to method name clashes
    corecore