Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process...
Transcript of Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process...
![Page 1: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/1.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
Microservices scenarios of the near and far future
1
Saverio Giallorenzo
![Page 2: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/2.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
Howdy
2
Saverio
Post-doc at the Department ofComputer Science andEngineering of University ofBologna.
Research topics:- Concurrent and distributed
programming;- Choreographies, Session- Types and Process Algebras.- Microservices;- Jolie;
![Page 3: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/3.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016 3
Saverio Giallorenzo
WARNINGMAY CONTAIN
CHOREOGRAPHIES
Microservices scenarios of near and far future
![Page 4: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/4.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
Today’s Limits
4
There is no effort without error and
shortcoming.“Citizenship in a Republic”, Theodore Roosevelt, 1910
![Page 5: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/5.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
Today’s Limits
4
There is no effort without error and
shortcoming.
innovation
“Citizenship in a Republic”, Theodore Roosevelt, 1910
![Page 6: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/6.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
Vendite Magazzino Spedizioni
requestquote
confirmavailability
optsendquote
productsunavailable
optapprovequote
refusequote
forward ordersend order
send tracking code
confirm reception
confirmdelivery
Distributed Programming5
Sales Storage Delivery
![Page 7: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/7.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
Vendite Magazzino Spedizioni
requestquote
confirmavailability
optsendquote
productsunavailable
optapprovequote
refusequote
forward ordersend order
send tracking code
confirm reception
confirmdelivery
Distributed Programming5
What’s here inside (e.g., error tracing)?
Sales Storage Delivery
![Page 8: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/8.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
Vendite Magazzino Spedizioni
requestquote
confirmavailability
optsendquote
productsunavailable
optapprovequote
refusequote
forward ordersend order
send tracking code
confirm reception
confirmdelivery
Distributed Programming5
What’s here inside (e.g., error tracing)?
Internal functionality?Does the deliverer provide it? Docs/APIs?
Sales Storage Delivery
![Page 9: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/9.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
Vendite Magazzino Spedizioni
requestquote
confirmavailability
optsendquote
productsunavailable
optapprovequote
refusequote
forward ordersend order
send tracking code
confirm reception
confirmdelivery
Distributed Programming5
What’s here inside (e.g., error tracing)?
Internal functionality?Does the deliverer provide it? Docs/APIs?
Sales Storage Delivery
![Page 10: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/10.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
Vendite Magazzino Spedizioni
requestquote
confirmavailability
optsendquote
productsunavailable
optapprovequote
refusequote
forward ordersend order
send tracking code
confirm reception
confirmdelivery
Distributed Programming5
What’s here inside (e.g., error tracing)?
Internal functionality?Does the deliverer provide it? Docs/APIs?
Sequential (in which order) or in parallel?
Sales Storage Delivery
![Page 11: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/11.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
“Not my problem”6
Direction
Sales
StorageDelivery
![Page 12: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/12.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
“Not my problem”6
Direction
Sales
StorageDelivery
Big Picture
![Page 13: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/13.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
“Not my problem”6
Direction
Sales
StorageDelivery
Big Picture
Gulf of execution
![Page 14: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/14.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
“Not my problem”6
Direction
Sales
StorageDelivery
Big Picture
Micro-management
Gulf of execution
![Page 15: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/15.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
“Not my problem”6
Direction
Sales
StorageDelivery
Big Picture
Micro-management
Gulf of execution
Coordination?Accountability?
![Page 16: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/16.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
“Not my problem”6
Direction
Sales
StorageDelivery
Big Picture
Micro-management
Gulf of execution Gulf of
Evaluation
Coordination?Accountability?
![Page 17: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/17.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
“Not my problem”6
Direction
Sales
StorageDelivery
Big Picture
Micro-management
Gulf of execution Gulf of
Evaluation
Coordination?Accountability?
![Page 18: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/18.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
Scalable Architectures7
Sales Storage Delivery
WebServer
CRM
GestoreOrdini
HardwareManag.
GestioneOrdini
DeliveryManag.
Delivery Tracking
WebServer
WebServer
GestoreOrdiniOrder
Manag.
GestioneOrdiniOrder
Manag.
quote
tracking
?
![Page 19: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/19.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
Scalable Architectures7
Sales Storage Delivery
WebServer
CRM
GestoreOrdini
HardwareManag.
GestioneOrdini
DeliveryManag.
Delivery Tracking
WebServer
WebServer
GestoreOrdiniOrder
Manag.
GestioneOrdiniOrder
Manag.
quote
tracking
?
=
![Page 20: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/20.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
Scalable Architectures7
Sales Storage Delivery
WebServer
CRM
GestoreOrdini
HardwareManag.
GestioneOrdini
DeliveryManag.
Delivery Tracking
WebServer
WebServer
GestoreOrdiniOrder
Manag.
GestioneOrdiniOrder
Manag.
quote
tracking
?
rebind the arrowsat each “scaling”=
![Page 21: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/21.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
Scalable Architectures7
Sales Storage Delivery
WebServer
CRM
GestoreOrdini
HardwareManag.
GestioneOrdini
DeliveryManag.
Delivery Tracking
WebServer
WebServer
GestoreOrdiniOrder
Manag.
GestioneOrdiniOrder
Manag.
quote
tracking
?
rebind the arrowsat each “scaling”=
![Page 22: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/22.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
Scalable Architectures7
Sales Storage Delivery
WebServer
CRM
GestoreOrdini
HardwareManag.
GestioneOrdini
DeliveryManag.
Delivery Tracking
WebServer
WebServer
GestoreOrdiniOrder
Manag.
GestioneOrdiniOrder
Manag.
quote
tracking
?
rebind the arrowsat each “scaling”=
![Page 23: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/23.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
A look at the future Choreographic Programming
8
![Page 24: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/24.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
Vendite Magazzino Spedizioni
requestquote
confirmavailability
optsendquote
productsunavailable
optapprovequote
refusequote
forward ordersend order
send tracking code
confirm reception
confirmdelivery
Enter AIOCJ
9
Sales Storage Delivery
order@Client = getInput( "Insert products" );
request_quote: Client( order ) -> Sales( order );
confirm_avail: Sales( order ) -> Storage( objects )
![Page 25: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/25.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
Architectural Vision
10
order@Client = getInput( "Insert products" );
request_quote: Client( order ) -> Sales( order );
confirm_avail: Sales( order ) -> Storage( objects )
![Page 26: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/26.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
Architectural Vision
10
Client Sales DeliveryStorage
order@Client = getInput( "Insert products" );
request_quote: Client( order ) -> Sales( order );
confirm_avail: Sales( order ) -> Storage( objects )
![Page 27: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/27.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
Architectural Vision
10
Client Sales DeliveryStorage
order@Client = getInput( "Insert products" );
request_quote: Client( order ) -> Sales( order );
confirm_avail: Sales( order ) -> Storage( objects )
![Page 28: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/28.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
Vendite Magazzino Spedizioni
requestquote
confirmavailability
optsendquote
productsunavailable
optapprovequote
refusequote
forward ordersend order
send tracking code
confirm reception
confirmdelivery
11
Sales Storage Delivery
include checkAvail from “socket://storage:8000"
order@Client = getInput( "Insert products" );
request_quote: Client( order ) -> Sales( order );
confirm_avail: Sales( order ) -> Storage( objects );
avail@Storage = checkAvail( objects )
![Page 29: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/29.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
Vendite Magazzino Spedizioni
requestquote
confirmavailability
optsendquote
productsunavailable
optapprovequote
refusequote
forward ordersend order
send tracking code
confirm reception
confirmdelivery
11
Sales Storage Delivery
include checkAvail from “socket://storage:8000"
order@Client = getInput( "Insert products" );
request_quote: Client( order ) -> Sales( order );
confirm_avail: Sales( order ) -> Storage( objects );
avail@Storage = checkAvail( objects )
What’s here inside
![Page 30: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/30.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
Vendite Magazzino Spedizioni
requestquote
confirmavailability
optsendquote
productsunavailable
optapprovequote
refusequote
forward ordersend order
send tracking code
confirm reception
confirmdelivery
11
Sales Storage Delivery
include checkAvail from “socket://storage:8000"
order@Client = getInput( "Insert products" );
request_quote: Client( order ) -> Sales( order );
confirm_avail: Sales( order ) -> Storage( objects );
avail@Storage = checkAvail( objects )
What’s here inside
![Page 31: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/31.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
Vendite Magazzino Spedizioni
requestquote
confirmavailability
optsendquote
productsunavailable
optapprovequote
refusequote
forward ordersend order
send tracking code
confirm reception
confirmdelivery
11
Sales Storage Delivery
include checkAvail from “socket://storage:8000"
order@Client = getInput( "Insert products" );
request_quote: Client( order ) -> Sales( order );
confirm_avail: Sales( order ) -> Storage( objects );
avail@Storage = checkAvail( objects )
What’s here inside
![Page 32: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/32.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
Vendite Magazzino Spedizioni
requestquote
confirmavailability
optsendquote
productsunavailable
optapprovequote
refusequote
forward ordersend order
send tracking code
confirm reception
confirmdelivery
11
Sales Storage Delivery
include checkAvail from “socket://storage:8000"
order@Client = getInput( "Insert products" );
request_quote: Client( order ) -> Sales( order );
confirm_avail: Sales( order ) -> Storage( objects );
avail@Storage = checkAvail( objects )
What’s here inside
![Page 33: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/33.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
Architectural Vision
12
Sales Storage Delivery
WebServer
CRM
Order Manag.
HardwareManag.
OrderManag.
DeliveryManag.
Delivery Tracking
Client Sales DeliveryStorageClient
![Page 34: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/34.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
Architectural Vision
12
Sales Storage Delivery
WebServer
CRM
Order Manag.
HardwareManag.
OrderManag.
DeliveryManag.
Delivery Tracking
Client Sales DeliveryStorage
Function checkAvail
Client
![Page 35: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/35.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
Vendite Magazzino Spedizioni
requestquote
confirmavailability
optsendquote
productsunavailable
optapprovequote
refusequote
forward ordersend order
send tracking code
confirm reception
confirmdelivery
13
Sales Storage Delivery
include checkAvail from “socket://storage:8000”
include calcQuote from “socket://sales:8001"
order@Client = getInput( "Insert products" );
request_quote: Client( order ) -> Sales( order );
confirm_avail: Sales( order ) -> Storage( objects );
avail@Storage = checkAvail( objects )
if ( avail )@Storage {
quote@Sales = calcQuote( order );
send_quote: Sales( quote ) -> Client( quote );
…
} else {
product_unavailable: Sales() -> Client()
}
![Page 36: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/36.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
Vendite Magazzino Spedizioni
requestquote
confirmavailability
optsendquote
productsunavailable
optapprovequote
refusequote
forward ordersend order
send tracking code
confirm reception
confirmdelivery
13
Sales Storage Delivery
include checkAvail from “socket://storage:8000”
include calcQuote from “socket://sales:8001"
order@Client = getInput( "Insert products" );
request_quote: Client( order ) -> Sales( order );
confirm_avail: Sales( order ) -> Storage( objects );
avail@Storage = checkAvail( objects )
if ( avail )@Storage {
quote@Sales = calcQuote( order );
send_quote: Sales( quote ) -> Client( quote );
…
} else {
product_unavailable: Sales() -> Client()
}
![Page 37: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/37.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
Vendite Magazzino Spedizioni
requestquote
confirmavailability
optsendquote
productsunavailable
optapprovequote
refusequote
forward ordersend order
send tracking code
confirm reception
confirmdelivery
13
Sales Storage Delivery
include checkAvail from “socket://storage:8000”
include calcQuote from “socket://sales:8001"
order@Client = getInput( "Insert products" );
request_quote: Client( order ) -> Sales( order );
confirm_avail: Sales( order ) -> Storage( objects );
avail@Storage = checkAvail( objects )
if ( avail )@Storage {
quote@Sales = calcQuote( order );
send_quote: Sales( quote ) -> Client( quote );
…
} else {
product_unavailable: Sales() -> Client()
}
![Page 38: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/38.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
Netflix
14
Why not peer to peer choreography?
![Page 39: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/39.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
Netflix
We found it was harder to scale with growing business needs and complexities. Some of the issues associated with the approach are:
14
Why not peer to peer choreography?
![Page 40: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/40.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
Netflix
We found it was harder to scale with growing business needs and complexities. Some of the issues associated with the approach are:
Process flows are “embedded” within the code of multiple application.
14
Why not peer to peer choreography?
![Page 41: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/41.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
Netflix
We found it was harder to scale with growing business needs and complexities. Some of the issues associated with the approach are:
Process flows are “embedded” within the code of multiple application.Often, there is tight coupling and assumptions around input/output, SLAs etc, making it harder to adapt to changing needs.
14
Why not peer to peer choreography?
![Page 42: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/42.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
Netflix (cont’d)
15
Why not peer to peer choreography?
We found it was harder to scale with growing business needs and complexities. Some of the issues associated with the approach are:
Process flows are “embedded” within the code of multiple application.Often, there is tight coupling and assumptions around input/output, SLAs etc, making it harder to adapt to changing needs.
![Page 43: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/43.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
Netflix (cont’d)
15
Why not peer to peer choreography? True if you leave the
choreographic domain. It is like writing C code and trying to change the program by changing the compiled assembly code.
We found it was harder to scale with growing business needs and complexities. Some of the issues associated with the approach are:
Process flows are “embedded” within the code of multiple application.Often, there is tight coupling and assumptions around input/output, SLAs etc, making it harder to adapt to changing needs.
![Page 44: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/44.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
Netflix (cont’d)
15
Why not peer to peer choreography? True if you leave the
choreographic domain. It is like writing C code and trying to change the program by changing the compiled assembly code.
On the contrary. Choreographies help to clarify public functions and their APIs (I/Os).
We found it was harder to scale with growing business needs and complexities. Some of the issues associated with the approach are:
Process flows are “embedded” within the code of multiple application.Often, there is tight coupling and assumptions around input/output, SLAs etc, making it harder to adapt to changing needs.
![Page 45: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/45.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
Netflix (cont’d)
15
Why not peer to peer choreography? True if you leave the
choreographic domain. It is like writing C code and trying to change the program by changing the compiled assembly code.
On the contrary. Choreographies help to clarify public functions and their APIs (I/Os). Choreographies written in AIOCJ are adaptable at runtime!
We found it was harder to scale with growing business needs and complexities. Some of the issues associated with the approach are:
Process flows are “embedded” within the code of multiple application.Often, there is tight coupling and assumptions around input/output, SLAs etc, making it harder to adapt to changing needs.
![Page 46: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/46.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
Netflix (cont’d)
15
Why not peer to peer choreography? True if you leave the
choreographic domain. It is like writing C code and trying to change the program by changing the compiled assembly code.
On the contrary. Choreographies help to clarify public functions and their APIs (I/Os). Choreographies written in AIOCJ are adaptable at runtime!
We found it was harder to scale with growing business needs and complexities. Some of the issues associated with the approach are:
Process flows are “embedded” within the code of multiple application.Often, there is tight coupling and assumptions around input/output, SLAs etc, making it harder to adapt to changing needs.
![Page 47: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/47.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
Architectural Vision (Part II)
16
Sales Storage Delivery
WebServer
CRM
Order Manag.
HardwareManag.
OrderManag.
DeliveryManag.
Delivery Tracking
Client Sales DeliveryStorageClient
![Page 48: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/48.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016 17
Sales Storage Delivery
WebServer
CRM
GestoreOrdini
HardwareManag.
OrderManag.
DeliveryManag.
Delivery Tracking
Client Sales DeliveryStorage
WebServerWeb
Server
GestoreOrdiniOrder
Manag.Load
Balancer
Circuit Breaker
WebGateway
Architectural Vision (Part III)
![Page 49: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/49.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
Today’s Limits
18
There is no effort without error and
shortcoming.
innovation
![Page 50: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/50.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016 18
There is no effort without error and
shortcoming.
innovation
![Page 51: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/51.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016 18
There is no effort without error and
shortcoming.
innovation
Tomorrow’sStandards
![Page 52: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/52.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016 18
There is no effort without error and
shortcoming.
innovation
Tomorrow’sStandards
![Page 53: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/53.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
Distributed programming becomes easier;
18
There is no effort without error and
shortcoming.
innovation
Tomorrow’sStandards
![Page 54: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/54.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
Distributed programming becomes easier;
Accountability and formal APIs;
18
There is no effort without error and
shortcoming.
innovation
Tomorrow’sStandards
![Page 55: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/55.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
Distributed programming becomes easier;
Accountability and formal APIs;
Scalable and reliable architectures.
18
There is no effort without error and
shortcoming.
innovation
Tomorrow’sStandards
![Page 56: Microservices - saveriogiallorenzo.com€¦ · - Choreographies, Session - Types and Process Algebras. - Microservices; - Jolie; saverio.giallorenzo@gmail.com | DISI at Unibo | Bologna](https://reader034.fdocuments.us/reader034/viewer/2022052019/6032ebae226cd569b7715d66/html5/thumbnails/56.jpg)
[email protected] | DISI at Unibo | Bologna | Meeting on Microservices 2016
Thanks for the attention
19
Questions: Saverio( ? ) -> MoM2016( ! )