The contemporary landscape of hosting and deployment solutions is vast and highly fragmented, encompassing traditional on-premise infrastructure, sophisticated cloud offerings, and Function-as-a-Service (FaaS) models. These environments possess vastly different characteristics, notably concerning network reliability, probability of failure, and implicit concurrency models. This non-standardized variety forces developers into vendor-specific solutions, where a sub-optimal initial choice can lead to immense migration and refactoring costs. Furthermore, developers are burdened with the responsibility of designing complex mechanisms to ensure concurrency control and state consistency. This complexity is compounded by the fact that the reliance on proprietary, cloud-native components makes these systems difficult to test and debug locally. This overhead diverts developer time from solving core business problems to wrestling with platform-specific concerns. This thesis takes inspiration from the foundational concepts of the Histrio project and expands upon them to propose the implementation of AURA (Actor-based Universal Architecture), a modular development model and execution environment designed for true portability. AURA establishes a powerful abstraction layer over the underlying storage and communication mechanisms, enabling seamless deployment across a variety of environments. AURA's core implementation is rooted in the well-known actor model: developers construct their applications by defining and deploying specialized actors, which serve as self-contained computational units that manage encapsulated state and communicate exclusively through asynchronous message passing. The execution environment is specialized to implicitly handle all state management and concurrency guarantees, ensuring strong consistency and exactly-once-processing semantics. AURA’s modular architecture effectively isolates the application logic from environment-specific synchronization requirements. This work demonstrates that by adopting this universal, actor-based approach, it is possible to guarantee system-wide consistency and fault-tolerance, thereby eliminating vendor lock-in and allowing developers to focus exclusively on solving core business problems.
L'attuale panorama delle soluzioni di hosting e deployment è vasto e altamente frammentato, includendo infrastrutture on-premise tradizionali, offerte cloud sofisticate e modelli Function-as-a-Service (FaaS). Tali ambienti presentano caratteristiche diverse, in particolare per l'affidabilità della rete, la probabilità di fallimento e i modelli di concorrenza impliciti. Questa mancanza di standard costringe gli sviluppatori a usare soluzioni legate a specifici provider, dove una scelta iniziale non ottimale può comportare costi immensi per migrazione e refactoring. Inoltre, gli sviluppatori sono responsabili della progettazione di meccanismi complessi per il controllo della concorrenza e la consistenza dello stato. Tale complessità è aggravata dal fatto che l'affidamento a componenti proprietari rende questi sistemi difficili da testare in locale. Queste problematiche distolgono gli sviluppatori dalla risoluzione di problemi di business per gestire l'infrastruttura specifica della piattaforma. Questa tesi prende ispirazione dai concetti fondamentali del progetto Histrio e li espande per proporre l'implementazione di AURA (Actor-based Universal Architecture), un modello di sviluppo e ambiente di esecuzione modulare progettato per la portabilità. AURA astrae i meccanismi di storage e comunicazione sottostanti, consentendo un deployment trasparente in una varietà di ambienti. La base è il modello ad attori: gli sviluppatori costruiscono le loro applicazioni definendo attori specializzati, che fungono da unità computazionali autonome le quali gestiscono un segmento privato di stato e comunicano esclusivamente tramite messaggi asincroni. L'ambiente di esecuzione è specializzato per gestire implicitamente tutte le garanzie di gestione dello stato e della concorrenza, assicurando una consistenza forte e una semantica di elaborazione exactly-once. L'architettura modulare di AURA isola la logica applicativa dai requisiti specifici dell'am-biente. Questo lavoro dimostra che, adottando questo approccio universale e basato sugli attori, è possibile garantire la consistenza a livello di sistema e la tolleranza ai guasti su tutte le piattaforme supportate, eliminando così il vendor lock-in e permettendo agli sviluppatori di concentrarsi esclusivamente sulla risoluzione dei problemi di business.
AURA: actor-based universal architecture
FERLIN, FRANCESCO;SPANGARO, FRANCESCO
2024/2025
Abstract
The contemporary landscape of hosting and deployment solutions is vast and highly fragmented, encompassing traditional on-premise infrastructure, sophisticated cloud offerings, and Function-as-a-Service (FaaS) models. These environments possess vastly different characteristics, notably concerning network reliability, probability of failure, and implicit concurrency models. This non-standardized variety forces developers into vendor-specific solutions, where a sub-optimal initial choice can lead to immense migration and refactoring costs. Furthermore, developers are burdened with the responsibility of designing complex mechanisms to ensure concurrency control and state consistency. This complexity is compounded by the fact that the reliance on proprietary, cloud-native components makes these systems difficult to test and debug locally. This overhead diverts developer time from solving core business problems to wrestling with platform-specific concerns. This thesis takes inspiration from the foundational concepts of the Histrio project and expands upon them to propose the implementation of AURA (Actor-based Universal Architecture), a modular development model and execution environment designed for true portability. AURA establishes a powerful abstraction layer over the underlying storage and communication mechanisms, enabling seamless deployment across a variety of environments. AURA's core implementation is rooted in the well-known actor model: developers construct their applications by defining and deploying specialized actors, which serve as self-contained computational units that manage encapsulated state and communicate exclusively through asynchronous message passing. The execution environment is specialized to implicitly handle all state management and concurrency guarantees, ensuring strong consistency and exactly-once-processing semantics. AURA’s modular architecture effectively isolates the application logic from environment-specific synchronization requirements. This work demonstrates that by adopting this universal, actor-based approach, it is possible to guarantee system-wide consistency and fault-tolerance, thereby eliminating vendor lock-in and allowing developers to focus exclusively on solving core business problems.| File | Dimensione | Formato | |
|---|---|---|---|
|
AURA___Executive_Summary.pdf
accessibile in internet solo dagli utenti autorizzati
Dimensione
746.59 kB
Formato
Adobe PDF
|
746.59 kB | Adobe PDF | Visualizza/Apri |
|
AURA__Actor_based_Universal_Architecture.pdf
accessibile in internet solo dagli utenti autorizzati
Dimensione
1.43 MB
Formato
Adobe PDF
|
1.43 MB | Adobe PDF | Visualizza/Apri |
I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.
https://hdl.handle.net/10589/247529