Software

  • JOLIE



    • Java Orchestration Language Interpreter Engine


    • Jolie is a language for programming service-oriented and microservice applications. It directly supports service-oriented abstractions such as service, port, and session. Jolie allows to program a service behaviour, possibly obtained by composing existing services, and supports the main communication protocols and data formats used in service-oriented architectures.
      Differently from other service-oriented programming languages such as WS-BPEL, Jolie is based on a user-friendly Java-like syntax (more readable than the verbose XML syntax of WS-BPEL). Moreover, the kernel of Jolie is equipped with a formal operational semantics.
      Jolie is used to provide proof of concepts around Focus activities.


    • http://www.jolie-lang.org/
  • NightSplitter




    • Nightsplitter deals with the group preference optimization problem. We propose to split users into subgroups trying to optimize members' satisfaction as much as possible. In a large city with a huge volume of activity information, designing subgroup activities and avoiding time conflict is a challenging task.
      Currently, the Demo is available only for restaurant and movie activities in the city of Paris.


    • http://cs.unibo.it/t.liu/nightsplitter/
  • CauDEr



    • CauDEr is a causal-consistent reversible debugger for the Erlang language


    • CauDEr is a debugger allowing one to explore the execution of concurrent and distributed Erlang programs both forward and backward. Notably, when going backward, any action can be undone provided that its consequences, if any, are undone beforehand. The debugger also provides commands to automatically find relevant past actions (e.g., send of a given message) and undo them, including their consequences. Forward computation can be driven by a log taken from a computation in the standard Erlang/OTP environment. An action in the log can be selected and replayed together with all and only its causes. The debugger enables one to find a bug by following the causality links from the visible misbehaviour to the bug.


    • https://github.com/mistupv/cauder
  • SUNNY-AS



    • SUNNY for algorithm selection, a portfolio approach for NP-Hard problems.


    • SUNNY-AS is a portfolio solver derived from SUNNY-CP for Algorithm Selection Problems (ASLIB). The goal of SUNNY-AS is to provide a flexible, configurable, and usable portfolio solver that can be set up and executed just like a regular individual solver.


    • https://github.com/lteu/oasc
  • eco-imp




    • Eco-imp was originally envisaged as a cost analyzer for probabilistic and non-deterministic imperative programs. Particularly, it features dedicated support for sampling from distributions, and can thereby accurately reason about the average case complexity of randomized algorithms, in a fully automatic fashion.
      The tool is based on an adaptation of the ert-calculus of Kaminski et al., extended to the more general setting of cost analysis where the programmer is free to specify a (non-uniform) cost measure on programs. The main distinctive feature of eco-imp, though, is the combination of this calculus with an expected value analysis. This provides the glue to analyze program components in complete independence, that is, the analysis is modular and thus scalable.

      In its most recent version, the tool has been completely overhauled. On the one hand, it is capable of reasoning about a broader set of events, through the analysis of expected outcomes. On the other hand, the new version also supports recursive procedures.



    • http://www-sop.inria.fr/members/Martin.Avanzini/software/eco-imp/
  • PRISM+



    • PRISM+ is an extension of the model checker PRISM by Parker et al., which supports a faithful implementation of the Bitcoin protocol. Thanks to the extension of the tool with dynamic data types, it is now possible to analyze the Bitcoin system and its criticalities.


    • PRISM is a probabilistic model checker, a tool for formal modelling and analysis of systems that exhibit random or probabilistic behaviour. We extend the language in order to model the Bitcoin system. The tool now supports three dynamic data types: block, ledger and list. As a consequence, it is now possible to perform simulations and analyze transient probabilities, i.e. probabilities that are dependent on time, for the Bitcoin protocol. It has been used to understand how the system changes during the execution and to analyze the probabilities of reaching an inconsistent state in different settings.


    • https://github.com/adeleveschetti/bitcoin-analysis
  • Tquery



    • A data-query framework based on a sound variant of the MongoDB aggregation framework


    • Tquery is a query framework integrated into the Jolie language for the data handling/querying of Jolie trees.

      Tquery is based on a tree-based instantiation (language and semantics) of MQuery, a formalisation of a sound fragment of the Aggregation Framework, the query language of the most popular document-oriented database: MongoDB.

      Tree-shaped documents are the main format in which data flows within modern digital systems – e.g., eHealth, the Internet-of-Things, and Edge Computing. Tquery is particularly suited to develop real-time, ephemeral scenarios, where data shall not persist in the system.



    • https://github.com/jolie/tquery
  • APP




    • Serverless computing is a Cloud development paradigm where developers write and compose stateless functions, abstracting from their deployment and scaling.

      APP is a declarative language of Allocation Priority Policies to specify policies that inform the scheduling of Serverless function execution to optimise their performance against some user-defined goals.

      APP is currently implemented as a prototype extension of the Serverless Apache OpenWhisk platform.



    • https://github.com/giusdp/openwhisk
  • Choral



    • Choral is a language for the programming of choreographies as objects.


    • Choral is a language for the programming of choreographies. A choreography is a multiparty protocol that defines how some roles (the proverbial Alice, Bob, etc.) should coordinate with each other to do something together.

      Choral is designed to help developers program distributed authentication protocols, cryptographic protocols, business processes, parallel algorithms, or any other protocol for concurrent and distributed systems. At the press of a button, the Choral compiler translates a choreography into a library for each role. Developers can use the generated libraries to make sure that their programs (like a client, or a service) follow the choreography correctly. Choral makes sure that the generated libraries are compliant implementations of the source choreography.



    • https://www.choral-lang.org/
  • Corinne



    • Corinne is a tool for management and composition of choreography automata.


    • Choreography automata (c-automata) are finite state automata whose transitions are labelled with interactions of the form A -> B : m, representing a communication in which participant A sends a message (of type) m to participant B, and participant B receives it. Corinne allows one to display c-automata represented in the dot format, and:
      (a) project them on communicating finite state machines representing the behavior of single participants,
      (b) compute a product c-automaton corresponding to the concurrent execution of two c-automata,
      (c) synchronize two participants of a c-automaton transforming them into couple gateways, and
      (d) check well-formedness conditions ensuring that the system of participants obtained via projection behaves well.


    • https://github.com/lanese/corinne-3
  • Ranflood



    • Ranflood is an open-source tool for Windows, macOs, and Linux that counteracts ransomware attacks by flooding specific folders (e.g., where the ransomware is encrypting files, the user's folders) with decoy files. Contrasting an attack with Ranflood can also help users recover their files once the ransomware has been stopped.


    • Ranflood is an anti-crypto-ransomware tool that counteracts the encryption phase by flooding specific folders (e.g., the attacked location, the user's folders) with decoy files and helps users recover their files after an attack.

      This action has a twofold effect.

      First, it confounds the genuine files of the user with decoy files, causing the attacking ransomware to waste time on sacrificial data rather than on the victim's genuine files.

      Second, the file-flooding IO-intensive activity contends with the ransomware to access the victim's computing resources, further slowing down the attack of the malware.



    • https://ranflood.netlify.app/

Comments are closed.