SlideShare una empresa de Scribd logo
1 de 40
Descargar para leer sin conexión
L’evoluzione
delle API:
da CORBA a OpenAPI e oltre
Marino Di Clemente
20 Marzo 2024
PugliaDevs
pugliadevs.com
“Non è la più forte delle specie che
sopravvive, né la più intelligente, ma
quella più reattiva ai cambiamenti.”
CHARLES ROBERT DARWIN
Tre età distinte:
Età degli dei: dominata dalla religione e
dalla fantasia
Età degli eroi: dominata
dall'aristocrazia e dalla forza
Età degli uomini: dominata dalla
ragione e dalla legge
Le età si susseguono in un ciclo continuo: corsi
e ricorsi
La Provvidenza divina guida il corso della storia
L'uomo è l'artefice del proprio destino
La teoria dei corsi e ricorsi di Vico
Innovazione scatenante: Nasce una
nuova tecnologia
Picco di aspettative eccessive:
Entusiasmo e clamore eccessivi
Gola della disillusione: Le aspettative
irrealistiche si scontrano con la
realtà
Risalita della produttività: Adozione
graduale della tecnologia
Plateau di produttività: La tecnologia
diventa stabile e diffusa
Hype Cycle di Gartner
Application Programming Interface
"LA TORRE DI BABELE" DI PIETER BRUEGEL IL VECCHIO (1563)
"LA TORRE DI BABELE" DI PIETER BRUEGEL IL VECCHIO (1563)
Common Object Request Broker Architecture
ORB = Object Request Broker
IDL = Interface Description Language
Skeleton = generato da IDL Compiler fa
marshalling
Stub = generato da IDL Compiler fa unmarshalling
# HelloApp.idl
module HelloApp
{
interface Hello
{
string sayHello();
oneway void shutdown();
};
};
SIMPLE OBJECT ACCESS PROTOCOL
SIMPLE OBJECT ACCESS PROTOCOL
WEB SERVICES DESCRIPTION LANGUAGE
WEB SERVICES DESCRIPTION LANGUAGE
2002 THE JEFF BEZOS API MANDATE
D'ora in poi, tutti i team esporranno i propri dati e
funzionalità attraverso interfacce di servizio.
I team devono comunicare tra loro utilizzando queste
interfacce.
Non sarà consentita alcuna altra forma di comunicazione tra
processi: nessun collegamento diretto, nessuna lettura
diretta del datastore di un altro team, nessun modello di
memoria condivisa, nessun backdoor di alcun tipo. L'unica
comunicazione consentita è tramite chiamate all'interfaccia
di servizio tramite la rete.
2002 THE JEFF BEZOS API MANDATE
Non importa quale tecnologia usano. HTTP, Corba, Pubsub,
protocolli personalizzati: non importa.
Tutte le interfacce di servizio, senza eccezioni, devono
essere progettate da zero per essere esternalizzabili. Ciò
significa che il team deve pianificare e progettare per poter
esporre l'interfaccia agli sviluppatori nel mondo esterno.
Nessuna eccezione.
Chiunque non lo farà sarà licenziato.
Grazie; buona giornata!
API-First Company
Un'API-first company è un'azienda che adotta un
modello di sviluppo software in cui le API sono
considerate un elemento fondamentale e strategico.
In questo modello, le API vengono progettate e
sviluppate prima di qualsiasi altra componente
dell'applicazione, come l'interfaccia utente o il
backend.
API-First Company - Principi
Priorità alle API: Le API sono considerate prodotti in sé,
non solo come strumenti di integrazione. Vengono
progettate con cura per essere facili da usare, affidabili e
sicure.
Design API-first: Le API vengono progettate prima di
qualsiasi altra componente dell'applicazione. Questo
approccio garantisce che le API siano ben strutturate e
facili da usare.
Cultura API-first: L'intera azienda, dagli sviluppatori ai
dirigenti, comprende l'importanza delle API e si impegna a
creare un ecosistema API di alta qualità.
2011 WEBSOCKET
2011 WEBSOCKET
2011 SWAGGER -OPENAPI
2011 SWAGGER -OPENAPI
2012 POSTMAN
2012 POSTMAN
2015 GRAPHQL
2015 GRAPHQL
2016 GRPC
2016 GRPC
2021 ASYNCAPI
2021 ASYNCAPI
API-FIRST DESIGN - Steps
Definizione del tipo di API (WEBSOCKET REST ecc...)
1.
Definizione della semantica del dominio dell'API (bounded
context)
2.
definizione dell'API con le sue risorse principali(OPENAPI,
SPOTLIGHT)
3.
GENERAZIONE FAKER FACTORY E MockSERVER dell'API
(WIREMOCK)
4.
test continuo degli endpoint rispetto al Blueprint (PACT.IO)
5.
Caricamento NELL'API CATALOG/DEVELOPER PORTAL
6.
GENERAZIONE STUB E CLIENT (OPENAPI GENERATOR)
7.
Implementazione funzionalità
8.
API-FIRST DESIGN - Vantaggi
velocità e agilità: Le modifiche alle API possono essere implementate e
distribuite in modo rapido e indipendente dal resto dell'applicazione,
favorendo un ciclo di sviluppo più rapido.
innovazione: Le API aprono la porta a sperimentare nuove idee e modelli
di business, favorendo l'innovazione. L'esposizione di funzionalità
attraverso API permette di esplorare nuovi mercati e canali di
distribuzione.
scalabilità: La natura disaccoppiata delle API permette di distribuire i
carichi su più server e di aggiungere nuove funzionalità in modo
modulare.
collaborazione: Le API facilitano la collaborazione tra team interni ed
esterni, permettendo di integrare facilmente l'applicazione con altri
sistemi.
qualità: L'approccio API-first favorisce un design più modulare e ben
strutturato del software.
API-FIRST DESIGN - Svantaggi
curva di apprendimento: L'approccio API-first richiede che gli
sviluppatori acquisiscano nuove competenze relative alla progettazione e
allo sviluppo di API. Questo può richiedere tempo e risorse.
complessità aggiuntiva: La progettazione e la gestione di un ecosistema
di API può essere complessa, richiedendo una pianificazione attenta e una
governance efficace.
costi iniziali: L'investimento iniziale in progettazione, documentazione e
sviluppo di API può essere significativo.
manutenzione continua: Le API necessitano di manutenzione continua per
garantirne la sicurezza, l'affidabilità e l'aggiornamento con nuove
funzionalità.
dipendenza da tecnologie esterne: L'utilizzo di API esterne può rendere
l'applicazione vulnerabile a problemi di disponibilità, sicurezza e
conformità.
Ognuno di noi ha, da qualche parte nel suo cuore, il sogno
di realizzare un mondo vivo, un universo. Quelli di noi che
sono stati formati come architetti hanno questo desiderio
forse al centro stesso della nostra vita: che un giorno, da
qualche parte, in qualche modo, costruiremo un edificio
che sia meraviglioso, bello, mozzafiato, un luogo dove le
persone possano camminare e sognare per secoli.
Christopher Alexander. The Timeless Way of Building
Grazie

Más contenido relacionado

Similar a L’evoluzione delle API: da CORBA a OpenAPI e oltre

La rivoluzione dei Microservizi
La rivoluzione dei MicroserviziLa rivoluzione dei Microservizi
La rivoluzione dei MicroserviziitalianaSoftware
 
20070619 javaday quali_p_so
20070619 javaday  quali_p_so20070619 javaday  quali_p_so
20070619 javaday quali_p_soDavide Taibi
 
WorkUp - Popup Cms
WorkUp - Popup CmsWorkUp - Popup Cms
WorkUp - Popup CmsWorkUp
 
Red Hat OpenShift: l'abilitatore della Cloud Native Enterprise
Red Hat OpenShift: l'abilitatore della Cloud Native EnterpriseRed Hat OpenShift: l'abilitatore della Cloud Native Enterprise
Red Hat OpenShift: l'abilitatore della Cloud Native EnterpriseKiratech
 
WSO2 ITALIA SMART TALK #10 - Interoperability nelle utility, un caso reale
WSO2 ITALIA SMART TALK #10 - Interoperability nelle utility, un caso realeWSO2 ITALIA SMART TALK #10 - Interoperability nelle utility, un caso reale
WSO2 ITALIA SMART TALK #10 - Interoperability nelle utility, un caso realeProfesia Srl, Lynx Group
 
La Social Intranet di Elica Group [Case Study]
La Social Intranet di Elica Group [Case Study]La Social Intranet di Elica Group [Case Study]
La Social Intranet di Elica Group [Case Study]Ariadne
 
Palermo ag id 68cad diritto costituzionale-legge134-2012
Palermo ag id 68cad   diritto costituzionale-legge134-2012Palermo ag id 68cad   diritto costituzionale-legge134-2012
Palermo ag id 68cad diritto costituzionale-legge134-2012Vincenzo Virgilio
 
Smau Bari 2011 Daisynet - Giuseppe Visaggio
Smau Bari 2011 Daisynet - Giuseppe VisaggioSmau Bari 2011 Daisynet - Giuseppe Visaggio
Smau Bari 2011 Daisynet - Giuseppe VisaggioSMAU
 
Idee per l'amministrazione 2.0
Idee per l'amministrazione 2.0 Idee per l'amministrazione 2.0
Idee per l'amministrazione 2.0 Claudio Forghieri
 
Cloud computing. Daisy Net a SMAU 2011
Cloud computing. Daisy Net a SMAU 2011Cloud computing. Daisy Net a SMAU 2011
Cloud computing. Daisy Net a SMAU 2011DistrettoIT
 
Adobe: Stefano Longo, Web 2.0: come le imprese se ne possono avvantaggiare
Adobe: Stefano Longo, Web 2.0: come le imprese se ne possono avvantaggiareAdobe: Stefano Longo, Web 2.0: come le imprese se ne possono avvantaggiare
Adobe: Stefano Longo, Web 2.0: come le imprese se ne possono avvantaggiareManuela Moroncini
 
Legacy Transformation for Business Innovation
Legacy Transformation for Business InnovationLegacy Transformation for Business Innovation
Legacy Transformation for Business InnovationIDC Italy
 
Workshop Ideare e creare Web Applications, Introduzione ad AngularJS
Workshop Ideare e creare Web Applications, Introduzione ad AngularJSWorkshop Ideare e creare Web Applications, Introduzione ad AngularJS
Workshop Ideare e creare Web Applications, Introduzione ad AngularJSGiovanni Buffa
 
Da spaghetti API a Piattaforma Digitale
Da spaghetti API a Piattaforma DigitaleDa spaghetti API a Piattaforma Digitale
Da spaghetti API a Piattaforma DigitaleGiulio Roggero
 

Similar a L’evoluzione delle API: da CORBA a OpenAPI e oltre (20)

La rivoluzione dei Microservizi
La rivoluzione dei MicroserviziLa rivoluzione dei Microservizi
La rivoluzione dei Microservizi
 
20070619 javaday quali_p_so
20070619 javaday  quali_p_so20070619 javaday  quali_p_so
20070619 javaday quali_p_so
 
WorkUp - Popup Cms
WorkUp - Popup CmsWorkUp - Popup Cms
WorkUp - Popup Cms
 
Red Hat OpenShift: l'abilitatore della Cloud Native Enterprise
Red Hat OpenShift: l'abilitatore della Cloud Native EnterpriseRed Hat OpenShift: l'abilitatore della Cloud Native Enterprise
Red Hat OpenShift: l'abilitatore della Cloud Native Enterprise
 
WSO2 ITALIA SMART TALK #10 - Interoperability nelle utility, un caso reale
WSO2 ITALIA SMART TALK #10 - Interoperability nelle utility, un caso realeWSO2 ITALIA SMART TALK #10 - Interoperability nelle utility, un caso reale
WSO2 ITALIA SMART TALK #10 - Interoperability nelle utility, un caso reale
 
La Social Intranet di Elica Group [Case Study]
La Social Intranet di Elica Group [Case Study]La Social Intranet di Elica Group [Case Study]
La Social Intranet di Elica Group [Case Study]
 
Palermo ag id 68cad diritto costituzionale-legge134-2012
Palermo ag id 68cad   diritto costituzionale-legge134-2012Palermo ag id 68cad   diritto costituzionale-legge134-2012
Palermo ag id 68cad diritto costituzionale-legge134-2012
 
Ocp overview del progetto
Ocp overview del progettoOcp overview del progetto
Ocp overview del progetto
 
Ocp overview
Ocp overviewOcp overview
Ocp overview
 
ONL-i DAYS: Guida all'evento V.1
ONL-i DAYS: Guida all'evento V.1ONL-i DAYS: Guida all'evento V.1
ONL-i DAYS: Guida all'evento V.1
 
ONL-i DAYS: Guida all'evento V.2
ONL-i DAYS: Guida all'evento V.2ONL-i DAYS: Guida all'evento V.2
ONL-i DAYS: Guida all'evento V.2
 
ONL-i DAYS: Guida all'evento V.3
ONL-i DAYS: Guida all'evento V.3ONL-i DAYS: Guida all'evento V.3
ONL-i DAYS: Guida all'evento V.3
 
Smau Bari 2011 Daisynet - Giuseppe Visaggio
Smau Bari 2011 Daisynet - Giuseppe VisaggioSmau Bari 2011 Daisynet - Giuseppe Visaggio
Smau Bari 2011 Daisynet - Giuseppe Visaggio
 
Pitch WCAP 2015
Pitch WCAP 2015Pitch WCAP 2015
Pitch WCAP 2015
 
Idee per l'amministrazione 2.0
Idee per l'amministrazione 2.0 Idee per l'amministrazione 2.0
Idee per l'amministrazione 2.0
 
Cloud computing. Daisy Net a SMAU 2011
Cloud computing. Daisy Net a SMAU 2011Cloud computing. Daisy Net a SMAU 2011
Cloud computing. Daisy Net a SMAU 2011
 
Adobe: Stefano Longo, Web 2.0: come le imprese se ne possono avvantaggiare
Adobe: Stefano Longo, Web 2.0: come le imprese se ne possono avvantaggiareAdobe: Stefano Longo, Web 2.0: come le imprese se ne possono avvantaggiare
Adobe: Stefano Longo, Web 2.0: come le imprese se ne possono avvantaggiare
 
Legacy Transformation for Business Innovation
Legacy Transformation for Business InnovationLegacy Transformation for Business Innovation
Legacy Transformation for Business Innovation
 
Workshop Ideare e creare Web Applications, Introduzione ad AngularJS
Workshop Ideare e creare Web Applications, Introduzione ad AngularJSWorkshop Ideare e creare Web Applications, Introduzione ad AngularJS
Workshop Ideare e creare Web Applications, Introduzione ad AngularJS
 
Da spaghetti API a Piattaforma Digitale
Da spaghetti API a Piattaforma DigitaleDa spaghetti API a Piattaforma Digitale
Da spaghetti API a Piattaforma Digitale
 

L’evoluzione delle API: da CORBA a OpenAPI e oltre

  • 1. L’evoluzione delle API: da CORBA a OpenAPI e oltre Marino Di Clemente 20 Marzo 2024 PugliaDevs pugliadevs.com
  • 2. “Non è la più forte delle specie che sopravvive, né la più intelligente, ma quella più reattiva ai cambiamenti.” CHARLES ROBERT DARWIN
  • 3. Tre età distinte: Età degli dei: dominata dalla religione e dalla fantasia Età degli eroi: dominata dall'aristocrazia e dalla forza Età degli uomini: dominata dalla ragione e dalla legge Le età si susseguono in un ciclo continuo: corsi e ricorsi La Provvidenza divina guida il corso della storia L'uomo è l'artefice del proprio destino La teoria dei corsi e ricorsi di Vico
  • 4. Innovazione scatenante: Nasce una nuova tecnologia Picco di aspettative eccessive: Entusiasmo e clamore eccessivi Gola della disillusione: Le aspettative irrealistiche si scontrano con la realtà Risalita della produttività: Adozione graduale della tecnologia Plateau di produttività: La tecnologia diventa stabile e diffusa Hype Cycle di Gartner
  • 6. "LA TORRE DI BABELE" DI PIETER BRUEGEL IL VECCHIO (1563) "LA TORRE DI BABELE" DI PIETER BRUEGEL IL VECCHIO (1563)
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12. Common Object Request Broker Architecture ORB = Object Request Broker IDL = Interface Description Language Skeleton = generato da IDL Compiler fa marshalling Stub = generato da IDL Compiler fa unmarshalling # HelloApp.idl module HelloApp { interface Hello { string sayHello(); oneway void shutdown(); }; };
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20. SIMPLE OBJECT ACCESS PROTOCOL SIMPLE OBJECT ACCESS PROTOCOL WEB SERVICES DESCRIPTION LANGUAGE WEB SERVICES DESCRIPTION LANGUAGE
  • 21.
  • 22.
  • 23.
  • 24. 2002 THE JEFF BEZOS API MANDATE D'ora in poi, tutti i team esporranno i propri dati e funzionalità attraverso interfacce di servizio. I team devono comunicare tra loro utilizzando queste interfacce. Non sarà consentita alcuna altra forma di comunicazione tra processi: nessun collegamento diretto, nessuna lettura diretta del datastore di un altro team, nessun modello di memoria condivisa, nessun backdoor di alcun tipo. L'unica comunicazione consentita è tramite chiamate all'interfaccia di servizio tramite la rete.
  • 25. 2002 THE JEFF BEZOS API MANDATE Non importa quale tecnologia usano. HTTP, Corba, Pubsub, protocolli personalizzati: non importa. Tutte le interfacce di servizio, senza eccezioni, devono essere progettate da zero per essere esternalizzabili. Ciò significa che il team deve pianificare e progettare per poter esporre l'interfaccia agli sviluppatori nel mondo esterno. Nessuna eccezione. Chiunque non lo farà sarà licenziato. Grazie; buona giornata!
  • 26. API-First Company Un'API-first company è un'azienda che adotta un modello di sviluppo software in cui le API sono considerate un elemento fondamentale e strategico. In questo modello, le API vengono progettate e sviluppate prima di qualsiasi altra componente dell'applicazione, come l'interfaccia utente o il backend.
  • 27. API-First Company - Principi Priorità alle API: Le API sono considerate prodotti in sé, non solo come strumenti di integrazione. Vengono progettate con cura per essere facili da usare, affidabili e sicure. Design API-first: Le API vengono progettate prima di qualsiasi altra componente dell'applicazione. Questo approccio garantisce che le API siano ben strutturate e facili da usare. Cultura API-first: L'intera azienda, dagli sviluppatori ai dirigenti, comprende l'importanza delle API e si impegna a creare un ecosistema API di alta qualità.
  • 28.
  • 29.
  • 30.
  • 32. 2011 SWAGGER -OPENAPI 2011 SWAGGER -OPENAPI
  • 37. API-FIRST DESIGN - Steps Definizione del tipo di API (WEBSOCKET REST ecc...) 1. Definizione della semantica del dominio dell'API (bounded context) 2. definizione dell'API con le sue risorse principali(OPENAPI, SPOTLIGHT) 3. GENERAZIONE FAKER FACTORY E MockSERVER dell'API (WIREMOCK) 4. test continuo degli endpoint rispetto al Blueprint (PACT.IO) 5. Caricamento NELL'API CATALOG/DEVELOPER PORTAL 6. GENERAZIONE STUB E CLIENT (OPENAPI GENERATOR) 7. Implementazione funzionalità 8.
  • 38. API-FIRST DESIGN - Vantaggi velocità e agilità: Le modifiche alle API possono essere implementate e distribuite in modo rapido e indipendente dal resto dell'applicazione, favorendo un ciclo di sviluppo più rapido. innovazione: Le API aprono la porta a sperimentare nuove idee e modelli di business, favorendo l'innovazione. L'esposizione di funzionalità attraverso API permette di esplorare nuovi mercati e canali di distribuzione. scalabilità: La natura disaccoppiata delle API permette di distribuire i carichi su più server e di aggiungere nuove funzionalità in modo modulare. collaborazione: Le API facilitano la collaborazione tra team interni ed esterni, permettendo di integrare facilmente l'applicazione con altri sistemi. qualità: L'approccio API-first favorisce un design più modulare e ben strutturato del software.
  • 39. API-FIRST DESIGN - Svantaggi curva di apprendimento: L'approccio API-first richiede che gli sviluppatori acquisiscano nuove competenze relative alla progettazione e allo sviluppo di API. Questo può richiedere tempo e risorse. complessità aggiuntiva: La progettazione e la gestione di un ecosistema di API può essere complessa, richiedendo una pianificazione attenta e una governance efficace. costi iniziali: L'investimento iniziale in progettazione, documentazione e sviluppo di API può essere significativo. manutenzione continua: Le API necessitano di manutenzione continua per garantirne la sicurezza, l'affidabilità e l'aggiornamento con nuove funzionalità. dipendenza da tecnologie esterne: L'utilizzo di API esterne può rendere l'applicazione vulnerabile a problemi di disponibilità, sicurezza e conformità.
  • 40. Ognuno di noi ha, da qualche parte nel suo cuore, il sogno di realizzare un mondo vivo, un universo. Quelli di noi che sono stati formati come architetti hanno questo desiderio forse al centro stesso della nostra vita: che un giorno, da qualche parte, in qualche modo, costruiremo un edificio che sia meraviglioso, bello, mozzafiato, un luogo dove le persone possano camminare e sognare per secoli. Christopher Alexander. The Timeless Way of Building Grazie