Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to main content
    This work could not have been completed without the aid of many people. First of all my advisor Professor Shlomi Dolev who introduced me to the worlds of self-stabilization, distributed computing and academic research in general. We spent... more
    This work could not have been completed without the aid of many people. First of all my advisor Professor Shlomi Dolev who introduced me to the worlds of self-stabilization, distributed computing and academic research in general. We spent many hours together suggesting and validating ideas, and also having enjoyable moments of friendship. Whenever I thought I reached a dead end, he was there to patiently find the way out. Thanks also to the people behind the research funds achieved by him. Ben-Gurion University and the Computer-Science department were an excellent place for doing this research. My thanks to all faculty, administrative and technical staff. I would like to thank Meni Adler for continuous friendship
    Stateless protocols, servers, services and programs are inherently self-stabilizing when repeatedly invoked, as any invocation starts from scratch. We suggest to augment a given stateful program with a stateless prefix that (upon... more
    Stateless protocols, servers, services and programs are inherently self-stabilizing when repeatedly invoked, as any invocation starts from scratch. We suggest to augment a given stateful program with a stateless prefix that (upon invocation of the stateful program, and possibly periodically) verifies the consistency of the state of the stateful program prior to the execution of the stateful program.
    Detta är en databas som innehåller referenser till publikationer i lärosäten.
    ABSTRACT KDE – Knowledge Driven Engineering – is a generalization of MDE – Model Driven Engineering – to a higher level of abstraction than the standard UML software models, aiming to be closer to the system designer concepts. But in... more
    ABSTRACT KDE – Knowledge Driven Engineering – is a generalization of MDE – Model Driven Engineering – to a higher level of abstraction than the standard UML software models, aiming to be closer to the system designer concepts. But in order to reach an effective technology applicable in industry, one needs to implement it in a tool using Runnable Knowledge, i.e. which can be run and tested. This work describes KODEGEN – a KDE tool for testing while generating code – whose input consists of system ontologies, ontology states and scenario files. Incidental concepts not part of the ontologies are replaced by mock objects. The implementation uses a modified Gherkin syntax. The tool is demonstrated in practice by generating the actual code for a few case-studies.
    ABSTRACT In the quest for the highest possible abstraction of software systems, Runnable Knowledge has been proposed for MDA. But in order to be useful in practice as a system design, it must be amenable to verification. This work... more
    ABSTRACT In the quest for the highest possible abstraction of software systems, Runnable Knowledge has been proposed for MDA. But in order to be useful in practice as a system design, it must be amenable to verification. This work precisely describes the necessary steps by which ROM – a Runnable Ontology Model tool – concurrently generates a running model and its respective test script from the designed Runnable Knowledge, allowing verification that the model is self-consistent. The novel implementation idea is to use ready-made mock object libraries to efficiently obtain the code for a running model. Detailed examples are provided to illustrate each of the ROM generation steps.
    This work presents approaches for designing the input-output device management components of self-stabilizing operating systems. As an example, we demonstrate the non-stability of the ata standard pro- tocol for storage devices. We state... more
    This work presents approaches for designing the input-output device management components of self-stabilizing operating systems. As an example, we demonstrate the non-stability of the ata standard pro- tocol for storage devices. We state the requirements that an operating system and i/o devices should satisfy in order to become self-stabilizing. Then we suggest two solutions to satisfy these requirements. The first uses leases in order to guarantee progress from the i/o device side. The second assumes stabilization of the i/o device, and uses snapshots to perform consistency checks. By supplying an infrastructure for practical self-stabilizing systems, robust and dependable systems can be achieved.
    This work presents approaches for designing the input-output device management components of self-stabilizing operating systems. As an example, we demonstrate the non-stability of the ata standard protocol for storage devices. We state... more
    This work presents approaches for designing the input-output device management components of self-stabilizing operating systems. As an example, we demonstrate the non-stability of the ata standard protocol for storage devices. We state the requirements that an operating system and i/o devices should satisfy in order to become self-stabilizing. Then we suggest two solutions to satisfy these requirements. The first uses leases in order to guarantee progress from the i/o device side. The second assumes stabilization of the i/o device, and uses snapshots to perform consistency checks. By supplying an infrastructure for practical self-stabilizing systems, robust and dependable systems can be achieved.
    This position paper advocates the use of the well defined and provable self-stabilization property of a system , to achieve the goals of the self-* paradigms and au-tonomic computing. Several recent results starting from hardware... more
    This position paper advocates the use of the well defined and provable self-stabilization property of a system , to achieve the goals of the self-* paradigms and au-tonomic computing. Several recent results starting from hardware concerns, continuing with the operating system , and ending in the applications, are integrated: the self-stabilizing microprocessor, with the self-stabilizing operating system, the self-stabilization preserving compiler , and the self-stabilizing autonomic recoverer for applications.
    Detta är en databas som innehåller referenser till publikationer i lärosäten.
    This position paper advocates the use of the well de- fined and provable self-stabilization property of a sys- tem, to achieve the goals of the self-* paradigms and au- tonomic computing. Several recent results starting from hardware... more
    This position paper advocates the use of the well de- fined and provable self-stabilization property of a sys- tem, to achieve the goals of the self-* paradigms and au- tonomic computing. Several recent results starting from hardware concerns, continuing with the operating sys- tem, and ending in the applications, are integrated: the self-stabilizing microprocessor, with the self-stabilizing operating system, the
    This work presents several approaches for designing self-stabilizing operating systems. The first approach is based on periodical automatic reinstalling of the operating system and restart. The second, reinstalls the executable portion of... more
    This work presents several approaches for designing self-stabilizing operating systems. The first approach is based on periodical automatic reinstalling of the operating system and restart. The second, reinstalls the executable portion of the operating system and uses predicates on the operating system state (content of variables) to ensure that the operating system does not diverge from its specifica- tions. The last approach presents an example of a tailored self-stabilizing very-tiny operating system. Prototypes us- ing the Intel Pentium processor were composed.
    Research Interests:
    ABSTRACT KDE – Knowledge Driven Engineering – is a generalization of MDE – Model Driven Engineering – to a higher level of abstraction than the standard UML software models, aiming to be closer to the system designer concepts. But in... more
    ABSTRACT KDE – Knowledge Driven Engineering – is a generalization of MDE – Model Driven Engineering – to a higher level of abstraction than the standard UML software models, aiming to be closer to the system designer concepts. But in order to reach an effective technology applicable in industry, one needs to implement it in a tool using Runnable Knowledge, i.e. which can be run and tested. This work describes KODEGEN – a KDE tool for testing while generating code – whose input consists of system ontologies, ontology states and scenario files. Incidental concepts not part of the ontologies are replaced by mock objects. The implementation uses a modified Gherkin syntax. The tool is demonstrated in practice by generating the actual code for a few case-studies.
    ABSTRACT In the quest for the highest possible abstraction of software systems, Runnable Knowledge has been proposed for MDA. But in order to be useful in practice as a system design, it must be amenable to verification. This work... more
    ABSTRACT In the quest for the highest possible abstraction of software systems, Runnable Knowledge has been proposed for MDA. But in order to be useful in practice as a system design, it must be amenable to verification. This work precisely describes the necessary steps by which ROM – a Runnable Ontology Model tool – concurrently generates a running model and its respective test script from the designed Runnable Knowledge, allowing verification that the model is self-consistent. The novel implementation idea is to use ready-made mock object libraries to efficiently obtain the code for a running model. Detailed examples are provided to illustrate each of the ROM generation steps.