H2020Staff exchange2018–2023

BEHAPI · Behavioural Application Program Interfaces

Horizon 2020 — Marie Skłodowska-Curie Actions

Duration
2018-03-01 → 2023-12-31
EU contribution
€630,000
Participants
26
Scheme
MSCA-RISE

Lines connect the coordinator with its partners. CORDIS does not always give exact coordinates for projects before 2014. These points are placed at city or country level.

Results in brief

Behavioural Application Program Interfaces

The primary goal of this project is to tackle two major shortcomings currently present in the API economy: (i) the lack of rigour in documentation practices of APIs and (ii) the lack of support for provably correct methodologies in the round-trip engineering of APIs. We advocate behavioural APIs with precise descriptions of their behaviour to validate component-based applications. Behavioural interfaces will enable more effective Software Development Life-Cycles (SDLCs) for the API economy. Traditional approaches to software development do not cope well with the development of open, scalable communication-centric systems. In particular, - software is traditionally built in a top-down fashion, from requirements and specifications to code; - current bottom-up approaches are very limited and not linked to the documentation of software; - the continuous evolution of APIs makes the adoption of round-trip software engineering a requirement for SDLCs as opposed to more traditional top-down approaches; - developing team(s) assume context boundaries for subsystems which create duplication of work or impose conflicting requirements. We envisage behavioural specifications as lightweight yet effective instruments. Such specifications precisely and (semi-)automatically document components and characterise their behaviour. Behavioural interfaces facilitate several software engineering activities such as component upgrades, their dynamic composition, the evaluation of their compatibility, etc. This, in turn, requires support for developing “open” protocols. Bottom-up approaches allow different teams to develop parts of systems independently to make components available to other projects. Moreover, bottom-up approaches allow the handling of legacy code. BehAPI enables the definition of techniques and tools for designing, testing, and deploying APIs and API-based software while reducing the time-to-market of software production. It extends existing prototypes developed in academia, and integrates them with industrial platforms and languages. The consortium tackles the following challenges: - How to formally document the behaviour of existing API, extending existing descriptions which only specify parameter type signature. - How to identify the often “hidden” communication at different layers of abstraction in order to attain scalability. - How to ensure a smooth integration of third-party APIs with the system/app being developed. - How to cope with upgrades while minimising disruptions to running (live) systems. BehAPI supports developers by easing the API documentation process. It considers automata, types, DSLs, and graphs, to enrich interfaces with behavioural information used as verifiable and lightweight documentation. More concretely, it - provides models and tools for the analysis, construction, and validation of API-based software. - integrates said models together, provide algorithms and tools based on them, and embed them within existing industrial development frameworks and SDLCs. - enhances testing for APIs and provide methodologies and tools for supporting traceability among the different artefacts. - extends industry-strength programming languages with primitives for programming b-APIs. - defines specification and verification techniques for (non-)functional properties, resilience, and dependability. Conclusions: The project reached all of its 10 milestones and produced all of the 17 deliverables. It contributed - 44 open-access publications, - 27 open-source tools, - a project website, - 2 summer schools and 1 boot camp, - 2 industrial case studies, - 23 tutorials and exercises, - numerous participations at inters-ectorial fora.

Data: CORDIS, © European Union

Project objective

APIs are typically flat structures, i.e. sets of service/method signatures specifying the expected service parameters and the kind of results one should expect in return. However, correct API usage also requires the individual services to be invoked in a specific order. Despite its importance, the latter information is either often omitted, or stated informally via textual descriptions. Behavioural Types are a suite of technologies that formalise of this information, elevating flat API descriptions to a graph structure of services. This permits automated analyses for correct API compositions so as to provide guarantees such as service compliance, deadlock freedom, dynamic adaptation in the presence of failure, load balancing etc. The proposed project aims to bring the existing prototype tools based on these technologies to mainstream programming languages and development frameworks used in industry.

Original text from CORDIS.

Participants

  • UNIVERSITA TA MALTA · MSIDACoordinatorMalta
  • AALBORG UNIVERSITET · AalborgDenmark
  • ACTYX AG · BERLINGermany
  • ALMA MATER STUDIORUM - UNIVERSITA DI BOLOGNA · BolognaItaly
  • BITLAND SRL · BolognaCity levelItaly
  • CAIXA MAGICA SOFTWARE SA · LISBOAPortugal
  • CARNEGIE MELLON UNIVERSITY · PittsburghUnited States
  • CODEBAKER SRLS · BolognaItaly
  • COMUNE DI TORINO · TorinoItaly
  • DCR SOLUTIONS · SnekkerstenDenmark
  • EXFORMATICS AS · KobenhavnCity levelDenmark
  • GRAN SASSO SCIENCE INSTITUTE · L'AquilaItaly
  • GREEN BY WEB LDA · Arcos De ValdevezPortugal
  • IT-UNIVERSITETET I KOBENHAVN · KOBENHAVNDenmark
  • ITALIANASOFTWARE SRL · IMOLAItaly
  • IXARIS SYSTEMS (MALTA) LIMITED · San GwannMalta
  • MAIDSAFE.NET LIMITED · Troon, AyrshireCountry levelUnited Kingdom
  • MCAFEE ARGENTINA S.A. · CordobaArgentina
  • NOVA ID FCT - ASSOCIACAO PARA A INOVACAO E DESENVOLVIMENTO DA FCT · CaparicaPortugal
  • THE BOARD OF TRUSTEES OF THE UNIVERSITY OF ILLINOIS · UrbanaUnited States
  • UNIVERSIDAD DE BUENOS AIRES · Buenos AiresArgentina
  • UNIVERSITA DEGLI STUDI DI TORINO · TorinoItaly
  • UNIVERSITY OF GLASGOW · GlasgowUnited Kingdom
  • UNIVERSITY OF KENT · Canterbury, KentUnited Kingdom
  • UNIVERSITY OF LEICESTER · LeicesterUnited Kingdom
  • XIBIS LIMITED · ChippenhamUnited Kingdom

Links

Data: CORDIS, © European Union